Description
This devhlp is used to read from a file opened with DevHlp_OpenFile, in contrast to a normal read, a start position can be specified.
Calling convention
- ES:DI = point to a SYIReadFileAt structure
- DL = 082h
Returns
- CY=0, AX = 0: read okay
- CY=1, AX = ERROR_BAD_LENGTH: packet is invalid
- CY=1, AX = <>0: other filesystem related errors
Data structures
; assembler structure
SYIReadFile struc length dw 12 ; length of structure (must be 12) buffer dd ? ; 16:16 address of a read buffer size dd ? ; number of bytes to read startpos dd ? ; starting position of read relative to ; start of file SYIReadFile ends
Restrictions
Valid at INIT time only. Although the size argument of the data structure implies, I’d recommend to better not read more than 32K at a time. Note that the buffer itself is segmented, so DMA overrun and other effects might apply, depending on the quality of the miniIFS in use.
Bugs
IMHO, the length of structure should be 14, not 12.
Republished without permission from Holger Veit’s long gone webpages – MKG