--- programs/Xserver/hw/xfree86/input/keyboard/kbd.c.orig Tue Feb 8 17:48:07 2005 +++ programs/Xserver/hw/xfree86/input/keyboard/kbd.c Tue Feb 8 17:48:52 2005 @@ -595,10 +595,13 @@ * they need to get the same key code as the base key on the same * physical keyboard key. */ - if (scanCode == KEY_SysReqest) - scanCode = KEY_Print; - else if (scanCode == KEY_Break) - scanCode = KEY_Pause; + /* PC98 keyboards however don't need this */ + if (!xf86IsPc98()) { + if (scanCode == KEY_SysReqest) + scanCode = KEY_Print; + else if (scanCode == KEY_Break) + scanCode = KEY_Pause; + } #endif /* --- programs/Xserver/hw/xfree86/os-support/shared/at_scancode.c.orig Tue Feb 8 18:14:07 2005 +++ programs/Xserver/hw/xfree86/os-support/shared/at_scancode.c Tue Feb 8 18:14:12 2005 @@ -43,6 +43,9 @@ case KEY_Prefix1: pKbd->scanPrefix = *scanCode; /* special prefixes */ return TRUE; + } + if (!xf86IsPc98()) { + switch (*scanCode) { case 0x59: *scanCode = KEY_0x59; break; case 0x5a: *scanCode = KEY_0x5A; break; case 0x5b: *scanCode = KEY_0x5B; break; @@ -71,6 +74,7 @@ case 0x74: *scanCode = KEY_0x74; break; case 0x75: *scanCode = KEY_0x75; break; case 0x76: *scanCode = KEY_0x76; break; + } } break; case KEY_Prefix0: