Int 2F/AX=0803h

Prev Next Ralf Interrups Categories Contents

------

DOS 4.0+ DRIVER.SYS support - GET DRIVE DATA TABLE LIST

AX = 0803h

Return:
DS:DI -> first drive data table in list (see #02601,#02602,#02603)

Note: Not available under DR DOS 5.0, but supported by Novell DOS 7 (using the MS-DOS 4+ data table format)

See Also: AX=0801h

Format of DOS 3.30 drive data table: Offset Size Description (Table 02601) 00h DWORD pointer to next table (offset FFFFh if last table) 04h BYTE physical unit number (for INT 13) 05h BYTE logical drive number (0=A:) 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 #01561 at INT 21/AX=440Dh"DOS 3.2+") 29h WORD bit flags describing drive (see #02604) 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 MS-DOS 3.30 fixed media, nulls for removable media and PC-DOS 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)

See Also: #02602 - #02603

Format of COMPAQ DOS 3.31 drive data table: Offset Size Description (Table 02602) 00h DWORD pointer to next table (offset FFFFh if last table) 04h BYTE physical unit number (for INT 13) 05h BYTE logical drive number (0=A:) 06h 25 BYTEs BIOS Parameter Block (see #02603) 1Fh 6 BYTEs reserved fields from BPB above??? 25h BYTE flags

bit 6:
16-bit FAT instead of 12-bit FAT

bit 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 #01561 at INT 21/AX=440Dh"DOS 3.2+") 35h WORD bit flags describing drive (see #02604) 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)

See Also: #02601 - #02603

Format of DOS 4.0-7.0 drive data table: Offset Size Description (Table 02603) 00h DWORD pointer to next table (offset FFFFh if last table) 04h BYTE physical unit number (for INT 13) 05h BYTE logical drive number (0=A:) 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 (refer to 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

bit 7:
Unsupportable disk (all accesses will return Not Ready) 20h WORD device-open count 22h BYTE device type (see #01561 at INT 21/AX=440Dh"DOS 3.2+") 23h WORD bit flags describing drive (see #02604) 25h WORD number of cylinders (for partition only, if hard disk) 27h 25 BYTEs BIOS Parameter Block for default (highest) capacity supported 40h 6 BYTEs reserved (part of BPB above) 46h BYTE last track accessed ---removable media--- 47h DWORD time of last access in clock ticks (FFFFFFFFh if never) ---fixed media--- 47h WORD partition (FFFFh = primary, 0001h = extended) always 0001h for DOS 5+ 49h WORD absolute cylinder number of partition's start on physical drive (FFFFh if primary partition in DOS 4.x) ------ 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: #02601 - #02602

Bitfields for flags describing drive: Bit(s) Description (Table 02604) 0 fixed media 1 door lock ("changeline") supported 2 current BPB locked 3 all sectors in a track are the same size 4 physical drive has multiple logical units 5 current logical drive for shared physical drive 6 disk change detected 7 device parameters were changed (set DASD before formatting). (see #01560 at INT 21/AX=440Dh"DOS 3.2+") 8 disk reformatted (BPB of current media was changed) 9 access flag (fixed media only, disables reads and writes). (see #01566 at INT 21/AX=440Dh"DOS 3.2+")

Category: DOS Kernel - Int 2Fh - D

------

Prev Next Ralf Interrups Categories Contents