Floppy driver trouble: works on Virtual PC, but not Bochs
Posted: Sat Nov 06, 2010 10:39 am
Hello, I have some trouble with my floppy driver. It works perfectly in Microsoft Virtual PC 2007, but in Bochs, it fails. Says (when reading) that motor is off, and a command is issued before another one is completed, so two panics. When writing, only get 'motor is not on'. But the motors are on, and I have irq set properly (i think). What could be wrong with it?
Could the inline-implemented-sleep function(s) fail for some reason? Could this be a time-out related issue?
Can anyone test this on real hardware, and report other bugs/issues?
(have some LCD trouble with my desktop PC, had to replace it with the testbed's CRT, and it's really hard to switch them back. And my laptop which is my working machine unfortunately doesn't have floppy.)
Theoretically, the driver should work with these types of 3.5" floppies: 720K, 1.44M and 2.88M, any other format/size unsupported.
I'm uploading the OS floppy image, and the floppy code, if you need any additional code, or information feel free to ask.
Thank you very much for your help and your time in advance.
UPDATE: these are the panics that I get from bochs when reading:
00287403665p[FDD ] >>PANIC<< floppy_command(): read/write: motor not on
00299368482p[FDD ] >>PANIC<< write 0x03f5: receiving new command 0x08, old one (0xc6) pending
So it's trying to read before finishing with the Sense command.
Could the inline-implemented-sleep function(s) fail for some reason? Could this be a time-out related issue?
Can anyone test this on real hardware, and report other bugs/issues?
(have some LCD trouble with my desktop PC, had to replace it with the testbed's CRT, and it's really hard to switch them back. And my laptop which is my working machine unfortunately doesn't have floppy.)
Theoretically, the driver should work with these types of 3.5" floppies: 720K, 1.44M and 2.88M, any other format/size unsupported.
I'm uploading the OS floppy image, and the floppy code, if you need any additional code, or information feel free to ask.
Thank you very much for your help and your time in advance.
UPDATE: these are the panics that I get from bochs when reading:
00287403665p[FDD ] >>PANIC<< floppy_command(): read/write: motor not on
00299368482p[FDD ] >>PANIC<< write 0x03f5: receiving new command 0x08, old one (0xc6) pending
So it's trying to read before finishing with the Sense command.