Home | History | Annotate | Line # | Download | only in dev
      1 /*	$NetBSD: zkbdmap.h,v 1.7 2012/05/07 18:36:16 tsutsui Exp $	*/
      2 /* $OpenBSD: zaurus_kbdmap.h,v 1.19 2005/05/10 08:26:12 espie Exp $ */
      3 
      4 /*
      5  * Copyright (c) 2005 Dale Rahn <drahn (at) openbsd.org>
      6  *
      7  * Permission to use, copy, modify, and distribute this software for any
      8  * purpose with or without fee is hereby granted, provided that the above
      9  * copyright notice and this permission notice appear in all copies.
     10  *
     11  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
     12  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
     13  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
     14  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     15  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
     16  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
     17  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     18  */
     19 
     20 #define KC(n) KS_KEYCODE(n)
     21 
     22 static const keysym_t zkbd_keydesc_us[] = {
     23     KC(0),	KS_Control_L,
     24     KC(2),	KS_Tab,		KS_Tab,		KS_Caps_Lock,
     25     KC(3),	KS_Cmd_Screen1,	KS_f2,				/* Addr, */
     26     KC(4),	KS_Cmd_Screen0,	KS_f1,				/* Cal, */
     27     KC(5),	KS_Cmd_Screen2,	KS_f3,				/* Mail, */
     28     KC(6),	KS_Cmd_Screen3,	KS_f4,				/* Home, */
     29     KC(8),	KS_1,		KS_exclam,
     30     KC(9),	KS_2,		KS_quotedbl,
     31     KC(10),	KS_q,
     32     KC(11),	KS_w,		KS_W,		KS_asciicircum,
     33     KC(12),	KS_a,
     34     KC(13),	KS_z,
     35     KC(14),	KS_Cmd,		KS_Alt_L,
     36     KC(16),	KS_Cmd_BrightnessDown,	KS_3,	KS_numbersign,
     37     KC(17),	KS_Cmd_BrightnessUp,	KS_4,	KS_dollar,
     38     KC(18),	KS_e,		KS_E,		KS_equal,
     39     KC(19),	KS_s,
     40     KC(20),	KS_d,		KS_D,		KS_grave,
     41     KC(21),	KS_x,
     42     /* KC(22),	^/t (right japanese) */
     43     KC(24),	KS_5,		KS_percent,
     44     KC(25),	KS_r,		KS_R,		KS_plus,
     45     KC(26),	KS_t,		KS_T,		KS_bracketleft,
     46     KC(27),	KS_f,		KS_F,		KS_backslash,
     47     KC(28),	KS_c,
     48     KC(29),	KS_minus,	KS_minus,	KS_at,
     49     KC(30),	KS_Cmd_Debugger,KS_Escape,			/* Cancel, */
     50     KC(32),	KS_6,		KS_ampersand,
     51     KC(33),	KS_y,		KS_Y,		KS_bracketright,
     52     KC(34),	KS_g,		KS_G,		KS_semicolon,
     53     KC(35),	KS_v,
     54     KC(36),	KS_b,		KS_B,		KS_underscore,
     55     KC(37),	KS_space,
     56     KC(38),	KS_KP_Enter,					/* OK, */
     57     KC(40),	KS_7,		KS_apostrophe,
     58     KC(41),	KS_8,		KS_parenleft,
     59     KC(42),	KS_u,		KS_U,		KS_braceleft,
     60     KC(43),	KS_h,		KS_H,		KS_colon,
     61     KC(44),	KS_n,
     62     KC(45),	KS_comma,	KS_slash,	KS_less,
     63     KC(46),	KS_Cmd_Screen4,	KS_f5,				/* Menu, */
     64     KC(48),	KS_9,		KS_parenright,
     65     KC(49),	KS_i,		KS_I,		KS_braceright,
     66     KC(50),	KS_j,		KS_J,		KS_asterisk,
     67     KC(51),	KS_m,
     68     KC(52),	KS_period,	KS_question,	KS_greater,
     69     KC(54),	KS_KP_Left,	KS_KP_Left,	KS_Home,	/* left, */
     70     KC(56),	KS_0,		KS_asciitilde,
     71     KC(57),	KS_o,
     72     KC(58),	KS_k,
     73     KC(59),	KS_l,		KS_L,		KS_bar,
     74     KC(61),	KS_KP_Up,	KS_KP_Up,	KS_Prior,	/* up, */
     75     KC(62),	KS_KP_Down,	KS_KP_Down,	KS_Next,	/* down, */
     76     KC(64),	KS_Delete,	KS_BackSpace,
     77     KC(65),	KS_p,
     78     KC(68),	KS_Return,
     79     KC(70),	KS_KP_Right,	KS_KP_Right,	KS_End,		/* right, */
     80     KC(80),	KS_KP_Right,					/* OK, (ext) */
     81     KC(81),	KS_KP_Down,					/* tog left, */
     82     KC(83),	KS_Shift_R,
     83     KC(84),	KS_Shift_L,
     84     KC(88),	KS_KP_Left,					/*Cancel (ext)*/
     85     KC(89),	KS_KP_Up,					/* tog right, */
     86     KC(93),	KS_Mode_switch					/* Fn */
     87 };
     88 
     89 static const keysym_t zkbd_keydesc_us_c860[] = {
     90     KC(2),	KS_Tab,		KS_Tab,		KS_Caps_Lock,
     91     KC(3),	KS_Cmd_Screen0,	KS_f1,				/* Cal, */
     92     KC(4),	KS_Cmd_Screen1,	KS_f2,				/* Addr, */
     93     KC(5),	KS_Cmd_Screen2,	KS_f3,				/* Mail, */
     94     KC(6),	KS_Cmd_Screen3,	KS_f4,				/* Home, */
     95     KC(7),      KS_Power,                                       /* XXX */
     96     KC(8),	KS_1,		KS_exclam,
     97     KC(9),	KS_2,		KS_quotedbl,
     98     KC(10),	KS_q,
     99     KC(11),	KS_w,		KS_W,		KS_asciicircum,
    100     KC(12),	KS_a,
    101     KC(13),	KS_z,
    102     KC(14),	KS_Cmd,		KS_Alt_L,
    103     KC(15),	KS_KP_Right,					/* OK, (ext) */
    104     KC(16),	KS_Cmd_BrightnessDown,	KS_3,	KS_numbersign,
    105     KC(17),	KS_Cmd_BrightnessUp,	KS_4,	KS_dollar,
    106     KC(18),	KS_e,		KS_E,		KS_equal,
    107     KC(19),	KS_s,
    108     KC(20),	KS_d,		KS_D,		KS_grave,
    109     KC(21),	KS_x,
    110     KC(22),	KS_Control_L,
    111     KC(23),	KS_KP_Left,					/*Cancel (ext)*/
    112     KC(24),	KS_5,		KS_percent,
    113     KC(25),	KS_r,		KS_R,		KS_plus,
    114     KC(26),	KS_t,		KS_T,		KS_bracketleft,
    115     KC(27),	KS_f,		KS_F,		KS_backslash,
    116     KC(28),	KS_c,
    117     KC(29),	KS_minus,	KS_minus,	KS_at,
    118     KC(30),	KS_Cmd_Debugger,KS_Escape,			/* Cancel, */
    119     KC(31),	KS_KP_Down,					/* tog left, */
    120     KC(32),	KS_6,		KS_ampersand,
    121     KC(33),	KS_y,		KS_Y,		KS_bracketright,
    122     KC(34),	KS_g,		KS_G,		KS_semicolon,
    123     KC(35),	KS_v,
    124     KC(36),	KS_b,		KS_B,		KS_underscore,
    125     KC(37),	KS_space,
    126     KC(38),	KS_KP_Enter,					/* OK, */
    127     KC(39),	KS_KP_Up,					/* tog right, */
    128     KC(40),	KS_7,		KS_apostrophe,
    129     KC(41),	KS_8,		KS_parenleft,
    130     KC(42),	KS_u,		KS_U,		KS_braceleft,
    131     KC(43),	KS_h,		KS_H,		KS_colon,
    132     KC(44),	KS_n,
    133     KC(45),	KS_comma,	KS_slash,	KS_less,
    134     KC(46),	KS_Cmd_Screen4,	KS_f5,				/* Menu, */
    135     KC(48),	KS_9,		KS_parenright,
    136     KC(49),	KS_i,		KS_I,		KS_braceright,
    137     KC(50),	KS_j,		KS_J,		KS_asterisk,
    138     KC(51),	KS_m,
    139     KC(52),	KS_period,	KS_question,	KS_greater,
    140     KC(54),	KS_KP_Left,	KS_KP_Left,	KS_Home,	/* left, */
    141     KC(56),	KS_0,		KS_asciitilde,
    142     KC(57),	KS_o,
    143     KC(58),	KS_k,
    144     KC(59),	KS_l,		KS_L,		KS_bar,
    145     KC(61),	KS_KP_Up,	KS_KP_Up,	KS_Prior,	/* up, */
    146     KC(62),	KS_KP_Down,	KS_KP_Down,	KS_Next,	/* down, */
    147     KC(64),	KS_Delete,	KS_BackSpace,
    148     KC(65),	KS_p,
    149     KC(68),	KS_Return,
    150     KC(70),	KS_KP_Right,	KS_KP_Right,	KS_End,		/* right, */
    151     KC(75),	KS_Shift_R,
    152     KC(84),	KS_Shift_L,
    153     KC(93),	KS_Mode_switch					/* Fn */
    154 };
    155 
    156 #ifdef WSDISPLAY_COMPAT_RAWKBD
    157 static const char xt_keymap[] = {
    158     /* KC(0), */	0x1d, /* KS_Control_L, */
    159     /* KC(1), */	0x00, /* NC */
    160     /* KC(2), */	0x0f, /* KS_Tab,	KS_Tab,		KS_Caps_Lock, */
    161     /* KC(3), */	0x3c, /* KS_Cmd_Screen1,	KS_f2,		Addr, */
    162     /* KC(4), */	0x3b, /* KS_Cmd_Screen0,	KS_f1,		Cal, */
    163     /* KC(5), */	0x3d, /* KS_Cmd_Screen2,	KS_f3,		Mail, */
    164     /* KC(6), */	0x3e, /* KS_Cmd_Screen3,	KS_f4,		Home, */
    165     /* KC(7), */	0x00, /* NC */
    166     /* KC(8), */	0x02, /* KS_1,	KS_exclam, */
    167     /* KC(9), */	0x03, /* KS_2,	KS_quotedbl, */
    168     /* KC(10), */	0x10, /* KS_q, */
    169     /* KC(11), */	0x11, /* KS_w,	KS_W,	KS_asciicircum, */
    170     /* KC(12), */	0x1e, /* KS_a, */
    171     /* KC(13), */	0x2c, /* KS_z, */
    172     /* KC(14), */	0x38, /* KS_Cmd,	KS_Alt_L, */
    173     /* KC(15), */	0x00, /* NC */
    174     /* KC(16), */	0x04, /* KS_3,	KS_numbersign, */
    175     /* KC(17), */	0x05, /* KS_4,	KS_dollar, */
    176     /* KC(18), */	0x12, /* KS_e,	KS_E,	KS_equal, */
    177     /* KC(19), */	0x1f, /* KS_s, */
    178     /* KC(20), */	0x20, /* KS_d,	KS_D,	KS_grave, */
    179     /* KC(21), */	0x2d, /* KS_x, */
    180     /* KC(22), */	0x00, /* ^/t (right japanese) */
    181     /* KC(23), */	0x00, /* NC */
    182     /* KC(24), */	0x06, /* KS_5,	KS_percent, */
    183     /* KC(25), */	0x13, /* KS_r,	KS_R,	KS_plus, */
    184     /* KC(26), */	0x14, /* KS_t,	KS_T,	KS_bracketleft, */
    185     /* KC(27), */	0x21, /* KS_f,	KS_F,	KS_backslash, */
    186     /* KC(28), */	0x2e, /* KS_c, */
    187     /* KC(29), */	0x0c, /* KS_minus, KS_minus,	KS_at, */
    188     /* KC(30), */	0x01, /* KS_Escape, Cancel */
    189     /* KC(31), */	0x00, /* NC */
    190     /* KC(32), */	0x07, /* KS_6,	KS_ampersand, */
    191     /* KC(33), */	0x15, /* KS_y,	KS_Y,	KS_bracketright, */
    192     /* KC(34), */	0x22, /* KS_g,	KS_G,	KS_semicolon, */
    193     /* KC(35), */	0x2f, /* KS_v, */
    194     /* KC(36), */	0x30, /* KS_b,	KS_B,	KS_underscore, */
    195     /* KC(37), */	0x39, /* KS_space, */
    196     /* KC(38), */	0x9c, /* KS_KP_Enter,	ok */
    197     /* KC(39), */	0x00, /* NC */
    198     /* KC(40), */	0x08, /* KS_7,	KS_apostrophe, */
    199     /* KC(41), */	0x09, /* KS_8,	KS_parenleft, */
    200     /* KC(42), */	0x16, /* KS_u,	KS_U,	KS_braceleft, */
    201     /* KC(43), */	0x23, /* KS_h,	KS_H,	KS_colon, */
    202     /* KC(44), */	0x31, /* KS_n, */
    203     /* KC(45), */	0x33, /* KS_comma, KS_slash,	KS_less, */
    204     /* KC(46), */	0x3f, /* KS_Cmd_Screen4,	KS_f5,	Menu, */
    205     /* KC(47), */	0x00, /* NC */
    206     /* KC(48), */	0x0a, /* KS_9,	KS_parenright, */
    207     /* KC(49), */	0x17, /* KS_i,	KS_I,	KS_braceright, */
    208     /* KC(50), */	0x24, /* KS_j,	KS_J,	KS_asterisk, */
    209     /* KC(51), */	0x32, /* KS_m, */
    210     /* KC(52), */	0x34, /* KS_period, KS_question, KS_greater, */
    211     /* KC(53), */	0x00, /* NC */
    212     /* KC(54), */	0xcb, /* KS_KP_Left, left, */
    213     /* KC(55), */	0x00, /* NC */
    214     /* KC(56), */	0x0b, /* KS_0,	KS_asciitilde, */
    215     /* KC(57), */	0x18, /* KS_o, */
    216     /* KC(58), */	0x25, /* KS_k, */
    217     /* KC(59), */	0x26, /* KS_l,	KS_L,	KS_bar, */
    218     /* KC(60), */	0x00, /* NC */
    219     /* KC(61), */	0xc8, /* KS_KP_Up, up, */
    220     /* KC(62), */	0xd0, /* KS_KP_Down, down, */
    221     /* KC(63), */	0x00, /* NC */
    222     /* KC(64), */	0x0e, /* KS_Delete,	KS_BackSpace, */
    223     /* KC(65), */	0x19, /* KS_p, */
    224     /* KC(66), */	0x00, /* NC */
    225     /* KC(67), */	0x00, /* NC */
    226     /* KC(68), */	0x1c, /* KS_Return, */
    227     /* KC(69), */	0x00, /* NC */
    228     /* KC(70), */	0xcd, /* KS_KP_Right, right, */
    229     /* KC(71), */	0x00, /* NC */
    230     /* KC(72), */	0x00, /* NC */
    231     /* KC(73), */	0x00, /* NC */
    232     /* KC(74), */	0x00, /* NC */
    233     /* KC(75), */	0x00, /* NC */
    234     /* KC(76), */	0x00, /* NC */
    235     /* KC(77), */	0x00, /* NC */
    236     /* KC(78), */	0x00, /* NC */
    237     /* KC(79), */	0x00, /* NC */
    238     /* KC(80), */	0xcd, /* KS_KP_Right, OK, (ext) */
    239     /* KC(81), */	0xd0, /* KS_KP_Down, tog left, */
    240     /* KC(82), */	0x00, /* NC */
    241     /* KC(83), */	0x36, /* KS_Shift_R, */
    242     /* KC(84), */	0x2a, /* KS_Shift_L, */
    243     /* KC(85), */	0x00, /* NC */
    244     /* KC(86), */	0x00, /* NC */
    245     /* KC(87), */	0x00, /* NC */
    246     /* KC(88), */	0xcb, /* KS_KP_Left, cancel (ext), */
    247     /* KC(89), */	0xc8, /* KS_KP_Up, tog right, */
    248     /* KC(90), */	0x00, /* NC */
    249     /* KC(91), */	0x00, /* NC */
    250     /* KC(92), */	0x00, /* NC */
    251     /* KC(93), */	0xb8, /* KS_Mode_switch Fn */
    252 };
    253 
    254 static const char xt_keymap_c860[] = {
    255     /* KC(0), */	0x00, /* NC */
    256     /* KC(1), */	0x00, /* NC */
    257     /* KC(2), */	0x0f, /* KS_Tab,	KS_Tab,		KS_Caps_Lock, */
    258     /* KC(3), */	0x3b, /* KS_Cmd_Screen0,	KS_f1,		Cal, */
    259     /* KC(4), */	0x3c, /* KS_Cmd_Screen1,	KS_f2,		Addr, */
    260     /* KC(5), */	0x3d, /* KS_Cmd_Screen2,	KS_f3,		Mail, */
    261     /* KC(6), */	0x3e, /* KS_Cmd_Screen3,	KS_f4,		Home, */
    262     /* KC(7), */	0x00, /* XXX */
    263     /* KC(8), */	0x02, /* KS_1,	KS_exclam, */
    264     /* KC(9), */	0x03, /* KS_2,	KS_quotedbl, */
    265     /* KC(10), */	0x10, /* KS_q, */
    266     /* KC(11), */	0x11, /* KS_w,	KS_W,	KS_asciicircum, */
    267     /* KC(12), */	0x1e, /* KS_a, */
    268     /* KC(13), */	0x2c, /* KS_z, */
    269     /* KC(14), */	0x38, /* KS_Cmd,	KS_Alt_L, */
    270     /* KC(15), */	0xcd, /* KS_KP_Right, OK, (ext) */
    271     /* KC(16), */	0x04, /* KS_3,	KS_numbersign, */
    272     /* KC(17), */	0x05, /* KS_4,	KS_dollar, */
    273     /* KC(18), */	0x12, /* KS_e,	KS_E,	KS_equal, */
    274     /* KC(19), */	0x1f, /* KS_s, */
    275     /* KC(20), */	0x20, /* KS_d,	KS_D,	KS_grave, */
    276     /* KC(21), */	0x2d, /* KS_x, */
    277     /* KC(22), */	0x1d, /* KS_Control_L, */
    278     /* KC(23), */	0xcb, /* KS_KP_Left, cancel (ext), */
    279     /* KC(24), */	0x06, /* KS_5,	KS_percent, */
    280     /* KC(25), */	0x13, /* KS_r,	KS_R,	KS_plus, */
    281     /* KC(26), */	0x14, /* KS_t,	KS_T,	KS_bracketleft, */
    282     /* KC(27), */	0x21, /* KS_f,	KS_F,	KS_backslash, */
    283     /* KC(28), */	0x2e, /* KS_c, */
    284     /* KC(29), */	0x0c, /* KS_minus, KS_minus,	KS_at, */
    285     /* KC(30), */	0x01, /* KS_Escape, Cancel */
    286     /* KC(31), */	0xd0, /* KS_KP_Down, tog left, */
    287     /* KC(32), */	0x07, /* KS_6,	KS_ampersand, */
    288     /* KC(33), */	0x15, /* KS_y,	KS_Y,	KS_bracketright, */
    289     /* KC(34), */	0x22, /* KS_g,	KS_G,	KS_semicolon, */
    290     /* KC(35), */	0x2f, /* KS_v, */
    291     /* KC(36), */	0x30, /* KS_b,	KS_B,	KS_underscore, */
    292     /* KC(37), */	0x39, /* KS_space, */
    293     /* KC(38), */	0x9c, /* KS_KP_Enter,	ok */
    294     /* KC(39), */	0xc8, /* KS_KP_Up, tog right, */
    295     /* KC(40), */	0x08, /* KS_7,	KS_apostrophe, */
    296     /* KC(41), */	0x09, /* KS_8,	KS_parenleft, */
    297     /* KC(42), */	0x16, /* KS_u,	KS_U,	KS_braceleft, */
    298     /* KC(43), */	0x23, /* KS_h,	KS_H,	KS_colon, */
    299     /* KC(44), */	0x31, /* KS_n, */
    300     /* KC(45), */	0x33, /* KS_comma, KS_slash,	KS_less, */
    301     /* KC(46), */	0x3f, /* KS_Cmd_Screen4,	KS_f5,	Menu, */
    302     /* KC(47), */	0x00, /* NC */
    303     /* KC(48), */	0x0a, /* KS_9,	KS_parenright, */
    304     /* KC(49), */	0x17, /* KS_i,	KS_I,	KS_braceright, */
    305     /* KC(50), */	0x24, /* KS_j,	KS_J,	KS_asterisk, */
    306     /* KC(51), */	0x32, /* KS_m, */
    307     /* KC(52), */	0x34, /* KS_period, KS_question, KS_greater, */
    308     /* KC(53), */	0x00, /* NC */
    309     /* KC(54), */	0xcb, /* KS_KP_Left, left, */
    310     /* KC(55), */	0x00, /* NC */
    311     /* KC(56), */	0x0b, /* KS_0,	KS_asciitilde, */
    312     /* KC(57), */	0x18, /* KS_o, */
    313     /* KC(58), */	0x25, /* KS_k, */
    314     /* KC(59), */	0x26, /* KS_l,	KS_L,	KS_bar, */
    315     /* KC(60), */	0x00, /* NC */
    316     /* KC(61), */	0xc8, /* KS_KP_Up, up, */
    317     /* KC(62), */	0xd0, /* KS_KP_Down, down, */
    318     /* KC(63), */	0x00, /* NC */
    319     /* KC(64), */	0x0e, /* KS_Delete,	KS_BackSpace, */
    320     /* KC(65), */	0x19, /* KS_p, */
    321     /* KC(66), */	0x00, /* NC */
    322     /* KC(67), */	0x00, /* NC */
    323     /* KC(68), */	0x1c, /* KS_Return, */
    324     /* KC(69), */	0x00, /* NC */
    325     /* KC(70), */	0xcd, /* KS_KP_Right, right, */
    326     /* KC(71), */	0x00, /* NC */
    327     /* KC(72), */	0x00, /* NC */
    328     /* KC(73), */	0x00, /* NC */
    329     /* KC(74), */	0x00, /* NC */
    330     /* KC(75), */	0x36, /* KS_Shift_R, */
    331     /* KC(76), */	0x00, /* NC */
    332     /* KC(77), */	0x00, /* NC */
    333     /* KC(78), */	0x00, /* NC */
    334     /* KC(79), */	0x00, /* NC */
    335     /* KC(80), */	0x00, /* NC */
    336     /* KC(81), */	0x00, /* NC */
    337     /* KC(82), */	0x00, /* NC */
    338     /* KC(83), */	0x00, /* NC */
    339     /* KC(84), */	0x2a, /* KS_Shift_L, */
    340     /* KC(85), */	0x00, /* NC */
    341     /* KC(86), */	0x00, /* NC */
    342     /* KC(87), */	0x00, /* NC */
    343     /* KC(88), */	0x00, /* NC */
    344     /* KC(89), */	0x00, /* NC */
    345     /* KC(90), */	0x00, /* NC */
    346     /* KC(91), */	0x00, /* NC */
    347     /* KC(92), */	0x00, /* NC */
    348     /* KC(93), */	0xb8, /* KS_Mode_switch Fn */
    349 };
    350 #endif
    351 
    352 #define KBD_MAP(name, base, map) \
    353 			{ (name), (base), __arraycount(map), (map) }
    354 
    355 static const struct wscons_keydesc zkbd_keydesctab[] = {
    356 	KBD_MAP(KB_US,			0,	zkbd_keydesc_us),
    357 
    358 	{0, 0, 0, 0}
    359 };
    360 
    361 static const struct wscons_keydesc zkbd_keydesctab_c860[] = {
    362 	KBD_MAP(KB_US,			0,	zkbd_keydesc_us_c860),
    363 
    364 	{0, 0, 0, 0}
    365 };
    366 
    367 #undef KBD_MAP
    368 #undef KC
    369