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








  • 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





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.


IMHO, the length of structure should be 14, not 12.




Republished without permission from Holger Veit’s long gone webpages – MKG