On Thu, Jul 29, 2021, 9:02 AM tom ehlert <t...@drivesnapshot.de> wrote:
> with the changes below the kernel no longer splits disk transfers > on disks that report via int13/48 'DMA boundary errors are handled > transparently' > > ... > > > changes: > > ************************************************************************************* > > > device.h, 260 > > #define DF_LBA 0x400 > #define DF_WRTVERIFY 0x800 > > +#define DF_DMA_TRANSPARENT 0x1000 /* DMA boundary errors are handled > transparently */ > > /* typedef struct ddtstruct ddt;*/ > > > > initdisk.c, 720 > > if (lba_bios_parameters.information & 8) > driveParam->descflags |= DF_WRTVERIFY; > > + if (lba_bios_parameters.information & 1) > + { > + driveParam->descflags |= DF_DMA_TRANSPARENT; /* DMA boundary > errors are handled transparently */ > + } > > StandardBios: /* old way to get parameters */ > > > dsk.c, 1035 > > > for (; totaltodo != 0;) > { > > + count = totaltodo; > + if ((pddt->ddt_descflags & DF_DMA_TRANSPARENT) == 0) > + { > + /* avoid overflowing 64K DMA boundary > + for drives that don't handle this transparently */ > + count = DMA_max_transfer(buffer, totaltodo); > + } > > ************************************************************************************* > > > Tom > > Thank you! Jeremy
_______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel