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