Why is floppy disk access is so slow under DOS-C?
It’s actually very simple. I originally wrote the code as part of a real-time os. That os had disk drivers that worked with dma and were multitasking. So, I took advantage of it and only did all my reads and writes out of the disk buffers. The next sector was always set for read-ahead so that while I was reading or writing the current sector, the next one was filling the buffer. For the bios drivers, I need to specifically fetch each sector and wait until it finishes. This is too slow to read the next sequential sector so each sector read waits for another revolution of the disk. Since this is tens of millisconds, it is very slow. In beta 4, I optimize the code and rewrite the code that does the disk accesses. This code will only read into ther buffers fragments from the first and last sectors of the read and everything else inbetween will go directly to user space. That will speed things up considerably. Remember, you’re using work in progress.