Reply 40 of 42, by jakethompson1
- Rank
- Oldbie
mkarcher wrote on 2021-05-29, 21:01:Theodinator wrote on 2021-05-25, 16:55:I'm still trying to figure out what causes the screen corruption during reading from a floppy drive. To me it seems as if the IO controller is writing to the video RAM (if that's even possible..)
Data from the floppy is transferred to main memory using DMA. The mainboard (the DMA controller) asks the floppy controller to put a byte onto the bus by asserting DACK2 on the ISA bus, and puts the address where the data from the floppy drive should go to to the bus at the same time, and it asserts the MEMW# line to tell any ISA card that might contain the destination memory to pick up the byte from the floppy controller and write it to its own memory. If you read a floppy disk normally, the address on the ISA bus during floppy reads should not be the address of the video RAM, but it seems your VGA card still responds to that cycle.
This might be an incompatibility between the mainboard and the VGA card regarding ISA bus timing. You might want to check your BIOS setup, whether you have some "fast DMA" settings like "ISA Type-F DMA" enabled, or you use DMACLK=ISACLK instead of DMACLK=ISACLK/2, i.e. you run the DMA controller at 8MHz instead of 4MHz (which is the usual frequency it runs at, for compatibilty).
Since it's also possible to get rid of the dma and use programmed i/o instead (e.g., linux floppy driver has a nodma option) I wonder if there is some driver out there that can be stuck in config.sys and trap int 13h and interface with the controller that way, to make sure this is the issue.
Or, the OP could boot into Linux from floppies and try out that option even.