I am writing a Floppy Driver and I came around this problem. I am resetting the first Floppy and Bochs's debugger says:

00001277492i controller reset in software


So the initialization code has successfully done its job. The problem is that I have written some procedures that sense certain IRQs. For example I can invoke my [__WaitForIRQPulse] procedure and wait for IRQ6 to be fired. The thing is that this approach proves to be working on Virtual PC but not on Bochs. On Bochs, I just get the IRQ and non of my Sense-interrupts work correctly but on Virtual PC they do work.

I have attached the floppy image of my kernel to this post so if anyone could please confirm this, I would really appreciate it. When running this image on Bochs, I don't get the message that my kernel is supposed to print on the screen after having successfully reset the floppy driver but on Virtual PC the message is shown.
Attachments:
Posted on 2007-03-25 04:27:05 by XCHG
Okay great. I had forgotten to push the accumulator and then pop it in my IRQ6 handler procedure so EAX was getting modified in the handler and this was changing the EAX in my other procedures. It's now fixed.
Posted on 2007-03-25 05:26:21 by XCHG