summaryrefslogtreecommitdiff
path: root/v4.0/src/DEV/PRINTER/CPSPEQU.INC
blob: ca086cb83f02ddad69959f3b66a048397bae3713 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
	PAGE	,132

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;  FILENAME:	  CPS Printer Device Driver EQUAL Include
;;  MODULE NAME:  CPSEQU
;;  TYPE:	  Include File
;;
;;  LINK PROCEDURE:  See CPSPx.ASM
;;
;;  INCLUDE FILES:
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;	Request Header (Common portion)
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
RH	EQU	ES:[DI] 		;; addressability to Request Header
					;;
RHC	STRUC				;; fields common to all request types
RHC_LEN DB	?			;; length of Request Header
	DB	?			;; unit code (subunit)
RHC_CMD DB	?			;; command code
RHC_STA DW	?			;; status
	DQ	?			;; reserved for DOS
RHC	ENDS				;; end of common portion
					;;
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
					;; Command in the Request Header
					;; (see CMD_CODES table)
					;;
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
CMD_INI EQU	0			;; init  command
CMD_WRT EQU	8			;; write command
CMD_GIO EQU	19			;; generic IOCTL command
					;; (see major/minor GIO functions)
					;;
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
					;; status values for RHC_STA
					;;
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
STAT_DONE EQU	01H			;; function complete - high order byte
STAT_CMDERR EQU 8003H			;; invalid command code error
STAT_ERROR EQU	8000H			;; error returned by normal driver
					;;
;; see Generic IOCTL Request Header section
;; for more errorneous status.		;;
					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;	Request Header for INIT
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
					;;
RH0	STRUC				;;
	DB	(TYPE RHC) DUP (?)	;; common portion
					;;
	DB	?			;; not used for CHAR devices
RH0_ENDO DW	?			;; offset  of ending address
RH0_ENDS DW	?			;; segment of ending address
RH0_BPBA DD	?			;; pointer to BPBA
	db	?
RH0_CONFIG_ERRMSG dw 0			;DCR D493 "Error in CONFIG.SYS..." msg flag.
RH0	ENDS				;;
					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;	Request Header for IOCTL
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
RH3	STRUC				;;
	DB	(TYPE RHC) DUP (?)	;; common portion
					;;
					;;
	DB	?			;; media descriptor
RH3_DTAO DW	?			;; offset  of transfer address
RH3_DTAS DW	?			;; segment of transfer address
RH3_CNT DW	?			;; byte count
RH3	ENDS				;;
					;;
					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;	Request Header for GENERIC IOCTL
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
GIH	STRUC				;;
	DB	(TYPE RHC) DUP (?)	;; common portion
					;;
					;;
GIH_MAF DB	?			;; major function
GIH_MIF DB	?			;; minor function
GIH_SI	DW	?			;; content of SI
GIH_DI	DW	?			;; content of DI
GIH_GBA DD	?			;; Address of Generic Buffer
GIH	ENDS				;;
					;;
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
					;; GIO major/minor functions
					;; (see GIO_CODES table)
					;;
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAF_CON EQU	03			;; major function for CON  device
MAF_PTR EQU	05			;; major function for LPTX device
					;;
MIF_DST EQU	4CH			;; minor function : designate start
MIF_DEN EQU	4DH			;;		    designate end
MIF_IVK EQU	4AH			;;		    invoke
MIF_QIV EQU	6AH			;;		    query-invoked
MIF_QLS EQU	6BH			;;		    query-list
					;;
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;; Designate Start (MIF_DST)Flags
					;; see GBIS structure
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
DSF_FIFOCP EQU	08000H			;; Single code page FIFO command
DSF_CARTCP EQU	00001H			;; Code page for Cartridge/semi-
					;; hardware RAM
					;;
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;; Generic IOCTL errorneous status
					;; upon return
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
STAT_DELETE EQU 08000H			;; previous degignate deleted (DST)
					;; STAT_DELETE : only for FIFO
STAT_NOFIND EQU 08008H			;; codepage,device not found  (DST)
STAT_DEVERR EQU 0800AH			;; Device error (DST,IVK,QIV,QLS,WRT)
STAT_BADATA EQU 0800CH			;; bad font file (DST)
STAT_NOBUFF EQU 0800CH			;; no font buffer for (REFRESH)
STAT_BADDEN EQU 0800CH			;; no DST (DEN)
STAT_bffDEN EQU 08000H			;; bad font file (DEN)
STAT_TOMANY EQU 0800aH			;; too manay codepages (DST)
STAT_DUPLCP EQU 0800aH			;; too manay codepages (DST)
STAT_NOCPIV EQU 08007H			;; no codepage designated/invoked
STAT_NOCP EQU	08007H			;; no codepage designated/invoked
					;; (IVK, QIV, QLS)
					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;	Generic IOCTL Buffer   DS:[SI]
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GIOB	EQU	DS:[SI] 		;;
					;;
