hpckbdkeymap.h revision 1.46 1 1.46 uwe /* $NetBSD: hpckbdkeymap.h,v 1.46 2006/10/12 21:19:13 uwe Exp $ */
2 1.1 uch
3 1.1 uch /*-
4 1.13 uch * Copyright (c) 1999-2002 The NetBSD Foundation, Inc.
5 1.1 uch * All rights reserved.
6 1.1 uch *
7 1.1 uch * Redistribution and use in source and binary forms, with or without
8 1.1 uch * modification, are permitted provided that the following conditions
9 1.1 uch * are met:
10 1.1 uch * 1. Redistributions of source code must retain the above copyright
11 1.1 uch * notice, this list of conditions and the following disclaimer.
12 1.1 uch * 2. Redistributions in binary form must reproduce the above copyright
13 1.1 uch * notice, this list of conditions and the following disclaimer in the
14 1.1 uch * documentation and/or other materials provided with the distribution.
15 1.1 uch * 3. All advertising materials mentioning features or use of this software
16 1.1 uch * must display the following acknowledgement:
17 1.1 uch * This product includes software developed by the NetBSD
18 1.1 uch * Foundation, Inc. and its contributors.
19 1.1 uch * 4. Neither the name of The NetBSD Foundation nor the names of its
20 1.1 uch * contributors may be used to endorse or promote products derived
21 1.1 uch * from this software without specific prior written permission.
22 1.1 uch *
23 1.1 uch * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
24 1.1 uch * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
25 1.1 uch * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
26 1.1 uch * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
27 1.1 uch * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28 1.1 uch * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29 1.1 uch * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30 1.1 uch * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31 1.1 uch * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32 1.1 uch * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 1.1 uch * POSSIBILITY OF SUCH DAMAGE.
34 1.1 uch */
35 1.1 uch
36 1.1 uch #define UNK 255 /* unknown */
37 1.1 uch #define IGN 254 /* ignore */
38 1.1 uch #define SPL 253 /* special key */
39 1.1 uch #define KC(n) KS_KEYCODE(n)
40 1.1 uch #define CMDMAP(map) { map, (sizeof(map)/sizeof(keysym_t)) }
41 1.1 uch #define NULLCMDMAP { NULL, 0 }
42 1.1 uch
43 1.1 uch #define KEY_SPECIAL_OFF 0
44 1.1 uch #define KEY_SPECIAL_LIGHT 1
45 1.1 uch
46 1.32 uwe const uint8_t default_keymap[] = {
47 1.33 uwe /* 0 1 2 3 4 5 6 7 */
48 1.1 uch /* 0 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
49 1.1 uch /* 1 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
50 1.1 uch /* 2 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
51 1.1 uch /* 3 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
52 1.1 uch /* 4 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
53 1.1 uch /* 5 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
54 1.1 uch /* 6 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
55 1.1 uch /* 7 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
56 1.1 uch /* 8 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
57 1.1 uch /* 9 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
58 1.1 uch /*10 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
59 1.1 uch /*11 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
60 1.1 uch /*12 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
61 1.1 uch /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
62 1.1 uch /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
63 1.1 uch /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK
64 1.1 uch };
65 1.1 uch
66 1.1 uch const int default_special_keymap[] = {
67 1.1 uch [KEY_SPECIAL_OFF] = -1,
68 1.1 uch [KEY_SPECIAL_LIGHT] = -1
69 1.1 uch };
70 1.1 uch
71 1.1 uch #ifdef hpcmips
72 1.32 uwe const uint8_t tc5165_mobilon_keymap[] = {
73 1.33 uwe /* 0 1 2 3 4 5 6 7 */
74 1.1 uch /* 0 */ 37 , 45 , 44 , UNK, 9 , 51 , 23 , UNK,
75 1.1 uch /* 1 */ UNK, 56 , UNK, UNK, UNK, UNK, UNK, UNK,
76 1.1 uch /* 2 */ UNK, UNK, 29 , UNK, UNK, UNK, UNK, UNK,
77 1.1 uch /* 3 */ 24 , 203, UNK, 38 , 10 , 27 , 13 , UNK,
78 1.1 uch /* 4 */ 40 , UNK, UNK, 39 , 26 , 53 , 11 , 12 ,
79 1.1 uch /* 5 */ UNK, UNK, UNK, 53 , 25 , UNK, UNK, SPL, /* Light */
80 1.1 uch /* 6 */ 208, UNK, UNK, UNK, 52 , UNK, 43 , 14 ,
81 1.1 uch /* 7 */ 205, 200, UNK, UNK, SPL, UNK, UNK, 28 , /* Off key */
82 1.1 uch /* 8 */ UNK, 41 , 59 , 15 , 2 , UNK, UNK, UNK,
83 1.1 uch /* 9 */ 63 , 64 , 1 , UNK, 65 , 16 , 17 , UNK,
84 1.1 uch /*10 */ 60 , UNK, 61 , 62 , 3 , UNK, UNK, UNK,
85 1.1 uch /*11 */ UNK, UNK, UNK, 42 , 58 , UNK, UNK, UNK,
86 1.1 uch /*12 */ 47 , 33 , 46 , 5 , 4 , 18 , 19 , UNK,
87 1.1 uch /*13 */ 34 , 35 , 20 , 48 , 6 , 7 , 21 , 49 ,
88 1.1 uch /*14 */ 22 , 31 , 32 , 36 , 8 , 30 , 50 , 57 ,
89 1.1 uch /*15 */ UNK, IGN, UNK, UNK, UNK, UNK, UNK, UNK /* Windows key */
90 1.1 uch };
91 1.1 uch
92 1.1 uch const int tc5165_mobilon_special_keymap[] = {
93 1.44 peter [KEY_SPECIAL_OFF] = -1, /* 60 */
94 1.1 uch [KEY_SPECIAL_LIGHT] = 47
95 1.1 uch };
96 1.1 uch
97 1.32 uwe const uint8_t tc5165_telios_jp_keymap[] = {
98 1.33 uwe /* 0 1 2 3 4 5 6 7 */
99 1.1 uch /* 0 */ 58, 15, IGN, 1, IGN, IGN, IGN, IGN,
100 1.1 uch /* 1 */ IGN, IGN, IGN, IGN, 54, 42, IGN, IGN,
101 1.1 uch /* 2 */ 31, 18, 4, IGN, IGN, 32, 45, 59,
102 1.1 uch /* 3 */ 33, 19, 5, 61, IGN, 46, 123, 60,
103 1.1 uch /* 4 */ 35, 21, 8, 64, IGN, 48, 49, 63,
104 1.1 uch /* 5 */ 17, 16, 3, IGN, 2, 30, 44, 41,
105 1.36 nakayama /* 6 */ IGN, IGN, IGN, IGN, IGN, IGN, 221, IGN,
106 1.1 uch /* 7 */ IGN, IGN, IGN, IGN, IGN, IGN, 56, IGN,
107 1.1 uch /* 8 */ 34, 20, 7, IGN, 6, 47, 57, 62,
108 1.1 uch /* 9 */ IGN, IGN, IGN, IGN, IGN, IGN, 29, IGN,
109 1.4 takemura /*10 */ 27, 125, 13, 203, 208, 40, 115, 68,
110 1.36 nakayama /*11 */ 39, 26, 25, 112, 12, 52, 53, 67,
111 1.36 nakayama /*12 */ 37, 24, 11, 121, 10, 38, 51, 66,
112 1.1 uch /*13 */ 23, 22, 9, IGN, IGN, 36, 50, 65,
113 1.36 nakayama /*14 */ 28, 43, 14, 200, 205, IGN, IGN, 211,
114 1.36 nakayama /*15 */ IGN, IGN, IGN, IGN, IGN, IGN, 184, IGN
115 1.36 nakayama };
116 1.36 nakayama
117 1.36 nakayama static const keysym_t tc5165_telios_jp_cmdmap[] = {
118 1.36 nakayama /* pos command normal shifted */
119 1.36 nakayama KC(184), KS_Cmd, KS_Alt_R, KS_Multi_key,
120 1.36 nakayama KC(205), KS_Cmd_BrightnessUp, KS_Right,
121 1.36 nakayama KC(203), KS_Cmd_BrightnessDown, KS_Left,
122 1.36 nakayama KC(57), KS_Cmd_BacklightToggle,KS_space,
123 1.1 uch };
124 1.1 uch
125 1.32 uwe const uint8_t tc5165_compaq_c_jp_keymap[] = {
126 1.33 uwe /* 0 1 2 3 4 5 6 7 */
127 1.33 uwe /* 0 */ 38, 50, 49, 48, 47, 46, 45, 44,
128 1.1 uch /* 1 */ 56, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
129 1.33 uwe /* 2 */ 13, IGN, 112, 121, 123, 41, 28, 57,
130 1.4 takemura /* 3 */ 205, 203, 208, 200, 39, 53, 52, 51,
131 1.1 uch /* 4 */ 24, 25, 40, IGN, 43, 26, 115, 58,
132 1.1 uch /* 5 */ 54, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
133 1.1 uch /* 6 */ IGN, IGN, IGN, SPL, IGN, IGN, IGN, IGN, /* Light */
134 1.1 uch /* 7 */ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
135 1.1 uch /* 8 */ 42, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
136 1.1 uch /* 9 */ 29, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
137 1.1 uch /*10 */ 221, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
138 1.1 uch /*11 */ 221, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
139 1.1 uch /*12 */ 14, 27, 12, 11, 10, 15, 1, 125,
140 1.1 uch /*13 */ 9, 8, 7, 6, 5, 4, 3, 2,
141 1.1 uch /*14 */ 23, 22, 21, 20, 19, 18, 17, 16,
142 1.1 uch /*15 */ 37, 36, 35, 34, 33, 32, 31, 30
143 1.1 uch };
144 1.1 uch
145 1.1 uch const int tc5165_compaq_c_jp_special_keymap[] = {
146 1.1 uch [KEY_SPECIAL_OFF] = -1, /* don't have off button */
147 1.1 uch [KEY_SPECIAL_LIGHT] = 51
148 1.1 uch };
149 1.1 uch
150 1.32 uwe const uint8_t m38813c_keymap[] = {
151 1.33 uwe /* 0 1 2 3 4 5 6 7 */
152 1.1 uch /* 0 */ 0, 1, 2, 3, 4, 5, 6, 7,
153 1.1 uch /* 1 */ 8, 9, 10, 11, 12, 13, 14, 15,
154 1.1 uch /* 2 */ 16, 17, 18, 19, 20, 21, 22, 23,
155 1.1 uch /* 3 */ 24, 25, 26, 27, 28, 29, 30, 31,
156 1.1 uch /* 4 */ 32, 33, 34, 35, 36, 37, 38, 39,
157 1.1 uch /* 5 */ 40, 41, 42, 43, 44, 45, 46, 47,
158 1.1 uch /* 6 */ 48, 49, 50, 51, 52, 53, 54, 55,
159 1.1 uch /* 7 */ 56, 57, 58, 59, 60, 61, 62, 63,
160 1.1 uch /* 8 */ 64, 65, 66, 67, 68, 69, 70, 71,
161 1.4 takemura /* 9 */ 200, 73, 74, 203, 76, 205, 78, 79,
162 1.4 takemura /*10 */ 208, 81, 82, 83, 84, 85, 86, 87,
163 1.1 uch /*11 */ 88, 89, 90, 91, 92, 93, 94, 95,
164 1.1 uch /*12 */ 96, 97, 98, 99, 100, 101, 102, 103,
165 1.1 uch /*13 */ 104, 105, 106, 107, 108, 109, 110, 111,
166 1.1 uch /*14 */ 112, 113, 114, 115, 116, 117, 118, 119,
167 1.1 uch /*15 */ 120, 121, 122, 123, 124, 125, 126, 127
168 1.1 uch };
169 1.1 uch
170 1.1 uch /* NEC MobileGearII MCR series (Japan) */
171 1.32 uwe static uint8_t mcr_jp_keytrans[] = {
172 1.1 uch /*00 right ent p . y b z space */
173 1.1 uch /*08 down / o , t v a nfer */
174 1.1 uch /*10 left \ i m r c w menu */
175 1.1 uch /*18 ^ - u - e x q 1 */
176 1.1 uch /*20 pgdn h/z 0 l : g tab f1 */
177 1.1 uch /*28 xfer ; 9 n 5 f 2 k */
178 1.1 uch /*30 up [ 8 j 4 d 6 - */
179 1.1 uch /*38 - @ 7 h 3 ] s - */
180 1.1 uch /*40 caps - - - bs fnc f8 f3 */
181 1.1 uch /*48 - alt - - | k/h f7 f4 */
182 1.1 uch /*50 - - ctrl - f10 pgup f6 f2 */
183 1.1 uch /*58 - - - shift del f9 f5 esc */
184 1.1 uch /*----------------------------------------------------------------------*/
185 1.4 takemura /*00*/ 205, 28, 25, 52, 21, 48, 44, 57,
186 1.4 takemura /*08*/ 208, 53, 24, 51, 20, 47, 30, 123,
187 1.4 takemura /*10*/ 203, 115, 23, 50, 19, 46, 17, 221,
188 1.1 uch /*18*/ 13, IGN, 22, IGN, 18, 45, 16, 2,
189 1.1 uch /*20*/ 81, 41, 11, 38, 40, 34, 15, 59,
190 1.1 uch /*28*/ 121, 39, 10, 49, 6, 33, 3, 37,
191 1.4 takemura /*30*/ 200, 27, 9, 36, 5, 32, 7, IGN,
192 1.1 uch /*38*/ 12, 26, 8, 35, 4, 43, 31, IGN,
193 1.1 uch /*40*/ 58, IGN, IGN, IGN, 14, 184, 66, 61,
194 1.1 uch /*48*/ IGN, 56, IGN, IGN, 125, 112, 65, 62,
195 1.1 uch /*50*/ IGN, IGN, 29, IGN, 68, 73, 64, 60,
196 1.1 uch /*58*/ IGN, IGN, IGN, 42, 14, 67, 63, 1,
197 1.1 uch };
198 1.1 uch
199 1.1 uch static const keysym_t mcr_jp_cmdmap[] = {
200 1.1 uch /* pos command normal shifted */
201 1.1 uch KC(184), KS_Cmd, KS_Alt_R, KS_Multi_key,
202 1.1 uch KC(73), KS_Cmd_BrightnessUp, KS_KP_Prior, KS_KP_9,
203 1.1 uch KC(81), KS_Cmd_BrightnessDown, KS_KP_Next, KS_KP_3,
204 1.1 uch KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less,
205 1.1 uch KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater,
206 1.1 uch KC(57), KS_Cmd_BacklightToggle,KS_space,
207 1.1 uch };
208 1.1 uch
209 1.1 uch /* IBM WorkPad z50 */
210 1.32 uwe static uint8_t z50_keytrans[] = {
211 1.1 uch /*00 f1 f3 f5 f7 f9 - - f11 */
212 1.1 uch /*08 f2 f4 f6 f8 f10 - - f12 */
213 1.1 uch /*10 ' [ - 0 p ; up / */
214 1.1 uch /*18 - - - 9 o l . - */
215 1.1 uch /*20 left ] = 8 i k , - */
216 1.1 uch /*28 h y 6 7 u j m n */
217 1.1 uch /*30 - bs num del - \ ent sp */
218 1.1 uch /*38 g t 5 4 r f v b */
219 1.1 uch /*40 - - - 3 e d c right */
220 1.1 uch /*48 - - - 2 w s x down */
221 1.1 uch /*50 esc tab ~ 1 q a z - */
222 1.1 uch /*58 menu Ls Lc Rc La Ra Rs - */
223 1.1 uch /*----------------------------------------------------------------------*/
224 1.1 uch /*00*/ 59, 61, 63, 65, 67, IGN, IGN, 87,
225 1.1 uch /*08*/ 60, 62, 64, 66, 68, IGN, IGN, 88,
226 1.4 takemura /*10*/ 40, 26, 12, 11, 25, 39, 200, 53,
227 1.1 uch /*18*/ IGN, IGN, IGN, 10, 24, 38, 52, IGN,
228 1.4 takemura /*20*/ 203, 27, 13, 9, 23, 37, 51, IGN,
229 1.1 uch /*28*/ 35, 21, 7, 8, 22, 36, 50, 49,
230 1.1 uch /*30*/ IGN, 14, 69, 14, IGN, 43, 28, 57,
231 1.1 uch /*38*/ 34, 20, 6, 5, 19, 33, 47, 48,
232 1.4 takemura /*40*/ IGN, IGN, IGN, 4, 18, 32, 46, 205,
233 1.4 takemura /*48*/ IGN, IGN, IGN, 3, 17, 31, 45, 208,
234 1.1 uch /*50*/ 1, 15, 41, 2, 16, 30, 44, IGN,
235 1.1 uch /*58*/ 221, 42, 29, 29, 56, 56, 54, IGN,
236 1.1 uch };
237 1.1 uch
238 1.1 uch /* Sharp Tripad PV6000 and VADEM CLIO */
239 1.32 uwe static uint8_t tripad_keytrans[] = {
240 1.1 uch /*00 lsh tab ` q esc 1 WIN - */
241 1.1 uch /*08 ctrl z x a s w e 2 */
242 1.1 uch /*10 lalt sp c v d f r 3 */
243 1.1 uch /*18 b n g h t y 4 5 */
244 1.1 uch /*20 m , j k u i 6 7 */
245 1.1 uch /*28 Fn caps l o p 8 9 0 */
246 1.1 uch /*30 [ ] la . / ; - = */
247 1.1 uch /*38 rsh ra ua da ' ent \ del */
248 1.1 uch /*40 - - - - - - - - */
249 1.1 uch /*48 - - - - - - - - */
250 1.1 uch /*50 - - - - - - - - */
251 1.1 uch /*58 - - - - - - - - */
252 1.1 uch /*----------------------------------------------------------------------*/
253 1.1 uch /*00*/ 42, 15, 41, 16, 1, 2, 104, 221,
254 1.1 uch /*08*/ 29, 44, 45, 30, 31, 17, 18, 3,
255 1.1 uch /*10*/ 56, 57, 46, 47, 32, 33, 19, 4,
256 1.1 uch /*18*/ 48, 49, 34, 35, 20, 21, 5, 6,
257 1.1 uch /*20*/ 50, 51, 36, 37, 22, 23, 7, 8,
258 1.41 tsutsui /*28*/ 184, 58, 38, 24, 25, 9, 10, 11,
259 1.4 takemura /*30*/ 26, 27, 203, 52, 53, 39, 12, 13,
260 1.4 takemura /*38*/ 54, 205, 200, 208, 40, 28, 43, 14,
261 1.1 uch /*40*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
262 1.1 uch /*48*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
263 1.1 uch /*50*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
264 1.1 uch /*58*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
265 1.1 uch };
266 1.1 uch
267 1.41 tsutsui static const keysym_t tripad_cmdmap[] = {
268 1.41 tsutsui /* pos command normal shifted fn */
269 1.41 tsutsui KC(2), KS_Cmd_Screen0, KS_1, KS_exclam, KS_f1,
270 1.41 tsutsui KC(3), KS_Cmd_Screen1, KS_2, KS_at, KS_f2,
271 1.41 tsutsui KC(4), KS_Cmd_Screen2, KS_3, KS_numbersign, KS_f3,
272 1.41 tsutsui KC(5), KS_Cmd_Screen3, KS_4, KS_dollar, KS_f4,
273 1.41 tsutsui KC(6), KS_Cmd_Screen4, KS_5, KS_percent, KS_f5,
274 1.41 tsutsui KC(7), KS_Cmd_Screen5, KS_6, KS_asciicircum, KS_f6,
275 1.41 tsutsui KC(8), KS_Cmd_Screen6, KS_7, KS_ampersand, KS_f7,
276 1.41 tsutsui KC(9), KS_Cmd_Screen7, KS_8, KS_asterisk, KS_f8,
277 1.41 tsutsui KC(10), KS_Cmd_Screen8, KS_9, KS_parenleft, KS_f9,
278 1.41 tsutsui KC(11), KS_Cmd_Screen9, KS_0, KS_parenright, KS_f10,
279 1.41 tsutsui KC(12), KS_Cmd_BrightnessDown, KS_minus, KS_underscore, KS_f11,
280 1.41 tsutsui KC(13), KS_Cmd_BrightnessUp, KS_equal, KS_plus, KS_f12,
281 1.41 tsutsui KC(20), KS_Cmd_BacklightToggle, KS_t,
282 1.41 tsutsui KC(33), KS_Cmd_BacklightOff, KS_f,
283 1.41 tsutsui KC(49), KS_Cmd_BacklightOn, KS_n,
284 1.41 tsutsui KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less,
285 1.41 tsutsui KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater,
286 1.41 tsutsui KC(184), KS_Mode_switch, KS_Multi_key,
287 1.41 tsutsui KC(200), KS_Cmd_ScrollSlowUp, KS_Up, KS_Up, KS_Prior,
288 1.41 tsutsui KC(203), KS_Cmd_ScrollFastUp, KS_Left, KS_Left, KS_Home,
289 1.41 tsutsui KC(205), KS_Cmd_ScrollFastDown, KS_Right, KS_Right, KS_End,
290 1.41 tsutsui KC(208), KS_Cmd_ScrollSlowDown, KS_Down, KS_Down, KS_Next,
291 1.41 tsutsui };
292 1.41 tsutsui
293 1.1 uch /* NEC Mobile Gear MCCS series */
294 1.32 uwe static uint8_t mccs_keytrans[] = {
295 1.1 uch /*00 caps cr rar p . y b z */
296 1.1 uch /*08 alt [ dar o , t v a */
297 1.1 uch /*10 zen @ lar i m r c w */
298 1.1 uch /*18 lctrl ; uar u n e x q */
299 1.1 uch /*20 lshft bs \ 0 l 6 g tab */
300 1.1 uch /*28 nconv | / 9 k 5 f 2 */
301 1.1 uch /*30 conv = ] 8 j 4 d 1 */
302 1.1 uch /*38 hira - ' 7 h 3 s esc */
303 1.1 uch /*40 - sp - - - - - - */
304 1.1 uch /*48 - - - - - - - - */
305 1.1 uch /*50 - - - - - - - - */
306 1.1 uch /*58 - - - - - - - - */
307 1.1 uch /*----------------------------------------------------------------------*/
308 1.4 takemura /*00*/ 58, 28, 205, 25, 52, 21, 48, 44,
309 1.4 takemura /*08*/ 56, 27, 208, 24, 51, 20, 47, 30,
310 1.4 takemura /*10*/ 41, 26, 203, 23, 50, 19, 46, 17,
311 1.4 takemura /*18*/ 29, 39, 200, 22, 49, 18, 45, 16,
312 1.1 uch /*20*/ 42, 14, 115, 11, 38, 7, 34, 15,
313 1.1 uch /*28*/ 123, 125, 53, 10, 37, 6, 33, 3,
314 1.1 uch /*30*/ 121, 13, 43, 9, 36, 5, 32, 2,
315 1.1 uch /*38*/ 112, 12, 40, 8, 35, 4, 31, 1,
316 1.1 uch /*40*/ IGN, 57, IGN, IGN, IGN, IGN, IGN, IGN,
317 1.1 uch /*48*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
318 1.1 uch /*50*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
319 1.1 uch /*58*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
320 1.1 uch };
321 1.1 uch
322 1.1 uch static const keysym_t mccs_cmdmap[] = {
323 1.1 uch /* pos command normal shifted */
324 1.1 uch KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less,
325 1.1 uch KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater,
326 1.1 uch KC(57), KS_Cmd_BacklightToggle,KS_space,
327 1.1 uch };
328 1.1 uch
329 1.32 uwe static uint8_t mobilepro_keytrans[] = {
330 1.10 takemura /*00 space ] \ / left down enter l */
331 1.10 takemura /*08 - [ ' ; right up . o */
332 1.1 uch /*10 - - - Windows v c x z */
333 1.1 uch /*18 - = \- ` f d s a */
334 1.1 uch /*20 8 7 6 5 r e w q */
335 1.1 uch /*28 , m n b - - 0 9 */
336 1.1 uch /*30 k j h g 4 3 2 1 */
337 1.1 uch /*38 i u y t - caps del esc */
338 1.1 uch /*40 alt_R - - - BS p TAB Fn */
339 1.8 sato /*48 - alt_L - - pgdn pgup f10 f9 */
340 1.1 uch /*50 - - ctrl - f8 f7 f6 f5 */
341 1.1 uch /*58 - - - shift f4 f3 f2 f1 */
342 1.1 uch /*----------------------------------------------------------------------*/
343 1.4 takemura /*00*/ 57, 27, 43, 53, 203, 208, 28, 38,
344 1.4 takemura /*08*/ IGN, 26, 40, 39, 205, 200, 52, 24,
345 1.1 uch /*10*/ IGN, IGN, IGN, 221, 47, 46, 45, 44,
346 1.1 uch /*18*/ IGN, 13, 12, 41, 33, 32, 31, 30,
347 1.1 uch /*20*/ 9, 8, 7, 6, 19, 18, 17, 16,
348 1.1 uch /*28*/ 51, 50, 49, 48, IGN, IGN, 11, 10,
349 1.1 uch /*30*/ 37, 36, 35, 34, 5, 4, 3, 2,
350 1.1 uch /*38*/ 23, 22, 21, 20, IGN, 58, 14, 1,
351 1.8 sato /*40*/ 184, IGN, IGN, IGN, 14, 25, 15, 219,
352 1.8 sato /*48*/ IGN, 56, IGN, IGN, 81, 73, 68, 67,
353 1.1 uch /*50*/ IGN, IGN, 29, IGN, 66, 65, 64, 63,
354 1.1 uch /*58*/ IGN, IGN, IGN, 42, 62, 61, 60, 59,
355 1.1 uch };
356 1.1 uch
357 1.8 sato static const keysym_t mobilepro_cmdmap[] = {
358 1.8 sato /* pos command normal shifted */
359 1.8 sato KC(219), KS_Cmd, KS_Meta_L, KS_Multi_key,
360 1.8 sato KC(73), KS_Cmd_BrightnessUp, KS_KP_Prior, KS_KP_9,
361 1.8 sato KC(81), KS_Cmd_BrightnessDown, KS_KP_Next, KS_KP_3,
362 1.8 sato KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less,
363 1.8 sato KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater,
364 1.8 sato KC(57), KS_Cmd_BacklightToggle,KS_space,
365 1.8 sato };
366 1.8 sato
367 1.1 uch /* NEC MobilePro 750c by "Castor Fu" <castor (at) geocast.com> */
368 1.32 uwe static uint8_t mobilepro750c_keytrans[] = {
369 1.1 uch /*00 right \ p . y b z space */
370 1.1 uch /*08 down / o , t v a - */
371 1.1 uch /*10 left enter i m r c w Win */
372 1.1 uch /*18 num ] u n e x q caps */
373 1.1 uch /*20 pgdn - 0 l : g tab esc */
374 1.1 uch /*28 - ; 9 k 5 f 2 ` */
375 1.1 uch /*30 up [ 8 j 4 d 1 ' */
376 1.1 uch /*38 - @ 7 h 3 s del - */
377 1.1 uch /*40 shift - - - bs f12 f8 f4 */
378 1.1 uch /*48 - alt - - | f11 f7 f3 */
379 1.1 uch /*50 - - ctrl - f10 f10 f6 f2 */
380 1.1 uch /*58 - - - shift del f9 f5 f1 */
381 1.1 uch /*----------------------------------------------------------------------*/
382 1.4 takemura /*00*/ 205, 43, 25, 52, 21, 48, 44, 57,
383 1.4 takemura /*08*/ 208, 53, 24, 51, 20, 47, 30, IGN,
384 1.4 takemura /*10*/ 203, 28, 23, 50, 19, 46, 17, 221,
385 1.1 uch /*18*/ 69, 27, 22, 49, 18, 45, 16, 58,
386 1.1 uch /*20*/ 81, IGN, 11, 38, 7, 34, 15, 1,
387 1.1 uch /*28*/ IGN, 39, 10, 37, 6, 33, 3, 41,
388 1.4 takemura /*30*/ 200, 26, 9, 36, 5, 32, 2, 40,
389 1.1 uch /*38*/ 12, 26, 8, 35, 4, 31, 83, IGN,
390 1.1 uch /*40*/ 42, IGN, IGN, IGN, 14, 88, 66, 62,
391 1.1 uch /*48*/ IGN, 56, IGN, IGN, 125, 87, 65, 61,
392 1.1 uch /*50*/ IGN, IGN, 29, IGN, 68, 68, 64, 60,
393 1.1 uch /*58*/ IGN, IGN, IGN, 42, 13, 67, 63, 59,
394 1.1 uch };
395 1.1 uch
396 1.10 takemura /* NEC MobilePro 780 */
397 1.32 uwe static uint8_t mobilepro780_keytrans[] = {
398 1.10 takemura /*00 space ] \ / left right enter l */
399 1.10 takemura /*08 - [ ' ; up down . o */
400 1.10 takemura /*10 - - - Windows v c x z */
401 1.10 takemura /*18 - = \- ` f d s a */
402 1.10 takemura /*20 8 7 6 5 r e w q */
403 1.10 takemura /*28 , m n b - - 0 9 */
404 1.10 takemura /*30 k j h g 4 3 2 1 */
405 1.10 takemura /*38 i u y t - caps del esc */
406 1.10 takemura /*40 alt_R - - - BS p TAB Fn */
407 1.10 takemura /*48 - alt_L - - f12 f11 f10 f9 */
408 1.10 takemura /*50 - - ctrl - f8 f7 f6 f5 */
409 1.10 takemura /*58 - - - shift f4 f3 f2 f1 */
410 1.10 takemura /*----------------------------------------------------------------------*/
411 1.10 takemura /*00*/ 57, 27, 43, 53, 203, 205, 28, 38,
412 1.10 takemura /*08*/ IGN, 26, 40, 39, 200, 208, 52, 24,
413 1.10 takemura /*10*/ IGN, IGN, IGN, 221, 47, 46, 45, 44,
414 1.10 takemura /*18*/ IGN, 13, 12, 41, 33, 32, 31, 30,
415 1.10 takemura /*20*/ 9, 8, 7, 6, 19, 18, 17, 16,
416 1.10 takemura /*28*/ 51, 50, 49, 48, IGN, IGN, 11, 10,
417 1.10 takemura /*30*/ 37, 36, 35, 34, 5, 4, 3, 2,
418 1.10 takemura /*38*/ 23, 22, 21, 20, IGN, 58, 14, 1,
419 1.10 takemura /*40*/ 184, IGN, IGN, IGN, 14, 25, 15, IGN,
420 1.10 takemura /*48*/ IGN, 56, IGN, IGN, 88, 87, 68, 67,
421 1.10 takemura /*50*/ IGN, IGN, 29, IGN, 66, 65, 64, 63,
422 1.10 takemura /*58*/ IGN, IGN, IGN, 42, 62, 61, 60, 59,
423 1.10 takemura };
424 1.10 takemura
425 1.27 tv /* NEC MobilePro 8x0 */
426 1.32 uwe static uint8_t mobilepro8x0_keytrans[] = {
427 1.27 tv /*00 space ] \ / left right enter l */
428 1.27 tv /*08 - [ ' ; up down . o */
429 1.27 tv /*10 - - - Windows v c x z */
430 1.27 tv /*18 - = \- ` f d s a */
431 1.27 tv /*20 8 7 6 5 r e w q */
432 1.27 tv /*28 , m n b - - 0 9 */
433 1.27 tv /*30 k j h g 4 3 2 1 */
434 1.27 tv /*38 i u y t - caps del esc */
435 1.27 tv /*40 alt_R - - - BS p TAB Fn */
436 1.27 tv /*48 - alt_L - - pgdn pgup f10 f9 */
437 1.27 tv /*50 - - ctrl - f8 f7 f6 f5 */
438 1.27 tv /*58 - - - shift f4 f3 f2 f1 */
439 1.27 tv /*----------------------------------------------------------------------*/
440 1.27 tv /*00*/ 57, 27, 43, 53, 203, 205, 28, 38,
441 1.27 tv /*08*/ IGN, 26, 40, 39, 200, 208, 52, 24,
442 1.27 tv /*10*/ IGN, IGN, IGN, 221, 47, 46, 45, 44,
443 1.27 tv /*18*/ IGN, 13, 12, 41, 33, 32, 31, 30,
444 1.27 tv /*20*/ 9, 8, 7, 6, 19, 18, 17, 16,
445 1.27 tv /*28*/ 51, 50, 49, 48, IGN, IGN, 11, 10,
446 1.27 tv /*30*/ 37, 36, 35, 34, 5, 4, 3, 2,
447 1.27 tv /*38*/ 23, 22, 21, 20, IGN, 58, 14, 1,
448 1.27 tv /*40*/ 184, IGN, IGN, IGN, 14, 25, 15, 219,
449 1.27 tv /*48*/ IGN, 56, IGN, IGN, 81, 73, 68, 67,
450 1.27 tv /*50*/ IGN, IGN, 29, IGN, 66, 65, 64, 63,
451 1.27 tv /*58*/ IGN, IGN, IGN, 42, 62, 61, 60, 59,
452 1.27 tv };
453 1.27 tv
454 1.27 tv static const keysym_t mobilepro8x0_cmdmap[] = {
455 1.27 tv /* pos command normal shifted */
456 1.27 tv KC(219), KS_Cmd, KS_Meta_L, KS_Multi_key,
457 1.27 tv KC(73), KS_Cmd_BrightnessUp, KS_KP_Prior, KS_KP_9,
458 1.27 tv KC(81), KS_Cmd_BrightnessDown, KS_KP_Next, KS_KP_3,
459 1.27 tv KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less,
460 1.27 tv KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater,
461 1.27 tv KC(57), KS_Cmd_BacklightToggle,KS_space,
462 1.27 tv };
463 1.27 tv
464 1.1 uch /* FUJITSU INTERTOP CX300 */
465 1.32 uwe static uint8_t intertop_keytrans[] = {
466 1.1 uch /*00 space a2 1 tab enter caps left zenkaku */
467 1.1 uch /*08 hiraga a1 2 q - a fnc esc */
468 1.1 uch /*10 ins w 3 s del ] down x */
469 1.1 uch /*18 z e 4 d a10 \ right c */
470 1.1 uch /*20 backsla r ; f a9 @ ^ v */
471 1.1 uch /*28 / t 5 g a8 p - b */
472 1.1 uch /*30 . y 6 h a7 l 0 n */
473 1.1 uch /*38 - u 7 j a5 o bs m */
474 1.1 uch /*40 - a3 8 a4 - i k , */
475 1.1 uch /*48 num : 9 [ a6 - up - */
476 1.1 uch /*50 - - - - shift_L - - shift_R */
477 1.1 uch /*58 ctrl win muhenka henkan alt - - - */
478 1.1 uch /*----------------------------------------------------------------------*/
479 1.4 takemura /*00*/ 57, 60, 2, 15, 28, 58, 205, 41,
480 1.1 uch /*08*/ 112, 59, 3, 16, IGN, 30, 56, 1,
481 1.4 takemura /*10*/ 210, 17, 4, 31, 83, 43, 208, 45,
482 1.4 takemura /*18*/ 44, 18, 5, 32, 68, 125, 203, 46,
483 1.1 uch /*20*/ 115, 19, 39, 33, 67, 26, 13, 47,
484 1.1 uch /*28*/ 53, 20, 6, 34, 66, 25, 12, 48,
485 1.1 uch /*30*/ 52, 21, 7, 35, 65, 38, 11, 49,
486 1.1 uch /*38*/ IGN, 22, 8, 36, 63, 24, 14, 50,
487 1.1 uch /*40*/ IGN, 61, 9, 62, IGN, 23, 37, 51,
488 1.4 takemura /*48*/ 69, 40, 10, 27, 64, IGN, 200, IGN,
489 1.1 uch /*50*/ IGN, IGN, IGN, IGN, 42, IGN, IGN, 54,
490 1.1 uch /*58*/ 29, 221, 123, 121, 184, IGN, IGN, IGN,
491 1.1 uch };
492 1.1 uch
493 1.1 uch /* DoCoMo sigmarion (Japan) */
494 1.32 uwe static uint8_t sigmarion_jp_keytrans[] = {
495 1.1 uch /*00 right ent p . y b z space */
496 1.1 uch /*08 down / o , t v a nfer */
497 1.1 uch /*10 left \ i m r c w menu */
498 1.1 uch /*18 | - u - e x q 1 */
499 1.1 uch /*20 pgdn h/z 0 l : g tab f1 */
500 1.1 uch /*28 xfer ; 9 n 5 f 2 k */
501 1.1 uch /*30 up [ 8 j 4 d 6 - */
502 1.1 uch /*38 - @ 7 h 3 ] s - */
503 1.1 uch /*40 caps - - - bs fnc f8 f3 */
504 1.1 uch /*48 - alt - - ^ k/h f7 f4 */
505 1.1 uch /*50 - - ctrl - f10 pgup f6 f2 */
506 1.1 uch /*58 - - - shift del f9 f5 esc */
507 1.1 uch /*----------------------------------------------------------------------*/
508 1.4 takemura /*00*/ 205, 28, 25, 52, 21, 48, 44, 57,
509 1.4 takemura /*08*/ 208, 53, 24, 51, 20, 47, 30, 123,
510 1.4 takemura /*10*/ 203, 115, 23, 50, 19, 46, 17, 221,
511 1.1 uch /*18*/ 125, IGN, 22, IGN, 18, 45, 16, 2,
512 1.1 uch /*20*/ 81, 41, 11, 38, 40, 34, 15, IGN,
513 1.1 uch /*28*/ 121, 39, 10, 49, 6, 33, 3, 37,
514 1.4 takemura /*30*/ 200, 27, 9, 36, 5, 32, 7, IGN,
515 1.1 uch /*38*/ 12, 26, 8, 35, 4, 43, 31, IGN,
516 1.1 uch /*40*/ 58, IGN, IGN, IGN, 14, 184, 66, IGN,
517 1.1 uch /*48*/ IGN, 56, IGN, IGN, 13, 112, 65, IGN,
518 1.1 uch /*50*/ IGN, IGN, 29, IGN, 68, 73, 64, IGN,
519 1.1 uch /*58*/ IGN, IGN, IGN, 42, 14, 67, IGN, 1,
520 1.1 uch };
521 1.1 uch
522 1.1 uch static const keysym_t sigmarion_cmdmap[] = {
523 1.1 uch /* pos command normal shifted */
524 1.1 uch KC(184), KS_Cmd, KS_Alt_R, KS_Multi_key,
525 1.9 sato KC(64), KS_Cmd_Screen0, KS_f6, KS_f1,
526 1.9 sato KC(65), KS_Cmd_Screen1, KS_f7, KS_f2,
527 1.9 sato KC(66), KS_Cmd_Screen2, KS_f8, KS_f3,
528 1.9 sato KC(67), KS_Cmd_Screen3, KS_f9, KS_f4,
529 1.9 sato KC(68), KS_Cmd_Screen4, KS_f10, KS_f5,
530 1.1 uch KC(27), KS_Cmd_BrightnessUp, KS_bracketleft, KS_braceleft,
531 1.1 uch KC(43), KS_Cmd_BrightnessDown, KS_bracketright,KS_braceright,
532 1.1 uch KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less,
533 1.1 uch KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater,
534 1.1 uch KC(57), KS_Cmd_BacklightToggle,KS_space,
535 1.1 uch };
536 1.5 takemura
537 1.5 takemura /* NTT DoCoMo Pocket PostPet (Japan) */
538 1.32 uwe static uint8_t pocketpostpet_keytrans[] = {
539 1.5 takemura /*00 esc 1 q a ctrl - down left */
540 1.5 takemura /*08 tab 2 w s z - right up */
541 1.5 takemura /*10 pgup 3 e d x shift - - */
542 1.5 takemura /*18 pgdn 4 r f c alt - - */
543 1.5 takemura /*20 f5 5 t g v nfer - - */
544 1.5 takemura /*28 f6 6 y h b - - - */
545 1.5 takemura /*30 f7 7 u j n space - - */
546 1.5 takemura /*38 f8 8 i k m - - - */
547 1.5 takemura /*40 f9 9 o l , xfer - - */
548 1.5 takemura /*48 f10 0 p ; . - - - */
549 1.5 takemura /*50 \| minus @ : / ent - - */
550 1.5 takemura /*58 bs ^ [ ] \_ del - - */
551 1.5 takemura /* MailCheck -> tab */
552 1.5 takemura /* Prev -> pgup */
553 1.5 takemura /* Next -> pgdn */
554 1.5 takemura /* tab -> ctrl */
555 1.5 takemura /* h/z -> menu */
556 1.5 takemura /* k/h -> alt */
557 1.5 takemura /* knj -> nfer */
558 1.5 takemura /* eng -> xfer */
559 1.5 takemura /*----------------------------------------------------------------------*/
560 1.5 takemura /*00*/ 1, 2, 16, 30, 29, UNK, 208, 203,
561 1.5 takemura /*08*/ 15, 3, 17, 31, 44, UNK, 205, 200,
562 1.5 takemura /*10*/ 73, 4, 18, 32, 45, 42, UNK, UNK,
563 1.5 takemura /*08*/ 81, 5, 19, 33, 46, 56, UNK, UNK,
564 1.5 takemura /*20*/ 63, 6, 20, 34, 47, 123, UNK, UNK,
565 1.5 takemura /*28*/ 64, 7, 21, 35, 48, UNK, UNK, UNK,
566 1.5 takemura /*30*/ 65, 8, 22, 36, 49, 57, UNK, UNK,
567 1.5 takemura /*38*/ 66, 9, 23, 37, 50, UNK, UNK, UNK,
568 1.5 takemura /*40*/ 67, 10, 24, 38, 51, 121, UNK, UNK,
569 1.5 takemura /*48*/ 68, 11, 25, 39, 52, UNK, UNK, UNK,
570 1.5 takemura /*50*/ 125, 12, 26, 40, 53, 28, UNK, UNK,
571 1.5 takemura /*58*/ 14, 13, 27, 43, 115, 14, UNK, UNK,
572 1.5 takemura };
573 1.1 uch #endif /* hpcmips */
574 1.1 uch
575 1.2 uch #ifdef hpcsh
576 1.33 uwe /*
577 1.33 uwe * HP Jornada 680/690
578 1.7 uch */
579 1.6 uch /* Japanese */
580 1.32 uwe const uint8_t jornada6x0_jp_keytrans[] = {
581 1.33 uwe /* 0 1 2 3 4 5 6 7 */
582 1.2 uch /* 0 */ 59 , 45 , 31 , 17 , 3 , UNK, 29 , UNK, /* ctrl 29 */
583 1.2 uch /* 1 */ 60 , 46 , 32 , 18 , 4 , 42 , UNK, UNK, /* shift L 42 */
584 1.2 uch /* 2 */ 61 , 47 , 33 , 19 , 5 , UNK, 57 , UNK,
585 1.2 uch /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 14 , 203,
586 1.2 uch /* 4 */ 65 , 51 , 37 , 23 , 9 , UNK, 115, UNK,
587 1.2 uch /* 5 */ 64 , 50 , 36 , 22 , 8 , UNK, 121, UNK,
588 1.2 uch /* 6 */ 62 , 48 , 34 , 20 , 6 , UNK, UNK, 56 , /* alt 56 */
589 1.2 uch /* 7 */ 63 , 49 , 35 , 21 , 7 , UNK, UNK, 123,
590 1.2 uch /* 8 */ IGN, 53 , 39 , 25 , 11 , 200, UNK, 208,
591 1.2 uch /* 9 */ 112, 40 , 27 , 26 , 12 , 125, UNK, 205,
592 1.2 uch /*10 */ 41 , 28 , 43 , 14 , 13 , 54 , UNK, UNK, /* shift R 54 */
593 1.2 uch /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
594 1.2 uch /*12 */ 1 , 44 , 30 , 16 , 2 , 15 , 221, UNK,
595 1.2 uch /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
596 1.2 uch /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
597 1.2 uch /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
598 1.2 uch };
599 1.2 uch
600 1.19 uwe /* US/UK - Fn to the left of the space bar and missing few keys */
601 1.32 uwe const uint8_t jornada6x0_us_keytrans[] = {
602 1.18 uwe /* 0 1 2 3 4 5 6 7 */
603 1.18 uwe /* 0 */ 59 , 45 , 31 , 17 , 3 , UNK, 29 , UNK,
604 1.18 uwe /* 1 */ 60 , 46 , 32 , 18 , 4 , 42 , UNK, UNK,
605 1.13 uch /* 2 */ 61 , 47 , 33 , 19 , 5 , UNK, 57 , UNK,
606 1.17 uwe /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 211, 203,
607 1.18 uwe /* 4 */ 65 , 51 , 37 , 23 , 9 , UNK, 53 , UNK,
608 1.13 uch /* 5 */ 64 , 50 , 36 , 22 , 8 , UNK, UNK, UNK,
609 1.18 uwe /* 6 */ 62 , 48 , 34 , 20 , 6 , UNK, UNK, 56 ,
610 1.18 uwe /* 7 */ 63 , 49 , 35 , 21 , 7 , UNK, UNK, 184,
611 1.18 uwe /* 8 */ 67 , UNK, 39 , 25 , 11 , 200, UNK, 208,
612 1.18 uwe /* 9 */ 68 , 40 , UNK, 43 , 12 , UNK, UNK, 205,
613 1.18 uwe /*10 */ 87 , 28 , UNK, 14 , 13 , 54 , UNK, UNK,
614 1.13 uch /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
615 1.17 uwe /*12 */ 1 , 44 , 30 , 16 , 2 , 15 , 219, UNK,
616 1.13 uch /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
617 1.13 uch /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
618 1.13 uch /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
619 1.13 uch };
620 1.13 uch
621 1.19 uwe /* International - AltGr to the right and extra keys in three middle rows */
622 1.32 uwe const uint8_t jornada6x0_intl_keytrans[] = {
623 1.33 uwe /* 0 1 2 3 4 5 6 7 */
624 1.18 uwe /* 0 */ 59 , 45 , 31 , 17 , 3 , UNK, 29 , UNK,
625 1.18 uwe /* 1 */ 60 , 46 , 32 , 18 , 4 , 42 , UNK, UNK,
626 1.18 uwe /* 2 */ 61 , 47 , 33 , 19 , 5 , UNK, 57 , UNK,
627 1.18 uwe /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 211, 203,
628 1.18 uwe /* 4 */ 65 , 51 , 37 , 23 , 9 , UNK, 184, UNK,
629 1.18 uwe /* 5 */ 64 , 50 , 36 , 22 , 8 , UNK, UNK, UNK,
630 1.18 uwe /* 6 */ 62 , 48 , 34 , 20 , 6 , UNK, UNK, 56 ,
631 1.18 uwe /* 7 */ 63 , 49 , 35 , 21 , 7 , UNK, UNK, 41 ,
632 1.18 uwe /* 8 */ 67 , 53 , 39 , 25 , 11 , 200, UNK, 208,
633 1.18 uwe /* 9 */ 68 , 40 , 27 , 26 , 12 , UNK, UNK, 205,
634 1.18 uwe /*10 */ 87 , 28 , 43 , 14 , 13 , 54 , UNK, UNK,
635 1.18 uwe /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
636 1.18 uwe /*12 */ 1 , 44 , 30 , 16 , 2 , 15 , 219, UNK,
637 1.6 uch /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
638 1.6 uch /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
639 1.18 uwe /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
640 1.6 uch };
641 1.6 uch
642 1.6 uch const int jornada6x0_special_keymap[] = {
643 1.29 uch [KEY_SPECIAL_OFF] = -1,
644 1.2 uch [KEY_SPECIAL_LIGHT] = -1
645 1.2 uch };
646 1.2 uch
647 1.35 uwe
648 1.33 uwe /*
649 1.7 uch * HP 620LX
650 1.7 uch */
651 1.7 uch /* Japanese */
652 1.32 uwe const uint8_t hp620lx_jp_keytrans[] = {
653 1.33 uwe /* 0 1 2 3 4 5 6 7 */
654 1.7 uch /* 0 */ 2 , 16 , 112, UNK, IGN, UNK, 42 , 30 , /* REC button */
655 1.7 uch /* 1 */ 3 , 17 , 58 , 44 , UNK, 45 , 15 , 31 ,
656 1.7 uch /* 2 */ 4 , 18 , UNK, 56 , 59 , 46 , 1 , 32 ,
657 1.7 uch /* 3 */ 5 , 19 , UNK, UNK, 60 , 123, UNK, 33 ,
658 1.7 uch /* 4 */ 6 , 20 , 47 , 57 , 61 , 48 , UNK, 34 ,
659 1.7 uch /* 5 */ 7 , 21 , UNK, 121, 62 , 49 , UNK, 35 ,
660 1.7 uch /* 6 */ 8 , 22 , UNK, 125, 63 , 50 , UNK, 36 ,
661 1.7 uch /* 7 */ 9 , 23 , 52 , 115, 64 , 51 , UNK, 37 ,
662 1.7 uch /* 8 */ 10 , 24 , 53 , 203, 65 , 200, 39 , 38 ,
663 1.7 uch /* 9 */ 11 , 25 , 40 , 208, 66 , 205, 27 , 26 ,
664 1.7 uch /*10 */ 12 , 13 , 28 , UNK, UNK, UNK, 41 , 43 ,
665 1.7 uch /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* ON button */
666 1.7 uch /*12 */ 29 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
667 1.7 uch /*13 */ 14 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
668 1.7 uch /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
669 1.7 uch /*15 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN /* LED button */
670 1.7 uch };
671 1.7 uch
672 1.35 uwe /* Other models */
673 1.35 uwe const uint8_t hp620lx_intl_keytrans[] = {
674 1.35 uwe /* 0 1 2 3 4 5 6 7 */
675 1.35 uwe /* 0 */ 2 , 16 , 219, UNK, IGN, UNK, 42 , 30 , /* REC button */
676 1.35 uwe /* 1 */ 3 , 17 , 15 , 44 , UNK, 45 , 41 , 31 ,
677 1.35 uwe /* 2 */ 4 , 18 , UNK, 69 , 59 , 46 , 1 , 32 ,
678 1.35 uwe /* 3 */ 5 , 19 , UNK, UNK, 60 , 56 , UNK, 33 ,
679 1.35 uwe /* 4 */ 6 , 20 , 47 , 57 , 61 , 48 , UNK, 34 ,
680 1.35 uwe /* 5 */ 7 , 21 , UNK, UNK, 62 , 49 , UNK, 35 ,
681 1.35 uwe /* 6 */ 8 , 22 , UNK, 184, 63 , 50 , UNK, 36 ,
682 1.35 uwe /* 7 */ 9 , 23 , 52 , 211, 64 , 51 , UNK, 37 ,
683 1.35 uwe /* 8 */ 10 , 24 , 53 , 203, 65 , 200, 39 , 38 ,
684 1.35 uwe /* 9 */ 11 , 25 , 40 , 208, 66 , 205, 27 , 26 ,
685 1.35 uwe /*10 */ 12 , 13 , 28 , UNK, UNK, UNK, 54 , 43 ,
686 1.35 uwe /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* ON button */
687 1.35 uwe /*12 */ 29 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
688 1.35 uwe /*13 */ 14 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
689 1.35 uwe /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
690 1.35 uwe /*15 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN /* LED button */
691 1.35 uwe };
692 1.35 uwe
693 1.7 uch const int hp620lx_special_keymap[] = {
694 1.44 peter [KEY_SPECIAL_OFF] = -1, /* 88 */
695 1.7 uch [KEY_SPECIAL_LIGHT] = 120
696 1.7 uch };
697 1.7 uch
698 1.35 uwe
699 1.33 uwe /*
700 1.11 uch * HITACHI PERSONA HPW50PAD
701 1.11 uch */
702 1.11 uch /* Japanese */
703 1.32 uwe const uint8_t persona_hpw50pad_jp_keytrans[] = {
704 1.33 uwe /* 0 1 2 3 4 5 6 7 */
705 1.31 uwe /* 0 */ 59 , 61 , 63 , 65 , 67 , SPL, UNK, UNK, /* ON button */
706 1.31 uwe /* 1 */ 29 , UNK, 47 , 48 , 121, UNK, UNK, UNK,
707 1.31 uwe /* 2 */ 1 , UNK, 34 , 51 , 112, UNK, UNK, UNK,
708 1.31 uwe /* 3 */ 41 , 221, 35 , 37 , 52 , UNK, UNK, UNK,
709 1.31 uwe /* 4 */ 45 , 58 , 22 , 38 , 40 , 42 , UNK, UNK,
710 1.31 uwe /* 5 */ 30 , 16 , 21 , 24 , 28 , 54 , UNK, UNK,
711 1.31 uwe /* 6 */ 17 , 4 , UNK, 10 , 12 , 205, UNK, UNK,
712 1.31 uwe /* 7 */ 31 , 18 , 7 , 25 , 13 , 83 , UNK, UNK,
713 1.37 kiyohara /* 8 */ 60 , 62 , 64 , 66 , 68 , UNK, UNK, UNK,
714 1.31 uwe /* 9 */ UNK, 123, 49 , 53 , 203, UNK, UNK, UNK,
715 1.31 uwe /*10 */ 56 , 46 , 50 , 57 , 208, UNK, UNK, UNK,
716 1.31 uwe /*11 */ 15 , 33 , 36 , 39 , 43 , UNK, UNK, UNK,
717 1.31 uwe /*12 */ 44 , 20 , 23 , 26 , 27 , UNK, UNK, UNK,
718 1.31 uwe /*13 */ 2 , 6 , 9 , 115, 200, UNK, UNK, UNK,
719 1.31 uwe /*14 */ 3 , 5 , UNK, UNK, 125, UNK, UNK, UNK,
720 1.31 uwe /*15 */ 32 , 19 , 8 , 11 , 14 , UNK, UNK, UNK,
721 1.11 uch };
722 1.11 uch
723 1.11 uch const int persona_hpw50pad_special_keymap[] = {
724 1.44 peter [KEY_SPECIAL_OFF] = -1, /* 5 */
725 1.11 uch [KEY_SPECIAL_LIGHT] = -1
726 1.11 uch };
727 1.11 uch
728 1.37 kiyohara static const keysym_t persona_hpw50pad_jp_keydesc[] = {
729 1.37 kiyohara /* pos command normal shifted */
730 1.37 kiyohara KC(63), KS_Cmd_ContrastDown, KS_f5,
731 1.37 kiyohara KC(64), KS_Cmd_ContrastUp, KS_f6,
732 1.37 kiyohara KC(65), KS_Cmd_BrightnessDown, KS_f7,
733 1.37 kiyohara KC(66), KS_Cmd_BrightnessUp, KS_f8,
734 1.37 kiyohara
735 1.37 kiyohara KC(200),KS_Cmd_ScrollFastUp, KS_Up,
736 1.37 kiyohara KC(208),KS_Cmd_ScrollFastDown, KS_Down,
737 1.37 kiyohara KC(203),KS_KP_Home, KS_Left,
738 1.37 kiyohara KC(205),KS_KP_End, KS_Right,
739 1.37 kiyohara };
740 1.37 kiyohara
741 1.28 uch /*
742 1.28 uch * HITACHI PERSONA HPW200EC
743 1.28 uch */
744 1.28 uch /* US */
745 1.32 uwe const uint8_t persona_hpw200ec_keytrans[] = {
746 1.33 uwe /* 0 1 2 3 4 5 6 7 */
747 1.34 uwe /* 0 */ 3 , 2 , 71 , 69 , 67 , SPL, UNK, UNK,
748 1.34 uwe /* 1 */ 11 , UNK, 79 , 77 , 75 , UNK, UNK, UNK,
749 1.34 uwe /* 2 */ 19 , UNK, UNK, 85 , 83 , UNK, UNK, UNK,
750 1.34 uwe /* 3 */ 27 , 26 , 95 , 93 , 91 , UNK, UNK, UNK,
751 1.34 uwe /* 4 */ 35 , 34 , 103, 101, 99 , 32 , UNK, UNK,
752 1.34 uwe /* 5 */ 43 , 42 , 111, 109, 107, 40 , UNK, UNK,
753 1.34 uwe /* 6 */ 51 , 50 , 119, 117, 115, 48 , UNK, UNK,
754 1.34 uwe /* 7 */ 59 , 58 , UNK, UNK, 123, 56 , UNK, UNK,
755 1.34 uwe /* 8 */ 5 , 6 , 70 , 68 , 66 , UNK, UNK, UNK,
756 1.34 uwe /* 9 */ UNK, UNK, 78 , 76 , 74 , UNK, UNK, UNK,
757 1.34 uwe /*10 */ 21 , UNK, UNK, 84 , 82 , UNK, UNK, UNK,
758 1.34 uwe /*11 */ 29 , 30 , 94 , 92 , 90 , UNK, UNK, UNK,
759 1.34 uwe /*12 */ UNK, 26 , 102, 100, 98 , UNK, UNK, UNK,
760 1.34 uwe /*13 */ UNK, 46 , 110, 108, 106, 104, UNK, UNK,
761 1.34 uwe /*14 */ 53 , 54 , 118, 124, 114, UNK, UNK, UNK,
762 1.34 uwe /*15 */ 61 , 62 , 126, UNK, 122, UNK, UNK, UNK,
763 1.28 uch };
764 1.28 uch
765 1.28 uch const int persona_hpw200ec_special_keymap[] = {
766 1.44 peter [KEY_SPECIAL_OFF] = -1, /* 5 */
767 1.28 uch [KEY_SPECIAL_LIGHT] = -1
768 1.28 uch };
769 1.28 uch
770 1.2 uch #endif /* hpcsh */
771 1.2 uch
772 1.39 peter #ifdef hpcarm
773 1.39 peter /*
774 1.39 peter * HP Jornada 710/720/728
775 1.39 peter */
776 1.39 peter
777 1.39 peter /* Japanese */
778 1.39 peter const uint8_t jornada7xx_jp_keytrans[] = {
779 1.39 peter /* 00 */ UNK, 1 , 59 , 60 , 61 , 62 , 63 , 64 ,
780 1.43 peter /* 08 */ 65 , 66 , 67 , 112, 41 , IGN, IGN, IGN,
781 1.39 peter /* 10 */ UNK, 2 , 3 , 4 , 5 , 6 , 7 , 8 ,
782 1.39 peter /* 18 */ 9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK,
783 1.39 peter /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 ,
784 1.39 peter /* 28 */ 23, 24 , 25 , 26 , UNK, UNK, UNK, UNK,
785 1.39 peter /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 ,
786 1.39 peter /* 38 */ 37, 38 , 39 , 27 , 43 , UNK, UNK, UNK,
787 1.39 peter /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 ,
788 1.39 peter /* 48 */ 51, 52 , 53 , 40 , 28 , UNK, UNK, UNK,
789 1.39 peter /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK,
790 1.39 peter /* 58 */ UNK, UNK, 200, 125, 54 , UNK, UNK, UNK,
791 1.39 peter /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 123, UNK,
792 1.39 peter /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK,
793 1.42 peter /* 70 */ UNK, 184, 29 , UNK, 57 , UNK, UNK, 121,
794 1.39 peter /* 78 */ 53 , 14 , UNK, UNK, UNK, UNK, UNK, SPL,
795 1.39 peter };
796 1.39 peter
797 1.39 peter /* US/UK - Fn to the left of the space bar and missing few keys */
798 1.39 peter const uint8_t jornada7xx_us_keytrans[] = {
799 1.39 peter /* 00 */ UNK, 1 , 59 , 60 , 61 , 62 , 63 , 64 ,
800 1.43 peter /* 08 */ 65 , 66 , 67 , 68 , 87 , IGN, IGN, IGN,
801 1.39 peter /* 10 */ UNK, 2 , 3 , 4 , 5 , 6 , 7 , 8 ,
802 1.39 peter /* 18 */ 9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK,
803 1.39 peter /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 ,
804 1.39 peter /* 28 */ 23, 24 , 25 , 43 , 14 , UNK, UNK, UNK,
805 1.39 peter /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 ,
806 1.39 peter /* 38 */ 37, 38 , 39 , 40 , UNK, UNK, UNK, UNK,
807 1.39 peter /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 ,
808 1.39 peter /* 48 */ 51, 52 , UNK, 40 , 28 , UNK, UNK, UNK,
809 1.39 peter /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK,
810 1.39 peter /* 58 */ UNK, UNK, 200, UNK, 54 , UNK, UNK, UNK,
811 1.42 peter /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 184, UNK,
812 1.39 peter /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK,
813 1.40 peter /* 70 */ UNK, 221, 29 , UNK, 57 , UNK, UNK, UNK,
814 1.39 peter /* 78 */ 53 , 14 , UNK, UNK, UNK, UNK, UNK, SPL,
815 1.39 peter };
816 1.39 peter
817 1.39 peter /* International - AltGr to the right and extra keys in three middle rows */
818 1.39 peter const uint8_t jornada7xx_intl_keytrans[] = {
819 1.39 peter /* 00 */ UNK, 1 , 59 , 60 , 61 , 62 , 63 , 64 ,
820 1.43 peter /* 08 */ 65 , 66 , 67 , 68 , 87 , IGN, IGN, IGN,
821 1.39 peter /* 10 */ UNK, 2 , 3 , 4 , 5 , 6 , 7 , 8 ,
822 1.39 peter /* 18 */ 9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK,
823 1.39 peter /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 ,
824 1.39 peter /* 28 */ 23, 24 , 25 , 26 , 14 , UNK, UNK, UNK,
825 1.39 peter /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 ,
826 1.39 peter /* 38 */ 37, 38 , 39 , 27 , 43 , UNK, UNK, UNK,
827 1.39 peter /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 ,
828 1.39 peter /* 48 */ 51, 52 , 53 , 40 , 28 , UNK, UNK, UNK,
829 1.39 peter /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK,
830 1.39 peter /* 58 */ UNK, UNK, 200, UNK, 54 , UNK, UNK, UNK,
831 1.39 peter /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 41 , UNK,
832 1.39 peter /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK,
833 1.39 peter /* 70 */ UNK, 221, 29 , UNK, 57 , UNK, UNK, UNK,
834 1.42 peter /* 78 */ 184, 211, UNK, UNK, UNK, UNK, UNK, SPL,
835 1.39 peter };
836 1.39 peter
837 1.39 peter const int jornada7xx_special_keymap[] = {
838 1.45 peter [KEY_SPECIAL_OFF] = 127,
839 1.45 peter [KEY_SPECIAL_LIGHT] = -1
840 1.39 peter };
841 1.39 peter #endif /* hpcarm */
842 1.39 peter
843 1.39 peter #if defined(hpcarm) || defined(hpcsh)
844 1.39 peter /*
845 1.39 peter * Shared keymaps between the Jornada series (6xx, 7xx).
846 1.39 peter */
847 1.39 peter
848 1.39 peter /* US (ABA), UK (ABU) */
849 1.39 peter static const keysym_t jornada_us_keydesc[] = {
850 1.39 peter /* pos normal shifted altgr */
851 1.39 peter KC(2), KS_1, KS_exclam, KS_asciitilde,
852 1.39 peter KC(3), KS_2, KS_at, KS_grave,
853 1.39 peter KC(4), KS_3, KS_numbersign, KS_sterling,
854 1.39 peter #ifdef KS_euro
855 1.39 peter KC(5), KS_4, KS_dollar, KS_euro,
856 1.39 peter #endif
857 1.39 peter KC(25), KS_p, KS_P, KS_braceleft,
858 1.39 peter KC(39), KS_semicolon, KS_colon, KS_bracketleft,
859 1.39 peter KC(40), KS_apostrophe, KS_quotedbl, KS_bracketright,
860 1.39 peter KC(43), KS_backslash, KS_bar, KS_braceright,
861 1.39 peter KC(184), KS_Mode_switch, KS_Multi_key,
862 1.39 peter
863 1.39 peter KC(200), KS_Cmd_BrightnessUp, KS_Up,
864 1.39 peter KC(203), KS_Cmd_ContrastDown, KS_Left,
865 1.39 peter KC(205), KS_Cmd_ContrastUp, KS_Right,
866 1.39 peter KC(208), KS_Cmd_BrightnessDown, KS_Down,
867 1.39 peter };
868 1.39 peter
869 1.39 peter /*
870 1.39 peter * XXX: Add AltGr layer for #ABB here? OTOH, all the keys necessary
871 1.39 peter * for basic actions in DDB or shell are on the primary layer, so it
872 1.39 peter * makes sense to support AltGr via wsconsctl(8) instead, as the same
873 1.39 peter * primary layer is used e.g. in Russian models. But it does make
874 1.39 peter * sense to define the <AltGr> key itself here, as we base this layout
875 1.39 peter * on KB_US that defines it as the right <Alt>.
876 1.39 peter */
877 1.39 peter /* European English (ABB) */
878 1.39 peter static const keysym_t jornada_intl_keydesc[] = {
879 1.39 peter /* pos normal shifted altgr */
880 1.39 peter KC(42), KS_Shift_L, KS_Shift_L, KS_Caps_Lock,
881 1.39 peter KC(184), KS_Mode_switch, KS_Multi_key,
882 1.39 peter
883 1.39 peter KC(200), KS_Cmd_BrightnessUp, KS_Up,
884 1.39 peter KC(203), KS_Cmd_ContrastDown, KS_Left,
885 1.39 peter KC(205), KS_Cmd_ContrastUp, KS_Right,
886 1.39 peter KC(208), KS_Cmd_BrightnessDown, KS_Down,
887 1.39 peter };
888 1.39 peter
889 1.39 peter /* German (ABD) */
890 1.39 peter static const keysym_t jornada_de_keydesc[] = {
891 1.39 peter /* pos normal shifted altgr */
892 1.39 peter KC(2), KS_1, KS_exclam, KS_brokenbar,
893 1.39 peter KC(5), KS_4, KS_dollar, KS_ccedilla,
894 1.39 peter KC(6), KS_5, KS_percent, KS_sterling,
895 1.39 peter KC(7), KS_6, KS_ampersand, KS_notsign,
896 1.39 peter #ifdef KS_euro
897 1.39 peter KC(18), KS_e, KS_E, KS_euro,
898 1.39 peter #endif
899 1.39 peter KC(27), KS_plus, KS_asterisk, KS_asciitilde, /* NB: not dead */
900 1.39 peter KC(30), KS_a, KS_A, KS_bar,
901 1.39 peter KC(41), KS_asciicircum, KS_degree, /* NB: not dead */
902 1.39 peter KC(43), KS_numbersign, KS_apostrophe, KS_dead_diaeresis,
903 1.39 peter KC(44), KS_y, KS_Y, KS_less,
904 1.39 peter KC(45), KS_x, KS_X, KS_greater,
905 1.39 peter KC(46), KS_c, KS_C, KS_cent,
906 1.39 peter
907 1.39 peter KC(200), KS_Cmd_BrightnessUp, KS_Up,
908 1.39 peter KC(203), KS_Cmd_ContrastDown, KS_Left,
909 1.39 peter KC(205), KS_Cmd_ContrastUp, KS_Right,
910 1.39 peter KC(208), KS_Cmd_BrightnessDown, KS_Down,
911 1.39 peter };
912 1.39 peter
913 1.39 peter /* French (ABF) */
914 1.39 peter static const keysym_t jornada_fr_keydesc[] = {
915 1.39 peter /* pos normal shifted altgr */
916 1.39 peter KC(2), KS_ampersand, KS_1, KS_plusminus,
917 1.39 peter #ifdef KS_euro
918 1.39 peter KC(18), KS_e, KS_E, KS_euro,
919 1.39 peter #endif
920 1.39 peter KC(19), KS_r, KS_R, KS_onequarter,
921 1.39 peter KC(20), KS_t, KS_T, KS_onehalf,
922 1.39 peter KC(21), KS_y, KS_Y, KS_threequarters,
923 1.39 peter KC(25), KS_p, KS_P, KS_paragraph,
924 1.39 peter KC(30), KS_q, KS_Q, KS_brokenbar,
925 1.39 peter KC(31), KS_s, KS_S, KS_guillemotleft,
926 1.39 peter KC(32), KS_d, KS_D, KS_guillemotright,
927 1.39 peter KC(40), KS_ugrave, KS_percent, KS_dead_acute,
928 1.39 peter KC(41), KS_twosuperior, KS_voidSymbol, KS_threesuperior,
929 1.39 peter KC(43), KS_asterisk, KS_mu, KS_notsign,
930 1.39 peter KC(44), KS_w, KS_W, KS_less,
931 1.39 peter KC(45), KS_x, KS_X, KS_greater,
932 1.39 peter KC(46), KS_c, KS_C, KS_cent,
933 1.39 peter KC(50), KS_comma, KS_question, KS_mu,
934 1.39 peter KC(53), KS_exclam, KS_section, KS_Eacute,
935 1.39 peter KC(184), KS_Mode_switch, KS_Multi_key,
936 1.39 peter
937 1.39 peter KC(200), KS_Cmd_BrightnessUp, KS_Up,
938 1.39 peter KC(203), KS_Cmd_ContrastDown, KS_Left,
939 1.39 peter KC(205), KS_Cmd_ContrastUp, KS_Right,
940 1.39 peter KC(208), KS_Cmd_BrightnessDown, KS_Down,
941 1.39 peter };
942 1.39 peter
943 1.39 peter /* Scandinavian */
944 1.39 peter static const keysym_t jornada_scnv_keydesc[] = {
945 1.39 peter /* pos normal shifted altgr */
946 1.39 peter KC(2), KS_1, KS_exclam, KS_asciitilde,
947 1.39 peter KC(3), KS_2, KS_quotedbl, KS_at,
948 1.39 peter KC(4), KS_3, KS_numbersign, KS_sterling,
949 1.39 peter KC(5), KS_4, KS_currency, KS_dollar,
950 1.39 peter KC(7), KS_6, KS_ampersand,
951 1.39 peter KC(8), KS_7, KS_slash, KS_braceleft,
952 1.39 peter KC(9), KS_8, KS_parenleft, KS_bracketleft,
953 1.39 peter KC(10), KS_9, KS_parenright, KS_bracketright,
954 1.39 peter KC(11), KS_0, KS_equal, KS_braceright,
955 1.39 peter KC(12), KS_plus, KS_question, KS_backslash,
956 1.39 peter KC(13), KS_apostrophe, KS_grave,
957 1.39 peter KC(25), KS_p, KS_P, KS_braceleft,
958 1.39 peter KC(26), KS_aring,
959 1.39 peter /*
960 1.39 peter * XXX: KC(39) and KC(40) has odiaeresis/adiaeresis *and*
961 1.39 peter * oslash/ae on them. Apparently localized WinCE uses the former
962 1.39 peter * for Swedish and Finnish and the latter for Danish and
963 1.39 peter * Norwegian. But as the keyboard doesn't seem to have
964 1.39 peter * semicolon/colon and minus/underscore nowhere on the primary and
965 1.39 peter * altgr layers, I put them here (semicolon/colon is inherited).
966 1.39 peter */
967 1.39 peter KC(40), KS_minus, KS_underscore, /* XXX */
968 1.39 peter KC(41), KS_paragraph, KS_onehalf, KS_bar,
969 1.39 peter KC(184), KS_Mode_switch, KS_Multi_key,
970 1.39 peter
971 1.39 peter KC(200), KS_Cmd_BrightnessUp, KS_Up,
972 1.39 peter KC(203), KS_Cmd_ContrastDown, KS_Left,
973 1.39 peter KC(205), KS_Cmd_ContrastUp, KS_Right,
974 1.39 peter KC(208), KS_Cmd_BrightnessDown, KS_Down,
975 1.39 peter };
976 1.39 peter
977 1.39 peter /* Spanish (ABE) */
978 1.39 peter static const keysym_t jornada_es_keydesc[] = {
979 1.39 peter /* pos normal shifted altgr */
980 1.39 peter KC(2), KS_1, KS_exclam, KS_ordfeminine,
981 1.39 peter KC(3), KS_2, KS_quotedbl, KS_masculine,
982 1.39 peter KC(4), KS_3, KS_numbersign,
983 1.39 peter KC(12), KS_apostrophe, KS_question, KS_backslash,
984 1.39 peter KC(13), KS_questiondown,KS_exclamdown,
985 1.39 peter KC(16), KS_q, KS_Q, KS_at,
986 1.39 peter #ifdef KS_euro
987 1.39 peter KC(18), KS_e, KS_E, KS_euro,
988 1.39 peter #endif
989 1.39 peter KC(26), KS_dead_acute, KS_dead_diaeresis,
990 1.39 peter KC(27), KS_plus, KS_asterisk, KS_dead_tilde,
991 1.39 peter KC(40), KS_braceleft, KS_bracketleft,KS_dead_circumflex,
992 1.39 peter KC(41), KS_bar, KS_degree, KS_notsign,
993 1.39 peter KC(43), KS_braceright, KS_bracketright,KS_dead_grave,
994 1.39 peter KC(44), KS_z, KS_Z, KS_less,
995 1.39 peter KC(45), KS_x, KS_X, KS_greater,
996 1.39 peter KC(46), KS_c, KS_C, KS_Ccedilla,
997 1.39 peter
998 1.39 peter KC(200), KS_Cmd_BrightnessUp, KS_Up,
999 1.39 peter KC(203), KS_Cmd_ContrastDown, KS_Left,
1000 1.39 peter KC(205), KS_Cmd_ContrastUp, KS_Right,
1001 1.39 peter KC(208), KS_Cmd_BrightnessDown, KS_Down,
1002 1.39 peter };
1003 1.39 peter #endif /* hpcarm || hpcsh */
1004 1.25 uwe
1005 1.25 uwe /*
1006 1.25 uwe * REMINDER:
1007 1.25 uwe * When adding new entry to this array, make sure that pckbd_keydesctab[]
1008 1.25 uwe * in sys/dev/pckbport/wskbdmap_mfii.c has a placeholder KB_MACHDEP entry
1009 1.25 uwe * for the base ht_layout that you refer.
1010 1.25 uwe */
1011 1.1 uch const struct hpckbd_keymap_table {
1012 1.1 uch platid_t *ht_platform;
1013 1.32 uwe const uint8_t *ht_keymap;
1014 1.1 uch const int *ht_special;
1015 1.1 uch struct {
1016 1.1 uch const keysym_t *map;
1017 1.1 uch int size;
1018 1.1 uch } ht_cmdmap;
1019 1.1 uch kbd_t ht_layout;
1020 1.1 uch } hpckbd_keymap_table[] = {
1021 1.1 uch #ifdef hpcmips
1022 1.1 uch { &platid_mask_MACH_COMPAQ_C,
1023 1.33 uwe tc5165_compaq_c_jp_keymap,
1024 1.1 uch tc5165_compaq_c_jp_special_keymap,
1025 1.1 uch NULLCMDMAP,
1026 1.1 uch KB_JP },
1027 1.1 uch { &platid_mask_MACH_VICTOR_INTERLINK,
1028 1.33 uwe m38813c_keymap,
1029 1.1 uch default_special_keymap,
1030 1.1 uch NULLCMDMAP,
1031 1.1 uch KB_JP },
1032 1.1 uch { &platid_mask_MACH_SHARP_TELIOS,
1033 1.33 uwe tc5165_telios_jp_keymap,
1034 1.1 uch default_special_keymap,
1035 1.36 nakayama CMDMAP(tc5165_telios_jp_cmdmap),
1036 1.1 uch KB_JP },
1037 1.1 uch { &platid_mask_MACH_SHARP_MOBILON,
1038 1.33 uwe tc5165_mobilon_keymap,
1039 1.1 uch tc5165_mobilon_special_keymap,
1040 1.1 uch NULLCMDMAP,
1041 1.1 uch KB_US },
1042 1.1 uch { &platid_mask_MACH_NEC_MCR_500A,
1043 1.1 uch mobilepro750c_keytrans,
1044 1.1 uch NULL,
1045 1.1 uch NULLCMDMAP,
1046 1.1 uch KB_US },
1047 1.1 uch { &platid_mask_MACH_NEC_MCR_520A,
1048 1.1 uch mobilepro_keytrans,
1049 1.1 uch NULL,
1050 1.8 sato CMDMAP(mobilepro_cmdmap),
1051 1.1 uch KB_US },
1052 1.1 uch { &platid_mask_MACH_NEC_MCR_530A,
1053 1.10 takemura mobilepro780_keytrans,
1054 1.1 uch NULL,
1055 1.1 uch NULLCMDMAP,
1056 1.1 uch KB_US },
1057 1.1 uch { &platid_mask_MACH_NEC_MCR_700A,
1058 1.33 uwe mobilepro8x0_keytrans,
1059 1.1 uch NULL,
1060 1.27 tv CMDMAP(mobilepro8x0_cmdmap),
1061 1.1 uch KB_US },
1062 1.1 uch { &platid_mask_MACH_NEC_MCR_730A,
1063 1.27 tv mobilepro8x0_keytrans,
1064 1.1 uch NULL,
1065 1.27 tv CMDMAP(mobilepro8x0_cmdmap),
1066 1.1 uch KB_US },
1067 1.1 uch { &platid_mask_MACH_NEC_MCR_MPRO700,
1068 1.1 uch mobilepro_keytrans,
1069 1.1 uch NULL,
1070 1.1 uch NULLCMDMAP,
1071 1.1 uch KB_US },
1072 1.1 uch { &platid_mask_MACH_NEC_MCR_SIGMARION,
1073 1.16 hamajima sigmarion_jp_keytrans,
1074 1.16 hamajima NULL,
1075 1.16 hamajima CMDMAP(sigmarion_cmdmap),
1076 1.16 hamajima KB_JP },
1077 1.16 hamajima { &platid_mask_MACH_NEC_MCR_SIGMARION2,
1078 1.1 uch sigmarion_jp_keytrans,
1079 1.1 uch NULL,
1080 1.1 uch CMDMAP(sigmarion_cmdmap),
1081 1.1 uch KB_JP },
1082 1.1 uch { &platid_mask_MACH_NEC_MCR,
1083 1.1 uch mcr_jp_keytrans,
1084 1.1 uch NULL,
1085 1.1 uch CMDMAP(mcr_jp_cmdmap),
1086 1.1 uch KB_JP },
1087 1.1 uch { &platid_mask_MACH_IBM_WORKPAD_Z50,
1088 1.1 uch z50_keytrans,
1089 1.1 uch NULL,
1090 1.1 uch NULLCMDMAP,
1091 1.1 uch KB_US },
1092 1.1 uch { &platid_mask_MACH_SHARP_TRIPAD,
1093 1.1 uch tripad_keytrans,
1094 1.1 uch NULL,
1095 1.41 tsutsui CMDMAP(tripad_cmdmap),
1096 1.1 uch KB_US },
1097 1.1 uch { &platid_mask_MACH_VADEM_CLIO_C,
1098 1.1 uch tripad_keytrans,
1099 1.1 uch NULL,
1100 1.41 tsutsui CMDMAP(tripad_cmdmap),
1101 1.1 uch KB_US },
1102 1.1 uch { &platid_mask_MACH_NEC_MCCS,
1103 1.1 uch mccs_keytrans,
1104 1.1 uch NULL,
1105 1.1 uch CMDMAP(mccs_cmdmap),
1106 1.1 uch KB_JP },
1107 1.1 uch { &platid_mask_MACH_FUJITSU_INTERTOP,
1108 1.1 uch intertop_keytrans,
1109 1.5 takemura NULL,
1110 1.5 takemura NULLCMDMAP,
1111 1.5 takemura KB_JP },
1112 1.5 takemura { &platid_mask_MACH_CASIO_POCKETPOSTPET,
1113 1.5 takemura pocketpostpet_keytrans,
1114 1.1 uch NULL,
1115 1.1 uch NULLCMDMAP,
1116 1.1 uch KB_JP },
1117 1.1 uch #endif /* hpcmips */
1118 1.2 uch #ifdef hpcsh
1119 1.7 uch /*
1120 1.7 uch * HP Jornada 680/690
1121 1.7 uch */
1122 1.6 uch /* Japanese */
1123 1.6 uch { &platid_mask_MACH_HP_JORNADA_680JP,
1124 1.3 uch jornada6x0_jp_keytrans,
1125 1.6 uch jornada6x0_special_keymap,
1126 1.3 uch NULLCMDMAP,
1127 1.3 uch KB_JP },
1128 1.6 uch { &platid_mask_MACH_HP_JORNADA_690JP,
1129 1.3 uch jornada6x0_jp_keytrans,
1130 1.6 uch jornada6x0_special_keymap,
1131 1.2 uch NULLCMDMAP,
1132 1.2 uch KB_JP },
1133 1.19 uwe /* US (ABA), UK (ABU) */
1134 1.13 uch { &platid_mask_MACH_HP_JORNADA_680,
1135 1.13 uch jornada6x0_us_keytrans,
1136 1.13 uch jornada6x0_special_keymap,
1137 1.39 peter CMDMAP(jornada_us_keydesc),
1138 1.13 uch KB_US },
1139 1.13 uch { &platid_mask_MACH_HP_JORNADA_690,
1140 1.13 uch jornada6x0_us_keytrans,
1141 1.13 uch jornada6x0_special_keymap,
1142 1.39 peter CMDMAP(jornada_us_keydesc),
1143 1.13 uch KB_US },
1144 1.19 uwe /* European English (ABB) */
1145 1.24 uwe { &platid_mask_MACH_HP_JORNADA_680EU,
1146 1.18 uwe jornada6x0_intl_keytrans,
1147 1.6 uch jornada6x0_special_keymap,
1148 1.39 peter CMDMAP(jornada_intl_keydesc),
1149 1.19 uwe KB_US },
1150 1.24 uwe { &platid_mask_MACH_HP_JORNADA_690EU,
1151 1.18 uwe jornada6x0_intl_keytrans,
1152 1.6 uch jornada6x0_special_keymap,
1153 1.39 peter CMDMAP(jornada_intl_keydesc),
1154 1.19 uwe KB_US },
1155 1.19 uwe /* German (ABD) */
1156 1.6 uch { &platid_mask_MACH_HP_JORNADA_680DE,
1157 1.18 uwe jornada6x0_intl_keytrans,
1158 1.6 uch jornada6x0_special_keymap,
1159 1.39 peter CMDMAP(jornada_de_keydesc),
1160 1.6 uch KB_DE },
1161 1.6 uch { &platid_mask_MACH_HP_JORNADA_690DE,
1162 1.18 uwe jornada6x0_intl_keytrans,
1163 1.6 uch jornada6x0_special_keymap,
1164 1.39 peter CMDMAP(jornada_de_keydesc),
1165 1.6 uch KB_DE },
1166 1.21 uwe /* French (ABF) */
1167 1.21 uwe { &platid_mask_MACH_HP_JORNADA_680FR,
1168 1.21 uwe jornada6x0_intl_keytrans,
1169 1.21 uwe jornada6x0_special_keymap,
1170 1.39 peter CMDMAP(jornada_fr_keydesc),
1171 1.21 uwe KB_FR },
1172 1.21 uwe { &platid_mask_MACH_HP_JORNADA_690FR,
1173 1.21 uwe jornada6x0_intl_keytrans,
1174 1.21 uwe jornada6x0_special_keymap,
1175 1.39 peter CMDMAP(jornada_fr_keydesc),
1176 1.21 uwe KB_FR },
1177 1.26 uwe /* Scandinavian */
1178 1.26 uwe { &platid_mask_MACH_HP_JORNADA_680SV,
1179 1.26 uwe jornada6x0_intl_keytrans,
1180 1.26 uwe jornada6x0_special_keymap,
1181 1.39 peter CMDMAP(jornada_scnv_keydesc),
1182 1.26 uwe KB_US },
1183 1.26 uwe { &platid_mask_MACH_HP_JORNADA_690SV,
1184 1.26 uwe jornada6x0_intl_keytrans,
1185 1.26 uwe jornada6x0_special_keymap,
1186 1.39 peter CMDMAP(jornada_scnv_keydesc),
1187 1.26 uwe KB_US },
1188 1.30 uwe /* Spanish (ABE) */
1189 1.30 uwe { &platid_mask_MACH_HP_JORNADA_680ES,
1190 1.30 uwe jornada6x0_intl_keytrans,
1191 1.30 uwe jornada6x0_special_keymap,
1192 1.39 peter CMDMAP(jornada_es_keydesc),
1193 1.30 uwe KB_ES },
1194 1.30 uwe { &platid_mask_MACH_HP_JORNADA_690ES,
1195 1.30 uwe jornada6x0_intl_keytrans,
1196 1.30 uwe jornada6x0_special_keymap,
1197 1.39 peter CMDMAP(jornada_es_keydesc),
1198 1.30 uwe KB_ES },
1199 1.7 uch /*
1200 1.7 uch * HP 620LX
1201 1.7 uch */
1202 1.7 uch /* Japanese */
1203 1.7 uch { &platid_mask_MACH_HP_LX_620JP,
1204 1.7 uch hp620lx_jp_keytrans,
1205 1.7 uch hp620lx_special_keymap,
1206 1.11 uch NULLCMDMAP,
1207 1.11 uch KB_JP },
1208 1.35 uwe /* Other models */
1209 1.35 uwe { &platid_mask_MACH_HP_LX_620,
1210 1.35 uwe hp620lx_intl_keytrans,
1211 1.35 uwe hp620lx_special_keymap,
1212 1.35 uwe NULLCMDMAP,
1213 1.35 uwe KB_US },
1214 1.35 uwe
1215 1.11 uch /*
1216 1.11 uch * PERSONA HPW50PAD
1217 1.11 uch */
1218 1.11 uch /* Japanese */
1219 1.11 uch { &platid_mask_MACH_HITACHI_PERSONA_HPW50PAD,
1220 1.11 uch persona_hpw50pad_jp_keytrans,
1221 1.11 uch persona_hpw50pad_special_keymap,
1222 1.37 kiyohara CMDMAP(persona_hpw50pad_jp_keydesc),
1223 1.7 uch KB_JP },
1224 1.28 uch
1225 1.28 uch /*
1226 1.28 uch * PERSONA HPW200EC
1227 1.28 uch */
1228 1.28 uch /* US */
1229 1.28 uch { &platid_mask_MACH_HITACHI_PERSONA_HPW200EC,
1230 1.28 uch persona_hpw200ec_keytrans,
1231 1.28 uch persona_hpw200ec_special_keymap,
1232 1.28 uch NULLCMDMAP,
1233 1.28 uch KB_US },
1234 1.28 uch
1235 1.2 uch #endif /* hpcsh */
1236 1.39 peter #ifdef hpcarm
1237 1.39 peter /* US (ABA), UK (ABU) */
1238 1.39 peter { &platid_mask_MACH_HP_JORNADA_720,
1239 1.39 peter jornada7xx_us_keytrans,
1240 1.39 peter jornada7xx_special_keymap,
1241 1.39 peter CMDMAP(jornada_us_keydesc),
1242 1.39 peter KB_US },
1243 1.39 peter /* Japanese */
1244 1.39 peter { &platid_mask_MACH_HP_JORNADA_720JP,
1245 1.39 peter jornada7xx_jp_keytrans,
1246 1.39 peter jornada7xx_special_keymap,
1247 1.39 peter NULLCMDMAP,
1248 1.39 peter KB_JP },
1249 1.39 peter /* European English (ABB) */
1250 1.39 peter { &platid_mask_MACH_HP_JORNADA_720EU,
1251 1.39 peter jornada7xx_intl_keytrans,
1252 1.39 peter jornada7xx_special_keymap,
1253 1.39 peter CMDMAP(jornada_intl_keydesc),
1254 1.39 peter KB_US },
1255 1.39 peter /* German (ABD) */
1256 1.39 peter { &platid_mask_MACH_HP_JORNADA_720DE,
1257 1.39 peter jornada7xx_intl_keytrans,
1258 1.39 peter jornada7xx_special_keymap,
1259 1.39 peter CMDMAP(jornada_de_keydesc),
1260 1.39 peter KB_DE },
1261 1.39 peter /* French (ABF) */
1262 1.39 peter { &platid_mask_MACH_HP_JORNADA_720FR,
1263 1.39 peter jornada7xx_intl_keytrans,
1264 1.39 peter jornada7xx_special_keymap,
1265 1.39 peter CMDMAP(jornada_fr_keydesc),
1266 1.39 peter KB_FR },
1267 1.39 peter /* Scandinavian */
1268 1.39 peter { &platid_mask_MACH_HP_JORNADA_720SV,
1269 1.39 peter jornada7xx_intl_keytrans,
1270 1.39 peter jornada7xx_special_keymap,
1271 1.39 peter CMDMAP(jornada_scnv_keydesc),
1272 1.39 peter KB_US },
1273 1.39 peter /* Spanish (ABE) */
1274 1.39 peter { &platid_mask_MACH_HP_JORNADA_720ES,
1275 1.39 peter jornada7xx_intl_keytrans,
1276 1.39 peter jornada7xx_special_keymap,
1277 1.39 peter CMDMAP(jornada_es_keydesc),
1278 1.39 peter KB_ES },
1279 1.39 peter #endif /* hpcarm */
1280 1.46 uwe
1281 1.46 uwe { .ht_platform = NULL } /* end mark */
1282 1.1 uch };
1283