1 ;CODE to be deleted has a double ;; followed by actual asm code....****
2 ;; LATEST CHANGE ALT & CTL
7 TITLE DOS
- Keyboard Definition
File
9 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
10 ;; DOS - - NLS Support - Keyboard Defintion File
11 ;; (c) Copyright 1988 Microsoft
13 ;; This file contains the keyboard tables for Spanish.
15 ;; Linkage Instructions:
18 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
20 INCLUDE KEYBSHAR
.INC ;; ;AN000;
21 INCLUDE POSTEQU
.INC ;; ;AN000;
22 INCLUDE KEYBMAC
.INC ;; ;AN000;
24 PUBLIC UK1_LOGIC
;; ;AN000;
25 PUBLIC UK1_437_XLAT
;; ;AN000;
26 PUBLIC UK1_850_XLAT
;; ;AN000;
28 CODE SEGMENT PUBLIC 'CODE' ;; ;AN000;
29 ASSUME
CS:CODE,DS:CODE ;; ;AN000;
31 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
32 ;; Standard translate table options are a liner search table ;AN000;
33 ;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) ;AN000;
34 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
36 STANDARD_TABLE EQU TYPE_2_TAB
+ASCII_ONLY
;AN000;
38 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
39 ;;*************************************** ;AN000;
40 ;; UK State Logic ;AN000;
41 ;;*************************************** ;AN000;
42 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
47 DW LOGIC_END
-$ ;; length ;AN000;
49 DW 0 ;; special features ;AN000;
51 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE ;AN000;
53 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
54 ;; OPTIONS: If we find a scan match in ;AN000;
55 ;; an XLATT or SET_FLAG operation then ;AN000;
56 ;; exit from INT 9. ;AN000;
57 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
59 OPTION EXIT_IF_FOUND
;; ;AN000;
62 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
63 ;; Dead key definitions must come before ;AN000;
64 ;; dead key translations to handle ;AN000;
65 ;; dead key + dead key. ;AN000;
66 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
68 IFF EITHER_ALT
,NOT ;; ;AN000;
69 ANDF EITHER_CTL
,NOT ;; ;AN000;
70 IFF EITHER_SHIFT
;; ;AN000;
71 SET_FLAG DEAD_UPPER
;; ;AN000;
73 SET_FLAG DEAD_LOWER
;; ;AN000;
77 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
78 ;; ACUTE ACCENT TRANSLATIONS ;AN000;
79 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
81 ACUTE_PROC: ;; ;AN000;
83 IFF ACUTE
,NOT ;; ;AN000;
84 GOTO DIARESIS_PROC
;; ;AN000;
88 IFF R_ALT_SHIFT
,NOT ;; ;AN000;
89 XLATT ACUTE_SPACE
;; ;AN000;
91 IFF EITHER_CTL
,NOT ;; ;AN000;
92 ANDF EITHER_ALT
,NOT ;; ;AN000;
93 IFF EITHER_SHIFT
;; ;AN000;
94 IFF CAPS_STATE
;; ;AN000;
95 XLATT ACUTE_LOWER
;; ;AN000;
97 XLATT ACUTE_UPPER
;; ;AN000;
100 IFF CAPS_STATE
;; ;AN000;
101 XLATT ACUTE_UPPER
;; ;AN000;
103 XLATT ACUTE_LOWER
;; ;AN000;
108 INVALID_ACUTE: ;; ;AN000;
109 PUT_ERROR_CHAR ACUTE_LOWER
;; If we get here then either the XLATT ;AN000;
110 BEEP
;; failed or we are ina bad shift state. ;AN000;
111 GOTO NON_DEAD
;; Either is invalid so BEEP and fall ;AN000;
112 ;; through to generate the second char. ;AN000;
113 ;; Note that the dead key flag will be ;AN000;
114 ;; reset before we get here. ;AN000;
116 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
117 ;; DIARESIS ACCENT TRANSLATIONS ;AN000;
118 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
120 DIARESIS_PROC: ;; ;AN000;
122 IFF DIARESIS
,NOT ;; ;AN000;
123 GOTO GRAVE_PROC
;; ;AN000;
127 IFF R_ALT_SHIFT
,NOT ;; ;AN000;
128 XLATT DIARESIS_SPACE
;; exist for 437 so beep for ;AN000;
130 IFF EITHER_CTL
,NOT ;; ;AN000;
131 ANDF EITHER_ALT
,NOT ;; ;AN000;
132 IFF EITHER_SHIFT
;; ;AN000;
133 IFF CAPS_STATE
;; ;AN000;
134 XLATT DIARESIS_LOWER
;; ;AN000;
136 XLATT DIARESIS_UPPER
;; ;AN000;
139 IFF CAPS_STATE
;; ;AN000;
140 XLATT DIARESIS_UPPER
;; ;AN000;
142 XLATT DIARESIS_LOWER
;; ;AN000;
147 INVALID_DIARESIS: ;; ;AN000;
148 PUT_ERROR_CHAR DIARESIS_SPACE
;; standalone accent ;AN000;
149 BEEP
;; Invalid dead key combo. ;AN000;
150 GOTO NON_DEAD
;; ;AN000;
152 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
153 ;; GRAVE ACCENT TRANSLATIONS ;AN000;
154 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
156 GRAVE_PROC: ;; ;AN000;
158 IFF GRAVE
,NOT ;; ;AN000;
159 GOTO CIRCUMFLEX_PROC
;; ;AN000;
163 IFF R_ALT_SHIFT
,NOT ;; ;AN000;
164 XLATT GRAVE_SPACE
;; ;AN000;
166 IFF EITHER_CTL
,NOT ;; ;AN000;
167 ANDF EITHER_ALT
,NOT ;; ;AN000;
168 IFF EITHER_SHIFT
;; ;AN000;
169 IFF CAPS_STATE
;; ;AN000;
170 XLATT GRAVE_LOWER
;; ;AN000;
172 XLATT GRAVE_UPPER
;; ;AN000;
175 IFF CAPS_STATE
,NOT ;; ;AN000;
176 XLATT GRAVE_LOWER
;; ;AN000;
178 XLATT GRAVE_UPPER
;; ;AN000;
183 INVALID_GRAVE: ;; ;AN000;
184 PUT_ERROR_CHAR GRAVE_LOWER
;; standalone accent ;AN000;
185 BEEP
;; Invalid dead key combo. ;AN000;
186 GOTO NON_DEAD
;; ;AN000;
188 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
189 ;; CIRCUMFLEX ACCENT TRANSLATIONS ;AN000;
190 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
192 CIRCUMFLEX_PROC: ;; ;AN000;
194 IFF CIRCUMFLEX
,NOT ;; ;AN000;
195 GOTO NON_DEAD
;; ;AN000;
199 IFF R_ALT_SHIFT
,NOT ;; ;AN000;
200 XLATT CIRCUMFLEX_SPACE
;; ;AN000;
202 IFF EITHER_CTL
,NOT ;; ;AN000;
203 ANDF EITHER_ALT
,NOT ;; ;AN000;
204 IFF EITHER_SHIFT
;; ;AN000;
205 IFF CAPS_STATE
;; ;AN000;
206 XLATT CIRCUMFLEX_LOWER
;; ;AN000;
208 XLATT CIRCUMFLEX_UPPER
;; ;AN000;
211 IFF CAPS_STATE
,NOT ;; ;AN000;
212 XLATT CIRCUMFLEX_LOWER
;; ;AN000;
214 XLATT CIRCUMFLEX_UPPER
;; ;AN000;
219 INVALID_CIRCUMFLEX: ;; ;AN000;
220 PUT_ERROR_CHAR CIRCUMFLEX_LOWER
;; standalone accent ;AN000;
221 BEEP
;; Invalid dead key combo. ;AN000;
222 GOTO NON_DEAD
;; ;AN000;
225 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
226 ;; Upper, lower and third shifts ;AN000;
227 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
231 IFKBD G_KB
+P12_KB
;; Avoid accidentally translating ;AN000;
232 ANDF LC_E0
;; the "/" on the numeric pad of the ;AN000;
233 EXIT_STATE_LOGIC
;; G keyboard ;AN000;
235 ;;***BD ADDED FOR ALT, CTRL CASES ;; ;AN000;
236 IFF EITHER_CTL
,NOT ;; ;AN000;
237 IFF ALT_SHIFT
;; ALT - case ;AN000;
238 ANDF R_ALT_SHIFT
,NOT ;; ;AN000;
239 XLATT ALT_CASE
;; ;AN000;
242 IFF EITHER_ALT
,NOT ;; CTRL - case ;AN000;
243 XLATT CTRL_CASE
;; ;AN000;
246 ;;***BD END OF ADDITION ;AN000;
248 IFF EITHER_ALT
,NOT ;; Lower and upper case. Alphabetic ;AN000;
249 ANDF EITHER_CTL
,NOT ;; keys are affected by CAPS LOCK. ;AN000;
250 IFF EITHER_SHIFT
;; Numeric keys are not. ;AN000;
251 ;;***BD ADDED FOR NUMERIC PAD ;AN000;
252 IFF NUM_STATE
,NOT ;; ;AN000;
253 XLATT NUMERIC_PAD
;; ;AN000;
255 ;;***BD END OF ADDITION ;AN000;
256 XLATT NON_ALPHA_UPPER
;; ;AN000;
257 IFF CAPS_STATE
;; ;AN000;
258 XLATT ALPHA_LOWER
;; ;AN000;
260 XLATT ALPHA_UPPER
;; ;AN000;
263 ;;***BD ADDED FOR NUMERIC PAD ;AN000;
264 IFF NUM_STATE
;; ;AN000;
265 XLATT NUMERIC_PAD
;; ;AN000;
267 ;;***BD END OF ADDITION ;AN000;
268 XLATT NON_ALPHA_LOWER
;; ;AN000;
269 IFF CAPS_STATE
;; ;AN000;
270 XLATT ALPHA_UPPER
;; ;AN000;
272 XLATT ALPHA_LOWER
;; ;AN000;
276 IFF EITHER_SHIFT
,NOT ;; ;AN000;
277 IFKBD XT_KB
+AT_KB
;; ;AN000;
278 IFF EITHER_CTL
;; ;AN000;
279 ANDF ALT_SHIFT
;; ;AN000;
280 XLATT THIRD_SHIFT
;; ;AN000;
283 IFF EITHER_CTL
,NOT ;; ;AN000;
284 ANDF R_ALT_SHIFT
;; ;AN000;
285 XLATT THIRD_SHIFT
;; ;AN000;
291 EXIT_STATE_LOGIC
;; ;AN000;
293 LOGIC_END: ;; ;AN000;
296 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
297 ;;*************************************** ;AN000;
298 ;; UK 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;
305 PUBLIC UK1_COMMON_XLAT
;; ;AN000;
306 UK1_COMMON_XLAT: ;; ;AN000;
308 DW COMMON_XLAT_END
-$ ;; length of section ;AN000;
309 DW -1 ;; code page ;AN000;
312 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
313 ;;*************************************** ;AN000;
314 ;;***BD - ADDED FOR ALT CASE ;AN000;
315 ;;****************************** ;AN000;
316 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
317 ;; CODE PAGE: Common ;AN000;
318 ;; STATE: Alt Case ;AN000;
319 ;; KEYBOARD TYPES: All ;AN000;
320 ;; TABLE TYPE: Translate ;AN000;
321 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
323 DW COM_ALT_K2_END
-$ ;; length of state section ;AN000;
324 DB ALT_CASE
;; State ID ;AN000;
325 DW ANY_KB
;; Keyboard Type ;AN000;
326 DB -1,-1 ;; Buffer entry for error character ;AN000;
328 DW COM_ALT_K2_T1_END
-$ ;; Size of xlat table ;AN000;
329 DB TYPE_2_TAB
;; xlat options: ;AN000;
330 DB 0 ;; number of entries ;AN000;
331 ;;***BD THIS ENTRY IS A TEST ENTRY ;AN000;
332 ;; DB 53,225,0 ;; TEST ENTRY ;AN000;
333 COM_ALT_K2_T1_END: ;; ;AN000;
335 DW 0 ;; Size of xlat table - null table ;AN000;
337 COM_ALT_K2_END: ;; ;AN000;
339 ;;****************************** ;AN000;
340 ;;***BD - ADDED FOR CTRL CASE ;AN000;
341 ;;****************************** ;AN000;
342 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
343 ;; CODE PAGE: Common ;AN000;
344 ;; STATE: Ctrl Case ;AN000;
345 ;; KEYBOARD TYPES: G_KB+P12+AT ;AN000;
346 ;; TABLE TYPE: Translate ;AN000;
347 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
349 DW COM_CTRL_K2_END
-$ ;; length of state section ;AN000;
350 DB CTRL_CASE
;; State ID ;AN000;
351 DW G_KB
+P12_KB
+AT_KB
;; Keyboard Type ;AN000;
352 DB -1,-1 ;; Buffer entry for error character ;AN000;
354 DW COM_CTRL_K2_T1_END
-$ ;; Size of xlat table ;AN000;
355 DB TYPE_2_TAB
;; xlat options: ;AN000;
356 DB 2 ;; number of entries ;AN000;
357 ;;***BD THIS ENTRY IS A TEST ENTRY ;AN000;
358 ;; DB 53,226,0 ;; TEST ENTRY ;AN000;
359 DB 43,-1,-1 ;; invalid slash ;AN000;
360 DB 41,28,41 ;; valid slash ;AN000;
361 COM_CTRL_K2_T1_END: ;; ;AN000;
363 DW 0 ;; Size of xlat table - null table ;AN000;
365 COM_CTRL_K2_END: ;; ;AN000;
367 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
368 ;; CODE PAGE: Common ;AN000;
369 ;; STATE: Non-Alpha Lower Case ;AN000;
370 ;; KEYBOARD TYPES: G_KB ;AN000;
371 ;; TABLE TYPE: Translate ;AN000;
372 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
374 DW COM_NA_LO_K1_END
-$ ;; length of state section ;AN000;
375 DB NON_ALPHA_LOWER
;; State ID ;AN000;
376 DW G_KB
;; Keyboard Type ;AN000;
377 DB -1,-1 ;; Buffer entry for error character ;AN000;
379 DW COM_NA_LO_K1_T1_END
-$ ;; Size of xlat table ;AN000;
380 DB STANDARD_TABLE
;; xlat options: ;AN000;
381 DB 6 ;; number of entries ;AN000;
383 DB 26,"@" ;; ' ;AN000;
384 DB 27,"[" ;; ' ;AN000;
385 DB 40,":" ;; ' ;AN000;
386 DB 41,"\" ;; ' ;AN000;
387 DB 43,']' ;; # ;AN000;
388 COM_NA_LO_K1_T1_END: ;; ;AN000;
390 DW 0 ;; Size of xlat table - null table ;AN000;
392 COM_NA_LO_K1_END: ;; ;AN000;
394 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
395 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
396 ;; CODE PAGE: Common ;AN000;
397 ;; STATE: Non-Alpha Lower Case ;AN000;
398 ;; KEYBOARD TYPES: P12_KB ;AN000;
399 ;; TABLE TYPE: Translate ;AN000;
400 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
402 DW COM_NA_LO_PK1_END-$ ;; length of state section ;AN000;
403 DB NON_ALPHA_LOWER ;; State ID ;AN000;
404 DW P12_KB ;; Keyboard Type ;AN000;
405 DB -1,-1 ;; Buffer entry for error character ;AN000;
407 DW COM_NA_LO_PK1_T1_END-$ ;; Size of xlat table ;AN000;
408 DB STANDARD_TABLE ;; xlat options: ;AN000;
409 DB 2 ;; number of entries ;AN000;
410 DB 40,"'" ;; ' ;AN000;
411 DB 43,'#' ;; # ;AN000;
412 COM_NA_LO_PK1_T1_END: ;; ;AN000;
414 DW 0 ;; Size of xlat table - null table ;AN000;
416 COM_NA_LO_PK1_END: ;; ;AN000;
418 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
419 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
420 ;; CODE PAGE: Common ;AN000;
421 ;; STATE: Non-Alpha Lower Case ;AN000;
422 ;; KEYBOARD TYPES: AT ;AN000;
423 ;; TABLE TYPE: Translate ;AN000;
424 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
426 DW COM_NA_LO_K2_END
-$ ;; length of state section ;AN000;
427 DB NON_ALPHA_LOWER
;; State ID ;AN000;
428 DW AT_KB
;; Keyboard Type ;AN000;
429 DB -1,-1 ;; Buffer entry for error character ;AN000;
431 DW COM_NA_LO_K2_T1_END
-$ ;; Size of xlat table ;AN000;
432 DB STANDARD_TABLE
;; xlat options: ;AN000;
433 DB 3 ;; number of entries ;AN000;
434 DB 41,"\" ;; \ ;AN000;
435 DB 40,"'" ;; ' ;AN000;
436 DB 43,'#' ;; # ;AN000;
437 COM_NA_LO_K2_T1_END: ;; ;AN000;
439 DW 0 ;; Size of xlat table - null table ;AN000;
441 COM_NA_LO_K2_END: ;; ;AN000;
443 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
444 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
445 ;; CODE PAGE: Common ;AN000;
446 ;; STATE: Non-Alpha Lower Case ;AN000;
447 ;; KEYBOARD TYPES: XT_KB ;AN000;
448 ;; TABLE TYPE: Translate ;AN000;
449 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
451 DW COM_NA_LO_K3_END
-$ ;; length of state section ;AN000;
452 DB NON_ALPHA_LOWER
;; State ID ;AN000;
453 DW XT_KB
;; Keyboard Type ;AN000;
454 DB -1,-1 ;; Buffer entry for error character ;AN000;
456 DW COM_NA_LO_K3_T1_END
-$ ;; Size of xlat table ;AN000;
457 DB STANDARD_TABLE
;; xlat options: ;AN000;
458 DB 2 ;; number of entries ;AN000;
459 DB 40,"'" ;; ' ;AN000;
460 DB 41,'#' ;; # ;AN000;
461 DB 43,'\' ;; # ;AN000;
462 COM_NA_LO_K3_T1_END: ;; ;AN000;
464 DW 0 ;; Size of xlat table - null table ;AN000;
466 COM_NA_LO_K3_END: ;; ;AN000;
468 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
469 ;; CODE PAGE: Common ;AN000;
470 ;; STATE: Non-Alpha Upper Case ;AN000;
471 ;; KEYBOARD TYPES: G_KB+P ;AN000;
472 ;; TABLE TYPE: Translate ;AN000;
473 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
475 DW COM_NA_UP_K1_END-$ ;; length of state section ;AN000;
476 DB NON_ALPHA_UPPER ;; State ID ;AN000;
477 DW G_KB ;; Keyboard Type ;AN000;
478 DB -1,-1 ;; Buffer entry for error character ;AN000;
480 DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table ;AN000;
481 DB STANDARD_TABLE ;; xlat options: ;AN000;
482 DB 14 ;; number of entries ;AN000;
484 DB 4,"\9c" ;; ;AN000;
497 COM_NA_UP_T1_K1_END: ;; ;AN000;
499 DW 0 ;; Size of xlat table - null table ;AN000;
501 COM_NA_UP_K1_END: ;; ;AN000;
504 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
505 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
506 ;; CODE PAGE: Common ;AN000;
507 ;; STATE: Non-Alpha Upper Case ;AN000;
508 ;; KEYBOARD TYPES: P12_KB ;AN000;
509 ;; TABLE TYPE: Translate ;AN000;
510 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
512 DW COM_NA_UP_PK1_END-$ ;; length of state section ;AN000;
513 DB NON_ALPHA_UPPER ;; State ID ;AN000;
514 DW P12_KB ;; Keyboard Type ;AN000;
515 DB -1,-1 ;; Buffer entry for error character ;AN000;
517 DW COM_NA_UP_T1_PK1_END-$ ;; Size of xlat table ;AN000;
518 DB STANDARD_TABLE ;; xlat options: ;AN000;
519 DB 5 ;; number of entries ;AN000;
520 DB 41,0AAh ;; ª ;AN000;
521 DB 3,'"' ;; " ;AN000;
522 DB 4,09CH ;; \9c ;AN000;
523 DB 40,'@' ;; at sign ;AN000;
524 DB 43,07EH ;; ~ ;AN000;
525 COM_NA_UP_T1_PK1_END: ;; ;AN000;
527 DW 0 ;; Size of xlat table - null table ;AN000;
529 COM_NA_UP_PK1_END: ;; ;AN000;
532 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
533 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
534 ;; CODE PAGE: Common ;AN000;
535 ;; STATE: Non-Alpha Upper Case ;AN000;
536 ;; KEYBOARD TYPES: XT_KB ;AN000;
537 ;; TABLE TYPE: Translate ;AN000;
538 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
540 DW COM_NA_UP_K2_END
-$ ;; length of state section ;AN000;
541 DB NON_ALPHA_UPPER
;; State ID ;AN000;
542 DW XT_KB
;; Keyboard Type ;AN000;
543 DB -1,-1 ;; Buffer entry for error character ;AN000;
545 DW COM_NA_UP_T1_K2_END
-$ ;; Size of xlat table ;AN000;
546 DB STANDARD_TABLE
;; xlat options: ;AN000;
547 DB 5 ;; number of entries ;AN000;
548 DB 3,'"' ;; " ;AN000;
549 DB 4,09CH ;; \9c ;AN000;
550 DB 41,07EH ;; ~ ;AN000;
551 DB 40,'@' ;; at sign ;AN000;
552 DB 43,07CH ;; Broken vertical bar ;AN000;
553 COM_NA_UP_T1_K2_END: ;; ;AN000;
555 DW 0 ;; Size of xlat table - null table ;AN000;
557 COM_NA_UP_K2_END: ;; ;AN000;
560 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
561 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
562 ;; CODE PAGE: Common ;AN000;
563 ;; STATE: Non-Alpha Upper Case ;AN000;
564 ;; KEYBOARD TYPES: AT_KB ;AN000;
565 ;; TABLE TYPE: Translate ;AN000;
566 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
568 DW COM_NA_UP_K3_END
-$ ;; length of state section ;AN000;
569 DB NON_ALPHA_UPPER
;; State ID ;AN000;
570 DW AT_KB
;; Keyboard Type ;AN000;
571 DB -1,-1 ;; Buffer entry for error character ;AN000;
573 DW COM_NA_UP_T1_K3_END
-$ ;; Size of xlat table ;AN000;
574 DB STANDARD_TABLE
;; xlat options: ;AN000;
575 DB 5 ;; number of entries ;AN000;
576 DB 41,07Ch ;; ª ;AN000;
577 DB 3,'"' ;; " ;AN000;
578 DB 4,09CH ;; \9c ;AN000;
579 DB 40,'@' ;; at sign ;AN000;
580 DB 43,07EH ;; ~ ;AN000;
581 COM_NA_UP_T1_K3_END: ;; ;AN000;
583 DW 0 ;; Size of xlat table - null table ;AN000;
585 COM_NA_UP_K3_END: ;; ;AN000;
587 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
588 ;; CODE PAGE: COMMON ;AN000;
589 ;; STATE: Third Shift ;AN000;
590 ;; KEYBOARD TYPES: G_KB+P ;AN000;
591 ;; TABLE TYPE: Translate ;AN000;
592 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
594 DW COM_THIRD_K1_END
-$ ;; length of state section ;AN000;
595 DB THIRD_SHIFT
;; State ID ;AN000;
596 DW G_KB
;; Keyboard Type ;AN000;
597 DB -1,-1 ;; Buffer entry for error character ;AN000;
599 DW COM_THIRD_K1_T1_END
-$ ;; Size of xlat table ;AN000;
600 DB STANDARD_TABLE
;; xlat options: ;AN000;
601 DB 8 ;; number of entries ;AN000;
602 DB 3,0FDH ;; SUPERSCRPIT 2 ;AN000;
603 DB 4,0FCH ;; SUPERSCRIPT 3 ;AN000;
604 DB 6,0ABH ;; ONE HALF SYMBOL ;AN000;
605 DB 10,0F1H ;; PLUS OR MINUS SYMBOL ;AN000;
606 DB 11,0F8H ;; DEGREE SYMBOL ;AN000;
607 DB 27,07EH ;; TILDE ;AN000;
608 DB 40,05EH ;; CIRCUMFLEX CARAT ;AN000;
609 DB 50,0E6H ;; MU ;AN000;
610 COM_THIRD_K1_T1_END: ;; ;AN000;
612 DW 0 ;; Last xlat table ;AN000;
613 COM_THIRD_K1_END: ;; ;AN000;
615 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
617 DW 0 ;; Last State ;AN000;
618 COMMON_XLAT_END: ;; ;AN000;
622 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
623 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
624 ;;*************************************** ;AN000;
625 ;; UK Specific Translate Section for 437 ;AN000;
626 ;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE except for vertical bars ;AN000;
627 ;;*************************************** ;AN000;
628 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
630 PUBLIC UK1_437_XLAT
;; ;AN000;
631 UK1_437_XLAT: ;; ;AN000;
633 DW CP437_XLAT_END
-$ ;; length of section ;AN000;
635 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
636 ;; CODE PAGE: CP437 ;AN000;
637 ;; STATE: Third Shift ;AN000;
638 ;; KEYBOARD TYPES: P12_KB ;AN000;
639 ;; TABLE TYPE: Translate ;AN000;
640 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
642 DW CP437_THIRD_PK1_END
-$ ;; length of state section ;AN000;
643 DB THIRD_SHIFT
;; State ID ;AN000;
644 DW P12_KB
;; Keyboard Type ;AN000;
645 DB -1,-1 ;; Buffer entry for error character ;AN000;
647 DW CP437_THIRD_PK1_T1_END
-$ ;; Size of xlat table ;AN000;
648 DB STANDARD_TABLE
;; xlat options: ;AN000;
649 DB 1 ;; number of entries ;AN000;
650 DB 41,0DDH ;; Solid vertical bar - graphics block ;AN000;
651 CP437_THIRD_PK1_T1_END: ;; ;AN000;
653 DW 0 ;; Last xlat table ;AN000;
654 CP437_THIRD_PK1_END: ;; ;AN000;
656 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
657 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
658 ;; CODE PAGE: CP437 ;AN000;
659 ;; STATE: Non-Alpha Upper Case ;AN000;
660 ;; KEYBOARD TYPES: G_KB ;AN000;
661 ;; TABLE TYPE: Translate ;AN000;
662 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
664 DW CP437_NA_UP_K1_END
-$ ;; length of state section ;AN000;
665 DB NON_ALPHA_UPPER
;; State ID ;AN000;
666 DW G_KB
;; Keyboard Type ;AN000;
667 DB -1,-1 ;; Buffer entry for error character ;AN000;
669 DW CP437_NA_UP_T1_K1_END
-$ ;; Size of xlat table ;AN000;
670 DB STANDARD_TABLE
;; xlat options: ;AN000;
671 DB 2 ;; number of entries ;AN000;
672 DB 41,0DDh ;; GRAPHICS vertical bar ;AN000;
673 DB 13,"Ä" ;; may change current codepoint = 192(c4);AN000;
674 CP437_NA_UP_T1_K1_END: ;; ;AN000;
676 DW 0 ;; Size of xlat table - null table ;AN000;
678 CP437_NA_UP_K1_END: ;; ;AN000;
681 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
682 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
683 ;; CODE PAGE: CP437 ;AN000;
684 ;; STATE: Non-Alpha Upper Case ;AN000;
685 ;; KEYBOARD TYPES: P12_KB ;AN000;
686 ;; TABLE TYPE: Translate ;AN000;
687 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
689 DW CP437_NA_UP_PK1_END
-$ ;; length of state section ;AN000;
690 DB NON_ALPHA_UPPER
;; State ID ;AN000;
691 DW P12_KB
;; Keyboard Type ;AN000;
692 DB -1,-1 ;; Buffer entry for error character ;AN000;
694 DW CP437_NA_UP_PT1_K1_END
-$ ;; Size of xlat table ;AN000;
695 DB STANDARD_TABLE
;; xlat options: ;AN000;
696 DB 1 ;; number of entries ;AN000;
697 DB 86,07ch ;; vertical bar ;AN000;
698 CP437_NA_UP_PT1_K1_END: ;; ;AN000;
700 DW 0 ;; Size of xlat table - null table ;AN000;
702 CP437_NA_UP_PK1_END: ;; ;AN000;
705 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
706 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
707 ;; CODE PAGE: CP437 ;AN000;
708 ;; STATE: Non-Alpha LOWER Case ;AN000;
709 ;; KEYBOARD TYPES: G_KB ;AN000;
710 ;; TABLE TYPE: Translate ;AN000;
711 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
713 DW CP437_NA_LO_K1_END
-$ ;; length of state section ;AN000;
714 DB NON_ALPHA_LOWER
;; State ID ;AN000;
715 DW G_KB
;; Keyboard Type ;AN000;
716 DB -1,-1 ;; Buffer entry for error character ;AN000;
718 DW CP437_NA_LO_T1_K1_END
-$ ;; Size of xlat table ;AN000;
719 DB STANDARD_TABLE
;; xlat options: ;AN000;
720 DB 1 ;; number of entries ;AN000;
721 DB 86,07Ch ;; SOLID(PIPING)VERTICAL bar ;AN000;
722 CP437_NA_LO_T1_K1_END: ;; ;AN000;
724 DW 0 ;; Size of xlat table - null table ;AN000;
726 CP437_NA_LO_K1_END: ;; ;AN000;
729 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
730 DW 0 ;; LAST STATE ;AN000;
732 CP437_XLAT_END: ;; ;AN000;
734 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
735 ;;*************************************** ;AN000;
736 ;; UK Specific Translate Section for 850 ;AN000;
737 ;;*************************************** ;AN000;
738 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
740 PUBLIC UK1_850_XLAT
;; ;AN000;
741 UK1_850_XLAT: ;; ;AN000;
743 DW CP850_XLAT_END
-$ ;; length of section ;AN000;
746 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
747 ;; CODE PAGE: CP850 ;AN000;
748 ;; STATE: Third Shift ;AN000;
749 ;; KEYBOARD TYPES: P12_KB ;AN000;
750 ;; TABLE TYPE: Translate ;AN000;
751 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
753 DW CP850_THIRD_PK1_END
-$ ;; length of state section ;AN000;
754 DB THIRD_SHIFT
;; State ID ;AN000;
755 DW P12_KB
;; Keyboard Type ;AN000;
756 DB -1,-1 ;; Buffer entry for error character ;AN000;
758 DW CP850_THIRD_PK1_T1_END
-$ ;; Size of xlat table ;AN000;
759 DB STANDARD_TABLE
;; xlat options: ;AN000;
760 DB 1 ;; number of entries ;AN000;
761 DB 41,07CH ;; Solid vertical bar - | ;AN000;
762 CP850_THIRD_PK1_T1_END: ;; ;AN000;
764 DW 0 ;; Last xlat table ;AN000;
765 CP850_THIRD_PK1_END: ;; ;AN000;
767 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
768 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
769 ;; CODE PAGE: Common ;AN000;
770 ;; STATE: Non-Alpha Upper Case ;AN000;
771 ;; KEYBOARD TYPES: G_KB ;AN000;
772 ;; TABLE TYPE: Translate ;AN000;
773 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
775 DW CP850_NA_UP_K1_END
-$ ;; length of state section ;AN000;
776 DB NON_ALPHA_UPPER
;; State ID ;AN000;
777 DW G_KB
;; Keyboard Type ;AN000;
778 DB -1,-1 ;; Buffer entry for error character ;AN000;
780 DW CP850_NA_UP_T1_K1_END
-$ ;; Size of xlat table ;AN000;
781 DB STANDARD_TABLE
;; xlat options: ;AN000;
782 DB 2 ;; number of entries ;AN000;
783 DB 41,07Ch ;; SOLID vertical (PIPING) ;AN000;
784 DB 13,0EEH ;; OVERSCORE SYMBOL ;AN000;
785 CP850_NA_UP_T1_K1_END: ;; ;AN000;
787 DW 0 ;; Size of xlat table - null table ;AN000;
789 CP850_NA_UP_K1_END: ;; ;AN000;
792 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
793 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
794 ;; CODE PAGE: Common ;AN000;
795 ;; STATE: Non-Alpha Upper Case ;AN000;
796 ;; KEYBOARD TYPES: P12_KB ;AN000;
797 ;; TABLE TYPE: Translate ;AN000;
798 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
800 DW CP850_NA_UP_PK1_END
-$ ;; length of state section ;AN000;
801 DB NON_ALPHA_UPPER
;; State ID ;AN000;
802 DW P12_KB
;; Keyboard Type ;AN000;
803 DB -1,-1 ;; Buffer entry for error character ;AN000;
805 DW CP850_NA_UP_T1_PK1_END
-$ ;; Size of xlat table ;AN000;
806 DB STANDARD_TABLE
;; xlat options: ;AN000;
807 DB 1 ;; number of entries ;AN000;
808 DB 86,0DDh ;; broken vertical ;AN000;
809 CP850_NA_UP_T1_PK1_END: ;; ;AN000;
811 DW 0 ;; Size of xlat table - null table ;AN000;
813 CP850_NA_UP_PK1_END: ;; ;AN000;
816 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
817 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
818 ;; CODE PAGE: Common ;AN000;
819 ;; STATE: Non-Alpha LOWER Case ;AN000;
820 ;; KEYBOARD TYPES: G_KB ;AN000;
821 ;; TABLE TYPE: Translate ;AN000;
822 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
824 DW CP850_NA_LO_K1_END
-$ ;; length of state section ;AN000;
825 DB NON_ALPHA_LOWER
;; State ID ;AN000;
826 DW G_KB
;; Keyboard Type ;AN000;
827 DB -1,-1 ;; Buffer entry for error character ;AN000;
829 DW CP850_NA_LO_T1_K1_END
-$ ;; Size of xlat table ;AN000;
830 DB STANDARD_TABLE
;; xlat options: ;AN000;
831 DB 1 ;; number of entries ;AN000;
832 DB 86,0DDh ;; broken vertical ;AN000;
833 CP850_NA_LO_T1_K1_END: ;; ;AN000;
835 DW 0 ;; Size of xlat table - null table ;AN000;
837 CP850_NA_LO_K1_END: ;; ;AN000;
840 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
842 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
843 DW 0 ;; LAST STATE ;AN000;
845 CP850_XLAT_END: ;; ;AN000;
846 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;