GB1S	STRUC				;;
GB1_FLAG DW	?			;; flag
GB1_LEN DW	?			;; length
GB1_NUM DW	?			;; length
GB1_CP	DW	?			;;
GB1S	ENDS				;;
					;;
					;;
GB2S	STRUC				;;
GB2_LEN DW	?			;; length
GB2_CP	DW	?			;;
GB2S	ENDS				;;
					;;
					;;
GB3S	STRUC				;;
GB3_LEN DW	?			;; length
GB3_GBL DW	?			;; hardware code page number
GB3S	ENDS				;;
					;;
GB3_MINILEN EQU 4			;; minimium length of GB3
					;;
GBLS	STRUC				;;
GBL_LEN DW	?			;; length
GBL_CP	DW	?			;; hardware code page number
GBLS	ENDS				;;
					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;	DEVICE	Header	   DS:[SI]	-- to locate the next LPTn header
;;	NEXT device header ES:[DI]
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
HP	EQU	DS:[SI] 		;;
NHD	EQU	ES:[DI] 		;;
					;;
NAME_LEN EQU	8			;;
					;;
DHS	STRUC				;;
DH_NEXTO DW	?			;; offset of pointer to next header
DH_NEXTS DW	?			;; segment of pointer to next header
	DW	?			;; attribute
DH_STRAO DW	?			;; offset to strategy routine
DH_INTRO DW	?			;; offset to interrupt routine
DH_NAME DB	NAME_LEN DUP(0) 	;; device name in this header
DHS	ENDS				;; end of common portion
					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;	FONT_PARSER data
;;
;;	-- Interface table : FTABLE
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
FPKT	EQU	DS:[SI] 		;;
					;;
FTP	EQU	ES:[BX] 		;;
					;; ( I=Input  O=Output )
FTBLK	STRUC				;;
FTB_LENGTH DW	TYPE FTBLK		;; (NOT TO BE CHANGED)
FTB_STATUS DW	0FFFFH			;; (O) parsing compelte
FTB_TYPE DW	0			;; (O)
FTB_TID DB	8   DUP(?)		;; (I)
FTB_CP	DW	0FFFFH			;; (I)
FTB_MOD DW	0			;; (O)
FTB_FONTS DW	0			;; (O)
FTB_ROWS  DB	0			;; (O) DISPLAY TYPE DEVICE
FTB_COLS  DB	0			;; (O) DISPLAY TYPE DEVICE
FTB_X	  DB	0			;; (O) DISPLAY TYPE DEVICE
FTB_Y	  DB	0			;; (O) DISPLAY TYPE DEVICE
FTB_COUNT DW	0			;; (O) DISPLAY TYPE DEVICE
FTB_SELECT DW	0			;; (O) PRINTER TYPE DEVICE
FTB_SELLEN DW	0			;; (O) PRINTER TYPE DEVICE
FTB_DLEFT DW	0			;; (O)	=0, none to come
FTB_DLEN DW	0			;; (O)	=0, not in this packet
FTB_DALO DW	0			;; (O)	in the DOS "packet" buffer
FTB_DAHI DW	0			;; (O)	"  "   "    "       "
TARGET_LO DW	0			;;  internal registers
TARGET_HI DW	0			;;  internal registers
FTBLK	ENDS				;;
					;;
TYPE_DISPLAY EQU 01H			;; display type device
TYPE_PRINTER EQU 02H			;; printer type device
					;;
FBUFS	STRUC				;;
FLAG	DW	0			;;
BUFFER_LEN DW	0			;;
BUFFER_ADDR DD	0			;;
NUM_FTBLK DW	0			;; no. of FTBKL entries
FBUFS	ENDS				;;
					;;
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;; FLAGS :
FLAG_RESTART EQU 000001H		;; bit 1 = restart the parsing
					;;
					;;
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;; STATUS : (in FTB_STATUS)
					;;
