en:docs:dos:api:int25

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:docs:dos:api:int25 [2024/05/19 09:20] prokusheven: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)
-  * DX = starting logical sector number (0000h - highest sector on drive) +    * DX = starting logical sector number (0000h - highest sector on drive) 
-  * 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=7305h 
 + 
 +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/CX=FFFFh) for all partition sizes under DR DOS 3.41 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
Line 59: Line 66:
 ===== See Also ===== ===== See Also =====
  
-INT 13/AH=02h,INT 25/CX=FFFFh,INT 26,INT 21/AX=7305h+**[[en:docs:dos:api:int26|INT 26]]**,**[[en:docs:dos:api:int21|INT 21]]**/AX=[[en:docs:dos:api:int21:73:05|7305h]]
      
 ===== Note ===== ===== Note =====