Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
en:docs:dos:api:int25 [2024/05/19 09:20] – prokushev | en:docs:dos:api:int25 [2024/05/19 10:11] – 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 | + | 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 59: | Line 64: | ||
===== See Also ===== | ===== See Also ===== | ||
- | INT 13/AH=02h,INT 25/ | + | INT 13/AH=02h,[[en: |
| | ||
===== Note ===== | ===== Note ===== |