home *** CD-ROM | disk | FTP | other *** search
- 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