summaryrefslogtreecommitdiff
path: root/v4.0/src/DEV/KEYBOARD
diff options
context:
space:
mode:
authorGravatar Mark Zbikowski2024-04-25 21:24:10 +0100
committerGravatar Microsoft Open Source2024-04-25 22:32:27 +0000
commit2d04cacc5322951f187bb17e017c12920ac8ebe2 (patch)
tree80ee017efa878dfd5344b44249e6a241f2a7f6e2 /v4.0/src/DEV/KEYBOARD
parentMerge pull request #430 from jpbaltazar/typoptbr (diff)
downloadms-dos-main.tar.gz
ms-dos-main.tar.xz
ms-dos-main.zip
MZ is back!HEADmain
Diffstat (limited to 'v4.0/src/DEV/KEYBOARD')
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDF.ASM393
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFBE.ASM1833
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFCF.ASM1769
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFDK.ASM1631
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFEOF.ASM32
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFFR.ASM1529
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFFR120.ASM2307
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFFR189.ASM1529
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFGE.ASM1333
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFIT.ASM794
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFIT141.ASM794
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFIT142.ASM864
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFLA.ASM1322
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFNL.ASM1515
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFNO.ASM1607
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFNOW.ASM507
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFPO.ASM1607
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFSF.ASM1627
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFSG.ASM1629
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFSP.ASM1373
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFSU.ASM1680
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFSV.ASM1687
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFUK.ASM655
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFUK166.ASM655
-rw-r--r--v4.0/src/DEV/KEYBOARD/KDFUK168.ASM848
-rw-r--r--v4.0/src/DEV/KEYBOARD/KEYBMAC.INC323
-rw-r--r--v4.0/src/DEV/KEYBOARD/KEYBOARD.LNK6
-rw-r--r--v4.0/src/DEV/KEYBOARD/KEYBSHAR.INC304
-rw-r--r--v4.0/src/DEV/KEYBOARD/MAKEFILE59
29 files changed, 32212 insertions, 0 deletions
diff --git a/v4.0/src/DEV/KEYBOARD/KDF.ASM b/v4.0/src/DEV/KEYBOARD/KDF.ASM
new file mode 100644
index 0000000..3073dc8
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDF.ASM
@@ -0,0 +1,393 @@
1
2
3 PAGE ,132
4 TITLE DOS - Keyboard Definition File
5
6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7;; DOS - - NLS Support - Keyboard Definition File
8;; (c) Copyright 1988 Microsoft
9;;
10;; This the file header and table pointers ONLY.
11;; The actual tables are contained in seperate source files.
12;; These are:
13;; KDFSP.ASM - Spanish
14;; KDFPO.ASM - Portuguese
15;; KDFGR.ASM - German
16;; KDFIT.ASM - Italian
17;; KDFFR.ASM - French
18;; KDFSG.ASM - Swiss German
19;; KDFSF.ASM - Swiss French
20;; KDFDK.ASM - Danish
21;; KDFUK.ASM - English
22;; KDFBE.ASM - Belgium
23;; KDFNL.ASM - Netherlands
24;; KDFNO.ASM - Norway
25;; KDFLA.ASM - Latin American
26;; KDFSV.ASM - SWEDEN
27;; KDFSU.ASM - Finland
28;; Dummy US - US
29;; Linkage Instructions:
30;; The following instructions are contained in KDFLINK.BAT:
31;;
32;; LINK KDF+KDFSP+KDFGE+KDFFR+KDFIT+KDFPO+KDFUK+KDFSG+KDFDK+KDFEOF;
33;; EXE2BIN KDF.EXE KEYBOARD.SYS
34;;
35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
36 ;;
37 ;;
38CODE SEGMENT PUBLIC 'CODE' ;;
39 ASSUME CS:CODE,DS:CODE ;;
40 ;;
41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
42;;***************************************
43;; File Header
44;;***************************************
45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
46 ;;
47DB 0FFh,'KEYB ' ;; signature
48DB 8 DUP(0) ;; reserved
49DW 650 ;; maximum size of Common Xlat Sect
50DW 350 ;; max size of Specific Xlat Sect
51DW 400 ;; max size of State Logic
52DD 0 ;; reserved
53DW 17 ;; number of languages
54DB 'SP'
55DW OFFSET SP_LANG_ENT,0
56DB 'PO'
57DW OFFSET PO_LANG_ENT,0
58DB 'FR'
59DW OFFSET FR_LANG_ENT,0
60DB 'DK'
61DW OFFSET DK_LANG_ENT,0
62DB 'SG'
63DW OFFSET SG_LANG_ENT,0
64DB 'GR'
65DW OFFSET GE_LANG_ENT,0
66DB 'IT'
67DW OFFSET IT_LANG_ENT,0
68DB 'UK'
69DW OFFSET UK_LANG_ENT,0
70DB 'SF'
71DW OFFSET SF_LANG_ENT,0
72DB 'BE'
73DW OFFSET BE_LANG_ENT,0
74DB 'NL'
75DW OFFSET NL_LANG_ENT,0
76DB 'NO'
77DW OFFSET NO_LANG_ENT,0
78DB 'CF'
79DW OFFSET CF_LANG_ENT,0
80DB 'SV'
81DW OFFSET SV_LANG_ENT,0
82DB 'SU'
83DW OFFSET SV_LANG_ENT,0
84DB 'LA'
85DW OFFSET LA_LANG_ENT,0
86DB 'US'
87DW OFFSET DUMMY_ENT,0
88;
89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
90;;***************************************
91;; Language Entries
92;;***************************************
93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
94 ;;
95 EXTRN SP_LOGIC:NEAR ;;
96 EXTRN SP_437_XLAT:NEAR ;;
97 EXTRN SP_850_XLAT:NEAR ;;
98 ;;
99SP_LANG_ENT: ;; language entry for SPANISH
100 DB 'SP' ;;
101 DW 0 ;; reserved
102 DW OFFSET SP_LOGIC,0 ;; pointer to LANG kb table
103 DW 2 ;; number of code pages
104 DW 437 ;; code page
105 DW OFFSET SP_437_XLAT,0 ;; table pointer
106 DW 850 ;; code page
107 DW OFFSET SP_850_XLAT,0 ;; table pointer
108 ;;
109;****************************************************************************
110 EXTRN PO_LOGIC:NEAR ;;
111 EXTRN PO_860_XLAT:NEAR ;;
112 EXTRN PO_850_XLAT:NEAR ;;
113 ;;
114PO_LANG_ENT: ;; language entry for POTUGAL
115 DB 'PO' ;;
116 DW 0 ;; reserved
117 DW OFFSET PO_LOGIC,0 ;; pointer to LANG kb table
118 DW 2 ;; number of code pages
119 DW 860 ;; code page
120 DW OFFSET PO_860_XLAT,0 ;; table pointer
121 DW 850 ;; code page
122 DW OFFSET PO_850_XLAT,0 ;; table pointer
123 ;;
124;*****************************************************************************
125 EXTRN FR_LOGIC:NEAR ;;
126 EXTRN FR_437_XLAT:NEAR ;;
127 EXTRN FR_850_XLAT:NEAR ;;
128 ;;
129 FR_LANG_ENT: ;; language entry for POTUGAL
130 DB 'FR' ;;
131 DW 0 ;; reserved
132 DW OFFSET FR_LOGIC,0 ;; pointer to LANG kb table
133 DW 2 ;; number of code pages
134 DW 437 ;; code page
135 DW OFFSET FR_437_XLAT,0 ;; table pointer
136 DW 850 ;; code page
137 DW OFFSET FR_850_XLAT,0 ;; table pointer
138 ;;
139;*****************************************************************************
140 EXTRN DK_LOGIC:NEAR ;;
141 EXTRN DK_865_XLAT:NEAR ;;
142 EXTRN DK_850_XLAT:NEAR ;;
143 ;;
144 DK_LANG_ENT: ;; language entry for POTUGAL
145 DB 'DK' ;;
146 DW 0 ;; reserved
147 DW OFFSET DK_LOGIC,0 ;; pointer to LANG kb table
148 DW 2 ;; number of code pages
149 DW 865 ;; code page
150 DW OFFSET DK_865_XLAT,0 ;; table pointer
151 DW 850 ;; code page
152 DW OFFSET DK_850_XLAT,0 ;; table pointer
153 ;;
154;*****************************************************************************
155 EXTRN SG_LOGIC:NEAR ;;
156 EXTRN SG_437_XLAT:NEAR ;;
157 EXTRN SG_850_XLAT:NEAR ;;
158 ;;
159SG_LANG_ENT: ;; language entry for POTUGAL
160 DB 'SG' ;;
161 DW 0 ;; reserved
162 DW OFFSET SG_LOGIC,0 ;; pointer to LANG kb table
163 DW 2 ;; number of code pages
164 DW 437 ;; code page
165 DW OFFSET SG_437_XLAT,0 ;; table pointer
166 DW 850 ;; code page
167 DW OFFSET SG_850_XLAT,0 ;; table pointer
168 ;;
169;*****************************************************************************
170 EXTRN SF_LOGIC:NEAR ;;
171 EXTRN SF_437_XLAT:NEAR ;;
172 EXTRN SF_850_XLAT:NEAR ;;
173 ;;
174SF_LANG_ENT: ;; language entry for SWISS FRENCH
175 DB 'SF' ;;
176 DW 0 ;; reserved
177 DW OFFSET SF_LOGIC,0 ;; pointer to LANG kb table
178 DW 2 ;; number of code pages
179 DW 437 ;; code page
180 DW OFFSET SF_437_XLAT,0 ;; table pointer
181 DW 850 ;; code page
182 DW OFFSET SF_850_XLAT,0 ;; table pointer
183 ;;
184;*****************************************************************************
185 EXTRN GE_LOGIC:NEAR ;;
186 EXTRN GE_437_XLAT:NEAR ;;
187 EXTRN GE_850_XLAT:NEAR ;;
188 ;;
189GE_LANG_ENT: ;; language entry for POTUGAL
190 DB 'GR' ;;
191 DW 0 ;; reserved
192 DW OFFSET GE_LOGIC,0 ;; pointer to LANG kb table
193 DW 2 ;; number of code pages
194 DW 437 ;; code page
195 DW OFFSET GE_437_XLAT,0 ;; table pointer
196 DW 850 ;; code page
197 DW OFFSET GE_850_XLAT,0 ;; table pointer
198 ;;
199;*****************************************************************************
200 EXTRN IT_LOGIC:NEAR ;;
201 EXTRN IT_437_XLAT:NEAR ;;
202 EXTRN IT_850_XLAT:NEAR ;;
203 ;;
204 IT_LANG_ENT: ;; language entry for POTUGAL
205 DB 'IT' ;;
206 DW 0 ;; reserved
207 DW OFFSET IT_LOGIC,0 ;; pointer to LANG kb table
208 DW 2 ;; number of code pages
209 DW 437 ;; code page
210 DW OFFSET IT_437_XLAT,0 ;; table pointer
211 DW 850 ;; code page
212 DW OFFSET IT_850_XLAT,0 ;; table pointer
213 ;;
214;*****************************************************************************
215 EXTRN UK_LOGIC:FAR ;;
216 EXTRN UK_437_XLAT:FAR ;;
217 EXTRN UK_850_XLAT:FAR ;;
218 ;;
219 UK_LANG_ENT: ;; language entry for POTUGAL
220 DB 'UK' ;;
221 DW 0 ;; reserved
222 DW OFFSET UK_LOGIC,0 ;; pointer to LANG kb table
223 DW 2 ;; number of code pages
224 DW 437 ;; code page
225 DW OFFSET UK_437_XLAT,0 ;; table pointer
226 DW 850 ;; code page
227 DW OFFSET UK_850_XLAT,0 ;; table pointer
228 ;;
229;*****************************************************************************
230 EXTRN BE_LOGIC:NEAR ;;
231 EXTRN BE_437_XLAT:NEAR ;;
232 EXTRN BE_850_XLAT:NEAR ;;
233 ;;
234BE_LANG_ENT: ;; language entry for POTUGAL
235 DB 'BE' ;;
236 DW 0 ;; reserved
237 DW OFFSET BE_LOGIC,0 ;; pointer to LANG kb table
238 DW 2 ;; number of code pages
239 DW 437 ;; code page
240 DW OFFSET BE_437_XLAT,0 ;; table pointer
241 DW 850 ;; code page
242 DW OFFSET BE_850_XLAT,0 ;; table pointer
243 ;;
244;*****************************************************************************
245;*****************************************************************************
246 EXTRN NL_LOGIC:NEAR ;;
247 EXTRN NL_437_XLAT:NEAR ;;
248 EXTRN NL_850_XLAT:NEAR ;;
249 ;;
250 NL_LANG_ENT: ;; language entry for NETHERLANDS
251 DB 'NL' ;;
252 DW 0 ;; reserved
253 DW OFFSET NL_LOGIC,0 ;; pointer to LANG kb table
254 DW 2 ;; number of code pages
255 DW 437 ;; code page
256 DW OFFSET NL_437_XLAT,0 ;; table pointer
257 DW 850 ;; code page
258 DW OFFSET NL_850_XLAT,0 ;; table pointer
259 ;;
260;*****************************************************************************
261;*****************************************************************************
262 EXTRN NO_LOGIC:NEAR ;;
263 EXTRN NO_865_XLAT:NEAR ;;
264 EXTRN NO_850_XLAT:NEAR ;;
265 ;;
266 NO_LANG_ENT: ;; language entry for NORWAY
267 DB 'NO' ;;
268 DW 0 ;; reserved
269 DW OFFSET NO_LOGIC,0 ;; pointer to LANG kb table
270 DW 2 ;; number of code pages
271 DW 865 ;; code page
272 DW OFFSET NO_865_XLAT,0 ;; table pointer
273 DW 850 ;; code page
274 DW OFFSET NO_850_XLAT,0 ;; table pointer
275 ;;
276;*****************************************************************************
277;*****************************************************************************
278 EXTRN SV_LOGIC:NEAR ;;
279 EXTRN SV_437_XLAT:NEAR ;;
280 EXTRN SV_850_XLAT:NEAR ;;
281 ;;
282 SV_LANG_ENT: ;; language entry for SWEDEN
283 DB 'SV' ;;
284 DW 0 ;; reserved
285 DW OFFSET SV_LOGIC,0 ;; pointer to LANG kb table
286 DW 2 ;; number of code pages
287 DW 437 ;; code page
288 DW OFFSET SV_437_XLAT,0 ;; table pointer
289 DW 850 ;; code page
290 DW OFFSET SV_850_XLAT,0 ;; table pointer
291 ;;
292;*****************************************************************************
293;*****************************************************************************
294; EXTRN SU_LOGIC:NEAR ;;
295; EXTRN SU_437_XLAT:NEAR ;;
296; EXTRN SU_850_XLAT:NEAR ;;
297; ;;
298; SU_LANG_ENT: ;; language entry for FINLAND
299; DB 'SU' ;;
300; DW 0 ;; reserved
301; DW OFFSET SU_LOGIC,0 ;; pointer to LANG kb table
302; DW 2 ;; number of code pages
303; DW 437 ;; code page
304; DW OFFSET SU_437_XLAT,0 ;; table pointer
305; DW 850 ;; code page
306; DW OFFSET SU_850_XLAT,0 ;; table pointer
307; ;;
308;*****************************************************************************
309;*****************************************************************************
310 EXTRN CF_LOGIC:NEAR ;;
311 EXTRN CF_863_XLAT:NEAR ;;
312 EXTRN CF_850_XLAT:NEAR ;;
313 ;;
314 CF_LANG_ENT: ;; language entry for Canadian-French
315 DB 'CF' ;;
316 DW 0 ;; reserved
317 DW OFFSET CF_LOGIC,0 ;; pointer to LANG kb table
318 DW 2 ;; number of code pages
319 DW 863 ;; code page
320 DW OFFSET CF_863_XLAT,0 ;; table pointer
321 DW 850 ;; code page
322 DW OFFSET CF_850_XLAT,0 ;; table pointer
323 ;;
324;*****************************************************************************
325 EXTRN LA_LOGIC:NEAR ;;
326 EXTRN LA_850_XLAT:NEAR ;;
327 EXTRN LA_437_XLAT:NEAR ;;
328 ;;
329 LA_LANG_ENT: ;; language entry for Canadian-French
330 DB 'LA' ;;
331 DW 0 ;; reserved
332 DW OFFSET LA_LOGIC,0 ;; pointer to LANG kb table
333 DW 2 ;; number of code pages
334 DW 850 ;; code page
335 DW OFFSET LA_850_XLAT,0 ;; table pointer
336 DW 437 ;; code page
337 DW OFFSET LA_437_XLAT,0 ;; table pointer
338 ;;
339;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
340 ;;
341DUMMY_ENT: ;; language entry
342 DB 'XX' ;;
343 DW 0 ;; reserved
344 DW OFFSET DUMMY_LOGIC,0 ;; pointer to LANG kb table
345 DW 5 ;; number of code pages
346 DW 437 ;; code page
347 DW OFFSET DUMMY_XLAT_437,0 ;; table pointer
348 DW 850 ;; code page
349 DW OFFSET DUMMY_XLAT_850,0 ;; table pointer
350 DW 860 ;; code page
351 DW OFFSET DUMMY_XLAT_860,0 ;; table pointer
352 DW 863 ;; code page
353 DW OFFSET DUMMY_XLAT_863,0 ;; table pointer
354 DW 865 ;; code page
355 DW OFFSET DUMMY_XLAT_865,0 ;; table pointer
356 ;;
357DUMMY_LOGIC: ;;
358 DW LOGIC_END-$ ;; length
359 DW 0 ;; special features
360 DB 92H,0,0 ;; EXIT_STATE_LOGIC_COMMAND
361LOGIC_END: ;;
362 ;;
363DUMMY_XLAT_437: ;;
364 DW 6 ;; length of section
365 DW 437 ;; code page
366 DW 0 ;; LAST STATE
367 ;;
368DUMMY_XLAT_850: ;;
369 DW 6 ;; length of section
370 DW 850 ;; code page
371 DW 0 ;; LAST STATE
372 ;;
373DUMMY_XLAT_860: ;;
374 DW 6 ;; length of section
375 DW 860 ;; code page
376 DW 0 ;; LAST STATE
377 ;;
378DUMMY_XLAT_865: ;;
379 DW 6 ;; length of section
380 DW 865 ;; code page
381 DW 0 ;; LAST STATE
382 ;;
383DUMMY_XLAT_863: ;;
384 DW 6 ;; length of section
385 DW 863 ;; code page
386 DW 0 ;; LAST STATE
387 ;;
388;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
389;*****************************************************************************
390;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
391 ;;
392CODE ENDS ;;
393 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFBE.ASM b/v4.0/src/DEV/KEYBOARD/KDFBE.ASM
new file mode 100644
index 0000000..ac5b1e4
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFBE.ASM
@@ -0,0 +1,1833 @@
1; ACUTE lc y added
2; ****** CNS 12/18
3; ****** CNS 01/21 NUM PAD
4 PAGE ,132
5 TITLE DOS - Keyboard Definition File
6
7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8;; DOS - - NLS Support - Keyboard Defintion File
9;; (c) Copyright 1988 Microsoft
10;;
11;; This file contains the keyboard tables for Belgium.
12;;
13;; Linkage Instructions:
14;; Refer to KDF.ASM.
15;;
16;;
17;; Modded from French - DTF 11-Sep-86
18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
19 ;;
20 INCLUDE KEYBSHAR.INC ;;
21 INCLUDE POSTEQU.INC ;;
22 INCLUDE KEYBMAC.INC ;;
23 ;;
24 PUBLIC BE_LOGIC ;;
25 PUBLIC BE_437_XLAT ;;
26 PUBLIC BE_850_XLAT ;;
27 ;;
28CODE SEGMENT PUBLIC 'CODE' ;;
29 ASSUME CS:CODE,DS:CODE ;;
30 ;;
31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
32;; Standard translate table options are a liner search table
33;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
35 ;;
36STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
37 ;;
38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
39;;***************************************
40;; BE State Logic
41;;***************************************
42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
43 ;;
44 ;;
45BE_LOGIC:
46
47 DW LOGIC_END-$ ;; length
48 ;;
49 DW TYPEWRITER_CAPS_LK ;; special features
50 ;;
51 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
52 ;;
53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
54;; OPTIONS: If we find a scan match in
55;; an XLATT or SET_FLAG operation then
56;; exit from INT 9.
57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58 ;;
59 OPTION EXIT_IF_FOUND ;;
60 ;;
61 ;;
62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
63;; Dead key definitions must come before
64;; dead key translations to handle
65;; dead key + dead key.
66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
67 ;;
68 IFF EITHER_ALT,NOT ;;
69 ANDF EITHER_CTL,NOT ;;
70 IFF CAPS_STATE
71 SET_FLAG DEAD_UPPER
72 ELSEF
73 IFF EITHER_SHIFT ;;
74 SET_FLAG DEAD_UPPER ;;
75 ELSEF ;;
76 SET_FLAG DEAD_LOWER ;;
77 ENDIFF ;;
78 ENDIFF
79 ELSEF ;;
80 IFF EITHER_SHIFT,NOT ;;
81 IFKBD XT_KB+AT_KB
82 IFF EITHER_CTL ;;
83 ANDF ALT_SHIFT ;;
84 SET_FLAG DEAD_THIRD ;;
85 ENDIFF ;;
86 ELSEF
87 IFF R_ALT_SHIFT ;;
88 ANDF EITHER_CTL,NOT ;;
89 ANDF LC_E0,NOT ;;
90 SET_FLAG DEAD_THIRD ;;
91 ENDIFF ;;
92 ENDIFF
93 ENDIFF
94 ENDIFF ;;
95 ;;
96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
97;; ACUTE ACCENT TRANSLATIONS
98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
99 ;;
100ACUTE_PROC: ;;
101 ;;
102 IFF ACUTE,NOT ;;
103 GOTO TILDE_PROC ;;
104 ENDIFF ;;
105 ;;
106 RESET_NLS ;;
107 IFF R_ALT_SHIFT,NOT ;;
108 XLATT ACUTE_SPACE ;;
109 ENDIFF ;;
110 IFF EITHER_CTL,NOT ;;
111 ANDF EITHER_ALT,NOT ;;
112 IFF EITHER_SHIFT ;;
113 IFF CAPS_STATE ;;
114 XLATT ACUTE_LOWER ;;
115 ELSEF ;;
116 XLATT ACUTE_UPPER ;;
117 ENDIFF ;;
118 ELSEF ;;
119 IFF CAPS_STATE ;;
120 XLATT ACUTE_UPPER ;;
121 ELSEF ;;
122 XLATT ACUTE_LOWER ;;
123 ENDIFF ;;
124 ENDIFF ;;
125 ENDIFF ;;
126 ;;
127INVALID_ACUTE: ;;
128 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
129 BEEP ;; failed or we are ina bad shift state.
130 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
131 ;; through to generate the second char.
132 ;; Note that the dead key flag will be
133 ;; reset before we get here.
134 ;;
135 ;;
136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
137;; TILDE ACCENT TRANSLATIONS
138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
139 ;;
140TILDE_PROC: ;;
141 ;;
142 IFF TILDE,NOT ;;
143 GOTO DIARESIS_PROC ;;
144 ENDIFF ;;
145 RESET_NLS ;;
146 IFF R_ALT_SHIFT,NOT ;;
147 XLATT TILDE_SPACE ;;
148 ENDIFF ;;
149 IFF EITHER_CTL,NOT ;;
150 ANDF EITHER_ALT,NOT ;;
151 IFF EITHER_SHIFT ;;
152 IFF CAPS_STATE ;;
153 XLATT TILDE_LOWER ;;
154 ELSEF ;;
155 XLATT TILDE_UPPER ;;
156 ENDIFF ;;
157 ELSEF ;;
158 IFF CAPS_STATE,NOT ;;
159 XLATT TILDE_LOWER ;;
160 ELSEF ;;
161 XLATT TILDE_UPPER ;;
162 ENDIFF ;;
163 ENDIFF ;;
164 ENDIFF ;;
165 ;;
166INVALID_TILDE: ;;
167 PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent
168 BEEP ;; Invalid dead key combo.
169 GOTO NON_DEAD ;;
170 ;;
171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
172;; DIARESIS ACCENT TRANSLATIONS
173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
174 ;;
175DIARESIS_PROC: ;;
176 ;;
177 IFF DIARESIS,NOT ;;
178 GOTO GRAVE_PROC ;;
179 ENDIFF ;;
180 ;;
181 RESET_NLS ;;
182 IFF R_ALT_SHIFT,NOT ;;
183 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
184 ENDIFF ;;
185 IFF EITHER_CTL,NOT ;;
186 ANDF EITHER_ALT,NOT ;;
187 IFF EITHER_SHIFT ;;
188 IFF CAPS_STATE ;;
189 XLATT DIARESIS_LOWER ;;
190 ELSEF ;;
191 XLATT DIARESIS_UPPER ;;
192 ENDIFF ;;
193 ELSEF ;;
194 IFF CAPS_STATE ;;
195 XLATT DIARESIS_UPPER ;;
196 ELSEF ;;
197 XLATT DIARESIS_LOWER ;;
198 ENDIFF ;;
199 ENDIFF ;;
200 ENDIFF ;;
201 ;;
202INVALID_DIARESIS: ;;
203 PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent
204 BEEP ;; Invalid dead key combo.
205 GOTO NON_DEAD ;;
206 ;;
207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
208;; GRAVE ACCENT TRANSLATIONS
209;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
210 ;;
211GRAVE_PROC: ;;
212 ;;
213 IFF GRAVE,NOT ;;
214 GOTO CIRCUMFLEX_PROC ;;
215 ENDIFF ;;
216 ;;
217 RESET_NLS ;;
218 IFF R_ALT_SHIFT,NOT ;;
219 XLATT GRAVE_SPACE ;;
220 ENDIFF ;;
221 IFF EITHER_CTL,NOT ;;
222 ANDF EITHER_ALT,NOT ;;
223 IFF EITHER_SHIFT ;;
224 IFF CAPS_STATE ;;
225 XLATT GRAVE_LOWER ;;
226 ELSEF ;;
227 XLATT GRAVE_UPPER ;;
228 ENDIFF ;;
229 ELSEF ;;
230 IFF CAPS_STATE,NOT ;;
231 XLATT GRAVE_LOWER ;;
232 ELSEF ;;
233 XLATT GRAVE_UPPER ;;
234 ENDIFF ;;
235 ENDIFF ;;
236 ENDIFF ;;
237 ;;
238INVALID_GRAVE: ;;
239 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
240 BEEP ;; Invalid dead key combo.
241 GOTO NON_DEAD ;;
242 ;;
243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
244;; CIRCUMFLEX ACCENT TRANSLATIONS
245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
246 ;;
247CIRCUMFLEX_PROC: ;;
248 ;;
249 IFF CIRCUMFLEX,NOT ;;
250 GOTO NON_DEAD ;;
251 ENDIFF ;;
252 ;;
253 RESET_NLS ;;
254 IFF R_ALT_SHIFT,NOT ;;
255 XLATT CIRCUMFLEX_SPACE ;;
256 ENDIFF ;;
257 IFF EITHER_CTL,NOT ;;
258 ANDF EITHER_ALT,NOT ;;
259 IFF EITHER_SHIFT ;;
260 IFF CAPS_STATE ;;
261 XLATT CIRCUMFLEX_LOWER ;;
262 ELSEF ;;
263 XLATT CIRCUMFLEX_UPPER ;;
264 ENDIFF ;;
265 ELSEF ;;
266 IFF CAPS_STATE,NOT ;;
267 XLATT CIRCUMFLEX_LOWER ;;
268 ELSEF ;;
269 XLATT CIRCUMFLEX_UPPER ;;
270 ENDIFF ;;
271 ENDIFF ;;
272 ENDIFF ;;
273 ;;
274INVALID_CIRCUMFLEX: ;;
275 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
276 BEEP ;; Invalid dead key combo.
277 GOTO NON_DEAD ;;
278 ;;
279;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
280;; Upper, lower and third shifts
281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
282 ;;
283;***************************
284NON_DEAD: ;;
285;ADDED FOR DIVIDE SIGN ;;
286 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
287 ANDF LC_E0 ;; the "/" on the numeric pad of the
288 IFF EITHER_CTL,NOT
289 ANDF EITHER_ALT,NOT
290 XLATT DIVIDE_SIGN ;;
291 ENDIFF
292 EXIT_STATE_LOGIC ;;
293 ENDIFF ;;
294;BD END OF ADDITION
295;****************************
296;NON_DEAD: ;;
297; ;;
298; IFKBD G_KB+P12_KB ;; Avoid accidentally translating
299; ANDF LC_E0 ;; the "/" on the numeric pad of the
300; EXIT_STATE_LOGIC ;; G keyboard
301; ENDIFF ;;
302 ;;
303 IFF EITHER_ALT,NOT ;;
304 ANDF EITHER_CTL,NOT ;;
305 IFF EITHER_SHIFT ;;
306;******************************************
307;;***BD ADDED FOR NUMERIC PAD
308 IFF NUM_STATE,NOT ;;
309 XLATT NUMERIC_PAD ;;
310 ENDIFF ;;
311;;***BD END OF ADDITION
312;*******************************************
313 IFF CAPS_STATE ;;
314 XLATT ALPHA_LOWER ;;
315 XLATT NON_ALPHA_LOWER ;;
316 ELSEF ;;
317 XLATT ALPHA_UPPER ;;
318 XLATT NON_ALPHA_UPPER ;;
319 ENDIFF ;;
320 ELSEF ;;
321;******************************************
322;;***BD ADDED FOR NUMERIC PAD
323 IFF NUM_STATE ;;
324 XLATT NUMERIC_PAD ;;
325 ENDIFF ;;
326;;***BD END OF ADDITION
327;******************************************
328 IFF CAPS_STATE ;;
329 XLATT ALPHA_UPPER ;;
330 XLATT NON_ALPHA_UPPER ;;
331 ELSEF ;;
332 XLATT ALPHA_LOWER ;;
333 XLATT NON_ALPHA_LOWER ;;
334 ENDIFF ;;
335 ENDIFF ;;
336 ELSEF ;;
337 IFF EITHER_SHIFT,NOT ;;
338 IFKBD XT_KB+AT_KB ;;
339 IFF EITHER_CTL ;;
340 ANDF ALT_SHIFT ;;
341 XLATT THIRD_SHIFT ;;
342 ENDIFF ;;
343 ELSEF ;;
344 IFF EITHER_CTL,NOT ;;
345 ANDF R_ALT_SHIFT ;;
346 XLATT THIRD_SHIFT ;;
347 ENDIFF ;;
348 ENDIFF ;;
349 IFKBD AT_KB+XT_KB ;;
350 IFF EITHER_CTL ;;
351 ANDF ALT_SHIFT ;;
352 XLATT ALT_CASE ;;
353 ENDIFF ;;
354 ENDIFF ;;
355 IFKBD G_KB+P12_KB ;;
356 IFF EITHER_CTL ;;
357 ANDF ALT_SHIFT ;;
358 IFF R_ALT_SHIFT,NOT ;;
359 XLATT ALT_CASE ;;
360 ENDIFF ;;
361 ENDIFF ;;
362 ENDIFF ;;
363 ENDIFF ;;
364 ENDIFF ;;
365;IFF EITHER_SHIFT,NOT ;;
366 IFKBD AT_KB+XT_KB ;;
367 IFF EITHER_CTL,NOT ;;
368 IFF ALT_SHIFT ;; ALT - case
369 XLATT ALT_CASE ;;
370 ENDIFF ;;
371 ELSEF ;;
372 XLATT CTRL_CASE ;;
373 ENDIFF ;;
374 ENDIFF ;;
375 ;;
376 IFKBD G_KB+P12_KB ;;
377 IFF EITHER_CTL,NOT ;;
378 IFF ALT_SHIFT ;; ALT - case
379 ANDF R_ALT_SHIFT,NOT ;;
380 XLATT ALT_CASE ;;
381 ENDIFF ;;
382 ELSEF ;;
383 IFF EITHER_ALT,NOT ;;
384 XLATT CTRL_CASE ;;
385 ENDIFF ;;
386 ENDIFF ;;
387 IFF EITHER_CTL ;;
388 ANDF ALT_SHIFT ;;
389 ANDF R_ALT_SHIFT,NOT ;;
390 XLATT ALT_CASE ;;
391 ENDIFF ;;
392 ENDIFF ;;
393 ;;
394 EXIT_STATE_LOGIC ;;
395 ;;
396LOGIC_END: ;;
397 ;;
398;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
399;;***************************************
400;; BE Common Translate Section
401;; This section contains translations for the lower 128 characters
402;; only since these will never change from code page to code page.
403;; In addition the dead key "Set Flag" tables are here since the
404;; dead keys are on the same keytops for all code pages.
405;;***************************************
406;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
407 ;;
408 PUBLIC BE_COMMON_XLAT ;;
409BE_COMMON_XLAT: ;;
410 ;;
411 DW COMMON_XLAT_END-$ ;; length of section
412 DW -1 ;; code page
413 ;;
414;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
415;; CODE PAGE: Common
416;; STATE: Alt Case
417;; KEYBOARD TYPES: G + P12
418;; TABLE TYPE: Translate
419;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
420 ;;
421 DW COM_ALT_K1_END-$ ;; length of state section
422 DB ALT_CASE ;; State ID
423 DW G_KB+P12_KB ;; Keyboard Type
424 DB -1,-1 ;; Buffer entry for error character
425 ;; Set Flag Table
426 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
427 DB TYPE_2_TAB ;;
428 DB 8 ;; Number of entries
429 DB 12,-1,-1 ;;
430 DB 13,0,82H ;;
431 DB 16,0,1EH ;; A
432 DB 17,0,2CH ;; Z
433 DB 30,0,10H ;; Q
434 DB 39,0,32H ;; M
435 DB 44,0,11H ;; W
436 DB 50,-1,-1 ;; U.S. 'M'
437COM_ALT_K1_T1_END: ;;
438 ;;
439 DW 0 ;;
440 ;;
441COM_ALT_K1_END: ;;
442 ;;
443;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
444;; CODE PAGE: Common
445;; STATE: Ctrl Case
446;; KEYBOARD TYPES: G + P12
447;; TABLE TYPE: Translate
448;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
449 ;;
450 DW COM_CTRL_K1_END-$ ;; length of state section
451 DB CTRL_CASE ;; State ID
452 DW G_KB+P12_KB ;; Keyboard Type
453 DB -1,-1 ;; Buffer entry for error character
454 ;; Set Flag Table
455 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
456 DB TYPE_2_TAB ;;
457 DB 10 ;; Number of entries
458 DB 12,-1,-1 ;;
459 DB 13,31,13 ;;
460 DB 16,01,16 ;; A
461 DB 17,26,17 ;; Z
462 DB 30,17,30 ;; Q
463 DB 39,13,39 ;; M
464 DB 43,-1,-1 ;; \
465 DB 44,23,44 ;; W
466 DB 50,-1,-1 ;; U.S. 'M'
467 DB 86,28,86 ;;
468COM_CTRL_K1_T1_END: ;;
469 ;;
470 DW 0 ;;
471 ;;
472COM_CTRL_K1_END: ;;
473 ;;
474 ;;
475;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
476;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
477;; CODE PAGE: Common
478;; STATE: Alt Case
479;; KEYBOARD TYPES: AT + XT
480;; TABLE TYPE: Translate
481;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
482 ;;
483 DW COM_ALT_K2_END-$ ;; length of state section
484 DB ALT_CASE ;; State ID
485 DW AT_KB+XT_KB ;; Keyboard Type
486 DB -1,-1 ;; Buffer entry for error character
487 ;; Set Flag Table
488 DW COM_ALT_K2_T2_END-$ ;; Size of xlat table
489 DB TYPE_2_TAB ;;
490 DB 6 ;; Number of entries
491; DB 12,-1,-1 ;; invalid key U.S. alt -
492; DB 13,0,82H ;; alt - (minus sign)
493; DB 53,0,83H ;; alt = (equal sign)
494 DB 16,0,1EH ;; A
495 DB 17,0,2CH ;; Z
496 DB 30,0,10H ;; Q
497 DB 39,0,32H ;; M
498 DB 44,0,11H ;; W
499 DB 50,-1,-1 ;; U.S. 'M'
500COM_ALT_K2_T2_END: ;;
501 ;;
502 DW 0 ;;
503 ;;
504COM_ALT_K2_END: ;;
505 ;;
506;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
507;; CODE PAGE: Common
508;; STATE: Ctrl Case
509;; KEYBOARD TYPES: AT
510;; TABLE TYPE: Translate
511;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
512 ;;
513 DW COM_CTRL_K2_END-$ ;; length of state section
514 DB CTRL_CASE ;; State ID
515 DW AT_KB ;; Keyboard Type
516 DB -1,-1 ;; Buffer entry for error character
517 ;; Set Flag Table
518 DW COM_CTRL_K2_T2_END-$ ;; Size of xlat table
519 DB TYPE_2_TAB ;;
520 DB 11 ;; Number of entries
521 DB 12,-1,-1 ;; invalid U.S. -
522 DB 43,-1,-1 ;; invalid U.S. \
523 DB 41,28,41 ;; valid ctl + \
524 DB 07,30,07 ;; ctl + number six key
525 DB 13,31,13 ;; ctl - or _
526 DB 16,01,16 ;; A
527 DB 17,26,17 ;; Z
528 DB 30,17,30 ;; Q
529 DB 39,13,39 ;; M
530 DB 44,23,44 ;; W
531 DB 50,-1,-1 ;; U.S. 'M'
532COM_CTRL_K2_T2_END: ;;
533 ;;
534 DW 0 ;;
535 ;;
536COM_CTRL_K2_END: ;;
537 ;;
538 ;;
539;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
540;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
541;; CODE PAGE: Common
542;; STATE: Ctrl Case
543;; KEYBOARD TYPES: XT
544;; TABLE TYPE: Translate
545;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
546 ;;
547 DW COM_CTRL_K3_END-$ ;; length of state section
548 DB CTRL_CASE ;; State ID
549 DW AT_KB+XT_KB ;; Keyboard Type
550 DB -1,-1 ;; Buffer entry for error character
551 ;; Set Flag Table
552 DW COM_CTRL_K3_T3_END-$ ;; Size of xlat table
553 DB TYPE_2_TAB ;;
554 DB 11 ;; Number of entries
555 DB 12,-1,-1 ;;
556 DB 43,-1,-1 ;;
557 DB 43,28,43 ;; valid ctl + \
558 DB 07,30,07 ;; ctl + number six key
559 DB 13,31,13 ;; ctl - or _
560 DB 16,01,16 ;; A
561 DB 17,26,17 ;; Z
562 DB 30,17,30 ;; Q
563 DB 39,13,39 ;; M
564 DB 44,23,44 ;; W
565 DB 50,-1,-1 ;; U.S. 'M'
566COM_CTRL_K3_T3_END: ;;
567 ;;
568 DW 0 ;;
569 ;;
570COM_CTRL_K3_END: ;;
571 ;;
572 ;;
573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
574;; CODE PAGE: Common
575;; STATE: Lower Shift Dead Key
576;; KEYBOARD TYPES: All
577;; TABLE TYPE: Flag Table
578;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
579 ;;
580 DW COM_DK_LO_END-$ ;; length of state section
581 DB DEAD_LOWER ;; State ID
582 DW ANY_KB ;; Keyboard Type
583 DB -1,-1 ;; Buffer entry for error character
584 ;; Set Flag Table
585 DW 1 ;; number of entries
586 DB 26 ;; scan code
587 FLAG CIRCUMFLEX ;; flag bit to set
588 ;;
589 ;;
590COM_DK_LO_END: ;;
591 ;;
592;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
593;; CODE PAGE: Common
594;; STATE: Upper Shift Dead Key
595;; KEYBOARD TYPES: All
596;; TABLE TYPE: Flag Table
597;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
598 ;;
599 DW COM_DK_UP_END-$ ;; length of state section
600 DB DEAD_UPPER ;; State ID
601 DW ANY_KB ;; Keyboard Type
602 DB -1,-1 ;; Buffer entry for error character
603 ;; Set Flag Table
604 DW 1 ;; number of entries
605 DB 26 ;; scan code
606 FLAG DIARESIS ;; flag bit to set
607 ;;
608COM_DK_UP_END: ;;
609 ;;
610;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
611;; CODE PAGE: Common
612;; STATE: Third Shift Dead Key
613;; KEYBOARD TYPES: G, P12,AT
614;; TABLE TYPE: Flag Table
615;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
616 ;;
617 DW COM_DK_TH_END-$ ;; length of state section
618 DB DEAD_THIRD ;; State ID
619 DW G_KB+P12_KB+AT_KB ;; Keyboard Type
620 DB -1,-1 ;; Buffer entry for error character
621 ;; Set Flag Table
622 DW 3 ;; number of entries
623 DB 40 ;;
624 FLAG ACUTE ;;
625 DB 43 ;;
626 FLAG GRAVE ;;
627 DB 53 ;;
628 FLAG TILDE ;;
629 ;;
630COM_DK_TH_END: ;;
631 ;;
632;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
633;; CODE PAGE: Common
634;; STATE: Third Shift Dead Key
635;; KEYBOARD TYPES: XT +
636;; TABLE TYPE: Flag Table
637;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
638 ;;
639 DW COM_DK_TH_K1_END-$ ;; length of state section
640 DB DEAD_THIRD ;; State ID
641 DW XT_KB ;; Keyboard Type
642 DB -1,-1 ;; Buffer entry for error character
643 ;; Set Flag Table
644 DW 3 ;; number of entries
645 DB 40 ;;
646 FLAG ACUTE ;;
647 DB 41 ;;
648 FLAG GRAVE ;;
649 DB 53 ;;
650 FLAG TILDE ;;
651 ;;
652COM_DK_TH_K1_END: ;;
653;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
654;**************************************************** CODE eliminated**********
655;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NUM PAD altered ********
656;; CODE PAGE: 850 CNS engraved "," out
657;; STATE: Numeric Pad - Divide Sign
658;; KEYBOARD TYPES: G, P12
659;; TABLE TYPE: Translate
660;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
661;; ;;
662;; DW CP850_DIVID_END-$ ;; length of state section
663;; DB DIVIDE_SIGN ;; State ID
664;; DW G_KB+P12_KB ;; Keyboard Type
665;; DB -1,-1 ;; error character = standalone accent
666;; ;;
667;; DW CP850_DIVID_T1_END-$ ;; Size of xlat table
668;; DB TYPE_2_TAB ;; xlat options:
669;; DB 2 ;; number of scans
670;; DB 0E0H,',',0E0H ;; DIVIDE SIGN
671;; DB 51,',',0E0H ;;
672;; CP850_DIVID_T1_END: ;;
673;; ;;
674;; DW 0 ;; Size of xlat table - null table
675;; ;;
676;; CP850_DIVID_END: ;;
677;; ;;
678;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
679;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
680;; CODE PAGE: 850
681;; STATE: Numeric Key Pad - Multiplication
682;; KEYBOARD TYPES: G, P12
683;; TABLE TYPE: Translate
684;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
685;; ;;
686;; DW CP850_PAD_K1_END-$ ;; length of state section
687;; DB NUMERIC_PAD ;; State ID
688;; DW P12_KB ;; Keyboard Type
689;; DB -1,-1 ;; Buffer entry for error character
690;; ;;
691;; DW CP850_PAD_K1_T1_END-$ ;; Size of xlat table
692;; DB STANDARD_TABLE ;; xlat options:
693;; DB 1 ;; number of entries
694;; DB 51,',' ; (removed *** CNS ****) ;; MULTIPLICATION SIGN
695;; CP850_PAD_K1_T1_END: ;;
696;; ;;
697;; DW 0 ;; Size of xlat table - null table
698;; ;;
699;; CP850_PAD_K1_END: ;;
700;; ;;
701;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
702;*********************************************************
703;; CODE PAGE: Common
704;; STATE: Alpha Lower Case
705;; KEYBOARD TYPES: All
706;; TABLE TYPE: Translate
707;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
708 ;;
709 DW COM_AL_LO_END-$ ;; length of state section
710 DB ALPHA_LOWER ;; State ID
711 DW ANY_KB ;; Keyboard Type
712 DB -1,-1 ;; Buffer entry for error character
713 ;;
714 DW COM_AL_LO_T1_END-$ ;; Size of xlat table
715 DB STANDARD_TABLE ;; xlat options:
716 DB 5 ;; number of entries
717 DB 16,'a' ;; small a
718 DB 17,'z' ;; small z
719 DB 30,'q' ;; small q
720 DB 39,'m' ;; small m
721 DB 44,'w' ;; small w
722COM_AL_LO_T1_END: ;;
723 ;;
724 DW 0 ;; Size of xlat table - null table
725 ;;
726COM_AL_LO_END: ;;
727 ;;
728;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
729;; CODE PAGE: Common
730;; STATE: Alpha Upper Case
731;; KEYBOARD TYPES: All
732;; TABLE TYPE: Translate
733;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
734 ;;
735 DW COM_AL_UP_END-$ ;; length of state section
736 DB ALPHA_UPPER ;; State ID
737 DW ANY_KB ;; Keyboard Type
738 DB -1,-1 ;; Buffer entry for error character
739 ;;
740 DW COM_AL_UP_T1_END-$ ;; Size of xlat table
741 DB STANDARD_TABLE ;; xlat options:
742 DB 5 ;; number of entries
743 DB 16,'A' ;; caps A
744 DB 17,'Z' ;; caps Z
745 DB 30,'Q' ;; caps Q
746 DB 39,'M' ;; caps M
747 DB 44,'W' ;; caps W
748COM_AL_UP_T1_END: ;;
749 ;;
750 DW 0 ;; Size of xlat table - null table
751 ;;
752COM_AL_UP_END: ;;
753 ;;
754 ;;
755;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
756;; CODE PAGE: Common
757;; STATE: Non-Alpha Lower Case
758;; KEYBOARD TYPES: G, P12
759;; TABLE TYPE: Translate
760;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
761 ;;
762 DW COM_NA_LO_END-$ ;; length of state section
763 DB NON_ALPHA_LOWER ;; State ID
764 DW G_KB+P12_KB ;; Keyboard Type
765 DB -1,-1 ;; Buffer entry for error character
766 ;;
767 DW COM_NA_LO_T1_END-$ ;; Size of xlat table
768 DB STANDARD_TABLE ;; xlat options:
769 DB 20 ;; number of entries
770 DB 41,"ý" ;; superscript 2
771 DB 2,"&" ;;
772 DB 3,"‚" ;; acute - e
773 DB 4,'"' ;;
774 DB 5,"'" ;;
775 DB 6,"(" ;;
776 DB 8,"Š" ;; grave - e
777 DB 9,"!" ;;
778 DB 10,"‡" ;; c - cedilla small
779 DB 11,"…" ;;
780 DB 12,")" ;;
781 DB 13,"-" ;;
782 DB 27,"$" ;;
783 DB 40,"—" ;; grave - u
784 DB 43,0E6H ;; mu
785 DB 86,'<' ;;
786 DB 50,',' ;;
787 DB 51,';' ;;
788 DB 52,':' ;;
789 DB 53,'=' ;;
790COM_NA_LO_T1_END: ;;
791 ;;
792 DW 0 ;; Size of xlat table - null table
793 ;;
794COM_NA_LO_END: ;;
795 ;;
796 ;;
797;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
798;; CODE PAGE: Common
799;; STATE: Non-Alpha Lower Case
800;; KEYBOARD TYPES:AT
801;; TABLE TYPE: Translate
802;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
803 ;;
804 DW COM_NA_LO_K2_END-$ ;; length of state section
805 DB NON_ALPHA_LOWER ;; State ID
806 DW AT_KB ;; Keyboard Type
807 DB -1,-1 ;; Buffer entry for error character
808 ;;
809 DW COM_NA_LO_T1_K2_END-$ ;; Size of xlat table
810 DB STANDARD_TABLE ;; xlat options:
811 DB 19 ;; number of entries
812 DB 41,"<" ;;
813 DB 2,"&" ;;
814 DB 3,"‚" ;; acute - e
815 DB 4,'"' ;;
816 DB 5,"'" ;;
817 DB 6,"(" ;;
818 DB 8,"Š" ;; grave - e
819 DB 9,"!" ;;
820 DB 10,"‡" ;; c - cedilla small
821 DB 11,"…" ;;
822 DB 12,")" ;;
823 DB 13,"-" ;;
824 DB 27,"$" ;;
825 DB 40,"—" ;; grave - u
826 DB 43,0E6H ;; mu
827 DB 50,',' ;;
828 DB 51,';' ;;
829 DB 52,':' ;;
830 DB 53,'=' ;;
831COM_NA_LO_T1_K2_END: ;;
832 ;;
833 DW 0 ;; Size of xlat table - null table
834 ;;
835COM_NA_LO_K2_END: ;;
836;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
837;; CODE PAGE: Common
838;; STATE: Non-Alpha Lower Case
839;; KEYBOARD TYPES: XT,
840;; TABLE TYPE: Translate
841;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
842 ;;
843 DW COM_NA_LO_K1_END-$ ;; length of state section
844 DB NON_ALPHA_LOWER ;; State ID
845 DW XT_KB ;; Keyboard Type
846 DB -1,-1 ;; Buffer entry for error character
847 ;;
848 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
849 DB STANDARD_TABLE ;; xlat options:
850 DB 19 ;; number of entries
851 DB 2,"&" ;;
852 DB 3,"‚" ;; acute - e
853 DB 4,'"' ;;
854 DB 5,"'" ;;
855 DB 6,"(" ;;
856 DB 8,"Š" ;;
857 DB 9,"!" ;;
858 DB 10,"‡" ;; c - cedilla small
859 DB 11,"…" ;;
860 DB 12,")" ;;
861 DB 13,"-" ;;
862 DB 27,"$" ;;
863 DB 40,"—" ;; grave - u
864 DB 41,0E6H ;; mu
865 DB 43,'<' ;;
866 DB 50,',' ;;
867 DB 51,';' ;;
868 DB 52,':' ;;
869 DB 53,'=' ;;
870COM_NA_LO_K1_T1_END: ;;
871 ;;
872 DW 0 ;; Size of xlat table - null table
873 ;;
874COM_NA_LO_K1_END: ;;
875 ;;
876;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
877;; CODE PAGE: Common
878;; STATE: Non-Alpha Upper Case
879;; KEYBOARD TYPES: G, P12
880;; TABLE TYPE: Translate
881;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
882 ;;
883 DW COM_NA_UP_END-$ ;; length of state section
884 DB NON_ALPHA_UPPER ;; State ID
885 DW G_KB+P12_KB ;; Keyboard Type
886 DB -1,-1 ;; Buffer entry for error character
887 ;;
888 DW COM_NA_UP_T1_END-$ ;; Size of xlat table
889 DB STANDARD_TABLE ;; xlat options:
890 DB 20 ;; number of entries
891 DB 2,'1' ;;
892 DB 3,'2' ;;
893 DB 4,'3' ;;
894 DB 5,'4' ;;
895 DB 6,'5' ;;
896 DB 7,'6' ;;
897 DB 8,'7' ;;
898 DB 9,'8' ;;
899 DB 10,'9' ;;
900 DB 11,'0' ;;
901 DB 12,0F8H ;; degree symbol
902 DB 13,"_" ;;
903 DB 27,"*" ;;
904 DB 40,'%' ;;
905 DB 43,'œ' ;;
906 DB 86,'>' ;;
907 DB 50,'?' ;;
908 DB 51,'.' ;;
909 DB 52,'/' ;;
910 DB 53,'+' ;;
911COM_NA_UP_T1_END: ;;
912 ;;
913 DW 0 ;; Size of xlat table - null table
914 ;;
915COM_NA_UP_END: ;;
916;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
917;; CODE PAGE: Common
918;; STATE: Non-Alpha Upper Case
919;; KEYBOARD TYPES: XT +
920;; TABLE TYPE: Translate
921;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
922 ;;
923 DW COM_NA_UP_K1_END-$ ;; length of state section
924 DB NON_ALPHA_UPPER ;; State ID
925 DW XT_KB ;; Keyboard Type
926 DB -1,-1 ;; Buffer entry for error character
927 ;;
928 DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table
929 DB STANDARD_TABLE ;; xlat options:
930 DB 20 ;; number of entries
931 DB 41,'œ' ;;
932 DB 2,'1' ;;
933 DB 3,'2' ;;
934 DB 4,'3' ;;
935 DB 5,'4' ;;
936 DB 6,'5' ;;
937 DB 7,'6' ;;
938 DB 8,'7' ;;
939 DB 9,'8' ;;
940 DB 10,'9' ;;
941 DB 11,'0' ;;
942 DB 12,0F8H ;; degree symbol
943 DB 13,"_" ;;
944 DB 27,"*" ;;
945 DB 40,'%' ;;
946 DB 43,'>' ;;
947 DB 50,'?' ;;
948 DB 51,'.' ;;
949 DB 52,'/' ;;
950 DB 53,'+' ;;
951COM_NA_UP_T1_K1_END: ;;
952 ;;
953 DW 0 ;; Size of xlat table - null table
954 ;;
955COM_NA_UP_K1_END: ;;
956;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
957 ;;
958;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
959;; CODE PAGE: Common
960;; STATE: Non-Alpha Upper Case
961;; KEYBOARD TYPES: AT
962;; TABLE TYPE: Translate
963;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
964 ;;
965 DW COM_NA_UP_K2_END-$ ;; length of state section
966 DB NON_ALPHA_UPPER ;; State ID
967 DW AT_KB ;; Keyboard Type
968 DB -1,-1 ;; Buffer entry for error character
969 ;;
970 DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table
971 DB STANDARD_TABLE ;; xlat options:
972 DB 20 ;; number of entries
973 DB 41,'>' ;;
974 DB 2,'1' ;;
975 DB 3,'2' ;;
976 DB 4,'3' ;;
977 DB 5,'4' ;;
978 DB 6,'5' ;;
979 DB 7,'6' ;;
980 DB 8,'7' ;;
981 DB 9,'8' ;;
982 DB 10,'9' ;;
983 DB 11,'0' ;;
984 DB 12,0F8H ;; degree symbol
985 DB 13,"_" ;;
986 DB 27,"*" ;;
987 DB 40,'%' ;;
988 DB 43,'œ' ;;
989 DB 50,'?' ;;
990 DB 51,'.' ;;
991 DB 52,'/' ;;
992 DB 53,'+' ;;
993COM_NA_UP_T1_K2_END: ;;
994 ;;
995 DW 0 ;; Size of xlat table - null table
996 ;;
997COM_NA_UP_K2_END: ;;
998;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
999;; CODE PAGE: Common
1000;; STATE: Third Shift
1001;; KEYBOARD TYPES: G, P12
1002;; TABLE TYPE: Translate
1003;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1004 ;;
1005 DW COM_THIRD_END-$ ;; length of state section
1006 DB THIRD_SHIFT ;; State ID
1007 DW G_KB+P12_KB ;; Keyboard Type
1008 DB -1,-1 ;; Buffer entry for error character
1009 ;;
1010 DW COM_THIRD_T1_END-$ ;; Size of xlat table
1011 DB STANDARD_TABLE ;; xlat options:
1012 DB 9 ;; number of entries
1013 DB 2,"|" ;;
1014 DB 3,'@' ;;
1015 DB 4,'#' ;;
1016 DB 7,'^' ;;
1017 DB 10,'{' ;;
1018 DB 11,'}' ;;
1019 DB 26,'[' ;;
1020 DB 27,']' ;;
1021 DB 86,'\' ;;
1022COM_THIRD_T1_END: ;;
1023 ;;
1024 DW 0 ;; Last xlat table
1025COM_THIRD_END: ;;
1026 ;;
1027;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1028;; CODE PAGE: Common
1029;; STATE: Third Shift
1030;; KEYBOARD TYPES: XT
1031;; TABLE TYPE: Translate
1032;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1033 ;;
1034 DW COM_THIRD_K1_END-$ ;; length of state section
1035 DB THIRD_SHIFT ;; State ID
1036 DW XT_KB ;; Keyboard Type
1037 DB -1,-1 ;; Buffer entry for error character
1038 ;;
1039 DW COM_THIRD_T1_K1_END-$ ;; Size of xlat table
1040 DB STANDARD_TABLE ;; xlat options:
1041 DB 9 ;; number of entries
1042 DB 2,"|" ;;
1043 DB 3,'@' ;;
1044 DB 4,'#' ;;
1045 DB 7,'^' ;;
1046 DB 10,'{' ;;
1047 DB 11,'}' ;;
1048 DB 26,'[' ;;
1049 DB 27,']' ;;
1050 DB 43,'\' ;;
1051COM_THIRD_T1_K1_END: ;;
1052 ;;
1053 DW 0 ;; Last xlat table
1054COM_THIRD_K1_END: ;;
1055;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1056;; CODE PAGE: Common
1057;; STATE: Third Shift
1058;; KEYBOARD TYPES: AT
1059;; TABLE TYPE: Translate
1060;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1061 ;;
1062 DW COM_THIRD_K2_END-$ ;; length of state section
1063 DB THIRD_SHIFT ;; State ID
1064 DW AT_KB ;; Keyboard Type
1065 DB -1,-1 ;; Buffer entry for error character
1066 ;;
1067 DW COM_THIRD_T1_K2_END-$ ;; Size of xlat table
1068 DB STANDARD_TABLE ;; xlat options:
1069 DB 9 ;; number of entries
1070 DB 2,"|" ;;
1071 DB 3,'@' ;;
1072 DB 4,'#' ;;
1073 DB 7,'^' ;;
1074 DB 10,'{' ;;
1075 DB 11,'}' ;;
1076 DB 26,'[' ;;
1077 DB 27,']' ;;
1078 DB 41,'\' ;;
1079COM_THIRD_T1_K2_END: ;;
1080 ;;
1081 DW 0 ;; Last xlat table
1082COM_THIRD_K2_END: ;;
1083;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1084;; CODE PAGE: Common
1085;; STATE: Grave Lower
1086;; KEYBOARD TYPES: ALL
1087;; TABLE TYPE: Translate
1088;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1089 ;;
1090 DW COM_GR_LO_END-$ ;; length of state section
1091 DB GRAVE_LOWER ;; State ID
1092 DW ANY_KB ;; Keyboard Type
1093 DB 96,0 ;; error character = standalone accent
1094 ;;
1095 DW COM_GR_LO_T1_END-$ ;; Size of xlat table
1096 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1097 DB 5 ;; number of scans
1098 DB 18,'Š' ;; scan code,ASCII - e
1099 DB 16,'…' ;; scan code,ASCII - a
1100 DB 24,'•' ;; scan code,ASCII - o
1101 DB 22,'—' ;; scan code,ASCII - u
1102 DB 23,'' ;; scan code,ASCII - i
1103COM_GR_LO_T1_END: ;;
1104 ;;
1105 DW 0 ;; Size of xlat table - null table
1106 ;;
1107COM_GR_LO_END: ;; length of state section
1108 ;;
1109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1110;; CODE PAGE: Common
1111;; STATE: Grave Upper Case
1112;; KEYBOARD TYPES: All
1113;; TABLE TYPE: Translate
1114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1115 ;;
1116 DW COM_GR_UP_END-$ ;; length of state section
1117 DB GRAVE_UPPER ;; State ID
1118 DW ANY_KB ;; Keyboard Type
1119 DB 96,0 ;; error character = standalone accent
1120 ;;
1121 DW COM_GR_UP_T1_END-$ ;; Size of xlat table
1122 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1123 DB 0 ;; number of scans
1124COM_GR_UP_T1_END: ;;
1125 ;;
1126 DW 0 ;; Size of xlat table - null table
1127 ;;
1128COM_GR_UP_END: ;; length of state section
1129 ;;
1130 ;;
1131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1132;; CODE PAGE: Common
1133;; STATE: Grave Space Bar
1134;; KEYBOARD TYPES: All
1135;; TABLE TYPE: Translate
1136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1137 ;;
1138 DW COM_GR_SP_END-$ ;; length of state section
1139 DB GRAVE_SPACE ;; State ID
1140 DW ANY_KB ;; Keyboard Type
1141 DB 96,0 ;; error character = standalone accent
1142 ;;
1143 DW COM_GR_SP_T1_END-$ ;; Size of xlat table
1144 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1145 DB 1 ;; number of scans
1146 DB 57,96 ;; STANDALONE GRAVE
1147COM_GR_SP_T1_END: ;;
1148 ;;
1149 DW 0 ;; Size of xlat table - null table
1150 ;;
1151COM_GR_SP_END: ;; length of state section
1152 ;;
1153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1154;; CODE PAGE: Common
1155;; STATE: Circumflex Lower
1156;; KEYBOARD TYPES: All
1157;; TABLE TYPE: Translate
1158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1159 ;;
1160 DW COM_CI_LO_END-$ ;; length of state section
1161 DB CIRCUMFLEX_LOWER ;; State ID
1162 DW ANY_KB ;; Keyboard Type
1163 DB 94,0 ;; error character = standalone accent
1164 ;;
1165 DW COM_CI_LO_T1_END-$ ;; Size of xlat table
1166 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1167 DB 5 ;; number of scans
1168 DB 16,'ƒ' ;; scan code,ASCII - a
1169 DB 18,'ˆ' ;; scan code,ASCII - e
1170 DB 24,'“' ;; scan code,ASCII - o
1171 DB 22,'–' ;; scan code,ASCII - u
1172 DB 23,'Œ' ;; scan code,ASCII - i
1173COM_CI_LO_T1_END: ;;
1174 ;;
1175 DW 0 ;;
1176 ;;
1177COM_CI_LO_END: ;;
1178 ;;
1179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1180;; CODE PAGE: Common
1181;; STATE: Circumflex Upper
1182;; KEYBOARD TYPES: All
1183;; TABLE TYPE: Translate
1184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1185 ;;
1186 DW COM_CI_UP_END-$ ;; length of state section
1187 DB CIRCUMFLEX_UPPER ;; State ID
1188 DW ANY_KB ;; Keyboard Type
1189 DB 94,0 ;; error character = standalone accent
1190 ;;
1191 DW COM_CI_UP_T1_END-$ ;; Size of xlat table
1192 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1193 DB 0 ;; number of scans
1194COM_CI_UP_T1_END: ;;
1195 ;;
1196 DW 0 ;;
1197 ;;
1198COM_CI_UP_END: ;;
1199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1200;; CODE PAGE: Common
1201;; STATE: Circumflex Space Bar
1202;; KEYBOARD TYPES: All
1203;; TABLE TYPE: Translate
1204;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1205 ;;
1206 DW COM_CI_SP_END-$ ;; length of state section
1207 DB CIRCUMFLEX_SPACE ;; State ID
1208 DW ANY_KB ;; Keyboard Type
1209 DB 94,0 ;; error character = standalone accent
1210 ;;
1211 DW COM_CI_SP_T1_END-$ ;; Size of xlat table
1212 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1213 DB 1 ;; number of scans
1214 DB 57,94 ;; STANDALONE CIRCUMFLEX
1215COM_CI_SP_T1_END: ;;
1216 ;;
1217 DW 0 ;; Size of xlat table - null table
1218 ;;
1219COM_CI_SP_END: ;; length of state section
1220 ;;
1221 ;;
1222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1223;; CODE PAGE: Common
1224;; STATE: Tilde Space Bar
1225;; KEYBOARD TYPES: All
1226;; TABLE TYPE: Translate
1227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1228 ;;
1229 DW COM_TI_SP_END-$ ;; length of state section
1230 DB TILDE_SPACE ;; State ID
1231 DW ANY_KB ;; Keyboard Type
1232 DB 126,0 ;; error character = standalone accent
1233 ;;
1234 DW COM_TI_SP_T1_END-$ ;; Size of xlat table
1235 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1236 DB 1 ;; number of scans
1237 DB 57,126 ;; STANDALONE TIDLE
1238COM_TI_SP_T1_END: ;;
1239 ;;
1240 DW 0 ;; Size of xlat table - null table
1241 ;;
1242COM_TI_SP_END: ;; length of state section
1243 ;;
1244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1245 DW 0 ;; Last State
1246COMMON_XLAT_END: ;;
1247 ;;
1248 ;;
1249 ;;
1250;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1251;;***************************************
1252;; BE Specific Translate Section for 437
1253;;
1254;;***************************************
1255;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1256 ;;
1257 PUBLIC BE_437_XLAT ;;
1258BE_437_XLAT: ;;
1259 ;;
1260 DW CP437_XLAT_END-$ ;; length of section
1261 DW 437 ;;
1262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1263;; CODE PAGE: 437
1264;; STATE: Non-Alpha Lower Case
1265;; KEYBOARD TYPES: All
1266;; TABLE TYPE: Translate
1267;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1268 ;;
1269 DW CP437_NA_LO_END-$ ;; length of state section
1270 DB NON_ALPHA_LOWER ;; State ID
1271 DW ANY_KB ;; Keyboard Type
1272 DB -1,-1 ;; default ignore error state
1273 ;;
1274 DW CP437_NA_LO_T1_END-$ ;; Size of xlat table
1275 DB STANDARD_TABLE ;; xlat options:
1276 DB 1 ;; number of scans
1277 DB 7,15H ;; Section Symbol
1278CP437_NA_LO_T1_END: ;;
1279 ;;
1280 DW 0 ;; Size of xlat table - null table
1281 ;;
1282CP437_NA_LO_END: ;;
1283 ;;
1284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1285;; CODE PAGE: 437
1286;; STATE: Non-Alpha Upper Case
1287;; KEYBOARD TYPES: G, P12
1288;; TABLE TYPE: Translate
1289;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1290 ;;
1291 DW CP437_NA_UP_END-$ ;; length of state section
1292 DB NON_ALPHA_UPPER ;; State ID
1293 DW G_KB+P12_KB ;; Keyboard Type
1294 DB -1,-1 ;; default ignore error state
1295 ;;
1296 DW CP437_NA_UP_T1_END-$ ;; Size of xlat table
1297 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1298 DB 1 ;; number of scans
1299 DB 41,00H ;; 3 Superscript
1300CP437_NA_UP_T1_END: ;;
1301 ;;
1302 DW 0 ;; Size of xlat table - null table
1303 ;;
1304CP437_NA_UP_END: ;;
1305 ;;
1306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1307;; CODE PAGE: CP437
1308;; STATE: Acute Lower Case
1309;; KEYBOARD TYPES: All
1310;; TABLE TYPE: Translate
1311;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1312 ;;
1313 DW CP437_AC_LO_END-$ ;; length of state section
1314 DB ACUTE_LOWER ;; State ID
1315 DW ANY_KB ;; Keyboard Type
1316 DB 39,0 ;; error character = standalone accent
1317 ;;
1318 DW CP437_AC_LO_T1_END-$ ;; Size of xlat table
1319 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1320 DB 5 ;; number of scans
1321 DB 16,' ' ;; a acute
1322 DB 18,'‚' ;; e acute
1323 DB 23,'¡' ;; i acute
1324 DB 24,'¢' ;; o acute
1325 DB 22,'£' ;; u acute
1326CP437_AC_LO_T1_END: ;;
1327 ;;
1328 DW 0 ;; Size of xlat table - null table
1329 ;;
1330CP437_AC_LO_END: ;;
1331 ;;
1332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1333;; CODE PAGE: CP437
1334;; STATE: Acute Upper Case
1335;; KEYBOARD TYPES: All
1336;; TABLE TYPE: Translate
1337;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1338 ;;
1339 DW CP437_AC_UP_END-$ ;; length of state section
1340 DB ACUTE_UPPER ;; State ID
1341 DW ANY_KB ;; Keyboard Type
1342 DB 39,0 ;; error character = standalone accent
1343 ;;
1344 DW CP437_AC_UP_T1_END-$ ;; Size of xlat table
1345 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1346 DB 1 ;; number of scans
1347 DB 18,'' ;; scan code,ASCII - e
1348CP437_AC_UP_T1_END: ;;
1349 ;;
1350 DW 0 ;; Size of xlat table - null table
1351 ;;
1352CP437_AC_UP_END: ;;
1353 ;;
1354;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1355;; CODE PAGE: CP437
1356;; STATE: Acute Space Bar
1357;; KEYBOARD TYPES: All
1358;; TABLE TYPE: Translate
1359;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1360 ;;
1361 DW CP437_AC_SP_END-$ ;; length of state section
1362 DB ACUTE_SPACE ;; State ID
1363 DW ANY_KB ;; Keyboard Type
1364 DB 39,0 ;; error character = standalone accent
1365 ;;
1366 DW CP437_AC_SP_T1_END-$ ;; Size of xlat table
1367 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1368 DB 1 ;; number of scans
1369 DB 57,39 ;; scan code,ASCII - SPACE
1370CP437_AC_SP_T1_END: ;;
1371 ;;
1372 DW 0 ;; Size of xlat table - null table
1373 ;;
1374CP437_AC_SP_END: ;;
1375 ;;
1376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1377;; CODE PAGE: CP437
1378;; STATE: Tilde Lower
1379;; KEYBOARD TYPES: All
1380;; TABLE TYPE: Translate
1381;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1382 ;;
1383 DW CP437_TI_LO_END-$ ;; length of state section
1384 DB TILDE_LOWER ;; State ID
1385 DW ANY_KB ;; Keyboard Type
1386 DB 126,0 ;; error character = standalone accent
1387 ;;
1388 DW CP437_TI_LO_T1_END-$ ;; Size of xlat table
1389 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1390 DB 1 ;; number of scans
1391 DB 49,164 ;; scan code,ASCII - n
1392CP437_TI_LO_T1_END: ;;
1393 ;;
1394 DW 0 ;; Size of xlat table - null table
1395 ;;
1396CP437_TI_LO_END: ;; length of state section
1397 ;;
1398;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1399;; CODE PAGE: CP437
1400;; STATE: Tilde Upper Case
1401;; KEYBOARD TYPES: All
1402;; TABLE TYPE: Translate
1403;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1404 ;;
1405 DW CP437_TI_UP_END-$ ;; length of state section
1406 DB TILDE_UPPER ;; State ID
1407 DW ANY_KB ;; Keyboard Type
1408 DB 126,0 ;; error character = standalone accent
1409 ;;
1410 DW CP437_TI_UP_T1_END-$ ;; Size of xlat table
1411 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1412 DB 1 ;; number of scans
1413 DB 49,165 ;; scan code,ASCII - N
1414CP437_TI_UP_T1_END: ;;
1415 ;;
1416 DW 0 ;; Size of xlat table - null table
1417 ;;
1418CP437_TI_UP_END: ;; length of state section
1419 ;;
1420;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1421;; CODE PAGE: CP437
1422;; STATE: Diaresis Lower Case
1423;; KEYBOARD TYPES: All
1424;; TABLE TYPE: Translate
1425;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1426 ;;
1427 DW CP437_DI_LO_END-$ ;; length of state section
1428 DB DIARESIS_LOWER ;; State ID
1429 DW ANY_KB ;; Keyboard Type
1430 DB 0FEH,0 ;; error character = standalone accent
1431 ;;
1432 DW CP437_DI_LO_T1_END-$ ;; Size of xlat table
1433 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1434 DB 6 ;; number of scans
1435 DB 18,'‰' ;; scan code,ASCII - e
1436 DB 16,'„' ;; scan code,ASCII - a
1437 DB 24,'”' ;; scan code,ASCII - o
1438 DB 22,'' ;; scan code,ASCII - u
1439 DB 23,'‹' ;; scan code,ASCII - i
1440 DB 21,'˜' ;; scan code,ASCII - y
1441CP437_DI_LO_T1_END: ;;
1442 ;;
1443 DW 0 ;; Size of xlat table - null table
1444 ;;
1445CP437_DI_LO_END: ;; length of state section
1446 ;;
1447;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1448;; CODE PAGE: CP437
1449;; STATE: Diaresis Upper Case
1450;; KEYBOARD TYPES: All
1451;; TABLE TYPE: Translate
1452;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1453 ;;
1454 DW CP437_DI_UP_END-$ ;; length of state section
1455 DB DIARESIS_UPPER ;; State ID
1456 DW ANY_KB ;; Keyboard Type
1457 DB 0FEH,0 ;; error character = standalone accent
1458 ;;
1459 DW CP437_DI_UP_T1_END-$ ;; Size of xlat table
1460 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1461 DB 3 ;; number of scans
1462 DB 16,'Ž' ;; scan code,ASCII - a
1463 DB 24,'™' ;; scan code,ASCII - o
1464 DB 22,'š' ;; scan code,ASCII - u
1465CP437_DI_UP_T1_END: ;;
1466 ;;
1467 DW 0 ;; Size of xlat table - null table
1468 ;;
1469CP437_DI_UP_END: ;; length of state section
1470 ;;
1471 ;;
1472;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1473;; CODE PAGE: CP437
1474;; STATE: Diaresis Space Bar
1475;; KEYBOARD TYPES: All
1476;; TABLE TYPE: Translate
1477;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1478; ;;
1479; DW CP437_DI_SP_END-$ ;; length of state section
1480; DB DIARESIS_SPACE ;; State ID
1481; DW ANY_KB ;; Keyboard Type
1482; DB 0FEH,0 ;; error character = standalone accent
1483; ;;
1484; DW CP437_DI_SP_T1_END-$ ;; Size of xlat table
1485; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1486; DB 1 ;; number of scans
1487; DB 57,0FEH ;; error character = standalone accent
1488;CP437_DI_SP_T1_END: ;;
1489; ;;
1490; DW 0 ;; Size of xlat table - null table
1491;CP437_DI_SP_END: ;; length of state section
1492; ;;
1493;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1494 DW 0 ;; LAST STATE
1495 ;;
1496CP437_XLAT_END: ;;
1497 ;;
1498;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1499;;***************************************
1500;; BE Specific Translate Section for 850
1501;;***************************************
1502;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1503 ;;
1504 PUBLIC BE_850_XLAT ;;
1505BE_850_XLAT: ;;
1506 ;;
1507 DW CP850_XLAT_END-$ ;; length of section
1508 DW 850 ;;
1509 ;;
1510 ;;
1511;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1512;; CODE PAGE: 850
1513;; STATE: Non-Alpha Lower Case
1514;; KEYBOARD TYPES: All
1515;; TABLE TYPE: Translate
1516;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1517 ;;
1518 DW CP850_NA_LO_END-$ ;; length of state section
1519 DB NON_ALPHA_LOWER ;; State ID
1520 DW ANY_KB ;; Keyboard Type
1521 DB -1,-1 ;; default ignore error state
1522 ;;
1523 DW CP850_NA_LO_T1_END-$ ;; Size of xlat table
1524 DB STANDARD_TABLE ;; xlat options:
1525 DB 1 ;; number of scans
1526 DB 7,0F5H ;; Section symbol - 
1527CP850_NA_LO_T1_END: ;;
1528 ;;
1529 DW 0 ;; Size of xlat table - null table
1530 ;;
1531CP850_NA_LO_END: ;;
1532 ;;
1533 ;;
1534;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1535;; CODE PAGE: 850
1536;; STATE: Non-Alpha Upper Case
1537;; KEYBOARD TYPES: G, P12
1538;; TABLE TYPE: Translate
1539;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1540 ;;
1541 DW CP850_NA_UP_END-$ ;; length of state section
1542 DB NON_ALPHA_UPPER ;; State ID
1543 DW G_KB+P12_KB ;; Keyboard Type
1544 DB -1,-1 ;; default ignore error state
1545 ;;
1546 DW CP850_NA_UP_T1_END-$ ;; Size of xlat table
1547 DB STANDARD_TABLE ;; xlat options:
1548 DB 1 ;; number of scans
1549 DB 41,0FCH ;; 3 Superscript
1550CP850_NA_UP_T1_END: ;;
1551 ;;
1552 DW 0 ;; Size of xlat table - null table
1553 ;;
1554CP850_NA_UP_END: ;;
1555 ;;
1556;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1557;; CODE PAGE: 850
1558;; STATE: Third Shift
1559;; KEYBOARD TYPES: All
1560;; TABLE TYPE: Translate
1561;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1562 ;;
1563 DW CP850_THIRD_END-$ ;; length of state section
1564 DB THIRD_SHIFT ;; State ID
1565 DW ANY_KB ;; Keyboard Type
1566 DB -1,-1 ;; default ignore error state
1567 ;;
1568 DW CP850_THIRD_T1_END-$ ;; Size of xlat table
1569 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1570 DB 0 ;; number of scans
1571CP850_THIRD_T1_END: ;;
1572 ;;
1573 DW 0 ;; Size of xlat table - null table
1574 ;;
1575CP850_THIRD_END: ;;
1576 ;;
1577;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1578;; CODE PAGE: CP850
1579;; STATE: Tilde Lower
1580;; KEYBOARD TYPES: All
1581;; TABLE TYPE: Translate
1582;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1583 ;;
1584 DW CP850_TI_LO_END-$ ;; length of state section
1585 DB TILDE_LOWER ;; State ID
1586 DW ANY_KB ;; Keyboard Type
1587 DB 126,0 ;; error character = standalone accent
1588 ;;
1589 DW CP850_TI_LO_T1_END-$ ;; Size of xlat table
1590 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1591 DB 3 ;; number of scans
1592 DB 49,164 ;; scan code,ASCII - n
1593 DB 16,0C6H ;; a
1594 DB 24,0E4H ;; o
1595CP850_TI_LO_T1_END: ;;
1596 ;;
1597 DW 0 ;; Size of xlat table - null table
1598 ;;
1599CP850_TI_LO_END: ;; length of state section
1600 ;;
1601;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1602;; CODE PAGE: CP850
1603;; STATE: Tilde Upper Case
1604;; KEYBOARD TYPES: All
1605;; TABLE TYPE: Translate
1606;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1607 ;;
1608 DW CP850_TI_UP_END-$ ;; length of state section
1609 DB TILDE_UPPER ;; State ID
1610 DW ANY_KB ;; Keyboard Type
1611 DB 126,0 ;; error character = standalone accent
1612 ;;
1613 DW CP850_TI_UP_T1_END-$ ;; Size of xlat table
1614 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1615 DB 3 ;; number of scans
1616 DB 49,165 ;; scan code,ASCII - N
1617 DB 16,0C7H ;; A
1618 DB 24,0E5H ;; O
1619CP850_TI_UP_T1_END: ;;
1620 ;;
1621 DW 0 ;; Size of xlat table - null table
1622 ;;
1623CP850_TI_UP_END: ;; length of state section
1624 ;;
1625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1626;; CODE PAGE: CP850
1627;; STATE: Acute Lower Case
1628;; KEYBOARD TYPES: All
1629;; TABLE TYPE: Translate
1630;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1631 ;;
1632 DW CP850_AC_LO_END-$ ;; length of state section
1633 DB ACUTE_LOWER ;; State ID
1634 DW ANY_KB ;; Keyboard Type
1635 DB 0EFH,0 ;; error character = standalone accent
1636 DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
1637 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1638 DB 6 ;; number of scans
1639 DB 16,' ' ;; a acute
1640 DB 18,'‚' ;; e acute
1641 DB 23,'¡' ;; i acute
1642 DB 24,'¢' ;; o acute
1643 DB 22,'£' ;; u acute
1644 DB 21,0ECH ;; y acute ADDED 12/16 CNS **********
1645CP850_AC_LO_T1_END: ;;
1646 ;;
1647 DW 0 ;; Size of xlat table - null table
1648 ;;
1649CP850_AC_LO_END: ;;
1650 ;;
1651;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1652;; CODE PAGE: CP850
1653;; STATE: Acute Upper Case
1654;; KEYBOARD TYPES: All
1655;; TABLE TYPE: Translate
1656;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1657 ;;
1658 DW CP850_AC_UP_END-$ ;; length of state section
1659 DB ACUTE_UPPER ;; State ID
1660 DW ANY_KB ;; Keyboard Type
1661 DB 0EFH,0 ;; error character = standalone accent
1662 DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
1663 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1664 DB 6 ;; number of scans
1665 DB 16,0B5H ;; A acute
1666 DB 18,090H ;; E acute
1667 DB 23,0D6H ;; I acute
1668 DB 24,0E0H ;; O acute
1669 DB 22,0E9H ;; U acute
1670 DB 21,0EDH ;; Y acute
1671CP850_AC_UP_T1_END: ;;
1672 ;;
1673 DW 0 ;; Size of xlat table - null table
1674 ;;
1675CP850_AC_UP_END: ;;
1676;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1677;; CODE PAGE: CP850
1678;; STATE: Acute Space Bar
1679;; KEYBOARD TYPES: All
1680;; TABLE TYPE: Translate
1681;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1682 ;;
1683 DW CP850_AC_SP_END-$ ;; length of state section
1684 DB ACUTE_SPACE ;; State ID
1685 DW ANY_KB ;; Keyboard Type
1686 DB 0EFH,0 ;; error character = standalone accent
1687 ;;
1688 DW CP850_AC_SP_T1_END-$ ;; Size of xlat table
1689 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1690 DB 1 ;; number of scans
1691 DB 57,0EFH ;; scan code,ASCII - SPACE
1692CP850_AC_SP_T1_END: ;;
1693 ;;
1694 DW 0 ;; Size of xlat table - null table
1695 ;;
1696CP850_AC_SP_END: ;;
1697 ;;
1698;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1699;; CODE PAGE: CP850
1700;; STATE: Diaresis Lower Case
1701;; KEYBOARD TYPES: All
1702;; TABLE TYPE: Translate
1703;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1704 ;;
1705 DW CP850_DI_LO_END-$ ;; length of state section
1706 DB DIARESIS_LOWER ;; State ID
1707 DW ANY_KB ;; Keyboard Type
1708 DB 249,0 ;; error character = standalone accent
1709 ;;
1710 DW CP850_DI_LO_T1_END-$ ;; Size of xlat table
1711 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1712 DB 6 ;; number of scans
1713 DB 18,'‰' ;; scan code,ASCII - e
1714 DB 16,'„' ;; scan code,ASCII - a
1715 DB 24,'”' ;; scan code,ASCII - o
1716 DB 22,'' ;; scan code,ASCII - u
1717 DB 23,'‹' ;; scan code,ASCII - i
1718 DB 21,'˜' ;; scan code,ASCII - y
1719CP850_DI_LO_T1_END: ;;
1720 ;;
1721 DW 0 ;; Size of xlat table - null table
1722 ;;
1723CP850_DI_LO_END: ;; length of state section
1724 ;;
1725;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;
1726;; CODE PAGE: 850
1727;; STATE: Diaresis Upper
1728;; KEYBOARD TYPES: All
1729;; TABLE TYPE: Translate
1730;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1731 ;;
1732 DW CP850_DI_UP_END-$ ;; length of state section
1733 DB DIARESIS_UPPER ;; State ID
1734 DW ANY_KB ;; Keyboard Type
1735 DB 249,0 ;; error character = standalone accent
1736 ;;
1737 DW CP850_DI_UP_T1_END-$ ;; Size of xlat table
1738 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1739 DB 5 ;; number of scans
1740 DB 16,8EH ;; A di
1741 DB 18,0D3H ;; E diaeresis
1742 DB 23,0D8H ;; I diaeresis
1743 DB 24,99H ;; O di
1744 DB 22,9AH ;; U di
1745CP850_DI_UP_T1_END: ;;
1746 ;;
1747 DW 0 ;; Size of xlat table - null table
1748 ;;
1749CP850_DI_UP_END: ;; length of state section
1750 ;;
1751;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1752;; CODE PAGE: CP850
1753;; STATE: Diaeresis Space Bar
1754;; KEYBOARD TYPES: All
1755;; TABLE TYPE: Translate
1756;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1757 ;;
1758 DW CP850_DI_SP_END-$ ;; length of state section
1759 DB DIARESIS_SPACE ;; State ID
1760 DW ANY_KB ;; Keyboard Type
1761 DB 0FEH,0 ;; error character = standalone accent
1762 ;;
1763 DW CP850_DI_SP_T1_END-$ ;; Size of xlat table
1764 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1765 DB 1 ;; number of scans
1766 DB 57,0F9H ;; scan code,ASCII - SPACE
1767CP850_DI_SP_T1_END: ;;
1768 ;;
1769 DW 0 ;; Size of xlat table - null table
1770 ;;
1771CP850_DI_SP_END: ;;
1772;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1773;; CODE PAGE: 850
1774;; STATE: Grave Upper
1775;; KEYBOARD TYPES: ALL
1776;; TABLE TYPE: Translate
1777;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1778 ;;
1779 DW CP850_GR_UP_END-$ ;; length of state section
1780 DB GRAVE_UPPER ;; State ID
1781 DW ANY_KB ;; Keyboard Type
1782 DB 96,0 ;; error character = standalone accent
1783 ;;
1784 DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
1785 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1786 DB 5 ;; number of scans
1787 DB 16,0B7H ;; A grave
1788 DB 18,0D4H ;; E grave
1789 DB 23,0DEH ;; I grave
1790 DB 24,0E3H ;; O grave
1791 DB 22,0EBH ;; U grave
1792CP850_GR_UP_T1_END: ;;
1793 ;;
1794 DW 0 ;; Size of xlat table - null table
1795 ;;
1796CP850_GR_UP_END: ;; length of state section
1797 ;;
1798;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1799;; CODE PAGE: 850
1800;; STATE: Circumflex Upper
1801;; KEYBOARD TYPES: All
1802;; TABLE TYPE: Translate
1803;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1804 ;;
1805 DW CP850_CI_UP_END-$ ;; length of state section
1806 DB CIRCUMFLEX_UPPER ;; State ID
1807 DW ANY_KB ;;
1808 DB 94,0 ;; error character = standalone accent
1809 ;;
1810 DW CP850_CI_UP_T1_END-$ ;; Size of xlat table
1811 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1812 DB 5 ;; number of scans
1813 DB 16,0B6H ;; A circumflex
1814 DB 18,0D2H ;; E circumflex
1815 DB 23,0D7H ;; I circumflex
1816 DB 24,0E2H ;; O circumflex
1817 DB 22,0EAH ;; U circumflex
1818CP850_CI_UP_T1_END: ;;
1819 ;;
1820 DW 0 ;; Size of xlat table - null table
1821 ;;
1822CP850_CI_UP_END: ;; length of state section
1823 ;;
1824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1825;; ;;
1826 DW 0 ;; LAST STATE
1827 ;;
1828CP850_XLAT_END: ;;
1829;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1830 ;;
1831CODE ENDS ;;
1832 END ;;
1833;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFCF.ASM b/v4.0/src/DEV/KEYBOARD/KDFCF.ASM
new file mode 100644
index 0000000..a8469dd
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFCF.ASM
@@ -0,0 +1,1769 @@
1
2 PAGE ,132
3 TITLE DOS - KEYBOARD.SYS
4
5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6;; DOS - - NLS Support - KEYBOARD.SYS
7;; (c) Copyright 1988 Microsoft
8;;
9;; This file contains the keyboard table for Canadian French
10;;
11;; Linkage Instructions:
12;; Refer to KDF.ASM
13;;
14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
15 ;;
16 INCLUDE KEYBSHAR.INC ;;
17 INCLUDE POSTEQU.INC ;;
18 INCLUDE KEYBMAC.INC ;;
19 ;;
20 PUBLIC CF_LOGIC ;;
21 PUBLIC CF_863_XLAT ;;
22 PUBLIC CF_850_XLAT ;;
23 ;;
24CODE SEGMENT PUBLIC 'CODE' ;;
25 ASSUME CS:CODE,DS:CODE ;;
26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
27;; Standard translate table options are a liner search table
28;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
30 ;;
31STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
32 ;;
33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
34;;***************************************
35;; CF State Logic
36;;***************************************
37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
38 ;;
39CF_LOGIC: ;;
40 ;;
41 DW LOGIC_END-$ ;; length
42 ;;
43 DW JR_HOT_KEY_1_2 ;; special features
44 ;;
45 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
46 ;;
47 ;;
48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
49;; OPTIONS: If we find a scan match in
50;; an XLATT or SET_FLAG operation then
51;; exit from INT 9.
52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
53 ;;
54 OPTION EXIT_IF_FOUND ;;
55 ;;
56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
57;; Dead key definitions must come before
58;; dead key translations to handle
59;; dead key + dead key.
60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
61 ;;
62 IFF EITHER_ALT,NOT ;;
63 ANDF EITHER_CTL,NOT ;;
64 IFF CIRCUMFLEX ;;
65 RESET_NLS ;;
66 XLATT CIRCUMFLEX_CIRCUMFLEX ;;
67 GOTO CIRCUMFLEX_ON ;;
68 ENDIFF ;;
69 IFF GRAVE ;;
70 RESET_NLS ;;
71 XLATT GRAVE_GRAVE ;;
72 GOTO GRAVE_ON ;;
73 ENDIFF ;;
74 IFF EITHER_SHIFT ;;
75 IFF DIARESIS ;;
76 RESET_NLS ;;
77 XLATT DIARESIS_DIARESIS ;;
78 GOTO DIARESIS_ON ;;
79 ENDIFF ;;
80 SET_FLAG DEAD_UPPER ;;
81 ELSEF ;;
82 IFF CEDILLA ;;
83 RESET_NLS ;;
84 XLATT CEDILLA_CEDILLA ;;
85 GOTO CEDILLA_ON ;;
86 ENDIFF ;;
87 SET_FLAG DEAD_LOWER ;;
88 ENDIFF ;;
89 ELSEF ;;
90 IFF R_ALT_SHIFT,NOT ;;
91 ANDF ALT_SHIFT ;;
92 IFF EITHER_SHIFT ;; Third shift is activated by ALT_GR
93 ;; OR ALT + SHIFT.
94 IFF ACUTE ;;
95 RESET_NLS ;;
96 XLATT ACUTE_ACUTE ;;
97 GOTO ACUTE_ON ;;
98 ENDIFF ;;
99 SET_FLAG DEAD_THIRD ;;
100 ENDIFF ;;
101 ELSEF ;;
102 IFF R_ALT_SHIFT ;;
103;;;**************************************
104;;; BIOS sets ALT_SHIFT when R_ALT_SHIFT is pressed.
105;;; We must suppress this to detect both ALT keys simultaneously.
106;;; ANDF ALT_SHIFT,NOT ;;
107;;;**************************************
108 ANDF EITHER_SHIFT,NOT ;;
109 IFF ACUTE ;;
110 RESET_NLS ;;
111 XLATT ACUTE_ACUTE ;;
112 GOTO ACUTE_ON ;;
113 ENDIFF ;;
114 SET_FLAG DEAD_THIRD ;;
115 ENDIFF ;;
116 ENDIFF ;;
117 ENDIFF ;;
118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
119;; ACUTE ACCENT TRANSLATIONS
120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
121 ;;
122ACUTE_PROC: ;;
123 ;;
124 IFF ACUTE,NOT ;;
125 GOTO GRAVE_PROC ;;
126 ENDIFF ;;
127 ;;
128 RESET_NLS ;;
129ACUTE_ON: ;;
130 IFF R_ALT_SHIFT,NOT ;;
131 XLATT ACUTE_SPACE ;;
132 ENDIFF ;;
133 IFF EITHER_CTL,NOT ;;
134 ANDF EITHER_ALT,NOT ;;
135 IFF EITHER_SHIFT ;;
136 IFF CAPS_STATE ;;
137 XLATT ACUTE_LOWER ;;
138 ELSEF ;;
139 XLATT ACUTE_UPPER ;;
140 ENDIFF ;;
141 ELSEF ;;
142 IFF CAPS_STATE ;;
143 XLATT ACUTE_UPPER ;;
144 ELSEF ;;
145 XLATT ACUTE_LOWER ;;
146 ENDIFF ;;
147 ENDIFF ;;
148 ENDIFF ;;
149 ;;
150INVALID_ACUTE: ;;
151 ;; If we get here then either the XLATT
152 BEEP ;; failed or we are ina bad shift state.
153 EXIT_INT_9 ;; Either is invalid so BEEP.
154 ;;
155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
156;; GRAVE ACCENT TRANSLATIONS
157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
158 ;;
159GRAVE_PROC: ;;
160 ;;
161 IFF GRAVE,NOT ;;
162 GOTO DIARESIS_PROC ;;
163 ENDIFF ;;
164 ;;
165 RESET_NLS ;;
166GRAVE_ON: ;;
167 IFF R_ALT_SHIFT,NOT ;;
168 XLATT GRAVE_SPACE ;;
169 ENDIFF ;;
170 IFF EITHER_CTL,NOT ;;
171 ANDF EITHER_ALT,NOT ;;
172 IFF EITHER_SHIFT ;;
173 IFF CAPS_STATE ;;
174 XLATT GRAVE_LOWER ;;
175 ELSEF ;;
176 XLATT GRAVE_UPPER ;;
177 ENDIFF ;;
178 ELSEF ;;
179 IFF CAPS_STATE ;;
180 XLATT GRAVE_UPPER ;;
181 ELSEF ;;
182 XLATT GRAVE_LOWER ;;
183 ENDIFF ;;
184 ENDIFF ;;
185 ENDIFF ;;
186 ;;
187INVALID_GRAVE: ;;
188 ;; If we get here then either the XLATT
189 BEEP ;; failed or we are ina bad shift state.
190 EXIT_INT_9 ;; Either is invalid so BEEP.
191 ;;
192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
193;; DIARESIS ACCENT TRANSLATIONS
194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
195 ;;
196DIARESIS_PROC: ;;
197 ;;
198 IFF DIARESIS,NOT ;;
199 GOTO CIRCUMFLEX_PROC ;;
200 ENDIFF ;;
201 ;;
202 RESET_NLS ;;
203DIARESIS_ON: ;;
204 IFF R_ALT_SHIFT,NOT ;;
205 XLATT DIARESIS_SPACE ;;
206 ENDIFF ;;
207 IFF EITHER_CTL,NOT ;;
208 ANDF EITHER_ALT,NOT ;;
209 IFF EITHER_SHIFT ;;
210 IFF CAPS_STATE ;;
211 XLATT DIARESIS_LOWER ;;
212 ELSEF ;;
213 XLATT DIARESIS_UPPER ;;
214 ENDIFF ;;
215 ELSEF ;;
216 IFF CAPS_STATE ;;
217 XLATT DIARESIS_UPPER ;;
218 ELSEF ;;
219 XLATT DIARESIS_LOWER ;;
220 ENDIFF ;;
221 ENDIFF ;;
222 ENDIFF ;;
223 ;;
224INVALID_DIARESIS: ;;
225 ;; If we get here then either the XLATT
226 BEEP ;; failed or we are ina bad shift state.
227 EXIT_INT_9 ;; Either is invalid so BEEP.
228 ;;
229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
230;; CIRCUMFLEX ACCENT TRANSLATIONS
231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
232 ;;
233CIRCUMFLEX_PROC: ;;
234 ;;
235 IFF CIRCUMFLEX,NOT ;;
236 GOTO CEDILLA_PROC ;;
237 ENDIFF ;;
238 ;;
239 RESET_NLS ;;
240CIRCUMFLEX_ON: ;;
241 IFF R_ALT_SHIFT,NOT ;;
242 XLATT CIRCUMFLEX_SPACE ;;
243 ENDIFF ;;
244 IFF EITHER_CTL,NOT ;;
245 ANDF EITHER_ALT,NOT ;;
246 IFF EITHER_SHIFT ;;
247 IFF CAPS_STATE ;;
248 XLATT CIRCUMFLEX_LOWER ;;
249 ELSEF ;;
250 XLATT CIRCUMFLEX_UPPER ;;
251 ENDIFF ;;
252 ELSEF ;;
253 IFF CAPS_STATE ;;
254 XLATT CIRCUMFLEX_UPPER ;;
255 ELSEF ;;
256 XLATT CIRCUMFLEX_LOWER ;;
257 ENDIFF ;;
258 ENDIFF ;;
259 ENDIFF ;;
260 ;;
261INVALID_CIRCUMFLEX: ;;
262 ;; If we get here then either the XLATT
263 BEEP ;; failed or we are ina bad shift state.
264 EXIT_INT_9 ;; Either is invalid so BEEP.
265 ;;
266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
267;; CEDILLA ACCENT TRANSLATIONS
268;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
269 ;;
270CEDILLA_PROC: ;;
271 ;;
272 IFF CEDILLA,NOT ;;
273 GOTO NON_DEAD ;;
274 ENDIFF ;;
275 ;;
276 RESET_NLS ;;
277CEDILLA_ON: ;;
278 IFF R_ALT_SHIFT,NOT ;;
279 XLATT CEDILLA_SPACE ;;
280 ENDIFF ;;
281 IFF EITHER_CTL,NOT ;;
282 ANDF EITHER_ALT,NOT ;;
283 IFF EITHER_SHIFT ;;
284 IFF CAPS_STATE ;;
285 XLATT CEDILLA_LOWER ;;
286 ELSEF ;;
287 XLATT CEDILLA_UPPER ;;
288 ENDIFF ;;
289 ELSEF ;;
290 IFF CAPS_STATE ;;
291 XLATT CEDILLA_UPPER ;;
292 ELSEF ;;
293 XLATT CEDILLA_LOWER ;;
294 ENDIFF ;;
295 ENDIFF ;;
296 ENDIFF ;;
297 ;;
298INVALID_CEDILLA: ;;
299 ;; If we get here then either the XLATT
300 BEEP ;; failed or we are ina bad shift state.
301 EXIT_INT_9 ;; Either is invalid so BEEP.
302 ;;
303;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
304;; Upper, lower and third shifts
305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
306 ;;
307NON_DEAD: ;;
308 IFKBD G_KB+P12_KB ;;
309 ANDF LC_E0 ;;
310 EXIT_STATE_LOGIC ;;
311 ENDIFF ;;
312 ;;
313 IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
314 ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
315 GOTO NO_THIRD ;;
316 ENDIFF ;;
317 ;;
318 IFF R_ALT_SHIFT,NOT ;; Third shift is activated by ALT_GR
319 ANDF ALT_SHIFT ;; OR ALT + SHIFT.
320 IFF EITHER_SHIFT ;;
321 XLATT THIRD_SHIFT ;;
322 IFF SCAN_MATCH,NOT ;;
323 EXIT_INT_9 ;;
324 ENDIFF ;;
325 ENDIFF ;;
326 ELSEF ;;
327 IFF R_ALT_SHIFT ;;
328;;;**************************************
329;;; BIOS sets ALT_SHIFT when R_ALT_SHIFT is pressed.
330;;; We must suppress this to detect both ALT keys simultaneously.
331;;; ANDF ALT_SHIFT,NOT ;;
332;;;**************************************
333 ANDF EITHER_SHIFT,NOT ;;
334 XLATT THIRD_SHIFT ;;
335 IFF SCAN_MATCH,NOT ;;
336 EXIT_INT_9 ;;
337 ENDIFF ;;
338 ENDIFF ;;
339 ENDIFF ;;
340 ;;
341 EXIT_STATE_LOGIC ;;
342 ;;
343 ;;
344NO_THIRD: ;; Lower and upper case. Alphabetic
345 ;; keys are affected by CAPS LOCK.
346 IFF EITHER_SHIFT ;; Numeric keys are not.
347 XLATT NON_ALPHA_UPPER ;;
348 IFF CAPS_STATE ;;
349 XLATT ALPHA_LOWER ;;
350 ELSEF ;;
351 XLATT ALPHA_UPPER ;;
352 ENDIFF ;;
353 ELSEF ;;
354 XLATT NON_ALPHA_LOWER ;;
355 IFF CAPS_STATE ;;
356 XLATT ALPHA_UPPER ;;
357 ELSEF ;;
358 XLATT ALPHA_LOWER ;;
359 ENDIFF ;;
360 ENDIFF ;;
361 ;;
362 EXIT_STATE_LOGIC ;;
363 ;;
364LOGIC_END: ;;
365 ;;
366 ;;
367 ;;
368;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
369;;***************************************
370;; CF Common Translate Section
371;; This section contains translations for the lower 128 characters
372;; only since these will never change from code page to code page.
373;;***************************************
374;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
375 ;;
376 PUBLIC CF_COMMON_XLAT ;;
377CF_COMMON_XLAT: ;;
378 ;;
379 DW COMMON_XLAT_END-$ ;; length of Common Tranlate Section
380 DW -1 ;; code page
381 ;;
382;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
383;; CODE PAGE: Common
384;; STATE: Lower Shift Dead Key
385;; KEYBOARD: All
386;; TABLE TYPE: Set Dead Key Flag
387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
388 DW COM_DE_LO_END-$ ;;
389 ;; label format:
390 ;; codepage_state_n_END
391 ;; codepage = COMmon
392 ;; codepage1,
393 ;; codepage2.
394 ;; state refers to
395 ;; alpha, case, and dead:
396 ;; DE_LO: DEAD_LOWER
397 ;; DE_UP: DEAD_UPPER
398 ;; DE_TH: DEAD_THIRD
399 ;; AL_LO: ALPHA_LOWER
400 ;; AL_UP: ALPHA_UPPER
401 ;; NA_LO: NON_ALPHA_LOWER
402 ;; NA_UP: NON_ALPHA_UPPER
403 ;; NA_TH: THIRD_SHIFT
404 ;; AC_LO: ACUTE_LOWER
405 ;; AC_UP: ACUTE_UPPER
406 ;; AC_SP: ACUTE_SPACE
407 ;; AC_AC: ACUTE_ACUTE
408 ;; GR_LO: GRAVE_LOWER
409 ;; GR_UP: GRAVE_UPPER
410 ;; GR_SP: GRAVE_SPACE
411 ;; GR_GR: GRAVE_GRAVE
412 ;; DI_LO: DIARESIS_LOWER
413 ;; DI_UP: DIARESIS_UPPER
414 ;; DI_SP: DIARESIS_SPACE
415 ;; DI_DI: DIARESIS_DIARESIS
416 ;; CI_LO: CIRCUMFLEX_LOWER
417 ;; CI_UP: CIRCUMFLEX_UPPER
418 ;; CI_SP: CIRCUMFLEX_SPACE
419 ;; CI_CI: CIRCUMFLEX_CIRCUMFLEX
420 ;; CE_LO: CEDILLA_LOWER
421 ;; CE_UP: CEDILLA_UPPER
422 ;; CE_SP: CEDILLA_SPACE
423 ;; CE_CE: CEDILLA_CEDILLA
424 ;;
425 ;; n = 1,2,... to distinguish
426 ;; for different KB
427 DB DEAD_LOWER ;;
428 DW ANY_KB ;;
429 DB -1,-1 ;; Buffer entry for error character
430 ;; Set Flag Table
431 DW 3 ;; number of dead keys
432 DB 40 ;; scan code
433 FLAG GRAVE ;; flag bit assignment
434 DB 26 ;;
435 FLAG CIRCUMFLEX ;;
436 DB 27 ;;
437 FLAG CEDILLA ;;
438COM_DE_LO_END: ;;
439 ;;
440;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
441;; CODE PAGE: Common
442;; STATE: Upper Shift Dead Key
443;; KEYBOARD: ALL
444;; TABLE TYPE: Set Dead Key Flag
445;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
446 DW COM_DE_UP_END-$ ;;
447 DB DEAD_UPPER ;;
448 DW ANY_KB ;;
449 DB -1,-1 ;; Buffer entry for error character
450 ;; Set Flag Table
451 DW 3 ;; number of dead keys
452 DB 40 ;; scan code
453 FLAG GRAVE ;; flag bit assignment
454 DB 26 ;;
455 FLAG CIRCUMFLEX ;;
456 DB 27 ;;
457 FLAG DIARESIS ;;
458COM_DE_UP_END: ;;
459 ;;
460;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
461;; CODE PAGE: Common
462;; STATE: Third Shift Dead Key
463;; KEYBOARD: All
464;; TABLE TYPE: Set Dead Key Flag
465;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
466 DW COM_DE_TH_END-$ ;;
467 DB DEAD_THIRD ;;
468 DW ANY_KB ;;
469 DB -1,-1 ;; Buffer entry for error character
470 ;; Set Flag Table
471 DW 1 ;; number of dead keys
472 DB 53 ;; scan code
473 FLAG ACUTE ;; flag bit assignment
474COM_DE_TH_END: ;;
475 ;;
476;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
477;; CODE PAGE: Common
478;; STATE: Alpha Lower Case
479;; KEYBOARD: All
480;; TABLE TYPE: Translate
481;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
482 ;;
483 DW COM_AL_LO_END-$ ;; Length of state section
484 DB ALPHA_LOWER ;; State ID
485 DW ANY_KB ;; Keyboard Type
486 DB -1,-1 ;; Buffer entry for error character
487 ;; Set Flag Table
488 DW CF_000400-$ ;; Size of xlat table
489 DB STANDARD_TABLE ;; xlat options:
490 DB 1 ;; number of scans
491 DB 53,'‚' ;;
492CF_000400: ;;
493 ;;
494 DW 0 ;; Size of xlat table - null table
495 ;;
496COM_AL_LO_END: ;;
497 ;;
498;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
499;; CODE PAGE: Common
500;; STATE: Alpha Upper Case
501;; KEYBOARD: All
502;; TABLE TYPE: Translate
503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
504 ;;
505 DW COM_AL_UP_END-$ ;;
506 DB ALPHA_UPPER ;;
507 DW ANY_KB ;;
508 DB -1,-1 ;; Buffer entry for error character
509 ;; Set Flag Table
510 DW CF_002400-$ ;; Size of xlat table
511 DB STANDARD_TABLE ;; xlat options:
512 DB 1 ;; number of scans
513 DB 53,'' ;;
514CF_002400: ;;
515 ;;
516 DW 0 ;; Size of xlat table - null table
517 ;;
518COM_AL_UP_END: ;;
519;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
520;; CODE PAGE: Common
521;; STATE: Non-alpha lower Case
522;; KEYBOARD: G_KB, P_KB, P12_KB
523;; TABLE TYPE: Translate
524;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
525 ;;
526 DW COM_NA_LO_1_END-$ ;; Length of state section
527 DB NON_ALPHA_LOWER ;;
528 DW G_KB+P_KB+P12_KB ;;
529 DB -1,-1 ;; Buffer entry for error character
530 ;; Set Flag Table
531 DW CF_004300-$ ;; Size of xlat table
532 DB STANDARD_TABLE ;; xlat options:
533 DB 3 ;; number of scans
534 DB 41,'#' ;;
535 DB 43,'<' ;;
536 DB 86,'®' ;;
537CF_004300: ;;
538 ;;
539 DW 0 ;; Size of xlat table - null table
540 ;;
541COM_NA_LO_1_END: ;;
542 ;;
543;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
544;; CODE PAGE: Common
545;; STATE: Non-alpha lower Case
546;; KEYBOARD: XT_KB, AT_KB
547;; TABLE TYPE: Translate
548;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
549 ;;
550 DW COM_NA_LO_2_END-$ ;; Length of state section
551 DB NON_ALPHA_LOWER ;;
552 DW XT_KB+AT_KB ;;
553 DB -1,-1 ;; Buffer entry for error character
554 ;; Set Flag Table
555 DW CF_004400-$ ;; Size of xlat table
556 DB STANDARD_TABLE ;; xlat options:
557 DB 2 ;; number of scans
558 DB 41,'<' ;;
559 DB 43,'\' ;;
560CF_004400: ;;
561 ;;
562 DW 0 ;; Size of xlat table : null
563 ;;
564COM_NA_LO_2_END: ;;
565 ;;
566;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
567;; CODE PAGE: Common
568;; STATE: Non-alpha lower Case
569;; KEYBOARD: JR_KB
570;; TABLE TYPE: Translate
571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
572 ;;
573 DW COM_NA_LO_3_END-$ ;; Length of state section
574 DB NON_ALPHA_LOWER ;;
575 DW JR_KB ;;
576 DB -1,-1 ;; Buffer entry for error character
577 ;; Set Flag Table
578 DW CF_004401-$ ;; Size of xlat table
579 DB STANDARD_TABLE ;; xlat options:
580 DB 1 ;; number of scans
581 DB 51,',' ;;
582CF_004401: ;;
583 ;;
584 DW 0 ;; Size of xlat table : null
585 ;;
586COM_NA_LO_3_END: ;;
587 ;;
588;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
589;; CODE PAGE: Common
590;; STATE: Non-alpha Upper Case
591;; KEYBOARD: G_KB, P_KB, P12_KB
592;; TABLE TYPE: Translate
593;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
594 ;;
595 DW COM_NA_UP_1_END-$ ;; Length of state section
596 DB NON_ALPHA_UPPER ;;
597 DW G_KB+P_KB+P12_KB ;;
598 DB -1,-1 ;; Buffer entry for error character
599 ;; Set Flag Table
600 DW CF_005300-$ ;; Size of xlat table
601 DB STANDARD_TABLE ;; xlat options:
602 DB 8 ;; number of scans
603 DB 3,'"' ;;
604 DB 4,'/' ;;
605 DB 7,'?' ;;
606 DB 41,'|' ;;
607 DB 43,'>' ;;
608 DB 51,27H ;; single quote
609 DB 52,'.' ;;
610 DB 86,'¯' ;;
611CF_005300: ;;
612 ;;
613 DW 0 ;; Size of xlat table - null table
614 ;;
615COM_NA_UP_1_END: ;;
616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
617;; CODE PAGE: Common
618;; STATE: Non-alpha Upper Case
619;; KEYBOARD: XT_KB+AT_KB
620;; TABLE TYPE: Translate
621;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
622 ;;
623 DW COM_NA_UP_2_END-$ ;; Length of state section
624 DB NON_ALPHA_UPPER ;;
625 DW XT_KB+AT_KB ;;
626 DB -1,-1 ;; Buffer entry for error character
627 ;; Set Flag Table
628 DW CF_005400-$ ;; Size of xlat table
629 DB STANDARD_TABLE ;; xlat options:
630 DB 7 ;; number of scans
631 DB 3,'"' ;;
632 DB 4,'/' ;;
633 DB 7,'?' ;;
634 DB 41,'>' ;;
635 DB 43,'|' ;;
636 DB 51,27H ;; single quote
637 DB 52,'.' ;; period
638CF_005400: ;;
639 ;;
640 DW 0 ;; Size of xlat table : null
641 ;;
642COM_NA_UP_2_END: ;;
643 ;;
644;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
645;; CODE PAGE: Common
646;; STATE: Non-alpha Upper Case
647;; KEYBOARD: JR_KB
648;; TABLE TYPE: Translate
649;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
650 ;;
651 DW COM_NA_UP_3_END-$ ;; Length of state section
652 DB NON_ALPHA_UPPER ;;
653 DW JR_KB ;;
654 DB -1,-1 ;; Buffer entry for error character
655 ;; Set Flag Table
656 DW CF_005100-$ ;; Size of xlat table
657 DB STANDARD_TABLE ;; xlat options:
658 DB 5 ;;
659 DB 3,'"' ;;
660 DB 4,'/' ;;
661 DB 7,'?' ;;
662 DB 51,27H ;; single quote
663 DB 52,02EH ;; period
664CF_005100: ;;
665 ;;
666 DW 0 ;; Size of xlat table : null
667 ;;
668 ;;
669COM_NA_UP_3_END: ;;
670;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
671;; CODE PAGE: Common
672;; STATE: Non-alpha Third Case
673;; KEYBOARD: G_KB, P_KB, P12_KB
674;; TABLE TYPE: Translate
675;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
676 ;;
677 DW COM_NA_TH_1_END-$ ;; Length of state section
678 DB THIRD_SHIFT ;;
679 DW G_KB+P_KB+P12_KB ;;
680 DB -1,-1 ;; Buffer entry for error character
681 ;; Set Flag Table
682 DW CF_007760-$ ;; Size of xlat table
683 DB STANDARD_TABLE ;; xlat options:
684 DB 18 ;; number of scans
685 DB 2,'ñ' ;;
686 DB 3,'@' ;;
687 DB 4,'œ' ;;
688 DB 7,'ª' ;;
689 DB 9,'ý' ;;
690 DB 11,'¬' ;;
691 DB 12,'«' ;;
692 DB 26,'[' ;;
693 DB 27,']' ;;
694 DB 39,'~' ;;
695 DB 40,'{' ;;
696 DB 41,'\' ;;
697 DB 43,'}' ;;
698 DB 47,'®' ;;
699 DB 48,'¯' ;;
700 DB 49,'ø' ;;
701 DB 50,'æ' ;;
702 DB 86,'ø' ;;
703CF_007760: ;;
704 ;;
705 DW 0 ;; Size of xlat table - null table
706 ;;
707COM_NA_TH_1_END: ;;
708 ;;
709;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
710;; CODE PAGE: Common
711;; STATE: Non-alpha Third Case
712;; KEYBOARD: XT_KB
713;; TABLE TYPE: Translate
714;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
715 ;;
716 DW COM_NA_TH_2_END-$ ;; Length of state section
717 DB THIRD_SHIFT ;;
718 DW XT_KB ;;
719 DB -1,-1 ;; Buffer entry for error character
720 ;; Set Flag Table
721 DW CF_006500-$ ;; Size of xlat table
722 DB STANDARD_TABLE ;; xlat options:
723 DB 17 ;; number of scans
724 DB 2,'ñ' ;;
725 DB 3,'@' ;;
726 DB 4,'œ' ;;
727 DB 7,'ª' ;;
728 DB 9,'ý' ;;
729 DB 11,'¬' ;;
730 DB 12,'«' ;;
731 DB 26,'[' ;;
732 DB 27,']' ;;
733 DB 39,'~' ;;
734 DB 40,'{' ;;
735 DB 41,'}' ;;
736 DB 43,'#' ;;
737 DB 47,'®' ;;
738 DB 48,'¯' ;;
739 DB 49,'ø' ;;
740 DB 50,'æ' ;;
741CF_006500: ;;
742 ;;
743 DW 0 ;; Size of xlat table - null table
744 ;;
745COM_NA_TH_2_END: ;;
746 ;;
747;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
748;; CODE PAGE: Common
749;; STATE: Non-alpha Third Case
750;; KEYBOARD: AT_KB
751;; TABLE TYPE: Translate
752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
753 ;;
754 DW COM_NA_TH_3_END-$ ;; Length of state section
755 DB THIRD_SHIFT ;;
756 DW AT_KB ;;
757 DB -1,-1 ;; Buffer entry for error character
758 ;; Set Flag Table
759 DW CF_006300-$ ;; Size of xlat table
760 DB STANDARD_TABLE ;; xlat options:
761 DB 17 ;; number of scans
762 DB 2,'ñ' ;;
763 DB 3,'@' ;;
764 DB 4,'œ' ;;
765 DB 7,'ª' ;;
766 DB 9,'ý' ;;
767 DB 11,'¬' ;;
768 DB 12,'«' ;;
769 DB 26,'[' ;;
770 DB 27,']' ;;
771 DB 38,'~' ;;
772 DB 39,'{' ;;
773 DB 40,'}' ;;
774 DB 43,'#' ;;
775 DB 47,'®' ;;
776 DB 48,'¯' ;;
777 DB 49,'ø' ;;
778 DB 50,'æ' ;;
779CF_006300: ;;
780 ;;
781 DW 0 ;; Size of xlat table - null table
782 ;;
783COM_NA_TH_3_END: ;;
784 ;;
785;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
786;; CODE PAGE: Common
787;; STATE: Non-alpha Third Case
788;; KEYBOARD: PCJR
789;; TABLE TYPE: Translate
790;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
791 ;;
792 DW CF_COM_NA_TH_4_END-$ ;; Length of state section
793 DB THIRD_SHIFT ;;
794 DW JR_KB ;;
795 DB -1,-1 ;; Buffer entry for error character
796 ;; Set Flag Table
797 DW CF_007100-$ ;; Size of xlat table
798 DB STANDARD_TABLE ;; xlat options:
799 DB 21 ;;
800 DB 2,'ñ' ;;
801 DB 3,'@' ;;
802 DB 4,'œ' ;;
803 DB 7,'ª' ;;
804 DB 9,'æ' ;;
805 DB 11,'ý' ;;
806 DB 16,'¬' ;;
807 DB 17,'«' ;;
808 DB 26,'[' ;;
809 DB 27,']' ;;
810 DB 30,'<' ;;
811 DB 31,'>' ;;
812 DB 38,'~' ;;
813 DB 39,'{' ;;
814 DB 40,'}' ;;
815 DB 44,'\' ;;
816 DB 45,'#' ;;
817 DB 46,'|' ;;
818 DB 47,'®' ;;
819 DB 48,'¯' ;;
820 DB 49,'ø' ;;
821CF_007100: ;;
822 ;;
823 DW 0 ;; Size of xlat table - null table
824 ;;
825CF_COM_NA_TH_4_END: ;;
826 ;;
827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
828;; CODE PAGE: Common
829;; STATE: Acute Lower Case
830;; KEYBOARD: All
831;; TABLE TYPE: Translate
832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
833 ;;
834 DW COM_AC_LO_END-$ ;; Length of state section
835 DB ACUTE_LOWER ;;
836 DW ANY_KB ;;
837 DB -1,-1 ;; Buffer entry for error character
838 ;; Set Flag Table
839 DW CF_001100-$ ;; Size of xlat table
840 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
841 DB 3 ;; number of scans
842 DB 18,'‚' ;;
843 DB 24,'¢' ;;
844 DB 22,'£' ;;
845CF_001100: ;;
846 ;;
847 DW 0 ;; Size of xlat table - null table
848 ;;
849COM_AC_LO_END: ;;
850 ;;
851;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
852;; CODE PAGE: Common
853;; STATE: Acute Upper Case
854;; KEYBOARD: All
855;; TABLE TYPE: Translate
856;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
857 ;;
858 DW COM_AC_UP_END-$ ;; Length of state section
859 DB ACUTE_UPPER ;;
860 DW ANY_KB ;;
861 DB -1,-1 ;; Buffer entry for error character
862 ;; Set Flag Table
863 DW CF_003100-$ ;; Size of xlat table
864 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
865 DB 1 ;; number of scans
866 DB 18,'' ;;
867CF_003100: ;;
868 ;;
869 DW 0 ;; Size of xlat table - null table
870 ;;
871COM_AC_UP_END: ;;
872 ;;
873;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
874;; CODE PAGE: Common
875;; STATE: Grave Lower Case
876;; KEYBOARD: All
877;; TABLE TYPE: Translate
878;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
879 ;;
880 DW COM_GR_LO_END-$ ;; Length of state section
881 DB GRAVE_LOWER ;;
882 DW ANY_KB ;;
883 DB '`',0 ;; Buffer entry for error character
884 ;; Set Flag Table
885 DW CF_001200-$ ;; Size of xlat table
886 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
887 DB 3 ;; number of scans
888 DB 30,'…' ;;
889 DB 18,'Š' ;;
890 DB 22,'—' ;;
891CF_001200: ;;
892 ;;
893 DW 0 ;; Size of xlat table - null table
894 ;;
895COM_GR_LO_END: ;;
896 ;;
897;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
898;; CODE PAGE: Common
899;; STATE: Grave + Space Bar
900;; KEYBOARD: All
901;; TABLE TYPE: Translate
902;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
903 ;;
904 DW COM_GR_SP_END-$ ;; Length of state section
905 DB GRAVE_SPACE ;;
906 DW ANY_KB ;;
907 DB '`',0 ;; Buffer entry for error character
908 ;; Set Flag Table
909 DW CF_004500-$ ;; Size of xlat table
910 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
911 DB 1 ;; number of scans
912 DB 57,'`' ;;
913CF_004500: ;;
914 ;;
915 DW 0 ;; Size of xlat table - null table
916 ;;
917COM_GR_SP_END: ;;
918 ;;
919;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
920;; CODE PAGE: Common
921;; STATE: Grave + Grave
922;; KEYBOARD: All
923;; TABLE TYPE: Translate
924;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
925 ;;
926 DW COM_GR_GR_END-$ ;; Length of state section
927 DB GRAVE_GRAVE ;;
928 DW ANY_KB ;;
929 DB '`',0 ;; Buffer entry for error character
930 ;; Set Flag Table
931 DW CF_004501-$ ;; Size of xlat table
932 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
933 DB 1 ;; number of scans
934 DB 40,'`' ;;
935CF_004501: ;;
936 ;;
937 DW 0 ;; Size of xlat table - null table
938 ;;
939COM_GR_GR_END: ;;
940 ;;
941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
942;; CODE PAGE: Common
943;; STATE: Diaresis Lower Case
944;; KEYBOARD: All
945;; TABLE TYPE: Translate
946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
947 ;;
948 DW COM_DI_LO_END-$ ;; Length of state section
949 DB DIARESIS_LOWER ;;
950 DW ANY_KB ;;
951 DB -1,-1 ;; Buffer entry for error character
952 ;; Set Flag Table
953 DW CF_001400-$ ;; Size of xlat table
954 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
955 DB 3 ;; number of scans
956 DB 18,'‰' ;;
957 DB 23,'‹' ;;
958 DB 22,'' ;;
959CF_001400: ;;
960 ;;
961 DW 0 ;; Size of xlat table - null table
962 ;;
963COM_DI_LO_END: ;;
964 ;;
965;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
966;; CODE PAGE: Common
967;; STATE: Circumflex Lower Case
968;; KEYBOARD: All
969;; TABLE TYPE: Translate
970;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
971 ;;
972 DW COM_CI_LO_END-$ ;; Length of state section
973 DB CIRCUMFLEX_LOWER ;;
974 DW ANY_KB ;;
975 DB '^',0 ;; Buffer entry for error character
976 ;; Set Flag Table
977 DW CF_001300-$ ;; Size of xlat table
978 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
979 DB 5 ;; number of scans
980 DB 30,'ƒ' ;;
981 DB 18,'ˆ' ;;
982 DB 23,'Œ' ;;
983 DB 24,'“' ;;
984 DB 22,'–' ;;
985CF_001300: ;;
986 ;;
987 DW 0 ;; Size of xlat table - null table
988 ;;
989COM_CI_LO_END: ;;
990 ;;
991;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
992;; CODE PAGE: Common
993;; STATE: Circumflex + Space Bar
994;; KEYBOARD: All
995;; TABLE TYPE: Translate
996;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
997 ;;
998 DW COM_CI_SP_END-$ ;; Length of state section
999 DB CIRCUMFLEX_SPACE ;;
1000 DW ANY_KB ;;
1001 DB '^',0 ;; Buffer entry for error character
1002 ;; Set Flag Table
1003 DW CF_004555-$ ;; Size of xlat table
1004 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1005 DB 1 ;; number of scans
1006 DB 57,'^' ;;
1007CF_004555: ;;
1008 ;;
1009 DW 0 ;; Size of xlat table - null table
1010 ;;
1011COM_CI_SP_END: ;;
1012 ;;
1013;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1014;; CODE PAGE: Common
1015;; STATE: Circumflex + Circumflex
1016;; KEYBOARD: All
1017;; TABLE TYPE: Translate
1018;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1019 ;;
1020 DW COM_CI_CI_END-$ ;; Length of state section
1021 DB CIRCUMFLEX_CIRCUMFLEX ;;
1022 DW ANY_KB ;;
1023 DB '^',0 ;; Buffer entry for error character
1024 ;; Set Flag Table
1025 DW CF_004551-$ ;; Size of xlat table
1026 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1027 DB 1 ;; number of scans
1028 DB 26,'^' ;;
1029CF_004551: ;;
1030 ;;
1031 DW 0 ;; Size of xlat table - null table
1032 ;;
1033COM_CI_CI_END: ;;
1034 ;;
1035;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1036;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1037;; CODE PAGE: Common
1038;; STATE: Diaresis Upper Case
1039;; KEYBOARD: All
1040;; TABLE TYPE: Translate
1041;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1042 ;;
1043 DW COM_DI_UP_END-$ ;; Length of state section
1044 DB DIARESIS_UPPER ;;
1045 DW ANY_KB ;;
1046 DB -1,-1 ;; Buffer entry for error character
1047 ;; Set Flag Table
1048 DW CF_003300-$ ;; Size of xlat table
1049 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1050 DB 1 ;; number of scans
1051 DB 22,'š' ;;
1052CF_003300: ;;
1053 ;;
1054 DW 0 ;; Size of xlat table - null table
1055 ;;
1056COM_DI_UP_END: ;;
1057 ;;
1058;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1059;; CODE PAGE: Common
1060;; STATE: Cedilla Lower Case
1061;; KEYBOARD: All
1062;; TABLE TYPE: Translate
1063;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1064 ;;
1065 DW COM_CE_LO_END-$ ;; Length of state section
1066 DB CEDILLA_LOWER ;;
1067 DW ANY_KB ;;
1068 DB -1,-1 ;; Buffer entry for error character
1069 ;; Set Flag Table
1070 DW CF_001500-$ ;; Size of xlat table
1071 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1072 DB 1 ;; number of scans
1073 DB 46,'‡' ;;
1074CF_001500: ;;
1075 ;;
1076 DW 0 ;; Size of xlat table - null table
1077 ;;
1078COM_CE_LO_END: ;;
1079 ;;
1080;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1081;; CODE PAGE: Common
1082;; STATE: Cedilla Upper Case
1083;; KEYBOARD: All
1084;; TABLE TYPE: Translate
1085;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1086 ;;
1087 DW COM_CE_UP_END-$ ;; Length of state section
1088 DB CEDILLA_UPPER ;;
1089 DW ANY_KB ;;
1090 DB -1,-1 ;; Buffer entry for error character
1091 ;; Set Flag Table
1092 DW CF_003400-$ ;; Size of xlat table
1093 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1094 DB 1 ;; number of scans
1095 DB 46,'€' ;;
1096CF_003400: ;;
1097 ;;
1098 DW 0 ;; Size of xlat table - null table
1099 ;;
1100COM_CE_UP_END: ;;
1101 ;;
1102 DW 0 ;; Last State
1103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1104COMMON_XLAT_END: ;;
1105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1107;;***************************************
1108;; CF 863 Translate Section
1109;; This section contains translations for the UPPER 128 characters
1110;; of Code Page 863.
1111;;***************************************
1112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1113 ;;
1114 PUBLIC CF_863_XLAT ;;
1115CF_863_XLAT: ;;
1116 ;;
1117 DW CP863_XLAT_END-$ ;; length of 863 Tranlate Section
1118 DW 863 ;; code page id
1119 ;;
1120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1121;; CODE PAGE: 863
1122;; STATE: Non-alpha Third Case
1123;; KEYBOARD: G_B, P_KB, P12_KB
1124;; XT_KB, AT_KB
1125;; TABLE TYPE: Translate
1126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1127 ;;
1128 DW CP863_NA_TH_1_END-$ ;; Length of state section
1129 DB THIRD_SHIFT ;;
1130 DW G_KB+P_KB+P12_KB+XT_KB+AT_KB ;;
1131 DB -1,-1 ;; Buffer entry for error character
1132 ;; Set Flag Table
1133 DW CF_106300-$ ;; Size of xlat table
1134 DB STANDARD_TABLE ;; xlat options:
1135 DB 8 ;; number of scan
1136 DB 5,'›' ;;
1137 DB 6,98H ;; international currency symbol
1138 DB 8,0A0H ;; vertical line broken
1139 DB 10,0A6H ;; superscript 3
1140 DB 13,0ADH ;; 3 quarters
1141 DB 24,08FH ;; section
1142 DB 25,086H ;; paragraph
1143 DB 51,0A7H ;; overscore
1144CF_106300: ;;
1145 ;;
1146 DW 0 ;; Size of xlat table - null table
1147 ;;
1148CP863_NA_TH_1_END: ;; Length of state section
1149 ;;
1150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1151;; CODE PAGE: 863
1152;; STATE: Non-alpha Third Case
1153;; KEYBOARD: JR_KB
1154;; TABLE TYPE: Translate
1155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1156 ;;
1157 DW CP863_NA_TH_2_END-$ ;; Length of state section
1158 DB THIRD_SHIFT ;;
1159 DW JR_KB ;;
1160 DB -1,-1 ;; Buffer entry for error character
1161 ;; Set Flag Table
1162 DW CF_106600-$ ;; Size of xlat table
1163 DB STANDARD_TABLE ;; xlat options:
1164 DB 8 ;; number of scan
1165 DB 5,'›' ;;
1166 DB 6,98H ;; international currency symbol
1167 DB 8,0A0H ;; vertical line broken
1168 DB 12,0A6H ;; superscript 3
1169 DB 18,0ADH ;; 3 quarters
1170 DB 24,08FH ;; section
1171 DB 25,086H ;; paragraph
1172 DB 51,0A7H ;; overscore
1173CF_106600: ;;
1174 ;;
1175 DW 0 ;; Size of xlat table - null table
1176 ;;
1177CP863_NA_TH_2_END: ;;
1178 ;;
1179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1180;; CODE PAGE: 863
1181;; STATE: Acute INPUT: Space Bar
1182;; KEYBOARD: All
1183;; TABLE TYPE: Translate
1184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1185 ;;
1186 DW CP863_AC_SP_END-$ ;; Length of state section
1187 DB ACUTE_SPACE ;;
1188 DW ANY_KB ;;
1189 DB 0A1H,0 ;; Buffer entry for error character
1190 ;; Set Flag Table
1191 DW CF_104500-$ ;; Size of xlat table
1192 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1193 DB 1 ;; number of scans
1194 DB 57,0A1H ;; acute
1195CF_104500: ;;
1196 ;;
1197 DW 0 ;; Size of xlat table - null table
1198 ;;
1199CP863_AC_SP_END: ;;
1200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1201;; CODE PAGE: 863
1202;; STATE: Acute INPUT: Acute
1203;; KEYBOARD: All
1204;; TABLE TYPE: Translate
1205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1206 ;;
1207 DW CP863_AC_AC_END-$ ;; Length of state section
1208 DB ACUTE_ACUTE ;;
1209 DW ANY_KB ;;
1210 DB 0A1H,0 ;; Buffer entry for error character
1211 ;; Set Flag Table
1212 DW CF_104505-$ ;; Size of xlat table
1213 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1214 DB 1 ;; number of scans
1215 DB 53,0A1H ;; acute
1216CF_104505: ;;
1217 ;;
1218 DW 0 ;; Size of xlat table - null table
1219 ;;
1220CP863_AC_AC_END: ;;
1221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1222;; CODE PAGE: 863
1223;; STATE: Grave Upper Case
1224;; KEYBOARD: All
1225;; TABLE TYPE: Translate
1226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1227 ;;
1228 DW CP863_GR_UP_END-$ ;; Length of state section
1229 DB GRAVE_UPPER ;;
1230 DW ANY_KB ;;
1231 DB -1,-1 ;; Buffer entry for error character
1232 ;; Set Flag Table
1233 DW CF_104700-$ ;; Size of xlat table
1234 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1235 DB 3 ;; number of scans
1236 DB 30,8EH ;; A grave
1237 DB 18,91H ;; E grave
1238 DB 22,9DH ;; U grave
1239CF_104700: ;;
1240 ;;
1241 DW 0 ;; Size of xlat table - null table
1242 ;;
1243CP863_GR_UP_END: ;;
1244 ;;
1245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1246;; CODE PAGE: 863
1247;; STATE: Diaresis Upper Case
1248;; KEYBOARD: All
1249;; TABLE TYPE: Translate
1250;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1251 ;;
1252 DW CP863_DI_UP_END-$ ;; Length of state section
1253 DB DIARESIS_UPPER ;;
1254 DW ANY_KB ;;
1255 DB 0A4H,0 ;; Buffer entry for error character
1256 ;; Set Flag Table
1257 DW CF_104800-$ ;; Size of xlat table
1258 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1259 DB 2 ;; number of scans
1260 DB 18,94H ;; E diaeresis
1261 DB 23,95H ;; I diaeresis
1262CF_104800: ;;
1263 ;;
1264 DW 0 ;; Size of xlat table - null table
1265 ;;
1266CP863_DI_UP_END: ;;
1267 ;;
1268;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1269;; CODE PAGE: 863
1270;; STATE: Diaresis INPUT: Space Bar
1271;; KEYBOARD: All
1272;; TABLE TYPE: Translate
1273;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1274 ;;
1275 DW CP863_DI_SP_END-$ ;; Length of state section
1276 DB DIARESIS_SPACE ;;
1277 DW ANY_KB ;;
1278 DB 0A4H,0 ;; Buffer entry for error character
1279 ;; Set Flag Table
1280 DW CF_104550-$ ;; Size of xlat table
1281 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1282 DB 1 ;; number of scans
1283 DB 57,0A4H ;; diaeresis
1284CF_104550: ;;
1285 ;;
1286 DW 0 ;; Size of xlat table - null table
1287 ;;
1288CP863_DI_SP_END: ;;
1289 ;;
1290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1291;; CODE PAGE: 863
1292;; STATE: Diaresis INPUT: Diaresis
1293;; KEYBOARD: All
1294;; TABLE TYPE: Translate
1295;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1296 ;;
1297 DW CP863_DI_DI_END-$ ;; Length of state section
1298 DB DIARESIS_DIARESIS ;;
1299 DW ANY_KB ;;
1300 DB 0A4H,0 ;; Buffer entry for error character
1301 ;; Set Flag Table
1302 DW CF_104551-$ ;; Size of xlat table
1303 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1304 DB 1 ;; number of scans
1305 DB 27,0A4H ;; diaeresis
1306CF_104551: ;;
1307 ;;
1308 DW 0 ;; Size of xlat table - null table
1309 ;;
1310CP863_DI_DI_END: ;;
1311 ;;
1312;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1313;; CODE PAGE: 863
1314;; STATE: Circumflex Upper Case
1315;; KEYBOARD: All
1316;; TABLE TYPE: Translate
1317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1318 ;;
1319 DW CP863_CI_UP_END-$ ;; Length of state section
1320 DB CIRCUMFLEX_UPPER ;;
1321 DW ANY_KB ;;
1322 DB -1,-1 ;; Buffer entry for error character
1323 ;; Set Flag Table
1324 DW CF_104750-$ ;; Size of xlat table
1325 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1326 DB 5 ;; number of scans
1327 DB 30,84H ;; A circumflex
1328 DB 18,92H ;; E circumflex
1329 DB 23,0A8H ;; I circumflex
1330 DB 24,99H ;; O circumflex
1331 DB 22,9EH ;; U circumflex
1332CF_104750: ;;
1333 ;;
1334 DW 0 ;; Size of xlat table - null table
1335 ;;
1336CP863_CI_UP_END: ;;
1337 ;;
1338;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1339;; CODE PAGE: 863
1340;; STATE: Cedilla INPUT: Space Bar
1341;; KEYBOARD: All
1342;; TABLE TYPE: Translate
1343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1344 ;;
1345 DW CP863_CE_SP_END-$ ;; Length of state section
1346 DB CEDILLA_SPACE ;;
1347 DW ANY_KB ;;
1348 DB 0A5H,0 ;; Buffer entry for error character
1349 ;; Set Flag Table
1350 DW CF_104600-$ ;; Size of xlat table
1351 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1352 DB 1 ;; number of scans
1353 DB 57,0A5H ;; cedilla
1354CF_104600: ;;
1355 ;;
1356 DW 0 ;; Size of xlat table - null table
1357 ;;
1358CP863_CE_SP_END: ;;
1359 ;;
1360;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1361;; CODE PAGE: 863
1362;; STATE: Cedilla INPUT: Cedilla
1363;; KEYBOARD: All
1364;; TABLE TYPE: Translate
1365;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1366 ;;
1367 DW CP863_CE_CE_END-$ ;; Length of state section
1368 DB CEDILLA_CEDILLA ;;
1369 DW ANY_KB ;;
1370 DB 0A5H,0 ;; Buffer entry for error character
1371 ;; Set Flag Table
1372 DW CF_104601-$ ;; Size of xlat table
1373 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1374 DB 1 ;; number of scans
1375 DB 27,0A5H ;; cedilla
1376CF_104601: ;;
1377 ;;
1378 DW 0 ;; Size of xlat table - null table
1379 ;;
1380CP863_CE_CE_END: ;;
1381 ;;
1382 ;;
1383 DW 0 ;; Last State
1384CP863_XLAT_END: ;;
1385;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1386;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1387;;***************************************
1388;; CF 850 Translate Section
1389;; This section contains translations for the UPPER 128 characters
1390;; of Code Page 850.
1391;;***************************************
1392;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1393 ;;
1394 PUBLIC CF_850_XLAT ;;
1395CF_850_XLAT: ;;
1396 ;;
1397 DW CP850_XLAT_END-$ ;; length of 850 Tranlate Section
1398 DW 850 ;; code page id
1399 ;;
1400;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1401;; CODE PAGE: 850
1402;; STATE: Non-alpha Third Case
1403;; KEYBOARD: G_KB, P_KB, P12_KB
1404;; XT_KB, AT_KB
1405;; TABLE TYPE: Translate
1406;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1407 ;;
1408 DW CP850_NA_TH_1_END-$ ;; Length of state section
1409 DB THIRD_SHIFT ;;
1410 DW G_KB+P_KB+P12_KB+XT_KB+AT_KB ;;
1411 DB -1,-1 ;; Buffer entry for error character
1412 ;; Set Flag Table
1413 DW CF_206300-$ ;; Size of xlat table
1414 DB STANDARD_TABLE ;; xlat options:
1415 DB 8 ;; number of scan
1416 DB 5,0BDH ;; cent
1417 DB 6,0CFH ;; international currency symbol
1418 DB 8,0DDH ;; vertical line broken
1419 DB 10,0FCH ;; superscript 3
1420 DB 13,0F3H ;; 3 quarters
1421 DB 24,0F5H ;; section
1422 DB 25,0F4H ;; paragraph
1423 DB 51,0EEH ;; overscore
1424CF_206300: ;;
1425 ;;
1426 DW 0 ;; Size of xlat table - null table
1427 ;;
1428CP850_NA_TH_1_END: ;; Length of state section
1429 ;;
1430;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1431;; CODE PAGE: 850
1432;; STATE: Non-alpha Third Case
1433;; KEYBOARD: JR_KB
1434;; TABLE TYPE: Translate
1435;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1436 ;;
1437 DW CP850_NA_TH_2_END-$ ;; Length of state section
1438 DB THIRD_SHIFT ;;
1439 DW JR_KB ;;
1440 DB -1,-1 ;; Buffer entry for error character
1441 ;; Set Flag Table
1442 DW CF_206600-$ ;; Size of xlat table
1443 DB STANDARD_TABLE ;; xlat options:
1444 DB 8 ;; number of scan
1445 DB 5,0BDH ;; cent
1446 DB 6,0CFH ;; international currency symbol
1447 DB 8,0DDH ;; vertical line broken
1448 DB 12,0FCH ;; superscript 3
1449 DB 18,0F3H ;; 3 quarters
1450 DB 24,0F5H ;; section
1451 DB 25,0F4H ;; paragraph
1452 DB 51,0EEH ;; overscore
1453CF_206600: ;;
1454 ;;
1455 DW 0 ;; Size of xlat table - null table
1456 ;;
1457CP850_NA_TH_2_END: ;;
1458 ;;
1459;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1460;; CODE PAGE: 850
1461;; STATE: Acute Lower Case
1462;; KEYBOARD: All
1463;; TABLE TYPE: Translate
1464;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1465 ;;
1466 DW CP850_AC_LO_END-$ ;; Length of state section
1467 DB ACUTE_LOWER ;;
1468 DW ANY_KB ;;
1469 DB 0EFH,0 ;; Buffer entry for error character
1470 ;; Set Flag Table
1471 DW CF_201100-$ ;; Size of xlat table
1472 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1473 DB 3 ;; number of scans
1474 DB 30,' ' ;;
1475 DB 23,'¡' ;;
1476 DB 21,0ECH ;; y acute
1477CF_201100: ;;
1478 ;;
1479 DW 0 ;; Size of xlat table - null table
1480 ;;
1481CP850_AC_LO_END: ;;
1482 ;;
1483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1484;; CODE PAGE: 850
1485;; STATE: Acute Upper Case
1486;; KEYBOARD: All
1487;; TABLE TYPE: Translate
1488;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1489 ;;
1490 DW CP850_AC_UP_END-$ ;; Length of state section
1491 DB ACUTE_UPPER ;;
1492 DW ANY_KB ;;
1493 DB 0EFH,0 ;; Buffer entry for error character
1494 ;; Set Flag Table
1495 DW CF_203100-$ ;; Size of xlat table
1496 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1497 DB 5 ;; number of scans
1498 DB 30,0B5H ;; A acute
1499 DB 23,0D6H ;; I acute
1500 DB 24,0E0H ;; O acute
1501 DB 22,0E9H ;; U acute
1502 DB 21,0EDH ;; Y acute
1503CF_203100: ;;
1504 ;;
1505 DW 0 ;; Size of xlat table - null table
1506 ;;
1507CP850_AC_UP_END: ;;
1508 ;;
1509;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1510;; CODE PAGE: 850
1511;; STATE: Acute INPUT: Space Bar
1512;; KEYBOARD: All
1513;; TABLE TYPE: Translate
1514;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1515 ;;
1516 DW CP850_AC_SP_END-$ ;; Length of state section
1517 DB ACUTE_SPACE ;;
1518 DW ANY_KB ;;
1519 DB 0EFH,0 ;; Buffer entry for error character
1520 ;; Set Flag Table
1521 DW CF_204500-$ ;; Size of xlat table
1522 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1523 DB 1 ;; number of scans
1524 DB 57,0EFH ;; acute
1525CF_204500: ;;
1526 ;;
1527 DW 0 ;; Size of xlat table - null table
1528 ;;
1529CP850_AC_SP_END: ;;
1530;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1531;; CODE PAGE: 850
1532;; STATE: Acute INPUT: Acute
1533;; KEYBOARD: All
1534;; TABLE TYPE: Translate
1535;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1536 ;;
1537 DW CP850_AC_AC_END-$ ;; Length of state section
1538 DB ACUTE_ACUTE ;;
1539 DW ANY_KB ;;
1540 DB 0EFH,0 ;; Buffer entry for error character
1541 ;; Set Flag Table
1542 DW CF_204501-$ ;; Size of xlat table
1543 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1544 DB 1 ;; number of scans
1545 DB 53,0EFH ;; acute
1546CF_204501: ;;
1547 ;;
1548 DW 0 ;; Size of xlat table - null table
1549 ;;
1550CP850_AC_AC_END: ;;
1551;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1552;; CODE PAGE: 850
1553;; STATE: Grave Lower Case
1554;; KEYBOARD: All
1555;; TABLE TYPE: Translate
1556;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1557 ;;
1558 DW CP850_GR_LO_END-$ ;; Length of state section
1559 DB GRAVE_LOWER ;;
1560 DW ANY_KB ;;
1561 DB -1,-1 ;; Buffer entry for error character
1562 ;; Set Flag Table
1563 DW CF_201200-$ ;; Size of xlat table
1564 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1565 DB 2 ;; number of scans
1566 DB 23,'' ;;
1567 DB 24,'•' ;;
1568CF_201200: ;;
1569 ;;
1570 DW 0 ;; Size of xlat table - null table
1571 ;;
1572CP850_GR_LO_END: ;;
1573 ;;
1574;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1575;; CODE PAGE: 850
1576;; STATE: Grave Upper Case
1577;; KEYBOARD: All
1578;; TABLE TYPE: Translate
1579;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1580 ;;
1581 DW CP850_GR_UP_END-$ ;; Length of state section
1582 DB GRAVE_UPPER ;;
1583 DW ANY_KB ;;
1584 DB -1,-1 ;; Buffer entry for error character
1585 ;; Set Flag Table
1586 DW CF_203200-$ ;; Size of xlat table
1587 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1588 DB 5 ;; number of scans
1589 DB 30,0B7H ;; A grave
1590 DB 18,0D4H ;; E grave
1591 DB 23,0DEH ;; I grave
1592 DB 24,0E3H ;; O grave
1593 DB 22,0EBH ;; U grave
1594CF_203200: ;;
1595 ;;
1596 DW 0 ;; Size of xlat table - null table
1597 ;;
1598CP850_GR_UP_END: ;;
1599 ;;
1600;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1601;; CODE PAGE: 850
1602;; STATE: Diaresis Lower Case
1603;; KEYBOARD: All
1604;; TABLE TYPE: Translate
1605;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1606 ;;
1607 DW CP850_DI_LO_END-$ ;; Length of state section
1608 DB DIARESIS_LOWER ;;
1609 DW ANY_KB ;;
1610 DB 0F9H,0 ;; Buffer entry for error character
1611 ;; Set Flag Table
1612 DW CF_201400-$ ;; Size of xlat table
1613 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1614 DB 3 ;; number of scans
1615 DB 30,'„' ;;
1616 DB 24,'”' ;;
1617 DB 21,'˜' ;;
1618CF_201400: ;;
1619 ;;
1620 DW 0 ;; Size of xlat table - null table
1621 ;;
1622CP850_DI_LO_END: ;;
1623 ;;
1624;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1625;; CODE PAGE: 850
1626;; STATE: Diaresis Upper Case
1627;; KEYBOARD: All
1628;; TABLE TYPE: Translate
1629;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1630 ;;
1631 DW CP850_DI_UP_END-$ ;; Length of state section
1632 DB DIARESIS_UPPER ;;
1633 DW ANY_KB ;;
1634 DB 0F9H,0 ;; Buffer entry for error character
1635 ;; Set Flag Table
1636 DW CF_203400-$ ;; Size of xlat table
1637 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1638 DB 4 ;; number of scans
1639 DB 30,'Ž' ;;
1640 DB 18,0D3H ;; E diaeresis
1641 DB 23,0D8H ;; I diaeresis
1642 DB 24,'™' ;;
1643CF_203400: ;;
1644 ;;
1645 DW 0 ;; Size of xlat table - null table
1646 ;;
1647CP850_DI_UP_END: ;;
1648 ;;
1649;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1650;; CODE PAGE: 850
1651;; STATE: Diaresis INPUT: Space Bar
1652;; KEYBOARD: All
1653;; TABLE TYPE: Translate
1654;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1655 ;;
1656 DW CP850_DI_SP_END-$ ;; Length of state section
1657 DB DIARESIS_SPACE ;;
1658 DW ANY_KB ;;
1659 DB 0F9H,0 ;; Buffer entry for error character
1660 ;; Set Flag Table
1661 DW CF_204550-$ ;; Size of xlat table
1662 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1663 DB 1 ;; number of scans
1664 DB 57,0F9H ;; diaeresis
1665CF_204550: ;;
1666 ;;
1667 DW 0 ;; Size of xlat table - null table
1668 ;;
1669CP850_DI_SP_END: ;;
1670 ;;
1671;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1672;; CODE PAGE: 850
1673;; STATE: Diaresis INPUT: Diaresis
1674;; KEYBOARD: All
1675;; TABLE TYPE: Translate
1676;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1677 ;;
1678 DW CP850_DI_DI_END-$ ;; Length of state section
1679 DB DIARESIS_DIARESIS ;;
1680 DW ANY_KB ;;
1681 DB 0F9H,0 ;; Buffer entry for error character
1682 ;; Set Flag Table
1683 DW CF_204551-$ ;; Size of xlat table
1684 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1685 DB 1 ;; number of scans
1686 DB 27,0F9H ;; diaeresis
1687CF_204551: ;;
1688 ;;
1689 DW 0 ;; Size of xlat table - null table
1690 ;;
1691CP850_DI_DI_END: ;;
1692 ;;
1693;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1694;; CODE PAGE: 850
1695;; STATE: Circumflex Upper Case
1696;; KEYBOARD: All
1697;; TABLE TYPE: Translate
1698;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1699 ;;
1700 DW CP850_CI_UP_END-$ ;; Length of state section
1701 DB CIRCUMFLEX_UPPER ;;
1702 DW ANY_KB ;;
1703 DB -1,-1 ;; Buffer entry for error character
1704 ;; Set Flag Table
1705 DW CF_003305-$ ;; Size of xlat table
1706 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1707 DB 5 ;; number of scans
1708 DB 30,0B6H ;; A circumflex
1709 DB 18,0D2H ;; E circumflex
1710 DB 23,0D7H ;; I circumflex
1711 DB 24,0E2H ;; O circumflex
1712 DB 22,0EAH ;; U circumflex
1713CF_003305: ;;
1714 ;;
1715 DW 0 ;; Size of xlat table - null table
1716 ;;
1717CP850_CI_UP_END: ;;
1718 ;;
1719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1720;; CODE PAGE: 850
1721;; STATE: Cedilla INPUT: Space Bar
1722;; KEYBOARD: All
1723;; TABLE TYPE: Translate
1724;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1725 ;;
1726 DW CP850_CE_SP_END-$ ;; Length of state section
1727 DB CEDILLA_SPACE ;;
1728 DW ANY_KB ;;
1729 DB 0F7H,0 ;; Buffer entry for error character
1730 ;; Set Flag Table
1731 DW CF_204600-$ ;; Size of xlat table
1732 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1733 DB 1 ;; number of scans
1734 DB 57,0F7H ;; cedilla
1735CF_204600: ;;
1736 ;;
1737 DW 0 ;; Size of xlat table - null table
1738 ;;
1739CP850_CE_SP_END: ;;
1740 ;;
1741;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1742;; CODE PAGE: 850
1743;; STATE: Cedilla INPUT: Cedilla
1744;; KEYBOARD: All
1745;; TABLE TYPE: Translate
1746;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1747 ;;
1748 DW CP850_CE_CE_END-$ ;; Length of state section
1749 DB CEDILLA_CEDILLA ;;
1750 DW ANY_KB ;;
1751 DB 0F7H,0 ;; Buffer entry for error character
1752 ;; Set Flag Table
1753 DW CF_204601-$ ;; Size of xlat table
1754 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1755 DB 1 ;; number of scans
1756 DB 27,0F7H ;; cedilla
1757CF_204601: ;;
1758 ;;
1759 DW 0 ;; Size of xlat table - null table
1760 ;;
1761CP850_CE_CE_END: ;;
1762 ;;
1763;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1764 DW 0 ;; no more states
1765 ;;
1766CP850_XLAT_END: ;;
1767
1768CODE ENDS
1769 END
diff --git a/v4.0/src/DEV/KEYBOARD/KDFDK.ASM b/v4.0/src/DEV/KEYBOARD/KDFDK.ASM
new file mode 100644
index 0000000..4ae463a
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFDK.ASM
@@ -0,0 +1,1631 @@
1 PAGE ,132
2 TITLE DOS - Keyboard Definition File
3
4;; LATEST CHANGE P12 NUMERIC
5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6;; DOS - - NLS Support - Keyboard Definition File
7;; (c) Copyright 1988 Microsoft
8;;
9;; This file contains the keyboard tables for Danish
10;;
11;; Linkage Instructions:
12;; Refer to KDF.ASM.
13;;
14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
15 ;;
16 INCLUDE KEYBSHAR.INC ;;
17 INCLUDE POSTEQU.INC ;;
18 INCLUDE KEYBMAC.INC ;;
19 ;;
20 PUBLIC DK_LOGIC ;;
21 PUBLIC DK_865_XLAT ;;
22 PUBLIC DK_850_XLAT ;;
23 ;;
24CODE SEGMENT PUBLIC 'CODE' ;;
25 ASSUME CS:CODE,DS:CODE ;;
26 ;;
27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
28;; Standard translate table options are a linear search table
29;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
31 ;;
32STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
33 ;;
34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
35;;***************************************
36;; DK State Logic
37;;***************************************
38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
39 ;;
40 ;;
41DK_LOGIC:
42
43 DW LOGIC_END-$ ;; length
44 ;;
45 DW 0 ;; special features
46 ;;
47 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
48 ;;
49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
50;; OPTIONS: If we find a scan match in
51;; an XLATT or SET_FLAG operation then
52;; exit from INT 9.
53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
54 ;;
55 OPTION EXIT_IF_FOUND ;;
56 ;;
57 ;;
58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
59;; Dead key definitions must come before
60;; dead key translations to handle
61;; dead key + dead key.
62;; ***BD - THIS SECTION HAS BEEN UPDATED
63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
64 ;;
65 IFF EITHER_CTL,NOT ;;
66 IFF EITHER_ALT,NOT ;;
67 IFF EITHER_SHIFT ;;
68 SET_FLAG DEAD_UPPER ;;
69 ELSEF ;;
70 SET_FLAG DEAD_LOWER ;;
71 ENDIFF ;;
72 ELSEF ;;
73 IFKBD G_KB+P12_KB ;; For ENHANCED keyboard some
74 ANDF R_ALT_SHIFT ;; dead keys are on third shift
75 ANDF EITHER_SHIFT,NOT ;; which is accessed via the altgr key
76 SET_FLAG DEAD_THIRD ;;
77 ENDIFF ;;
78 ENDIFF ;;
79 ENDIFF ;;
80 ;;
81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
82;; ACUTE ACCENT TRANSLATIONS
83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
84 ;;
85ACUTE_PROC: ;;
86 ;;
87 IFF ACUTE,NOT ;;
88 GOTO DIARESIS_PROC ;;
89 ENDIFF ;;
90 ;;
91 RESET_NLS ;;
92 IFF R_ALT_SHIFT,NOT ;;
93 XLATT ACUTE_SPACE ;;
94 ENDIFF ;;
95 IFF EITHER_CTL,NOT ;;
96 ANDF EITHER_ALT,NOT ;;
97 IFF EITHER_SHIFT ;;
98 IFF CAPS_STATE ;;
99 XLATT ACUTE_LOWER ;;
100 ELSEF ;;
101 XLATT ACUTE_UPPER ;;
102 ENDIFF ;;
103 ELSEF ;;
104 IFF CAPS_STATE ;;
105 XLATT ACUTE_UPPER ;;
106 ELSEF ;;
107 XLATT ACUTE_LOWER ;;
108 ENDIFF ;;
109 ENDIFF ;;
110 ENDIFF ;;
111 ;;
112INVALID_ACUTE: ;;
113 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
114 BEEP ;; failed or we are ina bad shift state.
115 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
116 ;; through to generate the second char.
117 ;; Note that the dead key flag will be
118 ;; reset before we get here.
119 ;;
120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
121;; DIARESIS ACCENT TRANSLATIONS
122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
123 ;;
124DIARESIS_PROC: ;;
125 ;;
126 IFF DIARESIS,NOT ;;
127 GOTO GRAVE_PROC ;;
128 ENDIFF ;;
129 ;;
130 RESET_NLS ;;
131 IFF R_ALT_SHIFT,NOT ;;
132 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
133 ENDIFF ;;
134 IFF EITHER_CTL,NOT ;;
135 ANDF EITHER_ALT,NOT ;;
136 IFF EITHER_SHIFT ;;
137 IFF CAPS_STATE ;;
138 XLATT DIARESIS_LOWER ;;
139 ELSEF ;;
140 XLATT DIARESIS_UPPER ;;
141 ENDIFF ;;
142 ELSEF ;;
143 IFF CAPS_STATE ;;
144 XLATT DIARESIS_UPPER ;;
145 ELSEF ;;
146 XLATT DIARESIS_LOWER ;;
147 ENDIFF ;;
148 ENDIFF ;;
149 ENDIFF ;;
150 ;;
151INVALID_DIARESIS: ;;
152 PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent
153 BEEP ;; Invalid dead key combo.
154 GOTO NON_DEAD ;;
155 ;;
156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
157;; GRAVE ACCENT TRANSLATIONS
158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
159 ;;
160GRAVE_PROC: ;;
161 ;;
162 IFF GRAVE,NOT ;;
163 GOTO TILDE_PROC ;;
164 ENDIFF ;;
165 ;;
166 RESET_NLS ;;
167 IFF R_ALT_SHIFT,NOT ;;
168 XLATT GRAVE_SPACE ;;
169 ENDIFF ;;
170 IFF EITHER_CTL,NOT ;;
171 ANDF EITHER_ALT,NOT ;;
172 IFF EITHER_SHIFT ;;
173 IFF CAPS_STATE ;;
174 XLATT GRAVE_LOWER ;;
175 ELSEF ;;
176 XLATT GRAVE_UPPER ;;
177 ENDIFF ;;
178 ELSEF ;;
179 IFF CAPS_STATE,NOT ;;
180 XLATT GRAVE_LOWER ;;
181 ELSEF ;;
182 XLATT GRAVE_UPPER ;;
183 ENDIFF ;;
184 ENDIFF ;;
185 ENDIFF ;;
186 ;;
187INVALID_GRAVE: ;;
188 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
189 BEEP ;; Invalid dead key combo.
190 GOTO NON_DEAD ;;
191 ;;
192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
193;; TILDE ACCENT TRANSLATIONS
194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
195TILDE_PROC: ;;
196 ;;
197 IFF TILDE,NOT ;;
198 GOTO CIRCUMFLEX_PROC ;;
199 ENDIFF ;;
200 ;;
201 RESET_NLS ;;
202 IFF R_ALT_SHIFT,NOT ;;
203 XLATT TILDE_SPACE ;;
204 ENDIFF ;;
205 IFF EITHER_CTL,NOT ;;
206 ANDF EITHER_ALT,NOT ;;
207 IFF EITHER_SHIFT ;;
208 IFF CAPS_STATE ;;
209 XLATT TILDE_LOWER ;;
210 ELSEF ;;
211 XLATT TILDE_UPPER ;;
212 ENDIFF ;;
213 ELSEF ;;
214 IFF CAPS_STATE ;;
215 XLATT TILDE_UPPER ;;
216 ELSEF ;;
217 XLATT TILDE_LOWER ;;
218 ENDIFF ;;
219 ENDIFF ;;
220 ENDIFF ;;
221 ;;
222INVALID_TILDE: ;;
223 PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent
224 BEEP ;; Invalid dead key combo.
225 GOTO NON_DEAD ;;
226 ;;
227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
228;; CIRCUMFLEX ACCENT TRANSLATIONS
229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
230 ;;
231CIRCUMFLEX_PROC: ;;
232 ;;
233 IFF CIRCUMFLEX,NOT ;;
234 GOTO NON_DEAD ;;
235 ENDIFF ;;
236 ;;
237 RESET_NLS ;;
238 IFF R_ALT_SHIFT,NOT ;;
239 XLATT CIRCUMFLEX_SPACE ;;
240 ENDIFF ;;
241 IFF EITHER_CTL,NOT ;;
242 ANDF EITHER_ALT,NOT ;;
243 IFF EITHER_SHIFT ;;
244 IFF CAPS_STATE ;;
245 XLATT CIRCUMFLEX_LOWER ;;
246 ELSEF ;;
247 XLATT CIRCUMFLEX_UPPER ;;
248 ENDIFF ;;
249 ELSEF ;;
250 IFF CAPS_STATE,NOT ;;
251 XLATT CIRCUMFLEX_LOWER ;;
252 ELSEF ;;
253 XLATT CIRCUMFLEX_UPPER ;;
254 ENDIFF ;;
255 ENDIFF ;;
256 ENDIFF ;;
257 ;;
258INVALID_CIRCUMFLEX: ;;
259 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
260 BEEP ;; Invalid dead key combo.
261 GOTO NON_DEAD ;;
262 ;;
263;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
264;; Upper, lower and third shifts
265;; ***BD - NON_DEAD THRU LOGIC_END IS UPDATED
266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
267NON_DEAD: ;;
268 ;;
269 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
270 ANDF LC_E0 ;; the "/" on the numeric pad of the
271 EXIT_STATE_LOGIC ;; G keyboard
272 ENDIFF ;;
273 ;;
274 IFF EITHER_CTL,NOT ;; Lower and upper case. Alphabetic
275 IFF EITHER_ALT,NOT ;; keys are affected by CAPS LOCK.
276 IFF EITHER_SHIFT ;; Numeric keys are not.
277;;***BD ADDED FOR NUMERIC PAD
278 IFF NUM_STATE,NOT ;;
279 XLATT NUMERIC_PAD ;;
280 ENDIFF ;;
281;;***BD END OF ADDITION
282 XLATT NON_ALPHA_UPPER ;;
283 IFF CAPS_STATE ;;
284 XLATT ALPHA_LOWER ;;
285 ELSEF ;;
286 XLATT ALPHA_UPPER ;;
287 ENDIFF ;;
288 ELSEF ;;
289;;***BD ADDED FOR NUMERIC PAD
290 IFF NUM_STATE ;;
291 XLATT NUMERIC_PAD ;;
292 ENDIFF ;;
293;;***BD END OF ADDITION
294 XLATT NON_ALPHA_LOWER ;;
295 IFF CAPS_STATE ;;
296 XLATT ALPHA_UPPER ;;
297 ELSEF ;;
298 XLATT ALPHA_LOWER ;;
299 ENDIFF ;;
300 ENDIFF ;; Third and Fourth shifts
301 ELSEF ;; ctl off, alt on at this point
302 IFKBD XT_KB+AT_KB ;; XT, AT, keyboards. Nordics
303 IFF EITHER_SHIFT ;; only.
304 XLATT FOURTH_SHIFT ;; ALT + shift
305 ELSEF ;;
306 XLATT THIRD_SHIFT ;; ALT
307 ENDIFF ;;
308 ELSEF ;; ENHANCED keyboard
309 IFF R_ALT_SHIFT ;; ALTGr
310 ANDF EITHER_SHIFT,NOT ;;
311 XLATT THIRD_SHIFT ;;
312 ENDIFF ;;
313 ENDIFF ;;
314 ENDIFF ;;
315 ENDIFF ;;
316;**************************************;;
317 IFF EITHER_SHIFT,NOT ;;
318 IFKBD XT_KB+AT_KB ;;
319 IFF EITHER_CTL ;;
320 ANDF ALT_SHIFT ;;
321 XLATT ALT_CASE ;;
322 ENDIFF ;;
323 ENDIFF ;;
324 IFKBD G_KB+P12_KB ;;
325 IFF EITHER_CTL ;;
326 ANDF ALT_SHIFT ;;
327 IFF R_ALT_SHIFT,NOT ;;
328 XLATT ALT_CASE ;;
329 ENDIFF ;;
330 ENDIFF ;;
331 ENDIFF ;;
332 ENDIFF ;;
333;**************************************;;
334 IFKBD AT_KB+XT_KB ;;
335 IFF EITHER_CTL,NOT ;;
336 IFF ALT_SHIFT ;; ALT - case
337 XLATT ALT_CASE ;;
338 ENDIFF ;;
339 ELSEF ;;
340 IFF EITHER_ALT,NOT ;; CTRL - case
341 XLATT CTRL_CASE ;;
342 ENDIFF ;;
343 ENDIFF ;;
344 ENDIFF ;;
345 ;;
346 IFKBD G_KB+P12_KB ;;
347 IFF EITHER_CTL,NOT ;;
348 IFF ALT_SHIFT ;; ALT - case
349 ANDF R_ALT_SHIFT,NOT ;;
350 XLATT ALT_CASE ;;
351 ENDIFF ;;
352 ELSEF ;;
353 IFF EITHER_ALT,NOT ;; CTRL - case
354 XLATT CTRL_CASE ;;
355 ENDIFF ;;
356 ENDIFF ;;
357 ENDIFF ;;
358 ;;
359 EXIT_STATE_LOGIC ;;
360 ;;
361LOGIC_END: ;;
362 ;;
363;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
364;;**********************************************************************
365;; DK Common Translate Section
366;; This section contains translations for the lower 128 characters
367;; only since these will never change from code page to code page.
368;; Some common Characters are included from 128 - 165 where appropriate.
369;; In addition the dead key "Set Flag" tables are here since the
370;; dead keys are on the same keytops for all code pages.
371;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
372 ;;
373 PUBLIC DK_COMMON_XLAT ;;
374DK_COMMON_XLAT: ;;
375 ;;
376 DW COMMON_XLAT_END-$ ;; length of section
377 DW -1 ;; code page
378 ;;
379 ;;
380;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
381;; CODE PAGE: Common
382;; STATE: Lower Shift Dead Key
383;; KEYBOARD TYPES: All
384;; TABLE TYPE: Flag Table
385;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
386 ;;
387 DW COM_DK_LO_END-$ ;; length of state section
388 DB DEAD_LOWER ;; State ID
389 DW ANY_KB ;; Keyboard Type
390 DB -1,-1 ;; Buffer entry for error character
391 ;; Set Flag Table
392 DW 2 ;; number of entries
393 DB 13 ;; scan code
394 FLAG ACUTE ;; flag bit to set
395 DB 27 ;;
396 FLAG DIARESIS ;;
397 ;;
398 ;;
399COM_DK_LO_END: ;;
400 ;;
401;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
402;; CODE PAGE: Common
403;; STATE: Upper Shift Dead Key
404;; KEYBOARD TYPES: All
405;; TABLE TYPE: Flag Table
406;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
407 ;;
408 DW COM_DK_UP_END-$ ;; length of state section
409 DB DEAD_UPPER ;; State ID
410 DW ANY_KB ;; Keyboard Type
411 DB -1,-1 ;; Buffer entry for error character
412 ;; Set Flag Table
413 DW 2 ;; number of entries
414 DB 13 ;; scan code
415 FLAG GRAVE ;; flag bit to set
416 DB 27 ;;
417 FLAG CIRCUMFLEX ;;
418 ;;
419COM_DK_UP_END: ;;
420 ;;
421;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
422;; CODE PAGE: Common
423;; STATE: Third Shift Dead Key
424;; KEYBOARD TYPES: G, P12
425;; TABLE TYPE: Flag Table
426;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
427 ;;
428 DW COM_DK_TH_END-$ ;; length of state section
429 DB DEAD_THIRD ;; State ID
430 DW G_KB+P12_KB ;; Keyboard Type
431 DB -1,-1 ;; Buffer entry for error character
432 ;; Set Flag Table
433 DW 1 ;; number of entries
434 DB 27 ;; scan code
435 FLAG TILDE ;; flag bit to set
436 ;;
437COM_DK_TH_END: ;;
438 ;;
439 ;;
440 ;;
441;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
442;;******************************
443;;***BD - ADDED FOR NUMERIC PAD (DECIMAL SEPERATOR)
444;;******************************
445;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
446;; CODE PAGE: Common ;;change **********CNS **************
447;; STATE: Numeric Key Pad
448;; KEYBOARD TYPES: All except the p12
449;; TABLE TYPE: Translate
450;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
451 ;;
452 DW COM_PAD_K1_END-$ ;; length of state section
453 DB NUMERIC_PAD ;; State ID
454 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
455 DB -1,-1 ;; Buffer entry for error character
456 ;;
457 DW COM_PAD_K1_T1_END-$ ;; Size of xlat table
458 DB STANDARD_TABLE ;; xlat options:
459 DB 1 ;; number of entries
460 DB 83,',' ;; decimal seperator = ,
461COM_PAD_K1_T1_END: ;;
462 ;;
463 DW 0 ;; Size of xlat table - null table
464 ;;
465COM_PAD_K1_END: ;;
466 ;;
467;;******************************
468;;***BD - ADDED FOR ALT CASE
469;;******************************
470;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
471;; CODE PAGE: Common
472;; STATE: Alt Case
473;; KEYBOARD TYPES: G, P12
474;; TABLE TYPE: Translate
475;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
476 ;;
477 DW COM_ALT_K1_END-$ ;; length of state section
478 DB ALT_CASE ;; State ID
479 DW G_KB+P12_KB ;; Keyboard Type
480 DB -1,-1 ;; Buffer entry for error character
481 ;;
482 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
483 DB TYPE_2_TAB ;; xlat options:
484 DB 0 ;; 2 number of entries
485; DB 12,-1,-1 ;;
486; DB 53,0,082H ;;
487COM_ALT_K1_T1_END: ;;
488 ;;
489 DW 0 ;; Size of xlat table - null table
490 ;;
491COM_ALT_K1_END: ;;
492 ;;
493;;******************************
494;;***BD - ADDED FOR CTRL CASE
495;;******************************
496;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
497;; CODE PAGE: Common
498;; STATE: Ctrl Case
499;; KEYBOARD TYPES: XT, , AT
500;; TABLE TYPE: Translate
501;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
502 ;;
503 DW COM_CTRL_K1_END-$ ;; length of state section
504 DB CTRL_CASE ;; State ID
505 DW XT_KB+AT_KB ;; Keyboard Type
506 DB -1,-1 ;; Buffer entry for error character
507 ;;
508 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
509 DB TYPE_2_TAB ;; xlat options:
510 DB 2 ;; number of entries
511 DB 12,-1,-1 ;;
512 DB 53,01FH,35h ;;
513COM_CTRL_K1_T1_END: ;;
514 ;;
515 DW 0 ;; Size of xlat table - null table
516 ;;
517COM_CTRL_K1_END: ;;
518 ;;
519;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
520;; CODE PAGE: Common
521;; STATE: Ctrl Case
522;; KEYBOARD TYPES: G, P12
523;; TABLE TYPE: Translate
524;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
525 ;;
526 DW COM_CTRL_K2_END-$ ;; length of state section
527 DB CTRL_CASE ;; State ID
528 DW G_KB+P12_KB ;; Keyboard Type
529 DB -1,-1 ;; Buffer entry for error character
530 ;;
531 DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table
532 DB TYPE_2_TAB ;; xlat options:
533 DB 8 ;; number of entries
534 DB 9,01BH,09H ;;
535 DB 10,01DH,0AH ;;
536 DB 12,-1,-1 ;;
537 DB 26,-1,-1 ;;
538 DB 27,-1,-1 ;;
539 DB 43,-1,-1 ;;
540 DB 53,01FH,35H ;;
541 DB 86,01CH,56H ;;
542COM_CTRL_K2_T1_END: ;;
543 ;;
544 DW 0 ;; Size of xlat table - null table
545 ;;
546COM_CTRL_K2_END: ;;
547 ;;
548;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
549;; CODE PAGE: Common
550;; STATE: Alpha Lower Case
551;; KEYBOARD TYPES: All
552;; TABLE TYPE: Translate
553;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
554 ;;
555 DW COM_AL_LO_END-$ ;; length of state section
556 DB ALPHA_LOWER ;; State ID
557 DW ANY_KB ;; Keyboard Type
558 DB -1,-1 ;; Buffer entry for error character
559 ;;
560 DW COM_AL_LO_T1_END-$ ;; Size of xlat table
561 DB STANDARD_TABLE ;; xlat options:
562 DB 3 ;; number of entries
563 DB 26,086H ;; a-overcircle
564 DB 39,091H ;; ae-dipthong
565 DB 40,09BH ;; o-slash
566COM_AL_LO_T1_END: ;;
567 ;;
568 DW 0 ;; Size of xlat table - null table
569 ;;
570COM_AL_LO_END: ;;
571 ;;
572;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
573;; CODE PAGE: Common
574;; STATE: Alpha Upper Case
575;; KEYBOARD TYPES: All
576;; TABLE TYPE: Translate
577;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
578 ;;
579 DW COM_AL_UP_END-$ ;; length of state section
580 DB ALPHA_UPPER ;; State ID
581 DW ANY_KB ;; Keyboard Type
582 DB -1,-1 ;; Buffer entry for error character
583 ;;
584 DW COM_AL_UP_T1_END-$ ;; Size of xlat table
585 DB STANDARD_TABLE ;; xlat options:
586 DB 3 ;; number of entries
587 DB 26,08FH ;; A-OVERCIRCLE
588 DB 39,092H ;; AE-DIPTHONG
589 DB 40,09DH ;; O-SLASH
590COM_AL_UP_T1_END: ;;
591 ;;
592 DW 0 ;; Size of xlat table - null table
593 ;;
594COM_AL_UP_END: ;;
595 ;;
596 ;;
597;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
598;; CODE PAGE: Common
599;; STATE: Non-Alpha Lower Case
600;; KEYBOARD TYPES: G + P12
601;; TABLE TYPE: Translate
602;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
603 ;;
604 DW COM_NA_LO_K1_END-$ ;; length of state section
605 DB NON_ALPHA_LOWER ;; State ID
606 DW G_KB+P12_KB ;; Keyboard Type
607 DB -1,-1 ;; Buffer entry for error character
608 ;;
609 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
610 DB STANDARD_TABLE ;; xlat options:
611 DB 5 ;; number of entries
612 DB 41,0ABH ;; «
613 DB 12,"+" ;; + INCLUDED FOR SIMPLIC.
614 DB 43,"'" ;; '
615 DB 86,"<" ;; <
616 DB 53,"-" ;; -
617COM_NA_LO_K1_T1_END: ;;
618 ;;
619 DW 0 ;; Size of xlat table - null table
620 ;;
621COM_NA_LO_K1_END: ;;
622 ;;
623;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
624;; CODE PAGE: Common
625;; STATE: Non-Alpha Lower Case
626;; KEYBOARD TYPES: XT +
627;; TABLE TYPE: Translate
628;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
629 ;;
630 DW COM_NA_LO_K2_END-$ ;; length of state section
631 DB NON_ALPHA_LOWER ;; State ID
632 DW XT_KB ;; Keyboard Type
633 DB -1,-1 ;; Buffer entry for error character
634 ;;
635 DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table
636 DB STANDARD_TABLE ;; xlat options:
637 DB 4 ;; number of entries
638 DB 41,"'" ;; '
639 DB 12,"+" ;; +
640 DB 43,"<" ;; <
641 DB 53,"-" ;; -
642COM_NA_LO_K2_T1_END: ;;
643 ;;
644 DW 0 ;; Size of xlat table - null table
645 ;;
646COM_NA_LO_K2_END: ;;
647 ;;
648;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
649;; CODE PAGE: Common
650;; STATE: Non-Alpha Lower Case
651;; KEYBOARD TYPES: AT
652;; TABLE TYPE: Translate
653;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
654 ;;
655 DW COM_NA_LO_K3_END-$ ;; length of state section
656 DB NON_ALPHA_LOWER ;; State ID
657 DW AT_KB ;; Keyboard Type
658 DB -1,-1 ;; Buffer entry for error character
659 ;;
660 DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table
661 DB STANDARD_TABLE ;; xlat options:
662 DB 4 ;; number of entries
663 DB 12,"+" ;; +
664 DB 41,"<" ;; <
665 DB 43,"'" ;; '
666 DB 53,"-" ;; -
667COM_NA_LO_K3_T1_END: ;;
668 ;;
669 DW 0 ;; Size of xlat table - null table
670 ;;
671COM_NA_LO_K3_END: ;;
672 ;;
673;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
674;; CODE PAGE: Common
675;; STATE: Non-Alpha Upper Case
676;; KEYBOARD TYPES: G + P12
677;; TABLE TYPE: Translate
678;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
679 ;;
680 DW COM_NA_UP_K1_END-$ ;; length of state section
681 DB NON_ALPHA_UPPER ;; State ID
682 DW G_KB+P12_KB ;; Keyboard Type
683 DB -1,-1 ;; Buffer entry for error character
684 ;;
685 DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table
686 DB STANDARD_TABLE ;; xlat options:
687 DB 12 ;; number of entries
688 DB 3,'"' ;;
689 DB 7,'&' ;;
690 DB 8,'/' ;;
691 DB 9,'(' ;;
692 DB 10,')' ;;
693 DB 11,'=' ;;
694 DB 12,'?' ;;
695 DB 51,';' ;;
696 DB 52,':' ;;
697 DB 53,'_' ;;
698 DB 43,'*' ;;
699 DB 86,'>' ;;
700COM_NA_UP_K1_T1_END: ;;
701 ;;
702 DW 0 ;; Size of xlat table - null table
703 ;;
704COM_NA_UP_K1_END: ;;
705 ;;
706 ;;
707;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
708;; CODE PAGE: Common
709;; STATE: Non-Alpha Upper Case
710;; KEYBOARD TYPES: XT +
711;; TABLE TYPE: Translate
712;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
713 ;;
714 DW COM_NA_UP_K2_END-$ ;; length of state section
715 DB NON_ALPHA_UPPER ;; State ID
716 DW XT_KB ;; Keyboard Type
717 DB -1,-1 ;; Buffer entry for error character
718 ;;
719 DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table
720 DB STANDARD_TABLE ;; xlat options:
721 DB 12 ;; number of entries
722 DB 3,'"' ;;
723 DB 7,'&' ;;
724 DB 8,'/' ;;
725 DB 9,'(' ;;
726 DB 10,')' ;;
727 DB 11,'=' ;;
728 DB 12,'?' ;;
729 DB 51,';' ;;
730 DB 52,':' ;;
731 DB 53,'_' ;;
732 DB 41,'*' ;;
733 DB 43,'>' ;;
734COM_NA_UP_K2_T1_END: ;;
735 ;;
736 DW 0 ;; Size of xlat table - null table
737 ;;
738COM_NA_UP_K2_END: ;;
739 ;;
740 ;;
741;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
742;; CODE PAGE: Common
743;; STATE: Non-Alpha Upper Case
744;; KEYBOARD TYPES: AT
745;; TABLE TYPE: Translate
746;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
747 ;;
748 DW COM_NA_UP_K3_END-$ ;; length of state section
749 DB NON_ALPHA_UPPER ;; State ID
750 DW AT_KB ;; Keyboard Type
751 DB -1,-1 ;; Buffer entry for error character
752 ;;
753 DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table
754 DB STANDARD_TABLE ;; xlat options:
755 DB 12 ;; number of entries
756 DB 3,'"' ;;
757 DB 7,'&' ;;
758 DB 8,'/' ;;
759 DB 9,'(' ;;
760 DB 10,')' ;;
761 DB 11,'=' ;;
762 DB 12,'?' ;;
763 DB 51,';' ;;
764 DB 52,':' ;;
765 DB 53,'_' ;;
766 DB 41,'>' ;;
767 DB 43,'*' ;;
768COM_NA_UP_K3_T1_END: ;;
769 ;;
770 DW 0 ;; Size of xlat table - null table
771 ;;
772COM_NA_UP_K3_END: ;;
773 ;;
774 ;;
775;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
776;; CODE PAGE: Common
777;; STATE: Third Shift
778;; KEYBOARD TYPES: G, P12
779;; TABLE TYPE: Translate
780;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
781 ;;
782 DW COM_THIRD_END-$ ;; length of state section
783 DB THIRD_SHIFT ;; State ID
784 DW G_KB+P12_KB ;; Keyboard Type FERRARI
785 DB -1,-1 ;; Buffer entry for error character
786 ;;
787 DW COM_THIRD_T1_END-$ ;; Size of xlat table
788 DB STANDARD_TABLE ;; xlat options:
789 DB 9 ;; number of entries
790 DB 3,'@' ;;
791 DB 4,09CH ;; œ
792 DB 5,'$' ;;
793 DB 8,'{' ;;
794 DB 9,'[' ;;
795 DB 10,']' ;;
796 DB 11,'}' ;;
797 DB 13,'|' ;; Broken Vertical Line
798 DB 86,'\' ;;
799COM_THIRD_T1_END: ;;
800 ;;
801 DW 0 ;; Last xlat table
802COM_THIRD_END: ;;
803 ;;
804;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
805;; CODE PAGE: Common
806;; STATE: Third Shift (ALTERNATE)
807;; KEYBOARD TYPES: XT,
808;; TABLE TYPE: Translate
809;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
810 ;;
811 DW COM_THIRD_K1_END-$ ;; length of state section
812 DB THIRD_SHIFT ;; State ID
813 DW XT_KB ;; Keyboard Type
814 DB -1,-1 ;; Buffer entry for error character
815 ;;
816 DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table
817 DB TYPE_2_TAB ;; xlat options:
818 DB 9 ;; number of entries
819 DB 12,'-','-' ;;
820 DB 13,'=','=' ;;
821 DB 26,'[','[' ;;
822 DB 27,']',']' ;;
823 DB 39,';',';' ;;
824 DB 40,027H,027H ;;
825 DB 41,060H,060H ;;
826 DB 43,'\','\' ;;
827 DB 53,'/','/' ;;
828COM_THIRD_K1_T1_END: ;;
829 ;;
830 DW 0 ;; Last xlat table
831COM_THIRD_K1_END: ;;
832 ;;
833;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
834;; CODE PAGE: Common
835;; STATE: Third Shift (ALTERNATE)
836;; KEYBOARD TYPES: AT
837;; TABLE TYPE: Translate
838;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
839 ;;
840 DW COM_THIRD_K2_END-$ ;; length of state section
841 DB THIRD_SHIFT ;; State ID
842 DW AT_KB ;; Keyboard Type
843 DB -1,-1 ;; Buffer entry for error character
844 ;;
845 DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table
846 DB TYPE_2_TAB ;; xlat options:
847 DB 9 ;; number of entries
848 DB 12,'-','-' ;;
849 DB 13,'=','=' ;;
850 DB 26,'[','[' ;;
851 DB 27,']',']' ;;
852 DB 39,';',';' ;;
853 DB 40,027H,027H ;;
854 DB 41,'\','\' ;;
855 DB 43,060H,060H ;;
856 DB 53,'/','/' ;;
857COM_THIRD_K2_T1_END: ;;
858 ;;
859 DW 0 ;; Last xlat table
860COM_THIRD_K2_END: ;;
861 ;;
862;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
863;; CODE PAGE: Common
864;; STATE: Fourth Shift (ALTERNATE+SHIFT)
865;; KEYBOARD TYPES: XT,
866;; TABLE TYPE: Translate
867;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
868 ;;
869 DW COM_FOURTH_END-$ ;; length of state section
870 DB FOURTH_SHIFT ;; State ID
871 DW XT_KB ;; Keyboard Type
872 DB -1,-1 ;; Buffer entry for error character
873 ;;
874 DW COM_FOURTH_T1_END-$ ;; Size of xlat table
875 DB TYPE_2_TAB ;; xlat options:
876 DB 18 ;; number of entries
877 DB 3,'@','@' ;;
878 DB 5,'$','$' ;;
879 DB 7,'^','^' ;;
880 DB 8,'&','&' ;;
881 DB 9,'*','*' ;;
882 DB 10,'(','(' ;;
883 DB 11,')',')' ;;
884 DB 12,'_','_' ;;
885 DB 13,'+','+' ;;
886 DB 26,'{','{' ;;
887 DB 27,'}','}' ;;
888 DB 39,':',':' ;;
889 DB 40,'"','"' ;;
890 DB 41,'~','~' ;;
891 DB 43,'|','|' ;;
892 DB 51,'<','<' ;;
893 DB 52,'>','>' ;;
894 DB 53,'?','?' ;;
895COM_FOURTH_T1_END: ;;
896 ;;
897 DW 0 ;; Last xlat table
898COM_FOURTH_END: ;;
899 ;;
900;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
901;; CODE PAGE: Common
902;; STATE: Fourth Shift (ALTERNATE+SHIFT)
903;; KEYBOARD TYPES: AT
904;; TABLE TYPE: Translate
905;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
906 ;;
907 DW COM_FOURTH_K1_END-$ ;; length of state section
908 DB FOURTH_SHIFT ;; State ID
909 DW AT_KB ;; Keyboard Type
910 DB -1,-1 ;; Buffer entry for error character
911 ;;
912 DW COM_FOURTH_K1_T1_END-$ ;; Size of xlat table
913 DB TYPE_2_TAB ;; xlat options:
914 DB 18 ;; number of entries
915 DB 3,'@','@' ;;
916 DB 5,'$','$' ;;
917 DB 7,'^','^' ;;
918 DB 8,'&','&' ;;
919 DB 9,'*','*' ;;
920 DB 10,'(','(' ;;
921 DB 11,')',')' ;;
922 DB 12,'_','_' ;;
923 DB 13,'+','+' ;;
924 DB 26,'{','{' ;;
925 DB 27,'}','}' ;;
926 DB 39,':',':' ;;
927 DB 40,'"','"' ;;
928 DB 41,'|','|' ;;
929 DB 43,'~','~' ;;
930 DB 51,'<','<' ;;
931 DB 52,'>','>' ;;
932 DB 53,'?','?' ;;
933COM_FOURTH_K1_T1_END: ;;
934 ;;
935 DW 0 ;; Last xlat table
936COM_FOURTH_K1_END: ;;
937 ;;
938;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
939;; CODE PAGE: Common
940;; STATE: Grave Lower
941;; KEYBOARD TYPES: All
942;; TABLE TYPE: Translate
943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
944 ;;
945 DW COM_GR_LO_END-$ ;; length of state section
946 DB GRAVE_LOWER ;; State ID
947 DW ANY_KB ;; Keyboard Type
948 DB 96,0 ;; error character = standalone accent
949 ;;
950 DW COM_GR_LO_T1_END-$ ;; Size of xlat table
951 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
952 DB 5 ;; number of scans
953 DB 18,'Š' ;; scan code,ASCII - e
954 DB 22,'—' ;; scan code,ASCII - u
955 DB 23,'' ;; scan code,ASCII - i
956 DB 24,'•' ;; scan code,ASCII - o
957 DB 30,'…' ;; scan code,ASCII - a
958COM_GR_LO_T1_END: ;;
959 ;;
960 DW 0 ;; Size of xlat table - null table
961 ;;
962COM_GR_LO_END: ;; length of state section
963 ;;
964;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
965;; CODE PAGE: Common
966;; STATE: Grave Space Bar
967;; KEYBOARD TYPES: All
968;; TABLE TYPE: Translate
969;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
970 ;;
971 DW COM_GR_SP_END-$ ;; length of state section
972 DB GRAVE_SPACE ;; State ID
973 DW ANY_KB ;; Keyboard Type
974 DB 96,0 ;; error character = standalone accent
975 ;;
976 DW COM_GR_SP_T1_END-$ ;; Size of xlat table
977 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
978 DB 1 ;; number of scans
979 DB 57,96 ;; STANDALONE GRAVE
980COM_GR_SP_T1_END: ;;
981 ;;
982 DW 0 ;; Size of xlat table - null table
983 ;;
984COM_GR_SP_END: ;; length of state section
985 ;;
986;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
987;; CODE PAGE: Common
988;; STATE: Circumflex Lower
989;; KEYBOARD TYPES: All
990;; TABLE TYPE: Translate
991;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
992 ;;
993 DW COM_CI_LO_END-$ ;; length of state section
994 DB CIRCUMFLEX_LOWER ;; State ID
995 DW ANY_KB ;; Keyboard Type
996 DB 94,0 ;; error character = standalone accent
997 ;;
998 DW COM_CI_LO_T1_END-$ ;; Size of xlat table
999 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1000 DB 5 ;; number of scans
1001 DB 18,'ˆ' ;; scan code,ASCII - e
1002 DB 22,'–' ;; scan code,ASCII - u
1003 DB 23,'Œ' ;; scan code,ASCII - i
1004 DB 24,'“' ;; scan code,ASCII - o
1005 DB 30,'ƒ' ;; scan code,ASCII - a
1006COM_CI_LO_T1_END: ;;
1007 ;;
1008 DW 0 ;;
1009 ;;
1010COM_CI_LO_END: ;;
1011 ;;
1012;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1013;; CODE PAGE: Common
1014;; STATE: Circumflex Space Bar
1015;; KEYBOARD TYPES: All
1016;; TABLE TYPE: Translate
1017;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1018 ;;
1019 DW COM_CI_SP_END-$ ;; length of state section
1020 DB CIRCUMFLEX_SPACE ;; State ID
1021 DW ANY_KB ;; Keyboard Type
1022 DB 94,0 ;; error character = standalone accent
1023 ;;
1024 DW COM_CI_SP_T1_END-$ ;; Size of xlat table
1025 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1026 DB 1 ;; number of scans
1027 DB 57,94 ;; STANDALONE CIRCUMFLEX
1028COM_CI_SP_T1_END: ;;
1029 ;;
1030 DW 0 ;; Size of xlat table - null table
1031 ;;
1032COM_CI_SP_END: ;; length of state section
1033 ;;
1034;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1035;; CODE PAGE: Common
1036;; STATE: Tilde Lower
1037;; KEYBOARD TYPES: All
1038;; TABLE TYPE: Translate
1039;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1040 ;;
1041 DW COM_TI_LO_END-$ ;; length of state section
1042 DB TILDE_LOWER ;; State ID
1043 DW ANY_KB ;; Keyboard Type
1044 DB 07EH,0 ;; error character = standalone accent
1045 ;;
1046 DW COM_TI_LO_T1_END-$ ;; Size of xlat table
1047 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1048 DB 1 ;; number of scans
1049 DB 49,0A4H ;; scan code,ASCII - ¤
1050 COM_TI_LO_T1_END: ;;
1051 ;;
1052 DW 0 ;;
1053 ;;
1054 COM_TI_LO_END: ;;
1055 ;;
1056;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1057;;; CODE PAGE: Common
1058;;; STATE: Tilde Upper Case
1059;;; KEYBOARD TYPES: All
1060;;; TABLE TYPE: Translate
1061;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1062 ;;
1063 DW COM_TI_UP_END-$ ;; length of state section
1064 DB TILDE_UPPER ;; State ID
1065 DW ANY_KB ;; Keyboard Type
1066 DB 07EH,0 ;; error character = standalone accent
1067 ;;
1068 DW COM_TI_UP_T1_END-$ ;; Size of xlat table
1069 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1070 DB 1 ;; number of scans
1071 DB 49,0A5H ;; scan code,ASCII - ¥
1072 COM_TI_UP_T1_END: ;;
1073 ;;
1074 DW 0 ;; Size of xlat table - null table
1075 ;;
1076 COM_TI_UP_END: ;; length of state section
1077 ;;
1078 ;;
1079;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1080;; CODE PAGE: Common
1081;; STATE: Tilde Space Bar
1082;; KEYBOARD TYPES: All
1083;; TABLE TYPE: Translate
1084;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1085 ;;
1086 DW COM_TI_SP_END-$ ;; length of state section
1087 DB TILDE_SPACE ;; State ID
1088 DW ANY_KB ;; Keyboard Type
1089 DB 07EH,0 ;; error character = standalone accent
1090 ;;
1091 DW COM_TI_SP_T1_END-$ ;; Size of xlat table
1092 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1093 DB 1 ;; number of scans
1094 DB 57,07EH ;; STANDALONE TILDE
1095COM_TI_SP_T1_END: ;;
1096 ;;
1097 DW 0 ;; Size of xlat table - null table
1098 ;;
1099COM_TI_SP_END: ;; length of state section
1100 ;;
1101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1102 DW 0 ;; Last State
1103COMMON_XLAT_END: ;;
1104 ;;
1105 ;;
1106 ;;
1107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1108;;***************************************
1109;; DK Specific Translate Section for 865
1110;;***************************************
1111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1112 ;;
1113 PUBLIC DK_865_XLAT ;;
1114DK_865_XLAT: ;;
1115 ;;
1116 DW CP865_XLAT_END-$ ;; length of section
1117 DW 865 ;;
1118 ;;
1119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1120;; CODE PAGE: 865
1121;; STATE: Non-Alpha Upper Case
1122;; KEYBOARD TYPES: XT, , AT
1123;; TABLE TYPE: Translate
1124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1125 ;;
1126 DW CP865_NA_UP_END-$ ;; length of state section
1127 DB NON_ALPHA_UPPER ;; State ID
1128 DW XT_KB+AT_KB ;; Keyboard Type
1129 DB -1,-1 ;; Buffer entry for error character
1130 ;;
1131 DW CP865_NA_UP_T1_END-$ ;; Size of xlat table
1132 DB STANDARD_TABLE ;; xlat options:
1133 DB 1 ;; number of entries
1134 DB 5,0AFH ;; International Currency Symb
1135CP865_NA_UP_T1_END: ;;
1136 ;;
1137 DW 0 ;; Size of xlat table - null table
1138 ;;
1139CP865_NA_UP_END: ;;
1140 ;;
1141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1142;; CODE PAGE: 865
1143;; STATE: Non-Alpha Upper Case
1144;; KEYBOARD TYPES: G, P12
1145;; TABLE TYPE: Translate
1146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1147 ;;
1148 DW CP865_NA_UP_K1_END-$ ;; length of state section
1149 DB NON_ALPHA_UPPER ;; State ID
1150 DW G_KB+P12_KB ;; Keyboard Type
1151 DB -1,-1 ;; Buffer entry for error character
1152 ;;
1153 DW CP865_NA_UP_K1_T1_END-$ ;; Size of xlat table
1154 DB STANDARD_TABLE ;; xlat options:
1155 DB 2 ;; number of entries
1156 DB 5,0AFH ;; International Currency Symb
1157 DB 41,015H ;; SECTION Symb
1158CP865_NA_UP_K1_T1_END: ;;
1159 ;;
1160 DW 0 ;; Size of xlat table - null table
1161 ;;
1162CP865_NA_UP_K1_END: ;;
1163 ;;
1164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1165;; CODE PAGE: 865
1166;; STATE: Acute Lower Case
1167;; KEYBOARD TYPES: All
1168;; TABLE TYPE: Translate
1169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1170 ;;
1171 DW CP865_AC_LO_END-$ ;; length of state section
1172 DB ACUTE_LOWER ;; State ID
1173 DW ANY_KB ;; Keyboard Type
1174 DB 39,0 ;; error character = standalone accent
1175 ;;
1176 DW CP865_AC_LO_T1_END-$ ;; Size of xlat table
1177 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1178 DB 5 ;; number of scans
1179 DB 18,'‚' ;; scan code,ASCII - e
1180 DB 22,'£' ;; scan code,ASCII - u
1181 DB 23,'¡' ;; scan code,ASCII - i
1182 DB 24,'¢' ;; scan code,ASCII - o
1183 DB 30,' ' ;; scan code,ASCII - a
1184CP865_AC_LO_T1_END: ;;
1185 ;;
1186 DW 0 ;; Size of xlat table - null table
1187 ;;
1188CP865_AC_LO_END: ;;
1189 ;;
1190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1191;; CODE PAGE: 865
1192;; STATE: Acute Upper Case
1193;; KEYBOARD TYPES: All
1194;; TABLE TYPE: Translate
1195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1196 ;;
1197 DW CP865_AC_UP_END-$ ;; length of state section
1198 DB ACUTE_UPPER ;; State ID
1199 DW ANY_KB ;; Keyboard Type
1200 DB 39,0 ;; error character = standalone accent
1201 ;;
1202 DW CP865_AC_UP_T1_END-$ ;; Size of xlat table
1203 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1204 DB 1 ;; number of entries
1205 DB 18,'' ;; scan code,ASCII -
1206CP865_AC_UP_T1_END: ;;
1207 ;;
1208 DW 0 ;; Size of xlat table - null table
1209 ;;
1210CP865_AC_UP_END: ;;
1211 ;;
1212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1213;; CODE PAGE: 865
1214;; STATE: Acute Space Bar
1215;; KEYBOARD TYPES: All
1216;; TABLE TYPE: Translate
1217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1218 ;;
1219 DW CP865_AC_SP_END-$ ;; length of state section
1220 DB ACUTE_SPACE ;; State ID
1221 DW ANY_KB ;; Keyboard Type
1222 DB 39,0 ;; error character = standalone accent
1223 ;;
1224 DW CP865_AC_SP_T1_END-$ ;; Size of xlat table
1225 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1226 DB 1 ;; number of scans
1227 DB 57,39 ;; scan code,ASCII - SPACE
1228CP865_AC_SP_T1_END: ;;
1229 ;;
1230 DW 0 ;; Size of xlat table - null table
1231 ;;
1232CP865_AC_SP_END: ;;
1233 ;;
1234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1235;; CODE PAGE: CP865
1236;; STATE: Diaresis Lower Case
1237;; KEYBOARD TYPES: All
1238;; TABLE TYPE: Translate
1239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1240 ;;
1241 DW CP865_DI_LO_END-$ ;; length of state section
1242 DB DIARESIS_LOWER ;; State ID
1243 DW ANY_KB ;; Keyboard Type
1244 DB 254,0 ;; error character = standalone accent
1245 ;;
1246 DW CP865_DI_LO_T1_END-$ ;; Size of xlat table
1247 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1248 DB 6 ;; number of scans
1249 DB 18,'‰' ;; scan code,ASCII - e
1250 DB 21,'˜' ;; scan code,ASCII - y
1251 DB 22,'' ;; scan code,ASCII - u
1252 DB 23,'‹' ;; scan code,ASCII - i
1253 DB 24,'”' ;; scan code,ASCII - o
1254 DB 30,'„' ;; scan code,ASCII - a
1255CP865_DI_LO_T1_END: ;;
1256 ;;
1257 DW 0 ;; Size of xlat table - null table
1258 ;;
1259CP865_DI_LO_END: ;; length of state section
1260 ;;
1261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1262;; CODE PAGE: CP865
1263;; STATE: Diaresis Upper Case
1264;; KEYBOARD TYPES: All
1265;; TABLE TYPE: Translate
1266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1267 ;;
1268 DW CP865_DI_UP_END-$ ;; length of state section
1269 DB DIARESIS_UPPER ;; State ID
1270 DW ANY_KB ;; Keyboard Type
1271 DB 254,0 ;; error character = standalone accent
1272 ;;
1273 DW CP865_DI_UP_T1_END-$ ;; Size of xlat table
1274 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1275 DB 3 ;; number of scans
1276 DB 22,'š' ;; scan code,ASCII - U
1277 DB 24,'™' ;; scan code,ASCII - O
1278 DB 30,'Ž' ;; scan code,ASCII - A
1279CP865_DI_UP_T1_END: ;;
1280 ;;
1281 DW 0 ;; Size of xlat table - null table
1282 ;;
1283CP865_DI_UP_END: ;; length of state section
1284 ;;
1285 ;;
1286;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1287;; CODE PAGE: 865
1288;; STATE: Diaresis Space Bar
1289;; KEYBOARD TYPES: All
1290;; TABLE TYPE: Translate
1291;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1292; ;;
1293; DW CP865_DI_SP_END-$ ;; length of state section
1294; DB DIARESIS_SPACE ;; State ID
1295; DW ANY_KB ;; Keyboard Type
1296; DB 254,0 ;; error character = standalone accent
1297; ;;
1298; DW CP865_DI_SP_T1_END-$ ;; Size of xlat table
1299; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1300; DB 1 ;; number of scans
1301; DB 57,254 ;; error character = standalone accent
1302;CP865_DI_SP_T1_END: ;;
1303; ;;
1304; DW 0 ;; Size of xlat table - null table
1305;CP865_DI_SP_END: ;; length of state section
1306; ;;
1307;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1308 ;;
1309 DW 0 ;; LAST STATE
1310 ;;
1311CP865_XLAT_END: ;;
1312 ;;
1313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1314;;***************************************
1315;; DK Specific Translate Section for 850
1316;;***************************************
1317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1318 ;;
1319 PUBLIC DK_850_XLAT ;;
1320DK_850_XLAT: ;;
1321 ;;
1322 DW CP850_XLAT_END-$ ;; length of section
1323 DW 850 ;;
1324 ;;
1325 ;;
1326;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1327;; CODE PAGE: 850
1328;; STATE: Non-Alpha Upper Case
1329;; KEYBOARD TYPES: XT, , AT
1330;; TABLE TYPE: Translate
1331;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1332 ;;
1333 DW CP850_NA_UP_END-$ ;; length of state section
1334 DB NON_ALPHA_UPPER ;; State ID
1335 DW XT_KB+AT_KB ;; Keyboard Type
1336 DB -1,-1 ;; Buffer entry for error character
1337 ;;
1338 DW CP850_NA_UP_T1_END-$ ;; Size of xlat table
1339 DB STANDARD_TABLE ;; xlat options:
1340 DB 1 ;; number of entries
1341 DB 5,0CFH ;; International Currency Symb
1342CP850_NA_UP_T1_END: ;;
1343 ;;
1344 DW 0 ;; Size of xlat table - null table
1345 ;;
1346CP850_NA_UP_END: ;;
1347 ;;
1348 ;;
1349;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1350;; CODE PAGE: 850
1351;; STATE: Non-Alpha Upper Case
1352;; KEYBOARD TYPES: G, P12
1353;; TABLE TYPE: Translate
1354;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1355 ;;
1356 DW CP850_NA_UP_K1_END-$ ;; length of state section
1357 DB NON_ALPHA_UPPER ;; State ID
1358 DW G_KB+P12_KB ;; Keyboard Type
1359 DB -1,-1 ;; Buffer entry for error character
1360 ;;
1361 DW CP850_NA_UP_K1_T1_END-$ ;; Size of xlat table
1362 DB STANDARD_TABLE ;; xlat options:
1363 DB 2 ;; number of entries
1364 DB 5,0CFH ;; International Currency Symb
1365 DB 41,0F5H ;; SECTION Symb
1366CP850_NA_UP_K1_T1_END: ;;
1367 ;;
1368 DW 0 ;; Size of xlat table - null table
1369 ;;
1370CP850_NA_UP_K1_END: ;;
1371 ;;
1372;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1373;; CODE PAGE: 850
1374;; STATE: Acute Lower Case
1375;; KEYBOARD TYPES: All
1376;; TABLE TYPE: Translate
1377;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1378 ;;
1379 DW CP850_AC_LO_END-$ ;; length of state section
1380 DB ACUTE_LOWER ;; State ID
1381 DW ANY_KB ;; Keyboard Type
1382 DB 239,0 ;; error character = standalone accent
1383 ;;
1384 DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
1385 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1386 DB 6 ;; number of scans
1387 DB 18,'‚' ;; scan code,ASCII - e
1388 DB 21,0ECH ;; y acute
1389 DB 22,'£' ;; scan code,ASCII - u
1390 DB 23,'¡' ;; scan code,ASCII - i
1391 DB 24,'¢' ;; scan code,ASCII - o
1392 DB 30,' ' ;; scan code,ASCII - a
1393CP850_AC_LO_T1_END: ;;
1394 ;;
1395 DW 0 ;; Size of xlat table - null table
1396 ;;
1397CP850_AC_LO_END: ;;
1398 ;;
1399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1400;; CODE PAGE: 850
1401;; STATE: Acute Upper Case
1402;; KEYBOARD TYPES: All
1403;; TABLE TYPE: Translate
1404;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1405 ;;
1406 DW CP850_AC_UP_END-$ ;; length of state section
1407 DB ACUTE_UPPER ;; State ID
1408 DW ANY_KB ;; Keyboard Type
1409 DB 239,0 ;; error character = standalone accent
1410 ;;
1411 DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
1412 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1413 DB 6 ;; number of entries
1414 DB 18,090H ;; E acute
1415 DB 21,0EDH ;; Y acute
1416 DB 22,0E9H ;; U acute
1417 DB 23,0D6H ;; I acute
1418 DB 24,0E0H ;; O acute
1419 DB 30,0B5H ;; A acute
1420CP850_AC_UP_T1_END: ;;
1421 ;;
1422 DW 0 ;; Size of xlat table - null table
1423 ;;
1424CP850_AC_UP_END: ;;
1425 ;;
1426;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1427;; CODE PAGE: 850
1428;; STATE: Acute Space Bar
1429;; KEYBOARD TYPES: All
1430;; TABLE TYPE: Translate
1431;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1432 ;;
1433 DW CP850_AC_SP_END-$ ;; length of state section
1434 DB ACUTE_SPACE ;; State ID
1435 DW ANY_KB ;; Keyboard Type
1436 DB 239,0 ;; error character = standalone accent
1437 ;;
1438 DW CP850_AC_SP_T1_END-$ ;; Size of xlat table
1439 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1440 DB 1 ;; number of scans
1441 DB 57,239 ;; scan code,ASCII - SPACE
1442CP850_AC_SP_T1_END: ;;
1443 ;;
1444 DW 0 ;; Size of xlat table - null table
1445 ;;
1446CP850_AC_SP_END: ;;
1447 ;;
1448;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1449;; CODE PAGE: 850
1450;; STATE: Diaresis Lower Case
1451;; KEYBOARD TYPES: All
1452;; TABLE TYPE: Translate
1453;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1454 ;;
1455 DW CP850_DI_LO_END-$ ;; length of state section
1456 DB DIARESIS_LOWER ;; State ID
1457 DW ANY_KB ;; Keyboard Type
1458 DB 249,0 ;; error character = standalone accent
1459 ;;
1460 DW CP850_DI_LO_T1_END-$ ;; Size of xlat table
1461 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1462 DB 6 ;; number of scans
1463 DB 18,'‰' ;; scan code,ASCII - e
1464 DB 21,'˜' ;; scan code,ASCII - y
1465 DB 22,'' ;; scan code,ASCII - u
1466 DB 23,'‹' ;; scan code,ASCII - i
1467 DB 24,'”' ;; scan code,ASCII - o
1468 DB 30,'„' ;; scan code,ASCII - a
1469CP850_DI_LO_T1_END: ;;
1470 ;;
1471 DW 0 ;; Size of xlat table - null table
1472 ;;
1473CP850_DI_LO_END: ;; length of state section
1474 ;;
1475;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1476;; CODE PAGE: 850
1477;; STATE: Diaresis Upper Case
1478;; KEYBOARD TYPES: All
1479;; TABLE TYPE: Translate
1480;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1481 ;;
1482 DW CP850_DI_UP_END-$ ;; length of state section
1483 DB DIARESIS_UPPER ;; State ID
1484 DW ANY_KB ;; Keyboard Type
1485 DB 249,0 ;; error character = standalone accent
1486 ;;
1487 DW CP850_DI_UP_T1_END-$ ;; Size of xlat table
1488 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1489 DB 5 ;; number of scans
1490 DB 18,0D3H ;; E Diaeresis
1491 DB 22,'š' ;; U Diaeresis
1492 DB 23,0D8H ;; I Diaeresis
1493 DB 24,'™' ;; O Diaeresis
1494 DB 30,'Ž' ;; A Diaeresis
1495CP850_DI_UP_T1_END: ;;
1496 ;;
1497 DW 0 ;; Size of xlat table - null table
1498 ;;
1499CP850_DI_UP_END: ;; length of state section
1500 ;;
1501 ;;
1502;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1503;; CODE PAGE: 850
1504;; STATE: Diaresis Space Bar
1505;; KEYBOARD TYPES: All
1506;; TABLE TYPE: Translate
1507;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1508 ;;
1509 DW CP850_DI_SP_END-$ ;; length of state section
1510 DB DIARESIS_SPACE ;; State ID
1511 DW ANY_KB ;; Keyboard Type
1512 DB 249,0 ;; error character = standalone accent
1513 ;;
1514 DW CP850_DI_SP_T1_END-$ ;; Size of xlat table
1515 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1516 DB 1 ;; number of scans
1517 DB 57,249 ;; error character = standalone accent
1518CP850_DI_SP_T1_END: ;;
1519 ;;
1520 DW 0 ;; Size of xlat table - null table
1521CP850_DI_SP_END: ;; length of state section
1522 ;;
1523;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1524;; CODE PAGE: 850
1525;; STATE: Grave Upper
1526;; KEYBOARD TYPES: All
1527;; TABLE TYPE: Translate
1528;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1529 ;;
1530 DW CP850_GR_UP_END-$ ;; length of state section
1531 DB GRAVE_UPPER ;; State ID
1532 DW ANY_KB ;; Keyboard Type
1533 DB 96,0 ;; error character = standalone accent
1534 ;;
1535 DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
1536 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1537 DB 5 ;; number of scans
1538 DB 18,0D4H ;; E grave
1539 DB 22,0EBH ;; U grave
1540 DB 23,0DEH ;; I grave
1541 DB 24,0E3H ;; O grave
1542 DB 30,0B7H ;; A grave
1543CP850_GR_UP_T1_END: ;;
1544 ;;
1545 DW 0 ;; Size of xlat table - null table
1546 ;;
1547CP850_GR_UP_END: ;; length of state section
1548 ;;
1549;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1550;; CODE PAGE: 850
1551;; STATE: Tilde Lower
1552;; KEYBOARD TYPES: All
1553;; TABLE TYPE: Translate
1554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1555 ;;
1556 DW CP850_TI_LO_END-$ ;; length of state section
1557 DB TILDE_LOWER ;; State ID
1558 DW ANY_KB ;; Keyboard Type
1559 DB 07EH,0 ;; error character = standalone accent
1560 ;;
1561 DW CP850_TI_LO_T1_END-$ ;; Size of xlat table
1562 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1563 DB 2 ;; number of scans
1564 DB 24,0E4H ;; scan code,ASCII - o tilde
1565 DB 30,0C6H ;; scan code,ASCII - a tilde
1566 CP850_TI_LO_T1_END: ;;
1567 ;;
1568 DW 0 ;;
1569 ;;
1570 CP850_TI_LO_END: ;;
1571 ;;
1572;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1573;;; CODE PAGE: 850
1574;;; STATE: Tilde Upper Case
1575;;; KEYBOARD TYPES: All
1576;;; TABLE TYPE: Translate
1577;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1578 ;;
1579 DW CP850_TI_UP_END-$ ;; length of state section
1580 DB TILDE_UPPER ;; State ID
1581 DW ANY_KB ;; Keyboard Type
1582 DB 07EH,0 ;; error character = standalone accent
1583 ;;
1584 DW CP850_TI_UP_T1_END-$ ;; Size of xlat table
1585 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1586 DB 2 ;; number of scans
1587 DB 24,0E5H ;; scan code,ASCII - O tilde
1588 DB 30,0C7H ;; scan code,ASCII - A tilde
1589 CP850_TI_UP_T1_END: ;;
1590 ;;
1591 DW 0 ;; Size of xlat table - null table
1592 ;;
1593 CP850_TI_UP_END: ;; length of state section
1594 ;;
1595 ;;
1596;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1597;; CODE PAGE: 850
1598;; STATE: Circumflex Upper
1599;; KEYBOARD TYPES: All
1600;; TABLE TYPE: Translate
1601;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1602 ;;
1603 DW CP850_CI_UP_END-$ ;; length of state section
1604 DB CIRCUMFLEX_UPPER ;; State ID
1605 DW ANY_KB ;; Keyboard Type
1606 DB 94,0 ;; error character = standalone accent
1607 ;;
1608 DW CP850_CI_UP_T1_END-$ ;; Size of xlat table
1609 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1610 DB 5 ;; number of scans
1611 DB 18,0D2H ;; E circumflex
1612 DB 22,0EAH ;; U circumflex
1613 DB 23,0D7H ;; I circumflex
1614 DB 24,0E2H ;; O circumflex
1615 DB 30,0B6H ;; A circumflex
1616CP850_CI_UP_T1_END: ;;
1617 ;;
1618 DW 0 ;; Size of xlat table - null table
1619 ;;
1620CP850_CI_UP_END: ;; length of state section
1621 ;;
1622;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1623 ;;
1624 DW 0 ;; LAST STATE
1625 ;;
1626CP850_XLAT_END: ;;
1627;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1628 ;;
1629CODE ENDS ;;
1630 END ;;
1631
diff --git a/v4.0/src/DEV/KEYBOARD/KDFEOF.ASM b/v4.0/src/DEV/KEYBOARD/KDFEOF.ASM
new file mode 100644
index 0000000..020b5e1
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFEOF.ASM
@@ -0,0 +1,32 @@
1
2
3
4 PAGE ,132
5 TITLE DOS Keyboard Definition File
6
7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8;; DOS - NLS Support - Keyboard Definition File
9;; (c) Copyright 1988 Microsoft
10;;
11;; This file contains the eof marker for the entire table
12;; and the keyboard.sys copyright
13;;
14;; Linkage Instructions:
15;; Refer to KDF.ASM.
16;;
17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
18 ;;
19 ;;
20CODE SEGMENT PUBLIC 'CODE' ;;
21 ASSUME CS:CODE,DS:CODE ;;
22 ;;
23 ;;
24 ;;
25 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
26include copyrigh.inc
27 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
28 DB 1AH ;; EOF
29 ;;
30CODE ENDS ;;
31 END ;;
32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFFR.ASM b/v4.0/src/DEV/KEYBOARD/KDFFR.ASM
new file mode 100644
index 0000000..0dd5e4b
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFFR.ASM
@@ -0,0 +1,1529 @@
1;; LATEST CHANGE ALT & CTL disenabled US invalids
2;; Section symbol scan code incorrect
3;; zero scan code tag deleted from end of tag field
4;; Changed key #5 for the XT "/" instead of "'"..Pubs error
5;; ****************** CNS 12/18/86*************************
6
7 PAGE ,132
8 TITLE DOS - Keyboard Definition File
9
10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11;; DOS - - NLS Support - Keyboard Defintion File
12;; (c) Copyright 1988 Microsoft
13;;
14;; This file contains the keyboard tables for Spanish.
15;;
16;; Linkage Instructions:
17;; Refer to KDF.ASM.
18;;
19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
20 ;;
21 INCLUDE KEYBSHAR.INC ;;
22 INCLUDE POSTEQU.INC ;;
23 INCLUDE KEYBMAC.INC ;;
24 ;;
25 PUBLIC FR_LOGIC ;;
26 PUBLIC FR_437_XLAT ;;
27 PUBLIC FR_850_XLAT ;;
28 ;;
29CODE SEGMENT PUBLIC 'CODE' ;;
30 ASSUME CS:CODE,DS:CODE ;;
31 ;;
32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
33;; Standard translate table options are a liner search table
34;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
36 ;;
37STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
38 ;;
39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
40;;***************************************
41;; FR State Logic
42;;***************************************
43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
44 ;;
45 ;;
46FR_LOGIC:
47
48 DW LOGIC_END-$ ;; length
49 ;;
50 DW TYPEWRITER_CAPS_LK ;; special features (shift lock state)
51 ;;
52 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
53 ;;
54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
55;; OPTIONS: If we find a scan match in
56;; an XLATT or SET_FLAG operation then
57;; exit from INT 9.
58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
59 ;;
60 OPTION EXIT_IF_FOUND ;;
61 ;;
62 ;;
63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
64;; Dead key definitions must come before
65;; dead key translations to handle
66;; dead key + dead key.
67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
68 ;;
69 IFF EITHER_ALT,NOT ;;
70 ANDF EITHER_CTL,NOT ;;
71 IFF CAPS_STATE
72 SET_FLAG DEAD_UPPER
73 ELSEF
74 IFF EITHER_SHIFT ;;
75 SET_FLAG DEAD_UPPER ;;
76 ELSEF ;;
77 SET_FLAG DEAD_LOWER ;;
78 ENDIFF ;;
79 ENDIFF ;;
80 ENDIFF ;;
81 ;;
82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
83;; ACUTE ACCENT TRANSLATIONS
84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
85 ;;
86ACUTE_PROC: ;;
87 ;;
88 IFF ACUTE,NOT ;;
89 GOTO DIARESIS_PROC ;;
90 ENDIFF ;;
91 ;;
92 RESET_NLS ;;
93 IFF R_ALT_SHIFT,NOT ;;
94 XLATT ACUTE_SPACE ;;
95 ENDIFF ;;
96 IFF EITHER_CTL,NOT ;;
97 ANDF EITHER_ALT,NOT ;;
98 IFF EITHER_SHIFT ;;
99 IFF CAPS_STATE ;;
100 XLATT ACUTE_LOWER ;;
101 ELSEF ;;
102 XLATT ACUTE_UPPER ;;
103 ENDIFF ;;
104 ELSEF ;;
105 IFF CAPS_STATE ;;
106 XLATT ACUTE_UPPER ;;
107 ELSEF ;;
108 XLATT ACUTE_LOWER ;;
109 ENDIFF ;;
110 ENDIFF ;;
111 ENDIFF ;;
112 ;;
113INVALID_ACUTE: ;;
114 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
115 BEEP ;; failed or we are ina bad shift state.
116 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
117 ;; through to generate the second char.
118 ;; Note that the dead key flag will be
119 ;; reset before we get here.
120 ;;
121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
122;; DIARESIS ACCENT TRANSLATIONS
123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
124 ;;
125DIARESIS_PROC: ;;
126 ;;
127 IFF DIARESIS,NOT ;;
128 GOTO GRAVE_PROC ;;
129 ENDIFF ;;
130 ;;
131 RESET_NLS ;;
132 IFF R_ALT_SHIFT,NOT ;;
133 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
134 ENDIFF ;;
135 IFF EITHER_CTL,NOT ;;
136 ANDF EITHER_ALT,NOT ;;
137 IFF EITHER_SHIFT ;;
138 IFF CAPS_STATE ;;
139 XLATT DIARESIS_LOWER ;;
140 ELSEF ;;
141 XLATT DIARESIS_UPPER ;;
142 ENDIFF ;;
143 ELSEF ;;
144 IFF CAPS_STATE ;;
145 XLATT DIARESIS_UPPER ;;
146 ELSEF ;;
147 XLATT DIARESIS_LOWER ;;
148 ENDIFF ;;
149 ENDIFF ;;
150 ENDIFF ;;
151 ;;
152INVALID_DIARESIS: ;;
153 PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent
154 BEEP ;; Invalid dead key combo.
155 GOTO NON_DEAD ;;
156 ;;
157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
158;; GRAVE ACCENT TRANSLATIONS
159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
160 ;;
161GRAVE_PROC: ;;
162 ;;
163 IFF GRAVE,NOT ;;
164 GOTO CIRCUMFLEX_PROC ;;
165 ENDIFF ;;
166 ;;
167 RESET_NLS ;;
168 IFF R_ALT_SHIFT,NOT ;;
169 XLATT GRAVE_SPACE ;;
170 ENDIFF ;;
171 IFF EITHER_CTL,NOT ;;
172 ANDF EITHER_ALT,NOT ;;
173 IFF EITHER_SHIFT ;;
174 IFF CAPS_STATE ;;
175 XLATT GRAVE_LOWER ;;
176 ELSEF ;;
177 XLATT GRAVE_UPPER ;;
178 ENDIFF ;;
179 ELSEF ;;
180 IFF CAPS_STATE,NOT ;;
181 XLATT GRAVE_LOWER ;;
182 ELSEF ;;
183 XLATT GRAVE_UPPER ;;
184 ENDIFF ;;
185 ENDIFF ;;
186 ENDIFF ;;
187 ;;
188INVALID_GRAVE: ;;
189 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
190 BEEP ;; Invalid dead key combo.
191 GOTO NON_DEAD ;;
192 ;;
193;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
194;; CIRCUMFLEX ACCENT TRANSLATIONS
195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
196 ;;
197CIRCUMFLEX_PROC: ;;
198 ;;
199 IFF CIRCUMFLEX,NOT ;;
200 GOTO NON_DEAD ;;
201 ENDIFF ;;
202 ;;
203 RESET_NLS ;;
204 IFF R_ALT_SHIFT,NOT ;;
205 XLATT CIRCUMFLEX_SPACE ;;
206 ENDIFF ;;
207 IFF EITHER_CTL,NOT ;;
208 ANDF EITHER_ALT,NOT ;;
209 IFF EITHER_SHIFT ;;
210 IFF CAPS_STATE ;;
211 XLATT CIRCUMFLEX_LOWER ;;
212 ELSEF ;;
213 XLATT CIRCUMFLEX_UPPER ;;
214 ENDIFF ;;
215 ELSEF ;;
216 IFF CAPS_STATE,NOT ;;
217 XLATT CIRCUMFLEX_LOWER ;;
218 ELSEF ;;
219 XLATT CIRCUMFLEX_UPPER ;;
220 ENDIFF ;;
221 ENDIFF ;;
222 ENDIFF ;;
223 ;;
224INVALID_CIRCUMFLEX: ;;
225 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
226 BEEP ;; Invalid dead key combo.
227 GOTO NON_DEAD ;;
228 ;;
229 ;;
230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
232;; Upper, lower and third shifts
233;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
234 ;;
235NON_DEAD: ;;
236 ;;
237 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
238 ANDF LC_E0 ;; the "/" on the numeric pad of the
239 EXIT_STATE_LOGIC ;; G keyboard
240 ENDIFF ;;
241;;***BD ADDED FOR ALT, CTRL CASES ;;
242 IFF EITHER_CTL,NOT ;;
243 IFF ALT_SHIFT ;; ALT - case
244 ANDF R_ALT_SHIFT,NOT ;;
245 XLATT ALT_CASE ;;
246 ENDIFF ;;
247 ELSEF ;;
248 IFF EITHER_ALT,NOT ;; CTRL - case
249 XLATT CTRL_CASE ;;
250 ENDIFF ;;
251 ENDIFF ;;
252;;***BD END OF ADDITION
253 ;;
254 IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
255 ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
256 IFF EITHER_SHIFT ;; Numeric keys are not.
257;;***BD ADDED FOR NUMERIC PAD
258 IFF NUM_STATE,NOT ;;
259 XLATT NUMERIC_PAD ;;
260 ENDIFF ;;
261;;***BD END OF ADDITION
262; XLATT NON_ALPHA_UPPER ;;
263 IFF CAPS_STATE ;;
264 XLATT ALPHA_LOWER ;;
265 XLATT NON_ALPHA_LOWER ;;
266 ELSEF ;;
267 XLATT ALPHA_UPPER ;;
268 XLATT NON_ALPHA_UPPER ;;
269 ENDIFF ;;
270 ELSEF ;;
271;;***BD ADDED FOR NUMERIC PAD
272 IFF NUM_STATE ;;
273 XLATT NUMERIC_PAD ;;
274 ENDIFF ;;
275;;***BD END OF ADDITION
276; XLATT NON_ALPHA_LOWER ;;
277 IFF CAPS_STATE ;;
278 XLATT ALPHA_UPPER ;;
279 XLATT NON_ALPHA_UPPER ;;
280 ELSEF ;;
281 XLATT ALPHA_LOWER ;;
282 XLATT NON_ALPHA_LOWER ;;
283 ENDIFF ;;
284 ENDIFF ;;
285 ELSEF ;;
286 IFF EITHER_SHIFT,NOT ;;
287 IFKBD XT_KB+AT_KB ;;
288 IFF EITHER_CTL ;;
289 ANDF ALT_SHIFT ;;
290 XLATT THIRD_SHIFT ;;
291 ENDIFF ;;
292 ELSEF ;;
293 IFF EITHER_CTL,NOT ;;
294 ANDF R_ALT_SHIFT ;;
295 XLATT THIRD_SHIFT ;;
296 ENDIFF ;;
297 ENDIFF ;;
298 ENDIFF ;;
299 ENDIFF ;;
300 ;;
301 EXIT_STATE_LOGIC ;;
302 ;;
303LOGIC_END: ;;
304 ;;
305 ;;
306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
307;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
308; ;;
309;NON_DEAD: ;;
310; ;;
311; IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
312; ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
313; IFF EITHER_SHIFT ;; Numeric keys are not.
314; XLATT NON_ALPHA_UPPER ;;
315; IFF CAPS_STATE ;;
316; XLATT ALPHA_LOWER ;;
317; ELSEF ;;
318; XLATT ALPHA_UPPER ;;
319; ENDIFF ;;
320; ELSEF ;;
321; XLATT NON_ALPHA_LOWER ;;
322; IFF CAPS_STATE ;;
323; XLATT ALPHA_UPPER ;;
324; ELSEF ;;
325; XLATT ALPHA_LOWER ;;
326; ENDIFF ;;
327; ENDIFF ;;
328; ELSEF ;;
329; IFF EITHER_SHIFT,NOT ;;
330; IFKBD XT_KB+AT_KB ;;
331; IFF EITHER_CTL ;;
332; ANDF ALT_SHIFT ;;
333; XLATT THIRD_SHIFT ;;
334; ENDIFF ;;
335; ELSEF ;;
336; IFF EITHER_CTL,NOT ;;
337; ANDF R_ALT_SHIFT ;;
338; XLATT THIRD_SHIFT ;;
339; ENDIFF ;;
340; ENDIFF ;;
341; ENDIFF ;;
342; ENDIFF ;;
343; ;;
344; EXIT_STATE_LOGIC ;;
345; ;;
346;LOGIC_END: ;;
347; ;;
348; ;;
349;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
350;;***************************************
351;; FR Common Translate Section
352;; This section contains translations for the lower 128 characters
353;; only since these will never change from code page to code page.
354;; In addition the dead key "Set Flag" tables are here since the
355;; dead keys are on the same keytops for all code pages.
356;;***************************************
357;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
358 ;;
359 PUBLIC FR_COMMON_XLAT ;;
360FR_COMMON_XLAT: ;;
361 ;;
362 DW COMMON_XLAT_END-$ ;; length of section
363 DW -1 ;; code page
364 ;;
365 ;;
366;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
367;; CODE PAGE: Common
368;; STATE: Lower Shift Dead Key
369;; KEYBOARD TYPES: All
370;; TABLE TYPE: Flag Table
371;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
372 ;;
373 DW COM_DK_LO_END-$ ;; length of state section
374 DB DEAD_LOWER ;; State ID
375 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
376 DB -1,-1 ;; Buffer entry for error character
377 ;; Set Flag Table
378 DW 1 ;; number of entries
379 DB 26 ;; scan code
380 FLAG CIRCUMFLEX ;; flag bit to set
381; DB 40 eliminate ;;
382; FLAG ACUTE ;;
383 ;;
384 ;;
385COM_DK_LO_END: ;;
386 ;;
387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
388;; CODE PAGE: Common
389;; STATE: Upper Shift Dead Key
390;; KEYBOARD TYPES: All
391;; TABLE TYPE: Flag Table
392;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
393 ;;
394 DW COM_DK_UP_END-$ ;; length of state section
395 DB DEAD_UPPER ;; State ID
396 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
397 DB -1,-1 ;; Buffer entry for error character
398 ;; Set Flag Table
399 DW 1 ;; number of entries
400 DB 26 ;; scan code
401 FLAG DIARESIS ;; flag bit to set
402; DB 40 eliminate ;;
403; FLAG DIARESIS ;;
404 ;;
405COM_DK_UP_END: ;;
406 ;;
407;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
408;**********************
409;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
410;; CODE PAGE: Common
411;; STATE: Third Shift Dead Key
412;; KEYBOARD TYPES: All
413;; TABLE TYPE: Flag Table
414;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
415;; ;;
416;; DW COM_DK_TH_END-$ ;; length of state section
417;; DB DEAD_THIRD ;; State ID
418;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
419;; DB -1,-1 ;; Buffer entry for error character
420;; ;; Set Flag Table
421;; DW 1 ;; number of entries
422;; DB 8 ;; scan code
423;; FLAG GRAVE ;; flag bit to set
424;; ;;
425;;COM_DK_TH_END: ;;
426;; ;;
427;; ;;
428;; ;;
429;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
430;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
431;; CODE PAGE: Common
432;; STATE: Alt Case
433;; KEYBOARD TYPES: G_KB + P12_KB
434;; TABLE TYPE: Translate
435;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
436 ;;
437 DW COM_ALT_K1_END-$ ;; length of state section
438 DB ALT_CASE ;; State ID
439 DW G_KB+P12_KB ;; Keyboard Type
440 DB -1,-1 ;; Buffer entry for error character
441 ;; Set Flag Table
442 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
443 DB TYPE_2_TAB ;;
444 DB 10 ;; Number of entries
445 DB 12,-1,-1 ;; invalid key U.S. alt -
446 DB 13,-1,-1 ;; invalid key U.S. alt =
447 DB 07,0,82H ;; alt - (minus sign)
448 DB 13,0,83H ;; alt = (equal sign)
449 DB 16,0,1EH ;; A
450 DB 17,0,2CH ;; Z
451 DB 30,0,10H ;; Q
452 DB 39,0,32H ;; M
453 DB 44,0,11H ;; W
454 DB 50,-1,-1 ;; U.S. 'M'
455COM_ALT_K1_T1_END: ;;
456 ;;
457 DW 0 ;;
458 ;;
459COM_ALT_K1_END: ;;
460 ;;
461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
462;; CODE PAGE: Common
463;; STATE: Ctrl Case
464;; KEYBOARD TYPES: G_KB+P12_KB
465;; TABLE TYPE: Translate
466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
467 ;;
468 DW COM_CTRL_K1_END-$ ;; length of state section
469 DB CTRL_CASE ;; State ID
470 DW G_KB+P12_KB ;; Keyboard Type
471 DB -1,-1 ;; Buffer entry for error character
472 ;; Set Flag Table
473 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
474 DB TYPE_2_TAB ;;
475 DB 12 ;; Number of entries
476 DB 12,-1,-1 ;;
477 DB 07,30,07 ;; ctl + number six key
478 DB 12,29,12 ;; ctl + ]
479 DB 13,31,13 ;;
480 DB 16,01,16 ;; A
481 DB 17,26,17 ;; Z
482 DB 30,17,30 ;; Q
483 DB 39,13,39 ;; M
484 DB 43,-1,-1 ;; \
485 DB 44,23,44 ;; W
486 DB 50,-1,-1 ;; U.S. 'M'
487 DB 9,28,9 ;; \ position (this is also the underscore position)
488COM_CTRL_K1_T1_END: ;;
489 ;;
490 DW 0 ;;
491 ;;
492COM_CTRL_K1_END: ;;
493 ;;
494 ;;
495;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
496;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
497;; CODE PAGE: Common
498;; STATE: Alt Case
499;; KEYBOARD TYPES: AT + XT
500;; TABLE TYPE: Translate
501;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
502 ;;
503 DW COM_ALT_K2_END-$ ;; length of state section
504 DB ALT_CASE ;; State ID
505 DW AT_KB+XT_KB ;; Keyboard Type
506 DB -1,-1 ;; Buffer entry for error character
507 ;; Set Flag Table
508 DW COM_ALT_K2_T2_END-$ ;; Size of xlat table
509 DB TYPE_2_TAB ;;
510 DB 9 ;; Number of entries
511 DB 12,-1,-1 ;; invalid key U.S. alt -
512 DB 13,0,82H ;; alt - (minus sign)
513 DB 53,0,83H ;; alt = (equal sign)
514 DB 16,0,1EH ;; A
515 DB 17,0,2CH ;; Z
516 DB 30,0,10H ;; Q
517 DB 39,0,32H ;; M
518 DB 44,0,11H ;; W
519 DB 50,-1,-1 ;; U.S. 'M'
520COM_ALT_K2_T2_END: ;;
521 ;;
522 DW 0 ;;
523 ;;
524COM_ALT_K2_END: ;;
525 ;;
526;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
527;; CODE PAGE: Common
528;; STATE: Ctrl Case
529;; KEYBOARD TYPES: AT
530;; TABLE TYPE: Translate
531;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
532 ;;
533 DW COM_CTRL_K2_END-$ ;; length of state section
534 DB CTRL_CASE ;; State ID
535 DW AT_KB ;; Keyboard Type
536 DB -1,-1 ;; Buffer entry for error character
537 ;; Set Flag Table
538 DW COM_CTRL_K2_T2_END-$ ;; Size of xlat table
539 DB TYPE_2_TAB ;;
540 DB 11 ;; Number of entries
541 DB 12,-1,-1 ;; invalid U.S. -
542 DB 43,-1,-1 ;; invalid U.S. \
543 DB 41,28,41 ;; valid ctl + \
544 DB 07,30,07 ;; ctl + number six key
545 DB 13,31,13 ;; ctl - or _
546 DB 16,01,16 ;; A
547 DB 17,26,17 ;; Z
548 DB 30,17,30 ;; Q
549 DB 39,13,39 ;; M
550 DB 44,23,44 ;; W
551 DB 50,-1,-1 ;; U.S. 'M'
552COM_CTRL_K2_T2_END: ;;
553 ;;
554 DW 0 ;;
555 ;;
556COM_CTRL_K2_END: ;;
557 ;;
558 ;;
559;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
560;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
561;; CODE PAGE: Common
562;; STATE: Ctrl Case
563;; KEYBOARD TYPES: XT
564;; TABLE TYPE: Translate
565;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
566 ;;
567 DW COM_CTRL_K3_END-$ ;; length of state section
568 DB CTRL_CASE ;; State ID
569 DW AT_KB+XT_KB ;; Keyboard Type
570 DB -1,-1 ;; Buffer entry for error character
571 ;; Set Flag Table
572 DW COM_CTRL_K3_T3_END-$ ;; Size of xlat table
573 DB TYPE_2_TAB ;;
574 DB 11 ;; Number of entries
575 DB 12,-1,-1 ;;
576 DB 43,-1,-1 ;;
577 DB 43,28,43 ;; valid ctl + \
578 DB 07,30,07 ;; ctl + number six key
579 DB 13,31,13 ;; ctl - or _
580 DB 16,01,16 ;; A
581 DB 17,26,17 ;; Z
582 DB 30,17,30 ;; Q
583 DB 39,13,39 ;; M
584 DB 44,23,44 ;; W
585 DB 50,-1,-1 ;; U.S. 'M'
586COM_CTRL_K3_T3_END: ;;
587 ;;
588 DW 0 ;;
589 ;;
590COM_CTRL_K3_END: ;;
591 ;;
592 ;;
593;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
594;******************************************************************************
595;; CODE PAGE: Common
596;; STATE: Alpha Lower Case
597;; KEYBOARD TYPES: All
598;; TABLE TYPE: Translate
599;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
600 ;;
601 DW COM_AL_LO_END-$ ;; length of state section
602 DB ALPHA_LOWER ;; State ID
603 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
604 DB -1,-1 ;; Buffer entry for error character
605 ;;
606 DW COM_AL_LO_T1_END-$ ;; Size of xlat table
607 DB STANDARD_TABLE ;; xlat options:
608 DB 5 ;; number of entries
609 DB 16,'a' ;; small a
610 DB 17,'z' ;; small z
611 DB 30,'q' ;; small q
612 DB 39,'m' ;; small m
613 DB 44,'w' ;; small w
614COM_AL_LO_T1_END: ;;
615 ;;
616 DW 0 ;; Size of xlat table - null table
617 ;;
618COM_AL_LO_END: ;;
619 ;;
620;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
621;; CODE PAGE: Common
622;; STATE: Alpha Upper Case
623;; KEYBOARD TYPES: All
624;; TABLE TYPE: Translate
625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
626 ;;
627 DW COM_AL_UP_END-$ ;; length of state section
628 DB ALPHA_UPPER ;; State ID
629 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
630 DB -1,-1 ;; Buffer entry for error character
631 ;;
632 DW COM_AL_UP_T1_END-$ ;; Size of xlat table
633 DB STANDARD_TABLE ;; xlat options:
634 DB 5 ;; number of entries
635 DB 16,'A' ;; caps A
636 DB 17,'Z' ;; caps Z
637 DB 30,'Q' ;; caps Q
638 DB 39,'M' ;; caps M
639 DB 44,'W' ;; caps W
640COM_AL_UP_T1_END: ;;
641 ;;
642 DW 0 ;; Size of xlat table - null table
643 ;;
644COM_AL_UP_END: ;;
645 ;;
646 ;;
647;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
648;; CODE PAGE: Common
649;; STATE: Non-Alpha Lower Case
650;; KEYBOARD TYPES: G_KB+P12
651;; TABLE TYPE: Translate
652;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
653 ;;
654 DW COM_NA_LO_K1_END-$ ;; length of state section
655 DB NON_ALPHA_LOWER ;; State ID
656 DW G_KB+P12_KB ;; Keyboard Type
657 DB -1,-1 ;; Buffer entry for error character
658 ;;
659 DW COM_NA_LO_T1_K1_END-$ ;; Size of xlat table
660 DB STANDARD_TABLE ;; xlat options:
661 DB 21 ;; number of entries
662 DB 41,"ý" ;; superscript 2
663 DB 2,"&" ;;
664 DB 3,"‚" ;; acute - e
665 DB 4,'"' ;;
666 DB 5,"'" ;;
667 DB 6,"(" ;;
668 DB 7,"-" ;;
669 DB 8,"Š" ;; grave - e
670 DB 9,"_" ;;
671 DB 10,"‡" ;; c - cedilla small
672 DB 11,"…" ;;
673 DB 12,")" ;;
674 DB 13,"=" ;;
675 DB 27,"$" ;;
676 DB 40,"—" ;; grave - u
677 DB 43,"*" ;;
678 DB 86,'<' ;; +
679 DB 50,',' ;; <
680 DB 51,';' ;; -
681 DB 52,':' ;;
682 DB 53,'!' ;;
683
684COM_NA_LO_T1_K1_END: ;;
685 ;;
686 DW 0 ;; Size of xlat table - null table
687 ;;
688COM_NA_LO_K1_END: ;;
689 ;;
690;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
691;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
692;; CODE PAGE: Common
693;; STATE: Non-Alpha Lower Case
694;; KEYBOARD TYPES: AT_KB
695;; TABLE TYPE: Translate
696;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
697 ;;
698 DW COM_NA_LO_K2_END-$ ;; length of state section
699 DB NON_ALPHA_LOWER ;; State ID
700 DW AT_KB ;; Keyboard Type
701 DB -1,-1 ;; Buffer entry for error character
702 ;;
703 DW COM_NA_LO_T1_K2_END-$ ;; Size of xlat table
704 DB STANDARD_TABLE ;; xlat options:
705 DB 20 ;; number of entries
706 DB 2,"&" ;;
707 DB 3,"‚" ;; acute - e
708 DB 4,'"' ;;
709 DB 5,"'" ;;
710 DB 6,"(" ;;
711 DB 7,"-" ;;
712 DB 8,"Š" ;; grave - e
713 DB 9,"!" ;;
714 DB 10,"‡" ;; c - cedilla small
715 DB 11,"…" ;; grave - a small
716 DB 12,")" ;;
717 DB 13,"-" ;;
718 DB 27,"$" ;;
719 DB 40,"—" ;; grave — small
720 DB 43,0E6H ;; mu symbol - æ
721 DB 41,'<' ;; +
722 DB 50,',' ;; <
723 DB 51,';' ;; -
724 DB 52,':' ;;
725 DB 53,'=' ;;
726
727COM_NA_LO_T1_K2_END: ;;
728 ;;
729 DW 0 ;; Size of xlat table - null table
730 ;;
731COM_NA_LO_K2_END: ;;
732 ;;
733;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
734;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
735;; CODE PAGE: Common
736;; STATE: Non-Alpha Lower Case
737;; KEYBOARD TYPES: XT_KB+
738;; TABLE TYPE: Translate
739;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
740 ;;
741 DW COM_NA_LO_K3_END-$ ;; length of state section
742 DB NON_ALPHA_LOWER ;; State ID
743 DW XT_KB ;; Keyboard Type
744 DB -1,-1 ;; Buffer entry for error character
745 ;;
746 DW COM_NA_LO_T1_K3_END-$ ;; Size of xlat table
747 DB STANDARD_TABLE ;; xlat options:
748 DB 20 ;; number of entries
749 DB 2,"&" ;;
750 DB 3,"‚" ;; acute - e
751 DB 4,'"' ;; ' on the AT_KB
752 DB 5,"'" ;; *** CNS **** 12/18/86 pubs wrong
753 DB 6,"(" ;;
754 DB 7,"-" ;;
755 DB 8,"Š" ;; grave - e
756 DB 9,"!" ;;
757 DB 10,"‡" ;; c - cedilla small
758 DB 11,"…" ;;
759 DB 12,")" ;;
760 DB 13,"-" ;;
761 DB 27,"$" ;;
762 DB 40,"—" ;; grave — small
763 DB 41,0E6H ;; mu symbol - æ
764 DB 43,'<' ;; +
765 DB 50,',' ;; <
766 DB 51,';' ;; -
767 DB 52,':' ;;
768 DB 53,'=' ;;
769COM_NA_LO_T1_K3_END: ;;
770 ;;
771 DW 0 ;; Size of xlat table - null table
772 ;;
773COM_NA_LO_K3_END: ;;
774 ;;
775;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
776;; CODE PAGE: Common
777;; STATE: Non-Alpha Upper Case
778;; KEYBOARD TYPES: G_KB+P12
779;; TABLE TYPE: Translate
780;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
781 ;;
782 DW COM_NA_UP_K1_END-$ ;; length of state section
783 DB NON_ALPHA_UPPER ;; State ID
784 DW G_KB+P12_KB ;; Keyboard Type
785 DB -1,-1 ;; Buffer entry for error character
786 ;;
787 DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table
788 DB STANDARD_TABLE ;; xlat options:
789 DB 21 ;; number of entries
790 DB 2,'1' ;;
791 DB 3,'2' ;;
792 DB 4,'3' ;;
793 DB 5,'4' ;;
794 DB 6,'5' ;;
795 DB 7,'6' ;;
796 DB 8,'7' ;;
797 DB 9,'8' ;;
798 DB 10,'9' ;;
799 DB 11,'0' ;;
800 DB 12,0F8H ;; degree symbol
801 DB 13,"+" ;; plus sign
802 DB 27,09CH ;; œ symbol
803 DB 40,'%' ;;
804 DB 41,"ü" ;; superscript 3
805 DB 43,0E6H ;; æ - mu symbol
806 DB 86,'>' ;;
807 DB 50,'?' ;;
808 DB 51,'.' ;;
809 DB 52,'/' ;;
810 DB 53,'+' ;;
811COM_NA_UP_T1_K1_END: ;;
812 ;;
813 DW 0 ;; Size of xlat table - null table
814 ;;
815COM_NA_UP_K1_END: ;;
816 ;;
817 ;;
818;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
819;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
820;; CODE PAGE: Common
821;; STATE: Non-Alpha Upper Case
822;; KEYBOARD TYPES: AT
823;; TABLE TYPE: Translate
824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
825 ;;
826 DW COM_NA_UP_K2_END-$ ;; length of state section
827 DB NON_ALPHA_UPPER ;; State ID
828 DW AT_KB ;; Keyboard Type
829 DB -1,-1 ;; Buffer entry for error character
830 ;;
831 DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table
832 DB STANDARD_TABLE ;; xlat options:
833 DB 20 ;; number of entries
834 DB 2,'1' ;;
835 DB 3,'2' ;;
836 DB 4,'3' ;;
837 DB 5,'4' ;;
838 DB 6,'5' ;;
839 DB 7,'6' ;;
840 DB 8,'7' ;;
841 DB 9,'8' ;;
842 DB 10,'9' ;;
843 DB 11,'0' ;;
844 DB 12,0F8H ;; degree symbol
845 DB 13,"_" ;; underscore
846 DB 43,09CH ;; œ symbol
847 DB 40,'%' ;;
848 DB 27,"*" ;; asterisk
849 DB 41,'>' ;;
850 DB 50,'?' ;;
851 DB 51,'.' ;;
852 DB 52,'/' ;;
853 DB 53,'+' ;;
854COM_NA_UP_T1_K2_END: ;;
855 ;;
856 DW 0 ;; Size of xlat table - null table
857 ;;
858COM_NA_UP_K2_END: ;;
859 ;;
860 ;;
861;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
862;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
863;; CODE PAGE: Common
864;; STATE: Non-Alpha Upper Case
865;; KEYBOARD TYPES: XT_KB+
866;; TABLE TYPE: Translate
867;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
868 ;;
869 DW COM_NA_UP_K3_END-$ ;; length of state section
870 DB NON_ALPHA_UPPER ;; State ID
871 DW XT_KB+P12_KB ;; Keyboard Type
872 DB -1,-1 ;; Buffer entry for error character
873 ;;
874 DW COM_NA_UP_T1_K3_END-$ ;; Size of xlat table
875 DB STANDARD_TABLE ;; xlat options:
876 DB 20 ;; number of entries
877 DB 2,'1' ;;
878 DB 3,'2' ;;
879 DB 4,'3' ;;
880 DB 5,'4' ;;
881 DB 6,'5' ;;
882 DB 7,'6' ;;
883 DB 8,'7' ;;
884 DB 9,'8' ;;
885 DB 10,'9' ;;
886 DB 11,'0' ;;
887 DB 12,0F8H ;; degree symbol
888 DB 13,"_" ;; underscore
889 DB 41,09CH ;; œ symbol
890 DB 40,'%' ;;
891 DB 27,"*" ;; asterisk
892 DB 43,'>' ;;
893 DB 50,'?' ;;
894 DB 51,'.' ;;
895 DB 52,'/' ;;
896 DB 53,'+' ;;
897COM_NA_UP_T1_K3_END: ;;
898 ;;
899 DW 0 ;; Size of xlat table - null table
900 ;;
901COM_NA_UP_K3_END: ;;
902 ;;
903 ;;
904;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
905;; CODE PAGE: Common
906;; STATE: Third Shift
907;; KEYBOARD TYPES: G_KB +P12
908;; TABLE TYPE: Translate
909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
910 ;;
911 DW COM_THIRD_K1_END-$ ;; length of state section
912 DB THIRD_SHIFT ;; State ID
913 DW G_KB+P12_KB ;; Keyboard Type
914 DB -1,-1 ;; Buffer entry for error character
915 ;;
916 DW COM_THIRD_T1_K1_END-$ ;; Size of xlat table
917 DB STANDARD_TABLE ;; xlat options:
918 DB 11 ;; number of entries
919 DB 3,'~' ;;
920 DB 4,'#' ;;
921 DB 5,'{' ;;
922 DB 6,'[' ;;
923 DB 7,'|' ;;
924 DB 8,'`' ;; grave symbol not a dead key rep
925 DB 9,'\' ;;
926 DB 10,'^' ;; circumflex (caret)
927 DB 11,'@' ;;
928 DB 12,']' ;;
929 DB 13,'}' ;;
930COM_THIRD_T1_K1_END: ;;
931 ;;
932 DW 0 ;; Last xlat table
933COM_THIRD_K1_END: ;;
934 ;;
935;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
936;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
937;; CODE PAGE: Common
938;; STATE: Third Shift
939;; KEYBOARD TYPES: AT_KB
940;; TABLE TYPE: Translate
941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
942 ;;
943 DW COM_THIRD_K2_END-$ ;; length of state section
944 DB THIRD_SHIFT ;; State ID
945 DW AT_KB ;; Keyboard Type
946 DB -1,-1 ;; Buffer entry for error character
947 ;;
948 DW COM_THIRD_T1_K2_END-$ ;; Size of xlat table
949 DB STANDARD_TABLE ;; xlat options:
950 DB 6 ;; number of entries
951 DB 4,'#' ;;
952 DB 26,'[' ;;
953 DB 27,']' ;;
954 DB 41,'\' ;;
955 DB 3,'@' ;;
956 DB 7,'^' ;; circumflex (caret)
957COM_THIRD_T1_K2_END: ;;
958 ;;
959 DW 0 ;; Last xlat table
960COM_THIRD_K2_END: ;;
961 ;;
962;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
963;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
964;; CODE PAGE: Common
965;; STATE: Third Shift
966;; KEYBOARD TYPES: XT_KB+
967;; TABLE TYPE: Translate
968;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
969 ;;
970 DW COM_THIRD_K3_END-$ ;; length of state section
971 DB THIRD_SHIFT ;; State ID
972 DW XT_KB ;; Keyboard Type
973 DB -1,-1 ;; Buffer entry for error character
974 ;;
975 DW COM_THIRD_T1_K3_END-$ ;; Size of xlat table
976 DB STANDARD_TABLE ;; xlat options:
977 DB 6 ;; number of entries
978 DB 4,'#' ;;
979 DB 26,'[' ;;
980 DB 27,']' ;;
981 DB 43,'\' ;;
982 DB 3,'@' ;;
983 DB 7,'^' ;; circumflex (caret)
984COM_THIRD_T1_K3_END: ;;
985 ;;
986 DW 0 ;; Last xlat table
987COM_THIRD_K3_END: ;;
988 ;;
989;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
990;; CODE PAGE: Common
991;; STATE: Acute Lower Case
992;; KEYBOARD TYPES: All
993;; TABLE TYPE: Translate
994;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
995 ;;
996 DW COM_AC_LO_END-$ ;; length of state section
997 DB ACUTE_LOWER ;; State ID
998 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
999 DB 39,0 ;; error character = standalone accent
1000 ;;
1001 DW COM_AC_LO_T1_END-$ ;; Size of xlat table
1002 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1003 DB 1 ;; number of scans
1004 DB 18,'‚' ;; scan code,ASCII - e
1005COM_AC_LO_T1_END: ;;
1006 ;;
1007 DW 0 ;; Size of xlat table - null table
1008 ;;
1009COM_AC_LO_END: ;;
1010 ;;
1011;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1012;; CODE PAGE: Common
1013;; STATE: Acute Upper Case
1014;; KEYBOARD TYPES: All
1015;; TABLE TYPE: Translate
1016;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1017;; ;;
1018;; DW COM_AC_UP_END-$ ;; length of state section
1019;; DB ACUTE_UPPER ;; State ID
1020;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1021;; DB 39,0 ;; error character = standalone accent
1022;; ;;
1023;; DW COM_AC_UP_T1_END-$ ;; Size of xlat table
1024;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1025;; DB 2 ;; number of scans
1026;; DB 18,'' ;; scan code,ASCII - e
1027;;COM_AC_UP_T1_END: ;;
1028;; ;;
1029;; DW 0 ;; Size of xlat table - null table
1030;; ;;
1031;;COM_AC_UP_END: ;;
1032;; ;;
1033;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1034;; CODE PAGE: Common
1035;; STATE: Acute Space Bar
1036;; KEYBOARD TYPES: All
1037;; TABLE TYPE: Translate
1038;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1039;; ;;
1040;; DW COM_AC_SP_END-$ ;; length of state section
1041;; DB ACUTE_SPACE ;; State ID
1042;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1043;; DB 39,0 ;; error character = standalone accent
1044;; ;;
1045;; DW COM_AC_SP_T1_END-$ ;; Size of xlat table
1046;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1047;; DB 1 ;; number of scans
1048;; DB 57,39 ;; scan code,ASCII - SPACE
1049;;COM_AC_SP_T1_END: ;;
1050;; ;;
1051;; DW 0 ;; Size of xlat table - null table
1052;; ;;
1053;;COM_AC_SP_END: ;;
1054;; ;;
1055;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1056;; CODE PAGE: Common
1057;; STATE: Diaresis Lower Case
1058;; KEYBOARD TYPES: All
1059;; TABLE TYPE: Translate
1060;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1061 ;;
1062 DW COM_DI_LO_END-$ ;; length of state section
1063 DB DIARESIS_LOWER ;; State ID
1064 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1065 DB 249,0 ;; error character = standalone accent
1066 ;;
1067 DW COM_DI_LO_T1_END-$ ;; Size of xlat table
1068 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1069 DB 6 ;; number of scans
1070 DB 18,'‰' ;; scan code,ASCII - e
1071 DB 16,'„' ;; scan code,ASCII - a
1072 DB 24,'”' ;; scan code,ASCII - o
1073 DB 22,'' ;; scan code,ASCII - u
1074 DB 23,'‹' ;; scan code,ASCII - i
1075 DB 21,'˜' ;; scan code,ASCII - y
1076COM_DI_LO_T1_END: ;;
1077 ;;
1078 DW 0 ;; Size of xlat table - null table
1079 ;;
1080COM_DI_LO_END: ;; length of state section
1081 ;;
1082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1083;; CODE PAGE: Common
1084;; STATE: Diaresis Upper Case
1085;; KEYBOARD TYPES: All
1086;; TABLE TYPE: Translate
1087;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1088 ;;
1089 DW COM_DI_UP_END-$ ;; length of state section
1090 DB DIARESIS_UPPER ;; State ID
1091 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1092 DB 249,0 ;; error character = standalone accent
1093 ;;
1094 DW COM_DI_UP_T1_END-$ ;; Size of xlat table
1095 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1096 DB 3 ;; number of scans
1097 DB 16,'Ž' ;; scan code,ASCII - a
1098 DB 24,'™' ;; scan code,ASCII - o
1099 DB 22,'š' ;; scan code,ASCII - u
1100COM_DI_UP_T1_END: ;;
1101 ;;
1102 DW 0 ;; Size of xlat table - null table
1103 ;;
1104COM_DI_UP_END: ;; length of state section
1105 ;;
1106 ;;
1107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1108;; CODE PAGE: Common
1109;; STATE: Diaresis Space Bar
1110;; KEYBOARD TYPES: All
1111;; TABLE TYPE: Translate
1112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1113 ;;
1114 DW COM_DI_SP_END-$ ;; length of state section
1115 DB DIARESIS_SPACE ;; State ID
1116 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1117 DB 249,0 ;; error character = standalone accent
1118 ;;
1119 DW COM_DI_SP_T1_END-$ ;; Size of xlat table
1120 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1121 DB 1 ;; number of scans
1122 DB 57,249 ;; error character = standalone accent
1123COM_DI_SP_T1_END: ;;
1124 ;;
1125 DW 0 ;; Size of xlat table - null table
1126COM_DI_SP_END: ;; length of state section
1127 ;;
1128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1129;; CODE PAGE: Common
1130;; STATE: Grave Lower
1131;; KEYBOARD TYPES: All
1132;; TABLE TYPE: Translate
1133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1134;; ;;
1135;; DW COM_GR_LO_END-$ ;; length of state section
1136;; DB GRAVE_LOWER ;; State ID
1137;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1138;; DB 96,0 ;; error character = standalone accent
1139;; ;;
1140;; DW COM_GR_LO_T1_END-$ ;; Size of xlat table
1141;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1142;; DB 5 ;; number of scans
1143;; DB 18,'Š' ;; scan code,ASCII - e
1144;; DB 30,'…' ;; scan code,ASCII - a
1145;; DB 24,'•' ;; scan code,ASCII - o
1146;; DB 22,'—' ;; scan code,ASCII - u
1147;; DB 23,'' ;; scan code,ASCII - i
1148;;COM_GR_LO_T1_END: ;;
1149;; ;;
1150;; DW 0 ;; Size of xlat table - null table
1151;; ;;
1152;;COM_GR_LO_END: ;; length of state section
1153;; ;;
1154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1155;; CODE PAGE: Common
1156;; STATE: Grave Space Bar
1157;; KEYBOARD TYPES: All
1158;; TABLE TYPE: Translate
1159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1160;; ;;
1161;; DW COM_GR_SP_END-$ ;; length of state section
1162;; DB GRAVE_SPACE ;; State ID
1163;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1164;; DB 96,0 ;; error character = standalone accent
1165;; ;;
1166;; DW COM_GR_SP_T1_END-$ ;; Size of xlat table
1167;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1168;; DB 1 ;; number of scans
1169;; DB 57,96 ;; STANDALONE GRAVE
1170;;COM_GR_SP_T1_END: ;;
1171;; ;;
1172;; DW 0 ;; Size of xlat table - null table
1173;; ;;
1174;;COM_GR_SP_END: ;; length of state section
1175;; ;;
1176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1177;; CODE PAGE: Common
1178;; STATE: Circumflex Lower
1179;; KEYBOARD TYPES: All
1180;; TABLE TYPE: Translate
1181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1182 ;;
1183 DW COM_CI_LO_END-$ ;; length of state section
1184 DB CIRCUMFLEX_LOWER ;; State ID
1185 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1186 DB 94,0 ;; error character = standalone accent
1187 ;;
1188 DW COM_CI_LO_T1_END-$ ;; Size of xlat table
1189 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1190 DB 5 ;; number of scans
1191 DB 16,'ƒ' ;; scan code,ASCII - a
1192 DB 18,'ˆ' ;; scan code,ASCII - e
1193 DB 24,'“' ;; scan code,ASCII - o
1194 DB 22,'–' ;; scan code,ASCII - u
1195 DB 23,'Œ' ;; scan code,ASCII - i
1196COM_CI_LO_T1_END: ;;
1197 ;;
1198 DW 0 ;;
1199 ;;
1200COM_CI_LO_END: ;;
1201 ;;
1202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1203;; CODE PAGE: Common
1204;; STATE: Circumflex Space Bar
1205;; KEYBOARD TYPES: All
1206;; TABLE TYPE: Translate
1207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1208 ;;
1209 DW COM_CI_SP_END-$ ;; length of state section
1210 DB CIRCUMFLEX_SPACE ;; State ID
1211 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1212 DB 94,0 ;; error character = standalone accent
1213 ;;
1214 DW COM_CI_SP_T1_END-$ ;; Size of xlat table
1215 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1216 DB 1 ;; number of scans
1217 DB 57,94 ;; STANDALONE CIRCUMFLEX
1218COM_CI_SP_T1_END: ;;
1219 ;;
1220 DW 0 ;; Size of xlat table - null table
1221 ;;
1222COM_CI_SP_END: ;; length of state section
1223 ;;
1224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1225 DW 0 ;; Last State
1226COMMON_XLAT_END: ;;
1227 ;;
1228 ;;
1229 ;;
1230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1231;;***************************************
1232;; FR Specific Translate Section for 437
1233;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE.
1234;;***************************************
1235;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1236 ;;
1237 PUBLIC FR_437_XLAT ;;
1238FR_437_XLAT: ;;
1239 ;;
1240 DW CP437_XLAT_END-$ ;; length of section
1241 DW 437 ;;
1242;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1243;; CODE PAGE: 437
1244;; STATE: Non-Alpha Upper Case
1245;; KEYBOARD TYPES: G_KB+ p12
1246;; TABLE TYPE: Translate
1247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1248 ;;
1249 DW CP437_NA_UP_K1_END-$ ;; length of state section
1250 DB NON_ALPHA_UPPER ;; State ID
1251 DW G_KB+P12_KB ;; Keyboard Type
1252 DB -1,-1 ;; default ignore error state
1253 ;;
1254 DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table
1255 DB STANDARD_TABLE ;; xlat options: **** CNS 12/18
1256 DB 1 ;; number of scans
1257 DB 53,015H ;; Section symbol - 
1258CP437_NA_UP_T1_K1_END: ;;
1259 ;;
1260 DW 0 ;; Size of xlat table - null table
1261 ;;
1262CP437_NA_UP_K1_END: ;;
1263 ;;
1264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1266;; CODE PAGE: 437
1267;; STATE: Non-Alpha Lower Case
1268;; KEYBOARD TYPES: AT + XT +
1269;; TABLE TYPE: Translate
1270;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1271 ;;
1272 DW CP437_NA_LO_K1_END-$ ;; length of state section
1273 DB NON_ALPHA_LOWER ;; State ID
1274 DW AT_KB+XT_KB ;; Keyboard Type
1275 DB -1,-1 ;; default ignore error state
1276 ;;
1277 DW CP437_NA_LO_T1_K1_END-$ ;; Size of xlat table
1278 DB STANDARD_TABLE ;; xlat options: **** CNS 12/18
1279 DB 1 ;; number of scans
1280 DB 7,015H ;; Section symbol - 
1281CP437_NA_LO_T1_K1_END: ;;
1282 ;;
1283 DW 0 ;; Size of xlat table - null table
1284 ;;
1285CP437_NA_LO_K1_END: ;;
1286 ;;
1287;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1288;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1289;; CODE PAGE: 437 ???????????????????May need change....
1290;; STATE: Third Shift
1291;; KEYBOARD TYPES: G_KB+P12
1292;; TABLE TYPE: Translate
1293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1294 ;;
1295 DW CP437_THIRD_END-$ ;; length of state section
1296 DB THIRD_SHIFT ;; State ID
1297 DW G_KB+P12_KB ;; Keyboard Type
1298 DB -1,-1 ;; default ignore error state
1299 ;;
1300 DW CP437_THIRD_T1_END-$ ;; Size of xlat table
1301 DB STANDARD_TABLE ;; xlat options: *** CNS 12/18
1302 DB 1 ;; number of scans
1303 DB 27,'$' ;; dollar currency symbol
1304CP437_THIRD_T1_END: ;;
1305 ;;
1306 DW 0 ;; Size of xlat table - null table
1307 ;;
1308CP437_THIRD_END: ;;
1309 ;;
1310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1311;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1312 DW 0 ;; LAST STATE
1313 ;;
1314CP437_XLAT_END: ;;
1315 ;;
1316;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1317;;***************************************
1318;; FR Specific Translate Section for 850
1319;;***************************************
1320;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1321 ;;
1322 PUBLIC FR_850_XLAT ;;
1323FR_850_XLAT: ;;
1324 ;;
1325 DW CP850_XLAT_END-$ ;; length of section
1326 DW 850 ;;
1327 ;;
1328 ;;
1329;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1330;; CODE PAGE: 850
1331;; STATE: Non-Alpha Upper Case
1332;; KEYBOARD TYPES: G_KB + P12
1333;; TABLE TYPE: Translate
1334;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1335 ;;
1336 DW CP850_NA_UP_K1_END-$ ;; length of state section
1337 DB NON_ALPHA_UPPER ;; State ID
1338 DW G_KB+P12_KB ;; Keyboard Type
1339 DB -1,-1 ;; default ignore error state
1340 ;;
1341 DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table
1342 DB STANDARD_TABLE ;; xlat options: ***** CNS 12/18
1343 DB 1 ;; number of scans
1344 DB 53,0F5H ;; Section symbol - 
1345CP850_NA_UP_T1_K1_END: ;;
1346 ;;
1347 DW 0 ;; Size of xlat table - null table
1348 ;;
1349CP850_NA_UP_K1_END: ;;
1350 ;;
1351;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1352;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1353;; CODE PAGE: 850
1354;; STATE: Non-Alpha Lower Case
1355;; KEYBOARD TYPES: AT_KB+XT+
1356;; TABLE TYPE: Translate
1357;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1358 ;;
1359 DW CP850_NA_LO_K1_END-$ ;; length of state section
1360 DB NON_ALPHA_LOWER ;; State ID
1361 DW AT_KB+XT_KB ;; Keyboard Type
1362 DB -1,-1 ;; default ignore error state
1363 ;;
1364 DW CP850_NA_LO_T1_K1_END-$ ;; Size of xlat table
1365 DB STANDARD_TABLE ;; xlat options: ***** CNS **** 12/18
1366 DB 1 ;; number of scans
1367 DB 7,0F5H ;; Section symbol - 
1368CP850_NA_LO_T1_K1_END: ;;
1369 ;;
1370 DW 0 ;; Size of xlat table - null table
1371 ;;
1372CP850_NA_LO_K1_END: ;;
1373 ;;
1374;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1376;; CODE PAGE: 850
1377;; STATE: Third Shift
1378;; KEYBOARD TYPES: G_KB+P12
1379;; TABLE TYPE: Translate
1380;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1381 ;;
1382 DW CP850_THIRD_END-$ ;; length of state section
1383 DB THIRD_SHIFT ;; State ID
1384 DW G_KB+P12_KB ;; Keyboard Type
1385 DB -1,-1 ;; default ignore error state
1386 ;;
1387 DW CP850_THIRD_T1_END-$ ;; Size of xlat table
1388 DB STANDARD_TABLE ;; xlat options: *** CNS 12/18
1389 DB 1 ;; number of scans
1390 DB 27,0CFH ;; international currency symbol
1391CP850_THIRD_T1_END: ;;
1392 ;;
1393 DW 0 ;; Size of xlat table - null table
1394 ;;
1395CP850_THIRD_END: ;;
1396 ;;
1397;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1398;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1399;; CODE PAGE: 850
1400;; STATE: Acute Lower Case
1401;; KEYBOARD TYPES: All
1402;; TABLE TYPE: Translate
1403;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1404;; ;;
1405;; DW CP850_AC_LO_END-$ ;; length of state section
1406;; DB ACUTE_LOWER ;; State ID
1407;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1408;; DB 39,0 ;; error character = standalone accent
1409;; ;;
1410;; DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
1411;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1412;; DB 1 ;; number of scans
1413;; DB 21,0ECH ;; y acute
1414;;CP850_AC_LO_T1_END: ;;
1415;; ;;
1416;; DW 0 ;; Size of xlat table - null table
1417;; ;;
1418;;CP850_AC_LO_END: ;;
1419;; ;;
1420;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1421;;;; CODE PAGE: 850
1422;;;; STATE: Acute Upper Case
1423;;;; KEYBOARD TYPES: All
1424;;;; TABLE TYPE: Translate
1425;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1426;; ;;
1427;; DW CP850_AC_UP_END-$ ;; length of state section
1428;; DB ACUTE_UPPER ;; State ID
1429;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1430;; DB 39,0 ;; error character = standalone accent
1431;; ;;
1432;; DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
1433;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1434;; DB 5 ;; number of scans
1435;; DB 30,0B5H ;; A acute
1436;; DB 23,0D6H ;; I acute
1437;; DB 24,0E0H ;; O acute
1438;; DB 22,0E9H ;; U acute
1439;; DB 21,0EDH ;; Y acute
1440;;CP850_AC_UP_T1_END: ;;
1441;; ;;
1442;; DW 0 ;; Size of xlat table - null table
1443;; ;;
1444;;CP850_AC_UP_END: ;;
1445;; ;;
1446;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1447;;;; CODE PAGE: 850
1448;;;; STATE: Diaresis Upper
1449;;;; KEYBOARD TYPES: All
1450;;; TABLE TYPE: Translate
1451;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1452 ;;
1453 DW CP850_DI_UP_END-$ ;; length of state section
1454 DB DIARESIS_UPPER ;; State ID
1455 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1456 DB 249,0 ;; error character = standalone accent
1457 ;;
1458 DW CP850_DI_UP_T1_END-$ ;; Size of xlat table
1459 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1460 DB 2 ;; number of scans
1461 DB 18,0D3H ;; E diaeresis
1462 DB 23,0D8H ;; I diaeresis
1463 CP850_DI_UP_T1_END: ;;
1464 ;;
1465 DW 0 ;; Size of xlat table - null table
1466 ;;
1467 CP850_DI_UP_END: ;; length of state section
1468 ;;
1469;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1470;;; CODE PAGE: 850
1471;; STATE: Grave Upper
1472;; KEYBOARD TYPES: All
1473;; TABLE TYPE: Translate
1474;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1475;; ;;
1476;; DW CP850_GR_UP_END-$ ;; length of state section
1477;; DB GRAVE_UPPER ;; State ID
1478;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1479;; DB 96,0 ;; error character = standalone accent
1480;; ;;
1481;; DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
1482;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1483;; DB 5 ;; number of scans
1484;; DB 30,0B7H ;; A grave
1485;; DB 18,0D4H ;; E grave
1486;; DB 23,0DEH ;; I grave
1487;; DB 24,0E3H ;; O grave
1488;; DB 22,0EBH ;; U grave
1489;;CP850_GR_UP_T1_END: ;;
1490;; ;;
1491;; DW 0 ;; Size of xlat table - null table
1492;; ;;
1493;;CP850_GR_UP_END: ;; length of state section
1494;; ;;
1495;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1496;;;; CODE PAGE: 850
1497;;;; STATE: Circumflex Upper
1498;;;; KEYBOARD TYPES: All
1499;;;;; TABLE TYPE: Translate
1500;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1501 ;;
1502 DW CP850_CI_UP_END-$ ;; length of state section
1503 DB CIRCUMFLEX_UPPER ;; State ID
1504 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1505 DB 94,0 ;; error character = standalone accent
1506 ;;
1507 DW CP850_CI_UP_T1_END-$ ;; Size of xlat table
1508 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1509 DB 5 ;; number of scans
1510 DB 16,0B6H ;; A circumflex
1511 DB 18,0D2H ;; E circumflex
1512 DB 23,0D7H ;; I circumflex
1513 DB 24,0E2H ;; O circumflex
1514 DB 22,0EAH ;; U circumflex
1515 CP850_CI_UP_T1_END: ;;
1516 ;;
1517 DW 0 ;; Size of xlat table - null table
1518 ;;
1519 CP850_CI_UP_END: ;; length of state section
1520 ;;
1521;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1522 ;;
1523 DW 0 ;; LAST STATE
1524 ;;
1525CP850_XLAT_END: ;;
1526;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1527 ;;
1528CODE ENDS ;;
1529 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFFR120.ASM b/v4.0/src/DEV/KEYBOARD/KDFFR120.ASM
new file mode 100644
index 0000000..3fdb453
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFFR120.ASM
@@ -0,0 +1,2307 @@
1; ACUTE lc y added
2; ****** CNS 12/18
3; ****** CNS 01/21 NUM PAD
4 PAGE ,132
5 TITLE DOS - Keyboard Definition File
6
7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8;; DOS - - NLS Support - Keyboard Defintion File
9;; (c) Copyright 1988 Microsoft
10;;
11;; This file contains the keyboard tables for Belgium.
12;;
13;; Linkage Instructions:
14;; Refer to KDF.ASM.
15;;
16;; Modded from French - DTF 11-Sep-86
17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
18 ;;
19 INCLUDE KEYBSHAR.INC ;;
20 INCLUDE POSTEQU.INC ;;
21 INCLUDE KEYBMAC.INC ;;
22 ;;
23 PUBLIC FR1_LOGIC ;;
24 PUBLIC FR1_437_XLAT ;;
25 PUBLIC FR1_850_XLAT ;;
26 ;;
27CODE SEGMENT PUBLIC 'CODE' ;;
28 ASSUME CS:CODE,DS:CODE ;;
29 ;;
30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
31;; Standard translate table options are a liner search table
32;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
34 ;;
35STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
36 ;;
37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
38;;***************************************
39;; FR State Logic
40;;***************************************
41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
42 ;;
43 ;;
44FR1_LOGIC:
45
46 DW LOGIC_END-$ ;; length
47 ;;
48 DW TYPEWRITER_CAPS_LK ;; special features
49 ;;
50 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
51 ;;
52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
53;; OPTIONS: If we find a scan match in
54;; an XLATT or SET_FLAG operation then
55;; exit from INT 9.
56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
57 ;;
58 OPTION EXIT_IF_FOUND ;;
59 ;;
60 ;;
61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
62;; Dead key definitions must come before
63;; dead key translations to handle
64;; dead key + dead key.
65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
66 ;;
67 IFF EITHER_ALT,NOT ;;
68 ANDF EITHER_CTL,NOT ;;
69 IFF CAPS_STATE
70 SET_FLAG DEAD_UPPER
71 ELSEF
72 IFF EITHER_SHIFT ;;
73 SET_FLAG DEAD_UPPER ;;
74 ELSEF ;;
75 SET_FLAG DEAD_LOWER ;;
76 ENDIFF ;;
77 ENDIFF
78 ELSEF ;;
79 IFF EITHER_SHIFT,NOT ;;
80 IFKBD XT_KB+AT_KB
81 IFF EITHER_CTL ;;
82 ANDF ALT_SHIFT ;;
83 SET_FLAG DEAD_THIRD ;;
84 ENDIFF ;;
85 ELSEF
86 IFF R_ALT_SHIFT ;;
87 ANDF EITHER_CTL,NOT ;;
88 ANDF LC_E0,NOT ;;
89 SET_FLAG DEAD_THIRD ;;
90 ENDIFF ;;
91 ENDIFF
92 ENDIFF
93 ENDIFF ;;
94 ;;
95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
96;; ACUTE ACCENT TRANSLATIONS
97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
98 ;;
99ACUTE_PROC: ;;
100 ;;
101 IFF ACUTE,NOT ;;
102 GOTO TILDE_PROC ;;
103 ENDIFF ;;
104 ;;
105 RESET_NLS ;;
106 IFF R_ALT_SHIFT,NOT ;;
107 XLATT ACUTE_SPACE ;;
108 ENDIFF ;;
109 IFF EITHER_CTL,NOT ;;
110 ANDF EITHER_ALT,NOT ;;
111 IFF EITHER_SHIFT ;;
112 IFF CAPS_STATE ;;
113 XLATT ACUTE_LOWER ;;
114 ELSEF ;;
115 XLATT ACUTE_UPPER ;;
116 ENDIFF ;;
117 ELSEF ;;
118 IFF CAPS_STATE ;;
119 XLATT ACUTE_UPPER ;;
120 ELSEF ;;
121 XLATT ACUTE_LOWER ;;
122 ENDIFF ;;
123 ENDIFF ;;
124 ENDIFF ;;
125 ;;
126INVALID_ACUTE: ;;
127 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
128 BEEP ;; failed or we are ina bad shift state.
129 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
130 ;; through to generate the second char.
131 ;; Note that the dead key flag will be
132 ;; reset before we get here.
133 ;;
134 ;;
135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
136;; TILDE ACCENT TRANSLATIONS
137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
138 ;;
139TILDE_PROC: ;;
140 ;;
141 IFF TILDE,NOT ;;
142 GOTO DIARESIS_PROC ;;
143 ENDIFF ;;
144 RESET_NLS ;;
145 IFF R_ALT_SHIFT,NOT ;;
146 XLATT TILDE_SPACE ;;
147 ENDIFF ;;
148 IFF EITHER_CTL,NOT ;;
149 ANDF EITHER_ALT,NOT ;;
150 IFF EITHER_SHIFT ;;
151 IFF CAPS_STATE ;;
152 XLATT TILDE_LOWER ;;
153 ELSEF ;;
154 XLATT TILDE_UPPER ;;
155 ENDIFF ;;
156 ELSEF ;;
157 IFF CAPS_STATE,NOT ;;
158 XLATT TILDE_LOWER ;;
159 ELSEF ;;
160 XLATT TILDE_UPPER ;;
161 ENDIFF ;;
162 ENDIFF ;;
163 ENDIFF ;;
164 ;;
165INVALID_TILDE: ;;
166 PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent
167 BEEP ;; Invalid dead key combo.
168 GOTO NON_DEAD ;;
169 ;;
170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
171;; DIARESIS ACCENT TRANSLATIONS
172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
173 ;;
174DIARESIS_PROC: ;;
175 ;;
176 IFF DIARESIS,NOT ;;
177 GOTO GRAVE_PROC ;;
178 ENDIFF ;;
179 ;;
180 RESET_NLS ;;
181 IFF R_ALT_SHIFT,NOT ;;
182 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
183 ENDIFF ;;
184 IFF EITHER_CTL,NOT ;;
185 ANDF EITHER_ALT,NOT ;;
186 IFF EITHER_SHIFT ;;
187 IFF CAPS_STATE ;;
188 XLATT DIARESIS_LOWER ;;
189 ELSEF ;;
190 XLATT DIARESIS_UPPER ;;
191 ENDIFF ;;
192 ELSEF ;;
193 IFF CAPS_STATE ;;
194 XLATT DIARESIS_UPPER ;;
195 ELSEF ;;
196 XLATT DIARESIS_LOWER ;;
197 ENDIFF ;;
198 ENDIFF ;;
199 ENDIFF ;;
200 ;;
201INVALID_DIARESIS: ;;
202 PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent
203 BEEP ;; Invalid dead key combo.
204 GOTO NON_DEAD ;;
205 ;;
206;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
207;; GRAVE ACCENT TRANSLATIONS
208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
209 ;;
210GRAVE_PROC: ;;
211 ;;
212 IFF GRAVE,NOT ;;
213 GOTO CIRCUMFLEX_PROC ;;
214 ENDIFF ;;
215 ;;
216 RESET_NLS ;;
217 IFF R_ALT_SHIFT,NOT ;;
218 XLATT GRAVE_SPACE ;;
219 ENDIFF ;;
220 IFF EITHER_CTL,NOT ;;
221 ANDF EITHER_ALT,NOT ;;
222 IFF EITHER_SHIFT ;;
223 IFF CAPS_STATE ;;
224 XLATT GRAVE_LOWER ;;
225 ELSEF ;;
226 XLATT GRAVE_UPPER ;;
227 ENDIFF ;;
228 ELSEF ;;
229 IFF CAPS_STATE,NOT ;;
230 XLATT GRAVE_LOWER ;;
231 ELSEF ;;
232 XLATT GRAVE_UPPER ;;
233 ENDIFF ;;
234 ENDIFF ;;
235 ENDIFF ;;
236 ;;
237INVALID_GRAVE: ;;
238 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
239 BEEP ;; Invalid dead key combo.
240 GOTO NON_DEAD ;;
241 ;;
242;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
243;; CIRCUMFLEX ACCENT TRANSLATIONS
244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
245 ;;
246CIRCUMFLEX_PROC: ;;
247 ;;
248 IFF CIRCUMFLEX,NOT ;;
249 GOTO NON_DEAD ;;
250 ENDIFF ;;
251 ;;
252 RESET_NLS ;;
253 IFF R_ALT_SHIFT,NOT ;;
254 XLATT CIRCUMFLEX_SPACE ;;
255 ENDIFF ;;
256 IFF EITHER_CTL,NOT ;;
257 ANDF EITHER_ALT,NOT ;;
258 IFF EITHER_SHIFT ;;
259 IFF CAPS_STATE ;;
260 XLATT CIRCUMFLEX_LOWER ;;
261 ELSEF ;;
262 XLATT CIRCUMFLEX_UPPER ;;
263 ENDIFF ;;
264 ELSEF ;;
265 IFF CAPS_STATE,NOT ;;
266 XLATT CIRCUMFLEX_LOWER ;;
267 ELSEF ;;
268 XLATT CIRCUMFLEX_UPPER ;;
269 ENDIFF ;;
270 ENDIFF ;;
271 ENDIFF ;;
272 ;;
273INVALID_CIRCUMFLEX: ;;
274 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
275 BEEP ;; Invalid dead key combo.
276 GOTO NON_DEAD ;;
277 ;;
278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
279;; Upper, lower and third shifts
280;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
281 ;;
282;***************************
283NON_DEAD: ;;
284;ADDED FOR DIVIDE SIGN ;;
285 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
286 ANDF LC_E0 ;; the "/" on the numeric pad of the
287 IFF EITHER_CTL,NOT
288 ANDF EITHER_ALT,NOT
289 XLATT DIVIDE_SIGN ;;
290 ENDIFF
291 EXIT_STATE_LOGIC ;;
292 ENDIFF ;;
293;BD END OF ADDITION
294;****************************
295;NON_DEAD: ;;
296; ;;
297; IFKBD G_KB+P12_KB ;; Avoid accidentally translating
298; ANDF LC_E0 ;; the "/" on the numeric pad of the
299; EXIT_STATE_LOGIC ;; G keyboard
300; ENDIFF ;;
301 ;;
302 IFF EITHER_ALT,NOT ;;
303 ANDF EITHER_CTL,NOT ;;
304 IFF EITHER_SHIFT ;;
305;******************************************
306;;***BD ADDED FOR NUMERIC PAD
307 IFF NUM_STATE,NOT ;;
308 XLATT NUMERIC_PAD ;;
309 ENDIFF ;;
310;;***BD END OF ADDITION
311;*******************************************
312 IFF CAPS_STATE ;;
313 XLATT ALPHA_LOWER ;;
314 XLATT NON_ALPHA_LOWER ;;
315 ELSEF ;;
316 XLATT ALPHA_UPPER ;;
317 XLATT NON_ALPHA_UPPER ;;
318 ENDIFF ;;
319 ELSEF ;;
320;******************************************
321;;***BD ADDED FOR NUMERIC PAD
322 IFF NUM_STATE ;;
323 XLATT NUMERIC_PAD ;;
324 ENDIFF ;;
325;;***BD END OF ADDITION
326;******************************************
327 IFF CAPS_STATE ;;
328 XLATT ALPHA_UPPER ;;
329 XLATT NON_ALPHA_UPPER ;;
330 ELSEF ;;
331 XLATT ALPHA_LOWER ;;
332 XLATT NON_ALPHA_LOWER ;;
333 ENDIFF ;;
334 ENDIFF ;;
335 ELSEF ;;
336 IFF EITHER_SHIFT,NOT ;;
337 IFKBD XT_KB+AT_KB ;;
338 IFF EITHER_CTL ;;
339 ANDF ALT_SHIFT ;;
340 XLATT THIRD_SHIFT ;;
341 ENDIFF ;;
342 ELSEF ;;
343 IFF EITHER_CTL,NOT ;;
344 ANDF R_ALT_SHIFT ;;
345 XLATT THIRD_SHIFT ;;
346 ENDIFF ;;
347 ENDIFF ;;
348 IFKBD AT_KB+XT_KB ;;
349 IFF EITHER_CTL ;;
350 ANDF ALT_SHIFT ;;
351 XLATT ALT_CASE ;;
352 ENDIFF ;;
353 ENDIFF ;;
354 IFKBD G_KB+P12_KB ;;
355 IFF EITHER_CTL ;;
356 ANDF ALT_SHIFT ;;
357 IFF R_ALT_SHIFT,NOT ;;
358 XLATT ALT_CASE ;;
359 ENDIFF ;;
360 ENDIFF ;;
361 ENDIFF ;;
362 ENDIFF ;;
363 ENDIFF ;;
364;IFF EITHER_SHIFT,NOT ;;
365 IFKBD AT_KB+XT_KB ;;
366 IFF EITHER_CTL,NOT ;;
367 IFF ALT_SHIFT ;; ALT - case
368 XLATT ALT_CASE ;;
369 ENDIFF ;;
370 ELSEF ;;
371 XLATT CTRL_CASE ;;
372 ENDIFF ;;
373 ENDIFF ;;
374 ;;
375 IFKBD G_KB+P12_KB ;;
376 IFF EITHER_CTL,NOT ;;
377 IFF ALT_SHIFT ;; ALT - case
378 ANDF R_ALT_SHIFT,NOT ;;
379 XLATT ALT_CASE ;;
380 ENDIFF ;;
381 ELSEF ;;
382 IFF EITHER_ALT,NOT ;;
383 XLATT CTRL_CASE ;;
384 ENDIFF ;;
385 ENDIFF ;;
386 IFF EITHER_CTL ;;
387 ANDF ALT_SHIFT ;;
388 ANDF R_ALT_SHIFT,NOT ;;
389 XLATT ALT_CASE ;;
390 ENDIFF ;;
391 ENDIFF ;;
392 ;;
393 EXIT_STATE_LOGIC ;;
394 ;;
395LOGIC_END: ;;
396 ;;
397;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
398;;***************************************
399;; BE Common Translate Section
400;; This section contains translations for the lower 128 characters
401;; only since these will never change from code page to code page.
402;; In addition the dead key "Set Flag" tables are here since the
403;; dead keys are on the same keytops for all code pages.
404;;***************************************
405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
406 ;;
407 PUBLIC FR1_COMMON_XLAT ;;
408FR1_COMMON_XLAT: ;;
409 ;;
410 DW COMMON_XLAT_END-$ ;; length of section
411 DW -1 ;; code page
412 ;;
413;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
414;; CODE PAGE: Common
415;; STATE: Alt Case
416;; KEYBOARD TYPES: G + P
417;; TABLE TYPE: Translate
418;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
419 ;;
420 DW COM_ALT_K1_END-$ ;; length of state section
421 DB ALT_CASE ;; State ID
422 DW G_KB ;P12_KB ;; Keyboard Type
423 DB -1,-1 ;; Buffer entry for error character
424 ;; Set Flag Table
425 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
426 DB TYPE_2_TAB ;;
427 DB 6 ;;8 Number of entries
428; DB 12,-1,-1 ;;
429; DB 13,0,82H ;;
430 DB 16,0,1EH ;; A
431 DB 17,0,2CH ;; Z
432 DB 30,0,10H ;; Q
433 DB 39,0,32H ;; M
434 DB 44,0,11H ;; W
435 DB 50,-1,-1 ;; U.S. 'M'
436COM_ALT_K1_T1_END: ;;
437 ;;
438 DW 0 ;;
439 ;;
440COM_ALT_K1_END: ;;
441 ;;
442;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
443;***************************************** CNS P12 Addition *****************
444;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
445;; CODE PAGE: Common
446;; STATE: Alt Case
447;; KEYBOARD TYPES: P12_KB
448;; TABLE TYPE: Translate
449;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
450 ;;
451 DW COM_ALT_PK1_END-$ ;; length of state section
452 DB ALT_CASE ;; State ID
453 DW P12_KB ;; Keyboard Type
454 DB -1,-1 ;; Buffer entry for error character
455 ;; Set Flag Table
456 DW COM_ALT_PK1_T1_END-$ ;; Size of xlat table
457 DB TYPE_2_TAB ;;
458 DB 6 ;; 10 Number of entries
459; DB 12,-1,-1 ;; invalid key U.S. alt -
460; DB 13,-1,-1 ;; invalid key U.S. alt =
461; DB 07,0,82H ;; alt - (minus sign)
462; DB 13,0,83H ;; alt = (equal sign)
463 DB 16,0,1EH ;; A
464 DB 17,0,2CH ;; Z
465 DB 30,0,10H ;; Q
466 DB 39,0,32H ;; M
467 DB 44,0,11H ;; W
468 DB 50,-1,-1 ;; U.S. 'M'
469COM_ALT_PK1_T1_END: ;;
470 ;;
471 DW 0 ;;
472 ;;
473COM_ALT_PK1_END: ;;
474 ;;
475;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
476;***************************************** CNS P12 Addition *****************
477;; CODE PAGE: Common
478;; STATE: Ctrl Case
479;; KEYBOARD TYPES: GKB
480;; TABLE TYPE: Translate
481;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
482 ;;
483 DW COM_CTRL_K1_END-$ ;; length of state section
484 DB CTRL_CASE ;; State ID
485 DW G_KB ;P12_KB ;; Keyboard Type
486 DB -1,-1 ;; Buffer entry for error character
487 ;; Set Flag Table
488 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
489 DB TYPE_2_TAB ;;
490 DB 10 ;; Number of entries
491 DB 12,-1,-1 ;;
492 DB 13,31,13 ;;
493 DB 16,01,16 ;; A
494 DB 17,26,17 ;; Z
495 DB 30,17,30 ;; Q
496 DB 39,13,39 ;; M
497 DB 43,-1,-1 ;; \
498 DB 44,23,44 ;; W
499 DB 50,-1,-1 ;; U.S. 'M'
500 DB 86,28,86 ;;
501COM_CTRL_K1_T1_END: ;;
502 ;;
503 DW 0 ;;
504 ;;
505COM_CTRL_K1_END: ;;
506 ;;
507 ;;
508;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
509;***************************************** CNS P12 Addition *****************
510;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
511;; CODE PAGE: Common
512;; STATE: Ctrl Case
513;; KEYBOARD TYPES: P12_KB
514;; TABLE TYPE: Translate
515;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
516 ;;
517 DW COM_CTRL_PK1_END-$ ;; length of state section
518 DB CTRL_CASE ;; State ID
519 DW P12_KB ;; Keyboard Type
520 DB -1,-1 ;; Buffer entry for error character
521 ;; Set Flag Table
522 DW COM_CTRL_PK1_T1_END-$ ;; Size of xlat table
523 DB TYPE_2_TAB ;;
524 DB 12 ;; Number of entries
525 DB 12,-1,-1 ;;
526 DB 07,30,07 ;; ctl + number six key
527 DB 12,29,12 ;; ctl + ]
528 DB 13,31,13 ;;
529 DB 16,01,16 ;; A
530 DB 17,26,17 ;; Z
531 DB 30,17,30 ;; Q
532 DB 39,13,39 ;; M
533 DB 43,-1,-1 ;; \
534 DB 44,23,44 ;; W
535 DB 50,-1,-1 ;; U.S. 'M'
536 DB 9,28,9 ;; \ position (this is also the underscore position)
537COM_CTRL_PK1_T1_END: ;;
538 ;;
539 DW 0 ;;
540 ;;
541COM_CTRL_PK1_END: ;;
542 ;;
543 ;;
544;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
545;***************************************** CNS P12 Addition *****************
546;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
547;; CODE PAGE: Common
548;; STATE: Alt Case
549;; KEYBOARD TYPES: AT + XT
550;; TABLE TYPE: Translate
551;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
552 ;;
553 DW COM_ALT_K2_END-$ ;; length of state section
554 DB ALT_CASE ;; State ID
555 DW AT_KB+XT_KB ;; Keyboard Type
556 DB -1,-1 ;; Buffer entry for error character
557 ;; Set Flag Table
558 DW COM_ALT_K2_T2_END-$ ;; Size of xlat table
559 DB TYPE_2_TAB ;;
560 DB 6 ;; 9 Number of entries
561; DB 12,-1,-1 ;; invalid key U.S. alt -
562; DB 13,0,82H ;; alt - (minus sign)
563; DB 53,0,83H ;; alt = (equal sign)
564 DB 16,0,1EH ;; A
565 DB 17,0,2CH ;; Z
566 DB 30,0,10H ;; Q
567 DB 39,0,32H ;; M
568 DB 44,0,11H ;; W
569 DB 50,-1,-1 ;; U.S. 'M'
570COM_ALT_K2_T2_END: ;;
571 ;;
572 DW 0 ;;
573 ;;
574COM_ALT_K2_END: ;;
575 ;;
576;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
577;; CODE PAGE: Common
578;; STATE: Ctrl Case
579;; KEYBOARD TYPES: AT
580;; TABLE TYPE: Translate
581;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
582 ;;
583 DW COM_CTRL_K2_END-$ ;; length of state section
584 DB CTRL_CASE ;; State ID
585 DW AT_KB ;; Keyboard Type
586 DB -1,-1 ;; Buffer entry for error character
587 ;; Set Flag Table
588 DW COM_CTRL_K2_T2_END-$ ;; Size of xlat table
589 DB TYPE_2_TAB ;;
590 DB 10;11 ;; Number of entries
591 DB 12,-1,-1 ;; invalid U.S. -
592 DB 43,-1,-1 ;; invalid U.S. \
593 DB 41,28,41 ;; valid ctl + \
594 DB 07,30,07 ;; ctl + number six key
595; DB 13,31,13 ;; ctl - or _
596 DB 16,01,16 ;; A
597 DB 17,26,17 ;; Z
598 DB 30,17,30 ;; Q
599 DB 39,13,39 ;; M
600 DB 44,23,44 ;; W
601 DB 50,-1,-1 ;; U.S. 'M'
602COM_CTRL_K2_T2_END: ;;
603 ;;
604 DW 0 ;;
605 ;;
606COM_CTRL_K2_END: ;;
607 ;;
608 ;;
609;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
610;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
611;; CODE PAGE: Common
612;; STATE: Ctrl Case
613;; KEYBOARD TYPES: XT
614;; TABLE TYPE: Translate
615;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
616 ;;
617 DW COM_CTRL_K3_END-$ ;; length of state section
618 DB CTRL_CASE ;; State ID
619 DW AT_KB+XT_KB ;; Keyboard Type
620 DB -1,-1 ;; Buffer entry for error character
621 ;; Set Flag Table
622 DW COM_CTRL_K3_T3_END-$ ;; Size of xlat table
623 DB TYPE_2_TAB ;;
624 DB 6 ;; Number of entries
625 DB 12,-1,-1 ;;
626 DB 43,-1,-1 ;;
627 DB 43,28,43 ;; valid ctl + \
628 DB 07,30,07 ;; ctl + number six key
629; DB 13,31,13 ;; ctl - or _
630 DB 16,01,16 ;; A
631 DB 17,26,17 ;; Z
632 DB 30,17,30 ;; Q
633 DB 39,13,39 ;; M
634 DB 44,23,44 ;; W
635 DB 50,-1,-1 ;; U.S. 'M'
636COM_CTRL_K3_T3_END: ;;
637 ;;
638 DW 0 ;;
639 ;;
640COM_CTRL_K3_END: ;;
641 ;;
642 ;;
643;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
644;; CODE PAGE: Common
645;; STATE: Lower Shift Dead Key
646;; KEYBOARD TYPES: All
647;; TABLE TYPE: Flag Table
648;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
649 ;;
650 DW COM_DK_LO_END-$ ;; length of state section
651 DB DEAD_LOWER ;; State ID
652 DW G_KB+AT_KB+XT_KB+P12_KB ;; Keyboard Type
653 DB -1,-1 ;; Buffer entry for error character
654 ;; Set Flag Table
655 DW 1 ;; number of entries
656 DB 26 ;; scan code
657 FLAG CIRCUMFLEX ;; flag bit to set
658 ;;
659 ;;
660COM_DK_LO_END: ;;
661 ;;
662;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
663;*************************************** CNS P12 Addition
664;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
665;; CODE PAGE: Common
666;; STATE: Upper Shift Dead Key
667;; KEYBOARD TYPES: All
668;; TABLE TYPE: Flag Table
669;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
670 ;;
671 DW COM_DK_UP_END-$ ;; length of state section
672 DB DEAD_UPPER ;; State ID
673 DW G_KB+AT_KB+XT_KB+P12_KB ;; Keyboard Type
674 DB -1,-1 ;; Buffer entry for error character
675 ;; Set Flag Table
676 DW 1 ;; number of entries
677 DB 26 ;; scan code
678 FLAG DIARESIS ;; flag bit to set
679 ;;
680COM_DK_UP_END: ;;
681 ;;
682;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
683;; CODE PAGE: Common
684;; STATE: Third Shift Dead Key
685;; KEYBOARD TYPES: G, AT
686;; TABLE TYPE: Flag Table
687;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
688 ;;
689 DW COM_DK_TH_END-$ ;; length of state section
690 DB DEAD_THIRD ;; State ID
691 DW G_KB+AT_KB ;; Keyboard Type
692 DB -1,-1 ;; Buffer entry for error character
693 ;; Set Flag Table
694 DW 3 ;; number of entries
695 DB 40 ;;
696 FLAG ACUTE ;;
697 DB 43 ;;
698 FLAG GRAVE ;;
699 DB 53 ;;
700 FLAG TILDE ;;
701 ;;
702COM_DK_TH_END: ;;
703 ;;
704;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
705;***************************************** CNS P12 Addition *****************
706;NO THRD SHIFT DEAD KEY FOR THE P12
707;***************************************** CNS P12 Addition *****************
708;; CODE PAGE: Common
709;; STATE: Third Shift Dead Key
710;; KEYBOARD TYPES: XT +
711;; TABLE TYPE: Flag Table
712;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
713 ;;
714 DW COM_DK_TH_K1_END-$ ;; length of state section
715 DB DEAD_THIRD ;; State ID
716 DW XT_KB ;; Keyboard Type
717 DB -1,-1 ;; Buffer entry for error character
718 ;; Set Flag Table
719 DW 3 ;; number of entries
720 DB 40 ;;
721 FLAG ACUTE ;;
722 DB 41 ;;
723 FLAG GRAVE ;;
724 DB 53 ;;
725 FLAG TILDE ;;
726 ;;
727COM_DK_TH_K1_END: ;;
728;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
729;********************************************** CNS P12 Addition
730;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
731;; CODE PAGE: Common
732;; STATE: Diaresis Lower Case
733;; KEYBOARD TYPES: All
734;; TABLE TYPE: Translate
735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
736 ;;
737 DW COM_DI_LO_END-$ ;; length of state section
738 DB DIARESIS_LOWER ;; State ID
739 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
740 DB 249,0 ;; error character = standalone accent
741 ;;
742 DW COM_DI_LO_T1_END-$ ;; Size of xlat table
743 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
744 DB 6 ;; number of scans
745 DB 18,'‰' ;; scan code,ASCII - e
746 DB 16,'„' ;; scan code,ASCII - a
747 DB 24,'”' ;; scan code,ASCII - o
748 DB 22,'' ;; scan code,ASCII - u
749 DB 23,'‹' ;; scan code,ASCII - i
750 DB 21,'˜' ;; scan code,ASCII - y
751COM_DI_LO_T1_END: ;;
752 ;;
753 DW 0 ;; Size of xlat table - null table
754 ;;
755COM_DI_LO_END: ;; length of state section
756 ;;
757;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
758;********************************************** CNS P12 Addition
759;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
760;; CODE PAGE: Common ;;change **********CNS **************
761;; STATE: Numeric Key Pad
762;; KEYBOARD TYPES: All except the p12
763;; TABLE TYPE: Translate
764;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
765 ;;
766 DW COM_PAD_K1_END-$ ;; length of state section
767 DB NUMERIC_PAD ;; State ID
768 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
769 DB -1,-1 ;; Buffer entry for error character
770 ;;
771 DW COM_PAD_K1_T1_END-$ ;; Size of xlat table
772 DB STANDARD_TABLE ;; xlat options:
773 DB 1 ;; number of entries
774 DB 83,',' ;; decimal seperator = ,
775COM_PAD_K1_T1_END: ;;
776 ;;
777 DW 0 ;; Size of xlat table - null table
778 ;;
779COM_PAD_K1_END: ;;
780 ;;
781;**************************************************** CODE eliminated**********
782;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NUM PAD altered ********
783;; CODE PAGE: 850 CNS engraved "," out
784;; STATE: Numeric Pad - Divide Sign
785;; KEYBOARD TYPES: G
786;; TABLE TYPE: Translate
787;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
788;; ;;
789;; DW CP850_DIVID_END-$ ;; length of state section
790;; DB DIVIDE_SIGN ;; State ID
791;; DW G_KB+P12_KB ;; Keyboard Type
792;; DB -1,-1 ;; error character = standalone accent
793;; ;;
794;; DW CP850_DIVID_T1_END-$ ;; Size of xlat table
795;; DB TYPE_2_TAB ;; xlat options:
796;; DB 2 ;; number of scans
797;; DB 0E0H,',',0E0H ;; DIVIDE SIGN
798;; DB 51,',',0E0H ;;
799;; CP850_DIVID_T1_END: ;;
800;; ;;
801;; DW 0 ;; Size of xlat table - null table
802;; ;;
803;; CP850_DIVID_END: ;;
804;; ;;
805;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
806;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
807;; CODE PAGE: 850
808;; STATE: Numeric Key Pad - Multiplication
809;; KEYBOARD TYPES: G,
810;; TABLE TYPE: Translate
811;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
812;; ;;
813;; DW CP850_PAD_K1_END-$ ;; length of state section
814;; DB NUMERIC_PAD ;; State ID
815;; DW G_KB ;; Keyboard Type
816;; DB -1,-1 ;; Buffer entry for error character
817;; ;;
818;; DW CP850_PAD_K1_T1_END-$ ;; Size of xlat table
819;; DB STANDARD_TABLE ;; xlat options:
820;; DB 1 ;; number of entries
821;; DB 51,',' ; (removed *** CNS ****) ;; MULTIPLICATION SIGN
822;; CP850_PAD_K1_T1_END: ;;
823;; ;;
824;; DW 0 ;; Size of xlat table - null table
825;; ;;
826;; CP850_PAD_K1_END: ;;
827;; ;;
828;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
829;*********************************************************
830;; CODE PAGE: Common
831;; STATE: Alpha Lower Case
832;; KEYBOARD TYPES: All
833;; TABLE TYPE: Translate
834;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
835 ;;
836 DW COM_AL_LO_END-$ ;; length of state section
837 DB ALPHA_LOWER ;; State ID
838 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
839 DB -1,-1 ;; Buffer entry for error character
840 ;;
841 DW COM_AL_LO_T1_END-$ ;; Size of xlat table
842 DB STANDARD_TABLE ;; xlat options:
843 DB 5 ;; number of entries
844 DB 16,'a' ;; small a
845 DB 17,'z' ;; small z
846 DB 30,'q' ;; small q
847 DB 39,'m' ;; small m
848 DB 44,'w' ;; small w
849COM_AL_LO_T1_END: ;;
850 ;;
851 DW 0 ;; Size of xlat table - null table
852 ;;
853COM_AL_LO_END: ;;
854 ;;
855;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
856;; CODE PAGE: Common
857;; STATE: Alpha Upper Case
858;; KEYBOARD TYPES: All
859;; TABLE TYPE: Translate
860;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
861 ;;
862 DW COM_AL_UP_END-$ ;; length of state section
863 DB ALPHA_UPPER ;; State ID
864 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
865 DB -1,-1 ;; Buffer entry for error character
866 ;;
867 DW COM_AL_UP_T1_END-$ ;; Size of xlat table
868 DB STANDARD_TABLE ;; xlat options:
869 DB 5 ;; number of entries
870 DB 16,'A' ;; caps A
871 DB 17,'Z' ;; caps Z
872 DB 30,'Q' ;; caps Q
873 DB 39,'M' ;; caps M
874 DB 44,'W' ;; caps W
875COM_AL_UP_T1_END: ;;
876 ;;
877 DW 0 ;; Size of xlat table - null table
878 ;;
879COM_AL_UP_END: ;;
880 ;;
881 ;;
882;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
883;; CODE PAGE: Common
884;; STATE: Non-Alpha Lower Case
885;; KEYBOARD TYPES: G,
886;; TABLE TYPE: Translate
887;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
888 ;;
889 DW COM_NA_LO_END-$ ;; length of state section
890 DB NON_ALPHA_LOWER ;; State ID
891 DW G_KB ;P12_KB ;; Keyboard Type
892 DB -1,-1 ;; Buffer entry for error character
893 ;;
894 DW COM_NA_LO_T1_END-$ ;; Size of xlat table
895 DB STANDARD_TABLE ;; xlat options:
896 DB 20 ;; number of entries
897 DB 41,"ý" ;; superscript 2
898 DB 2,"&" ;;
899 DB 3,"‚" ;; acute - e
900 DB 4,'"' ;;
901 DB 5,"'" ;;
902 DB 6,"(" ;;
903 DB 8,"Š" ;; grave - e
904 DB 9,"!" ;;
905 DB 10,"‡" ;; c - cedilla small
906 DB 11,"…" ;;
907 DB 12,")" ;;
908 DB 13,"-" ;;
909 DB 27,"$" ;;
910 DB 40,"—" ;; grave - u
911 DB 43,0E6H ;; mu
912 DB 86,'<' ;;
913 DB 50,',' ;;
914 DB 51,';' ;;
915 DB 52,':' ;;
916 DB 53,'=' ;;
917COM_NA_LO_T1_END: ;;
918 ;;
919 DW 0 ;; Size of xlat table - null table
920 ;;
921COM_NA_LO_END: ;;
922 ;;
923 ;;
924;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
925;***************************************** CNS P12 Addition *****************
926;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
927;; CODE PAGE: Common
928;; STATE: Non-Alpha Lower Case
929;; KEYBOARD TYPES: P12
930;; TABLE TYPE: Translate
931;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
932 ;;
933 DW COM_NA_LO_PK1_END-$ ;; length of state section
934 DB NON_ALPHA_LOWER ;; State ID
935 DW P12_KB ;; Keyboard Type
936 DB -1,-1 ;; Buffer entry for error character
937 ;;
938 DW COM_NA_LO_PT1_K1_END-$ ;; Size of xlat table
939 DB STANDARD_TABLE ;; xlat options:
940 DB 21 ;; number of entries
941 DB 41,"ý" ;; superscript 2
942 DB 2,"&" ;;
943 DB 3,"‚" ;; acute - e
944 DB 4,'"' ;;
945 DB 5,"'" ;;
946 DB 6,"(" ;;
947 DB 7,"-" ;;
948 DB 8,"Š" ;; grave - e
949 DB 9,"_" ;;
950 DB 10,"‡" ;; c - cedilla small
951 DB 11,"…" ;;
952 DB 12,")" ;;
953 DB 13,"=" ;;
954 DB 27,"$" ;;
955 DB 40,"—" ;; grave - u
956 DB 43,"*" ;;
957 DB 86,'<' ;; +
958 DB 50,',' ;; <
959 DB 51,';' ;; -
960 DB 52,':' ;;
961 DB 53,'!' ;;
962
963COM_NA_LO_PT1_K1_END: ;;
964 ;;
965 DW 0 ;; Size of xlat table - null table
966 ;;
967COM_NA_LO_PK1_END: ;;
968 ;;
969;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
970;***************************************** CNS P12 Addition *****************
971;; CODE PAGE: Common
972;; STATE: Non-Alpha Lower Case
973;; KEYBOARD TYPES:AT
974;; TABLE TYPE: Translate
975;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
976 ;;
977 DW COM_NA_LO_K2_END-$ ;; length of state section
978 DB NON_ALPHA_LOWER ;; State ID
979 DW AT_KB ;; Keyboard Type
980 DB -1,-1 ;; Buffer entry for error character
981 ;;
982 DW COM_NA_LO_T1_K2_END-$ ;; Size of xlat table
983 DB STANDARD_TABLE ;; xlat options:
984 DB 19 ;; number of entries
985 DB 41,"<" ;;
986 DB 2,"&" ;;
987 DB 3,"‚" ;; acute - e
988 DB 4,'"' ;;
989 DB 5,"'" ;;
990 DB 6,"(" ;;
991 DB 8,"Š" ;; grave - e
992 DB 9,"!" ;;
993 DB 10,"‡" ;; c - cedilla small
994 DB 11,"…" ;;
995 DB 12,")" ;;
996 DB 13,"-" ;;
997 DB 27,"$" ;;
998 DB 40,"—" ;; grave - u
999 DB 43,0E6H ;; mu
1000 DB 50,',' ;;
1001 DB 51,';' ;;
1002 DB 52,':' ;;
1003 DB 53,'=' ;;
1004COM_NA_LO_T1_K2_END: ;;
1005 ;;
1006 DW 0 ;; Size of xlat table - null table
1007 ;;
1008COM_NA_LO_K2_END: ;;
1009;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1010;; CODE PAGE: Common
1011;; STATE: Non-Alpha Lower Case
1012;; KEYBOARD TYPES: XT,
1013;; TABLE TYPE: Translate
1014;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1015 ;;
1016 DW COM_NA_LO_K1_END-$ ;; length of state section
1017 DB NON_ALPHA_LOWER ;; State ID
1018 DW XT_KB ;; Keyboard Type
1019 DB -1,-1 ;; Buffer entry for error character
1020 ;;
1021 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
1022 DB STANDARD_TABLE ;; xlat options:
1023 DB 19 ;; number of entries
1024 DB 2,"&" ;;
1025 DB 3,"‚" ;; acute - e
1026 DB 4,'"' ;;
1027 DB 5,"'" ;;
1028 DB 6,"(" ;;
1029 DB 8,"Š" ;;
1030 DB 9,"!" ;;
1031 DB 10,"‡" ;; c - cedilla small
1032 DB 11,"…" ;;
1033 DB 12,")" ;;
1034 DB 13,"-" ;;
1035 DB 27,"$" ;;
1036 DB 40,"—" ;; grave - u
1037 DB 41,0E6H ;; mu
1038 DB 43,'<' ;;
1039 DB 50,',' ;;
1040 DB 51,';' ;;
1041 DB 52,':' ;;
1042 DB 53,'=' ;;
1043COM_NA_LO_K1_T1_END: ;;
1044 ;;
1045 DW 0 ;; Size of xlat table - null table
1046 ;;
1047COM_NA_LO_K1_END: ;;
1048 ;;
1049;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1050;; CODE PAGE: Common
1051;; STATE: Non-Alpha Upper Case
1052;; KEYBOARD TYPES: G,
1053;; TABLE TYPE: Translate
1054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1055 ;;
1056 DW COM_NA_UP_END-$ ;; length of state section
1057 DB NON_ALPHA_UPPER ;; State ID
1058 DW G_KB ;+P12_KB ;; Keyboard Type
1059 DB -1,-1 ;; Buffer entry for error character
1060 ;;
1061 DW COM_NA_UP_T1_END-$ ;; Size of xlat table
1062 DB STANDARD_TABLE ;; xlat options:
1063 DB 20 ;; number of entries
1064 DB 2,'1' ;;
1065 DB 3,'2' ;;
1066 DB 4,'3' ;;
1067 DB 5,'4' ;;
1068 DB 6,'5' ;;
1069 DB 7,'6' ;;
1070 DB 8,'7' ;;
1071 DB 9,'8' ;;
1072 DB 10,'9' ;;
1073 DB 11,'0' ;;
1074 DB 12,0F8H ;; degree symbol
1075 DB 13,"_" ;;
1076 DB 27,"*" ;;
1077 DB 40,'%' ;;
1078 DB 43,'œ' ;;
1079 DB 86,'>' ;;
1080 DB 50,'?' ;;
1081 DB 51,'.' ;;
1082 DB 52,'/' ;;
1083 DB 53,'+' ;;
1084COM_NA_UP_T1_END: ;;
1085 ;;
1086 DW 0 ;; Size of xlat table - null table
1087 ;;
1088COM_NA_UP_END: ;;
1089;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1090;***************************************** CNS P12 Addition *****************
1091;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1092;; CODE PAGE: Common
1093;; STATE: Non-Alpha Upper Case
1094;; KEYBOARD TYPES: P12
1095;; TABLE TYPE: Translate
1096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1097 ;;
1098 DW COM_NA_UP_PK1_END-$ ;; length of state section
1099 DB NON_ALPHA_UPPER ;; State ID
1100 DW P12_KB ;; Keyboard Type
1101 DB -1,-1 ;; Buffer entry for error character
1102 ;;
1103 DW COM_NA_UP_PT1_K1_END-$ ;; Size of xlat table
1104 DB STANDARD_TABLE ;; xlat options:
1105 DB 21 ;; number of entries
1106 DB 2,'1' ;;
1107 DB 3,'2' ;;
1108 DB 4,'3' ;;
1109 DB 5,'4' ;;
1110 DB 6,'5' ;;
1111 DB 7,'6' ;;
1112 DB 8,'7' ;;
1113 DB 9,'8' ;;
1114 DB 10,'9' ;;
1115 DB 11,'0' ;;
1116 DB 12,0F8H ;; degree symbol
1117 DB 13,"+" ;; plus sign
1118 DB 27,09CH ;; œ symbol
1119 DB 40,'%' ;;
1120 DB 41,"ü" ;; superscript 3
1121 DB 43,0E6H ;; æ - mu symbol
1122 DB 86,'>' ;;
1123 DB 50,'?' ;;
1124 DB 51,'.' ;;
1125 DB 52,'/' ;;
1126 DB 53,'+' ;;
1127COM_NA_UP_PT1_K1_END: ;;
1128 ;;
1129 DW 0 ;; Size of xlat table - null table
1130 ;;
1131COM_NA_UP_PK1_END: ;;
1132 ;;
1133 ;;
1134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1135;***************************************** CNS P12 Addition *****************
1136;; CODE PAGE: Common
1137;; STATE: Non-Alpha Upper Case
1138;; KEYBOARD TYPES: XT +
1139;; TABLE TYPE: Translate
1140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1141 ;;
1142 DW COM_NA_UP_K1_END-$ ;; length of state section
1143 DB NON_ALPHA_UPPER ;; State ID
1144 DW XT_KB ;; Keyboard Type
1145 DB -1,-1 ;; Buffer entry for error character
1146 ;;
1147 DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table
1148 DB STANDARD_TABLE ;; xlat options:
1149 DB 20 ;; number of entries
1150 DB 41,'œ' ;;
1151 DB 2,'1' ;;
1152 DB 3,'2' ;;
1153 DB 4,'3' ;;
1154 DB 5,'4' ;;
1155 DB 6,'5' ;;
1156 DB 7,'6' ;;
1157 DB 8,'7' ;;
1158 DB 9,'8' ;;
1159 DB 10,'9' ;;
1160 DB 11,'0' ;;
1161 DB 12,0F8H ;; degree symbol
1162 DB 13,"_" ;;
1163 DB 27,"*" ;;
1164 DB 40,'%' ;;
1165 DB 43,'>' ;;
1166 DB 50,'?' ;;
1167 DB 51,'.' ;;
1168 DB 52,'/' ;;
1169 DB 53,'+' ;;
1170COM_NA_UP_T1_K1_END: ;;
1171 ;;
1172 DW 0 ;; Size of xlat table - null table
1173 ;;
1174COM_NA_UP_K1_END: ;;
1175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1176 ;;
1177;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1178;; CODE PAGE: Common
1179;; STATE: Non-Alpha Upper Case
1180;; KEYBOARD TYPES: AT
1181;; TABLE TYPE: Translate
1182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1183 ;;
1184 DW COM_NA_UP_K2_END-$ ;; length of state section
1185 DB NON_ALPHA_UPPER ;; State ID
1186 DW AT_KB ;; Keyboard Type
1187 DB -1,-1 ;; Buffer entry for error character
1188 ;;
1189 DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table
1190 DB STANDARD_TABLE ;; xlat options:
1191 DB 20 ;; number of entries
1192 DB 41,'>' ;;
1193 DB 2,'1' ;;
1194 DB 3,'2' ;;
1195 DB 4,'3' ;;
1196 DB 5,'4' ;;
1197 DB 6,'5' ;;
1198 DB 7,'6' ;;
1199 DB 8,'7' ;;
1200 DB 9,'8' ;;
1201 DB 10,'9' ;;
1202 DB 11,'0' ;;
1203 DB 12,0F8H ;; degree symbol
1204 DB 13,"_" ;;
1205 DB 27,"*" ;;
1206 DB 40,'%' ;;
1207 DB 43,'œ' ;;
1208 DB 50,'?' ;;
1209 DB 51,'.' ;;
1210 DB 52,'/' ;;
1211 DB 53,'+' ;;
1212COM_NA_UP_T1_K2_END: ;;
1213 ;;
1214 DW 0 ;; Size of xlat table - null table
1215 ;;
1216COM_NA_UP_K2_END: ;;
1217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1218;; CODE PAGE: Common
1219;; STATE: Third Shift
1220;; KEYBOARD TYPES: G,
1221;; TABLE TYPE: Translate
1222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1223 ;;
1224 DW COM_THIRD_END-$ ;; length of state section
1225 DB THIRD_SHIFT ;; State ID
1226 DW G_KB ;+P12_KB ;; Keyboard Type
1227 DB -1,-1 ;; Buffer entry for error character
1228 ;;
1229 DW COM_THIRD_T1_END-$ ;; Size of xlat table
1230 DB STANDARD_TABLE ;; xlat options:
1231 DB 9 ;; number of entries
1232 DB 2,"|" ;;
1233 DB 3,'@' ;;
1234 DB 4,'#' ;;
1235 DB 7,'^' ;;
1236 DB 10,'{' ;;
1237 DB 11,'}' ;;
1238 DB 26,'[' ;;
1239 DB 27,']' ;;
1240 DB 86,'\' ;;
1241COM_THIRD_T1_END: ;;
1242 ;;
1243 DW 0 ;; Last xlat table
1244COM_THIRD_END: ;;
1245 ;;
1246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1247;******************************************* CNS Addition
1248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1249;; CODE PAGE: Common
1250;; STATE: Acute Lower Case
1251;; KEYBOARD TYPES: All
1252;; TABLE TYPE: Translate
1253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1254 ;;
1255 DW COM_AC_LO_END-$ ;; length of state section
1256 DB ACUTE_LOWER ;; State ID
1257 DW P12_KB ;; ;; Keyboard Type
1258 DB 39,0 ;; error character = standalone accent
1259 ;;
1260 DW COM_AC_LO_T1_END-$ ;; Size of xlat table
1261 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1262 DB 1 ;; number of scans
1263 DB 18,'‚' ;; scan code,ASCII - e
1264COM_AC_LO_T1_END: ;;
1265 ;;
1266 DW 0 ;; Size of xlat table - null table
1267 ;;
1268COM_AC_LO_END: ;;
1269 ;;
1270;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1271;******************************************* CNS Addition
1272;***************************************** CNS P12 Addition *****************
1273;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1274;; CODE PAGE: Common
1275;; STATE: Third Shift
1276;; KEYBOARD TYPES: P12
1277;; TABLE TYPE: Translate
1278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1279 ;;
1280 DW COM_THIRD_PK1_END-$ ;; length of state section
1281 DB THIRD_SHIFT ;; State ID
1282 DW P12_KB ;; Keyboard Type
1283 DB -1,-1 ;; Buffer entry for error character
1284 ;;
1285 DW COM_THIRD_PT1_K1_END-$ ;; Size of xlat table
1286 DB STANDARD_TABLE ;; xlat options:
1287 DB 11 ;; number of entries
1288 DB 3,'~' ;;
1289 DB 4,'#' ;;
1290 DB 5,'{' ;;
1291 DB 6,'[' ;;
1292 DB 7,'|' ;;
1293 DB 8,'`' ;; grave symbol not a dead key rep
1294 DB 9,'\' ;;
1295 DB 10,'^' ;; circumflex (caret)
1296 DB 11,'@' ;;
1297 DB 12,']' ;;
1298 DB 13,'}' ;;
1299COM_THIRD_PT1_K1_END: ;;
1300 ;;
1301 DW 0 ;; Last xlat table
1302COM_THIRD_PK1_END: ;;
1303 ;;
1304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1305;***************************************** CNS P12 Addition *****************
1306;; CODE PAGE: Common
1307;; STATE: Third Shift
1308;; KEYBOARD TYPES: XT
1309;; TABLE TYPE: Translate
1310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1311 ;;
1312 DW COM_THIRD_K1_END-$ ;; length of state section
1313 DB THIRD_SHIFT ;; State ID
1314 DW XT_KB ;; Keyboard Type
1315 DB -1,-1 ;; Buffer entry for error character
1316 ;;
1317 DW COM_THIRD_T1_K1_END-$ ;; Size of xlat table
1318 DB STANDARD_TABLE ;; xlat options:
1319 DB 9 ;; number of entries
1320 DB 2,"|" ;;
1321 DB 3,'@' ;;
1322 DB 4,'#' ;;
1323 DB 7,'^' ;;
1324 DB 10,'{' ;;
1325 DB 11,'}' ;;
1326 DB 26,'[' ;;
1327 DB 27,']' ;;
1328 DB 43,'\' ;;
1329COM_THIRD_T1_K1_END: ;;
1330 ;;
1331 DW 0 ;; Last xlat table
1332COM_THIRD_K1_END: ;;
1333;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1334;; CODE PAGE: Common
1335;; STATE: Third Shift
1336;; KEYBOARD TYPES: AT
1337;; TABLE TYPE: Translate
1338;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1339 ;;
1340 DW COM_THIRD_K2_END-$ ;; length of state section
1341 DB THIRD_SHIFT ;; State ID
1342 DW AT_KB ;; Keyboard Type
1343 DB -1,-1 ;; Buffer entry for error character
1344 ;;
1345 DW COM_THIRD_T1_K2_END-$ ;; Size of xlat table
1346 DB STANDARD_TABLE ;; xlat options:
1347 DB 9 ;; number of entries
1348 DB 2,"|" ;;
1349 DB 3,'@' ;;
1350 DB 4,'#' ;;
1351 DB 7,'^' ;;
1352 DB 10,'{' ;;
1353 DB 11,'}' ;;
1354 DB 26,'[' ;;
1355 DB 27,']' ;;
1356 DB 41,'\' ;;
1357COM_THIRD_T1_K2_END: ;;
1358 ;;
1359 DW 0 ;; Last xlat table
1360COM_THIRD_K2_END: ;;
1361;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1362;; CODE PAGE: Common
1363;; STATE: Grave Lower
1364;; KEYBOARD TYPES: ALL
1365;; TABLE TYPE: Translate
1366;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1367 ;;
1368 DW COM_GR_LO_END-$ ;; length of state section
1369 DB GRAVE_LOWER ;; State ID
1370 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1371 DB 96,0 ;; error character = standalone accent
1372 ;;
1373 DW COM_GR_LO_T1_END-$ ;; Size of xlat table
1374 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1375 DB 5 ;; number of scans
1376 DB 18,'Š' ;; scan code,ASCII - e
1377 DB 16,'…' ;; scan code,ASCII - a
1378 DB 24,'•' ;; scan code,ASCII - o
1379 DB 22,'—' ;; scan code,ASCII - u
1380 DB 23,'' ;; scan code,ASCII - i
1381COM_GR_LO_T1_END: ;;
1382 ;;
1383 DW 0 ;; Size of xlat table - null table
1384 ;;
1385COM_GR_LO_END: ;; length of state section
1386 ;;
1387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1388;; CODE PAGE: Common
1389;; STATE: Grave Upper Case
1390;; KEYBOARD TYPES: All
1391;; TABLE TYPE: Translate
1392;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1393 ;;
1394 DW COM_GR_UP_END-$ ;; length of state section
1395 DB GRAVE_UPPER ;; State ID
1396 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1397 DB 96,0 ;; error character = standalone accent
1398 ;;
1399 DW COM_GR_UP_T1_END-$ ;; Size of xlat table
1400 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1401 DB 0 ;; number of scans
1402COM_GR_UP_T1_END: ;;
1403 ;;
1404 DW 0 ;; Size of xlat table - null table
1405 ;;
1406COM_GR_UP_END: ;; length of state section
1407 ;;
1408 ;;
1409;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1410;; CODE PAGE: Common
1411;; STATE: Grave Space Bar
1412;; KEYBOARD TYPES: All
1413;; TABLE TYPE: Translate
1414;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1415 ;;
1416 DW COM_GR_SP_END-$ ;; length of state section
1417 DB GRAVE_SPACE ;; State ID
1418 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1419 DB 96,0 ;; error character = standalone accent
1420 ;;
1421 DW COM_GR_SP_T1_END-$ ;; Size of xlat table
1422 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1423 DB 1 ;; number of scans
1424 DB 57,96 ;; STANDALONE GRAVE
1425COM_GR_SP_T1_END: ;;
1426 ;;
1427 DW 0 ;; Size of xlat table - null table
1428 ;;
1429COM_GR_SP_END: ;; length of state section
1430 ;;
1431;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1432;; CODE PAGE: Common
1433;; STATE: Circumflex Lower
1434;; KEYBOARD TYPES: All
1435;; TABLE TYPE: Translate
1436;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1437 ;;
1438 DW COM_CI_LO_END-$ ;; length of state section
1439 DB CIRCUMFLEX_LOWER ;; State ID
1440 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1441 DB 94,0 ;; error character = standalone accent
1442 ;;
1443 DW COM_CI_LO_T1_END-$ ;; Size of xlat table
1444 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1445 DB 5 ;; number of scans
1446 DB 16,'ƒ' ;; scan code,ASCII - a
1447 DB 18,'ˆ' ;; scan code,ASCII - e
1448 DB 24,'“' ;; scan code,ASCII - o
1449 DB 22,'–' ;; scan code,ASCII - u
1450 DB 23,'Œ' ;; scan code,ASCII - i
1451COM_CI_LO_T1_END: ;;
1452 ;;
1453 DW 0 ;;
1454 ;;
1455COM_CI_LO_END: ;;
1456 ;;
1457;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1458;; CODE PAGE: Common
1459;; STATE: Circumflex Upper
1460;; KEYBOARD TYPES: All
1461;; TABLE TYPE: Translate
1462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1463 ;;
1464 DW COM_CI_UP_END-$ ;; length of state section
1465 DB CIRCUMFLEX_UPPER ;; State ID
1466 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1467 DB 94,0 ;; error character = standalone accent
1468 ;;
1469 DW COM_CI_UP_T1_END-$ ;; Size of xlat table
1470 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1471 DB 0 ;; number of scans
1472COM_CI_UP_T1_END: ;;
1473 ;;
1474 DW 0 ;;
1475 ;;
1476COM_CI_UP_END: ;;
1477;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1478;; CODE PAGE: Common
1479;; STATE: Circumflex Space Bar
1480;; KEYBOARD TYPES: All
1481;; TABLE TYPE: Translate
1482;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1483 ;;
1484 DW COM_CI_SP_END-$ ;; length of state section
1485 DB CIRCUMFLEX_SPACE ;; State ID
1486 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1487 DB 94,0 ;; error character = standalone accent
1488 ;;
1489 DW COM_CI_SP_T1_END-$ ;; Size of xlat table
1490 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1491 DB 1 ;; number of scans
1492 DB 57,94 ;; STANDALONE CIRCUMFLEX
1493COM_CI_SP_T1_END: ;;
1494 ;;
1495 DW 0 ;; Size of xlat table - null table
1496 ;;
1497COM_CI_SP_END: ;; length of state section
1498 ;;
1499 ;;
1500;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1501;; CODE PAGE: Common
1502;; STATE: Tilde Space Bar
1503;; KEYBOARD TYPES: All
1504;; TABLE TYPE: Translate
1505;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1506 ;;
1507 DW COM_TI_SP_END-$ ;; length of state section
1508 DB TILDE_SPACE ;; State ID
1509 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1510 DB 126,0 ;; error character = standalone accent
1511 ;;
1512 DW COM_TI_SP_T1_END-$ ;; Size of xlat table
1513 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1514 DB 1 ;; number of scans
1515 DB 57,126 ;; STANDALONE TIDLE
1516COM_TI_SP_T1_END: ;;
1517 ;;
1518 DW 0 ;; Size of xlat table - null table
1519 ;;
1520COM_TI_SP_END: ;; length of state section
1521 ;;
1522;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1523 DW 0 ;; Last State
1524COMMON_XLAT_END: ;;
1525 ;;
1526 ;;
1527 ;;
1528;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1529;;***************************************
1530;; BE Specific Translate Section for 437
1531;;
1532;;***************************************
1533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1534 ;;
1535 PUBLIC FR1_437_XLAT ;;
1536FR1_437_XLAT: ;;
1537 ;;
1538 DW CP437_XLAT_END-$ ;; length of section
1539 DW 437 ;;
1540;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1541;; CODE PAGE: 437
1542;; STATE: Non-Alpha Lower Case
1543;; KEYBOARD TYPES: All
1544;; TABLE TYPE: Translate
1545;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1546 ;;
1547 DW CP437_NA_LO_END-$ ;; length of state section
1548 DB NON_ALPHA_LOWER ;; State ID
1549 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1550 DB -1,-1 ;; default ignore error state
1551 ;;
1552 DW CP437_NA_LO_T1_END-$ ;; Size of xlat table
1553 DB STANDARD_TABLE ;; xlat options:
1554 DB 1 ;; number of scans
1555 DB 7,15H ;; Section Symbol
1556CP437_NA_LO_T1_END: ;;
1557 ;;
1558 DW 0 ;; Size of xlat table - null table
1559 ;;
1560CP437_NA_LO_END: ;;
1561 ;;
1562;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1563;**************************************** CNS Addition
1564;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1565;; CODE PAGE: 437
1566;; STATE: Non-Alpha Upper Case
1567;; KEYBOARD TYPES: p12
1568;; TABLE TYPE: Translate
1569;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1570 ;;
1571 DW CP437_NA_UP_K1_END-$ ;; length of state section
1572 DB NON_ALPHA_UPPER ;; State ID
1573 DW P12_KB ;; Keyboard Type
1574 DB -1,-1 ;; default ignore error state
1575 ;;
1576 DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table
1577 DB STANDARD_TABLE ;; xlat options: **** CNS 12/18
1578 DB 1 ;; number of scans
1579 DB 53,015H ;; Section symbol - 
1580CP437_NA_UP_T1_K1_END: ;;
1581 ;;
1582 DW 0 ;; Size of xlat table - null table
1583 ;;
1584CP437_NA_UP_K1_END: ;;
1585 ;;
1586;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1587;**************************************** CNS Addition
1588;; CODE PAGE: 437
1589;; STATE: Non-Alpha Upper Case
1590;; KEYBOARD TYPES: G,
1591;; TABLE TYPE: Translate
1592;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1593 ;;
1594 DW CP437_NA_UP_END-$ ;; length of state section
1595 DB NON_ALPHA_UPPER ;; State ID
1596 DW G_KB ;+P12_KB ;; Keyboard Type
1597 DB -1,-1 ;; default ignore error state
1598 ;;
1599 DW CP437_NA_UP_T1_END-$ ;; Size of xlat table
1600 DB STANDARD_TABLE ;; xlat options:
1601 DB 1 ;; number of scans
1602 DB 41,00H ;; 3 Superscript
1603CP437_NA_UP_T1_END: ;;
1604 ;;
1605 DW 0 ;; Size of xlat table - null table
1606 ;;
1607CP437_NA_UP_END: ;;
1608 ;;
1609;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1610;***************************************** CNS P12 Addition *****************
1611;***************************************** CNS P12 Addition *****************
1612;; CODE PAGE: CP437
1613;; STATE: Acute Lower Case
1614;; KEYBOARD TYPES: All
1615;; TABLE TYPE: Translate
1616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1617 ;;
1618 DW CP437_AC_LO_END-$ ;; length of state section
1619 DB ACUTE_LOWER ;; State ID
1620 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1621 DB 39,0 ;; error character = standalone accent
1622 ;;
1623 DW CP437_AC_LO_T1_END-$ ;; Size of xlat table
1624 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1625 DB 5 ;; number of scans
1626 DB 16,' ' ;; a acute
1627 DB 18,'‚' ;; e acute
1628 DB 23,'¡' ;; i acute
1629 DB 24,'¢' ;; o acute
1630 DB 22,'£' ;; u acute
1631CP437_AC_LO_T1_END: ;;
1632 ;;
1633 DW 0 ;; Size of xlat table - null table
1634 ;;
1635CP437_AC_LO_END: ;;
1636 ;;
1637;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1638;; CODE PAGE: CP437
1639;; STATE: Acute Upper Case
1640;; KEYBOARD TYPES: All
1641;; TABLE TYPE: Translate
1642;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1643 ;;
1644 DW CP437_AC_UP_END-$ ;; length of state section
1645 DB ACUTE_UPPER ;; State ID
1646 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1647 DB 39,0 ;; error character = standalone accent
1648 ;;
1649 DW CP437_AC_UP_T1_END-$ ;; Size of xlat table
1650 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1651 DB 1 ;; number of scans
1652 DB 18,'' ;; scan code,ASCII - e
1653CP437_AC_UP_T1_END: ;;
1654 ;;
1655 DW 0 ;; Size of xlat table - null table
1656 ;;
1657CP437_AC_UP_END: ;;
1658 ;;
1659;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1660;; CODE PAGE: CP437
1661;; STATE: Acute Space Bar
1662;; KEYBOARD TYPES: All
1663;; TABLE TYPE: Translate
1664;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1665 ;;
1666 DW CP437_AC_SP_END-$ ;; length of state section
1667 DB ACUTE_SPACE ;; State ID
1668 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1669 DB 39,0 ;; error character = standalone accent
1670 ;;
1671 DW CP437_AC_SP_T1_END-$ ;; Size of xlat table
1672 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1673 DB 1 ;; number of scans
1674 DB 57,39 ;; scan code,ASCII - SPACE
1675CP437_AC_SP_T1_END: ;;
1676 ;;
1677 DW 0 ;; Size of xlat table - null table
1678 ;;
1679CP437_AC_SP_END: ;;
1680 ;;
1681;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1682;; CODE PAGE: CP437
1683;; STATE: Tilde Lower
1684;; KEYBOARD TYPES: All
1685;; TABLE TYPE: Translate
1686;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1687 ;;
1688 DW CP437_TI_LO_END-$ ;; length of state section
1689 DB TILDE_LOWER ;; State ID
1690 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1691 DB 126,0 ;; error character = standalone accent
1692 ;;
1693 DW CP437_TI_LO_T1_END-$ ;; Size of xlat table
1694 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1695 DB 1 ;; number of scans
1696 DB 49,164 ;; scan code,ASCII - n
1697CP437_TI_LO_T1_END: ;;
1698 ;;
1699 DW 0 ;; Size of xlat table - null table
1700 ;;
1701CP437_TI_LO_END: ;; length of state section
1702 ;;
1703;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1704;; CODE PAGE: CP437
1705;; STATE: Tilde Upper Case
1706;; KEYBOARD TYPES: All
1707;; TABLE TYPE: Translate
1708;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1709 ;;
1710 DW CP437_TI_UP_END-$ ;; length of state section
1711 DB TILDE_UPPER ;; State ID
1712 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1713 DB 126,0 ;; error character = standalone accent
1714 ;;
1715 DW CP437_TI_UP_T1_END-$ ;; Size of xlat table
1716 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1717 DB 1 ;; number of scans
1718 DB 49,165 ;; scan code,ASCII - N
1719CP437_TI_UP_T1_END: ;;
1720 ;;
1721 DW 0 ;; Size of xlat table - null table
1722 ;;
1723CP437_TI_UP_END: ;; length of state section
1724 ;;
1725;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1726;; CODE PAGE: CP437
1727;; STATE: Diaresis Lower Case
1728;; KEYBOARD TYPES: All
1729;; TABLE TYPE: Translate
1730;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1731 ;;
1732 DW CP437_DI_LO_END-$ ;; length of state section
1733 DB DIARESIS_LOWER ;; State ID
1734 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1735 DB 0FEH,0 ;; error character = standalone accent
1736 ;;
1737 DW CP437_DI_LO_T1_END-$ ;; Size of xlat table
1738 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1739 DB 6 ;; number of scans
1740 DB 18,'‰' ;; scan code,ASCII - e
1741 DB 16,'„' ;; scan code,ASCII - a
1742 DB 24,'”' ;; scan code,ASCII - o
1743 DB 22,'' ;; scan code,ASCII - u
1744 DB 23,'‹' ;; scan code,ASCII - i
1745 DB 21,'˜' ;; scan code,ASCII - y
1746CP437_DI_LO_T1_END: ;;
1747 ;;
1748 DW 0 ;; Size of xlat table - null table
1749 ;;
1750CP437_DI_LO_END: ;; length of state section
1751 ;;
1752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1753;; CODE PAGE: CP437
1754;; STATE: Diaresis Upper Case
1755;; KEYBOARD TYPES: All
1756;; TABLE TYPE: Translate
1757;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1758 ;;
1759 DW CP437_DI_UP_END-$ ;; length of state section
1760 DB DIARESIS_UPPER ;; State ID
1761 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1762 DB 0FEH,0 ;; error character = standalone accent
1763 ;;
1764 DW CP437_DI_UP_T1_END-$ ;; Size of xlat table
1765 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1766 DB 3 ;; number of scans
1767 DB 16,'Ž' ;; scan code,ASCII - a
1768 DB 24,'™' ;; scan code,ASCII - o
1769 DB 22,'š' ;; scan code,ASCII - u
1770CP437_DI_UP_T1_END: ;;
1771 ;;
1772 DW 0 ;; Size of xlat table - null table
1773 ;;
1774CP437_DI_UP_END: ;; length of state section
1775 ;;
1776 ;;
1777;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1778;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1779;; CODE PAGE: Common
1780;; STATE: Diaresis Upper Case
1781;; KEYBOARD TYPES: P12
1782;; TABLE TYPE: Translate
1783;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1784 ;;
1785 DW COM_DI_UP_END-$ ;; length of state section
1786 DB DIARESIS_UPPER ;; State ID
1787 DW P12_KB ;; Keyboard Type
1788 DB 249,0 ;; error character = standalone accent
1789 ;;
1790 DW COM_DI_UP_T1_END-$ ;; Size of xlat table
1791 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1792 DB 3 ;; number of scans
1793 DB 16,'Ž' ;; scan code,ASCII - a
1794 DB 24,'™' ;; scan code,ASCII - o
1795 DB 22,'š' ;; scan code,ASCII - u
1796COM_DI_UP_T1_END: ;;
1797 ;;
1798 DW 0 ;; Size of xlat table - null table
1799 ;;
1800COM_DI_UP_END: ;; length of state section
1801 ;;
1802 ;;
1803;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1804;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1805;; CODE PAGE: Common
1806;; STATE: Diaresis Space Bar
1807;; KEYBOARD TYPES: P12
1808;; TABLE TYPE: Translate
1809;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1810 ;;
1811 DW COM_DI_SP_END-$ ;; length of state section
1812 DB DIARESIS_SPACE ;; State ID
1813 DW P12_KB ;; Keyboard Type
1814 DB 249,0 ;; error character = standalone accent
1815 ;;
1816 DW COM_DI_SP_T1_END-$ ;; Size of xlat table
1817 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1818 DB 1 ;; number of scans
1819 DB 57,249 ;; error character = standalone accent
1820COM_DI_SP_T1_END: ;;
1821 ;;
1822 DW 0 ;; Size of xlat table - null table
1823COM_DI_SP_END: ;; length of state section
1824 ;;
1825;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1826;***************************************** CNS P12 Addition *****************
1827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1828;; CODE PAGE: 437 ???????????????????May need change....
1829;; STATE: Third Shift
1830;; KEYBOARD TYPES: P12
1831;; TABLE TYPE: Translate
1832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1833 ;;
1834 DW CP437_THIRD_PEND-$ ;; length of state section
1835 DB THIRD_SHIFT ;; State ID
1836 DW P12_KB ;; Keyboard Type
1837 DB -1,-1 ;; default ignore error state
1838 ;;
1839 DW CP437_THIRD_T1_PEND-$ ;; Size of xlat table
1840 DB STANDARD_TABLE ;; xlat options: *** CNS 12/18
1841 DB 1 ;; number of scans
1842 DB 27,'$' ;; dollar currency symbol
1843CP437_THIRD_T1_PEND: ;;
1844 ;;
1845 DW 0 ;; Size of xlat table - null table
1846 ;;
1847CP437_THIRD_PEND: ;;
1848 ;;
1849;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1850;***************************************** CNS P12 Addition *****************
1851;; CODE PAGE: CP437
1852;; STATE: Diaresis Space Bar
1853;; KEYBOARD TYPES: All
1854;; TABLE TYPE: Translate
1855;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1856; ;;
1857; DW CP437_DI_SP_END-$ ;; length of state section
1858; DB DIARESIS_SPACE ;; State ID
1859; DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1860; DB 0FEH,0 ;; error character = standalone accent
1861; ;;
1862; DW CP437_DI_SP_T1_END-$ ;; Size of xlat table
1863; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1864; DB 1 ;; number of scans
1865; DB 57,0FEH ;; error character = standalone accent
1866;CP437_DI_SP_T1_END: ;;
1867; ;;
1868; DW 0 ;; Size of xlat table - null table
1869;CP437_DI_SP_END: ;; length of state section
1870; ;;
1871;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1872 DW 0 ;; LAST STATE
1873 ;;
1874CP437_XLAT_END: ;;
1875 ;;
1876;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1877;;***************************************
1878;; BE Specific Translate Section for 850
1879;;***************************************
1880;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1881 ;;
1882 PUBLIC FR1_850_XLAT ;;
1883FR1_850_XLAT: ;;
1884 ;;
1885 DW CP850_XLAT_END-$ ;; length of section
1886 DW 850 ;;
1887 ;;
1888 ;;
1889;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1890;; CODE PAGE: 850
1891;; STATE: Non-Alpha Lower Case
1892;; KEYBOARD TYPES: All
1893;; TABLE TYPE: Translate
1894;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1895 ;;
1896 DW CP850_NA_LO_END-$ ;; length of state section
1897 DB NON_ALPHA_LOWER ;; State ID
1898 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1899 DB -1,-1 ;; default ignore error state
1900 ;;
1901 DW CP850_NA_LO_T1_END-$ ;; Size of xlat table
1902 DB STANDARD_TABLE ;; xlat options:
1903 DB 1 ;; number of scans
1904 DB 7,0F5H ;; Section symbol - 
1905CP850_NA_LO_T1_END: ;;
1906 ;;
1907 DW 0 ;; Size of xlat table - null table
1908 ;;
1909CP850_NA_LO_END: ;;
1910 ;;
1911 ;;
1912;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1913;**************************************** CNS Addition
1914;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1915;; CODE PAGE: 850
1916;; STATE: Non-Alpha Upper Case
1917;; KEYBOARD TYPES: P12
1918;; TABLE TYPE: Translate
1919;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1920 ;;
1921 DW CP850_NA_UP_K1_END-$ ;; length of state section
1922 DB NON_ALPHA_UPPER ;; State ID
1923 DW P12_KB ;; Keyboard Type
1924 DB -1,-1 ;; default ignore error state
1925 ;;
1926 DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table
1927 DB STANDARD_TABLE ;; xlat options: ***** CNS 12/18
1928 DB 1 ;; number of scans
1929 DB 53,0F5H ;; Section symbol - 
1930CP850_NA_UP_T1_K1_END: ;;
1931 ;;
1932 DW 0 ;; Size of xlat table - null table
1933 ;;
1934CP850_NA_UP_K1_END: ;;
1935 ;;
1936;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1937;**************************************** CNS Addition
1938;; CODE PAGE: 850
1939;; STATE: Non-Alpha Upper Case
1940;; KEYBOARD TYPES: G,
1941;; TABLE TYPE: Translate
1942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1943 ;;
1944 DW CP850_NA_UP_END-$ ;; length of state section
1945 DB NON_ALPHA_UPPER ;; State ID
1946 DW G_KB ;P12_KB ;; Keyboard Type
1947 DB -1,-1 ;; default ignore error state
1948 ;;
1949 DW CP850_NA_UP_T1_END-$ ;; Size of xlat table
1950 DB STANDARD_TABLE ;; xlat options:
1951 DB 1 ;; number of scans
1952 DB 41,0FCH ;; 3 Superscript
1953CP850_NA_UP_T1_END: ;;
1954 ;;
1955 DW 0 ;; Size of xlat table - null table
1956 ;;
1957CP850_NA_UP_END: ;;
1958 ;;
1959;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1960;; CODE PAGE: 850
1961;; STATE: Third Shift
1962;; KEYBOARD TYPES: All
1963;; TABLE TYPE: Translate
1964;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1965 ;;
1966 DW CP850_THIRD_END-$ ;; length of state section
1967 DB THIRD_SHIFT ;; State ID
1968 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
1969 DB -1,-1 ;; default ignore error state
1970 ;;
1971 DW CP850_THIRD_T1_END-$ ;; Size of xlat table
1972 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1973 DB 0 ;; number of scans
1974CP850_THIRD_T1_END: ;;
1975 ;;
1976 DW 0 ;; Size of xlat table - null table
1977 ;;
1978CP850_THIRD_END: ;;
1979 ;;
1980;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1981;***************************************** CNS P12 Addition *****************
1982;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1983;; CODE PAGE: 850
1984;; STATE: Third Shift
1985;; KEYBOARD TYPES: P12
1986;; TABLE TYPE: Translate
1987;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1988 ;;
1989 DW CP850_THIRD_PEND-$ ;; length of state section
1990 DB THIRD_SHIFT ;; State ID
1991 DW P12_KB ;; Keyboard Type
1992 DB -1,-1 ;; default ignore error state
1993 ;;
1994 DW CP850_THIRD_P1_END-$ ;; Size of xlat table
1995 DB STANDARD_TABLE ;; xlat options: *** CNS 12/18
1996 DB 1 ;; number of scans
1997 DB 27,0CFH ;; international currency symbol
1998CP850_THIRD_P1_END: ;;
1999 ;;
2000 DW 0 ;; Size of xlat table - null table
2001 ;;
2002CP850_THIRD_PEND: ;;
2003 ;;
2004;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2005;***************************************** CNS P12 Addition *****************
2006;; CODE PAGE: CP850
2007;; STATE: Tilde Lower
2008;; KEYBOARD TYPES: All
2009;; TABLE TYPE: Translate
2010;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2011 ;;
2012 DW CP850_TI_LO_END-$ ;; length of state section
2013 DB TILDE_LOWER ;; State ID
2014 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
2015 DB 126,0 ;; error character = standalone accent
2016 ;;
2017 DW CP850_TI_LO_T1_END-$ ;; Size of xlat table
2018 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
2019 DB 3 ;; number of scans
2020 DB 49,164 ;; scan code,ASCII - n
2021 DB 16,0C6H ;; a
2022 DB 24,0E4H ;; o
2023CP850_TI_LO_T1_END: ;;
2024 ;;
2025 DW 0 ;; Size of xlat table - null table
2026 ;;
2027CP850_TI_LO_END: ;; length of state section
2028 ;;
2029;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2030;***************************************** CNS P12 Addition *****************
2031;***************************************** CNS P12 Addition *****************
2032;; CODE PAGE: CP850
2033;; STATE: Tilde Upper Case
2034;; KEYBOARD TYPES: All
2035;; TABLE TYPE: Translate
2036;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2037 ;;
2038 DW CP850_TI_UP_END-$ ;; length of state section
2039 DB TILDE_UPPER ;; State ID
2040 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
2041 DB 126,0 ;; error character = standalone accent
2042 ;;
2043 DW CP850_TI_UP_T1_END-$ ;; Size of xlat table
2044 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
2045 DB 3 ;; number of scans
2046 DB 49,165 ;; scan code,ASCII - N
2047 DB 16,0C7H ;; A
2048 DB 24,0E5H ;; O
2049CP850_TI_UP_T1_END: ;;
2050 ;;
2051 DW 0 ;; Size of xlat table - null table
2052 ;;
2053CP850_TI_UP_END: ;; length of state section
2054 ;;
2055;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2056;***************************************** CNS P12 Addition *****************
2057;***************************************** CNS P12 Addition *****************
2058;; CODE PAGE: CP850
2059;; STATE: Acute Lower Case
2060;; KEYBOARD TYPES: All
2061;; TABLE TYPE: Translate
2062;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2063 ;;
2064 DW CP850_AC_LO_END-$ ;; length of state section
2065 DB ACUTE_LOWER ;; State ID
2066 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
2067 DB 0EFH,0 ;; error character = standalone accent
2068 DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
2069 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
2070 DB 6 ;; number of scans
2071 DB 16,' ' ;; a acute
2072 DB 18,'‚' ;; e acute
2073 DB 23,'¡' ;; i acute
2074 DB 24,'¢' ;; o acute
2075 DB 22,'£' ;; u acute
2076 DB 21,0ECH ;; y acute ADDED 12/16 CNS **********
2077CP850_AC_LO_T1_END: ;;
2078 ;;
2079 DW 0 ;; Size of xlat table - null table
2080 ;;
2081CP850_AC_LO_END: ;;
2082 ;;
2083;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2084;***************************************** CNS P12 Addition *****************
2085;***************************************** CNS P12 Addition *****************
2086;; CODE PAGE: CP850
2087;; STATE: Acute Upper Case
2088;; KEYBOARD TYPES: All
2089;; TABLE TYPE: Translate
2090;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2091 ;;
2092 DW CP850_AC_UP_END-$ ;; length of state section
2093 DB ACUTE_UPPER ;; State ID
2094 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
2095 DB 0EFH,0 ;; error character = standalone accent
2096 DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
2097 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
2098 DB 6 ;; number of scans
2099 DB 16,0B5H ;; A acute
2100 DB 18,090H ;; E acute
2101 DB 23,0D6H ;; I acute
2102 DB 24,0E0H ;; O acute
2103 DB 22,0E9H ;; U acute
2104 DB 21,0EDH ;; Y acute
2105CP850_AC_UP_T1_END: ;;
2106 ;;
2107 DW 0 ;; Size of xlat table - null table
2108 ;;
2109CP850_AC_UP_END: ;;
2110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2111;***************************************** CNS P12 Addition *****************
2112;***************************************** CNS P12 Addition *****************
2113;; CODE PAGE: CP850
2114;; STATE: Acute Space Bar
2115;; KEYBOARD TYPES: All
2116;; TABLE TYPE: Translate
2117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2118 ;;
2119 DW CP850_AC_SP_END-$ ;; length of state section
2120 DB ACUTE_SPACE ;; State ID
2121 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
2122 DB 0EFH,0 ;; error character = standalone accent
2123 ;;
2124 DW CP850_AC_SP_T1_END-$ ;; Size of xlat table
2125 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
2126 DB 1 ;; number of scans
2127 DB 57,0EFH ;; scan code,ASCII - SPACE
2128CP850_AC_SP_T1_END: ;;
2129 ;;
2130 DW 0 ;; Size of xlat table - null table
2131 ;;
2132CP850_AC_SP_END: ;;
2133 ;;
2134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2135;***************************************** CNS P12 Addition *****************
2136;***************************************** CNS P12 Addition *****************
2137;; CODE PAGE: CP850
2138;; STATE: Diaresis Lower Case
2139;; KEYBOARD TYPES: All
2140;; TABLE TYPE: Translate
2141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2142 ;;
2143 DW CP850_DI_LO_END-$ ;; length of state section
2144 DB DIARESIS_LOWER ;; State ID
2145 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
2146 DB 249,0 ;; error character = standalone accent
2147 ;;
2148 DW CP850_DI_LO_T1_END-$ ;; Size of xlat table
2149 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
2150 DB 6 ;; number of scans
2151 DB 18,'‰' ;; scan code,ASCII - e
2152 DB 16,'„' ;; scan code,ASCII - a
2153 DB 24,'”' ;; scan code,ASCII - o
2154 DB 22,'' ;; scan code,ASCII - u
2155 DB 23,'‹' ;; scan code,ASCII - i
2156 DB 21,'˜' ;; scan code,ASCII - y
2157CP850_DI_LO_T1_END: ;;
2158 ;;
2159 DW 0 ;; Size of xlat table - null table
2160 ;;
2161CP850_DI_LO_END: ;; length of state section
2162 ;;
2163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;
2164;***************************************** CNS P12 Addition *****************
2165;***************************************** CNS P12 Addition *****************
2166;; KEYBOARD TYPES: All
2167;; TABLE TYPE: Translate
2168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2169
2170 ;;
2171 DW CP850_DI_UP_END-$ ;; length of state section
2172 DB DIARESIS_UPPER ;; State ID
2173 DW G_KB+AT_KB+XT_KB+P12_KB ;; Keyboard Type
2174 DB 249,0 ;; error character = standalone accent
2175 ;;
2176 DW CP850_DI_UP_T1_END-$ ;; Size of xlat table
2177 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
2178 DB 5 ;; number of scans
2179 DB 16,8EH ;; A di
2180 DB 18,0D3H ;; E diaeresis
2181 DB 23,0D8H ;; I diaeresis
2182 DB 24,99H ;; O di
2183 DB 22,9AH ;; U di
2184CP850_DI_UP_T1_END: ;;
2185 ;;
2186 DW 0 ;; Size of xlat table - null table
2187 ;;
2188CP850_DI_UP_END: ;; length of state section
2189 ;;
2190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2191;***************************************** CNS P12 Addition *****************
2192;***************************************** CNS P12 Addition *****************
2193;; CODE PAGE: CP850
2194;; STATE: Diaeresis Space Bar
2195;; KEYBOARD TYPES: All
2196;; TABLE TYPE: Translate
2197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2198 ;;
2199 DW CP850_DI_SP_END-$ ;; length of state section
2200 DB DIARESIS_SPACE ;; State ID
2201 DW ANY_KB ;; Keyboard Type
2202 DB 0FEH,0 ;; error character = standalone accent
2203 ;;
2204 DW CP850_DI_SP_T1_END-$ ;; Size of xlat table
2205 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
2206 DB 1 ;; number of scans
2207 DB 57,0F9H ;; scan code,ASCII - SPACE
2208CP850_DI_SP_T1_END: ;;
2209 ;;
2210 DW 0 ;; Size of xlat table - null table
2211 ;;
2212CP850_DI_SP_END: ;;
2213;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2214;***************************************** CNS P12 Addition *****************
2215;***************************************** CNS P12 Addition *****************
2216;; CODE PAGE: 850
2217;; STATE: Grave Upper
2218;; KEYBOARD TYPES: ALL
2219;; TABLE TYPE: Translate
2220;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2221 ;;
2222 DW CP850_GR_UP_END-$ ;; length of state section
2223 DB GRAVE_UPPER ;; State ID
2224 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
2225 DB 96,0 ;; error character = standalone accent
2226 ;;
2227 DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
2228 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
2229 DB 5 ;; number of scans
2230 DB 16,0B7H ;; A grave
2231 DB 18,0D4H ;; E grave
2232 DB 23,0DEH ;; I grave
2233 DB 24,0E3H ;; O grave
2234 DB 22,0EBH ;; U grave
2235CP850_GR_UP_T1_END: ;;
2236 ;;
2237 DW 0 ;; Size of xlat table - null table
2238 ;;
2239CP850_GR_UP_END: ;; length of state section
2240 ;;
2241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2242;***************************************** CNS P12 Addition *****************
2243;***************************************** CNS P12 Addition *****************
2244;; CODE PAGE: 850
2245;; STATE: Circumflex Upper
2246;; KEYBOARD TYPES: All
2247;; TABLE TYPE: Translate
2248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2249 ;;
2250 DW CP850_CI_UP_END-$ ;; length of state section
2251 DB CIRCUMFLEX_UPPER ;; State ID
2252 DW G_KB+AT_KB+XT_KB ;;
2253 DB 94,0 ;; error character = standalone accent
2254 ;;
2255 DW CP850_CI_UP_T1_END-$ ;; Size of xlat table
2256 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
2257 DB 5 ;; number of scans
2258 DB 16,0B6H ;; A circumflex
2259 DB 18,0D2H ;; E circumflex
2260 DB 23,0D7H ;; I circumflex
2261 DB 24,0E2H ;; O circumflex
2262 DB 22,0EAH ;; U circumflex
2263CP850_CI_UP_T1_END: ;;
2264 ;;
2265 DW 0 ;; Size of xlat table - null table
2266 ;;
2267CP850_CI_UP_END: ;; length of state section
2268 ;;
2269;***************************************** CNS P12 Addition *****************
2270;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2271;;;; CODE PAGE: 850
2272;;;; STATE: Circumflex Upper
2273;;;; KEYBOARD TYPES: P12
2274;;;;; TABLE TYPE: Translate
2275;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2276 ;;
2277 DW CP850_CI_UP_PEND-$ ;; length of state section
2278 DB CIRCUMFLEX_UPPER ;; State ID
2279 DW P12_KB ;; Keyboard Type
2280 DB 94,0 ;; error character = standalone accent
2281 ;;
2282 DW CP850_CI_UP_T1_PEND-$ ;; Size of xlat table
2283 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
2284 DB 5 ;; number of scans
2285 DB 16,0B6H ;; A circumflex
2286 DB 18,0D2H ;; E circumflex
2287 DB 23,0D7H ;; I circumflex
2288 DB 24,0E2H ;; O circumflex
2289 DB 22,0EAH ;; U circumflex
2290 CP850_CI_UP_T1_PEND: ;;
2291 ;;
2292 DW 0 ;; Size of xlat table - null table
2293 ;;
2294 CP850_CI_UP_PEND: ;; length of state section
2295 ;;
2296;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2297;***************************************** CNS P12 Addition *****************
2298
2299 DW 0 ;; LAST STATE
2300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2301 ;;
2302CP850_XLAT_END: ;;
2303;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2304 ;;
2305CODE ENDS ;;
2306 END ;;
2307;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFFR189.ASM b/v4.0/src/DEV/KEYBOARD/KDFFR189.ASM
new file mode 100644
index 0000000..7648c5e
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFFR189.ASM
@@ -0,0 +1,1529 @@
1;; LATEST CHANGE ALT & CTL disenabled US invalids
2;; Section symbol scan code incorrect
3;; zero scan code tag deleted from end of tag field
4;; Changed key #5 for the XT "/" instead of "'"..Pubs error
5;; ****************** CNS 12/18/86*************************
6
7 PAGE ,132
8 TITLE DOS - Keyboard Definition File
9
10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11;; DOS - - NLS Support - Keyboard Defintion File
12;; (c) Copyright 1988 Microsoft
13;;
14;; This file contains the keyboard tables for Spanish.
15;;
16;; Linkage Instructions:
17;; Refer to KDF.ASM.
18;;
19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
20 ;;
21 INCLUDE KEYBSHAR.INC ;;
22 INCLUDE POSTEQU.INC ;;
23 INCLUDE KEYBMAC.INC ;;
24 ;;
25 PUBLIC FR2_LOGIC ;;
26 PUBLIC FR2_437_XLAT ;;
27 PUBLIC FR2_850_XLAT ;;
28 ;;
29CODE SEGMENT PUBLIC 'CODE' ;;
30 ASSUME CS:CODE,DS:CODE ;;
31 ;;
32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
33;; Standard translate table options are a liner search table
34;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
36 ;;
37STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
38 ;;
39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
40;;***************************************
41;; FR State Logic
42;;***************************************
43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
44 ;;
45 ;;
46FR2_LOGIC:
47
48 DW LOGIC_END-$ ;; length
49 ;;
50 DW TYPEWRITER_CAPS_LK ;; special features (shift lock state)
51 ;;
52 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
53 ;;
54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
55;; OPTIONS: If we find a scan match in
56;; an XLATT or SET_FLAG operation then
57;; exit from INT 9.
58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
59 ;;
60 OPTION EXIT_IF_FOUND ;;
61 ;;
62 ;;
63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
64;; Dead key definitions must come before
65;; dead key translations to handle
66;; dead key + dead key.
67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
68 ;;
69 IFF EITHER_ALT,NOT ;;
70 ANDF EITHER_CTL,NOT ;;
71 IFF CAPS_STATE
72 SET_FLAG DEAD_UPPER
73 ELSEF
74 IFF EITHER_SHIFT ;;
75 SET_FLAG DEAD_UPPER ;;
76 ELSEF ;;
77 SET_FLAG DEAD_LOWER ;;
78 ENDIFF ;;
79 ENDIFF ;;
80 ENDIFF ;;
81 ;;
82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
83;; ACUTE ACCENT TRANSLATIONS
84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
85 ;;
86ACUTE_PROC: ;;
87 ;;
88 IFF ACUTE,NOT ;;
89 GOTO DIARESIS_PROC ;;
90 ENDIFF ;;
91 ;;
92 RESET_NLS ;;
93 IFF R_ALT_SHIFT,NOT ;;
94 XLATT ACUTE_SPACE ;;
95 ENDIFF ;;
96 IFF EITHER_CTL,NOT ;;
97 ANDF EITHER_ALT,NOT ;;
98 IFF EITHER_SHIFT ;;
99 IFF CAPS_STATE ;;
100 XLATT ACUTE_LOWER ;;
101 ELSEF ;;
102 XLATT ACUTE_UPPER ;;
103 ENDIFF ;;
104 ELSEF ;;
105 IFF CAPS_STATE ;;
106 XLATT ACUTE_UPPER ;;
107 ELSEF ;;
108 XLATT ACUTE_LOWER ;;
109 ENDIFF ;;
110 ENDIFF ;;
111 ENDIFF ;;
112 ;;
113INVALID_ACUTE: ;;
114 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
115 BEEP ;; failed or we are ina bad shift state.
116 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
117 ;; through to generate the second char.
118 ;; Note that the dead key flag will be
119 ;; reset before we get here.
120 ;;
121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
122;; DIARESIS ACCENT TRANSLATIONS
123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
124 ;;
125DIARESIS_PROC: ;;
126 ;;
127 IFF DIARESIS,NOT ;;
128 GOTO GRAVE_PROC ;;
129 ENDIFF ;;
130 ;;
131 RESET_NLS ;;
132 IFF R_ALT_SHIFT,NOT ;;
133 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
134 ENDIFF ;;
135 IFF EITHER_CTL,NOT ;;
136 ANDF EITHER_ALT,NOT ;;
137 IFF EITHER_SHIFT ;;
138 IFF CAPS_STATE ;;
139 XLATT DIARESIS_LOWER ;;
140 ELSEF ;;
141 XLATT DIARESIS_UPPER ;;
142 ENDIFF ;;
143 ELSEF ;;
144 IFF CAPS_STATE ;;
145 XLATT DIARESIS_UPPER ;;
146 ELSEF ;;
147 XLATT DIARESIS_LOWER ;;
148 ENDIFF ;;
149 ENDIFF ;;
150 ENDIFF ;;
151 ;;
152INVALID_DIARESIS: ;;
153 PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent
154 BEEP ;; Invalid dead key combo.
155 GOTO NON_DEAD ;;
156 ;;
157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
158;; GRAVE ACCENT TRANSLATIONS
159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
160 ;;
161GRAVE_PROC: ;;
162 ;;
163 IFF GRAVE,NOT ;;
164 GOTO CIRCUMFLEX_PROC ;;
165 ENDIFF ;;
166 ;;
167 RESET_NLS ;;
168 IFF R_ALT_SHIFT,NOT ;;
169 XLATT GRAVE_SPACE ;;
170 ENDIFF ;;
171 IFF EITHER_CTL,NOT ;;
172 ANDF EITHER_ALT,NOT ;;
173 IFF EITHER_SHIFT ;;
174 IFF CAPS_STATE ;;
175 XLATT GRAVE_LOWER ;;
176 ELSEF ;;
177 XLATT GRAVE_UPPER ;;
178 ENDIFF ;;
179 ELSEF ;;
180 IFF CAPS_STATE,NOT ;;
181 XLATT GRAVE_LOWER ;;
182 ELSEF ;;
183 XLATT GRAVE_UPPER ;;
184 ENDIFF ;;
185 ENDIFF ;;
186 ENDIFF ;;
187 ;;
188INVALID_GRAVE: ;;
189 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
190 BEEP ;; Invalid dead key combo.
191 GOTO NON_DEAD ;;
192 ;;
193;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
194;; CIRCUMFLEX ACCENT TRANSLATIONS
195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
196 ;;
197CIRCUMFLEX_PROC: ;;
198 ;;
199 IFF CIRCUMFLEX,NOT ;;
200 GOTO NON_DEAD ;;
201 ENDIFF ;;
202 ;;
203 RESET_NLS ;;
204 IFF R_ALT_SHIFT,NOT ;;
205 XLATT CIRCUMFLEX_SPACE ;;
206 ENDIFF ;;
207 IFF EITHER_CTL,NOT ;;
208 ANDF EITHER_ALT,NOT ;;
209 IFF EITHER_SHIFT ;;
210 IFF CAPS_STATE ;;
211 XLATT CIRCUMFLEX_LOWER ;;
212 ELSEF ;;
213 XLATT CIRCUMFLEX_UPPER ;;
214 ENDIFF ;;
215 ELSEF ;;
216 IFF CAPS_STATE,NOT ;;
217 XLATT CIRCUMFLEX_LOWER ;;
218 ELSEF ;;
219 XLATT CIRCUMFLEX_UPPER ;;
220 ENDIFF ;;
221 ENDIFF ;;
222 ENDIFF ;;
223 ;;
224INVALID_CIRCUMFLEX: ;;
225 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
226 BEEP ;; Invalid dead key combo.
227 GOTO NON_DEAD ;;
228 ;;
229 ;;
230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
232;; Upper, lower and third shifts
233;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
234 ;;
235NON_DEAD: ;;
236 ;;
237 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
238 ANDF LC_E0 ;; the "/" on the numeric pad of the
239 EXIT_STATE_LOGIC ;; G keyboard
240 ENDIFF ;;
241;;***BD ADDED FOR ALT, CTRL CASES ;;
242 IFF EITHER_CTL,NOT ;;
243 IFF ALT_SHIFT ;; ALT - case
244 ANDF R_ALT_SHIFT,NOT ;;
245 XLATT ALT_CASE ;;
246 ENDIFF ;;
247 ELSEF ;;
248 IFF EITHER_ALT,NOT ;; CTRL - case
249 XLATT CTRL_CASE ;;
250 ENDIFF ;;
251 ENDIFF ;;
252;;***BD END OF ADDITION
253 ;;
254 IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
255 ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
256 IFF EITHER_SHIFT ;; Numeric keys are not.
257;;***BD ADDED FOR NUMERIC PAD
258 IFF NUM_STATE,NOT ;;
259 XLATT NUMERIC_PAD ;;
260 ENDIFF ;;
261;;***BD END OF ADDITION
262; XLATT NON_ALPHA_UPPER ;;
263 IFF CAPS_STATE ;;
264 XLATT ALPHA_LOWER ;;
265 XLATT NON_ALPHA_LOWER ;;
266 ELSEF ;;
267 XLATT ALPHA_UPPER ;;
268 XLATT NON_ALPHA_UPPER ;;
269 ENDIFF ;;
270 ELSEF ;;
271;;***BD ADDED FOR NUMERIC PAD
272 IFF NUM_STATE ;;
273 XLATT NUMERIC_PAD ;;
274 ENDIFF ;;
275;;***BD END OF ADDITION
276; XLATT NON_ALPHA_LOWER ;;
277 IFF CAPS_STATE ;;
278 XLATT ALPHA_UPPER ;;
279 XLATT NON_ALPHA_UPPER ;;
280 ELSEF ;;
281 XLATT ALPHA_LOWER ;;
282 XLATT NON_ALPHA_LOWER ;;
283 ENDIFF ;;
284 ENDIFF ;;
285 ELSEF ;;
286 IFF EITHER_SHIFT,NOT ;;
287 IFKBD XT_KB+AT_KB ;;
288 IFF EITHER_CTL ;;
289 ANDF ALT_SHIFT ;;
290 XLATT THIRD_SHIFT ;;
291 ENDIFF ;;
292 ELSEF ;;
293 IFF EITHER_CTL,NOT ;;
294 ANDF R_ALT_SHIFT ;;
295 XLATT THIRD_SHIFT ;;
296 ENDIFF ;;
297 ENDIFF ;;
298 ENDIFF ;;
299 ENDIFF ;;
300 ;;
301 EXIT_STATE_LOGIC ;;
302 ;;
303LOGIC_END: ;;
304 ;;
305 ;;
306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
307;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
308; ;;
309;NON_DEAD: ;;
310; ;;
311; IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
312; ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
313; IFF EITHER_SHIFT ;; Numeric keys are not.
314; XLATT NON_ALPHA_UPPER ;;
315; IFF CAPS_STATE ;;
316; XLATT ALPHA_LOWER ;;
317; ELSEF ;;
318; XLATT ALPHA_UPPER ;;
319; ENDIFF ;;
320; ELSEF ;;
321; XLATT NON_ALPHA_LOWER ;;
322; IFF CAPS_STATE ;;
323; XLATT ALPHA_UPPER ;;
324; ELSEF ;;
325; XLATT ALPHA_LOWER ;;
326; ENDIFF ;;
327; ENDIFF ;;
328; ELSEF ;;
329; IFF EITHER_SHIFT,NOT ;;
330; IFKBD XT_KB+AT_KB ;;
331; IFF EITHER_CTL ;;
332; ANDF ALT_SHIFT ;;
333; XLATT THIRD_SHIFT ;;
334; ENDIFF ;;
335; ELSEF ;;
336; IFF EITHER_CTL,NOT ;;
337; ANDF R_ALT_SHIFT ;;
338; XLATT THIRD_SHIFT ;;
339; ENDIFF ;;
340; ENDIFF ;;
341; ENDIFF ;;
342; ENDIFF ;;
343; ;;
344; EXIT_STATE_LOGIC ;;
345; ;;
346;LOGIC_END: ;;
347; ;;
348; ;;
349;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
350;;***************************************
351;; FR Common Translate Section
352;; This section contains translations for the lower 128 characters
353;; only since these will never change from code page to code page.
354;; In addition the dead key "Set Flag" tables are here since the
355;; dead keys are on the same keytops for all code pages.
356;;***************************************
357;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
358 ;;
359 PUBLIC FR2_COMMON_XLAT ;;
360FR2_COMMON_XLAT: ;;
361 ;;
362 DW COMMON_XLAT_END-$ ;; length of section
363 DW -1 ;; code page
364 ;;
365 ;;
366;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
367;; CODE PAGE: Common
368;; STATE: Lower Shift Dead Key
369;; KEYBOARD TYPES: All
370;; TABLE TYPE: Flag Table
371;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
372 ;;
373 DW COM_DK_LO_END-$ ;; length of state section
374 DB DEAD_LOWER ;; State ID
375 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
376 DB -1,-1 ;; Buffer entry for error character
377 ;; Set Flag Table
378 DW 1 ;; number of entries
379 DB 26 ;; scan code
380 FLAG CIRCUMFLEX ;; flag bit to set
381; DB 40 eliminate ;;
382; FLAG ACUTE ;;
383 ;;
384 ;;
385COM_DK_LO_END: ;;
386 ;;
387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
388;; CODE PAGE: Common
389;; STATE: Upper Shift Dead Key
390;; KEYBOARD TYPES: All
391;; TABLE TYPE: Flag Table
392;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
393 ;;
394 DW COM_DK_UP_END-$ ;; length of state section
395 DB DEAD_UPPER ;; State ID
396 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
397 DB -1,-1 ;; Buffer entry for error character
398 ;; Set Flag Table
399 DW 1 ;; number of entries
400 DB 26 ;; scan code
401 FLAG DIARESIS ;; flag bit to set
402; DB 40 eliminate ;;
403; FLAG DIARESIS ;;
404 ;;
405COM_DK_UP_END: ;;
406 ;;
407;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
408;**********************
409;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
410;; CODE PAGE: Common
411;; STATE: Third Shift Dead Key
412;; KEYBOARD TYPES: All
413;; TABLE TYPE: Flag Table
414;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
415;; ;;
416;; DW COM_DK_TH_END-$ ;; length of state section
417;; DB DEAD_THIRD ;; State ID
418;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
419;; DB -1,-1 ;; Buffer entry for error character
420;; ;; Set Flag Table
421;; DW 1 ;; number of entries
422;; DB 8 ;; scan code
423;; FLAG GRAVE ;; flag bit to set
424;; ;;
425;;COM_DK_TH_END: ;;
426;; ;;
427;; ;;
428;; ;;
429;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
430;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
431;; CODE PAGE: Common
432;; STATE: Alt Case
433;; KEYBOARD TYPES: G_KB + P12_KB
434;; TABLE TYPE: Translate
435;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
436 ;;
437 DW COM_ALT_K1_END-$ ;; length of state section
438 DB ALT_CASE ;; State ID
439 DW G_KB+P12_KB ;; Keyboard Type
440 DB -1,-1 ;; Buffer entry for error character
441 ;; Set Flag Table
442 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
443 DB TYPE_2_TAB ;;
444 DB 6 ;; 10 Number of entries
445; DB 12,-1,-1 ;; invalid key U.S. alt -
446; DB 13,-1,-1 ;; invalid key U.S. alt =
447; DB 07,0,82H ;; alt - (minus sign)
448; DB 13,0,83H ;; alt = (equal sign)
449 DB 16,0,1EH ;; A
450 DB 17,0,2CH ;; Z
451 DB 30,0,10H ;; Q
452 DB 39,0,32H ;; M
453 DB 44,0,11H ;; W
454 DB 50,-1,-1 ;; U.S. 'M'
455COM_ALT_K1_T1_END: ;;
456 ;;
457 DW 0 ;;
458 ;;
459COM_ALT_K1_END: ;;
460 ;;
461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
462;; CODE PAGE: Common
463;; STATE: Ctrl Case
464;; KEYBOARD TYPES: G_KB+P12_KB
465;; TABLE TYPE: Translate
466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
467 ;;
468 DW COM_CTRL_K1_END-$ ;; length of state section
469 DB CTRL_CASE ;; State ID
470 DW G_KB+P12_KB ;; Keyboard Type
471 DB -1,-1 ;; Buffer entry for error character
472 ;; Set Flag Table
473 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
474 DB TYPE_2_TAB ;;
475 DB 12 ;; Number of entries
476 DB 12,-1,-1 ;;
477 DB 07,30,07 ;; ctl + number six key
478 DB 12,29,12 ;; ctl + ]
479 DB 13,31,13 ;;
480 DB 16,01,16 ;; A
481 DB 17,26,17 ;; Z
482 DB 30,17,30 ;; Q
483 DB 39,13,39 ;; M
484 DB 43,-1,-1 ;; \
485 DB 44,23,44 ;; W
486 DB 50,-1,-1 ;; U.S. 'M'
487 DB 9,28,9 ;; \ position (this is also the underscore position)
488COM_CTRL_K1_T1_END: ;;
489 ;;
490 DW 0 ;;
491 ;;
492COM_CTRL_K1_END: ;;
493 ;;
494 ;;
495;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
496;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
497;; CODE PAGE: Common
498;; STATE: Alt Case
499;; KEYBOARD TYPES: AT + XT
500;; TABLE TYPE: Translate
501;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
502 ;;
503 DW COM_ALT_K2_END-$ ;; length of state section
504 DB ALT_CASE ;; State ID
505 DW AT_KB+XT_KB ;; Keyboard Type
506 DB -1,-1 ;; Buffer entry for error character
507 ;; Set Flag Table
508 DW COM_ALT_K2_T2_END-$ ;; Size of xlat table
509 DB TYPE_2_TAB ;;
510 DB 6 ;; 9 Number of entries
511; DB 12,-1,-1 ;; invalid key U.S. alt -
512; DB 13,0,82H ;; alt - (minus sign)
513; DB 53,0,83H ;; alt = (equal sign)
514 DB 16,0,1EH ;; A
515 DB 17,0,2CH ;; Z
516 DB 30,0,10H ;; Q
517 DB 39,0,32H ;; M
518 DB 44,0,11H ;; W
519 DB 50,-1,-1 ;; U.S. 'M'
520COM_ALT_K2_T2_END: ;;
521 ;;
522 DW 0 ;;
523 ;;
524COM_ALT_K2_END: ;;
525 ;;
526;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
527;; CODE PAGE: Common
528;; STATE: Ctrl Case
529;; KEYBOARD TYPES: AT
530;; TABLE TYPE: Translate
531;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
532 ;;
533 DW COM_CTRL_K2_END-$ ;; length of state section
534 DB CTRL_CASE ;; State ID
535 DW AT_KB ;; Keyboard Type
536 DB -1,-1 ;; Buffer entry for error character
537 ;; Set Flag Table
538 DW COM_CTRL_K2_T2_END-$ ;; Size of xlat table
539 DB TYPE_2_TAB ;;
540 DB 11 ;; Number of entries
541 DB 12,-1,-1 ;; invalid U.S. -
542 DB 43,-1,-1 ;; invalid U.S. \
543 DB 41,28,41 ;; valid ctl + \
544 DB 07,30,07 ;; ctl + number six key
545 DB 13,31,13 ;; ctl - or _
546 DB 16,01,16 ;; A
547 DB 17,26,17 ;; Z
548 DB 30,17,30 ;; Q
549 DB 39,13,39 ;; M
550 DB 44,23,44 ;; W
551 DB 50,-1,-1 ;; U.S. 'M'
552COM_CTRL_K2_T2_END: ;;
553 ;;
554 DW 0 ;;
555 ;;
556COM_CTRL_K2_END: ;;
557 ;;
558 ;;
559;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
560;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
561;; CODE PAGE: Common
562;; STATE: Ctrl Case
563;; KEYBOARD TYPES: XT
564;; TABLE TYPE: Translate
565;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
566 ;;
567 DW COM_CTRL_K3_END-$ ;; length of state section
568 DB CTRL_CASE ;; State ID
569 DW AT_KB+XT_KB ;; Keyboard Type
570 DB -1,-1 ;; Buffer entry for error character
571 ;; Set Flag Table
572 DW COM_CTRL_K3_T3_END-$ ;; Size of xlat table
573 DB TYPE_2_TAB ;;
574 DB 11 ;; Number of entries
575 DB 12,-1,-1 ;;
576 DB 43,-1,-1 ;;
577 DB 43,28,43 ;; valid ctl + \
578 DB 07,30,07 ;; ctl + number six key
579 DB 13,31,13 ;; ctl - or _
580 DB 16,01,16 ;; A
581 DB 17,26,17 ;; Z
582 DB 30,17,30 ;; Q
583 DB 39,13,39 ;; M
584 DB 44,23,44 ;; W
585 DB 50,-1,-1 ;; U.S. 'M'
586COM_CTRL_K3_T3_END: ;;
587 ;;
588 DW 0 ;;
589 ;;
590COM_CTRL_K3_END: ;;
591 ;;
592 ;;
593;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
594;******************************************************************************
595;; CODE PAGE: Common
596;; STATE: Alpha Lower Case
597;; KEYBOARD TYPES: All
598;; TABLE TYPE: Translate
599;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
600 ;;
601 DW COM_AL_LO_END-$ ;; length of state section
602 DB ALPHA_LOWER ;; State ID
603 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
604 DB -1,-1 ;; Buffer entry for error character
605 ;;
606 DW COM_AL_LO_T1_END-$ ;; Size of xlat table
607 DB STANDARD_TABLE ;; xlat options:
608 DB 5 ;; number of entries
609 DB 16,'a' ;; small a
610 DB 17,'z' ;; small z
611 DB 30,'q' ;; small q
612 DB 39,'m' ;; small m
613 DB 44,'w' ;; small w
614COM_AL_LO_T1_END: ;;
615 ;;
616 DW 0 ;; Size of xlat table - null table
617 ;;
618COM_AL_LO_END: ;;
619 ;;
620;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
621;; CODE PAGE: Common
622;; STATE: Alpha Upper Case
623;; KEYBOARD TYPES: All
624;; TABLE TYPE: Translate
625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
626 ;;
627 DW COM_AL_UP_END-$ ;; length of state section
628 DB ALPHA_UPPER ;; State ID
629 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
630 DB -1,-1 ;; Buffer entry for error character
631 ;;
632 DW COM_AL_UP_T1_END-$ ;; Size of xlat table
633 DB STANDARD_TABLE ;; xlat options:
634 DB 5 ;; number of entries
635 DB 16,'A' ;; caps A
636 DB 17,'Z' ;; caps Z
637 DB 30,'Q' ;; caps Q
638 DB 39,'M' ;; caps M
639 DB 44,'W' ;; caps W
640COM_AL_UP_T1_END: ;;
641 ;;
642 DW 0 ;; Size of xlat table - null table
643 ;;
644COM_AL_UP_END: ;;
645 ;;
646 ;;
647;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
648;; CODE PAGE: Common
649;; STATE: Non-Alpha Lower Case
650;; KEYBOARD TYPES: G_KB+P12
651;; TABLE TYPE: Translate
652;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
653 ;;
654 DW COM_NA_LO_K1_END-$ ;; length of state section
655 DB NON_ALPHA_LOWER ;; State ID
656 DW G_KB+P12_KB ;; Keyboard Type
657 DB -1,-1 ;; Buffer entry for error character
658 ;;
659 DW COM_NA_LO_T1_K1_END-$ ;; Size of xlat table
660 DB STANDARD_TABLE ;; xlat options:
661 DB 21 ;; number of entries
662 DB 41,"ý" ;; superscript 2
663 DB 2,"&" ;;
664 DB 3,"‚" ;; acute - e
665 DB 4,'"' ;;
666 DB 5,"'" ;;
667 DB 6,"(" ;;
668 DB 7,"-" ;;
669 DB 8,"Š" ;; grave - e
670 DB 9,"_" ;;
671 DB 10,"‡" ;; c - cedilla small
672 DB 11,"…" ;;
673 DB 12,")" ;;
674 DB 13,"=" ;;
675 DB 27,"$" ;;
676 DB 40,"—" ;; grave - u
677 DB 43,"*" ;;
678 DB 86,'<' ;; +
679 DB 50,',' ;; <
680 DB 51,';' ;; -
681 DB 52,':' ;;
682 DB 53,'!' ;;
683
684COM_NA_LO_T1_K1_END: ;;
685 ;;
686 DW 0 ;; Size of xlat table - null table
687 ;;
688COM_NA_LO_K1_END: ;;
689 ;;
690;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
691;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
692;; CODE PAGE: Common
693;; STATE: Non-Alpha Lower Case
694;; KEYBOARD TYPES: AT_KB
695;; TABLE TYPE: Translate
696;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
697 ;;
698 DW COM_NA_LO_K2_END-$ ;; length of state section
699 DB NON_ALPHA_LOWER ;; State ID
700 DW AT_KB ;; Keyboard Type
701 DB -1,-1 ;; Buffer entry for error character
702 ;;
703 DW COM_NA_LO_T1_K2_END-$ ;; Size of xlat table
704 DB STANDARD_TABLE ;; xlat options:
705 DB 20 ;; number of entries
706 DB 2,"&" ;;
707 DB 3,"‚" ;; acute - e
708 DB 4,'"' ;;
709 DB 5,"'" ;;
710 DB 6,"(" ;;
711 DB 7,"-" ;;
712 DB 8,"Š" ;; grave - e
713 DB 9,"!" ;;
714 DB 10,"‡" ;; c - cedilla small
715 DB 11,"…" ;; grave - a small
716 DB 12,")" ;;
717 DB 13,"-" ;;
718 DB 27,"$" ;;
719 DB 40,"—" ;; grave — small
720 DB 43,0E6H ;; mu symbol - æ
721 DB 41,'<' ;; +
722 DB 50,',' ;; <
723 DB 51,';' ;; -
724 DB 52,':' ;;
725 DB 53,'=' ;;
726
727COM_NA_LO_T1_K2_END: ;;
728 ;;
729 DW 0 ;; Size of xlat table - null table
730 ;;
731COM_NA_LO_K2_END: ;;
732 ;;
733;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
734;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
735;; CODE PAGE: Common
736;; STATE: Non-Alpha Lower Case
737;; KEYBOARD TYPES: XT_KB+
738;; TABLE TYPE: Translate
739;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
740 ;;
741 DW COM_NA_LO_K3_END-$ ;; length of state section
742 DB NON_ALPHA_LOWER ;; State ID
743 DW XT_KB ;; Keyboard Type
744 DB -1,-1 ;; Buffer entry for error character
745 ;;
746 DW COM_NA_LO_T1_K3_END-$ ;; Size of xlat table
747 DB STANDARD_TABLE ;; xlat options:
748 DB 20 ;; number of entries
749 DB 2,"&" ;;
750 DB 3,"‚" ;; acute - e
751 DB 4,'"' ;; ' on the AT_KB
752 DB 5,"'" ;; *** CNS **** 12/18/86 pubs wrong
753 DB 6,"(" ;;
754 DB 7,"-" ;;
755 DB 8,"Š" ;; grave - e
756 DB 9,"!" ;;
757 DB 10,"‡" ;; c - cedilla small
758 DB 11,"…" ;;
759 DB 12,")" ;;
760 DB 13,"-" ;;
761 DB 27,"$" ;;
762 DB 40,"—" ;; grave — small
763 DB 41,0E6H ;; mu symbol - æ
764 DB 43,'<' ;; +
765 DB 50,',' ;; <
766 DB 51,';' ;; -
767 DB 52,':' ;;
768 DB 53,'=' ;;
769COM_NA_LO_T1_K3_END: ;;
770 ;;
771 DW 0 ;; Size of xlat table - null table
772 ;;
773COM_NA_LO_K3_END: ;;
774 ;;
775;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
776;; CODE PAGE: Common
777;; STATE: Non-Alpha Upper Case
778;; KEYBOARD TYPES: G_KB+P12
779;; TABLE TYPE: Translate
780;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
781 ;;
782 DW COM_NA_UP_K1_END-$ ;; length of state section
783 DB NON_ALPHA_UPPER ;; State ID
784 DW G_KB+P12_KB ;; Keyboard Type
785 DB -1,-1 ;; Buffer entry for error character
786 ;;
787 DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table
788 DB STANDARD_TABLE ;; xlat options:
789 DB 21 ;; number of entries
790 DB 2,'1' ;;
791 DB 3,'2' ;;
792 DB 4,'3' ;;
793 DB 5,'4' ;;
794 DB 6,'5' ;;
795 DB 7,'6' ;;
796 DB 8,'7' ;;
797 DB 9,'8' ;;
798 DB 10,'9' ;;
799 DB 11,'0' ;;
800 DB 12,0F8H ;; degree symbol
801 DB 13,"+" ;; plus sign
802 DB 27,09CH ;; œ symbol
803 DB 40,'%' ;;
804 DB 41,"ü" ;; superscript 3
805 DB 43,0E6H ;; æ - mu symbol
806 DB 86,'>' ;;
807 DB 50,'?' ;;
808 DB 51,'.' ;;
809 DB 52,'/' ;;
810 DB 53,'+' ;;
811COM_NA_UP_T1_K1_END: ;;
812 ;;
813 DW 0 ;; Size of xlat table - null table
814 ;;
815COM_NA_UP_K1_END: ;;
816 ;;
817 ;;
818;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
819;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
820;; CODE PAGE: Common
821;; STATE: Non-Alpha Upper Case
822;; KEYBOARD TYPES: AT
823;; TABLE TYPE: Translate
824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
825 ;;
826 DW COM_NA_UP_K2_END-$ ;; length of state section
827 DB NON_ALPHA_UPPER ;; State ID
828 DW AT_KB ;; Keyboard Type
829 DB -1,-1 ;; Buffer entry for error character
830 ;;
831 DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table
832 DB STANDARD_TABLE ;; xlat options:
833 DB 20 ;; number of entries
834 DB 2,'1' ;;
835 DB 3,'2' ;;
836 DB 4,'3' ;;
837 DB 5,'4' ;;
838 DB 6,'5' ;;
839 DB 7,'6' ;;
840 DB 8,'7' ;;
841 DB 9,'8' ;;
842 DB 10,'9' ;;
843 DB 11,'0' ;;
844 DB 12,0F8H ;; degree symbol
845 DB 13,"_" ;; underscore
846 DB 43,09CH ;; œ symbol
847 DB 40,'%' ;;
848 DB 27,"*" ;; asterisk
849 DB 41,'>' ;;
850 DB 50,'?' ;;
851 DB 51,'.' ;;
852 DB 52,'/' ;;
853 DB 53,'+' ;;
854COM_NA_UP_T1_K2_END: ;;
855 ;;
856 DW 0 ;; Size of xlat table - null table
857 ;;
858COM_NA_UP_K2_END: ;;
859 ;;
860 ;;
861;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
862;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
863;; CODE PAGE: Common
864;; STATE: Non-Alpha Upper Case
865;; KEYBOARD TYPES: XT_KB+
866;; TABLE TYPE: Translate
867;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
868 ;;
869 DW COM_NA_UP_K3_END-$ ;; length of state section
870 DB NON_ALPHA_UPPER ;; State ID
871 DW XT_KB+P12_KB ;; Keyboard Type
872 DB -1,-1 ;; Buffer entry for error character
873 ;;
874 DW COM_NA_UP_T1_K3_END-$ ;; Size of xlat table
875 DB STANDARD_TABLE ;; xlat options:
876 DB 20 ;; number of entries
877 DB 2,'1' ;;
878 DB 3,'2' ;;
879 DB 4,'3' ;;
880 DB 5,'4' ;;
881 DB 6,'5' ;;
882 DB 7,'6' ;;
883 DB 8,'7' ;;
884 DB 9,'8' ;;
885 DB 10,'9' ;;
886 DB 11,'0' ;;
887 DB 12,0F8H ;; degree symbol
888 DB 13,"_" ;; underscore
889 DB 41,09CH ;; œ symbol
890 DB 40,'%' ;;
891 DB 27,"*" ;; asterisk
892 DB 43,'>' ;;
893 DB 50,'?' ;;
894 DB 51,'.' ;;
895 DB 52,'/' ;;
896 DB 53,'+' ;;
897COM_NA_UP_T1_K3_END: ;;
898 ;;
899 DW 0 ;; Size of xlat table - null table
900 ;;
901COM_NA_UP_K3_END: ;;
902 ;;
903 ;;
904;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
905;; CODE PAGE: Common
906;; STATE: Third Shift
907;; KEYBOARD TYPES: G_KB +P12
908;; TABLE TYPE: Translate
909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
910 ;;
911 DW COM_THIRD_K1_END-$ ;; length of state section
912 DB THIRD_SHIFT ;; State ID
913 DW G_KB+P12_KB ;; Keyboard Type
914 DB -1,-1 ;; Buffer entry for error character
915 ;;
916 DW COM_THIRD_T1_K1_END-$ ;; Size of xlat table
917 DB STANDARD_TABLE ;; xlat options:
918 DB 11 ;; number of entries
919 DB 3,'~' ;;
920 DB 4,'#' ;;
921 DB 5,'{' ;;
922 DB 6,'[' ;;
923 DB 7,'|' ;;
924 DB 8,'`' ;; grave symbol not a dead key rep
925 DB 9,'\' ;;
926 DB 10,'^' ;; circumflex (caret)
927 DB 11,'@' ;;
928 DB 12,']' ;;
929 DB 13,'}' ;;
930COM_THIRD_T1_K1_END: ;;
931 ;;
932 DW 0 ;; Last xlat table
933COM_THIRD_K1_END: ;;
934 ;;
935;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
936;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
937;; CODE PAGE: Common
938;; STATE: Third Shift
939;; KEYBOARD TYPES: AT_KB
940;; TABLE TYPE: Translate
941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
942 ;;
943 DW COM_THIRD_K2_END-$ ;; length of state section
944 DB THIRD_SHIFT ;; State ID
945 DW AT_KB ;; Keyboard Type
946 DB -1,-1 ;; Buffer entry for error character
947 ;;
948 DW COM_THIRD_T1_K2_END-$ ;; Size of xlat table
949 DB STANDARD_TABLE ;; xlat options:
950 DB 6 ;; number of entries
951 DB 4,'#' ;;
952 DB 26,'[' ;;
953 DB 27,']' ;;
954 DB 41,'\' ;;
955 DB 3,'@' ;;
956 DB 7,'^' ;; circumflex (caret)
957COM_THIRD_T1_K2_END: ;;
958 ;;
959 DW 0 ;; Last xlat table
960COM_THIRD_K2_END: ;;
961 ;;
962;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
963;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
964;; CODE PAGE: Common
965;; STATE: Third Shift
966;; KEYBOARD TYPES: XT_KB+
967;; TABLE TYPE: Translate
968;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
969 ;;
970 DW COM_THIRD_K3_END-$ ;; length of state section
971 DB THIRD_SHIFT ;; State ID
972 DW XT_KB ;; Keyboard Type
973 DB -1,-1 ;; Buffer entry for error character
974 ;;
975 DW COM_THIRD_T1_K3_END-$ ;; Size of xlat table
976 DB STANDARD_TABLE ;; xlat options:
977 DB 6 ;; number of entries
978 DB 4,'#' ;;
979 DB 26,'[' ;;
980 DB 27,']' ;;
981 DB 43,'\' ;;
982 DB 3,'@' ;;
983 DB 7,'^' ;; circumflex (caret)
984COM_THIRD_T1_K3_END: ;;
985 ;;
986 DW 0 ;; Last xlat table
987COM_THIRD_K3_END: ;;
988 ;;
989;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
990;; CODE PAGE: Common
991;; STATE: Acute Lower Case
992;; KEYBOARD TYPES: All
993;; TABLE TYPE: Translate
994;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
995 ;;
996 DW COM_AC_LO_END-$ ;; length of state section
997 DB ACUTE_LOWER ;; State ID
998 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
999 DB 39,0 ;; error character = standalone accent
1000 ;;
1001 DW COM_AC_LO_T1_END-$ ;; Size of xlat table
1002 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1003 DB 1 ;; number of scans
1004 DB 18,'‚' ;; scan code,ASCII - e
1005COM_AC_LO_T1_END: ;;
1006 ;;
1007 DW 0 ;; Size of xlat table - null table
1008 ;;
1009COM_AC_LO_END: ;;
1010 ;;
1011;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1012;; CODE PAGE: Common
1013;; STATE: Acute Upper Case
1014;; KEYBOARD TYPES: All
1015;; TABLE TYPE: Translate
1016;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1017;; ;;
1018;; DW COM_AC_UP_END-$ ;; length of state section
1019;; DB ACUTE_UPPER ;; State ID
1020;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1021;; DB 39,0 ;; error character = standalone accent
1022;; ;;
1023;; DW COM_AC_UP_T1_END-$ ;; Size of xlat table
1024;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1025;; DB 2 ;; number of scans
1026;; DB 18,'' ;; scan code,ASCII - e
1027;;COM_AC_UP_T1_END: ;;
1028;; ;;
1029;; DW 0 ;; Size of xlat table - null table
1030;; ;;
1031;;COM_AC_UP_END: ;;
1032;; ;;
1033;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1034;; CODE PAGE: Common
1035;; STATE: Acute Space Bar
1036;; KEYBOARD TYPES: All
1037;; TABLE TYPE: Translate
1038;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1039;; ;;
1040;; DW COM_AC_SP_END-$ ;; length of state section
1041;; DB ACUTE_SPACE ;; State ID
1042;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1043;; DB 39,0 ;; error character = standalone accent
1044;; ;;
1045;; DW COM_AC_SP_T1_END-$ ;; Size of xlat table
1046;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1047;; DB 1 ;; number of scans
1048;; DB 57,39 ;; scan code,ASCII - SPACE
1049;;COM_AC_SP_T1_END: ;;
1050;; ;;
1051;; DW 0 ;; Size of xlat table - null table
1052;; ;;
1053;;COM_AC_SP_END: ;;
1054;; ;;
1055;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1056;; CODE PAGE: Common
1057;; STATE: Diaresis Lower Case
1058;; KEYBOARD TYPES: All
1059;; TABLE TYPE: Translate
1060;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1061 ;;
1062 DW COM_DI_LO_END-$ ;; length of state section
1063 DB DIARESIS_LOWER ;; State ID
1064 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1065 DB 249,0 ;; error character = standalone accent
1066 ;;
1067 DW COM_DI_LO_T1_END-$ ;; Size of xlat table
1068 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1069 DB 6 ;; number of scans
1070 DB 18,'‰' ;; scan code,ASCII - e
1071 DB 16,'„' ;; scan code,ASCII - a
1072 DB 24,'”' ;; scan code,ASCII - o
1073 DB 22,'' ;; scan code,ASCII - u
1074 DB 23,'‹' ;; scan code,ASCII - i
1075 DB 21,'˜' ;; scan code,ASCII - y
1076COM_DI_LO_T1_END: ;;
1077 ;;
1078 DW 0 ;; Size of xlat table - null table
1079 ;;
1080COM_DI_LO_END: ;; length of state section
1081 ;;
1082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1083;; CODE PAGE: Common
1084;; STATE: Diaresis Upper Case
1085;; KEYBOARD TYPES: All
1086;; TABLE TYPE: Translate
1087;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1088 ;;
1089 DW COM_DI_UP_END-$ ;; length of state section
1090 DB DIARESIS_UPPER ;; State ID
1091 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1092 DB 249,0 ;; error character = standalone accent
1093 ;;
1094 DW COM_DI_UP_T1_END-$ ;; Size of xlat table
1095 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1096 DB 3 ;; number of scans
1097 DB 16,'Ž' ;; scan code,ASCII - a
1098 DB 24,'™' ;; scan code,ASCII - o
1099 DB 22,'š' ;; scan code,ASCII - u
1100COM_DI_UP_T1_END: ;;
1101 ;;
1102 DW 0 ;; Size of xlat table - null table
1103 ;;
1104COM_DI_UP_END: ;; length of state section
1105 ;;
1106 ;;
1107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1108;; CODE PAGE: Common
1109;; STATE: Diaresis Space Bar
1110;; KEYBOARD TYPES: All
1111;; TABLE TYPE: Translate
1112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1113 ;;
1114 DW COM_DI_SP_END-$ ;; length of state section
1115 DB DIARESIS_SPACE ;; State ID
1116 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1117 DB 249,0 ;; error character = standalone accent
1118 ;;
1119 DW COM_DI_SP_T1_END-$ ;; Size of xlat table
1120 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1121 DB 1 ;; number of scans
1122 DB 57,249 ;; error character = standalone accent
1123COM_DI_SP_T1_END: ;;
1124 ;;
1125 DW 0 ;; Size of xlat table - null table
1126COM_DI_SP_END: ;; length of state section
1127 ;;
1128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1129;; CODE PAGE: Common
1130;; STATE: Grave Lower
1131;; KEYBOARD TYPES: All
1132;; TABLE TYPE: Translate
1133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1134;; ;;
1135;; DW COM_GR_LO_END-$ ;; length of state section
1136;; DB GRAVE_LOWER ;; State ID
1137;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1138;; DB 96,0 ;; error character = standalone accent
1139;; ;;
1140;; DW COM_GR_LO_T1_END-$ ;; Size of xlat table
1141;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1142;; DB 5 ;; number of scans
1143;; DB 18,'Š' ;; scan code,ASCII - e
1144;; DB 30,'…' ;; scan code,ASCII - a
1145;; DB 24,'•' ;; scan code,ASCII - o
1146;; DB 22,'—' ;; scan code,ASCII - u
1147;; DB 23,'' ;; scan code,ASCII - i
1148;;COM_GR_LO_T1_END: ;;
1149;; ;;
1150;; DW 0 ;; Size of xlat table - null table
1151;; ;;
1152;;COM_GR_LO_END: ;; length of state section
1153;; ;;
1154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1155;; CODE PAGE: Common
1156;; STATE: Grave Space Bar
1157;; KEYBOARD TYPES: All
1158;; TABLE TYPE: Translate
1159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1160;; ;;
1161;; DW COM_GR_SP_END-$ ;; length of state section
1162;; DB GRAVE_SPACE ;; State ID
1163;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1164;; DB 96,0 ;; error character = standalone accent
1165;; ;;
1166;; DW COM_GR_SP_T1_END-$ ;; Size of xlat table
1167;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1168;; DB 1 ;; number of scans
1169;; DB 57,96 ;; STANDALONE GRAVE
1170;;COM_GR_SP_T1_END: ;;
1171;; ;;
1172;; DW 0 ;; Size of xlat table - null table
1173;; ;;
1174;;COM_GR_SP_END: ;; length of state section
1175;; ;;
1176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1177;; CODE PAGE: Common
1178;; STATE: Circumflex Lower
1179;; KEYBOARD TYPES: All
1180;; TABLE TYPE: Translate
1181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1182 ;;
1183 DW COM_CI_LO_END-$ ;; length of state section
1184 DB CIRCUMFLEX_LOWER ;; State ID
1185 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1186 DB 94,0 ;; error character = standalone accent
1187 ;;
1188 DW COM_CI_LO_T1_END-$ ;; Size of xlat table
1189 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1190 DB 5 ;; number of scans
1191 DB 16,'ƒ' ;; scan code,ASCII - a
1192 DB 18,'ˆ' ;; scan code,ASCII - e
1193 DB 24,'“' ;; scan code,ASCII - o
1194 DB 22,'–' ;; scan code,ASCII - u
1195 DB 23,'Œ' ;; scan code,ASCII - i
1196COM_CI_LO_T1_END: ;;
1197 ;;
1198 DW 0 ;;
1199 ;;
1200COM_CI_LO_END: ;;
1201 ;;
1202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1203;; CODE PAGE: Common
1204;; STATE: Circumflex Space Bar
1205;; KEYBOARD TYPES: All
1206;; TABLE TYPE: Translate
1207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1208 ;;
1209 DW COM_CI_SP_END-$ ;; length of state section
1210 DB CIRCUMFLEX_SPACE ;; State ID
1211 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1212 DB 94,0 ;; error character = standalone accent
1213 ;;
1214 DW COM_CI_SP_T1_END-$ ;; Size of xlat table
1215 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1216 DB 1 ;; number of scans
1217 DB 57,94 ;; STANDALONE CIRCUMFLEX
1218COM_CI_SP_T1_END: ;;
1219 ;;
1220 DW 0 ;; Size of xlat table - null table
1221 ;;
1222COM_CI_SP_END: ;; length of state section
1223 ;;
1224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1225 DW 0 ;; Last State
1226COMMON_XLAT_END: ;;
1227 ;;
1228 ;;
1229 ;;
1230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1231;;***************************************
1232;; FR Specific Translate Section for 437
1233;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE.
1234;;***************************************
1235;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1236 ;;
1237 PUBLIC FR2_437_XLAT ;;
1238FR2_437_XLAT: ;;
1239 ;;
1240 DW CP437_XLAT_END-$ ;; length of section
1241 DW 437 ;;
1242;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1243;; CODE PAGE: 437
1244;; STATE: Non-Alpha Upper Case
1245;; KEYBOARD TYPES: G_KB+ p12
1246;; TABLE TYPE: Translate
1247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1248 ;;
1249 DW CP437_NA_UP_K1_END-$ ;; length of state section
1250 DB NON_ALPHA_UPPER ;; State ID
1251 DW G_KB+P12_KB ;; Keyboard Type
1252 DB -1,-1 ;; default ignore error state
1253 ;;
1254 DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table
1255 DB STANDARD_TABLE ;; xlat options: **** CNS 12/18
1256 DB 1 ;; number of scans
1257 DB 53,015H ;; Section symbol - 
1258CP437_NA_UP_T1_K1_END: ;;
1259 ;;
1260 DW 0 ;; Size of xlat table - null table
1261 ;;
1262CP437_NA_UP_K1_END: ;;
1263 ;;
1264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1266;; CODE PAGE: 437
1267;; STATE: Non-Alpha Lower Case
1268;; KEYBOARD TYPES: AT + XT +
1269;; TABLE TYPE: Translate
1270;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1271 ;;
1272 DW CP437_NA_LO_K1_END-$ ;; length of state section
1273 DB NON_ALPHA_LOWER ;; State ID
1274 DW AT_KB+XT_KB ;; Keyboard Type
1275 DB -1,-1 ;; default ignore error state
1276 ;;
1277 DW CP437_NA_LO_T1_K1_END-$ ;; Size of xlat table
1278 DB STANDARD_TABLE ;; xlat options: **** CNS 12/18
1279 DB 1 ;; number of scans
1280 DB 7,015H ;; Section symbol - 
1281CP437_NA_LO_T1_K1_END: ;;
1282 ;;
1283 DW 0 ;; Size of xlat table - null table
1284 ;;
1285CP437_NA_LO_K1_END: ;;
1286 ;;
1287;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1288;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1289;; CODE PAGE: 437 ???????????????????May need change....
1290;; STATE: Third Shift
1291;; KEYBOARD TYPES: G_KB+P12
1292;; TABLE TYPE: Translate
1293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1294 ;;
1295 DW CP437_THIRD_END-$ ;; length of state section
1296 DB THIRD_SHIFT ;; State ID
1297 DW G_KB+P12_KB ;; Keyboard Type
1298 DB -1,-1 ;; default ignore error state
1299 ;;
1300 DW CP437_THIRD_T1_END-$ ;; Size of xlat table
1301 DB STANDARD_TABLE ;; xlat options: *** CNS 12/18
1302 DB 1 ;; number of scans
1303 DB 27,'$' ;; dollar currency symbol
1304CP437_THIRD_T1_END: ;;
1305 ;;
1306 DW 0 ;; Size of xlat table - null table
1307 ;;
1308CP437_THIRD_END: ;;
1309 ;;
1310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1311;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1312 DW 0 ;; LAST STATE
1313 ;;
1314CP437_XLAT_END: ;;
1315 ;;
1316;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1317;;***************************************
1318;; FR Specific Translate Section for 850
1319;;***************************************
1320;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1321 ;;
1322 PUBLIC FR2_850_XLAT ;;
1323FR2_850_XLAT: ;;
1324 ;;
1325 DW CP850_XLAT_END-$ ;; length of section
1326 DW 850 ;;
1327 ;;
1328 ;;
1329;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1330;; CODE PAGE: 850
1331;; STATE: Non-Alpha Upper Case
1332;; KEYBOARD TYPES: G_KB + P12
1333;; TABLE TYPE: Translate
1334;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1335 ;;
1336 DW CP850_NA_UP_K1_END-$ ;; length of state section
1337 DB NON_ALPHA_UPPER ;; State ID
1338 DW G_KB+P12_KB ;; Keyboard Type
1339 DB -1,-1 ;; default ignore error state
1340 ;;
1341 DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table
1342 DB STANDARD_TABLE ;; xlat options: ***** CNS 12/18
1343 DB 1 ;; number of scans
1344 DB 53,0F5H ;; Section symbol - 
1345CP850_NA_UP_T1_K1_END: ;;
1346 ;;
1347 DW 0 ;; Size of xlat table - null table
1348 ;;
1349CP850_NA_UP_K1_END: ;;
1350 ;;
1351;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1352;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1353;; CODE PAGE: 850
1354;; STATE: Non-Alpha Lower Case
1355;; KEYBOARD TYPES: AT_KB+XT+
1356;; TABLE TYPE: Translate
1357;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1358 ;;
1359 DW CP850_NA_LO_K1_END-$ ;; length of state section
1360 DB NON_ALPHA_LOWER ;; State ID
1361 DW AT_KB+XT_KB ;; Keyboard Type
1362 DB -1,-1 ;; default ignore error state
1363 ;;
1364 DW CP850_NA_LO_T1_K1_END-$ ;; Size of xlat table
1365 DB STANDARD_TABLE ;; xlat options: ***** CNS **** 12/18
1366 DB 1 ;; number of scans
1367 DB 7,0F5H ;; Section symbol - 
1368CP850_NA_LO_T1_K1_END: ;;
1369 ;;
1370 DW 0 ;; Size of xlat table - null table
1371 ;;
1372CP850_NA_LO_K1_END: ;;
1373 ;;
1374;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1376;; CODE PAGE: 850
1377;; STATE: Third Shift
1378;; KEYBOARD TYPES: G_KB+P12
1379;; TABLE TYPE: Translate
1380;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1381 ;;
1382 DW CP850_THIRD_END-$ ;; length of state section
1383 DB THIRD_SHIFT ;; State ID
1384 DW G_KB+P12_KB ;; Keyboard Type
1385 DB -1,-1 ;; default ignore error state
1386 ;;
1387 DW CP850_THIRD_T1_END-$ ;; Size of xlat table
1388 DB STANDARD_TABLE ;; xlat options: *** CNS 12/18
1389 DB 1 ;; number of scans
1390 DB 27,0CFH ;; international currency symbol
1391CP850_THIRD_T1_END: ;;
1392 ;;
1393 DW 0 ;; Size of xlat table - null table
1394 ;;
1395CP850_THIRD_END: ;;
1396 ;;
1397;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1398;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1399;; CODE PAGE: 850
1400;; STATE: Acute Lower Case
1401;; KEYBOARD TYPES: All
1402;; TABLE TYPE: Translate
1403;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1404;; ;;
1405;; DW CP850_AC_LO_END-$ ;; length of state section
1406;; DB ACUTE_LOWER ;; State ID
1407;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1408;; DB 39,0 ;; error character = standalone accent
1409;; ;;
1410;; DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
1411;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1412;; DB 1 ;; number of scans
1413;; DB 21,0ECH ;; y acute
1414;;CP850_AC_LO_T1_END: ;;
1415;; ;;
1416;; DW 0 ;; Size of xlat table - null table
1417;; ;;
1418;;CP850_AC_LO_END: ;;
1419;; ;;
1420;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1421;;;; CODE PAGE: 850
1422;;;; STATE: Acute Upper Case
1423;;;; KEYBOARD TYPES: All
1424;;;; TABLE TYPE: Translate
1425;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1426;; ;;
1427;; DW CP850_AC_UP_END-$ ;; length of state section
1428;; DB ACUTE_UPPER ;; State ID
1429;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1430;; DB 39,0 ;; error character = standalone accent
1431;; ;;
1432;; DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
1433;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1434;; DB 5 ;; number of scans
1435;; DB 30,0B5H ;; A acute
1436;; DB 23,0D6H ;; I acute
1437;; DB 24,0E0H ;; O acute
1438;; DB 22,0E9H ;; U acute
1439;; DB 21,0EDH ;; Y acute
1440;;CP850_AC_UP_T1_END: ;;
1441;; ;;
1442;; DW 0 ;; Size of xlat table - null table
1443;; ;;
1444;;CP850_AC_UP_END: ;;
1445;; ;;
1446;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1447;;;; CODE PAGE: 850
1448;;;; STATE: Diaresis Upper
1449;;;; KEYBOARD TYPES: All
1450;;; TABLE TYPE: Translate
1451;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1452 ;;
1453 DW CP850_DI_UP_END-$ ;; length of state section
1454 DB DIARESIS_UPPER ;; State ID
1455 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1456 DB 249,0 ;; error character = standalone accent
1457 ;;
1458 DW CP850_DI_UP_T1_END-$ ;; Size of xlat table
1459 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1460 DB 2 ;; number of scans
1461 DB 18,0D3H ;; E diaeresis
1462 DB 23,0D8H ;; I diaeresis
1463 CP850_DI_UP_T1_END: ;;
1464 ;;
1465 DW 0 ;; Size of xlat table - null table
1466 ;;
1467 CP850_DI_UP_END: ;; length of state section
1468 ;;
1469;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1470;;; CODE PAGE: 850
1471;; STATE: Grave Upper
1472;; KEYBOARD TYPES: All
1473;; TABLE TYPE: Translate
1474;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1475;; ;;
1476;; DW CP850_GR_UP_END-$ ;; length of state section
1477;; DB GRAVE_UPPER ;; State ID
1478;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1479;; DB 96,0 ;; error character = standalone accent
1480;; ;;
1481;; DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
1482;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1483;; DB 5 ;; number of scans
1484;; DB 30,0B7H ;; A grave
1485;; DB 18,0D4H ;; E grave
1486;; DB 23,0DEH ;; I grave
1487;; DB 24,0E3H ;; O grave
1488;; DB 22,0EBH ;; U grave
1489;;CP850_GR_UP_T1_END: ;;
1490;; ;;
1491;; DW 0 ;; Size of xlat table - null table
1492;; ;;
1493;;CP850_GR_UP_END: ;; length of state section
1494;; ;;
1495;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1496;;;; CODE PAGE: 850
1497;;;; STATE: Circumflex Upper
1498;;;; KEYBOARD TYPES: All
1499;;;;; TABLE TYPE: Translate
1500;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1501 ;;
1502 DW CP850_CI_UP_END-$ ;; length of state section
1503 DB CIRCUMFLEX_UPPER ;; State ID
1504 DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type
1505 DB 94,0 ;; error character = standalone accent
1506 ;;
1507 DW CP850_CI_UP_T1_END-$ ;; Size of xlat table
1508 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1509 DB 5 ;; number of scans
1510 DB 16,0B6H ;; A circumflex
1511 DB 18,0D2H ;; E circumflex
1512 DB 23,0D7H ;; I circumflex
1513 DB 24,0E2H ;; O circumflex
1514 DB 22,0EAH ;; U circumflex
1515 CP850_CI_UP_T1_END: ;;
1516 ;;
1517 DW 0 ;; Size of xlat table - null table
1518 ;;
1519 CP850_CI_UP_END: ;; length of state section
1520 ;;
1521;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1522 ;;
1523 DW 0 ;; LAST STATE
1524 ;;
1525CP850_XLAT_END: ;;
1526;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1527 ;;
1528CODE ENDS ;;
1529 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFGE.ASM b/v4.0/src/DEV/KEYBOARD/KDFGE.ASM
new file mode 100644
index 0000000..a244c28
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFGE.ASM
@@ -0,0 +1,1333 @@
1;; LATEST CHANGE ALT & CTL "Z & Y", "-" symbol (AT)
2;; Eliminated zero scan tag from alpha upper CP section
3;; SECTION SYMBOL
4;; SCAN CODE OUTPUT CHANGES MADE 12/18/86
5;; **************** CNS ************************
6 PAGE ,132
7 TITLE DOS - Keyboard Definition File
8
9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
10;; DOS - - NLS Support - Keyboard Defintion File
11;; (c) Copyright 1988 Microsoft
12;;
13;; This file contains the keyboard tables for Spanish.
14;;
15;; Linkage Instructions:
16;; Refer to KDF.ASM.
17;;
18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
19 ;;
20 INCLUDE KEYBSHAR.INC ;;
21 INCLUDE POSTEQU.INC ;;
22 INCLUDE KEYBMAC.INC ;;
23 ;;
24 PUBLIC GE_LOGIC ;;
25 PUBLIC GE_437_XLAT ;;
26 PUBLIC GE_850_XLAT ;;
27 ;;
28CODE SEGMENT PUBLIC 'CODE' ;;
29 ASSUME CS:CODE,DS:CODE ;;
30 ;;
31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
32;; Standard translate table options are a liner search table
33;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
35 ;;
36STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
37 ;;
38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
39;;***************************************
40;; GE State Logic
41;;***************************************
42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
43 ;;
44 ;;
45GE_LOGIC:
46
47 DW LOGIC_END-$ ;; length
48 ;;
49 DW TYPEWRITER_CAPS_LK ;; special features (shift lock state)
50 ;;
51 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
52 ;;
53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
54;; OPTIONS: If we find a scan match in
55;; an XLATT or SET_FLAG operation then
56;; exit from INT 9.
57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58 ;;
59 OPTION EXIT_IF_FOUND ;;
60 ;;
61 ;;
62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
63;; Dead key definitions must come before
64;; dead key translations to handle
65;; dead key + dead key.
66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
67 ;;
68 IFF EITHER_ALT,NOT ;;
69 ANDF EITHER_CTL,NOT ;;
70 IFKBD G_KB+P12_KB ;; FUNCTIONS AS A SHIFT LOCK
71 IFF CAPS_STATE ;;
72 ANDF EITHER_SHIFT ;;
73 SET_FLAG DEAD_LOWER ;;
74 ELSEF
75 IFF CAPS_STATE ;;
76 SET_FLAG DEAD_UPPER ;;
77 ELSEF
78 IFF EITHER_SHIFT ;;
79 SET_FLAG DEAD_UPPER ;;
80 ELSEF
81 SET_FLAG DEAD_LOWER ;; NORMAL STATE LC
82 ENDIFF ;; SHIFT OR NORMAL CHECK END
83 ENDIFF ;; CAPS OR SHIFT CHECK END
84 ENDIFF ;; BOTH SHIFT LOCK AND CAPS END
85 ELSEF ;;
86 IFF CAPS_STATE ;; THIS MEANS IT IS A at OR xt
87 ANDF EITHER_SHIFT
88 SET_FLAG DEAD_UPPER
89 ELSEF
90 IFF CAPS_STATE ;;
91 SET_FLAG DEAD_LOWER ;;
92 ELSEF
93 IFF EITHER_SHIFT ;;
94 SET_FLAG DEAD_UPPER ;;
95 ELSEF
96 SET_FLAG DEAD_LOWER ;; NORMAL STATE LC
97 ENDIFF ;; SHIFT OR NORMAL CHECK END
98 ENDIFF ;; CAPS OR SHIFT CHECK END
99 ENDIFF ;; BOTH SHIFT LOCK AND CAPS END ;;
100 ENDIFF ;; IS IT ENHANCED OR NOT END
101 ENDIFF ;; NO CONTROL OR ALT END
102 ;;
103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
104;; ACUTE ACCENT TRANSLATIONS
105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
106 ;;
107ACUTE_PROC: ;;
108 ;;
109 IFF ACUTE,NOT ;;
110 GOTO DIARESIS_PROC ;;
111 ENDIFF ;;
112 ;;
113 RESET_NLS ;;
114 IFF R_ALT_SHIFT,NOT ;;
115 XLATT ACUTE_SPACE ;;
116 ENDIFF ;;
117 IFF EITHER_CTL,NOT ;;
118 ANDF EITHER_ALT,NOT ;;
119 IFF EITHER_SHIFT ;;
120 IFF CAPS_STATE ;;
121 XLATT ACUTE_LOWER ;;
122 ELSEF ;;
123 XLATT ACUTE_UPPER ;;
124 ENDIFF ;;
125 ELSEF ;;
126 IFF CAPS_STATE ;;
127 XLATT ACUTE_UPPER ;;
128 ELSEF ;;
129 XLATT ACUTE_LOWER ;;
130 ENDIFF ;;
131 ENDIFF ;;
132 ENDIFF ;;
133 ;;
134INVALID_ACUTE: ;;
135 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
136 BEEP ;; failed or we are ina bad shift state.
137 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
138 ;; through to generate the second char.
139 ;; Note that the dead key flag will be
140 ;; reset before we get here.
141 ;;
142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
143;; DIARESIS ACCENT TRANSLATIONS
144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
145 ;;
146DIARESIS_PROC: ;;
147 ;;
148 IFF DIARESIS,NOT ;;
149 GOTO GRAVE_PROC ;;
150 ENDIFF ;;
151 ;;
152 RESET_NLS ;;
153 IFF R_ALT_SHIFT,NOT ;;
154 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
155 ENDIFF ;;
156 IFF EITHER_CTL,NOT ;;
157 ANDF EITHER_ALT,NOT ;;
158 IFF EITHER_SHIFT ;;
159 IFF CAPS_STATE ;;
160 XLATT DIARESIS_LOWER ;;
161 ELSEF ;;
162 XLATT DIARESIS_UPPER ;;
163 ENDIFF ;;
164 ELSEF ;;
165 IFF CAPS_STATE ;;
166 XLATT DIARESIS_UPPER ;;
167 ELSEF ;;
168 XLATT DIARESIS_LOWER ;;
169 ENDIFF ;;
170 ENDIFF ;;
171 ENDIFF ;;
172 ;;
173INVALID_DIARESIS: ;;
174 PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent
175 BEEP ;; Invalid dead key combo.
176 GOTO NON_DEAD ;;
177 ;;
178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
179;; GRAVE ACCENT TRANSLATIONS
180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
181 ;;
182GRAVE_PROC: ;;
183 ;;
184 IFF GRAVE,NOT ;;
185 GOTO CIRCUMFLEX_PROC ;;
186 ENDIFF ;;
187 ;;
188 RESET_NLS ;;
189 IFF R_ALT_SHIFT,NOT ;;
190 XLATT GRAVE_SPACE ;;
191 ENDIFF ;;
192 IFF EITHER_CTL,NOT ;;
193 ANDF EITHER_ALT,NOT ;;
194 IFF EITHER_SHIFT ;;
195 IFF CAPS_STATE ;;
196 XLATT GRAVE_LOWER ;;
197 ELSEF ;;
198 XLATT GRAVE_UPPER ;;
199 ENDIFF ;;
200 ELSEF ;;
201 IFF CAPS_STATE,NOT ;;
202 XLATT GRAVE_LOWER ;;
203 ELSEF ;;
204 XLATT GRAVE_UPPER ;;
205 ENDIFF ;;
206 ENDIFF ;;
207 ENDIFF ;;
208 ;;
209INVALID_GRAVE: ;;
210 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
211 BEEP ;; Invalid dead key combo.
212 GOTO NON_DEAD ;;
213 ;;
214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
215;; CIRCUMFLEX ACCENT TRANSLATIONS
216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
217 ;;
218CIRCUMFLEX_PROC: ;;
219 ;;
220 IFF CIRCUMFLEX,NOT ;;
221 GOTO NON_DEAD ;;
222 ENDIFF ;;
223 ;;
224 RESET_NLS ;;
225 IFF R_ALT_SHIFT,NOT ;;
226 XLATT CIRCUMFLEX_SPACE ;;
227 ENDIFF ;;
228 IFF EITHER_CTL,NOT ;;
229 ANDF EITHER_ALT,NOT ;;
230 IFF EITHER_SHIFT ;;
231 IFF CAPS_STATE ;;
232 XLATT CIRCUMFLEX_LOWER ;;
233 ELSEF ;;
234 XLATT CIRCUMFLEX_UPPER ;;
235 ENDIFF ;;
236 ELSEF ;;
237 IFF CAPS_STATE,NOT ;;
238 XLATT CIRCUMFLEX_LOWER ;;
239 ELSEF ;;
240 XLATT CIRCUMFLEX_UPPER ;;
241 ENDIFF ;;
242 ENDIFF ;;
243 ENDIFF ;;
244 ;;
245INVALID_CIRCUMFLEX: ;;
246 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
247 BEEP ;; Invalid dead key combo.
248 GOTO NON_DEAD ;;
249 ;;
250 ;;
251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
252;; Upper, lower and third shifts
253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
254 ;;
255NON_DEAD: ;;
256 ;;
257 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
258 ANDF LC_E0 ;; the "/" on the numeric pad of the
259 EXIT_STATE_LOGIC ;; G keyboard
260 ENDIFF ;;
261;;***BD ADDED FOR ALT, CTRL CASES ;;
262 IFF EITHER_CTL,NOT ;;
263 IFF ALT_SHIFT ;; ALT - case
264 ANDF R_ALT_SHIFT,NOT ;;
265 XLATT ALT_CASE ;;
266 ENDIFF ;;
267 ELSEF ;;
268 IFF EITHER_ALT,NOT ;; CTRL - case
269 XLATT CTRL_CASE ;;
270 ENDIFF ;;
271 ENDIFF ;;
272;;***BD END OF ADDITION
273 ;;
274 IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
275 ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
276 IFF EITHER_SHIFT ;; Numeric keys are not.
277;;***BD ADDED FOR NUMERIC PAD
278 IFF NUM_STATE,NOT ;;
279 XLATT NUMERIC_PAD ;;
280 ENDIFF ;;
281;;***BD END OF ADDITION
282; XLATT NON_ALPHA_UPPER ;; add in keyboard logic
283 IFKBD G_KB+P12_KB ;; SHIFT STATE ONLY FOR P12 & G
284 IFF CAPS_STATE ;; for AT and XT
285 XLATT ALPHA_LOWER ;;
286 XLATT NON_ALPHA_LOWER ;;
287 ELSEF ;;
288 XLATT ALPHA_UPPER ;;THIS MEANS normal SHIFT STATE
289 XLATT NON_ALPHA_UPPER ;;FOR G AND P12
290 ENDIFF ;;
291 ELSEF
292 IFF CAPS_STATE ;; for AT and XT
293 XLATT ALPHA_LOWER ;; shift state & caps
294 XLATT NON_ALPHA_UPPER ;;
295 ELSEF ;;
296 XLATT ALPHA_UPPER ;; shift state & no caps
297 XLATT NON_ALPHA_UPPER ;;
298 ENDIFF ;;
299 ENDIFF
300 ELSEF ;; SHIFT STATE DOES NOT EXIST
301;;***BD ADDED FOR NUMERIC PAD
302 IFF NUM_STATE ;;
303 XLATT NUMERIC_PAD ;;
304 ENDIFF ;;
305;;***BD END OF ADDITION
306;; XLATT NON_ALPHA_LOWER ;;
307 IFKBD G_KB+P12_KB ;; G & p12 NO shift state
308 IFF CAPS_STATE ;;
309 XLATT ALPHA_UPPER ;;
310 XLATT NON_ALPHA_UPPER ;;
311 ELSEF ;;
312 XLATT ALPHA_LOWER ;;
313 XLATT NON_ALPHA_LOWER ;;
314 ENDIFF ;;
315 ELSEF ;;AT & XT WITH NO SHIFT
316 IFF CAPS_STATE ;;
317 XLATT ALPHA_UPPER ;;
318 XLATT NON_ALPHA_LOWER ;;
319 ELSEF ;;
320 XLATT ALPHA_LOWER ;;
321 XLATT NON_ALPHA_LOWER ;;
322 ENDIFF ;;
323 ENDIFF
324 ENDIFF ;;
325 ELSEF ;;
326 IFF EITHER_SHIFT,NOT ;;
327 IFKBD XT_KB+AT_KB ;;
328 IFF EITHER_CTL ;;
329 ANDF ALT_SHIFT ;;
330 XLATT THIRD_SHIFT ;;
331 ENDIFF ;;
332 ELSEF ;;
333 IFF EITHER_CTL,NOT ;;
334 ANDF R_ALT_SHIFT ;;
335 XLATT THIRD_SHIFT ;;
336 ENDIFF ;;
337 ENDIFF ;;
338 ENDIFF ;;
339 ENDIFF ;;
340 ;;
341 EXIT_STATE_LOGIC ;;
342 ;;
343LOGIC_END: ;;
344 ;;
345 ;;
346;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
347;;***************************************
348;; GE Common Translate Section
349;; This section contains translations for the lower 128 characters
350;; only since these will never change from code page to code page.
351;; In addition the dead key "Set Flag" tables are here since the
352;; dead keys are on the same keytops for all code pages.
353;;***************************************
354;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
355 ;;
356 PUBLIC GE_COMMON_XLAT ;;
357GE_COMMON_XLAT: ;;
358 ;;
359 DW COMMON_XLAT_END-$ ;; length of section
360 DW -1 ;; code page
361 ;;
362 ;;
363;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
364;; CODE PAGE: Common
365;; STATE: Lower Shift Dead Key
366;; KEYBOARD TYPES: All
367;; TABLE TYPE: Flag Table
368;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
369 ;;
370 DW COM_DK_LO_END-$ ;; length of state section
371 DB DEAD_LOWER ;; State ID
372 DW ANY_KB ;; Keyboard Type
373 DB -1,-1 ;; Buffer entry for error character
374 ;; Set Flag Table
375 DW 1 ;; number of entries
376 DB 13 ;; scan code
377 FLAG ACUTE ;; flag bit to set
378 ;;
379 ;;
380COM_DK_LO_END: ;;
381 ;;
382;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
383;; CODE PAGE: Common
384;; STATE: Upper Shift Dead Key
385;; KEYBOARD TYPES: All
386;; TABLE TYPE: Flag Table
387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
388 ;;
389 DW COM_DK_UP_END-$ ;; length of state section
390 DB DEAD_UPPER ;; State ID
391 DW ANY_KB ;; Keyboard Type
392 DB -1,-1 ;; Buffer entry for error character
393 ;; Set Flag Table
394 DW 1 ;; number of entries
395 DB 13 ;; scan code
396 FLAG GRAVE ;; flag bit to set
397COM_DK_UP_END: ;;
398 ;;
399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
400;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
401;; CODE PAGE: Common
402;; STATE: Alt Case
403;; KEYBOARD TYPES: All
404;; TABLE TYPE: Translate
405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
406 ;;
407 DW COM_ALT_K1_END-$ ;; length of state section
408 DB ALT_CASE ;; State ID
409 DW ANY_KB ;; Keyboard Type
410 DB -1,-1 ;; Buffer entry for error character
411 ;;
412 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
413 DB TYPE_2_TAB ;; xlat options:
414 DB 2 ;; 5 number of entries
415;;***BD THIS ENTRY IS A TEST ENTRY
416;; DB 53,225,0 ;; TEST ENTRY - switch two keys
417; DB 12,-1,-1 ;; invalid key U.S. -
418; DB 13,-1,-1 ;; invalid key U.S. =
419 DB 21,0,44 ;; alt z function
420 DB 44,0,21 ;; alt y function
421; DB 53,0,82H ;; alt - (minus sign)
422COM_ALT_K1_T1_END: ;;
423 ;;
424 DW 0 ;; Size of xlat table - null table
425 ;;
426COM_ALT_K1_END: ;;
427 ;;
428;;******************************
429;;***BD - ADDED FOR CTRL CASE
430;;******************************
431;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
432;; CODE PAGE: Common
433;; STATE: Ctrl Case
434;; KEYBOARD TYPES: G_KB + P12_KB
435;; TABLE TYPE: Translate
436;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
437 ;;
438 DW COM_CTRL_K1_END-$ ;; length of state section
439 DB CTRL_CASE ;; State ID
440 DW G_KB+P12_KB ;; Keyboard Type
441 DB -1,-1 ;; Buffer entry for error character
442 ;;
443 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
444 DB TYPE_2_TAB ;; xlat options:
445 DB 5 ;; number of entries
446;;***BD THIS ENTRY IS A TEST ENTRY
447;; DB 53,226,0 ;; TEST ENTRY
448 DB 43,-1,-1 ;; no backslash
449 DB 53,31,53 ;; ctl + - or _
450 DB 21,1AH,21 ;; ctl z function
451 DB 44,19h,44 ;; ctl y function
452 DB 12,28,12 ;; \ position
453COM_CTRL_K1_T1_END: ;;
454 ;;
455 DW 0 ;; Size of xlat table - null table
456 ;;
457COM_CTRL_K1_END: ;;
458 ;;
459;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
460;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
461;; CODE PAGE: Common
462;; STATE: Ctrl Case
463;; KEYBOARD TYPES: AT
464;; TABLE TYPE: Translate
465;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
466 ;;
467 DW COM_CTRL_K2_END-$ ;; length of state section
468 DB CTRL_CASE ;; State ID
469 DW AT_KB ;; Keyboard Type
470 DB -1,-1 ;; Buffer entry for error character
471 ;;
472 DW COM_CTRL_K2_T2_END-$ ;; Size of xlat table
473 DB TYPE_2_TAB ;; xlat options:
474 DB 6 ;; number of entries
475;;***BD THIS ENTRY IS A TEST ENTRY
476;; DB 53,226,0 ;; TEST ENTRY
477 DB 12,-1,-1 ;; invalid key U.S. -
478 DB 43,-1,-1 ;; no backslash
479 DB 53,31,53 ;; ctl + - or _
480 DB 21,1AH,21 ;; ctl z function
481 DB 44,19h,44 ;; ctl y function
482 DB 41,28,41 ;; \ position
483COM_CTRL_K2_T2_END: ;;
484 ;;
485 DW 0 ;; Size of xlat table - null table
486 ;;
487COM_CTRL_K2_END: ;;
488 ;;
489;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
490;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
491;; CODE PAGE: Common
492;; STATE: Ctrl Case
493;; KEYBOARD TYPES: XT
494;; TABLE TYPE: Translate
495;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
496 ;;
497 DW COM_CTRL_K3_END-$ ;; length of state section
498 DB CTRL_CASE ;; State ID
499 DW XT_KB ;; Keyboard Type
500 DB -1,-1 ;; Buffer entry for error character
501 ;;
502 DW COM_CTRL_K3_T3_END-$ ;; Size of xlat table
503 DB TYPE_2_TAB ;; xlat options:
504 DB 6 ;; number of entries
505;;***BD THIS ENTRY IS A TEST ENTRY
506;; DB 53,226,0 ;; TEST ENTRY
507 DB 43,-1,-1 ;; no backslash
508 DB 12,-1,-1 ;; invalid key U.S. -
509 DB 53,31,53 ;; ctl + - or _
510 DB 21,1AH,21 ;; ctl z function
511 DB 44,19h,44 ;; ctl y function
512 DB 43,28,43 ;; \ position
513COM_CTRL_K3_T3_END: ;;
514 ;;
515 DW 0 ;; Size of xlat table - null table
516 ;;
517COM_CTRL_K3_END: ;;
518 ;;
519;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
520;; CODE PAGE: Common
521;; STATE: Alpha Lower Case
522;; KEYBOARD TYPES: All
523;; TABLE TYPE: Translate
524;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
525 ;;
526 DW COM_AL_LO_END-$ ;; length of state section
527 DB ALPHA_LOWER ;; State ID
528 DW ANY_KB ;; Keyboard Type
529 DB -1,-1 ;; Buffer entry for error character
530 ;;
531 DW COM_AL_LO_T1_END-$ ;; Size of xlat table
532 DB STANDARD_TABLE ;; xlat options:
533 DB 5 ;; number of entries
534 DB 26,081h ;; diaresis -
535 DB 39,094h ;; diaresis - ”
536 DB 40,084h ;; diaresis - „
537 DB 44,'y' ;;
538 DB 21,'z' ;; ;;
539COM_AL_LO_T1_END: ;;
540 ;;
541 DW 0 ;; Size of xlat table - null table
542 ;;
543COM_AL_LO_END: ;;
544 ;;
545;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
546;; CODE PAGE: Common
547;; STATE: Alpha Upper Case
548;; KEYBOARD TYPES: All
549;; TABLE TYPE: Translate
550;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
551 ;;
552 DW COM_AL_UP_END-$ ;; length of state section
553 DB ALPHA_UPPER ;; State ID
554 DW ANY_KB ;; Keyboard Type
555 DB -1,-1 ;; Buffer entry for error character
556 ;;
557 DW COM_AL_UP_T1_END-$ ;; Size of xlat table
558 DB STANDARD_TABLE ;; xlat options:
559 DB 5 ;; number of entries
560 DB 26,09AH ;; Diaresis - š
561 DB 39,099H ;; Diaresis - ™
562 DB 40,08EH ;; Diaresis - Ž
563 DB 44,'Y' ;;
564 DB 21,'Z' ;;
565COM_AL_UP_T1_END: ;;
566 ;;
567 DW 0 ;; Size of xlat table - null table
568 ;;
569COM_AL_UP_END: ;;
570 ;;
571 ;;
572;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
573;;******************************
574;;***BD - ADDED FOR NUMERIC PAD (DECIMAL SEPERATOR)
575;;******************************
576;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
577;; CODE PAGE: Common
578;; STATE: Numeric Key Pad ;;**********CNS******************
579;; KEYBOARD TYPES: G_KB ;;change does not apply to P12
580;; TABLE TYPE: Translate ;;P12 Key #54 has a comma available
581;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
582 ;;
583 DW COM_PAD_K1_END-$ ;; length of state section
584 DB NUMERIC_PAD ;; State ID
585 DW G_KB ;; Keyboard Type
586 DB -1,-1 ;; Buffer entry for error character
587 ;;
588 DW COM_PAD_K1_T1_END-$ ;; Size of xlat table
589 DB STANDARD_TABLE ;; xlat options:
590 DB 1 ;; number of entries
591 DB 83,44 ;; decimal seperator = ,
592COM_PAD_K1_T1_END: ;;
593 ;;
594 DW 0 ;; Size of xlat table - null table
595 ;;
596COM_PAD_K1_END: ;;
597 ;;
598;;******************************
599;; CODE PAGE: Common
600;; STATE: Non-Alpha Lower Case
601;; KEYBOARD TYPES: G_KB + P12
602;; TABLE TYPE: Translate
603;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
604 ;;
605 DW COM_NA_LO_K1_END-$ ;; length of state section
606 DB NON_ALPHA_LOWER ;; State ID
607 DW G_KB+P12_KB ;; Keyboard Type
608 DB -1,-1 ;; Buffer entry for error character
609 ;;
610 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
611 DB STANDARD_TABLE ;; xlat options:
612 DB 18 ;; number of entries
613 DB 41,'^' ;;
614 DB 2,'1' ;;IMPLEMENTED FOR SHIFT STATE STATUS
615 DB 3,'2' ;;IMPLEMENTED FOR SHIFT STATE STATUS
616 DB 4,'3' ;;IMPLEMENTED FOR SHIFT STATE STATUS
617 DB 5,'4' ;;
618 DB 6,'5' ;;
619 DB 7,'6' ;;IMPLEMENTED FOR SHIFT STATE STATUS
620 DB 8,'7' ;;IMPLEMENTED FOR SHIFT STATE STATUS
621 DB 9,'8' ;;IMPLEMENTED FOR SHIFT STATE STATUS
622 DB 10,'9' ;;IMPLEMENTED FOR SHIFT STATE STATUS
623 DB 11,'0' ;;IMPLEMENTED FOR SHIFT STATE STATUS
624 DB 12,0E1H ;; á
625 DB 27,'+' ;;
626 DB 43,'#' ;; pound sign
627 DB 86,'<' ;;
628 DB 51,',' ;;IMPLEMENTED FOR SHIFT STATE STATUS
629 DB 52,'.' ;;IMPLEMENTED FOR SHIFT STATE STATUS
630 DB 53,'-' ;;
631COM_NA_LO_K1_T1_END: ;;
632 ;;
633 DW 0 ;; Size of xlat table - null table
634 ;;
635COM_NA_LO_K1_END: ;;
636 ;;
637;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
638;; CODE PAGE: Common
639;; STATE: Non-Alpha Lower Case
640;; KEYBOARD TYPES: AT_KB
641;; TABLE TYPE: Translate
642;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
643 ;;
644 DW COM_NA_LO_K2_END-$ ;; length of state section
645 DB NON_ALPHA_LOWER ;; State ID
646 DW AT_KB ;; Keyboard Type
647 DB -1,-1 ;; Buffer entry for error character
648 ;;
649 DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table
650 DB STANDARD_TABLE ;; xlat options:
651 DB 17 ;; number of entries
652 DB 41,'<' ;; different than enhanced
653 DB 2,'1' ;;IMPLEMENTED FOR SHIFT STATE STATUS
654 DB 3,'2' ;;IMPLEMENTED FOR SHIFT STATE STATUS
655 DB 4,'3' ;;IMPLEMENTED FOR SHIFT STATE STATUS
656 DB 5,'4' ;;IMPLEMENTED FOR SHIFT STATE STATUS
657 DB 6,'5' ;;IMPLEMENTED FOR SHIFT STATE STATUS
658 DB 7,'6' ;;IMPLEMENTED FOR SHIFT STATE STATUS
659 DB 8,'7' ;;IMPLEMENTED FOR SHIFT STATE STATUS
660 DB 9,'8' ;;IMPLEMENTED FOR SHIFT STATE STATUS
661 DB 10,'9' ;;
662 DB 11,'0' ;;
663 DB 12,0E1H ;; á
664 DB 27,'+' ;;
665 DB 43,'#' ;; pound sign
666 DB 51,',' ;;IMPLEMENTED FOR SHIFT STATE STATUS
667 DB 52,'.' ;;IMPLEMENTED FOR SHIFT STATE STATUS
668 DB 53,'-' ;;
669COM_NA_LO_K2_T1_END: ;;
670 ;;
671 DW 0 ;; Size of xlat table - null table
672 ;;
673COM_NA_LO_K2_END: ;;
674 ;;
675;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
676;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
677;; CODE PAGE: Common
678;; STATE: Non-Alpha Lower Case
679;; KEYBOARD TYPES: XT_KB+
680;; TABLE TYPE: Translate
681;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
682 ;;
683 DW COM_NA_LO_K3_END-$ ;; length of state section
684 DB NON_ALPHA_LOWER ;; State ID
685 DW XT_KB ;; Keyboard Type
686 DB -1,-1 ;; Buffer entry for error character
687 ;;
688 DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table
689 DB STANDARD_TABLE ;; xlat options:
690 DB 17 ;; number of entries
691 DB 2,'1' ;;IMPLEMENTED FOR SHIFT STATE STATUS
692 DB 3,'2' ;;IMPLEMENTED FOR SHIFT STATE STATUS
693 DB 4,'3' ;;IMPLEMENTED FOR SHIFT STATE STATUS
694 DB 5,'4' ;;IMPLEMENTED FOR SHIFT STATE STATUS
695 DB 6,'5' ;;IMPLEMENTED FOR SHIFT STATE STATUS
696 DB 7,'6' ;;IMPLEMENTED FOR SHIFT STATE STATUS
697 DB 8,'7' ;;IMPLEMENTED FOR SHIFT STATE STATUS
698 DB 9,'8' ;;IMPLEMENTED FOR SHIFT STATE STATUS
699 DB 10,'9' ;;
700 DB 11,'0' ;;
701 DB 12,0E1H ;; á
702 DB 27,'+' ;;
703 DB 41,'#' ;; pound sign
704 DB 43,'<' ;;
705 DB 51,',' ;;IMPLEMENTED FOR SHIFT STATE STATUS
706 DB 52,'.' ;;IMPLEMENTED FOR SHIFT STATE STATUS
707 DB 53,'-' ;;
708COM_NA_LO_K3_T1_END: ;;
709 ;;
710 DW 0 ;; Size of xlat table - null table
711 ;;
712COM_NA_LO_K3_END: ;;
713 ;;
714;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
715;; CODE PAGE: Common
716;; STATE: Non-Alpha Upper Case
717;; KEYBOARD TYPES: G_KB+P12
718;; TABLE TYPE: Translate
719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
720 ;;
721 DW COM_NA_UP_K1_END-$ ;; length of state section
722 DB NON_ALPHA_UPPER ;; State ID
723 DW G_KB+P12_KB ;; Keyboard Type
724 DB -1,-1 ;; Buffer entry for error character
725 ;;
726 DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table
727 DB STANDARD_TABLE ;; xlat options:
728 DB 17 ;; number of entries
729 DB 41,0F8H ;;
730 DB 3,'"' ;;
731 DB 2,'!' ;;IMPLEMENTED FOR SHIFT STATE STATUS
732 DB 5,'$' ;;
733 DB 6,'%' ;;
734 DB 7,'&' ;;
735 DB 8,'/' ;;
736 DB 9,'(' ;;
737 DB 10,')' ;;
738 DB 11,'=' ;;
739 DB 12,'?' ;;
740 DB 27,'*' ;;
741 DB 43,"'" ;;
742 DB 86,'>' ;;
743 DB 51,';' ;;
744 DB 52,':' ;;
745 DB 53,'_' ;;
746
747COM_NA_UP_K1_T1_END: ;;
748 ;;
749 DW 0 ;; Size of xlat table - null table
750 ;;
751COM_NA_UP_K1_END: ;;
752 ;;
753 ;;
754;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
755;; CODE PAGE: Common
756;; STATE: Non-Alpha Upper Case
757;; KEYBOARD TYPES: AT_KB
758;; TABLE TYPE: Translate
759;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
760 ;;
761 DW COM_NA_UP_K2_END-$ ;; length of state section
762 DB NON_ALPHA_UPPER ;; State ID
763 DW AT_KB ;; Keyboard Type
764 DB -1,-1 ;; Buffer entry for error character
765 ;;
766 DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table
767 DB STANDARD_TABLE ;; xlat options:
768 DB 16 ;; number of entries
769 DB 41,'>' ;;
770 DB 3,'"' ;;
771 DB 2,'!' ;;IMPLEMENTED FOR SHIFT STATE STATUS
772 DB 5,'$' ;;
773 DB 6,'%' ;;
774 DB 7,'&' ;;
775 DB 8,'/' ;;
776 DB 9,'(' ;;
777 DB 10,')' ;;
778 DB 11,'=' ;;
779 DB 12,'?' ;;
780 DB 27,'*' ;;
781 DB 43,"^" ;;
782 DB 51,';' ;;
783 DB 52,':' ;;
784 DB 53,'_' ;;
785
786COM_NA_UP_K2_T1_END: ;;
787 ;;
788 DW 0 ;; Size of xlat table - null table
789 ;;
790COM_NA_UP_K2_END: ;;
791 ;;
792 ;;
793;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
794;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
795;; CODE PAGE: Common
796;; STATE: Non-Alpha Upper Case
797;; KEYBOARD TYPES: XT_KB
798;; TABLE TYPE: Translate
799;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
800 ;;
801 DW COM_NA_UP_K3_END-$ ;; length of state section
802 DB NON_ALPHA_UPPER ;; State ID
803 DW XT_KB ;; Keyboard Type
804 DB -1,-1 ;; Buffer entry for error character
805 ;;
806 DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table
807 DB STANDARD_TABLE ;; xlat options:
808 DB 16 ;; number of entries
809 DB 3,'"' ;;
810 DB 2,'!' ;;IMPLEMENTED FOR SHIFT STATE STATUS
811 DB 5,'$' ;;
812 DB 6,'%' ;;
813 DB 7,'&' ;;
814 DB 8,'/' ;;
815 DB 9,'(' ;;
816 DB 10,')' ;;
817 DB 11,'=' ;;
818 DB 12,'?' ;;
819 DB 27,'*' ;;
820 DB 41,"^" ;;
821 DB 43,'>' ;;
822 DB 51,';' ;;
823 DB 52,':' ;;
824 DB 53,'_' ;;
825
826COM_NA_UP_K3_T1_END: ;;
827 ;;
828 DW 0 ;; Size of xlat table - null table
829 ;;
830COM_NA_UP_K3_END: ;;
831 ;;
832 ;;
833;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
834;; CODE PAGE: Common
835;; STATE: Third Shift
836;; KEYBOARD TYPES: G_KB+P12_KB
837;; TABLE TYPE: Translate
838;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
839 ;;
840 DW COM_THIRD_K1_END-$ ;; length of state section
841 DB THIRD_SHIFT ;; State ID
842 DW G_KB+P12_KB ;; Keyboard Type
843 DB -1,-1 ;; Buffer entry for error character
844 ;;
845 DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table
846 DB STANDARD_TABLE ;; xlat options:
847 DB 11 ;; number of entries
848 DB 3,0FDH ;; ý
849 DB 4,0FCH ;; ü - converted to script 3 in Germany
850 DB 8,'{' ;;
851 DB 9,'[' ;;
852 DB 10,']' ;;
853 DB 11,'}' ;;
854 DB 12,'\' ;;
855 DB 16,'@' ;;
856 DB 27,07EH ;; Tilde - ~
857 DB 86,07CH ;; Solid vertical bar
858 DB 50,0E6H ;; æ - mu symbol
859COM_THIRD_K1_T1_END: ;;
860 ;;
861 DW 0 ;; Last xlat table
862COM_THIRD_K1_END: ;;
863 ;;
864;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
865;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
866;; CODE PAGE: Common
867;; STATE: Third Shift
868;; KEYBOARD TYPES: AT_KB
869;; TABLE TYPE: Translate
870;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
871 ;;
872 DW COM_THIRD_K2_END-$ ;; length of state section
873 DB THIRD_SHIFT ;; State ID
874 DW AT_KB ;; Keyboard Type
875 DB -1,-1 ;; Buffer entry for error character
876 ;;
877 DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table
878 DB STANDARD_TABLE ;; xlat options:
879 DB 4 ;; number of entries
880 DB 26,'[' ;;
881 DB 27,']' ;;
882 DB 41,'\' ;;
883 DB 3,'@' ;;
884COM_THIRD_K2_T1_END: ;;
885 ;;
886 DW 0 ;; Last xlat table
887COM_THIRD_K2_END: ;;
888 ;;
889;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
890;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
891;; CODE PAGE: Common
892;; STATE: Third Shift
893;; KEYBOARD TYPES: XT_KB
894;; TABLE TYPE: Translate
895;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
896 ;;
897 DW COM_THIRD_K3_END-$ ;; length of state section
898 DB THIRD_SHIFT ;; State ID
899 DW XT_KB ;; Keyboard Type
900 DB -1,-1 ;; Buffer entry for error character
901 ;;
902 DW COM_THIRD_K3_T1_END-$ ;; Size of xlat table
903 DB STANDARD_TABLE ;; xlat options:
904 DB 4 ;; number of entries
905 DB 26,'[' ;;
906 DB 27,']' ;;
907 DB 43,'\' ;;
908 DB 3,'@' ;;
909COM_THIRD_K3_T1_END: ;;
910 ;;
911 DW 0 ;; Last xlat table
912COM_THIRD_K3_END: ;;
913 ;;
914;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
915;; CODE PAGE: Common
916;; STATE: Acute Lower Case
917;; KEYBOARD TYPES: All
918;; TABLE TYPE: Translate
919;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
920; ;;
921; DW COM_AC_LO_END-$ ;; length of state section
922; DB ACUTE_LOWER ;; State ID
923; DW ANY_KB ;; Keyboard Type
924; DB 39,0 ;; error character = standalone accent
925; ;;
926; DW COM_AC_LO_T1_END-$ ;; Size of xlat table
927; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
928; DB 5 ;; number of scans
929; DB 18,'‚' ;; scan code,ASCII - e
930; DB 30,' ' ;; scan code,ASCII - a
931; DB 24,'¢' ;; scan code,ASCII - o
932; DB 22,'£' ;; scan code,ASCII - u
933; DB 23,'¡' ;; scan code,ASCII - i
934;COM_AC_LO_T1_END: ;;
935; ;;
936; DW 0 ;; Size of xlat table - null table
937; ;;
938;COM_AC_LO_END: ;;
939; ;;
940;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
941;;; CODE PAGE: Common
942;;; STATE: Acute Upper Case
943;;; KEYBOARD TYPES: All
944;;; TABLE TYPE: Translate
945;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
946; ;;
947; DW COM_AC_UP_END-$ ;; length of state section
948; DB ACUTE_UPPER ;; State ID
949; DW ANY_KB ;; Keyboard Type
950; DB 39,0 ;; error character = standalone accent
951; ;;
952; DW COM_AC_UP_T1_END-$ ;; Size of xlat table
953; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
954; DB 1 ;; number of scans
955; DB 18,'' ;; scan code,ASCII - e
956;COM_AC_UP_T1_END: ;;
957; ;;
958; DW 0 ;; Size of xlat table - null table
959; ;;
960;COM_AC_UP_END: ;;
961; ;;
962;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
963;;; CODE PAGE: Common
964;;; STATE: Acute Space Bar
965;;; KEYBOARD TYPES: All
966;;; TABLE TYPE: Translate
967;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
968; ;;
969; DW COM_AC_SP_END-$ ;; length of state section
970; DB ACUTE_SPACE ;; State ID
971; DW ANY_KB ;; Keyboard Type
972; DB 39,0 ;; error character = standalone accent
973; ;;
974; DW COM_AC_SP_T1_END-$ ;; Size of xlat table
975; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
976; DB 1 ;; number of scans
977; DB 57,39 ;; scan code,ASCII - SPACE
978;COM_AC_SP_T1_END: ;;
979; ;;
980; DW 0 ;; Size of xlat table - null table
981; ;;
982;COM_AC_SP_END: ;;
983;; ;;
984;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
985;; CODE PAGE: Common
986;; STATE: Grave Lower
987;; KEYBOARD TYPES: All
988;; TABLE TYPE: Translate
989;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
990 ;;
991 DW COM_GR_LO_END-$ ;; length of state section
992 DB GRAVE_LOWER ;; State ID
993 DW ANY_KB ;; Keyboard Type
994 DB 96,0 ;; error character = standalone accent
995 ;;
996 DW COM_GR_LO_T1_END-$ ;; Size of xlat table
997 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
998 DB 5 ;; number of scans
999 DB 18,'Š' ;; scan code,ASCII - e
1000 DB 30,'…' ;; scan code,ASCII - a
1001 DB 24,'•' ;; scan code,ASCII - o
1002 DB 22,'—' ;; scan code,ASCII - u
1003 DB 23,'' ;; scan code,ASCII - i
1004COM_GR_LO_T1_END: ;;
1005 ;;
1006 DW 0 ;; Size of xlat table - null table
1007 ;;
1008COM_GR_LO_END: ;; length of state section
1009 ;;
1010;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1011;; CODE PAGE: Common
1012;; STATE: Grave Space Bar
1013;; KEYBOARD TYPES: All
1014;; TABLE TYPE: Translate
1015;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1016 ;;
1017 DW COM_GR_SP_END-$ ;; length of state section
1018 DB GRAVE_SPACE ;; State ID
1019 DW ANY_KB ;; Keyboard Type
1020 DB 96,0 ;; error character = standalone accent
1021 ;;
1022 DW COM_GR_SP_T1_END-$ ;; Size of xlat table
1023 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1024 DB 1 ;; number of scans
1025 DB 57,96 ;; STANDALONE GRAVE
1026COM_GR_SP_T1_END: ;;
1027 ;;
1028 DW 0 ;; Size of xlat table - null table
1029 ;;
1030COM_GR_SP_END: ;; length of state section
1031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1032 DW 0 ;; Last State
1033COMMON_XLAT_END: ;;
1034;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1035;;***************************************
1036;; GE Specific Translate Section for 437
1037;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE.
1038;;***************************************
1039;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1040 ;;
1041 PUBLIC GE_437_XLAT ;;
1042GE_437_XLAT: ;;
1043 ;;
1044 DW CP437_XLAT_END-$ ;; length of section
1045 DW 437 ;;
1046;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1047;; CODE PAGE: 437
1048;; STATE: Non-Alpha Lower Case
1049;; KEYBOARD TYPES: All
1050;; TABLE TYPE: Translate
1051;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1052 ;; eliminated !!!!
1053 DW CP437_NA_LO_END-$ ;; length of state section
1054 DB NON_ALPHA_LOWER ;; State ID
1055 DW ANY_KB ;; Keyboard Type
1056 DB -1,-1 ;; error character = standalone accent
1057 ;;
1058 DW CP437_NA_LO_T1_END-$ ;; Size of xlat table
1059 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1060 DB 0 ;; number of scans
1061CP437_NA_LO_T1_END: ;;
1062 ;;
1063 ;;
1064 DW 0 ;; Size of xlat table - null table
1065 ;;
1066CP437_NA_LO_END: ;;
1067;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1068;; CODE PAGE: 437
1069;; STATE: Non-Alpha Upper Case
1070;; KEYBOARD TYPES: All
1071;; TABLE TYPE: Translate
1072;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1073 ;;
1074 DW CP437_NA_UP_END-$ ;; length of state section
1075 DB NON_ALPHA_UPPER ;; State ID
1076 DW ANY_KB ;; Keyboard Type
1077 DB -1,-1 ;; error character = standalone accent
1078 ;;
1079 DW CP437_NA_UP_T1_END-$ ;; Size of xlat table
1080 DB STANDARD_TABLE ;; xlat options: ***** CNS 12/18
1081 DB 1 ;; number of scans
1082 DB 4,015H ;;  - Section symbol
1083CP437_NA_UP_T1_END: ;;
1084 ;;
1085 ;;
1086 DW 0 ;; Size of xlat table - null table
1087 ;;
1088CP437_NA_UP_END: ;;
1089;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1090;; CODE PAGE: 437
1091;; STATE: Acute Lower Case
1092;; KEYBOARD TYPES: All
1093;; TABLE TYPE: Translate
1094;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1095 ;;
1096 DW CP437_AC_LO_END-$ ;; length of state section
1097 DB ACUTE_LOWER ;; State ID
1098 DW ANY_KB ;; Keyboard Type
1099 DB 39,0 ;; error character = standalone accent
1100 ;;
1101 DW CP437_AC_LO_T1_END-$ ;; Size of xlat table
1102 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1103 DB 5 ;; number of scans
1104 DB 18,'‚' ;; scan code,ASCII - e
1105 DB 30,' ' ;; scan code,ASCII - a
1106 DB 24,'¢' ;; scan code,ASCII - o
1107 DB 22,'£' ;; scan code,ASCII - u
1108 DB 23,'¡' ;; scan code,ASCII - i
1109 CP437_AC_LO_T1_END: ;;
1110 ;;
1111 DW 0 ;; Size of xlat table - null table
1112 ;;
1113CP437_AC_LO_END: ;;
1114 ;;
1115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1116;; CODE PAGE: Common
1117;; STATE: Acute Upper Case
1118;; KEYBOARD TYPES: All
1119;; TABLE TYPE: Translate
1120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1121 ;;
1122 DW CP437_AC_UP_END-$ ;; length of state section
1123 DB ACUTE_UPPER ;; State ID
1124 DW ANY_KB ;; Keyboard Type
1125 DB 39,0 ;; error character = standalone accent
1126 ;;
1127 DW CP437_AC_UP_T1_END-$ ;; Size of xlat table
1128 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1129 DB 1 ;; number of scans
1130 DB 18,'' ;; scan code,ASCII - e
1131CP437_AC_UP_T1_END: ;;
1132 ;;
1133 DW 0 ;; Size of xlat table - null table
1134 ;;
1135CP437_AC_UP_END: ;;
1136 ;;
1137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1138;; CODE PAGE: Common
1139;; STATE: Acute Space Bar
1140;; KEYBOARD TYPES: All
1141;; TABLE TYPE: Translate
1142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1143 ;;
1144 DW CP437_AC_SP_END-$ ;; length of state section
1145 DB ACUTE_SPACE ;; State ID
1146 DW ANY_KB ;; Keyboard Type
1147 DB 39,0 ;; error character = standalone accent
1148 ;;
1149 DW CP437_AC_SP_T1_END-$ ;; Size of xlat table
1150 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1151 DB 1 ;; number of scans
1152 DB 57,39 ;; scan code,ASCII - SPACE
1153CP437_AC_SP_T1_END: ;;
1154 ;;
1155 DW 0 ;; Size of xlat table - null table
1156 ;;
1157CP437_AC_SP_END: ;;
1158 ;;
1159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1160 ;;
1161 DW 0 ;; LAST STATE
1162 ;;
1163CP437_XLAT_END: ;;
1164 ;;
1165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1166;;***************************************
1167;; GE Specific Translate Section for 850
1168;;***************************************
1169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1170 ;;
1171 PUBLIC GE_850_XLAT ;;
1172GE_850_XLAT: ;;
1173 ;;
1174 DW CP850_XLAT_END-$ ;; length of section
1175 DW 850 ;;
1176 ;;
1177 ;;
1178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1180;; CODE PAGE: 850
1181;; STATE: Non-Alpha Lower Case
1182;; KEYBOARD TYPES: All
1183;; TABLE TYPE: Translate
1184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1185 ;;
1186 DW CP850_NA_LO_END-$ ;; length of state section
1187 DB NON_ALPHA_LOWER ;; State ID
1188 DW ANY_KB ;; Keyboard Type
1189 DB -1,-1 ;; error character = standalone accent
1190 ;;
1191 DW CP850_NA_LO_T1_END-$ ;; Size of xlat table
1192 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1193 DB 0 ;; number of scans
1194CP850_NA_LO_T1_END: ;;
1195 ;;
1196 ;;
1197 DW 0 ;; Size of xlat table - null table
1198 ;;
1199CP850_NA_LO_END: ;;
1200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1201;; CODE PAGE: 850
1202;; STATE: Non-Alpha Upper Case
1203;; KEYBOARD TYPES: All
1204;; TABLE TYPE: Translate
1205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1206 ;;
1207 DW CP850_NA_UP_END-$ ;; length of state section
1208 DB NON_ALPHA_UPPER ;; State ID
1209 DW ANY_KB ;; Keyboard Type
1210 DB -1,-1 ;; error character = standalone accent
1211 ;;
1212 DW CP850_NA_UP_T1_END-$ ;; Size of xlat table
1213 DB STANDARD_TABLE ;; xlat options: **** CNS 12/18
1214 DB 1 ;; number of scans
1215 DB 4,0F5H ;;  - Section symbol
1216 ;;
1217CP850_NA_UP_T1_END: ;;
1218 ;;
1219 ;;
1220 DW 0 ;; Size of xlat table - null table
1221 ;;
1222CP850_NA_UP_END: ;;
1223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1224;; CODE PAGE: 850
1225;; STATE: Acute Lower Case
1226;; KEYBOARD TYPES: All
1227;; TABLE TYPE: Translate
1228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1229 ;;
1230 DW CP850_AC_LO_END-$ ;; length of state section
1231 DB ACUTE_LOWER ;; State ID
1232 DW ANY_KB ;; Keyboard Type
1233 DB 0eFh,0 ;; error character = standalone accent
1234 ;;
1235 DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
1236 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1237 DB 5 ;; number of scans
1238 DB 18,'‚' ;; scan code,ASCII - e
1239 DB 30,' ' ;; scan code,ASCII - a
1240 DB 24,'¢' ;; scan code,ASCII - o
1241 DB 22,'£' ;; scan code,ASCII - u
1242 DB 23,'¡' ;; scan code,ASCII - i
1243 CP850_AC_LO_T1_END: ;;
1244 ;;
1245 DW 0 ;; Size of xlat table - null table
1246 ;;
1247CP850_AC_LO_END: ;;
1248 ;;
1249;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1250;; CODE PAGE: Common
1251;; STATE: Acute Upper Case
1252;; KEYBOARD TYPES: All
1253;; TABLE TYPE: Translate
1254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1255 ;;
1256 DW CP850_AC_UP_END-$ ;; length of state section
1257 DB ACUTE_UPPER ;; State ID
1258 DW ANY_KB ;; Keyboard Type
1259 DB 0efh,0 ;; error character = standalone accent
1260 ;;
1261 DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
1262 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1263 DB 5 ;; number of scans
1264 DB 30,0B5H ;; Caps acute A
1265 DB 23,0D6H ;; Caps acute I
1266 DB 24,0E0H ;; Caps acute O
1267 DB 22,0E9H ;; Caps acute U
1268 DB 18,'' ;; scan code,ASCII - e
1269CP850_AC_UP_T1_END: ;;
1270 ;;
1271 DW 0 ;; Size of xlat table - null table
1272 ;;
1273CP850_AC_UP_END: ;;
1274 ;;
1275;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1276;; CODE PAGE: Common
1277;; STATE: Acute Space Bar
1278;; KEYBOARD TYPES: All
1279;; TABLE TYPE: Translate
1280;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1281 ;;
1282 DW CP850_AC_SP_END-$ ;; length of state section
1283 DB ACUTE_SPACE ;; State ID
1284 DW ANY_KB ;; Keyboard Type
1285 DB 0efh,0 ;; error character = standalone accent
1286 ;;
1287 DW CP850_AC_SP_T1_END-$ ;; Size of xlat table
1288 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1289 DB 1 ;; number of scans
1290 DB 57,0efh ;; scan code,ASCII - SPACE
1291CP850_AC_SP_T1_END: ;;
1292 ;;
1293 DW 0 ;; Size of xlat table - null table
1294 ;;
1295CP850_AC_SP_END: ;;
1296 ;;
1297;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1298;; CODE PAGE: 850
1299;; STATE: Grave Upper Case
1300;; KEYBOARD TYPES: All
1301;; TABLE TYPE: Translate
1302;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1303 ;;
1304 DW CP850_GR_UP_END-$ ;; length of state section
1305 DB GRAVE_UPPER ;; State ID
1306 DW ANY_KB ;; Keyboard Type
1307 DB -1,-1 ;; error character = standalone accent
1308 ;;
1309 DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
1310 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1311 DB 5 ;; number of scans
1312 DB 30,0B7H ;; Caps grave A
1313 DB 18,0D4H ;; Caps grave E
1314 DB 23,0DEH ;; Caps grave I
1315 DB 24,0E3H ;; Caps grave O
1316 DB 22,0EBH ;; Caps grave U
1317 ;;
1318CP850_GR_UP_T1_END: ;;
1319 ;;
1320 ;;
1321 DW 0 ;; Size of xlat table - null table
1322 ;;
1323CP850_GR_UP_END: ;;
1324 ;;
1325 DW 0 ;; LAST STATE
1326 ;;
1327CP850_XLAT_END: ;;
1328 ;;
1329;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1330 ;;
1331 ;;
1332CODE ENDS ;;
1333 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFIT.ASM b/v4.0/src/DEV/KEYBOARD/KDFIT.ASM
new file mode 100644
index 0000000..c29b453
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFIT.ASM
@@ -0,0 +1,794 @@
1;; LATEST CHANGE ALT & CTL
2
3
4
5 PAGE ,132
6 TITLE DOS - Keyboard Definition File
7
8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9;; DOS - - NLS Support - Keyboard Defintion File
10;; (c) Copyright 1988 Microsoft
11;;
12;; This file contains the keyboard tables for Spanish.
13;;
14;; Linkage Instructions:
15;; Refer to KDF.ASM.
16;;
17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
18 ;;
19 INCLUDE KEYBSHAR.INC ;;
20 INCLUDE POSTEQU.INC ;;
21 INCLUDE KEYBMAC.INC ;;
22 ;;
23 PUBLIC IT_LOGIC ;;
24 PUBLIC IT_437_XLAT ;;
25 PUBLIC IT_850_XLAT ;;
26 ;;
27CODE SEGMENT PUBLIC 'CODE' ;;
28 ASSUME CS:CODE,DS:CODE ;;
29 ;;
30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
31;; Standard translate table options are a liner search table
32;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
34 ;;
35STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
36 ;;
37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
38;;***************************************
39;; IT State Logic
40;;***************************************
41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
42 ;;
43 ;;
44IT_LOGIC:
45
46 DW LOGIC_END-$ ;; length
47 ;;
48 DW 0 ;; special features
49 ;;
50 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
51 ;;
52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
53;; OPTIONS: If we find a scan match in
54;; an XLATT or SET_FLAG operation then
55;; exit from INT 9.
56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
57 ;;
58 OPTION EXIT_IF_FOUND ;;
59 ;;
60 ;;
61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
62;; Dead key definitions must come before
63;; dead key translations to handle
64;; dead key + dead key.
65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
66 ;;
67 IFF EITHER_ALT,NOT ;;
68 ANDF EITHER_CTL,NOT ;;
69 IFF EITHER_SHIFT ;;
70 SET_FLAG DEAD_UPPER ;;
71 ELSEF ;;
72 SET_FLAG DEAD_LOWER ;;
73 ENDIFF ;;
74 ENDIFF ;;
75 ;;
76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
77;; ACUTE ACCENT TRANSLATIONS
78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
79 ;;
80ACUTE_PROC: ;;
81 ;;
82 IFF ACUTE,NOT ;;
83 GOTO DIARESIS_PROC ;;
84 ENDIFF ;;
85 ;;
86 RESET_NLS ;;
87 IFF R_ALT_SHIFT,NOT ;;
88 XLATT ACUTE_SPACE ;;
89 ENDIFF ;;
90 IFF EITHER_CTL,NOT ;;
91 ANDF EITHER_ALT,NOT ;;
92 IFF EITHER_SHIFT ;;
93 IFF CAPS_STATE ;;
94 XLATT ACUTE_LOWER ;;
95 ELSEF ;;
96 XLATT ACUTE_UPPER ;;
97 ENDIFF ;;
98 ELSEF ;;
99 IFF CAPS_STATE ;;
100 XLATT ACUTE_UPPER ;;
101 ELSEF ;;
102 XLATT ACUTE_LOWER ;;
103 ENDIFF ;;
104 ENDIFF ;;
105 ENDIFF ;;
106 ;;
107INVALID_ACUTE: ;;
108 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
109 BEEP ;; failed or we are ina bad shift state.
110 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
111 ;; through to generate the second char.
112 ;; Note that the dead key flag will be
113 ;; reset before we get here.
114 ;;
115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
116;; DIARESIS ACCENT TRANSLATIONS
117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
118 ;;
119DIARESIS_PROC: ;;
120 ;;
121 IFF DIARESIS,NOT ;;
122 GOTO GRAVE_PROC ;;
123 ENDIFF ;;
124 ;;
125 RESET_NLS ;;
126 IFF R_ALT_SHIFT,NOT ;;
127 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
128 ENDIFF ;;
129 IFF EITHER_CTL,NOT ;;
130 ANDF EITHER_ALT,NOT ;;
131 IFF EITHER_SHIFT ;;
132 IFF CAPS_STATE ;;
133 XLATT DIARESIS_LOWER ;;
134 ELSEF ;;
135 XLATT DIARESIS_UPPER ;;
136 ENDIFF ;;
137 ELSEF ;;
138 IFF CAPS_STATE ;;
139 XLATT DIARESIS_UPPER ;;
140 ELSEF ;;
141 XLATT DIARESIS_LOWER ;;
142 ENDIFF ;;
143 ENDIFF ;;
144 ENDIFF ;;
145 ;;
146INVALID_DIARESIS: ;;
147 PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent
148 BEEP ;; Invalid dead key combo.
149 GOTO NON_DEAD ;;
150 ;;
151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
152;; GRAVE ACCENT TRANSLATIONS
153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
154 ;;
155GRAVE_PROC: ;;
156 ;;
157 IFF GRAVE,NOT ;;
158 GOTO CIRCUMFLEX_PROC ;;
159 ENDIFF ;;
160 ;;
161 RESET_NLS ;;
162 IFF R_ALT_SHIFT,NOT ;;
163 XLATT GRAVE_SPACE ;;
164 ENDIFF ;;
165 IFF EITHER_CTL,NOT ;;
166 ANDF EITHER_ALT,NOT ;;
167 IFF EITHER_SHIFT ;;
168 IFF CAPS_STATE ;;
169 XLATT GRAVE_LOWER ;;
170 ELSEF ;;
171 XLATT GRAVE_UPPER ;;
172 ENDIFF ;;
173 ELSEF ;;
174 IFF CAPS_STATE,NOT ;;
175 XLATT GRAVE_LOWER ;;
176 ELSEF ;;
177 XLATT GRAVE_UPPER ;;
178 ENDIFF ;;
179 ENDIFF ;;
180 ENDIFF ;;
181 ;;
182INVALID_GRAVE: ;;
183 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
184 BEEP ;; Invalid dead key combo.
185 GOTO NON_DEAD ;;
186 ;;
187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
188;; CIRCUMFLEX ACCENT TRANSLATIONS
189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
190 ;;
191CIRCUMFLEX_PROC: ;;
192 ;;
193 IFF CIRCUMFLEX,NOT ;;
194 GOTO NON_DEAD ;;
195 ENDIFF ;;
196 ;;
197 RESET_NLS ;;
198 IFF R_ALT_SHIFT,NOT ;;
199 XLATT CIRCUMFLEX_SPACE ;;
200 ENDIFF ;;
201 IFF EITHER_CTL,NOT ;;
202 ANDF EITHER_ALT,NOT ;;
203 IFF EITHER_SHIFT ;;
204 IFF CAPS_STATE ;;
205 XLATT CIRCUMFLEX_LOWER ;;
206 ELSEF ;;
207 XLATT CIRCUMFLEX_UPPER ;;
208 ENDIFF ;;
209 ELSEF ;;
210 IFF CAPS_STATE,NOT ;;
211 XLATT CIRCUMFLEX_LOWER ;;
212 ELSEF ;;
213 XLATT CIRCUMFLEX_UPPER ;;
214 ENDIFF ;;
215 ENDIFF ;;
216 ENDIFF ;;
217 ;;
218INVALID_CIRCUMFLEX: ;;
219 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
220 BEEP ;; Invalid dead key combo.
221 GOTO NON_DEAD ;;
222 ;;
223 ;;
224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
225;; Upper, lower and third shifts
226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
227 ;;
228NON_DEAD: ;;
229 ;;
230 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
231 ANDF LC_E0 ;; the "/" on the numeric pad of the
232 EXIT_STATE_LOGIC ;; G keyboard
233 ENDIFF ;;
234;;***BD ADDED FOR ALT, CTRL CASES ;;
235 IFF EITHER_CTL,NOT ;;
236 IFF ALT_SHIFT ;; ALT - case
237 ANDF R_ALT_SHIFT,NOT ;;
238 XLATT ALT_CASE ;;
239 ENDIFF ;;
240 ELSEF ;;
241 IFF EITHER_ALT,NOT ;; CTRL - case
242 XLATT CTRL_CASE ;;
243 ENDIFF ;;
244 ENDIFF ;;
245;;***BD END OF ADDITION
246 ;;
247 IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
248 ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
249 IFF EITHER_SHIFT ;; Numeric keys are not.
250;;***BD ADDED FOR NUMERIC PAD
251 IFF NUM_STATE,NOT ;;
252 XLATT NUMERIC_PAD ;;
253 ENDIFF ;;
254;;***BD END OF ADDITION
255 XLATT NON_ALPHA_UPPER ;;
256 IFF CAPS_STATE ;;
257 XLATT ALPHA_LOWER ;;
258 ELSEF ;;
259 XLATT ALPHA_UPPER ;;
260 ENDIFF ;;
261 ELSEF ;;
262;;***BD ADDED FOR NUMERIC PAD
263 IFF NUM_STATE ;;
264 XLATT NUMERIC_PAD ;;
265 ENDIFF ;;
266;;***BD END OF ADDITION
267 XLATT NON_ALPHA_LOWER ;;
268 IFF CAPS_STATE ;;
269 XLATT ALPHA_UPPER ;;
270 ELSEF ;;
271 XLATT ALPHA_LOWER ;;
272 ENDIFF ;;
273 ENDIFF ;;
274 ELSEF ;;
275 IFF EITHER_SHIFT,NOT ;;
276 IFKBD XT_KB+AT_KB ;;
277 IFF EITHER_CTL ;;
278 ANDF ALT_SHIFT ;;
279 XLATT THIRD_SHIFT ;;
280 ENDIFF ;;
281 ELSEF ;;
282 IFF EITHER_CTL,NOT ;;
283 ANDF R_ALT_SHIFT ;;
284 XLATT THIRD_SHIFT ;;
285 ENDIFF ;;
286 ENDIFF ;;
287 ENDIFF ;;
288 ENDIFF ;;
289 ;;
290 EXIT_STATE_LOGIC ;;
291 ;;
292LOGIC_END: ;;
293 ;;
294 ;;
295;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
296;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
297;;;***************************************
298;; IT Common Translate Section
299;; This section contains translations for the lower 128 characters
300;; only since these will never change from code page to code page.
301;; In addition the dead key "Set Flag" tables are here since the
302;; dead keys are on the same keytops for all code pages.
303;;***************************************
304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
305 ;;
306 PUBLIC IT_COMMON_XLAT ;;
307IT_COMMON_XLAT: ;;
308 ;;
309 DW COMMON_XLAT_END-$ ;; length of section
310 DW -1 ;; code page
311 ;;
312 ;;
313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
314;;***************************************
315;;***BD - ADDED FOR ALT CASE
316;;******************************
317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
318;; CODE PAGE: Common
319;; STATE: Alt Case
320;; KEYBOARD TYPES: All
321;; TABLE TYPE: Translate
322;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
323 ;;
324 DW COM_ALT_K1_END-$ ;; length of state section
325 DB ALT_CASE ;; State ID
326 DW ANY_KB ;; Keyboard Type
327 DB -1,-1 ;; Buffer entry for error character
328 ;;
329 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
330 DB TYPE_2_TAB ;; xlat options:
331 DB 3 ;; number of entries
332;;***BD THIS ENTRY IS A TEST ENTRY
333;; DB 53,225,0 ;; TEST ENTRY
334 DB 53,0,82H ;; valid alt -
335 DB 12,-1,-1 ;; invalid alt -
336 DB 13,-1,-1 ;; invalid alt =
337COM_ALT_K1_T1_END: ;;
338 ;;
339 DW 0 ;; Size of xlat table - null table
340 ;;
341COM_ALT_K1_END: ;;
342 ;;
343;;******************************
344;;***BD - ADDED FOR CTRL CASE
345;;******************************
346;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
347;; CODE PAGE: Common
348;; STATE: Ctrl Case
349;; KEYBOARD TYPES: G_KB+P12_KB+AT
350;; TABLE TYPE: Translate
351;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
352 ;;
353 DW COM_CTRL_K1_END-$ ;; length of state section
354 DB CTRL_CASE ;; State ID
355 DW G_KB+P12_KB+AT_KB ;; Keyboard Type
356 DB -1,-1 ;; Buffer entry for error character
357 ;;
358 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
359 DB TYPE_2_TAB ;; xlat options:
360 DB 2 ;; number of entries
361;;***BD THIS ENTRY IS A TEST ENTRY
362;; DB 53,226,0 ;; TEST ENTRY
363 DB 43,-1,-1 ;; invalid slash
364 DB 41,28,41 ;; valid slash
365COM_CTRL_K1_T1_END: ;;
366 ;;
367 DW 0 ;; Size of xlat table - null table
368 ;;
369COM_CTRL_K1_END: ;;
370 ;;
371;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
372;; CODE PAGE: Common
373;; STATE: Non-Alpha Lower Case
374;; KEYBOARD TYPES: G_KB+P12_KB
375;; TABLE TYPE: Translate
376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
377 ;;
378 DW COM_NA_LO_K1_END-$ ;; length of state section
379 DB NON_ALPHA_LOWER ;; State ID
380 DW G_KB+P12_KB ;; Keyboard Type
381 DB -1,-1 ;; Buffer entry for error character
382 ;;
383 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
384 DB STANDARD_TABLE ;; xlat options:
385 DB 10 ;; number of entries
386 DB 41,"\" ;; \
387 DB 12,"'" ;; '
388 DB 13,141 ;; grave i - ¡;
389 DB 27,'+' ;; +
390 DB 86,'<' ;; <
391 DB 53,'-' ;; -
392 DB 39,149 ;; grave o - •
393 DB 40,133 ;; grave a - …;
394 DB 43,151 ;; grave u - —;
395 DB 26,138 ;; grave e - Š;
396COM_NA_LO_K1_T1_END: ;;
397 ;;
398 DW 0 ;; Size of xlat table - null table
399 ;;
400COM_NA_LO_K1_END: ;;
401 ;;
402;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
403;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
404;; CODE PAGE: Common
405;; STATE: Non-Alpha Lower Case
406;; KEYBOARD TYPES: AT
407;; TABLE TYPE: Translate
408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
409 ;;
410 DW COM_NA_LO_K2_END-$ ;; length of state section
411 DB NON_ALPHA_LOWER ;; State ID
412 DW AT_KB ;; Keyboard Type
413 DB -1,-1 ;; Buffer entry for error character
414 ;;
415 DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table
416 DB STANDARD_TABLE ;; xlat options:
417 DB 9 ;; number of entries
418 DB 41,"<" ;; <
419 DB 12,"'" ;; '
420 DB 13,141 ;; grave i - ¡;
421 DB 27,'+' ;; +
422 DB 53,'-' ;; -
423 DB 39,149 ;; grave o - •
424 DB 40,133 ;; grave a - …;
425 DB 43,151 ;; grave u - —;
426 DB 26,138 ;; grave e - Š;
427COM_NA_LO_K2_T1_END: ;;
428 ;;
429 DW 0 ;; Size of xlat table - null table
430 ;;
431COM_NA_LO_K2_END: ;;
432 ;;
433;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
435;; CODE PAGE: Common
436;; STATE: Non-Alpha Lower Case
437;; KEYBOARD TYPES: XT +
438;; TABLE TYPE: Translate
439;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
440 ;;
441 DW COM_NA_LO_K3_END-$ ;; length of state section
442 DB NON_ALPHA_LOWER ;; State ID
443 DW XT_KB ;; Keyboard Type
444 DB -1,-1 ;; Buffer entry for error character
445 ;;
446 DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table
447 DB STANDARD_TABLE ;; xlat options:
448 DB 9 ;; number of entries
449 DB 12,"'" ;; '
450 DB 13,141 ;; grave i - ¡;
451 DB 27,'+' ;; +
452 DB 43,'<' ;; <
453 DB 53,'-' ;; -
454 DB 39,149 ;; grave o - •
455 DB 40,133 ;; grave a - …;
456 DB 41,151 ;; grave u - —;
457 DB 26,138 ;; grave e - Š;
458COM_NA_LO_K3_T1_END: ;;
459 ;;
460 DW 0 ;; Size of xlat table - null table
461 ;;
462COM_NA_LO_K3_END: ;;
463 ;;
464;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
465;; CODE PAGE: Common
466;; STATE: Non-Alpha Upper Case
467;; KEYBOARD TYPES: G_KB+P12
468;; TABLE TYPE: Translate
469;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
470 ;;
471 DW COM_NA_UP_K1_END-$ ;; length of state section
472 DB NON_ALPHA_UPPER ;; State ID
473 DW G_KB+P12_KB ;; Keyboard Type
474 DB -1,-1 ;; Buffer entry for error character
475 ;;
476 DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table
477 DB STANDARD_TABLE ;; xlat options:
478 DB 18 ;; number of entries
479 DB 41,07CH ;; Solid vertical bar - |
480 DB 3,'"' ;;
481 DB 4,'œ' ;;
482 DB 7,'&' ;;
483 DB 8,'/' ;;
484 DB 9,'(' ;;
485 DB 10,')' ;;
486 DB 11,'=' ;;
487 DB 12,'?' ;;
488 DB 13,'^' ;;
489 DB 26,130 ;; acute e - ‚;
490 DB 39,135 ;; c - cedilla - ‡
491 DB 27,'*' ;;
492 DB 40,0F8H ;; ø - degree symbol
493 DB 86,'>' ;;
494 DB 51,';' ;;
495 DB 52,':' ;;
496 DB 53,'_' ;;
497 ;;
498COM_NA_UP_K1_T1_END: ;;
499 ;;
500 DW 0 ;; Size of xlat table - null table
501 ;;
502COM_NA_UP_K1_END: ;;
503 ;;
504 ;;
505;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
506;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
507;; CODE PAGE: Common
508;; STATE: Non-Alpha Upper Case
509;; KEYBOARD TYPES: AT
510;; TABLE TYPE: Translate
511;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
512 ;;
513 DW COM_NA_UP_K2_END-$ ;; length of state section
514 DB NON_ALPHA_UPPER ;; State ID
515 DW AT_KB ;; Keyboard Type
516 DB -1,-1 ;; Buffer entry for error character
517 ;;
518 DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table
519 DB STANDARD_TABLE ;; xlat options:
520 DB 18 ;; number of entries
521 DB 41,'>' ;; >
522 DB 3,'"' ;;
523 DB 4,'œ' ;;
524 DB 7,'&' ;;
525 DB 8,'/' ;;
526 DB 9,'(' ;;
527 DB 10,')' ;;
528 DB 11,'=' ;;
529 DB 12,'?' ;;
530 DB 13,'^' ;;
531 DB 26,130 ;; acute e - ‚;
532 DB 39,'@' ;; @ AT sign replaces c - cedilla - ‡
533 DB 27,'*' ;;
534 DB 40,'#' ;; # sign replaces ø - degree symbol
535 DB 86,'>' ;;
536 DB 51,';' ;;
537 DB 52,':' ;;
538 DB 53,'_' ;;
539 ;;
540COM_NA_UP_K2_T1_END: ;;
541 ;;
542 DW 0 ;; Size of xlat table - null table
543 ;;
544COM_NA_UP_K2_END: ;;
545 ;;
546 ;;
547;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
548;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
549;; CODE PAGE: Common
550;; STATE: Non-Alpha Upper Case
551;; KEYBOARD TYPES: XT +
552;; TABLE TYPE: Translate
553;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
554 ;;
555 DW COM_NA_UP_K3_END-$ ;; length of state section
556 DB NON_ALPHA_UPPER ;; State ID
557 DW XT_KB ;; Keyboard Type
558 DB -1,-1 ;; Buffer entry for error character
559 ;;
560 DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table
561 DB STANDARD_TABLE ;; xlat options:
562 DB 17 ;; number of entries
563 DB 3,'"' ;;
564 DB 4,'œ' ;;
565 DB 7,'&' ;;
566 DB 8,'/' ;;
567 DB 9,'(' ;;
568 DB 10,')' ;;
569 DB 11,'=' ;;
570 DB 12,'?' ;;
571 DB 13,'^' ;;
572 DB 26,130 ;; acute e - ‚;
573 DB 39,'@' ;; @ AT sign replaces c - cedilla - ‡
574 DB 27,'*' ;;
575 DB 40,'#' ;; # sign replaces ø - degree symbol
576 DB 43,'>' ;;
577 DB 51,';' ;;
578 DB 52,':' ;;
579 DB 53,'_' ;;
580 ;;
581COM_NA_UP_K3_T1_END: ;;
582 ;;
583 DW 0 ;; Size of xlat table - null table
584 ;;
585COM_NA_UP_K3_END: ;;
586 ;;
587 ;;
588;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
589;; CODE PAGE: Common
590;; STATE: Third Shift
591;; KEYBOARD TYPES: G_KB+P12_KB
592;; TABLE TYPE: Translate
593;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
594 ;;
595 DW COM_THIRD_K1_END-$ ;; length of state section
596 DB THIRD_SHIFT ;; State ID
597 DW G_KB+P12_KB ;; Keyboard Type
598 DB -1,-1 ;; Buffer entry for error character
599 ;;
600 DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table
601 DB STANDARD_TABLE ;; xlat options:
602 DB 4 ;; number of entries
603 DB 26,'[' ;;
604 DB 27,']' ;;
605 DB 39,'@' ;;
606 DB 40,'#' ;;
607COM_THIRD_K1_T1_END: ;;
608 ;;
609 DW 0 ;; Last xlat table
610COM_THIRD_K1_END: ;;
611 ;;
612;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
613;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
614;; CODE PAGE: Common
615;; STATE: Third Shift
616;; KEYBOARD TYPES: AT
617;; TABLE TYPE: Translate
618;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
619 ;;
620 DW COM_THIRD_K2_END-$ ;; length of state section
621 DB THIRD_SHIFT ;; State ID
622 DW AT_KB ;; Keyboard Type
623 DB -1,-1 ;; Buffer entry for error character
624 ;;
625 DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table
626 DB STANDARD_TABLE ;; xlat options:
627 DB 3 ;; number of entries
628 DB 41,'\' ;;
629 DB 26,'[' ;;
630 DB 27,']' ;;
631COM_THIRD_K2_T1_END: ;;
632 ;;
633 DW 0 ;; Last xlat table
634COM_THIRD_K2_END: ;;
635 ;;
636;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
637;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
638;; CODE PAGE: Common
639;; STATE: Third Shift
640;; KEYBOARD TYPES: XT +
641;; TABLE TYPE: Translate
642;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
643 ;;
644 DW COM_THIRD_K3_END-$ ;; length of state section
645 DB THIRD_SHIFT ;; State ID
646 DW XT_KB ;; Keyboard Type
647 DB -1,-1 ;; Buffer entry for error character
648 ;;
649 DW COM_THIRD_K3_T1_END-$ ;; Size of xlat table
650 DB STANDARD_TABLE ;; xlat options:
651 DB 3 ;; number of entries
652 DB 43,'\' ;;
653 DB 26,'[' ;;
654 DB 27,']' ;;
655COM_THIRD_K3_T1_END: ;;
656 ;;
657 DW 0 ;; Last xlat table
658COM_THIRD_K3_END: ;;
659 ;;
660;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
661 DW 0 ;; Last State
662COMMON_XLAT_END: ;;
663 ;;
664 ;;
665 ;;
666;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
667;;***************************************
668;; IT Specific Translate Section for 437
669;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE.
670;;***************************************
671;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
672 ;;
673 PUBLIC IT_437_XLAT ;;
674IT_437_XLAT: ;;
675 ;;
676 DW CP437_XLAT_END-$ ;; length of section
677 DW 437 ;;
678;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
679;; CODE PAGE: 437
680;; STATE: Non-Alpha Upper case
681;; KEYBOARD TYPES: G_KB+P12+AT
682;; TABLE TYPE: Translate
683;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
684 ;;
685 DW CP437_NA_UP_K1_END-$ ;; length of state section
686 DB NON_ALPHA_UPPER ;; State ID
687 DW G_KB+P12_KB+AT_KB ;; Keyboard Type
688 DB -1,-1 ;; error character = standalone accent
689 ;;
690 DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table
691 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
692 DB 1 ;; number of scans
693 DB 43,015H ;; Section symbol - 
694 CP437_NA_UP_T1_K1_END: ;;
695 ;;
696 DW 0 ;; Size of xlat table - null table
697 ;;
698 CP437_NA_UP_K1_END: ;;
699 ;;
700;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
701;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
702;; CODE PAGE: 437
703;; STATE: Non-Alpha Upper case
704;; KEYBOARD TYPES: XT +
705;; TABLE TYPE: Translate
706;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
707 ;;
708 DW CP437_NA_UP_K2_END-$ ;; length of state section
709 DB NON_ALPHA_UPPER ;; State ID
710 DW XT_KB ;; Keyboard Type
711 DB -1,-1 ;; error character = standalone accent
712 ;;
713 DW CP437_NA_UP_T1_K2_END-$ ;; Size of xlat table
714 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
715 DB 1 ;; number of scans
716 DB 41,015H ;; Section symbol - 
717 CP437_NA_UP_T1_K2_END: ;;
718 ;;
719 DW 0 ;; Size of xlat table - null table
720 ;;
721 CP437_NA_UP_K2_END: ;;
722 ;;
723;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
724 DW 0 ;; LAST STATE
725 ;;
726CP437_XLAT_END: ;;
727 ;;
728;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
729;;***************************************
730;; IT Specific Translate Section for 850
731;;***************************************
732;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
733 ;;
734 PUBLIC IT_850_XLAT ;;
735IT_850_XLAT: ;;
736 ;;
737 DW CP850_XLAT_END-$ ;; length of section
738 DW 850 ;;
739 ;;
740 ;;
741;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
742;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
743;; CODE PAGE: 850
744;; STATE: Non-Alpha Upper case
745;; KEYBOARD TYPES: G_KB+P12+AT
746;; TABLE TYPE: Translate
747;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
748 ;;
749 DW CP850_NA_UP_K1_END-$ ;; length of state section
750 DB NON_ALPHA_UPPER ;; State ID
751 DW G_KB+P12_KB+AT_KB ;; Keyboard Type
752 DB -1,-1 ;; error character = standalone accent
753 ;;
754 DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table
755 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
756 DB 1 ;; number of scans
757 DB 43,0F5H ;; Section symbol - 
758 CP850_NA_UP_T1_K1_END: ;;
759 ;;
760 DW 0 ;; Size of xlat table - null table
761 ;;
762 CP850_NA_UP_K1_END: ;;
763 ;;
764;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
765;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
766;; CODE PAGE: 850
767;; STATE: Non-Alpha Upper case
768;; KEYBOARD TYPES: XT
769;; TABLE TYPE: Translate
770;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
771 ;;
772 DW CP850_NA_UP_K2_END-$ ;; length of state section
773 DB NON_ALPHA_UPPER ;; State ID
774 DW XT_KB ;; Keyboard Type
775 DB -1,-1 ;; error character = standalone accent
776 ;;
777 DW CP850_NA_UP_T1_K2_END-$ ;; Size of xlat table
778 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
779 DB 1 ;; number of scans
780 DB 41,0F5H ;; Section symbol - 
781 CP850_NA_UP_T1_K2_END: ;;
782 ;;
783 DW 0 ;; Size of xlat table - null table
784 ;;
785 CP850_NA_UP_K2_END: ;;
786 ;;
787;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
788 DW 0 ;; LAST STATE
789 ;;
790CP850_XLAT_END: ;;
791;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
792 ;;
793CODE ENDS ;;
794 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFIT141.ASM b/v4.0/src/DEV/KEYBOARD/KDFIT141.ASM
new file mode 100644
index 0000000..a01b8c9
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFIT141.ASM
@@ -0,0 +1,794 @@
1
2
3
4
5 PAGE ,132
6 TITLE DOS - Keyboard Definition File
7
8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9;; DOS - - NLS Support - Keyboard Defintion File
10;; (c) Copyright 1988 Microsoft
11;;
12;; This file contains the keyboard tables for Spanish.
13;;
14;; Linkage Instructions:
15;; Refer to KDF.ASM.
16;;
17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
18 ;;
19 INCLUDE KEYBSHAR.INC ;;
20 INCLUDE POSTEQU.INC ;;
21 INCLUDE KEYBMAC.INC ;;
22 ;;
23 PUBLIC IT2_LOGIC ;;
24 PUBLIC IT2_437_XLAT ;;
25 PUBLIC IT2_850_XLAT ;;
26 ;;
27CODE SEGMENT PUBLIC 'CODE' ;;
28 ASSUME CS:CODE,DS:CODE ;;
29 ;;
30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
31;; Standard translate table options are a liner search table
32;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
34 ;;
35STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
36 ;;
37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
38;;***************************************
39;; IT State Logic
40;;***************************************
41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
42 ;;
43 ;;
44IT2_LOGIC:
45
46 DW LOGIC_END-$ ;; length
47 ;;
48 DW 0 ;; special features
49 ;;
50 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
51 ;;
52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
53;; OPTIONS: If we find a scan match in
54;; an XLATT or SET_FLAG operation then
55;; exit from INT 9.
56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
57 ;;
58 OPTION EXIT_IF_FOUND ;;
59 ;;
60 ;;
61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
62;; Dead key definitions must come before
63;; dead key translations to handle
64;; dead key + dead key.
65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
66 ;;
67 IFF EITHER_ALT,NOT ;;
68 ANDF EITHER_CTL,NOT ;;
69 IFF EITHER_SHIFT ;;
70 SET_FLAG DEAD_UPPER ;;
71 ELSEF ;;
72 SET_FLAG DEAD_LOWER ;;
73 ENDIFF ;;
74 ENDIFF ;;
75 ;;
76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
77;; ACUTE ACCENT TRANSLATIONS
78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
79 ;;
80ACUTE_PROC: ;;
81 ;;
82 IFF ACUTE,NOT ;;
83 GOTO DIARESIS_PROC ;;
84 ENDIFF ;;
85 ;;
86 RESET_NLS ;;
87 IFF R_ALT_SHIFT,NOT ;;
88 XLATT ACUTE_SPACE ;;
89 ENDIFF ;;
90 IFF EITHER_CTL,NOT ;;
91 ANDF EITHER_ALT,NOT ;;
92 IFF EITHER_SHIFT ;;
93 IFF CAPS_STATE ;;
94 XLATT ACUTE_LOWER ;;
95 ELSEF ;;
96 XLATT ACUTE_UPPER ;;
97 ENDIFF ;;
98 ELSEF ;;
99 IFF CAPS_STATE ;;
100 XLATT ACUTE_UPPER ;;
101 ELSEF ;;
102 XLATT ACUTE_LOWER ;;
103 ENDIFF ;;
104 ENDIFF ;;
105 ENDIFF ;;
106 ;;
107INVALID_ACUTE: ;;
108 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
109 BEEP ;; failed or we are ina bad shift state.
110 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
111 ;; through to generate the second char.
112 ;; Note that the dead key flag will be
113 ;; reset before we get here.
114 ;;
115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
116;; DIARESIS ACCENT TRANSLATIONS
117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
118 ;;
119DIARESIS_PROC: ;;
120 ;;
121 IFF DIARESIS,NOT ;;
122 GOTO GRAVE_PROC ;;
123 ENDIFF ;;
124 ;;
125 RESET_NLS ;;
126 IFF R_ALT_SHIFT,NOT ;;
127 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
128 ENDIFF ;;
129 IFF EITHER_CTL,NOT ;;
130 ANDF EITHER_ALT,NOT ;;
131 IFF EITHER_SHIFT ;;
132 IFF CAPS_STATE ;;
133 XLATT DIARESIS_LOWER ;;
134 ELSEF ;;
135 XLATT DIARESIS_UPPER ;;
136 ENDIFF ;;
137 ELSEF ;;
138 IFF CAPS_STATE ;;
139 XLATT DIARESIS_UPPER ;;
140 ELSEF ;;
141 XLATT DIARESIS_LOWER ;;
142 ENDIFF ;;
143 ENDIFF ;;
144 ENDIFF ;;
145 ;;
146INVALID_DIARESIS: ;;
147 PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent
148 BEEP ;; Invalid dead key combo.
149 GOTO NON_DEAD ;;
150 ;;
151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
152;; GRAVE ACCENT TRANSLATIONS
153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
154 ;;
155GRAVE_PROC: ;;
156 ;;
157 IFF GRAVE,NOT ;;
158 GOTO CIRCUMFLEX_PROC ;;
159 ENDIFF ;;
160 ;;
161 RESET_NLS ;;
162 IFF R_ALT_SHIFT,NOT ;;
163 XLATT GRAVE_SPACE ;;
164 ENDIFF ;;
165 IFF EITHER_CTL,NOT ;;
166 ANDF EITHER_ALT,NOT ;;
167 IFF EITHER_SHIFT ;;
168 IFF CAPS_STATE ;;
169 XLATT GRAVE_LOWER ;;
170 ELSEF ;;
171 XLATT GRAVE_UPPER ;;
172 ENDIFF ;;
173 ELSEF ;;
174 IFF CAPS_STATE,NOT ;;
175 XLATT GRAVE_LOWER ;;
176 ELSEF ;;
177 XLATT GRAVE_UPPER ;;
178 ENDIFF ;;
179 ENDIFF ;;
180 ENDIFF ;;
181 ;;
182INVALID_GRAVE: ;;
183 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
184 BEEP ;; Invalid dead key combo.
185 GOTO NON_DEAD ;;
186 ;;
187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
188;; CIRCUMFLEX ACCENT TRANSLATIONS
189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
190 ;;
191CIRCUMFLEX_PROC: ;;
192 ;;
193 IFF CIRCUMFLEX,NOT ;;
194 GOTO NON_DEAD ;;
195 ENDIFF ;;
196 ;;
197 RESET_NLS ;;
198 IFF R_ALT_SHIFT,NOT ;;
199 XLATT CIRCUMFLEX_SPACE ;;
200 ENDIFF ;;
201 IFF EITHER_CTL,NOT ;;
202 ANDF EITHER_ALT,NOT ;;
203 IFF EITHER_SHIFT ;;
204 IFF CAPS_STATE ;;
205 XLATT CIRCUMFLEX_LOWER ;;
206 ELSEF ;;
207 XLATT CIRCUMFLEX_UPPER ;;
208 ENDIFF ;;
209 ELSEF ;;
210 IFF CAPS_STATE,NOT ;;
211 XLATT CIRCUMFLEX_LOWER ;;
212 ELSEF ;;
213 XLATT CIRCUMFLEX_UPPER ;;
214 ENDIFF ;;
215 ENDIFF ;;
216 ENDIFF ;;
217 ;;
218INVALID_CIRCUMFLEX: ;;
219 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
220 BEEP ;; Invalid dead key combo.
221 GOTO NON_DEAD ;;
222 ;;
223 ;;
224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
225;; Upper, lower and third shifts
226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
227 ;;
228NON_DEAD: ;;
229 ;;
230 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
231 ANDF LC_E0 ;; the "/" on the numeric pad of the
232 EXIT_STATE_LOGIC ;; G keyboard
233 ENDIFF ;;
234;;***BD ADDED FOR ALT, CTRL CASES ;;
235 IFF EITHER_CTL,NOT ;;
236 IFF ALT_SHIFT ;; ALT - case
237 ANDF R_ALT_SHIFT,NOT ;;
238 XLATT ALT_CASE ;;
239 ENDIFF ;;
240 ELSEF ;;
241 IFF EITHER_ALT,NOT ;; CTRL - case
242 XLATT CTRL_CASE ;;
243 ENDIFF ;;
244 ENDIFF ;;
245;;***BD END OF ADDITION
246 ;;
247 IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
248 ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
249 IFF EITHER_SHIFT ;; Numeric keys are not.
250;;***BD ADDED FOR NUMERIC PAD
251 IFF NUM_STATE,NOT ;;
252 XLATT NUMERIC_PAD ;;
253 ENDIFF ;;
254;;***BD END OF ADDITION
255 XLATT NON_ALPHA_UPPER ;;
256 IFF CAPS_STATE ;;
257 XLATT ALPHA_LOWER ;;
258 ELSEF ;;
259 XLATT ALPHA_UPPER ;;
260 ENDIFF ;;
261 ELSEF ;;
262;;***BD ADDED FOR NUMERIC PAD
263 IFF NUM_STATE ;;
264 XLATT NUMERIC_PAD ;;
265 ENDIFF ;;
266;;***BD END OF ADDITION
267 XLATT NON_ALPHA_LOWER ;;
268 IFF CAPS_STATE ;;
269 XLATT ALPHA_UPPER ;;
270 ELSEF ;;
271 XLATT ALPHA_LOWER ;;
272 ENDIFF ;;
273 ENDIFF ;;
274 ELSEF ;;
275 IFF EITHER_SHIFT,NOT ;;
276 IFKBD XT_KB+AT_KB ;;
277 IFF EITHER_CTL ;;
278 ANDF ALT_SHIFT ;;
279 XLATT THIRD_SHIFT ;;
280 ENDIFF ;;
281 ELSEF ;;
282 IFF EITHER_CTL,NOT ;;
283 ANDF R_ALT_SHIFT ;;
284 XLATT THIRD_SHIFT ;;
285 ENDIFF ;;
286 ENDIFF ;;
287 ENDIFF ;;
288 ENDIFF ;;
289 ;;
290 EXIT_STATE_LOGIC ;;
291 ;;
292LOGIC_END: ;;
293 ;;
294 ;;
295;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
296;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
297;;;***************************************
298;; IT Common Translate Section
299;; This section contains translations for the lower 128 characters
300;; only since these will never change from code page to code page.
301;; In addition the dead key "Set Flag" tables are here since the
302;; dead keys are on the same keytops for all code pages.
303;;***************************************
304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
305 ;;
306 PUBLIC IT2_COMMON_XLAT ;;
307IT2_COMMON_XLAT: ;;
308 ;;
309 DW COMMON_XLAT_END-$ ;; length of section
310 DW -1 ;; code page
311 ;;
312 ;;
313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
314;;***************************************
315;;***BD - ADDED FOR ALT CASE
316;;******************************
317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
318;; CODE PAGE: Common
319;; STATE: Alt Case
320;; KEYBOARD TYPES: All
321;; TABLE TYPE: Translate
322;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
323 ;;
324 DW COM_ALT_K1_END-$ ;; length of state section
325 DB ALT_CASE ;; State ID
326 DW ANY_KB ;; Keyboard Type
327 DB -1,-1 ;; Buffer entry for error character
328 ;;
329 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
330 DB TYPE_2_TAB ;; xlat options:
331 DB 0 ;; 3 number of entries
332;;***BD THIS ENTRY IS A TEST ENTRY
333;; DB 53,225,0 ;; TEST ENTRY
334;; DB 53,0,82H ;; valid alt -
335;; DB 12,-1,-1 ;; invalid alt -
336;; DB 13,-1,-1 ;; invalid alt =
337COM_ALT_K1_T1_END: ;;
338 ;;
339 DW 0 ;; Size of xlat table - null table
340 ;;
341COM_ALT_K1_END: ;;
342 ;;
343;;******************************
344;;***BD - ADDED FOR CTRL CASE
345;;******************************
346;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
347;; CODE PAGE: Common
348;; STATE: Ctrl Case
349;; KEYBOARD TYPES: G_KB+P12_KB+AT
350;; TABLE TYPE: Translate
351;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
352 ;;
353 DW COM_CTRL_K1_END-$ ;; length of state section
354 DB CTRL_CASE ;; State ID
355 DW G_KB+P12_KB+AT_KB ;; Keyboard Type
356 DB -1,-1 ;; Buffer entry for error character
357 ;;
358 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
359 DB TYPE_2_TAB ;; xlat options:
360 DB 2 ;; number of entries
361;;***BD THIS ENTRY IS A TEST ENTRY
362;; DB 53,226,0 ;; TEST ENTRY
363 DB 43,-1,-1 ;; invalid slash
364 DB 41,28,41 ;; valid slash
365COM_CTRL_K1_T1_END: ;;
366 ;;
367 DW 0 ;; Size of xlat table - null table
368 ;;
369COM_CTRL_K1_END: ;;
370 ;;
371;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
372;; CODE PAGE: Common
373;; STATE: Non-Alpha Lower Case
374;; KEYBOARD TYPES: G_KB+P12_KB
375;; TABLE TYPE: Translate
376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
377 ;;
378 DW COM_NA_LO_K1_END-$ ;; length of state section
379 DB NON_ALPHA_LOWER ;; State ID
380 DW G_KB+P12_KB ;; Keyboard Type
381 DB -1,-1 ;; Buffer entry for error character
382 ;;
383 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
384 DB STANDARD_TABLE ;; xlat options:
385 DB 10 ;; number of entries
386 DB 41,"\" ;; \
387 DB 12,"'" ;; '
388 DB 13,141 ;; grave i - ¡;
389 DB 27,'+' ;; +
390 DB 86,'<' ;; <
391 DB 53,'-' ;; -
392 DB 39,149 ;; grave o - •
393 DB 40,133 ;; grave a - …;
394 DB 43,151 ;; grave u - —;
395 DB 26,138 ;; grave e - Š;
396COM_NA_LO_K1_T1_END: ;;
397 ;;
398 DW 0 ;; Size of xlat table - null table
399 ;;
400COM_NA_LO_K1_END: ;;
401 ;;
402;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
403;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
404;; CODE PAGE: Common
405;; STATE: Non-Alpha Lower Case
406;; KEYBOARD TYPES: AT
407;; TABLE TYPE: Translate
408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
409 ;;
410 DW COM_NA_LO_K2_END-$ ;; length of state section
411 DB NON_ALPHA_LOWER ;; State ID
412 DW AT_KB ;; Keyboard Type
413 DB -1,-1 ;; Buffer entry for error character
414 ;;
415 DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table
416 DB STANDARD_TABLE ;; xlat options:
417 DB 9 ;; number of entries
418 DB 41,"<" ;; <
419 DB 12,"'" ;; '
420 DB 13,141 ;; grave i - ¡;
421 DB 27,'+' ;; +
422 DB 53,'-' ;; -
423 DB 39,149 ;; grave o - •
424 DB 40,133 ;; grave a - …;
425 DB 43,151 ;; grave u - —;
426 DB 26,138 ;; grave e - Š;
427COM_NA_LO_K2_T1_END: ;;
428 ;;
429 DW 0 ;; Size of xlat table - null table
430 ;;
431COM_NA_LO_K2_END: ;;
432 ;;
433;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
435;; CODE PAGE: Common
436;; STATE: Non-Alpha Lower Case
437;; KEYBOARD TYPES: XT +
438;; TABLE TYPE: Translate
439;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
440 ;;
441 DW COM_NA_LO_K3_END-$ ;; length of state section
442 DB NON_ALPHA_LOWER ;; State ID
443 DW XT_KB ;; Keyboard Type
444 DB -1,-1 ;; Buffer entry for error character
445 ;;
446 DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table
447 DB STANDARD_TABLE ;; xlat options:
448 DB 9 ;; number of entries
449 DB 12,"'" ;; '
450 DB 13,141 ;; grave i - ¡;
451 DB 27,'+' ;; +
452 DB 43,'<' ;; <
453 DB 53,'-' ;; -
454 DB 39,149 ;; grave o - •
455 DB 40,133 ;; grave a - …;
456 DB 41,151 ;; grave u - —;
457 DB 26,138 ;; grave e - Š;
458COM_NA_LO_K3_T1_END: ;;
459 ;;
460 DW 0 ;; Size of xlat table - null table
461 ;;
462COM_NA_LO_K3_END: ;;
463 ;;
464;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
465;; CODE PAGE: Common
466;; STATE: Non-Alpha Upper Case
467;; KEYBOARD TYPES: G_KB+P12
468;; TABLE TYPE: Translate
469;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
470 ;;
471 DW COM_NA_UP_K1_END-$ ;; length of state section
472 DB NON_ALPHA_UPPER ;; State ID
473 DW G_KB+P12_KB ;; Keyboard Type
474 DB -1,-1 ;; Buffer entry for error character
475 ;;
476 DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table
477 DB STANDARD_TABLE ;; xlat options:
478 DB 18 ;; number of entries
479 DB 41,07CH ;; Solid vertical bar - |
480 DB 3,'"' ;;
481 DB 4,'œ' ;;
482 DB 7,'&' ;;
483 DB 8,'/' ;;
484 DB 9,'(' ;;
485 DB 10,')' ;;
486 DB 11,'=' ;;
487 DB 12,'?' ;;
488 DB 13,'^' ;;
489 DB 26,130 ;; acute e - ‚;
490 DB 39,135 ;; c - cedilla - ‡
491 DB 27,'*' ;;
492 DB 40,0F8H ;; ø - degree symbol
493 DB 86,'>' ;;
494 DB 51,';' ;;
495 DB 52,':' ;;
496 DB 53,'_' ;;
497 ;;
498COM_NA_UP_K1_T1_END: ;;
499 ;;
500 DW 0 ;; Size of xlat table - null table
501 ;;
502COM_NA_UP_K1_END: ;;
503 ;;
504 ;;
505;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
506;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
507;; CODE PAGE: Common
508;; STATE: Non-Alpha Upper Case
509;; KEYBOARD TYPES: AT
510;; TABLE TYPE: Translate
511;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
512 ;;
513 DW COM_NA_UP_K2_END-$ ;; length of state section
514 DB NON_ALPHA_UPPER ;; State ID
515 DW AT_KB ;; Keyboard Type
516 DB -1,-1 ;; Buffer entry for error character
517 ;;
518 DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table
519 DB STANDARD_TABLE ;; xlat options:
520 DB 18 ;; number of entries
521 DB 41,'>' ;; >
522 DB 3,'"' ;;
523 DB 4,'œ' ;;
524 DB 7,'&' ;;
525 DB 8,'/' ;;
526 DB 9,'(' ;;
527 DB 10,')' ;;
528 DB 11,'=' ;;
529 DB 12,'?' ;;
530 DB 13,'^' ;;
531 DB 26,130 ;; acute e - ‚;
532 DB 39,'@' ;; @ AT sign replaces c - cedilla - ‡
533 DB 27,'*' ;;
534 DB 40,'#' ;; # sign replaces ø - degree symbol
535 DB 86,'>' ;;
536 DB 51,';' ;;
537 DB 52,':' ;;
538 DB 53,'_' ;;
539 ;;
540COM_NA_UP_K2_T1_END: ;;
541 ;;
542 DW 0 ;; Size of xlat table - null table
543 ;;
544COM_NA_UP_K2_END: ;;
545 ;;
546 ;;
547;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
548;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
549;; CODE PAGE: Common
550;; STATE: Non-Alpha Upper Case
551;; KEYBOARD TYPES: XT +
552;; TABLE TYPE: Translate
553;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
554 ;;
555 DW COM_NA_UP_K3_END-$ ;; length of state section
556 DB NON_ALPHA_UPPER ;; State ID
557 DW XT_KB ;; Keyboard Type
558 DB -1,-1 ;; Buffer entry for error character
559 ;;
560 DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table
561 DB STANDARD_TABLE ;; xlat options:
562 DB 17 ;; number of entries
563 DB 3,'"' ;;
564 DB 4,'œ' ;;
565 DB 7,'&' ;;
566 DB 8,'/' ;;
567 DB 9,'(' ;;
568 DB 10,')' ;;
569 DB 11,'=' ;;
570 DB 12,'?' ;;
571 DB 13,'^' ;;
572 DB 26,130 ;; acute e - ‚;
573 DB 39,'@' ;; @ AT sign replaces c - cedilla - ‡
574 DB 27,'*' ;;
575 DB 40,'#' ;; # sign replaces ø - degree symbol
576 DB 43,'>' ;;
577 DB 51,';' ;;
578 DB 52,':' ;;
579 DB 53,'_' ;;
580 ;;
581COM_NA_UP_K3_T1_END: ;;
582 ;;
583 DW 0 ;; Size of xlat table - null table
584 ;;
585COM_NA_UP_K3_END: ;;
586 ;;
587 ;;
588;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
589;; CODE PAGE: Common
590;; STATE: Third Shift
591;; KEYBOARD TYPES: G_KB+P12_KB
592;; TABLE TYPE: Translate
593;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
594 ;;
595 DW COM_THIRD_K1_END-$ ;; length of state section
596 DB THIRD_SHIFT ;; State ID
597 DW G_KB+P12_KB ;; Keyboard Type
598 DB -1,-1 ;; Buffer entry for error character
599 ;;
600 DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table
601 DB STANDARD_TABLE ;; xlat options:
602 DB 4 ;; number of entries
603 DB 26,'[' ;;
604 DB 27,']' ;;
605 DB 39,'@' ;;
606 DB 40,'#' ;;
607COM_THIRD_K1_T1_END: ;;
608 ;;
609 DW 0 ;; Last xlat table
610COM_THIRD_K1_END: ;;
611 ;;
612;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
613;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
614;; CODE PAGE: Common
615;; STATE: Third Shift
616;; KEYBOARD TYPES: AT
617;; TABLE TYPE: Translate
618;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
619 ;;
620 DW COM_THIRD_K2_END-$ ;; length of state section
621 DB THIRD_SHIFT ;; State ID
622 DW AT_KB ;; Keyboard Type
623 DB -1,-1 ;; Buffer entry for error character
624 ;;
625 DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table
626 DB STANDARD_TABLE ;; xlat options:
627 DB 3 ;; number of entries
628 DB 41,'\' ;;
629 DB 26,'[' ;;
630 DB 27,']' ;;
631COM_THIRD_K2_T1_END: ;;
632 ;;
633 DW 0 ;; Last xlat table
634COM_THIRD_K2_END: ;;
635 ;;
636;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
637;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
638;; CODE PAGE: Common
639;; STATE: Third Shift
640;; KEYBOARD TYPES: XT +
641;; TABLE TYPE: Translate
642;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
643 ;;
644 DW COM_THIRD_K3_END-$ ;; length of state section
645 DB THIRD_SHIFT ;; State ID
646 DW XT_KB ;; Keyboard Type
647 DB -1,-1 ;; Buffer entry for error character
648 ;;
649 DW COM_THIRD_K3_T1_END-$ ;; Size of xlat table
650 DB STANDARD_TABLE ;; xlat options:
651 DB 3 ;; number of entries
652 DB 43,'\' ;;
653 DB 26,'[' ;;
654 DB 27,']' ;;
655COM_THIRD_K3_T1_END: ;;
656 ;;
657 DW 0 ;; Last xlat table
658COM_THIRD_K3_END: ;;
659 ;;
660;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
661 DW 0 ;; Last State
662COMMON_XLAT_END: ;;
663 ;;
664 ;;
665 ;;
666;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
667;;***************************************
668;; IT Specific Translate Section for 437
669;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE.
670;;***************************************
671;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
672 ;;
673 PUBLIC IT2_437_XLAT ;;
674IT2_437_XLAT: ;;
675 ;;
676 DW CP437_XLAT_END-$ ;; length of section
677 DW 437 ;;
678;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
679;; CODE PAGE: 437
680;; STATE: Non-Alpha Upper case
681;; KEYBOARD TYPES: G_KB+P12+AT
682;; TABLE TYPE: Translate
683;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
684 ;;
685 DW CP437_NA_UP_K1_END-$ ;; length of state section
686 DB NON_ALPHA_UPPER ;; State ID
687 DW G_KB+P12_KB+AT_KB ;; Keyboard Type
688 DB -1,-1 ;; error character = standalone accent
689 ;;
690 DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table
691 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
692 DB 1 ;; number of scans
693 DB 43,015H ;; Section symbol - 
694 CP437_NA_UP_T1_K1_END: ;;
695 ;;
696 DW 0 ;; Size of xlat table - null table
697 ;;
698 CP437_NA_UP_K1_END: ;;
699 ;;
700;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
701;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
702;; CODE PAGE: 437
703;; STATE: Non-Alpha Upper case
704;; KEYBOARD TYPES: XT +
705;; TABLE TYPE: Translate
706;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
707 ;;
708 DW CP437_NA_UP_K2_END-$ ;; length of state section
709 DB NON_ALPHA_UPPER ;; State ID
710 DW XT_KB ;; Keyboard Type
711 DB -1,-1 ;; error character = standalone accent
712 ;;
713 DW CP437_NA_UP_T1_K2_END-$ ;; Size of xlat table
714 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
715 DB 1 ;; number of scans
716 DB 41,015H ;; Section symbol - 
717 CP437_NA_UP_T1_K2_END: ;;
718 ;;
719 DW 0 ;; Size of xlat table - null table
720 ;;
721 CP437_NA_UP_K2_END: ;;
722 ;;
723;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
724 DW 0 ;; LAST STATE
725 ;;
726CP437_XLAT_END: ;;
727 ;;
728;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
729;;***************************************
730;; IT Specific Translate Section for 850
731;;***************************************
732;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
733 ;;
734 PUBLIC IT2_850_XLAT ;;
735IT2_850_XLAT: ;;
736 ;;
737 DW CP850_XLAT_END-$ ;; length of section
738 DW 850 ;;
739 ;;
740 ;;
741;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
742;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
743;; CODE PAGE: 850
744;; STATE: Non-Alpha Upper case
745;; KEYBOARD TYPES: G_KB+P12+AT
746;; TABLE TYPE: Translate
747;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
748 ;;
749 DW CP850_NA_UP_K1_END-$ ;; length of state section
750 DB NON_ALPHA_UPPER ;; State ID
751 DW G_KB+P12_KB+AT_KB ;; Keyboard Type
752 DB -1,-1 ;; error character = standalone accent
753 ;;
754 DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table
755 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
756 DB 1 ;; number of scans
757 DB 43,0F5H ;; Section symbol - 
758 CP850_NA_UP_T1_K1_END: ;;
759 ;;
760 DW 0 ;; Size of xlat table - null table
761 ;;
762 CP850_NA_UP_K1_END: ;;
763 ;;
764;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
765;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
766;; CODE PAGE: 850
767;; STATE: Non-Alpha Upper case
768;; KEYBOARD TYPES: XT
769;; TABLE TYPE: Translate
770;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
771 ;;
772 DW CP850_NA_UP_K2_END-$ ;; length of state section
773 DB NON_ALPHA_UPPER ;; State ID
774 DW XT_KB ;; Keyboard Type
775 DB -1,-1 ;; error character = standalone accent
776 ;;
777 DW CP850_NA_UP_T1_K2_END-$ ;; Size of xlat table
778 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
779 DB 1 ;; number of scans
780 DB 41,0F5H ;; Section symbol - 
781 CP850_NA_UP_T1_K2_END: ;;
782 ;;
783 DW 0 ;; Size of xlat table - null table
784 ;;
785 CP850_NA_UP_K2_END: ;;
786 ;;
787;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
788 DW 0 ;; LAST STATE
789 ;;
790CP850_XLAT_END: ;;
791;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
792 ;;
793CODE ENDS ;;
794 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFIT142.ASM b/v4.0/src/DEV/KEYBOARD/KDFIT142.ASM
new file mode 100644
index 0000000..7b07247
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFIT142.ASM
@@ -0,0 +1,864 @@
1
2
3
4
5 PAGE ,132
6 TITLE DOS - Keyboard Definition File
7
8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9;; DOS - - NLS Support - Keyboard Defintion File
10;; (c) Copyright 1988 Microsoft
11;;
12;; This file contains the keyboard tables for Spanish.
13;;
14;; Linkage Instructions:
15;; Refer to KDF.ASM.
16;;
17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
18 ;;
19 INCLUDE KEYBSHAR.INC ;; ;AN000;
20 INCLUDE POSTEQU.INC ;; ;AN000;
21 INCLUDE KEYBMAC.INC ;; ;AN000;
22 ;; ;AN000;
23 PUBLIC IT1_LOGIC ;; ;AN000;
24 PUBLIC IT1_437_XLAT ;; ;AN000;
25 PUBLIC IT1_850_XLAT ;; ;AN000;
26 ;; ;AN000;
27CODE SEGMENT PUBLIC 'CODE' ;; ;AN000;
28 ASSUME CS:CODE,DS:CODE ;; ;AN000;
29 ;; ;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;
34 ;; ;AN000;
35STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY ;AN000;
36 ;; ;AN000;
37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
38;;*************************************** ;AN000;
39;; IT State Logic ;AN000;
40;;*************************************** ;AN000;
41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
42 ;; ;AN000;
43 ;; ;AN000;
44IT1_LOGIC: ;AN000;
45 ;AN000;
46 DW LOGIC_END-$ ;; length ;AN000;
47 ;; ;AN000;
48 DW 0 ;; special features ;AN000;
49 ;; ;AN000;
50 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE ;AN000;
51 ;; ;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;
57 ;; ;AN000;
58 OPTION EXIT_IF_FOUND ;; ;AN000;
59 ;; ;AN000;
60 ;; ;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;
66 ;; ;AN000;
67 IFF EITHER_ALT,NOT ;; ;AN000;
68 ANDF EITHER_CTL,NOT ;; ;AN000;
69 IFF EITHER_SHIFT ;; ;AN000;
70 SET_FLAG DEAD_UPPER ;; ;AN000;
71 ELSEF ;; ;AN000;
72 SET_FLAG DEAD_LOWER ;; ;AN000;
73 ENDIFF ;; ;AN000;
74 ENDIFF ;; ;AN000;
75 ;; ;AN000;
76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
77;; ACUTE ACCENT TRANSLATIONS ;AN000;
78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
79 ;; ;AN000;
80ACUTE_PROC: ;; ;AN000;
81 ;; ;AN000;
82 IFF ACUTE,NOT ;; ;AN000;
83 GOTO DIARESIS_PROC ;; ;AN000;
84 ENDIFF ;; ;AN000;
85 ;; ;AN000;
86 RESET_NLS ;; ;AN000;
87 IFF R_ALT_SHIFT,NOT ;; ;AN000;
88 XLATT ACUTE_SPACE ;; ;AN000;
89 ENDIFF ;; ;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;
95 ELSEF ;; ;AN000;
96 XLATT ACUTE_UPPER ;; ;AN000;
97 ENDIFF ;; ;AN000;
98 ELSEF ;; ;AN000;
99 IFF CAPS_STATE ;; ;AN000;
100 XLATT ACUTE_UPPER ;; ;AN000;
101 ELSEF ;; ;AN000;
102 XLATT ACUTE_LOWER ;; ;AN000;
103 ENDIFF ;; ;AN000;
104 ENDIFF ;; ;AN000;
105 ENDIFF ;; ;AN000;
106 ;; ;AN000;
107INVALID_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;
114 ;; ;AN000;
115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
116;; DIARESIS ACCENT TRANSLATIONS ;AN000;
117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
118 ;; ;AN000;
119DIARESIS_PROC: ;; ;AN000;
120 ;; ;AN000;
121 IFF DIARESIS,NOT ;; ;AN000;
122 GOTO GRAVE_PROC ;; ;AN000;
123 ENDIFF ;; ;AN000;
124 ;; ;AN000;
125 RESET_NLS ;; ;AN000;
126 IFF R_ALT_SHIFT,NOT ;; ;AN000;
127 XLATT DIARESIS_SPACE ;; exist for 437 so beep for ;AN000;
128 ENDIFF ;; ;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;
134 ELSEF ;; ;AN000;
135 XLATT DIARESIS_UPPER ;; ;AN000;
136 ENDIFF ;; ;AN000;
137 ELSEF ;; ;AN000;
138 IFF CAPS_STATE ;; ;AN000;
139 XLATT DIARESIS_UPPER ;; ;AN000;
140 ELSEF ;; ;AN000;
141 XLATT DIARESIS_LOWER ;; ;AN000;
142 ENDIFF ;; ;AN000;
143 ENDIFF ;; ;AN000;
144 ENDIFF ;; ;AN000;
145 ;; ;AN000;
146INVALID_DIARESIS: ;; ;AN000;
147 PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent ;AN000;
148 BEEP ;; Invalid dead key combo. ;AN000;
149 GOTO NON_DEAD ;; ;AN000;
150 ;; ;AN000;
151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
152;; GRAVE ACCENT TRANSLATIONS ;AN000;
153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
154 ;; ;AN000;
155GRAVE_PROC: ;; ;AN000;
156 ;; ;AN000;
157 IFF GRAVE,NOT ;; ;AN000;
158 GOTO CIRCUMFLEX_PROC ;; ;AN000;
159 ENDIFF ;; ;AN000;
160 ;; ;AN000;
161 RESET_NLS ;; ;AN000;
162 IFF R_ALT_SHIFT,NOT ;; ;AN000;
163 XLATT GRAVE_SPACE ;; ;AN000;
164 ENDIFF ;; ;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;
170 ELSEF ;; ;AN000;
171 XLATT GRAVE_UPPER ;; ;AN000;
172 ENDIFF ;; ;AN000;
173 ELSEF ;; ;AN000;
174 IFF CAPS_STATE,NOT ;; ;AN000;
175 XLATT GRAVE_LOWER ;; ;AN000;
176 ELSEF ;; ;AN000;
177 XLATT GRAVE_UPPER ;; ;AN000;
178 ENDIFF ;; ;AN000;
179 ENDIFF ;; ;AN000;
180 ENDIFF ;; ;AN000;
181 ;; ;AN000;
182INVALID_GRAVE: ;; ;AN000;
183 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent ;AN000;
184 BEEP ;; Invalid dead key combo. ;AN000;
185 GOTO NON_DEAD ;; ;AN000;
186 ;; ;AN000;
187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
188;; CIRCUMFLEX ACCENT TRANSLATIONS ;AN000;
189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
190 ;; ;AN000;
191CIRCUMFLEX_PROC: ;; ;AN000;
192 ;; ;AN000;
193 IFF CIRCUMFLEX,NOT ;; ;AN000;
194 GOTO NON_DEAD ;; ;AN000;
195 ENDIFF ;; ;AN000;
196 ;; ;AN000;
197 RESET_NLS ;; ;AN000;
198 IFF R_ALT_SHIFT,NOT ;; ;AN000;
199 XLATT CIRCUMFLEX_SPACE ;; ;AN000;
200 ENDIFF ;; ;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;
206 ELSEF ;; ;AN000;
207 XLATT CIRCUMFLEX_UPPER ;; ;AN000;
208 ENDIFF ;; ;AN000;
209 ELSEF ;; ;AN000;
210 IFF CAPS_STATE,NOT ;; ;AN000;
211 XLATT CIRCUMFLEX_LOWER ;; ;AN000;
212 ELSEF ;; ;AN000;
213 XLATT CIRCUMFLEX_UPPER ;; ;AN000;
214 ENDIFF ;; ;AN000;
215 ENDIFF ;; ;AN000;
216 ENDIFF ;; ;AN000;
217 ;; ;AN000;
218INVALID_CIRCUMFLEX: ;; ;AN000;
219 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent ;AN000;
220 BEEP ;; Invalid dead key combo. ;AN000;
221 GOTO NON_DEAD ;; ;AN000;
222 ;; ;AN000;
223 ;; ;AN000;
224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
225;; Upper, lower and third shifts ;AN000;
226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
227 ;; ;AN000;
228NON_DEAD: ;; ;AN000;
229 ;; ;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;
233 ENDIFF ;; ;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;
239 ENDIFF ;; ;AN000;
240 ELSEF ;; ;AN000;
241 IFF EITHER_ALT,NOT ;; CTRL - case ;AN000;
242 XLATT CTRL_CASE ;; ;AN000;
243 ENDIFF ;; ;AN000;
244 ENDIFF ;; ;AN000;
245;;***BD END OF ADDITION ;AN000;
246 ;; ;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;
253 ENDIFF ;; ;AN000;
254;;***BD END OF ADDITION ;AN000;
255 XLATT NON_ALPHA_UPPER ;; ;AN000;
256 IFF CAPS_STATE ;; ;AN000;
257 XLATT ALPHA_LOWER ;; ;AN000;
258 ELSEF ;; ;AN000;
259 XLATT ALPHA_UPPER ;; ;AN000;
260 ENDIFF ;; ;AN000;
261 ELSEF ;; ;AN000;
262;;***BD ADDED FOR NUMERIC PAD ;AN000;
263 IFF NUM_STATE ;; ;AN000;
264 XLATT NUMERIC_PAD ;; ;AN000;
265 ENDIFF ;; ;AN000;
266;;***BD END OF ADDITION ;AN000;
267 XLATT NON_ALPHA_LOWER ;; ;AN000;
268 IFF CAPS_STATE ;; ;AN000;
269 XLATT ALPHA_UPPER ;; ;AN000;
270 ELSEF ;; ;AN000;
271 XLATT ALPHA_LOWER ;; ;AN000;
272 ENDIFF ;; ;AN000;
273 ENDIFF ;; ;AN000;
274 ELSEF ;; ;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;
280 ENDIFF ;; ;AN000;
281 ELSEF ;; ;AN000;
282 IFF EITHER_CTL,NOT ;; ;AN000;
283 ANDF R_ALT_SHIFT ;; ;AN000;
284 XLATT THIRD_SHIFT ;; ;AN000;
285 ENDIFF ;; ;AN000;
286 ENDIFF ;; ;AN000;
287 ENDIFF ;; ;AN000;
288 ENDIFF ;; ;AN000;
289 ;; ;AN000;
290 EXIT_STATE_LOGIC ;; ;AN000;
291 ;; ;AN000;
292LOGIC_END: ;; ;AN000;
293 ;; ;AN000;
294 ;; ;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;
305 ;; ;AN000;
306 PUBLIC IT1_COMMON_XLAT ;; ;AN000;
307IT1_COMMON_XLAT: ;; ;AN000;
308 ;; ;AN000;
309 DW COMMON_XLAT_END-$ ;; length of section ;AN000;
310 DW -1 ;; code page ;AN000;
311 ;; ;AN000;
312 ;; ;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;
320;; ;; ;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;
329;; ;; ;AN000;
330;;COM_DK_UP_K1_END: ;; ;AN000;
331;; ;; ;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;
342 ;; ;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;
347 ;; ;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;
356COM_ALT_K1_T1_END: ;; ;AN000;
357 ;; ;AN000;
358 DW 0 ;; Size of xlat table - null table ;AN000;
359 ;; ;AN000;
360COM_ALT_K1_END: ;; ;AN000;
361 ;; ;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;
371 ;; ;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;
376 ;; ;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;
384COM_CTRL_K1_T1_END: ;; ;AN000;
385 ;; ;AN000;
386 DW 0 ;; Size of xlat table - null table ;AN000;
387 ;; ;AN000;
388COM_CTRL_K1_END: ;; ;AN000;
389 ;; ;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;
397 ;; ;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;
402 ;; ;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;
407COM_PAD_K1_T1_END: ;; ;AN000;
408 ;; ;AN000;
409 DW 0 ;; Size of xlat table - null table ;AN000;
410 ;; ;AN000;
411COM_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;
418 ;; ;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;
423 ;; ;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 - • ;AN000;
434 DB 40,133 ;; grave a - …; ;AN000;
435 DB 43,151 ;; grave u - —; ;AN000;
436 DB 26,138 ;; grave e - Š; ;AN000;
437COM_NA_LO_K1_T1_END: ;; ;AN000;
438 ;; ;AN000;
439 DW 0 ;; Size of xlat table - null table ;AN000;
440 ;; ;AN000;
441COM_NA_LO_K1_END: ;; ;AN000;
442 ;; ;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;
450 ;; ;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;
455 ;; ;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 - • ;AN000;
465 DB 40,133 ;; grave a - …; ;AN000;
466 DB 43,151 ;; grave u - —; ;AN000;
467 DB 26,138 ;; grave e - Š; ;AN000;
468COM_NA_LO_K2_T1_END: ;; ;AN000;
469 ;; ;AN000;
470 DW 0 ;; Size of xlat table - null table ;AN000;
471 ;; ;AN000;
472COM_NA_LO_K2_END: ;; ;AN000;
473 ;; ;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;
481 ;; ;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;
486 ;; ;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 - • ;AN000;
496 DB 40,133 ;; grave a - …; ;AN000;
497 DB 41,151 ;; grave u - —; ;AN000;
498 DB 26,138 ;; grave e - Š; ;AN000;
499COM_NA_LO_K3_T1_END: ;; ;AN000;
500 ;; ;AN000;
501 DW 0 ;; Size of xlat table - null table ;AN000;
502 ;; ;AN000;
503COM_NA_LO_K3_END: ;; ;AN000;
504 ;; ;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;
511 ;; ;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;
516 ;; ;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;
521 DB 3,'"' ;; ;AN000;
522 DB 4,'œ' ;; ;AN000;
523 DB 7,'&' ;; ;AN000;
524 DB 8,'/' ;; ;AN000;
525 DB 9,'(' ;; ;AN000;
526 DB 10,')' ;; ;AN000;
527 DB 11,'=' ;; ;AN000;
528 DB 12,'?' ;; ;AN000;
529 DB 13,'^' ;; ;AN000;
530 DB 26,130 ;; acute e - ‚; ;AN000;
531 DB 39,135 ;; c - cedilla - ‡ ;AN000;
532 DB 27,'*' ;; ;AN000;
533 DB 40,0F8H ;; ø - degree symbol ;AN000;
534 DB 86,'>' ;; ;AN000;
535 DB 51,';' ;; ;AN000;
536 DB 52,':' ;; ;AN000;
537 DB 53,'_' ;; ;AN000;
538 ;; ;AN000;
539COM_NA_UP_K1_T1_END: ;; ;AN000;
540 ;; ;AN000;
541 DW 0 ;; Size of xlat table - null table ;AN000;
542 ;; ;AN000;
543COM_NA_UP_K1_END: ;; ;AN000;
544 ;; ;AN000;
545 ;; ;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;
553 ;; ;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;
558 ;; ;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;
563 DB 3,'"' ;; ;AN000;
564 DB 4,'œ' ;; ;AN000;
565 DB 7,'&' ;; ;AN000;
566 DB 8,'/' ;; ;AN000;
567 DB 9,'(' ;; ;AN000;
568 DB 10,')' ;; ;AN000;
569 DB 11,'=' ;; ;AN000;
570 DB 12,'?' ;; ;AN000;
571 DB 13,'^' ;; ;AN000;
572 DB 26,130 ;; acute e - ‚; ;AN000;
573 DB 39,'@' ;; @ AT sign replaces c - cedilla - ‡ ;AN000;
574 DB 27,'*' ;; ;AN000;
575 DB 40,'#' ;; # sign replaces ø - degree symbol ;AN000;
576 DB 86,'>' ;; ;AN000;
577 DB 51,';' ;; ;AN000;
578 DB 52,':' ;; ;AN000;
579 DB 53,'_' ;; ;AN000;
580 ;; ;AN000;
581COM_NA_UP_K2_T1_END: ;; ;AN000;
582 ;; ;AN000;
583 DW 0 ;; Size of xlat table - null table ;AN000;
584 ;; ;AN000;
585COM_NA_UP_K2_END: ;; ;AN000;
586 ;; ;AN000;
587 ;; ;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;
595 ;; ;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;
600 ;; ;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;
604 DB 3,'"' ;; ;AN000;
605 DB 4,'œ' ;; ;AN000;
606 DB 7,'&' ;; ;AN000;
607 DB 8,'/' ;; ;AN000;
608 DB 9,'(' ;; ;AN000;
609 DB 10,')' ;; ;AN000;
610 DB 11,'=' ;; ;AN000;
611 DB 12,'?' ;; ;AN000;
612 DB 13,'^' ;; ;AN000;
613 DB 26,130 ;; acute e - ‚; ;AN000;
614 DB 39,'@' ;; @ AT sign replaces c - cedilla - ‡ ;AN000;
615 DB 27,'*' ;; ;AN000;
616 DB 40,'#' ;; # sign replaces ø - degree symbol ;AN000;
617 DB 43,'>' ;; ;AN000;
618 DB 51,';' ;; ;AN000;
619 DB 52,':' ;; ;AN000;
620 DB 53,'_' ;; ;AN000;
621 ;; ;AN000;
622COM_NA_UP_K3_T1_END: ;; ;AN000;
623 ;; ;AN000;
624 DW 0 ;; Size of xlat table - null table ;AN000;
625 ;; ;AN000;
626COM_NA_UP_K3_END: ;; ;AN000;
627 ;; ;AN000;
628 ;; ;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;
635 ;; ;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;
640 ;; ;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;
644 DB 4,'#' ;; ;AN000;
645 DB 8,'{' ;; ;AN000;
646 DB 9,'[' ;; ;AN000;
647 DB 10,']' ;; ;AN000;
648 DB 11,'}' ;; ;AN000;
649 DB 16,'@' ;; ;AN000;
650 DB 27,'~' ;; ;AN000;
651 DB 43,"`" ;; grave symbol or closing single quote ;AN000;
652COM_THIRD_K1_T1_END: ;; codepoint 60h ;AN000;
653 ;; ;AN000;
654 DW 0 ;; Last xlat table ;AN000;
655COM_THIRD_K1_END: ;; ;AN000;
656 ;; ;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;
664 ;; ;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;
669 ;; ;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;
673 DB 26,'[' ;; ;AN000;
674 DB 27,']' ;; ;AN000;
675 DB 39,'@' ;; ;AN000;
676 DB 40,'#' ;; ;AN000;
677COM_THIRD_PK1_T1_END: ;; ;AN000;
678 ;; ;AN000;
679 DW 0 ;; Last xlat table ;AN000;
680COM_THIRD_PK1_END: ;; ;AN000;
681 ;; ;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;
689 ;; ;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;
694 ;; ;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;
698 DB 41,'\' ;; ;AN000;
699 DB 26,'[' ;; ;AN000;
700 DB 27,']' ;; ;AN000;
701COM_THIRD_K2_T1_END: ;; ;AN000;
702 ;; ;AN000;
703 DW 0 ;; Last xlat table ;AN000;
704COM_THIRD_K2_END: ;; ;AN000;
705 ;; ;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;
713 ;; ;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;
718 ;; ;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;
722 DB 43,'\' ;; ;AN000;
723 DB 26,'[' ;; ;AN000;
724 DB 27,']' ;; ;AN000;
725COM_THIRD_K3_T1_END: ;; ;AN000;
726 ;; ;AN000;
727 DW 0 ;; Last xlat table ;AN000;
728COM_THIRD_K3_END: ;; ;AN000;
729 ;; ;AN000;
730;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
731 DW 0 ;; Last State ;AN000;
732COMMON_XLAT_END: ;; ;AN000;
733 ;; ;AN000;
734 ;; ;AN000;
735 ;; ;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;
742 ;; ;AN000;
743 PUBLIC IT1_437_XLAT ;; ;AN000;
744IT1_437_XLAT: ;; ;AN000;
745 ;; ;AN000;
746 DW CP437_XLAT_END-$ ;; length of section ;AN000;
747 DW 437 ;; ;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;
754 ;; ;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;
759 ;; ;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 -  ;AN000;
764 CP437_NA_UP_T1_K1_END: ;; ;AN000;
765 ;; ;AN000;
766 DW 0 ;; Size of xlat table - null table ;AN000;
767 ;; ;AN000;
768 CP437_NA_UP_K1_END: ;; ;AN000;
769 ;; ;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;
777 ;; ;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;
782 ;; ;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 -  ;AN000;
787 CP437_NA_UP_T1_K2_END: ;; ;AN000;
788 ;; ;AN000;
789 DW 0 ;; Size of xlat table - null table ;AN000;
790 ;; ;AN000;
791 CP437_NA_UP_K2_END: ;; ;AN000;
792 ;; ;AN000;
793;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
794 DW 0 ;; LAST STATE ;AN000;
795 ;; ;AN000;
796CP437_XLAT_END: ;; ;AN000;
797 ;; ;AN000;
798;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
799;;*************************************** ;AN000;
800;; IT Specific Translate Section for 850 ;AN000;
801;;*************************************** ;AN000;
802;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
803 ;; ;AN000;
804 PUBLIC IT1_850_XLAT ;; ;AN000;
805IT1_850_XLAT: ;; ;AN000;
806 ;; ;AN000;
807 DW CP850_XLAT_END-$ ;; length of section ;AN000;
808 DW 850 ;; ;AN000;
809 ;; ;AN000;
810 ;; ;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;
818 ;; ;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;
823 ;; ;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 -  ;AN000;
828 CP850_NA_UP_T1_K1_END: ;; ;AN000;
829 ;; ;AN000;
830 DW 0 ;; Size of xlat table - null table ;AN000;
831 ;; ;AN000;
832 CP850_NA_UP_K1_END: ;; ;AN000;
833 ;; ;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;
841 ;; ;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;
846 ;; ;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 -  ;AN000;
851 CP850_NA_UP_T1_K2_END: ;; ;AN000;
852 ;; ;AN000;
853 DW 0 ;; Size of xlat table - null table ;AN000;
854 ;; ;AN000;
855 CP850_NA_UP_K2_END: ;; ;AN000;
856 ;; ;AN000;
857;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
858 DW 0 ;; LAST STATE ;AN000;
859 ;; ;AN000;
860CP850_XLAT_END: ;; ;AN000;
861;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
862 ;; ;AN000;
863CODE ENDS ;; ;AN000;
864 END ;; ;AN000;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFLA.ASM b/v4.0/src/DEV/KEYBOARD/KDFLA.ASM
new file mode 100644
index 0000000..0d7a692
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFLA.ASM
@@ -0,0 +1,1322 @@
1PAGE ,132
2TITLE DOS - LAD Keyboard Definition File
3;; LATEST CHANGE ALT & CTL
4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5;
6; DOS - - LAD Keyboard Support - Keyboard Defintion File
7; (C) Copyright 1988 Microsoft
8;
9; This file contains the keyboard tables for Latin American.
10;
11; The LAD keyboard support is based on the following:
12; PC - 246 (Spanish)
13; PC/AT - 246 (Spanish)
14; PC, PC/XT - 246 (Spanish)
15; Ferrari G - 171
16; Ferrari P (?) - 171
17;
18; DATE: September 15, 1986
19;
20;
21; To update KEYBOARD.SYS....enter the following info into KDF.ASM
22;
23; FILE HEADER
24; ===========
25; DB 'LA' ; language code
26; DW OFFSET LA_LANG_ENT,0 ; language ptr
27;
28; LANGUAGE ENTRY
29; ==============
30; EXTRN LA_LOGIC:NEAR
31; EXTRN LA_437_XLAT:NEAR
32; EXTRN LA_850_XLAT:NEAR
33;
34; LA_LANG_ENT: DB 'LA' ;
35; DW 0 ; reserved
36; DW OFFSET LA_LOGIC,0 ; pointer to LANG kb table
37; DW 2 ; number of code pages
38; DW 437 ; code page
39; DW OFFSET LA_437_XLAT,0 ; table pointer
40; DW 850 ; code page
41; DW OFFSET LA_850_XLAT,0 ; table pointer
42;
43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
44 INCLUDE KEYBSHAR.INC ;
45 INCLUDE POSTEQU.INC ;
46 INCLUDE KEYBMAC.INC ;
47 ;
48 PUBLIC LA_LOGIC ;
49 PUBLIC LA_437_XLAT ;
50 PUBLIC LA_850_XLAT ;
51 ;
52CODE SEGMENT PUBLIC 'CODE' ;
53 ASSUME CS:CODE,DS:CODE ;
54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
55; Standard translate table options are a liner search table
56; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58 ;
59STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
60 ;
61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
62;
63; SP State Logic
64;
65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
66LA_LOGIC: ;
67 DW LOGIC_END-$ ; length
68 DW 0 ; special features
69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
70; OPTIONS: If we find a scan match in
71; an XLATT or SET_FLAG operation then
72; exit from INT 9.
73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
74 OPTION EXIT_IF_FOUND ;
75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
76; Dead key definitions must come before
77; dead key translations to handle
78; dead key + dead key.
79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
81 ;;
82 ;;
83IFF EITHER_ALT,NOT ;;
84ANDF EITHER_CTL,NOT ;;
85 IFF EITHER_SHIFT ;;
86 SET_FLAG DEAD_UPPER ;;
87 ELSEF ;;
88 SET_FLAG DEAD_LOWER ;;
89 ENDIFF ;;
90ENDIFF ;;
91IFF EITHER_SHIFT,NOT ;;
92 IFKBD XT_KB+AT_KB ;;
93 IFF EITHER_CTL ;;
94 ANDF ALT_SHIFT ;;
95 SET_FLAG DEAD_THIRD ;;
96 ENDIFF ;;
97 ELSEF ;;
98 IFF EITHER_CTL,NOT ;;
99 ANDF R_ALT_SHIFT ;;
100 SET_FLAG DEAD_THIRD ;;
101 ENDIFF ;;
102 ENDIFF ;;
103ENDIFF ;;
104 ;;
105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
106; ACUTE ACCENT TRANSLATIONS
107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
108 ;
109ACUTE_PROC: ;
110 ;
111 IFF ACUTE,NOT ;
112 GOTO DIARESIS_PROC ;
113 ENDIFF ;
114 ;
115 RESET_NLS ;
116 IFF R_ALT_SHIFT,NOT ;
117 XLATT ACUTE_SPACE ;
118 ENDIFF ;
119 IFF EITHER_CTL,NOT ;
120 ANDF EITHER_ALT,NOT ;
121 IFF EITHER_SHIFT ;
122 IFF CAPS_STATE ;
123 XLATT ACUTE_LOWER ;
124 ELSEF ;
125 XLATT ACUTE_UPPER ;
126 ENDIFF ;
127 ELSEF ;
128 IFF CAPS_STATE ;
129 XLATT ACUTE_UPPER ;
130 ELSEF ;
131 XLATT ACUTE_LOWER ;
132 ENDIFF ;
133 ENDIFF ;
134 ENDIFF ;
135 ;
136INVALID_ACUTE: ;
137 PUT_ERROR_CHAR ACUTE_LOWER ; If we get here then either the XLATT
138 BEEP ; failed or we are ina bad shift state.
139 GOTO NON_DEAD ; Either is invalid so BEEP and fall
140 ; through to generate the second char.
141 ; Note that the dead key flag will be
142 ; reset before we get here.
143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
144; DIARESIS ACCENT TRANSLATIONS
145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
146DIARESIS_PROC: ;
147 IFF DIARESIS,NOT ;
148 GOTO GRAVE_PROC ;
149 ENDIFF ;
150 ;
151 RESET_NLS ;
152 IFF R_ALT_SHIFT,NOT ;
153 XLATT DIARESIS_SPACE ; exist for 437 so beep for
154 ENDIFF ;
155 IFF EITHER_CTL,NOT ;
156 ANDF EITHER_ALT,NOT ;
157 IFF EITHER_SHIFT ;
158 IFF CAPS_STATE ;
159 XLATT DIARESIS_LOWER ;
160 ELSEF ;
161 XLATT DIARESIS_UPPER ;
162 ENDIFF ;
163 ELSEF ;
164 IFF CAPS_STATE ;
165 XLATT DIARESIS_UPPER ;
166 ELSEF ;
167 XLATT DIARESIS_LOWER ;
168 ENDIFF ;
169 ENDIFF ;
170 ENDIFF ;
171 ;
172INVALID_DIARESIS: ;
173 PUT_ERROR_CHAR DIARESIS_LOWER ; standalone accent
174 BEEP ; Invalid dead key combo.
175 GOTO NON_DEAD ;
176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
177; GRAVE ACCENT TRANSLATIONS
178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
179GRAVE_PROC: ;
180 ;
181 IFF GRAVE,NOT ;
182 GOTO CIRCUMFLEX_PROC ;
183 ENDIFF ;
184 ;
185 RESET_NLS ;
186 IFF R_ALT_SHIFT,NOT ;
187 XLATT GRAVE_SPACE ;
188 ENDIFF ;
189 IFF EITHER_CTL,NOT ;
190 ANDF EITHER_ALT,NOT ;
191 IFF EITHER_SHIFT ;
192 IFF CAPS_STATE ;
193 XLATT GRAVE_LOWER ;
194 ELSEF ;
195 XLATT GRAVE_UPPER ;
196 ENDIFF ;
197 ELSEF ;
198 IFF CAPS_STATE,NOT ;
199 XLATT GRAVE_LOWER ;
200 ELSEF ;
201 XLATT GRAVE_UPPER ;
202 ENDIFF ;
203 ENDIFF ;
204 ENDIFF ;
205 ;
206INVALID_GRAVE: ;
207 PUT_ERROR_CHAR GRAVE_LOWER ; standalone accent
208 BEEP ; Invalid dead key combo.
209 GOTO NON_DEAD ;
210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
211; CIRCUMFLEX ACCENT TRANSLATIONS
212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
213CIRCUMFLEX_PROC: ;
214 ;
215 IFF CIRCUMFLEX,NOT ;
216 GOTO NON_DEAD ;
217 ENDIFF ;
218 ;
219 RESET_NLS ;
220 IFF R_ALT_SHIFT,NOT ;
221 XLATT CIRCUMFLEX_SPACE ;
222 ENDIFF ;
223 IFF EITHER_CTL,NOT ;
224 ANDF EITHER_ALT,NOT ;
225 IFF EITHER_SHIFT ;
226 IFF CAPS_STATE ;
227 XLATT CIRCUMFLEX_LOWER ;
228 ELSEF ;
229 XLATT CIRCUMFLEX_UPPER ;
230 ENDIFF ;
231 ELSEF ;
232 IFF CAPS_STATE,NOT ;
233 XLATT CIRCUMFLEX_LOWER ;
234 ELSEF ;
235 XLATT CIRCUMFLEX_UPPER ;
236 ENDIFF ;
237 ENDIFF ;
238 ENDIFF ;
239 ;
240INVALID_CIRCUMFLEX: ;
241 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ; standalone accent
242 BEEP ; Invalid dead key combo.
243 GOTO NON_DEAD ;
244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
245; Upper, lower and third shifts
246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
247NON_DEAD: ;
248 ;
249 IFKBD G_KB+P12_KB ; Avoid accidentally translating
250 ANDF LC_E0 ; the "/" on the numeric pad of the
251 EXIT_STATE_LOGIC ; G keyboard
252 ENDIFF ;
253;;***BD ADDED FOR ALT, CTRL CASES ;
254 IFF EITHER_CTL,NOT ;
255 IFF ALT_SHIFT ; ALT - case
256 ANDF R_ALT_SHIFT,NOT ;
257 XLATT ALT_CASE ;
258 ENDIFF ;
259 ELSEF ;
260 IFF EITHER_ALT,NOT ; CTRL - case
261 XLATT CTRL_CASE ;
262 ENDIFF ;
263 ENDIFF ;
264;;***BD END OF ADDITION
265 ;
266 IFF EITHER_ALT,NOT ; Lower and upper case. Alphabetic
267 ANDF EITHER_CTL,NOT ; keys are affected by CAPS LOCK.
268 IFF EITHER_SHIFT ; Numeric keys are not.
269;;***BD ADDED FOR NUMERIC PAD
270 IFF NUM_STATE,NOT ;
271 XLATT NUMERIC_PAD ;
272 ENDIFF ;
273;;***BD END OF ADDITION
274 XLATT NON_ALPHA_UPPER ;
275 IFF CAPS_STATE ;
276 XLATT ALPHA_LOWER ;
277 ELSEF ;
278 XLATT ALPHA_UPPER ;
279 ENDIFF ;
280 ELSEF ;
281;;***BD ADDED FOR NUMERIC PAD
282 IFF NUM_STATE ;
283 XLATT NUMERIC_PAD ;
284 ENDIFF ;
285;;***BD END OF ADDITION
286 XLATT NON_ALPHA_LOWER ;
287 IFF CAPS_STATE ;
288 XLATT ALPHA_UPPER ;
289 ELSEF ;
290 XLATT ALPHA_LOWER ;
291 ENDIFF ;
292 ENDIFF ;
293 ELSEF ;
294 IFF EITHER_SHIFT,NOT ;
295 IFKBD XT_KB+AT_KB ;
296 IFF EITHER_CTL ;
297 ANDF ALT_SHIFT ;
298 XLATT THIRD_SHIFT ;
299 ENDIFF ;
300 ELSEF ;
301 IFF EITHER_CTL,NOT ;
302 ANDF R_ALT_SHIFT ;
303 XLATT THIRD_SHIFT ;
304 ENDIFF ;
305 ENDIFF ;
306 ENDIFF ;
307 ENDIFF ;
308 ;
309 EXIT_STATE_LOGIC ;
310 ;
311LOGIC_END: ;
312;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
313; SP Common Translate Section
314; This section contains translations for the lower 128 characters
315; only since these will never change from code page to code page.
316; In addition the dead key "Set Flag" tables are here since the
317; dead keys are on the same keytops for all code pages.
318;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
319 PUBLIC LA_COMMON_XLAT ;
320LA_COMMON_XLAT: ;
321 ;
322 DW COMMON_XLAT_END-$ ; length of section
323 DW -1 ; code page
324;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
325; CODE PAGE: Common
326; STATE: Lower Shift Dead Key
327; KEYBOARD TYPES: G + P12
328; TABLE TYPE: Flag Table
329;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
330 DW COM_DK_LO_K1_END-$ ; length of state section
331 DB DEAD_LOWER ; State ID
332 DW G_KB+P12_KB ; Keyboard Type
333 DB -1,-1 ; Buffer entry for error character
334 ; Set Flag Table
335 DW 1 ; number of entries
336 DB 26 ; scan code
337 FLAG ACUTE ;
338 ;
339COM_DK_LO_K1_END: ;
340;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
341; CODE PAGE: Common
342; STATE: Lower Shift Dead Key
343; KEYBOARD TYPES: AT + XT +
344; TABLE TYPE: Flag Table
345;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
346 ;
347 DW COM_DK_LO_K2_END-$ ; length of state section
348 DB DEAD_LOWER ; State ID
349 DW AT_KB+XT_KB ; Keyboard Type
350 DB -1,-1 ; Buffer entry for error character
351 ; Set Flag Table
352 DW 2 ; number of entries
353 DB 26 ; scan code
354 FLAG ACUTE ; flag bit to set
355 DB 27 ;
356 FLAG GRAVE ;
357 ;
358 ;
359COM_DK_LO_K2_END: ;
360 ;
361;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
362; CODE PAGE: Common
363; STATE: Upper Shift Dead Key
364; KEYBOARD TYPES: G + P12
365; TABLE TYPE: Flag Table
366;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
367 DW COM_DK_UP_K1_END-$ ; length of state section
368 DB DEAD_UPPER ; State ID
369 DW G_KB+P12_KB ; Keyboard Type
370 DB -1,-1 ; Buffer entry for error character
371 ; Set Flag Table
372 DW 1 ; number of entries
373 DB 26 ; scan code
374 FLAG DIARESIS ;
375 ;
376COM_DK_UP_K1_END: ;
377;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
378; CODE PAGE: Common
379; STATE: Third Shift Dead Key
380; KEYBOARD TYPES: G + P12
381; TABLE TYPE: Flag Table
382;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
383 DW COM_TH_DK_UP_K1_END-$ ; length of state section
384 DB DEAD_THIRD ; State ID
385 DW G_KB+P12_KB ; Keyboard Type
386 DB -1,-1 ; Buffer entry for error character
387 ; Set Flag Table
388 DW 2 ; number of entries
389 DB 40 ; scan code
390 FLAG CIRCUMFLEX ;
391 DB 43 ; scan code
392 FLAG GRAVE ;
393 ;
394COM_TH_DK_UP_K1_END: ;
395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
396; CODE PAGE: Common
397; STATE: Upper Shift Dead Key
398; KEYBOARD TYPES: AT + XT +
399; TABLE TYPE: Flag Table
400;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
401 ;
402 DW COM_DK_UP_END-$ ; length of state section
403 DB DEAD_UPPER ; State ID
404 DW AT_KB+XT_KB ; Keyboard Type
405 DB -1,-1 ; Buffer entry for error character
406 ; Set Flag Table
407 DW 2 ; number of entries
408 DB 26 ; scan code
409 FLAG DIARESIS ; flag bit to set
410 DB 27 ;
411 FLAG CIRCUMFLEX ;
412 ;
413COM_DK_UP_END: ;
414 ;
415;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
416; CODE PAGE: Common
417; STATE: Alpha Lower Case
418; KEYBOARD TYPES: G + P12
419; TABLE TYPE: Translate
420;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
421 DW COM_AL_LO_GP_K1_END-$ ; length of state section
422 DB ALPHA_LOWER ; State ID
423 DW G_KB+P12_KB ; Keyboard Type
424 DB -1,-1 ; Buffer entry for error character
425 ;
426 DW COM_AL_LO_GP_K1_T1_END-$ ; Size of xlat table
427 DB STANDARD_TABLE ; xlat options:
428 DB 1 ; number of entries
429 DB 39,164 ; n-tilde
430COM_AL_LO_GP_K1_T1_END: ;
431 ;
432 DW 0 ; Size of xlat table - null table
433 ;
434COM_AL_LO_GP_K1_END: ;
435;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
436; CODE PAGE: Common
437; STATE: Alpha Lower Case
438; KEYBOARD TYPES: AT
439; TABLE TYPE: Translate
440;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
441 DW COM_AL_LO_K1_END-$ ; length of state section
442 DB ALPHA_LOWER ; State ID
443 DW AT_KB ; Keyboard Type
444 DB -1,-1 ; Buffer entry for error character
445 ;
446 DW COM_AL_LO_K1_T1_END-$ ; Size of xlat table
447 DB STANDARD_TABLE ; xlat options:
448 DB 2 ; number of entries
449 DB 39,164 ; n-tilde
450 DB 43,135 ; c-cedilla
451COM_AL_LO_K1_T1_END: ;
452 ;
453 DW 0 ; Size of xlat table - null table
454 ;
455COM_AL_LO_K1_END: ;
456;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
457; CODE PAGE: Common
458; STATE: Numeric Key Pad
459; KEYBOARD TYPES: All
460; TABLE TYPE: Translate
461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
462 DW COM_PAD_K1_END-$ ; length of state section
463 DB NUMERIC_PAD ; State ID
464 DW ANY_KB ; Keyboard Type
465 DB -1,-1 ; Buffer entry for error character
466 ;
467 DW COM_PAD_K1_T1_END-$ ; Size of xlat table
468 DB STANDARD_TABLE ; xlat options:
469 DB 1 ; number of entries
470 DB 83,'.' ; decimal seperator = .
471COM_PAD_K1_T1_END: ;
472 ;
473 DW 0 ; Size of xlat table - null table
474 ;
475COM_PAD_K1_END: ;
476;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
477;
478; BD - ADDED FOR ALT CASE
479;
480; CODE PAGE: Common
481; STATE: Alt Case
482; KEYBOARD TYPES: All
483; TABLE TYPE: Translate
484;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
485 DW COM_ALT_K1_END-$ ; length of state section
486 DB ALT_CASE ; State ID
487 DW ANY_KB ; Keyboard Type
488 DB -1,-1 ; Buffer entry for error character
489 ;
490 DW COM_ALT_K1_T1_END-$ ; Size of xlat table
491 DB TYPE_2_TAB ; xlat options:
492 DB 0 ; number of entries
493;;***BD THIS ENTRY IS A TEST ENTRY
494;; DB 53,225,0 ; TEST ENTRY
495COM_ALT_K1_T1_END: ;
496 ;
497 DW 0 ; Size of xlat table - null table
498 ;
499COM_ALT_K1_END: ;
500;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
501;
502; BD - ADDED FOR CTRL CASE
503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
504;; CODE PAGE: Common
505;; STATE: Ctrl Case
506;; KEYBOARD TYPES: AT
507;; TABLE TYPE: Translate
508;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
509 ;;
510 DW COM_CTRL_K1_END-$ ;; length of state section
511 DB CTRL_CASE ;; State ID
512 DW AT_KB ;; Keyboard Type
513 DB -1,-1 ;; Buffer entry for error character
514 ;;
515 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
516 DB TYPE_2_TAB ;; xlat options:
517 DB 2 ;; number of entries
518;;***BD THIS ENTRY IS A TEST ENTRY
519;; DB 53,226,0 ;; TEST ENTRY
520 DB 43,-1,-1 ;; invalid slash
521 DB 41,28,41 ;; valid slash
522COM_CTRL_K1_T1_END: ;;
523 ;;
524 DW 0 ;; Size of xlat table - null table
525 ;;
526COM_CTRL_K1_END: ;;
527 ;;
528;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
530;; CODE PAGE: Common
531;; STATE: Ctrl Case
532;; KEYBOARD TYPES: XT_KB
533;; TABLE TYPE: Translate
534;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
535 ;;
536 DW COM_CTRL_K2_END-$ ;; length of state section
537 DB CTRL_CASE ;; State ID
538 DW XT_KB ;; Keyboard Type
539 DB -1,-1 ;; Buffer entry for error character
540 ;;
541 DW COM_CTRL_K2_T2_END-$ ;; Size of xlat table
542 DB TYPE_2_TAB ;; xlat options:
543 DB 1 ;; number of entries
544;;***BD THIS ENTRY IS A TEST ENTRY
545;; DB 53,226,0 ;; TEST ENTRY
546 DB 43,-1,-1 ;; invalid slash
547COM_CTRL_K2_T2_END: ;;
548 ;;
549 DW 0 ;; Size of xlat table - null table
550 ;;
551COM_CTRL_K2_END: ;;
552 ;;
553;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
555; CODE PAGE: Common
556; STATE: Alpha Lower Case
557; KEYBOARD TYPES: XT +
558; TABLE TYPE: Translate
559;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
560 DW COM_AL_LO_K2_END-$ ; length of state section
561 DB ALPHA_LOWER ; State ID
562 DW XT_KB ; Keyboard Type
563 DB -1,-1 ; Buffer entry for error character
564 ;
565 DW COM_AL_LO_K2_T1_END-$ ; Size of xlat table
566 DB STANDARD_TABLE ; xlat options:
567 DB 2 ; number of entries
568 DB 39,164 ; n-tilde
569 DB 41,135 ; c-cedilla
570COM_AL_LO_K2_T1_END: ;
571 ;
572 DW 0 ; Size of xlat table - null table
573 ;
574COM_AL_LO_K2_END: ;
575;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
576; CODE PAGE: Common
577; STATE: Alpha Upper Case
578; KEYBOARD TYPES: G + P12
579; TABLE TYPE: Translate
580;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
581 DW COM_AL_UP_GP_K1_END-$ ; length of state section
582 DB ALPHA_UPPER ; State ID
583 DW G_KB+P12_KB ; Keyboard Type
584 DB -1,-1 ; Buffer entry for error character
585 ;
586 DW COM_AL_UP_GP_K1_T1_END-$ ; Size of xlat table
587 DB STANDARD_TABLE ; xlat options:
588 DB 1 ; number of entries
589 DB 39,165 ; N-tilde
590COM_AL_UP_GP_K1_T1_END: ;
591 ;
592 DW 0 ; Size of xlat table - null table
593 ;
594COM_AL_UP_GP_K1_END: ;
595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
596; CODE PAGE: Common
597; STATE: Alpha Upper Case
598; KEYBOARD TYPES: AT
599; TABLE TYPE: Translate
600;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
601 DW COM_AL_UP_K1_END-$ ; length of state section
602 DB ALPHA_UPPER ; State ID
603 DW AT_KB ; Keyboard Type
604 DB -1,-1 ; Buffer entry for error character
605 ;
606 DW COM_AL_UP_K1_T1_END-$ ; Size of xlat table
607 DB STANDARD_TABLE ; xlat options:
608 DB 2 ; number of entries
609 DB 39,165 ; N-tilde
610 DB 43,128 ; C-cedilla
611COM_AL_UP_K1_T1_END: ;
612 ;
613 DW 0 ; Size of xlat table - null table
614 ;
615COM_AL_UP_K1_END: ;
616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
617; CODE PAGE: Common
618; STATE: Alpha Upper Case
619; KEYBOARD TYPES: XT +
620; TABLE TYPE: Translate
621;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
622 DW COM_AL_UP_K2_END-$ ; length of state section
623 DB ALPHA_UPPER ; State ID
624 DW XT_KB ; Keyboard Type
625 DB -1,-1 ; Buffer entry for error character
626 ;
627 DW COM_AL_UP_K2_T1_END-$ ; Size of xlat table
628 DB STANDARD_TABLE ; xlat options:
629 DB 2 ; number of entries
630 DB 39,165 ; N-tilde
631 DB 41,128 ; C-cedilla
632COM_AL_UP_K2_T1_END: ;
633 ;
634 DW 0 ; Size of xlat table - null table
635 ;
636COM_AL_UP_K2_END: ;
637;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
638; CODE PAGE: Common
639; STATE: Non-Alpha Lower Case
640; KEYBOARD TYPES: G + P12
641; TABLE TYPE: Translate
642;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
643 DW COM_NA_LO_GP_K1_END-$ ; length of state section
644 DB NON_ALPHA_LOWER ; State ID
645 DW G_KB+P12_KB ; Keyboard Type
646 DB -1,-1 ; Buffer entry for error character
647 ;
648 DW COM_NA_LO_GP_K1_T1_END-$ ; Size of xlat table
649 DB STANDARD_TABLE ; xlat options:
650 DB 8 ; number of entries
651 DB 12,"'" ; '
652 DB 13,'¨' ; ¨
653 DB 27,'+' ; +
654 DB 40,'{' ; |
655 DB 41,'|' ; |
656 DB 43,'}' ; |
657 DB 53,'-' ; -
658 DB 86,'<' ; <
659COM_NA_LO_GP_K1_T1_END: ;
660 ;
661 DW 0 ; Size of xlat table - null table
662 ;
663COM_NA_LO_GP_K1_END: ;
664;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
665; CODE PAGE: Common
666; STATE: Non-Alpha Lower Case
667; KEYBOARD TYPES: AT
668; TABLE TYPE: Translate
669;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
670 DW COM_NA_LO_K2_END-$ ; length of state section
671 DB NON_ALPHA_LOWER ; State ID
672 DW AT_KB ; Keyboard Type
673 DB -1,-1 ; Buffer entry for error character
674 ;
675 DW COM_NA_LO_K2_T1_END-$ ; Size of xlat table
676 DB STANDARD_TABLE ; xlat options:
677 DB 3 ; number of entries
678 DB 40,';' ; ;
679 DB 41,'<' ; <
680 DB 53,"'" ; quote
681COM_NA_LO_K2_T1_END: ;
682 ;
683 DW 0 ; Size of xlat table - null table
684 ;
685COM_NA_LO_K2_END: ;
686;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
687; CODE PAGE: Common
688; STATE: Non-Alpha Lower Case
689; KEYBOARD TYPES: XT +
690; TABLE TYPE: Translate
691;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
692 DW COM_NA_LO_K3_END-$ ; length of state section
693 DB NON_ALPHA_LOWER ; State ID
694 DW XT_KB ; Keyboard Type
695 DB -1,-1 ; Buffer entry for error character
696 ;
697 DW COM_NA_LO_K3_T1_END-$ ; Size of xlat table
698 DB STANDARD_TABLE ; xlat options:
699 DB 3 ; number of entries
700 DB 40,';' ; ;
701 DB 43,'<' ; <
702 DB 53,"'" ; quote
703COM_NA_LO_K3_T1_END: ;
704 ;
705 DW 0 ; Size of xlat table - null table
706 ;
707COM_NA_LO_K3_END: ;
708 ;
709;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
710; CODE PAGE: Common
711; STATE: Non-Alpha Upper Case
712; KEYBOARD TYPES: G + P12
713; TABLE TYPE: Translate
714;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
715 DW COM_NA_UP_GP_K1_END-$ ; length of state section
716 DB NON_ALPHA_UPPER ; State ID
717 DW G_KB+P12_KB ; Keyboard Type
718 DB -1,-1 ; Buffer entry for error character
719 ;
720 DW COM_NA_UP_GP_K1_T1_END-$ ; Size of xlat table
721 DB STANDARD_TABLE ; xlat options:
722 DB 16 ; number of entries
723 DB 3,'"' ; "
724 DB 7,'&' ; &
725 DB 8,'/' ; /
726 DB 9,'(' ; (
727 DB 10,')' ; )
728 DB 11,'=' ; =
729 DB 12,'?' ; ?
730 DB 13,'­' ; ­
731 DB 27,'*' ; *
732 DB 40,'[' ; [
733 DB 41,'ø' ; ø
734 DB 43,']' ; ]
735 DB 51,';' ; ;
736 DB 52,':' ; :
737 DB 53,'_' ; _
738 DB 86,'>' ; >
739COM_NA_UP_GP_K1_T1_END: ;
740 ;
741 DW 0 ; Size of xlat table - null table
742 ;
743COM_NA_UP_GP_K1_END: ;
744;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
745; CODE PAGE: Common
746; STATE: Non-Alpha Upper Case
747; KEYBOARD TYPES: AT
748; TABLE TYPE: Translate
749;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
750 DW COM_NA_UP_K2_END-$ ; length of state section
751 DB NON_ALPHA_UPPER ; State ID
752 DW AT_KB ; Keyboard Type
753 DB -1,-1 ; Buffer entry for error character
754 ;
755 DW COM_NA_UP_K2_T1_END-$ ; Size of xlat table
756 DB STANDARD_TABLE ; xlat options:
757 DB 8 ; number of entries
758 DB 41,'>' ;
759 DB 2,0ADH ; UPSIDE DOWN ­
760 DB 3,168 ; UPSIDE DOWN ?
761 DB 7,'/' ;
762 DB 40,':' ;
763 DB 51,'?' ;
764 DB 52,'!' ;
765 DB 53,'"' ;
766COM_NA_UP_K2_T1_END: ;
767 ;
768 DW 0 ; Size of xlat table - null table
769 ;
770COM_NA_UP_K2_END: ;
771;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
772; CODE PAGE: Common
773; STATE: Non-Alpha Upper Case
774; KEYBOARD TYPES: XT +
775; TABLE TYPE: Translate
776;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
777 ;
778 DW COM_NA_UP_K3_END-$ ; length of state section
779 DB NON_ALPHA_UPPER ; State ID
780 DW XT_KB ; Keyboard Type
781 DB -1,-1 ; Buffer entry for error character
782 ;
783 DW COM_NA_UP_K3_T1_END-$ ; Size of xlat table
784 DB STANDARD_TABLE ; xlat options:
785 DB 8 ; number of entries
786 DB 43,'>' ;
787 DB 2,0ADH ; UPSIDE DOWN ­
788 DB 3,168 ; UPSIDE DOWN ?
789 DB 7,'/' ;
790 DB 40,':' ;
791 DB 51,'?' ;
792 DB 52,'!' ;
793 DB 53,'"' ;
794COM_NA_UP_K3_T1_END: ;
795 ;
796 DW 0 ; Size of xlat table - null table
797 ;
798COM_NA_UP_K3_END: ;
799;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
800; CODE PAGE: Common
801; STATE: Third Shift
802; KEYBOARD TYPES: G + P12
803; TABLE TYPE: Translate
804;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
805 DW COM_THIRD_K1_END-$ ; length of state section
806 DB THIRD_SHIFT ; State ID
807 DW G_KB+P12_KB ; Keyboard Type
808 DB -1,-1 ; Buffer entry for error character
809 ;
810 DW COM_THIRD_K1_T1_END-$ ; Size of xlat table
811 DB STANDARD_TABLE ; xlat options:
812 DB 4 ; number of entries
813 DB 12,'\' ; \
814 DB 16,'@' ; @
815 DB 27,'~' ; ~
816 DB 41,'ª' ; ª
817COM_THIRD_K1_T1_END: ;
818 ;
819 DW 0 ; Last xlat table
820COM_THIRD_K1_END: ;
821;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
822; CODE PAGE: Common
823; STATE: Third Shift
824; KEYBOARD TYPES: AT
825; TABLE TYPE: Translate
826;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
827 DW COM_THIRD_K2_END-$ ; length of state section
828 DB THIRD_SHIFT ; State ID
829 DW AT_KB ; Keyboard Type
830 DB -1,-1 ; Buffer entry for error character
831 ;
832 DW COM_THIRD_K2_T1_END-$ ; Size of xlat table
833 DB STANDARD_TABLE ; xlat options:
834 DB 4 ; number of entries
835 DB 41,'\' ;
836 DB 3,'@' ;
837 DB 26,'[' ;
838 DB 27,']' ;
839COM_THIRD_K2_T1_END: ;
840 ;
841 DW 0 ; Last xlat table
842COM_THIRD_K2_END: ;
843;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
844; CODE PAGE: Common
845; STATE: Third Shift
846; KEYBOARD TYPES: XT +
847; TABLE TYPE: Translate
848;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
849 DW COM_THIRD_K3_END-$ ; length of state section
850 DB THIRD_SHIFT ; State ID
851 DW XT_KB ; Keyboard Type
852 DB -1,-1 ; Buffer entry for error character
853 ;
854 DW COM_THIRD_K3_T1_END-$ ; Size of xlat table
855 DB STANDARD_TABLE ; xlat options:
856 DB 3 ; number of entries
857 DB 3,'@' ;
858 DB 26,'[' ;
859 DB 27,']' ;
860COM_THIRD_K3_T1_END: ;
861 ;
862 DW 0 ; Last xlat table
863COM_THIRD_K3_END: ;
864;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
865; CODE PAGE: Common
866; STATE: Acute Lower Case
867; KEYBOARD TYPES: All
868; TABLE TYPE: Translate
869;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
870; DW COM_AC_LO_END-$ ; length of state section
871; DB ACUTE_LOWER ; State ID
872; DW ANY_KB ; Keyboard Type
873; DB 39,0 ; error character = standalone accent
874; ;
875; DW COM_AC_LO_T1_END-$ ; Size of xlat table
876; DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
877; DB 5 ; number of scans
878; DB 18,'‚' ; scan code,ASCII - e
879; DB 30,' ' ; scan code,ASCII - a
880; DB 24,'¢' ; scan code,ASCII - o
881; DB 22,'£' ; scan code,ASCII - u
882; DB 23,'¡' ; scan code,ASCII - i
883;COM_AC_LO_T1_END: ;
884; ;
885; DW 0 ; Size of xlat table - null table
886; ;
887;COM_AC_LO_END: ;
888;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
889;; CODE PAGE: Common
890;; STATE: Acute Upper Case
891;; KEYBOARD TYPES: All
892;; TABLE TYPE: Translate
893;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
894; DW COM_AC_UP_END-$ ; length of state section
895; DB ACUTE_UPPER ; State ID
896; DW ANY_KB ; Keyboard Type
897; DB 39,0 ; error character = standalone accent
898; ;
899; DW COM_AC_UP_T1_END-$ ; Size of xlat table
900; DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
901; DB 2 ; number of scans
902; DB 18,'' ; scan code,ASCII - e
903;COM_AC_UP_T1_END: ;
904; ;
905; DW 0 ; Size of xlat table - null table
906; ;
907;COM_AC_UP_END: ;
908;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
909;; CODE PAGE: Common
910;; STATE: Acute Space Bar
911;;; KEYBOARD TYPES: All
912;; TABLE TYPE: Translate
913;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
914; DW COM_AC_LA_END-$ ; length of state section
915; DB ACUTE_SPACE ; State ID
916;; DW ANY_KB ; Keyboard Type
917; DB 39,0 ; error character = standalone accent
918; ;
919; DW COM_AC_LA_T1_END-$ ; Size of xlat table
920; DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
921; DB 1 ; number of scans
922; DB 57,39 ; scan code,ASCII - SPACE
923;COM_AC_LA_T1_END: ;
924; ;
925; DW 0 ; Size of xlat table - null table
926; ;
927;COM_AC_LA_END: ;
928;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
929;; CODE PAGE: Common
930;; STATE: Diaresis Lower Case
931; KEYBOARD TYPES: All
932; TABLE TYPE: Translate
933;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
934 DW COM_DI_LO_END-$ ; length of state section
935 DB DIARESIS_LOWER ; State ID
936 DW ANY_KB ; Keyboard Type
937 DB 249,0 ; error character = standalone accent
938 ;
939 DW COM_DI_LO_T1_END-$ ; Size of xlat table
940 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
941 DB 6 ; number of scans
942 DB 18,'‰' ; scan code,ASCII - e
943 DB 30,'„' ; scan code,ASCII - a
944 DB 24,'”' ; scan code,ASCII - o
945 DB 22,'' ; scan code,ASCII - u
946 DB 23,'‹' ; scan code,ASCII - i
947 DB 21,'˜' ; scan code,ASCII - y
948COM_DI_LO_T1_END: ;
949 ;
950 DW 0 ; Size of xlat table - null table
951 ;
952COM_DI_LO_END: ; length of state section
953;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
954; CODE PAGE: Common
955; STATE: Diaresis Upper Case
956; KEYBOARD TYPES: All
957; TABLE TYPE: Translate
958;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
959 DW COM_DI_UP_END-$ ; length of state section
960 DB DIARESIS_UPPER ; State ID
961 DW ANY_KB ; Keyboard Type
962 DB 249,0 ; error character = standalone accent
963 ;
964 DW COM_DI_UP_T1_END-$ ; Size of xlat table
965 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
966 DB 3 ; number of scans
967 DB 30,'Ž' ; scan code,ASCII - a
968 DB 24,'™' ; scan code,ASCII - o
969 DB 22,'š' ; scan code,ASCII - u
970COM_DI_UP_T1_END: ;
971 ;
972 DW 0 ; Size of xlat table - null table
973 ;
974COM_DI_UP_END: ; length of state section
975;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
976; CODE PAGE: Common
977; STATE: Grave Lower
978; KEYBOARD TYPES: All
979; TABLE TYPE: Translate
980;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
981 DW COM_GR_LO_END-$ ; length of state section
982 DB GRAVE_LOWER ; State ID
983 DW ANY_KB ; Keyboard Type
984 DB 96,0 ; error character = standalone accent
985 ;
986 DW COM_GR_LO_T1_END-$ ; Size of xlat table
987 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
988 DB 5 ; number of scans
989 DB 18,'Š' ; scan code,ASCII - e
990 DB 30,'…' ; scan code,ASCII - a
991 DB 24,'•' ; scan code,ASCII - o
992 DB 22,'—' ; scan code,ASCII - u
993 DB 23,'' ; scan code,ASCII - i
994COM_GR_LO_T1_END: ;
995 ;
996 DW 0 ; Size of xlat table - null table
997 ;
998COM_GR_LO_END: ; length of state section
999;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1000; CODE PAGE: Common
1001; STATE: Grave Space Bar
1002; KEYBOARD TYPES: All
1003; TABLE TYPE: Translate
1004;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1005 DW COM_GR_LA_END-$ ; length of state section
1006 DB GRAVE_SPACE ; State ID
1007 DW ANY_KB ; Keyboard Type
1008 DB 96,0 ; error character = standalone accent
1009 ;
1010 DW COM_GR_LA_T1_END-$ ; Size of xlat table
1011 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1012 DB 1 ; number of scans
1013 DB 57,96 ; STANDALONE GRAVE
1014COM_GR_LA_T1_END: ;
1015 ;
1016 DW 0 ; Size of xlat table - null table
1017 ;
1018COM_GR_LA_END: ; length of state section
1019;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1020; CODE PAGE: Common
1021; STATE: Circumflex Lower
1022; KEYBOARD TYPES: All
1023; TABLE TYPE: Translate
1024;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1025 DW COM_CI_LO_END-$ ; length of state section
1026 DB CIRCUMFLEX_LOWER ; State ID
1027 DW ANY_KB ; Keyboard Type
1028 DB 94,0 ; error character = standalone accent
1029 ;
1030 DW COM_CI_LO_T1_END-$ ; Size of xlat table
1031 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1032 DB 5 ; number of scans
1033 DB 18,'ˆ' ; scan code,ASCII - e
1034 DB 30,'ƒ' ; scan code,ASCII - a
1035 DB 24,'“' ; scan code,ASCII - o
1036 DB 22,'–' ; scan code,ASCII - u
1037 DB 23,'Œ' ; scan code,ASCII - i
1038COM_CI_LO_T1_END: ;
1039 ;
1040 DW 0 ;
1041 ;
1042COM_CI_LO_END: ;
1043;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1044; CODE PAGE: Common
1045; STATE: Circumflex Space Bar
1046; KEYBOARD TYPES: All
1047; TABLE TYPE: Translate
1048;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1049 DW COM_CI_LA_END-$ ; length of state section
1050 DB CIRCUMFLEX_SPACE ; State ID
1051 DW ANY_KB ; Keyboard Type
1052 DB 94,0 ; error character = standalone accent
1053 ;
1054 DW COM_CI_LA_T1_END-$ ; Size of xlat table
1055 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1056 DB 1 ; number of scans
1057 DB 57,94 ; STANDALONE CIRCUMFLEX
1058COM_CI_LA_T1_END: ;
1059 ;
1060 DW 0 ; Size of xlat table - null table
1061 ;
1062COM_CI_LA_END: ; length of state section
1063 ;
1064 DW 0 ; Last State
1065COMMON_XLAT_END: ;
1066;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1067;
1068; SP Specific Translate Section for 437
1069; 437 IS COMPLETELY COVERED BY THE COMMON TABLE.
1070;
1071;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1072 PUBLIC LA_437_XLAT ;
1073LA_437_XLAT: ;
1074 ;
1075 DW CP437_XLAT_END-$ ; length of section
1076 DW 437 ;
1077;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1078; CODE PAGE: Specific 437
1079; STATE: Acute Lower Case
1080; KEYBOARD TYPES: All
1081; TABLE TYPE: Translate
1082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1083 DW CP437_AC_LO_END-$ ; length of state section
1084 DB ACUTE_LOWER ; State ID
1085 DW ANY_KB ; Keyboard Type
1086 DB 39,0 ; error character = standalone accent
1087 ;
1088 DW CP437_AC_LO_T1_END-$ ; Size of xlat table
1089 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1090 DB 5 ; number of scans
1091 DB 18,'‚' ; scan code,ASCII - e
1092 DB 30,' ' ; scan code,ASCII - a
1093 DB 24,'¢' ; scan code,ASCII - o
1094 DB 22,'£' ; scan code,ASCII - u
1095 DB 23,'¡' ; scan code,ASCII - i
1096CP437_AC_LO_T1_END: ;
1097 ;
1098 DW 0 ; Size of xlat table - null table
1099 ;
1100CP437_AC_LO_END: ;
1101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1102; CODE PAGE: 437
1103; STATE: Acute Upper Case
1104; KEYBOARD TYPES: All
1105; TABLE TYPE: Translate
1106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1107 DW CP437_AC_UP_END-$ ; length of state section
1108 DB ACUTE_UPPER ; State ID
1109 DW ANY_KB ; Keyboard Type
1110 DB 39,0 ; error character = standalone accent
1111 ;
1112 DW CP437_AC_UP_T1_END-$ ; Size of xlat table
1113 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1114 DB 1 ; number of scans
1115 DB 18,'' ; scan code,ASCII - e
1116CP437_AC_UP_T1_END: ;
1117 ;
1118 DW 0 ; Size of xlat table - null table
1119 ;
1120CP437_AC_UP_END: ;
1121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1122; CODE PAGE: 437
1123; STATE: Acute Space Bar
1124; KEYBOARD TYPES: All
1125; TABLE TYPE: Translate
1126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1127 DW CP437_AC_LA_END-$ ; length of state section
1128 DB ACUTE_SPACE ; State ID
1129 DW ANY_KB ; Keyboard Type
1130 DB 39,0 ; error character = standalone accent
1131 ;
1132 DW CP437_AC_LA_T1_END-$ ; Size of xlat table
1133 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1134 DB 1 ; number of scans
1135 DB 57,39 ; scan code,ASCII - SPACE
1136CP437_AC_LA_T1_END: ;
1137 ;
1138 DW 0 ; Size of xlat table - null table
1139 ;
1140CP437_AC_LA_END: ;
1141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1142 DW 0 ; LAST STATE
1143 ;
1144CP437_XLAT_END: ;
1145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1146;
1147; SP Specific Translate Section for 850
1148;
1149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1150 PUBLIC LA_850_XLAT ;
1151LA_850_XLAT: ;
1152 ;
1153 DW CP850_XLAT_END-$ ; length of section
1154 DW 850 ;
1155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1156; CODE PAGE: Specific 850
1157; STATE: Acute Lower Case
1158; KEYBOARD TYPES: All
1159; TABLE TYPE: Translate
1160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1161 DW CP850_AC_LO_END-$ ; length of state section
1162 DB ACUTE_LOWER ; State ID
1163 DW ANY_KB ; Keyboard Type
1164 DB 0EFH,0 ; error character = standalone accent
1165 ;
1166 DW CP850_AC_LO_T1_END-$ ; Size of xlat table
1167 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1168 DB 5 ; number of scans
1169 DB 18,'‚' ; scan code,ASCII - e
1170 DB 30,' ' ; scan code,ASCII - a
1171 DB 24,'¢' ; scan code,ASCII - o
1172 DB 22,'£' ; scan code,ASCII - u
1173 DB 23,'¡' ; scan code,ASCII - i
1174; DB 21,0ECH add in later date ; y acute
1175CP850_AC_LO_T1_END: ;
1176 ;
1177 DW 0 ; Size of xlat table - null table
1178 ;
1179CP850_AC_LO_END: ;
1180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1181; CODE PAGE: 850
1182; STATE: Acute Upper Case
1183; KEYBOARD TYPES: All
1184; TABLE TYPE: Translate
1185;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1186 DW CP850_AC_UP_END-$ ; length of state section
1187 DB ACUTE_UPPER ; State ID
1188 DW ANY_KB ; Keyboard Type
1189 DB 0EFH,0 ; error character = standalone accent
1190 ;
1191 DW CP850_AC_UP_T1_END-$ ; Size of xlat table
1192 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1193 DB 5 ; number of scans
1194 DB 18,'' ; scan code,ASCII - e
1195 DB 30,0B5H ; A acute
1196 DB 23,0D6H ; I acute
1197 DB 24,0E0H ; O acute
1198 DB 22,0E9H ; U acute
1199; DB 21,0EDH add in later date ; Y acute
1200CP850_AC_UP_T1_END: ;
1201 ;
1202 DW 0 ; Size of xlat table - null table
1203 ;
1204CP850_AC_UP_END: ;
1205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1206; CODE PAGE: 850
1207; STATE: Acute Space Bar
1208; KEYBOARD TYPES: All
1209; TABLE TYPE: Translate
1210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1211 DW CP850_AC_LA_END-$ ; length of state section
1212 DB ACUTE_SPACE ; State ID
1213 DW ANY_KB ; Keyboard Type
1214 DB 0EFH,0 ; error character = standalone accent
1215 ;
1216 DW CP850_AC_LA_T1_END-$ ; Size of xlat table
1217 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1218 DB 1 ; number of scans
1219 DB 57,0EFH ; scan code,ASCII - SPACE
1220CP850_AC_LA_T1_END: ;
1221 ;
1222 DW 0 ; Size of xlat table - null table
1223 ;
1224CP850_AC_LA_END: ;
1225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1226; CODE PAGE: 850
1227; STATE: Diaresis Upper
1228; KEYBOARD TYPES: All
1229; TABLE TYPE: Translate
1230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1231 DW CP850_DI_UP_END-$ ; length of state section
1232 DB DIARESIS_UPPER ; State ID
1233 DW ANY_KB ; Keyboard Type
1234 DB 249,0 ; error character = standalone accent
1235 ;
1236 DW CP850_DI_UP_T1_END-$ ; Size of xlat table
1237 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1238 DB 2 ; number of scans
1239 DB 18,0D3H ; E diaeresis
1240 DB 23,0D8H ; I diaeresis
1241CP850_DI_UP_T1_END: ;
1242 ;
1243 DW 0 ; Size of xlat table - null table
1244 ;
1245CP850_DI_UP_END: ; length of state section
1246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1247; CODE PAGE: 850
1248; STATE: Diaresis Space Bar
1249; KEYBOARD TYPES: All
1250; TABLE TYPE: Translate
1251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1252 DW CP850_DI_LA_END-$ ; length of state section
1253 DB DIARESIS_SPACE ; State ID
1254 DW ANY_KB ; Keyboard Type
1255 DB 249,0 ; error character = standalone accent
1256 ;
1257 DW CP850_DI_LA_T1_END-$ ; Size of xlat table
1258 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1259 DB 1 ; number of scans
1260 DB 57,249 ; error character = standalone accent
1261CP850_DI_LA_T1_END: ;
1262 ;
1263 DW 0 ; Size of xlat table - null table
1264CP850_DI_LA_END: ; length of state section
1265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1266; CODE PAGE: 850
1267; STATE: Grave Upper
1268; KEYBOARD TYPES: All
1269; TABLE TYPE: Translate
1270;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1271 DW CP850_GR_UP_END-$ ; length of state section
1272 DB GRAVE_UPPER ; State ID
1273 DW ANY_KB ; Keyboard Type
1274 DB 96,0 ; error character = standalone accent
1275 ;
1276 DW CP850_GR_UP_T1_END-$ ; Size of xlat table
1277 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1278 DB 5 ; number of scans
1279 DB 30,0B7H ; A grave
1280 DB 18,0D4H ; E grave
1281 DB 23,0DEH ; I grave
1282 DB 24,0E3H ; O grave
1283 DB 22,0EBH ; U grave
1284CP850_GR_UP_T1_END: ;
1285 ;
1286 DW 0 ; Size of xlat table - null table
1287 ;
1288CP850_GR_UP_END: ; length of state section
1289;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1290; CODE PAGE: 850
1291; STATE: Circumflex Upper
1292; KEYBOARD TYPES: All
1293; TABLE TYPE: Translate
1294;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1295 DW CP850_CI_UP_END-$ ; length of state section
1296 DB CIRCUMFLEX_UPPER ; State ID
1297 DW ANY_KB ; Keyboard Type
1298 DB 94,0 ; error character = standalone accent
1299 ;
1300 DW CP850_CI_UP_T1_END-$ ; Size of xlat table
1301 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1302 DB 5 ; number of scans
1303 DB 30,0B6H ; A circumflex
1304 DB 18,0D2H ; E circumflex
1305 DB 23,0D7H ; I circumflex
1306 DB 24,0E2H ; O circumflex
1307 DB 22,0EAH ; U circumflex
1308CP850_CI_UP_T1_END: ;
1309 ;
1310 DW 0 ; Size of xlat table - null table
1311 ;
1312CP850_CI_UP_END: ; length of state section
1313 ;
1314 DW 0 ; LAST STATE
1315CP850_XLAT_END: ;
1316;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1317;
1318;
1319;
1320;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1321CODE ENDS ;
1322 END ;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFNL.ASM b/v4.0/src/DEV/KEYBOARD/KDFNL.ASM
new file mode 100644
index 0000000..24ca7b0
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFNL.ASM
@@ -0,0 +1,1515 @@
1;; LATEST CHANGE ALT & CTL
2 PAGE ,132
3 TITLE DOS - Keyboard Definition File
4
5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6;; DOS - - NLS Support - Keyboard Defintion File
7;; (c) Copyright 1988 Microsoft
8;;
9;; This file contains the keyboard tables for Netherlands
10;;
11;; Linkage Instructions:
12;; Refer to KDF.ASM.
13;;
14;; Modded from Belgian - DTF 20-Aug-86; 08-Sep-86
15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
16 ;;
17 INCLUDE KEYBSHAR.INC ;;
18 INCLUDE POSTEQU.INC ;;
19 INCLUDE KEYBMAC.INC ;;
20 ;;
21 PUBLIC NL_LOGIC ;;
22 PUBLIC NL_437_XLAT ;;
23 PUBLIC NL_850_XLAT ;;
24 ;;
25CODE SEGMENT PUBLIC 'CODE' ;;
26 ASSUME CS:CODE,DS:CODE ;;
27 ;;
28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
29;; Standard translate table options are a liner search table
30;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
32 ;;
33STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
34 ;;
35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
36;;***************************************
37;; NL State Logic
38;;***************************************
39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
40 ;;
41 ;;
42NL_LOGIC:
43
44 DW LOGIC_END-$ ;; length
45 ;;
46 DW 0 ;; special features
47 ;;
48 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
49 ;;
50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
51;; OPTIONS: If we find a scan match in
52;; an XLATT or SET_FLAG operation then
53;; exit from INT 9.
54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
55 ;;
56 OPTION EXIT_IF_FOUND ;;
57 ;;
58 ;;
59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
60;; Dead key definitions must come before
61;; dead key translations to handle
62;; dead key + dead key.
63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
64 ;;
65 IFF EITHER_CTL,NOT ;;
66 IFF EITHER_ALT,NOT ;;
67 IFF EITHER_SHIFT ;;
68 SET_FLAG DEAD_UPPER ;;
69 ELSEF ;;
70 SET_FLAG DEAD_LOWER ;;
71 ENDIFF ;;
72 ELSEF ;;
73 IFKBD G_KB+P12_KB ;; For ENHANCED keyboard some
74 ANDF R_ALT_SHIFT ;; dead keys are on third shift
75 ANDF EITHER_SHIFT,NOT ;; which is accessed via the altgr key
76 SET_FLAG DEAD_THIRD ;;
77 ENDIFF ;;
78 ENDIFF ;;
79 ENDIFF ;;
80 ;;
81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
82;; ACUTE ACCENT TRANSLATIONS
83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
84 ;;
85ACUTE_PROC: ;;
86 ;;
87 IFF ACUTE,NOT ;;
88 GOTO CEDILLA_PROC ;;
89 ENDIFF ;;
90 ;;
91 RESET_NLS ;;
92 IFF R_ALT_SHIFT,NOT ;;
93 XLATT ACUTE_SPACE ;;
94 ENDIFF ;;
95 IFF EITHER_CTL,NOT ;;
96 ANDF EITHER_ALT,NOT ;;
97 IFF EITHER_SHIFT ;;
98 IFF CAPS_STATE ;;
99 XLATT ACUTE_LOWER ;;
100 ELSEF ;;
101 XLATT ACUTE_UPPER ;;
102 ENDIFF ;;
103 ELSEF ;;
104 IFF CAPS_STATE ;;
105 XLATT ACUTE_UPPER ;;
106 ELSEF ;;
107 XLATT ACUTE_LOWER ;;
108 ENDIFF ;;
109 ENDIFF ;;
110 ENDIFF ;;
111 ;;
112INVALID_ACUTE: ;;
113 PUT_ERROR_CHAR ACUTE_SPACE ;; If we get here then either the XLATT
114 BEEP ;; failed or we are ina bad shift state.
115 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
116 ;; through to generate the second char.
117 ;; Note that the dead key flag will be
118 ;; reset before we get here.
119 ;;
120 ;;
121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
122;; CEDILLA ACCENT TRANSLATIONS
123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
124 ;;
125CEDILLA_PROC: ;;
126 ;;
127 IFF CEDILLA,NOT ;;
128 GOTO TILDE_PROC ;;
129 ENDIFF ;;
130 ;;
131 RESET_NLS ;;
132 IFF R_ALT_SHIFT,NOT ;;
133 XLATT CEDILLA_SPACE ;;
134 ENDIFF ;;
135 IFF EITHER_CTL,NOT ;;
136 ANDF EITHER_ALT,NOT ;;
137 IFF EITHER_SHIFT ;;
138 IFF CAPS_STATE ;;
139 XLATT CEDILLA_LOWER ;;
140 ELSEF ;;
141 XLATT CEDILLA_UPPER ;;
142 ENDIFF ;;
143 ELSEF ;;
144 IFF CAPS_STATE ;;
145 XLATT CEDILLA_UPPER ;;
146 ELSEF ;;
147 XLATT CEDILLA_LOWER ;;
148 ENDIFF ;;
149 ENDIFF ;;
150 ENDIFF ;;
151 ;;
152INVALID_CEDILLA: ;;
153 PUT_ERROR_CHAR CEDILLA_SPACE ;; If we get here then either the XLATT
154 BEEP ;; failed or we are ina bad shift state.
155 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
156 ;; through to generate the second char.
157 ;; Note that the dead key flag will be
158 ;; reset before we get here.
159 ;;
160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
161;; TILDE ACCENT TRANSLATIONS
162;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
163 ;;
164TILDE_PROC: ;;
165 ;;
166 IFF TILDE,NOT ;;
167 GOTO DIARESIS_PROC ;;
168 ENDIFF ;;
169 ;;
170 RESET_NLS ;;
171 IFF R_ALT_SHIFT,NOT ;;
172 XLATT TILDE_SPACE ;;
173 ENDIFF ;;
174 IFF EITHER_CTL,NOT ;;
175 ANDF EITHER_ALT,NOT ;;
176 IFF EITHER_SHIFT ;;
177 IFF CAPS_STATE ;;
178 XLATT TILDE_LOWER ;;
179 ELSEF ;;
180 XLATT TILDE_UPPER ;;
181 ENDIFF ;;
182 ELSEF ;;
183 IFF CAPS_STATE,NOT ;;
184 XLATT TILDE_LOWER ;;
185 ELSEF ;;
186 XLATT TILDE_UPPER ;;
187 ENDIFF ;;
188 ENDIFF ;;
189 ENDIFF ;;
190 ;;
191INVALID_TILDE: ;;
192 PUT_ERROR_CHAR TILDE_SPACE ;; standalone accent
193 BEEP ;; Invalid dead key combo.
194 GOTO NON_DEAD ;;
195 ;;
196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
197;; DIARESIS ACCENT TRANSLATIONS
198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
199 ;;
200DIARESIS_PROC: ;;
201 ;;
202 IFF DIARESIS,NOT ;;
203 GOTO GRAVE_PROC ;;
204 ENDIFF ;;
205 ;;
206 RESET_NLS ;;
207 IFF R_ALT_SHIFT,NOT ;;
208 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
209 ENDIFF ;;
210 IFF EITHER_CTL,NOT ;;
211 ANDF EITHER_ALT,NOT ;;
212 IFF EITHER_SHIFT ;;
213 IFF CAPS_STATE ;;
214 XLATT DIARESIS_LOWER ;;
215 ELSEF ;;
216 XLATT DIARESIS_UPPER ;;
217 ENDIFF ;;
218 ELSEF ;;
219 IFF CAPS_STATE ;;
220 XLATT DIARESIS_UPPER ;;
221 ELSEF ;;
222 XLATT DIARESIS_LOWER ;;
223 ENDIFF ;;
224 ENDIFF ;;
225 ENDIFF ;;
226 ;;
227INVALID_DIARESIS: ;;
228 PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent
229 BEEP ;; Invalid dead key combo.
230 GOTO NON_DEAD ;;
231 ;;
232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
233;; GRAVE ACCENT TRANSLATIONS
234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
235 ;;
236GRAVE_PROC: ;;
237 ;;
238 IFF GRAVE,NOT ;;
239 GOTO CIRCUMFLEX_PROC ;;
240 ENDIFF ;;
241 ;;
242 RESET_NLS ;;
243 IFF R_ALT_SHIFT,NOT ;;
244 XLATT GRAVE_SPACE ;;
245 ENDIFF ;;
246 IFF EITHER_CTL,NOT ;;
247 ANDF EITHER_ALT,NOT ;;
248 IFF EITHER_SHIFT ;;
249 IFF CAPS_STATE ;;
250 XLATT GRAVE_LOWER ;;
251 ELSEF ;;
252 XLATT GRAVE_UPPER ;;
253 ENDIFF ;;
254 ELSEF ;;
255 IFF CAPS_STATE,NOT ;;
256 XLATT GRAVE_LOWER ;;
257 ELSEF ;;
258 XLATT GRAVE_UPPER ;;
259 ENDIFF ;;
260 ENDIFF ;;
261 ENDIFF ;;
262 ;;
263INVALID_GRAVE: ;;
264 PUT_ERROR_CHAR GRAVE_SPACE ;; standalone accent
265 BEEP ;; Invalid dead key combo.
266 GOTO NON_DEAD ;;
267 ;;
268;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
269;; CIRCUMFLEX ACCENT TRANSLATIONS
270;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
271 ;;
272CIRCUMFLEX_PROC: ;;
273 ;;
274 IFF CIRCUMFLEX,NOT ;;
275 GOTO NON_DEAD ;;
276 ENDIFF ;;
277 ;;
278 RESET_NLS ;;
279 IFF R_ALT_SHIFT,NOT ;;
280 XLATT CIRCUMFLEX_SPACE ;;
281 ENDIFF ;;
282 IFF EITHER_CTL,NOT ;;
283 ANDF EITHER_ALT,NOT ;;
284 IFF EITHER_SHIFT ;;
285 IFF CAPS_STATE ;;
286 XLATT CIRCUMFLEX_LOWER ;;
287 ELSEF ;;
288 XLATT CIRCUMFLEX_UPPER ;;
289 ENDIFF ;;
290 ELSEF ;;
291 IFF CAPS_STATE,NOT ;;
292 XLATT CIRCUMFLEX_LOWER ;;
293 ELSEF ;;
294 XLATT CIRCUMFLEX_UPPER ;;
295 ENDIFF ;;
296 ENDIFF ;;
297 ENDIFF ;;
298 ;;
299INVALID_CIRCUMFLEX: ;;
300 PUT_ERROR_CHAR CIRCUMFLEX_SPACE ;; standalone accent
301 BEEP ;; Invalid dead key combo.
302 GOTO NON_DEAD ;;
303 ;;
304 ;;
305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
306;; Upper, lower and third shifts
307;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
308NON_DEAD: ;;
309 ;;
310 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
311 ANDF LC_E0 ;; the "/" on the numeric pad of the
312 EXIT_STATE_LOGIC ;; G keyboard
313 ENDIFF ;;
314 ;;
315;;***BD ADDED FOR ALT, CTRL CASES ;;
316;;***MJS Added because of diferences ;;
317;;between KYB Types ;;
318 ;;
319 IFKBD AT_KB+XT_KB ;;
320 IFF EITHER_CTL,NOT ;;
321 IFF ALT_SHIFT ;; ALT - case
322 XLATT ALT_CASE ;;
323 ENDIFF ;;
324 ELSEF ;;
325 IFF EITHER_ALT,NOT ;; CTRL - case
326 XLATT CTRL_CASE ;;
327 ENDIFF ;;
328 ENDIFF ;;
329 ENDIFF ;;
330 ;;
331;;***MJS repeated for G, P12 ;;
332 IFKBD G_KB+P12_KB ;;
333 IFF EITHER_CTL,NOT ;;
334 ANDF ALT_SHIFT ;;
335 ANDF R_ALT_SHIFT,NOT ;;
336 XLATT ALT_CASE ;;
337 ENDIFF ;;
338 IFF EITHER_CTL ;;
339 ANDF ALT_SHIFT ;; ALT - case
340 ANDF R_ALT_SHIFT,NOT ;;
341 XLATT ALT_CASE ;;
342 ENDIFF ;;
343 IFF EITHER_CTL ;;
344 ANDF EITHER_ALT,NOT ;; CTRL - case
345 XLATT CTRL_CASE ;;
346 ENDIFF ;;
347 ENDIFF ;;
348;;***BD END OF ADDITION
349 IFF EITHER_CTL,NOT ;; Lower and upper case. Alphabetic
350 IFF EITHER_ALT,NOT ;; keys are affected by CAPS LOCK.
351 IFF EITHER_SHIFT ;; Numeric keys are not.
352;;***BD ADDED FOR NUMERIC PAD
353 IFF NUM_STATE,NOT ;;
354 XLATT NUMERIC_PAD ;;
355 ENDIFF ;;
356;;***BD END OF ADDITION
357 XLATT NON_ALPHA_UPPER ;;
358 IFF CAPS_STATE ;;
359 XLATT ALPHA_LOWER ;;
360 ELSEF ;;
361 XLATT ALPHA_UPPER ;;
362 ENDIFF ;;
363 ELSEF ;;
364;;***BD ADDED FOR NUMERIC PAD
365 IFF NUM_STATE ;;
366 XLATT NUMERIC_PAD ;;
367 ENDIFF ;;
368;;***BD END OF ADDITION
369 XLATT NON_ALPHA_LOWER ;;
370 IFF CAPS_STATE ;;
371 XLATT ALPHA_UPPER ;;
372 ELSEF ;;
373 XLATT ALPHA_LOWER ;;
374 ENDIFF ;;
375 ENDIFF ;; Third and Fourth shifts
376 ELSEF ;; ctl off, alt on at this point
377 IFKBD XT_KB+AT_KB ;; XT, AT, keyboards. Nordics
378 IFF EITHER_SHIFT ;; only.
379 XLATT FOURTH_SHIFT ;; ALT + shift
380 ELSEF ;;
381 XLATT THIRD_SHIFT ;; ALT
382 ENDIFF ;;
383 ELSEF ;; ENHANCED keyboard
384 IFF R_ALT_SHIFT ;; ALTGr
385 ANDF EITHER_SHIFT,NOT ;;
386 XLATT THIRD_SHIFT ;;
387 ENDIFF ;;
388 ENDIFF ;;
389 ENDIFF ;;
390 ENDIFF ;;
391 ;;
392 EXIT_STATE_LOGIC ;;
393 ;;
394LOGIC_END: ;;
395 ;;
396;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
397;;***************************************
398;; NL Common Translate Section
399;; This section contains translations for the lower 128 characters
400;; only since these will never change from code page to code page.
401;; In addition the dead key "Set Flag" tables are here since the
402;; dead keys are on the same keytops for all code pages.
403;;***************************************
404;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
405 ;;
406 PUBLIC NL_COMMON_XLAT ;;
407NL_COMMON_XLAT: ;;
408 ;;
409 DW COMMON_XLAT_END-$ ;; length of section
410 DW -1 ;; code page
411 ;;
412 ;;
413;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
414;; CODE PAGE: Common
415;; STATE: Lower Shift Dead Key
416;; KEYBOARD TYPES : G_KB + P12_KB
417;; TABLE TYPE: Flag Table
418;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
419 ;;
420 DW COM_DK_LO_END-$ ;; length of state section
421 DB DEAD_LOWER ;; State ID
422 DW G_KB + P12_KB ;; Keyboard Type
423 DB -1,-1 ;; Buffer entry for error character
424 ;; Set Flag Table
425 DW 2 ;; number of entries
426 DB 26 ;; scan code
427 FLAG DIARESIS ;; flag bit to set
428 DB 40 ;;
429 FLAG ACUTE ;;
430 ;;
431 ;;
432COM_DK_LO_END: ;;
433 ;;
434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
435;; CODE PAGE: Common
436;; STATE: Upper Shift Dead Key
437;; KEYBOARD TYPES : G_KB + P12_KB
438;; TABLE TYPE: Flag Table
439;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
440 ;;
441 DW COM_DK_UP_END-$ ;; length of state section
442 DB DEAD_UPPER ;; State ID
443 DW G_KB + P12_KB ;; Keyboard Type
444 DB -1,-1 ;; Buffer entry for error character
445 ;; Set Flag Table
446 DW 3 ;; number of entries
447 DB 26 ;; scan code
448 FLAG CIRCUMFLEX ;; flag bit to set
449 DB 40 ;;
450 FLAG GRAVE ;;
451 DB 13 ;;
452 FLAG TILDE ;;
453 ;;
454COM_DK_UP_END: ;;
455 ;;
456;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
457;; CODE PAGE: Common
458;; STATE: Third Shift Dead Key
459;; KEYBOARD TYPES : G_KB + P12_KB
460;; TABLE TYPE: Flag Table
461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
462 ;;
463 DW COM_DK_TH_END-$ ;; length of state section
464 DB DEAD_THIRD ;; State ID
465 DW G_KB + P12_KB ;; Keyboard Type
466 DB -1,-1 ;; Buffer entry for error character
467 ;; Set Flag Table
468 DW 1 ;; number of entries
469 DB 13 ;;
470 FLAG CEDILLA ;;
471 ;;
472COM_DK_TH_END: ;;
473 ;;
474 ;;
475 ;;
476;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
477;; CODE PAGE: Common
478;; STATE: Alpha Lower Case
479;; KEYBOARD TYPES : G_KB + P12_KB
480;; TABLE TYPE: Translate
481;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
482 ;;
483; DW COM_AL_LO_END-$ ;; length of state section
484; DB ALPHA_LOWER ;; State ID
485; DW G_KB + P12_KB ;; Keyboard Type
486; DB -1,-1 ;; Buffer entry for error character
487 ;;
488; DW COM_AL_LO_T1_END-$ ;; Size of xlat table
489; DB STANDARD_TABLE ;; xlat options:
490; DB 0 ;; number of entries
491;COM_AL_LO_T1_END: ;;
492 ;;
493; DW 0 ;; Size of xlat table - null table
494 ;;
495;COM_AL_LO_END: ;;
496 ;;
497;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
498;; CODE PAGE: Common
499;; STATE: Alpha Upper Case
500;; KEYBOARD TYPES : G_KB + P12_KB
501;; TABLE TYPE: Translate
502;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
503; ;;
504; DW COM_AL_UP_END-$ ;; length of state section
505; DB ALPHA_UPPER ;; State ID
506; DW G_KB + P12_KB ;; Keyboard Type
507; DB -1,-1 ;; Buffer entry for error character
508 ;;
509; DW COM_AL_UP_T1_END-$ ;; Size of xlat table
510; DB STANDARD_TABLE ;; xlat options:
511; DB 0 ;; number of entries
512;COM_AL_UP_T1_END: ;;
513; ;;
514; DW 0 ;; Size of xlat table - null table
515 ;;
516;COM_AL_UP_END: ;;
517 ;;
518 ;;
519;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
520;; CODE PAGE: Common
521;; STATE: Non-Alpha Lower Case
522;; KEYBOARD TYPES : G_KB + P12_KB
523;; TABLE TYPE: Translate
524;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
525 ;;
526 DW COM_NA_LO_END-$ ;; length of state section
527 DB NON_ALPHA_LOWER ;; State ID
528 DW G_KB + P12_KB ;; Keyboard Type
529 DB -1,-1 ;; Buffer entry for error character
530 ;;
531 DW COM_NA_LO_T1_END-$ ;; Size of xlat table
532 DB STANDARD_TABLE ;; xlat options:
533 DB 10 ;; number of entries
534 DB 41,"@" ;; at sign
535 DB 12,"/" ;;
536 DB 13,0F8H ;;
537 DB 27,"*" ;;
538 DB 39,'+' ;;
539 DB 43,'<' ;;
540 DB 51,',' ;;
541 DB 52,'.' ;;
542 DB 53,'-' ;;
543 DB 86,']'
544COM_NA_LO_T1_END: ;;
545 ;;
546 DW 0 ;; Size of xlat table - null table
547 ;;
548COM_NA_LO_END: ;;
549 ;;
550;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
551;; CODE PAGE: Common
552;; STATE: Non-Alpha Upper Case
553;; KEYBOARD TYPES : G_KB + P12_KB
554;; TABLE TYPE: Translate
555;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
556 ;;
557 DW COM_NA_UP_END-$ ;; length of state section
558 DB NON_ALPHA_UPPER ;; State ID
559 DW G_KB + P12_KB ;; Keyboard Type
560 DB -1,-1 ;; Buffer entry for error character
561 ;;
562 DW COM_NA_UP_T1_END-$ ;; Size of xlat table
563 DB STANDARD_TABLE ;; xlat options:
564 DB 17 ;; number of entries
565 DB 2,'!' ;;
566 DB 3,'"' ;;
567 DB 4,'#' ;;
568 DB 5,'$' ;;
569 DB 6,'%' ;;
570 DB 7,'&' ;;
571 DB 8,'_' ;;
572 DB 9,'(' ;;
573 DB 10,')' ;;
574 DB 11,"'" ;;
575 DB 12,'?' ;;
576 DB 39,0F1H ;;
577 DB 43,'>' ;;
578 DB 51,';' ;;
579 DB 52,':' ;;
580 DB 53,'=' ;;
581 DB 86,'['
582COM_NA_UP_T1_END: ;;
583 ;;
584 DW 0 ;; Size of xlat table - null table
585 ;;
586COM_NA_UP_END: ;;
587 ;;
588 ;;
589;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
590;; CODE PAGE: Common
591;; STATE: Third Shift
592;; KEYBOARD TYPES : G_KB + P12_KB
593;; TABLE TYPE: Translate
594;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
595 ;;
596 DW COM_THIRD_END-$ ;; length of state section
597 DB THIRD_SHIFT ;; State ID
598 DW G_KB + P12_KB ;; Keyboard Type
599 DB -1,-1 ;; Buffer entry for error character
600 ;;
601 DW COM_THIRD_T1_END-$ ;; Size of xlat table
602 DB STANDARD_TABLE ;; xlat options:
603 DB 16 ;; number of entries
604 DB 41,0AAH ;;
605 DB 2,0FBH ;;
606 DB 3,0FDH ;;
607 DB 4,0FCH ;;
608 DB 5,0ACH ;;
609 DB 6,0ABH ;;
610 DB 7,0F3H ;;
611 DB 8,9CH ;;
612 DB 9,'{' ;;
613 DB 10,'}' ;;
614 DB 12,5CH ;;
615 DB 31,0E1H ;;
616 DB 44,0AEH ;;
617 DB 45,0AFH ;;
618; DB 46,9BH ;; special case
619 DB 50,0E6H ;; mu character
620 DB 52,0FAH ;;
621COM_THIRD_T1_END: ;;
622 ;;
623 DW 0 ;; Last xlat table
624COM_THIRD_END: ;;
625 ;;
626;;******************************
627;;***BD - ADDED FOR NUMERIC PAD (DECIMAL SEPERATOR)
628;;******************************
629;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
630;; CODE PAGE: Common
631;; STATE: Numeric Key Pad
632;; KEYBOARD TYPES : G_KB (P12 change does not apply)
633;; TABLE TYPE: Translate
634;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
635 ;;
636 DW COM_PAD_K1_END-$ ;; length of state section
637 DB NUMERIC_PAD ;; State ID
638 DW G_KB ;; Keyboard Type
639 DB -1,-1 ;; Buffer entry for error character
640 ;;
641 DW COM_PAD_K1_T1_END-$ ;; Size of xlat table
642 DB STANDARD_TABLE ;; xlat options:
643 DB 1 ;; number of entries
644 DB 83,',' ;; decimal seperator = ,
645COM_PAD_K1_T1_END: ;;
646 ;;
647 DW 0 ;; Size of xlat table - null table
648 ;;
649COM_PAD_K1_END: ;;
650 ;;
651;;******************************
652;;***BD - ADDED FOR ALT CASE
653;;******************************
654;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
655;; CODE PAGE: Common
656;; STATE: Alt Case
657;; KEYBOARD TYPES: G, P12
658;; TABLE TYPE: Translate
659;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
660 ;;
661 DW COM_ALT_K1_END-$ ;; length of state section
662 DB ALT_CASE ;; State ID
663 DW G_KB+P12_KB ;; Keyboard Type
664 DB -1,-1 ;; Buffer entry for error character
665 ;;
666 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
667 DB TYPE_2_TAB ;; xlat options:
668 DB 0 ;; 2 number of entries
669; DB 12,-1,-1 ;;
670; DB 53,0,82H ;;
671COM_ALT_K1_T1_END: ;;
672 ;;
673 DW 0 ;; Size of xlat table - null table
674 ;;
675COM_ALT_K1_END: ;;
676 ;;
677;;******************************
678;;***BD - ADDED FOR CTRL CASE
679;;******************************
680;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
681;; CODE PAGE: Common
682;; STATE: Ctrl Case
683;; KEYBOARD TYPES : G_KB + P12_KB
684;; TABLE TYPE: Translate
685;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
686 ;;
687 DW COM_CTRL_K1_END-$ ;; length of state section
688 DB CTRL_CASE ;; State ID
689 DW G_KB + P12_KB ;; Keyboard Type
690 DB -1,-1 ;; Buffer entry for error character
691 ;;
692 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
693 DB TYPE_2_TAB ;; xlat options:
694 DB 5 ;; number of entries
695 DB 12,-1,-1 ;;
696 DB 26,-1,-1 ;;
697 DB 27,-1,-1 ;;
698 DB 43,-1,-1 ;;
699 DB 53,01FH,35h ;;
700COM_CTRL_K1_T1_END: ;;
701 ;;
702 DW 0 ;; Size of xlat table - null table
703 ;;
704COM_CTRL_K1_END: ;;
705 ;;
706;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
707;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
708;; CODE PAGE: Common
709;; STATE: Grave Lower
710;; KEYBOARD TYPES : G_KB + P12_KB
711;; TABLE TYPE: Translate
712;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
713 ;;
714 DW COM_GR_LO_END-$ ;; length of state section
715 DB GRAVE_LOWER ;; State ID
716 DW G_KB + P12_KB ;; Keyboard Type
717 DB 60H,0 ;; error character = standalone accent
718 ;;
719 DW COM_GR_LO_T1_END-$ ;; Size of xlat table
720 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
721 DB 5 ;; number of scans
722 DB 18,'Š' ;; scan code,ASCII - e
723 DB 30,'…' ;; scan code,ASCII - a
724 DB 24,'•' ;; scan code,ASCII - o
725 DB 22,'—' ;; scan code,ASCII - u
726 DB 23,'' ;; scan code,ASCII - i
727COM_GR_LO_T1_END: ;;
728 ;;
729 DW 0 ;; Size of xlat table - null table
730 ;;
731COM_GR_LO_END: ;; length of state section
732 ;;
733;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
734;; CODE PAGE: Common
735;; STATE: Grave Upper Case
736;; KEYBOARD TYPES : G_KB + P12_KB
737;; TABLE TYPE: Translate
738;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
739 ;;
740 DW COM_GR_UP_END-$ ;; length of state section
741 DB GRAVE_UPPER ;; State ID
742 DW G_KB + P12_KB ;; Keyboard Type
743 DB 60H,0 ;; error character = standalone accent
744 ;;
745 DW COM_GR_UP_T1_END-$ ;; Size of xlat table
746 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
747 DB 0 ;; number of scans
748COM_GR_UP_T1_END: ;;
749 ;;
750 DW 0 ;; Size of xlat table - null table
751 ;;
752COM_GR_UP_END: ;; length of state section
753 ;;
754 ;;
755;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
756;; CODE PAGE: Common
757;; STATE: Grave Space Bar
758;; KEYBOARD TYPES : G_KB + P12_KB
759;; TABLE TYPE: Translate
760;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
761 ;;
762 DW COM_GR_SP_END-$ ;; length of state section
763 DB GRAVE_SPACE ;; State ID
764 DW G_KB + P12_KB ;; Keyboard Type
765 DB 60H,0 ;; error character = standalone accent
766 ;;
767 DW COM_GR_SP_T1_END-$ ;; Size of xlat table
768 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
769 DB 1 ;; number of scans
770 DB 57,60H ;; STANDALONE GRAVE
771COM_GR_SP_T1_END: ;;
772 ;;
773 DW 0 ;; Size of xlat table - null table
774 ;;
775COM_GR_SP_END: ;; length of state section
776 ;;
777;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
778;; CODE PAGE: Common
779;; STATE: Circumflex Lower
780;; KEYBOARD TYPES : G_KB + P12_KB
781;; TABLE TYPE: Translate
782;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
783 ;;
784 DW COM_CI_LO_END-$ ;; length of state section
785 DB CIRCUMFLEX_LOWER ;; State ID
786 DW G_KB + P12_KB ;; Keyboard Type
787 DB 5EH,0 ;; error character = standalone accent
788 ;;
789 DW COM_CI_LO_T1_END-$ ;; Size of xlat table
790 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
791 DB 5 ;; number of scans
792 DB 30,'ƒ' ;; scan code,ASCII - a
793 DB 18,'ˆ' ;; scan code,ASCII - e
794 DB 24,'“' ;; scan code,ASCII - o
795 DB 22,'–' ;; scan code,ASCII - u
796 DB 23,'Œ' ;; scan code,ASCII - i
797COM_CI_LO_T1_END: ;;
798 ;;
799 DW 0 ;;
800 ;;
801COM_CI_LO_END: ;;
802 ;;
803;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
804;; CODE PAGE: Common
805;; STATE: Circumflex Upper
806;; KEYBOARD TYPES : G_KB + P12_KB
807;; TABLE TYPE: Translate
808;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
809 ;;
810 DW COM_CI_UP_END-$ ;; length of state section
811 DB CIRCUMFLEX_UPPER ;; State ID
812 DW G_KB + P12_KB ;; Keyboard Type
813 DB 5EH,0 ;; error character = standalone accent
814 ;;
815 DW COM_CI_UP_T1_END-$ ;; Size of xlat table
816 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
817 DB 0 ;; number of scans
818COM_CI_UP_T1_END: ;;
819 ;;
820 DW 0 ;;
821 ;;
822COM_CI_UP_END: ;;
823;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
824;; CODE PAGE: Common
825;; STATE: Circumflex Space Bar
826;; KEYBOARD TYPES : G_KB + P12_KB
827;; TABLE TYPE: Translate
828;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
829 ;;
830 DW COM_CI_SP_END-$ ;; length of state section
831 DB CIRCUMFLEX_SPACE ;; State ID
832 DW G_KB + P12_KB ;; Keyboard Type
833 DB 5EH,0 ;; error character = standalone accent
834 ;;
835 DW COM_CI_SP_T1_END-$ ;; Size of xlat table
836 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
837 DB 1 ;; number of scans
838 DB 57,5EH ;; STANDALONE CIRCUMFLEX
839COM_CI_SP_T1_END: ;;
840 ;;
841 DW 0 ;; Size of xlat table - null table
842 ;;
843COM_CI_SP_END: ;; length of state section
844 ;;
845;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
846;; CODE PAGE: Common
847;; STATE: Tilde Space Bar
848;; KEYBOARD TYPES : G_KB + P12_KB
849;; TABLE TYPE: Translate
850;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
851 ;;
852 DW COM_TI_SP_END-$ ;; length of state section
853 DB TILDE_SPACE ;; State ID
854 DW G_KB + P12_KB ;; Keyboard Type
855 DB 7EH,0 ;; error character = standalone accent
856 ;;
857 DW COM_TI_SP_T1_END-$ ;; Size of xlat table
858 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
859 DB 1 ;; number of scans
860 DB 57,7EH ;; STANDALONE TIDLE
861COM_TI_SP_T1_END: ;;
862 ;;
863 DW 0 ;; Size of xlat table - null table
864 ;;
865COM_TI_SP_END: ;; length of state section
866 ;;
867;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
868;; CODE PAGE: Common
869;; STATE: Cedilla lower
870;; KEYBOARD TYPES : G_KB + P12_KB
871;; TABLE TYPE: Translate
872;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
873 ;;
874 DW COM_CE_LO_END-$ ;; length of state section
875 DB CEDILLA_LOWER ;; State ID
876 DW G_KB + P12_KB ;; Keyboard Type
877 DB 0F7H,0 ;; error character = standalone accent
878 ;; CHNAGED MJS 31/10/86
879 DW COM_CE_LO_T1_END-$ ;; Size of xlat table
880 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
881 DB 1 ;; number of scans
882 DB 46,135 ;; scan code,ASCII - c
883COM_CE_LO_T1_END: ;;
884 ;;
885 DW 0 ;; Size of xlat table - null table
886 ;;
887COM_CE_LO_END: ;; length of state section
888 ;;
889;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
890;; CODE PAGE: Common
891;; STATE: CedilIa Upper Case
892;; KEYBOARD TYPES : G_KB + P12_KB
893;; TABLE TYPE: Translate
894;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
895 ;;
896 DW COM_CE_UP_END-$ ;; length of state section
897 DB CEDILLA_UPPER ;; State ID
898 DW G_KB + P12_KB ;; Keyboard Type
899 DB 0F7H,0 ;; error character = standalone accent
900 ;; CHANGED MJS 31/10/86
901 DW COM_CE_UP_T1_END-$ ;; Size of xlat table
902 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
903 DB 1 ;; number of scans
904 DB 46,128 ;; scan code,ASCII - C
905COM_CE_UP_T1_END: ;;
906 ;;
907 DW 0 ;; Size of xlat table - null table
908 ;;
909COM_CE_UP_END: ;; length of state section
910 ;;
911 ;;
912;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
913;; CODE PAGE: Common
914;; STATE: Cedilla Space Bar
915;; KEYBOARD TYPES : G_KB + P12_KB
916;; TABLE TYPE: Translate
917;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
918 ;;
919 DW COM_CE_SP_END-$ ;; length of state section
920 DB CEDILLA_SPACE ;; State ID
921 DW G_KB + P12_KB ;; Keyboard Type
922 DB 0F7H,0 ;; error character = standalone accent
923 ;; CHANGED MJS 31/10/86
924 DW COM_CE_SP_T1_END-$ ;; Size of xlat table
925 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
926 DB 1 ;; number of scans
927 DB 57,0F7H ;; STANDALONE CEDILLA
928COM_CE_SP_T1_END: ;;
929 ;;
930 DW 0 ;; Size of xlat table - null table
931 ;;
932COM_CE_SP_END: ;; length of state section
933;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
934;; CODE PAGE: Common
935;; STATE: Diaresis Lower Case
936;; KEYBOARD TYPES : G_KB + P12_KB
937;; TABLE TYPE: Translate
938;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
939 ;;
940 DW COM_DI_LO_END-$ ;; length of state section
941 DB DIARESIS_LOWER ;; State ID
942 DW G_KB + P12_KB ;; Keyboard Type
943 DB 0F9H,0 ;; error character = standalone accent
944 ;; CHANGED MJS 31/10/86
945 DW COM_DI_LO_T1_END-$ ;; Size of xlat table
946 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
947 DB 6 ;; number of scans
948 DB 18,'‰' ;; scan code,ASCII - e
949 DB 30,'„' ;; scan code,ASCII - a
950 DB 24,'”' ;; scan code,ASCII - o
951 DB 22,'' ;; scan code,ASCII - u
952 DB 23,'‹' ;; scan code,ASCII - i
953 DB 21,'˜' ;; scan code,ASCII - y
954COM_DI_LO_T1_END: ;;
955 ;;
956 DW 0 ;; Size of xlat table - null table
957 ;;
958COM_DI_LO_END: ;; length of state section
959 ;;
960;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
961;; CODE PAGE: Common
962;; STATE: Diaresis Space Bar
963;; KEYBOARD TYPES : G_KB + P12_KB
964;; TABLE TYPE: Translate
965;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
966 ;;
967 DW COM_DI_SP_END-$ ;; length of state section
968 DB DIARESIS_SPACE ;; State ID
969 DW G_KB + P12_KB ;; Keyboard Type
970 DB 0F9H,0 ;; error character = standalone accent
971 ;; CHANGED MJS 31/10/86
972 DW COM_DI_SP_T1_END-$ ;; Size of xlat table
973 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
974 DB 1 ;; number of scans
975 DB 57,0F9H ;; error character = standalone accent
976COM_DI_SP_T1_END: ;;
977 ;;
978 DW 0 ;; Size of xlat table - null table
979COM_DI_SP_END: ;; length of state section
980 ;;
981;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
982 DW 0 ;; Last State
983COMMON_XLAT_END: ;;
984 ;;
985;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
986;;***************************************
987;; NL Specific Translate Section for 437
988;;
989;;***************************************
990;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
991 ;;
992 PUBLIC NL_437_XLAT ;;
993NL_437_XLAT: ;;
994 ;;
995 DW CP437_XLAT_END-$ ;; length of section
996 DW 437 ;;
997;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
998;; CODE PAGE: 437
999;; STATE: Third Shift
1000;; KEYBOARD TYPES : G_KB + P12_KB
1001;; TABLE TYPE: Translate
1002;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1003 ;;
1004 DW CP437_THIRD_END-$ ;; length of state section
1005 DB THIRD_SHIFT ;; State ID
1006 DW G_KB + P12_KB ;; Keyboard Type
1007 DB -1,-1 ;; default ignore error state
1008 ;;
1009 DW CP437_THIRD_T1_END-$ ;; Size of xlat table
1010 DB STANDARD_TABLE ;; xlat options:
1011 DB 3 ;; number of scans
1012;; DB 2,7 ;; NO CHAR - JUST BELL should be super 1
1013;; ;; NOW COMM. MJS 31/10/86
1014;; DB 7,0FCH ;; NOW COMM. MJS 31/10/86
1015 DB 19,14H ;; NO CHAR - JUST BELL
1016;; ;; SHOULD O/P MJS 31/10/86
1017 DB 46,9BH ;; cent sign - ›
1018 DB 86,7CH ;; vertical bar
1019 ;;
1020CP437_THIRD_T1_END: ;;
1021 ;;
1022 DW 0 ;; Size of xlat table - null table
1023 ;;
1024CP437_THIRD_END: ;;
1025 ;;
1026;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1027;; CODE PAGE: 437
1028;; STATE: Non-Alpha Lower Case
1029;; KEYBOARD TYPES : G_KB + P12_KB
1030;; TABLE TYPE: Translate
1031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1032 ;;
1033; DW CP437_NA_LO_END-$ ;; length of state section
1034; DB NON_ALPHA_LOWER ;; State ID
1035; DW G_KB + P12_KB ;; Keyboard Type
1036; DB -1,-1 ;; default ignore error state
1037 ;;
1038; DW CP437_NA_LO_T1_END-$ ;; Size of xlat table
1039; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1040; DB 0 ;; number of scans
1041;CP437_NA_LO_T1_END: ;;
1042 ;;
1043; DW 0 ;; Size of xlat table - null table
1044 ;;
1045;CP437_NA_LO_END: ;;
1046 ;;
1047;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1048;; CODE PAGE: 437
1049;; STATE: Non-Alpha Upper Case
1050;; KEYBOARD TYPES : G_KB + P12_KB
1051;; TABLE TYPE: Translate
1052;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1053 ;;
1054 DW CP437_NA_UP_END-$ ;; length of state section
1055 DB NON_ALPHA_UPPER ;; State ID
1056 DW G_KB + P12_KB ;; Keyboard Type
1057 DB -1,-1 ;; default ignore error state
1058 ;;
1059 DW CP437_NA_UP_T1_END-$ ;; Size of xlat table
1060 DB STANDARD_TABLE ;; xlat options:
1061 DB 2 ;; number of scans
1062 DB 27,0B3H ;; vert. line graphics
1063 DB 41,15H ;; Section symbol
1064CP437_NA_UP_T1_END: ;;
1065 ;;
1066 DW 0 ;; Size of xlat table - null table
1067 ;;
1068CP437_NA_UP_END: ;;
1069 ;;
1070;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1071;; CODE PAGE: CP437
1072;; STATE: Tilde Lower
1073;; KEYBOARD TYPES : G_KB + P12_KB
1074;; TABLE TYPE: Translate
1075;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1076 ;;
1077 DW CP437_TI_LO_END-$ ;; length of state section
1078 DB TILDE_LOWER ;; State ID
1079 DW G_KB + P12_KB ;; Keyboard Type
1080 DB 7EH,0 ;; error character = standalone accent
1081 ;;
1082 DW CP437_TI_LO_T1_END-$ ;; Size of xlat table
1083 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1084 DB 1 ;; number of scans
1085 DB 49,164 ;; scan code,ASCII - n
1086CP437_TI_LO_T1_END: ;;
1087 ;;
1088 DW 0 ;; Size of xlat table - null table
1089 ;;
1090CP437_TI_LO_END: ;; length of state section
1091 ;;
1092;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1093;; CODE PAGE: CP437
1094;; STATE: Tilde Upper Case
1095;; KEYBOARD TYPES : G_KB + P12_KB
1096;; TABLE TYPE: Translate
1097;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1098 ;;
1099 DW CP437_TI_UP_END-$ ;; length of state section
1100 DB TILDE_UPPER ;; State ID
1101 DW G_KB + P12_KB ;; Keyboard Type
1102 DB 7EH,0 ;; error character = standalone accent
1103 ;;
1104 DW CP437_TI_UP_T1_END-$ ;; Size of xlat table
1105 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1106 DB 1 ;; number of scans
1107 DB 49,165 ;; scan code,ASCII - N
1108CP437_TI_UP_T1_END: ;;
1109 ;;
1110 DW 0 ;; Size of xlat table - null table
1111 ;;
1112CP437_TI_UP_END: ;; length of state section
1113 ;;
1114 ;;
1115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1116;; CODE PAGE: CP437
1117;; STATE: Acute Lower Case
1118;; KEYBOARD TYPES : G_KB + P12_KB
1119;; TABLE TYPE: Translate
1120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1121 ;;
1122 DW CP437_AC_LO_END-$ ;; length of state section
1123 DB ACUTE_LOWER ;; State ID
1124 DW G_KB + P12_KB ;; Keyboard Type
1125 DB 027H,0 ;; error character = standalone accent
1126 ;; CHANGED MJS 31/10/86
1127 DW CP437_AC_LO_T1_END-$ ;; Size of xlat table
1128 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1129 DB 5 ;; number of scans
1130 DB 30,' ' ;; a acute
1131 DB 18,'‚' ;; e acute
1132 DB 23,'¡' ;; i acute
1133 DB 24,'¢' ;; o acute
1134 DB 22,'£' ;; u acute
1135CP437_AC_LO_T1_END: ;;
1136 ;;
1137 DW 0 ;; Size of xlat table - null table
1138 ;;
1139CP437_AC_LO_END: ;;
1140 ;;
1141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1142;; CODE PAGE: CP437
1143;; STATE: Acute Upper Case
1144;; KEYBOARD TYPES : G_KB + P12_KB
1145;; TABLE TYPE: Translate
1146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1147 ;;
1148 DW CP437_AC_UP_END-$ ;; length of state section
1149 DB ACUTE_UPPER ;; State ID
1150 DW G_KB + P12_KB ;; Keyboard Type
1151 DB 027H,0 ;; error character = standalone accent
1152 ;; CHANGED MJS 31/10/86
1153 DW CP437_AC_UP_T1_END-$ ;; Size of xlat table
1154 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1155 DB 1 ;; number of scans
1156 DB 18,'' ;; scan code,ASCII - e
1157CP437_AC_UP_T1_END: ;;
1158 ;;
1159 DW 0 ;; Size of xlat table - null table
1160 ;;
1161CP437_AC_UP_END: ;;
1162 ;;
1163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1164;; CODE PAGE: CP437
1165;; STATE: Acute Space Bar
1166;; KEYBOARD TYPES : G_KB + P12_KB
1167;; TABLE TYPE: Translate
1168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1169 ;;
1170 DW CP437_AC_SP_END-$ ;; length of state section
1171 DB ACUTE_SPACE ;; State ID
1172 DW G_KB + P12_KB ;; Keyboard Type
1173 DB 027H,0 ;; error character = standalone accent
1174 ;; CHANGED MJS 34/10/86
1175 DW CP437_AC_SP_T1_END-$ ;; Size of xlat table
1176 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1177 DB 1 ;; number of scans
1178 DB 57,027H ;; scan code,ASCII - SPACE
1179CP437_AC_SP_T1_END: ;;
1180 ;;
1181 DW 0 ;; Size of xlat table - null table
1182 ;;
1183CP437_AC_SP_END: ;;
1184 ;;
1185;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1186;; CODE PAGE: CP437
1187;; STATE: Diaresis Upper Case
1188;; KEYBOARD TYPES : G_KB + P12_KB
1189;; TABLE TYPE: Translate
1190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1191 ;;
1192 DW CP437_DI_UP_END-$ ;; length of state section
1193 DB DIARESIS_UPPER ;; State ID
1194 DW G_KB + P12_KB ;; Keyboard Type
1195 DB 0F9H,0 ;; error character = standalone accent
1196 ;;
1197 DW CP437_DI_UP_T1_END-$ ;; Size of xlat table
1198 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1199 DB 3 ;; number of scans
1200 DB 30,'Ž' ;; scan code,ASCII - a
1201 DB 24,'™' ;; scan code,ASCII - o
1202 DB 22,'š' ;; scan code,ASCII - u
1203CP437_DI_UP_T1_END: ;;
1204 ;;
1205 DW 0 ;; Size of xlat table - null table
1206 ;;
1207CP437_DI_UP_END: ;; length of state section
1208 ;;
1209 ;;
1210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1211 DW 0 ;; LAST STATE
1212 ;;
1213CP437_XLAT_END: ;;
1214 ;;
1215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1216;;***************************************
1217;; NL Specific Translate Section for 850
1218;;***************************************
1219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1220 ;;
1221 PUBLIC NL_850_XLAT ;;
1222NL_850_XLAT: ;;
1223 ;;
1224 DW CP850_XLAT_END-$ ;; length of section
1225 DW 850 ;;
1226 ;;
1227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1228;; CODE PAGE: 850
1229;; STATE: Non-Alpha Upper Case
1230;; KEYBOARD TYPES : G_KB + P12_KB
1231;; TABLE TYPE: Translate
1232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1233 ;;
1234 DW CP850_NA_UP_END-$ ;; length of state section
1235 DB NON_ALPHA_UPPER ;; State ID
1236 DW G_KB + P12_KB ;; Keyboard Type
1237 DB -1,-1 ;; default ignore error state
1238 ;;
1239 DW CP850_NA_UP_T1_END-$ ;; Size of xlat table
1240 DB STANDARD_TABLE ;; xlat options:
1241 DB 2 ;; number of scans
1242 DB 27,07CH ;; vert line
1243 DB 41,0F5H ;; section symbol
1244CP850_NA_UP_T1_END: ;;
1245 ;;
1246 DW 0 ;; Size of xlat table - null table
1247 ;;
1248CP850_NA_UP_END: ;;
1249 ;;
1250;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1251;; CODE PAGE: 850
1252;; STATE: Third Shift
1253;; KEYBOARD TYPES : G_KB + P12_KB
1254;; TABLE TYPE: Translate
1255;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1256 ;;
1257 DW CP850_THIRD_END-$ ;; length of state section
1258 DB THIRD_SHIFT ;; State ID
1259 DW G_KB + P12_KB ;; Keyboard Type
1260 DB -1,-1 ;; default ignore error state
1261 ;;
1262 DW CP850_THIRD_T1_END-$ ;; Size of xlat table
1263 DB STANDARD_TABLE ;; xlat options:
1264 DB 3 ;; number of scans
1265;; DB 2,0FBH ;; NOW COMM. MJS 31/10/86
1266;; DB 7,0F3H ;; NOW COMM. MJS 31/10/86
1267 DB 19,0F4H ;;
1268 DB 46,0BDH ;; cent sign - ›
1269 DB 86,0DDH ;; true broken vertical
1270CP850_THIRD_T1_END: ;;
1271 ;;
1272 DW 0 ;; Size of xlat table - null table
1273 ;;
1274CP850_THIRD_END: ;;
1275 ;;
1276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1277;; CODE PAGE: CP850
1278;; STATE: Tilde Lower
1279;; KEYBOARD TYPES : G_KB + P12_KB
1280;; TABLE TYPE: Translate
1281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1282 ;;
1283 DW CP850_TI_LO_END-$ ;; length of state section
1284 DB TILDE_LOWER ;; State ID
1285 DW G_KB + P12_KB ;; Keyboard Type
1286 DB 7EH,0 ;; error character = standalone accent
1287 ;;
1288 DW CP850_TI_LO_T1_END-$ ;; Size of xlat table
1289 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1290 DB 3 ;; number of scans
1291 DB 30,0C6H ;; scan code,ASCII - a
1292 DB 24,0E4H ;; scan code,ASCII - o
1293 DB 49,164 ;; scan code,ASCII - n
1294CP850_TI_LO_T1_END: ;;
1295 ;;
1296 DW 0 ;; Size of xlat table - null table
1297 ;;
1298CP850_TI_LO_END: ;; length of state section
1299 ;;
1300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1301;; CODE PAGE: CP850
1302;; STATE: Tilde Upper Case
1303;; KEYBOARD TYPES : G_KB + P12_KB
1304;; TABLE TYPE: Translate
1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1306 ;;
1307 DW CP850_TI_UP_END-$ ;; length of state section
1308 DB TILDE_UPPER ;; State ID
1309 DW G_KB + P12_KB ;; Keyboard Type
1310 DB 7EH,0 ;; error character = standalone accent
1311 ;;
1312 DW CP850_TI_UP_T1_END-$ ;; Size of xlat table
1313 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1314 DB 3 ;; number of scans
1315 DB 30,0C7H ;; scan code,ASCII - A
1316 DB 24,0E5H ;; scan code,ASCII - O
1317 DB 49,165 ;; scan code,ASCII - N
1318CP850_TI_UP_T1_END: ;;
1319 ;;
1320 DW 0 ;; Size of xlat table - null table
1321 ;;
1322CP850_TI_UP_END: ;; length of state section
1323 ;;
1324 ;;
1325;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1326;; CODE PAGE: CP850 - NOW IN COMMON MJS 31/10/86
1327;; STATE: Cedilla lower
1328;; KEYBOARD TYPES : G_KB + P12_KB
1329;; TABLE TYPE: Translate
1330;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1331;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1332;; CODE PAGE: CP850 - NOW IN COMMON MJS 31/10/86
1333;; STATE: CedilIa Upper Case
1334;; KEYBOARD TYPES : G_KB + P12_KB
1335;; TABLE TYPE: Translate
1336;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1337;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1338;; CODE PAGE: CP850 - NOW IN COMMON MJS 31/10/86
1339;; STATE: Cedilla Space Bar
1340;; KEYBOARD TYPES : G_KB + P12_KB
1341;; TABLE TYPE: Translate
1342;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1344;; CODE PAGE: CP850
1345;; STATE: Acute Lower Case
1346;; KEYBOARD TYPES : G_KB + P12_KB
1347;; TABLE TYPE: Translate
1348;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1349 ;;
1350 DW CP850_AC_LO_END-$ ;; length of state section
1351 DB ACUTE_LOWER ;; State ID
1352 DW G_KB + P12_KB ;; Keyboard Type
1353 DB 0EFH,0 ;; error character = standalone accent
1354 DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
1355 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1356 DB 6 ;; number of scans
1357 DB 30,' ' ;; a acute
1358 DB 18,'‚' ;; e acute
1359 DB 23,'¡' ;; i acute
1360 DB 24,'¢' ;; o acute
1361 DB 22,'£' ;; u acute
1362 DB 21,0ECH ;; y acute
1363CP850_AC_LO_T1_END: ;;
1364 ;;
1365 DW 0 ;; Size of xlat table - null table
1366 ;;
1367CP850_AC_LO_END: ;;
1368 ;;
1369;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1370;; CODE PAGE: CP850
1371;; STATE: Acute Upper Case
1372;; KEYBOARD TYPES : G_KB + P12_KB
1373;; TABLE TYPE: Translate
1374;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1375 ;;
1376 DW CP850_AC_UP_END-$ ;; length of state section
1377 DB ACUTE_UPPER ;; State ID
1378 DW G_KB + P12_KB ;; Keyboard Type
1379 DB 0EFH,0 ;; error character = standalone accent
1380 DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
1381 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1382 DB 6 ;; number of scans
1383 DB 18,090H ;; E acute
1384 DB 30,0B5H ;; A acute
1385 DB 23,0D6H ;; I acute
1386 DB 24,0E0H ;; O acute
1387 DB 22,0E9H ;; U acute
1388 DB 21,0EDH ;; Y acute
1389CP850_AC_UP_T1_END: ;;
1390 ;;
1391 DW 0 ;; Size of xlat table - null table
1392 ;;
1393CP850_AC_UP_END: ;;
1394;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1395;; CODE PAGE: CP850
1396;; STATE: Acute Space Bar
1397;; KEYBOARD TYPES : G_KB + P12_KB
1398;; TABLE TYPE: Translate
1399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1400 ;;
1401 DW CP850_AC_SP_END-$ ;; length of state section
1402 DB ACUTE_SPACE ;; State ID
1403 DW G_KB + P12_KB ;; Keyboard Type
1404 DB 0EFH,0 ;; error character = standalone accent
1405 ;;
1406 DW CP850_AC_SP_T1_END-$ ;; Size of xlat table
1407 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1408 DB 1 ;; number of scans
1409 DB 57,0EFH ;; scan code,ASCII - SPACE
1410CP850_AC_SP_T1_END: ;;
1411 ;;
1412 DW 0 ;; Size of xlat table - null table
1413 ;;
1414CP850_AC_SP_END: ;;
1415;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1416;; CODE PAGE: CP850 - NOW IN COMMON MJS 31/10/86
1417;; STATE: Diaresis Lower Case
1418;; KEYBOARD TYPES : G_KB + P12_KB
1419;; TABLE TYPE: Translate
1420;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1421;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;
1422;; CODE PAGE: 850
1423;; STATE: Diaresis Upper
1424;; KEYBOARD TYPES : G_KB + P12_KB
1425;; TABLE TYPE: Translate
1426;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1427 ;;
1428 DW CP850_DI_UP_END-$ ;; length of state section
1429 DB DIARESIS_UPPER ;; State ID
1430 DW G_KB + P12_KB ;; Keyboard Type
1431 DB 0F9H,0 ;; error character = standalone accent
1432 ;;
1433 DW CP850_DI_UP_T1_END-$ ;; Size of xlat table
1434 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1435 DB 5 ;; number of scans
1436 DB 30,'Ž' ;; scan code,ASCII - A
1437 DB 18,0D3H ;; scan code,ASCII - E
1438 DB 23,0D8H ;; scan code,ASCII - I
1439 DB 24,'™' ;; scan code,ASCII - O
1440 DB 22,'š' ;; scan code,ASCII - U
1441CP850_DI_UP_T1_END: ;;
1442 ;;
1443 DW 0 ;; Size of xlat table - null table
1444 ;;
1445CP850_DI_UP_END: ;; length of state section
1446 ;;
1447 ;;
1448;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1449;; CODE PAGE: CP850 - NOW IN COMMON MJS 31/10/86
1450;; STATE: Diaeresis Space Bar
1451;; KEYBOARD TYPES : G_KB + P12_KB
1452;; TABLE TYPE: Translate
1453;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1454;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1455;; CODE PAGE: 850
1456;; STATE: Grave Upper
1457;; KEYBOARD TYPES : G_KB + P12_KB
1458;; TABLE TYPE: Translate
1459;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1460 ;;
1461 DW CP850_GR_UP_END-$ ;; length of state section
1462 DB GRAVE_UPPER ;; State ID
1463 DW G_KB + P12_KB ;; Keyboard Type
1464 DB 60H,0 ;; error character = standalone accent
1465 ;;
1466 DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
1467 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1468 DB 5 ;; number of scans
1469 DB 30,0B7H ;; A grave
1470 DB 18,0D4H ;; E grave
1471 DB 23,0DEH ;; I grave
1472 DB 24,0E3H ;; O grave
1473 DB 22,0EBH ;; U grave
1474CP850_GR_UP_T1_END: ;;
1475 ;;
1476 DW 0 ;; Size of xlat table - null table
1477 ;;
1478CP850_GR_UP_END: ;; length of state section
1479 ;;
1480;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1481;; CODE PAGE: 850
1482;; STATE: Circumflex Upper
1483;; KEYBOARD TYPES : G_KB + P12_KB
1484;; TABLE TYPE: Translate
1485;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1486 ;;
1487 DW CP850_CI_UP_END-$ ;; length of state section
1488 DB CIRCUMFLEX_UPPER ;; State ID
1489 DW G_KB + P12_KB ;; Keyboard Type
1490 DB 5EH,0 ;; error character = standalone accent
1491 ;;
1492 DW CP850_CI_UP_T1_END-$ ;; Size of xlat table
1493 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1494 DB 5 ;; number of scans
1495 DB 30,0B6H ;; A circumflex
1496 DB 18,0D2H ;; E circumflex
1497 DB 23,0D7H ;; I circumflex
1498 DB 24,0E2H ;; O circumflex
1499 DB 22,0EAH ;; U circumflex
1500CP850_CI_UP_T1_END: ;;
1501 ;;
1502 DW 0 ;; Size of xlat table - null table
1503 ;;
1504CP850_CI_UP_END: ;; length of state section
1505 ;;
1506;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1507 ;;
1508 DW 0 ;; LAST STATE
1509 ;;
1510CP850_XLAT_END: ;;
1511;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1512 ;;
1513CODE ENDS ;;
1514 END ;;
1515;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFNO.ASM b/v4.0/src/DEV/KEYBOARD/KDFNO.ASM
new file mode 100644
index 0000000..b1d846a
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFNO.ASM
@@ -0,0 +1,1607 @@
1 PAGE ,132
2 TITLE DOS - Keyboard Definition File
3
4;; LATEST CHANGE P12 NUMERIC
5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6;; DOS - - NLS Support - Keyboard Definition File
7;; (c) Copyright 1988 Microsoft
8;;
9;; This file contains the keyboard tables for Norwegian
10;;
11;; Linkage Instructions:
12;; Refer to KDF.ASM.
13;;
14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
15 ;;
16 INCLUDE KEYBSHAR.INC ;;
17 INCLUDE POSTEQU.INC ;;
18 INCLUDE KEYBMAC.INC ;;
19 ;;
20 PUBLIC NO_LOGIC ;;
21 PUBLIC NO_865_XLAT ;;
22 PUBLIC NO_850_XLAT ;;
23 ;;
24CODE SEGMENT PUBLIC 'CODE' ;;
25 ASSUME CS:CODE,DS:CODE ;;
26 ;;
27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
28;; Standard translate table options are a linear search table
29;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
31 ;;
32STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
33 ;;
34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
35;;***************************************
36;; NO State Logic
37;;***************************************
38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
39 ;;
40 ;;
41NO_LOGIC:
42
43 DW LOGIC_END-$ ;; length
44 ;;
45 DW 0 ;; special features
46 ;;
47 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
48 ;;
49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
50;; OPTIONS: If we find a scan match in
51;; an XLATT or SET_FLAG operation then
52;; exit from INT 9.
53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
54 ;;
55 OPTION EXIT_IF_FOUND ;;
56 ;;
57 ;;
58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
59;; Dead key definitions must come before
60;; dead key translations to handle
61;; dead key + dead key.
62;; ***BD - THIS SECTION HAS BEEN UPDATED
63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
64 ;;
65 IFF EITHER_CTL,NOT ;;
66 IFF EITHER_ALT,NOT ;;
67 IFF EITHER_SHIFT ;;
68 SET_FLAG DEAD_UPPER ;;
69 ELSEF ;;
70 SET_FLAG DEAD_LOWER ;;
71 ENDIFF ;;
72 ELSEF ;;
73 IFKBD G_KB+P12_KB ;; For ENHANCED keyboard some
74 ANDF R_ALT_SHIFT ;; dead keys are on third shift
75 ANDF EITHER_SHIFT,NOT ;; which is accessed via the altgr key
76 SET_FLAG DEAD_THIRD ;;
77 ENDIFF ;;
78 ENDIFF ;;
79 ENDIFF ;;
80 ;;
81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
82;; ACUTE ACCENT TRANSLATIONS
83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
84 ;;
85ACUTE_PROC: ;;
86 ;;
87 IFF ACUTE,NOT ;;
88 GOTO DIARESIS_PROC ;;
89 ENDIFF ;;
90 ;;
91 RESET_NLS ;;
92 IFF R_ALT_SHIFT,NOT ;;
93 XLATT ACUTE_SPACE ;;
94 ENDIFF ;;
95 IFF EITHER_CTL,NOT ;;
96 ANDF EITHER_ALT,NOT ;;
97 IFF EITHER_SHIFT ;;
98 IFF CAPS_STATE ;;
99 XLATT ACUTE_LOWER ;;
100 ELSEF ;;
101 XLATT ACUTE_UPPER ;;
102 ENDIFF ;;
103 ELSEF ;;
104 IFF CAPS_STATE ;;
105 XLATT ACUTE_UPPER ;;
106 ELSEF ;;
107 XLATT ACUTE_LOWER ;;
108 ENDIFF ;;
109 ENDIFF ;;
110 ENDIFF ;;
111 ;;
112INVALID_ACUTE: ;;
113 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
114 BEEP ;; failed or we are ina bad shift state.
115 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
116 ;; through to generate the second char.
117 ;; Note that the dead key flag will be
118 ;; reset before we get here.
119 ;;
120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
121;; DIARESIS ACCENT TRANSLATIONS
122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
123 ;;
124DIARESIS_PROC: ;;
125 ;;
126 IFF DIARESIS,NOT ;;
127 GOTO GRAVE_PROC ;;
128 ENDIFF ;;
129 ;;
130 RESET_NLS ;;
131 IFF R_ALT_SHIFT,NOT ;;
132 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
133 ENDIFF ;;
134 IFF EITHER_CTL,NOT ;;
135 ANDF EITHER_ALT,NOT ;;
136 IFF EITHER_SHIFT ;;
137 IFF CAPS_STATE ;;
138 XLATT DIARESIS_LOWER ;;
139 ELSEF ;;
140 XLATT DIARESIS_UPPER ;;
141 ENDIFF ;;
142 ELSEF ;;
143 IFF CAPS_STATE ;;
144 XLATT DIARESIS_UPPER ;;
145 ELSEF ;;
146 XLATT DIARESIS_LOWER ;;
147 ENDIFF ;;
148 ENDIFF ;;
149 ENDIFF ;;
150 ;;
151INVALID_DIARESIS: ;;
152 PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent
153 BEEP ;; Invalid dead key combo.
154 GOTO NON_DEAD ;;
155 ;;
156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
157;; GRAVE ACCENT TRANSLATIONS
158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
159 ;;
160GRAVE_PROC: ;;
161 ;;
162 IFF GRAVE,NOT ;;
163 GOTO TILDE_PROC ;;
164 ENDIFF ;;
165 ;;
166 RESET_NLS ;;
167 IFF R_ALT_SHIFT,NOT ;;
168 XLATT GRAVE_SPACE ;;
169 ENDIFF ;;
170 IFF EITHER_CTL,NOT ;;
171 ANDF EITHER_ALT,NOT ;;
172 IFF EITHER_SHIFT ;;
173 IFF CAPS_STATE ;;
174 XLATT GRAVE_LOWER ;;
175 ELSEF ;;
176 XLATT GRAVE_UPPER ;;
177 ENDIFF ;;
178 ELSEF ;;
179 IFF CAPS_STATE,NOT ;;
180 XLATT GRAVE_LOWER ;;
181 ELSEF ;;
182 XLATT GRAVE_UPPER ;;
183 ENDIFF ;;
184 ENDIFF ;;
185 ENDIFF ;;
186 ;;
187INVALID_GRAVE: ;;
188 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
189 BEEP ;; Invalid dead key combo.
190 GOTO NON_DEAD ;;
191 ;;
192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
193;; TILDE ACCENT TRANSLATIONS
194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
195TILDE_PROC: ;;
196 ;;
197 IFF TILDE,NOT ;;
198 GOTO CIRCUMFLEX_PROC ;;
199 ENDIFF ;;
200 ;;
201 RESET_NLS ;;
202 IFF R_ALT_SHIFT,NOT ;;
203 XLATT TILDE_SPACE ;;
204 ENDIFF ;;
205 IFF EITHER_CTL,NOT ;;
206 ANDF EITHER_ALT,NOT ;;
207 IFF EITHER_SHIFT ;;
208 IFF CAPS_STATE ;;
209 XLATT TILDE_LOWER ;;
210 ELSEF ;;
211 XLATT TILDE_UPPER ;;
212 ENDIFF ;;
213 ELSEF ;;
214 IFF CAPS_STATE ;;
215 XLATT TILDE_UPPER ;;
216 ELSEF ;;
217 XLATT TILDE_LOWER ;;
218 ENDIFF ;;
219 ENDIFF ;;
220 ENDIFF ;;
221 ;;
222INVALID_TILDE: ;;
223 PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent
224 BEEP ;; Invalid dead key combo.
225 GOTO NON_DEAD ;;
226 ;;
227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
228;; CIRCUMFLEX ACCENT TRANSLATIONS
229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
230 ;;
231CIRCUMFLEX_PROC: ;;
232 ;;
233 IFF CIRCUMFLEX,NOT ;;
234 GOTO NON_DEAD ;;
235 ENDIFF ;;
236 ;;
237 RESET_NLS ;;
238 IFF R_ALT_SHIFT,NOT ;;
239 XLATT CIRCUMFLEX_SPACE ;;
240 ENDIFF ;;
241 IFF EITHER_CTL,NOT ;;
242 ANDF EITHER_ALT,NOT ;;
243 IFF EITHER_SHIFT ;;
244 IFF CAPS_STATE ;;
245 XLATT CIRCUMFLEX_LOWER ;;
246 ELSEF ;;
247 XLATT CIRCUMFLEX_UPPER ;;
248 ENDIFF ;;
249 ELSEF ;;
250 IFF CAPS_STATE,NOT ;;
251 XLATT CIRCUMFLEX_LOWER ;;
252 ELSEF ;;
253 XLATT CIRCUMFLEX_UPPER ;;
254 ENDIFF ;;
255 ENDIFF ;;
256 ENDIFF ;;
257 ;;
258INVALID_CIRCUMFLEX: ;;
259 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
260 BEEP ;; Invalid dead key combo.
261 GOTO NON_DEAD ;;
262 ;;
263;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
264;; Upper, lower and third shifts
265;; ***BD - NON_DEAD THRU LOGIC_END IS UPDATED
266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
267 ;;
268NON_DEAD: ;;
269 ;;
270 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
271 ANDF LC_E0 ;; the "/" on the numeric pad of the
272 EXIT_STATE_LOGIC ;; G keyboard
273 ENDIFF ;;
274 ;;
275 IFF EITHER_CTL,NOT ;; Lower and upper case. Alphabetic
276 IFF EITHER_ALT,NOT ;; keys are affected by CAPS LOCK.
277 IFF EITHER_SHIFT ;; Numeric keys are not.
278;;***BD ADDED FOR NUMERIC PAD
279 IFF NUM_STATE,NOT ;;
280 XLATT NUMERIC_PAD ;;
281 ENDIFF ;;
282;;***BD END OF ADDITION
283 XLATT NON_ALPHA_UPPER ;;
284 IFF CAPS_STATE ;;
285 XLATT ALPHA_LOWER ;;
286 ELSEF ;;
287 XLATT ALPHA_UPPER ;;
288 ENDIFF ;;
289 ELSEF ;;
290;;***BD ADDED FOR NUMERIC PAD
291 IFF NUM_STATE ;;
292 XLATT NUMERIC_PAD ;;
293 ENDIFF ;;
294;;***BD END OF ADDITION
295 XLATT NON_ALPHA_LOWER ;;
296 IFF CAPS_STATE ;;
297 XLATT ALPHA_UPPER ;;
298 ELSEF ;;
299 XLATT ALPHA_LOWER ;;
300 ENDIFF ;;
301 ENDIFF ;; Third and Fourth shifts
302 ELSEF ;; ctl off, alt on at this point
303 IFKBD XT_KB+AT_KB ;; XT, AT, keyboards. Nordics
304 IFF EITHER_SHIFT ;; only.
305 XLATT FOURTH_SHIFT ;; ALT + shift
306 ELSEF ;;
307 XLATT THIRD_SHIFT ;; ALT
308 ENDIFF ;;
309 ELSEF ;; ENHANCED keyboard
310 IFF R_ALT_SHIFT ;; ALTGr
311 ANDF EITHER_SHIFT,NOT ;;
312 XLATT THIRD_SHIFT ;;
313 ENDIFF ;;
314 ENDIFF ;;
315 ENDIFF ;;
316 ENDIFF ;;
317 ;;
318;**************************************;;
319 IFF EITHER_SHIFT,NOT ;;
320 IFKBD XT_KB+AT_KB ;;
321 IFF EITHER_CTL ;;
322 ANDF ALT_SHIFT ;;
323 XLATT ALT_CASE ;;
324 ENDIFF ;;
325 ENDIFF ;;
326 IFKBD G_KB+P12_KB ;;
327 IFF EITHER_CTL ;;
328 ANDF ALT_SHIFT ;;
329 IFF R_ALT_SHIFT,NOT ;;
330 XLATT ALT_CASE ;;
331 ENDIFF ;;
332 ENDIFF ;;
333 ENDIFF ;;
334 ENDIFF ;;
335;**************************************;;
336 IFKBD AT_KB+XT_KB ;;
337 IFF EITHER_CTL,NOT ;;
338 IFF ALT_SHIFT ;; ALT - case
339 XLATT ALT_CASE ;;
340 ENDIFF ;;
341 ELSEF ;;
342 IFF EITHER_ALT,NOT ;; CTRL - case
343 XLATT CTRL_CASE ;;
344 ENDIFF ;;
345 ENDIFF ;;
346 ENDIFF ;;
347 ;;
348 IFKBD G_KB+P12_KB ;;
349 IFF EITHER_CTL,NOT ;;
350 IFF ALT_SHIFT ;; ALT - case
351 ANDF R_ALT_SHIFT,NOT ;;
352 XLATT ALT_CASE ;;
353 ENDIFF ;;
354 ELSEF ;;
355 IFF EITHER_ALT,NOT ;; CTRL - case
356 XLATT CTRL_CASE ;;
357 ENDIFF ;;
358 ENDIFF ;;
359 ENDIFF ;;
360 ;;
361 EXIT_STATE_LOGIC ;;
362 ;;
363LOGIC_END: ;;
364 ;;
365;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
366;;**********************************************************************
367;; NO Common Translate Section
368;; This section contains translations for the lower 128 characters
369;; only since these will never change from code page to code page.
370;; Some common Characters are included from 128 - 165 where appropriate.
371;; In addition the dead key "Set Flag" tables are here since the
372;; dead keys are on the same keytops for all code pages.
373;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
374 ;;
375 PUBLIC NO_COMMON_XLAT ;;
376NO_COMMON_XLAT: ;;
377 ;;
378 DW COMMON_XLAT_END-$ ;; length of section
379 DW -1 ;; code page
380 ;;
381 ;;
382;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
383;; CODE PAGE: Common
384;; STATE: Lower Shift Dead Key
385;; KEYBOARD TYPES: XT, , AT
386;; TABLE TYPE: Flag Table
387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
388 ;;
389 DW COM_DK_LO_END-$ ;; length of state section
390 DB DEAD_LOWER ;; State ID
391 DW XT_KB+AT_KB ;; Keyboard Type
392 DB -1,-1 ;; Buffer entry for error character
393 ;; Set Flag Table
394 DW 2 ;; number of entries
395 DB 13 ;; scan code
396 FLAG ACUTE ;; flag bit to set
397 DB 27 ;;
398 FLAG DIARESIS ;;
399 ;;
400 ;;
401COM_DK_LO_END: ;;
402 ;;
403;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
404;; CODE PAGE: Common
405;; STATE: Lower Shift Dead Key
406;; KEYBOARD TYPES: G, P12
407;; TABLE TYPE: Flag Table
408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
409 ;;
410 DW COM_DK_LO_K1_END-$ ;; length of state section
411 DB DEAD_LOWER ;; State ID
412 DW G_KB+P12_KB ;; Keyboard Type
413 DB -1,-1 ;; Buffer entry for error character
414 ;; Set Flag Table
415 DW 1 ;; number of entries
416 DB 27 ;;
417 FLAG DIARESIS ;;
418 ;;
419 ;;
420COM_DK_LO_K1_END: ;;
421 ;;
422;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
423;; CODE PAGE: Common
424;; STATE: Upper Shift Dead Key
425;; KEYBOARD TYPES: All
426;; TABLE TYPE: Flag Table
427;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
428 ;;
429 DW COM_DK_UP_END-$ ;; length of state section
430 DB DEAD_UPPER ;; State ID
431 DW ANY_KB ;; Keyboard Type
432 DB -1,-1 ;; Buffer entry for error character
433 ;; Set Flag Table
434 DW 2 ;; number of entries
435 DB 13 ;; scan code
436 FLAG GRAVE ;; flag bit to set
437 DB 27 ;;
438 FLAG CIRCUMFLEX ;;
439 ;;
440COM_DK_UP_END: ;;
441 ;;
442;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
443;; CODE PAGE: Common
444;; STATE: Third Shift Dead Key
445;; KEYBOARD TYPES: G, P12
446;; TABLE TYPE: Flag Table
447;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
448 ;;
449 DW COM_DK_TH_END-$ ;; length of state section
450 DB DEAD_THIRD ;; State ID
451 DW G_KB+P12_KB ;; Keyboard Type
452 DB -1,-1 ;; Buffer entry for error character
453 ;; Set Flag Table
454 DW 2 ;; number of entries
455 DB 13 ;; scan code
456 FLAG ACUTE ;; flag bit to set
457 DB 27 ;; scan code
458 FLAG TILDE ;; flag bit to set
459 ;;
460COM_DK_TH_END: ;;
461 ;;
462 ;;
463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
464;;******************************
465;;***BD - ADDED FOR NUMERIC PAD (DECIMAL SEPERATOR)
466;;******************************
467;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
468;; CODE PAGE: Common ;;************CNS ****************
469;; STATE: Numeric Key Pad ;;change
470;; KEYBOARD TYPES: All except the p12
471;; TABLE TYPE: Translate
472;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
473 ;;
474 DW COM_PAD_K1_END-$ ;; length of state section
475 DB NUMERIC_PAD ;; State ID
476 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
477 DB -1,-1 ;; Buffer entry for error character
478 ;;
479 DW COM_PAD_K1_T1_END-$ ;; Size of xlat table
480 DB STANDARD_TABLE ;; xlat options:
481 DB 1 ;; number of entries
482 DB 83,',' ;; decimal seperator = ,
483COM_PAD_K1_T1_END: ;;
484 ;;
485 DW 0 ;; Size of xlat table - null table
486 ;;
487COM_PAD_K1_END: ;;
488;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
489;;******************************
490;;***BD - ADDED FOR ALT CASE
491;;******************************
492;;
493;; CODE PAGE: Common
494;; STATE: Alt Case
495;; KEYBOARD TYPES: G, P12
496;; TABLE TYPE: Translate
497;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
498 ;;
499 DW COM_ALT_K1_END-$ ;; length of state section
500 DB ALT_CASE ;; State ID
501 DW G_KB+P12_KB ;; Keyboard Type
502 DB -1,-1 ;; Buffer entry for error character
503 ;;
504 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
505 DB TYPE_2_TAB ;; xlat options:
506 DB 0 ;; 2 number of entries
507; DB 12,-1,-1 ;;
508; DB 53,0,082H ;; CHANGE OF HYPHEN
509COM_ALT_K1_T1_END: ;;
510 ;;
511 DW 0 ;; Size of xlat table - null table
512 ;;
513COM_ALT_K1_END: ;;
514;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
515;;******************************
516;;***BD - ADDED FOR CTRL CASE
517;;******************************
518;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
519;; CODE PAGE: Common
520;; STATE: Ctrl Case
521;; KEYBOARD TYPES: XT, , AT
522;; TABLE TYPE: Translate
523;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
524 ;;
525 DW COM_CTRL_K1_END-$ ;; length of state section
526 DB CTRL_CASE ;; State ID
527 DW XT_KB+AT_KB ;; Keyboard Type
528 DB -1,-1 ;; Buffer entry for error character
529 ;;
530 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
531 DB TYPE_2_TAB ;; xlat options:
532 DB 2 ;; number of entries
533 DB 12,-1,-1 ;;
534 DB 53,01FH,35h ;;
535COM_CTRL_K1_T1_END: ;;
536 ;;
537 DW 0 ;; Size of xlat table - null table
538 ;;
539COM_CTRL_K1_END: ;;
540 ;;
541;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
542;; CODE PAGE: Common
543;; STATE: Ctrl Case
544;; KEYBOARD TYPES: G, P12
545;; TABLE TYPE: Translate
546;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
547 ;;
548 DW COM_CTRL_K2_END-$ ;; length of state section
549 DB CTRL_CASE ;; State ID
550 DW G_KB+P12_KB ;; Keyboard Type
551 DB -1,-1 ;; Buffer entry for error character
552 ;;
553 DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table
554 DB TYPE_2_TAB ;; xlat options:
555 DB 8 ;; number of entries
556 DB 9,01BH,09H ;;
557 DB 10,01DH,0AH ;;
558 DB 12,-1,-1 ;;
559 DB 13,01CH,0DH ;;
560 DB 26,-1,-1 ;;
561 DB 27,-1,-1 ;;
562 DB 43,-1,-1 ;;
563 DB 53,01FH,35H ;;
564COM_CTRL_K2_T1_END: ;;
565 ;;
566 DW 0 ;; Size of xlat table - null table
567 ;;
568COM_CTRL_K2_END: ;;
569 ;;
570;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
571;; CODE PAGE: Common
572;; STATE: Alpha Lower Case
573;; KEYBOARD TYPES: All
574;; TABLE TYPE: Translate
575;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
576 ;;
577 DW COM_AL_LO_END-$ ;; length of state section
578 DB ALPHA_LOWER ;; State ID
579 DW ANY_KB ;; Keyboard Type
580 DB -1,-1 ;; Buffer entry for error character
581 ;;
582 DW COM_AL_LO_T1_END-$ ;; Size of xlat table
583 DB STANDARD_TABLE ;; xlat options:
584 DB 3 ;; number of entries
585 DB 26,086H ;; a-overcircle
586 DB 39,09BH ;; o-slash
587 DB 40,091H ;; ae-dipthong
588COM_AL_LO_T1_END: ;;
589 ;;
590 DW 0 ;; Size of xlat table - null table
591 ;;
592COM_AL_LO_END: ;;
593 ;;
594;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
595;; CODE PAGE: Common
596;; STATE: Alpha Upper Case
597;; KEYBOARD TYPES: All
598;; TABLE TYPE: Translate
599;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
600 ;;
601 DW COM_AL_UP_END-$ ;; length of state section
602 DB ALPHA_UPPER ;; State ID
603 DW ANY_KB ;; Keyboard Type
604 DB -1,-1 ;; Buffer entry for error character
605 ;;
606 DW COM_AL_UP_T1_END-$ ;; Size of xlat table
607 DB STANDARD_TABLE ;; xlat options:
608 DB 3 ;; number of entries
609 DB 26,08FH ;; A-OVERCIRCLE
610 DB 39,09DH ;; O-SLASH
611 DB 40,092H ;; AE-DIPTHONG
612COM_AL_UP_T1_END: ;;
613 ;;
614 DW 0 ;; Size of xlat table - null table
615 ;;
616COM_AL_UP_END: ;;
617 ;;
618 ;;
619;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
620;; CODE PAGE: Common
621;; STATE: Non-Alpha Lower Case
622;; KEYBOARD TYPES: G + P12
623;; TABLE TYPE: Translate
624;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
625 ;;
626 DW COM_NA_LO_K1_END-$ ;; length of state section
627 DB NON_ALPHA_LOWER ;; State ID
628 DW G_KB+P12_KB ;; Keyboard Type
629 DB -1,-1 ;; Buffer entry for error character
630 ;;
631 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
632 DB STANDARD_TABLE ;; xlat options:
633 DB 6 ;; number of entries
634 DB 41,07CH ;; |
635 DB 12,"+" ;; + INCLUDED FOR SIMPLIC.
636 DB 13,"\" ;; \
637 DB 43,"'" ;; '
638 DB 53,"-" ;; -
639 DB 86,"<" ;; <
640COM_NA_LO_K1_T1_END: ;;
641 ;;
642 DW 0 ;; Size of xlat table - null table
643 ;;
644COM_NA_LO_K1_END: ;;
645 ;;
646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
647;; CODE PAGE: Common
648;; STATE: Non-Alpha Lower Case
649;; KEYBOARD TYPES: XT +
650;; TABLE TYPE: Translate
651;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
652 ;;
653 DW COM_NA_LO_K2_END-$ ;; length of state section
654 DB NON_ALPHA_LOWER ;; State ID
655 DW XT_KB ;; Keyboard Type
656 DB -1,-1 ;; Buffer entry for error character
657 ;;
658 DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table
659 DB STANDARD_TABLE ;; xlat options:
660 DB 4 ;; number of entries
661 DB 41,"'" ;; '
662 DB 12,"+" ;; +
663 DB 43,"<" ;; <
664 DB 53,"-" ;; -
665COM_NA_LO_K2_T1_END: ;;
666 ;;
667 DW 0 ;; Size of xlat table - null table
668 ;;
669COM_NA_LO_K2_END: ;;
670 ;;
671;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
672;; CODE PAGE: Common
673;; STATE: Non-Alpha Lower Case
674;; KEYBOARD TYPES: AT
675;; TABLE TYPE: Translate
676;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
677 ;;
678 DW COM_NA_LO_K3_END-$ ;; length of state section
679 DB NON_ALPHA_LOWER ;; State ID
680 DW AT_KB ;; Keyboard Type
681 DB -1,-1 ;; Buffer entry for error character
682 ;;
683 DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table
684 DB STANDARD_TABLE ;; xlat options:
685 DB 4 ;; number of entries
686 DB 12,"+" ;; +
687 DB 41,"<" ;; <
688 DB 43,"'" ;; '
689 DB 53,"-" ;; -
690COM_NA_LO_K3_T1_END: ;;
691 ;;
692 DW 0 ;; Size of xlat table - null table
693 ;;
694COM_NA_LO_K3_END: ;;
695 ;;
696;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
697;; CODE PAGE: Common
698;; STATE: Non-Alpha Upper Case
699;; KEYBOARD TYPES: G + P12
700;; TABLE TYPE: Translate
701;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
702 ;;
703 DW COM_NA_UP_K1_END-$ ;; length of state section
704 DB NON_ALPHA_UPPER ;; State ID
705 DW G_KB + P12_KB ;; Keyboard Type
706 DB -1,-1 ;; Buffer entry for error character
707 ;;
708 DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table
709 DB STANDARD_TABLE ;; xlat options:
710 DB 12 ;; number of entries
711 DB 3,'"' ;;
712 DB 7,'&' ;;
713 DB 8,'/' ;;
714 DB 9,'(' ;;
715 DB 10,')' ;;
716 DB 11,'=' ;;
717 DB 12,'?' ;;
718 DB 43,'*' ;;
719 DB 51,';' ;;
720 DB 52,':' ;;
721 DB 53,'_' ;;
722 DB 86,'>' ;;
723COM_NA_UP_K1_T1_END: ;;
724 ;;
725 DW 0 ;; Size of xlat table - null table
726 ;;
727COM_NA_UP_K1_END: ;;
728 ;;
729 ;;
730;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
731;; CODE PAGE: Common
732;; STATE: Non-Alpha Upper Case
733;; KEYBOARD TYPES: XT +
734;; TABLE TYPE: Translate
735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
736 ;;
737 DW COM_NA_UP_K2_END-$ ;; length of state section
738 DB NON_ALPHA_UPPER ;; State ID
739 DW XT_KB ;; Keyboard Type
740 DB -1,-1 ;; Buffer entry for error character
741 ;;
742 DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table
743 DB STANDARD_TABLE ;; xlat options:
744 DB 13 ;; number of entries
745 DB 3,'"' ;;
746 DB 4,'œ' ;;
747 DB 7,'&' ;;
748 DB 8,'/' ;;
749 DB 9,'(' ;;
750 DB 10,')' ;;
751 DB 11,'=' ;;
752 DB 12,'?' ;;
753 DB 51,';' ;;
754 DB 52,':' ;;
755 DB 53,'_' ;;
756 DB 41,'*' ;;
757 DB 43,'>' ;;
758COM_NA_UP_K2_T1_END: ;;
759 ;;
760 DW 0 ;; Size of xlat table - null table
761 ;;
762COM_NA_UP_K2_END: ;;
763 ;;
764 ;;
765;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
766;; CODE PAGE: Common
767;; STATE: Non-Alpha Upper Case
768;; KEYBOARD TYPES: AT
769;; TABLE TYPE: Translate
770;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
771 ;;
772 DW COM_NA_UP_K3_END-$ ;; length of state section
773 DB NON_ALPHA_UPPER ;; State ID
774 DW AT_KB ;; Keyboard Type
775 DB -1,-1 ;; Buffer entry for error character
776 ;;
777 DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table
778 DB STANDARD_TABLE ;; xlat options:
779 DB 13 ;; number of entries
780 DB 3,'"' ;;
781 DB 4,'œ' ;;
782 DB 7,'&' ;;
783 DB 8,'/' ;;
784 DB 9,'(' ;;
785 DB 10,')' ;;
786 DB 11,'=' ;;
787 DB 12,'?' ;;
788 DB 51,';' ;;
789 DB 52,':' ;;
790 DB 53,'_' ;;
791 DB 41,'>' ;;
792 DB 43,'*' ;;
793COM_NA_UP_K3_T1_END: ;;
794 ;;
795 DW 0 ;; Size of xlat table - null table
796 ;;
797COM_NA_UP_K3_END: ;;
798 ;;
799 ;;
800;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
801;; CODE PAGE: Common
802;; STATE: Third Shift
803;; KEYBOARD TYPES: G, P12
804;; TABLE TYPE: Translate
805;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
806 ;;
807 DW COM_THIRD_END-$ ;; length of state section
808 DB THIRD_SHIFT ;; State ID
809 DW G_KB+P12_KB ;; Keyboard Type FERRARI
810 DB -1,-1 ;; Buffer entry for error character
811 ;;
812 DW COM_THIRD_T1_END-$ ;; Size of xlat table
813 DB STANDARD_TABLE ;; xlat options:
814 DB 7 ;; number of entries
815 DB 3,'@' ;;
816 DB 4,09CH ;; œ
817 DB 5,'$' ;;
818 DB 8,'{' ;;
819 DB 9,'[' ;;
820 DB 10,']' ;;
821 DB 11,'}' ;;
822COM_THIRD_T1_END: ;;
823 ;;
824 DW 0 ;; Last xlat table
825COM_THIRD_END: ;;
826 ;;
827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
828;; CODE PAGE: Common
829;; STATE: Third Shift (ALTERNATE)
830;; KEYBOARD TYPES: XT,
831;; TABLE TYPE: Translate
832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
833 ;;
834 DW COM_THIRD_K1_END-$ ;; length of state section
835 DB THIRD_SHIFT ;; State ID
836 DW XT_KB ;; Keyboard Type
837 DB -1,-1 ;; Buffer entry for error character
838 ;;
839 DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table
840 DB TYPE_2_TAB ;; xlat options:
841 DB 9 ;; number of entries
842 DB 12,'-','-' ;;
843 DB 13,'=','=' ;;
844 DB 26,'[','[' ;;
845 DB 27,']',']' ;;
846 DB 39,';',';' ;;
847 DB 40,027H,027H ;;
848 DB 41,060H,060H ;;
849 DB 43,'\','\' ;;
850 DB 53,'/','/' ;;
851COM_THIRD_K1_T1_END: ;;
852 ;;
853 DW 0 ;; Last xlat table
854COM_THIRD_K1_END: ;;
855 ;;
856;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
857;; CODE PAGE: Common
858;; STATE: Third Shift (ALTERNATE)
859;; KEYBOARD TYPES: AT
860;; TABLE TYPE: Translate
861;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
862 ;;
863 DW COM_THIRD_K2_END-$ ;; length of state section
864 DB THIRD_SHIFT ;; State ID
865 DW AT_KB ;; Keyboard Type
866 DB -1,-1 ;; Buffer entry for error character
867 ;;
868 DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table
869 DB TYPE_2_TAB ;; xlat options:
870 DB 9 ;; number of entries
871 DB 12,'-','-' ;;
872 DB 13,'=','=' ;;
873 DB 26,'[','[' ;;
874 DB 27,']',']' ;;
875 DB 39,';',';' ;;
876 DB 40,027H,027H ;;
877 DB 41,'\','\' ;;
878 DB 43,060H,060H ;;
879 DB 53,'/','/' ;;
880COM_THIRD_K2_T1_END: ;;
881 ;;
882 DW 0 ;; Last xlat table
883COM_THIRD_K2_END: ;;
884 ;;
885;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
886;; CODE PAGE: Common
887;; STATE: Fourth Shift (ALTERNATE+SHIFT)
888;; KEYBOARD TYPES: XT,
889;; TABLE TYPE: Translate
890;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
891 ;;
892 DW COM_FOURTH_END-$ ;; length of state section
893 DB FOURTH_SHIFT ;; State ID
894 DW XT_KB ;; Keyboard Type
895 DB -1,-1 ;; Buffer entry for error character
896 ;;
897 DW COM_FOURTH_T1_END-$ ;; Size of xlat table
898 DB TYPE_2_TAB ;; xlat options:
899 DB 18 ;; number of entries
900 DB 3,'@','@' ;;
901 DB 4,'#','#' ;;
902 DB 7,'^','^' ;;
903 DB 8,'&','&' ;;
904 DB 9,'*','*' ;;
905 DB 10,'(','(' ;;
906 DB 11,')',')' ;;
907 DB 12,'_','_' ;;
908 DB 13,'+','+' ;;
909 DB 26,'{','{' ;;
910 DB 27,'}','}' ;;
911 DB 39,':',':' ;;
912 DB 40,'"','"' ;;
913 DB 41,'~','~' ;;
914 DB 43,'|','|' ;;
915 DB 51,'<','<' ;;
916 DB 52,'>','>' ;;
917 DB 53,'?','?' ;;
918COM_FOURTH_T1_END: ;;
919 ;;
920 DW 0 ;; Last xlat table
921COM_FOURTH_END: ;;
922 ;;
923;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
924;; CODE PAGE: Common
925;; STATE: Fourth Shift (ALTERNATE+SHIFT)
926;; KEYBOARD TYPES: AT
927;; TABLE TYPE: Translate
928;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
929 ;;
930 DW COM_FOURTH_K1_END-$ ;; length of state section
931 DB FOURTH_SHIFT ;; State ID
932 DW AT_KB ;; Keyboard Type
933 DB -1,-1 ;; Buffer entry for error character
934 ;;
935 DW COM_FOURTH_K1_T1_END-$ ;; Size of xlat table
936 DB TYPE_2_TAB ;; xlat options:
937 DB 18 ;; number of entries
938 DB 3,'@','@' ;;
939 DB 4,'#','#' ;;
940 DB 7,'^','^' ;;
941 DB 8,'&','&' ;;
942 DB 9,'*','*' ;;
943 DB 10,'(','(' ;;
944 DB 11,')',')' ;;
945 DB 12,'_','_' ;;
946 DB 13,'+','+' ;;
947 DB 26,'{','{' ;;
948 DB 27,'}','}' ;;
949 DB 39,':',':' ;;
950 DB 40,'"','"' ;;
951 DB 41,'|','|' ;;
952 DB 43,'~','~' ;;
953 DB 51,'<','<' ;;
954 DB 52,'>','>' ;;
955 DB 53,'?','?' ;;
956COM_FOURTH_K1_T1_END: ;;
957 ;;
958 DW 0 ;; Last xlat table
959COM_FOURTH_K1_END: ;;
960 ;;
961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
962;; CODE PAGE: Common
963;; STATE: Grave Lower
964;; KEYBOARD TYPES: All
965;; TABLE TYPE: Translate
966;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
967 ;;
968 DW COM_GR_LO_END-$ ;; length of state section
969 DB GRAVE_LOWER ;; State ID
970 DW ANY_KB ;; Keyboard Type
971 DB 96,0 ;; error character = standalone accent
972 ;;
973 DW COM_GR_LO_T1_END-$ ;; Size of xlat table
974 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
975 DB 5 ;; number of scans
976 DB 18,'Š' ;; scan code,ASCII - e
977 DB 22,'—' ;; scan code,ASCII - u
978 DB 23,'' ;; scan code,ASCII - i
979 DB 24,'•' ;; scan code,ASCII - o
980 DB 30,'…' ;; scan code,ASCII - a
981COM_GR_LO_T1_END: ;;
982 ;;
983 DW 0 ;; Size of xlat table - null table
984 ;;
985COM_GR_LO_END: ;; length of state section
986 ;;
987;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
988;; CODE PAGE: Common
989;; STATE: Grave Space Bar
990;; KEYBOARD TYPES: All
991;; TABLE TYPE: Translate
992;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
993 ;;
994 DW COM_GR_SP_END-$ ;; length of state section
995 DB GRAVE_SPACE ;; State ID
996 DW ANY_KB ;; Keyboard Type
997 DB 96,0 ;; error character = standalone accent
998 ;;
999 DW COM_GR_SP_T1_END-$ ;; Size of xlat table
1000 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1001 DB 1 ;; number of scans
1002 DB 57,96 ;; STANDALONE GRAVE
1003COM_GR_SP_T1_END: ;;
1004 ;;
1005 DW 0 ;; Size of xlat table - null table
1006 ;;
1007COM_GR_SP_END: ;; length of state section
1008 ;;
1009;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1010;; CODE PAGE: Common
1011;; STATE: Circumflex Lower
1012;; KEYBOARD TYPES: All
1013;; TABLE TYPE: Translate
1014;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1015 ;;
1016 DW COM_CI_LO_END-$ ;; length of state section
1017 DB CIRCUMFLEX_LOWER ;; State ID
1018 DW ANY_KB ;; Keyboard Type
1019 DB 94,0 ;; error character = standalone accent
1020 ;;
1021 DW COM_CI_LO_T1_END-$ ;; Size of xlat table
1022 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1023 DB 5 ;; number of scans
1024 DB 18,'ˆ' ;; scan code,ASCII - e
1025 DB 22,'–' ;; scan code,ASCII - u
1026 DB 23,'Œ' ;; scan code,ASCII - i
1027 DB 24,'“' ;; scan code,ASCII - o
1028 DB 30,'ƒ' ;; scan code,ASCII - a
1029COM_CI_LO_T1_END: ;;
1030 ;;
1031 DW 0 ;;
1032 ;;
1033COM_CI_LO_END: ;;
1034 ;;
1035;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1036;; CODE PAGE: Common
1037;; STATE: Circumflex Space Bar
1038;; KEYBOARD TYPES: All
1039;; TABLE TYPE: Translate
1040;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1041 ;;
1042 DW COM_CI_SP_END-$ ;; length of state section
1043 DB CIRCUMFLEX_SPACE ;; State ID
1044 DW ANY_KB ;; Keyboard Type
1045 DB 94,0 ;; error character = standalone accent
1046 ;;
1047 DW COM_CI_SP_T1_END-$ ;; Size of xlat table
1048 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1049 DB 1 ;; number of scans
1050 DB 57,94 ;; STANDALONE CIRCUMFLEX
1051COM_CI_SP_T1_END: ;;
1052 ;;
1053 DW 0 ;; Size of xlat table - null table
1054 ;;
1055COM_CI_SP_END: ;; length of state section
1056 ;;
1057;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1058;; CODE PAGE: Common
1059;; STATE: Tilde Lower
1060;; KEYBOARD TYPES: G, P12
1061;; TABLE TYPE: Translate
1062;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1063 ;;
1064 DW COM_TI_LO_END-$ ;; length of state section
1065 DB TILDE_LOWER ;; State ID
1066 DW G_KB+P12_KB ;; Keyboard Type
1067 DB 07EH,0 ;; error character = standalone accent
1068 ;;
1069 DW COM_TI_LO_T1_END-$ ;; Size of xlat table
1070 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1071 DB 1 ;; number of scans
1072 DB 49,0A4H ;; scan code,ASCII - ¤
1073 COM_TI_LO_T1_END: ;;
1074 ;;
1075 DW 0 ;;
1076 ;;
1077 COM_TI_LO_END: ;;
1078 ;;
1079;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1080;;; CODE PAGE: Common
1081;;; STATE: Tilde Upper Case
1082;;; KEYBOARD TYPES: G, P12
1083;;; TABLE TYPE: Translate
1084;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1085 ;;
1086 DW COM_TI_UP_END-$ ;; length of state section
1087 DB TILDE_UPPER ;; State ID
1088 DW G_KB+P12_KB ;; Keyboard Type
1089 DB 07EH,0 ;; error character = standalone accent
1090 ;;
1091 DW COM_TI_UP_T1_END-$ ;; Size of xlat table
1092 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1093 DB 1 ;; number of scans
1094 DB 49,0A5H ;; scan code,ASCII - ¥
1095 COM_TI_UP_T1_END: ;;
1096 ;;
1097 DW 0 ;; Size of xlat table - null table
1098 ;;
1099 COM_TI_UP_END: ;; length of state section
1100 ;;
1101 ;;
1102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1103;; CODE PAGE: Common
1104;; STATE: Tilde Space Bar
1105;; KEYBOARD TYPES: G, P12
1106;; TABLE TYPE: Translate
1107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1108 ;;
1109 DW COM_TI_SP_END-$ ;; length of state section
1110 DB TILDE_SPACE ;; State ID
1111 DW G_KB+P12_KB ;; Keyboard Type
1112 DB 07EH,0 ;; error character = standalone accent
1113 ;;
1114 DW COM_TI_SP_T1_END-$ ;; Size of xlat table
1115 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1116 DB 1 ;; number of scans
1117 DB 57,07EH ;; STANDALONE TILDE
1118COM_TI_SP_T1_END: ;;
1119 ;;
1120 DW 0 ;; Size of xlat table - null table
1121 ;;
1122COM_TI_SP_END: ;; length of state section
1123 ;;
1124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1125 DW 0 ;; Last State
1126COMMON_XLAT_END: ;;
1127 ;;
1128 ;;
1129 ;;
1130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1131;;***************************************
1132;; NO Specific Translate Section for 865
1133;;***************************************
1134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1135 ;;
1136 PUBLIC NO_865_XLAT ;;
1137NO_865_XLAT: ;;
1138 ;;
1139 DW CP865_XLAT_END-$ ;; length of section
1140 DW 865 ;;
1141 ;;
1142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1143;; CODE PAGE: 865
1144;; STATE: Non-Alpha Upper Case
1145;; KEYBOARD TYPES: G, P12
1146;; TABLE TYPE: Translate
1147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1148 ;;
1149 DW CP865_NA_K1_UP_END-$ ;; length of state section
1150 DB NON_ALPHA_UPPER ;; State ID
1151 DW G_KB+P12_KB ;; Keyboard Type
1152 DB -1,-1 ;; Buffer entry for error character
1153 ;;
1154 DW CP865_NA_UP_K1_T1_END-$ ;; Size of xlat table
1155 DB STANDARD_TABLE ;; xlat options:
1156 DB 2 ;; number of entries
1157 DB 5,0AFH ;; INTERNATIONAL MONEY SYMB
1158 DB 41,015H ;; SECTION Symb
1159CP865_NA_UP_K1_T1_END: ;;
1160 ;;
1161 DW 0 ;; Size of xlat table - null table
1162 ;;
1163CP865_NA_K1_UP_END: ;;
1164 ;;
1165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1166;; CODE PAGE: 865
1167;; STATE: Acute Lower Case
1168;; KEYBOARD TYPES: All
1169;; TABLE TYPE: Translate
1170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1171 ;;
1172 DW CP865_AC_LO_END-$ ;; length of state section
1173 DB ACUTE_LOWER ;; State ID
1174 DW ANY_KB ;; Keyboard Type
1175 DB 39,0 ;; error character = standalone accent
1176 ;;
1177 DW CP865_AC_LO_T1_END-$ ;; Size of xlat table
1178 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1179 DB 5 ;; number of scans
1180 DB 18,'‚' ;; scan code,ASCII - e
1181 DB 22,'£' ;; scan code,ASCII - u
1182 DB 23,'¡' ;; scan code,ASCII - i
1183 DB 24,'¢' ;; scan code,ASCII - o
1184 DB 30,' ' ;; scan code,ASCII - a
1185CP865_AC_LO_T1_END: ;;
1186 ;;
1187 DW 0 ;; Size of xlat table - null table
1188 ;;
1189CP865_AC_LO_END: ;;
1190 ;;
1191;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1192;; CODE PAGE: 865
1193;; STATE: Acute Upper Case
1194;; KEYBOARD TYPES: All
1195;; TABLE TYPE: Translate
1196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1197 ;;
1198 DW CP865_AC_UP_END-$ ;; length of state section
1199 DB ACUTE_UPPER ;; State ID
1200 DW ANY_KB ;; Keyboard Type
1201 DB 39,0 ;; error character = standalone accent
1202 ;;
1203 DW CP865_AC_UP_T1_END-$ ;; Size of xlat table
1204 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1205 DB 1 ;; number of entries
1206 DB 18,'' ;; scan code,ASCII -
1207CP865_AC_UP_T1_END: ;;
1208 ;;
1209 DW 0 ;; Size of xlat table - null table
1210 ;;
1211CP865_AC_UP_END: ;;
1212 ;;
1213;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1214;; CODE PAGE: 865
1215;; STATE: Acute Space Bar
1216;; KEYBOARD TYPES: All
1217;; TABLE TYPE: Translate
1218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1219 ;;
1220 DW CP865_AC_SP_END-$ ;; length of state section
1221 DB ACUTE_SPACE ;; State ID
1222 DW ANY_KB ;; Keyboard Type
1223 DB 39,0 ;; error character = standalone accent
1224 ;;
1225 DW CP865_AC_SP_T1_END-$ ;; Size of xlat table
1226 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1227 DB 1 ;; number of scans
1228 DB 57,39 ;; scan code,ASCII - SPACE
1229CP865_AC_SP_T1_END: ;;
1230 ;;
1231 DW 0 ;; Size of xlat table - null table
1232 ;;
1233CP865_AC_SP_END: ;;
1234 ;;
1235;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1236;; CODE PAGE: CP865
1237;; STATE: Diaresis Lower Case
1238;; KEYBOARD TYPES: All
1239;; TABLE TYPE: Translate
1240;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1241 ;;
1242 DW CP865_DI_LO_END-$ ;; length of state section
1243 DB DIARESIS_LOWER ;; State ID
1244 DW ANY_KB ;; Keyboard Type
1245 DB 254,0 ;; error character = standalone accent
1246 ;;
1247 DW CP865_DI_LO_T1_END-$ ;; Size of xlat table
1248 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1249 DB 6 ;; number of scans
1250 DB 18,'‰' ;; scan code,ASCII - e
1251 DB 21,'˜' ;; scan code,ASCII - y
1252 DB 22,'' ;; scan code,ASCII - u
1253 DB 23,'‹' ;; scan code,ASCII - i
1254 DB 24,'”' ;; scan code,ASCII - o
1255 DB 30,'„' ;; scan code,ASCII - a
1256CP865_DI_LO_T1_END: ;;
1257 ;;
1258 DW 0 ;; Size of xlat table - null table
1259 ;;
1260CP865_DI_LO_END: ;; length of state section
1261 ;;
1262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1263;; CODE PAGE: CP865
1264;; STATE: Diaresis Upper Case
1265;; KEYBOARD TYPES: All
1266;; TABLE TYPE: Translate
1267;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1268 ;;
1269 DW CP865_DI_UP_END-$ ;; length of state section
1270 DB DIARESIS_UPPER ;; State ID
1271 DW ANY_KB ;; Keyboard Type
1272 DB 254,0 ;; error character = standalone accent
1273 ;;
1274 DW CP865_DI_UP_T1_END-$ ;; Size of xlat table
1275 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1276 DB 3 ;; number of scans
1277 DB 22,'š' ;; scan code,ASCII - U
1278 DB 24,'™' ;; scan code,ASCII - O
1279 DB 30,'Ž' ;; scan code,ASCII - A
1280CP865_DI_UP_T1_END: ;;
1281 ;;
1282 DW 0 ;; Size of xlat table - null table
1283 ;;
1284CP865_DI_UP_END: ;; length of state section
1285 ;;
1286 ;;
1287;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1288;; CODE PAGE: 865
1289;; STATE: Diaresis Space Bar
1290;; KEYBOARD TYPES: All
1291;; TABLE TYPE: Translate
1292;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1293; ;;
1294; DW CP865_DI_SP_END-$ ;; length of state section
1295; DB DIARESIS_SPACE ;; State ID
1296; DW ANY_KB ;; Keyboard Type
1297; DB 254,0 ;; error character = standalone accent
1298; ;;
1299; DW CP865_DI_SP_T1_END-$ ;; Size of xlat table
1300; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1301; DB 1 ;; number of scans
1302; DB 57,254 ;; error character = standalone accent
1303;CP865_DI_SP_T1_END: ;;
1304; ;;
1305; DW 0 ;; Size of xlat table - null table
1306;CP865_DI_SP_END: ;; length of state section
1307; ;;
1308;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1309 ;;
1310 DW 0 ;; LAST STATE
1311 ;;
1312CP865_XLAT_END: ;;
1313 ;;
1314;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1315;;***************************************
1316;; NO Specific Translate Section for 850
1317;;***************************************
1318;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1319 ;;
1320 PUBLIC NO_850_XLAT ;;
1321NO_850_XLAT: ;;
1322 ;;
1323 DW CP850_XLAT_END-$ ;; length of section
1324 DW 850 ;;
1325 ;;
1326;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1327;; CODE PAGE: 850
1328;; STATE: Non-Alpha Upper Case
1329;; KEYBOARD TYPES: G, P12
1330;; TABLE TYPE: Translate
1331;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1332 ;;
1333 DW CP850_NA_K1_UP_END-$ ;; length of state section
1334 DB NON_ALPHA_UPPER ;; State ID
1335 DW G_KB+P12_KB ;; Keyboard Type
1336 DB -1,-1 ;; Buffer entry for error character
1337 ;;
1338 DW CP850_NA_UP_K1_T1_END-$ ;; Size of xlat table
1339 DB STANDARD_TABLE ;; xlat options:
1340 DB 2 ;; number of entries
1341 DB 5,0CFH ;; INT MONEY SYMB
1342 DB 41,0F5H ;; SECTION Symb
1343CP850_NA_UP_K1_T1_END: ;;
1344 ;;
1345 DW 0 ;; Size of xlat table - null table
1346 ;;
1347CP850_NA_K1_UP_END: ;;
1348 ;;
1349;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1350;; CODE PAGE: 850
1351;; STATE: Acute Lower Case
1352;; KEYBOARD TYPES: All
1353;; TABLE TYPE: Translate
1354;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1355 ;;
1356 DW CP850_AC_LO_END-$ ;; length of state section
1357 DB ACUTE_LOWER ;; State ID
1358 DW ANY_KB ;; Keyboard Type
1359 DB 239,0 ;; error character = standalone accent
1360 ;;
1361 DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
1362 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1363 DB 6 ;; number of scans
1364 DB 18,'‚' ;; scan code,ASCII - e
1365 DB 21,0ECH ;; y acute
1366 DB 22,'£' ;; scan code,ASCII - u
1367 DB 23,'¡' ;; scan code,ASCII - i
1368 DB 24,'¢' ;; scan code,ASCII - o
1369 DB 30,' ' ;; scan code,ASCII - a
1370CP850_AC_LO_T1_END: ;;
1371 ;;
1372 DW 0 ;; Size of xlat table - null table
1373 ;;
1374CP850_AC_LO_END: ;;
1375 ;;
1376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1377;; CODE PAGE: 850
1378;; STATE: Acute Upper Case
1379;; KEYBOARD TYPES: All
1380;; TABLE TYPE: Translate
1381;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1382 ;;
1383 DW CP850_AC_UP_END-$ ;; length of state section
1384 DB ACUTE_UPPER ;; State ID
1385 DW ANY_KB ;; Keyboard Type
1386 DB 239,0 ;; error character = standalone accent
1387 ;;
1388 DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
1389 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1390 DB 6 ;; number of entries
1391 DB 18,090H ;; E acute
1392 DB 21,0EDH ;; Y acute
1393 DB 22,0E9H ;; U acute
1394 DB 23,0D6H ;; I acute
1395 DB 24,0E0H ;; O acute
1396 DB 30,0B5H ;; A acute
1397CP850_AC_UP_T1_END: ;;
1398 ;;
1399 DW 0 ;; Size of xlat table - null table
1400 ;;
1401CP850_AC_UP_END: ;;
1402 ;;
1403;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1404;; CODE PAGE: 850
1405;; STATE: Acute Space Bar
1406;; KEYBOARD TYPES: All
1407;; TABLE TYPE: Translate
1408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1409 ;;
1410 DW CP850_AC_SP_END-$ ;; length of state section
1411 DB ACUTE_SPACE ;; State ID
1412 DW ANY_KB ;; Keyboard Type
1413 DB 239,0 ;; error character = standalone accent
1414 ;;
1415 DW CP850_AC_SP_T1_END-$ ;; Size of xlat table
1416 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1417 DB 1 ;; number of scans
1418 DB 57,239 ;; scan code,ASCII - SPACE
1419CP850_AC_SP_T1_END: ;;
1420 ;;
1421 DW 0 ;; Size of xlat table - null table
1422 ;;
1423CP850_AC_SP_END: ;;
1424 ;;
1425;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1426;; CODE PAGE: 850
1427;; STATE: Diaresis Lower Case
1428;; KEYBOARD TYPES: All
1429;; TABLE TYPE: Translate
1430;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1431 ;;
1432 DW CP850_DI_LO_END-$ ;; length of state section
1433 DB DIARESIS_LOWER ;; State ID
1434 DW ANY_KB ;; Keyboard Type
1435 DB 249,0 ;; error character = standalone accent
1436 ;;
1437 DW CP850_DI_LO_T1_END-$ ;; Size of xlat table
1438 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1439 DB 6 ;; number of scans
1440 DB 18,'‰' ;; scan code,ASCII - e
1441 DB 21,'˜' ;; scan code,ASCII - y
1442 DB 22,'' ;; scan code,ASCII - u
1443 DB 23,'‹' ;; scan code,ASCII - i
1444 DB 24,'”' ;; scan code,ASCII - o
1445 DB 30,'„' ;; scan code,ASCII - a
1446CP850_DI_LO_T1_END: ;;
1447 ;;
1448 DW 0 ;; Size of xlat table - null table
1449 ;;
1450CP850_DI_LO_END: ;; length of state section
1451 ;;
1452;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1453;; CODE PAGE: 850
1454;; STATE: Diaresis Upper Case
1455;; KEYBOARD TYPES: All
1456;; TABLE TYPE: Translate
1457;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1458 ;;
1459 DW CP850_DI_UP_END-$ ;; length of state section
1460 DB DIARESIS_UPPER ;; State ID
1461 DW ANY_KB ;; Keyboard Type
1462 DB 249,0 ;; error character = standalone accent
1463 ;;
1464 DW CP850_DI_UP_T1_END-$ ;; Size of xlat table
1465 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1466 DB 5 ;; number of scans
1467 DB 18,0D3H ;; E Diaeresis
1468 DB 22,'š' ;; U Diaeresis
1469 DB 23,0D8H ;; I Diaeresis
1470 DB 24,'™' ;; O Diaeresis
1471 DB 30,'Ž' ;; A Diaeresis
1472CP850_DI_UP_T1_END: ;;
1473 ;;
1474 DW 0 ;; Size of xlat table - null table
1475 ;;
1476CP850_DI_UP_END: ;; length of state section
1477 ;;
1478 ;;
1479;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1480;; CODE PAGE: 850
1481;; STATE: Diaresis Space Bar
1482;; KEYBOARD TYPES: All
1483;; TABLE TYPE: Translate
1484;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1485 ;;
1486 DW CP850_DI_SP_END-$ ;; length of state section
1487 DB DIARESIS_SPACE ;; State ID
1488 DW ANY_KB ;; Keyboard Type
1489 DB 249,0 ;; error character = standalone accent
1490 ;;
1491 DW CP850_DI_SP_T1_END-$ ;; Size of xlat table
1492 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1493 DB 1 ;; number of scans
1494 DB 57,249 ;; error character = standalone accent
1495CP850_DI_SP_T1_END: ;;
1496 ;;
1497 DW 0 ;; Size of xlat table - null table
1498CP850_DI_SP_END: ;; length of state section
1499 ;;
1500;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1501;; CODE PAGE: 850
1502;; STATE: Grave Upper
1503;; KEYBOARD TYPES: All
1504;; TABLE TYPE: Translate
1505;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1506 ;;
1507 DW CP850_GR_UP_END-$ ;; length of state section
1508 DB GRAVE_UPPER ;; State ID
1509 DW ANY_KB ;; Keyboard Type
1510 DB 96,0 ;; error character = standalone accent
1511 ;;
1512 DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
1513 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1514 DB 5 ;; number of scans
1515 DB 18,0D4H ;; E grave
1516 DB 22,0EBH ;; U grave
1517 DB 23,0DEH ;; I grave
1518 DB 24,0E3H ;; O grave
1519 DB 30,0B7H ;; A grave
1520CP850_GR_UP_T1_END: ;;
1521 ;;
1522 DW 0 ;; Size of xlat table - null table
1523 ;;
1524CP850_GR_UP_END: ;; length of state section
1525 ;;
1526;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1527;; CODE PAGE: 850
1528;; STATE: Tilde Lower
1529;; KEYBOARD TYPES: G, P12
1530;; TABLE TYPE: Translate
1531;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1532 ;;
1533 DW CP850_TI_LO_END-$ ;; length of state section
1534 DB TILDE_LOWER ;; State ID
1535 DW G_KB+P12_KB ;; Keyboard Type
1536 DB 07EH,0 ;; error character = standalone accent
1537 ;;
1538 DW CP850_TI_LO_T1_END-$ ;; Size of xlat table
1539 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1540 DB 2 ;; number of scans
1541 DB 24,0E4H ;; scan code,ASCII - o tilde
1542 DB 30,0C6H ;; scan code,ASCII - a tilde
1543 CP850_TI_LO_T1_END: ;;
1544 ;;
1545 DW 0 ;;
1546 ;;
1547 CP850_TI_LO_END: ;;
1548 ;;
1549;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1550;;; CODE PAGE: 850
1551;;; STATE: Tilde Upper Case
1552;; KEYBOARD TYPES: G, P12
1553;;; TABLE TYPE: Translate
1554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1555 ;;
1556 DW CP850_TI_UP_END-$ ;; length of state section
1557 DB TILDE_UPPER ;; State ID
1558 DW G_KB+P12_KB ;; Keyboard Type
1559 DB 07EH,0 ;; error character = standalone accent
1560 ;;
1561 DW CP850_TI_UP_T1_END-$ ;; Size of xlat table
1562 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1563 DB 2 ;; number of scans
1564 DB 24,0E5H ;; scan code,ASCII - O tilde
1565 DB 30,0C7H ;; scan code,ASCII - A tilde
1566 CP850_TI_UP_T1_END: ;;
1567 ;;
1568 DW 0 ;; Size of xlat table - null table
1569 ;;
1570 CP850_TI_UP_END: ;; length of state section
1571 ;;
1572 ;;
1573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1574;; CODE PAGE: 850
1575;; STATE: Circumflex Upper
1576;; KEYBOARD TYPES: All
1577;; TABLE TYPE: Translate
1578;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1579 ;;
1580 DW CP850_CI_UP_END-$ ;; length of state section
1581 DB CIRCUMFLEX_UPPER ;; State ID
1582 DW ANY_KB ;; Keyboard Type
1583 DB 94,0 ;; error character = standalone accent
1584 ;;
1585 DW CP850_CI_UP_T1_END-$ ;; Size of xlat table
1586 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1587 DB 5 ;; number of scans
1588 DB 18,0D2H ;; E circumflex
1589 DB 22,0EAH ;; U circumflex
1590 DB 23,0D7H ;; I circumflex
1591 DB 24,0E2H ;; O circumflex
1592 DB 30,0B6H ;; A circumflex
1593CP850_CI_UP_T1_END: ;;
1594 ;;
1595 DW 0 ;; Size of xlat table - null table
1596 ;;
1597CP850_CI_UP_END: ;; length of state section
1598 ;;
1599;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1600 ;;
1601 DW 0 ;; LAST STATE
1602 ;;
1603CP850_XLAT_END: ;;
1604;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1605 ;;
1606CODE ENDS ;;
1607 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFNOW.ASM b/v4.0/src/DEV/KEYBOARD/KDFNOW.ASM
new file mode 100644
index 0000000..ac2ea78
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFNOW.ASM
@@ -0,0 +1,507 @@
1
2
3 PAGE ,132
4 TITLE DOS - Keyboard Definition File
5
6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7;; DOS - - NLS Support - Keyboard Definition File
8;; (c) Copyright 1988 Microsoft
9;;
10;; This the file header and table pointers ONLY.
11;; The actual tables are contained in seperate source files.
12;; These are:
13;; KDFSP.ASM - Spanish
14;; KDFPO.ASM - Portuguese
15;; KDFGR.ASM - German
16;; KDFIT142.ASM - Italian
17;; KDFIT.ASM - Italian
18;; KDFFR189.ASM - French
19;; KDFFR.ASM - French
20;; KDFSG.ASM - Swiss German
21;; KDFSF.ASM - Swiss French
22;; KDFDK.ASM - Danish
23;; KDFUK168.ASM - English
24;; KDFUK.ASM - English
25;; KDFBE.ASM - Belgium
26;; KDFNL.ASM - Netherlands
27;; KDFNO.ASM - Norway
28;; KDFLA.ASM - Latin American
29;; KDFSV.ASM - SWEDEN -----> This moddule is used for both Sweden
30;; and Finland - exact same template
31;; KDFSU.ASM - Finland -----> Same module as Sweden eliminated
32;; Dummy US - US
33;; Linkage Instructions:
34;; The following instructions are contained in KDFLINK.BAT:
35;;
36;; LINK KDF+KDFSP+KDFGE+KDFFR+KDFIT+KDFPO+KDFUK+KDFSG+KDFDK+KDFEOF;
37;; EXE2BIN KDF.EXE KEYBOARD.SYS
38;;
39;; DCL, March 8, 1988 - swapped 437/850 to 850/437 for SG & SF
40;; DCL, March 8, 1988 - uncommented SU(finland)& swapped 437/850 to 850/437
41;; as the Finnish want 850/437 vs. 437/850 for Sweden
42;; did not alter the pointer to kbid 153 to Sweden
43;; CNS April 14 1988 - swapped 437/850 to 850/437 for SP & LA
44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
45 ;;
46 ;;
47CODE SEGMENT PUBLIC 'CODE' ;;
48 ASSUME CS:CODE,DS:CODE ;;
49 ;;
50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
51;;***************************************
52;; File Header
53;;***************************************
54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
55 ;;
56DB 0FFh,'KEYB ' ;; signature
57DB 8 DUP(0) ;; reserved
58DW 650 ;; maximum size of Common Xlat Sect
59DW 350 ;; max size of Specific Xlat Sect
60DW 400 ;; max size of State Logic
61DW 0 ;;AC000;reserved
62DW 19 ;;AC000 number of IDs
63DW 17 ;;AC000 number of languages
64DB 'GR' ;; LANGUAGE CODE TABLE
65DW OFFSET GE_LANG_ENT,0 ;;
66DB 'SP' ;;
67DW OFFSET SP_LANG_ENT,0 ;;
68DB 'PO' ;;
69DW OFFSET PO_LANG_ENT,0 ;;
70DB 'FR' ;;
71DW OFFSET FR2_LANG_ENT,0 ;;
72DB 'DK' ;;
73DW OFFSET DK_LANG_ENT,0 ;;
74DB 'SG' ;;
75DW OFFSET SG_LANG_ENT,0 ;;
76DB 'IT' ;;
77DW OFFSET IT2_LANG_ENT,0 ;;
78DB 'UK' ;;
79DW OFFSET UK2_LANG_ENT,0 ;;
80DB 'SF' ;;
81DW OFFSET SF_LANG_ENT,0 ;;
82DB 'BE' ;;
83DW OFFSET BE_LANG_ENT,0 ;;
84DB 'NL' ;;
85DW OFFSET NL_LANG_ENT,0 ;;
86DB 'NO' ;;
87DW OFFSET NO_LANG_ENT,0 ;;
88DB 'CF' ;;
89DW OFFSET CF_LANG_ENT,0 ;;
90DB 'SV' ;;
91DW OFFSET SV_LANG_ENT,0 ;;
92DB 'SU' ;;
93DW OFFSET Su_LANG_ENT,0 ;;
94DB 'LA' ;;
95DW OFFSET LA_LANG_ENT,0 ;;
96DB 'US' ;;
97DW OFFSET DUMMY_ENT,0 ;;
98DW 172 ;;AN000;ID CODE TABLE ***************************
99DW OFFSET SP_LANG_ENT,0 ;;AN000;
100DW 163 ;;AN000;
101DW OFFSET PO_LANG_ENT,0 ;;AN000;
102DW 120 ;;AN000;
103DW OFFSET FR1_LANG_ENT,0 ;;AN000;
104DW 189 ;;AN000;
105DW OFFSET FR2_LANG_ENT,0 ;;AN000;
106DW 159 ;;AN000;
107DW OFFSET DK_LANG_ENT,0 ;;AN000;
108DW 000 ;;AN000;
109DW OFFSET SG_LANG_ENT,0 ;;AN000;
110DW 129 ;;AN000;
111DW OFFSET GE_LANG_ENT,0 ;;AN000;
112DW 142 ;;AN000;
113DW OFFSET IT1_LANG_ENT,0 ;;AN000;
114DW 141 ;;AN000;
115DW OFFSET IT2_LANG_ENT,0 ;;AN000;
116DW 168 ;;AN000;
117DW OFFSET UK1_LANG_ENT,0 ;;AN000;
118DW 166 ;;AN000;
119DW OFFSET UK2_LANG_ENT,0 ;;AN000;
120DW 150 ;;AN000;
121DW OFFSET SF_LANG_ENT,0 ;;AN000;
122DW 120 ;;AN000;
123DW OFFSET BE_LANG_ENT,0 ;;AN000;
124DW 143 ;;AN000;
125DW OFFSET NL_LANG_ENT,0 ;;AN000;
126DW 155 ;;AN000;
127DW OFFSET NO_LANG_ENT,0 ;;AN000;
128DW 058 ;;AN000;
129DW OFFSET CF_LANG_ENT,0 ;;AN000;
130DW 153 ;;AN000;
131DW OFFSET SV_LANG_ENT,0 ;;AN000;
132DW 171 ;;AN000;
133DW OFFSET LA_LANG_ENT,0 ;;AN000;
134DW 103 ;;AN000;
135DW OFFSET DUMMY_ENT,0 ;;AN000;
136; ;;
137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
138;;***************************************
139;; Language Entries
140;;***************************************
141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
142 ;;
143 EXTRN SP_LOGIC:NEAR ;;
144 EXTRN SP_437_XLAT:NEAR ;;
145 EXTRN SP_850_XLAT:NEAR ;;
146 ;;
147SP_LANG_ENT: ;; language entry for SPANISH
148 DB 'SP' ;;
149 DW 172 ;; AN000;ID entry (ID CODE)
150 DW OFFSET SP_LOGIC,0 ;; pointer to LANG kb table
151 DB 1 ;; AN000;number of IDs
152 DB 2 ;; number of code pages
153 DW 850 ;; code page
154 DW OFFSET SP_850_XLAT,0 ;; table pointer
155 DW 437 ;; code page
156 DW OFFSET SP_437_XLAT,0 ;; table pointer
157 ;;
158;*****************************************************************************
159 EXTRN FR1_LOGIC:NEAR ;;AN000;
160 EXTRN FR1_437_XLAT:NEAR ;;AN000;
161 EXTRN FR1_850_XLAT:NEAR ;;AN000;
162 ;;
163 FR1_LANG_ENT: ;;AN000; language entry for FRANCE
164 DB 'FR' ;;AN000; SECONDARY KEYBOARD ID VALUE
165 DW 120 ;;AN000; ID entry
166 DW OFFSET FR1_LOGIC,0 ;;AN000; pointer to LANG kb table
167 DB 2 ;;AN000; number of code pages
168 DB 2 ;;AN000; number of ids
169 DW 437 ;;AN000; code page
170 DW OFFSET FR1_437_XLAT,0 ;;AN000; table pointer
171 DW 850 ;;AN000; code page
172 DW OFFSET FR1_850_XLAT,0 ;;AN000; table pointer
173 ;;AN000;
174;*****************************************************************************
175 EXTRN FR2_LOGIC:NEAR ;;AC000;
176 EXTRN FR2_437_XLAT:NEAR ;;AC000;
177 EXTRN FR2_850_XLAT:NEAR ;;AC000;
178 ;;
179 FR2_LANG_ENT: ;; language entry for FRANCE
180 DB 'FR' ;; PRIMARY KEYBOARD ID VALUE
181 DW 189 ;;AC000; ID entry
182 DW OFFSET FR2_LOGIC,0 ;;AC000; pointer to LANG kb table
183 DB 1 ;;AC000; number of ids
184 DB 2 ;;AC000; number of code pages
185 DW 437 ;;AC000; code page
186 DW OFFSET FR2_437_XLAT,0 ;;AC000; table pointer
187 DW 850 ;;AC000; code page
188 DW OFFSET FR2_850_XLAT,0 ;;AC000; table pointer
189 ;;
190;****************************************************************************
191 EXTRN PO_LOGIC:NEAR ;;AC000;
192 EXTRN PO_850_XLAT:NEAR ;;AC000;
193 EXTRN PO_860_XLAT:NEAR ;;AC000;
194 ;;
195PO_LANG_ENT: ;; language entry for PORTUGAL
196 DB 'PO' ;;
197 DW 163 ;;AN000; ID entry
198 DW OFFSET PO_LOGIC,0 ;; pointer to LANG kb table
199 DB 1 ;;AC000; number of ids
200 DB 2 ;;AC000; number of code pages
201 DW 850 ;;AC000; code page
202 DW OFFSET PO_850_XLAT,0 ;;AC000; table pointer
203 DW 860 ;;AC000; code page
204 DW OFFSET PO_860_XLAT,0 ;;AC000; table pointer
205 ;;
206;*****************************************************************************
207 EXTRN DK_LOGIC:NEAR ;;
208 EXTRN DK_850_XLAT:NEAR ;;AC000;
209 EXTRN DK_865_XLAT:NEAR ;;AC000;
210 ;;
211 DK_LANG_ENT: ;; language entry for DENMARK
212 DB 'DK' ;;
213 DW 159 ;;AN000; ID entry
214 DW OFFSET DK_LOGIC,0 ;; pointer to LANG kb table
215 DB 1 ;;AN000;number of ids
216 DB 2 ;;AC000; number of code pages
217 DW 850 ;;AC000; code page
218 DW OFFSET DK_850_XLAT,0 ;;AC000; table pointer
219 DW 865 ;;AC000; code page
220 DW OFFSET DK_865_XLAT,0 ;;AC000; table pointer
221 ;;
222;*****************************************************************************
223 EXTRN SG_LOGIC:NEAR ;;
224 EXTRN SG_850_XLAT:NEAR ;;
225 EXTRN SG_437_XLAT:NEAR ;;
226 ;;
227SG_LANG_ENT: ;; language entry for SWISS GERMAN
228 DB 'SG' ;;
229 DW 000 ;;AN001; ID entry
230 DW OFFSET SG_LOGIC,0 ;; pointer to LANG kb table
231 DB 1 ;;AN000; number of ids
232 DB 2 ;;AC000; number of code pages
233 DW 850 ;; code page ;;;dcl 850 now default March 8, 1988
234 DW OFFSET SG_850_XLAT,0 ;; table pointer
235 DW 437 ;; code page
236 DW OFFSET SG_437_XLAT,0 ;; table pointer
237 ;;
238;*****************************************************************************
239 EXTRN SF_LOGIC:NEAR ;;
240 EXTRN SF_850_XLAT:NEAR ;;
241 EXTRN SF_437_XLAT:NEAR ;;
242 ;;
243SF_LANG_ENT: ;; language entry for SWISS FRENCH
244 DB 'SF' ;;
245 DW 150 ;;AN000; ID entry
246 DW OFFSET SF_LOGIC,0 ;; pointer to LANG kb table
247 DB 1 ;;AN000; number of ids
248 DB 2 ;;AC000; number of code pages
249 DW 850 ;; code page ;;;dcl 850 now default March 8, 1988
250 DW OFFSET SF_850_XLAT,0 ;; table pointer
251 DW 437 ;; code page
252 DW OFFSET SF_437_XLAT,0 ;; table pointer
253 ;;
254;*****************************************************************************
255 EXTRN GE_LOGIC:NEAR ;;
256 EXTRN GE_437_XLAT:NEAR ;;
257 EXTRN GE_850_XLAT:NEAR ;;
258 ;;
259GE_LANG_ENT: ;; language entry for GERMANY
260 DB 'GR' ;;
261 DW 129 ;;AN000; ID entry
262 DW OFFSET GE_LOGIC,0 ;; pointer to LANG kb table
263 DB 1 ;;AN000; number of ids
264 DB 2 ;;AC000; number of code pages
265 DW 437 ;; code page
266 DW OFFSET GE_437_XLAT,0 ;; table pointer
267 DW 850 ;; code page
268 DW OFFSET GE_850_XLAT,0 ;; table pointer
269 ;;
270;*****************************************************************************
271 EXTRN IT1_LOGIC:NEAR ;;AN000;
272 EXTRN IT1_437_XLAT:NEAR ;;AN000;
273 EXTRN IT1_850_XLAT:NEAR ;;AN000;
274 ;;
275 IT1_LANG_ENT: ;;AN000; language entry for ITALY
276 DB 'IT' ;;AN000; SECONDARY KEYBOARD ID VALUE
277 DW 142 ;;AN000; ID entry
278 DW OFFSET IT1_LOGIC,0 ;;AN000; pointer to LANG kb table
279 DB 2 ;;AN000;number of ids
280 DB 2 ;;AN000; number of code pages
281 DW 437 ;;AN000; code page
282 DW OFFSET IT1_437_XLAT,0 ;;AN000; table pointer
283 DW 850 ;;AN000; code page
284 DW OFFSET IT1_850_XLAT,0 ;;AN000; table pointer
285 ;;
286;*****************************************************************************
287 EXTRN IT2_LOGIC:NEAR ;;
288 EXTRN IT2_437_XLAT:NEAR ;;
289 EXTRN IT2_850_XLAT:NEAR ;;
290 ;;
291 IT2_LANG_ENT: ;;AC000; language entry for ITALY
292 DB 'IT' ;;AC000; PRIMARY KEYBOARD ID VALUE
293 DW 141 ;;AN000; ID entry
294 DW OFFSET IT2_LOGIC,0 ;;AN000; pointer to LANG kb table
295 DB 1 ;;AC000; number of ids
296 DB 2 ;;AC000; number of code pages
297 DW 437 ;;AC000; code page
298 DW OFFSET IT2_437_XLAT,0 ;;AC000; table pointer
299 DW 850 ;;AC000; code page
300 DW OFFSET IT2_850_XLAT,0 ;;AC000; table pointer
301 ;;
302;*****************************************************************************
303 EXTRN UK1_LOGIC:FAR ;;AN000;
304 EXTRN UK1_437_XLAT:FAR ;;AN000;
305 EXTRN UK1_850_XLAT:FAR ;;AN000;
306 ;;
307 UK1_LANG_ENT: ;;AN000; language entry for UNITED KINGDOM
308 DB 'UK' ;;AN000; SECONDARY KEYBOARD ID VALUE
309 DW 168 ;;AN000; ID entry
310 DW OFFSET UK1_LOGIC,0 ;;AN000; pointer to LANG kb table
311 DB 2 ;;AN000; number of ids
312 DB 2 ;;AN000; number of code pages
313 DW 437 ;;AN000; code page
314 DW OFFSET UK1_437_XLAT,0 ;;AN000; table pointer
315 DW 850 ;;AN000; code page
316 DW OFFSET UK1_850_XLAT,0 ;;AN000; table pointer
317 ;;
318;*****************************************************************************
319 EXTRN UK2_LOGIC:FAR ;;AC000;
320 EXTRN UK2_437_XLAT:FAR ;;AC000;
321 EXTRN UK2_850_XLAT:FAR ;;AC000;
322 ;;
323 UK2_LANG_ENT: ;;AN000; language entry for UNITED KINGDOM
324 DB 'UK' ;;AC000; PRIMARY KEYBOARD ID VALUE
325 DW 166 ;;AC000; ID entry
326 DW OFFSET UK2_LOGIC,0 ;;AC000; pointer to LANG kb table
327 DB 1 ;; AN000;number of ids
328 DB 2 ;;AN000; number of code pages
329 DW 437 ;;AC000; code page
330 DW OFFSET UK2_437_XLAT,0 ;;AC000; table pointer
331 DW 850 ;;AC000; code page
332 DW OFFSET UK2_850_XLAT,0 ;;AC000; table pointer
333 ;;
334;*****************************************************************************
335 EXTRN BE_LOGIC:NEAR ;;
336 EXTRN BE_437_XLAT:NEAR ;;
337 EXTRN BE_850_XLAT:NEAR ;;
338 ;;
339BE_LANG_ENT: ;; language entry for BELGIUM
340 DB 'BE' ;;
341 DW 120 ;;AN000; ID entry
342 DW OFFSET BE_LOGIC,0 ;; pointer to LANG kb table
343 DB 1 ;;AN000; number of ids
344 DB 2 ;;AN000; number of code pages
345 DW 850 ;; code page ;; default to 850 - same as country.sys
346 DW OFFSET BE_850_XLAT,0 ;; table pointer
347 DW 437 ;; code page
348 DW OFFSET BE_437_XLAT,0 ;; table pointer
349 ;;
350;*****************************************************************************
351;*****************************************************************************
352 EXTRN NL_LOGIC:NEAR ;;
353 EXTRN NL_437_XLAT:NEAR ;;
354 EXTRN NL_850_XLAT:NEAR ;;
355 ;;
356 NL_LANG_ENT: ;; language entry for NETHERLANDS
357 DB 'NL' ;;
358 DW 143 ;;AN000; ID entry
359 DW OFFSET NL_LOGIC,0 ;; pointer to LANG kb table
360 DB 1 ;;AN000; number of ids
361 DB 2 ;;AN000; number of code pages
362 DW 437 ;; code page
363 DW OFFSET NL_437_XLAT,0 ;; table pointer
364 DW 850 ;; code page
365 DW OFFSET NL_850_XLAT,0 ;; table pointer
366 ;;
367;*****************************************************************************
368;*****************************************************************************
369 EXTRN NO_LOGIC:NEAR ;;
370 EXTRN NO_850_XLAT:NEAR ;;AC000;
371 EXTRN NO_865_XLAT:NEAR ;;AC000;
372 ;;
373 NO_LANG_ENT: ;; language entry for NORWAY
374 DB 'NO' ;;
375 DW 155 ;;AN000; ID entry
376 DW OFFSET NO_LOGIC,0 ;; pointer to LANG kb table
377 DB 1 ;;AN000; number of ids
378 DB 2 ;;AN000; number of code pages
379 DW 850 ;;AC000; code page
380 DW OFFSET NO_850_XLAT,0 ;;AC000; table pointer
381 DW 865 ;;AC000; code page
382 DW OFFSET NO_865_XLAT,0 ;;AC000; table pointer
383 ;;
384;*****************************************************************************
385;*****************************************************************************
386 EXTRN SV_LOGIC:NEAR ;;
387 EXTRN SV_437_XLAT:NEAR ;;
388 EXTRN SV_850_XLAT:NEAR ;;
389 ;;
390 SV_LANG_ENT: ;; language entry for SWEDEN
391 DB 'SV' ;;
392 DW 153 ;;AN000; ID entry
393 DW OFFSET SV_LOGIC,0 ;; pointer to LANG kb table
394 DB 1 ;;AN000; number of ids
395 DB 2 ;;AN000; number of code pages
396 DW 437 ;; code page
397 DW OFFSET SV_437_XLAT,0 ;; table pointer
398 DW 850 ;; code page
399 DW OFFSET SV_850_XLAT,0 ;; table pointer
400 ;;
401;*****************************************************************************
402;*****************************************************************************
403;; Already declared external above
404;; EXTRN Sv_LOGIC:NEAR ;; Finland & Sweden have same layout,
405;; EXTRN Sv_437_XLAT:NEAR ;; but different code page defaults,
406;; EXTRN Sv_850_XLAT:NEAR ;; use Sweden data for Finland
407 ;;
408 SU_LANG_ENT: ;; language entry for FINLAND
409 DB 'SU' ;;
410 DW 153 ;; ID entry
411 DW OFFSET Sv_LOGIC,0 ;; pointer to LANG kb table
412 DB 1 ;; number of ids
413 DB 2 ;; number of code pages
414 DW 850 ;; code page ;;;dcl 850 now default, March 8, 1988
415 DW OFFSET Sv_850_XLAT,0 ;; table pointer
416 DW 437 ;; code page
417 DW OFFSET Sv_437_XLAT,0 ;; table pointer
418 ;;
419;*****************************************************************************
420;*****************************************************************************
421 EXTRN CF_LOGIC:NEAR ;;
422 EXTRN CF_863_XLAT:NEAR ;;
423 EXTRN CF_850_XLAT:NEAR ;;
424 ;;
425 CF_LANG_ENT: ;; language entry for Canadian-French
426 DB 'CF' ;;
427 DW 058 ;; ID entry
428 DW OFFSET CF_LOGIC,0 ;; pointer to LANG kb table
429 DB 1 ;; number of ids
430 DB 2 ;; number of code pages
431 DW 863 ;; code page
432 DW OFFSET CF_863_XLAT,0 ;; table pointer
433 DW 850 ;; code page
434 DW OFFSET CF_850_XLAT,0 ;; table pointer
435 ;;
436;*****************************************************************************
437 EXTRN LA_LOGIC:NEAR ;;
438 EXTRN LA_850_XLAT:NEAR ;;
439 EXTRN LA_437_XLAT:NEAR ;;
440 ;;
441 LA_LANG_ENT: ;; language entry for LATIN AMERICAN
442 DB 'LA' ;;
443 DW 171 ;;AN000; ID entry
444 DW OFFSET LA_LOGIC,0 ;; pointer to LANG kb table
445 DB 1 ;;AN000; number of ids
446 DB 2 ;;AN000; number of code pages
447 DW 850 ;; code page
448 DW OFFSET LA_850_XLAT,0 ;; table pointer
449 DW 437 ;; code page ; default to 437 -same as country.sys
450 DW OFFSET LA_437_XLAT,0 ;; table pointer
451 ;;
452;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
453 ;;
454DUMMY_ENT: ;; language entry
455 DB 'XX' ;;
456 DW 103 ;;AC000; ID entry
457 DW OFFSET DUMMY_LOGIC,0 ;; pointer to LANG kb table
458 DB 1 ;;AC000; number of ids
459 DB 5 ;;AC000; number of code pages
460 DW 437 ;; code page
461 DW OFFSET DUMMY_XLAT_437,0 ;; table pointer
462 DW 850 ;; code page
463 DW OFFSET DUMMY_XLAT_850,0 ;; table pointer
464 DW 860 ;; code page
465 DW OFFSET DUMMY_XLAT_860,0 ;; table pointer
466 DW 863 ;; code page
467 DW OFFSET DUMMY_XLAT_863,0 ;; table pointer
468 DW 865 ;; code page
469 DW OFFSET DUMMY_XLAT_865,0 ;; table pointer
470 ;;
471DUMMY_LOGIC: ;;
472 DW LOGIC_END-$ ;; length
473 DW 0 ;; special features
474 DB 92H,0,0 ;; EXIT_STATE_LOGIC_COMMAND
475LOGIC_END: ;;
476 ;;
477DUMMY_XLAT_437: ;;
478 DW 6 ;; length of section
479 DW 437 ;; code page
480 DW 0 ;; LAST STATE
481 ;;
482DUMMY_XLAT_850: ;;
483 DW 6 ;; length of section
484 DW 850 ;; code page
485 DW 0 ;; LAST STATE
486 ;;
487DUMMY_XLAT_860: ;;
488 DW 6 ;; length of section
489 DW 860 ;; code page
490 DW 0 ;; LAST STATE
491 ;;
492DUMMY_XLAT_865: ;;
493 DW 6 ;; length of section
494 DW 865 ;; code page
495 DW 0 ;; LAST STATE
496 ;;
497DUMMY_XLAT_863: ;;
498 DW 6 ;; length of section
499 DW 863 ;; code page
500 DW 0 ;; LAST STATE
501 ;;
502;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
503;*****************************************************************************
504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
505 ;;
506CODE ENDS ;;
507 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFPO.ASM b/v4.0/src/DEV/KEYBOARD/KDFPO.ASM
new file mode 100644
index 0000000..8247187
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFPO.ASM
@@ -0,0 +1,1607 @@
1;; LATEST CHANGE TO CTL [ and ] on XT moved to key 26 & 27
2;; XT section enabled
3;; ************* CNS 12/18/86
4
5
6 PAGE ,132
7 TITLE DOS - Keyboard Definition File
8
9;; LATEST CHANGE P12 NUMERIC
10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11;; DOS - - NLS Support - Keyboard Defintion File
12;; (c) Copyright 1988 Microsoft
13;;
14;; This file contains the keyboard tables for Portugeuse
15;;
16;; Linkage Instructions:
17;; Refer to KDF.ASM.
18;;
19;; modded : DTF 18-Sep-86
20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
21 ;;
22 INCLUDE KEYBSHAR.INC ;;
23 INCLUDE POSTEQU.INC ;;
24 INCLUDE KEYBMAC.INC ;;
25 ;;
26 PUBLIC PO_LOGIC ;;
27 PUBLIC PO_860_XLAT ;;
28 PUBLIC PO_850_XLAT ;;
29 ;;
30CODE SEGMENT PUBLIC 'CODE' ;;
31 ASSUME CS:CODE,DS:CODE ;;
32 ;;
33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
34;; Standard translate table options are a linear search table
35;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
37 ;;
38STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
39 ;;
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41;; PO State Logic
42;;***************************************
43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
44 ;;
45PO_LOGIC:
46
47 DW LOGIC_END-$ ;; length
48 ;;
49 DW 0 ;; special features
50 ;;
51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
52;; OPTIONS: If we find a scan match in
53;; an XLATT or SET_FLAG operation then
54;; exit from INT 9.
55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
56 ;;
57 OPTION EXIT_IF_FOUND ;;
58 ;;
59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
60;; Dead key definitions must come before
61;; dead key translations to handle
62;; dead key + dead key.
63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
64 ;;
65 IFF EITHER_ALT,NOT ;;
66 ANDF EITHER_CTL,NOT ;;
67 IFF EITHER_SHIFT ;;
68 SET_FLAG DEAD_UPPER ;;
69 ELSEF ;;
70 SET_FLAG DEAD_LOWER ;;
71 ENDIFF ;;
72 ENDIFF ;;
73IFF EITHER_SHIFT,NOT ;;
74 IFKBD XT_KB+AT_KB ;;
75 IFF EITHER_CTL ;;
76 ANDF ALT_SHIFT ;;
77 SET_FLAG DEAD_THIRD ;;
78 ENDIFF ;;
79 ELSEF ;;
80 IFF EITHER_CTL,NOT ;;
81 ANDF R_ALT_SHIFT ;;
82 SET_FLAG DEAD_THIRD ;;
83 ENDIFF ;;
84 ENDIFF ;;
85ENDIFF ;;
86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
87;; ACUTE ACCENT TRANSLATIONS
88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
89 ;;
90ACUTE_PROC: ;;
91 ;;
92 IFF ACUTE,NOT ;;
93 GOTO DIARESIS_PROC ;;
94 ENDIFF ;;
95 ;;
96 RESET_NLS ;;
97 IFF R_ALT_SHIFT,NOT ;;
98 XLATT ACUTE_SPACE ;;
99 ENDIFF ;;
100 IFF EITHER_CTL,NOT ;;
101 ANDF EITHER_ALT,NOT ;;
102 IFF EITHER_SHIFT ;;
103 IFF CAPS_STATE ;;
104 XLATT ACUTE_LOWER ;;
105 ELSEF ;;
106 XLATT ACUTE_UPPER ;;
107 ENDIFF ;;
108 ELSEF ;;
109 IFF CAPS_STATE ;;
110 XLATT ACUTE_UPPER ;;
111 ELSEF ;;
112 XLATT ACUTE_LOWER ;;
113 ENDIFF ;;
114 ENDIFF ;;
115 ENDIFF ;;
116 ;;
117INVALID_ACUTE: ;;
118 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
119 BEEP ;; failed or we are ina bad shift state.
120 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
121 ;; through to generate the second char.
122 ;; Note that the dead key flag will be
123 ;; reset before we get here.
124 ;;
125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
126;; DIARESIS ACCENT TRANSLATIONS
127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
128 ;;
129DIARESIS_PROC: ;;
130 ;;
131 IFF DIARESIS,NOT ;;
132 GOTO GRAVE_PROC ;;
133 ENDIFF ;;
134 ;;
135 RESET_NLS ;;
136 IFF R_ALT_SHIFT,NOT ;;
137 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
138 ENDIFF ;;
139 IFF EITHER_CTL,NOT ;;
140 ANDF EITHER_ALT,NOT ;;
141 IFF EITHER_SHIFT ;;
142 IFF CAPS_STATE ;;
143 XLATT DIARESIS_LOWER ;;
144 ELSEF ;;
145 XLATT DIARESIS_UPPER ;;
146 ENDIFF ;;
147 ELSEF ;;
148 IFF CAPS_STATE ;;
149 XLATT DIARESIS_UPPER ;;
150 ELSEF ;;
151 XLATT DIARESIS_LOWER ;;
152 ENDIFF ;;
153 ENDIFF ;;
154 ENDIFF ;;
155 ;;
156INVALID_DIARESIS: ;;
157 PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent
158 BEEP ;; Invalid dead key combo.
159 GOTO NON_DEAD ;;
160 ;;
161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
162;; GRAVE ACCENT TRANSLATIONS
163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
164 ;;
165GRAVE_PROC: ;;
166 ;;
167 IFF GRAVE,NOT ;;
168 GOTO TILDE_PROC ;;
169 ENDIFF ;;
170 ;;
171 RESET_NLS ;;
172 IFF R_ALT_SHIFT,NOT ;;
173 XLATT GRAVE_SPACE ;;
174 ENDIFF ;;
175 IFF EITHER_CTL,NOT ;;
176 ANDF EITHER_ALT,NOT ;;
177 IFF EITHER_SHIFT ;;
178 IFF CAPS_STATE ;;
179 XLATT GRAVE_LOWER ;;
180 ELSEF ;;
181 XLATT GRAVE_UPPER ;;
182 ENDIFF ;;
183 ELSEF ;;
184 IFF CAPS_STATE,NOT ;;
185 XLATT GRAVE_LOWER ;;
186 ELSEF ;;
187 XLATT GRAVE_UPPER ;;
188 ENDIFF ;;
189 ENDIFF ;;
190 ENDIFF ;;
191 ;;
192INVALID_GRAVE: ;;
193 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
194 BEEP ;; Invalid dead key combo.
195 GOTO NON_DEAD ;;
196 ;;
197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
198;; TILDE ACCENT TRANSLATIONS
199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
200TILDE_PROC: ;;
201 ;;
202 IFF TILDE,NOT ;;
203 GOTO CIRCUMFLEX_PROC ;;
204 ENDIFF ;;
205 ;;
206 RESET_NLS ;;
207 IFF R_ALT_SHIFT,NOT ;;
208 XLATT TILDE_SPACE ;;
209 ENDIFF ;;
210 IFF EITHER_CTL,NOT ;;
211 ANDF EITHER_ALT,NOT ;;
212 IFF EITHER_SHIFT ;;
213 IFF CAPS_STATE ;;
214 XLATT TILDE_LOWER ;;
215 ELSEF ;;
216 XLATT TILDE_UPPER ;;
217 ENDIFF ;;
218 ELSEF ;;
219 IFF CAPS_STATE ;;
220 XLATT TILDE_UPPER ;;
221 ELSEF ;;
222 XLATT TILDE_LOWER ;;
223 ENDIFF ;;
224 ENDIFF ;;
225 ENDIFF ;;
226 ;;
227INVALID_TILDE: ;;
228 PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent
229 BEEP ;; Invalid dead key combo.
230 GOTO NON_DEAD ;;
231 ;;
232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
233;; CIRCUMFLEX ACCENT TRANSLATIONS
234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
235 ;;
236CIRCUMFLEX_PROC: ;;
237 ;;
238 IFF CIRCUMFLEX,NOT ;;
239 GOTO NON_DEAD ;;
240 ENDIFF ;;
241 ;;
242 RESET_NLS ;;
243 IFF R_ALT_SHIFT,NOT ;;
244 XLATT CIRCUMFLEX_SPACE ;;
245 ENDIFF ;;
246 IFF EITHER_CTL,NOT ;;
247 ANDF EITHER_ALT,NOT ;;
248 IFF EITHER_SHIFT ;;
249 IFF CAPS_STATE ;;
250 XLATT CIRCUMFLEX_LOWER ;;
251 ELSEF ;;
252 XLATT CIRCUMFLEX_UPPER ;;
253 ENDIFF ;;
254 ELSEF ;;
255 IFF CAPS_STATE,NOT ;;
256 XLATT CIRCUMFLEX_LOWER ;;
257 ELSEF ;;
258 XLATT CIRCUMFLEX_UPPER ;;
259 ENDIFF ;;
260 ENDIFF ;;
261 ENDIFF ;;
262 ;;
263INVALID_CIRCUMFLEX: ;;
264 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
265 BEEP ;; Invalid dead key combo.
266 GOTO NON_DEAD ;;
267 ;;
268;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
269;; Upper, lower and third shifts
270;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
271 ;;
272NON_DEAD: ;;
273 ;;
274 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
275 ANDF LC_E0 ;; the "/" on the numeric pad of the
276 EXIT_STATE_LOGIC ;; G keyboard
277 ENDIFF ;;
278 ;;
279 IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
280 ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
281 IFF EITHER_SHIFT ;; Numeric keys are not.
282;;***BD ADDED FOR NUMERIC PAD
283 IFF NUM_STATE,NOT ;;
284 XLATT NUMERIC_PAD ;;
285 ENDIFF ;;
286;;***BD END OF ADDITION
287 XLATT NON_ALPHA_UPPER ;;
288 IFF CAPS_STATE ;;
289 XLATT ALPHA_LOWER ;;
290 ELSEF ;;
291 XLATT ALPHA_UPPER ;;
292 ENDIFF ;;
293 ELSEF ;;
294;;***BD ADDED FOR NUMERIC PAD
295 IFF NUM_STATE ;;
296 XLATT NUMERIC_PAD ;;
297 ENDIFF ;;
298;;***BD END OF ADDITION
299 XLATT NON_ALPHA_LOWER ;;
300 IFF CAPS_STATE ;;
301 XLATT ALPHA_UPPER ;;
302 ELSEF ;;
303 XLATT ALPHA_LOWER ;;
304 ENDIFF ;;
305 ENDIFF ;;
306 ELSEF ;;
307 IFF EITHER_SHIFT,NOT ;;
308 IFKBD XT_KB+AT_KB ;;
309 IFF EITHER_CTL ;;
310 ANDF ALT_SHIFT ;;
311 XLATT THIRD_SHIFT ;;
312 ENDIFF ;;
313 ELSEF ;;
314 IFF EITHER_CTL,NOT ;;
315 ANDF R_ALT_SHIFT ;;
316 XLATT THIRD_SHIFT ;;
317 ENDIFF ;;
318 ENDIFF ;;
319 ENDIFF ;;
320 ENDIFF ;;
321;**************************************;;
322 IFF EITHER_SHIFT,NOT ;;
323 IFKBD XT_KB+AT_KB ;;
324 IFF EITHER_CTL ;;
325 ANDF ALT_SHIFT ;;
326 XLATT ALT_CASE ;;
327 ENDIFF ;;
328 ENDIFF ;;
329 IFKBD G_KB+P12_KB ;;
330 IFF EITHER_CTL ;;
331 ANDF ALT_SHIFT ;;
332 IFF R_ALT_SHIFT,NOT ;;
333 XLATT ALT_CASE ;;
334 ENDIFF ;;
335 ENDIFF ;;
336 ENDIFF ;;
337 ENDIFF ;;
338;**************************************;;
339 IFKBD AT_KB+XT_KB ;;
340 IFF EITHER_CTL,NOT ;;
341 IFF ALT_SHIFT ;; ALT - case
342 XLATT ALT_CASE ;;
343 ENDIFF ;;
344 ELSEF ;;
345 IFF EITHER_ALT,NOT ;; CTRL - case
346 XLATT CTRL_CASE ;;
347 ENDIFF ;;
348 ENDIFF ;;
349 ENDIFF ;;
350 ;;
351 IFKBD G_KB+P12_KB ;;
352 IFF EITHER_CTL,NOT ;;
353 IFF ALT_SHIFT ;; ALT - case
354 ANDF R_ALT_SHIFT,NOT ;;
355 XLATT ALT_CASE ;;
356 ENDIFF ;;
357 ELSEF ;;
358 IFF EITHER_ALT,NOT ;; CTRL - case
359 XLATT CTRL_CASE ;;
360 ENDIFF ;;
361 ENDIFF ;;
362 IFF EITHER_CTL ;;
363 ANDF ALT_SHIFT ;;
364 ANDF R_ALT_SHIFT,NOT ;;
365 XLATT ALT_CASE ;;
366 ENDIFF ;;
367 ENDIFF ;;
368 ;;
369 EXIT_STATE_LOGIC ;;
370 ;;
371LOGIC_END: ;;
372 ;;
373;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
374;; PO Common Translate Section
375;; This section contains translations for the lower 128 characters
376;; only since these will never change from code page to code page.
377;; In addition the dead key "Set Flag" tables are here since the
378;; dead keys are on the same keytops for all code pages.
379;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
380 ;;
381 PUBLIC PO_COMMON_XLAT ;;
382PO_COMMON_XLAT: ;;
383 ;;
384 DW COMMON_XLAT_END-$ ;; length of section
385 DW -1 ;; code page
386 ;;
387 ;;
388;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
389;; CODE PAGE: Common
390;; STATE: Lower Shift Dead Key
391;; KEYBOARD TYPES: XT
392;; TABLE TYPE: Flag Table
393;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
394 ;;
395 DW COM_DK_LO_END-$ ;; length of state section
396 DB DEAD_LOWER ;; State ID
397 DW XT_KB ;; Keyboard Type
398 DB -1,-1 ;; Buffer entry for error character
399 ;; Set Flag Table
400 DW 2 ;; number of entries
401 DB 27 ;; scan code
402 FLAG ACUTE ;; flag bit to set
403 DB 41 ;;
404 FLAG TILDE ;;
405 ;;
406 ;;
407COM_DK_LO_END: ;;
408 ;;
409;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
410;; CODE PAGE: Common
411;; STATE: Lower Shift Dead Key
412;; KEYBOARD TYPES: G, P12
413;; TABLE TYPE: Flag Table
414;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
415 ;;
416 DW COM_DK_LO_K1_END-$ ;; length of state section
417 DB DEAD_LOWER ;; State ID
418 DW G_KB+P12_KB ;; Keyboard Type
419 DB -1,-1 ;; Buffer entry for error character
420 ;; Set Flag Table
421 DW 2 ;; number of entries
422 DB 27 ;; scan code
423 FLAG ACUTE ;; flag bit to set
424 DB 43 ;;
425 FLAG TILDE ;;
426 ;;
427 ;;
428COM_DK_LO_K1_END: ;;
429 ;;
430;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
431;; CODE PAGE: Common
432;; STATE: Upper Shift Dead Key
433;; KEYBOARD TYPES: XT
434;; TABLE TYPE: Flag Table
435;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
436 ;;
437 DW COM_DK_UP_END-$ ;; length of state section
438 DB DEAD_UPPER ;; State ID
439 DW XT_KB ;; Keyboard Type
440 DB -1,-1 ;; Buffer entry for error character
441 ;; Set Flag Table
442 DW 2 ;; number of entries
443 DB 27 ;; scan code
444 FLAG GRAVE ;; flag bit to set
445 DB 41 ;;
446 FLAG CIRCUMFLEX ;;
447 ;;
448COM_DK_UP_END: ;;
449 ;;
450;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
451;; CODE PAGE: Common
452;; STATE: Upper Shift Dead Key
453;; KEYBOARD TYPES: G, P12,
454;; TABLE TYPE: Flag Table
455;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
456 ;;
457 DW COM_DK_UP_K1_END-$ ;; length of state section
458 DB DEAD_UPPER ;; State ID
459 DW G_KB+P12_KB ;; Keyboard Type
460 DB -1,-1 ;; Buffer entry for error character
461 ;; Set Flag Table
462 DW 2 ;; number of entries
463 DB 27 ;; scan code
464 FLAG GRAVE ;; flag bit to set
465 DB 43 ;;
466 FLAG CIRCUMFLEX ;;
467 ;;
468COM_DK_UP_K1_END: ;;
469 ;;
470;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
471;; CODE PAGE: Common
472;; STATE: Third Shift Dead Key
473;; KEYBOARD TYPES: G, P12
474;; TABLE TYPE: Flag Table
475;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
476 ;;
477 DW COM_DK_TH_END-$ ;; length of state section
478 DB DEAD_THIRD ;; State ID
479 DW G_KB+P12_KB ;; Keyboard Type
480 DB -1,-1 ;; Buffer entry for error character
481 ;; Set Flag Table
482 DW 1 ;; number of entries
483 DB 26 ;; scan code
484 FLAG DIARESIS ;; flag bit to set
485 ;;
486COM_DK_TH_END: ;;
487 ;;
488;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
489;; CODE PAGE: Common
490;; STATE: Alt Case
491;; KEYBOARD TYPES: XT, G, P12,
492;; TABLE TYPE: Translate
493;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
494 ;;
495 DW COM_ALT_K1_END-$ ;; length of state section
496 DB ALT_CASE ;; State ID
497 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
498 DB -1,-1 ;; Buffer entry for error character
499 ;;
500 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
501 DB TYPE_2_TAB ;; xlat options:
502 DB 0 ;; 2 number of entries
503; DB 12,-1,-1 ;; BLOT OUT HYPHEN
504; DB 53,0,82H ;; MOVE HYPHEN
505COM_ALT_K1_T1_END: ;;
506 ;;
507 DW 0 ;; Size of xlat table - null table
508 ;;
509COM_ALT_K1_END: ;;
510 ;;
511;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
512;; CODE PAGE: Common
513;; STATE: Ctrl Case
514;; KEYBOARD TYPES: G, P12,
515;; TABLE TYPE: Translate
516;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
517 ;;
518 DW COM_CTRL_K1_END-$ ;; length of state section
519 DB CTRL_CASE ;; State ID **** CNS 12/18
520 DW G_KB+P12_KB ;; Keyboard Type
521 DB -1,-1 ;; Buffer entry for error character
522 ;;
523 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
524 DB TYPE_2_TAB ;; xlat options:
525 DB 7 ;; number of entries
526 DB 09,1BH,09 ;; [
527 DB 10,1DH,10 ;; ]
528 DB 12,-1,-1 ;; BLOT OUT HYPHEN
529 DB 1AH,-1,-1 ;; " " [
530 DB 1BH,-1,-1 ;; " " ]
531 DB 29H,1CH,29H ;; backslash
532 DB 53,01FH,35H ;; MOVE HYPHEN
533COM_CTRL_K1_T1_END: ;;
534 ;;
535 DW 0 ;; Size of xlat table - null table
536 ;;
537COM_CTRL_K1_END: ;;
538 ;;
539;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
540;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
541;; CODE PAGE: Common
542;; STATE: Ctrl Case
543;; KEYBOARD TYPES: XT
544;; TABLE TYPE: Translate
545;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; *** CNS 12/18/86
546 ;;
547 DW COM_CTRL_K2_END-$ ;; length of state section
548 DB CTRL_CASE ;; State ID
549 DW XT_KB ;; Keyboard Type
550 DB -1,-1 ;; Buffer entry for error character
551 ;;
552 DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table
553 DB TYPE_2_TAB ;; xlat options:
554 DB 5 ;; number of entries
555 DB 12,-1,-1 ;; BLOT OUT HYPHEN
556 DB 1AH,1BH,1AH ;; " " [
557 DB 1BH,1DH,1BH ;; " " ]
558 DB 43,1CH,43 ;; backslash
559 DB 53,01FH,35H ;; MOVE HYPHEN
560COM_CTRL_K2_T1_END: ;;
561 ;;
562 DW 0 ;; Size of xlat table - null table
563 ;;
564COM_CTRL_K2_END: ;;
565 ;;
566;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
567;; CODE PAGE: Common
568;; STATE: Alpha Lower Case
569;; KEYBOARD TYPES: XT, G, P12,
570;; TABLE TYPE: Translate
571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
572 ;;
573 DW COM_AL_LO_END-$ ;; length of state section
574 DB ALPHA_LOWER ;; State ID
575 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
576 DB -1,-1 ;; Buffer entry for error character
577 ;;
578 DW COM_AL_LO_T1_END-$ ;; Size of xlat table
579 DB STANDARD_TABLE ;; xlat options:
580 DB 1 ;; number of entries
581 DB 39,087H ;; c-cedilla
582COM_AL_LO_T1_END: ;;
583 ;;
584 DW 0 ;; Size of xlat table - null table
585 ;;
586COM_AL_LO_END: ;;
587 ;;
588;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
589;; CODE PAGE: Common
590;; STATE: Alpha Upper Case
591;; KEYBOARD TYPES: XT, G, P12,
592;; TABLE TYPE: Translate
593;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
594 ;;
595 DW COM_AL_UP_END-$ ;; length of state section
596 DB ALPHA_UPPER ;; State ID
597 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
598 DB -1,-1 ;; Buffer entry for error character
599 ;;
600 DW COM_AL_UP_T1_END-$ ;; Size of xlat table
601 DB STANDARD_TABLE ;; xlat options:
602 DB 1 ;; number of entries
603 DB 39,080H ;; c-cedilla
604COM_AL_UP_T1_END: ;;
605 ;;
606 DW 0 ;; Size of xlat table - null table
607 ;;
608COM_AL_UP_END: ;;
609 ;;
610 ;;
611;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
612;; CODE PAGE: Common
613;; STATE: Non-Alpha Lower Case
614;; KEYBOARD TYPES: XT,
615;; TABLE TYPE: Translate
616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
617 ;;
618 DW COM_NA_LO_END-$ ;; length of state section
619 DB NON_ALPHA_LOWER ;; State ID
620 DW XT_KB ;; Keyboard Type
621 DB -1,-1 ;; Buffer entry for error character
622 ;;
623 DW COM_NA_LO_T1_END-$ ;; Size of xlat table
624 DB STANDARD_TABLE ;; xlat options:
625 DB 6 ;; number of entries
626 DB 12,"'" ;;
627 DB 13,0AEH ;;
628 DB 26,"+" ;;
629 DB 40,0A7H ;;
630 DB 43,"<" ;;
631 DB 53,"-" ;;
632COM_NA_LO_T1_END: ;;
633 ;;
634 DW 0 ;; Size of xlat table - null table
635 ;;
636COM_NA_LO_END: ;;
637 ;;
638;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
639;; CODE PAGE: Common
640;; STATE: Non-Alpha Lower Case
641;; KEYBOARD TYPES: XT, , G, P12,
642;; TABLE TYPE: Translate
643;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
644 ;;
645 DW COM_NA_LO_K1_END-$ ;; length of state section
646 DB NON_ALPHA_LOWER ;; State ID
647 DW G_KB+P12_KB ;; Keyboard Type
648 DB -1,-1 ;; Buffer entry for error character
649 ;;
650 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
651 DB STANDARD_TABLE ;; xlat options:
652 DB 7 ;; number of entries
653 DB 12,"'" ;;
654 DB 13,0AEH ;;
655 DB 26,"+" ;;
656 DB 40,0A7H ;;
657 DB 41,"\" ;;
658 DB 53,"-" ;;
659 DB 86,"<" ;;
660COM_NA_LO_K1_T1_END: ;;
661 ;;
662 DW 0 ;; Size of xlat table - null table
663 ;;
664COM_NA_LO_K1_END: ;;
665 ;;
666;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
667;; CODE PAGE: Common
668;; STATE: Non-Alpha Upper Case
669;; KEYBOARD TYPES: XT,
670;; TABLE TYPE: Translate
671;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
672 ;;
673 DW COM_NA_UP_END-$ ;; length of state section
674 DB NON_ALPHA_UPPER ;; State ID
675 DW XT_KB ;; Keyboard Type
676 DB -1,-1 ;; Buffer entry for error character
677 ;;
678 DW COM_NA_UP_T1_END-$ ;; Size of xlat table
679 DB STANDARD_TABLE ;; xlat options:
680 DB 14 ;;
681 DB 3,'"' ;;
682 DB 7,'&' ;;
683 DB 8,'/' ;;
684 DB 9,'(' ;;
685 DB 10,')' ;;
686 DB 11,'=' ;;
687 DB 12,'?' ;;
688 DB 13,0AFH ;; right double arrow ¯
689 DB 26,'*' ;;
690 DB 40,0A6H ;;¦ a underscore
691 DB 43,'>' ;;
692 DB 51,';' ;;
693 DB 52,':' ;;
694 DB 53,'_' ;;
695 ;;
696COM_NA_UP_T1_END: ;;
697 ;;
698 DW 0 ;; Size of xlat table - null table
699 ;;
700COM_NA_UP_END: ;;
701 ;;
702 ;;
703;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
704;; CODE PAGE: Common
705;; STATE: Non-Alpha Upper Case
706;; KEYBOARD TYPES: G, P12,
707;; TABLE TYPE: Translate
708;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
709 ;;
710 DW COM_NA_UP_K1_END-$ ;; length of state section
711 DB NON_ALPHA_UPPER ;; State ID
712 DW G_KB+P12_KB ;; Keyboard Type
713 DB -1,-1 ;; Buffer entry for error character
714 ;;
715 DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table
716 DB STANDARD_TABLE ;; xlat options:
717 DB 15 ;;
718 DB 3,'"' ;;
719 DB 7,'&' ;;
720 DB 8,'/' ;;
721 DB 9,'(' ;;
722 DB 10,')' ;;
723 DB 11,'=' ;;
724 DB 12,'?' ;;
725 DB 13,0AFH ;; right double arrow ¯
726 DB 26,'*' ;;
727 DB 40,0A6H ;;¦ a underscore
728 DB 41,07CH ;;|
729 DB 51,';' ;;
730 DB 52,':' ;;
731 DB 53,'_' ;;
732 DB 86,'>' ;;
733 ;;
734COM_NA_UP_K1_T1_END: ;;
735 ;;
736 DW 0 ;; Size of xlat table - null table
737 ;;
738COM_NA_UP_K1_END: ;;
739 ;;
740 ;;
741;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
742;; CODE PAGE: Common
743;; STATE: Third Shift
744;; KEYBOARD TYPES: XT,
745;; TABLE TYPE: Translate
746;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
747 ;;
748 DW COM_THIRD_END-$ ;; length of state section
749 DB THIRD_SHIFT ;; State ID
750 DW XT_KB ;; Keyboard Type
751 DB -1,-1 ;; Buffer entry for error character
752 ;;
753 DW COM_THIRD_T1_END-$ ;; Size of xlat table
754 DB STANDARD_TABLE ;; xlat options:
755 DB 8 ;; number of entries
756 DB 2,'|' ;;
757 DB 3,'@' ;;
758 DB 5,09CH ;; œ
759 DB 9,'{' ;;
760 DB 10,'}' ;;
761 DB 26,'[' ;;
762 DB 27,']' ;;
763 DB 43,'\' ;;
764COM_THIRD_T1_END: ;;
765 ;;
766 DW 0 ;; Last xlat table
767COM_THIRD_END: ;;
768 ;;
769;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
770;; CODE PAGE: Common
771;; STATE: Third Shift
772;; KEYBOARD TYPES: G, P12,
773;; TABLE TYPE: Translate
774;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
775 ;;
776 DW COM_THIRD_K1_END-$ ;; length of state section
777 DB THIRD_SHIFT ;; State ID
778 DW G_KB+P12_KB ;; Keyboard Type
779 DB -1,-1 ;; Buffer entry for error character
780 ;;
781 DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table
782 DB STANDARD_TABLE ;; xlat options:
783 DB 6 ;; number of entries
784 DB 3,'@' ;;
785 DB 4,09CH ;; œ
786 DB 8,'{' ;;
787 DB 9,'[' ;;
788 DB 10,']' ;;
789 DB 11,'}' ;;
790COM_THIRD_K1_T1_END: ;;
791 ;;
792 DW 0 ;; Last xlat table
793COM_THIRD_K1_END: ;;
794 ;;
795;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
796;; CODE PAGE: Common
797;; STATE: Grave Lower
798;; KEYBOARD TYPES: XT, , G, P12,
799;; TABLE TYPE: Translate
800;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
801 ;;
802 DW COM_GR_LO_END-$ ;; length of state section
803 DB GRAVE_LOWER ;; State ID
804 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
805 DB 96,0 ;; error character = standalone accent
806 ;;
807 DW COM_GR_LO_T1_END-$ ;; Size of xlat table
808 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
809 DB 5 ;; number of scans
810 DB 18,'Š' ;; scan code,ASCII - e
811 DB 22,'—' ;; scan code,ASCII - u
812 DB 23,'' ;; scan code,ASCII - i
813 DB 24,'•' ;; scan code,ASCII - o
814 DB 30,'…' ;; scan code,ASCII - a
815COM_GR_LO_T1_END: ;;
816 ;;
817 DW 0 ;; Size of xlat table - null table
818 ;;
819COM_GR_LO_END: ;; length of state section
820 ;;
821;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
822;; CODE PAGE: Common
823;; STATE: Grave Space Bar
824;; KEYBOARD TYPES: XT, , G, P12,
825;; TABLE TYPE: Translate
826;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
827 ;;
828 DW COM_GR_SP_END-$ ;; length of state section
829 DB GRAVE_SPACE ;; State ID
830 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
831 DB 96,0 ;; error character = standalone accent
832 ;;
833 DW COM_GR_SP_T1_END-$ ;; Size of xlat table
834 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
835 DB 1 ;; number of scans
836 DB 57,96 ;; STANDALONE GRAVE
837COM_GR_SP_T1_END: ;;
838 ;;
839 DW 0 ;; Size of xlat table - null table
840 ;;
841COM_GR_SP_END: ;; length of state section
842 ;;
843;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
844;; CODE PAGE: Common
845;; STATE: Circumflex Lower
846;; KEYBOARD TYPES: XT, , G, P12,
847;; TABLE TYPE: Translate
848;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
849 ;;
850 DW COM_CI_LO_END-$ ;; length of state section
851 DB CIRCUMFLEX_LOWER ;; State ID
852 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
853 DB 94,0 ;; error character = standalone accent
854 ;;
855 DW COM_CI_LO_T1_END-$ ;; Size of xlat table
856 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
857 DB 3 ;; number of scans
858 DB 18,'ˆ' ;; scan code,ASCII - e
859 DB 24,'“' ;; scan code,ASCII - o
860 DB 30,'ƒ' ;; scan code,ASCII - a
861COM_CI_LO_T1_END: ;;
862 ;;
863 DW 0 ;;
864 ;;
865COM_CI_LO_END: ;;
866 ;;
867;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
868;; CODE PAGE: Common
869;; STATE: Circumflex Space Bar
870;; KEYBOARD TYPES: XT, , G, P12,
871;; TABLE TYPE: Translate
872;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
873 ;;
874 DW COM_CI_SP_END-$ ;; length of state section
875 DB CIRCUMFLEX_SPACE ;; State ID
876 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
877 DB 94,0 ;; error character = standalone accent
878 ;;
879 DW COM_CI_SP_T1_END-$ ;; Size of xlat table
880 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
881 DB 1 ;; number of scans
882 DB 57,94 ;; STANDALONE CIRCUMFLEX
883COM_CI_SP_T1_END: ;;
884 ;;
885 DW 0 ;; Size of xlat table - null table
886 ;;
887COM_CI_SP_END: ;; length of state section
888 ;;
889;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
890;; CODE PAGE: Common
891;; STATE: Tilde Lower
892;; KEYBOARD TYPES: XT,
893;; TABLE TYPE: Translate
894;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
895 ;;
896 DW COM_TI_LO_END-$ ;; length of state section
897 DB TILDE_LOWER ;; State ID
898 DW XT_KB ;; Keyboard Type
899 DB 07EH,0 ;; error character = standalone accent
900 ;;
901 DW COM_TI_LO_T1_END-$ ;; Size of xlat table
902 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
903 DB 4 ;; number of scans
904 DB 30,0C6H ;; scan code,ASCII - tilde a
905 DB 24,0E4H ;; scan code,ASCII - tilde o
906 DB 49,0A4H ;; scan code,ASCII - ¤
907 DB 22,081h ;; scan code,ASCII - u diaresis
908 COM_TI_LO_T1_END: ;; because the diaresis is not
909 ;; available on the XT
910 DW 0 ;;
911 ;;
912 COM_TI_LO_END: ;;
913 ;;
914;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
915;;; CODE PAGE: Common
916;;; STATE: Tilde Upper Case
917;;; KEYBOARD TYPES: XT,
918;;; TABLE TYPE: Translate
919;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
920 ;;
921 DW COM_TI_UP_END-$ ;; length of state section
922 DB TILDE_UPPER ;; State ID
923 DW XT_KB ;; Keyboard Type
924 DB 07eH,0 ;; error character = standalone accent
925 ;;
926 DW COM_TI_UP_T1_END-$ ;; Size of xlat table
927 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
928 DB 4 ;; number of scans
929 DB 30,0C7H ;; scan code,ASCII - tilde A
930 DB 24,0E5H ;; scan code,ASCII - tilde O
931 DB 49,0A5H ;; scan code,ASCII - ¥
932 DB 22,09AH ;; scan code,ASCII - U diaresis
933 COM_TI_UP_T1_END: ;; because the diaresis is not
934 ;; available on the XT
935 DW 0 ;; Size of xlat table - null table
936 ;;
937 COM_TI_UP_END: ;; length of state section
938 ;;
939 ;;
940;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
941;; CODE PAGE: Common
942;; STATE: Tilde Lower
943;; KEYBOARD TYPES: G, P12
944;; TABLE TYPE: Translate
945;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
946 ;;
947 DW COM_TI_LO_K1_END-$ ;; length of state section
948 DB TILDE_LOWER ;; State ID
949 DW G_KB+P12_KB ;; Keyboard Type
950 DB 07EH,0 ;; error character = standalone accent
951 ;;
952 DW COM_TI_LO_K1_T1_END-$ ;; Size of xlat table
953 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
954 DB 3 ;; number of scans
955 DB 30,0C6H ;; scan code,ASCII - tilde a
956 DB 24,0E4H ;; scan code,ASCII - tilde o
957 DB 49,0A4H ;; scan code,ASCII - ¤
958 COM_TI_LO_K1_T1_END: ;;
959 ;;
960 DW 0 ;;
961 ;;
962 COM_TI_LO_K1_END: ;;
963 ;;
964;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
965;;; CODE PAGE: Common
966;;; STATE: Tilde Upper Case
967;;; KEYBOARD TYPES: G, P12
968;;; TABLE TYPE: Translate
969;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
970 ;;
971 DW COM_TI_UP_K1_END-$ ;; length of state section
972 DB TILDE_UPPER ;; State ID
973 DW G_KB+P12_KB ;; Keyboard Type
974 DB 07EH,0 ;; error character = standalone accent
975 ;;
976 DW COM_TI_UP_K1_T1_END-$ ;; Size of xlat table
977 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
978 DB 3 ;; number of scans
979 DB 30,0C7H ;; scan code,ASCII - tilde A
980 DB 24,0E5H ;; scan code,ASCII - tilde O
981 DB 49,0A5H ;; scan code,ASCII - ¥
982 COM_TI_UP_K1_T1_END: ;;
983 ;;
984 DW 0 ;; Size of xlat table - null table
985 ;;
986 COM_TI_UP_K1_END: ;; length of state section
987 ;;
988 ;;
989;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
990;; CODE PAGE: Common
991;; STATE: Tilde Space Bar
992;; KEYBOARD TYPES: XT, , G, P12,
993;; TABLE TYPE: Translate
994;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
995 ;;
996 DW COM_TI_SP_END-$ ;; length of state section
997 DB TILDE_SPACE ;; State ID
998 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
999 DB 07EH,0 ;; error character = standalone accent
1000 ;;
1001 DW COM_TI_SP_T1_END-$ ;; Size of xlat table
1002 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1003 DB 1 ;; number of scans
1004 DB 57,07EH ;; STANDALONE TILDE
1005COM_TI_SP_T1_END: ;;
1006 ;;
1007 DW 0 ;; Size of xlat table - null table
1008 ;;
1009COM_TI_SP_END: ;; length of state section
1010 ;;
1011;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1012 DW 0 ;; Last State
1013COMMON_XLAT_END: ;;
1014 ;;
1015;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1016;;***************************************
1017;; PO Specific Translate Section for 860
1018;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1019 ;;
1020 PUBLIC PO_860_XLAT ;;
1021PO_860_XLAT: ;;
1022 ;;
1023 DW CP860_XLAT_END-$ ;; length of section
1024 DW 860 ;;
1025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1026;; CODE PAGE: 860
1027;; STATE: Third Shift
1028;; KEYBOARD TYPES: G, P12,
1029;; TABLE TYPE: Translate
1030;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1031 ;;
1032 DW CP860_THIRD_K1_END-$ ;; length of state section
1033 DB THIRD_SHIFT ;; State ID
1034 DW G_KB+P12_KB ;; Keyboard Type
1035 DB -1,-1 ;; Buffer entry for error character
1036 ;;
1037 DW CP860_THIRD_K1_T1_END-$ ;; Size of xlat table
1038 DB STANDARD_TABLE ;; xlat options:
1039 DB 1 ;; number of entries
1040 DB 5,015H ;; section symbol
1041CP860_THIRD_K1_T1_END: ;;
1042 ;;
1043 DW 0 ;; Last xlat table
1044CP860_THIRD_K1_END: ;;
1045 ;;
1046;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1047;; CODE PAGE: 860
1048;; STATE: Acute Lower Case
1049;; KEYBOARD TYPES: XT, , G, P12,
1050;; TABLE TYPE: Translate
1051;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1052 ;;
1053 DW CP860_AC_LO_END-$ ;; length of state section
1054 DB ACUTE_LOWER ;; State ID
1055 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1056 DB 39,0 ;; error character = standalone accent
1057 ;;
1058 DW CP860_AC_LO_T1_END-$ ;; Size of xlat table
1059 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1060 DB 5 ;; number of scans
1061 DB 18,'‚' ;; scan code,ASCII - e
1062 DB 22,'£' ;; scan code,ASCII - u
1063 DB 23,'¡' ;; scan code,ASCII - i
1064 DB 24,'¢' ;; scan code,ASCII - o
1065 DB 30,' ' ;; scan code,ASCII - a
1066CP860_AC_LO_T1_END: ;;
1067 ;;
1068 DW 0 ;; Size of xlat table - null table
1069 ;;
1070CP860_AC_LO_END: ;;
1071 ;;
1072;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1073;; CODE PAGE: 860
1074;; STATE: Acute Upper Case
1075;; KEYBOARD TYPES: XT, , G, P12,
1076;; TABLE TYPE: Translate
1077;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1078 ;;
1079 DW CP860_AC_UP_END-$ ;; length of state section
1080 DB ACUTE_UPPER ;; State ID
1081 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1082 DB 39,0 ;; error character = standalone accent
1083 ;;
1084 DW CP860_AC_UP_T1_END-$ ;; Size of xlat table
1085 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1086 DB 5 ;; number of scans
1087 DB 18,090H ;; E acute
1088 DB 22,096H ;; U acute
1089 DB 23,08BH ;; I acute
1090 DB 24,09FH ;; O acute
1091 DB 30,086H ;; A acute
1092CP860_AC_UP_T1_END: ;;
1093 ;;
1094 DW 0 ;; Size of xlat table - null table
1095 ;;
1096CP860_AC_UP_END: ;;
1097 ;;
1098;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1099;; CODE PAGE: 860
1100;; STATE: Acute Space Bar
1101;; KEYBOARD TYPES: XT, , G, P12,
1102;; TABLE TYPE: Translate
1103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1104 ;;
1105 DW CP860_AC_SP_END-$ ;; length of state section
1106 DB ACUTE_SPACE ;; State ID
1107 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1108 DB 39,0 ;; error character = standalone accent
1109 ;;
1110 DW CP860_AC_SP_T1_END-$ ;; Size of xlat table
1111 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1112 DB 1 ;; number of scans
1113 DB 57,39 ;; scan code,ASCII - SPACE
1114CP860_AC_SP_T1_END: ;;
1115 ;;
1116 DW 0 ;; Size of xlat table - null table
1117 ;;
1118CP860_AC_SP_END: ;;
1119 ;;
1120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1121;; CODE PAGE: 860
1122;; STATE: Grave Upper
1123;; KEYBOARD TYPES: XT, , G, P12,
1124;; TABLE TYPE: Translate
1125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1126 ;;
1127 DW CP860_GR_UP_END-$ ;; length of state section
1128 DB GRAVE_UPPER ;; State ID
1129 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1130 DB 96,0 ;; error character = standalone accent
1131 ;;
1132 DW CP860_GR_UP_T1_END-$ ;; Size of xlat table
1133 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1134 DB 5 ;; number of scans
1135 DB 18,092H ;; E grave
1136 DB 22,09DH ;; U grave
1137 DB 23,098H ;; I grave
1138 DB 24,0A9H ;; O grave
1139 DB 30,091H ;; A grave
1140CP860_GR_UP_T1_END: ;;
1141 ;;
1142 DW 0 ;; Size of xlat table - null table
1143 ;;
1144CP860_GR_UP_END: ;; length of state section
1145 ;;
1146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1147;; CODE PAGE: 860
1148;; STATE: Circumflex Upper
1149;; KEYBOARD TYPES: XT, , G, P12,
1150;; TABLE TYPE: Translate
1151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1152 ;;
1153 DW CP860_CI_UP_END-$ ;; length of state section
1154 DB CIRCUMFLEX_UPPER ;; State ID
1155 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1156 DB 94,0 ;; error character = standalone accent
1157 ;;
1158 DW CP860_CI_UP_T1_END-$ ;; Size of xlat table
1159 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1160 DB 3 ;; number of scans
1161 DB 30,08FH ;; A circumflex
1162 DB 18,089H ;; E circumflex
1163 DB 24,08CH ;; O circumflex
1164CP860_CI_UP_T1_END: ;;
1165 ;;
1166 DW 0 ;; Size of xlat table - null table
1167 ;;
1168CP860_CI_UP_END: ;; length of state section
1169 ;;
1170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1171;; CODE PAGE: 860
1172;; STATE: Tilde Lower
1173;; KEYBOARD TYPES: XT, , G, P12,
1174;; TABLE TYPE: Translate
1175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1176 ;;
1177 DW CP860_TI_LO_END-$ ;; length of state section
1178 DB TILDE_LOWER ;; State ID
1179 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1180 DB 07eH,0 ;; error character = standalone accent
1181 ;;
1182 DW CP860_TI_LO_T1_END-$ ;; Size of xlat table
1183 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1184 DB 2 ;; number of scans
1185 DB 24,094H ;; scan code,ASCII - o tilde
1186 DB 30,084H ;; scan code,ASCII - a tilde
1187 CP860_TI_LO_T1_END: ;;
1188 ;;
1189 DW 0 ;;
1190 ;;
1191 CP860_TI_LO_END: ;;
1192 ;;
1193;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1194;;; CODE PAGE: 860
1195;;; STATE: Tilde Upper Case
1196;;; KEYBOARD TYPES: XT, , G, P12,
1197;;; TABLE TYPE: Translate
1198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1199 ;;
1200 DW CP860_TI_UP_END-$ ;; length of state section
1201 DB TILDE_UPPER ;; State ID
1202 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1203 DB 07eH,0 ;; error character = standalone accent
1204 ;;
1205 DW CP860_TI_UP_T1_END-$ ;; Size of xlat table
1206 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1207 DB 2 ;; number of scans
1208 DB 24,099H ;; scan code,ASCII - O tilde
1209 DB 30,08EH ;; scan code,ASCII - A tilde
1210 CP860_TI_UP_T1_END: ;;
1211 ;;
1212 DW 0 ;; Size of xlat table - null table
1213 ;;
1214 CP860_TI_UP_END: ;; length of state section
1215 ;;
1216 ;;
1217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1218;; CODE PAGE: 860
1219;; STATE: Diaresis Lower
1220;; KEYBOARD TYPES: G, P12,
1221;; TABLE TYPE: Translate
1222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1223 ;;
1224 DW CP860_DI_LO_END-$ ;; length of state section
1225 DB DIARESIS_LOWER ;; State ID
1226 DW G_KB+P12_KB ;; Keyboard Type
1227 DB 0FEH,0 ;; error character = standalone accent
1228 ;;
1229 DW CP860_DI_LO_T1_END-$ ;; Size of xlat table
1230 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1231 DB 1 ;; number of scans
1232 DB 22,081H ;; u diaeresis
1233CP860_DI_LO_T1_END: ;;
1234 ;;
1235 DW 0 ;; Size of xlat table - null table
1236 ;;
1237CP860_DI_LO_END: ;; length of state section
1238 ;;
1239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1240;; CODE PAGE: 860
1241;; STATE: Diaresis Upper
1242;; KEYBOARD TYPES: G, P12,
1243;; TABLE TYPE: Translate
1244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1245 ;;
1246 DW CP860_DI_UP_END-$ ;; length of state section
1247 DB DIARESIS_UPPER ;; State ID
1248 DW G_KB+P12_KB ;; Keyboard Type
1249 DB 0FEH,0 ;; error character = standalone accent
1250 ;;
1251 DW CP860_DI_UP_T1_END-$ ;; Size of xlat table
1252 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1253 DB 1 ;; number of scans
1254 DB 22,09AH ;; U diaeresis
1255CP860_DI_UP_T1_END: ;;
1256 ;;
1257 DW 0 ;; Size of xlat table - null table
1258 ;;
1259CP860_DI_UP_END: ;; length of state section
1260 ;;
1261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1262;; CODE PAGE: 860
1263;; STATE: Diaresis Space Bar
1264;; KEYBOARD TYPES: G, P12
1265;; TABLE TYPE: Translate
1266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1267 ;;
1268 DW CP860_DI_SP_END-$ ;; length of state section
1269 DB DIARESIS_SPACE ;; State ID
1270 DW G_KB+P12_KB ;; Keyboard Type
1271 DB 0FEH,0 ;; error character = standalone accent
1272 ;;
1273 DW CP860_DI_SP_T1_END-$ ;; Size of xlat table
1274 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1275 DB 1 ;; number of scans
1276 DB 57,0FEH ;; scan code,ASCII - SPACE
1277CP860_DI_SP_T1_END: ;;
1278 ;;
1279 DW 0 ;; Size of xlat table - null table
1280 ;;
1281CP860_DI_SP_END: ;;
1282 ;;
1283 ;;
1284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1285 DW 0 ;; LAST STATE
1286 ;;
1287CP860_XLAT_END: ;;
1288 ;;
1289;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1290;; PO Specific Translate Section for 850
1291;;***************************************
1292;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1293 ;;
1294 PUBLIC PO_850_XLAT ;;
1295PO_850_XLAT: ;;
1296 ;;
1297 DW CP850_XLAT_END-$ ;; length of section
1298 DW 850 ;;
1299 ;;
1300 ;;
1301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1302;; CODE PAGE: 850
1303;; STATE: Third Shift
1304;; KEYBOARD TYPES: G, P12,
1305;; TABLE TYPE: Translate
1306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1307 ;;
1308 DW CP850_THIRD_K1_END-$ ;; length of state section
1309 DB THIRD_SHIFT ;; State ID
1310 DW G_KB+P12_KB ;; Keyboard Type
1311 DB -1,-1 ;; Buffer entry for error character
1312 ;;
1313 DW CP850_THIRD_K1_T1_END-$ ;; Size of xlat table
1314 DB STANDARD_TABLE ;; xlat options:
1315 DB 1 ;; number of entries
1316 DB 5,0F5H ;; section symbol
1317CP850_THIRD_K1_T1_END: ;;
1318 ;;
1319 DW 0 ;; Last xlat table
1320CP850_THIRD_K1_END: ;;
1321 ;;
1322;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1323;; CODE PAGE: 850
1324;; STATE: Acute Lower Case
1325;; KEYBOARD TYPES: XT, , G, P12,
1326;; TABLE TYPE: Translate
1327;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1328 ;;
1329 DW CP850_AC_LO_END-$ ;; length of state section
1330 DB ACUTE_LOWER ;; State ID
1331 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1332 DB 239,0 ;; error character = standalone accent
1333 ;;
1334 DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
1335 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1336 DB 6 ;; number of scans
1337 DB 18,'‚' ;; scan code,ASCII - e
1338 DB 21,0ECH ;; y acute
1339 DB 22,'£' ;; scan code,ASCII - u
1340 DB 23,'¡' ;; scan code,ASCII - i
1341 DB 24,'¢' ;; scan code,ASCII - o
1342 DB 30,' ' ;; scan code,ASCII - a
1343CP850_AC_LO_T1_END: ;;
1344 ;;
1345 DW 0 ;; Size of xlat table - null table
1346 ;;
1347CP850_AC_LO_END: ;;
1348 ;;
1349;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1350;; CODE PAGE: 850
1351;; STATE: Acute Upper Case
1352;; KEYBOARD TYPES: XT, , G, P12,
1353;; TABLE TYPE: Translate
1354;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1355 ;;
1356 DW CP850_AC_UP_END-$ ;; length of state section
1357 DB ACUTE_UPPER ;; State ID
1358 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1359 DB 239,0 ;; error character = standalone accent
1360 ;;
1361 DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
1362 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1363 DB 6 ;; number of scans
1364 DB 18,090H ;; E acute
1365 DB 21,0EDH ;; Y acute
1366 DB 22,0E9H ;; U acute
1367 DB 23,0D6H ;; I acute
1368 DB 24,0E0H ;; O acute
1369 DB 30,0B5H ;; A acute
1370CP850_AC_UP_T1_END: ;;
1371 ;;
1372 DW 0 ;; Size of xlat table - null table
1373 ;;
1374CP850_AC_UP_END: ;;
1375 ;;
1376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1377;; CODE PAGE: 850
1378;; STATE: Acute Space Bar
1379;; KEYBOARD TYPES: XT, , G, P12,
1380;; TABLE TYPE: Translate
1381;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1382 ;;
1383 DW CP850_AC_SP_END-$ ;; length of state section
1384 DB ACUTE_SPACE ;; State ID
1385 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1386 DB 239,0 ;; error character = standalone accent
1387 ;;
1388 DW CP850_AC_SP_T1_END-$ ;; Size of xlat table
1389 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1390 DB 1 ;; number of scans
1391 DB 57,239 ;; scan code,ASCII - SPACE
1392CP850_AC_SP_T1_END: ;;
1393 ;;
1394 DW 0 ;; Size of xlat table - null table
1395 ;;
1396CP850_AC_SP_END: ;;
1397 ;;
1398;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1399;; CODE PAGE: 850
1400;; STATE: Diaresis Lower
1401;; KEYBOARD TYPES: G, P12,
1402;; TABLE TYPE: Translate
1403;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1404 ;;
1405 DW CP850_DI_LO_END-$ ;; length of state section
1406 DB DIARESIS_LOWER ;; State ID
1407 DW G_KB+P12_KB ;; Keyboard Type
1408 DB 249,0 ;; error character = standalone accent
1409 ;;
1410 DW CP850_DI_LO_T1_END-$ ;; Size of xlat table
1411 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1412 DB 6 ;; number of scans
1413 DB 18,089H ;; e diaeresis
1414 DB 21,098H ;; y diaeresis
1415 DB 22,081H ;; u diaeresis
1416 DB 23,08BH ;; i diaeresis
1417 DB 24,094H ;; o diaeresis
1418 DB 30,084H ;; a diaeresis
1419CP850_DI_LO_T1_END: ;;
1420 ;;
1421 DW 0 ;; Size of xlat table - null table
1422 ;;
1423CP850_DI_LO_END: ;; length of state section
1424 ;;
1425;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1426;; CODE PAGE: 850
1427;; STATE: Diaresis Upper
1428;; KEYBOARD TYPES: G, P12,
1429;; TABLE TYPE: Translate
1430;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1431 ;;
1432 DW CP850_DI_UP_END-$ ;; length of state section
1433 DB DIARESIS_UPPER ;; State ID
1434 DW G_KB+P12_KB ;; Keyboard Type
1435 DB 249,0 ;; error character = standalone accent
1436 ;;
1437 DW CP850_DI_UP_T1_END-$ ;; Size of xlat table
1438 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1439 DB 5 ;; number of scans
1440 DB 18,0D3H ;; E diaeresis
1441 DB 22,09AH ;; U diaeresis
1442 DB 23,0D8H ;; I diaeresis
1443 DB 24,099H ;; O diaeresis
1444 DB 30,08EH ;; A diaeresis
1445CP850_DI_UP_T1_END: ;;
1446 ;;
1447 DW 0 ;; Size of xlat table - null table
1448 ;;
1449CP850_DI_UP_END: ;; length of state section
1450 ;;
1451;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1452;; CODE PAGE: 850
1453;; STATE: Diaresis Space Bar
1454;; KEYBOARD TYPES: G, P12
1455;; TABLE TYPE: Translate
1456;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1457 ;;
1458 DW CP850_DI_SP_END-$ ;; length of state section
1459 DB DIARESIS_SPACE ;; State ID
1460 DW G_KB+P12_KB ;; Keyboard Type
1461 DB 249,0 ;; error character = standalone accent
1462 ;;
1463 DW CP850_DI_SP_T1_END-$ ;; Size of xlat table
1464 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1465 DB 1 ;; number of scans
1466 DB 57,249 ;; scan code,ASCII - SPACE
1467CP850_DI_SP_T1_END: ;;
1468 ;;
1469 DW 0 ;; Size of xlat table - null table
1470 ;;
1471CP850_DI_SP_END: ;;
1472 ;;
1473;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1474;; CODE PAGE: 850
1475;; STATE: Grave Upper
1476;; KEYBOARD TYPES: XT, , G, P12,
1477;; TABLE TYPE: Translate
1478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1479 ;;
1480 DW CP850_GR_UP_END-$ ;; length of state section
1481 DB GRAVE_UPPER ;; State ID
1482 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1483 DB 96,0 ;; error character = standalone accent
1484 ;;
1485 DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
1486 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1487 DB 5 ;; number of scans
1488 DB 30,0B7H ;; A grave
1489 DB 18,0D4H ;; E grave
1490 DB 23,0DEH ;; I grave
1491 DB 24,0E3H ;; O grave
1492 DB 22,0EBH ;; U grave
1493CP850_GR_UP_T1_END: ;;
1494 ;;
1495 DW 0 ;; Size of xlat table - null table
1496 ;;
1497CP850_GR_UP_END: ;; length of state section
1498 ;;
1499;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1500;; CODE PAGE: 850
1501;; STATE: Tilde Lower
1502;; KEYBOARD TYPES: XT, , G, P12,
1503;; TABLE TYPE: Translate
1504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1505 ;;
1506 DW CP850_TI_LO_END-$ ;; length of state section
1507 DB TILDE_LOWER ;; State ID
1508 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1509 DB 07EH,0 ;; error character = standalone accent
1510 ;;
1511 DW CP850_TI_LO_T1_END-$ ;; Size of xlat table
1512 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1513 DB 2 ;; number of scans
1514 DB 30,0C6H ;; scan code,ASCII - a tilde
1515 DB 24,0E4H ;; scan code,ASCII - o tilde
1516 CP850_TI_LO_T1_END: ;;
1517 ;;
1518 DW 0 ;;
1519 ;;
1520 CP850_TI_LO_END: ;;
1521 ;;
1522;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1523;;; CODE PAGE: 850
1524;;; STATE: Tilde Upper Case
1525;;; KEYBOARD TYPES: XT, , G, P12,
1526;;; TABLE TYPE: Translate
1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1528 ;;
1529 DW CP850_TI_UP_END-$ ;; length of state section
1530 DB TILDE_UPPER ;; State ID
1531 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1532 DB 07eH,0 ;; error character = standalone accent
1533 ;;
1534 DW CP850_TI_UP_T1_END-$ ;; Size of xlat table
1535 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1536 DB 2 ;; number of scans
1537 DB 30,0C7H ;; scan code,ASCII - A tilde
1538 DB 24,0E5H ;; scan code,ASCII - O tilde
1539 CP850_TI_UP_T1_END: ;;
1540 ;;
1541 DW 0 ;; Size of xlat table - null table
1542 ;;
1543 CP850_TI_UP_END: ;; length of state section
1544 ;;
1545 ;;
1546;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1547;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1548;; CODE PAGE: 850
1549;; STATE: Circumflex Lower
1550;; KEYBOARD TYPES: XT, , G, P12,
1551;; TABLE TYPE: Translate
1552;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1553 ;;
1554 DW CP850_CI_LO_END-$ ;; length of state section
1555 DB CIRCUMFLEX_LOWER ;; State ID
1556 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1557 DB 94,0 ;; error character = standalone accent
1558 ;;
1559 DW CP850_CI_LO_T1_END-$ ;; Size of xlat table
1560 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1561 DB 2 ;; number of scans
1562 DB 23,08CH ;; i circumflex
1563 DB 22,096H ;; u circumflex
1564CP850_CI_LO_T1_END: ;;
1565 ;;
1566 DW 0 ;; Size of xlat table - null table
1567 ;;
1568CP850_CI_LO_END: ;; length of state section
1569 ;;
1570;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1572;; CODE PAGE: 850
1573;; STATE: Circumflex Upper
1574;; KEYBOARD TYPES: XT, , G, P12,
1575;; TABLE TYPE: Translate
1576;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1577 ;;
1578 DW CP850_CI_UP_END-$ ;; length of state section
1579 DB CIRCUMFLEX_UPPER ;; State ID
1580 DW XT_KB+G_KB+P12_KB ;; Keyboard Type
1581 DB 94,0 ;; error character = standalone accent
1582 ;;
1583 DW CP850_CI_UP_T1_END-$ ;; Size of xlat table
1584 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1585 DB 5 ;; number of scans
1586 DB 30,0B6H ;; A circumflex
1587 DB 18,0D2H ;; E circumflex
1588 DB 23,0D7H ;; I circumflex
1589 DB 24,0E2H ;; O circumflex
1590 DB 22,0EAH ;; U circumflex
1591CP850_CI_UP_T1_END: ;;
1592 ;;
1593 DW 0 ;; Size of xlat table - null table
1594 ;;
1595CP850_CI_UP_END: ;; length of state section
1596 ;;
1597;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1598;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1599 ;;
1600 DW 0 ;; LAST STATE
1601 ;;
1602CP850_XLAT_END: ;;
1603;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1604 ;;
1605CODE ENDS ;;
1606 END ;;
1607
diff --git a/v4.0/src/DEV/KEYBOARD/KDFSF.ASM b/v4.0/src/DEV/KEYBOARD/KDFSF.ASM
new file mode 100644
index 0000000..6165b0d
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFSF.ASM
@@ -0,0 +1,1627 @@
1 PAGE ,132
2 TITLE DOS - Keyboard Definition File
3
4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5;; DOS - - NLS Support - Keyboard Defintion File
6;; (c) Copyright 1988 Microsoft
7;;
8;; This file contains the keyboard tables for Swiss French
9;;
10;; Linkage Instructions:
11;; Refer to KDF.ASM.
12;;
13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
14 ;;
15 INCLUDE KEYBSHAR.INC ;;
16 INCLUDE POSTEQU.INC ;;
17 INCLUDE KEYBMAC.INC ;;
18 ;;
19 PUBLIC SF_LOGIC ;;
20 PUBLIC SF_437_XLAT ;;
21 PUBLIC SF_850_XLAT ;;
22 ;;
23CODE SEGMENT PUBLIC 'CODE' ;;
24 ASSUME CS:CODE,DS:CODE ;;
25 ;;
26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
27;; Standard translate table options are a liner search table
28;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
30 ;;
31STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
32 ;;
33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
34;;***************************************
35;; SG State Logic
36;;***************************************
37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
38 ;;
39 ;;
40SF_LOGIC:
41
42 DW LOGIC_END-$ ;; length
43 ;;
44 DW 0 ;; special features
45 ;;
46 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
47 ;;
48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
49;; OPTIONS: If we find a scan match in
50;; an XLATT or SET_FLAG operation then
51;; exit from INT 9.
52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
53 ;;
54 OPTION EXIT_IF_FOUND ;;
55 ;;
56 ;;
57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58;; Dead key definitions must come before
59;; dead key translations to handle
60;; dead key + dead key.
61;; ***BD - THIS SECTION HAS BEEN UPDATED
62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
64 ;;
65 ;;
66IFF EITHER_ALT,NOT ;;
67ANDF EITHER_CTL,NOT ;;
68 IFF EITHER_SHIFT ;;
69 SET_FLAG DEAD_UPPER ;;
70 ELSEF ;;
71 SET_FLAG DEAD_LOWER ;;
72 ENDIFF ;;
73ENDIFF ;;
74IFF EITHER_SHIFT,NOT ;;
75 IFKBD XT_KB+AT_KB ;;
76 IFF EITHER_CTL ;;
77 ANDF ALT_SHIFT ;;
78 SET_FLAG DEAD_THIRD ;;
79 ENDIFF ;;
80 ELSEF ;;
81 IFF EITHER_CTL,NOT ;;
82 ANDF R_ALT_SHIFT ;;
83 SET_FLAG DEAD_THIRD ;;
84 ENDIFF ;;
85 ENDIFF ;;
86ENDIFF ;;
87 ;;
88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
89;; ACUTE ACCENT TRANSLATIONS
90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
91 ;;
92ACUTE_PROC: ;;
93 ;;
94 IFF ACUTE,NOT ;;
95 GOTO DIARESIS_PROC ;;
96 ENDIFF ;;
97 ;;
98 RESET_NLS ;;
99 IFF R_ALT_SHIFT,NOT ;;
100 XLATT ACUTE_SPACE ;;
101 ENDIFF ;;
102 IFF EITHER_CTL,NOT ;;
103 ANDF EITHER_ALT,NOT ;;
104 IFF EITHER_SHIFT ;;
105 IFF CAPS_STATE ;;
106 XLATT ACUTE_LOWER ;;
107 ELSEF ;;
108 XLATT ACUTE_UPPER ;;
109 ENDIFF ;;
110 ELSEF ;;
111 IFF CAPS_STATE ;;
112 XLATT ACUTE_UPPER ;;
113 ELSEF ;;
114 XLATT ACUTE_LOWER ;;
115 ENDIFF ;;
116 ENDIFF ;;
117 ENDIFF ;;
118 ;;
119INVALID_ACUTE: ;;
120 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
121 BEEP ;; failed or we are ina bad shift state.
122 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
123 ;; through to generate the second char.
124 ;; Note that the dead key flag will be
125 ;; reset before we get here.
126 ;;
127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
128;; DIARESIS ACCENT TRANSLATIONS
129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
130 ;;
131DIARESIS_PROC: ;;
132 ;;
133 IFF DIARESIS,NOT ;;
134 GOTO GRAVE_PROC ;;
135 ENDIFF ;;
136 ;;
137 RESET_NLS ;;
138 IFF R_ALT_SHIFT,NOT ;;
139 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
140 ENDIFF ;;
141 IFF EITHER_CTL,NOT ;;
142 ANDF EITHER_ALT,NOT ;;
143 IFF EITHER_SHIFT ;;
144 IFF CAPS_STATE ;;
145 XLATT DIARESIS_LOWER ;;
146 ELSEF ;;
147 XLATT DIARESIS_UPPER ;;
148 ENDIFF ;;
149 ELSEF ;;
150 IFF CAPS_STATE ;;
151 XLATT DIARESIS_UPPER ;;
152 ELSEF ;;
153 XLATT DIARESIS_LOWER ;;
154 ENDIFF ;;
155 ENDIFF ;;
156 ENDIFF ;;
157 ;;
158INVALID_DIARESIS: ;;
159 PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent
160 BEEP ;; Invalid dead key combo.
161 GOTO NON_DEAD ;;
162 ;;
163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
164;; GRAVE ACCENT TRANSLATIONS
165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
166 ;;
167GRAVE_PROC: ;;
168 ;;
169 IFF GRAVE,NOT ;;
170 GOTO TILDE_PROC ;;
171 ENDIFF ;;
172 ;;
173 RESET_NLS ;;
174 IFF R_ALT_SHIFT,NOT ;;
175 XLATT GRAVE_SPACE ;;
176 ENDIFF ;;
177 IFF EITHER_CTL,NOT ;;
178 ANDF EITHER_ALT,NOT ;;
179 IFF EITHER_SHIFT ;;
180 IFF CAPS_STATE ;;
181 XLATT GRAVE_LOWER ;;
182 ELSEF ;;
183 XLATT GRAVE_UPPER ;;
184 ENDIFF ;;
185 ELSEF ;;
186 IFF CAPS_STATE,NOT ;;
187 XLATT GRAVE_LOWER ;;
188 ELSEF ;;
189 XLATT GRAVE_UPPER ;;
190 ENDIFF ;;
191 ENDIFF ;;
192 ENDIFF ;;
193 ;;
194INVALID_GRAVE: ;;
195 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
196 BEEP ;; Invalid dead key combo.
197 GOTO NON_DEAD ;;
198 ;;
199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
201;; TILDE ACCENT TRANSLATIONS
202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
203TILDE_PROC: ;;
204 ;;
205 IFF TILDE,NOT ;;
206 GOTO CIRCUMFLEX_PROC ;;
207 ENDIFF ;;
208 ;;
209 RESET_NLS ;;
210 IFF R_ALT_SHIFT,NOT ;;
211 XLATT TILDE_SPACE ;;
212 ENDIFF ;;
213 IFF EITHER_CTL,NOT ;;
214 ANDF EITHER_ALT,NOT ;;
215 IFF EITHER_SHIFT ;;
216 IFF CAPS_STATE ;;
217 XLATT TILDE_LOWER ;;
218 ELSEF ;;
219 XLATT TILDE_UPPER ;;
220 ENDIFF ;;
221 ELSEF ;;
222 IFF CAPS_STATE ;;
223 XLATT TILDE_UPPER ;;
224 ELSEF ;;
225 XLATT TILDE_LOWER ;;
226 ENDIFF ;;
227 ENDIFF ;;
228 ENDIFF ;;
229 ;;
230INVALID_TILDE: ;;
231 PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent
232 BEEP ;; Invalid dead key combo.
233 GOTO NON_DEAD ;;
234 ;;
235;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
236;; CIRCUMFLEX ACCENT TRANSLATIONS
237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
238 ;;
239CIRCUMFLEX_PROC: ;;
240 ;;
241 IFF CIRCUMFLEX,NOT ;;
242 GOTO NON_DEAD ;;
243 ENDIFF ;;
244 ;;
245 RESET_NLS ;;
246 IFF R_ALT_SHIFT,NOT ;;
247 XLATT CIRCUMFLEX_SPACE ;;
248 ENDIFF ;;
249 IFF EITHER_CTL,NOT ;;
250 ANDF EITHER_ALT,NOT ;;
251 IFF EITHER_SHIFT ;;
252 IFF CAPS_STATE ;;
253 XLATT CIRCUMFLEX_LOWER ;;
254 ELSEF ;;
255 XLATT CIRCUMFLEX_UPPER ;;
256 ENDIFF ;;
257 ELSEF ;;
258 IFF CAPS_STATE,NOT ;;
259 XLATT CIRCUMFLEX_LOWER ;;
260 ELSEF ;;
261 XLATT CIRCUMFLEX_UPPER ;;
262 ENDIFF ;;
263 ENDIFF ;;
264 ENDIFF ;;
265 ;;
266INVALID_CIRCUMFLEX: ;;
267 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
268 BEEP ;; Invalid dead key combo.
269 GOTO NON_DEAD ;;
270 ;;
271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
272;; Upper, lower and third shifts
273;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
274 ;;
275NON_DEAD: ;;
276 ;;
277 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
278 ANDF LC_E0 ;; the "/" on the numeric pad of the
279 EXIT_STATE_LOGIC ;; G keyboard
280 ENDIFF ;;
281 ;;
282 IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
283 ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
284 IFF EITHER_SHIFT ;; Numeric keys are not.
285 IFF CAPS_STATE ;;
286 XLATT BOTRH_F_CAPS ;;
287 XLATT ALPHA_LOWER ;;
288 ELSEF ;;
289 XLATT ALPHA_UPPER ;;
290 ENDIFF ;;
291 XLATT NON_ALPHA_UPPER ;;
292 ELSEF ;;
293 IFF CAPS_STATE ;;
294 XLATT BOTRH_CAPS ;;
295 XLATT ALPHA_UPPER ;;
296 ELSEF ;;
297 XLATT ALPHA_LOWER ;;
298 ENDIFF ;;
299 XLATT NON_ALPHA_LOWER ;;
300 ENDIFF ;;
301 ELSEF ;;
302 IFF EITHER_SHIFT,NOT ;;
303 IFKBD XT_KB+AT_KB ;;
304 IFF EITHER_CTL ;;
305 ANDF ALT_SHIFT ;;
306 XLATT THIRD_SHIFT ;;
307 ENDIFF ;;
308 ELSEF ;;
309 IFF EITHER_CTL,NOT ;;
310 ANDF R_ALT_SHIFT ;;
311 XLATT THIRD_SHIFT ;;
312 ENDIFF ;;
313 ENDIFF ;;
314 IFKBD AT_KB+XT_KB ;;
315 IFF EITHER_CTL ;;
316 ANDF ALT_SHIFT ;;
317 XLATT ALT_CASE ;;
318 ENDIFF ;;
319 ENDIFF ;;
320 IFKBD G_KB+P12_KB ;;
321 IFF EITHER_CTL ;;
322 ANDF ALT_SHIFT ;;
323 IFF R_ALT_SHIFT,NOT ;;
324 XLATT ALT_CASE ;;
325 ENDIFF ;;
326 ENDIFF ;;
327 ENDIFF ;;
328 ENDIFF ;;
329 ENDIFF ;;
330;IFF EITHER_SHIFT,NOT ;;
331 IFKBD AT_KB+XT_KB ;;
332 IFF EITHER_CTL,NOT ;;
333 IFF ALT_SHIFT ;; ALT - case
334 XLATT ALT_CASE ;;
335 ENDIFF ;;
336 ELSEF ;;
337 XLATT CTRL_CASE ;;
338 ENDIFF ;;
339 ENDIFF ;;
340 ;;
341 IFKBD G_KB+P12_KB ;;
342 IFF EITHER_CTL,NOT ;;
343 IFF ALT_SHIFT ;; ALT - case
344 ANDF R_ALT_SHIFT,NOT ;;
345 XLATT ALT_CASE ;;
346 ENDIFF ;;
347 ELSEF ;;
348 XLATT CTRL_CASE ;;
349 ENDIFF ;;
350; ENDIFF ;;
351 ENDIFF ;;
352 ;;
353 EXIT_STATE_LOGIC ;;
354 ;;
355LOGIC_END: ;;
356 ;;
357;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
358;;***************************************
359;; SF Common Translate Section
360;; This section contains translations for the lower 128 characters
361;; only since these will never change from code page to code page.
362;; In addition the dead key "Set Flag" tables are here since the
363;; dead keys are on the same keytops for all code pages.
364;;***************************************
365;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
366 ;;
367 PUBLIC SF_COMMON_XLAT ;;
368SF_COMMON_XLAT: ;;
369 ;;
370 DW COMMON_XLAT_END-$ ;; length of section
371 DW -1 ;; code page
372 ;;
373 ;;
374;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
375;; CODE PAGE: Common
376;; STATE: Lower Shift Dead Key
377;; KEYBOARD TYPES: All
378;; TABLE TYPE: Flag Table
379;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
380 ;;
381 DW COM_SF_LO_END-$ ;; length of state section
382 DB DEAD_LOWER ;; State ID
383 DW ANY_KB ;; Keyboard Type
384 DB -1,-1 ;; Buffer entry for error character
385 ;; Set Flag Table
386 DW 2 ;; number of entries
387 DB 13 ;; scan code
388 FLAG CIRCUMFLEX ;; flag bit to set
389 DB 27 ;; scan code
390 FLAG DIARESIS ;; flag bit to set
391 ;;
392 ;;
393COM_SF_LO_END: ;;
394 ;;
395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
396;; CODE PAGE: Common
397;; STATE: Upper Shift Dead Key
398;; KEYBOARD TYPES: All
399;; TABLE TYPE: Flag Table
400;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
401 ;;
402 DW COM_SF_UP_END-$ ;; length of state section
403 DB DEAD_UPPER ;; State ID
404 DW ANY_KB ;; Keyboard Type
405 DB -1,-1 ;; Buffer entry for error character
406 ;; Set Flag Table
407 DW 1 ;; number of entries
408 DB 13 ;; scan code
409 FLAG GRAVE ;; flag bit to set
410COM_SF_UP_END: ;;
411 ;;
412;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
413;; CODE PAGE: Common
414;; STATE: Third Shift Dead Key
415;; KEYBOARD TYPES: All
416;; TABLE TYPE: Flag Table
417;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
418 ;;
419 DW COM_DK_TH_END-$ ;; length of state section
420 DB DEAD_THIRD ;; State ID
421 DW ANY_KB ;; Keyboard Type
422 DB -1,-1 ;; Buffer entry for error character
423 ;; Set Flag Table
424 DW 2 ;; number of entries
425 DB 13 ;; scan code
426 FLAG TILDE ;; flag bit to set
427 DB 12 ;; scan code
428 FLAG ACUTE ;; flag bit to set
429COM_DK_TH_END: ;;
430 ;;
431;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
432;; CODE PAGE: Common
433;; STATE: Alt Case
434;; KEYBOARD TYPES: All
435;; TABLE TYPE: Translate
436;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
437 ;;
438 DW COM_ALT_K1_END-$ ;; length of state section
439 DB ALT_CASE ;; State ID
440 DW ANY_KB ;; Keyboard Type
441 DB -1,-1 ;; Buffer entry for error character
442 ;; Set Flag Table
443 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
444 DB TYPE_2_TAB ;;
445 DB 2 ;; 5 Number of entries
446; DB 12,-1,-1 ;;
447; DB 13,-1,-1 ;;
448 DB 21,0,2CH ;;
449 DB 44,0,15H ;;
450; DB 53,0,82H ;;
451COM_ALT_K1_T1_END: ;;
452 ;;
453 DW 0 ;;
454 ;;
455COM_ALT_K1_END: ;;
456 ;;
457;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
458;; CODE PAGE: Common
459;; STATE: Ctrl Case
460;; KEYBOARD TYPES: All
461;; TABLE TYPE: Translate
462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
463 ;;
464 DW COM_CTRL_K1_END-$ ;; length of state section
465 DB CTRL_CASE ;; State ID
466 DW ANY_KB ;; Keyboard Type
467 DB -1,-1 ;; Buffer entry for error character
468 ;; Set Flag Table
469 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
470 DB TYPE_2_TAB ;;
471 DB 6 ;; Number of entries
472 DB 12,-1,-1 ;;
473 DB 21,01AH,15H ;;
474 DB 43,-1,-1 ;;
475 DB 44,019H,2CH ;;
476 DB 53,01FH,35H ;;
477 DB 86,01CH,56H ;;
478COM_CTRL_K1_T1_END: ;;
479 ;;
480 DW 0 ;;
481 ;;
482COM_CTRL_K1_END: ;;
483 ;;
484;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
485;; CODE PAGE: Common
486;; STATE: Alpha Lower Case
487;; KEYBOARD TYPES: All
488;; TABLE TYPE: Translate
489;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
490 ;;
491 DW COM_AL_LO_END-$ ;; length of state section
492 DB ALPHA_LOWER ;; State ID
493 DW ANY_KB ;; Keyboard Type
494 DB -1,-1 ;; Buffer entry for error character
495 ;;
496 DW COM_AL_LO_T1_END-$ ;; Size of xlat table
497 DB STANDARD_TABLE ;; xlat options:
498 DB 2 ;; number of entries
499 DB 21,'z' ;; small z
500 DB 44,'y' ;; small y
501 ;;
502COM_AL_LO_T1_END: ;;
503 ;;
504 DW 0 ;; Size of xlat table - null table
505 ;;
506COM_AL_LO_END: ;;
507 ;;
508;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
509;; CODE PAGE: Common
510;; STATE: Alpha Upper Case
511;; KEYBOARD TYPES: All
512;; TABLE TYPE: Translate
513;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
514 ;;
515 DW COM_AL_UP_END-$ ;; length of state section
516 DB ALPHA_UPPER ;; State ID
517 DW ANY_KB ;; Keyboard Type
518 DB -1,-1 ;; Buffer entry for error character
519 ;;
520 DW COM_AL_UP_T1_END-$ ;; Size of xlat table
521 DB STANDARD_TABLE ;; xlat options:
522 DB 2 ;; number of entries
523 DB 21,'Z' ;; caps Z
524 DB 44,'Y' ;; caps Y
525COM_AL_UP_T1_END: ;;
526 ;;
527 DW 0 ;; Size of xlat table - null table
528 ;;
529COM_AL_UP_END: ;;
530 ;;
531 ;;
532;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
533;; CODE PAGE: Common
534;; STATE: Non-Alpha Lower Case
535;; KEYBOARD TYPES: G_KB+P12
536;; TABLE TYPE: Translate
537;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
538 ;;
539 DW COM_NA_LO_K1_END-$ ;; length of state section
540 DB NON_ALPHA_LOWER ;; State ID
541 DW G_KB+P12_KB ;; Keyboard Type
542 DB -1,-1 ;; Buffer entry for error character
543 ;;
544 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
545 DB STANDARD_TABLE ;; xlat options:
546 DB 7 ;; number of entries
547 DB 12,"'" ;;
548 DB 26,8AH ;; e Grave
549 DB 39,82H ;; e Acute
550 DB 40,85H ;; a Grave
551 DB 43,'$' ;;
552 DB 86,'<' ;;
553 DB 53,'-' ;;
554COM_NA_LO_K1_T1_END: ;;
555 ;;
556 DW 0 ;; Size of xlat table - null table
557 ;;
558COM_NA_LO_K1_END: ;;
559 ;;
560;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
561;; CODE PAGE: Common
562;; STATE: Non-Alpha Lower Case
563;; KEYBOARD TYPES: AT_KB
564;; TABLE TYPE: Translate
565;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
566 ;;
567 DW COM_NA_LO_K2_END-$ ;; length of state section
568 DB NON_ALPHA_LOWER ;; State ID
569 DW AT_KB ;; Keyboard Type
570 DB -1,-1 ;; Buffer entry for error character
571 ;;
572 DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table
573 DB STANDARD_TABLE ;; xlat options:
574 DB 7 ;; number of entries
575 DB 12,"'" ;;
576 DB 26,8AH ;; e Grave
577 DB 39,82H ;; e Acute
578 DB 40,85H ;; a Grave
579 DB 41,'<' ;;
580 DB 43,'$' ;;
581 DB 53,'-' ;;
582COM_NA_LO_K2_T1_END: ;;
583 ;;
584 DW 0 ;; Size of xlat table - null table
585 ;;
586COM_NA_LO_K2_END: ;;
587 ;;
588;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
589;; CODE PAGE: Common
590;; STATE: Non-Alpha Lower Case
591;; KEYBOARD TYPES: XT_KB+
592;; TABLE TYPE: Translate
593;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
594 ;;
595 DW COM_NA_LO_K3_END-$ ;; length of state section
596 DB NON_ALPHA_LOWER ;; State ID
597 DW XT_KB ;; Keyboard Type
598 DB -1,-1 ;; Buffer entry for error character
599 ;;
600 DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table
601 DB STANDARD_TABLE ;; xlat options:
602 DB 7 ;; number of entries
603 DB 12,"'" ;;
604 DB 26,8AH ;; e Grave
605 DB 39,82H ;; e Acute
606 DB 40,85H ;; a Grave
607 DB 41,'$' ;;
608 DB 43,'<' ;;
609 DB 53,'-' ;;
610COM_NA_LO_K3_T1_END: ;;
611 ;;
612 DW 0 ;; Size of xlat table - null table
613 ;;
614COM_NA_LO_K3_END: ;;
615 ;;
616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
617;; CODE PAGE: Common
618;; STATE: Non-Alpha Upper Case
619;; KEYBOARD TYPES: G_KB+P12
620;; TABLE TYPE: Translate
621;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
622 ;;
623 DW COM_NA_UP_K1_END-$ ;; length of state section
624 DB NON_ALPHA_UPPER ;; State ID
625 DW G_KB+P12_KB ;; Keyboard Type
626 DB -1,-1 ;; Buffer entry for error character
627 ;;
628 DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table
629 DB STANDARD_TABLE ;; xlat options:
630 DB 20 ;; number of entries
631 DB 41,0F8H ;; degree symbol
632 DB 2,'+' ;;
633 DB 3,'"' ;;
634 DB 4,'*' ;;
635 DB 5,087H ;; ‡
636 DB 7,'&' ;;
637 DB 8,'/' ;;
638 DB 9,'(' ;;
639 DB 10,')' ;;
640 DB 11,'=' ;;
641 DB 12,'?' ;;
642 DB 43,09CH ;;œ
643 DB 27,'!' ;;
644 DB 86,'>' ;;
645 DB 51,';' ;;
646 DB 52,':' ;;
647 DB 53,'_' ;;
648 DB 26,81H ;; u diaeresis
649 DB 39,94H ;; o diaeresis
650 DB 40,84H ;; a diaeresis
651COM_NA_UP_T1_K1_END: ;;
652 ;;
653 DW 0 ;; Size of xlat table - null table
654 ;;
655COM_NA_UP_K1_END: ;;
656 ;;
657 ;;
658;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
659;; CODE PAGE: Common
660;; STATE: Non-Alpha Upper Case
661;; KEYBOARD TYPES: AT
662;; TABLE TYPE: Translate
663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
664 ;;
665 DW COM_NA_UP_K2_END-$ ;; length of state section
666 DB NON_ALPHA_UPPER ;; State ID
667 DW AT_KB ;; Keyboard Type
668 DB -1,-1 ;; Buffer entry for error character
669 ;;
670 DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table
671 DB STANDARD_TABLE ;; xlat options:
672 DB 19 ;; number of entries
673 DB 41,'>' ;; degree symbol
674 DB 2,'+' ;;
675 DB 3,'"' ;;
676 DB 4,'*' ;;
677 DB 5,087H ;; ‡
678 DB 7,'&' ;;
679 DB 8,'/' ;;
680 DB 9,'(' ;;
681 DB 10,')' ;;
682 DB 11,'=' ;;
683 DB 12,'?' ;;
684 DB 43,09CH ;;œ
685 DB 27,'!' ;;
686 DB 51,';' ;;
687 DB 52,':' ;;
688 DB 53,'_' ;;
689 DB 26,81H ;; u diaeresis
690 DB 39,94H ;; o diaeresis
691 DB 40,84H ;; a diaeresis
692COM_NA_UP_T1_K2_END: ;;
693 ;;
694 DW 0 ;; Size of xlat table - null table
695 ;;
696COM_NA_UP_K2_END: ;;
697 ;;
698 ;;
699;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
700;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
701;; CODE PAGE: Common
702;; STATE: Non-Alpha Upper Case
703;; KEYBOARD TYPES: XT+
704;; TABLE TYPE: Translate
705;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
706 ;;
707 DW COM_NA_UP_K3_END-$ ;; length of state section
708 DB NON_ALPHA_UPPER ;; State ID
709 DW XT_KB ;; Keyboard Type
710 DB -1,-1 ;; Buffer entry for error character
711 ;;
712 DW COM_NA_UP_T1_K3_END-$ ;; Size of xlat table
713 DB STANDARD_TABLE ;; xlat options:
714 DB 19 ;; number of entries
715 DB 43,'>' ;; degree symbol
716 DB 2,'+' ;;
717 DB 3,'"' ;;
718 DB 4,'*' ;;
719 DB 5,087H ;; ‡
720 DB 7,'&' ;;
721 DB 8,'/' ;;
722 DB 9,'(' ;;
723 DB 10,')' ;;
724 DB 11,'=' ;;
725 DB 12,'?' ;;
726 DB 41,09CH ;;œ
727 DB 27,'!' ;;
728 DB 51,';' ;;
729 DB 52,':' ;;
730 DB 53,'_' ;;
731 DB 26,81H ;; u diaeresis
732 DB 39,94H ;; o diaeresis
733 DB 40,84H ;; a diaeresis
734COM_NA_UP_T1_K3_END: ;;
735 ;;
736 DW 0 ;; Size of xlat table - null table
737 ;;
738COM_NA_UP_K3_END: ;;
739 ;;
740;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
741;; CODE PAGE: Common
742;; STATE: Third Shift
743;; KEYBOARD TYPES: G_KB+P12
744;; TABLE TYPE: Translate
745;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
746 ;;
747 DW COM_THIRD_K1_END-$ ;; length of state section
748 DB THIRD_SHIFT ;; State ID
749 DW G_KB+P12_KB ;; Keyboard Type
750 DB -1,-1 ;; Buffer entry for error character
751 ;;
752 DW COM_THIRD_T1_K1_END-$ ;; Size of xlat table
753 DB STANDARD_TABLE ;; xlat options:
754 DB 8 ;; number of entries
755 DB 3,"@" ;;
756 DB 4,'#' ;;
757 DB 7,0AAH ;; ª
758 DB 43,'}' ;;
759 DB 26,'[' ;;
760 DB 27,']' ;;
761 DB 40,'{' ;;
762 DB 86,'\' ;;
763COM_THIRD_T1_K1_END: ;;
764 ;;
765 DW 0 ;; Last xlat table
766COM_THIRD_K1_END: ;;
767 ;;
768 ;;
769;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
770;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
771;; CODE PAGE: Common
772;; STATE: Third Shift
773;; KEYBOARD TYPES: AT
774;; TABLE TYPE: Translate
775;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
776 ;;
777 DW COM_THIRD_K2_END-$ ;; length of state section
778 DB THIRD_SHIFT ;; State ID
779 DW AT_KB ;; Keyboard Type
780 DB -1,-1 ;; Buffer entry for error character
781 ;;
782 DW COM_THIRD_T1_K2_END-$ ;; Size of xlat table
783 DB STANDARD_TABLE ;; xlat options:
784 DB 9 ;; number of entries
785 DB 3,"@" ;;
786 DB 4,'#' ;;
787 DB 5,0F8H ;; degree symbol
788 DB 8,07CH ;; broken vertical - |
789 DB 40,'}' ;;
790 DB 26,'[' ;;
791 DB 27,']' ;;
792 DB 39,'{' ;;
793 DB 41,'\' ;;
794COM_THIRD_T1_K2_END: ;;
795 ;;
796 DW 0 ;; Last xlat table
797COM_THIRD_K2_END: ;;
798 ;;
799 ;;
800;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
801;; CODE PAGE: Common
802;; STATE: Third Shift
803;; KEYBOARD TYPES: XT+
804;; TABLE TYPE: Translate
805;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
806 ;;
807 DW COM_THIRD_K3_END-$ ;; length of state section
808 DB THIRD_SHIFT ;; State ID
809 DW XT_KB ;; Keyboard Type
810 DB -1,-1 ;; Buffer entry for error character
811 ;;
812 DW COM_THIRD_T1_K3_END-$ ;; Size of xlat table
813 DB STANDARD_TABLE ;; xlat options:
814 DB 9 ;; number of entries
815 DB 3,"@" ;;
816 DB 4,'#' ;;
817 DB 5,0F8H ;; degree symbol
818 DB 6,0E8H ;; è symbol
819 DB 41,'}' ;;
820 DB 26,'[' ;;
821 DB 27,']' ;;
822 DB 40,'{' ;;
823 DB 43,'\' ;;
824COM_THIRD_T1_K3_END: ;;
825 ;;
826 DW 0 ;; Last xlat table
827COM_THIRD_K3_END: ;;
828 ;;
829 ;;
830;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
831;; CODE PAGE: Common
832;; STATE: Grave Lower
833;; KEYBOARD TYPES: All
834;; TABLE TYPE: Translate
835;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
836 ;;
837 DW COM_GR_LO_END-$ ;; length of state section
838 DB GRAVE_LOWER ;; State ID
839 DW ANY_KB ;; Keyboard Type
840 DB 96,0 ;; error character = standalone accent
841 ;;
842 DW COM_GR_LO_T1_END-$ ;; Size of xlat table
843 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
844 DB 5 ;; number of scans
845 DB 18,08AH ;; scan code,ASCII - e
846 DB 22,'—' ;; scan code,ASCII - u
847 DB 23,'' ;; scan code,ASCII - i
848 DB 24,'•' ;; scan code,ASCII - o
849 DB 30,'…' ;; scan code,ASCII - a
850COM_GR_LO_T1_END: ;;
851 ;;
852 DW 0 ;; Size of xlat table - null table
853 ;;
854COM_GR_LO_END: ;; length of state section
855 ;;
856;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
857;; CODE PAGE: Common
858;; STATE: Grave Space Bar
859;; KEYBOARD TYPES: All
860;; TABLE TYPE: Translate
861;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
862 ;;
863 DW COM_GR_SP_END-$ ;; length of state section
864 DB GRAVE_SPACE ;; State ID
865 DW ANY_KB ;; Keyboard Type
866 DB 96,0 ;; error character = standalone accent
867 ;;
868 DW COM_GR_SP_T1_END-$ ;; Size of xlat table
869 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
870 DB 1 ;; number of scans
871 DB 57,96 ;; STANDALONE GRAVE
872COM_GR_SP_T1_END: ;;
873 ;;
874 DW 0 ;; Size of xlat table - null table
875 ;;
876COM_GR_SP_END: ;; length of state section
877 ;;
878;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
879;; CODE PAGE: Common
880;; STATE: Circumflex Lower
881;; KEYBOARD TYPES: All
882;; TABLE TYPE: Translate
883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
884 ;;
885 DW COM_CI_LO_END-$ ;; length of state section
886 DB CIRCUMFLEX_LOWER ;; State ID
887 DW ANY_KB ;; Keyboard Type
888 DB 94,0 ;; error character = standalone accent
889 ;;
890 DW COM_CI_LO_T1_END-$ ;; Size of xlat table
891 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
892 DB 5 ;; number of scans
893 DB 18,'ˆ' ;; scan code,ASCII - e
894 DB 22,'–' ;; scan code,ASCII - u
895 DB 23,'Œ' ;; scan code,ASCII - i
896 DB 24,'“' ;; scan code,ASCII - o
897 DB 30,'ƒ' ;; scan code,ASCII - a
898COM_CI_LO_T1_END: ;;
899 ;;
900 DW 0 ;;
901 ;;
902COM_CI_LO_END: ;;
903 ;;
904;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
905;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
906;; CODE PAGE: Common
907;; STATE: Circumflex Space Bar
908;; KEYBOARD TYPES: All
909;; TABLE TYPE: Translate
910;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
911 ;;
912 DW COM_CI_SP_END-$ ;; length of state section
913 DB CIRCUMFLEX_SPACE ;; State ID
914 DW ANY_KB ;; Keyboard Type
915 DB 94,0 ;; error character = standalone accent
916 ;;
917 DW COM_CI_SP_T1_END-$ ;; Size of xlat table
918 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
919 DB 1 ;; number of scans
920 DB 57,94 ;; STANDALONE CIRCUMFLEX
921COM_CI_SP_T1_END: ;;
922 ;;
923 DW 0 ;; Size of xlat table - null table
924 ;;
925COM_CI_SP_END: ;; length of state section
926 ;;
927;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
928;; CODE PAGE: Common
929;; STATE: Tilde Lower
930;; KEYBOARD TYPES: All
931;; TABLE TYPE: Translate
932;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
933 ;;
934 DW COM_TI_LO_END-$ ;; length of state section
935 DB TILDE_LOWER ;; State ID
936 DW ANY_KB ;; Keyboard Type
937 DB 07EH,0 ;; error character = standalone accent
938 ;;
939 DW COM_TI_LO_T1_END-$ ;; Size of xlat table
940 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
941 DB 1 ;; number of scans
942 DB 49,0A4H ;; scan code,ASCII - ¤
943 COM_TI_LO_T1_END: ;;
944 ;;
945 DW 0 ;;
946 ;;
947 COM_TI_LO_END: ;;
948 ;;
949;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
950;;; CODE PAGE: Common
951;;; STATE: Tilde Upper Case
952;;; KEYBOARD TYPES: All
953;;; TABLE TYPE: Translate
954;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
955 ;;
956 DW COM_TI_UP_END-$ ;; length of state section
957 DB TILDE_UPPER ;; State ID
958 DW ANY_KB ;; Keyboard Type
959 DB 07EH,0 ;; error character = standalone accent
960 ;;
961 DW COM_TI_UP_T1_END-$ ;; Size of xlat table
962 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
963 DB 1 ;; number of scans
964 DB 49,0A5H ;; scan code,ASCII - ¥
965 COM_TI_UP_T1_END: ;;
966 ;;
967 DW 0 ;; Size of xlat table - null table
968 ;;
969 COM_TI_UP_END: ;; length of state section
970 ;;
971 ;;
972;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
973;; CODE PAGE: Common
974;; STATE: Tilde Space Bar
975;; KEYBOARD TYPES: All
976;; TABLE TYPE: Translate
977;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
978 ;;
979 DW COM_TI_SP_END-$ ;; length of state section
980 DB TILDE_SPACE ;; State ID
981 DW ANY_KB ;; Keyboard Type
982 DB 07EH,0 ;; error character = standalone accent
983 ;;
984 DW COM_TI_SP_T1_END-$ ;; Size of xlat table
985 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
986 DB 1 ;; number of scans
987 DB 57,07EH ;; STANDALONE TILDE
988COM_TI_SP_T1_END: ;;
989 ;;
990 DW 0 ;; Size of xlat table - null table
991 ;;
992COM_TI_SP_END: ;; length of state section
993 ;;
994;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
995 DW 0 ;; Last State
996COMMON_XLAT_END: ;;
997 ;;
998 ;;
999 ;;
1000;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1001;;***************************************
1002;; SF Specific Translate Section for 437
1003;;***************************************
1004;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1005 ;;
1006 PUBLIC SF_437_XLAT ;;
1007SF_437_XLAT: ;;
1008 ;;
1009 DW CP437_XLAT_END-$ ;; length of section
1010 DW 437 ;;
1011 ;;
1012;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1013;; CODE PAGE: 437
1014;; STATE: Non-Alpha Lower Case
1015;; KEYBOARD TYPES: G_KB+P12_KB
1016;; TABLE TYPE: Translate
1017;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1018 ;;
1019 DW CP437_NA_LO_END-$ ;; length of state section
1020 DB NON_ALPHA_LOWER ;; State ID
1021 DW G_KB+P12_KB ;; Keyboard Type
1022 DB -1,-1 ;; Buffer entry for error character
1023 ;;
1024 DW CP437_NA_LO_T1_END-$ ;; Size of xlat table
1025 DB STANDARD_TABLE ;; xlat options:
1026 DB 1 ;; number of entries
1027 DB 41,015H ;; Section Symbol
1028CP437_NA_LO_T1_END: ;;
1029 ;;
1030 DW 0 ;; Size of xlat table - null table
1031 ;;
1032CP437_NA_LO_END: ;;
1033 ;;
1034 ;;
1035;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1036;; CODE PAGE: 437
1037;; STATE: Third Shift
1038;; KEYBOARD TYPES: G_KB+P12_KB
1039;; TABLE TYPE: Translate
1040;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1041 ;;
1042 DW CP437_THIRD_K1_END-$ ;; length of state section
1043 DB THIRD_SHIFT ;; State ID
1044 DW G_KB+P12_KB ;; Keyboard Type
1045 DB -1,-1 ;; Buffer entry for error character
1046 ;;
1047 DW CP437_THIRD_T1_K1_END-$ ;; Size of xlat table
1048 DB STANDARD_TABLE ;; xlat options:
1049 DB 3 ;; number of entries
1050 DB 2,0B3H ;; Solid vertical
1051 DB 8,07CH ;; Broken vertical
1052 DB 9,09BH ;; › cent sign
1053CP437_THIRD_T1_K1_END: ;;
1054 ;;
1055 DW 0 ;; Size of xlat table - null table
1056 ;;
1057CP437_THIRD_K1_END: ;;
1058 ;;
1059 ;;
1060;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1061;; CODE PAGE: 437
1062;; STATE: Third Shift
1063;; KEYBOARD TYPES: AT+XT+
1064;; TABLE TYPE: Translate
1065;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1066 ;;
1067 DW CP437_THIRD_K2_END-$ ;; length of state section
1068 DB THIRD_SHIFT ;; State ID
1069 DW AT_KB+XT_KB ;; Keyboard Type
1070 DB -1,-1 ;; Buffer entry for error character
1071 ;;
1072 DW CP437_THIRD_T1_K2_END-$ ;; Size of xlat table
1073 DB STANDARD_TABLE ;; xlat options:
1074 DB 2 ;; number of entries
1075 DB 8,07CH ;; Broken vertical
1076 DB 6,015H ;; Section Symbol
1077CP437_THIRD_T1_K2_END: ;;
1078 ;;
1079 DW 0 ;; Size of xlat table - null table
1080 ;;
1081CP437_THIRD_K2_END: ;;
1082 ;;
1083 ;;
1084;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1085;; CODE PAGE: 437
1086;; STATE: Acute Lower Case
1087;; KEYBOARD TYPES: All
1088;; TABLE TYPE: Translate
1089;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1090 ;;
1091 DW CP437_AC_LO_END-$ ;; length of state section
1092 DB ACUTE_LOWER ;; State ID
1093 DW ANY_KB ;; Keyboard Type
1094 DB 39,0 ;; error character = standalone accent
1095 ;;
1096 DW CP437_AC_LO_T1_END-$ ;; Size of xlat table
1097 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1098 DB 5 ;; number of scans
1099 DB 18,'‚' ;; scan code,ASCII - e
1100 DB 22,'£' ;; scan code,ASCII - u
1101 DB 23,'¡' ;; scan code,ASCII - i
1102 DB 24,'¢' ;; scan code,ASCII - o
1103 DB 30,' ' ;; scan code,ASCII - a
1104CP437_AC_LO_T1_END: ;;
1105 ;;
1106 DW 0 ;; Size of xlat table - null table
1107 ;;
1108CP437_AC_LO_END: ;;
1109 ;;
1110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1111;; CODE PAGE: 437
1112;; STATE: Acute Upper Case
1113;; KEYBOARD TYPES: All
1114;; TABLE TYPE: Translate
1115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1116 ;;
1117 DW CP437_AC_UP_END-$ ;; length of state section
1118 DB ACUTE_UPPER ;; State ID
1119 DW ANY_KB ;; Keyboard Type
1120 DB 39,0 ;; error character = standalone accent
1121 ;;
1122 DW CP437_AC_UP_T1_END-$ ;; Size of xlat table
1123 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1124 DB 1 ;; number of entries
1125 DB 18,'' ;; scan code,ASCII -
1126CP437_AC_UP_T1_END: ;;
1127 ;;
1128 DW 0 ;; Size of xlat table - null table
1129 ;;
1130CP437_AC_UP_END: ;;
1131 ;;
1132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1133;; CODE PAGE: CP437
1134;; STATE: Diaresis Lower Case
1135;; KEYBOARD TYPES: All
1136;; TABLE TYPE: Translate
1137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1138 ;;
1139 DW CP437_DI_LO_END-$ ;; length of state section
1140 DB DIARESIS_LOWER ;; State ID
1141 DW ANY_KB ;; Keyboard Type
1142 DB 34,0 ;; error character = standalone accent
1143 ;;
1144 DW CP437_DI_LO_T1_END-$ ;; Size of xlat table
1145 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1146 DB 6 ;; number of scans
1147 DB 18,'‰' ;; scan code,ASCII - e
1148 DB 44,'˜' ;; scan code,ASCII - y
1149 DB 22,'' ;; scan code,ASCII - u
1150 DB 23,'‹' ;; scan code,ASCII - i
1151 DB 24,'”' ;; scan code,ASCII - o
1152 DB 30,'„' ;; scan code,ASCII - a
1153CP437_DI_LO_T1_END: ;;
1154 ;;
1155 DW 0 ;; Size of xlat table - null table
1156 ;;
1157CP437_DI_LO_END: ;; length of state section
1158 ;;
1159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1160;; CODE PAGE: CP437
1161;; STATE: Diaresis Upper Case
1162;; KEYBOARD TYPES: All
1163;; TABLE TYPE: Translate
1164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1165 ;;
1166 DW CP437_DI_UP_END-$ ;; length of state section
1167 DB DIARESIS_UPPER ;; State ID
1168 DW ANY_KB ;; Keyboard Type
1169 DB 34,0 ;; error character = standalone accent
1170 ;;
1171 DW CP437_DI_UP_T1_END-$ ;; Size of xlat table
1172 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1173 DB 3 ;; number of scans
1174 DB 22,'š' ;; scan code,ASCII - U
1175 DB 24,'™' ;; scan code,ASCII - O
1176 DB 30,'Ž' ;; scan code,ASCII - A
1177CP437_DI_UP_T1_END: ;;
1178 ;;
1179 DW 0 ;; Size of xlat table - null table
1180 ;;
1181CP437_DI_UP_END: ;; length of state section
1182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1183;; CODE PAGE: CP437
1184;; STATE: CapsLock
1185;; KEYBOARD TYPES: All
1186;; TABLE TYPE: Translate
1187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1188 ;;
1189 DW CP437_BOTRH_END-$ ;; length of state section
1190 DB BOTRH_CAPS ;; State ID
1191 DW ANY_KB ;; Keyboard Type
1192 DB -1,-1 ;; Buffer entry for error character
1193 ;;
1194 DW CP437_BOTRH_T1_END-$ ;; Size of xlat table
1195 DB STANDARD_TABLE ;; xlat options:
1196 DB 3 ;; number of entries
1197 DB 39,082H ;; e ACUTE
1198 DB 26,08AH ;; e GRAVE
1199 DB 40,085H ;; a GRAVE
1200CP437_BOTRH_T1_END: ;;
1201 ;;
1202 DW 0 ;; Last xlat table
1203CP437_BOTRH_END: ;;
1204 ;;
1205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1206;; CODE PAGE: CP437
1207;; STATE: CapsLock + Shift
1208;; KEYBOARD TYPES: All
1209;; TABLE TYPE: Translate
1210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1211 ;;
1212 DW CP437_BOTRH_K1_END-$ ;; length of state section
1213 DB BOTRH_F_CAPS ;; State ID
1214 DW ANY_KB ;; Keyboard Type
1215 DB -1,-1 ;; Buffer entry for error character
1216 ;;
1217 DW CP437_BOTRH_T2_END-$ ;; Size of xlat table
1218 DB STANDARD_TABLE ;; xlat options:
1219 DB 3 ;; number of entries
1220 DB 39,094H ;; o di
1221 DB 26,081H ;; u di
1222 DB 40,084H ;; a di
1223CP437_BOTRH_T2_END: ;;
1224 ;;
1225 DW 0 ;; Last xlat table
1226CP437_BOTRH_K1_END: ;;
1227 ;;
1228 ;;
1229 ;;
1230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1231 ;;
1232 DW 0 ;; LAST STATE
1233 ;;
1234CP437_XLAT_END: ;;
1235 ;;
1236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1237;;***************************************
1238;; SF Specific Translate Section for 850
1239;;***************************************
1240;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1241 ;;
1242 PUBLIC SF_850_XLAT ;;
1243SF_850_XLAT: ;;
1244 ;;
1245 DW CP850_XLAT_END-$ ;; length of section
1246 DW 850 ;;
1247 ;;
1248 ;;
1249;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1250;; CODE PAGE: CP850
1251;; STATE: CapsLock
1252;; KEYBOARD TYPES: All
1253;; TABLE TYPE: Translate
1254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1255 ;;
1256 DW CP850_BOTRH_END-$ ;; length of state section
1257 DB BOTRH_CAPS ;; State ID
1258 DW ANY_KB ;; Keyboard Type
1259 DB -1,-1 ;; Buffer entry for error character
1260 ;;
1261 DW CP850_BOTRH_T1_END-$ ;; Size of xlat table
1262 DB STANDARD_TABLE ;; xlat options:
1263 DB 3 ;; number of entries
1264 DB 39,090H ;; CAP E ACUTE
1265 DB 26,0D4H ;; CAP E GRAVE
1266 DB 40,0B7H ;; CAP A GRAVE
1267CP850_BOTRH_T1_END: ;;
1268 ;;
1269 DW 0 ;; Last xlat table
1270CP850_BOTRH_END: ;;
1271 ;;
1272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1273;; CODE PAGE: CP850
1274;; STATE: CapsLock + Shift
1275;; KEYBOARD TYPES: All
1276;; TABLE TYPE: Translate
1277;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1278 ;;
1279 DW CP850_BOTRH_K1_END-$ ;; length of state section
1280 DB BOTRH_F_CAPS ;; State ID
1281 DW ANY_KB ;; Keyboard Type
1282 DB -1,-1 ;; Buffer entry for error character
1283 ;;
1284 DW CP850_BOTRH_T2_END-$ ;; Size of xlat table
1285 DB STANDARD_TABLE ;; xlat options:
1286 DB 3 ;; number of entries
1287 DB 26,09AH ;; CAP U di
1288 DB 39,099H ;; CAP O di
1289 DB 40,08EH ;; CAP A di
1290CP850_BOTRH_T2_END: ;;
1291 ;;
1292 DW 0 ;; Last xlat table
1293CP850_BOTRH_K1_END: ;;
1294 ;;
1295;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1296;; CODE PAGE: 850
1297;; STATE: Non-Alpha Lower Case
1298;; KEYBOARD TYPES: G_KB+P12
1299;; TABLE TYPE: Translate
1300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1301 ;;
1302 DW CP850_NA_LO_END-$ ;; length of state section
1303 DB NON_ALPHA_LOWER ;; State ID
1304 DW G_KB+P12_KB ;; Keyboard Type
1305 DB -1,-1 ;; Buffer entry for error character
1306 ;;
1307 DW CP850_NA_LO_T1_END-$ ;; Size of xlat table
1308 DB STANDARD_TABLE ;; xlat options:
1309 DB 1 ;; number of entries
1310 DB 41,0F5H ;; Section Symbol
1311CP850_NA_LO_T1_END: ;;
1312 ;;
1313 DW 0 ;; Size of xlat table - null table
1314 ;;
1315CP850_NA_LO_END: ;;
1316 ;;
1317 ;;
1318;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1319;; CODE PAGE: 850
1320;; STATE: Third Shift
1321;; KEYBOARD TYPES: G_KB+P12_KB
1322;; TABLE TYPE: Translate
1323;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1324 ;;
1325 DW CP850_THIRD_K1_END-$ ;; length of state section
1326 DB THIRD_SHIFT ;; State ID
1327 DW G_KB+P12_KB ;; Keyboard Type
1328 DB -1,-1 ;; Buffer entry for error character
1329 ;;
1330 DW CP850_THIRD_T1_K1_END-$ ;; Size of xlat table
1331 DB STANDARD_TABLE ;; xlat options:
1332 DB 3 ;; number of entries
1333 DB 2,07CH ;; Solid vertical
1334 DB 8,0DDH ;; Broken vertical
1335 DB 9,0BDH ;; › cent sign
1336CP850_THIRD_T1_K1_END: ;;
1337 ;;
1338 DW 0 ;; Size of xlat table - null table
1339 ;;
1340CP850_THIRD_K1_END: ;;
1341 ;;
1342 ;;
1343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1344;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1345;; CODE PAGE: 850
1346;; STATE: Third Shift
1347;; KEYBOARD TYPES: AT+XT+
1348;; TABLE TYPE: Translate
1349;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1350 ;;
1351 DW CP850_THIRD_K2_END-$ ;; length of state section
1352 DB THIRD_SHIFT ;; State ID
1353 DW AT_KB+XT_KB ;; Keyboard Type
1354 DB -1,-1 ;; Buffer entry for error character
1355 ;;
1356 DW CP850_THIRD_T1_K2_END-$ ;; Size of xlat table
1357 DB STANDARD_TABLE ;; xlat options:
1358 DB 2 ;; number of entries
1359 DB 8,0DDH ;; Broken vertical
1360 DB 6,0F5H ;; Section Symbol
1361CP850_THIRD_T1_K2_END: ;;
1362 ;;
1363 DW 0 ;; Size of xlat table - null table
1364 ;;
1365CP850_THIRD_K2_END: ;;
1366 ;;
1367 ;;
1368;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1369;; CODE PAGE: 850
1370;; STATE: Acute Lower Case
1371;; KEYBOARD TYPES: All
1372;; TABLE TYPE: Translate
1373;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1374 ;;
1375 DW CP850_AC_LO_END-$ ;; length of state section
1376 DB ACUTE_LOWER ;; State ID
1377 DW ANY_KB ;; Keyboard Type
1378 DB 239,0 ;; error character = standalone accent
1379 ;;
1380 DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
1381 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1382 DB 6 ;; number of scans
1383 DB 18,'‚' ;; scan code,ASCII - e
1384 DB 44,0ECH ;; y acute
1385 DB 22,'£' ;; scan code,ASCII - u
1386 DB 23,'¡' ;; scan code,ASCII - i
1387 DB 24,'¢' ;; scan code,ASCII - o
1388 DB 30,' ' ;; scan code,ASCII - a
1389CP850_AC_LO_T1_END: ;;
1390 ;;
1391 DW 0 ;; Size of xlat table - null table
1392 ;;
1393CP850_AC_LO_END: ;;
1394 ;;
1395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1396;; CODE PAGE: 850
1397;; STATE: Acute Upper Case
1398;; KEYBOARD TYPES: All
1399;; TABLE TYPE: Translate
1400;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1401 ;;
1402 DW CP850_AC_UP_END-$ ;; length of state section
1403 DB ACUTE_UPPER ;; State ID
1404 DW ANY_KB ;; Keyboard Type
1405 DB 239,0 ;; error character = standalone accent
1406 ;;
1407 DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
1408 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1409 DB 6 ;; number of entries
1410 DB 18,090H ;; E acute
1411 DB 44,0EDH ;; Y acute
1412 DB 22,0E9H ;; U acute
1413 DB 23,0D6H ;; I acute
1414 DB 24,0E0H ;; O acute
1415 DB 30,0B5H ;; A acute
1416CP850_AC_UP_T1_END: ;;
1417 ;;
1418 DW 0 ;; Size of xlat table - null table
1419 ;;
1420CP850_AC_UP_END: ;;
1421 ;;
1422;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1423;; CODE PAGE: 850
1424;; STATE: Acute Space Bar
1425;; KEYBOARD TYPES: All
1426;; TABLE TYPE: Translate
1427;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1428 ;;
1429 DW CP850_AC_SP_END-$ ;; length of state section
1430 DB ACUTE_SPACE ;; State ID
1431 DW ANY_KB ;; Keyboard Type
1432 DB 239,0 ;; error character = standalone accent
1433 ;;
1434 DW CP850_AC_SP_T1_END-$ ;; Size of xlat table
1435 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1436 DB 1 ;; number of scans
1437 DB 57,239 ;; scan code,ASCII - SPACE
1438CP850_AC_SP_T1_END: ;;
1439 ;;
1440 DW 0 ;; Size of xlat table - null table
1441 ;;
1442CP850_AC_SP_END: ;;
1443 ;;
1444;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1445;; CODE PAGE: 850
1446;; STATE: Diaresis Lower Case
1447;; KEYBOARD TYPES: All
1448;; TABLE TYPE: Translate
1449;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1450 ;;
1451 DW CP850_DI_LO_END-$ ;; length of state section
1452 DB DIARESIS_LOWER ;; State ID
1453 DW ANY_KB ;; Keyboard Type
1454 DB 249,0 ;; error character = standalone accent
1455 ;;
1456 DW CP850_DI_LO_T1_END-$ ;; Size of xlat table
1457 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1458 DB 6 ;; number of scans
1459 DB 18,'‰' ;; scan code,ASCII - e
1460 DB 44,'˜' ;; scan code,ASCII - y
1461 DB 22,'' ;; scan code,ASCII - u
1462 DB 23,'‹' ;; scan code,ASCII - i
1463 DB 24,'”' ;; scan code,ASCII - o
1464 DB 30,'„' ;; scan code,ASCII - a
1465CP850_DI_LO_T1_END: ;;
1466 ;;
1467 DW 0 ;; Size of xlat table - null table
1468 ;;
1469CP850_DI_LO_END: ;; length of state section
1470 ;;
1471;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1472;; CODE PAGE: 850
1473;; STATE: Diaresis Upper Case
1474;; KEYBOARD TYPES: All
1475;; TABLE TYPE: Translate
1476;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1477 ;;
1478 DW CP850_DI_UP_END-$ ;; length of state section
1479 DB DIARESIS_UPPER ;; State ID
1480 DW ANY_KB ;; Keyboard Type
1481 DB 249,0 ;; error character = standalone accent
1482 ;;
1483 DW CP850_DI_UP_T1_END-$ ;; Size of xlat table
1484 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1485 DB 5 ;; number of scans
1486 DB 18,0D3H ;; E Diaeresis
1487 DB 22,'š' ;; U Diaeresis
1488 DB 23,0D8H ;; I Diaeresis
1489 DB 24,'™' ;; O Diaeresis
1490 DB 30,'Ž' ;; A Diaeresis
1491CP850_DI_UP_T1_END: ;;
1492 ;;
1493 DW 0 ;; Size of xlat table - null table
1494 ;;
1495CP850_DI_UP_END: ;; length of state section
1496 ;;
1497 ;;
1498;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1499;; CODE PAGE: 850
1500;; STATE: Diaresis Space Bar
1501;; KEYBOARD TYPES: All
1502;; TABLE TYPE: Translate
1503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1504 ;;
1505 DW CP850_DI_SP_END-$ ;; length of state section
1506 DB DIARESIS_SPACE ;; State ID
1507 DW ANY_KB ;; Keyboard Type
1508 DB 249,0 ;; error character = standalone accent
1509 ;;
1510 DW CP850_DI_SP_T1_END-$ ;; Size of xlat table
1511 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1512 DB 1 ;; number of scans
1513 DB 57,249 ;; error character = standalone accent
1514CP850_DI_SP_T1_END: ;;
1515 ;;
1516 DW 0 ;; Size of xlat table - null table
1517CP850_DI_SP_END: ;; length of state section
1518 ;;
1519;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1520;; CODE PAGE: 850
1521;; STATE: Grave Upper
1522;; KEYBOARD TYPES: All
1523;; TABLE TYPE: Translate
1524;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1525 ;;
1526 DW CP850_GR_UP_END-$ ;; length of state section
1527 DB GRAVE_UPPER ;; State ID
1528 DW ANY_KB ;; Keyboard Type
1529 DB 96,0 ;; error character = standalone accent
1530 ;;
1531 DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
1532 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1533 DB 5 ;; number of scans
1534 DB 18,0D4H ;; E grave
1535 DB 22,0EBH ;; U grave
1536 DB 23,0DEH ;; I grave
1537 DB 24,0E3H ;; O grave
1538 DB 30,0B7H ;; A grave
1539CP850_GR_UP_T1_END: ;;
1540 ;;
1541 DW 0 ;; Size of xlat table - null table
1542 ;;
1543CP850_GR_UP_END: ;; length of state section
1544 ;;
1545;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1546;; CODE PAGE: 850
1547;; STATE: Tilde Lower
1548;; KEYBOARD TYPES: All
1549;; TABLE TYPE: Translate
1550;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1551 ;;
1552 DW CP850_TI_LO_END-$ ;; length of state section
1553 DB TILDE_LOWER ;; State ID
1554 DW ANY_KB ;; Keyboard Type
1555 DB 07EH,0 ;; error character = standalone accent
1556 ;;
1557 DW CP850_TI_LO_T1_END-$ ;; Size of xlat table
1558 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1559 DB 2 ;; number of scans
1560 DB 24,0E4H ;; scan code,ASCII - o tilde
1561 DB 30,0C6H ;; scan code,ASCII - a tilde
1562 CP850_TI_LO_T1_END: ;;
1563 ;;
1564 DW 0 ;;
1565 ;;
1566 CP850_TI_LO_END: ;;
1567 ;;
1568;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1569;;; CODE PAGE: 850
1570;;; STATE: Tilde Upper Case
1571;;; KEYBOARD TYPES: All
1572;;; TABLE TYPE: Translate
1573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1574 ;;
1575 DW CP850_TI_UP_END-$ ;; length of state section
1576 DB TILDE_UPPER ;; State ID
1577 DW ANY_KB ;; Keyboard Type
1578 DB 07EH,0 ;; error character = standalone accent
1579 ;;
1580 DW CP850_TI_UP_T1_END-$ ;; Size of xlat table
1581 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1582 DB 2 ;; number of scans
1583 DB 24,0E5H ;; scan code,ASCII - O tilde
1584 DB 30,0C7H ;; scan code,ASCII - A tilde
1585 CP850_TI_UP_T1_END: ;;
1586 ;;
1587 DW 0 ;; Size of xlat table - null table
1588 ;;
1589 CP850_TI_UP_END: ;; length of state section
1590 ;;
1591 ;;
1592;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1593;; CODE PAGE: 850
1594;; STATE: Circumflex Upper
1595;; KEYBOARD TYPES: All
1596;; TABLE TYPE: Translate
1597;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1598 ;;
1599 DW CP850_CI_UP_END-$ ;; length of state section
1600 DB CIRCUMFLEX_UPPER ;; State ID
1601 DW ANY_KB ;; Keyboard Type
1602 DB 94,0 ;; error character = standalone accent
1603 ;;
1604 DW CP850_CI_UP_T1_END-$ ;; Size of xlat table
1605 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1606 DB 5 ;; number of scans
1607 DB 18,0D2H ;; E circumflex
1608 DB 22,0EAH ;; U circumflex
1609 DB 23,0D7H ;; I circumflex
1610 DB 24,0E2H ;; O circumflex
1611 DB 30,0B6H ;; A circumflex
1612CP850_CI_UP_T1_END: ;;
1613 ;;
1614 DW 0 ;; Size of xlat table - null table
1615 ;;
1616CP850_CI_UP_END: ;; length of state section
1617 ;;
1618;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1619 ;;
1620 ;;
1621 DW 0 ;; LAST STATE
1622 ;;
1623CP850_XLAT_END: ;;
1624;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1625 ;;
1626CODE ENDS ;;
1627 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFSG.ASM b/v4.0/src/DEV/KEYBOARD/KDFSG.ASM
new file mode 100644
index 0000000..233da93
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFSG.ASM
@@ -0,0 +1,1629 @@
1 PAGE ,132
2 TITLE DOS - Keyboard Definition File
3
4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5;; DOS - - NLS Support - Keyboard Defintion File
6;; (c) Copyright 1988 Microsoft
7;;
8;; This file contains the keyboard tables for Swiss German
9;;
10;; Linkage Instructions:
11;; Refer to KDF.ASM.
12;;
13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
14 ;;
15 INCLUDE KEYBSHAR.INC ;;
16 INCLUDE POSTEQU.INC ;;
17 INCLUDE KEYBMAC.INC ;;
18 ;;
19 PUBLIC SG_LOGIC ;;
20 PUBLIC SG_437_XLAT ;;
21 PUBLIC SG_850_XLAT ;;
22 ;;
23CODE SEGMENT PUBLIC 'CODE' ;;
24 ASSUME CS:CODE,DS:CODE ;;
25 ;;
26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
27;; Standard translate table options are a liner search table
28;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
30 ;;
31STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
32 ;;
33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
34;;***************************************
35;; SG State Logic
36;;***************************************
37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
38 ;;
39 ;;
40SG_LOGIC:
41
42 DW LOGIC_END-$ ;; length
43 ;;
44 DW 0 ;; special features
45 ;;
46 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
47 ;;
48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
49;; OPTIONS: If we find a scan match in
50;; an XLATT or SET_FLAG operation then
51;; exit from INT 9.
52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
53 ;;
54 OPTION EXIT_IF_FOUND ;;
55 ;;
56 ;;
57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58;; Dead key definitions must come before
59;; dead key translations to handle
60;; dead key + dead key.
61;; ***BD - THIS SECTION HAS BEEN UPDATED
62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
64 ;;
65 ;;
66IFF EITHER_ALT,NOT ;;
67ANDF EITHER_CTL,NOT ;;
68 IFF EITHER_SHIFT ;;
69 SET_FLAG DEAD_UPPER ;;
70 ELSEF ;;
71 SET_FLAG DEAD_LOWER ;;
72 ENDIFF ;;
73ENDIFF ;;
74IFF EITHER_SHIFT,NOT ;;
75 IFKBD XT_KB+AT_KB ;;
76 IFF EITHER_CTL ;;
77 ANDF ALT_SHIFT ;;
78 SET_FLAG DEAD_THIRD ;;
79 ENDIFF ;;
80 ELSEF ;;
81 IFF EITHER_CTL,NOT ;;
82 ANDF R_ALT_SHIFT ;;
83 SET_FLAG DEAD_THIRD ;;
84 ENDIFF ;;
85 ENDIFF ;;
86ENDIFF ;;
87 ;;
88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
89;; ACUTE ACCENT TRANSLATIONS
90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
91 ;;
92ACUTE_PROC: ;;
93 ;;
94 IFF ACUTE,NOT ;;
95 GOTO DIARESIS_PROC ;;
96 ENDIFF ;;
97 ;;
98 RESET_NLS ;;
99 IFF R_ALT_SHIFT,NOT ;;
100 XLATT ACUTE_SPACE ;;
101 ENDIFF ;;
102 IFF EITHER_CTL,NOT ;;
103 ANDF EITHER_ALT,NOT ;;
104 IFF EITHER_SHIFT ;;
105 IFF CAPS_STATE ;;
106 XLATT ACUTE_LOWER ;;
107 ELSEF ;;
108 XLATT ACUTE_UPPER ;;
109 ENDIFF ;;
110 ELSEF ;;
111 IFF CAPS_STATE ;;
112 XLATT ACUTE_UPPER ;;
113 ELSEF ;;
114 XLATT ACUTE_LOWER ;;
115 ENDIFF ;;
116 ENDIFF ;;
117 ENDIFF ;;
118 ;;
119INVALID_ACUTE: ;;
120 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
121 BEEP ;; failed or we are ina bad shift state.
122 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
123 ;; through to generate the second char.
124 ;; Note that the dead key flag will be
125 ;; reset before we get here.
126 ;;
127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
128;; DIARESIS ACCENT TRANSLATIONS
129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
130 ;;
131DIARESIS_PROC: ;;
132 ;;
133 IFF DIARESIS,NOT ;;
134 GOTO GRAVE_PROC ;;
135 ENDIFF ;;
136 ;;
137 RESET_NLS ;;
138 IFF R_ALT_SHIFT,NOT ;;
139 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
140 ENDIFF ;;
141 IFF EITHER_CTL,NOT ;;
142 ANDF EITHER_ALT,NOT ;;
143 IFF EITHER_SHIFT ;;
144 IFF CAPS_STATE ;;
145 XLATT DIARESIS_LOWER ;;
146 ELSEF ;;
147 XLATT DIARESIS_UPPER ;;
148 ENDIFF ;;
149 ELSEF ;;
150 IFF CAPS_STATE ;;
151 XLATT DIARESIS_UPPER ;;
152 ELSEF ;;
153 XLATT DIARESIS_LOWER ;;
154 ENDIFF ;;
155 ENDIFF ;;
156 ENDIFF ;;
157 ;;
158INVALID_DIARESIS: ;;
159 PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent
160 BEEP ;; Invalid dead key combo.
161 GOTO NON_DEAD ;;
162 ;;
163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
164;; GRAVE ACCENT TRANSLATIONS
165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
166 ;;
167GRAVE_PROC: ;;
168 ;;
169 IFF GRAVE,NOT ;;
170 GOTO TILDE_PROC ;;
171 ENDIFF ;;
172 ;;
173 RESET_NLS ;;
174 IFF R_ALT_SHIFT,NOT ;;
175 XLATT GRAVE_SPACE ;;
176 ENDIFF ;;
177 IFF EITHER_CTL,NOT ;;
178 ANDF EITHER_ALT,NOT ;;
179 IFF EITHER_SHIFT ;;
180 IFF CAPS_STATE ;;
181 XLATT GRAVE_LOWER ;;
182 ELSEF ;;
183 XLATT GRAVE_UPPER ;;
184 ENDIFF ;;
185 ELSEF ;;
186 IFF CAPS_STATE,NOT ;;
187 XLATT GRAVE_LOWER ;;
188 ELSEF ;;
189 XLATT GRAVE_UPPER ;;
190 ENDIFF ;;
191 ENDIFF ;;
192 ENDIFF ;;
193 ;;
194INVALID_GRAVE: ;;
195 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
196 BEEP ;; Invalid dead key combo.
197 GOTO NON_DEAD ;;
198 ;;
199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
201;; TILDE ACCENT TRANSLATIONS
202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
203TILDE_PROC: ;;
204 ;;
205 IFF TILDE,NOT ;;
206 GOTO CIRCUMFLEX_PROC ;;
207 ENDIFF ;;
208 ;;
209 RESET_NLS ;;
210 IFF R_ALT_SHIFT,NOT ;;
211 XLATT TILDE_SPACE ;;
212 ENDIFF ;;
213 IFF EITHER_CTL,NOT ;;
214 ANDF EITHER_ALT,NOT ;;
215 IFF EITHER_SHIFT ;;
216 IFF CAPS_STATE ;;
217 XLATT TILDE_LOWER ;;
218 ELSEF ;;
219 XLATT TILDE_UPPER ;;
220 ENDIFF ;;
221 ELSEF ;;
222 IFF CAPS_STATE ;;
223 XLATT TILDE_UPPER ;;
224 ELSEF ;;
225 XLATT TILDE_LOWER ;;
226 ENDIFF ;;
227 ENDIFF ;;
228 ENDIFF ;;
229 ;;
230INVALID_TILDE: ;;
231 PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent
232 BEEP ;; Invalid dead key combo.
233 GOTO NON_DEAD ;;
234 ;;
235;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
236;; CIRCUMFLEX ACCENT TRANSLATIONS
237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
238 ;;
239CIRCUMFLEX_PROC: ;;
240 ;;
241 IFF CIRCUMFLEX,NOT ;;
242 GOTO NON_DEAD ;;
243 ENDIFF ;;
244 ;;
245 RESET_NLS ;;
246 IFF R_ALT_SHIFT,NOT ;;
247 XLATT CIRCUMFLEX_SPACE ;;
248 ENDIFF ;;
249 IFF EITHER_CTL,NOT ;;
250 ANDF EITHER_ALT,NOT ;;
251 IFF EITHER_SHIFT ;;
252 IFF CAPS_STATE ;;
253 XLATT CIRCUMFLEX_LOWER ;;
254 ELSEF ;;
255 XLATT CIRCUMFLEX_UPPER ;;
256 ENDIFF ;;
257 ELSEF ;;
258 IFF CAPS_STATE,NOT ;;
259 XLATT CIRCUMFLEX_LOWER ;;
260 ELSEF ;;
261 XLATT CIRCUMFLEX_UPPER ;;
262 ENDIFF ;;
263 ENDIFF ;;
264 ENDIFF ;;
265 ;;
266INVALID_CIRCUMFLEX: ;;
267 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
268 BEEP ;; Invalid dead key combo.
269 GOTO NON_DEAD ;;
270 ;;
271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
272;; Upper, lower and third shifts
273;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
274 ;;
275NON_DEAD: ;;
276 ;;
277 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
278 ANDF LC_E0 ;; the "/" on the numeric pad of the
279 EXIT_STATE_LOGIC ;; G keyboard
280 ENDIFF ;;
281 ;;
282 IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
283 ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
284 IFF EITHER_SHIFT ;; Numeric keys are not.
285 IFF CAPS_STATE ;;
286 XLATT BOTLH_F_CAPS ;;
287 XLATT ALPHA_LOWER ;;
288 ELSEF ;;
289 XLATT ALPHA_UPPER ;;
290 ENDIFF ;;
291 XLATT NON_ALPHA_UPPER ;;
292 ELSEF ;;
293 IFF CAPS_STATE ;;
294 XLATT BOTLH_CAPS ;;
295 XLATT ALPHA_UPPER ;;
296 ELSEF ;;
297 XLATT ALPHA_LOWER ;;
298 ENDIFF ;;
299 XLATT NON_ALPHA_LOWER ;;
300 ENDIFF ;;
301 ELSEF ;;
302 IFF EITHER_SHIFT,NOT ;;
303 IFKBD XT_KB+AT_KB ;;
304 IFF EITHER_CTL ;;
305 ANDF ALT_SHIFT ;;
306 XLATT THIRD_SHIFT ;;
307 ENDIFF ;;
308 ELSEF ;;
309 IFF EITHER_CTL,NOT ;;
310 ANDF R_ALT_SHIFT ;;
311 XLATT THIRD_SHIFT ;;
312 ENDIFF ;;
313 ENDIFF ;;
314 IFKBD AT_KB+XT_KB ;;
315 IFF EITHER_CTL ;;
316 ANDF ALT_SHIFT ;;
317 XLATT ALT_CASE ;;
318 ENDIFF ;;
319 ENDIFF ;;
320 IFKBD G_KB+P12_KB ;;
321 IFF EITHER_CTL ;;
322 ANDF ALT_SHIFT ;;
323 IFF R_ALT_SHIFT,NOT ;;
324 XLATT ALT_CASE ;;
325 ENDIFF ;;
326 ENDIFF ;;
327 ENDIFF ;;
328 ENDIFF ;;
329 ENDIFF ;;
330;IFF EITHER_SHIFT,NOT ;;
331 IFKBD AT_KB+XT_KB ;;
332 IFF EITHER_CTL,NOT ;;
333 IFF ALT_SHIFT ;; ALT - case
334 XLATT ALT_CASE ;;
335 ENDIFF ;;
336 ELSEF ;;
337 XLATT CTRL_CASE ;;
338 ENDIFF ;;
339 ENDIFF ;;
340 ;;
341 IFKBD G_KB+P12_KB ;;
342 IFF EITHER_CTL,NOT ;;
343 IFF ALT_SHIFT ;; ALT - case
344 ANDF R_ALT_SHIFT,NOT ;;
345 XLATT ALT_CASE ;;
346 ENDIFF ;;
347 ELSEF ;;
348 XLATT CTRL_CASE ;;
349 ENDIFF ;;
350; ENDIFF ;;
351 ENDIFF ;;
352 ;;
353 EXIT_STATE_LOGIC ;;
354 ;;
355LOGIC_END: ;;
356 ;;
357;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
358;;***************************************
359;; SG Common Translate Section
360;; This section contains translations for the lower 128 characters
361;; only since these will never change from code page to code page.
362;; In addition the dead key "Set Flag" tables are here since the
363;; dead keys are on the same keytops for all code pages.
364;;***************************************
365;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
366 ;;
367 PUBLIC SG_COMMON_XLAT ;;
368SG_COMMON_XLAT: ;;
369 ;;
370 DW COMMON_XLAT_END-$ ;; length of section
371 DW -1 ;; code page
372 ;;
373 ;;
374;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
375;; CODE PAGE: Common
376;; STATE: Lower Shift Dead Key
377;; KEYBOARD TYPES: All
378;; TABLE TYPE: Flag Table
379;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
380 ;;
381 DW COM_SG_LO_END-$ ;; length of state section
382 DB DEAD_LOWER ;; State ID
383 DW ANY_KB ;; Keyboard Type
384 DB -1,-1 ;; Buffer entry for error character
385 ;; Set Flag Table
386 DW 2 ;; number of entries
387 DB 13 ;; scan code
388 FLAG CIRCUMFLEX ;; flag bit to set
389 DB 27 ;; scan code
390 FLAG DIARESIS ;; flag bit to set
391 ;;
392 ;;
393COM_SG_LO_END: ;;
394 ;;
395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
396;; CODE PAGE: Common
397;; STATE: Upper Shift Dead Key
398;; KEYBOARD TYPES: All
399;; TABLE TYPE: Flag Table
400;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
401 ;;
402 DW COM_SG_UP_END-$ ;; length of state section
403 DB DEAD_UPPER ;; State ID
404 DW ANY_KB ;; Keyboard Type
405 DB -1,-1 ;; Buffer entry for error character
406 ;; Set Flag Table
407 DW 1 ;; number of entries
408 DB 13 ;; scan code
409 FLAG GRAVE ;; flag bit to set
410COM_SG_UP_END: ;;
411 ;;
412;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
413;; CODE PAGE: Common
414;; STATE: Third Shift Dead Key
415;; KEYBOARD TYPES: All
416;; TABLE TYPE: Flag Table
417;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
418 ;;
419 DW COM_DK_TH_END-$ ;; length of state section
420 DB DEAD_THIRD ;; State ID
421 DW ANY_KB ;; Keyboard Type
422 DB -1,-1 ;; Buffer entry for error character
423 ;; Set Flag Table
424 DW 2 ;; number of entries
425 DB 13 ;; scan code
426 FLAG TILDE ;; flag bit to set
427 DB 12 ;; scan code
428 FLAG ACUTE ;; flag bit to set
429COM_DK_TH_END: ;;
430 ;;
431;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
432;; CODE PAGE: Common
433;; STATE: Alt Case
434;; KEYBOARD TYPES: All
435;; TABLE TYPE: Translate
436;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
437 ;;
438 DW COM_ALT_K1_END-$ ;; length of state section
439 DB ALT_CASE ;; State ID
440 DW ANY_KB ;; Keyboard Type
441 DB -1,-1 ;; Buffer entry for error character
442 ;; Set Flag Table
443 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
444 DB TYPE_2_TAB ;;
445 DB 2 ;; 5 Number of entries
446; DB 12,-1,-1 ;;
447; DB 13,-1,-1 ;;
448 DB 21,0,2CH ;;
449 DB 44,0,15H ;;
450; DB 53,0,82H ;;
451COM_ALT_K1_T1_END: ;;
452 ;;
453 DW 0 ;;
454 ;;
455COM_ALT_K1_END: ;;
456 ;;
457;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
458;; CODE PAGE: Common
459;; STATE: Ctrl Case
460;; KEYBOARD TYPES: All
461;; TABLE TYPE: Translate
462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
463 ;;
464 DW COM_CTRL_K1_END-$ ;; length of state section
465 DB CTRL_CASE ;; State ID
466 DW ANY_KB ;; Keyboard Type
467 DB -1,-1 ;; Buffer entry for error character
468 ;; Set Flag Table
469 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
470 DB TYPE_2_TAB ;;
471 DB 6 ;; Number of entries
472 DB 12,-1,-1 ;;
473 DB 21,01AH,15H ;;
474 DB 43,-1,-1 ;;
475 DB 44,019H,2CH ;;
476 DB 53,01FH,35H ;;
477 DB 86,01CH,56H ;;
478COM_CTRL_K1_T1_END: ;;
479 ;;
480 DW 0 ;;
481 ;;
482COM_CTRL_K1_END: ;;
483 ;;
484;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
485;; CODE PAGE: Common
486;; STATE: Alpha Lower Case
487;; KEYBOARD TYPES: All
488;; TABLE TYPE: Translate
489;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
490 ;;
491 DW COM_AL_LO_END-$ ;; length of state section
492 DB ALPHA_LOWER ;; State ID
493 DW ANY_KB ;; Keyboard Type
494 DB -1,-1 ;; Buffer entry for error character
495 ;;
496 DW COM_AL_LO_T1_END-$ ;; Size of xlat table
497 DB STANDARD_TABLE ;; xlat options:
498 DB 2 ;; number of entries
499 DB 21,'z' ;; small z
500 DB 44,'y' ;; small y
501 ;;
502COM_AL_LO_T1_END: ;;
503 ;;
504 DW 0 ;; Size of xlat table - null table
505 ;;
506COM_AL_LO_END: ;;
507 ;;
508;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
509;; CODE PAGE: Common
510;; STATE: Alpha Upper Case
511;; KEYBOARD TYPES: All
512;; TABLE TYPE: Translate
513;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
514 ;;
515 DW COM_AL_UP_END-$ ;; length of state section
516 DB ALPHA_UPPER ;; State ID
517 DW ANY_KB ;; Keyboard Type
518 DB -1,-1 ;; Buffer entry for error character
519 ;;
520 DW COM_AL_UP_T1_END-$ ;; Size of xlat table
521 DB STANDARD_TABLE ;; xlat options:
522 DB 2 ;; number of entries
523 DB 21,'Z' ;; caps Z
524 DB 44,'Y' ;; caps Y
525COM_AL_UP_T1_END: ;;
526 ;;
527 DW 0 ;; Size of xlat table - null table
528 ;;
529COM_AL_UP_END: ;;
530 ;;
531 ;;
532;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
533;; CODE PAGE: Common
534;; STATE: Non-Alpha Lower Case
535;; KEYBOARD TYPES: G_KB+P12
536;; TABLE TYPE: Translate
537;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
538 ;;
539 DW COM_NA_LO_K1_END-$ ;; length of state section
540 DB NON_ALPHA_LOWER ;; State ID
541 DW G_KB+P12_KB ;; Keyboard Type
542 DB -1,-1 ;; Buffer entry for error character
543 ;;
544 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
545 DB STANDARD_TABLE ;; xlat options:
546 DB 7 ;; number of entries
547 DB 12,"'" ;;
548 DB 39,'”' ;; diaresis - o
549 DB 26,'' ;; diaresis - u
550 DB 40,'„' ;; diaresis - a
551 DB 43,'$' ;;
552 DB 86,'<' ;;
553 DB 53,'-' ;;
554COM_NA_LO_K1_T1_END: ;;
555 ;;
556 DW 0 ;; Size of xlat table - null table
557 ;;
558COM_NA_LO_K1_END: ;;
559 ;;
560;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
561;; CODE PAGE: Common
562;; STATE: Non-Alpha Lower Case
563;; KEYBOARD TYPES: AT_KB
564;; TABLE TYPE: Translate
565;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
566 ;;
567 DW COM_NA_LO_K2_END-$ ;; length of state section
568 DB NON_ALPHA_LOWER ;; State ID
569 DW AT_KB ;; Keyboard Type
570 DB -1,-1 ;; Buffer entry for error character
571 ;;
572 DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table
573 DB STANDARD_TABLE ;; xlat options:
574 DB 7 ;; number of entries
575 DB 12,"'" ;;
576 DB 39,'”' ;; diaresis - o
577 DB 26,'' ;; diaresis - u
578 DB 40,'„' ;; diaresis - a
579 DB 41,'<' ;;
580 DB 43,'$' ;;
581 DB 53,'-' ;;
582COM_NA_LO_K2_T1_END: ;;
583 ;;
584 DW 0 ;; Size of xlat table - null table
585 ;;
586COM_NA_LO_K2_END: ;;
587 ;;
588;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
589;; CODE PAGE: Common
590;; STATE: Non-Alpha Lower Case
591;; KEYBOARD TYPES: XT_KB+
592;; TABLE TYPE: Translate
593;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
594 ;;
595 DW COM_NA_LO_K3_END-$ ;; length of state section
596 DB NON_ALPHA_LOWER ;; State ID
597 DW XT_KB ;; Keyboard Type
598 DB -1,-1 ;; Buffer entry for error character
599 ;;
600 DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table
601 DB STANDARD_TABLE ;; xlat options:
602 DB 7 ;; number of entries
603 DB 12,"'" ;;
604 DB 39,'”' ;; diaresis - o
605 DB 26,'' ;; diaresis - u
606 DB 40,'„' ;; diaresis - a
607 DB 41,'$' ;;
608 DB 43,'<' ;;
609 DB 53,'-' ;;
610COM_NA_LO_K3_T1_END: ;;
611 ;;
612 DW 0 ;; Size of xlat table - null table
613 ;;
614COM_NA_LO_K3_END: ;;
615 ;;
616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
617;; CODE PAGE: Common
618;; STATE: Non-Alpha Upper Case
619;; KEYBOARD TYPES: G_KB+P12
620;; TABLE TYPE: Translate
621;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
622 ;;
623 DW COM_NA_UP_K1_END-$ ;; length of state section
624 DB NON_ALPHA_UPPER ;; State ID
625 DW G_KB+P12_KB ;; Keyboard Type
626 DB -1,-1 ;; Buffer entry for error character
627 ;;
628 DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table
629 DB STANDARD_TABLE ;; xlat options:
630 DB 20 ;; number of entries
631 DB 41,0F8H ;; degree symbol
632 DB 2,'+' ;;
633 DB 3,'"' ;;
634 DB 4,'*' ;;
635 DB 5,087H ;; ‡
636 DB 7,'&' ;;
637 DB 8,'/' ;;
638 DB 9,'(' ;;
639 DB 10,')' ;;
640 DB 11,'=' ;;
641 DB 12,'?' ;;
642 DB 43,09CH ;;œ
643 DB 27,'!' ;;
644 DB 86,'>' ;;
645 DB 51,';' ;;
646 DB 52,':' ;;
647 DB 53,'_' ;;
648 DB 39,'‚' ;; acute e
649 DB 26,'Š' ;; grave e
650 DB 40,'…' ;; grave a
651COM_NA_UP_T1_K1_END: ;;
652 ;;
653 DW 0 ;; Size of xlat table - null table
654 ;;
655COM_NA_UP_K1_END: ;;
656 ;;
657 ;;
658;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
659;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
660;; CODE PAGE: Common
661;; STATE: Non-Alpha Upper Case
662;; KEYBOARD TYPES: AT
663;; TABLE TYPE: Translate
664;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
665 ;;
666 DW COM_NA_UP_K2_END-$ ;; length of state section
667 DB NON_ALPHA_UPPER ;; State ID
668 DW AT_KB ;; Keyboard Type
669 DB -1,-1 ;; Buffer entry for error character
670 ;;
671 DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table
672 DB STANDARD_TABLE ;; xlat options:
673 DB 19 ;; number of entries
674 DB 41,'>' ;; degree symbol
675 DB 2,'+' ;;
676 DB 3,'"' ;;
677 DB 4,'*' ;;
678 DB 5,087H ;; ‡
679 DB 7,'&' ;;
680 DB 8,'/' ;;
681 DB 9,'(' ;;
682 DB 10,')' ;;
683 DB 11,'=' ;;
684 DB 12,'?' ;;
685 DB 43,09CH ;;œ
686 DB 27,'!' ;;
687 DB 51,';' ;;
688 DB 52,':' ;;
689 DB 53,'_' ;;
690 DB 39,'‚' ;; acute e
691 DB 26,'Š' ;; grave e
692 DB 40,'…' ;; grave a
693COM_NA_UP_T1_K2_END: ;;
694 ;;
695 DW 0 ;; Size of xlat table - null table
696 ;;
697COM_NA_UP_K2_END: ;;
698 ;;
699 ;;
700;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
701;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
702;; CODE PAGE: Common
703;; STATE: Non-Alpha Upper Case
704;; KEYBOARD TYPES: XT+
705;; TABLE TYPE: Translate
706;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
707 ;;
708 DW COM_NA_UP_K3_END-$ ;; length of state section
709 DB NON_ALPHA_UPPER ;; State ID
710 DW XT_KB ;; Keyboard Type
711 DB -1,-1 ;; Buffer entry for error character
712 ;;
713 DW COM_NA_UP_T1_K3_END-$ ;; Size of xlat table
714 DB STANDARD_TABLE ;; xlat options:
715 DB 19 ;; number of entries
716 DB 43,'>' ;; degree symbol
717 DB 2,'+' ;;
718 DB 3,'"' ;;
719 DB 4,'*' ;;
720 DB 5,087H ;; ‡
721 DB 7,'&' ;;
722 DB 8,'/' ;;
723 DB 9,'(' ;;
724 DB 10,')' ;;
725 DB 11,'=' ;;
726 DB 12,'?' ;;
727 DB 41,09CH ;;œ
728 DB 27,'!' ;;
729 DB 51,';' ;;
730 DB 52,':' ;;
731 DB 53,'_' ;;
732 DB 39,'‚' ;; acute e - Shift stae for SWISS GR
733 DB 26,'Š' ;; grave e
734 DB 40,'…' ;; grave a
735COM_NA_UP_T1_K3_END: ;;
736 ;;
737 DW 0 ;; Size of xlat table - null table
738 ;;
739COM_NA_UP_K3_END: ;;
740 ;;
741;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
742;; CODE PAGE: Common
743;; STATE: Third Shift
744;; KEYBOARD TYPES: G_KB+P12
745;; TABLE TYPE: Translate
746;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
747 ;;
748 DW COM_THIRD_K1_END-$ ;; length of state section
749 DB THIRD_SHIFT ;; State ID
750 DW G_KB+P12_KB ;; Keyboard Type
751 DB -1,-1 ;; Buffer entry for error character
752 ;;
753 DW COM_THIRD_T1_K1_END-$ ;; Size of xlat table
754 DB STANDARD_TABLE ;; xlat options:
755 DB 8 ;; number of entries
756 DB 3,"@" ;;
757 DB 4,'#' ;;
758 DB 7,0AAH ;; ª
759 DB 43,'}' ;;
760 DB 26,'[' ;;
761 DB 27,']' ;;
762 DB 40,'{' ;;
763 DB 86,'\' ;;
764COM_THIRD_T1_K1_END: ;;
765 ;;
766 DW 0 ;; Last xlat table
767COM_THIRD_K1_END: ;;
768 ;;
769 ;;
770;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
771;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
772;; CODE PAGE: Common
773;; STATE: Third Shift
774;; KEYBOARD TYPES: AT
775;; TABLE TYPE: Translate
776;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
777 ;;
778 DW COM_THIRD_K2_END-$ ;; length of state section
779 DB THIRD_SHIFT ;; State ID
780 DW AT_KB ;; Keyboard Type
781 DB -1,-1 ;; Buffer entry for error character
782 ;;
783 DW COM_THIRD_T1_K2_END-$ ;; Size of xlat table
784 DB STANDARD_TABLE ;; xlat options:
785 DB 9 ;; number of entries
786 DB 3,"@" ;;
787 DB 4,'#' ;;
788 DB 5,0F8H ;; degree symbol
789 DB 8,07CH ;; broken vertical - |
790 DB 40,'}' ;;
791 DB 26,'[' ;;
792 DB 27,']' ;;
793 DB 39,'{' ;;
794 DB 41,'\' ;;
795COM_THIRD_T1_K2_END: ;;
796 ;;
797 DW 0 ;; Last xlat table
798COM_THIRD_K2_END: ;;
799 ;;
800 ;;
801;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
802;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
803;; CODE PAGE: Common
804;; STATE: Third Shift
805;; KEYBOARD TYPES: XT+
806;; TABLE TYPE: Translate
807;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
808 ;;
809 DW COM_THIRD_K3_END-$ ;; length of state section
810 DB THIRD_SHIFT ;; State ID
811 DW XT_KB ;; Keyboard Type
812 DB -1,-1 ;; Buffer entry for error character
813 ;;
814 DW COM_THIRD_T1_K3_END-$ ;; Size of xlat table
815 DB STANDARD_TABLE ;; xlat options:
816 DB 9 ;; number of entries
817 DB 3,"@" ;;
818 DB 4,'#' ;;
819 DB 5,0F8H ;; degree symbol
820 DB 6,0E8H ;; è symbol
821 DB 41,'}' ;;
822 DB 26,'[' ;;
823 DB 27,']' ;;
824 DB 40,'{' ;;
825 DB 43,'\' ;;
826COM_THIRD_T1_K3_END: ;;
827 ;;
828 DW 0 ;; Last xlat table
829COM_THIRD_K3_END: ;;
830 ;;
831 ;;
832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
833;; CODE PAGE: Common
834;; STATE: Grave Lower
835;; KEYBOARD TYPES: All
836;; TABLE TYPE: Translate
837;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
838 ;;
839 DW COM_GR_LO_END-$ ;; length of state section
840 DB GRAVE_LOWER ;; State ID
841 DW ANY_KB ;; Keyboard Type
842 DB 96,0 ;; error character = standalone accent
843 ;;
844 DW COM_GR_LO_T1_END-$ ;; Size of xlat table
845 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
846 DB 5 ;; number of scans
847 DB 18,08AH ;; scan code,ASCII - e
848 DB 22,'—' ;; scan code,ASCII - u
849 DB 23,'' ;; scan code,ASCII - i
850 DB 24,'•' ;; scan code,ASCII - o
851 DB 30,'…' ;; scan code,ASCII - a
852COM_GR_LO_T1_END: ;;
853 ;;
854 DW 0 ;; Size of xlat table - null table
855 ;;
856COM_GR_LO_END: ;; length of state section
857 ;;
858;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
859;; CODE PAGE: Common
860;; STATE: Grave Space Bar
861;; KEYBOARD TYPES: All
862;; TABLE TYPE: Translate
863;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
864 ;;
865 DW COM_GR_SP_END-$ ;; length of state section
866 DB GRAVE_SPACE ;; State ID
867 DW ANY_KB ;; Keyboard Type
868 DB 96,0 ;; error character = standalone accent
869 ;;
870 DW COM_GR_SP_T1_END-$ ;; Size of xlat table
871 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
872 DB 1 ;; number of scans
873 DB 57,96 ;; STANDALONE GRAVE
874COM_GR_SP_T1_END: ;;
875 ;;
876 DW 0 ;; Size of xlat table - null table
877 ;;
878COM_GR_SP_END: ;; length of state section
879 ;;
880;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
881;; CODE PAGE: Common
882;; STATE: Circumflex Lower
883;; KEYBOARD TYPES: All
884;; TABLE TYPE: Translate
885;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
886 ;;
887 DW COM_CI_LO_END-$ ;; length of state section
888 DB CIRCUMFLEX_LOWER ;; State ID
889 DW ANY_KB ;; Keyboard Type
890 DB 94,0 ;; error character = standalone accent
891 ;;
892 DW COM_CI_LO_T1_END-$ ;; Size of xlat table
893 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
894 DB 5 ;; number of scans
895 DB 18,'ˆ' ;; scan code,ASCII - e
896 DB 22,'–' ;; scan code,ASCII - u
897 DB 23,'Œ' ;; scan code,ASCII - i
898 DB 24,'“' ;; scan code,ASCII - o
899 DB 30,'ƒ' ;; scan code,ASCII - a
900COM_CI_LO_T1_END: ;;
901 ;;
902 DW 0 ;;
903 ;;
904COM_CI_LO_END: ;;
905 ;;
906;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
907;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
908;; CODE PAGE: Common
909;; STATE: Circumflex Space Bar
910;; KEYBOARD TYPES: All
911;; TABLE TYPE: Translate
912;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
913 ;;
914 DW COM_CI_SP_END-$ ;; length of state section
915 DB CIRCUMFLEX_SPACE ;; State ID
916 DW ANY_KB ;; Keyboard Type
917 DB 94,0 ;; error character = standalone accent
918 ;;
919 DW COM_CI_SP_T1_END-$ ;; Size of xlat table
920 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
921 DB 1 ;; number of scans
922 DB 57,94 ;; STANDALONE CIRCUMFLEX
923COM_CI_SP_T1_END: ;;
924 ;;
925 DW 0 ;; Size of xlat table - null table
926 ;;
927COM_CI_SP_END: ;; length of state section
928 ;;
929;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
930;; CODE PAGE: Common
931;; STATE: Tilde Lower
932;; KEYBOARD TYPES: All
933;; TABLE TYPE: Translate
934;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
935 ;;
936 DW COM_TI_LO_END-$ ;; length of state section
937 DB TILDE_LOWER ;; State ID
938 DW ANY_KB ;; Keyboard Type
939 DB 07EH,0 ;; error character = standalone accent
940 ;;
941 DW COM_TI_LO_T1_END-$ ;; Size of xlat table
942 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
943 DB 1 ;; number of scans
944 DB 49,0A4H ;; scan code,ASCII - ¤
945 COM_TI_LO_T1_END: ;;
946 ;;
947 DW 0 ;;
948 ;;
949 COM_TI_LO_END: ;;
950 ;;
951;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
952;;; CODE PAGE: Common
953;;; STATE: Tilde Upper Case
954;;; KEYBOARD TYPES: All
955;;; TABLE TYPE: Translate
956;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
957 ;;
958 DW COM_TI_UP_END-$ ;; length of state section
959 DB TILDE_UPPER ;; State ID
960 DW ANY_KB ;; Keyboard Type
961 DB 07EH,0 ;; error character = standalone accent
962 ;;
963 DW COM_TI_UP_T1_END-$ ;; Size of xlat table
964 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
965 DB 1 ;; number of scans
966 DB 49,0A5H ;; scan code,ASCII - ¥
967 COM_TI_UP_T1_END: ;;
968 ;;
969 DW 0 ;; Size of xlat table - null table
970 ;;
971 COM_TI_UP_END: ;; length of state section
972 ;;
973 ;;
974;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
975;; CODE PAGE: Common
976;; STATE: Tilde Space Bar
977;; KEYBOARD TYPES: All
978;; TABLE TYPE: Translate
979;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
980 ;;
981 DW COM_TI_SP_END-$ ;; length of state section
982 DB TILDE_SPACE ;; State ID
983 DW ANY_KB ;; Keyboard Type
984 DB 07EH,0 ;; error character = standalone accent
985 ;;
986 DW COM_TI_SP_T1_END-$ ;; Size of xlat table
987 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
988 DB 1 ;; number of scans
989 DB 57,07EH ;; STANDALONE TILDE
990COM_TI_SP_T1_END: ;;
991 ;;
992 DW 0 ;; Size of xlat table - null table
993 ;;
994COM_TI_SP_END: ;; length of state section
995 ;;
996;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
997 DW 0 ;; Last State
998COMMON_XLAT_END: ;;
999 ;;
1000 ;;
1001 ;;
1002;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1003;;***************************************
1004;; SG Specific Translate Section for 437
1005;;***************************************
1006;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1007 ;;
1008 PUBLIC SG_437_XLAT ;;
1009SG_437_XLAT: ;;
1010 ;;
1011 DW CP437_XLAT_END-$ ;; length of section
1012 DW 437 ;;
1013 ;;
1014;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1015;; CODE PAGE: 437
1016;; STATE: Non-Alpha Lower Case
1017;; KEYBOARD TYPES: G_KB+P12_KB
1018;; TABLE TYPE: Translate
1019;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1020 ;;
1021 DW CP437_NA_LO_END-$ ;; length of state section
1022 DB NON_ALPHA_LOWER ;; State ID
1023 DW G_KB+P12_KB ;; Keyboard Type
1024 DB -1,-1 ;; Buffer entry for error character
1025 ;;
1026 DW CP437_NA_LO_T1_END-$ ;; Size of xlat table
1027 DB STANDARD_TABLE ;; xlat options:
1028 DB 1 ;; number of entries
1029 DB 41,015H ;; Section Symbol
1030CP437_NA_LO_T1_END: ;;
1031 ;;
1032 DW 0 ;; Size of xlat table - null table
1033 ;;
1034CP437_NA_LO_END: ;;
1035 ;;
1036 ;;
1037;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1038;; CODE PAGE: 437
1039;; STATE: Third Shift
1040;; KEYBOARD TYPES: G_KB+P12_KB
1041;; TABLE TYPE: Translate
1042;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1043 ;;
1044 DW CP437_THIRD_K1_END-$ ;; length of state section
1045 DB THIRD_SHIFT ;; State ID
1046 DW G_KB+P12_KB ;; Keyboard Type
1047 DB -1,-1 ;; Buffer entry for error character
1048 ;;
1049 DW CP437_THIRD_T1_K1_END-$ ;; Size of xlat table
1050 DB STANDARD_TABLE ;; xlat options:
1051 DB 3 ;; number of entries
1052 DB 2,0B3H ;; Solid vertical
1053 DB 8,07CH ;; Broken vertical
1054 DB 9,09BH ;; › cent sign
1055CP437_THIRD_T1_K1_END: ;;
1056 ;;
1057 DW 0 ;; Size of xlat table - null table
1058 ;;
1059CP437_THIRD_K1_END: ;;
1060 ;;
1061 ;;
1062;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1063;; CODE PAGE: 437
1064;; STATE: Third Shift
1065;; KEYBOARD TYPES: AT+XT+
1066;; TABLE TYPE: Translate
1067;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1068 ;;
1069 DW CP437_THIRD_K2_END-$ ;; length of state section
1070 DB THIRD_SHIFT ;; State ID
1071 DW AT_KB+XT_KB ;; Keyboard Type
1072 DB -1,-1 ;; Buffer entry for error character
1073 ;;
1074 DW CP437_THIRD_T1_K2_END-$ ;; Size of xlat table
1075 DB STANDARD_TABLE ;; xlat options:
1076 DB 2 ;; number of entries
1077 DB 8,07CH ;; Broken vertical
1078 DB 6,015H ;; Section Symbol
1079CP437_THIRD_T1_K2_END: ;;
1080 ;;
1081 DW 0 ;; Size of xlat table - null table
1082 ;;
1083CP437_THIRD_K2_END: ;;
1084 ;;
1085 ;;
1086;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1087;; CODE PAGE: 437
1088;; STATE: Acute Lower Case
1089;; KEYBOARD TYPES: All
1090;; TABLE TYPE: Translate
1091;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1092 ;;
1093 DW CP437_AC_LO_END-$ ;; length of state section
1094 DB ACUTE_LOWER ;; State ID
1095 DW ANY_KB ;; Keyboard Type
1096 DB 39,0 ;; error character = standalone accent
1097 ;;
1098 DW CP437_AC_LO_T1_END-$ ;; Size of xlat table
1099 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1100 DB 5 ;; number of scans
1101 DB 18,'‚' ;; scan code,ASCII - e
1102 DB 22,'£' ;; scan code,ASCII - u
1103 DB 23,'¡' ;; scan code,ASCII - i
1104 DB 24,'¢' ;; scan code,ASCII - o
1105 DB 30,' ' ;; scan code,ASCII - a
1106CP437_AC_LO_T1_END: ;;
1107 ;;
1108 DW 0 ;; Size of xlat table - null table
1109 ;;
1110CP437_AC_LO_END: ;;
1111 ;;
1112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1113;; CODE PAGE: 437
1114;; STATE: Acute Upper Case
1115;; KEYBOARD TYPES: All
1116;; TABLE TYPE: Translate
1117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1118 ;;
1119 DW CP437_AC_UP_END-$ ;; length of state section
1120 DB ACUTE_UPPER ;; State ID
1121 DW ANY_KB ;; Keyboard Type
1122 DB 39,0 ;; error character = standalone accent
1123 ;;
1124 DW CP437_AC_UP_T1_END-$ ;; Size of xlat table
1125 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1126 DB 1 ;; number of entries
1127 DB 18,'' ;; scan code,ASCII -
1128CP437_AC_UP_T1_END: ;;
1129 ;;
1130 DW 0 ;; Size of xlat table - null table
1131 ;;
1132CP437_AC_UP_END: ;;
1133 ;;
1134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1135;; CODE PAGE: CP437
1136;; STATE: Diaresis Lower Case
1137;; KEYBOARD TYPES: All
1138;; TABLE TYPE: Translate
1139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1140 ;;
1141 DW CP437_DI_LO_END-$ ;; length of state section
1142 DB DIARESIS_LOWER ;; State ID
1143 DW ANY_KB ;; Keyboard Type
1144 DB 34,0 ;; error character = standalone accent
1145 ;;
1146 DW CP437_DI_LO_T1_END-$ ;; Size of xlat table
1147 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1148 DB 6 ;; number of scans
1149 DB 18,'‰' ;; scan code,ASCII - e
1150 DB 44,'˜' ;; scan code,ASCII - y
1151 DB 22,'' ;; scan code,ASCII - u
1152 DB 23,'‹' ;; scan code,ASCII - i
1153 DB 24,'”' ;; scan code,ASCII - o
1154 DB 30,'„' ;; scan code,ASCII - a
1155CP437_DI_LO_T1_END: ;;
1156 ;;
1157 DW 0 ;; Size of xlat table - null table
1158 ;;
1159CP437_DI_LO_END: ;; length of state section
1160 ;;
1161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1162;; CODE PAGE: CP437
1163;; STATE: Diaresis Upper Case
1164;; KEYBOARD TYPES: All
1165;; TABLE TYPE: Translate
1166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1167 ;;
1168 DW CP437_DI_UP_END-$ ;; length of state section
1169 DB DIARESIS_UPPER ;; State ID
1170 DW ANY_KB ;; Keyboard Type
1171 DB 34,0 ;; error character = standalone accent
1172 ;;
1173 DW CP437_DI_UP_T1_END-$ ;; Size of xlat table
1174 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1175 DB 3 ;; number of scans
1176 DB 22,'š' ;; scan code,ASCII - U
1177 DB 24,'™' ;; scan code,ASCII - O
1178 DB 30,'Ž' ;; scan code,ASCII - A
1179CP437_DI_UP_T1_END: ;;
1180 ;;
1181 DW 0 ;; Size of xlat table - null table
1182 ;;
1183CP437_DI_UP_END: ;; length of state section
1184 ;;
1185;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1186;; CODE PAGE: CP437
1187;; STATE: CapsLock
1188;; KEYBOARD TYPES: All
1189;; TABLE TYPE: Translate
1190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1191 ;;
1192 DW CP437_BOTLH_K1_END-$ ;; length of state section
1193 DB BOTLH_CAPS ;; State ID
1194 DW ANY_KB ;; Keyboard Type
1195 DB -1,-1 ;; Buffer entry for error character
1196 ;;
1197 DW CP437_BOTLH_K1_T1_END-$ ;; Size of xlat table
1198 DB STANDARD_TABLE ;; xlat options:
1199 DB 3 ;; number of entries
1200 DB 39,099H ;; CAP O Umlaut
1201 DB 26,09AH ;; CAP U Umlaut
1202 DB 40,08EH ;; CAP A Umlaut
1203CP437_BOTLH_K1_T1_END: ;;
1204 ;;
1205 DW 0 ;; Last xlat table
1206CP437_BOTLH_K1_END: ;;
1207 ;;
1208 ;;
1209;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1210;; CODE PAGE: CP437
1211;; STATE: CapsLock + Shift
1212;; KEYBOARD TYPES: All
1213;; TABLE TYPE: Translate
1214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1215 ;;
1216 DW CP437_BOTLH_T1_END-$ ;; length of state section
1217 DB BOTLH_F_CAPS ;; State ID
1218 DW ANY_KB ;; Keyboard Type
1219 DB -1,-1 ;; Buffer entry for error character
1220 ;;
1221 DW CP437_BOTLH_T1_K2_END-$ ;; Size of xlat table
1222 DB STANDARD_TABLE ;; xlat options:
1223 DB 3 ;; number of entries
1224 DB 39,082H ;; e Acute
1225 DB 26,08AH ;; e Grave
1226 DB 40,085H ;; a Grave
1227CP437_BOTLH_T1_K2_END: ;;
1228 ;;
1229 DW 0 ;; Last xlat table
1230CP437_BOTLH_T1_END: ;;
1231 ;;
1232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1233 ;;
1234 DW 0 ;; LAST STATE
1235 ;;
1236CP437_XLAT_END: ;;
1237 ;;
1238;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1239;;***************************************
1240;; SG Specific Translate Section for 850
1241;;***************************************
1242;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1243 ;;
1244 PUBLIC SG_850_XLAT ;;
1245SG_850_XLAT: ;;
1246 ;;
1247 DW CP850_XLAT_END-$ ;; length of section
1248 DW 850 ;;
1249 ;;
1250 ;;
1251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1252;; CODE PAGE: CP850
1253;; STATE: CapsLock
1254;; KEYBOARD TYPES: All
1255;; TABLE TYPE: Translate
1256;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1257 ;;
1258 DW CP850_BOTLH_END-$ ;; length of state section
1259 DB BOTLH_CAPS ;; State ID
1260 DW ANY_KB ;; Keyboard Type
1261 DB -1,-1 ;; Buffer entry for error character
1262 ;;
1263 DW CP850_BOTLH_T1_END-$ ;; Size of xlat table
1264 DB STANDARD_TABLE ;; xlat options:
1265 DB 3 ;; number of entries
1266 DB 26,09AH ;; CAP U Umlaut
1267 DB 39,099H ;; CAP O Umlaut
1268 DB 40,08EH ;; CAP A Umlaut
1269CP850_BOTLH_T1_END: ;;
1270 ;;
1271 DW 0 ;; Last xlat table
1272CP850_BOTLH_END: ;;
1273 ;;
1274;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1275;; CODE PAGE: CP850
1276;; STATE: CapsLock + Shift
1277;; KEYBOARD TYPES: All
1278;; TABLE TYPE: Translate
1279;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1280 ;;
1281 DW CP850_BOTLH_K1_END-$ ;; length of state section
1282 DB BOTLH_F_CAPS ;; State ID
1283 DW ANY_KB ;; Keyboard Type
1284 DB -1,-1 ;; Buffer entry for error character
1285 ;;
1286 DW CP850_BOTLH_T1_K1_END-$ ;; Size of xlat table
1287 DB STANDARD_TABLE ;; xlat options:
1288 DB 3 ;; number of entries
1289 DB 26,0D4H ;; CAP E Grave
1290 DB 39,090H ;; CAP E Acute
1291 DB 40,0B7H ;; CAP A Grave
1292CP850_BOTLH_T1_K1_END: ;;
1293 ;;
1294 DW 0 ;; Last xlat table
1295CP850_BOTLH_K1_END: ;;
1296 ;;
1297;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1298;; CODE PAGE: 850
1299;; STATE: Non-Alpha Lower Case
1300;; KEYBOARD TYPES: G_KB+P12
1301;; TABLE TYPE: Translate
1302;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1303 ;;
1304 DW CP850_NA_LO_END-$ ;; length of state section
1305 DB NON_ALPHA_LOWER ;; State ID
1306 DW G_KB+P12_KB ;; Keyboard Type
1307 DB -1,-1 ;; Buffer entry for error character
1308 ;;
1309 DW CP850_NA_LO_T1_END-$ ;; Size of xlat table
1310 DB STANDARD_TABLE ;; xlat options:
1311 DB 1 ;; number of entries
1312 DB 41,0F5H ;; Section Symbol
1313CP850_NA_LO_T1_END: ;;
1314 ;;
1315 DW 0 ;; Size of xlat table - null table
1316 ;;
1317CP850_NA_LO_END: ;;
1318 ;;
1319 ;;
1320;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1321;; CODE PAGE: 850
1322;; STATE: Third Shift
1323;; KEYBOARD TYPES: G_KB+P12_KB
1324;; TABLE TYPE: Translate
1325;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1326 ;;
1327 DW CP850_THIRD_K1_END-$ ;; length of state section
1328 DB THIRD_SHIFT ;; State ID
1329 DW G_KB+P12_KB ;; Keyboard Type
1330 DB -1,-1 ;; Buffer entry for error character
1331 ;;
1332 DW CP850_THIRD_T1_K1_END-$ ;; Size of xlat table
1333 DB STANDARD_TABLE ;; xlat options:
1334 DB 3 ;; number of entries
1335 DB 2,07CH ;; Solid vertical
1336 DB 8,0DDH ;; Broken vertical
1337 DB 9,0BDH ;; › cent sign
1338CP850_THIRD_T1_K1_END: ;;
1339 ;;
1340 DW 0 ;; Size of xlat table - null table
1341 ;;
1342CP850_THIRD_K1_END: ;;
1343 ;;
1344 ;;
1345;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1346;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1347;; CODE PAGE: 850
1348;; STATE: Third Shift
1349;; KEYBOARD TYPES: AT+XT
1350;; TABLE TYPE: Translate
1351;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1352 ;;
1353 DW CP850_THIRD_K2_END-$ ;; length of state section
1354 DB THIRD_SHIFT ;; State ID
1355 DW AT_KB+XT_KB ;; Keyboard Type
1356 DB -1,-1 ;; Buffer entry for error character
1357 ;;
1358 DW CP850_THIRD_T1_K2_END-$ ;; Size of xlat table
1359 DB STANDARD_TABLE ;; xlat options:
1360 DB 2 ;; number of entries
1361 DB 8,0DDH ;; Broken vertical
1362 DB 6,0F5H ;; Section Symbol
1363CP850_THIRD_T1_K2_END: ;;
1364 ;;
1365 DW 0 ;; Size of xlat table - null table
1366 ;;
1367CP850_THIRD_K2_END: ;;
1368 ;;
1369 ;;
1370;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1371;; CODE PAGE: 850
1372;; STATE: Acute Lower Case
1373;; KEYBOARD TYPES: All
1374;; TABLE TYPE: Translate
1375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1376 ;;
1377 DW CP850_AC_LO_END-$ ;; length of state section
1378 DB ACUTE_LOWER ;; State ID
1379 DW ANY_KB ;; Keyboard Type
1380 DB 239,0 ;; error character = standalone accent
1381 ;;
1382 DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
1383 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1384 DB 6 ;; number of scans
1385 DB 18,'‚' ;; scan code,ASCII - e
1386 DB 44,0ECH ;; y acute
1387 DB 22,'£' ;; scan code,ASCII - u
1388 DB 23,'¡' ;; scan code,ASCII - i
1389 DB 24,'¢' ;; scan code,ASCII - o
1390 DB 30,' ' ;; scan code,ASCII - a
1391CP850_AC_LO_T1_END: ;;
1392 ;;
1393 DW 0 ;; Size of xlat table - null table
1394 ;;
1395CP850_AC_LO_END: ;;
1396 ;;
1397;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1398;; CODE PAGE: 850
1399;; STATE: Acute Upper Case
1400;; KEYBOARD TYPES: All
1401;; TABLE TYPE: Translate
1402;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1403 ;;
1404 DW CP850_AC_UP_END-$ ;; length of state section
1405 DB ACUTE_UPPER ;; State ID
1406 DW ANY_KB ;; Keyboard Type
1407 DB 239,0 ;; error character = standalone accent
1408 ;;
1409 DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
1410 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1411 DB 6 ;; number of entries
1412 DB 18,090H ;; E acute
1413 DB 44,0EDH ;; Y acute
1414 DB 22,0E9H ;; U acute
1415 DB 23,0D6H ;; I acute
1416 DB 24,0E0H ;; O acute
1417 DB 30,0B5H ;; A acute
1418CP850_AC_UP_T1_END: ;;
1419 ;;
1420 DW 0 ;; Size of xlat table - null table
1421 ;;
1422CP850_AC_UP_END: ;;
1423 ;;
1424;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1425;; CODE PAGE: 850
1426;; STATE: Acute Space Bar
1427;; KEYBOARD TYPES: All
1428;; TABLE TYPE: Translate
1429;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1430 ;;
1431 DW CP850_AC_SP_END-$ ;; length of state section
1432 DB ACUTE_SPACE ;; State ID
1433 DW ANY_KB ;; Keyboard Type
1434 DB 239,0 ;; error character = standalone accent
1435 ;;
1436 DW CP850_AC_SP_T1_END-$ ;; Size of xlat table
1437 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1438 DB 1 ;; number of scans
1439 DB 57,239 ;; scan code,ASCII - SPACE
1440CP850_AC_SP_T1_END: ;;
1441 ;;
1442 DW 0 ;; Size of xlat table - null table
1443 ;;
1444CP850_AC_SP_END: ;;
1445 ;;
1446;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1447;; CODE PAGE: 850
1448;; STATE: Diaresis Lower Case
1449;; KEYBOARD TYPES: All
1450;; TABLE TYPE: Translate
1451;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1452 ;;
1453 DW CP850_DI_LO_END-$ ;; length of state section
1454 DB DIARESIS_LOWER ;; State ID
1455 DW ANY_KB ;; Keyboard Type
1456 DB 249,0 ;; error character = standalone accent
1457 ;;
1458 DW CP850_DI_LO_T1_END-$ ;; Size of xlat table
1459 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1460 DB 6 ;; number of scans
1461 DB 18,'‰' ;; scan code,ASCII - e
1462 DB 44,'˜' ;; scan code,ASCII - y
1463 DB 22,'' ;; scan code,ASCII - u
1464 DB 23,'‹' ;; scan code,ASCII - i
1465 DB 24,'”' ;; scan code,ASCII - o
1466 DB 30,'„' ;; scan code,ASCII - a
1467CP850_DI_LO_T1_END: ;;
1468 ;;
1469 DW 0 ;; Size of xlat table - null table
1470 ;;
1471CP850_DI_LO_END: ;; length of state section
1472 ;;
1473;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1474;; CODE PAGE: 850
1475;; STATE: Diaresis Upper Case
1476;; KEYBOARD TYPES: All
1477;; TABLE TYPE: Translate
1478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1479 ;;
1480 DW CP850_DI_UP_END-$ ;; length of state section
1481 DB DIARESIS_UPPER ;; State ID
1482 DW ANY_KB ;; Keyboard Type
1483 DB 249,0 ;; error character = standalone accent
1484 ;;
1485 DW CP850_DI_UP_T1_END-$ ;; Size of xlat table
1486 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1487 DB 5 ;; number of scans
1488 DB 18,0D3H ;; E Diaeresis
1489 DB 22,'š' ;; U Diaeresis
1490 DB 23,0D8H ;; I Diaeresis
1491 DB 24,'™' ;; O Diaeresis
1492 DB 30,'Ž' ;; A Diaeresis
1493CP850_DI_UP_T1_END: ;;
1494 ;;
1495 DW 0 ;; Size of xlat table - null table
1496 ;;
1497CP850_DI_UP_END: ;; length of state section
1498 ;;
1499 ;;
1500;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1501;; CODE PAGE: 850
1502;; STATE: Diaresis Space Bar
1503;; KEYBOARD TYPES: All
1504;; TABLE TYPE: Translate
1505;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1506 ;;
1507 DW CP850_DI_SP_END-$ ;; length of state section
1508 DB DIARESIS_SPACE ;; State ID
1509 DW ANY_KB ;; Keyboard Type
1510 DB 249,0 ;; error character = standalone accent
1511 ;;
1512 DW CP850_DI_SP_T1_END-$ ;; Size of xlat table
1513 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1514 DB 1 ;; number of scans
1515 DB 57,249 ;; error character = standalone accent
1516CP850_DI_SP_T1_END: ;;
1517 ;;
1518 DW 0 ;; Size of xlat table - null table
1519CP850_DI_SP_END: ;; length of state section
1520 ;;
1521;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1522;; CODE PAGE: 850
1523;; STATE: Grave Upper
1524;; KEYBOARD TYPES: All
1525;; TABLE TYPE: Translate
1526;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1527 ;;
1528 DW CP850_GR_UP_END-$ ;; length of state section
1529 DB GRAVE_UPPER ;; State ID
1530 DW ANY_KB ;; Keyboard Type
1531 DB 96,0 ;; error character = standalone accent
1532 ;;
1533 DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
1534 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1535 DB 5 ;; number of scans
1536 DB 18,0D4H ;; E grave
1537 DB 22,0EBH ;; U grave
1538 DB 23,0DEH ;; I grave
1539 DB 24,0E3H ;; O grave
1540 DB 30,0B7H ;; A grave
1541CP850_GR_UP_T1_END: ;;
1542 ;;
1543 DW 0 ;; Size of xlat table - null table
1544 ;;
1545CP850_GR_UP_END: ;; length of state section
1546 ;;
1547;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1548;; CODE PAGE: 850
1549;; STATE: Tilde Lower
1550;; KEYBOARD TYPES: All
1551;; TABLE TYPE: Translate
1552;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1553 ;;
1554 DW CP850_TI_LO_END-$ ;; length of state section
1555 DB TILDE_LOWER ;; State ID
1556 DW ANY_KB ;; Keyboard Type
1557 DB 07EH,0 ;; error character = standalone accent
1558 ;;
1559 DW CP850_TI_LO_T1_END-$ ;; Size of xlat table
1560 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1561 DB 2 ;; number of scans
1562 DB 24,0E4H ;; scan code,ASCII - o tilde
1563 DB 30,0C6H ;; scan code,ASCII - a tilde
1564 CP850_TI_LO_T1_END: ;;
1565 ;;
1566 DW 0 ;;
1567 ;;
1568 CP850_TI_LO_END: ;;
1569 ;;
1570;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1571;;; CODE PAGE: 850
1572;;; STATE: Tilde Upper Case
1573;;; KEYBOARD TYPES: All
1574;;; TABLE TYPE: Translate
1575;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1576 ;;
1577 DW CP850_TI_UP_END-$ ;; length of state section
1578 DB TILDE_UPPER ;; State ID
1579 DW ANY_KB ;; Keyboard Type
1580 DB 07EH,0 ;; error character = standalone accent
1581 ;;
1582 DW CP850_TI_UP_T1_END-$ ;; Size of xlat table
1583 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1584 DB 2 ;; number of scans
1585 DB 24,0E5H ;; scan code,ASCII - O tilde
1586 DB 30,0C7H ;; scan code,ASCII - A tilde
1587 CP850_TI_UP_T1_END: ;;
1588 ;;
1589 DW 0 ;; Size of xlat table - null table
1590 ;;
1591 CP850_TI_UP_END: ;; length of state section
1592 ;;
1593 ;;
1594;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1595;; CODE PAGE: 850
1596;; STATE: Circumflex Upper
1597;; KEYBOARD TYPES: All
1598;; TABLE TYPE: Translate
1599;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1600 ;;
1601 DW CP850_CI_UP_END-$ ;; length of state section
1602 DB CIRCUMFLEX_UPPER ;; State ID
1603 DW ANY_KB ;; Keyboard Type
1604 DB 94,0 ;; error character = standalone accent
1605 ;;
1606 DW CP850_CI_UP_T1_END-$ ;; Size of xlat table
1607 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1608 DB 5 ;; number of scans
1609 DB 18,0D2H ;; E circumflex
1610 DB 22,0EAH ;; U circumflex
1611 DB 23,0D7H ;; I circumflex
1612 DB 24,0E2H ;; O circumflex
1613 DB 30,0B6H ;; A circumflex
1614CP850_CI_UP_T1_END: ;;
1615 ;;
1616 DW 0 ;; Size of xlat table - null table
1617 ;;
1618CP850_CI_UP_END: ;; length of state section
1619 ;;
1620;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1621 ;;
1622 ;;
1623 DW 0 ;; LAST STATE
1624 ;;
1625CP850_XLAT_END: ;;
1626;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1627 ;;
1628CODE ENDS ;;
1629 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFSP.ASM b/v4.0/src/DEV/KEYBOARD/KDFSP.ASM
new file mode 100644
index 0000000..30955e3
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFSP.ASM
@@ -0,0 +1,1373 @@
1;; LATEST CHANGE ALT & CTL (November)
2;LATEST CHANGE XT "\" third shift (December)
3;;;;********************************************
4;;;;********************************************
5;;;;CONTAINS UPDATES FOR
6;;;; 1) ALT, CTRL CASES
7;;;; 2) DECIMAL SEPERATOR ON NUMERIC PAD
8;;;; 3) STANDALONE DIARESIS VALID ONLY FOR 850
9;;;;CHANGES ARE MARKED ***BD
10;;;;********************************************
11;;;;********************************************
12
13 PAGE ,132
14 TITLE DOS - Keyboard Definition File
15
16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
17;; DOS - - NLS Support - Keyboard Defintion File
18;; (c) Copyright 1988 Microsoft
19;;
20;; This file contains the keyboard tables for Spanish.
21;;
22;; Linkage Instructions:
23;; Refer to KDF.ASM.
24;;
25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
26 ;;
27 INCLUDE KEYBSHAR.INC ;;
28 INCLUDE POSTEQU.INC ;;
29 INCLUDE KEYBMAC.INC ;;
30 ;;
31 PUBLIC SP_LOGIC ;;
32 PUBLIC SP_437_XLAT ;;
33 PUBLIC SP_850_XLAT ;;
34 ;;
35CODE SEGMENT PUBLIC 'CODE' ;;
36 ASSUME CS:CODE,DS:CODE ;;
37 ;;
38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
39;; Standard translate table options are a liner search table
40;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
42 ;;
43STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
44 ;;
45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
46;;***************************************
47;; SP State Logic
48;;***************************************
49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
50 ;;
51 ;;
52SP_LOGIC:
53
54 DW LOGIC_END-$ ;; length
55 ;;
56 DW 0 ;; special features
57 ;;
58 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
59 ;;
60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
61;; OPTIONS: If we find a scan match in
62;; an XLATT or SET_FLAG operation then
63;; exit from INT 9.
64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
65 ;;
66 OPTION EXIT_IF_FOUND ;;
67 ;;
68 ;;
69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
70;; Dead key definitions must come before
71;; dead key translations to handle
72;; dead key + dead key.
73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
74 ;;
75 IFF EITHER_ALT,NOT ;;
76 ANDF EITHER_CTL,NOT ;;
77 IFF EITHER_SHIFT ;;
78 SET_FLAG DEAD_UPPER ;;
79 ELSEF ;;
80 SET_FLAG DEAD_LOWER ;;
81 ENDIFF ;;
82 ENDIFF ;;
83 ;;
84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
85;; ACUTE ACCENT TRANSLATIONS
86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
87 ;;
88ACUTE_PROC: ;;
89 ;;
90 IFF ACUTE,NOT ;;
91 GOTO DIARESIS_PROC ;;
92 ENDIFF ;;
93 ;;
94 RESET_NLS ;;
95 IFF R_ALT_SHIFT,NOT ;;
96 XLATT ACUTE_SPACE ;;
97 ENDIFF ;;
98 IFF EITHER_CTL,NOT ;;
99 ANDF EITHER_ALT,NOT ;;
100 IFF EITHER_SHIFT ;;
101 IFF CAPS_STATE ;;
102 XLATT ACUTE_LOWER ;;
103 ELSEF ;;
104 XLATT ACUTE_UPPER ;;
105 ENDIFF ;;
106 ELSEF ;;
107 IFF CAPS_STATE ;;
108 XLATT ACUTE_UPPER ;;
109 ELSEF ;;
110 XLATT ACUTE_LOWER ;;
111 ENDIFF ;;
112 ENDIFF ;;
113 ENDIFF ;;
114 ;;
115INVALID_ACUTE: ;;
116 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
117 BEEP ;; failed or we are ina bad shift state.
118 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
119 ;; through to generate the second char.
120 ;; Note that the dead key flag will be
121 ;; reset before we get here.
122 ;;
123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
124;; DIARESIS ACCENT TRANSLATIONS
125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
126 ;;
127DIARESIS_PROC: ;;
128 ;;
129 IFF DIARESIS,NOT ;;
130 GOTO GRAVE_PROC ;;
131 ENDIFF ;;
132 ;;
133 RESET_NLS ;;
134 IFF R_ALT_SHIFT,NOT ;;
135 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
136 ENDIFF ;;
137 IFF EITHER_CTL,NOT ;;
138 ANDF EITHER_ALT,NOT ;;
139 IFF EITHER_SHIFT ;;
140 IFF CAPS_STATE ;;
141 XLATT DIARESIS_LOWER ;;
142 ELSEF ;;
143 XLATT DIARESIS_UPPER ;;
144 ENDIFF ;;
145 ELSEF ;;
146 IFF CAPS_STATE ;;
147 XLATT DIARESIS_UPPER ;;
148 ELSEF ;;
149 XLATT DIARESIS_LOWER ;;
150 ENDIFF ;;
151 ENDIFF ;;
152 ENDIFF ;;
153 ;;
154INVALID_DIARESIS: ;;
155 PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent
156 BEEP ;; Invalid dead key combo.
157 GOTO NON_DEAD ;;
158 ;;
159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
160;; GRAVE ACCENT TRANSLATIONS
161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
162 ;;
163GRAVE_PROC: ;;
164 ;;
165 IFF GRAVE,NOT ;;
166 GOTO CIRCUMFLEX_PROC ;;
167 ENDIFF ;;
168 ;;
169 RESET_NLS ;;
170 IFF R_ALT_SHIFT,NOT ;;
171 XLATT GRAVE_SPACE ;;
172 ENDIFF ;;
173 IFF EITHER_CTL,NOT ;;
174 ANDF EITHER_ALT,NOT ;;
175 IFF EITHER_SHIFT ;;
176 IFF CAPS_STATE ;;
177 XLATT GRAVE_LOWER ;;
178 ELSEF ;;
179 XLATT GRAVE_UPPER ;;
180 ENDIFF ;;
181 ELSEF ;;
182 IFF CAPS_STATE,NOT ;;
183 XLATT GRAVE_LOWER ;;
184 ELSEF ;;
185 XLATT GRAVE_UPPER ;;
186 ENDIFF ;;
187 ENDIFF ;;
188 ENDIFF ;;
189 ;;
190INVALID_GRAVE: ;;
191 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
192 BEEP ;; Invalid dead key combo.
193 GOTO NON_DEAD ;;
194 ;;
195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
196;; CIRCUMFLEX ACCENT TRANSLATIONS
197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
198 ;;
199CIRCUMFLEX_PROC: ;;
200 ;;
201 IFF CIRCUMFLEX,NOT ;;
202 GOTO NON_DEAD ;;
203 ENDIFF ;;
204 ;;
205 RESET_NLS ;;
206 IFF R_ALT_SHIFT,NOT ;;
207 XLATT CIRCUMFLEX_SPACE ;;
208 ENDIFF ;;
209 IFF EITHER_CTL,NOT ;;
210 ANDF EITHER_ALT,NOT ;;
211 IFF EITHER_SHIFT ;;
212 IFF CAPS_STATE ;;
213 XLATT CIRCUMFLEX_LOWER ;;
214 ELSEF ;;
215 XLATT CIRCUMFLEX_UPPER ;;
216 ENDIFF ;;
217 ELSEF ;;
218 IFF CAPS_STATE,NOT ;;
219 XLATT CIRCUMFLEX_LOWER ;;
220 ELSEF ;;
221 XLATT CIRCUMFLEX_UPPER ;;
222 ENDIFF ;;
223 ENDIFF ;;
224 ENDIFF ;;
225 ;;
226INVALID_CIRCUMFLEX: ;;
227 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
228 BEEP ;; Invalid dead key combo.
229 GOTO NON_DEAD ;;
230 ;;
231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
232;; Upper, lower and third shifts
233;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
234 ;;
235NON_DEAD: ;;
236 ;;
237 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
238 ANDF LC_E0 ;; the "/" on the numeric pad of the
239 EXIT_STATE_LOGIC ;; G keyboard
240 ENDIFF ;;
241;;***BD ADDED FOR ALT, CTRL CASES ;;
242 IFF EITHER_CTL,NOT ;;
243 IFF ALT_SHIFT ;; ALT - case
244 ANDF R_ALT_SHIFT,NOT ;;
245 XLATT ALT_CASE ;;
246 ENDIFF ;;
247 ELSEF ;;
248 IFF EITHER_ALT,NOT ;; CTRL - case
249 XLATT CTRL_CASE ;;
250 ENDIFF ;;
251 ENDIFF ;;
252;;***BD END OF ADDITION
253 ;;
254 IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
255 ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
256 IFF EITHER_SHIFT ;; Numeric keys are not.
257;;***BD ADDED FOR NUMERIC PAD
258 IFF NUM_STATE,NOT ;;
259 XLATT NUMERIC_PAD ;;
260 ENDIFF ;;
261;;***BD END OF ADDITION
262 XLATT NON_ALPHA_UPPER ;;
263 IFF CAPS_STATE ;;
264 XLATT ALPHA_LOWER ;;
265 ELSEF ;;
266 XLATT ALPHA_UPPER ;;
267 ENDIFF ;;
268 ELSEF ;;
269;;***BD ADDED FOR NUMERIC PAD
270 IFF NUM_STATE ;;
271 XLATT NUMERIC_PAD ;;
272 ENDIFF ;;
273;;***BD END OF ADDITION
274 XLATT NON_ALPHA_LOWER ;;
275 IFF CAPS_STATE ;;
276 XLATT ALPHA_UPPER ;;
277 ELSEF ;;
278 XLATT ALPHA_LOWER ;;
279 ENDIFF ;;
280 ENDIFF ;;
281 ELSEF ;;
282 IFF EITHER_SHIFT,NOT ;;
283 IFKBD XT_KB+AT_KB ;;
284 IFF EITHER_CTL ;;
285 ANDF ALT_SHIFT ;;
286 XLATT THIRD_SHIFT ;;
287 ENDIFF ;;
288 ELSEF ;;
289 IFF EITHER_CTL,NOT ;;
290 ANDF R_ALT_SHIFT ;;
291 XLATT THIRD_SHIFT ;;
292 ENDIFF ;;
293 ENDIFF ;;
294 ENDIFF ;;
295 ENDIFF ;;
296 ;;
297 EXIT_STATE_LOGIC ;;
298 ;;
299LOGIC_END: ;;
300 ;;
301 ;;
302;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
303;;***************************************
304;; SP Common Translate Section
305;; This section contains translations for the lower 128 characters
306;; only since these will never change from code page to code page.
307;; In addition the dead key "Set Flag" tables are here since the
308;; dead keys are on the same keytops for all code pages.
309;;***************************************
310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
311 ;;
312 PUBLIC SP_COMMON_XLAT ;;
313SP_COMMON_XLAT: ;;
314 ;;
315 DW COMMON_XLAT_END-$ ;; length of section
316 DW -1 ;; code page
317 ;;
318 ;;
319;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
320;; CODE PAGE: Common
321;; STATE: Lower Shift Dead Key
322;; KEYBOARD TYPES: G + P12
323;; TABLE TYPE: Flag Table
324;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
325 ;;
326 DW COM_DK_LO_K1_END-$ ;; length of state section
327 DB DEAD_LOWER ;; State ID
328 DW G_KB+P12_KB ;; Keyboard Type
329 DB -1,-1 ;; Buffer entry for error character
330 ;; Set Flag Table
331 DW 2 ;; number of entries
332 DB 26 ;; scan code
333 FLAG GRAVE ;; flag bit to set
334 DB 40 ;;
335 FLAG ACUTE ;;
336 ;;
337 ;;
338COM_DK_LO_K1_END: ;;
339 ;;
340 ;;
341;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
342;; CODE PAGE: Common
343;; STATE: Lower Shift Dead Key
344;; KEYBOARD TYPES: AT + XT +
345;; TABLE TYPE: Flag Table
346;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
347 ;;
348 DW COM_DK_LO_K2_END-$ ;; length of state section
349 DB DEAD_LOWER ;; State ID
350 DW AT_KB+XT_KB ;; Keyboard Type
351 DB -1,-1 ;; Buffer entry for error character
352 ;; Set Flag Table
353 DW 2 ;; number of entries
354 DB 26 ;; scan code
355 FLAG ACUTE ;; flag bit to set
356 DB 27 ;;
357 FLAG GRAVE ;;
358 ;;
359 ;;
360COM_DK_LO_K2_END: ;;
361 ;;
362;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
363;; CODE PAGE: Common
364;; STATE: Upper Shift Dead Key
365;; KEYBOARD TYPES: G + P12
366;; TABLE TYPE: Flag Table
367;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
368 ;;
369 DW COM_DK_UP_K1_END-$ ;; length of state section
370 DB DEAD_UPPER ;; State ID
371 DW G_KB+P12_KB ;; Keyboard Type
372 DB -1,-1 ;; Buffer entry for error character
373 ;; Set Flag Table
374 DW 2 ;; number of entries
375 DB 26 ;; scan code
376 FLAG CIRCUMFLEX ;; flag bit to set
377 DB 40 ;;
378 FLAG DIARESIS ;;
379 ;;
380COM_DK_UP_K1_END: ;;
381 ;;
382;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
383;; CODE PAGE: Common
384;; STATE: Upper Shift Dead Key
385;; KEYBOARD TYPES: AT + XT +
386;; TABLE TYPE: Flag Table
387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
388 ;;
389 DW COM_DK_UP_END-$ ;; length of state section
390 DB DEAD_UPPER ;; State ID
391 DW AT_KB+XT_KB ;; Keyboard Type
392 DB -1,-1 ;; Buffer entry for error character
393 ;; Set Flag Table
394 DW 2 ;; number of entries
395 DB 26 ;; scan code
396 FLAG DIARESIS ;; flag bit to set
397 DB 27 ;;
398 FLAG CIRCUMFLEX ;;
399 ;;
400COM_DK_UP_END: ;;
401 ;;
402;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
403;; CODE PAGE: Common
404;; STATE: Alpha Lower Case
405;; KEYBOARD TYPES: G + AT + P12
406;; TABLE TYPE: Translate
407;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
408 ;;
409 DW COM_AL_LO_K1_END-$ ;; length of state section
410 DB ALPHA_LOWER ;; State ID
411 DW G_KB+AT_KB+P12_KB ;; Keyboard Type
412 DB -1,-1 ;; Buffer entry for error character
413 ;;
414 DW COM_AL_LO_K1_T1_END-$ ;; Size of xlat table
415 DB STANDARD_TABLE ;; xlat options:
416 DB 2 ;; number of entries
417 DB 39,164 ;; n-tilde
418 DB 43,135 ;; c-cedilla
419COM_AL_LO_K1_T1_END: ;;
420 ;;
421 DW 0 ;; Size of xlat table - null table
422 ;;
423COM_AL_LO_K1_END: ;;
424
425;;******************************
426;;***BD - ADDED FOR NUMERIC PAD (DECIMAL SEPERATOR)
427;;******************************
428;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
429;; CODE PAGE: Common
430;; STATE: Numeric Key Pad
431;; KEYBOARD TYPES: p12 + G
432;; TABLE TYPE: Translate
433;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
434 ;;
435 DW COM_PAD_K1_END-$ ;; length of state section
436 DB NUMERIC_PAD ;; State ID
437 DW G_KB+P12_KB ;; Keyboard Type
438 DB -1,-1 ;; Buffer entry for error character
439 ;;
440 DW COM_PAD_K1_T1_END-$ ;; Size of xlat table
441 DB STANDARD_TABLE ;; xlat options:
442 DB 0 ;; number of entries
443; THIS IS A TEST ENTRY TO SHOW AN EXAMPLE
444; DB 83,44 ;; decimal seperator = ,
445COM_PAD_K1_T1_END: ;;
446 ;;
447 DW 0 ;; Size of xlat table - null table
448 ;;
449COM_PAD_K1_END: ;;
450 ;;
451;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
452;; CODE PAGE: Common
453;; STATE: Numeric Key Pad
454;; KEYBOARD TYPES: AT+ XT
455;; TABLE TYPE: Translate
456;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
457;; ;;
458;; DW COM_PAD_K2_END-$ ;; length of state section
459;; DB NUMERIC_PAD ;; State ID
460;; DW AT_KB+XT_KB ;; Keyboard Type
461;; DB -1,-1 ;; Buffer entry for error character
462;; ;;
463;; DW COM_PAD_K2_T2_END-$ ;; Size of xlat table
464;; DB STANDARD_TABLE ;; xlat options:
465;; DB 1 ;; number of entries
466;; DB 74,05eh ;; circumflex carat under the Prtscr key
467;;COM_PAD_K2_T2_END: ;;
468;; ;;
469;; DW 0 ;; Size of xlat table - null table
470;; ;;
471;;COM_PAD_K2_END: ;;
472;; ;;
473;;;;******************************
474;;***BD - ADDED FOR ALT CASE
475;;******************************
476;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
477;; CODE PAGE: Common
478;; STATE: Alt Case
479;; KEYBOARD TYPES: All
480;; TABLE TYPE: Translate
481;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
482 ;;
483 DW COM_ALT_K1_END-$ ;; length of state section
484 DB ALT_CASE ;; State ID
485 DW ANY_KB ;; Keyboard Type
486 DB -1,-1 ;; Buffer entry for error character
487 ;;
488 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
489 DB TYPE_2_TAB ;; xlat options:
490 DB 0 ;; number of entries
491;;***BD THIS ENTRY IS A TEST ENTRY
492;; DB 53,225,0 ;; TEST ENTRY
493COM_ALT_K1_T1_END: ;;
494 ;;
495 DW 0 ;; Size of xlat table - null table
496 ;;
497COM_ALT_K1_END: ;;
498 ;;
499;;******************************
500;;***BD - ADDED FOR CTRL CASE
501;;******************************
502;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
503;; CODE PAGE: Common
504;; STATE: Ctrl Case
505;; KEYBOARD TYPES: G_KB+P12_KB+AT
506;; TABLE TYPE: Translate
507;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
508 ;;
509 DW COM_CTRL_K1_END-$ ;; length of state section
510 DB CTRL_CASE ;; State ID
511 DW G_KB+P12_KB+AT_KB ;; Keyboard Type
512 DB -1,-1 ;; Buffer entry for error character
513 ;;
514 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
515 DB TYPE_2_TAB ;; xlat options:
516 DB 2 ;; number of entries
517;;***BD THIS ENTRY IS A TEST ENTRY
518;; DB 53,226,0 ;; TEST ENTRY
519 DB 43,-1,-1 ;; invalid slash
520 DB 41,28,41 ;; valid slash
521COM_CTRL_K1_T1_END: ;;
522 ;;
523 DW 0 ;; Size of xlat table - null table
524 ;;
525COM_CTRL_K1_END: ;;
526 ;;
527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
528;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
529;; CODE PAGE: Common
530;; STATE: Ctrl Case
531;; KEYBOARD TYPES: XT_KB
532;; TABLE TYPE: Translate
533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
534 ;;
535 DW COM_CTRL_K2_END-$ ;; length of state section
536 DB CTRL_CASE ;; State ID
537 DW XT_KB ;; Keyboard Type
538 DB -1,-1 ;; Buffer entry for error character
539 ;;
540 DW COM_CTRL_K2_T2_END-$ ;; Size of xlat table
541 DB TYPE_2_TAB ;; xlat options:
542 DB 1 ;; number of entries
543;;***BD THIS ENTRY IS A TEST ENTRY
544;; DB 53,226,0 ;; TEST ENTRY
545 DB 43,-1,-1 ;; invalid slash
546COM_CTRL_K2_T2_END: ;;
547 ;;
548 DW 0 ;; Size of xlat table - null table
549 ;;
550COM_CTRL_K2_END: ;;
551 ;;
552;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
553;; CODE PAGE: Common
554;; STATE: Alpha Lower Case
555;; KEYBOARD TYPES: XT +
556;; TABLE TYPE: Translate
557;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
558 ;;
559 DW COM_AL_LO_K2_END-$ ;; length of state section
560 DB ALPHA_LOWER ;; State ID
561 DW XT_KB ;; Keyboard Type
562 DB -1,-1 ;; Buffer entry for error character
563 ;;
564 DW COM_AL_LO_K2_T1_END-$ ;; Size of xlat table
565 DB STANDARD_TABLE ;; xlat options:
566 DB 2 ;; number of entries
567 DB 39,164 ;; n-tilde
568 DB 41,135 ;; c-cedilla
569COM_AL_LO_K2_T1_END: ;;
570 ;;
571 DW 0 ;; Size of xlat table - null table
572 ;;
573COM_AL_LO_K2_END: ;;
574 ;;
575;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
576;; CODE PAGE: Common
577;; STATE: Alpha Upper Case
578;; KEYBOARD TYPES: G + AT + P12
579;; TABLE TYPE: Translate
580;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
581 ;;
582 DW COM_AL_UP_K1_END-$ ;; length of state section
583 DB ALPHA_UPPER ;; State ID
584 DW G_KB+AT_KB+P12_KB ;; Keyboard Type
585 DB -1,-1 ;; Buffer entry for error character
586 ;;
587 DW COM_AL_UP_K1_T1_END-$ ;; Size of xlat table
588 DB STANDARD_TABLE ;; xlat options:
589 DB 2 ;; number of entries
590 DB 39,165 ;; N-tilde
591 DB 43,128 ;; C-cedilla
592COM_AL_UP_K1_T1_END: ;;
593 ;;
594 DW 0 ;; Size of xlat table - null table
595 ;;
596COM_AL_UP_K1_END: ;;
597 ;;
598;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
599;; CODE PAGE: Common
600;; STATE: Alpha Upper Case
601;; KEYBOARD TYPES: XT +
602;; TABLE TYPE: Translate
603;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
604 ;;
605 DW COM_AL_UP_K2_END-$ ;; length of state section
606 DB ALPHA_UPPER ;; State ID
607 DW XT_KB ;; Keyboard Type
608 DB -1,-1 ;; Buffer entry for error character
609 ;;
610 DW COM_AL_UP_K2_T1_END-$ ;; Size of xlat table
611 DB STANDARD_TABLE ;; xlat options:
612 DB 2 ;; number of entries
613 DB 39,165 ;; N-tilde
614 DB 41,128 ;; C-cedilla
615COM_AL_UP_K2_T1_END: ;;
616 ;;
617 DW 0 ;; Size of xlat table - null table
618 ;;
619COM_AL_UP_K2_END: ;;
620 ;;
621 ;;
622;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
623;; CODE PAGE: Common
624;; STATE: Non-Alpha Lower Case
625;; KEYBOARD TYPES: G + P12
626;; TABLE TYPE: Translate
627;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
628 ;;
629 DW COM_NA_LO_K1_END-$ ;; length of state section
630 DB NON_ALPHA_LOWER ;; State ID
631 DW G_KB+P12_KB ;; Keyboard Type
632 DB -1,-1 ;; Buffer entry for error character
633 ;;
634 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
635 DB STANDARD_TABLE ;; xlat options:
636 DB 6 ;; number of entries
637 DB 12,"'" ;; '
638 DB 27,'+' ;; +
639 DB 86,'<' ;; <
640 DB 53,'-' ;; -
641 DB 41,167 ;; o-underline
642 DB 13,173 ;; upside-dowm !
643COM_NA_LO_K1_T1_END: ;;
644 ;;
645 DW 0 ;; Size of xlat table - null table
646 ;;
647COM_NA_LO_K1_END: ;;
648 ;;
649 ;;
650;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
651;; CODE PAGE: Common
652;; STATE: Non-Alpha Lower Case
653;; KEYBOARD TYPES: AT
654;; TABLE TYPE: Translate
655;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
656 ;;
657 DW COM_NA_LO_K2_END-$ ;; length of state section
658 DB NON_ALPHA_LOWER ;; State ID
659 DW AT_KB ;; Keyboard Type
660 DB -1,-1 ;; Buffer entry for error character
661 ;;
662 DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table
663 DB STANDARD_TABLE ;; xlat options:
664 DB 4 ;; number of entries
665 DB 40,';' ;; ;
666 DB 41,'<' ;; <
667 DB 53,"'" ;; quote
668 DB 55,05eh ;; circumflex carat under the Prtscr key
669COM_NA_LO_K2_T1_END: ;;
670 ;;
671 DW 0 ;; Size of xlat table - null table
672 ;;
673COM_NA_LO_K2_END: ;;
674 ;;
675 ;;
676;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
677;; CODE PAGE: Common
678;; STATE: Non-Alpha Lower Case
679;; KEYBOARD TYPES: XT +
680;; TABLE TYPE: Translate
681;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
682 ;;
683 DW COM_NA_LO_K3_END-$ ;; length of state section
684 DB NON_ALPHA_LOWER ;; State ID
685 DW XT_KB ;; Keyboard Type
686 DB -1,-1 ;; Buffer entry for error character
687 ;;
688 DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table
689 DB STANDARD_TABLE ;; xlat options:
690 DB 4 ;; number of entries
691 DB 40,';' ;; ;
692 DB 43,'<' ;; <
693 DB 53,"'" ;; quote
694 DB 55,05eh ;; circumflex carat under the Prtscr key
695COM_NA_LO_K3_T1_END: ;;
696 ;;
697 DW 0 ;; Size of xlat table - null table
698 ;;
699COM_NA_LO_K3_END: ;;
700 ;;
701;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
702;; CODE PAGE: Common
703;; STATE: Non-Alpha Upper Case
704;; KEYBOARD TYPES: G + P12
705;; TABLE TYPE: Translate
706;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
707 ;;
708 DW COM_NA_UP_K1_END-$ ;; length of state section
709 DB NON_ALPHA_UPPER ;; State ID
710 DW G_KB+P12_KB ;; Keyboard Type
711 DB -1,-1 ;; Buffer entry for error character
712 ;;
713 DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table
714 DB STANDARD_TABLE ;; xlat options:
715 DB 16 ;; number of entries
716 DB 3,'"' ;;
717 DB 4,250 ;; diacritic
718 DB 7,'&' ;;
719 DB 8,'/' ;;
720 DB 9,'(' ;;
721 DB 10,')' ;;
722 DB 11,'=' ;;
723 DB 12,'?' ;;
724 DB 13,168 ;; upside-dowm ?
725 DB 27,'*' ;;
726 DB 41,166 ;; a-underline
727 DB 86,'>' ;;
728 DB 51,';' ;;
729 DB 52,':' ;;
730 DB 53,'_' ;;
731COM_NA_UP_K1_T1_END: ;;
732 ;;
733 DW 0 ;; Size of xlat table - null table
734 ;;
735COM_NA_UP_K1_END: ;;
736 ;;
737 ;;
738;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
739;; CODE PAGE: Common
740;; STATE: Non-Alpha Upper Case
741;; KEYBOARD TYPES: AT
742;; TABLE TYPE: Translate
743;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
744 ;;
745 DW COM_NA_UP_K2_END-$ ;; length of state section
746 DB NON_ALPHA_UPPER ;; State ID
747 DW AT_KB ;; Keyboard Type
748 DB -1,-1 ;; Buffer entry for error character
749 ;;
750 DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table
751 DB STANDARD_TABLE ;; xlat options:
752 DB 8 ;; number of entries
753 DB 41,'>' ;;
754 DB 2,0ADH ;; UPSIDE DOWN ­
755 DB 3,168 ;; UPSIDE DOWN ?
756 DB 7,'/' ;;
757 DB 40,':' ;;
758 DB 51,'?' ;;
759 DB 52,'!' ;;
760 DB 53,'"' ;;
761COM_NA_UP_K2_T1_END: ;;
762 ;;
763 DW 0 ;; Size of xlat table - null table
764 ;;
765COM_NA_UP_K2_END: ;;
766 ;;
767 ;;
768;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
769;; CODE PAGE: Common
770;; STATE: Non-Alpha Upper Case
771;; KEYBOARD TYPES: XT +
772;; TABLE TYPE: Translate
773;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
774 ;;
775 DW COM_NA_UP_K3_END-$ ;; length of state section
776 DB NON_ALPHA_UPPER ;; State ID
777 DW XT_KB ;; Keyboard Type
778 DB -1,-1 ;; Buffer entry for error character
779 ;;
780 DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table
781 DB STANDARD_TABLE ;; xlat options:
782 DB 8 ;; number of entries
783 DB 43,'>' ;;
784 DB 2,0ADH ;; UPSIDE DOWN ­
785 DB 3,168 ;; UPSIDE DOWN ?
786 DB 7,'/' ;;
787 DB 40,':' ;;
788 DB 51,'?' ;;
789 DB 52,'!' ;;
790 DB 53,'"' ;;
791COM_NA_UP_K3_T1_END: ;;
792 ;;
793 DW 0 ;; Size of xlat table - null table
794 ;;
795COM_NA_UP_K3_END: ;;
796 ;;
797 ;;
798;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
799;; CODE PAGE: Common
800;; STATE: Third Shift
801;; KEYBOARD TYPES: G + P12
802;; TABLE TYPE: Translate
803;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
804 ;;
805 DW COM_THIRD_K1_END-$ ;; length of state section
806 DB THIRD_SHIFT ;; State ID
807 DW G_KB+P12_KB ;; Keyboard Type
808 DB -1,-1 ;; Buffer entry for error character
809 ;;
810 DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table
811 DB STANDARD_TABLE ;; xlat options:
812 DB 9 ;; number of entries
813 DB 41,'\' ;;
814 DB 2,'|' ;;
815 DB 3,'@' ;;
816 DB 4,'#' ;;
817 DB 7,170 ;;
818 DB 26,'[' ;;
819 DB 27,']' ;;
820 DB 40,'{' ;;
821 DB 43,'}' ;;
822COM_THIRD_K1_T1_END: ;;
823 ;;
824 DW 0 ;; Last xlat table
825COM_THIRD_K1_END: ;;
826 ;;
827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
828;; CODE PAGE: Common
829;; STATE: Third Shift
830;; KEYBOARD TYPES: AT
831;; TABLE TYPE: Translate
832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
833 ;;
834 DW COM_THIRD_K2_END-$ ;; length of state section
835 DB THIRD_SHIFT ;; State ID
836 DW AT_KB ;; Keyboard Type
837 DB -1,-1 ;; Buffer entry for error character
838 ;;
839 DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table
840 DB STANDARD_TABLE ;; xlat options:
841 DB 4 ;; number of entries
842 DB 41,'\' ;;
843 DB 3,'@' ;;
844 DB 26,'[' ;;
845 DB 27,']' ;;
846COM_THIRD_K2_T1_END: ;;
847 ;;
848 DW 0 ;; Last xlat table
849COM_THIRD_K2_END: ;;
850 ;;
851;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
852;; CODE PAGE: Common
853;; STATE: Third Shift
854;; KEYBOARD TYPES: XT
855;; TABLE TYPE: Translate
856;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
857 ;;
858 DW COM_THIRD_K3_END-$ ;; length of state section
859 DB THIRD_SHIFT ;; State ID
860 DW XT_KB ;; Keyboard Type
861 DB -1,-1 ;; Buffer entry for error character
862 ;;
863 DW COM_THIRD_K3_T1_END-$ ;; Size of xlat table
864 DB STANDARD_TABLE ;; xlat options:
865 DB 4 ;; number of entries
866 DB 3,'@' ;;
867 DB 26,'[' ;;
868 DB 27,']' ;;
869 DB 43,'\' ;;
870COM_THIRD_K3_T1_END: ;;
871 ;;
872 DW 0 ;; Last xlat table
873COM_THIRD_K3_END: ;;
874 ;;
875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
876;; CODE PAGE: Common
877;; STATE: Acute Lower Case
878;; KEYBOARD TYPES: All
879;; TABLE TYPE: Translate
880;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
881; ;;
882; DW COM_AC_LO_END-$ ;; length of state section
883; DB ACUTE_LOWER ;; State ID
884; DW ANY_KB ;; Keyboard Type
885; DB 39,0 ;; error character = standalone accent
886; ;;
887; DW COM_AC_LO_T1_END-$ ;; Size of xlat table
888; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
889; DB 5 ;; number of scans
890; DB 18,'‚' ;; scan code,ASCII - e
891; DB 30,' ' ;; scan code,ASCII - a
892; DB 24,'¢' ;; scan code,ASCII - o
893; DB 22,'£' ;; scan code,ASCII - u
894; DB 23,'¡' ;; scan code,ASCII - i
895;COM_AC_LO_T1_END: ;;
896; ;;
897; DW 0 ;; Size of xlat table - null table
898; ;;
899;COM_AC_LO_END: ;;
900; ;;
901;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
902;;; CODE PAGE: Common
903;;; STATE: Acute Upper Case
904;;; KEYBOARD TYPES: All
905;;; TABLE TYPE: Translate
906;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
907; ;;
908; DW COM_AC_UP_END-$ ;; length of state section
909; DB ACUTE_UPPER ;; State ID
910; DW ANY_KB ;; Keyboard Type
911; DB 39,0 ;; error character = standalone accent
912; ;;
913; DW COM_AC_UP_T1_END-$ ;; Size of xlat table
914; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
915; DB 2 ;; number of scans
916; DB 18,'' ;; scan code,ASCII - e
917;COM_AC_UP_T1_END: ;;
918; ;;
919; DW 0 ;; Size of xlat table - null table
920; ;;
921;COM_AC_UP_END: ;;
922; ;;
923;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
924;;; CODE PAGE: Common
925;;; STATE: Acute Space Bar
926;;; KEYBOARD TYPES: All
927;;; TABLE TYPE: Translate
928;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
929; ;;
930; DW COM_AC_SP_END-$ ;; length of state section
931; DB ACUTE_SPACE ;; State ID
932; DW ANY_KB ;; Keyboard Type
933; DB 39,0 ;; error character = standalone accent
934; ;;
935; DW COM_AC_SP_T1_END-$ ;; Size of xlat table
936; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
937; DB 1 ;; number of scans
938; DB 57,39 ;; scan code,ASCII - SPACE
939;COM_AC_SP_T1_END: ;;
940; ;;
941; DW 0 ;; Size of xlat table - null table
942; ;;
943;COM_AC_SP_END: ;;
944; ;;
945;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
946;; CODE PAGE: Common
947;; STATE: Diaresis Lower Case
948;; KEYBOARD TYPES: All
949;; TABLE TYPE: Translate
950;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
951 ;;
952 DW COM_DI_LO_END-$ ;; length of state section
953 DB DIARESIS_LOWER ;; State ID
954 DW ANY_KB ;; Keyboard Type
955 DB 249,0 ;; error character = standalone accent
956 ;;
957 DW COM_DI_LO_T1_END-$ ;; Size of xlat table
958 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
959 DB 6 ;; number of scans
960 DB 18,'‰' ;; scan code,ASCII - e
961 DB 30,'„' ;; scan code,ASCII - a
962 DB 24,'”' ;; scan code,ASCII - o
963 DB 22,'' ;; scan code,ASCII - u
964 DB 23,'‹' ;; scan code,ASCII - i
965 DB 21,'˜' ;; scan code,ASCII - y
966COM_DI_LO_T1_END: ;;
967 ;;
968 DW 0 ;; Size of xlat table - null table
969 ;;
970COM_DI_LO_END: ;; length of state section
971 ;;
972;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
973;; CODE PAGE: Common
974;; STATE: Diaresis Upper Case
975;; KEYBOARD TYPES: All
976;; TABLE TYPE: Translate
977;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
978 ;;
979 DW COM_DI_UP_END-$ ;; length of state section
980 DB DIARESIS_UPPER ;; State ID
981 DW ANY_KB ;; Keyboard Type
982 DB 249,0 ;; error character = standalone accent
983 ;;
984 DW COM_DI_UP_T1_END-$ ;; Size of xlat table
985 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
986 DB 3 ;; number of scans
987 DB 30,'Ž' ;; scan code,ASCII - a
988 DB 24,'™' ;; scan code,ASCII - o
989 DB 22,'š' ;; scan code,ASCII - u
990COM_DI_UP_T1_END: ;;
991 ;;
992 DW 0 ;; Size of xlat table - null table
993 ;;
994COM_DI_UP_END: ;; length of state section
995 ;;
996 ;;
997;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
998;; CODE PAGE: Common
999;; STATE: Grave Lower
1000;; KEYBOARD TYPES: All
1001;; TABLE TYPE: Translate
1002;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1003 ;;
1004 DW COM_GR_LO_END-$ ;; length of state section
1005 DB GRAVE_LOWER ;; State ID
1006 DW ANY_KB ;; Keyboard Type
1007 DB 96,0 ;; error character = standalone accent
1008 ;;
1009 DW COM_GR_LO_T1_END-$ ;; Size of xlat table
1010 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1011 DB 5 ;; number of scans
1012 DB 18,'Š' ;; scan code,ASCII - e
1013 DB 30,'…' ;; scan code,ASCII - a
1014 DB 24,'•' ;; scan code,ASCII - o
1015 DB 22,'—' ;; scan code,ASCII - u
1016 DB 23,'' ;; scan code,ASCII - i
1017COM_GR_LO_T1_END: ;;
1018 ;;
1019 DW 0 ;; Size of xlat table - null table
1020 ;;
1021COM_GR_LO_END: ;; length of state section
1022 ;;
1023;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1024;; CODE PAGE: Common
1025;; STATE: Grave Space Bar
1026;; KEYBOARD TYPES: All
1027;; TABLE TYPE: Translate
1028;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1029 ;;
1030 DW COM_GR_SP_END-$ ;; length of state section
1031 DB GRAVE_SPACE ;; State ID
1032 DW ANY_KB ;; Keyboard Type
1033 DB 96,0 ;; error character = standalone accent
1034 ;;
1035 DW COM_GR_SP_T1_END-$ ;; Size of xlat table
1036 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1037 DB 1 ;; number of scans
1038 DB 57,96 ;; STANDALONE GRAVE
1039COM_GR_SP_T1_END: ;;
1040 ;;
1041 DW 0 ;; Size of xlat table - null table
1042 ;;
1043COM_GR_SP_END: ;; length of state section
1044 ;;
1045;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1046;; CODE PAGE: Common
1047;; STATE: Circumflex Lower
1048;; KEYBOARD TYPES: All
1049;; TABLE TYPE: Translate
1050;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1051 ;;
1052 DW COM_CI_LO_END-$ ;; length of state section
1053 DB CIRCUMFLEX_LOWER ;; State ID
1054 DW ANY_KB ;; Keyboard Type
1055 DB 94,0 ;; error character = standalone accent
1056 ;;
1057 DW COM_CI_LO_T1_END-$ ;; Size of xlat table
1058 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1059 DB 5 ;; number of scans
1060 DB 18,'ˆ' ;; scan code,ASCII - e
1061 DB 30,'ƒ' ;; scan code,ASCII - a
1062 DB 24,'“' ;; scan code,ASCII - o
1063 DB 22,'–' ;; scan code,ASCII - u
1064 DB 23,'Œ' ;; scan code,ASCII - i
1065COM_CI_LO_T1_END: ;;
1066 ;;
1067 DW 0 ;;
1068 ;;
1069COM_CI_LO_END: ;;
1070 ;;
1071;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1072;; CODE PAGE: Common
1073;; STATE: Circumflex Space Bar
1074;; KEYBOARD TYPES: All
1075;; TABLE TYPE: Translate
1076;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1077 ;;
1078 DW COM_CI_SP_END-$ ;; length of state section
1079 DB CIRCUMFLEX_SPACE ;; State ID
1080 DW ANY_KB ;; Keyboard Type
1081 DB 94,0 ;; error character = standalone accent
1082 ;;
1083 DW COM_CI_SP_T1_END-$ ;; Size of xlat table
1084 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1085 DB 1 ;; number of scans
1086 DB 57,94 ;; STANDALONE CIRCUMFLEX
1087COM_CI_SP_T1_END: ;;
1088 ;;
1089 DW 0 ;; Size of xlat table - null table
1090 ;;
1091COM_CI_SP_END: ;; length of state section
1092 ;;
1093;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1094 DW 0 ;; Last State
1095COMMON_XLAT_END: ;;
1096 ;;
1097 ;;
1098 ;;
1099;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1100;;***************************************
1101;; SP Specific Translate Section for 437
1102;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE.
1103;;***************************************
1104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1105 ;;
1106 PUBLIC SP_437_XLAT ;;
1107SP_437_XLAT: ;;
1108 ;;
1109 DW CP437_XLAT_END-$ ;; length of section
1110 DW 437 ;;
1111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1112; CODE PAGE: Specific 437
1113; STATE: Acute Lower Case
1114; KEYBOARD TYPES: All
1115; TABLE TYPE: Translate
1116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1117 DW CP437_AC_LO_END-$ ; length of state section
1118 DB ACUTE_LOWER ; State ID
1119 DW ANY_KB ; Keyboard Type
1120 DB 39,0 ; error character = standalone accent
1121 ;
1122 DW CP437_AC_LO_T1_END-$ ; Size of xlat table
1123 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1124 DB 5 ; number of scans
1125 DB 18,'‚' ; scan code,ASCII - e
1126 DB 30,' ' ; scan code,ASCII - a
1127 DB 24,'¢' ; scan code,ASCII - o
1128 DB 22,'£' ; scan code,ASCII - u
1129 DB 23,'¡' ; scan code,ASCII - i
1130CP437_AC_LO_T1_END: ;
1131 ;
1132 DW 0 ; Size of xlat table - null table
1133 ;
1134CP437_AC_LO_END: ;
1135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1136; CODE PAGE: 437
1137; STATE: Acute Upper Case
1138; KEYBOARD TYPES: All
1139; TABLE TYPE: Translate
1140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1141 DW CP437_AC_UP_END-$ ; length of state section
1142 DB ACUTE_UPPER ; State ID
1143 DW ANY_KB ; Keyboard Type
1144 DB 39,0 ; error character = standalone accent
1145 ;
1146 DW CP437_AC_UP_T1_END-$ ; Size of xlat table
1147 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1148 DB 1 ; number of scans
1149 DB 18,'' ; scan code,ASCII - e
1150CP437_AC_UP_T1_END: ;
1151 ;
1152 DW 0 ; Size of xlat table - null table
1153 ;
1154CP437_AC_UP_END: ;
1155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1156; CODE PAGE: 437
1157; STATE: Acute Space Bar
1158; KEYBOARD TYPES: All
1159; TABLE TYPE: Translate
1160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1161 DW CP437_AC_SP_END-$ ; length of state section
1162 DB ACUTE_SPACE ; State ID
1163 DW ANY_KB ; Keyboard Type
1164 DB 39,0 ; error character = standalone accent
1165 ;
1166 DW CP437_AC_SP_T1_END-$ ; Size of xlat table
1167 DB STANDARD_TABLE+ZERO_SCAN ; xlat options:
1168 DB 1 ; number of scans
1169 DB 57,39 ; scan code,ASCII - SPACE
1170CP437_AC_SP_T1_END: ;
1171 ;
1172 DW 0 ; Size of xlat table - null table
1173 ;
1174CP437_AC_SP_END: ;
1175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1176 DW 0 ;; LAST STATE
1177 ;;
1178CP437_XLAT_END: ;;
1179 ;;
1180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1181;;***************************************
1182;; SP Specific Translate Section for 850
1183;;***************************************
1184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1185 ;;
1186 PUBLIC SP_850_XLAT ;;
1187SP_850_XLAT: ;;
1188 ;;
1189 DW CP850_XLAT_END-$ ;; length of section
1190 DW 850 ;;
1191 ;;
1192 ;;
1193;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1194;; CODE PAGE: 850
1195;; STATE: Acute Lower Case
1196;; KEYBOARD TYPES: All
1197;; TABLE TYPE: Translate
1198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1199 ;;
1200 DW CP850_AC_LO_END-$ ;; length of state section
1201 DB ACUTE_LOWER ;; State ID
1202 DW ANY_KB ;; Keyboard Type
1203 DB 0EFH,0 ;; error character = standalone accent
1204 ;;
1205 DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
1206 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1207 DB 5 ; number of scans
1208 DB 18,'‚' ; scan code,ASCII - e
1209 DB 30,' ' ; scan code,ASCII - a
1210 DB 24,'¢' ; scan code,ASCII - o
1211 DB 22,'£' ; scan code,ASCII - u
1212 DB 23,'¡' ; scan code,ASCII - i
1213; DB 21,0ECH Delete until 4.00 ;; y acute
1214CP850_AC_LO_T1_END: ;;
1215 ;;
1216 DW 0 ;; Size of xlat table - null table
1217 ;;
1218CP850_AC_LO_END: ;;
1219 ;;
1220;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1221;; CODE PAGE: 850
1222;; STATE: Acute Upper Case
1223;; KEYBOARD TYPES: All
1224;; TABLE TYPE: Translate
1225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1226 ;;
1227 DW CP850_AC_UP_END-$ ;; length of state section
1228 DB ACUTE_UPPER ;; State ID
1229 DW ANY_KB ;; Keyboard Type
1230 DB 0EFH,0 ;; error character = standalone accent
1231 ;;
1232 DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
1233 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1234 DB 5 ;; number of scans
1235 DB 18,'' ; scan code,ASCII - e
1236 DB 30,0B5H ;; A acute
1237 DB 23,0D6H ;; I acute
1238 DB 24,0E0H ;; O acute
1239 DB 22,0E9H ;; U acute
1240; DB 21,0EDH Delete until 4.00 ;; Y acute
1241CP850_AC_UP_T1_END: ;;
1242 ;;
1243 DW 0 ;; Size of xlat table - null table
1244 ;;
1245CP850_AC_UP_END: ;;
1246 ;;
1247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1248;; CODE PAGE: Common
1249;; STATE: Acute Space Bar
1250;; KEYBOARD TYPES: All
1251;; TABLE TYPE: Translate
1252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1253 ;;
1254 DW CP850_AC_SP_END-$ ;; length of state section
1255 DB ACUTE_SPACE ;; State ID
1256 DW ANY_KB ;; Keyboard Type
1257 DB 0EFH,0 ;; error character = standalone accent
1258 ;;
1259 DW CP850_AC_SP_T1_END-$ ;; Size of xlat table
1260 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1261 DB 1 ;; number of scans
1262 DB 57,0EFH ;; scan code,ASCII - SPACE
1263CP850_AC_SP_T1_END: ;;
1264 ;;
1265 DW 0 ;; Size of xlat table - null table
1266 ;;
1267CP850_AC_SP_END: ;;
1268 ;;
1269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1270;; CODE PAGE: 850
1271;; STATE: Diaresis Upper
1272;; KEYBOARD TYPES: All
1273;; TABLE TYPE: Translate
1274;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1275 ;;
1276 DW CP850_DI_UP_END-$ ;; length of state section
1277 DB DIARESIS_UPPER ;; State ID
1278 DW ANY_KB ;; Keyboard Type
1279 DB 249,0 ;; error character = standalone accent
1280 ;;
1281 DW CP850_DI_UP_T1_END-$ ;; Size of xlat table
1282 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1283 DB 2 ;; number of scans
1284 DB 18,0D3H ;; E diaeresis
1285 DB 23,0D8H ;; I diaeresis
1286CP850_DI_UP_T1_END: ;;
1287 ;;
1288 DW 0 ;; Size of xlat table - null table
1289 ;;
1290CP850_DI_UP_END: ;; length of state section
1291 ;;
1292;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1293;; CODE PAGE: 850
1294;; STATE: Diaresis Space Bar
1295;; KEYBOARD TYPES: All
1296;; TABLE TYPE: Translate
1297;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1298 ;;
1299 DW CP850_DI_SP_END-$ ;; length of state section
1300 DB DIARESIS_SPACE ;; State ID
1301 DW ANY_KB ;; Keyboard Type
1302 DB 249,0 ;; error character = standalone accent
1303 ;;
1304 DW CP850_DI_SP_T1_END-$ ;; Size of xlat table
1305 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1306 DB 1 ;; number of scans
1307 DB 57,249 ;; error character = standalone accent
1308CP850_DI_SP_T1_END: ;;
1309 ;;
1310 DW 0 ;; Size of xlat table - null table
1311CP850_DI_SP_END: ;; length of state section
1312 ;;
1313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1314;; CODE PAGE: 850
1315;; STATE: Grave Upper
1316;; KEYBOARD TYPES: All
1317;; TABLE TYPE: Translate
1318;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1319 ;;
1320 DW CP850_GR_UP_END-$ ;; length of state section
1321 DB GRAVE_UPPER ;; State ID
1322 DW ANY_KB ;; Keyboard Type
1323 DB 96,0 ;; error character = standalone accent
1324 ;;
1325 DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
1326 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1327 DB 5 ;; number of scans
1328 DB 30,0B7H ;; A grave
1329 DB 18,0D4H ;; E grave
1330 DB 23,0DEH ;; I grave
1331 DB 24,0E3H ;; O grave
1332 DB 22,0EBH ;; U grave
1333CP850_GR_UP_T1_END: ;;
1334 ;;
1335 DW 0 ;; Size of xlat table - null table
1336 ;;
1337CP850_GR_UP_END: ;; length of state section
1338 ;;
1339;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1340;; CODE PAGE: 850
1341;; STATE: Circumflex Upper
1342;; KEYBOARD TYPES: All
1343;; TABLE TYPE: Translate
1344;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1345 ;;
1346 DW CP850_CI_UP_END-$ ;; length of state section
1347 DB CIRCUMFLEX_UPPER ;; State ID
1348 DW ANY_KB ;; Keyboard Type
1349 DB 94,0 ;; error character = standalone accent
1350 ;;
1351 DW CP850_CI_UP_T1_END-$ ;; Size of xlat table
1352 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1353 DB 5 ;; number of scans
1354 DB 30,0B6H ;; A circumflex
1355 DB 18,0D2H ;; E circumflex
1356 DB 23,0D7H ;; I circumflex
1357 DB 24,0E2H ;; O circumflex
1358 DB 22,0EAH ;; U circumflex
1359CP850_CI_UP_T1_END: ;;
1360 ;;
1361 DW 0 ;; Size of xlat table - null table
1362 ;;
1363CP850_CI_UP_END: ;; length of state section
1364 ;;
1365;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1366 ;;
1367 DW 0 ;; LAST STATE
1368 ;;
1369CP850_XLAT_END: ;;
1370;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1371 ;;
1372CODE ENDS ;;
1373 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFSU.ASM b/v4.0/src/DEV/KEYBOARD/KDFSU.ASM
new file mode 100644
index 0000000..9710310
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFSU.ASM
@@ -0,0 +1,1680 @@
1 PAGE ,132
2 TITLE DOS - Keyboard Definition File
3
4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5;; DOS - - NLS Support - Keyboard Definition File
6;; (c) Copyright 1988 Microsoft
7;;
8;; This file contains the keyboard tables for Finnish
9;;
10;; Linkage Instructions:
11;; Refer to KDF.ASM.
12;;
13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
14 ;;
15 INCLUDE KEYBSHAR.INC ;;
16 INCLUDE POSTEQU.INC ;;
17 INCLUDE KEYBMAC.INC ;;
18 ;;
19 PUBLIC SU_LOGIC ;;
20 PUBLIC SU_437_XLAT ;;
21 PUBLIC SU_850_XLAT ;;
22 ;;
23CODE SEGMENT PUBLIC 'CODE' ;;
24 ASSUME CS:CODE,DS:CODE ;;
25 ;;
26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
27;; Standard translate table options are a linear search table
28;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
30 ;;
31STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
32 ;;
33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
34;;***************************************
35;; SU State Logic
36;;***************************************
37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
38 ;;
39 ;;
40SU_LOGIC:
41
42 DW LOGIC_END-$ ;; length
43 ;;
44 DW 0 ;; special features
45 ;;
46 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
47 ;;
48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
49;; OPTIONS: If we find a scan match in
50;; an XLATT or SET_FLAG operation then
51;; exit from INT 9.
52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
53 ;;
54 OPTION EXIT_IF_FOUND ;;
55 ;;
56 ;;
57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58;; Dead key definitions must come before
59;; dead key translations to handle
60;; dead key + dead key.
61;; ***BD - THIS SECTION HAS BEEN UPDATED
62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
63 ;;
64 IFF EITHER_CTL,NOT ;;
65 IFF EITHER_ALT,NOT ;;
66 IFF EITHER_SHIFT ;;
67 SET_FLAG DEAD_UPPER ;;
68 ELSEF ;;
69 SET_FLAG DEAD_LOWER ;;
70 ENDIFF ;;
71 ELSEF ;;
72 IFKBD G_KB+P12_KB ;; For ENHANCED keyboard some
73 ANDF R_ALT_SHIFT ;; dead keys are on third shift
74 ANDF EITHER_SHIFT,NOT ;; which is accessed via the altgr key
75 SET_FLAG DEAD_THIRD ;;
76 ENDIFF ;;
77 ENDIFF ;;
78 ENDIFF ;;
79 ;;
80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
81;; ACUTE ACCENT TRANSLATIONS
82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
83 ;;
84ACUTE_PROC: ;;
85 ;;
86 IFF ACUTE,NOT ;;
87 GOTO DIARESIS_PROC ;;
88 ENDIFF ;;
89 ;;
90 RESET_NLS ;;
91 IFF R_ALT_SHIFT,NOT ;;
92 XLATT ACUTE_SPACE ;;
93 ENDIFF ;;
94 IFF EITHER_CTL,NOT ;;
95 ANDF EITHER_ALT,NOT ;;
96 IFF EITHER_SHIFT ;;
97 IFF CAPS_STATE ;;
98 XLATT ACUTE_LOWER ;;
99 ELSEF ;;
100 XLATT ACUTE_UPPER ;;
101 ENDIFF ;;
102 ELSEF ;;
103 IFF CAPS_STATE ;;
104 XLATT ACUTE_UPPER ;;
105 ELSEF ;;
106 XLATT ACUTE_LOWER ;;
107 ENDIFF ;;
108 ENDIFF ;;
109 ENDIFF ;;
110 ;;
111INVALID_ACUTE: ;;
112 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
113 BEEP ;; failed or we are ina bad shift state.
114 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
115 ;; through to generate the second char.
116 ;; Note that the dead key flag will be
117 ;; reset before we get here.
118 ;;
119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
120;; DIARESIS ACCENT TRANSLATIONS
121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
122 ;;
123DIARESIS_PROC: ;;
124 ;;
125 IFF DIARESIS,NOT ;;
126 GOTO GRAVE_PROC ;;
127 ENDIFF ;;
128 ;;
129 RESET_NLS ;;
130 IFF R_ALT_SHIFT,NOT ;;
131 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
132 ENDIFF ;;
133 IFF EITHER_CTL,NOT ;;
134 ANDF EITHER_ALT,NOT ;;
135 IFF EITHER_SHIFT ;;
136 IFF CAPS_STATE ;;
137 XLATT DIARESIS_LOWER ;;
138 ELSEF ;;
139 XLATT DIARESIS_UPPER ;;
140 ENDIFF ;;
141 ELSEF ;;
142 IFF CAPS_STATE ;;
143 XLATT DIARESIS_UPPER ;;
144 ELSEF ;;
145 XLATT DIARESIS_LOWER ;;
146 ENDIFF ;;
147 ENDIFF ;;
148 ENDIFF ;;
149 ;;
150INVALID_DIARESIS: ;;
151 PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent
152 BEEP ;; Invalid dead key combo.
153 GOTO NON_DEAD ;;
154 ;;
155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
156;; GRAVE ACCENT TRANSLATIONS
157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
158 ;;
159GRAVE_PROC: ;;
160 ;;
161 IFF GRAVE,NOT ;;
162 GOTO TILDE_PROC ;;
163 ENDIFF ;;
164 ;;
165 RESET_NLS ;;
166 IFF R_ALT_SHIFT,NOT ;;
167 XLATT GRAVE_SPACE ;;
168 ENDIFF ;;
169 IFF EITHER_CTL,NOT ;;
170 ANDF EITHER_ALT,NOT ;;
171 IFF EITHER_SHIFT ;;
172 IFF CAPS_STATE ;;
173 XLATT GRAVE_LOWER ;;
174 ELSEF ;;
175 XLATT GRAVE_UPPER ;;
176 ENDIFF ;;
177 ELSEF ;;
178 IFF CAPS_STATE,NOT ;;
179 XLATT GRAVE_LOWER ;;
180 ELSEF ;;
181 XLATT GRAVE_UPPER ;;
182 ENDIFF ;;
183 ENDIFF ;;
184 ENDIFF ;;
185 ;;
186INVALID_GRAVE: ;;
187 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
188 BEEP ;; Invalid dead key combo.
189 GOTO NON_DEAD ;;
190 ;;
191;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
192;; TILDE ACCENT TRANSLATIONS
193;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
194TILDE_PROC: ;;
195 ;;
196 IFF TILDE,NOT ;;
197 GOTO CIRCUMFLEX_PROC ;;
198 ENDIFF ;;
199 ;;
200 RESET_NLS ;;
201 IFF R_ALT_SHIFT,NOT ;;
202 XLATT TILDE_SPACE ;;
203 ENDIFF ;;
204 IFF EITHER_CTL,NOT ;;
205 ANDF EITHER_ALT,NOT ;;
206 IFF EITHER_SHIFT ;;
207 IFF CAPS_STATE ;;
208 XLATT TILDE_LOWER ;;
209 ELSEF ;;
210 XLATT TILDE_UPPER ;;
211 ENDIFF ;;
212 ELSEF ;;
213 IFF CAPS_STATE ;;
214 XLATT TILDE_UPPER ;;
215 ELSEF ;;
216 XLATT TILDE_LOWER ;;
217 ENDIFF ;;
218 ENDIFF ;;
219 ENDIFF ;;
220 ;;
221INVALID_TILDE: ;;
222 PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent
223 BEEP ;; Invalid dead key combo.
224 GOTO NON_DEAD ;;
225 ;;
226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
227;; CIRCUMFLEX ACCENT TRANSLATIONS
228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
229 ;;
230CIRCUMFLEX_PROC: ;;
231 ;;
232 IFF CIRCUMFLEX,NOT ;;
233 GOTO NON_DEAD ;;
234 ENDIFF ;;
235 ;;
236 RESET_NLS ;;
237 IFF R_ALT_SHIFT,NOT ;;
238 XLATT CIRCUMFLEX_SPACE ;;
239 ENDIFF ;;
240 IFF EITHER_CTL,NOT ;;
241 ANDF EITHER_ALT,NOT ;;
242 IFF EITHER_SHIFT ;;
243 IFF CAPS_STATE ;;
244 XLATT CIRCUMFLEX_LOWER ;;
245 ELSEF ;;
246 XLATT CIRCUMFLEX_UPPER ;;
247 ENDIFF ;;
248 ELSEF ;;
249 IFF CAPS_STATE,NOT ;;
250 XLATT CIRCUMFLEX_LOWER ;;
251 ELSEF ;;
252 XLATT CIRCUMFLEX_UPPER ;;
253 ENDIFF ;;
254 ENDIFF ;;
255 ENDIFF ;;
256 ;;
257INVALID_CIRCUMFLEX: ;;
258 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
259 BEEP ;; Invalid dead key combo.
260 GOTO NON_DEAD ;;
261 ;;
262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
263;; Upper, lower and third shifts
264;; ***BD - NON_DEAD THRU LOGIC_END IS UPDATED
265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
266NON_DEAD: ;;
267;;ADDED FOR DIVIDE SIGN ;;
268 IFKBD G_KB ;; Avoid accidentally translating
269 ANDF LC_E0 ;; the "/" on the numeric pad of the
270 IFF EITHER_CTL,NOT ;;
271 ANDF EITHER_ALT,NOT ;;
272 XLATT DIVIDE_SIGN ;;
273 ENDIFF ;;
274 EXIT_STATE_LOGIC ;;
275 ENDIFF ;;
276 ;;
277 IFF EITHER_CTL,NOT ;; Lower and upper case. Alphabetic
278 IFF EITHER_ALT,NOT ;; keys are affected by CAPS LOCK.
279 IFF EITHER_SHIFT ;; Numeric keys are not.
280;;***BD ADDED FOR NUMERIC PAD
281 IFF NUM_STATE,NOT ;;
282 XLATT NUMERIC_PAD ;;
283 ENDIFF ;;
284;;***BD END OF ADDITION
285 XLATT NON_ALPHA_UPPER ;;
286 IFF CAPS_STATE ;;
287 XLATT ALPHA_LOWER ;;
288 ELSEF ;;
289 XLATT ALPHA_UPPER ;;
290 ENDIFF ;;
291 ELSEF ;;
292;;***BD ADDED FOR NUMERIC PAD
293 IFF NUM_STATE ;;
294 XLATT NUMERIC_PAD ;;
295 ENDIFF ;;
296;;***BD END OF ADDITION
297 XLATT NON_ALPHA_LOWER ;;
298 IFF CAPS_STATE ;;
299 XLATT ALPHA_UPPER ;;
300 ELSEF ;;
301 XLATT ALPHA_LOWER ;;
302 ENDIFF ;;
303 ENDIFF ;; Third and Fourth shifts
304 ELSEF ;; ctl off, alt on at this point
305 IFKBD XT_KB+AT_KB ;; XT, AT, keyboards. Nordics
306 IFF EITHER_SHIFT ;; only.
307 XLATT FOURTH_SHIFT ;; ALT + shift
308 ELSEF ;;
309 XLATT THIRD_SHIFT ;; ALT
310 ENDIFF ;;
311 ELSEF ;; ENHANCED keyboard
312 IFF R_ALT_SHIFT ;; ALTGr
313 ANDF EITHER_SHIFT,NOT ;;
314 XLATT THIRD_SHIFT ;;
315 ENDIFF ;;
316 ENDIFF ;;
317 ENDIFF ;;
318 ENDIFF ;;
319;**************************************;;
320 IFF EITHER_SHIFT,NOT ;;
321 IFKBD XT_KB+AT_KB ;;
322 IFF EITHER_CTL ;;
323 ANDF ALT_SHIFT ;;
324 XLATT ALT_CASE ;;
325 ENDIFF ;;
326 ENDIFF ;;
327 IFKBD G_KB+P12_KB ;;
328 IFF EITHER_CTL ;;
329 ANDF ALT_SHIFT ;;
330 IFF R_ALT_SHIFT,NOT ;;
331 XLATT ALT_CASE ;;
332 ENDIFF ;;
333 ENDIFF ;;
334 ENDIFF ;;
335 ENDIFF ;;
336;**************************************;;
337 IFKBD AT_KB+XT_KB ;;
338 IFF EITHER_CTL,NOT ;;
339 IFF ALT_SHIFT ;; ALT - case
340 XLATT ALT_CASE ;;
341 ENDIFF ;;
342 ELSEF ;;
343 IFF EITHER_ALT,NOT ;; CTRL - case
344 XLATT CTRL_CASE ;;
345 ENDIFF ;;
346 ENDIFF ;;
347 ENDIFF ;;
348 ;;
349 IFKBD G_KB+P12_KB ;;
350 IFF EITHER_CTL,NOT ;;
351 IFF ALT_SHIFT ;; ALT - case
352 ANDF R_ALT_SHIFT,NOT ;;
353 XLATT ALT_CASE ;;
354 ENDIFF ;;
355 ELSEF ;;
356 IFF EITHER_ALT,NOT ;; CTRL - case
357 XLATT CTRL_CASE ;;
358 ENDIFF ;;
359 ENDIFF ;;
360 ENDIFF ;;
361 ;;
362 EXIT_STATE_LOGIC ;;
363 ;;
364LOGIC_END: ;;
365 ;;
366;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
367;;**********************************************************************
368;; SU Common Translate Section
369;; This section contains translations for the lower 128 characters
370;; only since these will never change from code page to code page.
371;; Some common Characters are included from 128 - 165 where appropriate.
372;; In addition the dead key "Set Flag" tables are here since the
373;; dead keys are on the same keytops for all code pages.
374;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
375 ;;
376 PUBLIC SU_COMMON_XLAT ;;
377SU_COMMON_XLAT: ;;
378 ;;
379 DW COMMON_XLAT_END-$ ;; length of section
380 DW -1 ;; code page
381 ;;
382 ;;
383;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
384;; CODE PAGE: Common
385;; STATE: Lower Shift Dead Key
386;; KEYBOARD TYPES: All
387;; TABLE TYPE: Flag Table
388;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
389 ;;
390 DW COM_DK_LO_END-$ ;; length of state section
391 DB DEAD_LOWER ;; State ID
392 DW ANY_KB ;; Keyboard Type
393 DB -1,-1 ;; Buffer entry for error character
394 ;; Set Flag Table
395 DW 2 ;; number of entries
396 DB 13 ;; scan code
397 FLAG ACUTE ;; flag bit to set
398 DB 27 ;;
399 FLAG DIARESIS ;;
400 ;;
401 ;;
402COM_DK_LO_END: ;;
403 ;;
404;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
405;; CODE PAGE: Common
406;; STATE: Upper Shift Dead Key
407;; KEYBOARD TYPES: All
408;; TABLE TYPE: Flag Table
409;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
410 ;;
411 DW COM_DK_UP_END-$ ;; length of state section
412 DB DEAD_UPPER ;; State ID
413 DW ANY_KB ;; Keyboard Type
414 DB -1,-1 ;; Buffer entry for error character
415 ;; Set Flag Table
416 DW 2 ;; number of entries
417 DB 13 ;; scan code
418 FLAG GRAVE ;; flag bit to set
419 DB 27 ;;
420 FLAG CIRCUMFLEX ;;
421 ;;
422COM_DK_UP_END: ;;
423 ;;
424;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
425;; CODE PAGE: Common
426;; STATE: Third Shift Dead Key
427;; KEYBOARD TYPES: G, P12
428;; TABLE TYPE: Flag Table
429;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
430 ;;
431 DW COM_DK_TH_END-$ ;; length of state section
432 DB DEAD_THIRD ;; State ID
433 DW G_KB+P12_KB ;; Keyboard Type
434 DB -1,-1 ;; Buffer entry for error character
435 ;; Set Flag Table
436 DW 1 ;; number of entries
437 DB 27 ;; scan code
438 FLAG TILDE ;; flag bit to set
439 ;;
440COM_DK_TH_END: ;;
441 ;;
442 ;;
443 ;;
444;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
445;;******************************
446;;***BD - ADDED FOR NUMERIC PAD (DECIMAL SEPERATOR)
447;;******************************
448;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
449;; CODE PAGE: Common
450;; STATE: Numeric Key Pad
451;; KEYBOARD TYPES: All
452;; TABLE TYPE: Translate
453;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
454 ;;
455 DW COM_PAD_K1_END-$ ;; length of state section
456 DB NUMERIC_PAD ;; State ID
457 DW ANY_KB ;; Keyboard Type
458 DB -1,-1 ;; Buffer entry for error character
459 ;;
460 DW COM_PAD_K1_T1_END-$ ;; Size of xlat table
461 DB STANDARD_TABLE ;; xlat options:
462 DB 1 ;; number of entries
463 DB 83,',' ;; decimal seperator = ,
464COM_PAD_K1_T1_END: ;;
465 ;;
466 DW 0 ;; Size of xlat table - null table
467 ;;
468COM_PAD_K1_END: ;;
469 ;;
470;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
471;;******************************
472;;***BD - ADDED FOR ALT CASE
473;;******************************
474;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
475;; CODE PAGE: Common
476;; STATE: Alt Case
477;; KEYBOARD TYPES: G, P12
478;; TABLE TYPE: Translate
479;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
480 ;;
481 DW COM_ALT_K1_END-$ ;; length of state section
482 DB ALT_CASE ;; State ID
483 DW G_KB+P12_KB ;; Keyboard Type
484 DB -1,-1 ;; Buffer entry for error character
485 ;;
486 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
487 DB TYPE_2_TAB ;; xlat options:
488 DB 2 ;; number of entries
489 DB 12,-1,-1 ;;
490 DB 53,0,82H ;;
491COM_ALT_K1_T1_END: ;;
492 ;;
493 DW 0 ;; Size of xlat table - null table
494 ;;
495COM_ALT_K1_END: ;;
496 ;;
497;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
498;;******************************
499;;***BD - ADDED FOR CTRL CASE
500;;******************************
501;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
502;; CODE PAGE: Common
503;; STATE: Ctrl Case
504;; KEYBOARD TYPES: XT, , AT
505;; TABLE TYPE: Translate
506;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
507 ;;
508 DW COM_CTRL_K1_END-$ ;; length of state section
509 DB CTRL_CASE ;; State ID
510 DW XT_KB+AT_KB ;; Keyboard Type
511 DB -1,-1 ;; Buffer entry for error character
512 ;;
513 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
514 DB TYPE_2_TAB ;; xlat options:
515 DB 2 ;; number of entries
516 DB 12,-1,-1 ;;
517 DB 53,01FH,35h ;;
518COM_CTRL_K1_T1_END: ;;
519 ;;
520 DW 0 ;; Size of xlat table - null table
521 ;;
522COM_CTRL_K1_END: ;;
523 ;;
524;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
525;; CODE PAGE: Common
526;; STATE: Ctrl Case
527;; KEYBOARD TYPES: G, P12
528;; TABLE TYPE: Translate
529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
530 ;;
531 DW COM_CTRL_K2_END-$ ;; length of state section
532 DB CTRL_CASE ;; State ID
533 DW G_KB+P12_KB ;; Keyboard Type
534 DB -1,-1 ;; Buffer entry for error character
535 ;;
536 DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table
537 DB TYPE_2_TAB ;; xlat options:
538 DB 8 ;; number of entries
539 DB 9,01BH,09H ;;
540 DB 10,01DH,0AH ;;
541 DB 12,-1,-1 ;;
542 DB 26,-1,-1 ;;
543 DB 27,-1,-1 ;;
544 DB 43,-1,-1 ;;
545 DB 53,01FH,35H ;;
546 DB 86,01CH,56H ;;
547COM_CTRL_K2_T1_END: ;;
548 ;;
549 DW 0 ;; Size of xlat table - null table
550 ;;
551COM_CTRL_K2_END: ;;
552 ;;
553;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
554;; CODE PAGE: Common
555;; STATE: Alpha Lower Case
556;; KEYBOARD TYPES: All
557;; TABLE TYPE: Translate
558;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
559 ;;
560 DW COM_AL_LO_END-$ ;; length of state section
561 DB ALPHA_LOWER ;; State ID
562 DW ANY_KB ;; Keyboard Type
563 DB -1,-1 ;; Buffer entry for error character
564 ;;
565 DW COM_AL_LO_T1_END-$ ;; Size of xlat table
566 DB STANDARD_TABLE ;; xlat options:
567 DB 3 ;; number of entries
568 DB 26,086H ;; a-overcircle
569 DB 39,094H ;; o-diaeresis
570 DB 40,084H ;; a-diaeresis
571COM_AL_LO_T1_END: ;;
572 ;;
573 DW 0 ;; Size of xlat table - null table
574 ;;
575COM_AL_LO_END: ;;
576 ;;
577;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
578;; CODE PAGE: Common
579;; STATE: Alpha Upper Case
580;; KEYBOARD TYPES: All
581;; TABLE TYPE: Translate
582;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
583 ;;
584 DW COM_AL_UP_END-$ ;; length of state section
585 DB ALPHA_UPPER ;; State ID
586 DW ANY_KB ;; Keyboard Type
587 DB -1,-1 ;; Buffer entry for error character
588 ;;
589 DW COM_AL_UP_T1_END-$ ;; Size of xlat table
590 DB STANDARD_TABLE ;; xlat options:
591 DB 3 ;; number of entries
592 DB 26,08FH ;; A-OVERCIRCLE
593 DB 39,099H ;; A-DIAERESIS
594 DB 40,08EH ;; O-DIAERESIS
595COM_AL_UP_T1_END: ;;
596 ;;
597 DW 0 ;; Size of xlat table - null table
598 ;;
599COM_AL_UP_END: ;;
600 ;;
601 ;;
602;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
603;; CODE PAGE: Common
604;; STATE: Non-Alpha Lower Case
605;; KEYBOARD TYPES: G + P12
606;; TABLE TYPE: Translate
607;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
608 ;;
609 DW COM_NA_LO_K1_END-$ ;; length of state section
610 DB NON_ALPHA_LOWER ;; State ID
611 DW G_KB+P12_KB ;; Keyboard Type
612 DB -1,-1 ;; Buffer entry for error character
613 ;;
614 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
615 DB STANDARD_TABLE ;; xlat options:
616 DB 4 ;; number of entries
617 DB 12,"+" ;; + INCLUDED FOR SIMPLIC.
618 DB 43,"'" ;; '
619 DB 86,"<" ;; <
620 DB 53,"-" ;; -
621COM_NA_LO_K1_T1_END: ;;
622 ;;
623 DW 0 ;; Size of xlat table - null table
624 ;;
625COM_NA_LO_K1_END: ;;
626 ;;
627;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
628;; CODE PAGE: Common
629;; STATE: Non-Alpha Lower Case
630;; KEYBOARD TYPES: XT +
631;; TABLE TYPE: Translate
632;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
633 ;;
634 DW COM_NA_LO_K2_END-$ ;; length of state section
635 DB NON_ALPHA_LOWER ;; State ID
636 DW XT_KB ;; Keyboard Type
637 DB -1,-1 ;; Buffer entry for error character
638 ;;
639 DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table
640 DB STANDARD_TABLE ;; xlat options:
641 DB 4 ;; number of entries
642 DB 12,"+" ;; +
643 DB 41,"'" ;; '
644 DB 43,"<" ;; <
645 DB 53,"-" ;; -
646COM_NA_LO_K2_T1_END: ;;
647 ;;
648 DW 0 ;; Size of xlat table - null table
649 ;;
650COM_NA_LO_K2_END: ;;
651 ;;
652;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
653;; CODE PAGE: Common
654;; STATE: Non-Alpha Lower Case
655;; KEYBOARD TYPES: AT
656;; TABLE TYPE: Translate
657;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
658 ;;
659 DW COM_NA_LO_K3_END-$ ;; length of state section
660 DB NON_ALPHA_LOWER ;; State ID
661 DW AT_KB ;; Keyboard Type
662 DB -1,-1 ;; Buffer entry for error character
663 ;;
664 DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table
665 DB STANDARD_TABLE ;; xlat options:
666 DB 4 ;; number of entries
667 DB 12,"+" ;; +
668 DB 41,"<" ;; <
669 DB 43,"'" ;; '
670 DB 53,"-" ;; -
671COM_NA_LO_K3_T1_END: ;;
672 ;;
673 DW 0 ;; Size of xlat table - null table
674 ;;
675COM_NA_LO_K3_END: ;;
676 ;;
677;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
678;; CODE PAGE: Common
679;; STATE: Non-Alpha Upper Case
680;; KEYBOARD TYPES: G + P12
681;; TABLE TYPE: Translate
682;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
683 ;;
684 DW COM_NA_UP_K1_END-$ ;; length of state section
685 DB NON_ALPHA_UPPER ;; State ID
686 DW G_KB + P12_KB ;; Keyboard Type
687 DB -1,-1 ;; Buffer entry for error character
688 ;;
689 DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table
690 DB STANDARD_TABLE ;; xlat options:
691 DB 13 ;; number of entries
692 DB 3,'"' ;;
693 DB 7,'&' ;;
694 DB 8,'/' ;;
695 DB 9,'(' ;;
696 DB 10,')' ;;
697 DB 11,'=' ;;
698 DB 12,'?' ;;
699 DB 41,'«' ;;
700 DB 43,'*' ;;
701 DB 51,';' ;;
702 DB 52,':' ;;
703 DB 53,'_' ;;
704 DB 86,'>' ;;
705COM_NA_UP_K1_T1_END: ;;
706 ;;
707 DW 0 ;; Size of xlat table - null table
708 ;;
709COM_NA_UP_K1_END: ;;
710 ;;
711 ;;
712;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
713;; CODE PAGE: Common
714;; STATE: Non-Alpha Upper Case
715;; KEYBOARD TYPES: XT +
716;; TABLE TYPE: Translate
717;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
718 ;;
719 DW COM_NA_UP_K2_END-$ ;; length of state section
720 DB NON_ALPHA_UPPER ;; State ID
721 DW XT_KB + _KB ;; Keyboard Type
722 DB -1,-1 ;; Buffer entry for error character
723 ;;
724 DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table
725 DB STANDARD_TABLE ;; xlat options:
726 DB 13 ;; number of entries
727 DB 3,'"' ;;
728 DB 4,09CH ;; POUND STERLING
729 DB 7,'&' ;;
730 DB 8,'/' ;;
731 DB 9,'(' ;;
732 DB 10,')' ;;
733 DB 11,'=' ;;
734 DB 12,'?' ;;
735 DB 41,'*' ;;
736 DB 43,'>' ;;
737 DB 51,';' ;;
738 DB 52,':' ;;
739 DB 53,'_' ;;
740COM_NA_UP_K2_T1_END: ;;
741 ;;
742 DW 0 ;; Size of xlat table - null table
743 ;;
744COM_NA_UP_K2_END: ;;
745 ;;
746 ;;
747;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
748;; CODE PAGE: Common
749;; STATE: Non-Alpha Upper Case
750;; KEYBOARD TYPES: AT
751;; TABLE TYPE: Translate
752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
753 ;;
754 DW COM_NA_UP_K3_END-$ ;; length of state section
755 DB NON_ALPHA_UPPER ;; State ID
756 DW AT_KB ;; Keyboard Type
757 DB -1,-1 ;; Buffer entry for error character
758 ;;
759 DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table
760 DB STANDARD_TABLE ;; xlat options:
761 DB 13 ;; number of entries
762 DB 3,'"' ;;
763 DB 4,09CH ;; POUND STERLING
764 DB 7,'&' ;;
765 DB 8,'/' ;;
766 DB 9,'(' ;;
767 DB 10,')' ;;
768 DB 11,'=' ;;
769 DB 12,'?' ;;
770 DB 41,'>' ;;
771 DB 43,'*' ;;
772 DB 51,';' ;;
773 DB 52,':' ;;
774 DB 53,'_' ;;
775COM_NA_UP_K3_T1_END: ;;
776 ;;
777 DW 0 ;; Size of xlat table - null table
778 ;;
779COM_NA_UP_K3_END: ;;
780 ;;
781 ;;
782;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
783;; CODE PAGE: Common
784;; STATE: Third Shift
785;; KEYBOARD TYPES: G, P12
786;; TABLE TYPE: Translate
787;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
788 ;;
789 DW COM_THIRD_END-$ ;; length of state section
790 DB THIRD_SHIFT ;; State ID
791 DW G_KB+P12_KB ;; Keyboard Type FERRARI
792 DB -1,-1 ;; Buffer entry for error character
793 ;;
794 DW COM_THIRD_T1_END-$ ;; Size of xlat table
795 DB STANDARD_TABLE ;; xlat options:
796 DB 9 ;; number of entries
797 DB 3,'@' ;;
798 DB 4,09CH ;; œ
799 DB 5,'$' ;;
800 DB 8,'{' ;;
801 DB 9,'[' ;;
802 DB 10,']' ;;
803 DB 11,'}' ;;
804 DB 12,'\' ;; Broken Vertical Line
805 DB 86,'|' ;;
806COM_THIRD_T1_END: ;;
807 ;;
808 DW 0 ;; Last xlat table
809COM_THIRD_END: ;;
810 ;;
811;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
812;; CODE PAGE: Common
813;; STATE: Third Shift (ALTERNATE)
814;; KEYBOARD TYPES: XT,
815;; TABLE TYPE: Translate
816;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
817 ;;
818 DW COM_THIRD_K1_END-$ ;; length of state section
819 DB THIRD_SHIFT ;; State ID
820 DW XT_KB ;; Keyboard Type
821 DB -1,-1 ;; Buffer entry for error character
822 ;;
823 DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table
824 DB TYPE_2_TAB ;; xlat options:
825 DB 9 ;; number of entries
826 DB 12,'-','-' ;;
827 DB 13,'=','=' ;;
828 DB 26,'[','[' ;;
829 DB 27,']',']' ;;
830 DB 39,';',';' ;;
831 DB 40,027H,027H ;;
832 DB 41,060H,060H ;;
833 DB 43,'\','\' ;;
834 DB 53,'/','/' ;;
835COM_THIRD_K1_T1_END: ;;
836 ;;
837 DW 0 ;; Last xlat table
838COM_THIRD_K1_END: ;;
839 ;;
840;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
841;; CODE PAGE: Common
842;; STATE: Third Shift (ALTERNATE)
843;; KEYBOARD TYPES: AT
844;; TABLE TYPE: Translate
845;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
846 ;;
847 DW COM_THIRD_K2_END-$ ;; length of state section
848 DB THIRD_SHIFT ;; State ID
849 DW AT_KB ;; Keyboard Type
850 DB -1,-1 ;; Buffer entry for error character
851 ;;
852 DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table
853 DB TYPE_2_TAB ;; xlat options:
854 DB 9 ;; number of entries
855 DB 12,'-','-' ;;
856 DB 13,'=','=' ;;
857 DB 26,'[','[' ;;
858 DB 27,']',']' ;;
859 DB 39,';',';' ;;
860 DB 40,027H,027H ;;
861 DB 41,'\','\' ;;
862 DB 43,060H,060H ;;
863 DB 53,'/','/' ;;
864COM_THIRD_K2_T1_END: ;;
865 ;;
866 DW 0 ;; Last xlat table
867COM_THIRD_K2_END: ;;
868 ;;
869;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
870;; CODE PAGE: Common
871;; STATE: Fourth Shift (ALTERNATE+SHIFT)
872;; KEYBOARD TYPES: XT,
873;; TABLE TYPE: Translate
874;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
875 ;;
876 DW COM_FOURTH_END-$ ;; length of state section
877 DB FOURTH_SHIFT ;; State ID
878 DW XT_KB ;; Keyboard Type
879 DB -1,-1 ;; Buffer entry for error character
880 ;;
881 DW COM_FOURTH_T1_END-$ ;; Size of xlat table
882 DB TYPE_2_TAB ;; xlat options:
883 DB 18 ;; number of entries
884 DB 3,'@','@' ;;
885 DB 4,'#','#' ;;
886 DB 7,'^','^' ;;
887 DB 8,'&','&' ;;
888 DB 9,'*','*' ;;
889 DB 10,'(','(' ;;
890 DB 11,')',')' ;;
891 DB 12,'_','_' ;;
892 DB 13,'+','+' ;;
893 DB 26,'{','{' ;;
894 DB 27,'}','}' ;;
895 DB 39,':',':' ;;
896 DB 40,'"','"' ;;
897 DB 41,'~','~' ;;
898 DB 43,'|','|' ;;
899 DB 51,'<','<' ;;
900 DB 52,'>','>' ;;
901 DB 53,'?','?' ;;
902COM_FOURTH_T1_END: ;;
903 ;;
904 DW 0 ;; Last xlat table
905COM_FOURTH_END: ;;
906 ;;
907;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
908;; CODE PAGE: Common
909;; STATE: Fourth Shift (ALTERNATE+SHIFT)
910;; KEYBOARD TYPES: AT
911;; TABLE TYPE: Translate
912;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
913 ;;
914 DW COM_FOURTH_K1_END-$ ;; length of state section
915 DB FOURTH_SHIFT ;; State ID
916 DW AT_KB ;; Keyboard Type
917 DB -1,-1 ;; Buffer entry for error character
918 ;;
919 DW COM_FOURTH_K1_T1_END-$ ;; Size of xlat table
920 DB TYPE_2_TAB ;; xlat options:
921 DB 18 ;; number of entries
922 DB 3,'@','@' ;;
923 DB 4,'#','#' ;;
924 DB 7,'^','^' ;;
925 DB 8,'&','&' ;;
926 DB 9,'*','*' ;;
927 DB 10,'(','(' ;;
928 DB 11,')',')' ;;
929 DB 12,'_','_' ;;
930 DB 13,'+','+' ;;
931 DB 26,'{','{' ;;
932 DB 27,'}','}' ;;
933 DB 39,':',':' ;;
934 DB 40,'"','"' ;;
935 DB 41,'|','|' ;;
936 DB 43,'~','~' ;;
937 DB 51,'<','<' ;;
938 DB 52,'>','>' ;;
939 DB 53,'?','?' ;;
940COM_FOURTH_K1_T1_END: ;;
941 ;;
942 DW 0 ;; Last xlat table
943COM_FOURTH_K1_END: ;;
944 ;;
945;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
946;; CODE PAGE: Common
947;; STATE: Grave Lower
948;; KEYBOARD TYPES: All
949;; TABLE TYPE: Translate
950;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
951 ;;
952 DW COM_GR_LO_END-$ ;; length of state section
953 DB GRAVE_LOWER ;; State ID
954 DW ANY_KB ;; Keyboard Type
955 DB 96,0 ;; error character = standalone accent
956 ;;
957 DW COM_GR_LO_T1_END-$ ;; Size of xlat table
958 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
959 DB 5 ;; number of scans
960 DB 18,'Š' ;; scan code,ASCII - e
961 DB 22,'—' ;; scan code,ASCII - u
962 DB 23,'' ;; scan code,ASCII - i
963 DB 24,'•' ;; scan code,ASCII - o
964 DB 30,'…' ;; scan code,ASCII - a
965COM_GR_LO_T1_END: ;;
966 ;;
967 DW 0 ;; Size of xlat table - null table
968 ;;
969COM_GR_LO_END: ;; length of state section
970 ;;
971;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
972;; CODE PAGE: Common
973;; STATE: Grave Space Bar
974;; KEYBOARD TYPES: All
975;; TABLE TYPE: Translate
976;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
977 ;;
978 DW COM_GR_SP_END-$ ;; length of state section
979 DB GRAVE_SPACE ;; State ID
980 DW ANY_KB ;; Keyboard Type
981 DB 96,0 ;; error character = standalone accent
982 ;;
983 DW COM_GR_SP_T1_END-$ ;; Size of xlat table
984 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
985 DB 1 ;; number of scans
986 DB 57,96 ;; STANDALONE GRAVE
987COM_GR_SP_T1_END: ;;
988 ;;
989 DW 0 ;; Size of xlat table - null table
990 ;;
991COM_GR_SP_END: ;; length of state section
992 ;;
993;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
994;; CODE PAGE: Common
995;; STATE: Circumflex Lower
996;; KEYBOARD TYPES: All
997;; TABLE TYPE: Translate
998;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
999 ;;
1000 DW COM_CI_LO_END-$ ;; length of state section
1001 DB CIRCUMFLEX_LOWER ;; State ID
1002 DW ANY_KB ;; Keyboard Type
1003 DB 94,0 ;; error character = standalone accent
1004 ;;
1005 DW COM_CI_LO_T1_END-$ ;; Size of xlat table
1006 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1007 DB 5 ;; number of scans
1008 DB 18,'ˆ' ;; scan code,ASCII - e
1009 DB 22,'–' ;; scan code,ASCII - u
1010 DB 23,'Œ' ;; scan code,ASCII - i
1011 DB 24,'“' ;; scan code,ASCII - o
1012 DB 30,'ƒ' ;; scan code,ASCII - a
1013COM_CI_LO_T1_END: ;;
1014 ;;
1015 DW 0 ;;
1016 ;;
1017COM_CI_LO_END: ;;
1018 ;;
1019;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1020;; CODE PAGE: Common
1021;; STATE: Circumflex Space Bar
1022;; KEYBOARD TYPES: All
1023;; TABLE TYPE: Translate
1024;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1025 ;;
1026 DW COM_CI_SP_END-$ ;; length of state section
1027 DB CIRCUMFLEX_SPACE ;; State ID
1028 DW ANY_KB ;; Keyboard Type
1029 DB 94,0 ;; error character = standalone accent
1030 ;;
1031 DW COM_CI_SP_T1_END-$ ;; Size of xlat table
1032 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1033 DB 1 ;; number of scans
1034 DB 57,94 ;; STANDALONE CIRCUMFLEX
1035COM_CI_SP_T1_END: ;;
1036 ;;
1037 DW 0 ;; Size of xlat table - null table
1038 ;;
1039COM_CI_SP_END: ;; length of state section
1040 ;;
1041;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1042;; CODE PAGE: Common
1043;; STATE: Tilde Lower
1044;; KEYBOARD TYPES: All
1045;; TABLE TYPE: Translate
1046;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1047 ;;
1048 DW COM_TI_LO_END-$ ;; length of state section
1049 DB TILDE_LOWER ;; State ID
1050 DW ANY_KB ;; Keyboard Type
1051 DB 07EH,0 ;; error character = standalone accent
1052 ;;
1053 DW COM_TI_LO_T1_END-$ ;; Size of xlat table
1054 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1055 DB 1 ;; number of scans
1056 DB 49,0A4H ;; scan code,ASCII - ¤
1057 COM_TI_LO_T1_END: ;;
1058 ;;
1059 DW 0 ;;
1060 ;;
1061 COM_TI_LO_END: ;;
1062 ;;
1063;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1064;;; CODE PAGE: Common
1065;;; STATE: Tilde Upper Case
1066;;; KEYBOARD TYPES: All
1067;;; TABLE TYPE: Translate
1068;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1069 ;;
1070 DW COM_TI_UP_END-$ ;; length of state section
1071 DB TILDE_UPPER ;; State ID
1072 DW ANY_KB ;; Keyboard Type
1073 DB 07EH,0 ;; error character = standalone accent
1074 ;;
1075 DW COM_TI_UP_T1_END-$ ;; Size of xlat table
1076 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1077 DB 1 ;; number of scans
1078 DB 49,0A5H ;; scan code,ASCII - ¥
1079 COM_TI_UP_T1_END: ;;
1080 ;;
1081 DW 0 ;; Size of xlat table - null table
1082 ;;
1083 COM_TI_UP_END: ;; length of state section
1084 ;;
1085 ;;
1086;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1087;; CODE PAGE: Common
1088;; STATE: Tilde Space Bar
1089;; KEYBOARD TYPES: All
1090;; TABLE TYPE: Translate
1091;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1092 ;;
1093 DW COM_TI_SP_END-$ ;; length of state section
1094 DB TILDE_SPACE ;; State ID
1095 DW ANY_KB ;; Keyboard Type
1096 DB 07EH,0 ;; error character = standalone accent
1097 ;;
1098 DW COM_TI_SP_T1_END-$ ;; Size of xlat table
1099 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1100 DB 1 ;; number of scans
1101 DB 57,07EH ;; STANDALONE TILDE
1102COM_TI_SP_T1_END: ;;
1103 ;;
1104 DW 0 ;; Size of xlat table - null table
1105 ;;
1106COM_TI_SP_END: ;; length of state section
1107 ;;
1108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1109 DW 0 ;; Last State
1110COMMON_XLAT_END: ;;
1111 ;;
1112 ;;
1113 ;;
1114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1115;;***************************************
1116;; SU Specific Translate Section for 437
1117;;***************************************
1118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1119 ;;
1120 PUBLIC SU_437_XLAT ;;
1121SU_437_XLAT: ;;
1122 ;;
1123 DW CP437_XLAT_END-$ ;; length of section
1124 DW 437 ;;
1125 ;;
1126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1127;; CODE PAGE: 437
1128;; STATE: Non-Alpha Upper Case
1129;; KEYBOARD TYPES: G, P12
1130;; TABLE TYPE: Translate
1131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1132 ;;
1133 DW CP437_NA_UP_END-$ ;; length of state section
1134 DB NON_ALPHA_UPPER ;; State ID
1135 DW G_KB+P12_KB ;; Keyboard Type
1136 DB -1,-1 ;; Buffer entry for error character
1137 ;;
1138 DW CP437_NA_UP_T1_END-$ ;; Size of xlat table
1139 DB STANDARD_TABLE ;; xlat options:
1140 DB 1 ;; number of entries
1141 DB 5,0 ;; International Currency Symb
1142CP437_NA_UP_T1_END: ;;
1143 ;;
1144 DW 0 ;; Size of xlat table - null table
1145 ;;
1146CP437_NA_UP_END: ;;
1147 ;;
1148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1149;; CODE PAGE: 437
1150;; STATE: Non-Alpha Lower Case
1151;; KEYBOARD TYPES: G, P12
1152;; TABLE TYPE: Translate
1153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1154 ;;
1155 DW CP437_NA_K1_LO_END-$ ;; length of state section
1156 DB NON_ALPHA_LOWER ;; State ID
1157 DW G_KB+P12_KB ;; Keyboard Type
1158 DB -1,-1 ;; Buffer entry for error character
1159 ;;
1160 DW CP437_NA_LO_K1_T1_END-$ ;; Size of xlat table
1161 DB STANDARD_TABLE ;; xlat options:
1162 DB 1 ;; number of entries
1163 DB 41,015H ;; SECTION Symb
1164CP437_NA_LO_K1_T1_END: ;;
1165 ;;
1166 DW 0 ;; Size of xlat table - null table
1167 ;;
1168CP437_NA_K1_LO_END: ;;
1169 ;;
1170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1171;; CODE PAGE: 437
1172;; STATE: Acute Lower Case
1173;; KEYBOARD TYPES: All
1174;; TABLE TYPE: Translate
1175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1176 ;;
1177 DW CP437_AC_LO_END-$ ;; length of state section
1178 DB ACUTE_LOWER ;; State ID
1179 DW ANY_KB ;; Keyboard Type
1180 DB 39,0 ;; error character = standalone accent
1181 ;;
1182 DW CP437_AC_LO_T1_END-$ ;; Size of xlat table
1183 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1184 DB 5 ;; number of scans
1185 DB 18,'‚' ;; scan code,ASCII - e
1186 DB 22,'£' ;; scan code,ASCII - u
1187 DB 23,'¡' ;; scan code,ASCII - i
1188 DB 24,'¢' ;; scan code,ASCII - o
1189 DB 30,' ' ;; scan code,ASCII - a
1190CP437_AC_LO_T1_END: ;;
1191 ;;
1192 DW 0 ;; Size of xlat table - null table
1193 ;;
1194CP437_AC_LO_END: ;;
1195 ;;
1196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1197;; CODE PAGE: 437
1198;; STATE: Acute Upper Case
1199;; KEYBOARD TYPES: All
1200;; TABLE TYPE: Translate
1201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1202 ;;
1203 DW CP437_AC_UP_END-$ ;; length of state section
1204 DB ACUTE_UPPER ;; State ID
1205 DW ANY_KB ;; Keyboard Type
1206 DB 39,0 ;; error character = standalone accent
1207 ;;
1208 DW CP437_AC_UP_T1_END-$ ;; Size of xlat table
1209 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1210 DB 1 ;; number of entries
1211 DB 18,'' ;; scan code,ASCII -
1212CP437_AC_UP_T1_END: ;;
1213 ;;
1214 DW 0 ;; Size of xlat table - null table
1215 ;;
1216CP437_AC_UP_END: ;;
1217 ;;
1218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1219;; CODE PAGE: 437
1220;; STATE: Acute Space Bar
1221;; KEYBOARD TYPES: All
1222;; TABLE TYPE: Translate
1223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1224 ;;
1225 DW CP437_AC_SP_END-$ ;; length of state section
1226 DB ACUTE_SPACE ;; State ID
1227 DW ANY_KB ;; Keyboard Type
1228 DB 39,0 ;; error character = standalone accent
1229 ;;
1230 DW CP437_AC_SP_T1_END-$ ;; Size of xlat table
1231 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1232 DB 1 ;; number of scans
1233 DB 57,39 ;; scan code,ASCII - SPACE
1234CP437_AC_SP_T1_END: ;;
1235 ;;
1236 DW 0 ;; Size of xlat table - null table
1237 ;;
1238CP437_AC_SP_END: ;;
1239 ;;
1240;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1241;; CODE PAGE: CP437
1242;; STATE: Diaresis Lower Case
1243;; KEYBOARD TYPES: All
1244;; TABLE TYPE: Translate
1245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1246 ;;
1247 DW CP437_DI_LO_END-$ ;; length of state section
1248 DB DIARESIS_LOWER ;; State ID
1249 DW ANY_KB ;; Keyboard Type
1250 DB 254,0 ;; error character = standalone accent
1251 ;;
1252 DW CP437_DI_LO_T1_END-$ ;; Size of xlat table
1253 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1254 DB 6 ;; number of scans
1255 DB 18,'‰' ;; scan code,ASCII - e
1256 DB 21,'˜' ;; scan code,ASCII - y
1257 DB 22,'' ;; scan code,ASCII - u
1258 DB 23,'‹' ;; scan code,ASCII - i
1259 DB 24,'”' ;; scan code,ASCII - o
1260 DB 30,'„' ;; scan code,ASCII - a
1261CP437_DI_LO_T1_END: ;;
1262 ;;
1263 DW 0 ;; Size of xlat table - null table
1264 ;;
1265CP437_DI_LO_END: ;; length of state section
1266 ;;
1267;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1268;; CODE PAGE: CP437
1269;; STATE: Diaresis Upper Case
1270;; KEYBOARD TYPES: All
1271;; TABLE TYPE: Translate
1272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1273 ;;
1274 DW CP437_DI_UP_END-$ ;; length of state section
1275 DB DIARESIS_UPPER ;; State ID
1276 DW ANY_KB ;; Keyboard Type
1277 DB 254,0 ;; error character = standalone accent
1278 ;;
1279 DW CP437_DI_UP_T1_END-$ ;; Size of xlat table
1280 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1281 DB 3 ;; number of scans
1282 DB 22,'š' ;; scan code,ASCII - U
1283 DB 24,'™' ;; scan code,ASCII - O
1284 DB 30,'Ž' ;; scan code,ASCII - A
1285CP437_DI_UP_T1_END: ;;
1286 ;;
1287 DW 0 ;; Size of xlat table - null table
1288 ;;
1289CP437_DI_UP_END: ;; length of state section
1290 ;;
1291 ;;
1292;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1293;; CODE PAGE: 437
1294;; STATE: Diaresis Space Bar
1295;; KEYBOARD TYPES: All
1296;; TABLE TYPE: Translate
1297;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1298; ;;
1299; DW CP437_DI_SP_END-$ ;; length of state section
1300; DB DIARESIS_SPACE ;; State ID
1301; DW ANY_KB ;; Keyboard Type
1302; DB 254,0 ;; error character = standalone accent
1303; ;;
1304; DW CP437_DI_SP_T1_END-$ ;; Size of xlat table
1305; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1306; DB 1 ;; number of scans
1307; DB 57,254 ;; error character = standalone accent
1308;CP437_DI_SP_T1_END: ;;
1309; ;;
1310; DW 0 ;; Size of xlat table - null table
1311;CP437_DI_SP_END: ;; length of state section
1312; ;;
1313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1314 ;;
1315 DW 0 ;; LAST STATE
1316 ;;
1317CP437_XLAT_END: ;;
1318 ;;
1319;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1320;;***************************************
1321;; SU Specific Translate Section for 850
1322;;***************************************
1323;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1324 ;;
1325 PUBLIC SU_850_XLAT ;;
1326SU_850_XLAT: ;;
1327 ;;
1328 DW CP850_XLAT_END-$ ;; length of section
1329 DW 850 ;;
1330 ;;
1331 ;;
1332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1333;; CODE PAGE: 850
1334;; STATE: Divide Sign
1335;; KEYBOARD TYPES: G, P12
1336;; TABLE TYPE: Translate
1337;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1338 ;;
1339 DW CP850_DIVID_END-$ ;; length of state section
1340 DB DIVIDE_SIGN ;; State ID
1341 DW G_KB+P12_KB ;; Keyboard Type
1342 DB -1,-1 ;; error character = standalone accent
1343 ;;
1344 DW CP850_DIVID_T1_END-$ ;; Size of xlat table
1345 DB TYPE_2_TAB ;; xlat options:
1346 DB 2 ;; number of scans
1347 DB 0E0H,0F6H,0E0H ;;
1348 DB 53,0F6H,0E0H ;; DIVIDE SIGN
1349CP850_DIVID_T1_END: ;;
1350 ;;
1351 DW 0 ;; Size of xlat table - null table
1352 ;;
1353CP850_DIVID_END: ;;
1354 ;;
1355;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1356;; CODE PAGE: 850
1357;; STATE: Numeric Key Pad
1358;; KEYBOARD TYPES: G, P12
1359;; TABLE TYPE: Translate
1360;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1361 ;;
1362 DW CP850_PAD_K1_END-$ ;; length of state section
1363 DB NUMERIC_PAD ;; State ID
1364 DW G_KB+P12_KB ;; Keyboard Type
1365 DB -1,-1 ;; Buffer entry for error character
1366 ;;
1367 DW CP850_PAD_K1_T1_END-$ ;; Size of xlat table
1368 DB STANDARD_TABLE ;; xlat options:
1369 DB 1 ;; number of entries
1370 DB 55,09EH ;;
1371CP850_PAD_K1_T1_END: ;;
1372 ;;
1373 DW 0 ;; Size of xlat table - null table
1374 ;;
1375CP850_PAD_K1_END: ;;
1376 ;;
1377;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1378;; CODE PAGE: 850
1379;; STATE: Non-Alpha Upper Case
1380;; KEYBOARD TYPES: G, P12
1381;; TABLE TYPE: Translate
1382;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1383 ;;
1384 DW CP850_NA_UP_END-$ ;; length of state section
1385 DB NON_ALPHA_UPPER ;; State ID
1386 DW G_KB+P12_KB ;; Keyboard Type
1387 DB -1,-1 ;; Buffer entry for error character
1388 ;;
1389 DW CP850_NA_UP_T1_END-$ ;; Size of xlat table
1390 DB STANDARD_TABLE ;; xlat options:
1391 DB 1 ;; number of entries
1392 DB 5,0CFH ;; International Currency Symb
1393CP850_NA_UP_T1_END: ;;
1394 ;;
1395 DW 0 ;; Size of xlat table - null table
1396 ;;
1397CP850_NA_UP_END: ;;
1398 ;;
1399 ;;
1400;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1401;; CODE PAGE: 850
1402;; STATE: Non-Alpha Lower Case
1403;; KEYBOARD TYPES: G, P12
1404;; TABLE TYPE: Translate
1405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1406 ;;
1407 DW CP850_NA_K1_LO_END-$ ;; length of state section
1408 DB NON_ALPHA_LOWER ;; State ID
1409 DW G_KB+P12_KB ;; Keyboard Type
1410 DB -1,-1 ;; Buffer entry for error character
1411 ;;
1412 DW CP850_NA_LO_K1_T1_END-$ ;; Size of xlat table
1413 DB STANDARD_TABLE ;; xlat options:
1414 DB 1 ;; number of entries
1415 DB 41,0F5H ;; SECTION Symb
1416CP850_NA_LO_K1_T1_END: ;;
1417 ;;
1418 DW 0 ;; Size of xlat table - null table
1419 ;;
1420CP850_NA_K1_LO_END: ;;
1421 ;;
1422;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1423;; CODE PAGE: 850
1424;; STATE: Acute Lower Case
1425;; KEYBOARD TYPES: All
1426;; TABLE TYPE: Translate
1427;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1428 ;;
1429 DW CP850_AC_LO_END-$ ;; length of state section
1430 DB ACUTE_LOWER ;; State ID
1431 DW ANY_KB ;; Keyboard Type
1432 DB 239,0 ;; error character = standalone accent
1433 ;;
1434 DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
1435 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1436 DB 6 ;; number of scans
1437 DB 18,'‚' ;; scan code,ASCII - e
1438 DB 21,0ECH ;; y acute
1439 DB 22,'£' ;; scan code,ASCII - u
1440 DB 23,'¡' ;; scan code,ASCII - i
1441 DB 24,'¢' ;; scan code,ASCII - o
1442 DB 30,' ' ;; scan code,ASCII - a
1443CP850_AC_LO_T1_END: ;;
1444 ;;
1445 DW 0 ;; Size of xlat table - null table
1446 ;;
1447CP850_AC_LO_END: ;;
1448 ;;
1449;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1450;; CODE PAGE: 850
1451;; STATE: Acute Upper Case
1452;; KEYBOARD TYPES: All
1453;; TABLE TYPE: Translate
1454;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1455 ;;
1456 DW CP850_AC_UP_END-$ ;; length of state section
1457 DB ACUTE_UPPER ;; State ID
1458 DW ANY_KB ;; Keyboard Type
1459 DB 239,0 ;; error character = standalone accent
1460 ;;
1461 DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
1462 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1463 DB 6 ;; number of entries
1464 DB 18,090H ;; E acute
1465 DB 21,0EDH ;; Y acute
1466 DB 22,0E9H ;; U acute
1467 DB 23,0D6H ;; I acute
1468 DB 24,0E0H ;; O acute
1469 DB 30,0B5H ;; A acute
1470CP850_AC_UP_T1_END: ;;
1471 ;;
1472 DW 0 ;; Size of xlat table - null table
1473 ;;
1474CP850_AC_UP_END: ;;
1475 ;;
1476;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1477;; CODE PAGE: 850
1478;; STATE: Acute Space Bar
1479;; KEYBOARD TYPES: All
1480;; TABLE TYPE: Translate
1481;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1482 ;;
1483 DW CP850_AC_SP_END-$ ;; length of state section
1484 DB ACUTE_SPACE ;; State ID
1485 DW ANY_KB ;; Keyboard Type
1486 DB 239,0 ;; error character = standalone accent
1487 ;;
1488 DW CP850_AC_SP_T1_END-$ ;; Size of xlat table
1489 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1490 DB 1 ;; number of scans
1491 DB 57,239 ;; scan code,ASCII - SPACE
1492CP850_AC_SP_T1_END: ;;
1493 ;;
1494 DW 0 ;; Size of xlat table - null table
1495 ;;
1496CP850_AC_SP_END: ;;
1497 ;;
1498;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1499;; CODE PAGE: 850
1500;; STATE: Diaresis Lower Case
1501;; KEYBOARD TYPES: All
1502;; TABLE TYPE: Translate
1503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1504 ;;
1505 DW CP850_DI_LO_END-$ ;; length of state section
1506 DB DIARESIS_LOWER ;; State ID
1507 DW ANY_KB ;; Keyboard Type
1508 DB 249,0 ;; error character = standalone accent
1509 ;;
1510 DW CP850_DI_LO_T1_END-$ ;; Size of xlat table
1511 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1512 DB 6 ;; number of scans
1513 DB 18,'‰' ;; scan code,ASCII - e
1514 DB 21,'˜' ;; scan code,ASCII - y
1515 DB 22,'' ;; scan code,ASCII - u
1516 DB 23,'‹' ;; scan code,ASCII - i
1517 DB 24,'”' ;; scan code,ASCII - o
1518 DB 30,'„' ;; scan code,ASCII - a
1519CP850_DI_LO_T1_END: ;;
1520 ;;
1521 DW 0 ;; Size of xlat table - null table
1522 ;;
1523CP850_DI_LO_END: ;; length of state section
1524 ;;
1525;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1526;; CODE PAGE: 850
1527;; STATE: Diaresis Upper Case
1528;; KEYBOARD TYPES: All
1529;; TABLE TYPE: Translate
1530;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1531 ;;
1532 DW CP850_DI_UP_END-$ ;; length of state section
1533 DB DIARESIS_UPPER ;; State ID
1534 DW ANY_KB ;; Keyboard Type
1535 DB 249,0 ;; error character = standalone accent
1536 ;;
1537 DW CP850_DI_UP_T1_END-$ ;; Size of xlat table
1538 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1539 DB 5 ;; number of scans
1540 DB 18,0D3H ;; E Diaeresis
1541 DB 22,'š' ;; U Diaeresis
1542 DB 23,0D8H ;; I Diaeresis
1543 DB 24,'™' ;; O Diaeresis
1544 DB 30,'Ž' ;; A Diaeresis
1545CP850_DI_UP_T1_END: ;;
1546 ;;
1547 DW 0 ;; Size of xlat table - null table
1548 ;;
1549CP850_DI_UP_END: ;; length of state section
1550 ;;
1551 ;;
1552;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1553;; CODE PAGE: 850
1554;; STATE: Diaresis Space Bar
1555;; KEYBOARD TYPES: All
1556;; TABLE TYPE: Translate
1557;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1558 ;;
1559 DW CP850_DI_SP_END-$ ;; length of state section
1560 DB DIARESIS_SPACE ;; State ID
1561 DW ANY_KB ;; Keyboard Type
1562 DB 249,0 ;; error character = standalone accent
1563 ;;
1564 DW CP850_DI_SP_T1_END-$ ;; Size of xlat table
1565 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1566 DB 1 ;; number of scans
1567 DB 57,249 ;; error character = standalone accent
1568CP850_DI_SP_T1_END: ;;
1569 ;;
1570 DW 0 ;; Size of xlat table - null table
1571CP850_DI_SP_END: ;; length of state section
1572 ;;
1573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1574;; CODE PAGE: 850
1575;; STATE: Grave Upper
1576;; KEYBOARD TYPES: All
1577;; TABLE TYPE: Translate
1578;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1579 ;;
1580 DW CP850_GR_UP_END-$ ;; length of state section
1581 DB GRAVE_UPPER ;; State ID
1582 DW ANY_KB ;; Keyboard Type
1583 DB 96,0 ;; error character = standalone accent
1584 ;;
1585 DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
1586 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1587 DB 5 ;; number of scans
1588 DB 18,0D4H ;; E grave
1589 DB 22,0EBH ;; U grave
1590 DB 23,0DEH ;; I grave
1591 DB 24,0E3H ;; O grave
1592 DB 30,0B7H ;; A grave
1593CP850_GR_UP_T1_END: ;;
1594 ;;
1595 DW 0 ;; Size of xlat table - null table
1596 ;;
1597CP850_GR_UP_END: ;; length of state section
1598 ;;
1599;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1600;; CODE PAGE: 850
1601;; STATE: Tilde Lower
1602;; KEYBOARD TYPES: All
1603;; TABLE TYPE: Translate
1604;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1605 ;;
1606 DW CP850_TI_LO_END-$ ;; length of state section
1607 DB TILDE_LOWER ;; State ID
1608 DW ANY_KB ;; Keyboard Type
1609 DB 07EH,0 ;; error character = standalone accent
1610 ;;
1611 DW CP850_TI_LO_T1_END-$ ;; Size of xlat table
1612 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1613 DB 2 ;; number of scans
1614 DB 24,0E4H ;; scan code,ASCII - o tilde
1615 DB 30,0C6H ;; scan code,ASCII - a tilde
1616 CP850_TI_LO_T1_END: ;;
1617 ;;
1618 DW 0 ;;
1619 ;;
1620 CP850_TI_LO_END: ;;
1621 ;;
1622;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1623;;; CODE PAGE: 850
1624;;; STATE: Tilde Upper Case
1625;;; KEYBOARD TYPES: All
1626;;; TABLE TYPE: Translate
1627;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1628 ;;
1629 DW CP850_TI_UP_END-$ ;; length of state section
1630 DB TILDE_UPPER ;; State ID
1631 DW ANY_KB ;; Keyboard Type
1632 DB 07EH,0 ;; error character = standalone accent
1633 ;;
1634 DW CP850_TI_UP_T1_END-$ ;; Size of xlat table
1635 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1636 DB 2 ;; number of scans
1637 DB 24,0E5H ;; scan code,ASCII - O tilde
1638 DB 30,0C7H ;; scan code,ASCII - A tilde
1639 CP850_TI_UP_T1_END: ;;
1640 ;;
1641 DW 0 ;; Size of xlat table - null table
1642 ;;
1643 CP850_TI_UP_END: ;; length of state section
1644 ;;
1645 ;;
1646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1647;; CODE PAGE: 850
1648;; STATE: Circumflex Upper
1649;; KEYBOARD TYPES: All
1650;; TABLE TYPE: Translate
1651;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1652 ;;
1653 DW CP850_CI_UP_END-$ ;; length of state section
1654 DB CIRCUMFLEX_UPPER ;; State ID
1655 DW ANY_KB ;; Keyboard Type
1656 DB 94,0 ;; error character = standalone accent
1657 ;;
1658 DW CP850_CI_UP_T1_END-$ ;; Size of xlat table
1659 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1660 DB 5 ;; number of scans
1661 DB 18,0D2H ;; E circumflex
1662 DB 22,0EAH ;; U circumflex
1663 DB 23,0D7H ;; I circumflex
1664 DB 24,0E2H ;; O circumflex
1665 DB 30,0B6H ;; A circumflex
1666CP850_CI_UP_T1_END: ;;
1667 ;;
1668 DW 0 ;; Size of xlat table - null table
1669 ;;
1670CP850_CI_UP_END: ;; length of state section
1671 ;;
1672;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1673 ;;
1674 DW 0 ;; LAST STATE
1675 ;;
1676CP850_XLAT_END: ;;
1677;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1678 ;;
1679CODE ENDS ;;
1680 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFSV.ASM b/v4.0/src/DEV/KEYBOARD/KDFSV.ASM
new file mode 100644
index 0000000..b3d37f9
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFSV.ASM
@@ -0,0 +1,1687 @@
1 PAGE ,132
2 TITLE DOS - Keyboard Definition File
3;LATEST CHANGE MULTIPLICATION & DIVISION SIGNS
4;DOLLAR SIGN output ON P12 should be International Currency sign
5;Enabled P12 Tag for CP850 UC section
6;****************** CNS 12/18
7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8;; DOS - - NLS Support - Keyboard Definition File
9;; (c) Copyright 1988 Microsoft
10;;
11;; This file contains the keyboard tables for Swedish
12;;
13;; Linkage Instructions:
14;; Refer to KDF.ASM.
15;;
16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
17 ;;
18 INCLUDE KEYBSHAR.INC ;;
19 INCLUDE POSTEQU.INC ;;
20 INCLUDE KEYBMAC.INC ;;
21 ;;
22 PUBLIC SV_LOGIC ;;
23 PUBLIC SV_437_XLAT ;;
24 PUBLIC SV_850_XLAT ;;
25 ;;
26CODE SEGMENT PUBLIC 'CODE' ;;
27 ASSUME CS:CODE,DS:CODE ;;
28 ;;
29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
30;; Standard translate table options are a linear search table
31;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
33 ;;
34STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
35 ;;
36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
37;;***************************************
38;; SV State Logic
39;;***************************************
40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
41 ;;
42 ;;
43SV_LOGIC:
44
45 DW LOGIC_END-$ ;; length
46 ;;
47 DW 0 ;; special features
48 ;;
49 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
50 ;;
51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
52;; OPTIONS: If we find a scan match in
53;; an XLATT or SET_FLAG operation then
54;; exit from INT 9.
55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
56 ;;
57 OPTION EXIT_IF_FOUND ;;
58 ;;
59 ;;
60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
61;; Dead key definitions must come before
62;; dead key translations to handle
63;; dead key + dead key.
64;; ***BD - THIS SECTION HAS BEEN UPDATED
65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
66 ;;
67 IFF EITHER_CTL,NOT ;;
68 IFF EITHER_ALT,NOT ;;
69 IFF EITHER_SHIFT ;;
70 SET_FLAG DEAD_UPPER ;;
71 ELSEF ;;
72 SET_FLAG DEAD_LOWER ;;
73 ENDIFF ;;
74 ELSEF ;;
75 IFKBD G_KB+P12_KB ;; For ENHANCED keyboard some
76 ANDF R_ALT_SHIFT ;; dead keys are on third shift
77 ANDF EITHER_SHIFT,NOT ;; which is accessed via the altgr key
78 SET_FLAG DEAD_THIRD ;;
79 ENDIFF ;;
80 ENDIFF ;;
81 ENDIFF ;;
82 ;;
83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
84;; ACUTE ACCENT TRANSLATIONS
85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
86 ;;
87ACUTE_PROC: ;;
88 ;;
89 IFF ACUTE,NOT ;;
90 GOTO DIARESIS_PROC ;;
91 ENDIFF ;;
92 ;;
93 RESET_NLS ;;
94 IFF R_ALT_SHIFT,NOT ;;
95 XLATT ACUTE_SPACE ;;
96 ENDIFF ;;
97 IFF EITHER_CTL,NOT ;;
98 ANDF EITHER_ALT,NOT ;;
99 IFF EITHER_SHIFT ;;
100 IFF CAPS_STATE ;;
101 XLATT ACUTE_LOWER ;;
102 ELSEF ;;
103 XLATT ACUTE_UPPER ;;
104 ENDIFF ;;
105 ELSEF ;;
106 IFF CAPS_STATE ;;
107 XLATT ACUTE_UPPER ;;
108 ELSEF ;;
109 XLATT ACUTE_LOWER ;;
110 ENDIFF ;;
111 ENDIFF ;;
112 ENDIFF ;;
113 ;;
114INVALID_ACUTE: ;;
115 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
116 BEEP ;; failed or we are ina bad shift state.
117 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
118 ;; through to generate the second char.
119 ;; Note that the dead key flag will be
120 ;; reset before we get here.
121 ;;
122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
123;; DIARESIS ACCENT TRANSLATIONS
124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
125 ;;
126DIARESIS_PROC: ;;
127 ;;
128 IFF DIARESIS,NOT ;;
129 GOTO GRAVE_PROC ;;
130 ENDIFF ;;
131 ;;
132 RESET_NLS ;;
133 IFF R_ALT_SHIFT,NOT ;;
134 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
135 ENDIFF ;;
136 IFF EITHER_CTL,NOT ;;
137 ANDF EITHER_ALT,NOT ;;
138 IFF EITHER_SHIFT ;;
139 IFF CAPS_STATE ;;
140 XLATT DIARESIS_LOWER ;;
141 ELSEF ;;
142 XLATT DIARESIS_UPPER ;;
143 ENDIFF ;;
144 ELSEF ;;
145 IFF CAPS_STATE ;;
146 XLATT DIARESIS_UPPER ;;
147 ELSEF ;;
148 XLATT DIARESIS_LOWER ;;
149 ENDIFF ;;
150 ENDIFF ;;
151 ENDIFF ;;
152 ;;
153INVALID_DIARESIS: ;;
154 PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent
155 BEEP ;; Invalid dead key combo.
156 GOTO NON_DEAD ;;
157 ;;
158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
159;; GRAVE ACCENT TRANSLATIONS
160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
161 ;;
162GRAVE_PROC: ;;
163 ;;
164 IFF GRAVE,NOT ;;
165 GOTO TILDE_PROC ;;
166 ENDIFF ;;
167 ;;
168 RESET_NLS ;;
169 IFF R_ALT_SHIFT,NOT ;;
170 XLATT GRAVE_SPACE ;;
171 ENDIFF ;;
172 IFF EITHER_CTL,NOT ;;
173 ANDF EITHER_ALT,NOT ;;
174 IFF EITHER_SHIFT ;;
175 IFF CAPS_STATE ;;
176 XLATT GRAVE_LOWER ;;
177 ELSEF ;;
178 XLATT GRAVE_UPPER ;;
179 ENDIFF ;;
180 ELSEF ;;
181 IFF CAPS_STATE,NOT ;;
182 XLATT GRAVE_LOWER ;;
183 ELSEF ;;
184 XLATT GRAVE_UPPER ;;
185 ENDIFF ;;
186 ENDIFF ;;
187 ENDIFF ;;
188 ;;
189INVALID_GRAVE: ;;
190 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
191 BEEP ;; Invalid dead key combo.
192 GOTO NON_DEAD ;;
193 ;;
194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
195;; TILDE ACCENT TRANSLATIONS
196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
197TILDE_PROC: ;;
198 ;;
199 IFF TILDE,NOT ;;
200 GOTO CIRCUMFLEX_PROC ;;
201 ENDIFF ;;
202 ;;
203 RESET_NLS ;;
204 IFF R_ALT_SHIFT,NOT ;;
205 XLATT TILDE_SPACE ;;
206 ENDIFF ;;
207 IFF EITHER_CTL,NOT ;;
208 ANDF EITHER_ALT,NOT ;;
209 IFF EITHER_SHIFT ;;
210 IFF CAPS_STATE ;;
211 XLATT TILDE_LOWER ;;
212 ELSEF ;;
213 XLATT TILDE_UPPER ;;
214 ENDIFF ;;
215 ELSEF ;;
216 IFF CAPS_STATE ;;
217 XLATT TILDE_UPPER ;;
218 ELSEF ;;
219 XLATT TILDE_LOWER ;;
220 ENDIFF ;;
221 ENDIFF ;;
222 ENDIFF ;;
223 ;;
224INVALID_TILDE: ;;
225 PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent
226 BEEP ;; Invalid dead key combo.
227 GOTO NON_DEAD ;;
228 ;;
229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
230;; CIRCUMFLEX ACCENT TRANSLATIONS
231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
232 ;;
233CIRCUMFLEX_PROC: ;;
234 ;;
235 IFF CIRCUMFLEX,NOT ;;
236 GOTO NON_DEAD ;;
237 ENDIFF ;;
238 ;;
239 RESET_NLS ;;
240 IFF R_ALT_SHIFT,NOT ;;
241 XLATT CIRCUMFLEX_SPACE ;;
242 ENDIFF ;;
243 IFF EITHER_CTL,NOT ;;
244 ANDF EITHER_ALT,NOT ;;
245 IFF EITHER_SHIFT ;;
246 IFF CAPS_STATE ;;
247 XLATT CIRCUMFLEX_LOWER ;;
248 ELSEF ;;
249 XLATT CIRCUMFLEX_UPPER ;;
250 ENDIFF ;;
251 ELSEF ;;
252 IFF CAPS_STATE,NOT ;;
253 XLATT CIRCUMFLEX_LOWER ;;
254 ELSEF ;;
255 XLATT CIRCUMFLEX_UPPER ;;
256 ENDIFF ;;
257 ENDIFF ;;
258 ENDIFF ;;
259 ;;
260INVALID_CIRCUMFLEX: ;;
261 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
262 BEEP ;; Invalid dead key combo.
263 GOTO NON_DEAD ;;
264 ;;
265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
266;; Upper, lower and third shifts
267;; ***BD - NON_DEAD THRU LOGIC_END IS UPDATED
268;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
269NON_DEAD: ;;
270;ADDED FOR DIVIDE SIGN ;; ***** DIVIDE OMITTED **** CNS
271 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
272 ANDF LC_E0 ;; the "/" on the numeric pad of the
273; IFF EITHER_CTL,NOT ;; country comforms with U.S. currently
274; ANDF EITHER_ALT,NOT
275; XLATT DIVIDE_SIGN ;;
276; ENDIFF
277;BD END OF ADDITION
278 EXIT_STATE_LOGIC ;;
279 ENDIFF ;;
280 ;;
281 IFF EITHER_CTL,NOT ;; Lower and upper case. Alphabetic
282 IFF EITHER_ALT,NOT ;; keys are affected by CAPS LOCK.
283 IFF EITHER_SHIFT ;; Numeric keys are not.
284;;***BD ADDED FOR NUMERIC PAD
285 IFF NUM_STATE,NOT ;;
286 XLATT NUMERIC_PAD ;;
287 ENDIFF ;;
288;;***BD END OF ADDITION
289 XLATT NON_ALPHA_UPPER ;;
290 IFF CAPS_STATE ;;
291 XLATT ALPHA_LOWER ;;
292 ELSEF ;;
293 XLATT ALPHA_UPPER ;;
294 ENDIFF ;;
295 ELSEF ;;
296;;***BD ADDED FOR NUMERIC PAD
297 IFF NUM_STATE ;;
298 XLATT NUMERIC_PAD ;;
299 ENDIFF ;;
300;;***BD END OF ADDITION
301 XLATT NON_ALPHA_LOWER ;;
302 IFF CAPS_STATE ;;
303 XLATT ALPHA_UPPER ;;
304 ELSEF ;;
305 XLATT ALPHA_LOWER ;;
306 ENDIFF ;;
307 ENDIFF ;; Third and Fourth shifts
308 ELSEF ;; ctl off, alt on at this point
309 IFKBD XT_KB+AT_KB+JR_KB ;; XT, AT, JR keyboards. Nordics
310 IFF EITHER_SHIFT ;; only.
311 XLATT FOURTH_SHIFT ;; ALT + shift
312 ELSEF ;;
313 XLATT THIRD_SHIFT ;; ALT
314 ENDIFF ;;
315 ELSEF ;; ENHANCED keyboard
316 IFF R_ALT_SHIFT ;; ALTGr
317 ANDF EITHER_SHIFT,NOT ;;
318 XLATT THIRD_SHIFT ;;
319 ENDIFF ;;
320 ENDIFF ;;
321 ENDIFF ;;
322 ENDIFF ;;
323;**************************************;;
324 IFF EITHER_SHIFT,NOT ;;
325 IFKBD XT_KB+AT_KB+JR_KB ;;
326 IFF EITHER_CTL ;;
327 ANDF ALT_SHIFT ;;
328 XLATT ALT_CASE ;;
329 ENDIFF ;;
330 ENDIFF ;;
331 IFKBD G_KB+P12_KB ;;
332 IFF EITHER_CTL ;;
333 ANDF ALT_SHIFT ;;
334 IFF R_ALT_SHIFT,NOT ;;
335 XLATT ALT_CASE ;;
336 ENDIFF ;;
337 ENDIFF ;;
338 ENDIFF ;;
339 ENDIFF ;;
340;**************************************;;
341 IFKBD AT_KB+JR_KB+XT_KB ;;
342 IFF EITHER_CTL,NOT ;;
343 IFF ALT_SHIFT ;; ALT - case
344 XLATT ALT_CASE ;;
345 ENDIFF ;;
346 ELSEF ;;
347 IFF EITHER_ALT,NOT ;; CTRL - case
348 XLATT CTRL_CASE ;;
349 ENDIFF ;;
350 ENDIFF ;;
351 ENDIFF ;;
352 ;;
353 IFKBD G_KB+P12_KB ;;
354 IFF EITHER_CTL,NOT ;;
355 IFF ALT_SHIFT ;; ALT - case
356 ANDF R_ALT_SHIFT,NOT ;;
357 XLATT ALT_CASE ;;
358 ENDIFF ;;
359 ELSEF ;;
360 IFF EITHER_ALT,NOT ;; CTRL - case
361 XLATT CTRL_CASE ;;
362 ENDIFF ;;
363 ENDIFF ;;
364 ENDIFF ;;
365 ;;
366 EXIT_STATE_LOGIC ;;
367 ;;
368LOGIC_END: ;;
369 ;;
370;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
371;;**********************************************************************
372;; SV Common Translate Section
373;; This section contains translations for the lower 128 characters
374;; only since these will never change from code page to code page.
375;; Some common Characters are included from 128 - 165 where appropriate.
376;; In addition the dead key "Set Flag" tables are here since the
377;; dead keys are on the same keytops for all code pages.
378;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
379 ;;
380 PUBLIC SV_COMMON_XLAT ;;
381SV_COMMON_XLAT: ;;
382 ;;
383 DW COMMON_XLAT_END-$ ;; length of section
384 DW -1 ;; code page
385 ;;
386 ;;
387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
388;; CODE PAGE: Common
389;; STATE: Lower Shift Dead Key
390;; KEYBOARD TYPES: All
391;; TABLE TYPE: Flag Table
392;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
393 ;;
394 DW COM_DK_LO_END-$ ;; length of state section
395 DB DEAD_LOWER ;; State ID
396 DW ANY_KB ;; Keyboard Type
397 DB -1,-1 ;; Buffer entry for error character
398 ;; Set Flag Table
399 DW 2 ;; number of entries
400 DB 13 ;; scan code
401 FLAG ACUTE ;; flag bit to set
402 DB 27 ;;
403 FLAG DIARESIS ;;
404 ;;
405 ;;
406COM_DK_LO_END: ;;
407 ;;
408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
409;; CODE PAGE: Common
410;; STATE: Upper Shift Dead Key
411;; KEYBOARD TYPES: All
412;; TABLE TYPE: Flag Table
413;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
414 ;;
415 DW COM_DK_UP_END-$ ;; length of state section
416 DB DEAD_UPPER ;; State ID
417 DW ANY_KB ;; Keyboard Type
418 DB -1,-1 ;; Buffer entry for error character
419 ;; Set Flag Table
420 DW 2 ;; number of entries
421 DB 13 ;; scan code
422 FLAG GRAVE ;; flag bit to set
423 DB 27 ;;
424 FLAG CIRCUMFLEX ;;
425 ;;
426COM_DK_UP_END: ;;
427 ;;
428;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
429;; CODE PAGE: Common
430;; STATE: Third Shift Dead Key
431;; KEYBOARD TYPES: G, P12
432;; TABLE TYPE: Flag Table
433;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
434 ;;
435 DW COM_DK_TH_END-$ ;; length of state section
436 DB DEAD_THIRD ;; State ID
437 DW G_KB+P12_KB ;; Keyboard Type
438 DB -1,-1 ;; Buffer entry for error character
439 ;; Set Flag Table
440 DW 1 ;; number of entries
441 DB 27 ;; scan code
442 FLAG TILDE ;; flag bit to set
443 ;;
444COM_DK_TH_END: ;;
445 ;;
446 ;;
447 ;;
448;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
449;;******************************
450;;***BD - ADDED FOR NUMERIC PAD (DECIMAL SEPERATOR)
451;;******************************
452;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
453;; CODE PAGE: Common ;;********* CNS ******* change
454;; STATE: Numeric Key Pad
455;; KEYBOARD TYPES: All except the p12
456;; TABLE TYPE: Translate
457;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
458 ;;
459 DW COM_PAD_K1_END-$ ;; length of state section
460 DB NUMERIC_PAD ;; State ID
461 DW G_KB+AT_KB+XT_KB ;; Keyboard Type
462 DB -1,-1 ;; Buffer entry for error character
463 ;;
464 DW COM_PAD_K1_T1_END-$ ;; Size of xlat table
465 DB STANDARD_TABLE ;; xlat options:
466 DB 1 ;; number of entries
467 DB 83,',' ;; decimal seperator = ,
468COM_PAD_K1_T1_END: ;;
469 ;;
470 DW 0 ;; Size of xlat table - null table
471 ;;
472COM_PAD_K1_END: ;;
473 ;;
474;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
475;;******************************
476;;***BD - ADDED FOR ALT CASE
477;;******************************
478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
479;; CODE PAGE: Common
480;; STATE: Alt Case
481;; KEYBOARD TYPES: G, P12
482;; TABLE TYPE: Translate
483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
484 ;;
485 DW COM_ALT_K1_END-$ ;; length of state section
486 DB ALT_CASE ;; State ID
487 DW G_KB+P12_KB ;; Keyboard Type
488 DB -1,-1 ;; Buffer entry for error character
489 ;;
490 DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
491 DB TYPE_2_TAB ;; xlat options:
492 DB 0 ;; 2 number of entries
493; DB 12,-1,-1 ;;
494; DB 53,0,82H ;;
495COM_ALT_K1_T1_END: ;;
496 ;;
497 DW 0 ;; Size of xlat table - null table
498 ;;
499COM_ALT_K1_END: ;;
500 ;;
501;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
502;;******************************
503;;***BD - ADDED FOR CTRL CASE
504;;******************************
505;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
506;; CODE PAGE: Common
507;; STATE: Ctrl Case
508;; KEYBOARD TYPES: XT, JR, AT
509;; TABLE TYPE: Translate
510;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
511 ;;
512 DW COM_CTRL_K1_END-$ ;; length of state section
513 DB CTRL_CASE ;; State ID
514 DW XT_KB+JR_KB+AT_KB ;; Keyboard Type
515 DB -1,-1 ;; Buffer entry for error character
516 ;;
517 DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
518 DB TYPE_2_TAB ;; xlat options:
519 DB 2 ;; number of entries
520 DB 12,-1,-1 ;;
521 DB 53,01FH,35h ;;
522COM_CTRL_K1_T1_END: ;;
523 ;;
524 DW 0 ;; Size of xlat table - null table
525 ;;
526COM_CTRL_K1_END: ;;
527 ;;
528;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
529;; CODE PAGE: Common
530;; STATE: Ctrl Case
531;; KEYBOARD TYPES: G, P12
532;; TABLE TYPE: Translate
533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
534 ;;
535 DW COM_CTRL_K2_END-$ ;; length of state section
536 DB CTRL_CASE ;; State ID
537 DW G_KB+P12_KB ;; Keyboard Type
538 DB -1,-1 ;; Buffer entry for error character
539 ;;
540 DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table
541 DB TYPE_2_TAB ;; xlat options:
542 DB 8 ;; number of entries
543 DB 9,01BH,09H ;;
544 DB 10,01DH,0AH ;;
545 DB 12,-1,-1 ;;
546 DB 26,-1,-1 ;;
547 DB 27,-1,-1 ;;
548 DB 43,-1,-1 ;;
549 DB 53,01FH,35H ;;
550 DB 86,01CH,56H ;;
551COM_CTRL_K2_T1_END: ;;
552 ;;
553 DW 0 ;; Size of xlat table - null table
554 ;;
555COM_CTRL_K2_END: ;;
556 ;;
557;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
558;; CODE PAGE: Common
559;; STATE: Alpha Lower Case
560;; KEYBOARD TYPES: All
561;; TABLE TYPE: Translate
562;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
563 ;;
564 DW COM_AL_LO_END-$ ;; length of state section
565 DB ALPHA_LOWER ;; State ID
566 DW ANY_KB ;; Keyboard Type
567 DB -1,-1 ;; Buffer entry for error character
568 ;;
569 DW COM_AL_LO_T1_END-$ ;; Size of xlat table
570 DB STANDARD_TABLE ;; xlat options:
571 DB 3 ;; number of entries
572 DB 26,086H ;; a-overcircle
573 DB 39,094H ;; o-diaeresis
574 DB 40,084H ;; a-diaeresis
575COM_AL_LO_T1_END: ;;
576 ;;
577 DW 0 ;; Size of xlat table - null table
578 ;;
579COM_AL_LO_END: ;;
580 ;;
581;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
582;; CODE PAGE: Common
583;; STATE: Alpha Upper Case
584;; KEYBOARD TYPES: All
585;; TABLE TYPE: Translate
586;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
587 ;;
588 DW COM_AL_UP_END-$ ;; length of state section
589 DB ALPHA_UPPER ;; State ID
590 DW ANY_KB ;; Keyboard Type
591 DB -1,-1 ;; Buffer entry for error character
592 ;;
593 DW COM_AL_UP_T1_END-$ ;; Size of xlat table
594 DB STANDARD_TABLE ;; xlat options:
595 DB 3 ;; number of entries
596 DB 26,08FH ;; A-OVERCIRCLE
597 DB 39,099H ;; A-DIAERESIS
598 DB 40,08EH ;; O-DIAERESIS
599COM_AL_UP_T1_END: ;;
600 ;;
601 DW 0 ;; Size of xlat table - null table
602 ;;
603COM_AL_UP_END: ;;
604 ;;
605 ;;
606;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
607;; CODE PAGE: Common
608;; STATE: Non-Alpha Lower Case
609;; KEYBOARD TYPES: G + P12
610;; TABLE TYPE: Translate
611;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
612 ;;
613 DW COM_NA_LO_K1_END-$ ;; length of state section
614 DB NON_ALPHA_LOWER ;; State ID
615 DW G_KB+P12_KB ;; Keyboard Type
616 DB -1,-1 ;; Buffer entry for error character
617 ;;
618 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
619 DB STANDARD_TABLE ;; xlat options:
620 DB 4 ;; number of entries
621 DB 12,"+" ;; + INCLUDED FOR SIMPLIC.
622 DB 43,"'" ;; '
623 DB 86,"<" ;; <
624 DB 53,"-" ;; -
625COM_NA_LO_K1_T1_END: ;;
626 ;;
627 DW 0 ;; Size of xlat table - null table
628 ;;
629COM_NA_LO_K1_END: ;;
630 ;;
631;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
632;; CODE PAGE: Common
633;; STATE: Non-Alpha Lower Case
634;; KEYBOARD TYPES: XT + JR
635;; TABLE TYPE: Translate
636;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
637 ;;
638 DW COM_NA_LO_K2_END-$ ;; length of state section
639 DB NON_ALPHA_LOWER ;; State ID
640 DW XT_KB+JR_KB ;; Keyboard Type
641 DB -1,-1 ;; Buffer entry for error character
642 ;;
643 DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table
644 DB STANDARD_TABLE ;; xlat options:
645 DB 4 ;; number of entries
646 DB 12,"+" ;; +
647 DB 41,"'" ;; '
648 DB 43,"<" ;; <
649 DB 53,"-" ;; -
650COM_NA_LO_K2_T1_END: ;;
651 ;;
652 DW 0 ;; Size of xlat table - null table
653 ;;
654COM_NA_LO_K2_END: ;;
655 ;;
656;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
657;; CODE PAGE: Common
658;; STATE: Non-Alpha Lower Case
659;; KEYBOARD TYPES: AT
660;; TABLE TYPE: Translate
661;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
662 ;;
663 DW COM_NA_LO_K3_END-$ ;; length of state section
664 DB NON_ALPHA_LOWER ;; State ID
665 DW AT_KB ;; Keyboard Type
666 DB -1,-1 ;; Buffer entry for error character
667 ;;
668 DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table
669 DB STANDARD_TABLE ;; xlat options:
670 DB 4 ;; number of entries
671 DB 12,"+" ;; +
672 DB 41,"<" ;; <
673 DB 43,"'" ;; '
674 DB 53,"-" ;; -
675COM_NA_LO_K3_T1_END: ;;
676 ;;
677 DW 0 ;; Size of xlat table - null table
678 ;;
679COM_NA_LO_K3_END: ;;
680 ;;
681;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
682;; CODE PAGE: Common
683;; STATE: Non-Alpha Upper Case
684;; KEYBOARD TYPES: G + P12
685;; TABLE TYPE: Translate
686;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
687 ;;
688 DW COM_NA_UP_K1_END-$ ;; length of state section
689 DB NON_ALPHA_UPPER ;; State ID
690 DW G_KB + P12_KB ;; Keyboard Type
691 DB -1,-1 ;; Buffer entry for error character
692 ;;
693 DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table
694 DB STANDARD_TABLE ;; xlat options:
695 DB 13 ;; number of entries
696 DB 3,'"' ;;
697 DB 7,'&' ;;
698 DB 8,'/' ;;
699 DB 9,'(' ;;
700 DB 10,')' ;;
701 DB 11,'=' ;;
702 DB 12,'?' ;;
703 DB 41,'«' ;;
704 DB 43,'*' ;;
705 DB 51,';' ;;
706 DB 52,':' ;;
707 DB 53,'_' ;;
708 DB 86,'>' ;;
709COM_NA_UP_K1_T1_END: ;;
710 ;;
711 DW 0 ;; Size of xlat table - null table
712 ;;
713COM_NA_UP_K1_END: ;;
714 ;;
715 ;;
716;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
717;; CODE PAGE: Common
718;; STATE: Non-Alpha Upper Case
719;; KEYBOARD TYPES: XT + JR
720;; TABLE TYPE: Translate
721;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
722 ;;
723 DW COM_NA_UP_K2_END-$ ;; length of state section
724 DB NON_ALPHA_UPPER ;; State ID
725 DW XT_KB + JR_KB ;; Keyboard Type
726 DB -1,-1 ;; Buffer entry for error character
727 ;;
728 DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table
729 DB STANDARD_TABLE ;; xlat options:
730 DB 13 ;; number of entries
731 DB 3,'"' ;;
732 DB 4,09CH ;; POUND STERLING
733 DB 7,'&' ;;
734 DB 8,'/' ;;
735 DB 9,'(' ;;
736 DB 10,')' ;;
737 DB 11,'=' ;;
738 DB 12,'?' ;;
739 DB 41,'*' ;;
740 DB 43,'>' ;;
741 DB 51,';' ;;
742 DB 52,':' ;;
743 DB 53,'_' ;;
744COM_NA_UP_K2_T1_END: ;;
745 ;;
746 DW 0 ;; Size of xlat table - null table
747 ;;
748COM_NA_UP_K2_END: ;;
749 ;;
750 ;;
751;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
752;; CODE PAGE: Common
753;; STATE: Non-Alpha Upper Case
754;; KEYBOARD TYPES: AT
755;; TABLE TYPE: Translate
756;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
757 ;;
758 DW COM_NA_UP_K3_END-$ ;; length of state section
759 DB NON_ALPHA_UPPER ;; State ID
760 DW AT_KB ;; Keyboard Type
761 DB -1,-1 ;; Buffer entry for error character
762 ;;
763 DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table
764 DB STANDARD_TABLE ;; xlat options:
765 DB 13 ;; number of entries
766 DB 3,'"' ;;
767 DB 4,09CH ;; POUND STERLING
768 DB 7,'&' ;;
769 DB 8,'/' ;;
770 DB 9,'(' ;;
771 DB 10,')' ;;
772 DB 11,'=' ;;
773 DB 12,'?' ;;
774 DB 41,'>' ;;
775 DB 43,'*' ;;
776 DB 51,';' ;;
777 DB 52,':' ;;
778 DB 53,'_' ;;
779COM_NA_UP_K3_T1_END: ;;
780 ;;
781 DW 0 ;; Size of xlat table - null table
782 ;;
783COM_NA_UP_K3_END: ;;
784 ;;
785 ;;
786;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
787;; CODE PAGE: Common
788;; STATE: Third Shift
789;; KEYBOARD TYPES: G, P12
790;; TABLE TYPE: Translate
791;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
792 ;;
793 DW COM_THIRD_END-$ ;; length of state section
794 DB THIRD_SHIFT ;; State ID
795 DW G_KB+P12_KB ;; Keyboard Type FERRARI
796 DB -1,-1 ;; Buffer entry for error character
797 ;;
798 DW COM_THIRD_T1_END-$ ;; Size of xlat table
799 DB STANDARD_TABLE ;; xlat options:
800 DB 9 ;; number of entries
801 DB 3,'@' ;;
802 DB 4,09CH ;; œ
803 DB 5,'$' ;;
804 DB 8,'{' ;;
805 DB 9,'[' ;;
806 DB 10,']' ;;
807 DB 11,'}' ;;
808 DB 12,'\' ;; Broken Vertical Line
809 DB 86,'|' ;;
810COM_THIRD_T1_END: ;;
811 ;;
812 DW 0 ;; Last xlat table
813COM_THIRD_END: ;;
814 ;;
815;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
816;; CODE PAGE: Common
817;; STATE: Third Shift (ALTERNATE)
818;; KEYBOARD TYPES: XT, JR
819;; TABLE TYPE: Translate
820;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
821 ;;
822 DW COM_THIRD_K1_END-$ ;; length of state section
823 DB THIRD_SHIFT ;; State ID
824 DW XT_KB+JR_KB ;; Keyboard Type
825 DB -1,-1 ;; Buffer entry for error character
826 ;;
827 DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table
828 DB TYPE_2_TAB ;; xlat options:
829 DB 9 ;; number of entries
830 DB 12,'-','-' ;;
831 DB 13,'=','=' ;;
832 DB 26,'[','[' ;;
833 DB 27,']',']' ;;
834 DB 39,';',';' ;;
835 DB 40,027H,027H ;;
836 DB 41,060H,060H ;;
837 DB 43,'\','\' ;;
838 DB 53,'/','/' ;;
839COM_THIRD_K1_T1_END: ;;
840 ;;
841 DW 0 ;; Last xlat table
842COM_THIRD_K1_END: ;;
843 ;;
844;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
845;; CODE PAGE: Common
846;; STATE: Third Shift (ALTERNATE)
847;; KEYBOARD TYPES: AT
848;; TABLE TYPE: Translate
849;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
850 ;;
851 DW COM_THIRD_K2_END-$ ;; length of state section
852 DB THIRD_SHIFT ;; State ID
853 DW AT_KB ;; Keyboard Type
854 DB -1,-1 ;; Buffer entry for error character
855 ;;
856 DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table
857 DB TYPE_2_TAB ;; xlat options:
858 DB 9 ;; number of entries
859 DB 12,'-','-' ;;
860 DB 13,'=','=' ;;
861 DB 26,'[','[' ;;
862 DB 27,']',']' ;;
863 DB 39,';',';' ;;
864 DB 40,027H,027H ;;
865 DB 41,'\','\' ;;
866 DB 43,060H,060H ;;
867 DB 53,'/','/' ;;
868COM_THIRD_K2_T1_END: ;;
869 ;;
870 DW 0 ;; Last xlat table
871COM_THIRD_K2_END: ;;
872 ;;
873;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
874;; CODE PAGE: Common
875;; STATE: Fourth Shift (ALTERNATE+SHIFT)
876;; KEYBOARD TYPES: XT, JR
877;; TABLE TYPE: Translate
878;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
879 ;;
880 DW COM_FOURTH_END-$ ;; length of state section
881 DB FOURTH_SHIFT ;; State ID
882 DW XT_KB+JR_KB ;; Keyboard Type
883 DB -1,-1 ;; Buffer entry for error character
884 ;;
885 DW COM_FOURTH_T1_END-$ ;; Size of xlat table
886 DB TYPE_2_TAB ;; xlat options:
887 DB 18 ;; number of entries
888 DB 3,'@','@' ;;
889 DB 4,'#','#' ;;
890 DB 7,'^','^' ;;
891 DB 8,'&','&' ;;
892 DB 9,'*','*' ;;
893 DB 10,'(','(' ;;
894 DB 11,')',')' ;;
895 DB 12,'_','_' ;;
896 DB 13,'+','+' ;;
897 DB 26,'{','{' ;;
898 DB 27,'}','}' ;;
899 DB 39,':',':' ;;
900 DB 40,'"','"' ;;
901 DB 41,'~','~' ;;
902 DB 43,'|','|' ;;
903 DB 51,'<','<' ;;
904 DB 52,'>','>' ;;
905 DB 53,'?','?' ;;
906COM_FOURTH_T1_END: ;;
907 ;;
908 DW 0 ;; Last xlat table
909COM_FOURTH_END: ;;
910 ;;
911;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
912;; CODE PAGE: Common
913;; STATE: Fourth Shift (ALTERNATE+SHIFT)
914;; KEYBOARD TYPES: AT
915;; TABLE TYPE: Translate
916;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
917 ;;
918 DW COM_FOURTH_K1_END-$ ;; length of state section
919 DB FOURTH_SHIFT ;; State ID
920 DW AT_KB ;; Keyboard Type
921 DB -1,-1 ;; Buffer entry for error character
922 ;;
923 DW COM_FOURTH_K1_T1_END-$ ;; Size of xlat table
924 DB TYPE_2_TAB ;; xlat options:
925 DB 18 ;; number of entries
926 DB 3,'@','@' ;;
927 DB 4,'#','#' ;;
928 DB 7,'^','^' ;;
929 DB 8,'&','&' ;;
930 DB 9,'*','*' ;;
931 DB 10,'(','(' ;;
932 DB 11,')',')' ;;
933 DB 12,'_','_' ;;
934 DB 13,'+','+' ;;
935 DB 26,'{','{' ;;
936 DB 27,'}','}' ;;
937 DB 39,':',':' ;;
938 DB 40,'"','"' ;;
939 DB 41,'|','|' ;;
940 DB 43,'~','~' ;;
941 DB 51,'<','<' ;;
942 DB 52,'>','>' ;;
943 DB 53,'?','?' ;;
944COM_FOURTH_K1_T1_END: ;;
945 ;;
946 DW 0 ;; Last xlat table
947COM_FOURTH_K1_END: ;;
948 ;;
949;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
950;; CODE PAGE: Common
951;; STATE: Grave Lower
952;; KEYBOARD TYPES: All
953;; TABLE TYPE: Translate
954;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
955 ;;
956 DW COM_GR_LO_END-$ ;; length of state section
957 DB GRAVE_LOWER ;; State ID
958 DW ANY_KB ;; Keyboard Type
959 DB 96,0 ;; error character = standalone accent
960 ;;
961 DW COM_GR_LO_T1_END-$ ;; Size of xlat table
962 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
963 DB 5 ;; number of scans
964 DB 18,'Š' ;; scan code,ASCII - e
965 DB 22,'—' ;; scan code,ASCII - u
966 DB 23,'' ;; scan code,ASCII - i
967 DB 24,'•' ;; scan code,ASCII - o
968 DB 30,'…' ;; scan code,ASCII - a
969COM_GR_LO_T1_END: ;;
970 ;;
971 DW 0 ;; Size of xlat table - null table
972 ;;
973COM_GR_LO_END: ;; length of state section
974 ;;
975;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
976;; CODE PAGE: Common
977;; STATE: Grave Space Bar
978;; KEYBOARD TYPES: All
979;; TABLE TYPE: Translate
980;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
981 ;;
982 DW COM_GR_SP_END-$ ;; length of state section
983 DB GRAVE_SPACE ;; State ID
984 DW ANY_KB ;; Keyboard Type
985 DB 96,0 ;; error character = standalone accent
986 ;;
987 DW COM_GR_SP_T1_END-$ ;; Size of xlat table
988 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
989 DB 1 ;; number of scans
990 DB 57,96 ;; STANDALONE GRAVE
991COM_GR_SP_T1_END: ;;
992 ;;
993 DW 0 ;; Size of xlat table - null table
994 ;;
995COM_GR_SP_END: ;; length of state section
996 ;;
997;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
998;; CODE PAGE: Common
999;; STATE: Circumflex Lower
1000;; KEYBOARD TYPES: All
1001;; TABLE TYPE: Translate
1002;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1003 ;;
1004 DW COM_CI_LO_END-$ ;; length of state section
1005 DB CIRCUMFLEX_LOWER ;; State ID
1006 DW ANY_KB ;; Keyboard Type
1007 DB 94,0 ;; error character = standalone accent
1008 ;;
1009 DW COM_CI_LO_T1_END-$ ;; Size of xlat table
1010 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1011 DB 5 ;; number of scans
1012 DB 18,'ˆ' ;; scan code,ASCII - e
1013 DB 22,'–' ;; scan code,ASCII - u
1014 DB 23,'Œ' ;; scan code,ASCII - i
1015 DB 24,'“' ;; scan code,ASCII - o
1016 DB 30,'ƒ' ;; scan code,ASCII - a
1017COM_CI_LO_T1_END: ;;
1018 ;;
1019 DW 0 ;;
1020 ;;
1021COM_CI_LO_END: ;;
1022 ;;
1023;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1024;; CODE PAGE: Common
1025;; STATE: Circumflex Space Bar
1026;; KEYBOARD TYPES: All
1027;; TABLE TYPE: Translate
1028;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1029 ;;
1030 DW COM_CI_SP_END-$ ;; length of state section
1031 DB CIRCUMFLEX_SPACE ;; State ID
1032 DW ANY_KB ;; Keyboard Type
1033 DB 94,0 ;; error character = standalone accent
1034 ;;
1035 DW COM_CI_SP_T1_END-$ ;; Size of xlat table
1036 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1037 DB 1 ;; number of scans
1038 DB 57,94 ;; STANDALONE CIRCUMFLEX
1039COM_CI_SP_T1_END: ;;
1040 ;;
1041 DW 0 ;; Size of xlat table - null table
1042 ;;
1043COM_CI_SP_END: ;; length of state section
1044 ;;
1045;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1046;; CODE PAGE: Common
1047;; STATE: Tilde Lower
1048;; KEYBOARD TYPES: All
1049;; TABLE TYPE: Translate
1050;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1051 ;;
1052 DW COM_TI_LO_END-$ ;; length of state section
1053 DB TILDE_LOWER ;; State ID
1054 DW ANY_KB ;; Keyboard Type
1055 DB 07EH,0 ;; error character = standalone accent
1056 ;;
1057 DW COM_TI_LO_T1_END-$ ;; Size of xlat table
1058 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1059 DB 1 ;; number of scans
1060 DB 49,0A4H ;; scan code,ASCII - ¤
1061 COM_TI_LO_T1_END: ;;
1062 ;;
1063 DW 0 ;;
1064 ;;
1065 COM_TI_LO_END: ;;
1066 ;;
1067;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1068;;; CODE PAGE: Common
1069;;; STATE: Tilde Upper Case
1070;;; KEYBOARD TYPES: All
1071;;; TABLE TYPE: Translate
1072;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1073 ;;
1074 DW COM_TI_UP_END-$ ;; length of state section
1075 DB TILDE_UPPER ;; State ID
1076 DW ANY_KB ;; Keyboard Type
1077 DB 07EH,0 ;; error character = standalone accent
1078 ;;
1079 DW COM_TI_UP_T1_END-$ ;; Size of xlat table
1080 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1081 DB 1 ;; number of scans
1082 DB 49,0A5H ;; scan code,ASCII - ¥
1083 COM_TI_UP_T1_END: ;;
1084 ;;
1085 DW 0 ;; Size of xlat table - null table
1086 ;;
1087 COM_TI_UP_END: ;; length of state section
1088 ;;
1089 ;;
1090;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1091;; CODE PAGE: Common
1092;; STATE: Tilde Space Bar
1093;; KEYBOARD TYPES: All
1094;; TABLE TYPE: Translate
1095;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1096 ;;
1097 DW COM_TI_SP_END-$ ;; length of state section
1098 DB TILDE_SPACE ;; State ID
1099 DW ANY_KB ;; Keyboard Type
1100 DB 07EH,0 ;; error character = standalone accent
1101 ;;
1102 DW COM_TI_SP_T1_END-$ ;; Size of xlat table
1103 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1104 DB 1 ;; number of scans
1105 DB 57,07EH ;; STANDALONE TILDE
1106COM_TI_SP_T1_END: ;;
1107 ;;
1108 DW 0 ;; Size of xlat table - null table
1109 ;;
1110COM_TI_SP_END: ;; length of state section
1111 ;;
1112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1113 DW 0 ;; Last State
1114COMMON_XLAT_END: ;;
1115 ;;
1116 ;;
1117 ;;
1118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1119;;***************************************
1120;; SV Specific Translate Section for 437
1121;;***************************************
1122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1123 ;;
1124 PUBLIC SV_437_XLAT ;;
1125SV_437_XLAT: ;;
1126 ;;
1127 DW CP437_XLAT_END-$ ;; length of section
1128 DW 437 ;;
1129 ;;
1130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1131;; CODE PAGE: 437
1132;; STATE: Non-Alpha Upper Case
1133;; KEYBOARD TYPES: G, P12
1134;; TABLE TYPE: Translate
1135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1136 ;;
1137 DW CP437_NA_UP_END-$ ;; length of state section
1138 DB NON_ALPHA_UPPER ;; State ID
1139 DW G_KB+P12_KB ;; Keyboard Type
1140 DB -1,-1 ;; Buffer entry for error character
1141 ;;
1142 DW CP437_NA_UP_T1_END-$ ;; Size of xlat table
1143 DB STANDARD_TABLE ;; xlat options:
1144 DB 1 ;; number of entries
1145 DB 5,0 ;; International Currency Symb
1146CP437_NA_UP_T1_END: ;;
1147 ;;
1148 DW 0 ;; Size of xlat table - null table
1149 ;;
1150CP437_NA_UP_END: ;;
1151 ;;
1152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1153;; CODE PAGE: 437
1154;; STATE: Non-Alpha Lower Case
1155;; KEYBOARD TYPES: G, P12
1156;; TABLE TYPE: Translate
1157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1158 ;;
1159 DW CP437_NA_K1_LO_END-$ ;; length of state section
1160 DB NON_ALPHA_LOWER ;; State ID
1161 DW G_KB+P12_KB ;; Keyboard Type
1162 DB -1,-1 ;; Buffer entry for error character
1163 ;;
1164 DW CP437_NA_LO_K1_T1_END-$ ;; Size of xlat table
1165 DB STANDARD_TABLE ;; xlat options:
1166 DB 1 ;; number of entries
1167 DB 41,015H ;; SECTION Symb
1168CP437_NA_LO_K1_T1_END: ;;
1169 ;;
1170 DW 0 ;; Size of xlat table - null table
1171 ;;
1172CP437_NA_K1_LO_END: ;;
1173 ;;
1174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1175;; CODE PAGE: 437
1176;; STATE: Acute Lower Case
1177;; KEYBOARD TYPES: All
1178;; TABLE TYPE: Translate
1179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1180 ;;
1181 DW CP437_AC_LO_END-$ ;; length of state section
1182 DB ACUTE_LOWER ;; State ID
1183 DW ANY_KB ;; Keyboard Type
1184 DB 39,0 ;; error character = standalone accent
1185 ;;
1186 DW CP437_AC_LO_T1_END-$ ;; Size of xlat table
1187 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1188 DB 5 ;; number of scans
1189 DB 18,'‚' ;; scan code,ASCII - e
1190 DB 22,'£' ;; scan code,ASCII - u
1191 DB 23,'¡' ;; scan code,ASCII - i
1192 DB 24,'¢' ;; scan code,ASCII - o
1193 DB 30,' ' ;; scan code,ASCII - a
1194CP437_AC_LO_T1_END: ;;
1195 ;;
1196 DW 0 ;; Size of xlat table - null table
1197 ;;
1198CP437_AC_LO_END: ;;
1199 ;;
1200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1201;; CODE PAGE: 437
1202;; STATE: Acute Upper Case
1203;; KEYBOARD TYPES: All
1204;; TABLE TYPE: Translate
1205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1206 ;;
1207 DW CP437_AC_UP_END-$ ;; length of state section
1208 DB ACUTE_UPPER ;; State ID
1209 DW ANY_KB ;; Keyboard Type
1210 DB 39,0 ;; error character = standalone accent
1211 ;;
1212 DW CP437_AC_UP_T1_END-$ ;; Size of xlat table
1213 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1214 DB 1 ;; number of entries
1215 DB 18,'' ;; scan code,ASCII -
1216CP437_AC_UP_T1_END: ;;
1217 ;;
1218 DW 0 ;; Size of xlat table - null table
1219 ;;
1220CP437_AC_UP_END: ;;
1221 ;;
1222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1223;; CODE PAGE: 437
1224;; STATE: Acute Space Bar
1225;; KEYBOARD TYPES: All
1226;; TABLE TYPE: Translate
1227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1228 ;;
1229 DW CP437_AC_SP_END-$ ;; length of state section
1230 DB ACUTE_SPACE ;; State ID
1231 DW ANY_KB ;; Keyboard Type
1232 DB 39,0 ;; error character = standalone accent
1233 ;;
1234 DW CP437_AC_SP_T1_END-$ ;; Size of xlat table
1235 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1236 DB 1 ;; number of scans
1237 DB 57,39 ;; scan code,ASCII - SPACE
1238CP437_AC_SP_T1_END: ;;
1239 ;;
1240 DW 0 ;; Size of xlat table - null table
1241 ;;
1242CP437_AC_SP_END: ;;
1243 ;;
1244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1245;; CODE PAGE: CP437
1246;; STATE: Diaresis Lower Case
1247;; KEYBOARD TYPES: All
1248;; TABLE TYPE: Translate
1249;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1250 ;;
1251 DW CP437_DI_LO_END-$ ;; length of state section
1252 DB DIARESIS_LOWER ;; State ID
1253 DW ANY_KB ;; Keyboard Type
1254 DB 254,0 ;; error character = standalone accent
1255 ;;
1256 DW CP437_DI_LO_T1_END-$ ;; Size of xlat table
1257 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1258 DB 6 ;; number of scans
1259 DB 18,'‰' ;; scan code,ASCII - e
1260 DB 21,'˜' ;; scan code,ASCII - y
1261 DB 22,'' ;; scan code,ASCII - u
1262 DB 23,'‹' ;; scan code,ASCII - i
1263 DB 24,'”' ;; scan code,ASCII - o
1264 DB 30,'„' ;; scan code,ASCII - a
1265CP437_DI_LO_T1_END: ;;
1266 ;;
1267 DW 0 ;; Size of xlat table - null table
1268 ;;
1269CP437_DI_LO_END: ;; length of state section
1270 ;;
1271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1272;; CODE PAGE: CP437
1273;; STATE: Diaresis Upper Case
1274;; KEYBOARD TYPES: All
1275;; TABLE TYPE: Translate
1276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1277 ;;
1278 DW CP437_DI_UP_END-$ ;; length of state section
1279 DB DIARESIS_UPPER ;; State ID
1280 DW ANY_KB ;; Keyboard Type
1281 DB 254,0 ;; error character = standalone accent
1282 ;;
1283 DW CP437_DI_UP_T1_END-$ ;; Size of xlat table
1284 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1285 DB 3 ;; number of scans
1286 DB 22,'š' ;; scan code,ASCII - U
1287 DB 24,'™' ;; scan code,ASCII - O
1288 DB 30,'Ž' ;; scan code,ASCII - A
1289CP437_DI_UP_T1_END: ;;
1290 ;;
1291 DW 0 ;; Size of xlat table - null table
1292 ;;
1293CP437_DI_UP_END: ;; length of state section
1294 ;;
1295 ;;
1296;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1297;; CODE PAGE: 437
1298;; STATE: Diaresis Space Bar
1299;; KEYBOARD TYPES: All
1300;; TABLE TYPE: Translate
1301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1302; ;;
1303; DW CP437_DI_SP_END-$ ;; length of state section
1304; DB DIARESIS_SPACE ;; State ID
1305; DW ANY_KB ;; Keyboard Type
1306; DB 254,0 ;; error character = standalone accent
1307; ;;
1308; DW CP437_DI_SP_T1_END-$ ;; Size of xlat table
1309; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1310; DB 1 ;; number of scans
1311; DB 57,254 ;; error character = standalone accent
1312;CP437_DI_SP_T1_END: ;;
1313; ;;
1314; DW 0 ;; Size of xlat table - null table
1315;CP437_DI_SP_END: ;; length of state section
1316; ;;
1317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1318 ;;
1319 DW 0 ;; LAST STATE
1320 ;;
1321CP437_XLAT_END: ;;
1322 ;;
1323;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1324;;***************************************
1325;; SV Specific Translate Section for 850
1326;;***************************************
1327;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1328 ;;
1329 PUBLIC SV_850_XLAT ;;
1330SV_850_XLAT: ;;
1331 ;;
1332 DW CP850_XLAT_END-$ ;; length of section
1333 DW 850 ;;
1334 ;;
1335 ;;
1336;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1337;; CODE PAGE: 850
1338;; STATE: Numeric Pad - Divide Sign
1339;; KEYBOARD TYPES: G, P12
1340;; TABLE TYPE: Translate
1341;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1342; ;;
1343; DW CP850_DIVID_END-$ ;; length of state section
1344; DB DIVIDE_SIGN ;; State ID
1345; DW G_KB+P12_KB ;; Keyboard Type
1346; DB -1,-1 ;; error character = standalone accent
1347; ;;
1348; DW CP850_DIVID_T1_END-$ ;; Size of xlat table
1349; DB TYPE_2_TAB ;; xlat options:
1350; DB 0 ;; number of scans
1351; DB 0E0H,0F6H,0E0H ;; DIVIDE SIGN omitted sv/su
1352; DB 53,0F6H,0E0H ;; has decidied to stick with U.S.
1353; DB 0E0H,09eH,0E0H ;; standards in order to use BASIC
1354; DB 55,09eH,0E0H ;;
1355;CP850_DIVID_T1_END: ;;
1356; ;;
1357; DW 0 ;; Size of xlat table - null table
1358; ;;
1359;CP850_DIVID_END: ;;
1360; ;;
1361;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1362;; CODE PAGE: 850
1363;; STATE: Numeric Key Pad - Multiplication
1364;; KEYBOARD TYPES: G, P12
1365;; TABLE TYPE: Translate
1366;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1367; ;;
1368; DW CP850_PAD_K1_END-$ ;; length of state section
1369; DB NUMERIC_PAD ;; State ID
1370; DW G_KB+P12_KB ;; Keyboard Type
1371; DB -1,-1 ;; Buffer entry for error character
1372; ;;
1373; DW CP850_PAD_K1_T1_END-$ ;; Size of xlat table
1374; DB STANDARD_TABLE ;; xlat options:
1375; DB 0 ;; number of entries
1376; DB 55,09eH (moved *** CNS ****) ;; MULTIPLICATION SIGN
1377;CP850_PAD_K1_T1_END: ;;
1378; ;;
1379; DW 0 ;; Size of xlat table - null table
1380; ;;
1381;CP850_PAD_K1_END: ;;
1382; ;;
1383;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1384;; CODE PAGE: 850
1385;; STATE: Non-Alpha Upper Case
1386;; KEYBOARD TYPES: G, P12
1387;; TABLE TYPE: Translate
1388;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1389 ;;
1390 DW CP850_NA_UP_END-$ ;; length of state section
1391 DB NON_ALPHA_UPPER ;; State ID
1392 DW G_KB+P12_KB ;; Keyboard Type *** CNS 12/18
1393 DB -1,-1 ;; Buffer entry for error character
1394 ;;
1395 DW CP850_NA_UP_T1_END-$ ;; Size of xlat table
1396 DB STANDARD_TABLE ;; xlat options:
1397 DB 1 ;; number of entries
1398 DB 5,0CFH ;; International Currency Symb
1399CP850_NA_UP_T1_END: ;;
1400 ;;
1401 DW 0 ;; Size of xlat table - null table
1402 ;;
1403CP850_NA_UP_END: ;;
1404 ;;
1405 ;;
1406;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1407;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1408;; CODE PAGE: 850
1409;; STATE: Non-Alpha Lower Case
1410;; KEYBOARD TYPES: G, P12
1411;; TABLE TYPE: Translate
1412;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1413 ;;
1414 DW CP850_NA_K1_LO_END-$ ;; length of state section
1415 DB NON_ALPHA_LOWER ;; State ID
1416 DW G_KB+P12_KB ;; Keyboard Type
1417 DB -1,-1 ;; Buffer entry for error character
1418 ;;
1419 DW CP850_NA_LO_K1_T1_END-$ ;; Size of xlat table
1420 DB STANDARD_TABLE ;; xlat options:
1421 DB 1 ;; number of entries
1422 DB 41,0F5H ;; SECTION Symb
1423CP850_NA_LO_K1_T1_END: ;;
1424 ;;
1425 DW 0 ;; Size of xlat table - null table
1426 ;;
1427CP850_NA_K1_LO_END: ;;
1428 ;;
1429;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1430;; CODE PAGE: 850
1431;; STATE: Acute Lower Case
1432;; KEYBOARD TYPES: All
1433;; TABLE TYPE: Translate
1434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1435 ;;
1436 DW CP850_AC_LO_END-$ ;; length of state section
1437 DB ACUTE_LOWER ;; State ID
1438 DW ANY_KB ;; Keyboard Type
1439 DB 239,0 ;; error character = standalone accent
1440 ;;
1441 DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
1442 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1443 DB 6 ;; number of scans
1444 DB 18,'‚' ;; scan code,ASCII - e
1445 DB 21,0ECH ;; y acute
1446 DB 22,'£' ;; scan code,ASCII - u
1447 DB 23,'¡' ;; scan code,ASCII - i
1448 DB 24,'¢' ;; scan code,ASCII - o
1449 DB 30,' ' ;; scan code,ASCII - a
1450CP850_AC_LO_T1_END: ;;
1451 ;;
1452 DW 0 ;; Size of xlat table - null table
1453 ;;
1454CP850_AC_LO_END: ;;
1455 ;;
1456;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1457;; CODE PAGE: 850
1458;; STATE: Acute Upper Case
1459;; KEYBOARD TYPES: All
1460;; TABLE TYPE: Translate
1461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1462 ;;
1463 DW CP850_AC_UP_END-$ ;; length of state section
1464 DB ACUTE_UPPER ;; State ID
1465 DW ANY_KB ;; Keyboard Type
1466 DB 239,0 ;; error character = standalone accent
1467 ;;
1468 DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
1469 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1470 DB 6 ;; number of entries
1471 DB 18,090H ;; E acute
1472 DB 21,0EDH ;; Y acute
1473 DB 22,0E9H ;; U acute
1474 DB 23,0D6H ;; I acute
1475 DB 24,0E0H ;; O acute
1476 DB 30,0B5H ;; A acute
1477CP850_AC_UP_T1_END: ;;
1478 ;;
1479 DW 0 ;; Size of xlat table - null table
1480 ;;
1481CP850_AC_UP_END: ;;
1482 ;;
1483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1484;; CODE PAGE: 850
1485;; STATE: Acute Space Bar
1486;; KEYBOARD TYPES: All
1487;; TABLE TYPE: Translate
1488;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1489 ;;
1490 DW CP850_AC_SP_END-$ ;; length of state section
1491 DB ACUTE_SPACE ;; State ID
1492 DW ANY_KB ;; Keyboard Type
1493 DB 239,0 ;; error character = standalone accent
1494 ;;
1495 DW CP850_AC_SP_T1_END-$ ;; Size of xlat table
1496 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1497 DB 1 ;; number of scans
1498 DB 57,239 ;; scan code,ASCII - SPACE
1499CP850_AC_SP_T1_END: ;;
1500 ;;
1501 DW 0 ;; Size of xlat table - null table
1502 ;;
1503CP850_AC_SP_END: ;;
1504 ;;
1505;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1506;; CODE PAGE: 850
1507;; STATE: Diaresis Lower Case
1508;; KEYBOARD TYPES: All
1509;; TABLE TYPE: Translate
1510;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1511 ;;
1512 DW CP850_DI_LO_END-$ ;; length of state section
1513 DB DIARESIS_LOWER ;; State ID
1514 DW ANY_KB ;; Keyboard Type
1515 DB 249,0 ;; error character = standalone accent
1516 ;;
1517 DW CP850_DI_LO_T1_END-$ ;; Size of xlat table
1518 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1519 DB 6 ;; number of scans
1520 DB 18,'‰' ;; scan code,ASCII - e
1521 DB 21,'˜' ;; scan code,ASCII - y
1522 DB 22,'' ;; scan code,ASCII - u
1523 DB 23,'‹' ;; scan code,ASCII - i
1524 DB 24,'”' ;; scan code,ASCII - o
1525 DB 30,'„' ;; scan code,ASCII - a
1526CP850_DI_LO_T1_END: ;;
1527 ;;
1528 DW 0 ;; Size of xlat table - null table
1529 ;;
1530CP850_DI_LO_END: ;; length of state section
1531 ;;
1532;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1533;; CODE PAGE: 850
1534;; STATE: Diaresis Upper Case
1535;; KEYBOARD TYPES: All
1536;; TABLE TYPE: Translate
1537;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1538 ;;
1539 DW CP850_DI_UP_END-$ ;; length of state section
1540 DB DIARESIS_UPPER ;; State ID
1541 DW ANY_KB ;; Keyboard Type
1542 DB 249,0 ;; error character = standalone accent
1543 ;;
1544 DW CP850_DI_UP_T1_END-$ ;; Size of xlat table
1545 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1546 DB 5 ;; number of scans
1547 DB 18,0D3H ;; E Diaeresis
1548 DB 22,'š' ;; U Diaeresis
1549 DB 23,0D8H ;; I Diaeresis
1550 DB 24,'™' ;; O Diaeresis
1551 DB 30,'Ž' ;; A Diaeresis
1552CP850_DI_UP_T1_END: ;;
1553 ;;
1554 DW 0 ;; Size of xlat table - null table
1555 ;;
1556CP850_DI_UP_END: ;; length of state section
1557 ;;
1558 ;;
1559;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1560;; CODE PAGE: 850
1561;; STATE: Diaresis Space Bar
1562;; KEYBOARD TYPES: All
1563;; TABLE TYPE: Translate
1564;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1565 ;;
1566 DW CP850_DI_SP_END-$ ;; length of state section
1567 DB DIARESIS_SPACE ;; State ID
1568 DW ANY_KB ;; Keyboard Type
1569 DB 249,0 ;; error character = standalone accent
1570 ;;
1571 DW CP850_DI_SP_T1_END-$ ;; Size of xlat table
1572 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1573 DB 1 ;; number of scans
1574 DB 57,249 ;; error character = standalone accent
1575CP850_DI_SP_T1_END: ;;
1576 ;;
1577 DW 0 ;; Size of xlat table - null table
1578CP850_DI_SP_END: ;; length of state section
1579 ;;
1580;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1581;; CODE PAGE: 850
1582;; STATE: Grave Upper
1583;; KEYBOARD TYPES: All
1584;; TABLE TYPE: Translate
1585;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1586 ;;
1587 DW CP850_GR_UP_END-$ ;; length of state section
1588 DB GRAVE_UPPER ;; State ID
1589 DW ANY_KB ;; Keyboard Type
1590 DB 96,0 ;; error character = standalone accent
1591 ;;
1592 DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
1593 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1594 DB 5 ;; number of scans
1595 DB 18,0D4H ;; E grave
1596 DB 22,0EBH ;; U grave
1597 DB 23,0DEH ;; I grave
1598 DB 24,0E3H ;; O grave
1599 DB 30,0B7H ;; A grave
1600CP850_GR_UP_T1_END: ;;
1601 ;;
1602 DW 0 ;; Size of xlat table - null table
1603 ;;
1604CP850_GR_UP_END: ;; length of state section
1605 ;;
1606;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1607;; CODE PAGE: 850
1608;; STATE: Tilde Lower
1609;; KEYBOARD TYPES: All
1610;; TABLE TYPE: Translate
1611;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1612 ;;
1613 DW CP850_TI_LO_END-$ ;; length of state section
1614 DB TILDE_LOWER ;; State ID
1615 DW ANY_KB ;; Keyboard Type
1616 DB 07EH,0 ;; error character = standalone accent
1617 ;;
1618 DW CP850_TI_LO_T1_END-$ ;; Size of xlat table
1619 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1620 DB 2 ;; number of scans
1621 DB 24,0E4H ;; scan code,ASCII - o tilde
1622 DB 30,0C6H ;; scan code,ASCII - a tilde
1623 CP850_TI_LO_T1_END: ;;
1624 ;;
1625 DW 0 ;;
1626 ;;
1627 CP850_TI_LO_END: ;;
1628 ;;
1629;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1630;;; CODE PAGE: 850
1631;;; STATE: Tilde Upper Case
1632;;; KEYBOARD TYPES: All
1633;;; TABLE TYPE: Translate
1634;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1635 ;;
1636 DW CP850_TI_UP_END-$ ;; length of state section
1637 DB TILDE_UPPER ;; State ID
1638 DW ANY_KB ;; Keyboard Type
1639 DB 07EH,0 ;; error character = standalone accent
1640 ;;
1641 DW CP850_TI_UP_T1_END-$ ;; Size of xlat table
1642 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1643 DB 2 ;; number of scans
1644 DB 24,0E5H ;; scan code,ASCII - O tilde
1645 DB 30,0C7H ;; scan code,ASCII - A tilde
1646 CP850_TI_UP_T1_END: ;;
1647 ;;
1648 DW 0 ;; Size of xlat table - null table
1649 ;;
1650 CP850_TI_UP_END: ;; length of state section
1651 ;;
1652 ;;
1653;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1654;; CODE PAGE: 850
1655;; STATE: Circumflex Upper
1656;; KEYBOARD TYPES: All
1657;; TABLE TYPE: Translate
1658;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1659 ;;
1660 DW CP850_CI_UP_END-$ ;; length of state section
1661 DB CIRCUMFLEX_UPPER ;; State ID
1662 DW ANY_KB ;; Keyboard Type
1663 DB 94,0 ;; error character = standalone accent
1664 ;;
1665 DW CP850_CI_UP_T1_END-$ ;; Size of xlat table
1666 DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
1667 DB 5 ;; number of scans
1668 DB 18,0D2H ;; E circumflex
1669 DB 22,0EAH ;; U circumflex
1670 DB 23,0D7H ;; I circumflex
1671 DB 24,0E2H ;; O circumflex
1672 DB 30,0B6H ;; A circumflex
1673CP850_CI_UP_T1_END: ;;
1674 ;;
1675 DW 0 ;; Size of xlat table - null table
1676 ;;
1677CP850_CI_UP_END: ;; length of state section
1678 ;;
1679;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1680 ;;
1681 DW 0 ;; LAST STATE
1682 ;;
1683CP850_XLAT_END: ;;
1684;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1685 ;;
1686CODE ENDS ;;
1687 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFUK.ASM b/v4.0/src/DEV/KEYBOARD/KDFUK.ASM
new file mode 100644
index 0000000..1b3d7cf
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFUK.ASM
@@ -0,0 +1,655 @@
1;CODE to be deleted has a double ;; followed by actual asm code....****
2;; LATEST CHANGE ALT & CTL
3
4
5
6 PAGE ,132
7 TITLE DOS - Keyboard Definition File
8
9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
10;; DOS - - NLS Support - Keyboard Defintion File
11;; (c) Copyright 1988 Microsoft
12;;
13;; This file contains the keyboard tables for Spanish.
14;;
15;; Linkage Instructions:
16;; Refer to KDF.ASM.
17;;
18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
19 ;;
20 INCLUDE KEYBSHAR.INC ;;
21 INCLUDE POSTEQU.INC ;;
22 INCLUDE KEYBMAC.INC ;;
23 ;;
24 PUBLIC UK_LOGIC ;;
25 PUBLIC UK_437_XLAT ;;
26 PUBLIC UK_850_XLAT ;;
27 ;;
28CODE SEGMENT PUBLIC 'CODE' ;;
29 ASSUME CS:CODE,DS:CODE ;;
30 ;;
31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
32;; Standard translate table options are a liner search table
33;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
35 ;;
36STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
37 ;;
38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
39;;***************************************
40;; UK State Logic
41;;***************************************
42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
43 ;;
44 ;;
45UK_LOGIC:
46
47 DW LOGIC_END-$ ;; length
48 ;;
49 DW 0 ;; special features
50 ;;
51 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
52 ;;
53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
54;; OPTIONS: If we find a scan match in
55;; an XLATT or SET_FLAG operation then
56;; exit from INT 9.
57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58 ;;
59 OPTION EXIT_IF_FOUND ;;
60 ;;
61 ;;
62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
63;; Dead key definitions must come before
64;; dead key translations to handle
65;; dead key + dead key.
66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
67 ;;
68 IFF EITHER_ALT,NOT ;;
69 ANDF EITHER_CTL,NOT ;;
70 IFF EITHER_SHIFT ;;
71 SET_FLAG DEAD_UPPER ;;
72 ELSEF ;;
73 SET_FLAG DEAD_LOWER ;;
74 ENDIFF ;;
75 ENDIFF ;;
76 ;;
77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
78;; ACUTE ACCENT TRANSLATIONS
79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
80 ;;
81ACUTE_PROC: ;;
82 ;;
83 IFF ACUTE,NOT ;;
84 GOTO DIARESIS_PROC ;;
85 ENDIFF ;;
86 ;;
87 RESET_NLS ;;
88 IFF R_ALT_SHIFT,NOT ;;
89 XLATT ACUTE_SPACE ;;
90 ENDIFF ;;
91 IFF EITHER_CTL,NOT ;;
92 ANDF EITHER_ALT,NOT ;;
93 IFF EITHER_SHIFT ;;
94 IFF CAPS_STATE ;;
95 XLATT ACUTE_LOWER ;;
96 ELSEF ;;
97 XLATT ACUTE_UPPER ;;
98 ENDIFF ;;
99 ELSEF ;;
100 IFF CAPS_STATE ;;
101 XLATT ACUTE_UPPER ;;
102 ELSEF ;;
103 XLATT ACUTE_LOWER ;;
104 ENDIFF ;;
105 ENDIFF ;;
106 ENDIFF ;;
107 ;;
108INVALID_ACUTE: ;;
109 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
110 BEEP ;; failed or we are ina bad shift state.
111 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
112 ;; through to generate the second char.
113 ;; Note that the dead key flag will be
114 ;; reset before we get here.
115 ;;
116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
117;; DIARESIS ACCENT TRANSLATIONS
118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
119 ;;
120DIARESIS_PROC: ;;
121 ;;
122 IFF DIARESIS,NOT ;;
123 GOTO GRAVE_PROC ;;
124 ENDIFF ;;
125 ;;
126 RESET_NLS ;;
127 IFF R_ALT_SHIFT,NOT ;;
128 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
129 ENDIFF ;;
130 IFF EITHER_CTL,NOT ;;
131 ANDF EITHER_ALT,NOT ;;
132 IFF EITHER_SHIFT ;;
133 IFF CAPS_STATE ;;
134 XLATT DIARESIS_LOWER ;;
135 ELSEF ;;
136 XLATT DIARESIS_UPPER ;;
137 ENDIFF ;;
138 ELSEF ;;
139 IFF CAPS_STATE ;;
140 XLATT DIARESIS_UPPER ;;
141 ELSEF ;;
142 XLATT DIARESIS_LOWER ;;
143 ENDIFF ;;
144 ENDIFF ;;
145 ENDIFF ;;
146 ;;
147INVALID_DIARESIS: ;;
148 PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent
149 BEEP ;; Invalid dead key combo.
150 GOTO NON_DEAD ;;
151 ;;
152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
153;; GRAVE ACCENT TRANSLATIONS
154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
155 ;;
156GRAVE_PROC: ;;
157 ;;
158 IFF GRAVE,NOT ;;
159 GOTO CIRCUMFLEX_PROC ;;
160 ENDIFF ;;
161 ;;
162 RESET_NLS ;;
163 IFF R_ALT_SHIFT,NOT ;;
164 XLATT GRAVE_SPACE ;;
165 ENDIFF ;;
166 IFF EITHER_CTL,NOT ;;
167 ANDF EITHER_ALT,NOT ;;
168 IFF EITHER_SHIFT ;;
169 IFF CAPS_STATE ;;
170 XLATT GRAVE_LOWER ;;
171 ELSEF ;;
172 XLATT GRAVE_UPPER ;;
173 ENDIFF ;;
174 ELSEF ;;
175 IFF CAPS_STATE,NOT ;;
176 XLATT GRAVE_LOWER ;;
177 ELSEF ;;
178 XLATT GRAVE_UPPER ;;
179 ENDIFF ;;
180 ENDIFF ;;
181 ENDIFF ;;
182 ;;
183INVALID_GRAVE: ;;
184 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
185 BEEP ;; Invalid dead key combo.
186 GOTO NON_DEAD ;;
187 ;;
188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
189;; CIRCUMFLEX ACCENT TRANSLATIONS
190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
191 ;;
192CIRCUMFLEX_PROC: ;;
193 ;;
194 IFF CIRCUMFLEX,NOT ;;
195 GOTO NON_DEAD ;;
196 ENDIFF ;;
197 ;;
198 RESET_NLS ;;
199 IFF R_ALT_SHIFT,NOT ;;
200 XLATT CIRCUMFLEX_SPACE ;;
201 ENDIFF ;;
202 IFF EITHER_CTL,NOT ;;
203 ANDF EITHER_ALT,NOT ;;
204 IFF EITHER_SHIFT ;;
205 IFF CAPS_STATE ;;
206 XLATT CIRCUMFLEX_LOWER ;;
207 ELSEF ;;
208 XLATT CIRCUMFLEX_UPPER ;;
209 ENDIFF ;;
210 ELSEF ;;
211 IFF CAPS_STATE,NOT ;;
212 XLATT CIRCUMFLEX_LOWER ;;
213 ELSEF ;;
214 XLATT CIRCUMFLEX_UPPER ;;
215 ENDIFF ;;
216 ENDIFF ;;
217 ENDIFF ;;
218 ;;
219INVALID_CIRCUMFLEX: ;;
220 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
221 BEEP ;; Invalid dead key combo.
222 GOTO NON_DEAD ;;
223 ;;
224 ;;
225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
226;; Upper, lower and third shifts
227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
228 ;;
229NON_DEAD: ;;
230 ;;
231 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
232 ANDF LC_E0 ;; the "/" on the numeric pad of the
233 EXIT_STATE_LOGIC ;; G keyboard
234 ENDIFF ;;
235;;***BD ADDED FOR ALT, CTRL CASES ;;
236 IFF EITHER_CTL,NOT ;;
237 IFF ALT_SHIFT ;; ALT - case
238 ANDF R_ALT_SHIFT,NOT ;;
239 XLATT ALT_CASE ;;
240 ENDIFF ;;
241 ELSEF ;;
242 IFF EITHER_ALT,NOT ;; CTRL - case
243 XLATT CTRL_CASE ;;
244 ENDIFF ;;
245 ENDIFF ;;
246;;***BD END OF ADDITION
247 ;;
248 IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
249 ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
250 IFF EITHER_SHIFT ;; Numeric keys are not.
251;;***BD ADDED FOR NUMERIC PAD
252 IFF NUM_STATE,NOT ;;
253 XLATT NUMERIC_PAD ;;
254 ENDIFF ;;
255;;***BD END OF ADDITION
256 XLATT NON_ALPHA_UPPER ;;
257 IFF CAPS_STATE ;;
258 XLATT ALPHA_LOWER ;;
259 ELSEF ;;
260 XLATT ALPHA_UPPER ;;
261 ENDIFF ;;
262 ELSEF ;;
263;;***BD ADDED FOR NUMERIC PAD
264 IFF NUM_STATE ;;
265 XLATT NUMERIC_PAD ;;
266 ENDIFF ;;
267;;***BD END OF ADDITION
268 XLATT NON_ALPHA_LOWER ;;
269 IFF CAPS_STATE ;;
270 XLATT ALPHA_UPPER ;;
271 ELSEF ;;
272 XLATT ALPHA_LOWER ;;
273 ENDIFF ;;
274 ENDIFF ;;
275 ELSEF ;;
276 IFF EITHER_SHIFT,NOT ;;
277 IFKBD XT_KB+AT_KB ;;
278 IFF EITHER_CTL ;;
279 ANDF ALT_SHIFT ;;
280 XLATT THIRD_SHIFT ;;
281 ENDIFF ;;
282 ELSEF ;;
283 IFF EITHER_CTL,NOT ;;
284 ANDF R_ALT_SHIFT ;;
285 XLATT THIRD_SHIFT ;;
286 ENDIFF ;;
287 ENDIFF ;;
288 ENDIFF ;;
289 ENDIFF ;;
290 ;;
291 EXIT_STATE_LOGIC ;;
292 ;;
293LOGIC_END: ;;
294 ;;
295 ;;
296;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
297;;***************************************
298;; UK Common Translate Section
299;; This section contains translations for the lower 128 characters
300;; only since these will never change from code page to code page.
301;; In addition the dead key "Set Flag" tables are here since the
302;; dead keys are on the same keytops for all code pages.
303;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
304 ;;
305 PUBLIC UK_COMMON_XLAT ;;
306UK_COMMON_XLAT: ;;
307 ;;
308 DW COMMON_XLAT_END-$ ;; length of section
309 DW -1 ;; code page
310 ;;
311 ;;
312;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
313;;***************************************
314;;***BD - ADDED FOR ALT CASE
315;;******************************
316;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
317;; CODE PAGE: Common
318;; STATE: Alt Case
319;; KEYBOARD TYPES: All
320;; TABLE TYPE: Translate
321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
322 ;;
323 DW COM_ALT_K2_END-$ ;; length of state section
324 DB ALT_CASE ;; State ID
325 DW ANY_KB ;; Keyboard Type
326 DB -1,-1 ;; Buffer entry for error character
327 ;;
328 DW COM_ALT_K2_T1_END-$ ;; Size of xlat table
329 DB TYPE_2_TAB ;; xlat options:
330 DB 0 ;; number of entries
331;;***BD THIS ENTRY IS A TEST ENTRY
332;; DB 53,225,0 ;; TEST ENTRY
333COM_ALT_K2_T1_END: ;;
334 ;;
335 DW 0 ;; Size of xlat table - null table
336 ;;
337COM_ALT_K2_END: ;;
338 ;;
339;;******************************
340;;***BD - ADDED FOR CTRL CASE
341;;******************************
342;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
343;; CODE PAGE: Common
344;; STATE: Ctrl Case
345;; KEYBOARD TYPES: G_KB+P12_KB+AT
346;; TABLE TYPE: Translate
347;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
348 ;;
349 DW COM_CTRL_K2_END-$ ;; length of state section
350 DB CTRL_CASE ;; State ID
351 DW G_KB+P12_KB+AT_KB ;; Keyboard Type
352 DB -1,-1 ;; Buffer entry for error character
353 ;;
354 DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table
355 DB TYPE_2_TAB ;; xlat options:
356 DB 2 ;; number of entries
357;;***BD THIS ENTRY IS A TEST ENTRY
358;; DB 53,226,0 ;; TEST ENTRY
359 DB 43,-1,-1 ;; invalid slash
360 DB 41,28,41 ;; valid slash
361COM_CTRL_K2_T1_END: ;;
362 ;;
363 DW 0 ;; Size of xlat table - null table
364 ;;
365COM_CTRL_K2_END: ;;
366 ;;
367;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
368;; CODE PAGE: Common
369;; STATE: Non-Alpha Lower Case
370;; KEYBOARD TYPES: G_KB+P12_KB
371;; TABLE TYPE: Translate
372;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
373 ;;
374 DW COM_NA_LO_K1_END-$ ;; length of state section
375 DB NON_ALPHA_LOWER ;; State ID
376 DW G_KB+P12_KB ;; Keyboard Type
377 DB -1,-1 ;; Buffer entry for error character
378 ;;
379 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
380 DB STANDARD_TABLE ;; xlat options:
381 DB 2 ;; number of entries
382 DB 40,"'" ;; '
383 DB 43,'#' ;; #
384COM_NA_LO_K1_T1_END: ;;
385 ;;
386 DW 0 ;; Size of xlat table - null table
387 ;;
388COM_NA_LO_K1_END: ;;
389 ;;
390;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
391;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
392;; CODE PAGE: Common
393;; STATE: Non-Alpha Lower Case
394;; KEYBOARD TYPES: AT
395;; TABLE TYPE: Translate
396;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
397 ;;
398 DW COM_NA_LO_K2_END-$ ;; length of state section
399 DB NON_ALPHA_LOWER ;; State ID
400 DW AT_KB ;; Keyboard Type
401 DB -1,-1 ;; Buffer entry for error character
402 ;;
403 DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table
404 DB STANDARD_TABLE ;; xlat options:
405 DB 3 ;; number of entries
406 DB 41,"\" ;; \
407 DB 40,"'" ;; '
408 DB 43,'#' ;; #
409COM_NA_LO_K2_T1_END: ;;
410 ;;
411 DW 0 ;; Size of xlat table - null table
412 ;;
413COM_NA_LO_K2_END: ;;
414 ;;
415;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
416;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
417;; CODE PAGE: Common
418;; STATE: Non-Alpha Lower Case
419;; KEYBOARD TYPES: XT_KB
420;; TABLE TYPE: Translate
421;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
422 ;;
423 DW COM_NA_LO_K3_END-$ ;; length of state section
424 DB NON_ALPHA_LOWER ;; State ID
425 DW XT_KB ;; Keyboard Type
426 DB -1,-1 ;; Buffer entry for error character
427 ;;
428 DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table
429 DB STANDARD_TABLE ;; xlat options:
430 DB 2 ;; number of entries
431 DB 40,"'" ;; '
432 DB 41,'#' ;; #
433 DB 43,'\' ;; #
434COM_NA_LO_K3_T1_END: ;;
435 ;;
436 DW 0 ;; Size of xlat table - null table
437 ;;
438COM_NA_LO_K3_END: ;;
439 ;;
440;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
441;; CODE PAGE: Common
442;; STATE: Non-Alpha Upper Case
443;; KEYBOARD TYPES: G_KB+P12_KB+
444;; TABLE TYPE: Translate
445;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
446 ;;
447 DW COM_NA_UP_K1_END-$ ;; length of state section
448 DB NON_ALPHA_UPPER ;; State ID
449 DW G_KB+P12_KB ;; Keyboard Type
450 DB -1,-1 ;; Buffer entry for error character
451 ;;
452 DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table
453 DB STANDARD_TABLE ;; xlat options:
454 DB 5 ;; number of entries
455 DB 41,0AAh ;; ª
456 DB 3,'"' ;; "
457 DB 4,09CH ;; œ
458 DB 40,'@' ;; at sign
459 DB 43,07EH ;; ~
460COM_NA_UP_T1_K1_END: ;;
461 ;;
462 DW 0 ;; Size of xlat table - null table
463 ;;
464COM_NA_UP_K1_END: ;;
465 ;;
466 ;;
467;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
468;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
469;; CODE PAGE: Common
470;; STATE: Non-Alpha Upper Case
471;; KEYBOARD TYPES: XT_KB
472;; TABLE TYPE: Translate
473;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
474 ;;
475 DW COM_NA_UP_K2_END-$ ;; length of state section
476 DB NON_ALPHA_UPPER ;; State ID
477 DW XT_KB ;; Keyboard Type
478 DB -1,-1 ;; Buffer entry for error character
479 ;;
480 DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table
481 DB STANDARD_TABLE ;; xlat options:
482 DB 5 ;; number of entries
483 DB 3,'"' ;; "
484 DB 4,09CH ;; œ
485 DB 41,07EH ;; ~
486 DB 40,'@' ;; at sign
487 DB 43,07CH ;; Broken vertical bar
488COM_NA_UP_T1_K2_END: ;;
489 ;;
490 DW 0 ;; Size of xlat table - null table
491 ;;
492COM_NA_UP_K2_END: ;;
493 ;;
494 ;;
495;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
496;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
497;; CODE PAGE: Common
498;; STATE: Non-Alpha Upper Case
499;; KEYBOARD TYPES: AT_KB
500;; TABLE TYPE: Translate
501;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
502 ;;
503 DW COM_NA_UP_K3_END-$ ;; length of state section
504 DB NON_ALPHA_UPPER ;; State ID
505 DW AT_KB ;; Keyboard Type
506 DB -1,-1 ;; Buffer entry for error character
507 ;;
508 DW COM_NA_UP_T1_K3_END-$ ;; Size of xlat table
509 DB STANDARD_TABLE ;; xlat options:
510 DB 5 ;; number of entries
511 DB 41,07Ch ;; ª
512 DB 3,'"' ;; "
513 DB 4,09CH ;; œ
514 DB 40,'@' ;; at sign
515 DB 43,07EH ;; ~
516COM_NA_UP_T1_K3_END: ;;
517 ;;
518 DW 0 ;; Size of xlat table - null table
519 ;;
520COM_NA_UP_K3_END: ;;
521 ;;
522 ;;
523 DW 0 ;; Last State
524COMMON_XLAT_END: ;;
525 ;;
526 ;;
527 ;;
528;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
529;;***************************************
530;; UK Specific Translate Section for 437
531;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE.
532;;***************************************
533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
534 ;;
535 PUBLIC UK_437_XLAT ;;
536UK_437_XLAT: ;;
537 ;;
538 DW CP437_XLAT_END-$ ;; length of section
539 DW 437 ;;
540;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
541;; CODE PAGE: CP437
542;; STATE: Third Shift
543;; KEYBOARD TYPES: G_KB+P12_KB
544;; TABLE TYPE: Translate
545;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
546 ;;
547 DW CP437_THIRD_K1_END-$ ;; length of state section
548 DB THIRD_SHIFT ;; State ID
549 DW G_KB+P12_KB ;; Keyboard Type
550 DB -1,-1 ;; Buffer entry for error character
551 ;;
552 DW CP437_THIRD_K1_T1_END-$ ;; Size of xlat table
553 DB STANDARD_TABLE ;; xlat options:
554 DB 1 ;; number of entries
555 DB 41,0DDH ;; Solid vertical bar - graphics block
556CP437_THIRD_K1_T1_END: ;;
557 ;;
558 DW 0 ;; Last xlat table
559CP437_THIRD_K1_END: ;;
560 ;;
561;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
562;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
563;; CODE PAGE: CP437
564;; STATE: Non-Alpha Upper Case
565;; KEYBOARD TYPES: G_KB+P12_KB+
566;; TABLE TYPE: Translate
567;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
568 ;;
569 DW CP437_NA_UP_K1_END-$ ;; length of state section
570 DB NON_ALPHA_UPPER ;; State ID
571 DW G_KB+P12_KB ;; Keyboard Type
572 DB -1,-1 ;; Buffer entry for error character
573 ;;
574 DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table
575 DB STANDARD_TABLE ;; xlat options:
576 DB 1 ;; number of entries
577 DB 86,07ch ;; vertical bar
578CP437_NA_UP_T1_K1_END: ;;
579 ;;
580 DW 0 ;; Size of xlat table - null table
581 ;;
582CP437_NA_UP_K1_END: ;;
583 ;;
584 ;;
585;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
586 DW 0 ;; LAST STATE
587 ;;
588CP437_XLAT_END: ;;
589 ;;
590;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
591;;***************************************
592;; UK Specific Translate Section for 850
593;;***************************************
594;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
595 ;;
596 PUBLIC UK_850_XLAT ;;
597UK_850_XLAT: ;;
598 ;;
599 DW CP850_XLAT_END-$ ;; length of section
600 DW 850 ;;
601 ;;
602;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
603;; CODE PAGE: CP850
604;; STATE: Third Shift
605;; KEYBOARD TYPES: G_KB+P12_KB
606;; TABLE TYPE: Translate
607;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
608 ;;
609 DW CP850_THIRD_K1_END-$ ;; length of state section
610 DB THIRD_SHIFT ;; State ID
611 DW G_KB+P12_KB ;; Keyboard Type
612 DB -1,-1 ;; Buffer entry for error character
613 ;;
614 DW CP850_THIRD_K1_T1_END-$ ;; Size of xlat table
615 DB STANDARD_TABLE ;; xlat options:
616 DB 1 ;; number of entries
617 DB 41,07CH ;; Solid vertical bar - |
618CP850_THIRD_K1_T1_END: ;;
619 ;;
620 DW 0 ;; Last xlat table
621CP850_THIRD_K1_END: ;;
622 ;;
623;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
624;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
625;; CODE PAGE: Common
626;; STATE: Non-Alpha Upper Case
627;; KEYBOARD TYPES: G_KB+P12_KB+
628;; TABLE TYPE: Translate
629;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
630 ;;
631 DW CP850_NA_UP_K1_END-$ ;; length of state section
632 DB NON_ALPHA_UPPER ;; State ID
633 DW G_KB+P12_KB ;; Keyboard Type
634 DB -1,-1 ;; Buffer entry for error character
635 ;;
636 DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table
637 DB STANDARD_TABLE ;; xlat options:
638 DB 1 ;; number of entries
639 DB 86,0DDh ;; broken vertical
640CP850_NA_UP_T1_K1_END: ;;
641 ;;
642 DW 0 ;; Size of xlat table - null table
643 ;;
644CP850_NA_UP_K1_END: ;;
645 ;;
646 ;;
647;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
648 ;;
649;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
650 DW 0 ;; LAST STATE
651 ;;
652CP850_XLAT_END: ;;
653;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
654CODE ENDS ;;
655 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFUK166.ASM b/v4.0/src/DEV/KEYBOARD/KDFUK166.ASM
new file mode 100644
index 0000000..4e7d1c7
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFUK166.ASM
@@ -0,0 +1,655 @@
1;CODE to be deleted has a double ;; followed by actual asm code....****
2;; LATEST CHANGE ALT & CTL
3
4
5
6 PAGE ,132
7 TITLE DOS - Keyboard Definition File
8
9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
10;; DOS - - NLS Support - Keyboard Defintion File
11;; (c) Copyright 1988 Microsoft
12;;
13;; This file contains the keyboard tables for Spanish.
14;;
15;; Linkage Instructions:
16;; Refer to KDF.ASM.
17;;
18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
19 ;;
20 INCLUDE KEYBSHAR.INC ;;
21 INCLUDE POSTEQU.INC ;;
22 INCLUDE KEYBMAC.INC ;;
23 ;;
24 PUBLIC UK2_LOGIC ;;
25 PUBLIC UK2_437_XLAT ;;
26 PUBLIC UK2_850_XLAT ;;
27 ;;
28CODE SEGMENT PUBLIC 'CODE' ;;
29 ASSUME CS:CODE,DS:CODE ;;
30 ;;
31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
32;; Standard translate table options are a liner search table
33;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
35 ;;
36STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
37 ;;
38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
39;;***************************************
40;; UK State Logic
41;;***************************************
42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
43 ;;
44 ;;
45UK2_LOGIC:
46
47 DW LOGIC_END-$ ;; length
48 ;;
49 DW 0 ;; special features
50 ;;
51 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
52 ;;
53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
54;; OPTIONS: If we find a scan match in
55;; an XLATT or SET_FLAG operation then
56;; exit from INT 9.
57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58 ;;
59 OPTION EXIT_IF_FOUND ;;
60 ;;
61 ;;
62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
63;; Dead key definitions must come before
64;; dead key translations to handle
65;; dead key + dead key.
66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
67 ;;
68 IFF EITHER_ALT,NOT ;;
69 ANDF EITHER_CTL,NOT ;;
70 IFF EITHER_SHIFT ;;
71 SET_FLAG DEAD_UPPER ;;
72 ELSEF ;;
73 SET_FLAG DEAD_LOWER ;;
74 ENDIFF ;;
75 ENDIFF ;;
76 ;;
77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
78;; ACUTE ACCENT TRANSLATIONS
79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
80 ;;
81ACUTE_PROC: ;;
82 ;;
83 IFF ACUTE,NOT ;;
84 GOTO DIARESIS_PROC ;;
85 ENDIFF ;;
86 ;;
87 RESET_NLS ;;
88 IFF R_ALT_SHIFT,NOT ;;
89 XLATT ACUTE_SPACE ;;
90 ENDIFF ;;
91 IFF EITHER_CTL,NOT ;;
92 ANDF EITHER_ALT,NOT ;;
93 IFF EITHER_SHIFT ;;
94 IFF CAPS_STATE ;;
95 XLATT ACUTE_LOWER ;;
96 ELSEF ;;
97 XLATT ACUTE_UPPER ;;
98 ENDIFF ;;
99 ELSEF ;;
100 IFF CAPS_STATE ;;
101 XLATT ACUTE_UPPER ;;
102 ELSEF ;;
103 XLATT ACUTE_LOWER ;;
104 ENDIFF ;;
105 ENDIFF ;;
106 ENDIFF ;;
107 ;;
108INVALID_ACUTE: ;;
109 PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
110 BEEP ;; failed or we are ina bad shift state.
111 GOTO NON_DEAD ;; Either is invalid so BEEP and fall
112 ;; through to generate the second char.
113 ;; Note that the dead key flag will be
114 ;; reset before we get here.
115 ;;
116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
117;; DIARESIS ACCENT TRANSLATIONS
118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
119 ;;
120DIARESIS_PROC: ;;
121 ;;
122 IFF DIARESIS,NOT ;;
123 GOTO GRAVE_PROC ;;
124 ENDIFF ;;
125 ;;
126 RESET_NLS ;;
127 IFF R_ALT_SHIFT,NOT ;;
128 XLATT DIARESIS_SPACE ;; exist for 437 so beep for
129 ENDIFF ;;
130 IFF EITHER_CTL,NOT ;;
131 ANDF EITHER_ALT,NOT ;;
132 IFF EITHER_SHIFT ;;
133 IFF CAPS_STATE ;;
134 XLATT DIARESIS_LOWER ;;
135 ELSEF ;;
136 XLATT DIARESIS_UPPER ;;
137 ENDIFF ;;
138 ELSEF ;;
139 IFF CAPS_STATE ;;
140 XLATT DIARESIS_UPPER ;;
141 ELSEF ;;
142 XLATT DIARESIS_LOWER ;;
143 ENDIFF ;;
144 ENDIFF ;;
145 ENDIFF ;;
146 ;;
147INVALID_DIARESIS: ;;
148 PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent
149 BEEP ;; Invalid dead key combo.
150 GOTO NON_DEAD ;;
151 ;;
152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
153;; GRAVE ACCENT TRANSLATIONS
154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
155 ;;
156GRAVE_PROC: ;;
157 ;;
158 IFF GRAVE,NOT ;;
159 GOTO CIRCUMFLEX_PROC ;;
160 ENDIFF ;;
161 ;;
162 RESET_NLS ;;
163 IFF R_ALT_SHIFT,NOT ;;
164 XLATT GRAVE_SPACE ;;
165 ENDIFF ;;
166 IFF EITHER_CTL,NOT ;;
167 ANDF EITHER_ALT,NOT ;;
168 IFF EITHER_SHIFT ;;
169 IFF CAPS_STATE ;;
170 XLATT GRAVE_LOWER ;;
171 ELSEF ;;
172 XLATT GRAVE_UPPER ;;
173 ENDIFF ;;
174 ELSEF ;;
175 IFF CAPS_STATE,NOT ;;
176 XLATT GRAVE_LOWER ;;
177 ELSEF ;;
178 XLATT GRAVE_UPPER ;;
179 ENDIFF ;;
180 ENDIFF ;;
181 ENDIFF ;;
182 ;;
183INVALID_GRAVE: ;;
184 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
185 BEEP ;; Invalid dead key combo.
186 GOTO NON_DEAD ;;
187 ;;
188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
189;; CIRCUMFLEX ACCENT TRANSLATIONS
190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
191 ;;
192CIRCUMFLEX_PROC: ;;
193 ;;
194 IFF CIRCUMFLEX,NOT ;;
195 GOTO NON_DEAD ;;
196 ENDIFF ;;
197 ;;
198 RESET_NLS ;;
199 IFF R_ALT_SHIFT,NOT ;;
200 XLATT CIRCUMFLEX_SPACE ;;
201 ENDIFF ;;
202 IFF EITHER_CTL,NOT ;;
203 ANDF EITHER_ALT,NOT ;;
204 IFF EITHER_SHIFT ;;
205 IFF CAPS_STATE ;;
206 XLATT CIRCUMFLEX_LOWER ;;
207 ELSEF ;;
208 XLATT CIRCUMFLEX_UPPER ;;
209 ENDIFF ;;
210 ELSEF ;;
211 IFF CAPS_STATE,NOT ;;
212 XLATT CIRCUMFLEX_LOWER ;;
213 ELSEF ;;
214 XLATT CIRCUMFLEX_UPPER ;;
215 ENDIFF ;;
216 ENDIFF ;;
217 ENDIFF ;;
218 ;;
219INVALID_CIRCUMFLEX: ;;
220 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
221 BEEP ;; Invalid dead key combo.
222 GOTO NON_DEAD ;;
223 ;;
224 ;;
225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
226;; Upper, lower and third shifts
227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
228 ;;
229NON_DEAD: ;;
230 ;;
231 IFKBD G_KB+P12_KB ;; Avoid accidentally translating
232 ANDF LC_E0 ;; the "/" on the numeric pad of the
233 EXIT_STATE_LOGIC ;; G keyboard
234 ENDIFF ;;
235;;***BD ADDED FOR ALT, CTRL CASES ;;
236 IFF EITHER_CTL,NOT ;;
237 IFF ALT_SHIFT ;; ALT - case
238 ANDF R_ALT_SHIFT,NOT ;;
239 XLATT ALT_CASE ;;
240 ENDIFF ;;
241 ELSEF ;;
242 IFF EITHER_ALT,NOT ;; CTRL - case
243 XLATT CTRL_CASE ;;
244 ENDIFF ;;
245 ENDIFF ;;
246;;***BD END OF ADDITION
247 ;;
248 IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
249 ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
250 IFF EITHER_SHIFT ;; Numeric keys are not.
251;;***BD ADDED FOR NUMERIC PAD
252 IFF NUM_STATE,NOT ;;
253 XLATT NUMERIC_PAD ;;
254 ENDIFF ;;
255;;***BD END OF ADDITION
256 XLATT NON_ALPHA_UPPER ;;
257 IFF CAPS_STATE ;;
258 XLATT ALPHA_LOWER ;;
259 ELSEF ;;
260 XLATT ALPHA_UPPER ;;
261 ENDIFF ;;
262 ELSEF ;;
263;;***BD ADDED FOR NUMERIC PAD
264 IFF NUM_STATE ;;
265 XLATT NUMERIC_PAD ;;
266 ENDIFF ;;
267;;***BD END OF ADDITION
268 XLATT NON_ALPHA_LOWER ;;
269 IFF CAPS_STATE ;;
270 XLATT ALPHA_UPPER ;;
271 ELSEF ;;
272 XLATT ALPHA_LOWER ;;
273 ENDIFF ;;
274 ENDIFF ;;
275 ELSEF ;;
276 IFF EITHER_SHIFT,NOT ;;
277 IFKBD XT_KB+AT_KB ;;
278 IFF EITHER_CTL ;;
279 ANDF ALT_SHIFT ;;
280 XLATT THIRD_SHIFT ;;
281 ENDIFF ;;
282 ELSEF ;;
283 IFF EITHER_CTL,NOT ;;
284 ANDF R_ALT_SHIFT ;;
285 XLATT THIRD_SHIFT ;;
286 ENDIFF ;;
287 ENDIFF ;;
288 ENDIFF ;;
289 ENDIFF ;;
290 ;;
291 EXIT_STATE_LOGIC ;;
292 ;;
293LOGIC_END: ;;
294 ;;
295 ;;
296;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
297;;***************************************
298;; UK Common Translate Section
299;; This section contains translations for the lower 128 characters
300;; only since these will never change from code page to code page.
301;; In addition the dead key "Set Flag" tables are here since the
302;; dead keys are on the same keytops for all code pages.
303;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
304 ;;
305 PUBLIC UK2_COMMON_XLAT ;;
306UK2_COMMON_XLAT: ;;
307 ;;
308 DW COMMON_XLAT_END-$ ;; length of section
309 DW -1 ;; code page
310 ;;
311 ;;
312;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
313;;***************************************
314;;***BD - ADDED FOR ALT CASE
315;;******************************
316;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
317;; CODE PAGE: Common
318;; STATE: Alt Case
319;; KEYBOARD TYPES: All
320;; TABLE TYPE: Translate
321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
322 ;;
323 DW COM_ALT_K2_END-$ ;; length of state section
324 DB ALT_CASE ;; State ID
325 DW ANY_KB ;; Keyboard Type
326 DB -1,-1 ;; Buffer entry for error character
327 ;;
328 DW COM_ALT_K2_T1_END-$ ;; Size of xlat table
329 DB TYPE_2_TAB ;; xlat options:
330 DB 0 ;; number of entries
331;;***BD THIS ENTRY IS A TEST ENTRY
332;; DB 53,225,0 ;; TEST ENTRY
333COM_ALT_K2_T1_END: ;;
334 ;;
335 DW 0 ;; Size of xlat table - null table
336 ;;
337COM_ALT_K2_END: ;;
338 ;;
339;;******************************
340;;***BD - ADDED FOR CTRL CASE
341;;******************************
342;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
343;; CODE PAGE: Common
344;; STATE: Ctrl Case
345;; KEYBOARD TYPES: G_KB+P12_KB+AT
346;; TABLE TYPE: Translate
347;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
348 ;;
349 DW COM_CTRL_K2_END-$ ;; length of state section
350 DB CTRL_CASE ;; State ID
351 DW G_KB+P12_KB+AT_KB ;; Keyboard Type
352 DB -1,-1 ;; Buffer entry for error character
353 ;;
354 DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table
355 DB TYPE_2_TAB ;; xlat options:
356 DB 2 ;; number of entries
357;;***BD THIS ENTRY IS A TEST ENTRY
358;; DB 53,226,0 ;; TEST ENTRY
359 DB 43,-1,-1 ;; invalid slash
360 DB 41,28,41 ;; valid slash
361COM_CTRL_K2_T1_END: ;;
362 ;;
363 DW 0 ;; Size of xlat table - null table
364 ;;
365COM_CTRL_K2_END: ;;
366 ;;
367;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
368;; CODE PAGE: Common
369;; STATE: Non-Alpha Lower Case
370;; KEYBOARD TYPES: G_KB+P12_KB
371;; TABLE TYPE: Translate
372;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
373 ;;
374 DW COM_NA_LO_K1_END-$ ;; length of state section
375 DB NON_ALPHA_LOWER ;; State ID
376 DW G_KB+P12_KB ;; Keyboard Type
377 DB -1,-1 ;; Buffer entry for error character
378 ;;
379 DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
380 DB STANDARD_TABLE ;; xlat options:
381 DB 2 ;; number of entries
382 DB 40,"'" ;; '
383 DB 43,'#' ;; #
384COM_NA_LO_K1_T1_END: ;;
385 ;;
386 DW 0 ;; Size of xlat table - null table
387 ;;
388COM_NA_LO_K1_END: ;;
389 ;;
390;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
391;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
392;; CODE PAGE: Common
393;; STATE: Non-Alpha Lower Case
394;; KEYBOARD TYPES: AT
395;; TABLE TYPE: Translate
396;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
397 ;;
398 DW COM_NA_LO_K2_END-$ ;; length of state section
399 DB NON_ALPHA_LOWER ;; State ID
400 DW AT_KB ;; Keyboard Type
401 DB -1,-1 ;; Buffer entry for error character
402 ;;
403 DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table
404 DB STANDARD_TABLE ;; xlat options:
405 DB 3 ;; number of entries
406 DB 41,"\" ;; \
407 DB 40,"'" ;; '
408 DB 43,'#' ;; #
409COM_NA_LO_K2_T1_END: ;;
410 ;;
411 DW 0 ;; Size of xlat table - null table
412 ;;
413COM_NA_LO_K2_END: ;;
414 ;;
415;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
416;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
417;; CODE PAGE: Common
418;; STATE: Non-Alpha Lower Case
419;; KEYBOARD TYPES: XT_KB
420;; TABLE TYPE: Translate
421;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
422 ;;
423 DW COM_NA_LO_K3_END-$ ;; length of state section
424 DB NON_ALPHA_LOWER ;; State ID
425 DW XT_KB ;; Keyboard Type
426 DB -1,-1 ;; Buffer entry for error character
427 ;;
428 DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table
429 DB STANDARD_TABLE ;; xlat options:
430 DB 2 ;; number of entries
431 DB 40,"'" ;; '
432 DB 41,'#' ;; #
433 DB 43,'\' ;; #
434COM_NA_LO_K3_T1_END: ;;
435 ;;
436 DW 0 ;; Size of xlat table - null table
437 ;;
438COM_NA_LO_K3_END: ;;
439 ;;
440;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
441;; CODE PAGE: Common
442;; STATE: Non-Alpha Upper Case
443;; KEYBOARD TYPES: G_KB+P12_KB+
444;; TABLE TYPE: Translate
445;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
446 ;;
447 DW COM_NA_UP_K1_END-$ ;; length of state section
448 DB NON_ALPHA_UPPER ;; State ID
449 DW G_KB+P12_KB ;; Keyboard Type
450 DB -1,-1 ;; Buffer entry for error character
451 ;;
452 DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table
453 DB STANDARD_TABLE ;; xlat options:
454 DB 5 ;; number of entries
455 DB 41,0AAh ;; ª
456 DB 3,'"' ;; "
457 DB 4,09CH ;; œ
458 DB 40,'@' ;; at sign
459 DB 43,07EH ;; ~
460COM_NA_UP_T1_K1_END: ;;
461 ;;
462 DW 0 ;; Size of xlat table - null table
463 ;;
464COM_NA_UP_K1_END: ;;
465 ;;
466 ;;
467;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
468;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
469;; CODE PAGE: Common
470;; STATE: Non-Alpha Upper Case
471;; KEYBOARD TYPES: XT_KB
472;; TABLE TYPE: Translate
473;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
474 ;;
475 DW COM_NA_UP_K2_END-$ ;; length of state section
476 DB NON_ALPHA_UPPER ;; State ID
477 DW XT_KB ;; Keyboard Type
478 DB -1,-1 ;; Buffer entry for error character
479 ;;
480 DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table
481 DB STANDARD_TABLE ;; xlat options:
482 DB 5 ;; number of entries
483 DB 3,'"' ;; "
484 DB 4,09CH ;; œ
485 DB 41,07EH ;; ~
486 DB 40,'@' ;; at sign
487 DB 43,07CH ;; Broken vertical bar
488COM_NA_UP_T1_K2_END: ;;
489 ;;
490 DW 0 ;; Size of xlat table - null table
491 ;;
492COM_NA_UP_K2_END: ;;
493 ;;
494 ;;
495;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
496;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
497;; CODE PAGE: Common
498;; STATE: Non-Alpha Upper Case
499;; KEYBOARD TYPES: AT_KB
500;; TABLE TYPE: Translate
501;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
502 ;;
503 DW COM_NA_UP_K3_END-$ ;; length of state section
504 DB NON_ALPHA_UPPER ;; State ID
505 DW AT_KB ;; Keyboard Type
506 DB -1,-1 ;; Buffer entry for error character
507 ;;
508 DW COM_NA_UP_T1_K3_END-$ ;; Size of xlat table
509 DB STANDARD_TABLE ;; xlat options:
510 DB 5 ;; number of entries
511 DB 41,07Ch ;; ª
512 DB 3,'"' ;; "
513 DB 4,09CH ;; œ
514 DB 40,'@' ;; at sign
515 DB 43,07EH ;; ~
516COM_NA_UP_T1_K3_END: ;;
517 ;;
518 DW 0 ;; Size of xlat table - null table
519 ;;
520COM_NA_UP_K3_END: ;;
521 ;;
522 ;;
523 DW 0 ;; Last State
524COMMON_XLAT_END: ;;
525 ;;
526 ;;
527 ;;
528;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
529;;***************************************
530;; UK Specific Translate Section for 437
531;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE.
532;;***************************************
533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
534 ;;
535 PUBLIC UK2_437_XLAT ;;
536UK2_437_XLAT: ;;
537 ;;
538 DW CP437_XLAT_END-$ ;; length of section
539 DW 437 ;;
540;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
541;; CODE PAGE: CP437
542;; STATE: Third Shift
543;; KEYBOARD TYPES: G_KB+P12_KB
544;; TABLE TYPE: Translate
545;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
546 ;;
547 DW CP437_THIRD_K1_END-$ ;; length of state section
548 DB THIRD_SHIFT ;; State ID
549 DW G_KB+P12_KB ;; Keyboard Type
550 DB -1,-1 ;; Buffer entry for error character
551 ;;
552 DW CP437_THIRD_K1_T1_END-$ ;; Size of xlat table
553 DB STANDARD_TABLE ;; xlat options:
554 DB 1 ;; number of entries
555 DB 41,0DDH ;; Solid vertical bar - graphics block
556CP437_THIRD_K1_T1_END: ;;
557 ;;
558 DW 0 ;; Last xlat table
559CP437_THIRD_K1_END: ;;
560 ;;
561;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
562;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
563;; CODE PAGE: CP437
564;; STATE: Non-Alpha Upper Case
565;; KEYBOARD TYPES: G_KB+P12_KB+
566;; TABLE TYPE: Translate
567;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
568 ;;
569 DW CP437_NA_UP_K1_END-$ ;; length of state section
570 DB NON_ALPHA_UPPER ;; State ID
571 DW G_KB+P12_KB ;; Keyboard Type
572 DB -1,-1 ;; Buffer entry for error character
573 ;;
574 DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table
575 DB STANDARD_TABLE ;; xlat options:
576 DB 1 ;; number of entries
577 DB 86,07ch ;; vertical bar
578CP437_NA_UP_T1_K1_END: ;;
579 ;;
580 DW 0 ;; Size of xlat table - null table
581 ;;
582CP437_NA_UP_K1_END: ;;
583 ;;
584 ;;
585;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
586 DW 0 ;; LAST STATE
587 ;;
588CP437_XLAT_END: ;;
589 ;;
590;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
591;;***************************************
592;; UK Specific Translate Section for 850
593;;***************************************
594;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
595 ;;
596 PUBLIC UK2_850_XLAT ;;
597UK2_850_XLAT: ;;
598 ;;
599 DW CP850_XLAT_END-$ ;; length of section
600 DW 850 ;;
601 ;;
602;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
603;; CODE PAGE: CP850
604;; STATE: Third Shift
605;; KEYBOARD TYPES: G_KB+P12_KB
606;; TABLE TYPE: Translate
607;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
608 ;;
609 DW CP850_THIRD_K1_END-$ ;; length of state section
610 DB THIRD_SHIFT ;; State ID
611 DW G_KB+P12_KB ;; Keyboard Type
612 DB -1,-1 ;; Buffer entry for error character
613 ;;
614 DW CP850_THIRD_K1_T1_END-$ ;; Size of xlat table
615 DB STANDARD_TABLE ;; xlat options:
616 DB 1 ;; number of entries
617 DB 41,07CH ;; Solid vertical bar - |
618CP850_THIRD_K1_T1_END: ;;
619 ;;
620 DW 0 ;; Last xlat table
621CP850_THIRD_K1_END: ;;
622 ;;
623;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
624;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
625;; CODE PAGE: Common
626;; STATE: Non-Alpha Upper Case
627;; KEYBOARD TYPES: G_KB+P12_KB+
628;; TABLE TYPE: Translate
629;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
630 ;;
631 DW CP850_NA_UP_K1_END-$ ;; length of state section
632 DB NON_ALPHA_UPPER ;; State ID
633 DW G_KB+P12_KB ;; Keyboard Type
634 DB -1,-1 ;; Buffer entry for error character
635 ;;
636 DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table
637 DB STANDARD_TABLE ;; xlat options:
638 DB 1 ;; number of entries
639 DB 86,0DDh ;; broken vertical
640CP850_NA_UP_T1_K1_END: ;;
641 ;;
642 DW 0 ;; Size of xlat table - null table
643 ;;
644CP850_NA_UP_K1_END: ;;
645 ;;
646 ;;
647;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
648 ;;
649;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
650 DW 0 ;; LAST STATE
651 ;;
652CP850_XLAT_END: ;;
653;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
654CODE ENDS ;;
655 END ;;
diff --git a/v4.0/src/DEV/KEYBOARD/KDFUK168.ASM b/v4.0/src/DEV/KEYBOARD/KDFUK168.ASM
new file mode 100644
index 0000000..29da334
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KDFUK168.ASM
@@ -0,0 +1,848 @@
1;CODE to be deleted has a double ;; followed by actual asm code....****
2;; LATEST CHANGE ALT & CTL
3
4
5
6 PAGE ,132
7 TITLE DOS - Keyboard Definition File
8
9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
10;; DOS - - NLS Support - Keyboard Defintion File
11;; (c) Copyright 1988 Microsoft
12;;
13;; This file contains the keyboard tables for Spanish.
14;;
15;; Linkage Instructions:
16;; Refer to KDF.ASM.
17;;
18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
19 ;;
20 INCLUDE KEYBSHAR.INC ;; ;AN000;
21 INCLUDE POSTEQU.INC ;; ;AN000;
22 INCLUDE KEYBMAC.INC ;; ;AN000;
23 ;; ;AN000;
24 PUBLIC UK1_LOGIC ;; ;AN000;
25 PUBLIC UK1_437_XLAT ;; ;AN000;
26 PUBLIC UK1_850_XLAT ;; ;AN000;
27 ;; ;AN000;
28CODE SEGMENT PUBLIC 'CODE' ;; ;AN000;
29 ASSUME CS:CODE,DS:CODE ;; ;AN000;
30 ;; ;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;
35 ;; ;AN000;
36STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY ;AN000;
37 ;; ;AN000;
38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
39;;*************************************** ;AN000;
40;; UK State Logic ;AN000;
41;;*************************************** ;AN000;
42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
43 ;; ;AN000;
44 ;; ;AN000;
45UK1_LOGIC: ;AN000;
46 ;AN000;
47 DW LOGIC_END-$ ;; length ;AN000;
48 ;; ;AN000;
49 DW 0 ;; special features ;AN000;
50 ;; ;AN000;
51 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE ;AN000;
52 ;; ;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;
58 ;; ;AN000;
59 OPTION EXIT_IF_FOUND ;; ;AN000;
60 ;; ;AN000;
61 ;; ;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;
67 ;; ;AN000;
68 IFF EITHER_ALT,NOT ;; ;AN000;
69 ANDF EITHER_CTL,NOT ;; ;AN000;
70 IFF EITHER_SHIFT ;; ;AN000;
71 SET_FLAG DEAD_UPPER ;; ;AN000;
72 ELSEF ;; ;AN000;
73 SET_FLAG DEAD_LOWER ;; ;AN000;
74 ENDIFF ;; ;AN000;
75 ENDIFF ;; ;AN000;
76 ;; ;AN000;
77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
78;; ACUTE ACCENT TRANSLATIONS ;AN000;
79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
80 ;; ;AN000;
81ACUTE_PROC: ;; ;AN000;
82 ;; ;AN000;
83 IFF ACUTE,NOT ;; ;AN000;
84 GOTO DIARESIS_PROC ;; ;AN000;
85 ENDIFF ;; ;AN000;
86 ;; ;AN000;
87 RESET_NLS ;; ;AN000;
88 IFF R_ALT_SHIFT,NOT ;; ;AN000;
89 XLATT ACUTE_SPACE ;; ;AN000;
90 ENDIFF ;; ;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;
96 ELSEF ;; ;AN000;
97 XLATT ACUTE_UPPER ;; ;AN000;
98 ENDIFF ;; ;AN000;
99 ELSEF ;; ;AN000;
100 IFF CAPS_STATE ;; ;AN000;
101 XLATT ACUTE_UPPER ;; ;AN000;
102 ELSEF ;; ;AN000;
103 XLATT ACUTE_LOWER ;; ;AN000;
104 ENDIFF ;; ;AN000;
105 ENDIFF ;; ;AN000;
106 ENDIFF ;; ;AN000;
107 ;; ;AN000;
108INVALID_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;
115 ;; ;AN000;
116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
117;; DIARESIS ACCENT TRANSLATIONS ;AN000;
118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
119 ;; ;AN000;
120DIARESIS_PROC: ;; ;AN000;
121 ;; ;AN000;
122 IFF DIARESIS,NOT ;; ;AN000;
123 GOTO GRAVE_PROC ;; ;AN000;
124 ENDIFF ;; ;AN000;
125 ;; ;AN000;
126 RESET_NLS ;; ;AN000;
127 IFF R_ALT_SHIFT,NOT ;; ;AN000;
128 XLATT DIARESIS_SPACE ;; exist for 437 so beep for ;AN000;
129 ENDIFF ;; ;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;
135 ELSEF ;; ;AN000;
136 XLATT DIARESIS_UPPER ;; ;AN000;
137 ENDIFF ;; ;AN000;
138 ELSEF ;; ;AN000;
139 IFF CAPS_STATE ;; ;AN000;
140 XLATT DIARESIS_UPPER ;; ;AN000;
141 ELSEF ;; ;AN000;
142 XLATT DIARESIS_LOWER ;; ;AN000;
143 ENDIFF ;; ;AN000;
144 ENDIFF ;; ;AN000;
145 ENDIFF ;; ;AN000;
146 ;; ;AN000;
147INVALID_DIARESIS: ;; ;AN000;
148 PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent ;AN000;
149 BEEP ;; Invalid dead key combo. ;AN000;
150 GOTO NON_DEAD ;; ;AN000;
151 ;; ;AN000;
152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
153;; GRAVE ACCENT TRANSLATIONS ;AN000;
154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
155 ;; ;AN000;
156GRAVE_PROC: ;; ;AN000;
157 ;; ;AN000;
158 IFF GRAVE,NOT ;; ;AN000;
159 GOTO CIRCUMFLEX_PROC ;; ;AN000;
160 ENDIFF ;; ;AN000;
161 ;; ;AN000;
162 RESET_NLS ;; ;AN000;
163 IFF R_ALT_SHIFT,NOT ;; ;AN000;
164 XLATT GRAVE_SPACE ;; ;AN000;
165 ENDIFF ;; ;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;
171 ELSEF ;; ;AN000;
172 XLATT GRAVE_UPPER ;; ;AN000;
173 ENDIFF ;; ;AN000;
174 ELSEF ;; ;AN000;
175 IFF CAPS_STATE,NOT ;; ;AN000;
176 XLATT GRAVE_LOWER ;; ;AN000;
177 ELSEF ;; ;AN000;
178 XLATT GRAVE_UPPER ;; ;AN000;
179 ENDIFF ;; ;AN000;
180 ENDIFF ;; ;AN000;
181 ENDIFF ;; ;AN000;
182 ;; ;AN000;
183INVALID_GRAVE: ;; ;AN000;
184 PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent ;AN000;
185 BEEP ;; Invalid dead key combo. ;AN000;
186 GOTO NON_DEAD ;; ;AN000;
187 ;; ;AN000;
188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
189;; CIRCUMFLEX ACCENT TRANSLATIONS ;AN000;
190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
191 ;; ;AN000;
192CIRCUMFLEX_PROC: ;; ;AN000;
193 ;; ;AN000;
194 IFF CIRCUMFLEX,NOT ;; ;AN000;
195 GOTO NON_DEAD ;; ;AN000;
196 ENDIFF ;; ;AN000;
197 ;; ;AN000;
198 RESET_NLS ;; ;AN000;
199 IFF R_ALT_SHIFT,NOT ;; ;AN000;
200 XLATT CIRCUMFLEX_SPACE ;; ;AN000;
201 ENDIFF ;; ;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;
207 ELSEF ;; ;AN000;
208 XLATT CIRCUMFLEX_UPPER ;; ;AN000;
209 ENDIFF ;; ;AN000;
210 ELSEF ;; ;AN000;
211 IFF CAPS_STATE,NOT ;; ;AN000;
212 XLATT CIRCUMFLEX_LOWER ;; ;AN000;
213 ELSEF ;; ;AN000;
214 XLATT CIRCUMFLEX_UPPER ;; ;AN000;
215 ENDIFF ;; ;AN000;
216 ENDIFF ;; ;AN000;
217 ENDIFF ;; ;AN000;
218 ;; ;AN000;
219INVALID_CIRCUMFLEX: ;; ;AN000;
220 PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent ;AN000;
221 BEEP ;; Invalid dead key combo. ;AN000;
222 GOTO NON_DEAD ;; ;AN000;
223 ;; ;AN000;
224 ;; ;AN000;
225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
226;; Upper, lower and third shifts ;AN000;
227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
228 ;; ;AN000;
229NON_DEAD: ;; ;AN000;
230 ;; ;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;
234 ENDIFF ;; ;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;
240 ENDIFF ;; ;AN000;
241 ELSEF ;; ;AN000;
242 IFF EITHER_ALT,NOT ;; CTRL - case ;AN000;
243 XLATT CTRL_CASE ;; ;AN000;
244 ENDIFF ;; ;AN000;
245 ENDIFF ;; ;AN000;
246;;***BD END OF ADDITION ;AN000;
247 ;; ;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;
254 ENDIFF ;; ;AN000;
255;;***BD END OF ADDITION ;AN000;
256 XLATT NON_ALPHA_UPPER ;; ;AN000;
257 IFF CAPS_STATE ;; ;AN000;
258 XLATT ALPHA_LOWER ;; ;AN000;
259 ELSEF ;; ;AN000;
260 XLATT ALPHA_UPPER ;; ;AN000;
261 ENDIFF ;; ;AN000;
262 ELSEF ;; ;AN000;
263;;***BD ADDED FOR NUMERIC PAD ;AN000;
264 IFF NUM_STATE ;; ;AN000;
265 XLATT NUMERIC_PAD ;; ;AN000;
266 ENDIFF ;; ;AN000;
267;;***BD END OF ADDITION ;AN000;
268 XLATT NON_ALPHA_LOWER ;; ;AN000;
269 IFF CAPS_STATE ;; ;AN000;
270 XLATT ALPHA_UPPER ;; ;AN000;
271 ELSEF ;; ;AN000;
272 XLATT ALPHA_LOWER ;; ;AN000;
273 ENDIFF ;; ;AN000;
274 ENDIFF ;; ;AN000;
275 ELSEF ;; ;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;
281 ENDIFF ;; ;AN000;
282 ELSEF ;; ;AN000;
283 IFF EITHER_CTL,NOT ;; ;AN000;
284 ANDF R_ALT_SHIFT ;; ;AN000;
285 XLATT THIRD_SHIFT ;; ;AN000;
286 ENDIFF ;; ;AN000;
287 ENDIFF ;; ;AN000;
288 ENDIFF ;; ;AN000;
289 ENDIFF ;; ;AN000;
290 ;; ;AN000;
291 EXIT_STATE_LOGIC ;; ;AN000;
292 ;; ;AN000;
293LOGIC_END: ;; ;AN000;
294 ;; ;AN000;
295 ;; ;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;
304 ;; ;AN000;
305 PUBLIC UK1_COMMON_XLAT ;; ;AN000;
306UK1_COMMON_XLAT: ;; ;AN000;
307 ;; ;AN000;
308 DW COMMON_XLAT_END-$ ;; length of section ;AN000;
309 DW -1 ;; code page ;AN000;
310 ;; ;AN000;
311 ;; ;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;
322 ;; ;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;
327 ;; ;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;
333COM_ALT_K2_T1_END: ;; ;AN000;
334 ;; ;AN000;
335 DW 0 ;; Size of xlat table - null table ;AN000;
336 ;; ;AN000;
337COM_ALT_K2_END: ;; ;AN000;
338 ;; ;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;
348 ;; ;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;
353 ;; ;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;
361COM_CTRL_K2_T1_END: ;; ;AN000;
362 ;; ;AN000;
363 DW 0 ;; Size of xlat table - null table ;AN000;
364 ;; ;AN000;
365COM_CTRL_K2_END: ;; ;AN000;
366 ;; ;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;
373 ;; ;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;
378 ;; ;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;
382 DB 13,"ª" ;; ;AN000;
383 DB 26,"@" ;; ' ;AN000;
384 DB 27,"[" ;; ' ;AN000;
385 DB 40,":" ;; ' ;AN000;
386 DB 41,"\" ;; ' ;AN000;
387 DB 43,']' ;; # ;AN000;
388COM_NA_LO_K1_T1_END: ;; ;AN000;
389 ;; ;AN000;
390 DW 0 ;; Size of xlat table - null table ;AN000;
391 ;; ;AN000;
392COM_NA_LO_K1_END: ;; ;AN000;
393 ;; ;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;
401 ;; ;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;
406 ;; ;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;
412COM_NA_LO_PK1_T1_END: ;; ;AN000;
413 ;; ;AN000;
414 DW 0 ;; Size of xlat table - null table ;AN000;
415 ;; ;AN000;
416COM_NA_LO_PK1_END: ;; ;AN000;
417 ;; ;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;
425 ;; ;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;
430 ;; ;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;
437COM_NA_LO_K2_T1_END: ;; ;AN000;
438 ;; ;AN000;
439 DW 0 ;; Size of xlat table - null table ;AN000;
440 ;; ;AN000;
441COM_NA_LO_K2_END: ;; ;AN000;
442 ;; ;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;
450 ;; ;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;
455 ;; ;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;
462COM_NA_LO_K3_T1_END: ;; ;AN000;
463 ;; ;AN000;
464 DW 0 ;; Size of xlat table - null table ;AN000;
465 ;; ;AN000;
466COM_NA_LO_K3_END: ;; ;AN000;
467 ;; ;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;
474 ;; ;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;
479 ;; ;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;
483 DB 3,'"' ;; ;AN000;
484 DB 4,"œ" ;; ;AN000;
485 DB 7,"&" ;; ;AN000;
486 DB 8,"'" ;; ;AN000;
487 DB 9,"(" ;; ;AN000;
488 DB 10,")" ;; ;AN000;
489 DB 11,"#" ;; ;AN000;
490 DB 12,"=" ;; ;AN000;
491 DB 26,"`" ;; ;AN000;
492 DB 27,"{" ;; ;AN000;
493 DB 39,"+" ;; ;AN000;
494 DB 40,"*" ;; ;AN000;
495 DB 43,"}" ;; ;AN000;
496 DB 86,"_" ;; ;AN000;
497COM_NA_UP_T1_K1_END: ;; ;AN000;
498 ;; ;AN000;
499 DW 0 ;; Size of xlat table - null table ;AN000;
500 ;; ;AN000;
501COM_NA_UP_K1_END: ;; ;AN000;
502 ;; ;AN000;
503 ;; ;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;
511 ;; ;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;
516 ;; ;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 ;; œ ;AN000;
523 DB 40,'@' ;; at sign ;AN000;
524 DB 43,07EH ;; ~ ;AN000;
525COM_NA_UP_T1_PK1_END: ;; ;AN000;
526 ;; ;AN000;
527 DW 0 ;; Size of xlat table - null table ;AN000;
528 ;; ;AN000;
529COM_NA_UP_PK1_END: ;; ;AN000;
530 ;; ;AN000;
531 ;; ;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;
539 ;; ;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;
544 ;; ;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 ;; œ ;AN000;
550 DB 41,07EH ;; ~ ;AN000;
551 DB 40,'@' ;; at sign ;AN000;
552 DB 43,07CH ;; Broken vertical bar ;AN000;
553COM_NA_UP_T1_K2_END: ;; ;AN000;
554 ;; ;AN000;
555 DW 0 ;; Size of xlat table - null table ;AN000;
556 ;; ;AN000;
557COM_NA_UP_K2_END: ;; ;AN000;
558 ;; ;AN000;
559 ;; ;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;
567 ;; ;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;
572 ;; ;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 ;; œ ;AN000;
579 DB 40,'@' ;; at sign ;AN000;
580 DB 43,07EH ;; ~ ;AN000;
581COM_NA_UP_T1_K3_END: ;; ;AN000;
582 ;; ;AN000;
583 DW 0 ;; Size of xlat table - null table ;AN000;
584 ;; ;AN000;
585COM_NA_UP_K3_END: ;; ;AN000;
586 ;; ;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;
593 ;; ;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;
598 ;; ;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;
610COM_THIRD_K1_T1_END: ;; ;AN000;
611 ;; ;AN000;
612 DW 0 ;; Last xlat table ;AN000;
613COM_THIRD_K1_END: ;; ;AN000;
614 ;; ;AN000;
615;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
616 ;; ;AN000;
617 DW 0 ;; Last State ;AN000;
618COMMON_XLAT_END: ;; ;AN000;
619 ;; ;AN000;
620 ;; ;AN000;
621 ;; ;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;
629 ;; ;AN000;
630 PUBLIC UK1_437_XLAT ;; ;AN000;
631UK1_437_XLAT: ;; ;AN000;
632 ;; ;AN000;
633 DW CP437_XLAT_END-$ ;; length of section ;AN000;
634 DW 437 ;; ;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;
641 ;; ;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;
646 ;; ;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;
652 ;; ;AN000;
653 DW 0 ;; Last xlat table ;AN000;
654 CP437_THIRD_PK1_END: ;; ;AN000;
655 ;; ;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;
663 ;; ;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;
668 ;; ;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;
674CP437_NA_UP_T1_K1_END: ;; ;AN000;
675 ;; ;AN000;
676 DW 0 ;; Size of xlat table - null table ;AN000;
677 ;; ;AN000;
678CP437_NA_UP_K1_END: ;; ;AN000;
679 ;; ;AN000;
680 ;; ;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;
688 ;; ;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;
693 ;; ;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;
698CP437_NA_UP_PT1_K1_END: ;; ;AN000;
699 ;; ;AN000;
700 DW 0 ;; Size of xlat table - null table ;AN000;
701 ;; ;AN000;
702CP437_NA_UP_PK1_END: ;; ;AN000;
703 ;; ;AN000;
704 ;; ;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;
712 ;; ;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;
717 ;; ;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;
722CP437_NA_LO_T1_K1_END: ;; ;AN000;
723 ;; ;AN000;
724 DW 0 ;; Size of xlat table - null table ;AN000;
725 ;; ;AN000;
726CP437_NA_LO_K1_END: ;; ;AN000;
727 ;; ;AN000;
728 ;; ;AN000;
729;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
730 DW 0 ;; LAST STATE ;AN000;
731 ;; ;AN000;
732CP437_XLAT_END: ;; ;AN000;
733 ;; ;AN000;
734;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
735;;*************************************** ;AN000;
736;; UK Specific Translate Section for 850 ;AN000;
737;;*************************************** ;AN000;
738;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
739 ;; ;AN000;
740 PUBLIC UK1_850_XLAT ;; ;AN000;
741UK1_850_XLAT: ;; ;AN000;
742 ;; ;AN000;
743 DW CP850_XLAT_END-$ ;; length of section ;AN000;
744 DW 850 ;; ;AN000;
745 ;; ;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;
752 ;; ;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;
757 ;; ;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;
763 ;; ;AN000;
764 DW 0 ;; Last xlat table ;AN000;
765 CP850_THIRD_PK1_END: ;; ;AN000;
766 ;; ;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;
774 ;; ;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;
779 ;; ;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;
785CP850_NA_UP_T1_K1_END: ;; ;AN000;
786 ;; ;AN000;
787 DW 0 ;; Size of xlat table - null table ;AN000;
788 ;; ;AN000;
789CP850_NA_UP_K1_END: ;; ;AN000;
790 ;; ;AN000;
791 ;; ;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;
799 ;; ;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;
804 ;; ;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;
809CP850_NA_UP_T1_PK1_END: ;; ;AN000;
810 ;; ;AN000;
811 DW 0 ;; Size of xlat table - null table ;AN000;
812 ;; ;AN000;
813CP850_NA_UP_PK1_END: ;; ;AN000;
814 ;; ;AN000;
815 ;; ;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;
823 ;; ;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;
828 ;; ;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;
833CP850_NA_LO_T1_K1_END: ;; ;AN000;
834 ;; ;AN000;
835 DW 0 ;; Size of xlat table - null table ;AN000;
836 ;; ;AN000;
837CP850_NA_LO_K1_END: ;; ;AN000;
838 ;; ;AN000;
839 ;; ;AN000;
840;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
841 ;; ;AN000;
842;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
843 DW 0 ;; LAST STATE ;AN000;
844 ;; ;AN000;
845CP850_XLAT_END: ;; ;AN000;
846;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000;
847CODE ENDS ;; ;AN000;
848 END ;; ;AN000;
diff --git a/v4.0/src/DEV/KEYBOARD/KEYBMAC.INC b/v4.0/src/DEV/KEYBOARD/KEYBMAC.INC
new file mode 100644
index 0000000..8f1b108
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KEYBMAC.INC
@@ -0,0 +1,323 @@
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 ;;
23ACUTE EQU 80H ;; NLS_FLAG_1
24GRAVE EQU 40H ;;
25DIARESIS EQU 20H ;;
26CIRCUMFLEX EQU 10H ;;
27CEDILLA EQU 08H ;;
28TILDE EQU 04H ;;
29 ;; NLS_FLAG_2 : nothing defined yet
30 ;;
31 ;;
32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
33;; State IDs
34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
35 ;;
36DEAD_LOWER EQU 1 ;; dead keys on lower shift
37DEAD_UPPER EQU 2 ;;
38ALPHA_LOWER EQU 3 ;;
39ALPHA_UPPER EQU 4 ;;
40NON_ALPHA_LOWER EQU 5 ;;
41NON_ALPHA_UPPER EQU 6 ;;
42THIRD_SHIFT EQU 7 ;;
43ACUTE_LOWER EQU 8 ;;
44ACUTE_UPPER EQU 9 ;;
45ACUTE_SPACE EQU 10 ;;
46GRAVE_LOWER EQU 11 ;;
47GRAVE_UPPER EQU 12 ;;
48GRAVE_SPACE EQU 13 ;;
49DIARESIS_LOWER EQU 14 ;;
50DIARESIS_UPPER EQU 15 ;;
51DIARESIS_SPACE EQU 16 ;;
52CIRCUMFLEX_LOWER EQU 17 ;;
53CIRCUMFLEX_UPPER EQU 18 ;;
54CIRCUMFLEX_SPACE EQU 19 ;;
55CEDILLA_LOWER EQU 20 ;;
56CEDILLA_UPPER EQU 21 ;;
57CEDILLA_SPACE EQU 22 ;;
58CEDILLA_CEDILLA EQU 23 ;;
59DEAD_THIRD EQU 24 ;;
60ACUTE_ACUTE EQU 25 ;;
61GRAVE_GRAVE EQU 26 ;;
62DIARESIS_DIARESIS EQU 27 ;;
63CIRCUMFLEX_CIRCUMFLEX EQU 28 ;;
64FOURTH_SHIFT EQU 29 ;;
65DEAD_FOURTH EQU 30 ;;
66TILDE_LOWER EQU 31 ;;
67TILDE_UPPER EQU 32 ;;
68TILDE_SPACE EQU 33 ;;
69ALT_CASE EQU 34 ;;
70CTRL_CASE EQU 35 ;;
71NUMERIC_PAD EQU 36 ;;
72DIVIDE_SIGN EQU 37 ;;
73BOTLH_CAPS EQU 38 ;;
74BOTRH_CAPS EQU 39 ;;
75BOTLH_F_CAPS EQU 40 ;;
76BOTRH_F_CAPS EQU 41 ;;
77 ;;
78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
79;; Logic Macros
80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
81 ;;
82
83UNKNOWN = 255
84
85FIND_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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
166FLAG 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
179IFF 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
207IFKBD MACRO SYS
208 DB IFKBD_COMMAND
209 DW SYS
210 ENDM
211
212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
213ANDF 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
241ELSEF MACRO
242 DB ELSEF_COMMAND
243 ENDM
244
245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
246ENDIFF MACRO
247 DB ENDIFF_COMMAND
248 ENDM
249
250;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
251XLATT MACRO STATE
252 DB XLATT_COMMAND
253 DB STATE
254 ENDM
255
256;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
257PUT_ERROR_CHAR MACRO STATE
258 DB PUT_ERROR_COMMAND
259 DB STATE
260 ENDM
261
262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
263OPTION 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
284SET_FLAG MACRO STATE
285 DB SET_FLAG_COMMAND
286 DB STATE
287 ENDM
288
289;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
290RESET_NLS MACRO
291 DB RESET_NLS_COMMAND
292 ENDM
293
294;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
295BEEP MACRO
296 DB BEEP_COMMAND
297 ENDM
298
299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
300GOTO MACRO GOTO_OFFSET
301 DB GOTO_COMMAND
302 DW GOTO_OFFSET-$-2
303 ENDM
304
305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
306EXIT_INT_9 MACRO
307 DB GOTO_COMMAND+EXIT_INT_9_FLAG
308 DW 0
309 ENDM
310
311;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
312EXIT_STATE_LOGIC MACRO
313 DB GOTO_COMMAND+EXIT_STATE_LOGIC_FLAG
314 DW 0
315 ENDM
316
317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
318CHECK_FOR_CORE_KEY MACRO
319 DB CHECK_CORE_COMMAND
320 ENDM
321
322;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
323.LIST
diff --git a/v4.0/src/DEV/KEYBOARD/KEYBOARD.LNK b/v4.0/src/DEV/KEYBOARD/KEYBOARD.LNK
new file mode 100644
index 0000000..3b52fd0
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KEYBOARD.LNK
@@ -0,0 +1,6 @@
1kdfnow.OBJ+KDFSP.OBJ+KDFPO.OBJ+KDFFR120.obj+kdffr189.obJ+KDFDK.OBJ+
2KDFSG.OBJ+KDFGE.OBJ+KDFIT141.OBJ+KDFIT142.OBJ+KDFUK166.OBJ+KDFUK168.OBJ+
3KDFSF.OBJ+KDFBE.OBJ+KDFNL.OBJ+KDFNO.OBJ+KDFCF.OBJ+
4kdfsv.obj+KDFLA.OBJ+kdfeof.OBJ
5KEYBOARD.EXE;
6 \ No newline at end of file
diff --git a/v4.0/src/DEV/KEYBOARD/KEYBSHAR.INC b/v4.0/src/DEV/KEYBOARD/KEYBSHAR.INC
new file mode 100644
index 0000000..d7ac257
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/KEYBSHAR.INC
@@ -0,0 +1,304 @@
1.XLIST
2
3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4;; DOS - - NLS Support - KEYB Command
5;; (C) Copyright 1988 Microsoft
6;;
7;; File Name: KEYBSHAR.INC
8;; ----------
9;;
10;; Description:
11;; ------------
12;; Include file containing structure definitions Shared Data Area
13;; for the Shared Data Area.
14;; The Shared Data Area contains data which is required by
15;; both the resident and transient KEYB code. The Shared
16;; Data Area is allocated in the KEYBI2F file and will be
17;; resident following initial installation.
18;;
19;; Change History:
20;; ---------------
21;;
22;;
23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
24 ;;
25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
26;; SHARED_DATA_STR defines the initial fixed length portion of the
27;; Shared Data Area.
28;; Tables are loaded beginning at TABLE_AREA in the following order:
29;; State Logic
30;; Common Translate Section
31;; Specific Translate Sections for
32;; each code page
33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
34 ;; SPECIAL_FEATURES equates:
35TYPEWRITER_CAPS_LK EQU 8000H ;; typewriter style caps lock
36JR_HOT_KEY_1_2 EQU 4000H ;; on PCjr use 1/2 as the hot keys
37 ;; instead of F1/F2
38 ;;
39 ;; Some useful scan codes:
40F1_SCAN EQU 59 ;; F1
41F2_SCAN EQU 60 ;; F2
42ONE_SCAN EQU 2 ;; "1"
43TWO_SCAN EQU 3 ;; "2"
44 ;;
45 ;; SYSTEM_FLAG equates:
46EXT_16 EQU 8000H ;; extended int16 support is there
47PC_AT EQU 4000H ;; code for pcat
48PC_LAP EQU 2000H ;; code for pc lap computer (p-12)
49PC_XT EQU 1000H ;; code for PC, PC/XT, PORTABLE
50PC_JR EQU 0800H ;; code for PCjr
51PC_PAL EQU 0400H ;; code for ???
52PC_386 EQU 0200H ;; code for ???
53PC_NET EQU 0100H ;; PC Net is installed
54 ;;
55 ;; HOT_KEY_FLAG EQUATES:
56US_MODE EQU 0 ;; hot key is active => US
57LANG_MODE EQU 0FFH ;; hot key is inactive
58 ;;
59 ;; -----------------------------------
60SHARED_DATA_STR STRUC ;; SHARED DATA AREA
61 ;;
62OLD_INT_9 DD 0 ;; saved int 9 vector
63OLD_INT_2F DD 0 ;; saved int 2F vector
64OLD_INT_48 DD 0 ;; saved int 48 vector (if PCjr)
65KEYB_TYPE DW 0 ;; type of keyboard
66SYSTEM_FLAG DW 0 ;; system configuration flags
67TABLE_OK DB 0 ;; flag to INT 9 that table is built
68JR_KB_FLAG DB 0 ;; flag for special PCjr processing
69 DB 4 DUP(0) ;; reserved
70 ;;
71 ;; Table copy begins here:
72ACTIVE_LANGUAGE DB 'US' ;; language code
73INVOKED_CP_TABLE DW 437 ;; ptr to table for invoked code page
74ACTIVE_XLAT_PTR DW -1 ;; ptr to active Specific Translate Sect
75FIRST_XLAT_PTR DW -1 ;; ptr to first Specific Translate Sect
76RESIDENT_END DW 0ffffh ;; offset of last byte in resident mem
77LOGIC_PTR DW -1 ;; ptr to State Logic
78COMMON_XLAT_PTR DW -1 ;; ptr to Common Translate Section
79SPECIAL_FEATURES DW ? ;; special Features
80TABLE_OVERFLOW DB 0 ;; overflow flag for table rebuild
81HOT_KEY_ON_SCAN DB ? ;; scan codes to use with ALT+CTRL
82HOT_KEY_OFF_SCAN DB ? ;; to turn hot key on and off
83 DB 4 DUP(0) ;; reserved
84TABLE_AREA DB ? ;; tables loaded here:
85 ;; State Logic
86 ;; Common Translate Section
87 ;; Specific Translate Sections for
88 ;; each code page
89SHARED_DATA_STR ENDS ;;
90 ;;
91 ;;
92 ;;
93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
94;; State Logic equates.
95;; Contains equates for our NLS Flags and for the State Logic
96;; commands.
97;; State Logic command macros are defined in KEYBMAC.INC
98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
99 ;;
100STATE_LOGIC_STR STRUC ;;
101 ;;
102SL_LOGIC_LEN DW ? ;; length of state logic
103SL_SPECIAL_FEATURES DW ? ;;
104SL_LOGIC_CMDS DB 0 ;; state logic commands begin here
105 ;;
106STATE_LOGIC_STR ENDS ;;
107 ;;
108 ;;
109NUM_BIOS_FLAGS EQU 4 ;;
110NUM_NLS_FLAGS EQU 2 ;; '+1' below is the EXT_KB_FLAG
111NUM_FLAGS EQU NUM_BIOS_FLAGS+NUM_NLS_FLAGS+1
112 ;;
113 ;;
114EITHER_SHIFT EQU 80H ;; EXT_KB_FLAG : our own shift state
115EITHER_CTL EQU 40H ;; flags
116EITHER_ALT EQU 20H ;;
117SCAN_MATCH EQU 08H ;; set if scan code found in XLATT
118 ;; or SET_FLAG searches
119 ;;
120 ;;
121KB_FLAG_ID EQU 0 ;; Flag ID's as coded in IFF and ANDF
122KB_FLAG_1_ID EQU 1 ;; commands
123KB_FLAG_2_ID EQU 2 ;;
124KB_FLAG_3_ID EQU 3 ;;
125EXT_KB_FLAG_ID EQU 4 ;;
126NLS_FLAG_1_ID EQU 5 ;;
127NLS_FLAG_2_ID EQU 6 ;;
128 ;;
129COMMAND_BITS EQU 0F0H ;; Mask to isolate command code
130SUB_CMD_BITS EQU 0FH ;; mask to isolate sub command code
131NOT_TEST EQU 08H ;; NOT bit in IFF, ANDF
132COMMAND_SHIFT EQU 4 ;; shift amount for command code
133FLAG_ID_BITS EQU 07H ;; mask to isolate flag id in IFF, ANDF
134NUM_COMMANDS EQU 0CH ;; number of commands
135 ;;
136IFF_COMMAND EQU 00H ;;
137ANDF_COMMAND EQU 10H ;;
138ELSEF_COMMAND EQU 20H ;;
139ENDIFF_COMMAND EQU 30H ;;
140XLATT_COMMAND EQU 40H ;;
141OPTION_COMMAND EQU 50H ;;
142SET_FLAG_COMMAND EQU 60H ;;
143PUT_ERROR_COMMAND EQU 70H ;;
144IFKBD_COMMAND EQU 80H ;;
145GOTO_COMMAND EQU 90H ;;
146BEEP_COMMAND EQU 0A0H ;;
147RESET_NLS_COMMAND EQU 0B0H ;;
148CHECK_CORE_COMMAND EQU 0C0H ;;
149 ;;
150 ;;
151EXIT_INT_9_FLAG EQU 01H ;; Special forms of GOTO. These
152EXIT_STATE_LOGIC_FLAG EQU 02H ;; values are in the right nibble
153 ;; of the GOTO command.
154 ;;
155 ;; PROCESSING OPTIONS:
156EXIT_IF_FOUND EQU 80H ;; exit INT 9 if a translation
157 ;; match is found
158 ;;
159ANY_KB EQU 0FFFFH ;;
160JR_KB EQU 8000H ;; Keyboard types
161XT_KB EQU 4000H ;;
162AT_KB EQU 2000H ;;
163G_KB EQU 1000H ;;
164P_KB EQU 0800H ;;
165P12_KB EQU 0400H ;;
166 ;;
167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
168;; Translate Table Sections. Both the Specific and Common
169;; Translate Sections are formatted as follows.
170;;
171;; The Specific Translate Sections are chained together using the
172;; XS_NEXT_SECT_PTR field (-1 if last section).
173;; Translate Sections contains multiple States.
174;; A State contains the translate tables for a single
175;; shift state (IE lower case, upper case ....)
176;; Each State may contain multiple translate tables.
177;;
178;; The Translate Section layout is defined using several STRUCs.
179;; These STRUCs are allocated in the Shared Data Area as follows:
180;;
181;; XLAT_SECT_STR ; header info for the section
182;; STATE_STR ; header for state #1
183;; XLAT_STR ; first translate tab for state #1
184;; XLAT_TYPE_1_STR or XLAT_TYPE_2_STR
185;; XLAT_STR ; second translate tab
186;; XLAT_TYPE_1_STR or XLAT_TYPE_2_STR
187;; ...
188;; STATE_STR ; header for state #2
189;; XLAT_STR
190;; XLAT_TYPE_1_STR or XLAT_TYPE_2_STR
191;; ...
192;; ...
193;;
194;; A State may contain a "Set_Flag" table instead of translate tables.
195;; These tables are used to set the NLS flags instead of generating
196;; ASCII codes (for example: to remember dead key states).
197;; There can be only on Set_Flag table per state.
198;; The Set_Flag table layout is defined in the SET_FLAG_STR STRUC.
199;;
200;; So some states will contain translate tables (to generate ASCII codes)
201;; and some states will contain a Set_Flag table (to record dead key
202;; status).
203;;
204;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
205 ;;
206XLAT_SECT_STR STRUC ;;
207 ;;
208XS_NEXT_SECT_PTR DW ? ;; Pointer to next Specific Translate
209 ;; Section
210XS_CP_ID DW ? ;; code page id
211XS_FIRST_STATE DB ? ;;
212 ;;
213XLAT_SECT_STR ENDS ;;
214 ;;
215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
216;; State structure.
217;; The last State is a null State containing only the
218;; XS_STATE_LEN field with a value of 0.
219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
220 ;;
221STATE_STR STRUC ;;
222 ;;
223XS_STATE_LEN DW ? ;; length of state section
224XS_STATE_ID DB ? ;; State ID
225XS_KBD_TYPE DW ? ;; Keyboard Type
226XS_ERROR_CHAR DW ? ;; Buffer entry for error character
227XS_FIRST_TAB DB ? ;;
228 ;;
229STATE_STR ENDS ;;
230 ;;
231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
232;; Translate Table structures.
233;; There may be many translate tables in a State. The last
234;; table is a null table containing only the XLAT_TAB_SIZE field with
235;; a value of 0.
236;; The xlate table can be in one of two forms:
237;; Type 1 = Table contains buffer entries only.
238;; Scan code is used as an index into xlat table
239;; Type 2 = Table contains pairs of SCAN/BUFFER_ENTRY.
240;; Table must be searched for matching scan.
241;; Type 1 is the default. Type 2 tables should be identified by setting
242;; the TYPE_2_TAB bit in XLAT_OPTIONS.
243;; Buffer entries default to 2-bytes per entry.
244;; Optionally the table may contain ASCII codes only
245;; (1-byte entries). This is specified by setting the ASCII_ONLY bit
246;; in XLAT_OPTIONS. 2-byte buffer entries are coded ASCII,SCAN.
247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
248 ;;
249 ;; Translate options:
250ASCII_ONLY EQU 80H ;; Only ASCII codes listed - use
251 ;; incoming scan for buffer entry
252TYPE_2_TAB EQU 40H ;; search xlat table for matching scan
253ZERO_SCAN EQU 20H ;; set the scan half of the buffer
254 ;; entry to 0
255 ;;
256NULL_ASCII_CODE EQU -1 ;;
257 ;;
258DEFAULT_TAB_2_ENT_SZ EQU 3 ;;
259ASC_ONLY_TAB_2_ENT_SZ EQU 2 ;;
260 ;;
261 ;;
262XLAT_STR STRUC ;;
263 ;;
264XLAT_TAB_SIZE DW ? ;; Size in bytes of this table -
265 ;; includes this field, options etc.
266XLAT_OPTIONS DB ? ;; xlat options
267 ;; XLAT TABLE IS HERE
268XLAT_STR ENDS ;;
269 ;;
270XLAT_TYPE_1_STR STRUC ;; use scan code as index into table
271 DB TYPE XLAT_STR DUP(?) ;; filler
272XLAT_SCAN_LO DB ? ;; Scan code
273XLAT_SCAN_HI DB ? ;; range
274XLAT_1_BUF_ENTRY DB ? ;; The table itself
275XLAT_TYPE_1_STR ENDS ;;
276 ;;
277XLAT_TYPE_2_STR STRUC ;; search table for scan
278 DB TYPE XLAT_STR DUP(?) ;; filler
279XLAT_NUM DB ? ;; number of scans
280XLAT_SCAN DB ? ;; Scan code
281XLAT_2_BUF_ENTRY DB ? ;; The table itself
282XLAT_TYPE_2_STR ENDS ;;
283 ;;
284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
285;; Set_Flag Tables.
286;; State Sections immediately following the LAST_ENTRYs.
287;; Dead key definitions. If the scan matches then
288;; set the bit in NLS_FLAGs indicated in DK_MASK
289;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
290 ;;
291SF_ENT_SZ EQU 3 ;; size of entry
292 ;;
293SET_FLAG_STR STRUC ;;
294 ;;
295SF_NUM DB 0 ;; Number of entries
296SF_SCAN_CODE DB 0 ;; scan code
297SF_FLAG_ID DB 0 ;; flag id
298SF_FLAG_MASK DB 0 ;; flag mask
299 ;;
300SET_FLAG_STR ENDS ;;
301 ;;
302 ;;
303;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
304.LIST
diff --git a/v4.0/src/DEV/KEYBOARD/MAKEFILE b/v4.0/src/DEV/KEYBOARD/MAKEFILE
new file mode 100644
index 0000000..5bdd36f
--- /dev/null
+++ b/v4.0/src/DEV/KEYBOARD/MAKEFILE
@@ -0,0 +1,59 @@
1#*************************** Makefile for Bios ************************
2
3msg =..\..\msg
4dos =..\..\dos
5inc =..\..\inc
6
7#
8###################### Dependencies begin here #########################
9#
10
11all: keyboard.sys
12
13kdfnow.obj: kdfnow.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
14
15kdffr120.obj: kdffr120.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
16
17kdffr189.obj: kdffr189.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
18
19kdfeof.obj: kdfeof.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
20
21kdfuk166.obj: kdfuk166.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
22
23kdfuk168.obj: kdfuk168.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
24
25kdfit141.obj: kdfit141.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
26
27kdfit142.obj: kdfit142.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
28
29kdfge.obj: kdfge.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
30
31kdfsp.obj: kdfsp.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
32
33kdfnl.obj: kdfnl.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
34
35kdfno.obj: kdfno.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
36
37kdfdk.obj: kdfdk.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
38
39kdfsg.obj: kdfsg.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
40
41kdfsf.obj: kdfsf.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
42
43kdfpo.obj: kdfpo.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
44
45kdfbe.obj: kdfbe.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
46
47kdfcf.obj: kdfcf.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
48
49kdfla.obj: kdfla.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
50
51kdfsv.obj: kdfsv.asm keybmac.inc keybshar.inc $(inc)\postequ.inc
52
53keyboard.sys: kdfsp.obj kdfpo.obj kdffr120.obj kdffr189.obj kdfdk.obj \
54 kdfsg.obj kdfge.obj kdfit141.obj kdfit142.obj kdfuk166.obj \
55 kdfsf.obj kdfbe.obj kdfnl.obj kdfno.obj kdfcf.obj \
56 kdfla.obj kdfsv.obj kdfeof.obj kdfnow.obj kdfuk168.obj
57 link @keyboard.lnk
58 exe2bin keyboard.exe keyboard.sys
59 del keyboard.exe