Add ISO and JIS keyboard layouts for ADB to USB emulation
The layout is configurable using sysctl machdep.adbkbdX.emulate_usb: 0 = no emulation 1 = ANSI 2 = ISO (new with this change) 3 = JIS (new with this change) Default value is detected using the ADB keyboard handler id. JIS default is disabled until it is tested.
This commit is contained in:
parent
0988b72d86
commit
83998c6d7b
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: adb_kbd.c,v 1.32 2021/08/07 16:19:09 thorpej Exp $ */
|
||||
/* $NetBSD: adb_kbd.c,v 1.33 2022/05/14 01:16:55 manu Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (C) 1998 Colin Wood
|
||||
|
@ -32,7 +32,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: adb_kbd.c,v 1.32 2021/08/07 16:19:09 thorpej Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: adb_kbd.c,v 1.33 2022/05/14 01:16:55 manu Exp $");
|
||||
|
||||
#ifdef _KERNEL_OPT
|
||||
#include "opt_ddb.h"
|
||||
|
@ -93,7 +93,7 @@ struct adbkbd_softc {
|
|||
#ifdef WSDISPLAY_COMPAT_RAWKBD
|
||||
int sc_rawkbd;
|
||||
#endif
|
||||
bool sc_emul_usb;
|
||||
int sc_emul_usb;
|
||||
bool sc_power_dbg;
|
||||
|
||||
uint32_t sc_power;
|
||||
|
@ -235,7 +235,7 @@ adbkbd_attach(device_t parent, device_t self, void *aux)
|
|||
*/
|
||||
sc->sc_power = 0xffff;
|
||||
sc->sc_timestamp = 0;
|
||||
sc->sc_emul_usb = FALSE;
|
||||
sc->sc_emul_usb = ADB_EMUL_USB_NONE;
|
||||
#ifdef ADBKBD_POWER_DDB
|
||||
sc->sc_power_dbg = TRUE;
|
||||
#else
|
||||
|
@ -386,8 +386,56 @@ adbkbd_attach(device_t parent, device_t self, void *aux)
|
|||
sc->sc_wskbddev = config_found(self, &a, wskbddevprint,
|
||||
CFARGS(.iattr = "wskbddev"));
|
||||
#ifdef ADBKBD_EMUL_USB
|
||||
sc->sc_emul_usb = TRUE;
|
||||
wskbd_set_evtrans(sc->sc_wskbddev, adb_to_usb, 128);
|
||||
/* Values from Linux's drivers/macintosh/adbhud.c */
|
||||
switch (sc->sc_adbdev->handler_id) {
|
||||
case ADB_ISOKBD: /* FALLTHROUGH */
|
||||
case ADB_EXTISOKBD: /* FALLTHROUGH */
|
||||
case 0x07: /* FALLTHROUGH */
|
||||
case ADB_ISOKBDII: /* FALLTHROUGH */
|
||||
case ADB_PBISOKBD: /* FALLTHROUGH */
|
||||
case ADB_ADJISOKBD: /* FALLTHROUGH */
|
||||
case ADB_PBEXTISOKBD: /* FALLTHROUGH */
|
||||
case 0x19: /* FALLTHROUGH */
|
||||
case 0x1d: /* FALLTHROUGH */
|
||||
case 0xc1: /* FALLTHROUGH */
|
||||
case ADB_IBOOKKBD: /* FALLTHROUGH */
|
||||
case 0xc7:
|
||||
sc->sc_emul_usb = ADB_EMUL_USB_ISO;
|
||||
wskbd_set_evtrans(sc->sc_wskbddev, adb_to_usb_iso, 128);
|
||||
break;
|
||||
#ifdef notyet
|
||||
case ADB_ADJJAPKBD: /* FALLTHROUGH */
|
||||
case ADB_PBEXTJAPKBD: /* FALLTHROUGH */
|
||||
case ADB_JPKBDII: /* FALLTHROUGH */
|
||||
case 0x17: /* FALLTHROUGH */
|
||||
case 0x1a: /* FALLTHROUGH */
|
||||
case ADB_PBJPKBD: /* FALLTHROUGH */
|
||||
case 0xc2: /* FALLTHROUGH */
|
||||
case 0xc5: /* FALLTHROUGH */
|
||||
case 0xc8: /* FALLTHROUGH */
|
||||
case 0xc9:
|
||||
sc->sc_emul_usb = ADB_EMUL_USB_JIS;
|
||||
wskbd_set_evtrans(sc->sc_wskbddev, adb_to_usb_jis, 128);
|
||||
break;
|
||||
#endif
|
||||
case ADB_STDKBD: /* FALLTHROUGH */
|
||||
case ADB_EXTKBD: /* FALLTHROUGH */
|
||||
case 0x03: /* FALLTHROUGH */
|
||||
case 0x06: /* FALLTHROUGH */
|
||||
case ADB_KBDII: /* FALLTHROUGH */
|
||||
case ADB_PBKBD: /* FALLTHROUGH */
|
||||
case ADB_ADJKBD: /* FALLTHROUGH */
|
||||
case ADB_PBEXTKBD: /* FALLTHROUGH */
|
||||
case ADB_DESIGNKBD: /* FALLTHROUGH */
|
||||
case 0x1c: /* FALLTHROUGH */
|
||||
case 0xc0: /* FALLTHROUGH */
|
||||
case ADB_PBG3KBD: /* FALLTHROUGH */
|
||||
case 0xc6: /* FALLTHROUGH */
|
||||
default: /* default to ANSI for unknown values */
|
||||
sc->sc_emul_usb = ADB_EMUL_USB_ANSI;
|
||||
wskbd_set_evtrans(sc->sc_wskbddev, adb_to_usb_ansi, 128);
|
||||
break;
|
||||
}
|
||||
#endif /* ADBKBD_EMUL_USB */
|
||||
|
||||
#if NWSMOUSE > 0
|
||||
|
@ -633,7 +681,7 @@ adbkbd_ioctl(void *v, u_long cmd, void *data, int flag, struct lwp *l)
|
|||
switch (cmd) {
|
||||
|
||||
case WSKBDIO_GTYPE:
|
||||
if (sc->sc_emul_usb) {
|
||||
if (sc->sc_emul_usb != ADB_EMUL_USB_NONE) {
|
||||
*(int *)data = WSKBD_TYPE_USB;
|
||||
} else {
|
||||
*(int *)data = WSKBD_TYPE_ADB;
|
||||
|
@ -798,7 +846,7 @@ adbkbd_sysctl_usb(SYSCTLFN_ARGS)
|
|||
struct sysctlnode node = *rnode;
|
||||
struct adbkbd_softc *sc=(struct adbkbd_softc *)node.sysctl_data;
|
||||
const int *np = newp;
|
||||
bool reg;
|
||||
int reg;
|
||||
|
||||
DPRINTF("%s\n", __func__);
|
||||
reg = sc->sc_emul_usb;
|
||||
|
@ -807,12 +855,26 @@ adbkbd_sysctl_usb(SYSCTLFN_ARGS)
|
|||
node.sysctl_data = ®
|
||||
if (sysctl_lookup(SYSCTLFN_CALL(&node)) == 0) {
|
||||
|
||||
sc->sc_emul_usb = *(bool *)node.sysctl_data;
|
||||
if (sc->sc_emul_usb) {
|
||||
wskbd_set_evtrans(sc->sc_wskbddev,
|
||||
adb_to_usb, 128);
|
||||
} else {
|
||||
sc->sc_emul_usb = *(int *)node.sysctl_data;
|
||||
switch (sc->sc_emul_usb) {
|
||||
case ADB_EMUL_USB_NONE:
|
||||
wskbd_set_evtrans(sc->sc_wskbddev, NULL, 0);
|
||||
break;
|
||||
case ADB_EMUL_USB_ANSI:
|
||||
wskbd_set_evtrans(sc->sc_wskbddev,
|
||||
adb_to_usb_ansi, 128);
|
||||
break;
|
||||
case ADB_EMUL_USB_ISO:
|
||||
wskbd_set_evtrans(sc->sc_wskbddev,
|
||||
adb_to_usb_iso, 128);
|
||||
break;
|
||||
case ADB_EMUL_USB_JIS:
|
||||
wskbd_set_evtrans(sc->sc_wskbddev,
|
||||
adb_to_usb_jis, 128);
|
||||
break;
|
||||
default:
|
||||
return EINVAL;
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -865,7 +927,7 @@ adbkbd_setup_sysctl(struct adbkbd_softc *sc)
|
|||
ret = sysctl_createv(NULL, 0, NULL,
|
||||
(void *)&node,
|
||||
CTLFLAG_READWRITE | CTLFLAG_OWNDESC,
|
||||
CTLTYPE_BOOL, "emulate_usb", "USB keyboard emulation",
|
||||
CTLTYPE_INT, "emulate_usb", "USB keyboard emulation",
|
||||
adbkbd_sysctl_usb, 1, (void *)sc, 0, CTL_MACHDEP,
|
||||
me->sysctl_num, CTL_CREATE, CTL_EOL);
|
||||
ret = sysctl_createv(NULL, 0, NULL,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: adb_keymap.h,v 1.9 2022/04/06 17:14:42 macallan Exp $ */
|
||||
/* $NetBSD: adb_keymap.h,v 1.10 2022/05/14 01:16:55 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1997 The NetBSD Foundation, Inc.
|
||||
|
@ -492,4 +492,11 @@ static const struct wscons_keydesc akbd_keydesctab[] = {
|
|||
#undef KBD_MAP
|
||||
#undef KC
|
||||
|
||||
extern keysym_t adb_to_usb[];
|
||||
#define ADB_EMUL_USB_NONE 0
|
||||
#define ADB_EMUL_USB_ANSI 1
|
||||
#define ADB_EMUL_USB_ISO 2
|
||||
#define ADB_EMUL_USB_JIS 3
|
||||
|
||||
extern keysym_t adb_to_usb_ansi[];
|
||||
extern keysym_t adb_to_usb_iso[];
|
||||
extern keysym_t adb_to_usb_jis[];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: adb_usb_map.c,v 1.2 2014/11/08 16:52:35 macallan Exp $ */
|
||||
/* $NetBSD: adb_usb_map.c,v 1.3 2022/05/14 01:16:55 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2006 Michael Lorenz
|
||||
|
@ -27,14 +27,300 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: adb_usb_map.c,v 1.2 2014/11/08 16:52:35 macallan Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: adb_usb_map.c,v 1.3 2022/05/14 01:16:55 manu Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/device.h>
|
||||
|
||||
#include <dev/wscons/wsksymvar.h>
|
||||
|
||||
keysym_t adb_to_usb[] = {
|
||||
/*
|
||||
* Explanation of the differences between ANSI, ISO and JIS:
|
||||
* https://github.com/tmk/tmk_keyboard/blob/master/converter/adb_usb/matrix.c
|
||||
* Summary:
|
||||
* ADB scan code USB scan code
|
||||
* ANSI ISO JIS ANSI ISO JIS
|
||||
* 50 10 50 GRAVE/53 GRAVE/53 GRAVE/53
|
||||
* ---- 50 ---- ---- NUBS/100 ----
|
||||
* 42 112 42 BSLS/49 NUHS/50 NUHS/50
|
||||
* ---- ---- 93 ---- ---- JPY/137
|
||||
* ---- ---- 94 ---- ---- RO/135
|
||||
*
|
||||
* With:
|
||||
* NUBS = Non-US Backslash
|
||||
* NUHS = Non-US Hash
|
||||
* BSLS = Backslash
|
||||
* JPY = Japaneese Yen
|
||||
* RO = ?
|
||||
*
|
||||
* ANSI backslash should be USB scancode 49 but is 50 in the
|
||||
* array below. For most encoding in sys/dev/hid/hidkbdmap.c
|
||||
* (all used for ADB?), 49 and 50 have the same definition.
|
||||
*/
|
||||
|
||||
keysym_t adb_to_usb_ansi[] = {
|
||||
/* 0, KS_a */ 4,
|
||||
/* 1, KS_s */ 22,
|
||||
/* 2, KS_d */ 7,
|
||||
/* 3, KS_f */ 9,
|
||||
/* 4, KS_h */ 11,
|
||||
/* 5, KS_g */ 10,
|
||||
/* 6, KS_z */ 29,
|
||||
/* 7, KS_x */ 27,
|
||||
/* 8, KS_c */ 6,
|
||||
/* 9, KS_v */ 25,
|
||||
/* 10, KS_paragraph */ 53,
|
||||
/* 11, KS_b */ 5,
|
||||
/* 12, KS_q */ 20,
|
||||
/* 13, KS_w */ 26,
|
||||
/* 14, KS_e */ 8,
|
||||
/* 15, KS_r */ 21,
|
||||
/* 16, KS_y */ 28,
|
||||
/* 17, KS_t */ 23,
|
||||
/* 18, KS_1 */ 30,
|
||||
/* 19, KS_2 */ 31,
|
||||
/* 20, KS_3 */ 32,
|
||||
/* 21, KS_4 */ 33,
|
||||
/* 22, KS_6 */ 35,
|
||||
/* 23, KS_5 */ 34,
|
||||
/* 24, KS_equal */ 46,
|
||||
/* 25, KS_9 */ 38,
|
||||
/* 26, KS_7 */ 36,
|
||||
/* 27, KS_minus */ 45,
|
||||
/* 28, KS_8 */ 37,
|
||||
/* 29, KS_0 */ 39,
|
||||
/* 30, KS_bracketright */ 48,
|
||||
/* 31, KS_o */ 18,
|
||||
/* 32, KS_u */ 24,
|
||||
/* 33, KS_bracketleft */ 47,
|
||||
/* 34, KS_i */ 12,
|
||||
/* 35, KS_p */ 19,
|
||||
/* 36, KS_Return */ 40,
|
||||
/* 37, KS_l */ 15,
|
||||
/* 38, KS_j */ 13,
|
||||
/* 39, KS_apostrophe */ 52,
|
||||
/* 40, KS_k */ 14,
|
||||
/* 41, KS_semicolon */ 51,
|
||||
/* 42, KS_backslash */ 50, /* Should be 49 */
|
||||
/* 43, KS_comma */ 54,
|
||||
/* 44, KS_slash */ 56,
|
||||
/* 45, KS_n */ 17,
|
||||
/* 46, KS_m */ 16,
|
||||
/* 47, KS_period */ 55,
|
||||
/* 48, KS_Tab */ 43,
|
||||
/* 49, KS_space */ 44,
|
||||
/* 50, KS_grave */ 53,
|
||||
/* 51, KS_Delete */ 42,
|
||||
/* 52, KS_KP_Enter */ 88,
|
||||
/* 53, KS_Escape */ 41,
|
||||
/* 54, KS_Control_L */ 224,
|
||||
/* 55, KS_Cmd */ 227, /* left meta */
|
||||
/* 56, KS_Shift_L */ 225,
|
||||
/* 57, KS_Caps_Lock */ 57,
|
||||
/* 58, KS_Option */ 226,
|
||||
/* 59, KS_Left */ 80,
|
||||
/* 60, KS_Right */ 79,
|
||||
/* 61, KS_Down */ 81,
|
||||
/* 62, KS_Up */ 82,
|
||||
/* 63 */ 0,
|
||||
/* 64 */ 0,
|
||||
/* 65, KS_KP_Decimal */ 99,
|
||||
/* 66 */ 0,
|
||||
/* 67, KS_KP_Multiply */ 85,
|
||||
/* 68 */ 0,
|
||||
/* 69, KS_KP_Add */ 87,
|
||||
/* 70 */ 0,
|
||||
/* 71, KS_Num_Lock */ 83,
|
||||
/* 72 */ 0,
|
||||
/* 73 */ 0,
|
||||
/* 74 */ 0,
|
||||
/* 75, KS_KP_Divide */ 84,
|
||||
/* 76, KS_KP_Enter */ 88,
|
||||
/* 77 */ 0,
|
||||
/* 78, KS_KP_Subtract */ 86,
|
||||
/* 79 */ 0,
|
||||
/* 80 */ 0,
|
||||
/* 81, KS_KP_Equal */ 46, /* no KP_EQUAL on USB? */
|
||||
/* 82, KS_KP_Insert, 0 */ 98,
|
||||
/* 83, KS_KP_End, 1 */ 89,
|
||||
/* 84, KS_KP_Down, 2 */ 90,
|
||||
/* 85, KS_KP_Next, 3 */ 91,
|
||||
/* 86, KS_KP_Left, 4 */ 92,
|
||||
/* 87, KS_KP_Begin 5 */ 93,
|
||||
/* 88, KS_KP_Right 6 */ 94,
|
||||
/* 89, KS_KP_Home 7 */ 95,
|
||||
/* 90 */ 0,
|
||||
/* 91, KS_KP_Up 8 */ 96,
|
||||
/* 92, KS_KP_Prior 9 */ 97,
|
||||
/* 93, KS_backslash */ 100,
|
||||
/* 94, KS_underscore */ 45,
|
||||
/* 95, KS_KP_Delete . */ 99,
|
||||
/* 96, KS_f5 */ 62,
|
||||
/* 97, KS_f6 */ 63,
|
||||
/* 98, KS_f7 */ 64,
|
||||
/* 99, KS_f3 */ 60,
|
||||
/* 100, KS_f8 */ 65,
|
||||
/* 101, KS_f9 */ 66,
|
||||
/* 102 */ 0,
|
||||
/* 103, KS_f11 */ 68,
|
||||
/* 104 */ 0,
|
||||
/* 105, KS_Print_Screen */ 70,
|
||||
/* 106, KS_KP_Enter */ 88,
|
||||
/* 107, KS_Hold_Screen */ 71,
|
||||
/* 108 */ 0,
|
||||
/* 109, KS_f10 */ 67,
|
||||
/* 110 */ 0,
|
||||
/* 111, KS_f12 */ 69,
|
||||
/* 112 */ 0,
|
||||
/* 113, KS_Pause */ 72,
|
||||
/* 114, KS_Insert */ 73,
|
||||
/* 115, KS_Home */ 74,
|
||||
/* 116, KS_Prior */ 75,
|
||||
/* 117, KS_BackSpace */ 76,
|
||||
/* 118, KS_f4 */ 61,
|
||||
/* 119, KS_End */ 77,
|
||||
/* 120, KS_f2 */ 59,
|
||||
/* 121, KS_Next */ 78,
|
||||
/* 122, KS_f1 */ 58,
|
||||
/* 123, KS_Shift_R */ 229,
|
||||
/* 124, KS_Alt_R */ 230,
|
||||
/* 125, KS_Control_R */ 228,
|
||||
/* 126 */ 0,
|
||||
/* 127, KS_Cmd_Debugger */ 102
|
||||
};
|
||||
|
||||
keysym_t adb_to_usb_iso[] = {
|
||||
/* 0, KS_a */ 4,
|
||||
/* 1, KS_s */ 22,
|
||||
/* 2, KS_d */ 7,
|
||||
/* 3, KS_f */ 9,
|
||||
/* 4, KS_h */ 11,
|
||||
/* 5, KS_g */ 10,
|
||||
/* 6, KS_z */ 29,
|
||||
/* 7, KS_x */ 27,
|
||||
/* 8, KS_c */ 6,
|
||||
/* 9, KS_v */ 25,
|
||||
/* 10, KS_paragraph */ 53,
|
||||
/* 11, KS_b */ 5,
|
||||
/* 12, KS_q */ 20,
|
||||
/* 13, KS_w */ 26,
|
||||
/* 14, KS_e */ 8,
|
||||
/* 15, KS_r */ 21,
|
||||
/* 16, KS_y */ 28,
|
||||
/* 17, KS_t */ 23,
|
||||
/* 18, KS_1 */ 30,
|
||||
/* 19, KS_2 */ 31,
|
||||
/* 20, KS_3 */ 32,
|
||||
/* 21, KS_4 */ 33,
|
||||
/* 22, KS_6 */ 35,
|
||||
/* 23, KS_5 */ 34,
|
||||
/* 24, KS_equal */ 46,
|
||||
/* 25, KS_9 */ 38,
|
||||
/* 26, KS_7 */ 36,
|
||||
/* 27, KS_minus */ 45,
|
||||
/* 28, KS_8 */ 37,
|
||||
/* 29, KS_0 */ 39,
|
||||
/* 30, KS_bracketright */ 48,
|
||||
/* 31, KS_o */ 18,
|
||||
/* 32, KS_u */ 24,
|
||||
/* 33, KS_bracketleft */ 47,
|
||||
/* 34, KS_i */ 12,
|
||||
/* 35, KS_p */ 19,
|
||||
/* 36, KS_Return */ 40,
|
||||
/* 37, KS_l */ 15,
|
||||
/* 38, KS_j */ 13,
|
||||
/* 39, KS_apostrophe */ 52,
|
||||
/* 40, KS_k */ 14,
|
||||
/* 41, KS_semicolon */ 51,
|
||||
/* 42, KS_backslash */ 50,
|
||||
/* 43, KS_comma */ 54,
|
||||
/* 44, KS_slash */ 56,
|
||||
/* 45, KS_n */ 17,
|
||||
/* 46, KS_m */ 16,
|
||||
/* 47, KS_period */ 55,
|
||||
/* 48, KS_Tab */ 43,
|
||||
/* 49, KS_space */ 44,
|
||||
/* 50, KS_grave */ 100,
|
||||
/* 51, KS_Delete */ 42,
|
||||
/* 52, KS_KP_Enter */ 88,
|
||||
/* 53, KS_Escape */ 41,
|
||||
/* 54, KS_Control_L */ 224,
|
||||
/* 55, KS_Cmd */ 227, /* left meta */
|
||||
/* 56, KS_Shift_L */ 225,
|
||||
/* 57, KS_Caps_Lock */ 57,
|
||||
/* 58, KS_Option */ 226,
|
||||
/* 59, KS_Left */ 80,
|
||||
/* 60, KS_Right */ 79,
|
||||
/* 61, KS_Down */ 81,
|
||||
/* 62, KS_Up */ 82,
|
||||
/* 63 */ 0,
|
||||
/* 64 */ 0,
|
||||
/* 65, KS_KP_Decimal */ 99,
|
||||
/* 66 */ 0,
|
||||
/* 67, KS_KP_Multiply */ 85,
|
||||
/* 68 */ 0,
|
||||
/* 69, KS_KP_Add */ 87,
|
||||
/* 70 */ 0,
|
||||
/* 71, KS_Num_Lock */ 83,
|
||||
/* 72 */ 0,
|
||||
/* 73 */ 0,
|
||||
/* 74 */ 0,
|
||||
/* 75, KS_KP_Divide */ 84,
|
||||
/* 76, KS_KP_Enter */ 88,
|
||||
/* 77 */ 0,
|
||||
/* 78, KS_KP_Subtract */ 86,
|
||||
/* 79 */ 0,
|
||||
/* 80 */ 0,
|
||||
/* 81, KS_KP_Equal */ 46, /* no KP_EQUAL on USB? */
|
||||
/* 82, KS_KP_Insert, 0 */ 98,
|
||||
/* 83, KS_KP_End, 1 */ 89,
|
||||
/* 84, KS_KP_Down, 2 */ 90,
|
||||
/* 85, KS_KP_Next, 3 */ 91,
|
||||
/* 86, KS_KP_Left, 4 */ 92,
|
||||
/* 87, KS_KP_Begin 5 */ 93,
|
||||
/* 88, KS_KP_Right 6 */ 94,
|
||||
/* 89, KS_KP_Home 7 */ 95,
|
||||
/* 90 */ 0,
|
||||
/* 91, KS_KP_Up 8 */ 96,
|
||||
/* 92, KS_KP_Prior 9 */ 97,
|
||||
/* 93, KS_backslash */ 100,
|
||||
/* 94, KS_underscore */ 45,
|
||||
/* 95, KS_KP_Delete . */ 99,
|
||||
/* 96, KS_f5 */ 62,
|
||||
/* 97, KS_f6 */ 63,
|
||||
/* 98, KS_f7 */ 64,
|
||||
/* 99, KS_f3 */ 60,
|
||||
/* 100, KS_f8 */ 65,
|
||||
/* 101, KS_f9 */ 66,
|
||||
/* 102 */ 0,
|
||||
/* 103, KS_f11 */ 68,
|
||||
/* 104 */ 0,
|
||||
/* 105, KS_Print_Screen */ 70,
|
||||
/* 106, KS_KP_Enter */ 88,
|
||||
/* 107, KS_Hold_Screen */ 71,
|
||||
/* 108 */ 0,
|
||||
/* 109, KS_f10 */ 67,
|
||||
/* 110 */ 0,
|
||||
/* 111, KS_f12 */ 69,
|
||||
/* 112 */ 0,
|
||||
/* 113, KS_Pause */ 72,
|
||||
/* 114, KS_Insert */ 73,
|
||||
/* 115, KS_Home */ 74,
|
||||
/* 116, KS_Prior */ 75,
|
||||
/* 117, KS_BackSpace */ 76,
|
||||
/* 118, KS_f4 */ 61,
|
||||
/* 119, KS_End */ 77,
|
||||
/* 120, KS_f2 */ 59,
|
||||
/* 121, KS_Next */ 78,
|
||||
/* 122, KS_f1 */ 58,
|
||||
/* 123, KS_Shift_R */ 229,
|
||||
/* 124, KS_Alt_R */ 230,
|
||||
/* 125, KS_Control_R */ 228,
|
||||
/* 126 */ 0,
|
||||
/* 127, KS_Cmd_Debugger */ 102
|
||||
};
|
||||
|
||||
keysym_t adb_to_usb_jis[] = { /* XXX not updated from ansi yet */
|
||||
/* 0, KS_a */ 4,
|
||||
/* 1, KS_s */ 22,
|
||||
/* 2, KS_d */ 7,
|
||||
|
@ -128,8 +414,8 @@ keysym_t adb_to_usb[] = {
|
|||
/* 90 */ 0,
|
||||
/* 91, KS_KP_Up 8 */ 96,
|
||||
/* 92, KS_KP_Prior 9 */ 97,
|
||||
/* 93, KS_backslash */ 100,
|
||||
/* 94, KS_underscore */ 45,
|
||||
/* 93, KS_backslash */ 137, /* JPY */
|
||||
/* 94, KS_underscore */ 135, /* RO */
|
||||
/* 95, KS_KP_Delete . */ 99,
|
||||
/* 96, KS_f5 */ 62,
|
||||
/* 97, KS_f6 */ 63,
|
||||
|
@ -164,3 +450,4 @@ keysym_t adb_to_usb[] = {
|
|||
/* 126 */ 0,
|
||||
/* 127, KS_Cmd_Debugger */ 102
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue