What did fixed it, is looking at the Bochs debug console.
Code: Select all
04496036403d[DMA ] DMA-1: set_mask_bit=4, channel=0, mask now=01h
Code: Select all
channel=0
Now the IRQ does fire, I'm getting the result bytes, I get <<READ DONE>> in Bochs debug console, but DMA doesn't write anything on the buffer at all.
As I probably said in some of previous posts, one thing I suspect is this:
Code: Select all
04496036477e[DMA ] io write to address 00000004, len=2
04496036521e[DMA ] io write to address 00000005, len=2
Code: Select all
BX_ERROR(("io write to address %08x, len=%u", (unsigned) address, (unsigned) io_len))
Updated code: