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