FSTAT_COMPLETE EQU 0FFFFH		;; parsing compeleted. (good status)
FSTAT_FONT  EQU 0FFFEH			;; font data is defined and returned
FSTAT_FOUND EQU 0FFFDH			;; informations including font-length
FSTAT_MATCH EQU 0FFFCH			;; font header matches	FTBLK
FSTAT_SEARCH EQU 0FFFBH 		;; seraching for header & font
FSTAT_BOTTOM EQU 0FFF0H 		;; below this are the DOS_STATUS.
					;;
;; the FSTAT with value lower than 0FFF0H is to be returned to the DOS
					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;	DEVICE Command Parser Table   ES:[DI]
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
table_len	equ	290		;;
					;;
PSE	EQU	ES:[DI] 		;;
					;;
PAR_OT	STRUC				;;
PAR_DEV_NUM DW	?			;;
PAR_OFF DW	?			;;
PAR_OT	ENDS				;;
					;;
PAR_DEVOT STRUC 			;; OFFSET to the parameters of a device
PAR_onum DW	?			;; number of offsets in the table
PAR_DNMO DW	?			;; device-name table offset
PAR_DIDO DW	?			;; device-id table offset
PAR_HWCPO DW	?			;; hwcp table offset
PAR_DESGO DW	?			;; designate table offset
PAR_PARMO DW	?			;; parameter table offset
PAR_DEVOT ENDS				;;
					;;
PAR_DNMT STRUC				;; DEVICE NAME table
PAR_DNML DW	?			;; length of device name
PAR_DNM DB	?			;; device name
PAR_DNMT ENDS				;;
					;;
PAR_DIDT STRUC				;; DEVICE ID table
PAR_DIDL DW	?			;; device ID length
PAR_DID DB	?			;; device ID
PAR_DIDT ENDS				;;
					;;
PAR_HWCPT STRUC 			;; hwcp table
PAR_HWCPL DW	?			;; hwcp entry number
PAR_HWCP DW	?			;; hwcp
PAR_HWCPT ENDS				;;
					;;
					;;
PAR_DESGT STRUC 			;; DESIGNATE table
PAR_DESGL DW	?			;; entry number
PAR_DESG DW	?			;; designate
PAR_FONT DW	?			;; fonts
PAR_DESGT ENDS				;;
					;;
					;;
PAR_PARMT STRUC 			;; parameter table
PAR_PARML DW	?			;; length
PAR_PARM DW	?			;;
PAR_PARMT ENDS				;;
					;;
					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; LPTn	printer data structure	CS:[BX]
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
BUF	EQU	CS:[BX] 		;;
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;; STATES
					;;
NORMAL	EQU	0			;; normal state
CPSW	EQU	1			;;
DESG_WR EQU	2			;; designate write
DESG_END EQU	3			;; designate end
LOCKED	 EQU	4			;; WGR locked
					;;
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GOOD	EQU	0			;; STATUS :
REPLX	EQU	8000H			;; codepage replaced in DST
FAIL	EQU	4000H			;; fail in designate
LOADED	EQU	2000H			;; the font has just been loaded to
REFRESH EQU	0800H			;; there was a refresh via DST
					;;
					;; also
					;; -- DSF_CARTCP
					;;
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
					;; for BFLAG :
BF_PRN	EQU	0			;;  0 = PRN  initialized (interrupt)
BF_LPT1 EQU	1			;;  1 = LPT1 initialized (interrupt)
BF_LPT2 EQU	2			;;  2 = LPT2 initialized (interrupt)
BF_LPT3 EQU	3			;;  3 = LPT3 initialized (interrupt)
BF_MEM_DONE  EQU 08000H 		;;  memory done for this device
					;;
					;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;; BUFFER DATA structure
