1 /*
2 * linux/drivers/acorn/char/defkeymap.c
3 *
4 * Copyright (C) 1995, 1996 Russell King
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10 #include <linux/types.h>
11 #include <linux/keyboard.h>
12 #include <linux/kd.h>
13
14 /* Normal (maps 1:1 with no processing) */
15 #define KTn 0xF0
16 /* Function keys */
17 #define KTf 0xF1
18 /* Special (Performs special house-keeping funcs) */
19 #define KTs 0xF2
20 #define KIGNORE K(KTs, 0) /* Ignore */
21 #define KENTER K(KTs, 1) /* Enter */
22 #define KREGS K(KTs, 2) /* Regs */
23 #define KMEM K(KTs, 3) /* Mem */
24 #define KSTAT K(KTs, 4) /* State */
25 #define KINTR K(KTs, 5) /* Intr */
26 #define Ksl 6 /* Last console */
27 #define KCAPSLK K(KTs, 7) /* Caps lock */
28 #define KNUMLK K(KTs, 8) /* Num-lock */
29 #define KSCRLLK K(KTs, 9) /* Scroll-lock */
30 #define KSCRLFOR K(KTs,10) /* Scroll forward */
31 #define KSCRLBAK K(KTs,11) /* Scroll back */
32 #define KREBOOT K(KTs,12) /* Reboot */
33 #define KCAPSON K(KTs,13) /* Caps on */
34 #define KCOMPOSE K(KTs,14) /* Compose */
35 #define KSAK K(KTs,15) /* SAK */
36 #define CONS_DEC K(KTs,16) /* Dec console */
37 #define CONS_INC K(KTs,17) /* Incr console */
38 #define KFLOPPY K(KTs,18) /* Floppy */
39 /* Key pad (0-9 = digits, 10=+, 11=-, 12=*, 13=/, 14=enter, 16=., 17=# */
40 #define KTp 0xF3
41 #define KPAD_0 K(KTp, 0 )
42 #define KPAD_1 K(KTp, 1 )
43 #define KPAD_2 K(KTp, 2 )
44 #define KPAD_3 K(KTp, 3 )
45 #define KPAD_4 K(KTp, 4 )
46 #define KPAD_5 K(KTp, 5 )
47 #define KPAD_6 K(KTp, 6 )
48 #define KPAD_7 K(KTp, 7 )
49 #define KPAD_8 K(KTp, 8 )
50 #define KPAD_9 K(KTp, 9 )
51 #define KPAD_PL K(KTp,10 )
52 #define KPAD_MI K(KTp,11 )
53 #define KPAD_ML K(KTp,12 )
54 #define KPAD_DV K(KTp,13 )
55 #define KPAD_EN K(KTp,14 )
56 #define KPAD_DT K(KTp,16 )
57 #define KPAD_HS K(KTp,20 )
58 /* Console switching */
59 #define KCn 0xF5
60 /* Cursor */
61 #define KTc 0xF6
62 #define Kcd 0 /* Cursor down */
63 #define Kcl 1 /* Cursor left */
64 #define Kcr 2 /* Cursor right */
65 #define Kcu 3 /* Cursor up */
66 /* Shift/alt modifiers etc */
67 #define KMd 0xF7
68 #define KSHIFT K(KMd, 0 )
69 #define KALTGR K(KMd, 1 )
70 #define KCTRL K(KMd, 2 )
71 #define KALT K(KMd, 3 )
72 /* Meta */
73 #define KMt 0xF8
74 #define KAs 0xF9
75 #define KPADA_0 K(KAs, 0 )
76 #define KPADA_1 K(KAs, 1 )
77 #define KPADA_2 K(KAs, 2 )
78 #define KPADA_3 K(KAs, 3 )
79 #define KPADA_4 K(KAs, 4 )
80 #define KPADA_5 K(KAs, 5 )
81 #define KPADA_6 K(KAs, 6 )
82 #define KPADA_7 K(KAs, 7 )
83 #define KPADA_8 K(KAs, 8 )
84 #define KPADA_9 K(KAs, 9 )
85 #define KPADB_0 K(KAs,10 )
86 #define KPADB_1 K(KAs,11 )
87 #define KPADB_2 K(KAs,12 )
88 #define KPADB_3 K(KAs,13 )
89 #define KPADB_4 K(KAs,14 )
90 #define KPADB_5 K(KAs,15 )
91 #define KPADB_6 K(KAs,16 )
92 #define KPADB_7 K(KAs,17 )
93 #define KPADB_8 K(KAs,18 )
94 #define KPADB_9 K(KAs,19 )
95 /* Locking keys */
96 #define KLk 0xFA
97 /* Letters */
98 #define KTl 0xFB
99
100 u_short plain_map[NR_KEYS]=
101 {
102 K(KTn, 27),K(KTf, 0),K(KTf, 1),K(KTf, 2 ),K(KTf, 3),K(KTf, 4),K(KTf, 5 ),K(KTf, 6),
103 K(KTf, 7),K(KTf, 8),K(KTf, 9),K(KTf, 10 ),K(KTf, 11),KIGNORE ,KSCRLLK ,KINTR ,
104 K(KTn,'`'),K(KTn,'1'),K(KTn,'2'),K(KTn,'3' ),K(KTn,'4'),K(KTn,'5'),K(KTn,'6' ),K(KTn,'7'),
105 K(KTn,'8'),K(KTn,'9'),K(KTn,''),K(KTn,'-' ),K(KTn,'='),K(KTn,'£'),K(KTn,127 ),K(KTf,21 ),
106 K(KTf,20 ),K(KTf,24 ),KNUMLK ,KPAD_DV ,KPAD_ML ,KPAD_HS ,K(KTn, 9 ),K(KTl,'q'),
107 K(KTl,'w'),K(KTl,'e'),K(KTl,'r'),K(KTl,'t' ),K(KTl,'y'),K(KTl,'u'),K(KTl,'i' ),K(KTl,'o'),
108 K(KTl,'p'),K(KTn,'['),K(KTn,']'),K(KTn,'\\'),K(KTf,22 ),K(KTf,23 ),K(KTf,25 ),KPAD_7 ,
109 KPAD_8 ,KPAD_9 ,KPAD_MI ,KCTRL ,K(KTl,'a'),K(KTl,'s'),K(KTl,'d' ),K(KTl,'f'),
110 K(KTl,'g'),K(KTl,'h'),K(KTl,'j'),K(KTl,'k' ),K(KTl,'l'),K(KTn,';'),K(KTn,'\''),KENTER ,
111 KPAD_4 ,KPAD_5 ,KPAD_6 ,KPAD_PL ,KSHIFT ,KIGNORE ,K(KTl,'z' ),K(KTl,'x'),
112 K(KTl,'c'),K(KTl,'v'),K(KTl,'b'),K(KTl,'n' ),K(KTl,'m'),K(KTn,','),K(KTn,'.' ),K(KTn,'/'),
113 KSHIFT ,K(KTc,Kcu),KPAD_1 ,KPAD_2 ,KPAD_3 ,KCAPSLK ,KALT ,K(KTn,' '),
114 KALTGR ,KCTRL ,K(KTc,Kcl),K(KTc,Kcd ),K(KTc,Kcr),KPAD_0 ,KPAD_DT ,KPAD_EN ,
115 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
116 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
117 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
118 };
119
120 u_short shift_map[NR_KEYS]=
121 {
122 K(KTn, 27),K(KTf, 10),K(KTf, 11),K(KTf, 12 ),K(KTf, 13),K(KTf, 14),K(KTf, 15 ),K(KTf, 16),
123 K(KTf, 17),K(KTf, 18),K(KTf, 19),K(KTf, 20 ),K(KTf, 21),KIGNORE ,KMEM ,KINTR ,
124 K(KTn,'~'),K(KTn,'!'),K(KTn,'@'),K(KTn,'#' ),K(KTn,'$'),K(KTn,'%'),K(KTn,'^' ),K(KTn,'&'),
125 K(KTn,'*'),K(KTn,'('),K(KTn,')'),K(KTn,'_' ),K(KTn,'+'),K(KTn,'¤'),K(KTn,127 ),K(KTf,21 ),
126 K(KTf,20 ),KSCRLBAK ,KNUMLK ,KPAD_DV ,KPAD_ML ,KPAD_HS ,K(KTn, 9 ),K(KTl,'Q'),
127 K(KTl,'W'),K(KTl,'E'),K(KTl,'R'),K(KTl,'T' ),K(KTl,'Y'),K(KTl,'U'),K(KTl,'I' ),K(KTl,'O'),
128 K(KTl,'P'),K(KTn,'{'),K(KTn,'}'),K(KTn,'|' ),K(KTf,22 ),K(KTf,23 ),KSCRLFOR ,KPAD_7 ,
129 KPAD_8 ,KPAD_9 ,KPAD_MI ,KCTRL ,K(KTl,'A'),K(KTl,'S'),K(KTl,'D' ),K(KTl,'F'),
130 K(KTl,'G'),K(KTl,'H'),K(KTl,'J'),K(KTl,'K' ),K(KTl,'L'),K(KTn,':'),K(KTn,'"' ),KENTER ,
131 KPAD_4 ,KPAD_5 ,KPAD_6 ,KPAD_PL ,KSHIFT ,KIGNORE ,K(KTl,'Z' ),K(KTl,'X'),
132 K(KTl,'C'),K(KTl,'V'),K(KTl,'B'),K(KTl,'N' ),K(KTl,'M'),K(KTn,'<'),K(KTn,'>' ),K(KTn,'?'),
133 KSHIFT ,K(KTc,Kcu),KPAD_1 ,KPAD_2 ,KPAD_3 ,KCAPSLK ,KALT ,K(KTn,' '),
134 KALTGR ,KCTRL ,K(KTc,Kcl),K(KTc,Kcd ),K(KTc,Kcr),KPAD_0 ,KPAD_DT ,KPAD_EN ,
135 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
136 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
137 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
138 };
139
140 u_short altgr_map[NR_KEYS]=
141 {
142 KIGNORE ,K(KCn,12 ),K(KCn,13 ),K(KCn,14 ),K(KCn,15 ),K(KCn,16 ),K(KCn,17 ),K(KCn, 18),
143 K(KCn, 19),K(KCn,20 ),K(KCn,21 ),K(KCn,22 ),K(KCn,23 ),KIGNORE ,KREGS ,KINTR ,
144 KIGNORE ,KIGNORE ,K(KTn,'@'),KIGNORE ,K(KTn,'$'),KIGNORE ,KIGNORE ,K(KTn,'{'),
145 K(KTn,'['),K(KTn,']'),K(KTn,'}'),K(KTn,'\\'),KIGNORE ,KIGNORE ,KIGNORE ,K(KTf,21 ),
146 K(KTf,20 ),K(KTf,24 ),KNUMLK ,KPAD_DV ,KPAD_ML ,KPAD_HS ,KIGNORE ,K(KTl,'q'),
147 K(KTl,'w'),K(KTl,'e'),K(KTl,'r'),K(KTl,'t' ),K(KTl,'y'),K(KTl,'u'),K(KTl,'i' ),K(KTl,'o'),
148 K(KTl,'p'),KIGNORE ,K(KTn,'~'),KIGNORE ,K(KTf,22 ),K(KTf,23 ),K(KTf,25 ),KPADB_7 ,
149 KPADB_8 ,KPADB_9 ,KPAD_MI ,KCTRL ,K(KAs,20 ),K(KTl,'s'),K(KAs,23 ),K(KAs,25 ),
150 K(KTl,'g'),K(KTl,'h'),K(KTl,'j'),K(KTl,'k' ),K(KTl,'l'),KIGNORE ,KIGNORE ,KENTER ,
151 KPADB_4 ,KPADB_5 ,KPADB_6 ,KPAD_PL ,KSHIFT ,KIGNORE ,K(KTl,'z' ),K(KTl,'x'),
152 K(KAs,22 ),K(KTl,'v'),K(KTl,21 ),K(KTl,'n' ),K(KTl,'m'),KIGNORE ,KIGNORE ,KIGNORE ,
153 KSHIFT ,K(KTc,Kcu),KPADB_1 ,KPADB_2 ,KPADB_3 ,KCAPSLK ,KALT ,KIGNORE ,
154 KALTGR ,KCTRL ,K(KTc,Kcl),K(KTc,Kcd ),K(KTc,Kcr),KPADB_0 ,KPAD_DT ,KPAD_EN ,
155 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
156 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
157 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
158 };
159
160 u_short ctrl_map[NR_KEYS]=
161 {
162 KIGNORE ,K(KTf, 0),K(KTf, 1),K(KTf, 2 ),K(KTf, 3),K(KTf, 4),K(KTf, 5 ),K(KTf, 6),
163 K(KTf, 7),K(KTf, 8),K(KTf, 9),K(KTf, 10 ),K(KTf, 11),KIGNORE ,KSTAT ,KINTR ,
164 KIGNORE ,K(KTn, 1 ),K(KTn, 2 ),K(KTn, 3 ),K(KTn, 4 ),K(KTn, 5 ),K(KTn, 6 ),K(KTn, 7 ),
165 K(KTn, 8 ),K(KTn, 9 ),K(KTn, 0 ),K(KTn,31 ),KIGNORE ,KIGNORE ,K(KTn, 8 ),K(KTf,21 ),
166 K(KTf,20 ),K(KTf,24 ),KNUMLK ,KPAD_DV ,KPAD_ML ,KPAD_HS ,KIGNORE ,K(KTn,17 ),
167 K(KTn,23 ),K(KTn, 5 ),K(KTn,18 ),K(KTn,20 ),K(KTn,25 ),K(KTn,21 ),K(KTn, 9 ),K(KTn,15 ),
168 K(KTn,16 ),K(KTn,27 ),K(KTn,29 ),K(KTn,28 ),K(KTf,22 ),K(KTf,23 ),K(KTf,25 ),KPAD_7 ,
169 KPAD_8 ,KPAD_9 ,KPAD_MI ,KCTRL ,K(KTn, 1 ),K(KTn,19 ),K(KTn, 4 ),K(KTn, 6 ),
170 K(KTn, 7 ),K(KTn, 8 ),K(KTn,10 ),K(KTn,11 ),K(KTn,12 ),KIGNORE ,K(KTn, 7 ),KENTER ,
171 KPAD_4 ,KPAD_5 ,KPAD_6 ,KPAD_PL ,KSHIFT ,KIGNORE ,K(KTn,26 ),K(KTn,24 ),
172 K(KTn, 3 ),K(KTn,22 ),K(KTn, 2 ),K(KTn,14 ),K(KTn,13 ),KIGNORE ,KCOMPOSE ,K(KTn,127),
173 KSHIFT ,K(KTc,Kcu),KPAD_1 ,KPAD_2 ,KPAD_3 ,KCAPSLK ,KALT ,K(KTn, 0 ),
174 KALTGR ,KCTRL ,K(KTc,Kcl),K(KTc,Kcd ),K(KTc,Kcr),KPAD_0 ,KPAD_DT ,KPAD_EN ,
175 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
176 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
177 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
178 };
179
180 u_short shift_ctrl_map[NR_KEYS]=
181 {
182 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
183 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KFLOPPY ,KINTR ,
184 KIGNORE ,KIGNORE ,K(KTn, 0 ),KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
185 KIGNORE ,KIGNORE ,KIGNORE ,K(KTn,31 ),KIGNORE ,KIGNORE ,KIGNORE ,K(KTf,21 ),
186 K(KTf,20 ),K(KTf,24 ),KNUMLK ,KPAD_DV ,KPAD_ML ,KPAD_HS ,KIGNORE ,K(KTn,17 ),
187 K(KTn,23 ),K(KTn, 5 ),K(KTn,18 ),K(KTn,20 ),K(KTn,25 ),K(KTn,21 ),K(KTn, 9 ),K(KTn,15 ),
188 K(KTn,16 ),KIGNORE ,KIGNORE ,KIGNORE ,K(KTf,22 ),K(KTf,23 ),K(KTf,25 ),KPAD_7 ,
189 KPAD_8 ,KPAD_9 ,KPAD_MI ,KCTRL ,K(KTn, 1 ),K(KTn,19 ),K(KTn, 4 ),K(KTn, 6 ),
190 K(KTn, 7 ),K(KTn, 8 ),K(KTn,10 ),K(KTn,11 ),K(KTn,12 ),KIGNORE ,K(KTn, 7 ),KENTER ,
191 KPAD_4 ,KPAD_5 ,KPAD_6 ,KPAD_PL ,KSHIFT ,KIGNORE ,K(KTn,26 ),K(KTn,24 ),
192 K(KTn, 3 ),K(KTn,22 ),K(KTn, 2 ),K(KTn,14 ),K(KTn,13 ),KIGNORE ,KIGNORE ,KIGNORE ,
193 KSHIFT ,K(KTc,Kcu),KPAD_1 ,KPAD_2 ,KPAD_3 ,KCAPSLK ,KALT ,K(KTn, 0 ),
194 KALTGR ,KCTRL ,K(KTc,Kcl),K(KTc,Kcd ),K(KTc,Kcr),KPAD_0 ,KPAD_DT ,KPAD_EN ,
195 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
196 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
197 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
198 };
199
200 u_short alt_map[NR_KEYS]=
201 {
202 K(KMt,27 ),K(KCn, 0 ),K(KCn, 1 ),K(KCn, 2 ),K(KCn, 3 ),K(KCn, 4 ),K(KCn, 5 ),K(KCn, 6 ),
203 K(KCn, 7 ),K(KCn, 8 ),K(KCn, 9 ),K(KCn,10 ),K(KCn,11 ),KIGNORE ,KSCRLLK ,KINTR ,
204 K(KMt,'`'),K(KMt,'1'),K(KMt,'2'),K(KMt,'3' ),K(KMt,'4'),K(KMt,'5'),K(KMt,'6' ),K(KMt,'7'),
205 K(KMt,'8'),K(KMt,'9'),K(KMt,''),K(KMt,'-' ),K(KMt,'='),K(KMt,'£'),K(KMt,127 ),K(KTf,21 ),
206 K(KTf,20 ),K(KTf,24 ),KNUMLK ,KPAD_DV ,KPAD_ML ,KPAD_HS ,K(KMt, 9 ),K(KMt,'q'),
207 K(KMt,'w'),K(KMt,'e'),K(KMt,'r'),K(KMt,'t' ),K(KMt,'y'),K(KMt,'u'),K(KMt,'i' ),K(KMt,'o'),
208 K(KMt,'p'),K(KMt,'['),K(KMt,']'),K(KMt,'\\'),K(KTf,22 ),K(KTf,23 ),K(KTf,25 ),KPADA_7 ,
209 KPADA_8 ,KPADA_9 ,KPAD_MI ,KCTRL ,K(KMt,'a'),K(KMt,'s'),K(KMt,'d' ),K(KMt,'f'),
210 K(KMt,'g'),K(KMt,'h'),K(KMt,'j'),K(KMt,'k' ),K(KMt,'l'),K(KMt,';'),K(KMt,'\''),K(KMt,13 ),
211 KPADA_4 ,KPADA_5 ,KPADA_6 ,KPAD_PL ,KSHIFT ,KIGNORE ,K(KMt,'z' ),K(KMt,'x'),
212 K(KMt,'c'),K(KMt,'v'),K(KMt,'b'),K(KMt,'n' ),K(KMt,'m'),K(KMt,','),K(KMt,'.' ),KIGNORE ,
213 KSHIFT ,K(KTc,Kcu),KPADA_1 ,KPADA_2 ,KPADA_3 ,KCAPSLK ,KALT ,K(KMt,' '),
214 KALTGR ,KCTRL ,CONS_DEC ,K(KTc,Kcd ),CONS_INC ,KPADA_0 ,KPAD_DT ,KPAD_EN ,
215 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
216 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
217 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
218 };
219
220 u_short ctrl_alt_map[NR_KEYS]=
221 {
222 KIGNORE ,K(KCn, 0 ),K(KCn, 1 ),K(KCn, 2 ),K(KCn, 3 ),K(KCn, 4 ),K(KCn, 5 ),K(KCn, 6 ),
223 K(KCn, 7 ),K(KCn, 8 ),K(KCn, 9 ),K(KCn,10 ),K(KCn,11 ),KIGNORE ,KIGNORE ,KINTR ,
224 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
225 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,K(KTf,21 ),
226 K(KTf,20 ),K(KTf,24 ),KNUMLK ,KPAD_DV ,KPAD_ML ,KPAD_HS ,KIGNORE ,K(KMt,17 ),
227 K(KMt,23 ),K(KMt, 5 ),K(KMt,18 ),K(KMt,20 ),K(KMt,25 ),K(KMt,21 ),K(KMt, 9 ),K(KMt,15 ),
228 K(KMt,16 ),KIGNORE ,KIGNORE ,KIGNORE ,KREBOOT ,K(KTf,23 ),K(KTf,25 ),KPAD_7 ,
229 KPAD_8 ,KPAD_9 ,KPAD_MI ,KCTRL ,K(KMt, 1 ),K(KMt,19 ),K(KMt, 4 ),K(KMt, 6 ),
230 K(KMt, 7 ),K(KMt, 8 ),K(KMt,10 ),K(KMt,11 ),K(KMt,12 ),KIGNORE ,KIGNORE ,KENTER ,
231 KPAD_4 ,KPAD_5 ,KPAD_6 ,KPAD_PL ,KSHIFT ,KIGNORE ,K(KMt,26 ),K(KMt,24 ),
232 K(KMt, 3 ),K(KMt,22 ),K(KMt, 2 ),K(KMt,14 ),K(KMt,13 ),KIGNORE ,KIGNORE ,KIGNORE ,
233 KSHIFT ,K(KTc,Kcu),KPAD_1 ,KPAD_2 ,KPAD_3 ,KCAPSLK ,KALT ,KIGNORE ,
234 KALTGR ,KCTRL ,K(KTc,Kcl),K(KTc,Kcd ),K(KTc,Kcr),KPAD_0 ,KREBOOT ,KPAD_EN ,
235 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
236 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
237 KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,KIGNORE ,
238 };
239
240 ushort *key_maps[MAX_NR_KEYMAPS] = {
241 plain_map, shift_map, altgr_map, 0,
242 ctrl_map, shift_ctrl_map, 0, 0,
243 alt_map, 0, 0, 0,
244 ctrl_alt_map, 0
245 };
246
247 unsigned int keymap_count = 7;
248
249 /*
250 * Philosophy: most people do not define more strings, but they who do
251 * often want quite a lot of string space. So, we statically allocate
252 * the default and allocate dynamically in chunks of 512 bytes.
253 */
254
255 char func_buf[] = {
256 '\033', '[', '[', 'A', 0,
257 '\033', '[', '[', 'B', 0,
258 '\033', '[', '[', 'C', 0,
259 '\033', '[', '[', 'D', 0,
260 '\033', '[', '[', 'E', 0,
261 '\033', '[', '1', '7', '~', 0,
262 '\033', '[', '1', '8', '~', 0,
263 '\033', '[', '1', '9', '~', 0,
264 '\033', '[', '2', '', '~', 0,
265 '\033', '[', '2', '1', '~', 0,
266 '\033', '[', '2', '3', '~', 0,
267 '\033', '[', '2', '4', '~', 0,
268 '\033', '[', '2', '5', '~', 0,
269 '\033', '[', '2', '6', '~', 0,
270 '\033', '[', '2', '8', '~', 0,
271 '\033', '[', '2', '9', '~', 0,
272 '\033', '[', '3', '1', '~', 0,
273 '\033', '[', '3', '2', '~', 0,
274 '\033', '[', '3', '3', '~', 0,
275 '\033', '[', '3', '4', '~', 0,
276 '\033', '[', '1', '~', 0,
277 '\033', '[', '2', '~', 0,
278 '\033', '[', '3', '~', 0,
279 '\033', '[', '4', '~', 0,
280 '\033', '[', '5', '~', 0,
281 '\033', '[', '6', '~', 0,
282 '\033', '[', 'M', 0,
283 '\033', '[', 'P', 0,
284 };
285
286 char *funcbufptr = func_buf;
287 int funcbufsize = sizeof(func_buf);
288 int funcbufleft; /* space left */
289
290 char *func_table[MAX_NR_FUNC] = {
291 func_buf + 0,
292 func_buf + 5,
293 func_buf + 10,
294 func_buf + 15,
295 func_buf + 20,
296 func_buf + 25,
297 func_buf + 31,
298 func_buf + 37,
299 func_buf + 43,
300 func_buf + 49,
301 func_buf + 55,
302 func_buf + 61,
303 func_buf + 67,
304 func_buf + 73,
305 func_buf + 79,
306 func_buf + 85,
307 func_buf + 91,
308 func_buf + 97,
309 func_buf + 103,
310 func_buf + 109,
311 func_buf + 115,
312 func_buf + 120,
313 func_buf + 125,
314 func_buf + 130,
315 func_buf + 135,
316 func_buf + 140,
317 func_buf + 145,
318 0,
319 0,
320 func_buf + 149,
321 0,
322 };
323
324 struct kbdiacr accent_table[MAX_DIACR] = {
325 {'`', 'A', '\300'}, {'`', 'a', '\340'},
326 {'\'', 'A', '\301'}, {'\'', 'a', '\341'},
327 {'^', 'A', '\302'}, {'^', 'a', '\342'},
328 {'~', 'A', '\303'}, {'~', 'a', '\343'},
329 {'"', 'A', '\304'}, {'"', 'a', '\344'},
330 {'O', 'A', '\305'}, {'o', 'a', '\345'},
331 {'', 'A', '\305'}, {'', 'a', '\345'},
332 {'A', 'A', '\305'}, {'a', 'a', '\345'},
333 {'A', 'E', '\306'}, {'a', 'e', '\346'},
334 {',', 'C', '\307'}, {',', 'c', '\347'},
335 {'`', 'E', '\310'}, {'`', 'e', '\350'},
336 {'\'', 'E', '\311'}, {'\'', 'e', '\351'},
337 {'^', 'E', '\312'}, {'^', 'e', '\352'},
338 {'"', 'E', '\313'}, {'"', 'e', '\353'},
339 {'`', 'I', '\314'}, {'`', 'i', '\354'},
340 {'\'', 'I', '\315'}, {'\'', 'i', '\355'},
341 {'^', 'I', '\316'}, {'^', 'i', '\356'},
342 {'"', 'I', '\317'}, {'"', 'i', '\357'},
343 {'-', 'D', '\320'}, {'-', 'd', '\360'},
344 {'~', 'N', '\321'}, {'~', 'n', '\361'},
345 {'`', 'O', '\322'}, {'`', 'o', '\362'},
346 {'\'', 'O', '\323'}, {'\'', 'o', '\363'},
347 {'^', 'O', '\324'}, {'^', 'o', '\364'},
348 {'~', 'O', '\325'}, {'~', 'o', '\365'},
349 {'"', 'O', '\326'}, {'"', 'o', '\366'},
350 {'/', 'O', '\330'}, {'/', 'o', '\370'},
351 {'`', 'U', '\331'}, {'`', 'u', '\371'},
352 {'\'', 'U', '\332'}, {'\'', 'u', '\372'},
353 {'^', 'U', '\333'}, {'^', 'u', '\373'},
354 {'"', 'U', '\334'}, {'"', 'u', '\374'},
355 {'\'', 'Y', '\335'}, {'\'', 'y', '\375'},
356 {'T', 'H', '\336'}, {'t', 'h', '\376'},
357 {'s', 's', '\337'}, {'"', 'y', '\377'},
358 {'s', 'z', '\337'}, {'i', 'j', '\377'},
359 };
360
361 unsigned int accent_table_size = 68;
362
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.