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