diff options
Diffstat (limited to 'v4.0/src/DEV/DISPLAY/DEF-EQU.INC')
| -rw-r--r-- | v4.0/src/DEV/DISPLAY/DEF-EQU.INC | 290 |
1 files changed, 290 insertions, 0 deletions
diff --git a/v4.0/src/DEV/DISPLAY/DEF-EQU.INC b/v4.0/src/DEV/DISPLAY/DEF-EQU.INC new file mode 100644 index 0000000..03e2cdb --- /dev/null +++ b/v4.0/src/DEV/DISPLAY/DEF-EQU.INC | |||
| @@ -0,0 +1,290 @@ | |||
| 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 2 | ; *** DEF-EQU *** DEF-EQU *** DEF-EQU *** | ||
| 3 | ; | ||
| 4 | ; EQU's, STRUC's, and OTHER | ||
| 5 | ; | ||
| 6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 7 | ;Modification history ********************************************************* | ||
| 8 | ;AN001; D358 New device driver INIT function package 12/07/87 J.K. | ||
| 9 | ;AN002; D493 Undo D358 02/24/88 J.K. | ||
| 10 | ;AN003; D4934 Change ANSI 2F function number to 1Ah 05/20/88 F.G. | ||
| 11 | ;****************************************************************************** | ||
| 12 | IF1 ; | ||
| 13 | %OUT . ŽDEF-EQU .INC¯ | ||
| 14 | ENDIF ; | ||
| 15 | ZERO EQU 0H ; | ||
| 16 | ONE EQU 1H ; | ||
| 17 | TWO EQU 2H ; | ||
| 18 | THREE EQU 3H ; | ||
| 19 | FOUR EQU 4H ; | ||
| 20 | FIVE EQU 5H ; | ||
| 21 | SIX EQU 6H ; | ||
| 22 | SEVEN EQU 7H ; | ||
| 23 | EIGHT EQU 8H ; | ||
| 24 | NINE EQU 9H ; | ||
| 25 | TEN EQU 0AH ; | ||
| 26 | ELEVEN EQU 0BH ; | ||
| 27 | TWELVE EQU 0CH ; | ||
| 28 | ; | ||
| 29 | FAIL EQU 8000H ; fail in designate | ||
| 30 | ; | ||
| 31 | NOT_CY EQU 0FFFEH ; | ||
| 32 | CY EQU ONE ; | ||
| 33 | ; | ||
| 34 | ID_IOCTL EQU 5 ; MAJOR FNCT # FOR 'other' DEVICE | ||
| 35 | ; | ||
| 36 | RH EQU ES:[DI] ; addressability to Request Header | ||
| 37 | ; | ||
| 38 | RHC STRUC ; fields common to all request types | ||
| 39 | DB ? ; length of Request Header | ||
| 40 | DB ? ; unit code (subunit) | ||
| 41 | RHC_CMD DB ? ; command code | ||
| 42 | RHC_STA DW ? ; status | ||
| 43 | DQ ? ; reserved for DOS | ||
| 44 | RHC ENDS ; end of common portion | ||
| 45 | ; | ||
| 46 | CMD_INPUT EQU 4 ; RHC_CMD is INPUT request | ||
| 47 | ; | ||
| 48 | ; Status values for RHC_STA | ||
| 49 | STAT_DONE EQU 0001H ; function complete - high order byte | ||
| 50 | STAT_CMDERR EQU 8000H ; Error code | ||
| 51 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 52 | ; | ||
| 53 | ; DEVICE Header DS:[SI] -- to locate the next CON header | ||
| 54 | ; NEXT device header ES:[DI] | ||
| 55 | ; | ||
| 56 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 57 | HP EQU DS:[SI] ; | ||
| 58 | NHD EQU ES:[DI] ; | ||
| 59 | ; | ||
| 60 | NAME_LEN EQU 8 ; | ||
| 61 | ; | ||
| 62 | DHS STRUC ; | ||
| 63 | DH_NEXTO DW ? ; offset of pointer to next header | ||
| 64 | DH_NEXTS DW ? ; segment of pointer to next header | ||
| 65 | DW ? ; attribute | ||
| 66 | DH_STRAO DW ? ; offset to strategy routine | ||
| 67 | DH_INTRO DW ? ; offset to interrupt routine | ||
| 68 | DH_NAME DB NAME_LEN DUP(0) ; device name in this header | ||
| 69 | DHS ENDS ; end of common portion | ||
| 70 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 71 | ; | ||
| 72 | ; Request Header for INIT | ||
| 73 | ; | ||
| 74 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 75 | RH0 STRUC ; | ||
| 76 | DB (TYPE RHC) DUP (?) ; | ||
| 77 | ; | ||
| 78 | RH0_UNIT DB ? ; not used for CHAR devices | ||
| 79 | RH0_ENDO DW ? ; offset of ending address | ||
| 80 | RH0_ENDS DW ? ; segment of ending address | ||
| 81 | RH0_BPBA DD ? ; POINTER TO BPB FOR CHAR DEVICES | ||
| 82 | db ? ; | ||
| 83 | RH0 ENDS ; | ||
| 84 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 85 | ; | ||
| 86 | ; Request Header for IOCTL | ||
| 87 | ; | ||
| 88 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 89 | RH3 STRUC ; | ||
| 90 | DB (TYPE RHC) DUP (?) ; common portion | ||
| 91 | ; | ||
| 92 | ; | ||
| 93 | DB ? ; media descriptor | ||
| 94 | RH3_DTAO DW ? ; offset of transfer address | ||
| 95 | RH3_DTAS DW ? ; segment of transfer address | ||
| 96 | RH3_CNT DW ? ; byte count | ||
| 97 | RH3 ENDS ; | ||
| 98 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 99 | ; | ||
| 100 | ; IOCTL header format | ||
| 101 | ; | ||
| 102 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 103 | RH_IOCTL STRUC ; | ||
| 104 | STATIC_RH DB 13 DUP(?) ; STANDARD STATIC REQUEST HEADER | ||
| 105 | MAJOR_F DB ? ; MAJOR FUNCTION CALL (SEE DOS 3.30) | ||
| 106 | MINOR_F DB ? ; MINOR FUNCTION CALL (SEE DOS 3.30) | ||
| 107 | CONTENT_SI DW ? ; CONTENTS OF SI | ||
| 108 | CONTENT_DI DW ? ; CONTENTS OF DI | ||
| 109 | REQUEST_PACKET DD ? ; POINTER TO GENERIC IOCTL REQ. PACKET | ||
| 110 | RH_IOCTL ENDS ; | ||
| 111 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 112 | ; | ||
| 113 | ; DESIGNATE BUFFER FORMAT | ||
| 114 | ; | ||
| 115 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 116 | DESG_BUFFER STRUC ; | ||
| 117 | DESG_CARTRIDGE DW ? ; 0=NO CARTRIDGE, 1=CARTRIDGE | ||
| 118 | DESG_LENGTH DW ? ; LENGTH OF REMAINING HEADER | ||
| 119 | DESG_N DW ? ; NUMBER OF CP's DESIGNATED | ||
| 120 | DESG_CP DW ? ; FIRST CP DESIGNATED | ||
| 121 | DESG_BUFFER ENDS ; | ||
| 122 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 123 | ; | ||
| 124 | ; INVOKE BUFFER FORMAT | ||
| 125 | ; | ||
| 126 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 127 | INVK_BUFFER STRUC ; | ||
| 128 | INVK_LENGTH DW ? ; LENGTH OF REMAINING HEADER | ||
| 129 | INVK_CP DW ? ; CP TO INVOKE | ||
| 130 | INVK_BUFFER ENDS ; | ||
| 131 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 132 | ; | ||
| 133 | ; QUERY LIST BUFFER FORMAT | ||
| 134 | ; | ||
| 135 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 136 | QLST_BUFFER STRUC ; | ||
| 137 | QLST_LENGTH DW ? ; LENGTH OF REMAINING HEADER | ||
| 138 | QLST_N_HDWR DW ? ; NUMBER OF HARDWARE CP's | ||
| 139 | QLST_HDWR_CP DW ? ; FIRST HDWR CODE PAGE | ||
| 140 | QLST_N_DESG DW ? ; NUMBER OF DESIGNATED CP's | ||
| 141 | QLST_DESG_CP DW ? ; DESINATED CODE PAGES | ||
| 142 | ; ...there is more data to be | ||
| 143 | ; filled in by the DRIVER | ||
| 144 | QLST_BUFFER ENDS ; | ||
| 145 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 146 | ; | ||
| 147 | ; PARSER STRUC STATEMENTS | ||
| 148 | ; | ||
| 149 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 150 | PARSE_TABLE1 STRUC ; [[[ TABLE 1 ]]] | ||
| 151 | NUM_DEVICES DW ? ; NUMBER OF DEVICES TO SUPPORT | ||
| 152 | DEVICE1_OFFSET DW ? ; (hopefully) CON!!! | ||
| 153 | PARSE_TABLE1 ENDS ; | ||
| 154 | ; | ||
| 155 | PARSE_TABLE2 STRUC ; [[[ TABLE 2 ]]] | ||
| 156 | NUM_ITEMS DW ? ; NUMBER OF ITEMS CREATED BY THE | ||
| 157 | OFFSET_LIST DW ? ; THE 1ST OFFSET OF [ TABLE 2 ] | ||
| 158 | PARSE_TABLE2 ENDS ; PARSER! | ||
| 159 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 160 | ; | ||
| 161 | ; CODE PAGE POINTER STRUCTURE | ||
| 162 | ; | ||
| 163 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 164 | CP_PNTER_STRUC STRUC ; | ||
| 165 | HDWR_CP_STRUC DW ? ; | ||
| 166 | DESG_CP_STRUC DW ? ; | ||
| 167 | FONT_CP_STRUC DW ? ; | ||
| 168 | WRITE_DATA_STRUC DW ? ; | ||
| 169 | FONT_DATA_STRUC DW ? ; | ||
| 170 | CP_PNTER_STRUC ENDS ; | ||
| 171 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 172 | ; | ||
| 173 | ; CON data structure CS:[BX] | ||
| 174 | ; | ||
| 175 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 176 | BUF EQU CS:[BX] ; | ||
| 177 | ; STATES | ||
| 178 | BUF_DATA STRUC ; | ||
| 179 | DEV_HDRO DW -1 ; device driver header offset | ||
| 180 | DEV_HDRS DW -1 ; | ||
| 181 | CON_STRAO DW -1 ; dos CON strategy offset | ||
| 182 | CON_STRAS DW -1 ; | ||
| 183 | CON_INTRO DW -1 ; dos CON strategy offset | ||
| 184 | CON_INTRS DW -1 ; | ||
| 185 | RH_PTRO DW -1 ; request header offset | ||
| 186 | RH_PTRS DW -1 ; segment | ||
| 187 | STATE DW ? ; | ||
| 188 | STATUS DW ? ; | ||
| 189 | BUF_DATA ENDS ; | ||
| 190 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 191 | ; | ||
| 192 | ; General Constants | ||
| 193 | ; | ||
| 194 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 195 | INT_2F_LOW EQU (4*2FH) ; INTERRUPT 2FH CON/KEYB COMMUNICATION | ||
| 196 | INT_2F_HI EQU (4*2FH)+2 ; | ||
| 197 | INT_43_LOW EQU (4*43H) ; INTERRUPT 43H 0-255 CHARACTER VECTOR | ||
| 198 | INT_43_HI EQU (4*43H)+2 ; | ||
| 199 | INT_44_LOW EQU (4*44H) ; INTERRUPT 44H 0-255 CHARACTER VECTOR | ||
| 200 | INT_44_HI EQU (4*44H)+2 ; | ||
| 201 | INT_1F_LOW EQU (4*1FH) ; INTERRUPT 1FH EXTENDED CHARACTER SUPPORT | ||
| 202 | INT_1F_HI EQU (4*1FH)+2 ; | ||
| 203 | INT_10_LOW EQU (4*10H) ; INTERRUPT 10H fix FOR PALACE | ||
| 204 | INT_10_HI EQU (4*10H)+2 ; | ||
| 205 | GET_MODE EQU 0FH ; WGR ;AN000; | ||
| 206 | ON EQU 1 ; WGR ;AN000; | ||
| 207 | OFF EQU 0 ; WGR ;AN000; | ||
| 208 | RECALC_ON EQU 0010H ; WGR ;AN000; | ||
| 209 | VIDEO_CTRL EQU 487H ; WGR ;AN000; | ||
| 210 | ANSI_BUF_SIZE EQU 14 ; WGR ;AN000; | ||
| 211 | DEFAULT_LEN EQU 25 ; WGR ;AN000; | ||
| 212 | NUMBER EQU 1 ; WGR ;AN000; | ||
| 213 | STRING EQU 3 ; WGR ;AN000; | ||
| 214 | COMPLEX EQU 4 ; WGR ;AN000; | ||
| 215 | RC_EOL EQU -1 ; WGR ;AN000; | ||
| 216 | RC_NO_ERROR EQU 0 ; WGR ;AN000; | ||
| 217 | FUNC_CALL EQU 1BH ; WGR ;AN000; | ||
| 218 | VGA_FOUND EQU 00000001B ; WGR ;AN000; | ||
| 219 | EGA_FOUND EQU 00000001B ; WGR ;AN000; | ||
| 220 | LCD_FOUND EQU 00000010B ; WGR ;AN000; | ||
| 221 | CGA_FOUND EQU 00000100B ; WGR ;AN000; | ||
| 222 | MONO_FOUND EQU 00001000B ; WGR ;AN000; | ||
| 223 | ALT_SELECT EQU 12H ; WGR ;AN000; | ||
| 224 | EGA_INFO_CALL EQU 10H ; WGR ;AN000; | ||
| 225 | GET_SYS_ID EQU 0C0H ; WGR ;AN000; | ||
| 226 | GET_STATUS EQU 43H ; WGR ;AN000; | ||
| 227 | LCD_MODEL EQU 0F9H ; WGR ;AN000; | ||
| 228 | COLOR_ADDRESS EQU 0B800H ; WGR ;AN000; | ||
| 229 | MONO_ADDRESS EQU 0B000H ; WGR ;AN000; | ||
| 230 | ERROR_1 EQU 2 ; WGR ;AN000; | ||
| 231 | ERROR_2 EQU 12 ; WGR ;AN000; | ||
| 232 | ERROR_3 EQU 8 ; WGR ;AN000; | ||
| 233 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 234 | ; | ||
| 235 | ; *** INT 2Fh used | ||
| 236 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 237 | |||
| 238 | ANSI_2F EQU 1Ah ; WGR Muliflex number for ANSI ;AC003; | ||
| 239 | ;Catagory code | ||
| 240 | IOCTL_2F EQU 1h ; | ||
| 241 | DA_INFO_2F EQU 2h ;J.K. Information passing to ANSI. | ||
| 242 | ;Subfunction code for IOCTL_2F | ||
| 243 | GET_SUBFUNC EQU 7FH ; WGR Same structure as GET_IOCTL(ANSI);AN000; | ||
| 244 | |||
| 245 | ;Info Struture for DA_INFO_2F. (DS:DX point to this packet) | ||
| 246 | ;J.K. Note: For DOS 4.00, DA_INFO_PACKET is used to signal ANSI.SYS that | ||
| 247 | ;DISPLAY.SYS is calling/finishing INT 10h SET MODE call. ANSI.SYS needs this | ||
| 248 | ;infomration since it also hooks INT 10h vector. | ||
| 249 | ;For this DA_SETMODE_FLAG purpose, DA_INFO_LEVEL and DA_INFO_DIRECTION should always be | ||
| 250 | ;set to 0. This can be extended for another information passing scheme between | ||
| 251 | ;DISPLAY.SYS and ANSI.SYS in the future version. | ||
| 252 | ;For DA_SETMODE_FLAG, DISPLAY.SYS should be extremely careful that when it calls | ||
| 253 | ;with DA_SETMODE_FLAG =1, then it should calls with DA_SETMODE_FLAG=0 | ||
| 254 | ;when it finished INT 10h function call. Otherwise, the system goes ..... | ||
| 255 | DA_INFO_PACKET struc | ||
| 256 | DA_INFO_LEVEL db 0 ; 0 for DA_SETMODE_FLAG, 1 for DA_OPTION_L_STATE query (for OS2 compat. box). | ||
| 257 | DA_SETMODE_FLAG db 0 ; 1: DISPLAY.SYS is calling INT 10h call, SET MODE. 0= finished. | ||
| 258 | DA_OPTION_L_STATE db 0 ; on return from ANSI, 1 = ANSI /L option active, 0 = inactive. | ||
| 259 | DA_INFO_PACKET ends | ||
| 260 | |||
| 261 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 262 | ; | ||
| 263 | ; *** DEF-EQU *** DEF-EQU *** DEF-EQU *** | ||
| 264 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 265 | ; | ||
| 266 | ; Information Block Structure | ||
| 267 | ; (for functionality call) | ||
| 268 | ; | ||
| 269 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 270 | INFO_BLOCK STRUC ; info block for functionality call ;AN000; | ||
| 271 | STATIC_ADDRESS DD ? ; address of static functionality table;AN000; | ||
| 272 | DB 33 DUP(?) ; don't care ;AN000; | ||
| 273 | ACTIVE_DISPLAY DB ? ; active display code ;AN000; | ||
| 274 | ALT_DISPLAY DB ? ; alternate display code ;AN000; | ||
| 275 | DB 3 DUP(?) ; don't care ;AN000; | ||
| 276 | CURRENT_SCANS DB ? ; current number of scan lines ;AN000; | ||
| 277 | DB 2 DUP(?) ; don't care ;AN000; | ||
| 278 | MISC_INFO DB ? ; miscellaneous state information ;AN000; | ||
| 279 | DB 18 DUP(?) ; don't care ;AN000; | ||
| 280 | INFO_BLOCK ENDS ; | ||
| 281 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 282 | ; | ||
| 283 | ; Structure of System ID call return block | ||
| 284 | ; | ||
| 285 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 286 | SYS_ID STRUC ; format of return system config data ;AN000; | ||
| 287 | DW ? ; don't care ;AN000; | ||
| 288 | MODEL_BYTE DB ? ; model byte ;AN000; | ||
| 289 | SYS_ID ENDS ; ;AN000; | ||
| 290 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||