> the FreeDOS kernel is seriously slower then MSDOS when doing
> larger copy/xcopy operations.

> the cause: the disk I/O code avoids transfers that cross a 64K
> boundary, and splits these transfers into 3 (smaller) transfers.

> this was needed for floppy controllers in the 1980's, but is certainly
> not necessary for harddisks after the IBM XT.


> just skip


>           /* avoid overflowing 64K DMA boundary */
>     count = DMA_max_transfer(buffer, totaltodo);

> for harddisks, and everything should be *much* faster (at least on
> rotating media in a non-emulated machine)

investigating in this a bit more, the 64K boundary was/is a problem
with ISA DMA, used only for floppies (and sometimes serial/parallel
ports), but is no problem for UDMA.

skipping this test for drives with 0x80 set should be save, and result
in a significant speedup of large disk transfers.

Tom



_______________________________________________
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to