;==================================================================
;*** Structures for DOS 5.00 programming
;==================================================================
;MS-DOS 5.00 Prog. Ref. pg 34
;PC Source Book, pg 2-27
BOOTSECTOR STRUC
bsJump db 3 DUP (?) ;E9 XX XX or EB XX 90
bsOemName db '????????' ;OEM name and version
;Start of BIOS parameter block
bsBytesPerSec dw ? ;Bytes/sector
bsSecPerClust db ? ;Sectors/cluster
bsResSectors dw ? ;Number of reserved sectors
bsFATs db ? ;Number of file allocation tables
bsRootDirEnts dw ? ;Number of root directory entries
bsSectors dw ? ;Total number of sectors
bsMedia db ? ;Media Descriptor
bsFATsecs dw ? ;Number of sectors/FAT
bsSecPerTrack dw ? ;Number of sectors/track
bsHeads dw ? ;Number of heads
bsHiddenSecs dd ? ;Number of hidden sectors
bsHugeSectors dd ? ;Number of sectors if bsSectors=0
;End of BIOS parameter block
bsDriveNumber db ? ;Drive number (80h)
bsReserved1 db ? ;Reserved
bsBootSignature db ? ;Extended boot signature (29h)
bsVolumeID dd ? ;Volumn ID number
bsFileSysType db 8 dup(?) ;File-system type
BOOTSECTOR ENDS
; page 38
DIRENTRY STRUC
deName db 8 DUP (0) ;File Name
deExtension db 3 DUP (0) ;File Extension
deAttribute db 0 ;File Attributes
deReserved db 10 DUP (?) ;Reserved by DOS
deTime dw ? ;Time
deDate dw ? ;Date
deStartCluster dw ? ;Starting Cluster
deFileSize dd ? ;File Size
DIRENTRY ENDS
DIRENTRY_SIZE EQU 8+3+1+10+2*3+4
EQU_deName EQU 0 ;File Name
EQU_deExtension EQU 8 ;File Extension
EQU_deAttribute EQU 11 ;File Attributes
EQU_deReserved EQU 12 ;Reserved by DOS
EQU_deTime EQU 22 ;Time
EQU_deDate EQU 24 ;Date
EQU_deStartCluster EQU 26 ;Starting Cluster
EQU_deFileSize EQU 28 ;File Size
; pg. 40
DISKIO STRUC
diStartSector dd ? ;Starting sector number
diSectors dw ? ;Number of sectors
diBuffer dd ? ;Address of buffer
DISKIO ENDS
; pg. 41
DPB STRUC
dpbDrive db ? ;Drive number
dpbUnit db ? ;Unit number for driver
dpbSectorSize dw ? ;Sector size in bytes
dpbClusterMask db ? ;Sectors per cluster - 1
dpbClusterShift db ? ;Sectors per cluster, as power of 2
dpbFirstFAT dw ? ;First sector containing FAT
dpbFATCount db ? ;Number of FATs
dpbRootEntries dw ? ;Number of root-directory entries
dpbFirstSector dw ? ;First sector of first cluster
dpbMaxCluster dw ? ;Number of clusters on drive + 1
dpbFATSize dw ? ;Number of sectors occupied by FAT
dpbDirSector dw ? ;First sector containing the root dir
dpbDriverAddr dd ? ;Address of device driver
dpbMedia db ? ;Media descriptor
dpbFirstAccess db ? ;Indicates access to drive
dpbNextDPB dd ? ;Address of next drive parameter block
dpbNextFree dw ? ;Last allocated cluster
dpbFreeCnt dw ? ;Number of free clusters
DPB ENDS
DPB_SIZE EQU 33
;page 228
EXTENDEDFCB STRUC
extSignature db 0ffh ;Extended FCB signature
extReserved1 db 5 dup (0) ;Reserved by DOS
extAttribute db 0 ;File attribute byte
;File control block (FCB)
extDriveID db 0 ;Drive # (0=default, 1=A, etc)
extFileName db 8 dup (' ') ;Filename
extExtent db 3 dup (' ') ;File extension
extCurBlockNo dw 0 ;Current block number
extRecSize dw 0 ;Record size
extFileSize dd 0 ;Size of file, in bytes
extFileDate dw 0 ;Date file last modified
extFileTime dw 0 ;Time file last modified
extReserved2 db 8 dup (0) ;Reserved by DOS
extCurRecNo db 0 ;Current record number
extRandomRecNo dd 0 ;Random record number
EXTENDEDFCB ENDS
EQU_extSignature EQU 0 ;Extended FCB signature
EQU_extReserved1 EQU 1 ;Reserved by DOS
EQU_extAttribute EQU 6 ;File attribute byte
;File control block (FCB)
EQU_extDriveID EQU 7 ;Drive # (0=default, 1=A, etc)
EQU_extFileName EQU 8 ;Filename
EQU_extExtent EQU 16 ;File extension
EQU_extCurBlockNo EQU 19 ;Current block number
EQU_extRecSize EQU 21 ;Record size
EQU_extFileSize EQU 23 ;Size of file, in bytes
EQU_extFileDate EQU 27 ;Date file last modified
EQU_extFileTime EQU 29 ;Time file last modified
EQU_extReserved2 EQU 31 ;Reserved by DOS
EQU_extCurRecNo EQU 39 ;Current record number
EQU_extRandomRecNo EQU 40 ;Random record number
;For int 21:11,12 - Find First File with FCB (pg 228)
FCB STRUC
fcbDriveID db ? ;Drive # (0=default, 1=A, etc)
fcbFileName db 8 dup (?) ;Filename
fcbExtent db 3 dup (?) ;File extension
fcbCurBlockNo dw 0 ;Current block number
fcbRecSize dw 0 ;Record size
fcbFileSize db 4 dup (0) ;Size of file in bytes
fcbFileDate dw 0 ;Date file last modified
fcbFileTime dw 0 ;Time file last modified
fcbReserved db 8 dup (0) ;Reserved by DOS
fcbCurRecNo db 0 ;Current record number
fcbRandomRecNo dd 0 ;Random record number
FCB ENDS
;pg 231
EXTHEADER STRUC
ehSignature db 0ffh ;Extended signature
ehReserved db 5 dup (0) ;Reserved
ehSearchAttrs db ? ;Attribute byte
EXTHEADER ENDS
MID STRUC
midInfoLevel dw 0 ;Information level
midSerialNum dd ? ;Serial number
midVolLabel db 11 dup (?) ;ASCII volume label
midFileSysType db 8 dup (?) ;File system type
MID ENDS