MS-DOS/v2.0/source/DEVSYM.ASM

59 lines
2.6 KiB
NASM
Raw Normal View History

1983-08-13 01:53:34 +01:00
SUBTTL DEVICE TABLE AND SRH DEFINITION
PAGE
; The device table list has the form:
SYSDEV STRUC
SDEVNEXT DD ? ;Pointer to next device header
SDEVATT DW ? ;Attributes of the device
SDEVSTRAT DW ? ;Strategy entry point
SDEVINT DW ? ;Interrupt entry point
SDEVNAME DB 8 DUP (?) ;Name of device (only first byte used for block)
SYSDEV ENDS
;Attribute bit masks
DEVTYP EQU 8000H ;Bit 15 - 1 if Char, 0 if block
DEVIOCTL EQU 4000H ;Bit 14 - CONTROL mode bit
ISFATBYDEV EQU 2000H ;Bit 13 - Device uses FAT ID bytes, comp media.
ISCIN EQU 0001H ;Bit 0 - This device is the console input.
ISCOUT EQU 0002H ;Bit 1 - This device is the console output.
ISNULL EQU 0004H ;Bit 2 - This device is the null device.
ISCLOCK EQU 0008H ;Bit 3 - This device is the clock device.
ISIBM EQU 0010H ;Bit 4 - This device is special
;Static Reguest Header
SRHEAD STRUC
REQLEN DB ? ;Length in bytes of request block
REQUNIT DB ? ;Device unit number
REQFUNC DB ? ;Type of request
REQSTAT DW ? ;Status Word
DB 8 DUP(?) ;Reserved for queue links
SRHEAD ENDS
;Status word masks
STERR EQU 8000H ;Bit 15 - Error
STBUI EQU 0200H ;Bit 9 - Buisy
STDON EQU 0100H ;Bit 8 - Done
STECODE EQU 00FFH ;Error code
WRECODE EQU 0
;Function codes
DEVINIT EQU 0 ;Initialization
DINITHL EQU 26 ;Size of init header
DEVMDCH EQU 1 ;Media check
DMEDHL EQU 15 ;Size of media check header
DEVBPB EQU 2 ;Get BPB
DEVRDIOCTL EQU 3 ;IOCTL read
DBPBHL EQU 22 ;Size of Get BPB header
DEVRD EQU 4 ;Read
DRDWRHL EQU 22 ;Size of RD/WR header
DEVRDND EQU 5 ;Non destructive read no wait (character devs)
DRDNDHL EQU 14 ;Size of non destructive read header
DEVIST EQU 6 ;Input status
DSTATHL EQU 13 ;Size of status header
DEVIFL EQU 7 ;Input flush
DFLSHL EQU 15 ;Size of flush header
DEVWRT EQU 8 ;Write
DEVWRTV EQU 9 ;Write with verify
DEVOST EQU 10 ;Output status
DEVOFL EQU 11 ;Output flush
DEVWRIOCTL EQU 12 ;IOCTL write