6 TITLE DOS
- Keyboard Definition
File
8 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9 ;; DOS - - NLS Support - Keyboard Defintion File
10 ;; (c) Copyright 1988 Microsoft
12 ;; This file contains the keyboard tables for Spanish.
14 ;; Linkage Instructions:
17 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
19 INCLUDE KEYBSHAR
.INC ;; ;AN000;
20 INCLUDE POSTEQU
.INC ;; ;AN000;
21 INCLUDE KEYBMAC
.INC ;; ;AN000;
23 PUBLIC IT1_LOGIC
;; ;AN000;
24 PUBLIC IT1_437_XLAT
;; ;AN000;
25 PUBLIC IT1_850_XLAT
;; ;AN000;
27 CODE SEGMENT PUBLIC 'CODE' ;; ;AN000;
28 ASSUME
CS:CODE,DS:CODE ;; ;AN000;
30 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
31 ;; Standard translate table options are a liner search table ;AN000;
32 ;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) ;AN000;
33 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
35 STANDARD_TABLE EQU TYPE_2_TAB
+ASCII_ONLY
;AN000;
37 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
38 ;;*************************************** ;AN000;
39 ;; IT State Logic ;AN000;
40 ;;*************************************** ;AN000;
41 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
46 DW LOGIC_END
-$ ;; length ;AN000;
48 DW 0 ;; special features ;AN000;
50 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE ;AN000;
52 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
53 ;; OPTIONS: If we find a scan match in ;AN000;
54 ;; an XLATT or SET_FLAG operation then ;AN000;
55 ;; exit from INT 9. ;AN000;
56 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
58 OPTION EXIT_IF_FOUND
;; ;AN000;
61 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
62 ;; Dead key definitions must come before ;AN000;
63 ;; dead key translations to handle ;AN000;
64 ;; dead key + dead key. ;AN000;
65 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
67 IFF EITHER_ALT
,NOT ;; ;AN000;
68 ANDF EITHER_CTL
,NOT ;; ;AN000;
69 IFF EITHER_SHIFT
;; ;AN000;
70 SET_FLAG DEAD_UPPER
;; ;AN000;
72 SET_FLAG DEAD_LOWER
;; ;AN000;
76 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
77 ;; ACUTE ACCENT TRANSLATIONS ;AN000;
78 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
80 ACUTE_PROC: ;; ;AN000;
82 IFF ACUTE
,NOT ;; ;AN000;
83 GOTO DIARESIS_PROC
;; ;AN000;
87 IFF R_ALT_SHIFT
,NOT ;; ;AN000;
88 XLATT ACUTE_SPACE
;; ;AN000;
90 IFF EITHER_CTL
,NOT ;; ;AN000;
91 ANDF EITHER_ALT
,NOT ;; ;AN000;
92 IFF EITHER_SHIFT
;; ;AN000;
93 IFF CAPS_STATE
;; ;AN000;
94 XLATT ACUTE_LOWER
;; ;AN000;
96 XLATT ACUTE_UPPER
;; ;AN000;
99 IFF CAPS_STATE
;; ;AN000;
100 XLATT ACUTE_UPPER
;; ;AN000;
102 XLATT ACUTE_LOWER
;; ;AN000;
107 INVALID_ACUTE: ;; ;AN000;
108 PUT_ERROR_CHAR ACUTE_LOWER
;; If we get here then either the XLATT ;AN000;
109 BEEP
;; failed or we are ina bad shift state. ;AN000;
110 GOTO NON_DEAD
;; Either is invalid so BEEP and fall ;AN000;
111 ;; through to generate the second char. ;AN000;
112 ;; Note that the dead key flag will be ;AN000;
113 ;; reset before we get here. ;AN000;
115 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
116 ;; DIARESIS ACCENT TRANSLATIONS ;AN000;
117 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
119 DIARESIS_PROC: ;; ;AN000;
121 IFF DIARESIS
,NOT ;; ;AN000;
122 GOTO GRAVE_PROC
;; ;AN000;
126 IFF R_ALT_SHIFT
,NOT ;; ;AN000;
127 XLATT DIARESIS_SPACE
;; exist for 437 so beep for ;AN000;
129 IFF EITHER_CTL
,NOT ;; ;AN000;
130 ANDF EITHER_ALT
,NOT ;; ;AN000;
131 IFF EITHER_SHIFT
;; ;AN000;
132 IFF CAPS_STATE
;; ;AN000;
133 XLATT DIARESIS_LOWER
;; ;AN000;
135 XLATT DIARESIS_UPPER
;; ;AN000;
138 IFF CAPS_STATE
;; ;AN000;
139 XLATT DIARESIS_UPPER
;; ;AN000;
141 XLATT DIARESIS_LOWER
;; ;AN000;
146 INVALID_DIARESIS: ;; ;AN000;
147 PUT_ERROR_CHAR DIARESIS_SPACE
;; standalone accent ;AN000;
148 BEEP
;; Invalid dead key combo. ;AN000;
149 GOTO NON_DEAD
;; ;AN000;
151 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
152 ;; GRAVE ACCENT TRANSLATIONS ;AN000;
153 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
155 GRAVE_PROC: ;; ;AN000;
157 IFF GRAVE
,NOT ;; ;AN000;
158 GOTO CIRCUMFLEX_PROC
;; ;AN000;
162 IFF R_ALT_SHIFT
,NOT ;; ;AN000;
163 XLATT GRAVE_SPACE
;; ;AN000;
165 IFF EITHER_CTL
,NOT ;; ;AN000;
166 ANDF EITHER_ALT
,NOT ;; ;AN000;
167 IFF EITHER_SHIFT
;; ;AN000;
168 IFF CAPS_STATE
;; ;AN000;
169 XLATT GRAVE_LOWER
;; ;AN000;
171 XLATT GRAVE_UPPER
;; ;AN000;
174 IFF CAPS_STATE
,NOT ;; ;AN000;
175 XLATT GRAVE_LOWER
;; ;AN000;
177 XLATT GRAVE_UPPER
;; ;AN000;
182 INVALID_GRAVE: ;; ;AN000;
183 PUT_ERROR_CHAR GRAVE_LOWER
;; standalone accent ;AN000;
184 BEEP
;; Invalid dead key combo. ;AN000;
185 GOTO NON_DEAD
;; ;AN000;
187 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
188 ;; CIRCUMFLEX ACCENT TRANSLATIONS ;AN000;
189 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
191 CIRCUMFLEX_PROC: ;; ;AN000;
193 IFF CIRCUMFLEX
,NOT ;; ;AN000;
194 GOTO NON_DEAD
;; ;AN000;
198 IFF R_ALT_SHIFT
,NOT ;; ;AN000;
199 XLATT CIRCUMFLEX_SPACE
;; ;AN000;
201 IFF EITHER_CTL
,NOT ;; ;AN000;
202 ANDF EITHER_ALT
,NOT ;; ;AN000;
203 IFF EITHER_SHIFT
;; ;AN000;
204 IFF CAPS_STATE
;; ;AN000;
205 XLATT CIRCUMFLEX_LOWER
;; ;AN000;
207 XLATT CIRCUMFLEX_UPPER
;; ;AN000;
210 IFF CAPS_STATE
,NOT ;; ;AN000;
211 XLATT CIRCUMFLEX_LOWER
;; ;AN000;
213 XLATT CIRCUMFLEX_UPPER
;; ;AN000;
218 INVALID_CIRCUMFLEX: ;; ;AN000;
219 PUT_ERROR_CHAR CIRCUMFLEX_LOWER
;; standalone accent ;AN000;
220 BEEP
;; Invalid dead key combo. ;AN000;
221 GOTO NON_DEAD
;; ;AN000;
224 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
225 ;; Upper, lower and third shifts ;AN000;
226 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
230 IFKBD G_KB
+P12_KB
;; Avoid accidentally translating ;AN000;
231 ANDF LC_E0
;; the "/" on the numeric pad of the ;AN000;
232 EXIT_STATE_LOGIC
;; G keyboard ;AN000;
234 ;;***BD ADDED FOR ALT, CTRL CASES ;; ;AN000;
235 IFF EITHER_CTL
,NOT ;; ;AN000;
236 IFF ALT_SHIFT
;; ALT - case ;AN000;
237 ANDF R_ALT_SHIFT
,NOT ;; ;AN000;
238 XLATT ALT_CASE
;; ;AN000;
241 IFF EITHER_ALT
,NOT ;; CTRL - case ;AN000;
242 XLATT CTRL_CASE
;; ;AN000;
245 ;;***BD END OF ADDITION ;AN000;
247 IFF EITHER_ALT
,NOT ;; Lower and upper case. Alphabetic ;AN000;
248 ANDF EITHER_CTL
,NOT ;; keys are affected by CAPS LOCK. ;AN000;
249 IFF EITHER_SHIFT
;; Numeric keys are not. ;AN000;
250 ;;***BD ADDED FOR NUMERIC PAD ;AN000;
251 IFF NUM_STATE
,NOT ;; ;AN000;
252 XLATT NUMERIC_PAD
;; ;AN000;
254 ;;***BD END OF ADDITION ;AN000;
255 XLATT NON_ALPHA_UPPER
;; ;AN000;
256 IFF CAPS_STATE
;; ;AN000;
257 XLATT ALPHA_LOWER
;; ;AN000;
259 XLATT ALPHA_UPPER
;; ;AN000;
262 ;;***BD ADDED FOR NUMERIC PAD ;AN000;
263 IFF NUM_STATE
;; ;AN000;
264 XLATT NUMERIC_PAD
;; ;AN000;
266 ;;***BD END OF ADDITION ;AN000;
267 XLATT NON_ALPHA_LOWER
;; ;AN000;
268 IFF CAPS_STATE
;; ;AN000;
269 XLATT ALPHA_UPPER
;; ;AN000;
271 XLATT ALPHA_LOWER
;; ;AN000;
275 IFF EITHER_SHIFT
,NOT ;; ;AN000;
276 IFKBD XT_KB
+AT_KB
;; ;AN000;
277 IFF EITHER_CTL
;; ;AN000;
278 ANDF ALT_SHIFT
;; ;AN000;
279 XLATT THIRD_SHIFT
;; ;AN000;
282 IFF EITHER_CTL
,NOT ;; ;AN000;
283 ANDF R_ALT_SHIFT
;; ;AN000;
284 XLATT THIRD_SHIFT
;; ;AN000;
290 EXIT_STATE_LOGIC
;; ;AN000;
292 LOGIC_END: ;; ;AN000;
295 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
296 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
297 ;;;*************************************** ;AN000;
298 ;; IT Common Translate Section ;AN000;
299 ;; This section contains translations for the lower 128 characters ;AN000;
300 ;; only since these will never change from code page to code page. ;AN000;
301 ;; In addition the dead key "Set Flag" tables are here since the ;AN000;
302 ;; dead keys are on the same keytops for all code pages. ;AN000;
303 ;;*************************************** ;AN000;
304 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
306 PUBLIC IT1_COMMON_XLAT
;; ;AN000;
307 IT1_COMMON_XLAT: ;; ;AN000;
309 DW COMMON_XLAT_END
-$ ;; length of section ;AN000;
310 DW -1 ;; code page ;AN000;
313 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
314 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
315 ;; CODE PAGE: Common ;AN000;
316 ;; STATE: Upper Shift Dead Key ;AN000;
317 ;; KEYBOARD TYPES: G + P12 ;AN000;
318 ;; TABLE TYPE: Flag Table ;AN000;
319 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
321 ;; DW COM_DK_UP_K1_END-$ ;; length of state section ;AN000;
322 ;; DB DEAD_UPPER ;; State ID ;AN000;
323 ;; DW G_KB+P12_KB ;; Keyboard Type ;AN000;
324 ;; DB -1,-1 ;; Buffer entry for error character ;AN000;
325 ;; ;; Set Flag Table ;AN000;
326 ;; DW 1 ;; number of entries ;AN000;
327 ;; DB 13 ;; scan code ;AN000;
328 ;; FLAG CIRCUMFLEX ;; flag bit to set ;AN000;
330 ;;COM_DK_UP_K1_END: ;; ;AN000;
332 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
333 ;;*************************************** ;AN000;
334 ;;***BD - ADDED FOR ALT CASE ;AN000;
335 ;;****************************** ;AN000;
336 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
337 ;; CODE PAGE: Common ;AN000;
338 ;; STATE: Alt Case ;AN000;
339 ;; KEYBOARD TYPES: All ;AN000;
340 ;; TABLE TYPE: Translate ;AN000;
341 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
343 DW COM_ALT_K1_END
-$ ;; length of state section ;AN000;
344 DB ALT_CASE
;; State ID ;AN000;
345 DW ANY_KB
;; Keyboard Type ;AN000;
346 DB -1,-1 ;; Buffer entry for error character ;AN000;
348 DW COM_ALT_K1_T1_END
-$ ;; Size of xlat table ;AN000;
349 DB TYPE_2_TAB
;; xlat options: ;AN000;
350 DB 0 ;; 3 number of entries ;AN000;
351 ;;***BD THIS ENTRY IS A TEST ENTRY ;AN000;
352 ;; DB 53,225,0 ;; TEST ENTRY ;AN000;
353 ; DB 53,0,82H ;; valid alt - ;AN000;
354 ; DB 12,-1,-1 ;; invalid alt - ;AN000;
355 ; DB 13,-1,-1 ;; invalid alt = ;AN000;
356 COM_ALT_K1_T1_END: ;; ;AN000;
358 DW 0 ;; Size of xlat table - null table ;AN000;
360 COM_ALT_K1_END: ;; ;AN000;
362 ;;****************************** ;AN000;
363 ;;***BD - ADDED FOR CTRL CASE ;AN000;
364 ;;****************************** ;AN000;
365 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
366 ;; CODE PAGE: Common ;AN000;
367 ;; STATE: Ctrl Case ;AN000;
368 ;; KEYBOARD TYPES: G_KB+P12_KB+AT ;AN000;
369 ;; TABLE TYPE: Translate ;AN000;
370 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
372 DW COM_CTRL_K1_END
-$ ;; length of state section ;AN000;
373 DB CTRL_CASE
;; State ID ;AN000;
374 DW G_KB
+P12_KB
+AT_KB
;; Keyboard Type ;AN000;
375 DB -1,-1 ;; Buffer entry for error character ;AN000;
377 DW COM_CTRL_K1_T1_END
-$ ;; Size of xlat table ;AN000;
378 DB TYPE_2_TAB
;; xlat options: ;AN000;
379 DB 2 ;; number of entries ;AN000;
380 ;;***BD THIS ENTRY IS A TEST ENTRY ;AN000;
381 ;; DB 53,226,0 ;; TEST ENTRY ;AN000;
382 DB 43,-1,-1 ;; invalid slash ;AN000;
383 DB 41,28,41 ;; valid slash ;AN000;
384 COM_CTRL_K1_T1_END: ;; ;AN000;
386 DW 0 ;; Size of xlat table - null table ;AN000;
388 COM_CTRL_K1_END: ;; ;AN000;
390 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
391 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
392 ;; CODE PAGE: Common ;;change **********CNS ************** ;AN000;
393 ;; STATE: Numeric Key Pad ;AN000;
394 ;; KEYBOARD TYPES: All except the p12 ;AN000;
395 ;; TABLE TYPE: Translate ;AN000;
396 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
398 DW COM_PAD_K1_END
-$ ;; length of state section ;AN000;
399 DB NUMERIC_PAD
;; State ID ;AN000;
400 DW G_KB
+AT_KB
+XT_KB
;; Keyboard Type ;AN000;
401 DB -1,-1 ;; Buffer entry for error character ;AN000;
403 DW COM_PAD_K1_T1_END
-$ ;; Size of xlat table ;AN000;
404 DB STANDARD_TABLE
;; xlat options: ;AN000;
405 DB 1 ;; number of entries ;AN000;
406 DB 83,',' ;; decimal seperator = , ;AN000;
407 COM_PAD_K1_T1_END: ;; ;AN000;
409 DW 0 ;; Size of xlat table - null table ;AN000;
411 COM_PAD_K1_END: ;; ;AN000;
412 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
413 ;; CODE PAGE: Common ;AN000;
414 ;; STATE: Non-Alpha Lower Case ;AN000;
415 ;; KEYBOARD TYPES: G_KB+P12_KB ;AN000;
416 ;; TABLE TYPE: Translate ;AN000;
417 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
419 DW COM_NA_LO_K1_END
-$ ;; length of state section ;AN000;
420 DB NON_ALPHA_LOWER
;; State ID ;AN000;
421 DW G_KB
+P12_KB
;; Keyboard Type ;AN000;
422 DB -1,-1 ;; Buffer entry for error character ;AN000;
424 DW COM_NA_LO_K1_T1_END
-$ ;; Size of xlat table ;AN000;
425 DB STANDARD_TABLE
;; xlat options: ;AN000;
426 DB 10 ;; number of entries ;AN000;
427 DB 41,"\" ;; \ ;AN000;
428 DB 12,"'" ;; ' ;AN000;
429 DB 13,141 ;; grave i - ¡; ;AN000;
430 DB 27,'+' ;; + ;AN000;
431 DB 86,'<' ;; < ;AN000;
432 DB 53,'-' ;; - ;AN000;
433 DB 39,149 ;; grave o - \95 ;AN000;
434 DB 40,133 ;; grave a - \85; ;AN000;
435 DB 43,151 ;; grave u - \97; ;AN000;
436 DB 26,138 ;; grave e - \8a; ;AN000;
437 COM_NA_LO_K1_T1_END: ;; ;AN000;
439 DW 0 ;; Size of xlat table - null table ;AN000;
441 COM_NA_LO_K1_END: ;; ;AN000;
443 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
444 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
445 ;; CODE PAGE: Common ;AN000;
446 ;; STATE: Non-Alpha Lower Case ;AN000;
447 ;; KEYBOARD TYPES: AT ;AN000;
448 ;; TABLE TYPE: Translate ;AN000;
449 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
451 DW COM_NA_LO_K2_END
-$ ;; length of state section ;AN000;
452 DB NON_ALPHA_LOWER
;; State ID ;AN000;
453 DW AT_KB
;; Keyboard Type ;AN000;
454 DB -1,-1 ;; Buffer entry for error character ;AN000;
456 DW COM_NA_LO_K2_T1_END
-$ ;; Size of xlat table ;AN000;
457 DB STANDARD_TABLE
;; xlat options: ;AN000;
458 DB 9 ;; number of entries ;AN000;
459 DB 41,"<" ;; < ;AN000;
460 DB 12,"'" ;; ' ;AN000;
461 DB 13,141 ;; grave i - ¡; ;AN000;
462 DB 27,'+' ;; + ;AN000;
463 DB 53,'-' ;; - ;AN000;
464 DB 39,149 ;; grave o - \95 ;AN000;
465 DB 40,133 ;; grave a - \85; ;AN000;
466 DB 43,151 ;; grave u - \97; ;AN000;
467 DB 26,138 ;; grave e - \8a; ;AN000;
468 COM_NA_LO_K2_T1_END: ;; ;AN000;
470 DW 0 ;; Size of xlat table - null table ;AN000;
472 COM_NA_LO_K2_END: ;; ;AN000;
474 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
475 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
476 ;; CODE PAGE: Common ;AN000;
477 ;; STATE: Non-Alpha Lower Case ;AN000;
478 ;; KEYBOARD TYPES: XT + ;AN000;
479 ;; TABLE TYPE: Translate ;AN000;
480 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
482 DW COM_NA_LO_K3_END
-$ ;; length of state section ;AN000;
483 DB NON_ALPHA_LOWER
;; State ID ;AN000;
484 DW XT_KB
;; Keyboard Type ;AN000;
485 DB -1,-1 ;; Buffer entry for error character ;AN000;
487 DW COM_NA_LO_K3_T1_END
-$ ;; Size of xlat table ;AN000;
488 DB STANDARD_TABLE
;; xlat options: ;AN000;
489 DB 9 ;; number of entries ;AN000;
490 DB 12,"'" ;; ' ;AN000;
491 DB 13,141 ;; grave i - ¡; ;AN000;
492 DB 27,'+' ;; + ;AN000;
493 DB 43,'<' ;; < ;AN000;
494 DB 53,'-' ;; - ;AN000;
495 DB 39,149 ;; grave o - \95 ;AN000;
496 DB 40,133 ;; grave a - \85; ;AN000;
497 DB 41,151 ;; grave u - \97; ;AN000;
498 DB 26,138 ;; grave e - \8a; ;AN000;
499 COM_NA_LO_K3_T1_END: ;; ;AN000;
501 DW 0 ;; Size of xlat table - null table ;AN000;
503 COM_NA_LO_K3_END: ;; ;AN000;
505 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
506 ;; CODE PAGE: Common ;AN000;
507 ;; STATE: Non-Alpha Upper Case ;AN000;
508 ;; KEYBOARD TYPES: G_KB+P12 ;AN000;
509 ;; TABLE TYPE: Translate ;AN000;
510 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
512 DW COM_NA_UP_K1_END
-$ ;; length of state section ;AN000;
513 DB NON_ALPHA_UPPER
;; State ID ;AN000;
514 DW G_KB
+P12_KB
;; Keyboard Type ;AN000;
515 DB -1,-1 ;; Buffer entry for error character ;AN000;
517 DW COM_NA_UP_K1_T1_END
-$ ;; Size of xlat table ;AN000;
518 DB STANDARD_TABLE
;; xlat options: ;AN000;
519 DB 18 ;; number of entries ;AN000;
520 DB 41,07CH ;; Solid vertical bar - | ;AN000;
522 DB 4,'\9c' ;; ;AN000;
530 DB 26,130 ;; acute e - \82; ;AN000;
531 DB 39,135 ;; c - cedilla - \87 ;AN000;
533 DB 40,0F8H ;; ø - degree symbol ;AN000;
539 COM_NA_UP_K1_T1_END: ;; ;AN000;
541 DW 0 ;; Size of xlat table - null table ;AN000;
543 COM_NA_UP_K1_END: ;; ;AN000;
546 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
547 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
548 ;; CODE PAGE: Common ;AN000;
549 ;; STATE: Non-Alpha Upper Case ;AN000;
550 ;; KEYBOARD TYPES: AT ;AN000;
551 ;; TABLE TYPE: Translate ;AN000;
552 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
554 DW COM_NA_UP_K2_END
-$ ;; length of state section ;AN000;
555 DB NON_ALPHA_UPPER
;; State ID ;AN000;
556 DW AT_KB
;; Keyboard Type ;AN000;
557 DB -1,-1 ;; Buffer entry for error character ;AN000;
559 DW COM_NA_UP_K2_T1_END
-$ ;; Size of xlat table ;AN000;
560 DB STANDARD_TABLE
;; xlat options: ;AN000;
561 DB 18 ;; number of entries ;AN000;
562 DB 41,'>' ;; > ;AN000;
564 DB 4,'\9c' ;; ;AN000;
572 DB 26,130 ;; acute e - \82; ;AN000;
573 DB 39,'@' ;; @ AT sign replaces c - cedilla - \87 ;AN000;
575 DB 40,'#' ;; # sign replaces ø - degree symbol ;AN000;
581 COM_NA_UP_K2_T1_END: ;; ;AN000;
583 DW 0 ;; Size of xlat table - null table ;AN000;
585 COM_NA_UP_K2_END: ;; ;AN000;
588 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
589 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
590 ;; CODE PAGE: Common ;AN000;
591 ;; STATE: Non-Alpha Upper Case ;AN000;
592 ;; KEYBOARD TYPES: XT + ;AN000;
593 ;; TABLE TYPE: Translate ;AN000;
594 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
596 DW COM_NA_UP_K3_END
-$ ;; length of state section ;AN000;
597 DB NON_ALPHA_UPPER
;; State ID ;AN000;
598 DW XT_KB
;; Keyboard Type ;AN000;
599 DB -1,-1 ;; Buffer entry for error character ;AN000;
601 DW COM_NA_UP_K3_T1_END
-$ ;; Size of xlat table ;AN000;
602 DB STANDARD_TABLE
;; xlat options: ;AN000;
603 DB 17 ;; number of entries ;AN000;
605 DB 4,'\9c' ;; ;AN000;
613 DB 26,130 ;; acute e - \82; ;AN000;
614 DB 39,'@' ;; @ AT sign replaces c - cedilla - \87 ;AN000;
616 DB 40,'#' ;; # sign replaces ø - degree symbol ;AN000;
622 COM_NA_UP_K3_T1_END: ;; ;AN000;
624 DW 0 ;; Size of xlat table - null table ;AN000;
626 COM_NA_UP_K3_END: ;; ;AN000;
629 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
630 ;; CODE PAGE: Common ;AN000;
631 ;; STATE: Third Shift ;AN000;
632 ;; KEYBOARD TYPES: G_KB ;AN000;
633 ;; TABLE TYPE: Translate ;AN000;
634 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
636 DW COM_THIRD_K1_END
-$ ;; length of state section ;AN000;
637 DB THIRD_SHIFT
;; State ID ;AN000;
638 DW G_KB
;; Keyboard Type ;AN000;
639 DB -1,-1 ;; Buffer entry for error character ;AN000;
641 DW COM_THIRD_K1_T1_END
-$ ;; Size of xlat table ;AN000;
642 DB STANDARD_TABLE
;; xlat options: ;AN000;
643 DB 8 ;; number of entries ;AN000;
651 DB 43,"`" ;; grave symbol or closing single quote ;AN000;
652 COM_THIRD_K1_T1_END: ;; codepoint 60h ;AN000;
654 DW 0 ;; Last xlat table ;AN000;
655 COM_THIRD_K1_END: ;; ;AN000;
657 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
658 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
659 ;; CODE PAGE: Common ;AN000;
660 ;; STATE: Third Shift ;AN000;
661 ;; KEYBOARD TYPES: P12_KB ;AN000;
662 ;; TABLE TYPE: Translate ;AN000;
663 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
665 DW COM_THIRD_PK1_END
-$ ;; length of state section ;AN000;
666 DB THIRD_SHIFT
;; State ID ;AN000;
667 DW P12_KB
;; Keyboard Type ;AN000;
668 DB -1,-1 ;; Buffer entry for error character ;AN000;
670 DW COM_THIRD_PK1_T1_END
-$ ;; Size of xlat table ;AN000;
671 DB STANDARD_TABLE
;; xlat options: ;AN000;
672 DB 4 ;; number of entries ;AN000;
677 COM_THIRD_PK1_T1_END: ;; ;AN000;
679 DW 0 ;; Last xlat table ;AN000;
680 COM_THIRD_PK1_END: ;; ;AN000;
682 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
683 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
684 ;; CODE PAGE: Common ;AN000;
685 ;; STATE: Third Shift ;AN000;
686 ;; KEYBOARD TYPES: AT ;AN000;
687 ;; TABLE TYPE: Translate ;AN000;
688 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
690 DW COM_THIRD_K2_END
-$ ;; length of state section ;AN000;
691 DB THIRD_SHIFT
;; State ID ;AN000;
692 DW AT_KB
;; Keyboard Type ;AN000;
693 DB -1,-1 ;; Buffer entry for error character ;AN000;
695 DW COM_THIRD_K2_T1_END
-$ ;; Size of xlat table ;AN000;
696 DB STANDARD_TABLE
;; xlat options: ;AN000;
697 DB 3 ;; number of entries ;AN000;
701 COM_THIRD_K2_T1_END: ;; ;AN000;
703 DW 0 ;; Last xlat table ;AN000;
704 COM_THIRD_K2_END: ;; ;AN000;
706 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
707 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
708 ;; CODE PAGE: Common ;AN000;
709 ;; STATE: Third Shift ;AN000;
710 ;; KEYBOARD TYPES: XT + ;AN000;
711 ;; TABLE TYPE: Translate ;AN000;
712 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
714 DW COM_THIRD_K3_END-$ ;; length of state section ;AN000;
715 DB THIRD_SHIFT ;; State ID ;AN000;
716 DW XT_KB ;; Keyboard Type ;AN000;
717 DB -1,-1 ;; Buffer entry for error character ;AN000;
719 DW COM_THIRD_K3_T1_END-$ ;; Size of xlat table ;AN000;
720 DB STANDARD_TABLE ;; xlat options: ;AN000;
721 DB 3 ;; number of entries ;AN000;
725 COM_THIRD_K3_T1_END: ;; ;AN000;
727 DW 0 ;; Last xlat table ;AN000;
728 COM_THIRD_K3_END: ;; ;AN000;
730 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
731 DW 0 ;; Last State ;AN000;
732 COMMON_XLAT_END: ;; ;AN000;
736 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
737 ;;*************************************** ;AN000;
738 ;; IT Specific Translate Section for 437 ;AN000;
739 ;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE. ;AN000;
740 ;;*************************************** ;AN000;
741 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
743 PUBLIC IT1_437_XLAT
;; ;AN000;
744 IT1_437_XLAT: ;; ;AN000;
746 DW CP437_XLAT_END
-$ ;; length of section ;AN000;
748 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
749 ;; CODE PAGE: 437 ;AN000;
750 ;; STATE: Non-Alpha Upper case ;AN000;
751 ;; KEYBOARD TYPES: G_KB+P12+AT ;AN000;
752 ;; TABLE TYPE: Translate ;AN000;
753 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
755 DW CP437_NA_UP_K1_END
-$ ;; length of state section ;AN000;
756 DB NON_ALPHA_UPPER
;; State ID ;AN000;
757 DW G_KB
+P12_KB
+AT_KB
;; Keyboard Type ;AN000;
758 DB -1,-1 ;; error character = standalone accent ;AN000;
760 DW CP437_NA_UP_T1_K1_END
-$ ;; Size of xlat table ;AN000;
761 DB STANDARD_TABLE
+ZERO_SCAN
;; xlat options: ;AN000;
762 DB 1 ;; number of scans ;AN000;
763 DB 43,015H ;; Section symbol - \15 ;AN000;
764 CP437_NA_UP_T1_K1_END: ;; ;AN000;
766 DW 0 ;; Size of xlat table - null table ;AN000;
768 CP437_NA_UP_K1_END: ;; ;AN000;
770 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
771 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
772 ;; CODE PAGE: 437 ;AN000;
773 ;; STATE: Non-Alpha Upper case ;AN000;
774 ;; KEYBOARD TYPES: XT + ;AN000;
775 ;; TABLE TYPE: Translate ;AN000;
776 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
778 DW CP437_NA_UP_K2_END
-$ ;; length of state section ;AN000;
779 DB NON_ALPHA_UPPER
;; State ID ;AN000;
780 DW XT_KB
;; Keyboard Type ;AN000;
781 DB -1,-1 ;; error character = standalone accent ;AN000;
783 DW CP437_NA_UP_T1_K2_END
-$ ;; Size of xlat table ;AN000;
784 DB STANDARD_TABLE
+ZERO_SCAN
;; xlat options: ;AN000;
785 DB 1 ;; number of scans ;AN000;
786 DB 41,015H ;; Section symbol - \15 ;AN000;
787 CP437_NA_UP_T1_K2_END: ;; ;AN000;
789 DW 0 ;; Size of xlat table - null table ;AN000;
791 CP437_NA_UP_K2_END: ;; ;AN000;
793 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
794 DW 0 ;; LAST STATE ;AN000;
796 CP437_XLAT_END: ;; ;AN000;
798 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
799 ;;*************************************** ;AN000;
800 ;; IT Specific Translate Section for 850 ;AN000;
801 ;;*************************************** ;AN000;
802 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
804 PUBLIC IT1_850_XLAT
;; ;AN000;
805 IT1_850_XLAT: ;; ;AN000;
807 DW CP850_XLAT_END
-$ ;; length of section ;AN000;
811 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
812 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
813 ;; CODE PAGE: 850 ;AN000;
814 ;; STATE: Non-Alpha Upper case ;AN000;
815 ;; KEYBOARD TYPES: G_KB+P12+AT ;AN000;
816 ;; TABLE TYPE: Translate ;AN000;
817 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
819 DW CP850_NA_UP_K1_END
-$ ;; length of state section ;AN000;
820 DB NON_ALPHA_UPPER
;; State ID ;AN000;
821 DW G_KB
+P12_KB
+AT_KB
;; Keyboard Type ;AN000;
822 DB -1,-1 ;; error character = standalone accent ;AN000;
824 DW CP850_NA_UP_T1_K1_END
-$ ;; Size of xlat table ;AN000;
825 DB STANDARD_TABLE
+ZERO_SCAN
;; xlat options: ;AN000;
826 DB 1 ;; number of scans ;AN000;
827 DB 43,0F5H ;; Section symbol - \15 ;AN000;
828 CP850_NA_UP_T1_K1_END: ;; ;AN000;
830 DW 0 ;; Size of xlat table - null table ;AN000;
832 CP850_NA_UP_K1_END: ;; ;AN000;
834 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
835 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
836 ;; CODE PAGE: 850 ;AN000;
837 ;; STATE: Non-Alpha Upper case ;AN000;
838 ;; KEYBOARD TYPES: XT ;AN000;
839 ;; TABLE TYPE: Translate ;AN000;
840 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
842 DW CP850_NA_UP_K2_END
-$ ;; length of state section ;AN000;
843 DB NON_ALPHA_UPPER
;; State ID ;AN000;
844 DW XT_KB
;; Keyboard Type ;AN000;
845 DB -1,-1 ;; error character = standalone accent ;AN000;
847 DW CP850_NA_UP_T1_K2_END
-$ ;; Size of xlat table ;AN000;
848 DB STANDARD_TABLE
+ZERO_SCAN
;; xlat options: ;AN000;
849 DB 1 ;; number of scans ;AN000;
850 DB 41,0F5H ;; Section symbol - \15 ;AN000;
851 CP850_NA_UP_T1_K2_END: ;; ;AN000;
853 DW 0 ;; Size of xlat table - null table ;AN000;
855 CP850_NA_UP_K2_END: ;; ;AN000;
857 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
858 DW 0 ;; LAST STATE ;AN000;
860 CP850_XLAT_END: ;; ;AN000;
861 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;