First post, by Alex_C
I've seen this come up a few times and experienced it myself. Sometimes using CompactFlash IDE adapters causes issues with floppy drive access. Swapping disks seems to cache the previous disk's FAT in memory, leading to corruption of the subsequent disk unless it's write-protected.
I've seen people mention this as a problem with XT-IDE and also with drive overlays in general. But it seems neither of those is the actual cause.
After a lot of headaches I found the solution (though not necessarily the cause). Here are my verbatim notes relating to a 486 machine with VL-Bus graphics and I/O built into the motherboard. Skip to the end for the answer.
---
You may get problems with floppy access, though I think it could be limited to VL-Bus machines. At first I thought it was due to OnTrack or other drive overlays, but it's not. It's an issue with using CF cards in CF-IDE adapters.
It's NOT the floppy drive, as I had exactly the same issue on the DX2/66 CL/Chicony board. And I tried the known working floppy with the 386 - same issue. If I boot from a DOS floppy, even with the OnTrack software supposedly uninstalled, something in the boot sector means that swapping floppies corrupts them because the FAT is cached somehow and written to the second disk (unless write-protected).
So... try the earlier IBM overlay, and then work backwards until you find one that works? And/or perhaps disable PIO modes and other stuff? Nope... the IBM version 9.43 does exactly the same thing. In fact it's not even the overlay - it's something in the MBR that messes it up. But I don't think I can run the DDO without the MBR... or can I? Maybe install the DDO and then try fdisk /mbr? No, it's even weirder...
I tried booting to a DOS 5.00 system disk, then changing to a different floppy and doing dir. If it worked, it should show the new FAT. If it didn't work, it would still show the FAT for the DOS 5.00 system disk. Results:
- no HDD set in the BIOS, nothing plugged into the CF-IDE adapter: works
- 32MB card plugged in and formatted: works
- 512MB card plugged in and formatted: doesn't work (not even when re-fdisk'ing and format /u /s and retrying)
- 4GB card plugged in and formatted: doesn't work
- 16GB card plugged in and formatted: doesn't work
Doesn't matter if I wipe the disks entirely (dd if=/dev/zero of=/dev/whatever) and/or create partitions on Linux. Effect is the same. Remember, this also happens in the other 486 - different motherboard, different floppy drive, different controller (still VL-Bus). And it happens in this machine regardless of whether I'm using an internal or external CF-IDE adapter. It happens with 16MB or 32MB of RAM and regardless of BIOS chipset settings.
Solution: disable changeline for all installed floppy drives using drivparm in config.sys. So you MUST add "drivparm /d:0 /f:N" (where N is 7 for 1.44MB, 1 for 1.2MB and 0 for 360KB) to all config.sys files. One drivparm entry for each drive. Refer to drivparm notes elsewhere online if you need more details about it.
This works perfectly for me. Let me know your experiences here.