1
2{$IFDEF OGC_INTERFACE}
3VAR
4  KS_BackSpace: byte = $08;
5  KS_Tab: byte = $09;
6  KS_Linefeed: byte = $0a;
7  KS_Clear: byte = $0b;
8  KS_Return: byte = $0d;
9  KS_Escape: byte = $1b;
10  KS_space: byte = $20;
11  KS_exclam: byte = $21;
12  KS_quotedbl: byte = $22;
13  KS_numbersign: byte = $23;
14  KS_dollar: byte = $24;
15  KS_percent: byte = $25;
16  KS_ampersand: byte = $26;
17  KS_apostrophe: byte = $27;
18  KS_parenleft: byte = $28;
19  KS_parenright: byte = $29;
20  KS_asterisk: byte = $2a;
21  KS_plus: byte = $2b;
22  KS_comma: byte = $2c;
23  KS_minus: byte = $2d;
24  KS_period: byte = $2e;
25  KS_slash: byte = $2f;
26  KS_0: byte = $30;
27  KS_1: byte = $31;
28  KS_2: byte = $32;
29  KS_3: byte = $33;
30  KS_4: byte = $34;
31  KS_5: byte = $35;
32  KS_6: byte = $36;
33  KS_7: byte = $37;
34  KS_8: byte = $38;
35  KS_9: byte = $39;
36  KS_colon: byte = $3a;
37  KS_semicolon: byte = $3b;
38  KS_less: byte = $3c;
39  KS_equal: byte = $3d;
40  KS_greater: byte = $3e;
41  KS_question: byte = $3f;
42  KS_at: byte = $40;
43
44  KS_A: byte = $41; public name 'KS_A';
45  KS_B: byte = $42; public name 'KS_B';
46  KS_C: byte = $43; public name 'KS_C';
47  KS_D: byte = $44; public name 'KS_D';
48  KS_E: byte = $45; public name 'KS_E';
49  KS_F: byte = $46; public name 'KS_F';
50  KS_G: byte = $47; public name 'KS_G';
51  KS_H: byte = $48; public name 'KS_H';
52  KS_I: byte = $49; public name 'KS_I';
53  KS_J: byte = $4a; public name 'KS_J';
54  KS_K: byte = $4b; public name 'KS_K';
55  KS_L: byte = $4c; public name 'KS_L';
56  KS_M: byte = $4d; public name 'KS_M';
57  KS_N: byte = $4e; public name 'KS_N';
58  KS_O: byte = $4f; public name 'KS_O';
59  KS_P: byte = $50; public name 'KS_P';
60  KS_Q: byte = $51; public name 'KS_Q';
61  KS_R: byte = $52; public name 'KS_R';
62  KS_S: byte = $53; public name 'KS_S';
63  KS_T: byte = $54; public name 'KS_T';
64  KS_U: byte = $55; public name 'KS_U';
65  KS_V: byte = $56; public name 'KS_V';
66  KS_W: byte = $57; public name 'KS_W';
67  KS_X: byte = $58; public name 'KS_X';
68  KS_Y: byte = $59; public name 'KS_Y';
69  KS_Z: byte = $5a; public name 'KS_Z';
70
71  KS_bracketleft: byte = $5b;
72  KS_backslash: byte = $5c;
73  KS_bracketright: byte = $5d;
74  KS_asciicircum: byte = $5e;
75  KS_underscore: byte = $5f;
76  KS_grave: byte = $60;
77
78  KS_a_: byte = $61; public name 'KS_a';
79  KS_b_: byte = $62; public name 'KS_b';
80  KS_c_: byte = $63; public name 'KS_c';
81  KS_d_: byte = $64; public name 'KS_d';
82  KS_e_: byte = $65; public name 'KS_e';
83  KS_f_: byte = $66; public name 'KS_f';
84  KS_g_: byte = $67; public name 'KS_g';
85  KS_h_: byte = $68; public name 'KS_h';
86  KS_i_: byte = $69; public name 'KS_i';
87  KS_j_: byte = $6a; public name 'KS_j';
88  KS_k_: byte = $6b; public name 'KS_k';
89  KS_l_: byte = $6c; public name 'KS_l';
90  KS_m_: byte = $6d; public name 'KS_m';
91  KS_n_: byte = $6e; public name 'KS_n';
92  KS_o_: byte = $6f; public name 'KS_o';
93  KS_p_: byte = $70; public name 'KS_p';
94  KS_q_: byte = $71; public name 'KS_q';
95  KS_r_: byte = $72; public name 'KS_r';
96  KS_s_: byte = $73; public name 'KS_s';
97  KS_t_: byte = $74; public name 'KS_t';
98  KS_u_: byte = $75; public name 'KS_u';
99  KS_v_: byte = $76; public name 'KS_v';
100  KS_w_: byte = $77; public name 'KS_w';
101  KS_x_: byte = $78; public name 'KS_x';
102  KS_y_: byte = $79; public name 'KS_y';
103  KS_z_: byte = $7a; public name 'KS_z';
104
105  KS_braceleft: byte = $7b;
106  KS_bar: byte = $7c;
107  KS_braceright: byte = $7d;
108  KS_asciitilde: byte = $7e;
109  KS_Delete: byte = $7f;
110  KS_nobreakspace: byte = $a0;
111  KS_exclamdown: byte = $a1;
112  KS_cent: byte = $a2;
113  KS_sterling: byte = $a3;
114  KS_currency: byte = $a4;
115  KS_yen: byte = $a5;
116  KS_brokenbar: byte = $a6;
117  KS_section: byte = $a7;
118  KS_diaeresis: byte = $a8;
119  KS_copyright: byte = $a9;
120  KS_ordfeminine: byte = $aa;
121  KS_guillemotleft: byte = $ab;
122  KS_notsign: byte = $ac;
123  KS_hyphen: byte = $ad;
124  KS_registered: byte = $ae;
125  KS_macron: byte = $af;
126  KS_degree: byte = $b0;
127  KS_plusminus: byte = $b1;
128  KS_twosuperior: byte = $b2;
129  KS_threesuperior: byte = $b3;
130  KS_acute: byte = $b4;
131  KS_mu: byte = $b5;
132  KS_paragraph: byte = $b6;
133  KS_periodcentered: byte = $b7;
134  KS_cedilla: byte = $b8;
135  KS_onesuperior: byte = $b9;
136  KS_masculine: byte = $ba;
137  KS_guillemotright: byte = $bb;
138  KS_onequarter: byte = $bc;
139  KS_onehalf: byte = $bd;
140  KS_threequarters: byte = $be;
141  KS_questiondown: byte = $bf;
142  KS_Agrave: byte = $c0; public name 'KS_Agrave';
143  KS_Aacute: byte = $c1; public name 'KS_Aacute';
144  KS_Acircumflex: byte = $c2; public name 'KS_Acircumflex';
145  KS_Atilde: byte = $c3; public name 'KS_Atilde';
146  KS_Adiaeresis: byte = $c4; public name 'KS_Adiaeresis';
147  KS_Aring: byte = $c5; public name 'KS_Aring';
148  KS_AE: byte = $c6; public name 'KS_AE';
149  KS_Ccedilla: byte = $c7; public name 'KS_Ccedilla';
150  KS_Egrave: byte = $c8; public name 'KS_Egrave';
151  KS_Eacute: byte = $c9; public name 'KS_Eacute';
152  KS_Ecircumflex: byte = $ca; public name 'KS_Ecircumflex';
153  KS_Ediaeresis: byte = $cb; public name 'KS_Ediaeresis';
154  KS_Igrave: byte = $cc; public name 'KS_Igrave';
155  KS_Iacute: byte = $cd; public name 'KS_Iacute';
156  KS_Icircumflex: byte = $ce; public name 'KS_Icircumflex';
157  KS_Idiaeresis: byte = $cf; public name 'KS_Idiaeresis';
158  KS_ETH: byte = $d0; public name 'KS_ETH';
159  KS_Ntilde: byte = $d1; public name 'KS_Ntilde';
160  KS_Ograve: byte = $d2; public name 'KS_Ograve';
161  KS_Oacute: byte = $d3; public name 'KS_Oacute';
162  KS_Ocircumflex: byte = $d4; public name 'KS_Ocircumflex';
163  KS_Otilde: byte = $d5; public name 'KS_Otilde';
164  KS_Odiaeresis: byte = $d6; public name 'KS_Odiaeresis';
165  KS_multiply: byte = $d7;
166  KS_Ooblique: byte = $d8; public name 'KS_Ooblique';
167  KS_Ugrave: byte = $d9; public name 'KS_Ugrave';
168  KS_Uacute: byte = $da; public name 'KS_Uacute';
169  KS_Ucircumflex: byte = $db; public name 'KS_Ucircumflex';
170  KS_Udiaeresis: byte = $dc; public name 'KS_Udiaeresis';
171  KS_Yacute: byte = $dd; public name 'KS_Yacute';
172  KS_THORN: byte = $de; public name 'KS_THORN';
173  KS_ssharp: byte = $df;
174  KS_agrave_: byte = $e0; public name 'KS_agrave';
175  KS_aacute_: byte = $e1; public name 'KS_aacute';
176  KS_acircumflex_: byte = $e2; public name 'KS_acircumflex';
177  KS_atilde_: byte = $e3; public name 'KS_atilde';
178  KS_adiaeresis_: byte = $e4; public name 'KS_adiaeresis';
179  KS_aring_: byte = $e5; public name 'KS_aring';
180  KS_ae_: byte = $e6; public name 'KS_ae';
181  KS_ccedilla_: byte = $e7; public name 'KS_ccedilla';
182  KS_egrave_: byte = $e8; public name 'KS_egrave';
183  KS_eacute_: byte = $e9; public name 'KS_eacute';
184  KS_ecircumflex_: byte = $ea; public name 'KS_ecircumflex';
185  KS_ediaeresis_: byte = $eb; public name 'KS_ediaeresis';
186  KS_igrave_: byte = $ec; public name 'KS_igrave';
187  KS_iacute_: byte = $ed; public name 'KS_iacute';
188  KS_icircumflex_: byte = $ee; public name 'KS_icircumflex';
189  KS_idiaeresis_: byte = $ef; public name 'KS_idiaeresis';
190  KS_eth_: byte = $f0; public name 'KS_eth';
191  KS_ntilde_: byte = $f1; public name 'KS_ntilde';
192  KS_ograve_: byte = $f2; public name 'KS_ograve';
193  KS_oacute_: byte = $f3; public name 'KS_oacute';
194  KS_ocircumflex_: byte = $f4; public name 'KS_ocircumflex';
195  KS_otilde_: byte = $f5; public name 'KS_otilde';
196  KS_odiaeresis_: byte = $f6; public name 'KS_odiaeresis';
197  KS_division: byte = $f7;
198  KS_oslash: byte = $f8;
199  KS_ugrave_: byte = $f9; public name 'KS_ugrave';
200  KS_uacute_: byte = $fa; public name 'KS_uacute';
201  KS_ucircumflex_: byte = $fb; public name 'KS_ucircumflex';
202  KS_udiaeresis_: byte = $fc; public name 'KS_udiaeresis';
203  KS_yacute_: byte = $fd; public name 'KS_yacute';
204  KS_thorn_: byte = $fe; public name 'KS_thorn';
205  KS_ydiaeresis_: byte = $ff; public name 'KS_ydiaeresis';
206  KS_Odoubleacute: word = $150; public name 'KS_Odoubleacute';
207  KS_odoubleacute_: word = $151; public name 'KS_odoubleacute';
208  KS_Udoubleacute: word = $170; public name 'KS_Udoubleacute';
209  KS_udoubleacute_: word = $171; public name 'KS_udoubleacute';
210  (*
211 * Group Dead (dead accents)
212  *)
213
214
215  KS_dead_grave: word = $0300;
216  KS_dead_acute: word = $0301;
217  KS_dead_circumflex: word = $0302;
218  KS_dead_tilde: word = $0303;
219  KS_dead_diaeresis: word = $0308;
220  KS_dead_abovering: word = $030a;
221  KS_dead_cedilla: word = $0327;
222  (*
223 * Group Cyrillic (koi8-r)
224  *)
225
226
227  KS_Cyrillic_A: byte = $e1; public name 'KS_Cyrillic_A';
228  KS_Cyrillic_BE: byte = $e2; public name 'KS_Cyrillic_BE';
229  KS_Cyrillic_VE: byte = $f7; public name 'KS_Cyrillic_VE';
230  KS_Cyrillic_GE: byte = $e7; public name 'KS_Cyrillic_GE';
231  KS_Cyrillic_DE: byte = $e4; public name 'KS_Cyrillic_DE';
232  KS_Cyrillic_IE: byte = $e5; public name 'KS_Cyrillic_IE';
233  KS_Cyrillic_YO: byte = $b3; public name 'KS_Cyrillic_YO';
234  KS_Cyrillic_ZHE: byte = $f6; public name 'KS_Cyrillic_ZHE';
235  KS_Cyrillic_ZE: byte = $fa; public name 'KS_Cyrillic_ZE';
236  KS_Cyrillic_I: byte = $e9; public name 'KS_Cyrillic_I';
237  KS_Cyrillic_ISHORT: byte = $ea; public name 'KS_Cyrillic_ISHORT';
238  KS_Cyrillic_IUKR: byte = $b6; public name 'KS_Cyrillic_IUKR';
239  KS_Cyrillic_YI: byte = $b7; public name 'KS_Cyrillic_YI';
240  KS_Cyrillic_KA: byte = $eb; public name 'KS_Cyrillic_KA';
241  KS_Cyrillic_EL: byte = $ec; public name 'KS_Cyrillic_EL';
242  KS_Cyrillic_EM: byte = $ed; public name 'KS_Cyrillic_EM';
243  KS_Cyrillic_EN: byte = $ee; public name 'KS_Cyrillic_EN';
244  KS_Cyrillic_O: byte = $ef; public name 'KS_Cyrillic_O';
245  KS_Cyrillic_PE: byte = $f0; public name 'KS_Cyrillic_PE';
246  KS_Cyrillic_ER: byte = $f2; public name 'KS_Cyrillic_ER';
247  KS_Cyrillic_ES: byte = $f3; public name 'KS_Cyrillic_ES';
248  KS_Cyrillic_TE: byte = $f4; public name 'KS_Cyrillic_TE';
249  KS_Cyrillic_U: byte = $f5; public name 'KS_Cyrillic_U';
250  KS_Cyrillic_EF: byte = $e6; public name 'KS_Cyrillic_EF';
251  KS_Cyrillic_HA: byte = $e8; public name 'KS_Cyrillic_HA';
252  KS_Cyrillic_TSE: byte = $e3; public name 'KS_Cyrillic_TSE';
253  KS_Cyrillic_CHE: byte = $fe; public name 'KS_Cyrillic_CHE';
254  KS_Cyrillic_SHA: byte = $fb; public name 'KS_Cyrillic_SHA';
255  KS_Cyrillic_SCHA: byte = $fd; public name 'KS_Cyrillic_SCHA';
256  KS_Cyrillic_HSIGHN: byte = $ff; public name 'KS_Cyrillic_HSIGHN';
257  KS_Cyrillic_YERU: byte = $f9; public name 'KS_Cyrillic_YERU';
258  KS_Cyrillic_SSIGHN: byte = $f8; public name 'KS_Cyrillic_SSIGHN';
259  KS_Cyrillic_E: byte = $fc; public name 'KS_Cyrillic_E';
260  KS_Cyrillic_YU: byte = $e0; public name 'KS_Cyrillic_YU';
261  KS_Cyrillic_YA: byte = $f1; public name 'KS_Cyrillic_YA';
262  KS_Cyrillic_a_: byte = $c1; public name 'KS_Cyrillic_a';
263  KS_Cyrillic_be_: byte = $c2; public name 'KS_Cyrillic_be';
264  KS_Cyrillic_ve_: byte = $d7; public name 'KS_Cyrillic_ve';
265  KS_Cyrillic_ge_: byte = $c7; public name 'KS_Cyrillic_ge';
266  KS_Cyrillic_de_: byte = $c4; public name 'KS_Cyrillic_de';
267  KS_Cyrillic_ie_: byte = $c5; public name 'KS_Cyrillic_ie';
268  KS_Cyrillic_yo_: byte = $a3; public name 'KS_Cyrillic_yo';
269  KS_Cyrillic_zhe_: byte = $d6; public name 'KS_Cyrillic_zhe';
270  KS_Cyrillic_ze_: byte = $da; public name 'KS_Cyrillic_ze';
271  KS_Cyrillic_i_: byte = $c9; public name 'KS_Cyrillic_i';
272  KS_Cyrillic_ishort_: byte = $ca; public name 'KS_Cyrillic_ishort';
273  KS_Cyrillic_iukr_: byte = $a6; public name 'KS_Cyrillic_iukr';
274  KS_Cyrillic_yi_: byte = $a7; public name 'KS_Cyrillic_yi';
275  KS_Cyrillic_ka_: byte = $cb; public name 'KS_Cyrillic_ka';
276  KS_Cyrillic_el_: byte = $cc; public name 'KS_Cyrillic_el';
277  KS_Cyrillic_em_: byte = $cd; public name 'KS_Cyrillic_em';
278  KS_Cyrillic_en_: byte = $ce; public name 'KS_Cyrillic_en';
279  KS_Cyrillic_o_: byte = $cf; public name 'KS_Cyrillic_o';
280  KS_Cyrillic_pe_: byte = $d0; public name 'KS_Cyrillic_pe';
281  KS_Cyrillic_er_: byte = $d2; public name 'KS_Cyrillic_er';
282  KS_Cyrillic_es_: byte = $d3; public name 'KS_Cyrillic_es';
283  KS_Cyrillic_te_: byte = $d4; public name 'KS_Cyrillic_te';
284  KS_Cyrillic_u_: byte = $d5; public name 'KS_Cyrillic_u';
285  KS_Cyrillic_ef_: byte = $c6; public name 'KS_Cyrillic_ef';
286  KS_Cyrillic_ha_: byte = $c8; public name 'KS_Cyrillic_ha';
287  KS_Cyrillic_tse_: byte = $c3; public name 'KS_Cyrillic_tse';
288  KS_Cyrillic_che_: byte = $de; public name 'KS_Cyrillic_che';
289  KS_Cyrillic_sha_: byte = $db; public name 'KS_Cyrillic_sha';
290  KS_Cyrillic_scha_: byte = $dd; public name 'KS_Cyrillic_scha';
291  KS_Cyrillic_hsighn_: byte = $df; public name 'KS_Cyrillic_hsighn';
292  KS_Cyrillic_yeru_: byte = $d9; public name 'KS_Cyrillic_yeru';
293  KS_Cyrillic_ssighn_: byte = $d8; public name 'KS_Cyrillic_ssighn';
294  KS_Cyrillic_e_: byte = $dc; public name 'KS_Cyrillic_e';
295  KS_Cyrillic_yu_: byte = $c0; public name 'KS_Cyrillic_yu';
296  KS_Cyrillic_ya_: byte = $d1; public name 'KS_Cyrillic_ya';
297  KS_Cyrillic_gheukr_: byte = $ad; public name 'KS_Cyrillic_gheukr';
298  KS_Cyrillic_GHEUKR: byte = $bd; public name 'KS_Cyrillic_GHEUKR';
299  KS_Cyrillic_yeukr_: byte = $a4; public name 'KS_Cyrillic_yeukr';
300  KS_Cyrillic_YEUKR: byte = $b4; public name 'KS_Cyrillic_YEUKR';
301  (*
302 * Group Latin-2 (iso8859-2)
303  *)
304
305
306  KS_L2_Aogonek: byte = $a1; public name 'KS_L2_Aogonek';
307  KS_L2_breve: byte = $a2;
308  KS_L2_Lstroke: byte = $a3;
309  KS_L2_Lcaron: byte = $a5;
310  KS_L2_Sacute: byte = $a6;
311  KS_L2_Scaron: byte = $a9;
312  KS_L2_Scedilla: byte = $aa;
313  KS_L2_Tcaron: byte = $ab;
314  KS_L2_Zacute: byte = $ac;
315  KS_L2_Zcaron: byte = $ae;
316  KS_L2_Zdotabove: byte = $af;
317  KS_L2_aogonek_: byte = $b1; public name 'KS_L2_aogonek';
318  KS_L2_ogonek: byte = $b2;
319  KS_L2_lstroke_: byte = $b3; public name 'KS_L2_lstroke';
320  KS_L2_lcaron_: byte = $b5; public name 'KS_L2_lcaron';
321  KS_L2_sacute_: byte = $b6; public name 'KS_L2_sacute';
322  KS_L2_caron: byte = $b7;
323  KS_L2_scaron_: byte = $b9; public name 'KS_L2_scaron';
324  KS_L2_scedilla_: byte = $ba; public name 'KS_L2_scedilla';
325  KS_L2_tcaron_: byte = $bb; public name 'KS_L2_tcaron';
326  KS_L2_zacute_: byte = $bc; public name 'KS_L2_zacute';
327  KS_L2_dblacute: byte = $bd;
328  KS_L2_zcaron_: byte = $be; public name 'KS_L2_zcaron';
329  KS_L2_zdotabove_: byte = $bf; public name 'KS_L2_zdotabove';
330  KS_L2_Racute: byte = $c0;
331  KS_L2_Abreve: byte = $c3;
332  KS_L2_Lacute: byte = $c5;
333  KS_L2_Cacute: byte = $c6;
334  KS_L2_Ccaron: byte = $c8;
335  KS_L2_Eogonek: byte = $ca;
336  KS_L2_Ecaron: byte = $cc;
337  KS_L2_Dcaron: byte = $cf;
338  KS_L2_Dstroke: byte = $d0;
339  KS_L2_Nacute: byte = $d1;
340  KS_L2_Ncaron: byte = $d2;
341  KS_L2_Odoubleacute: byte = $d5;
342  KS_L2_Rcaron: byte = $d8;
343  KS_L2_Uring: byte = $d9;
344  KS_L2_Udoubleacute: byte = $db;
345  KS_L2_Tcedilla: byte = $de;
346  KS_L2_racute_: byte = $e0; public name 'KS_L2_racute';
347  KS_L2_abreve_: byte = $e3; public name 'KS_L2_abreve';
348  KS_L2_lacute_: byte = $e5; public name 'KS_L2_lacute';
349  KS_L2_cacute_: byte = $e6; public name 'KS_L2_cacute';
350  KS_L2_ccaron_: byte = $e8; public name 'KS_L2_ccaron';
351  KS_L2_eogonek_: byte = $ea; public name 'KS_L2_eogonek';
352  KS_L2_ecaron_: byte = $ec; public name 'KS_L2_ecaron';
353  KS_L2_dcaron_: byte = $ef; public name 'KS_L2_dcaron';
354  KS_L2_dstroke_: byte = $f0; public name 'KS_L2_dstroke';
355  KS_L2_nacute_: byte = $f1; public name 'KS_L2_nacute';
356  KS_L2_odoubleacute_: byte = $f5; public name 'KS_L2_odoubleacute';
357  KS_L2_rcaron_: byte = $f8; public name 'KS_L2_rcaron';
358  KS_L2_uring_: byte = $f9; public name 'KS_L2_uring';
359  KS_L2_udoubleacute_: byte = $fb; public name 'KS_L2_udoubleacute';
360  KS_L2_tcedilla_: byte = $fe; public name 'KS_L2_tcedilla';
361  KS_L2_dotabove: byte = $ff;
362  (*
363 * Group Latin-5 (iso8859-9)
364  *)
365
366var
367  KS_L5_Gbreve: byte = $d0; public name 'KS_L5_Gbreve';
368  KS_L5_Idotabove: byte = $dd;
369  KS_L5_Scedilla: byte = $de; public name 'KS_L5_Scedilla';
370  KS_L5_gbreve_: byte = $f0; public name 'KS_L5_gbreve';
371  KS_L5_idotless: byte = $fd;
372  KS_L5_scedilla_: byte = $fe; public name 'KS_L5_scedilla';
373  (*
374 * Group Latin-7 (iso8859-13)
375  *)
376
377var
378  KS_L7_rightdblquot: byte = $a1;
379  KS_L7_dbllow9quot: byte = $a5;
380  KS_L7_Ostroke: byte = $a8;
381  KS_L7_Rcedilla: byte = $aa;
382  KS_L7_AE: byte = $af;
383  KS_L7_leftdblquot: byte = $b4;
384  KS_L7_ostroke_: byte = $b8; public name 'KS_L7_ostroke';
385  KS_L7_rcedilla_: byte = $ba; public name 'KS_L7_rcedilla';
386  KS_L7_ae_: byte = $bf; public name 'KS_L7_ae';
387  KS_L7_Aogonek: byte = $c0;
388  KS_L7_Iogonek: byte = $c1;
389  KS_L7_Amacron: byte = $c2;
390  KS_L7_Cacute: byte = $c3;
391  KS_L7_Eogonek: byte = $c6;
392  KS_L7_Emacron: byte = $c7;
393  KS_L7_Ccaron: byte = $c8;
394  KS_L7_Zacute: byte = $ca;
395  KS_L7_Edot: byte = $cb;
396  KS_L7_Gcedilla: byte = $cc;
397  KS_L7_Kcedilla: byte = $cd;
398  KS_L7_Imacron: byte = $ce;
399  KS_L7_Lcedilla: byte = $cf;
400  KS_L7_Scaron: byte = $d0;
401  KS_L7_Nacute: byte = $d1;
402  KS_L7_Ncedilla: byte = $d2;
403  KS_L7_Omacron: byte = $d4;
404  KS_L7_Uogonek: byte = $d8;
405  KS_L7_Lstroke: byte = $d9;
406  KS_L7_Sacute: byte = $da;
407  KS_L7_Umacron: byte = $db;
408  KS_L7_Zdot: byte = $dd;
409  KS_L7_Zcaron: byte = $de;
410  KS_L7_aogonek_: byte = $e0; public name 'KS_L7_aogonek';
411  KS_L7_iogonek_: byte = $e1; public name 'KS_L7_iogonek';
412  KS_L7_amacron_: byte = $e2; public name 'KS_L7_amacron';
413  KS_L7_cacute_: byte = $e3; public name 'KS_L7_cacute';
414  KS_L7_eogonek_: byte = $e6; public name 'KS_L7_eogonek';
415  KS_L7_emacron_: byte = $e7; public name 'KS_L7_emacron';
416  KS_L7_ccaron_: byte = $e8; public name 'KS_L7_ccaron';
417  KS_L7_zacute_: byte = $ea; public name 'KS_L7_zacute';
418  KS_L7_edot_: byte = $eb; public name 'KS_L7_edot';
419  KS_L7_gcedilla_: byte = $ec; public name 'KS_L7_gcedilla';
420  KS_L7_kcedilla_: byte = $ed; public name 'KS_L7_kcedilla';
421  KS_L7_imacron_: byte = $ee; public name 'KS_L7_imacron';
422  KS_L7_lcedilla_: byte = $ef; public name 'KS_L7_lcedilla';
423  KS_L7_scaron_: byte = $f0; public name 'KS_L7_scaron';
424  KS_L7_nacute_: byte = $f1; public name 'KS_L7_nacute';
425  KS_L7_ncedilla_: byte = $f2; public name 'KS_L7_ncedilla';
426  KS_L7_omacron_: byte = $f4; public name 'KS_L7_omacron';
427  KS_L7_uogonek_: byte = $f8; public name 'KS_L7_uogonek';
428  KS_L7_lstroke_: byte = $f9; public name 'KS_L7_lstroke';
429  KS_L7_sacute_: byte = $fa; public name 'KS_L7_sacute';
430  KS_L7_umacron_: byte = $fb; public name 'KS_L7_umacron';
431  KS_L7_zdot_: byte = $fd; public name 'KS_L7_zdot';
432  KS_L7_zcaron_: byte = $fe; public name 'KS_L7_zcaron';
433  KS_L7_rightsnglquot: byte = $ff;
434  (*
435 * Group 1 (modifiers)
436  *)
437
438const
439  KS_Shift_L = $f101;
440  KS_Shift_R = $f102;
441  KS_Control_L = $f103;
442  KS_Control_R = $f104;
443  KS_Caps_Lock = $f105;
444  KS_Shift_Lock = $f106;
445  KS_Alt_L = $f107;
446  KS_Alt_R = $f108;
447  KS_Multi_key = $f109;
448  KS_Mode_switch = $f10a;
449  KS_Num_Lock = $f10b;
450  KS_Hold_Screen = $f10c;
451  KS_Cmd = $f10d;
452  KS_Cmd1 = $f10e;
453  KS_Cmd2 = $f10f;
454  KS_Meta_L = $f110;
455  KS_Meta_R = $f111;
456  KS_Zenkaku_Hankaku = $f112;  (* Zenkaku/Hankaku toggle  *)
457  KS_Hiragana_Katakana = $f113;  (* Hiragana/Katakana toggle  *)
458  KS_Henkan_Mode = $f114;  (* Start/Stop Conversion  *)
459  KS_Henkan = $f115;  (* Alias for Henkan_Mode  *)
460  KS_Muhenkan = $f116;  (* Cancel Conversion  *)
461  KS_Mode_Lock = $f117;
462  (*
463 * Group 2 (keypad) character in low byte
464  *)
465
466
467  KS_KP_F1 = $f291;
468  KS_KP_F2 = $f292;
469  KS_KP_F3 = $f293;
470  KS_KP_F4 = $f294;
471  KS_KP_Home = $f295;
472  KS_KP_Left = $f296;
473  KS_KP_Up = $f297;
474  KS_KP_Right = $f298;
475  KS_KP_Down = $f299;
476  KS_KP_Prior = $f29a;
477  KS_KP_Next = $f29b;
478  KS_KP_End = $f29c;
479  KS_KP_Begin = $f29d;
480  KS_KP_Insert = $f29e;
481  KS_KP_Delete = $f29f;
482  KS_KP_Space = $f220;
483  KS_KP_Tab = $f209;
484  KS_KP_Enter = $f20d;
485  KS_KP_Equal = $f23d;
486  KS_KP_Numbersign = $f223;
487  KS_KP_Multiply = $f22a;
488  KS_KP_Add = $f22b;
489  KS_KP_Separator = $f22c;
490  KS_KP_Subtract = $f22d;
491  KS_KP_Decimal = $f22e;
492  KS_KP_Divide = $f22f;
493  KS_KP_0 = $f230;
494  KS_KP_1 = $f231;
495  KS_KP_2 = $f232;
496  KS_KP_3 = $f233;
497  KS_KP_4 = $f234;
498  KS_KP_5 = $f235;
499  KS_KP_6 = $f236;
500  KS_KP_7 = $f237;
501  KS_KP_8 = $f238;
502  KS_KP_9 = $f239;
503  (*
504 * Group 3 (function)
505  *)
506
507var
508  KS_f1_: word = $f300; public name 'KS_f1';
509  KS_f2_: word = $f301; public name 'KS_f2';
510  KS_f3_: word = $f302; public name 'KS_f3';
511  KS_f4_: word = $f303; public name 'KS_f4';
512  KS_f5_: word = $f304; public name 'KS_f5';
513  KS_f6_: word = $f305; public name 'KS_f6';
514  KS_f7_: word = $f306; public name 'KS_f7';
515  KS_f8_: word = $f307; public name 'KS_f8';
516  KS_f9_: word = $f308; public name 'KS_f9';
517  KS_f10_: word = $f309; public name 'KS_f10';
518  KS_f11_: word = $f30a; public name 'KS_f11';
519  KS_f12_: word = $f30b; public name 'KS_f12';
520  KS_f13_: word = $f30c; public name 'KS_f13';
521  KS_f14_: word = $f30d; public name 'KS_f14';
522  KS_f15_: word = $f30e; public name 'KS_f15';
523  KS_f16_: word = $f30f; public name 'KS_f16';
524  KS_f17_: word = $f310; public name 'KS_f17';
525  KS_f18_: word = $f311; public name 'KS_f18';
526  KS_f19_: word = $f312; public name 'KS_f19';
527  KS_f20_: word = $f313; public name 'KS_f20';
528  KS_F1: word = $f340; public name 'KS_F1';
529  KS_F2: word = $f341; public name 'KS_F2';
530  KS_F3: word = $f342; public name 'KS_F3';
531  KS_F4: word = $f343; public name 'KS_F4';
532  KS_F5: word = $f344; public name 'KS_F5';
533  KS_F6: word = $f345; public name 'KS_F6';
534  KS_F7: word = $f346; public name 'KS_F7';
535  KS_F8: word = $f347; public name 'KS_F8';
536  KS_F9: word = $f348; public name 'KS_F9';
537  KS_F10: word = $f349; public name 'KS_F10';
538  KS_F11: word = $f34a; public name 'KS_F11';
539  KS_F12: word = $f34b; public name 'KS_F12';
540  KS_F13: word = $f34c; public name 'KS_F13';
541  KS_F14: word = $f34d; public name 'KS_F14';
542  KS_F15: word = $f34e; public name 'KS_F15';
543  KS_F16: word = $f34f; public name 'KS_F16';
544  KS_F17: word = $f350; public name 'KS_F17';
545  KS_F18: word = $f351; public name 'KS_F18';
546  KS_F19: word = $f352; public name 'KS_F19';
547  KS_F20: word = $f353; public name 'KS_F20';
548const
549  KS_Home = $f381;
550  KS_Prior = $f382;
551  KS_Next = $f383;
552  KS_Up = $f384;
553  KS_Down = $f385;
554  KS_Left = $f386;
555  KS_Right = $f387;
556  KS_End = $f388;
557  KS_Insert = $f389;
558  KS_Help = $f38a;
559  KS_Execute = $f38b;
560  KS_Find = $f38c;
561  KS_Select = $f38d;
562  KS_Again = $f38e;
563  KS_Props = $f38f;
564  KS_Undo = $f390;
565  KS_Front = $f391;
566  KS_Copy = $f392;
567  KS_Open = $f393;
568  KS_Paste = $f394;
569  KS_Cut = $f395;
570  KS_Menu = $f3c0;
571  KS_Pause = $f3c1;
572  KS_Print_Screen = $f3c2;
573  KS_AudioMute = $f3d1;
574  KS_AudioLower = $f3d2;
575  KS_AudioRaise = $f3d3;
576  (*
577 * Group 4 (command)
578  *)
579
580
581  KS_Cmd_Screen0 = $f400;
582  KS_Cmd_Screen1 = $f401;
583  KS_Cmd_Screen2 = $f402;
584  KS_Cmd_Screen3 = $f403;
585  KS_Cmd_Screen4 = $f404;
586  KS_Cmd_Screen5 = $f405;
587  KS_Cmd_Screen6 = $f406;
588  KS_Cmd_Screen7 = $f407;
589  KS_Cmd_Screen8 = $f408;
590  KS_Cmd_Screen9 = $f409;
591  KS_Cmd_Screen10 = $f40a;
592  KS_Cmd_Screen11 = $f40b;
593  KS_Cmd_Debugger = $f420;
594  KS_Cmd_ResetEmul = $f421;
595  KS_Cmd_ResetClose = $f422;
596  KS_Cmd_BacklightOn = $f423;
597  KS_Cmd_BacklightOff = $f424;
598  KS_Cmd_BacklightToggle = $f425;
599  KS_Cmd_BrightnessUp = $f426;
600  KS_Cmd_BrightnessDown = $f427;
601  KS_Cmd_BrightnessRotate = $f428;
602  KS_Cmd_ContrastUp = $f429;
603  KS_Cmd_ContrastDown = $f42a;
604  KS_Cmd_ContrastRotate = $f42b;
605  KS_Cmd_ScrollBack = $f42c;
606  KS_Cmd_ScrollFwd = $f42d;
607  KS_Cmd_KbdReset = $f42e;
608  (*
609 * Group 5 (internal)
610  *)
611
612
613  KS_voidSymbol = $f500;
614  (*ENDKEYSYMDECL *)
615
616
617  (*
618 * keysym groups
619  *)
620
621
622  KS_GROUP_Mod = $f100;
623  KS_GROUP_Keypad = $f200;
624  KS_GROUP_Function = $f300;
625  KS_GROUP_Command = $f400;
626  KS_GROUP_Internal = $f500;
627  KS_GROUP_Dead = $f801;  (* not encoded in keysym  *)
628  KS_GROUP_Ascii = $f802;  (* not encoded in keysym  *)
629  KS_GROUP_Keycode = $f803;  (* not encoded in keysym  *)
630  KS_NUMKEYCODES = $1000;
631
632function KS_KEYCODE(v: cint): cint; inline;
633function KS_GROUP(k: cint): cint; inline;
634function KS_VALUE(k: cint): cint; inline;
635function KB_ENCODING(e: cint): cint; inline;
636function KB_VARIANT(e: cint): cint; inline;
637
638const
639  KB_NONE = $0000;
640  KB_USER = $0100;
641  KB_US = $0200;
642  KB_DE = $0300;
643  KB_DK = $0400;
644  KB_IT = $0500;
645  KB_FR = $0600;
646  KB_UK = $0700;
647  KB_JP = $0800;
648  KB_SV = $0900;
649  KB_NO = $0a00;
650  KB_ES = $0b00;
651  KB_HU = $0c00;
652  KB_BE = $0d00;
653  KB_RU = $0e00;
654  KB_SG = $0f00;
655  KB_SF = $1000;
656  KB_PT = $1100;
657  KB_UA = $1200;
658  KB_LT = $1300;
659  KB_LA = $1400;
660  KB_BR = $1500;
661  KB_NL = $1600;
662  KB_TR = $1700;
663  KB_PL = $1800;
664  KB_SI = $1900;
665  KB_CF = $1a00;
666  KB_LV = $1b00;
667  KB_NODEAD = $000001;  (* disable dead accents  *)
668  KB_DECLK = $000002;  (* DEC LKnnn layout  *)
669  KB_LK401 = $000004;  (* DEC LK401 instead LK201  *)
670  KB_SWAPCTRLCAPS = $000008;  (* swap Left-Control and Caps-Lock  *)
671  KB_DVORAK = $000010;  (* Dvorak layout  *)
672  KB_METAESC = $000020;  (* generate ESC prefix on ALT-key  *)
673  KB_IOPENER = $000040;  (* f1-f12 -> ESC,f1-f11  *)
674  KB_MACHDEP = $000080;  (* machine dependent  *)
675  KB_APPLE = $010000;  (* Apple specific layout  *)
676(*
677  KB_ENCTAB = (( KB_USER,	'user' ),
678  	( KB_US,	'us' ),
679  	( KB_DE,	'de' ),
680  	( KB_DK,	'dk' ),
681  	( KB_IT,	'it' ),
682  	( KB_FR,	'fr' ),
683  	( KB_UK,	'uk' ),
684  	( KB_JP,	'jp' ),
685  	( KB_SV,	'sv' ),
686  	( KB_NO,	'no' ),
687  	( KB_ES,	'es' ),
688  	( KB_HU,	'hu' ),
689  	( KB_BE,	'be' ),
690  	( KB_RU,	'ru' ),
691  	( KB_UA,	'ua' ),
692  	( KB_SG,	'sg' ),
693  	( KB_SF,	'sf' ),
694  	( KB_PT,	'pt' ),
695  	( KB_LT,	'lt' ),
696  	( KB_LA,	'la' ),
697  	( KB_BR,	'br' ),
698  	( KB_NL,	'nl' ),
699  	( KB_TR,	'tr' ),
700  	( KB_PL,	'pl' ),
701  	( KB_SI,	'si' ),
702  	( KB_CF,	'cf' ),
703  	( KB_LV,	'lv' ));
704
705  KB_VARTAB = (( KB_NODEAD,	'nodead' ),
706  	( KB_DECLK,	'declk' ),
707  	( KB_LK401,	'lk401' ),
708  	( KB_SWAPCTRLCAPS, 'swapctrlcaps' ),
709  	( KB_DVORAK,	'dvorak' ),
710  	( KB_METAESC,	'metaesc' ),
711  	( KB_IOPENER,	'iopener' ),
712  	( KB_MACHDEP,	'machdep' ),
713  	( KB_APPLE,	'apple' ));        *)
714{$ENDIF}
715
716
717
718{$IFDEF OGC_IMPLEMENTATION}
719function KS_KEYCODE(v: cint): cint; inline;
720begin
721  KS_KEYCODE := v or $e000;
722end;
723
724function KS_GROUP(k: cint): cint; inline;
725begin
726  if (k >= $0300) and (k < $0370) then
727    KS_GROUP := KS_GROUP_Dead
728  else
729	if (k and $f000) = $e000 then
730    KS_GROUP := KS_GROUP_Keycode
731  else
732	if (k and $f800) = $f000 then
733    KS_GROUP := (k and $ff00)
734  else
735		KS_GROUP := KS_GROUP_Ascii;
736end;
737
738function KS_VALUE(k: cint): cint; inline;
739begin
740  if (k and $f000) = $e000 then
741    KS_VALUE := (k and $0fff)
742  else
743	if (k and $f800) = $f000 then
744    KS_VALUE := (k and $00ff)
745  else
746    KS_VALUE := k;
747end;
748
749function KB_ENCODING(e: cint): cint; inline;
750begin
751  KB_ENCODING := (e and $0000ff00);
752end;
753
754function KB_VARIANT(e: cint): cint; inline;
755begin
756  KB_VARIANT := (e and $ffff00ff);
757end;
758{$ENDIF}
759
760