diff options
Diffstat (limited to 'v4.0/src/DEV/PRINTER/CPSPEQU.INC')
| -rw-r--r-- | v4.0/src/DEV/PRINTER/CPSPEQU.INC | 577 |
1 files changed, 577 insertions, 0 deletions
diff --git a/v4.0/src/DEV/PRINTER/CPSPEQU.INC b/v4.0/src/DEV/PRINTER/CPSPEQU.INC new file mode 100644 index 0000000..ca086cb --- /dev/null +++ b/v4.0/src/DEV/PRINTER/CPSPEQU.INC | |||
| @@ -0,0 +1,577 @@ | |||
| 1 | |||
| 2 | PAGE ,132 | ||
| 3 | |||
| 4 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 5 | ;; | ||
| 6 | ;; FILENAME: CPS Printer Device Driver EQUAL Include | ||
| 7 | ;; MODULE NAME: CPSEQU | ||
| 8 | ;; TYPE: Include File | ||
| 9 | ;; | ||
| 10 | ;; LINK PROCEDURE: See CPSPx.ASM | ||
| 11 | ;; | ||
| 12 | ;; INCLUDE FILES: | ||
| 13 | ;; | ||
| 14 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 15 | ;; | ||
| 16 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 17 | ;; | ||
| 18 | ;; Request Header (Common portion) | ||
| 19 | ;; | ||
| 20 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 21 | ;; | ||
| 22 | RH EQU ES:[DI] ;; addressability to Request Header | ||
| 23 | ;; | ||
| 24 | RHC STRUC ;; fields common to all request types | ||
| 25 | RHC_LEN DB ? ;; length of Request Header | ||
| 26 | DB ? ;; unit code (subunit) | ||
| 27 | RHC_CMD DB ? ;; command code | ||
| 28 | RHC_STA DW ? ;; status | ||
| 29 | DQ ? ;; reserved for DOS | ||
| 30 | RHC ENDS ;; end of common portion | ||
| 31 | ;; | ||
| 32 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 33 | ;; | ||
| 34 | ;; Command in the Request Header | ||
| 35 | ;; (see CMD_CODES table) | ||
| 36 | ;; | ||
| 37 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 38 | ;; | ||
| 39 | CMD_INI EQU 0 ;; init command | ||
| 40 | CMD_WRT EQU 8 ;; write command | ||
| 41 | CMD_GIO EQU 19 ;; generic IOCTL command | ||
| 42 | ;; (see major/minor GIO functions) | ||
| 43 | ;; | ||
| 44 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 45 | ;; | ||
| 46 | ;; status values for RHC_STA | ||
| 47 | ;; | ||
| 48 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 49 | ;; | ||
| 50 | STAT_DONE EQU 01H ;; function complete - high order byte | ||
| 51 | STAT_CMDERR EQU 8003H ;; invalid command code error | ||
| 52 | STAT_ERROR EQU 8000H ;; error returned by normal driver | ||
| 53 | ;; | ||
| 54 | ;; see Generic IOCTL Request Header section | ||
| 55 | ;; for more errorneous status. ;; | ||
| 56 | ;; | ||
| 57 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 58 | ;; | ||
| 59 | ;; Request Header for INIT | ||
| 60 | ;; | ||
| 61 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 62 | ;; | ||
| 63 | ;; | ||
| 64 | RH0 STRUC ;; | ||
| 65 | DB (TYPE RHC) DUP (?) ;; common portion | ||
| 66 | ;; | ||
| 67 | DB ? ;; not used for CHAR devices | ||
| 68 | RH0_ENDO DW ? ;; offset of ending address | ||
| 69 | RH0_ENDS DW ? ;; segment of ending address | ||
| 70 | RH0_BPBA DD ? ;; pointer to BPBA | ||
| 71 | db ? | ||
| 72 | RH0_CONFIG_ERRMSG dw 0 ;DCR D493 "Error in CONFIG.SYS..." msg flag. | ||
| 73 | RH0 ENDS ;; | ||
| 74 | ;; | ||
| 75 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 76 | ;; | ||
| 77 | ;; Request Header for IOCTL | ||
| 78 | ;; | ||
| 79 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 80 | ;; | ||
| 81 | RH3 STRUC ;; | ||
| 82 | DB (TYPE RHC) DUP (?) ;; common portion | ||
| 83 | ;; | ||
| 84 | ;; | ||
| 85 | DB ? ;; media descriptor | ||
| 86 | RH3_DTAO DW ? ;; offset of transfer address | ||
| 87 | RH3_DTAS DW ? ;; segment of transfer address | ||
| 88 | RH3_CNT DW ? ;; byte count | ||
| 89 | RH3 ENDS ;; | ||
| 90 | ;; | ||
| 91 | ;; | ||
| 92 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 93 | ;; | ||
| 94 | ;; Request Header for GENERIC IOCTL | ||
| 95 | ;; | ||
| 96 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 97 | ;; | ||
| 98 | GIH STRUC ;; | ||
| 99 | DB (TYPE RHC) DUP (?) ;; common portion | ||
| 100 | ;; | ||
| 101 | ;; | ||
| 102 | GIH_MAF DB ? ;; major function | ||
| 103 | GIH_MIF DB ? ;; minor function | ||
| 104 | GIH_SI DW ? ;; content of SI | ||
| 105 | GIH_DI DW ? ;; content of DI | ||
| 106 | GIH_GBA DD ? ;; Address of Generic Buffer | ||
| 107 | GIH ENDS ;; | ||
| 108 | ;; | ||
| 109 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 110 | ;; | ||
| 111 | ;; GIO major/minor functions | ||
| 112 | ;; (see GIO_CODES table) | ||
| 113 | ;; | ||
| 114 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 115 | MAF_CON EQU 03 ;; major function for CON device | ||
| 116 | MAF_PTR EQU 05 ;; major function for LPTX device | ||
| 117 | ;; | ||
| 118 | MIF_DST EQU 4CH ;; minor function : designate start | ||
| 119 | MIF_DEN EQU 4DH ;; designate end | ||
| 120 | MIF_IVK EQU 4AH ;; invoke | ||
| 121 | MIF_QIV EQU 6AH ;; query-invoked | ||
| 122 | MIF_QLS EQU 6BH ;; query-list | ||
| 123 | ;; | ||
| 124 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 125 | ;; Designate Start (MIF_DST)Flags | ||
| 126 | ;; see GBIS structure | ||
| 127 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 128 | ;; | ||
| 129 | DSF_FIFOCP EQU 08000H ;; Single code page FIFO command | ||
| 130 | DSF_CARTCP EQU 00001H ;; Code page for Cartridge/semi- | ||
| 131 | ;; hardware RAM | ||
| 132 | ;; | ||
| 133 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 134 | ;; Generic IOCTL errorneous status | ||
| 135 | ;; upon return | ||
| 136 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 137 | ;; | ||
| 138 | STAT_DELETE EQU 08000H ;; previous degignate deleted (DST) | ||
| 139 | ;; STAT_DELETE : only for FIFO | ||
| 140 | STAT_NOFIND EQU 08008H ;; codepage,device not found (DST) | ||
| 141 | STAT_DEVERR EQU 0800AH ;; Device error (DST,IVK,QIV,QLS,WRT) | ||
| 142 | STAT_BADATA EQU 0800CH ;; bad font file (DST) | ||
| 143 | STAT_NOBUFF EQU 0800CH ;; no font buffer for (REFRESH) | ||
| 144 | STAT_BADDEN EQU 0800CH ;; no DST (DEN) | ||
| 145 | STAT_bffDEN EQU 08000H ;; bad font file (DEN) | ||
| 146 | STAT_TOMANY EQU 0800aH ;; too manay codepages (DST) | ||
| 147 | STAT_DUPLCP EQU 0800aH ;; too manay codepages (DST) | ||
| 148 | STAT_NOCPIV EQU 08007H ;; no codepage designated/invoked | ||
| 149 | STAT_NOCP EQU 08007H ;; no codepage designated/invoked | ||
| 150 | ;; (IVK, QIV, QLS) | ||
| 151 | ;; | ||
| 152 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 153 | ;; | ||
| 154 | ;; Generic IOCTL Buffer DS:[SI] | ||
| 155 | ;; | ||
| 156 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 157 | GIOB EQU DS:[SI] ;; | ||
| 158 | ;; | ||
| 159 | GB1S STRUC ;; | ||
| 160 | GB1_FLAG DW ? ;; flag | ||
| 161 | GB1_LEN DW ? ;; length | ||
| 162 | GB1_NUM DW ? ;; length | ||
| 163 | GB1_CP DW ? ;; | ||
| 164 | GB1S ENDS ;; | ||
| 165 | ;; | ||
| 166 | ;; | ||
| 167 | GB2S STRUC ;; | ||
| 168 | GB2_LEN DW ? ;; length | ||
| 169 | GB2_CP DW ? ;; | ||
| 170 | GB2S ENDS ;; | ||
| 171 | ;; | ||
| 172 | ;; | ||
| 173 | GB3S STRUC ;; | ||
| 174 | GB3_LEN DW ? ;; length | ||
| 175 | GB3_GBL DW ? ;; hardware code page number | ||
| 176 | GB3S ENDS ;; | ||
| 177 | ;; | ||
| 178 | GB3_MINILEN EQU 4 ;; minimium length of GB3 | ||
| 179 | ;; | ||
| 180 | GBLS STRUC ;; | ||
| 181 | GBL_LEN DW ? ;; length | ||
| 182 | GBL_CP DW ? ;; hardware code page number | ||
| 183 | GBLS ENDS ;; | ||
| 184 | ;; | ||
| 185 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 186 | ;; | ||
| 187 | ;; DEVICE Header DS:[SI] -- to locate the next LPTn header | ||
| 188 | ;; NEXT device header ES:[DI] | ||
| 189 | ;; | ||
| 190 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 191 | HP EQU DS:[SI] ;; | ||
| 192 | NHD EQU ES:[DI] ;; | ||
| 193 | ;; | ||
| 194 | NAME_LEN EQU 8 ;; | ||
| 195 | ;; | ||
| 196 | DHS STRUC ;; | ||
| 197 | DH_NEXTO DW ? ;; offset of pointer to next header | ||
| 198 | DH_NEXTS DW ? ;; segment of pointer to next header | ||
| 199 | DW ? ;; attribute | ||
| 200 | DH_STRAO DW ? ;; offset to strategy routine | ||
| 201 | DH_INTRO DW ? ;; offset to interrupt routine | ||
| 202 | DH_NAME DB NAME_LEN DUP(0) ;; device name in this header | ||
| 203 | DHS ENDS ;; end of common portion | ||
| 204 | ;; | ||
| 205 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 206 | ;; | ||
| 207 | ;; FONT_PARSER data | ||
| 208 | ;; | ||
| 209 | ;; -- Interface table : FTABLE | ||
| 210 | ;; | ||
| 211 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 212 | ;; | ||
| 213 | FPKT EQU DS:[SI] ;; | ||
| 214 | ;; | ||
| 215 | FTP EQU ES:[BX] ;; | ||
| 216 | ;; ( I=Input O=Output ) | ||
| 217 | FTBLK STRUC ;; | ||
| 218 | FTB_LENGTH DW TYPE FTBLK ;; (NOT TO BE CHANGED) | ||
| 219 | FTB_STATUS DW 0FFFFH ;; (O) parsing compelte | ||
| 220 | FTB_TYPE DW 0 ;; (O) | ||
| 221 | FTB_TID DB 8 DUP(?) ;; (I) | ||
| 222 | FTB_CP DW 0FFFFH ;; (I) | ||
| 223 | FTB_MOD DW 0 ;; (O) | ||
| 224 | FTB_FONTS DW 0 ;; (O) | ||
| 225 | FTB_ROWS DB 0 ;; (O) DISPLAY TYPE DEVICE | ||
| 226 | FTB_COLS DB 0 ;; (O) DISPLAY TYPE DEVICE | ||
| 227 | FTB_X DB 0 ;; (O) DISPLAY TYPE DEVICE | ||
| 228 | FTB_Y DB 0 ;; (O) DISPLAY TYPE DEVICE | ||
| 229 | FTB_COUNT DW 0 ;; (O) DISPLAY TYPE DEVICE | ||
| 230 | FTB_SELECT DW 0 ;; (O) PRINTER TYPE DEVICE | ||
| 231 | FTB_SELLEN DW 0 ;; (O) PRINTER TYPE DEVICE | ||
| 232 | FTB_DLEFT DW 0 ;; (O) =0, none to come | ||
| 233 | FTB_DLEN DW 0 ;; (O) =0, not in this packet | ||
| 234 | FTB_DALO DW 0 ;; (O) in the DOS "packet" buffer | ||
| 235 | FTB_DAHI DW 0 ;; (O) " " " " " | ||
| 236 | TARGET_LO DW 0 ;; internal registers | ||
| 237 | TARGET_HI DW 0 ;; internal registers | ||
| 238 | FTBLK ENDS ;; | ||
| 239 | ;; | ||
| 240 | TYPE_DISPLAY EQU 01H ;; display type device | ||
| 241 | TYPE_PRINTER EQU 02H ;; printer type device | ||
| 242 | ;; | ||
| 243 | FBUFS STRUC ;; | ||
| 244 | FLAG DW 0 ;; | ||
| 245 | BUFFER_LEN DW 0 ;; | ||
| 246 | BUFFER_ADDR DD 0 ;; | ||
| 247 | NUM_FTBLK DW 0 ;; no. of FTBKL entries | ||
| 248 | FBUFS ENDS ;; | ||
| 249 | ;; | ||
| 250 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 251 | ;; FLAGS : | ||
| 252 | FLAG_RESTART EQU 000001H ;; bit 1 = restart the parsing | ||
| 253 | ;; | ||
| 254 | ;; | ||
| 255 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 256 | ;; STATUS : (in FTB_STATUS) | ||
| 257 | ;; | ||
| 258 | FSTAT_COMPLETE EQU 0FFFFH ;; parsing compeleted. (good status) | ||
| 259 | FSTAT_FONT EQU 0FFFEH ;; font data is defined and returned | ||
| 260 | FSTAT_FOUND EQU 0FFFDH ;; informations including font-length | ||
| 261 | FSTAT_MATCH EQU 0FFFCH ;; font header matches FTBLK | ||
| 262 | FSTAT_SEARCH EQU 0FFFBH ;; seraching for header & font | ||
| 263 | FSTAT_BOTTOM EQU 0FFF0H ;; below this are the DOS_STATUS. | ||
| 264 | ;; | ||
| 265 | ;; the FSTAT with value lower than 0FFF0H is to be returned to the DOS | ||
| 266 | ;; | ||
| 267 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 268 | ; | ||
| 269 | ; DEVICE Command Parser Table ES:[DI] | ||
| 270 | ; | ||
| 271 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 272 | ;; | ||
| 273 | table_len equ 290 ;; | ||
| 274 | ;; | ||
| 275 | PSE EQU ES:[DI] ;; | ||
| 276 | ;; | ||
| 277 | PAR_OT STRUC ;; | ||
| 278 | PAR_DEV_NUM DW ? ;; | ||
| 279 | PAR_OFF DW ? ;; | ||
| 280 | PAR_OT ENDS ;; | ||
| 281 | ;; | ||
| 282 | PAR_DEVOT STRUC ;; OFFSET to the parameters of a device | ||
| 283 | PAR_onum DW ? ;; number of offsets in the table | ||
| 284 | PAR_DNMO DW ? ;; device-name table offset | ||
| 285 | PAR_DIDO DW ? ;; device-id table offset | ||
| 286 | PAR_HWCPO DW ? ;; hwcp table offset | ||
| 287 | PAR_DESGO DW ? ;; designate table offset | ||
| 288 | PAR_PARMO DW ? ;; parameter table offset | ||
| 289 | PAR_DEVOT ENDS ;; | ||
| 290 | ;; | ||
| 291 | PAR_DNMT STRUC ;; DEVICE NAME table | ||
| 292 | PAR_DNML DW ? ;; length of device name | ||
| 293 | PAR_DNM DB ? ;; device name | ||
| 294 | PAR_DNMT ENDS ;; | ||
| 295 | ;; | ||
| 296 | PAR_DIDT STRUC ;; DEVICE ID table | ||
| 297 | PAR_DIDL DW ? ;; device ID length | ||
| 298 | PAR_DID DB ? ;; device ID | ||
| 299 | PAR_DIDT ENDS ;; | ||
| 300 | ;; | ||
| 301 | PAR_HWCPT STRUC ;; hwcp table | ||
| 302 | PAR_HWCPL DW ? ;; hwcp entry number | ||
| 303 | PAR_HWCP DW ? ;; hwcp | ||
| 304 | PAR_HWCPT ENDS ;; | ||
| 305 | ;; | ||
| 306 | ;; | ||
| 307 | PAR_DESGT STRUC ;; DESIGNATE table | ||
| 308 | PAR_DESGL DW ? ;; entry number | ||
| 309 | PAR_DESG DW ? ;; designate | ||
| 310 | PAR_FONT DW ? ;; fonts | ||
| 311 | PAR_DESGT ENDS ;; | ||
| 312 | ;; | ||
| 313 | ;; | ||
| 314 | PAR_PARMT STRUC ;; parameter table | ||
| 315 | PAR_PARML DW ? ;; length | ||
| 316 | PAR_PARM DW ? ;; | ||
| 317 | PAR_PARMT ENDS ;; | ||
| 318 | ;; | ||
| 319 | ;; | ||
| 320 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 321 | ; | ||
| 322 | ; LPTn printer data structure CS:[BX] | ||
| 323 | ; | ||
| 324 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 325 | ;; | ||
| 326 | BUF EQU CS:[BX] ;; | ||
| 327 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 328 | ;; STATES | ||
| 329 | ;; | ||
| 330 | NORMAL EQU 0 ;; normal state | ||
| 331 | CPSW EQU 1 ;; | ||
| 332 | DESG_WR EQU 2 ;; designate write | ||
| 333 | DESG_END EQU 3 ;; designate end | ||
| 334 | LOCKED EQU 4 ;; WGR locked | ||
| 335 | ;; | ||
| 336 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 337 | GOOD EQU 0 ;; STATUS : | ||
| 338 | REPLX EQU 8000H ;; codepage replaced in DST | ||
| 339 | FAIL EQU 4000H ;; fail in designate | ||
| 340 | LOADED EQU 2000H ;; the font has just been loaded to | ||
| 341 | REFRESH EQU 0800H ;; there was a refresh via DST | ||
| 342 | ;; | ||
| 343 | ;; also | ||
| 344 | ;; -- DSF_CARTCP | ||
| 345 | ;; | ||
| 346 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 347 | ;; | ||
| 348 | ;; for BFLAG : | ||
| 349 | BF_PRN EQU 0 ;; 0 = PRN initialized (interrupt) | ||
| 350 | BF_LPT1 EQU 1 ;; 1 = LPT1 initialized (interrupt) | ||
| 351 | BF_LPT2 EQU 2 ;; 2 = LPT2 initialized (interrupt) | ||
| 352 | BF_LPT3 EQU 3 ;; 3 = LPT3 initialized (interrupt) | ||
| 353 | BF_MEM_DONE EQU 08000H ;; memory done for this device | ||
| 354 | ;; | ||
| 355 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 356 | ;; BUFFER DATA structure | ||
| 357 | BUF_DATA STRUC ;;................................. | ||
| 358 | BFLAG DW -1 ;; buf flag for initialisation | ||
| 359 | ;; -1 = buf not yet initialised | ||
| 360 | ;; (see BF_PRN, BF_LPT's) | ||
| 361 | ;; | ||
| 362 | DEV_HDRO DW -1 ;; device driver n header offset | ||
| 363 | DEV_HDRS DW -1 ;; | ||
| 364 | LPT_STRAO DW -1 ;; dos lptn strategy offset | ||
| 365 | LPT_STRAS DW -1 ;; | ||
| 366 | LPT_INTRO DW -1 ;; dos lptn strategy offset | ||
| 367 | LPT_INTRS DW -1 ;; | ||
| 368 | RH_PTRO DW -1 ;; request header offset | ||
| 369 | RH_PTRS DW -1 ;; segment ....................(unique) | ||
| 370 | ;; | ||
| 371 | ;; (following is replicated for LPT1 ) | ||
| 372 | ;; | ||
| 373 | RNORMO DW -1 ;; request-normal driver header offset | ||
| 374 | prn_bufo dw -1 ;; offset to prn buffer | ||
| 375 | did_prn dw 0 ;; where PRN is in the DID order | ||
| 376 | PCLASS DW 0 ;; | ||
| 377 | STATE DW NORMAL ;; | ||
| 378 | STATUS DW GOOD ;; | ||
| 379 | ;; (the followings should be used | ||
| 380 | ;; IFF BUT.STATE <> NORMAL : ) | ||
| 381 | ;; | ||
| 382 | PDESCO DW -1 ;; offset to printer description table. | ||
| 383 | ;; | ||
| 384 | ;;===== hwcp and designated slots ==== | ||
| 385 | HSLMX DW 0 ;; HSLMX is the size of HARDslot (at | ||
| 386 | ;; HARDSO) and the buffer(at HRBUFO) | ||
| 387 | ;; | ||
| 388 | HARDMX DW 0 ;; no. of HWCP+cart slots supported | ||
| 389 | ;; (less than or equal to .HSLOTS) | ||
| 390 | HARDSO DW -1 ;; offset to hardware slots n | ||
| 391 | ;; | ||
| 392 | HCARMX DW 0 ;; no. of cart slots supported | ||
| 393 | HRBUFO DW -1 ;; offset to cart slots' buffer | ||
| 394 | ;; | ||
| 395 | ;;===== physical and designated RAM === | ||
| 396 | ;; | ||
| 397 | RSLMX DW 0 ;; RSLMX is the size of RAMslot (at | ||
| 398 | ;; RAMSO) and the RAM buffer(at RMBUFO) | ||
| 399 | ;; | ||
| 400 | ;; | ||
| 401 | RAMMX DW 0 ;; no. of physical RAM slots(max.=1) | ||
| 402 | RAMSO DW -1 ;; offset to RAM slots(incl. designated | ||
| 403 | ;; | ||
| 404 | RBUFMX DW 0 ;; no. of designated RAM slots supported | ||
| 405 | RMBUFO DW -1 ;; offset to RAM slots's buffer | ||
| 406 | ;; | ||
| 407 | FTSZPA DW -1 ;; font buffer in paragraph = FONTSZ | ||
| 408 | FTSIZE DW 0 ;; font buffer size = FTSZPA x 16 | ||
| 409 | FTSTART DW -1 ;; start of font buffer | ||
| 410 | FTSLOTO DW -1 ;; segment address of font buffer | ||
| 411 | ;; -- of the one to be designated to | ||
| 412 | FTDLO DW -1 ;; offset to where the FTSTART:OFFSET | ||
| 413 | ;; (next destination = total length | ||
| 414 | ;; so far) | ||
| 415 | FSELEN DW 0 ;; length of selection control copied | ||
| 416 | ;; to the selection buffer | ||
| 417 | ;; (USED BY SELECT TYPE = 1 ONLY) | ||
| 418 | ;; -- initialized to 0, if selection | ||
| 419 | ;; is not 0, copied the selection | ||
| 420 | ;; from the font file until the | ||
| 421 | ;; length is reached. After copying | ||
| 422 | ;; to selection buffer, reset to 0 | ||
| 423 | FSELMAX DW 0 ;; max. room reserved for selection | ||
| 424 | ;; controls. | ||
| 425 | ;; | ||
| 426 | PAR_EXTRACTO DB (TYPE PAR_DEVOT) DUP (-1);; Offset to parameter extracts | ||
| 427 | SAVED_CP DW -1 ;; WGR saved code page during lock ;AN000; | ||
| 428 | BUFEND DW 0 ;; END OF BUFFER, for LPT1 copy. | ||
| 429 | BUF_DATA ENDS ;; | ||
| 430 | ;; | ||
| 431 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 432 | ; | ||
| 433 | ; Printer Description Table | ||
| 434 | ; | ||
| 435 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 436 | ;; | ||
| 437 | DEVN_LEN EQU 8 ;; device name (type-id) length | ||
| 438 | ;; | ||
| 439 | PDSH STRUC ;; | ||
| 440 | PD_LEN DW 30 ;; length of each entry | ||
| 441 | TYPEID DB ' ' ;; device name (id), length DEVN_LEN | ||
| 442 | VMINOR DB 0 ;; version : .00 | ||
| 443 | VMAJOR DB 1 ;; version : 1. | ||
| 444 | CLASS DW ? ;; reserved | ||
| 445 | FONTSZ DW ? ;; font buffer size in paragraph (max) | ||
| 446 | HSLOTS DW ? ;; hard-slots number (max # of Hslots) | ||
| 447 | HWCPMIN DW ? ;; what left by min_hwcp can be cart. | ||
| 448 | RSLOTS DW ? ;; ram-slots number (max # of Rslots) | ||
| 449 | PDSH ENDS ;; the SELH_O, and SELR_O are defined | ||
| 450 | ;; in the next two entries in PDS | ||
| 451 | ;; | ||
| 452 | ;; | ||
| 453 | PDS STRUC ;; | ||
| 454 | DB (TYPE PDSH) DUP (?) ;; common portion | ||
| 455 | SELH_O DW ? ;; offset to select controls on Hslots | ||
| 456 | SELR_O DW ? ;; offset to select controls on Rslots | ||
| 457 | SELB_O DW ? ;; offset to buffered select controls | ||
| 458 | PDS ENDS ;; | ||
| 459 | ;; | ||
| 460 | ;; | ||
| 461 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 462 | ; | ||
| 463 | ; HARD / RAM slots table structure/constants | ||
| 464 | ; | ||
| 465 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 466 | ;; NOTE : must be only FOUR bytes for | ||
| 467 | ;; codepage positioning | ||
| 468 | ;; calculation as compared | ||
| 469 | ;; with each entry in FTDL_OFF | ||
| 470 | ;; | ||
| 471 | SLTS STRUC ;; slots-table structure | ||
| 472 | SLT_CP DW -1 ;; code page : no code page | ||
| 473 | SLT_AT DW 0 ;; attribute : empty | ||
| 474 | SLTS ENDS ;; | ||
| 475 | ;; | ||
| 476 | ;; ATTRIBUTES : | ||
| 477 | AT_RAM1 EQU 00001H ;; in the 1st physical RAM slot | ||
| 478 | AT_RAM2 EQU 00002H ;; in the 2nd physical RAM slot | ||
| 479 | AT_RAM3 EQU 00004H ;; in the 3rd physical RAM slot | ||
| 480 | AT_RAM4 EQU 00008H ;; in the 4th physical RAM slot | ||
| 481 | AT_RAMS EQU 0000FH ;;(note the current logic supports | ||
| 482 | ;; only ONE physical RAM slot) | ||
| 483 | ;; | ||
| 484 | AT_OCC EQU 01000H ;; slot occupied | ||
| 485 | AT_ACT EQU 02000H ;; slot active | ||
| 486 | AT_HWCP EQU 04000H ;; slot is hwcp | ||
| 487 | AT_OLD EQU 08000H ;; codepage in buffer is not newly | ||
| 488 | ;; designated. | ||
| 489 | AT_LOAD EQU 00100H ;; slot with font to be loaded | ||
| 490 | AT_FONT EQU 00200H ;; font in this slot has been loaded | ||
| 491 | AT_NO_LOAD EQU NOT AT_LOAD ;; to reset the bit | ||
| 492 | AT_NO_FONT EQU NOT AT_FONT ;; to reset the bit | ||
| 493 | AT_SELECT EQU 00400H ;; for SELECT TYPE = 1 | ||
| 494 | ;; -- mark the FTBLK where control is | ||
| 495 | ;; copied from. | ||
| 496 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 497 | ;; constants on SLOTS | ||
| 498 | HARDSL_MAX EQU 12 ;; | ||
| 499 | ;; | ||
| 500 | RAMSL_MAX EQU 12 ;; | ||
| 501 | ;; | ||
| 502 | CTL_MAX EQU 32 ;; max.length of each selection control | ||
| 503 | CTL5202_OFFS EQU 8 ;; offset to CTL5202_H for codepage | ||
| 504 | ;; | ||
| 505 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 506 | ; | ||
| 507 | ; General Constants | ||
| 508 | ; | ||
| 509 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 510 | ;; | ||
| 511 | STACK_SIZE EQU 28H ;; in paragraph, total 200H bytes | ||
| 512 | ;; | ||
| 513 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 514 | ; | ||
| 515 | ; | ||
| 516 | ; STRUCS AND EQUATES | ||
| 517 | ; | ||
| 518 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 519 | ;; | ||
| 520 | PARSE_NAME STRUC ;; ;AN000; | ||
| 521 | N_LENGTH DW ? ;; ;AN000; | ||
| 522 | FNAME DB " " ;; ;AN000; | ||
| 523 | PARSE_NAME ENDS ;; ;AN000; | ||
| 524 | ;; | ||
| 525 | PARSE_OFFSETS STRUC ;; ;AN000; | ||
| 526 | DW ? ;; ;AN000; | ||
| 527 | DN_OFFSET DW ? ;; ;AN000; | ||
| 528 | DI_OFFSET DW ? ;; ;AN000; | ||
| 529 | DCP_OFFSET DW ? ;; ;AN000; | ||
| 530 | DD_OFFSET DW ? ;; ;AN000; | ||
| 531 | DW ? ;; ;AN000; | ||
| 532 | PARSE_OFFSETS ENDS ;; ;AN000; | ||
| 533 | ;; | ||
| 534 | PARSE_HWCP STRUC ;; ;AN000; | ||
| 535 | NUM_HWCPS DW ? ;; ;AN000; | ||
| 536 | HWCP_1 DW ? ;; ;AN000; | ||
| 537 | HWCP_2 DW ? ;; ;AN000; | ||
| 538 | HWCP_3 DW ? ;; ;AN000; | ||
| 539 | HWCP_4 DW ? ;; ;AN000; | ||
| 540 | HWCP_5 DW ? ;; ;AN000; | ||
| 541 | HWCP_6 DW ? ;; ;AN000; | ||
| 542 | HWCP_7 DW ? ;; ;AN000; | ||
| 543 | HWCP_8 DW ? ;; ;AN000; | ||
| 544 | HWCP_9 DW ? ;; ;AN000; | ||
| 545 | HWCP_10 DW ? ;; ;AN000; | ||
| 546 | PARSE_HWCP ENDS ;; ;AN000; | ||
| 547 | ;; | ||
| 548 | PARSE_DESG STRUC ;; ;AN000; | ||
| 549 | NUM_VALUES DW ? ;; ;AN000; | ||
| 550 | NUM_DESGS DW ? ;; ;AN000; | ||
| 551 | NUM_FONTS DW ? ;; ;AN000; | ||
| 552 | PARSE_DESG ENDS ;; ;AN000; | ||
| 553 | ;; | ||
| 554 | ;; | ||
| 555 | ZERO EQU 0H ;; ;AN000; | ||
| 556 | ONE EQU 1H ;; ;AN000; | ||
| 557 | TWO EQU 2H ;; ;AN000; | ||
| 558 | THREE EQU 3H ;; ;AN000; | ||
| 559 | FOUR EQU 4H ;; ;AN000; | ||
| 560 | FIVE EQU 5H ;; ;AN000; | ||
| 561 | SIX EQU 6H ;; ;AN000; | ||
| 562 | SEVEN EQU 7H ;; ;AN000; | ||
| 563 | EIGHT EQU 8H ;; ;AN000; | ||
| 564 | NINE EQU 9H ;; ;AN000; | ||
| 565 | TEN EQU 0AH ;; ;AN000; | ||
| 566 | NUMBER EQU 1 ;; ;AN000; | ||
| 567 | STRING EQU 3 ;; ;AN000; | ||
| 568 | COMPLEX EQU 4 ;; ;AN000; | ||
| 569 | RC_EOL EQU -1 ;; ;AN000; | ||
| 570 | RC_NO_ERROR EQU 0 ;; ;AN000; | ||
| 571 | RC_OP_MISSING EQU 2 ;; ;AN000; | ||
| 572 | ON EQU 1 ;; ;AN000; | ||
| 573 | OFF EQU 0 ;; ;AN000; | ||
| 574 | BAD_SYNTAX_MSG EQU 12 ;; ;AN000; | ||
| 575 | BAD_DEVICE_MSG EQU 2 ;; ;AN000; | ||
| 576 | ; | ||
| 577 | |||