Function 32h Read DOS Disk Block* Retrieve the pointer to the drive parameter block for a drive
entry AH 32h
DL drive (0=default, 1=A:, etc.).
return AL 00h if drive is valid
0FFh if drive is not valid
DS:BX pointer to DOS Drive Parameter Table. Format of block:
Bytes Type Value
00h byte Drive: 0=A:, 1=B:, etc.
01h byte Unit within drive (0, 1, 2, etc.)
02h-03h word Bytes per sector
04h byte Sectors per cluster - 1
05h byte Cluster to sector shift (i.e., how far to shift-
left the bytes/sector to get bytes/cluster)
06h-07h word Number of reserved (boot) sectors
08h byte Number of FATs
09h-0Ah word Number of root directory entries
0Bh-0Ch word Sector # of 1st data. Should be same as # of
sectors/track.
0Dh-0Eh word # of clusters + 1 (=last cluster #)
0Fh byte Sectors for FAT
10h-11h word First sector of root directory
(note 3) 12h-15h dword Address of device\drivers header for drive
Function 32h Read DOS Disk Block
return DS:BX pointer to DOS Drive Parameter Table. Format of block:
Bytes Type Value
16h byte Media Descriptor Byte for this drive
17h byte 0FFh indicates block must be rebuilt
(DOS 3.x) 00h indicates block device has
been accessed
18h-1Bh dword address of next DOS Disk Block (0FFFFh means
last in chain)
22h byte Current Working Directory (2.0 only) (64 bytes)
note 1) Use [BX+0D] to find no. of clusters (1000H, 16-bit FAT; if not, 12-bit
(exact dividing line is probably a little below 1000h to allow for
bad sectors, EOF markers, etc.)
2) Short article by C.Petzold, PC Magazine Vol.5,no.8, and the article
"Finding Disk Parameters" in the May 1986 issue of PC Tech Journal.
3) This call is mostly supported in OS/2 1.0's DOS Compatibility Box. The
dword at 12h will not return the address of the next device driver when
in the Compatibility Box.
4) used by CHKDSK