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