Now IRQ fires, and read ends successfully, but getting emp.
Posted: Wed Jul 11, 2018 8:23 am
@BenLunt : Thanks a lot, I have updated my FDC code with various error checking and real hardware tolerance you included in it. While looking at I noticed that I didn't used the configure command at all. Althrough that still did not fix the problem.
What did fixed it, is looking at the Bochs debug console.
This:
And yes, I have made a mistake in the same function twice. Now it works anyway...
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:
Now looking at the Bochs source code... :
That's a BX_ERROR! (Runs away in horror)
Updated code:
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: