[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
INT 2F U - DOS 4+ DRIVER.SYS support - GET DRIVE DATA TABLE LIST
        AX = 0803h
Return: DS:DI -> first drive data table in list
Note:   not available under DR-DOS 5.0

Format of DOS 3.30 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    flags
                bit 6: 16-bit FAT instead of 12-bit FAT
 1Ah    WORD    number of DEVICE OPEN calls without corresponding DEVICE CLOSE
 1Ch 11 BYTEs   volume label or "NO NAME    " if none (always "NO NAME" for
                fixed media)
 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  "
                (apparently only MSDOS 3.30 fixed media, nulls for removable
                media and PCDOS 3.30)
 4Ch    BYTE    least-significant byte of last-accessed cylinder number
---removable media---
 4Dh    DWORD   time of last access in clock ticks (FFFFFFFFh if never)
---fixed media---
 4Dh    WORD    partition (FFFFh = primary, 0001h = extended)
 4Fh    WORD    absolute cylinder number of partition's start on physical
                drive (always FFFFh if primary partition)

Format of COMPAQ DOS 3.31 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 25 BYTEs   BIOS Parameter Block (see DOS 4.0-5.0 drive data table below)
 1Fh  6 BYTEs   ??? apparently always zeros
 25h    BYTE    flags
                bit 6: 16-bit FAT instead of 12-bit FAT
                    5: large volume???
 26h    WORD    device-open count???
 28h 11 BYTEs   volume label or "NO NAME    " if none (always "NO NAME" for
                fixed media)
 33h    BYTE    terminating null for volume label
 34h    BYTE    device type (see INT 21/AX=440Dh)
 35h    WORD    bit flags describing drive
 37h    WORD    number of cylinders
 39h 25 BYTEs   BIOS parameter block for highest capacity drive supports
 52h  6 BYTEs   ??? apparently always zeros
 58h    BYTE    least-significant byte of last-accessed cylinder number
---removable media---
 59h    DWORD   time of last access in clock ticks (FFFFFFFFh if never)
---fixed media---
 59h    WORD    partition (FFFFh = primary, 0001h = extended)
 5Bh    WORD    absolute cylinder number of partition's start on physical
                drive (always FFFFh if primary partition)

Format of DOS 4.0-5.0 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 25 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 (see offset 15h if zero)
                 0Ah    BYTE    media descriptor, 00h if unknown
                 0Bh    WORD    sectors per FAT
                 0Dh    WORD    sectors per track
                 0Fh    WORD    number of heads
                 11h    DWORD   number of hidden sectors
                 15h    DWORD   total sectors if WORD at 08h is zero
 1Fh    BYTE    flags
                bit 6: 16-bit FAT instead of 12-bit
 20h  2 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 25 BYTEs   BIOS Parameter Block for highest capacity supported
 40h  7 BYTEs   ???
---removable media---
 47h    DWORD   time of last access in clock ticks (FFFFFFFFh if never)
---fixed media, DOS 4.x---
 47h    WORD    partition (FFFFh = primary, 0001h = extended)
 49h    WORD    absolute cylinder number of partition's start on phys drive
                (FFFFh if primary partition)
---fixed media, DOS 5.0---
 47h    WORD    ??? apparently always 0001h
 49h    WORD    absolute cylinder number of partition's start on phys drive
------
 4Bh 11 BYTEs   volume label or "NO NAME    " if none (apparently taken from
                extended boot record rather than root directory)
 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???

See Also: 2F0801
This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson