I`m currently writting a programm to control floppy operations, both
via BIOS and via direct controller programming. My test program is
showing some strange results that I`m unable to explain so I want to
ask you for help.
My test cylce is Format, Read, Write, Read, via BIOS. The first read
should verify the fill byte. The write operation writes a ramp that
should be read out by the following read operation.
This works (almost) fine with 512 bytes/sector with all transfer rates
(I`m just using 250KBits/s and 500KBits/s). Strangely, I can`t format
1 sector/track while 2 sectors/track seems to be perfectly fine. The
format operation works ok, but the following read returns "sector not
found". The same is true for using 256 bytes/sector.
Using 128 bytes/sector I can`t format neither 1 OR 2 sectors/track,
but now 3 sectors/track seems to be ok, but the read operation just
works every 3-4 trys, almost never on the first try. The first read
operation correctly presents the fill byte. Now, writing seems to be
no problem, too. But the following read operation NEVER seems to work.
Now, the error returned is "adress mark not found". It seems as if the
format went ok, then the write operation somehow overwrites the sector
So, I haven`t been able to format/write/read a track with 128
bytes/sector. I tried to find answer in "The indespensable PC hardware
book", "The undocumented PC" and "NEC Data Book on intelligent
peripherals" but haven`t found any answers to this behaviour so far.
Any ideas ? - Any help is greatly appreciated!