Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Ralf Brown's Interrupt List (Part 1,2) - int 2f - multiplex - dos 4.x driver.sys support - get drive data table list http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
INT 2F - Multiplex - DOS 4.x DRIVER.SYS support - GET DRIVE DATA TABLE LIST
        AX = 0803h
Return: DS:DI -> first drive data table in list
SeeAlso: AX=0801h

Format of DOS 3.3 drive data table:
Offset  Size    Description
 00h    DWORD   pointer to next table
 04h    BYTE    physical unit number (for INT 13)
 05h    BYTE    logical drive number
 06h 19 BYTEs   BIOS Parameter Block (see also INT 21/AH=53h)
                Offset  Size    Description
                 00h    WORD    bytes per sector
                 02h    BYTE    sectors per cluster, FFh if unknown
                 03h    WORD    number of reserved sectors
                 05h    BYTE    number of FATs
                 06h    WORD    number of root dir entries
                 08h    WORD    total sectors
                 0Ah    BYTE    media descriptor, 00h if unknown
                 0Bh    WORD    sectors per FAT
                 0Dh    WORD    sectors per track
                 0Fh    WORD    number of heads
                 11h    WORD    number of hidden sectors
 19h    BYTE    ???
 1Ah    WORD    number of DEVICE OPEN calls without corresponding DEVICE CLOSE
 1Ch 11 BYTEs   volume label or "NO NAME    " if none
 27h    BYTE    terminating null for volume label???
 28h    BYTE    device type (see INT 21/AX=440Dh)
 29h    WORD    bit flags describing drive
                bit 0: fixed media
                bit 1: door lock supported
                bit 2: ??? (used in determining BPB to set for INT 21/AX=440Dh)
                bit 3: all sectors in a track are the same size
                bit 4: physical drive has multiple logical units
                bit 5: current logical drive for physical drive
                bit 6: ???
                bit 7: ???
                bit 8: ??? (related to disk change detection)
 2Bh    WORD    number of cylinders
 2Dh 19 BYTEs   BIOS Parameter Block for highest capacity supported
 40h  3 BYTEs   ???
 43h  9 BYTEs   filesystem type???, default = "NO NAME  "
 4Ch    BYTE    terminating null for filesystem type???
 4Dh    DWORD   time of last access in clock ticks (FFFFFFFFh if never)
                removable media only???

Format of DOS 4.01 drive data table:
Offset  Size    Description
 00h    DWORD   pointer to next table
 04h    BYTE    physical unit number (for INT 13)
 05h    BYTE    logical drive number
 06h 19 BYTEs   BIOS Parameter Block (see also INT 21/AH=53h)
                Offset  Size    Description
                 00h    WORD    bytes per sector
                 02h    BYTE    sectors per cluster, FFh if unknown
                 03h    WORD    number of reserved sectors
                 05h    BYTE    number of FATs
                 06h    WORD    number of root dir entries
                 08h    WORD    total sectors
                 0Ah    BYTE    media descriptor, 00h if unknown
                 0Bh    WORD    sectors per FAT
                 0Dh    WORD    sectors per track
                 0Fh    WORD    number of heads
                 11h    WORD    number of hidden sectors
 19h  9 BYTEs   ???
 22h    BYTE    device type (see INT 21/AX=440Dh)
 23h    WORD    bit flags describing drive
                bit 0: fixed media
                bit 1: door lock supported
                bit 2: ???
                bit 3: all sectors in a track are the same size
                bit 4: physical drive has multiple logical units
                bit 5: current logical drive for physical drive
                bit 6: ???
                bit 7: ???
                bit 8: ???
 25h    WORD    number of cylinders
 27h 19 BYTEs   BIOS Parameter Block for highest capacity supported
 3Ah 13 BYTEs   ???
 47h    DWORD   time of last access in clock ticks (FFFFFFFFh if never)
 4Bh 11 BYTEs   volume label or "NO NAME    " if none
 56h    BYTE    terminating null for volume label???
 57h    DWORD   serial number
 5Bh  8 BYTEs   filesystem type ("FAT12   " or "FAT16   ")
 63h    BYTE    terminating null for filesystem type???

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson