]> wirehaze git hosting - MS-DOS.git/blob - v4.0/src/DEV/KEYBOARD/KEYBMAC.INC

wirehaze git hosting

MZ is back!
[MS-DOS.git] / v4.0 / src / DEV / KEYBOARD / KEYBMAC.INC
1 .XLIST
2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3 ;; DOS - - NLS Support - Keyboard Definition File
4 ;; (C) Copyright 1988 Microsoft
5 ;;
6 ;; File Name: KEYBMAC.INC
7 ;; ----------
8 ;;
9 ;; Description:
10 ;; ------------
11 ;; Include file containing macros for the Keyboard Definition File.
12 ;;
13 ;; Change History:
14 ;; ---------------
15 ;;
16 ;;
17 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
18 ;;
19 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
20 ;; Dead key flags
21 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
22 ;;
23 ACUTE EQU 80H ;; NLS_FLAG_1
24 GRAVE EQU 40H ;;
25 DIARESIS EQU 20H ;;
26 CIRCUMFLEX EQU 10H ;;
27 CEDILLA EQU 08H ;;
28 TILDE EQU 04H ;;
29 ;; NLS_FLAG_2 : nothing defined yet
30 ;;
31 ;;
32 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
33 ;; State IDs
34 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
35 ;;
36 DEAD_LOWER EQU 1 ;; dead keys on lower shift
37 DEAD_UPPER EQU 2 ;;
38 ALPHA_LOWER EQU 3 ;;
39 ALPHA_UPPER EQU 4 ;;
40 NON_ALPHA_LOWER EQU 5 ;;
41 NON_ALPHA_UPPER EQU 6 ;;
42 THIRD_SHIFT EQU 7 ;;
43 ACUTE_LOWER EQU 8 ;;
44 ACUTE_UPPER EQU 9 ;;
45 ACUTE_SPACE EQU 10 ;;
46 GRAVE_LOWER EQU 11 ;;
47 GRAVE_UPPER EQU 12 ;;
48 GRAVE_SPACE EQU 13 ;;
49 DIARESIS_LOWER EQU 14 ;;
50 DIARESIS_UPPER EQU 15 ;;
51 DIARESIS_SPACE EQU 16 ;;
52 CIRCUMFLEX_LOWER EQU 17 ;;
53 CIRCUMFLEX_UPPER EQU 18 ;;
54 CIRCUMFLEX_SPACE EQU 19 ;;
55 CEDILLA_LOWER EQU 20 ;;
56 CEDILLA_UPPER EQU 21 ;;
57 CEDILLA_SPACE EQU 22 ;;
58 CEDILLA_CEDILLA EQU 23 ;;
59 DEAD_THIRD EQU 24 ;;
60 ACUTE_ACUTE EQU 25 ;;
61 GRAVE_GRAVE EQU 26 ;;
62 DIARESIS_DIARESIS EQU 27 ;;
63 CIRCUMFLEX_CIRCUMFLEX EQU 28 ;;
64 FOURTH_SHIFT EQU 29 ;;
65 DEAD_FOURTH EQU 30 ;;
66 TILDE_LOWER EQU 31 ;;
67 TILDE_UPPER EQU 32 ;;
68 TILDE_SPACE EQU 33 ;;
69 ALT_CASE EQU 34 ;;
70 CTRL_CASE EQU 35 ;;
71 NUMERIC_PAD EQU 36 ;;
72 DIVIDE_SIGN EQU 37 ;;
73 BOTLH_CAPS EQU 38 ;;
74 BOTRH_CAPS EQU 39 ;;
75 BOTLH_F_CAPS EQU 40 ;;
76 BOTRH_F_CAPS EQU 41 ;;
77 ;;
78 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
79 ;; Logic Macros
80 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
81 ;;
82
83 UNKNOWN = 255
84
85 FIND_FLAG MACRO FLAG_MASK
86 IFIDN <FLAG_MASK>,<SCAN_MATCH>
87 FLAG_ID = EXT_KB_FLAG_ID
88 ELSE
89 IFIDN <FLAG_MASK>,<EITHER_SHIFT>
90 FLAG_ID = EXT_KB_FLAG_ID
91 ELSE
92 IFIDN <FLAG_MASK>,<CAPS_STATE>
93 FLAG_ID = KB_FLAG_ID
94 ELSE
95 IFIDN <FLAG_MASK>,<NUM_STATE>
96 FLAG_ID = KB_FLAG_ID
97 ELSE
98 IFIDN <FLAG_MASK>,<EITHER_CTL>
99 FLAG_ID = EXT_KB_FLAG_ID
100 ELSE
101 IFIDN <FLAG_MASK>,<EITHER_ALT>
102 FLAG_ID = EXT_KB_FLAG_ID
103 ELSE
104 IFIDN <FLAG_MASK>,<LEFT_SHIFT>
105 FLAG_ID = KB_FLAG_ID
106 ELSE
107 IFIDN <FLAG_MASK>,<RIGHT_SHIFT>
108 FLAG_ID = KB_FLAG_ID
109 ELSE
110 IFIDN <FLAG_MASK>,<ALT_SHIFT>
111 FLAG_ID = KB_FLAG_ID
112 ELSE
113 IFIDN <FLAG_MASK>,<CTL_SHIFT>
114 FLAG_ID = KB_FLAG_ID
115 ELSE
116 IFIDN <FLAG_MASK>,<R_ALT_SHIFT>
117 FLAG_ID = KB_FLAG_3_ID
118 ELSE
119 IFIDN <FLAG_MASK>,<R_CTL_SHIFT>
120 FLAG_ID = KB_FLAG_3_ID
121 ELSE
122 IFIDN <FLAG_MASK>,<TILDE>
123 FLAG_ID = NLS_FLAG_1_ID
124 ELSE
125 IFIDN <FLAG_MASK>,<ACUTE>
126 FLAG_ID = NLS_FLAG_1_ID
127 ELSE
128 IFIDN <FLAG_MASK>,<GRAVE>
129 FLAG_ID = NLS_FLAG_1_ID
130 ELSE
131 IFIDN <FLAG_MASK>,<DIARESIS>
132 FLAG_ID = NLS_FLAG_1_ID
133 ELSE
134 IFIDN <FLAG_MASK>,<CEDILLA>
135 FLAG_ID = NLS_FLAG_1_ID
136 ELSE
137 IFIDN <FLAG_MASK>,<CIRCUMFLEX>
138 FLAG_ID = NLS_FLAG_1_ID
139 ELSE
140 IFIDN <FLAG_MASK>,<LC_E0>
141 FLAG_ID = KB_FLAG_3_ID
142 ELSE
143 FLAG_ID = UNKNOWN
144 ENDIF
145 ENDIF
146 ENDIF
147 ENDIF
148 ENDIF
149 ENDIF
150 ENDIF
151 ENDIF
152 ENDIF
153 ENDIF
154 ENDIF
155 ENDIF
156 ENDIF
157 ENDIF
158 ENDIF
159 ENDIF
160 ENDIF
161 ENDIF
162 ENDIF
163 ENDM
164
165 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
166 FLAG MACRO FLAG_MASK
167 FIND_FLAG FLAG_MASK
168 IF (FLAG_ID EQ UNKNOWN)
169 IF2
170 %OUT Unknown parameter FLAG_MASK on FLAG MACRO
171 ENDIF
172 ELSE
173 DB FLAG_ID
174 DB FLAG_MASK
175 ENDIF
176 ENDM
177
178 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
179 IFF MACRO FLAG_MASK,MASK_TYPE
180 MAC_OK = 1
181 IFB <MASK_TYPE>
182 NOT_BIT = 00000000B
183 ELSE
184 IFIDN <MASK_TYPE>,<NOT>
185 NOT_BIT = 00001000B
186 ELSE
187 MAC_OK = 0
188 IF2
189 %OUT Unknown parameter MASK_TYPE on IFF MACRO
190 ENDIF
191 ENDIF
192 ENDIF
193 IF MAC_OK
194 FIND_FLAG FLAG_MASK
195 IF (FLAG_ID EQ UNKNOWN)
196 IF2
197 %OUT Unknown parameter FLAG_MASK on IFF MACRO
198 ENDIF
199 ELSE
200 DB IFF_COMMAND+NOT_BIT+FLAG_ID
201 DB FLAG_MASK
202 ENDIF
203 ENDIF
204 ENDM
205
206 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
207 IFKBD MACRO SYS
208 DB IFKBD_COMMAND
209 DW SYS
210 ENDM
211
212 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
213 ANDF MACRO FLAG_MASK,MASK_TYPE
214 MAC_OK = 1
215 IFB <MASK_TYPE>
216 NOT_BIT = 00000000B
217 ELSE
218 IFIDN <MASK_TYPE>,<NOT>
219 NOT_BIT = 00001000B
220 ELSE
221 MAC_OK = 0
222 IF2
223 %OUT Unknown parameter MASK_TYPE on ANDF MACRO
224 ENDIF
225 ENDIF
226 ENDIF
227 IF MAC_OK
228 FIND_FLAG FLAG_MASK
229 IF (FLAG_ID EQ UNKNOWN)
230 IF2
231 %OUT Unknown parameter FLAG_MASK on ANDF MACRO
232 ENDIF
233 ELSE
234 DB ANDF_COMMAND+NOT_BIT+FLAG_ID
235 DB FLAG_MASK
236 ENDIF
237 ENDIF
238 ENDM
239
240 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
241 ELSEF MACRO
242 DB ELSEF_COMMAND
243 ENDM
244
245 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
246 ENDIFF MACRO
247 DB ENDIFF_COMMAND
248 ENDM
249
250 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
251 XLATT MACRO STATE
252 DB XLATT_COMMAND
253 DB STATE
254 ENDM
255
256 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
257 PUT_ERROR_CHAR MACRO STATE
258 DB PUT_ERROR_COMMAND
259 DB STATE
260 ENDM
261
262 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
263 OPTION MACRO MASK,MASK_TYPE
264 MAC_OK = 1
265 IFB <MASK_TYPE>
266 NOT_BIT = 00000000B
267 ELSE
268 IFIDN <MASK_TYPE>,<NOT>
269 NOT_BIT = 00001000B
270 ELSE
271 MAC_OK = 0
272 IF2
273 %OUT Unknown parameter MASK_TYPE on OPTION MACRO
274 ENDIF
275 ENDIF
276 ENDIF
277 IF MAC_OK
278 DB OPTION_COMMAND+NOT_BIT
279 DB MASK
280 ENDIF
281 ENDM
282
283 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
284 SET_FLAG MACRO STATE
285 DB SET_FLAG_COMMAND
286 DB STATE
287 ENDM
288
289 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
290 RESET_NLS MACRO
291 DB RESET_NLS_COMMAND
292 ENDM
293
294 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
295 BEEP MACRO
296 DB BEEP_COMMAND
297 ENDM
298
299 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
300 GOTO MACRO GOTO_OFFSET
301 DB GOTO_COMMAND
302 DW GOTO_OFFSET-$-2
303 ENDM
304
305 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
306 EXIT_INT_9 MACRO
307 DB GOTO_COMMAND+EXIT_INT_9_FLAG
308 DW 0
309 ENDM
310
311 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
312 EXIT_STATE_LOGIC MACRO
313 DB GOTO_COMMAND+EXIT_STATE_LOGIC_FLAG
314 DW 0
315 ENDM
316
317 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
318 CHECK_FOR_CORE_KEY MACRO
319 DB CHECK_CORE_COMMAND
320 ENDM
321
322 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
323 .LIST