> 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