Int 25 - Dos 1+ - Absolute Disk Read (except Partitions > 32m) [D]

AL = drive number (00h = A:, 01h = B:, etc)
CX = number of sectors to read (not FFFFh)
DX = starting logical sector number (0000h - highest sector on drive)
DS:BX -> buffer for data

Return: CF clear if successful
CF set on error
AH = status (see #2235)
AL = error code (same as passed to INT 24 in DI)
AX = 0207h if more than 64K sectors on drive -- use new-style call
may destroy all other registers except segment registers

Notes: original flags are left on stack, and must be popped by caller
this call bypasses the DOS filesystem
examination of CPWIN386.CPL indicates that if this call fails with
error 0408h on an old-style (<32M) call, one should retry the
call with the high bit of the drive number in AL set
Novell DOS 7 decides whether the old-style or new-style (>32M) version
of INT 25 must be used solely on the basis of the partition's size,
thus forcing use of the new-style call even for data in the first
32M of the partition
BUGS: DOS 3.1 through 3.3 set the word at ES:[BP+1Eh] to FFFFh if AL is an
invalid drive number
DR DOS 3.41 will return with a jump instead of RETF, leaving the
wrong number of bytes on the stack; use the huge-partition version
(INT 25/CX=FFFFh) for all partition sizes under DR DOS 3.41

See Also: INT 13/AH=02h,INT 25/CX=FFFFh,INT 26,INT 21/AX=7305h

(Table 2235)
Values for disk I/O status:
80h device failed to respond (timeout)
40h seek operation failed
20h controller failed
10h data error (bad CRC)
08h DMA failure
04h requested sector not found
03h write-protected disk (INT 26 only)
02h bad address mark
01h bad command