On Thu, Jul 29, 2021, 9:02 AM tom ehlert <[email protected]> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel