1 /* $NetBSD: wskbdmap_lk201.c,v 1.6 2002/03/13 15:21:30 ad Exp $ */ 2 3 #include <sys/cdefs.h> 4 __KERNEL_RCSID(0, "$NetBSD: wskbdmap_lk201.c,v 1.6 2002/03/13 15:21:30 ad Exp $"); 5 6 #include <sys/types.h> 7 #include <dev/wscons/wsksymdef.h> 8 #include <dev/wscons/wsksymvar.h> 9 #include <dev/dec/wskbdmap_lk201.h> 10 11 #define KC(n) KS_KEYCODE((n) - MIN_LK201_KEY) 12 13 static const keysym_t lkkbd_keydesc_us[] = { 14 /* pos command normal shifted */ 15 KC(86), KS_Cmd_Screen0, KS_f1, 16 KC(87), KS_Cmd_Screen1, KS_f2, 17 KC(88), KS_Cmd_Screen2, KS_f3, 18 KC(89), KS_Cmd_Screen3, KS_f4, 19 KC(90), KS_Cmd_Screen4, KS_f5, 20 KC(100), KS_Cmd_Screen5, KS_f6, 21 KC(101), KS_Cmd_Screen6, KS_f7, 22 KC(102), KS_Cmd_Screen7, KS_f8, 23 KC(103), KS_Cmd_Screen8, KS_f9, 24 KC(104), KS_Cmd_Screen9, KS_f10, 25 KC(113), KS_Cmd_Debugger, KS_Escape, /* F11 */ 26 KC(114), KS_f12, 27 KC(115), KS_f13, 28 KC(116), KS_f14, 29 KC(124), KS_Help, 30 KC(125), KS_Cmd, KS_Execute, 31 KC(128), KS_f17, 32 KC(129), KS_f18, 33 KC(130), KS_f19, 34 KC(131), KS_f20, 35 KC(138), KS_Find, 36 KC(139), KS_Insert, 37 KC(140), KS_KP_Delete, 38 KC(141), KS_Select, 39 KC(142), KS_Prior, 40 KC(143), KS_Next, 41 KC(146), KS_KP_0, 42 KC(148), KS_KP_Decimal, 43 KC(149), KS_KP_Enter, 44 KC(150), KS_KP_1, 45 KC(151), KS_KP_2, 46 KC(152), KS_KP_3, 47 KC(153), KS_KP_4, 48 KC(154), KS_KP_5, 49 KC(155), KS_KP_6, 50 KC(156), KS_KP_Separator, 51 KC(157), KS_KP_7, 52 KC(158), KS_KP_8, 53 KC(159), KS_KP_9, 54 KC(160), KS_KP_Subtract, 55 KC(161), KS_KP_F1, 56 KC(162), KS_KP_F2, 57 KC(163), KS_KP_F3, 58 KC(164), KS_KP_F4, 59 KC(167), KS_Left, 60 KC(168), KS_Right, 61 KC(169), KS_Down, 62 KC(170), KS_Up, 63 KC(174), KS_Shift_L, 64 KC(175), KS_Cmd1, KS_Control_L, 65 KC(176), KS_Caps_Lock, 66 KC(177), KS_Cmd2, KS_Multi_key, /* (left) compose */ 67 KC(188), KS_Delete, 68 KC(189), KS_Return, 69 KC(190), KS_Tab, 70 KC(191), KS_grave, KS_asciitilde, 71 KC(192), KS_1, KS_exclam, 72 KC(193), KS_q, 73 KC(194), KS_a, 74 KC(195), KS_z, 75 KC(197), KS_2, KS_at, 76 KC(198), KS_w, 77 KC(199), KS_s, 78 KC(200), KS_x, 79 KC(201), KS_less, KS_greater, 80 KC(203), KS_3, KS_numbersign, 81 KC(204), KS_e, 82 KC(205), KS_d, 83 KC(206), KS_c, 84 KC(208), KS_4, KS_dollar, 85 KC(209), KS_r, 86 KC(210), KS_f, 87 KC(211), KS_v, 88 KC(212), KS_space, 89 KC(214), KS_5, KS_percent, 90 KC(215), KS_t, 91 KC(216), KS_g, 92 KC(217), KS_b, 93 KC(219), KS_6, KS_asciicircum, 94 KC(220), KS_y, 95 KC(221), KS_h, 96 KC(222), KS_n, 97 KC(224), KS_7, KS_ampersand, 98 KC(225), KS_u, 99 KC(226), KS_j, 100 KC(227), KS_m, 101 KC(229), KS_8, KS_asterisk, 102 KC(230), KS_i, 103 KC(231), KS_k, 104 KC(232), KS_comma, KS_less, 105 KC(234), KS_9, KS_parenleft, 106 KC(235), KS_o, 107 KC(236), KS_l, 108 KC(237), KS_period, KS_greater, 109 KC(239), KS_0, KS_parenright, 110 KC(240), KS_p, 111 KC(242), KS_semicolon, KS_colon, 112 KC(243), KS_slash, KS_question, 113 KC(245), KS_equal, KS_plus, 114 KC(246), KS_bracketright, KS_braceright, 115 KC(247), KS_backslash, KS_bar, 116 KC(249), KS_minus, KS_underscore, 117 KC(250), KS_bracketleft, KS_braceleft, 118 KC(251), KS_apostrophe, KS_quotedbl, 119 }; 120 121 static const keysym_t lkkbd_keydesc_us_lk401[] = { 122 KC(171), KS_Shift_R, 123 KC(172), KS_Cmd2, KS_Alt_L, 124 KC(173), KS_Multi_key, /* right compose */ 125 KC(177), KS_Multi_key, /* left compose, not "cmd" */ 126 KC(178), KS_Alt_R, 127 }; 128 129 #define KBD_MAP(name, base, map) \ 130 { name, base, sizeof(map)/sizeof(keysym_t), map } 131 132 const struct wscons_keydesc lkkbd_keydesctab[] = { 133 KBD_MAP(KB_US, 0, lkkbd_keydesc_us), 134 KBD_MAP(KB_US | KB_LK401, KB_US, lkkbd_keydesc_us_lk401), 135 {0, 0, 0, 0} 136 }; 137 138 #undef KBD_MAP 139 #undef KC 140