[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Format of DOS 2.x system file tables:
Offset  Size    Description
 00h    DWORD   pointer to next file table (offset FFFFh if last)
 04h    WORD    number of files in this table
 06h  28h bytes per file
        Offset  Size    Description
         00h    BYTE    number of file handles referring to this file
         01h    BYTE    file open mode (see AH=3Dh)
         02h    BYTE    file attribute
         03h    BYTE    drive (0 = character device, 1 = A, 2 = B, etc)
         04h 11 BYTEs   filename in FCB format (no path,no period,blank-padded)
         0Fh    WORD    ???
         11h    WORD    ???
         13h    DWORD   file size???
         17h    WORD    file date in packed format (see AX=5700h)
         19h    WORD    file time in packed format (see AX=5700h)
         1Bh    BYTE    device attribute (see AX=4400h)
        ---character device---
         1Ch    DWORD   pointer to device driver
        ---block device---
         1Ch    WORD    starting cluster of file
         1Eh    WORD    relative cluster in file of last cluster accessed
        ------
         20h    WORD    absolute cluster number of current cluster
         22h    WORD    ???
         24h    DWORD   current file position???

Format of DOS 3.0 system file tables and FCB tables:
Offset  Size    Description
 00h    DWORD   pointer to next file table (offset FFFFh if last)
 04h    WORD    number of files in this table
 06h  38h bytes per file
        Offset  Size    Description
         00h-1Eh as for DOS 3.1+ (see below)
         1Fh    WORD    byte offset of directory entry within sector
         21h 11 BYTES   filename in FCB format (no path/period, blank-padded)
         2Ch    DWORD   (SHARE.EXE) pointer to previous SFT sharing same file
         30h    WORD    (SHARE.EXE) ??? network machine number
         32h    WORD    PSP segment of file's owner (first three entries for
                        AUX/CON/PRN contain segment of IO.SYS startup code)
         34h    WORD    (SHARE.EXE) offset in SHARE code seg of share record
         36h    WORD    ??? apparently always 0000h

Format of DOS 3.1-3.3x system file tables and FCB tables:
Offset  Size    Description
 00h    DWORD   pointer to next file table (offset FFFFh if last)
 04h    WORD    number of files in this table
 06h  35h bytes per file
        Offset  Size    Description
         00h    WORD    number of file handles referring to this file
         02h    WORD    file open mode (see AH=3Dh)
                        bit 15 set if this file opened via FCB
         04h    BYTE    file attribute (see AX=4301h)
         05h    WORD    device info word (see AX=4400h)
                        bit 15 set if remote file
                        bit 14 set means do not set file date/time on closing
                        bit 12 set means don't inherit on EXEC
                        bits 5-0 drive number for disk files
         07h    DWORD   pointer to device driver header if character device
                        else pointer to DOS Drive Parameter Block (see AH=32h)
         0Bh    WORD    starting cluster of file
         0Dh    WORD    file time in packed format (see AX=5700h)
         0Fh    WORD    file date in packed format (see AX=5700h)
         11h    DWORD   file size
        ---system file table---
         15h    DWORD   current offset in file (may be larger than size of
                        file; INT 21/AH=42h does not check new position)
        ---FCB table---
         15h    WORD    counter for last I/O to FCB
         17h    WORD    counter for last open of FCB
                        (these are separate to determine the times of the
                        latest I/O and open)
        ---
         19h    WORD    relative cluster within file of last cluster accessed
         1Bh    WORD    absolute cluster number of last cluster accessed
                        0000h if file never read or written???
         1Dh    WORD    number of sector containing directory entry
         1Fh    BYTE    number of dir entry within sector (byte offset/32)
         20h 11 BYTEs   filename in FCB format (no path/period, blank-padded)
         2Bh    DWORD   (SHARE.EXE) pointer to previous SFT sharing same file
         2Fh    WORD    (SHARE.EXE) network machine number which opened file
         31h    WORD    PSP segment of file's owner (see AH=26h) (first three
                        entries for AUX/CON/PRN contain segment of IO.SYS
                        startup code)
         33h    WORD    offset within SHARE.EXE code segment of
                        sharing record (see above)  0000h = none

Format of DOS 4.0-5.0 system file tables and FCB tables:
Offset  Size    Description
 00h    DWORD   pointer to next file table (offset FFFFh if last)
 04h    WORD    number of files in this table
 06h  3Bh bytes per file
        Offset  Size    Description
         00h    WORD    number of file handles referring to this file
         02h    WORD    file open mode (see AH=3Dh)
                        bit 15 set if this file opened via FCB
         04h    BYTE    file attribute (see AX=4301h)
         05h    WORD    device info word (see AX=4400h)
                        bit 15 set if remote file
                        bit 14 set means do not set file date/time on closing
                        bit 13 set if named pipe
                        bit 12 set if no inherit
                        bit 11 set if network spooler
         07h    DWORD   pointer to device driver header if character device
                        else pointer to DOS Drive Parameter Block (see AH=32h)
                        or REDIR data
         0Bh    WORD    starting cluster of file
         0Dh    WORD    file time in packed format (see AX=5700h)
         0Fh    WORD    file date in packed format (see AX=5700h)
         11h    DWORD   file size
         15h    DWORD   current offset in file
        ---local file---
         19h    WORD    relative cluster within file of last cluster accessed
         1Bh    DWORD   number of sector containing directory entry
         1Fh    BYTE    number of dir entry within sector (byte offset/32)
        ---network redirector---
         19h    DWORD   pointer to REDIRIFS record
         1Dh  3 BYTEs   ???
        ------
         20h 11 BYTEs   filename in FCB format (no path/period, blank-padded)
         2Bh    DWORD   (SHARE.EXE) pointer to previous SFT sharing same file
         2Fh    WORD    (SHARE.EXE) network machine number which opened file
         31h    WORD    PSP segment of file's owner (see AH=26h) (first three
                        entries for AUX/CON/PRN contain segment of IO.SYS
                        startup code)
         33h    WORD    offset within SHARE.EXE code segment of
                        sharing record (see above)  0000h = none
         35h    WORD    (local) absolute cluster number of last clustr accessed
                        (redirector) ???
         37h    DWORD   pointer to IFS driver for file, 0000000h if native DOS

This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson