Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:docs:dos:api:int25 [2024/05/19 09:20] – prokushev | en:docs:dos:api:int25 [2026/05/04 07:48] (current) – prokushev | ||
|---|---|---|---|
| Line 9: | Line 9: | ||
| ===== Brief ===== | ===== Brief ===== | ||
| - | ABSOLUTE DISK READ (except partitions > 32M) | + | Absolute disk read |
| ===== Family API ===== | ===== Family API ===== | ||
| Line 18: | Line 18: | ||
| * AL = drive number (00h = A:, 01h = B:, etc) | * AL = drive number (00h = A:, 01h = B:, etc) | ||
| * CX = number of sectors to read (not FFFFh) | * CX = number of sectors to read (not FFFFh) | ||
| - | | + | |
| - | * DS:BX -> buffer for data | + | * DS:BX -> buffer for data |
| + | * CX = FFFFh (DOS 3.31+) | ||
| + | * DS:BX -> disk read packet (see #02548) | ||
| ===== Return ===== | ===== Return ===== | ||
| Line 29: | Line 31: | ||
| ===== Macro ===== | ===== Macro ===== | ||
| - | |||
| ===== Notes ===== | ===== Notes ===== | ||
| - | AX = 0207h if more than 64K sectors on drive -- use new-style call | + | Function not supported for Win16 applications in protected mode |
| + | |||
| + | partition is potentially >32M (and requires this form of the call) if bit 1 of the device attribute word in the device driver is set | ||
| + | |||
| + | for FAT32 drives (which may be up to 2TB in size), use INT 21/ | ||
| + | |||
| + | AX = 0207h if more than 64K sectors on drive or if FAT32 drive -- use CX=FFFFH or INT 21/AX=7305h | ||
| - | may destroy all other registers except segment registers | + | may destroy all other registers except segment registers; Win9X always sets SI to 0000h due to an apparent coding bug |
| original flags are left on stack, and must be popped by caller | original flags are left on stack, and must be popped by caller | ||
| Line 51: | Line 58: | ||
| Although all registers except segment registers may be destroyed some software depends on some of the registers being preserved. For example some Flash disk drivers requires that DX is not trashed. DR-DOS 7.03 takes care of this. | Although all registers except segment registers may be destroyed some software depends on some of the registers being preserved. For example some Flash disk drivers requires that DX is not trashed. DR-DOS 7.03 takes care of this. | ||
| - | BUGS: DOS 3.1 through 3.3 set the word at ES:[BP+1Eh] to FFFFh if AL is an invalid drive number | + | 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/ | 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/ | ||
| Line 59: | Line 66: | ||
| ===== See Also ===== | ===== See Also ===== | ||
| - | INT 13/ | + | **[[en: |
| | | ||
| ===== Note ===== | ===== Note ===== | ||




