diff options
Diffstat (limited to 'v4.0/src/INC/DEVSYM.INC')
| -rw-r--r-- | v4.0/src/INC/DEVSYM.INC | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/v4.0/src/INC/DEVSYM.INC b/v4.0/src/INC/DEVSYM.INC new file mode 100644 index 0000000..951a894 --- /dev/null +++ b/v4.0/src/INC/DEVSYM.INC | |||
| @@ -0,0 +1,207 @@ | |||
| 1 | %OUT DEVSYM.INC... | ||
| 2 | ; SCCSID = @(#)DEVSYM.ASM 1.10 85/09/04 | ||
| 3 | ; SCCSID = @(#)DEVSYM.ASM 1.10 85/09/04 | ||
| 4 | |||
| 5 | ; THE DEVICE TABLE LIST HAS THE FORM: | ||
| 6 | SYSDEV STRUC | ||
| 7 | SDEVNEXT DD ? ;POINTER TO NEXT DEVICE HEADER | ||
| 8 | SDEVATT DW ? ;ATTRIBUTES OF THE DEVICE | ||
| 9 | SDEVSTRAT DW ? ;STRATEGY ENTRY POINT | ||
| 10 | SDEVINT DW ? ;INTERRUPT ENTRY POINT | ||
| 11 | SDEVNAME DB 8 DUP (?) ;NAME OF DEVICE (ONLY FIRST BYTE USED FOR BLOCK) | ||
| 12 | SYSDEV ENDS | ||
| 13 | |||
| 14 | ; | ||
| 15 | ; ATTRIBUTE BIT MASKS | ||
| 16 | ; | ||
| 17 | ; CHARACTER DEVICES: | ||
| 18 | ; | ||
| 19 | ; BIT 15 -> MUST BE 1 | ||
| 20 | ; 14 -> 1 IF THE DEVICE UNDERSTANDS IOCTL CONTROL STRINGS | ||
| 21 | ; 13 -> 1 IF THE DEVICE SUPPORTS OUTPUT-UNTIL-BUSY | ||
| 22 | ; 12 -> UNUSED | ||
| 23 | ; 11 -> 1 IF THE DEVICE UNDERSTANDS OPEN/CLOSE | ||
| 24 | ; 10 -> MUST BE 0 | ||
| 25 | ; 9 -> MUST BE 0 | ||
| 26 | ; 8 -> UNUSED | ||
| 27 | ; 7 -> UNUSED | ||
| 28 | ; 6 -> UNUSED | ||
| 29 | ; 5 -> UNUSED | ||
| 30 | ; 4 -> 1 IF DEVICE IS RECIPIENT OF INT 29H | ||
| 31 | ; 3 -> 1 IF DEVICE IS CLOCK DEVICE | ||
| 32 | ; 2 -> 1 IF DEVICE IS NULL DEVICE | ||
| 33 | ; 1 -> 1 IF DEVICE IS CONSOLE OUTPUT | ||
| 34 | ; 0 -> 1 IF DEVICE IS CONSOLE INPUT | ||
| 35 | ; | ||
| 36 | ; BLOCK DEVICES: | ||
| 37 | ; | ||
| 38 | ; BIT 15 -> MUST BE 0 | ||
| 39 | ; 14 -> 1 IF THE DEVICE UNDERSTANDS IOCTL CONTROL STRINGS | ||
| 40 | ; 13 -> 1 IF THE DEVICE DETERMINES MEDIA BY EXAMINING THE FAT ID BYTE. | ||
| 41 | ; THIS REQUIRES THE FIRST SECTOR OF THE FAT TO *ALWAYS* RESIDE IN | ||
| 42 | ; THE SAME PLACE. | ||
| 43 | ; 12 -> UNUSED | ||
| 44 | ; 11 -> 1 IF THE DEVICE UNDERSTANDS OPEN/CLOSE/REMOVABLE MEDIA | ||
| 45 | ; 10 -> MUST BE 0 | ||
| 46 | ; 9 -> MUST BE 0 | ||
| 47 | ; 8 -> UNUSED | ||
| 48 | ; 7 -> UNUSED | ||
| 49 | ; 6 -> IF DEVICE HAS SUPPORT FOR GETMAP/SETMAP OF LOGICAL DRIVES. | ||
| 50 | ; IF THE DEVICE UNDERSTANDS GENERIC IOCTL FUNCTION CALLS. | ||
| 51 | ; 5 -> UNUSED | ||
| 52 | ; 4 -> UNUSED | ||
| 53 | ; 3 -> UNUSED | ||
| 54 | ; 2 -> UNUSED | ||
| 55 | ; 1 -> UNUSED | ||
| 56 | ; 0 -> UNUSED | ||
| 57 | ; | ||
| 58 | |||
| 59 | DEVTYP EQU 8000H ; BIT 15 - 1 IF CHAR, 0 IF BLOCK | ||
| 60 | CHARDEV EQU 8000H | ||
| 61 | DEVIOCTL EQU 4000H ; BIT 14 - CONTROL MODE BIT | ||
| 62 | ISFATBYDEV EQU 2000H ; BIT 13 - DEVICE USES FAT ID BYTES, | ||
| 63 | ; COMP MEDIA. | ||
| 64 | OUTTILBUSY EQU 2000H ; OUTPUT UNTIL BUSY IS ENABLED | ||
| 65 | ISNET EQU 1000H ; BIT 12 - 1 IF A NET DEVICE, 0 IF | ||
| 66 | ; NOT. CURRENTLY BLOCK ONLY. | ||
| 67 | DEVOPCL EQU 0800H ; BIT 11 - 1 IF THIS DEVICE HAS | ||
| 68 | ; OPEN,CLOSE AND REMOVABLE MEDIA | ||
| 69 | ; ENTRY POINTS, 0 IF NOT | ||
| 70 | |||
| 71 | EXTENTBIT EQU 0400H ; BIT 10 - CURRENTLY 0 ON ALL DEVS | ||
| 72 | ; THIS BIT IS RESERVED FOR FUTURE USE | ||
| 73 | ; TO EXTEND THE DEVICE HEADER BEYOND | ||
| 74 | ; ITS CURRENT FORM. | ||
| 75 | |||
| 76 | ; NOTE BIT 9 IS CURRENTLY USED ON IBM SYSTEMS TO INDICATE "DRIVE IS SHARED". | ||
| 77 | ; SEE IOCTL FUNCTION 9. THIS USE IS NOT DOCUMENTED, IT IS USED BY SOME | ||
| 78 | ; OF THE UTILITIES WHICH ARE SUPPOSED TO FAIL ON SHARED DRIVES ON SERVER | ||
| 79 | ; MACHINES (FORMAT,CHKDSK,RECOVER,..). | ||
| 80 | |||
| 81 | DEV320 EQU 0040H ;BIT 6 - FOR BLOCK DEVICES, THIS | ||
| 82 | ;DEVICE SUPPORTS SET/GET MAP OF | ||
| 83 | ;LOGICAL DRIVES, AND SUPPORTS | ||
| 84 | ;GENERIC IOCTL CALLS. | ||
| 85 | ;FOR CHARACTER DEVICES, THIS | ||
| 86 | ;DEVICE SUPPORTS GENERIC IOCTL. | ||
| 87 | ;THIS IS A DOS 3.2 DEVICE DRIVER. | ||
| 88 | ISSPEC EQU 0010H ;BIT 4 - THIS DEVICE IS SPECIAL | ||
| 89 | ISCLOCK EQU 0008H ;BIT 3 - THIS DEVICE IS THE CLOCK DEVICE. | ||
| 90 | ISNULL EQU 0004H ;BIT 2 - THIS DEVICE IS THE NULL DEVICE. | ||
| 91 | ISCOUT EQU 0002H ;BIT 1 - THIS DEVICE IS THE CONSOLE OUTPUT. | ||
| 92 | ISCIN EQU 0001H ;BIT 0 - THIS DEVICE IS THE CONSOLE INPUT. | ||
| 93 | EXTDRVR EQU 0002H ;BIT 1 - BLOCK DEVICE EXTNDED DRIVER | ||
| 94 | |||
| 95 | ;STATIC REQUEST HEADER | ||
| 96 | SRHEAD STRUC | ||
| 97 | REQLEN DB ? ;LENGTH IN BYTES OF REQUEST BLOCK | ||
| 98 | REQUNIT DB ? ;DEVICE UNIT NUMBER | ||
| 99 | REQFUNC DB ? ;TYPE OF REQUEST | ||
| 100 | REQSTAT DW ? ;STATUS WORD | ||
| 101 | DB 8 DUP(?) ;RESERVED FOR QUEUE LINKS | ||
| 102 | SRHEAD ENDS | ||
| 103 | |||
| 104 | ;STATUS WORD MASKS | ||
| 105 | STERR EQU 8000H ;BIT 15 - ERROR | ||
| 106 | STBUI EQU 0200H ;BIT 9 - BUISY | ||
| 107 | STDON EQU 0100H ;BIT 8 - DONE | ||
| 108 | STECODE EQU 00FFH ;ERROR CODE | ||
| 109 | ; 2/12/KK | ||
| 110 | ; Interim character identifier 2/12/KK | ||
| 111 | Ddkey EQU 0000010000000000B ; 2/12/KK | ||
| 112 | |||
| 113 | ;FUNCTION CODES | ||
| 114 | DEVINIT EQU 0 ;INITIALIZATION | ||
| 115 | DINITHL EQU 26 ;SIZE OF INIT HEADER | ||
| 116 | DEVMDCH EQU 1 ;MEDIA CHECK | ||
| 117 | DMEDHL EQU 15 ;SIZE OF MEDIA CHECK HEADER | ||
| 118 | DEVBPB EQU 2 ;GET BPB | ||
| 119 | DEVRDIOCTL EQU 3 ;IOCTL READ | ||
| 120 | DBPBHL EQU 22 ;SIZE OF GET BPB HEADER | ||
| 121 | DEVRD EQU 4 ;READ | ||
| 122 | DRDWRHL EQU 22 ;SIZE OF RD/WR HEADER | ||
| 123 | DEVRDND EQU 5 ;NON DESTRUCTIVE READ NO WAIT (CHARACTER DEVS) | ||
| 124 | DRDNDHL EQU 14 ;SIZE OF NON DESTRUCTIVE READ HEADER | ||
| 125 | DEVIST EQU 6 ;INPUT STATUS | ||
| 126 | DSTATHL EQU 13 ;SIZE OF STATUS HEADER | ||
| 127 | DEVIFL EQU 7 ;INPUT FLUSH | ||
| 128 | DFLSHL EQU 15 ;SIZE OF FLUSH HEADER | ||
| 129 | DEVWRT EQU 8 ;WRITE | ||
| 130 | DEVWRTV EQU 9 ;WRITE WITH VERIFY | ||
| 131 | DEVOST EQU 10 ;OUTPUT STATUS | ||
| 132 | DEVOFL EQU 11 ;OUTPUT FLUSH | ||
| 133 | DEVWRIOCTL EQU 12 ;IOCTL WRITE | ||
| 134 | DEVOPN EQU 13 ;DEVICE OPEN | ||
| 135 | DEVCLS EQU 14 ;DEVICE CLOSE | ||
| 136 | DOPCLHL EQU 13 ;SIZE OF OPEN/CLOSE HEADER | ||
| 137 | DEVRMD EQU 15 ;REMOVABLE MEDIA | ||
| 138 | REMHL EQU 13 ;SIZE OF REMOVABLE MEDIA HEADER | ||
| 139 | GENIOCTL EQU 19 | ||
| 140 | ; THE NEXT THREE ARE USED IN DOS 4.0 | ||
| 141 | ; 20 | ||
| 142 | ; 21 | ||
| 143 | ; 22 | ||
| 144 | DEVGETOWN EQU 23 ;GET DEVICE OWNER | ||
| 145 | DEVSETOWN EQU 24 ;SET DEVICE OWNER | ||
| 146 | OWNHL EQU 13 ;SIZE OF DEVICE OWNER HEADER | ||
| 147 | |||
| 148 | DEVOUT EQU 16 ; OUTPUT UNTIL BUSY. | ||
| 149 | DEVOUTL EQU DEVWRT ; LENGTH OF OUTPUT UNTIL BUSY | ||
| 150 | |||
| 151 | ; GENERIC IOCTL REQUEST STRUCTURE | ||
| 152 | ; SEE THE DOS 4.0 DEVICE DRIVER SPEC FOR FURTHER ELABORATION. | ||
| 153 | ; | ||
| 154 | IOCTL_REQ STRUC | ||
| 155 | DB (SIZE SRHEAD) DUP(?) | ||
| 156 | ; GENERIC IOCTL ADDITION. | ||
| 157 | MAJORFUNCTION DB ? ;FUNCTION CODE | ||
| 158 | MINORFUNCTION DB ? ;FUNCTION CATEGORY | ||
| 159 | REG_SI DW ? | ||
| 160 | REG_DI DW ? | ||
| 161 | GENERICIOCTL_PACKET DD ? ; POINTER TO DATA BUFFER | ||
| 162 | IOCTL_REQ ENDS | ||
| 163 | |||
| 164 | ; DEFINITIONS FOR IOCTL_REQ.MINORFUNCTION | ||
| 165 | GEN_IOCTL_WRT_TRK EQU 40H | ||
| 166 | GEN_IOCTL_RD_TRK EQU 60H | ||
| 167 | GEN_IOCTL_FN_TST EQU 20H ; USED TO DIFF. BET READS AND WRTS | ||
| 168 | |||
| 169 | ;; 32-bit absolute read/write input list structure | ||
| 170 | |||
| 171 | ABS_32RW STRUC | ||
| 172 | SECTOR_RBA DD ? ; relative block address | ||
| 173 | ABS_RW_COUNT DW ? ; number of sectors to be transferred | ||
| 174 | BUFFER_ADDR DD ? ; data addrress | ||
| 175 | ABS_32RW ENDS | ||
| 176 | |||
| 177 | ;; media ID info | ||
| 178 | |||
| 179 | MEDIA_ID_INFO STRUC | ||
| 180 | MEDIA_level DW 0 ; info level | ||
| 181 | MEDIA_Serial DD 0 ; serial # | ||
| 182 | MEDIA_Label DB 11 dup (' ') ;volume label | ||
| 183 | MEDIA_System DB 8 dup (' ') ;system type | ||
| 184 | MEDIA_ID_INFO ENDS | ||
| 185 | |||
| 186 | ;; equates for DOS34_FLAG | ||
| 187 | |||
| 188 | IFS_ABSRW EQU 00001H ;IFS absolute read/write | ||
| 189 | NO_IFS_ABSRW EQU 0FFFEH ;no IFS absolute read/write | ||
| 190 | IFS_DRIVE_RESET EQU 00002H ;IFS drvive reset | ||
| 191 | NO_IFS_DRIVE_RESET EQU 0FFFDH ;no IFS drive reset | ||
| 192 | FROM_DISK_RESET EQU 00004H ;from disk reset | ||
| 193 | NO_FROM_DISK_RESET EQU 0FFFBH ;not from disk reset | ||
| 194 | From_String_Output EQU 00008H ;from con string output | ||
| 195 | NO_From_String_Output EQU 0FFF7H ;not from con string output | ||
| 196 | From_DOS_WRITE EQU 00010H ;from dos_write | ||
| 197 | NO_From_DOS_WRITE EQU 0FFEFH ;not from dos_write | ||
| 198 | Force_I24_Fail EQU 00020H ;form IFS CALL BACK | ||
| 199 | NO_Force_I24_Fail EQU 0FFDFH ;not form IFS CALL BACK | ||
| 200 | Disable_EOF_I24 EQU 00040H ;disable EOF int24 for input status | ||
| 201 | NO_Disable_EOF_I24 EQU 0FFBFH ;disable EOF int24 for input status | ||
| 202 | DBCS_VOLID EQU 00080H ;indicate from volume id | ||
| 203 | DBCS_VOLID2 EQU 00100H ;indicate 8th char is DBCS | ||
| 204 | CTRL_BREAK_FLAG EQU 00200H ;indicate control break is input | ||
| 205 | NO_CTRL_BREAK_FLAG EQU 0FDFFH ;reset control break | ||
| 206 | SEARCH_FASTOPEN EQU 00400H ;set fastopen flag for search | ||
| 207 | X25_special EQU 00800H ;flag for X25 driver | ||