DPT/DPB - Drive Parameter Table / Disk Parameter Block
Offset Size Description 00 byte drive (0 = A, 1 = B) 01 byte unit within device, usually equals drive (ramdisk=0) 02 word bytes per sector 04 byte sectors per cluster minus 1 05 byte sectors per cluster (times to shift left or x2) 06 word number of sectors before FAT (boot sectors) 08 byte number of FAT copies 09 word number of root directory entries 0B word number of first data sector 0D word total number of clusters plus 1 0F byte number of sectors used by first FAT The following fields are DOS version dependant 10 word number of first sector in root directory 12 dword far pointer to current disk device header 16 byte media descriptor byte (see MEDIA DESCRIPTOR) 17 byte zero if disk accessed, (default=FF, must rebuild DPB) 18 dword far pointer to next drive parameter table; offset is set to FFFFh if last block in chain 1C word current directory cluster number; 0=root 1E 64bytes ASCIIZ current working directory Fields differing in DOS 3.x Offset Size Description 1C word starting cluster for free space search 1E 64bytes number of free clusters; FFFFh = unknown Fields differing in DOS 4.x Offset Size Description 11 word first sector of root directory 13 dword far pointer to current disk device header 17 byte media descriptor byte (see MEDIA DESCRIPTOR) 18 byte zero if disk accessed, (default=FF, must rebuild DPB) 19 dword pointer to next drive parameter table; offset is set to FFFFh if last block in chain 1D word starting cluster for free space search 1F word number of free clusters, FFFFh = unknown - INT 21,32 which is used to read this data resets accessed byte at offset 17h or 18h (depending on DOS version) - dword at offset 12h & 13h aren't supported in OS/2 compatability box - sector references are DOS logical sectors - see Disk Base Table BPB INT 21,1F INT 21,32