BUF_DATA STRUC				;;.................................
BFLAG	 DW	-1			;; buf flag for initialisation
					;; -1 = buf not yet initialised
					;; (see BF_PRN, BF_LPT's)
					;;
DEV_HDRO DW	-1			;; device driver n header offset
DEV_HDRS DW	-1			;;
LPT_STRAO DW	-1			;; dos lptn strategy offset
LPT_STRAS DW	-1			;;
LPT_INTRO DW	-1			;; dos lptn strategy offset
LPT_INTRS DW	-1			;;
RH_PTRO DW	-1			;; request header offset
RH_PTRS DW	-1			;; segment ....................(unique)
					;;
					;; (following is replicated for LPT1 )
					;;
RNORMO	DW	-1			;; request-normal driver header offset
prn_bufo dw	-1			;; offset to prn buffer
did_prn  dw	 0			;; where PRN is in the DID order
PCLASS	 DW	 0			;;
STATE	DW	NORMAL			;;
STATUS	DW	GOOD			;;
					;; (the followings should be used
					;;  IFF BUT.STATE <> NORMAL : )
					;;
PDESCO	DW	-1			;; offset to printer description table.
					;;
					;;===== hwcp and designated slots ====
HSLMX	DW	0			;; HSLMX is the size of HARDslot (at
					;; HARDSO) and the buffer(at HRBUFO)
					;;
HARDMX	DW	0			;; no. of HWCP+cart slots supported
					;; (less than or equal to .HSLOTS)
HARDSO	DW	-1			;; offset to hardware slots n
					;;
HCARMX	DW	0			;; no. of cart slots supported
HRBUFO	DW	-1			;; offset to cart slots' buffer
					;;
					;;===== physical and designated RAM ===
					;;
RSLMX	DW	0			;; RSLMX is the size of RAMslot (at
					;; RAMSO) and the RAM buffer(at RMBUFO)
					;;
					;;
RAMMX	DW	0			;; no. of physical RAM slots(max.=1)
RAMSO	DW	-1			;; offset to RAM slots(incl. designated
					;;
RBUFMX	DW	0			;; no. of designated RAM slots supported
RMBUFO	DW	-1			;; offset to RAM slots's buffer
					;;
FTSZPA	DW	-1			;; font buffer in paragraph = FONTSZ
FTSIZE	DW	0			;; font buffer size = FTSZPA x 16
FTSTART DW	-1			;; start of font buffer
FTSLOTO DW	-1			;; segment address of font buffer
					;; -- of the one to be designated to
FTDLO	DW	-1			;; offset to where the FTSTART:OFFSET
					;; (next destination = total length
					;;		       so far)
FSELEN	DW	0			;; length of selection control copied
					;; to the selection buffer
					;; (USED BY SELECT TYPE = 1 ONLY)
					;; -- initialized to 0, if selection
					;;    is not 0, copied the selection
					;;    from the font file until the
					;;    length is reached. After copying
					;;    to selection buffer, reset to 0
FSELMAX DW	0			;; max. room reserved for selection
					;; controls.
					;;
PAR_EXTRACTO DB (TYPE PAR_DEVOT) DUP (-1);; Offset to parameter extracts
SAVED_CP    DW	-1			;; WGR saved code page during lock	    ;AN000;
BUFEND	DW	0			;; END OF BUFFER, for LPT1 copy.
BUF_DATA ENDS				;;
					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;	Printer Description Table
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
DEVN_LEN EQU	8			;; device name (type-id) length
					;;
PDSH	STRUC				;;
PD_LEN	DW	30			;; length of each entry
TYPEID	DB	'        '              ;; device name (id), length DEVN_LEN
VMINOR	DB	0			;; version :  .00
VMAJOR	DB	1			;; version : 1.
CLASS	DW	?			;; reserved
FONTSZ	DW	?			;; font buffer size in paragraph (max)
HSLOTS	DW	?			;; hard-slots number (max # of Hslots)
HWCPMIN DW	?			;; what left by min_hwcp can be cart.
RSLOTS	DW	?			;; ram-slots number  (max # of Rslots)
PDSH	ENDS				;; the SELH_O, and SELR_O are defined
					;; in the next two entries in PDS
					;;
					;;
PDS	STRUC				;;
	DB	(TYPE PDSH) DUP (?)	;; common portion
SELH_O	DW	?			;; offset to select controls on Hslots
SELR_O	DW	?			;; offset to select controls on Rslots
SELB_O	DW	?			;; offset to buffered select controls
PDS	ENDS				;;
					;;
					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;	HARD / RAM slots table structure/constants
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;; NOTE : must be only FOUR bytes for
					;;	  codepage positioning
					;;	  calculation as compared
					;;	  with each entry in FTDL_OFF
					;;
SLTS	STRUC				;; slots-table structure
SLT_CP	DW	-1			;; code page : no code page
SLT_AT	DW	0			;; attribute : empty
SLTS	ENDS				;;
					;;
					;; ATTRIBUTES :
AT_RAM1 EQU	 00001H 		;; in the 1st physical RAM slot
AT_RAM2 EQU	 00002H 		;; in the 2nd physical RAM slot
AT_RAM3 EQU	 00004H 		;; in the 3rd physical RAM slot
AT_RAM4 EQU	 00008H 		;; in the 4th physical RAM slot
AT_RAMS EQU	 0000FH 		;;(note the current logic supports
					;; only ONE physical RAM slot)
					;;
AT_OCC	EQU	 01000H 		;; slot occupied
AT_ACT	EQU	 02000H 		;; slot active
AT_HWCP EQU	 04000H 		;; slot is hwcp
AT_OLD	EQU	 08000H 		;; codepage in buffer is not newly
					;; designated.
AT_LOAD EQU	 00100H 		;; slot with font to be loaded
AT_FONT EQU	 00200H 		;; font in this slot has been loaded
AT_NO_LOAD	EQU	NOT  AT_LOAD	;; to reset the bit
AT_NO_FONT	EQU	NOT  AT_FONT	;; to reset the bit
AT_SELECT EQU	 00400H 		;; for SELECT TYPE = 1
					;; -- mark the FTBLK where control is
					;;    copied from.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;; constants on SLOTS
HARDSL_MAX EQU	12			;;
					;;
RAMSL_MAX EQU	12			;;
					;;
CTL_MAX 	EQU	32		;; max.length of each selection control
CTL5202_OFFS	EQU	8		;; offset to CTL5202_H for codepage
					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;	General Constants
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
STACK_SIZE	EQU	28H		;; in paragraph, total 200H bytes
					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;
; STRUCS AND EQUATES
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
					;;
PARSE_NAME    STRUC			;;					    ;AN000;
N_LENGTH      DW    ?			;;					    ;AN000;
FNAME	      DB    "        "          ;;                                          ;AN000;
PARSE_NAME    ENDS			;;					    ;AN000;
					;;
PARSE_OFFSETS STRUC			;;					    ;AN000;
	      DW    ?			;;					    ;AN000;
DN_OFFSET     DW    ?			;;					    ;AN000;
DI_OFFSET     DW    ?			;;					    ;AN000;
DCP_OFFSET    DW    ?			;;					    ;AN000;
DD_OFFSET     DW    ?			;;					    ;AN000;
	      DW    ?			;;					    ;AN000;
PARSE_OFFSETS ENDS			;;					    ;AN000;
					;;
PARSE_HWCP    STRUC			;;					    ;AN000;
NUM_HWCPS     DW    ?			;;					    ;AN000;
HWCP_1	      DW    ?			;;					    ;AN000;
HWCP_2	      DW    ?			;;					    ;AN000;
HWCP_3	      DW    ?			;;					    ;AN000;
HWCP_4	      DW    ?			;;					    ;AN000;
HWCP_5	      DW    ?			;;					    ;AN000;
HWCP_6	      DW    ?			;;					    ;AN000;
HWCP_7	      DW    ?			;;					    ;AN000;
HWCP_8	      DW    ?			;;					    ;AN000;
HWCP_9	      DW    ?			;;					    ;AN000;
HWCP_10       DW    ?			;;					    ;AN000;
PARSE_HWCP    ENDS			;;					    ;AN000;
					;;
PARSE_DESG    STRUC			;;					    ;AN000;
NUM_VALUES    DW    ?			;;					    ;AN000;
NUM_DESGS     DW    ?			;;					    ;AN000;
NUM_FONTS     DW    ?			;;					    ;AN000;
PARSE_DESG    ENDS			;;					    ;AN000;
					;;
					;;
ZERO	EQU	0H			;;					    ;AN000;
ONE	EQU	1H			;;					    ;AN000;
TWO	EQU	2H			;;					    ;AN000;
THREE	EQU	3H			;;					    ;AN000;
FOUR	EQU	4H			;;					    ;AN000;
FIVE	EQU	5H			;;					    ;AN000;
SIX	EQU	6H			;;					    ;AN000;
SEVEN	EQU	7H			;;					    ;AN000;
EIGHT	EQU	8H			;;					    ;AN000;
NINE	EQU	9H			;;					    ;AN000;
TEN	EQU    0AH			;;					    ;AN000;
NUMBER	      EQU    1			;;					    ;AN000;
STRING	      EQU    3			;;					    ;AN000;
COMPLEX       EQU    4			;;					    ;AN000;
RC_EOL	      EQU    -1 		;;					    ;AN000;
RC_NO_ERROR   EQU    0			;;					    ;AN000;
RC_OP_MISSING EQU    2			;;					    ;AN000;
ON	      EQU    1			;;					    ;AN000;
OFF	      EQU    0			;;					    ;AN000;
BAD_SYNTAX_MSG EQU   12 		;;					    ;AN000;
BAD_DEVICE_MSG EQU   2			;;					    ;AN000;
;