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

59 lines
2.6 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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