en:docs:dos:api:int21:32

Differences

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

Link to this comparison view

en:docs:dos:api:int21:32 [2020/12/09 05:39] – created prokusheven:docs:dos:api:int21:32 [2024/05/02 04:55] (current) – prokushev
Line 29: Line 29:
 ===== Notes ===== ===== Notes =====
  
-  the OS/2 compatibility box supports the DOS 3.3 version of this call +the OS/2 compatibility box supports the DOS 3.3 version of this call except for the DWORD at offset 12h 
-          except for the DWORD at offset 12h +           
-        this call updates the DPB by reading the disk; the DPB may be accessed +this call updates the DPB by reading the disk; the DPB may be accessed via the DOS list of lists (see #01627 at AH=52h) if disk access is not desirable. 
-          via the DOS list of lists (see #01627 at AH=52h) if disk access is not +           
-          desirable. +undocumented prior to the release of DOS 5.0; only the DOS 4.0+ version of the DPB has been documented, however 
-        undocumented prior to the release of DOS 5.0; only the DOS 4.0+ +           
-          version of the DPB has been documented, however +supported by DR DOS 3.41+; DR DOS 3.41-6.0 return the same data as MS-DOS 3.31 
-        supported by DR DOS 3.41+; DR DOS 3.41-6.0 return the same data as +           
-          MS-DOS 3.31 +IBM ROM-DOS v4.0 also reports invalid/network (AL=FFh) on the ROM drive
-        IBM ROM-DOS v4.0 also reports invalid/network (AL=FFh) on the ROM drive+
  
 Format of DOS Drive Parameter Block: Format of DOS Drive Parameter Block:
-Offset  Size    Description     (Table 01395) + 
- 00h    BYTE    drive number (00h = A:, 01h = B:, etc) +^ Offset ^ Size ^ Description ^ 
- 01h    BYTE    unit number within device driver +| 00h | BYTE | drive number (00h = A:, 01h = B:, etc) | 
- 02h    WORD    bytes per sector +| 01h | BYTE | unit number within device driver | 
- 04h    BYTE    highest sector number within a cluster +| 02h | WORD | bytes per sector | 
- 05h    BYTE    shift count to convert clusters into sectors +| 04h | BYTE | highest sector number within a cluster | 
- 06h    WORD    number of reserved sectors at beginning of drive +| 05h | BYTE | shift count to convert clusters into sectors | 
- 08h    BYTE    number of FATs +| 06h | WORD | number of reserved sectors at beginning of drive | 
- 09h    WORD    number of root directory entries +| 08h | BYTE | number of FATs | 
- 0Bh    WORD    number of first sector containing user data +| 09h | WORD | number of root directory entries | 
- 0Dh    WORD    highest cluster number (number of data clusters + 1) +| 0Bh | WORD | number of first sector containing user data | 
-                16-bit FAT if greater than 0FF6h, else 12-bit FAT +| 0Dh | WORD | highest cluster number (number of data clusters + 1) 16-bit FAT if greater than 0FF6h, else 12-bit FAT | 
- 0Fh    BYTE    number of sectors per FAT +| 0Fh | BYTE | number of sectors per FAT | 
- 10h    WORD    sector number of first directory sector +| 10h | WORD | sector number of first directory sector | 
- 12h    DWORD   address of device driver header (see #01646) +| 12h | DWORD | address of device driver header (see #01646) | 
- 16h    BYTE    media ID byte (see #01356) +| 16h | BYTE | media ID byte (see #01356) | 
- 17h    BYTE    00h if disk accessed, FFh if not +| 17h | BYTE | 00h if disk accessed, FFh if not | 
- 18h    DWORD   pointer to next DPB +| 18h | DWORD | pointer to next DPB | 
----DOS 2.x--- +| ---DOS 2.x--- ||| 
- 1Ch    WORD    cluster containing start of current directory, 0000h=root, +| 1Ch | WORD | cluster containing start of current directory, 0000h=root, FFFFh = unknown | 
-                FFFFh = unknown +| 1Eh | 64 BYTEs | ASCIZ pathname of current directory for drive | 
- 1Eh 64 BYTEs   ASCIZ pathname of current directory for drive +| ---DOS 3.x--- ||| 
----DOS 3.x--- +| 1Ch | WORD | cluster at which to start search for free space when writing | 
- 1Ch    WORD    cluster at which to start search for free space when writing +| 1Eh | WORD | number of free clusters on drive, FFFFh = unknown | 
- 1Eh    WORD    number of free clusters on drive, FFFFh = unknown +| ---DOS 4.0-6.0--- ||| 
----DOS 4.0-6.0--- +| 0Fh | WORD | number of sectors per FAT | 
- 0Fh    WORD    number of sectors per FAT +| 11h | WORD | sector number of first directory sector | 
- 11h    WORD    sector number of first directory sector +| 13h | DWORD | address of device driver header (see #01646) | 
- 13h    DWORD   address of device driver header (see #01646) +| 17h | BYTE | media ID byte (see #01356) | 
- 17h    BYTE    media ID byte (see #01356) +| 18h | BYTE | 00h if disk accessed, FFh if not | 
- 18h    BYTE    00h if disk accessed, FFh if not +| 19h | DWORD | pointer to next DPB | 
- 19h    DWORD   pointer to next DPB +| 1Dh | WORD | cluster at which to start search for free space when writing, usually the last cluster allocated | 
- 1Dh    WORD    cluster at which to start search for free space when writing, +| 1Fh | WORD | number of free clusters on drive, FFFFh = unknown |
-                usually the last cluster allocated +
- 1Fh    WORD    number of free clusters on drive, FFFFh = unknown+
  
 ===== See also ===== ===== See also =====
  
- AH=1Fh,AH=52h,AX=7302h+AH=[[en:docs:dos:api:int21:1f|1Fh]],AH=[[en:docs:dos:api:int21:52|52h]],AX=[[en:docs:dos:api:int21:73:02|7302h]]
  
 ===== Note ===== ===== Note =====