[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
AH = 32h
DL = drive number
0 = default, 1 = A, etc.
Return: AL = 0FFh if invalid drive number, else
DS:BX = address of drive parameter block.
STRUCTURE OF DOS DRIVE PARAMETER BLOCK:
DPBLOCK STRUCT ;OFFSET
DISK_OFFSET DB ? ; 0. drive number (0 = A, etc.)
UNIT_OFFSET DB ? ; 1. unit number within device driver
SECTOR_SIZE DW ? ; 2. number of bytes per sector
MAX_CLUSTER DB ? ; 4. largest sector number in cluster
; add one for number of sectors/cluster
LOG2_SECTORS DB ? ; 5. log base two of the cluster size
RESERVED DW ? ; 6. number of reserved (boot) sectors
FAT_COUNT DB ? ; 8. number of copies of the FAT
ROOT_COUNT DW ? ; 9. number of root directory entries
DATA_START DW ? ; 11. first data sector on medium
MAX_NUMBER DW ? ; 13. largest possible cluster number
; subtract one for number of data clusters
FAT_SECTORS DB ? ; 15. number of sectors in one FAT copy
ROOT_START DW ? ; 16. first sector of root directory
DEVICE_ADDR DD ? ; 18. address of device driver for this drive
DESCRIPTOR DB ? ; 22. media descriptor byte for medium
VALID_BYTE DB ? ; 23. 0FFh indicates block must be rebuilt
NEXT_BLOCK DD ? ; 24. address of next device block in list
; FROM THIS POINT ON, DOS 3 DIFFERS FROM 2:
IF DOS2
DIR_START DW ? ; 28. starting cluster of current directory
; zero indicates the root directory
PATH_NAME DB 64 DUP (?)
; 30. ASCIIZ current directory path string
ELSE DOS3
; on my XT, this was always:
DW 0
DW 0FFFFh
ENDIF
DPBLOCK ENDS
-----------------------------------------------------------
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson