home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / X / mit / server / ddx / omron / omronKMap.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-06-29  |  102.0 KB  |  1,573 lines

  1. /*
  2.  * $XConsortium: omronKMap.c,v 1.1 91/06/29 13:48:59 xguest Exp $
  3.  *
  4.  * Copyright 1991 by OMRON Corporation
  5.  * 
  6.  * Permission to use, copy, modify, distribute, and sell this software and its
  7.  * documentation for any purpose is hereby granted without fee, provided that
  8.  * the above copyright notice appear in all copies and that both that
  9.  * copyright notice and this permission notice appear in supporting
  10.  * documentation, and that the name of OMRON not be used in advertising or
  11.  * publicity pertaining to distribution of the software without specific,
  12.  * written prior permission.  OMRON makes no representations about the
  13.  * suitability of this software for any purpose.  It is provided "as is"
  14.  * without express or implied warranty.
  15.  *
  16.  * OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
  17.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OMRON
  18.  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  19.  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
  20.  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
  21.  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  22.  */
  23.  
  24. #include "omron.h"
  25. #include "omronKbd.h"
  26.  
  27. #define cT      (ControlMask)
  28. #define sH      (ShiftMask)
  29. #define lK      (LockMask)
  30. #define mT      (Mod1Mask)
  31. #ifdef USE_KANA_SWITCH
  32. #define m5      (Mod5Mask)
  33. #endif
  34.  
  35. #ifndef USE_KANA_SWITCH
  36. # ifdef USE_KEYCOMPATI
  37. static CARD8 omronDefKeyModeMap[MAP_LENGTH] = {
  38. /*  0   1   2   3   4   5   6   7   8   9   a   b   c   d   e   f  */    
  39.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  cT, 0, sH, sH, lK, mT, /* 00-0f */
  40.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 10-1f */
  41.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 20-2f */
  42.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 30-3f */
  43.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 40-4f */
  44.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 50-5f */
  45.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 60-6f */
  46.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 70-7f */
  47.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 80-8f */
  48.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 90-9f */
  49.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* a0-af */
  50.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* b0-bf */
  51.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* c0-cf */
  52.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* d0-df */
  53.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* e0-ef */
  54.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* f0-ff */
  55. };
  56. # else
  57. static CARD8 omronDefKeyModeMap[MAP_LENGTH] = {
  58. /*  0   1   2   3   4   5   6   7   8   9   a   b   c   d   e   f  */    
  59.     0,  0,  0,  0,  0,  0,  0,
  60.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  cT, 0, sH, sH, lK, mT, /* 00-0f */
  61.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 10-1f */
  62.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 20-2f */
  63.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 30-3f */
  64.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 40-4f */
  65.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 50-5f */
  66.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 60-6f */
  67.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 70-7f */
  68.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 80-8f */
  69.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* 90-9f */
  70.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* a0-af */
  71.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* b0-bf */
  72.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* c0-cf */
  73.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* d0-df */
  74.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, /* e0-ef */
  75.     0,  0,  0,  0,  0,  0,  0,  0,  0,                             /* f0-ff */
  76. };
  77. # endif
  78. #else
  79. # ifdef USE_KEYCOMPATI
  80. static CARD8 omronDefKeyModeMap[MAP_LENGTH] = {
  81. /*  0   1   2   3   4   5   6   7   8   9   a   b   c   d   e   f  */    
  82.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  cT, m5, sH, sH, lK, mT, /* 00-0f */
  83.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 10-1f */
  84.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 20-2f */
  85.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 30-3f */
  86.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 40-4f */
  87.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 50-5f */
  88.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 60-6f */
  89.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 70-7f */
  90.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 80-8f */
  91.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 90-9f */
  92.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* a0-af */
  93.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* b0-bf */
  94.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* c0-cf */
  95.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* d0-df */
  96.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* e0-ef */
  97.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* f0-ff */
  98. };
  99. # else
  100. static CARD8 omronDefKeyModeMap[MAP_LENGTH] = {
  101. /*  0   1   2   3   4   5   6   7   8   9   a   b   c   d   e   f  */    
  102.     0,  0,  0,  0,  0,  0,  0,
  103.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  cT, m5, sH, sH, lK, mT, /* 00-0f */
  104.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 10-1f */
  105.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 20-2f */
  106.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 30-3f */
  107.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 40-4f */
  108.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 50-5f */
  109.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 60-6f */
  110.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 70-7f */
  111.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 80-8f */
  112.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* 90-9f */
  113.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* a0-af */
  114.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* b0-bf */
  115.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* c0-cf */
  116.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* d0-df */
  117.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  /* e0-ef */
  118.     0,  0,  0,  0,  0,  0,  0,  0,  0,                              /* f0-ff */
  119. };
  120. # endif
  121. #endif
  122.  
  123. CARD8 *omronKeyModMap[] = {
  124. #ifdef luna2
  125.     omronDefKeyModeMap,
  126.     omronDefKeyModeMap,
  127.     omronDefKeyModeMap,
  128. #endif
  129.     omronDefKeyModeMap,
  130. };
  131.  
  132. #define XK_henkan    XK_Kanji
  133. #define XK_kakutei    XK_Execute
  134.  
  135. #ifndef USE_KANA_SWITCH
  136. static KeySym omronDefKeyMap[] = {
  137. /*      NormalShift             ShiftedShift            */
  138.         XK_Tab,                 NoSymbol,               /* 0x9 -> min KeyCode */
  139.         XK_Control_L,           NoSymbol,               /* 0xa */
  140.         NoSymbol,               NoSymbol,               /* 0xb -> kana Key */
  141.         XK_Shift_R,             NoSymbol,               /* 0xc */
  142.         XK_Shift_L,             NoSymbol,               /* 0xd */
  143.         XK_Caps_Lock,           NoSymbol,               /* 0xe */
  144.         XK_Meta_L,              NoSymbol,               /* 0xf -> zenmen Key */
  145.         XK_Escape,              NoSymbol,               /* 0x10 */
  146.         XK_BackSpace,           NoSymbol,               /* 0x11 */
  147.         XK_Return,              NoSymbol,               /* 0x12 */
  148.         NoSymbol,               NoSymbol,               /* 0x13 -> Nothing */
  149.         XK_space,               NoSymbol,               /* 0x14 */
  150.         XK_Delete,              NoSymbol,               /* 0x15 */
  151.         XK_henkan,              NoSymbol,               /* 0x16 -> Henkan Key */
  152.         XK_kakutei,             NoSymbol,               /* 0x17 -> Kakutei Key */
  153.         XK_F11,                 NoSymbol,               /* 0x18 */
  154.         XK_F12,                 NoSymbol,               /* 0x19 */
  155.         XK_F13,                 NoSymbol,               /* 0x1a */
  156.         XK_F14,                 NoSymbol,               /* 0x1b */
  157.         XK_Up,                  NoSymbol,               /* 0x1c */
  158.         XK_Left,                NoSymbol,               /* 0x1d */
  159.         XK_Right,               NoSymbol,               /* 0x1e */
  160.         XK_Down,                NoSymbol,               /* 0x1f */
  161.         NoSymbol,               NoSymbol,               /* 0x20 -> Nothing */
  162.         NoSymbol,               NoSymbol,               /* 0x21 -> Nothing */
  163.         XK_1,                   XK_exclam,              /* 0x22 */
  164.         XK_2,                   XK_quotedbl,            /* 0x23 */
  165.         XK_3,                   XK_numbersign,          /* 0x24 */
  166.         XK_4,                   XK_dollar,              /* 0x25 */
  167.         XK_5,                   XK_percent,             /* 0x26 */
  168.         XK_6,                   XK_ampersand,           /* 0x27 */
  169.         XK_7,                   XK_quoteright,          /* 0x28 */
  170.         XK_8,                   XK_parenleft,           /* 0x29 */
  171.         XK_9,                   XK_parenright,          /* 0x2a */
  172.         XK_0,                   NoSymbol,               /* 0x2b */
  173.         XK_minus,               XK_equal,               /* 0x2c */
  174.         XK_asciicircum,         XK_asciitilde,          /* 0x2d */
  175.         XK_backslash,           XK_bar,                 /* 0x2e */
  176.         NoSymbol,               NoSymbol,               /* 0x2f -> Nothing */
  177.         NoSymbol,               NoSymbol,               /* 0x30 -> Nothing */
  178.         NoSymbol,               NoSymbol,               /* 0x31 -> Nothing */
  179.         XK_q,                   XK_Q,                   /* 0x32 */
  180.         XK_w,                   XK_W,                   /* 0x33 */
  181.         XK_e,                   XK_E,                   /* 0x34 */
  182.         XK_r,                   XK_R,                   /* 0x35 */
  183.         XK_t,                   XK_T,                   /* 0x36 */
  184.         XK_y,                   XK_Y,                   /* 0x37 */
  185.         XK_u,                   XK_U,                   /* 0x38 */
  186.         XK_i,                   XK_I,                   /* 0x39 */
  187.         XK_o,                   XK_O,                   /* 0x3a */
  188.         XK_p,                   XK_P,                   /* 0x3b */
  189.         XK_at,                  XK_quoteleft,           /* 0x3c */
  190.         XK_bracketleft,         XK_braceleft,           /* 0x3d */
  191.         NoSymbol,               NoSymbol,               /* 0x3e -> Nothing */
  192.         NoSymbol,               NoSymbol,               /* 0x3f -> Nothing */
  193.         NoSymbol,               NoSymbol,               /* 0x40 -> Nothing */
  194.         NoSymbol,               NoSymbol,               /* 0x41 -> Nothing */
  195.         XK_a,                   XK_A,                   /* 0x42 */
  196.         XK_s,                   XK_S,                   /* 0x43 */
  197.         XK_d,                   XK_D,                   /* 0x44 */
  198.         XK_f,                   XK_F,                   /* 0x45 */
  199.         XK_g,                   XK_G,                   /* 0x46 */
  200.         XK_h,                   XK_H,                   /* 0x47 */
  201.         XK_j,                   XK_J,                   /* 0x48 */
  202.         XK_k,                   XK_K,                   /* 0x49 */
  203.         XK_l,                   XK_L,                   /* 0x4a */
  204.         XK_semicolon,           XK_plus,                /* 0x4b */
  205.         XK_colon,               XK_asterisk,            /* 0x4c */
  206.         XK_bracketright,        XK_braceright,          /* 0x4d */
  207.         NoSymbol,               NoSymbol,               /* 0x4e -> Nothing */
  208.         NoSymbol,               NoSymbol,               /* 0x4f -> Nothing */
  209.         NoSymbol,               NoSymbol,               /* 0x50 -> Nothing */
  210.         NoSymbol,               NoSymbol,               /* 0x51 -> Nothing */
  211.         XK_z,                   XK_Z,                   /* 0x52 */
  212.         XK_x,                   XK_X,                   /* 0x53 */
  213.         XK_c,                   XK_C,                   /* 0x54 */
  214.         XK_v,                   XK_V,                   /* 0x55 */
  215.         XK_b,                   XK_B,                   /* 0x56 */
  216.         XK_n,                   XK_N,                   /* 0x57 */
  217.         XK_m,                   XK_M,                   /* 0x58 */
  218.         XK_comma,               XK_less,                /* 0x59 */
  219.         XK_period,              XK_greater,             /* 0x5a */
  220.         XK_slash,               XK_question,            /* 0x5b */
  221.         NoSymbol,               XK_underscore,          /* 0x5c */
  222.         NoSymbol,               NoSymbol,               /* 0x5d -> Nothing */
  223.         NoSymbol,               NoSymbol,               /* 0x5e -> Nothing */
  224.         NoSymbol,               NoSymbol,               /* 0x5f -> Nothing */
  225.         NoSymbol,               NoSymbol,               /* 0x60 -> Nothing */
  226.         XK_plus,                NoSymbol,               /* 0x61 */
  227.         XK_minus,               NoSymbol,               /* 0x62 */
  228.         XK_7,                   NoSymbol,               /* 0x63 */
  229.         XK_8,                   NoSymbol,               /* 0x64 */
  230.         XK_9,                   NoSymbol,               /* 0x65 */
  231.         XK_4,                   NoSymbol,               /* 0x66 */
  232.         XK_5,                   NoSymbol,               /* 0x67 */
  233.         XK_6,                   NoSymbol,               /* 0x68 */
  234.         XK_1,                   NoSymbol,               /* 0x69 */
  235.         XK_2,                   NoSymbol,               /* 0x6a */
  236.         XK_3,                   NoSymbol,               /* 0x6b */
  237.         XK_0,                   NoSymbol,               /* 0x6c */
  238.         XK_period,              NoSymbol,               /* 0x6d */
  239.         XK_Return,              NoSymbol,               /* 0x6e */
  240.         NoSymbol,               NoSymbol,               /* 0x6f */
  241.         NoSymbol,               NoSymbol,               /* 0x70 */
  242.         NoSymbol,               NoSymbol,               /* 0x71 */
  243.         XK_F1,                  NoSymbol,               /* 0x72 */
  244.         XK_F2,                  NoSymbol,               /* 0x73 */
  245.         XK_F3,                  NoSymbol,               /* 0x74 */
  246.         XK_F4,                  NoSymbol,               /* 0x75 */
  247.         XK_F5,                  NoSymbol,               /* 0x76 */
  248.         XK_F6,                  NoSymbol,               /* 0x77 */
  249.         XK_F7,                  NoSymbol,               /* 0x78 */
  250.         XK_F8,                  NoSymbol,               /* 0x79 */
  251.         XK_F9,                  NoSymbol,               /* 0x7a */
  252.         XK_F10,                 NoSymbol,               /* 0x7b */
  253.         XK_asterisk,            XK_asterisk,            /* 0x7c */
  254.         XK_slash,               XK_slash,               /* 0x7d */
  255.         XK_equal,               XK_equal,               /* 0x7e */
  256.         XK_comma,               XK_comma,               /* 0x7f */
  257. /************************** Kana Code Table *****************************/
  258.         XK_Tab,                 NoSymbol,               /* 0x80 */
  259.         NoSymbol,               NoSymbol,               /* 0x81 */
  260.         NoSymbol,               NoSymbol,               /* 0x82 */
  261.         NoSymbol,               NoSymbol,               /* 0x83 */
  262.         NoSymbol,               NoSymbol,               /* 0x84 */
  263.         NoSymbol,               NoSymbol,               /* 0x85 */
  264.         NoSymbol,               NoSymbol,               /* 0x86 */
  265.         XK_Escape,              NoSymbol,               /* 0x87 */
  266.         XK_BackSpace,           NoSymbol,               /* 0x88 */
  267.         XK_Return,              NoSymbol,               /* 0x89 */
  268.         NoSymbol,               NoSymbol,               /* 0x8a */
  269.         XK_space,               NoSymbol,               /* 0x8b */
  270.         XK_Delete,              NoSymbol,               /* 0x8c */
  271.         XK_henkan,              NoSymbol,               /* 0x8d */ /* HENKAN */ 
  272.         XK_kakutei,             NoSymbol,               /* 0x8e */ /* KAKUTEI */
  273.         XK_F11,                 NoSymbol,               /* 0x8f */
  274.         XK_F12,                 NoSymbol,               /* 0x90 */
  275.         XK_F13,                 NoSymbol,               /* 0x91 */
  276.         XK_F14,                 NoSymbol,               /* 0x92 */
  277.         XK_Up,                  NoSymbol,               /* 0x93 */
  278.         XK_Left,                NoSymbol,               /* 0x94 */
  279.         XK_Right,               NoSymbol,               /* 0x95 */
  280.         XK_Down,                NoSymbol,               /* 0x96 */
  281.         NoSymbol,               NoSymbol,               /* 0x97 */
  282.         NoSymbol,               NoSymbol,               /* 0x98 */
  283.         XK_kana_NU,             NoSymbol,               /* 0x99 */
  284.         XK_kana_HU,             NoSymbol,               /* 0x9a */
  285.         XK_kana_A,              XK_kana_a,              /* 0x9b */
  286.         XK_kana_U,              XK_kana_u,              /* 0x9c */
  287.         XK_kana_E,              XK_kana_e,              /* 0x9d */
  288.         XK_kana_O,              XK_kana_o,              /* 0x9e */
  289.         XK_kana_YA,             XK_kana_ya,             /* 0x9f */
  290.         XK_kana_YU,             XK_kana_yu,             /* 0xa0 */
  291.         XK_kana_YO,             XK_kana_yo,             /* 0xa1 */
  292.         XK_kana_WA,             XK_kana_WO,             /* 0xa2 */
  293.         XK_kana_HO,             NoSymbol,               /* 0xa3 */
  294.         XK_kana_HE,             NoSymbol,               /* 0xa4 */
  295.         XK_prolongedsound,      NoSymbol,               /* 0xa5 */
  296.         NoSymbol,               NoSymbol,               /* 0xa6 */
  297.         NoSymbol,               NoSymbol,               /* 0xa7 */
  298.         NoSymbol,               NoSymbol,               /* 0xa8 */
  299.         XK_kana_TA,             NoSymbol,               /* 0xa9 */
  300.         XK_kana_TE,             NoSymbol,               /* 0xaa */
  301.         XK_kana_I,              XK_kana_i,              /* 0xab */
  302.         XK_kana_SU,             NoSymbol,               /* 0xac */
  303.         XK_kana_KA,             NoSymbol,               /* 0xad */
  304.         XK_kana_N,              NoSymbol,               /* 0xae */
  305.         XK_kana_NA,             NoSymbol,               /* 0xaf */
  306.         XK_kana_NI,             NoSymbol,               /* 0xb0 */
  307.         XK_kana_RA,             NoSymbol,               /* 0xb1 */
  308.         XK_kana_SE,             NoSymbol,               /* 0xb2 */
  309.         XK_voicedsound,         NoSymbol,               /* 0xb3 */
  310.         XK_semivoicedsound,     XK_kana_openingbracket, /* 0xb4 */
  311.         NoSymbol,               NoSymbol,               /* 0xb5 */
  312.         NoSymbol,               NoSymbol,               /* 0xb6 */
  313.         NoSymbol,               NoSymbol,               /* 0xb7 */
  314.         NoSymbol,               NoSymbol,               /* 0xb8 */
  315.         XK_kana_TI,             NoSymbol,               /* 0xb9 */
  316.         XK_kana_TO,             NoSymbol,               /* 0xba */
  317.         XK_kana_SHI,            NoSymbol,               /* 0xbb */
  318.         XK_kana_HA,             NoSymbol,               /* 0xbc */
  319.         XK_kana_KI,             NoSymbol,               /* 0xbd */
  320.         XK_kana_KU,             NoSymbol,               /* 0xbe */
  321.         XK_kana_MA,             NoSymbol,               /* 0xbf */
  322.         XK_kana_NO,             NoSymbol,               /* 0xc0 */
  323.         XK_kana_RI,             NoSymbol,               /* 0xc1 */
  324.         XK_kana_RE,             NoSymbol,               /* 0xc2 */
  325.         XK_kana_KE,             NoSymbol,               /* 0xc3 */
  326.         XK_kana_MU,             XK_kana_closingbracket, /* 0xc4 */
  327.         NoSymbol,               NoSymbol,               /* 0xc5 */
  328.         NoSymbol,               NoSymbol,               /* 0xc6 */
  329.         NoSymbol,               NoSymbol,               /* 0xc7 */
  330.         NoSymbol,               NoSymbol,               /* 0xc8 */
  331.         XK_kana_TU,             XK_kana_tu,             /* 0xc9 */
  332.         XK_kana_SA,             NoSymbol,               /* 0xca */
  333.         XK_kana_SO,             NoSymbol,               /* 0xcb */
  334.         XK_kana_HI,             NoSymbol,               /* 0xcc */
  335.         XK_kana_KO,             NoSymbol,               /* 0xcd */
  336.         XK_kana_MI,             NoSymbol,               /* 0xce */
  337.         XK_kana_MO,             NoSymbol,               /* 0xcf */
  338.         XK_kana_NE,             XK_kana_comma,          /* 0xd0 */
  339.         XK_kana_RU,             XK_kana_fullstop,       /* 0xd1 */
  340.         XK_kana_ME,             XK_kana_middledot,      /* 0xd2 */
  341.         XK_kana_RO,             NoSymbol,               /* 0xd3 */
  342.         NoSymbol,               NoSymbol,               /* 0xd4 */
  343.         NoSymbol,               NoSymbol,               /* 0xd5 */
  344.         NoSymbol,               NoSymbol,               /* 0xd6 */
  345.         NoSymbol,               NoSymbol,               /* 0xd7 */
  346.         XK_plus,                NoSymbol,               /* 0xd8 */
  347.         XK_minus,               NoSymbol,               /* 0xd9 */
  348.         XK_7,                   NoSymbol,               /* 0xda */
  349.         XK_8,                   NoSymbol,               /* 0xdb */
  350.         XK_9,                   NoSymbol,               /* 0xdc */
  351.         XK_4,                   NoSymbol,               /* 0xdd */
  352.         XK_5,                   NoSymbol,               /* 0xde */
  353.         XK_6,                   NoSymbol,               /* 0xdf */
  354.         XK_1,                   NoSymbol,               /* 0xe0 */
  355.         XK_2,                   NoSymbol,               /* 0xe1 */
  356.         XK_3,                   NoSymbol,               /* 0xe2 */
  357.         XK_0,                   NoSymbol,               /* 0xe3 */
  358.         XK_period,              NoSymbol,               /* 0xe4 */
  359.         XK_Return,              NoSymbol,               /* 0xe5 */
  360.         NoSymbol,               NoSymbol,               /* 0xe6 */
  361.         NoSymbol,               NoSymbol,               /* 0xe7 */
  362.         NoSymbol,               NoSymbol,               /* 0xe8 */
  363.         XK_F1,                  NoSymbol,               /* 0xe9 */
  364.         XK_F2,                  NoSymbol,               /* 0xea */
  365.         XK_F3,                  NoSymbol,               /* 0xeb */
  366.         XK_F4,                  NoSymbol,               /* 0xec */
  367.         XK_F5,                  NoSymbol,               /* 0xed */
  368.         XK_F6,                  NoSymbol,               /* 0xee */
  369.         XK_F7,                  NoSymbol,               /* 0xef */
  370.         XK_F8,                  NoSymbol,               /* 0xf0 */
  371.         XK_F9,                  NoSymbol,               /* 0xf1 */
  372.         XK_F10,                 NoSymbol,               /* 0xf2 */
  373.         XK_asterisk,            XK_asterisk,            /* 0xf3 */
  374.         XK_slash,               XK_slash,               /* 0xf4 */
  375.         XK_equal,               XK_equal,               /* 0xf5 */
  376.         XK_comma,               XK_comma,               /* 0xf6  -> maxKeyCode */
  377. };
  378.  
  379. #ifdef luna2 
  380. static KeySym omronJisjisKeyMap[] = {        
  381. /*      NormalShift             ShiftedShift            */
  382.         XK_Tab,                 NoSymbol,               /* 0x9 -> min KeyCode */
  383.         XK_Control_L,           NoSymbol,               /* 0xa */
  384.         NoSymbol,               NoSymbol,               /* 0xb -> kana Key */
  385.         XK_Shift_R,             NoSymbol,               /* 0xc */
  386.         XK_Shift_L,             NoSymbol,               /* 0xd */
  387.         XK_Caps_Lock,           NoSymbol,               /* 0xe */
  388.         XK_Meta_L,              NoSymbol,               /* 0xf -> zenmen Key */
  389.         XK_Escape,              NoSymbol,               /* 0x10 */
  390.         XK_BackSpace,           NoSymbol,               /* 0x11 */
  391.         XK_Return,              NoSymbol,               /* 0x12 */
  392.         NoSymbol,               NoSymbol,               /* 0x13 -> Nothing */
  393.         XK_space,               NoSymbol,               /* 0x14 */
  394.         XK_Delete,              NoSymbol,               /* 0x15 */
  395.         XK_henkan,              NoSymbol,               /* 0x16 -> Henkan Key */
  396.         XK_kakutei,             NoSymbol,               /* 0x17 -> Kakutei Key */
  397.         XK_F11,                 NoSymbol,               /* 0x18 */
  398.         XK_F12,                 NoSymbol,               /* 0x19 */
  399.         XK_F13,                 NoSymbol,               /* 0x1a */
  400.         XK_F14,                 NoSymbol,               /* 0x1b */
  401.         XK_Up,                  NoSymbol,               /* 0x1c */
  402.         XK_Left,                NoSymbol,               /* 0x1d */
  403.         XK_Right,               NoSymbol,               /* 0x1e */
  404.         XK_Down,                NoSymbol,               /* 0x1f */
  405.         osfXK_Insert,           NoSymbol,               /* 0x20 -> Insert */
  406.         osfXK_Copy,             NoSymbol,               /* 0x21 -> Copy */
  407.         XK_1,                   XK_exclam,              /* 0x22 */
  408.         XK_2,                   XK_quotedbl,            /* 0x23 */
  409.         XK_3,                   XK_numbersign,          /* 0x24 */
  410.         XK_4,                   XK_dollar,              /* 0x25 */
  411.         XK_5,                   XK_percent,             /* 0x26 */
  412.         XK_6,                   XK_ampersand,           /* 0x27 */
  413.         XK_7,                   XK_quoteright,          /* 0x28 */
  414.         XK_8,                   XK_parenleft,           /* 0x29 */
  415.         XK_9,                   XK_parenright,          /* 0x2a */
  416.         XK_0,                   NoSymbol,               /* 0x2b */
  417.         XK_minus,               XK_equal,               /* 0x2c */
  418.         XK_asciicircum,         XK_asciitilde,          /* 0x2d */
  419.         XK_backslash,           XK_bar,                 /* 0x2e */
  420.         NoSymbol,               NoSymbol,               /* 0x2f -> Nothing */
  421.         osfXK_Cut,              NoSymbol,               /* 0x30 -> Cut */
  422.         osfXK_Paste,            NoSymbol,               /* 0x31 -> Paste */
  423.         XK_q,                   XK_Q,                   /* 0x32 */
  424.         XK_w,                   XK_W,                   /* 0x33 */
  425.         XK_e,                   XK_E,                   /* 0x34 */
  426.         XK_r,                   XK_R,                   /* 0x35 */
  427.         XK_t,                   XK_T,                   /* 0x36 */
  428.         XK_y,                   XK_Y,                   /* 0x37 */
  429.         XK_u,                   XK_U,                   /* 0x38 */
  430.         XK_i,                   XK_I,                   /* 0x39 */
  431.         XK_o,                   XK_O,                   /* 0x3a */
  432.         XK_p,                   XK_P,                   /* 0x3b */
  433.         XK_at,                  XK_quoteleft,           /* 0x3c */
  434.         XK_bracketleft,         XK_braceleft,           /* 0x3d */
  435.         NoSymbol,               NoSymbol,               /* 0x3e -> Nothing */
  436.         NoSymbol,               NoSymbol,               /* 0x3f -> Nothing */
  437.         NoSymbol,               NoSymbol,               /* 0x40 -> Nothing */
  438.         NoSymbol,               NoSymbol,               /* 0x41 -> Nothing */
  439.         XK_a,                   XK_A,                   /* 0x42 */
  440.         XK_s,                   XK_S,                   /* 0x43 */
  441.         XK_d,                   XK_D,                   /* 0x44 */
  442.         XK_f,                   XK_F,                   /* 0x45 */
  443.         XK_g,                   XK_G,                   /* 0x46 */
  444.         XK_h,                   XK_H,                   /* 0x47 */
  445.         XK_j,                   XK_J,                   /* 0x48 */
  446.         XK_k,                   XK_K,                   /* 0x49 */
  447.         XK_l,                   XK_L,                   /* 0x4a */
  448.         XK_semicolon,           XK_plus,                /* 0x4b */
  449.         XK_colon,               XK_asterisk,            /* 0x4c */
  450.         XK_bracketright,        XK_braceright,          /* 0x4d */
  451.         NoSymbol,               NoSymbol,               /* 0x4e -> Nothing */
  452.         NoSymbol,               NoSymbol,               /* 0x4f -> Nothing */
  453.         NoSymbol,               NoSymbol,               /* 0x50 -> Nothing */
  454.         NoSymbol,               NoSymbol,               /* 0x51 -> Nothing */
  455.         XK_z,                   XK_Z,                   /* 0x52 */
  456.         XK_x,                   XK_X,                   /* 0x53 */
  457.         XK_c,                   XK_C,                   /* 0x54 */
  458.         XK_v,                   XK_V,                   /* 0x55 */
  459.         XK_b,                   XK_B,                   /* 0x56 */
  460.         XK_n,                   XK_N,                   /* 0x57 */
  461.         XK_m,                   XK_M,                   /* 0x58 */
  462.         XK_comma,               XK_less,                /* 0x59 */
  463.         XK_period,              XK_greater,             /* 0x5a */
  464.         XK_slash,               XK_question,            /* 0x5b */
  465.         NoSymbol,               XK_underscore,          /* 0x5c */
  466.         NoSymbol,               NoSymbol,               /* 0x5d -> Nothing */
  467.         NoSymbol,               NoSymbol,               /* 0x5e -> Nothing */
  468.         NoSymbol,               NoSymbol,               /* 0x5f -> Nothing */
  469.         XK_Home,                NoSymbol,               /* 0x60 -> Home */
  470.         XK_plus,                NoSymbol,               /* 0x61 */
  471.         XK_minus,               NoSymbol,               /* 0x62 */
  472.         XK_7,                   NoSymbol,               /* 0x63 */
  473.         XK_8,                   NoSymbol,               /* 0x64 */
  474.         XK_9,                   NoSymbol,               /* 0x65 */
  475.         XK_4,                   NoSymbol,               /* 0x66 */
  476.         XK_5,                   NoSymbol,               /* 0x67 */
  477.         XK_6,                   NoSymbol,               /* 0x68 */
  478.         XK_1,                   NoSymbol,               /* 0x69 */
  479.         XK_2,                   NoSymbol,               /* 0x6a */
  480.         XK_3,                   NoSymbol,               /* 0x6b */
  481.         XK_0,                   NoSymbol,               /* 0x6c */
  482.         XK_period,              NoSymbol,               /* 0x6d */
  483.         XK_Return,              NoSymbol,               /* 0x6e */
  484.         NoSymbol,               NoSymbol,               /* 0x6f */
  485.         NoSymbol,               NoSymbol,               /* 0x70 */
  486.         NoSymbol,               NoSymbol,               /* 0x71 */
  487.         XK_F1,                  NoSymbol,               /* 0x72 */
  488.         XK_F2,                  NoSymbol,               /* 0x73 */
  489.         XK_F3,                  NoSymbol,               /* 0x74 */
  490.         XK_F4,                  NoSymbol,               /* 0x75 */
  491.         XK_F5,                  NoSymbol,               /* 0x76 */
  492.         XK_F6,                  NoSymbol,               /* 0x77 */
  493.         XK_F7,                  NoSymbol,               /* 0x78 */
  494.         XK_F8,                  NoSymbol,               /* 0x79 */
  495.         XK_F9,                  NoSymbol,               /* 0x7a */
  496.         XK_F10,                 NoSymbol,               /* 0x7b */
  497.         XK_asterisk,            XK_asterisk,            /* 0x7c */
  498.         XK_slash,               XK_slash,               /* 0x7d */
  499.         XK_equal,               XK_equal,               /* 0x7e */
  500.         XK_comma,               XK_comma,               /* 0x7f */
  501. /************************** Kana Code Table *****************************/
  502.         XK_Tab,                 NoSymbol,               /* 0x80 */
  503.         NoSymbol,               NoSymbol,               /* 0x81 */
  504.         NoSymbol,               NoSymbol,               /* 0x82 */
  505.         NoSymbol,               NoSymbol,               /* 0x83 */
  506.         NoSymbol,               NoSymbol,               /* 0x84 */
  507.         NoSymbol,               NoSymbol,               /* 0x85 */
  508.         NoSymbol,               NoSymbol,               /* 0x86 */
  509.         XK_Escape,              NoSymbol,               /* 0x87 */
  510.         XK_BackSpace,           NoSymbol,               /* 0x88 */
  511.         XK_Return,              NoSymbol,               /* 0x89 */
  512.         NoSymbol,               NoSymbol,               /* 0x8a */
  513.         XK_space,               NoSymbol,               /* 0x8b */
  514.         XK_Delete,              NoSymbol,               /* 0x8c */
  515.         XK_henkan,              NoSymbol,               /* 0x8d */ /* HENKAN */ 
  516.         XK_kakutei,             NoSymbol,               /* 0x8e */ /* KAKUTEI */
  517.         XK_F11,                 NoSymbol,               /* 0x8f */
  518.         XK_F12,                 NoSymbol,               /* 0x90 */
  519.         XK_F13,                 NoSymbol,               /* 0x91 */
  520.         XK_F14,                 NoSymbol,               /* 0x92 */
  521.         XK_Up,                  NoSymbol,               /* 0x93 */
  522.         XK_Left,                NoSymbol,               /* 0x94 */
  523.         XK_Right,               NoSymbol,               /* 0x95 */
  524.         XK_Down,                NoSymbol,               /* 0x96 */
  525.         NoSymbol,               NoSymbol,               /* 0x97 */
  526.         NoSymbol,               NoSymbol,               /* 0x98 */
  527.         XK_kana_NU,             NoSymbol,               /* 0x99 */
  528.         XK_kana_HU,             NoSymbol,               /* 0x9a */
  529.         XK_kana_A,              XK_kana_a,              /* 0x9b */
  530.         XK_kana_U,              XK_kana_u,              /* 0x9c */
  531.         XK_kana_E,              XK_kana_e,              /* 0x9d */
  532.         XK_kana_O,              XK_kana_o,              /* 0x9e */
  533.         XK_kana_YA,             XK_kana_ya,             /* 0x9f */
  534.         XK_kana_YU,             XK_kana_yu,             /* 0xa0 */
  535.         XK_kana_YO,             XK_kana_yo,             /* 0xa1 */
  536.         XK_kana_WA,             XK_kana_WO,             /* 0xa2 */
  537.         XK_kana_HO,             NoSymbol,               /* 0xa3 */
  538.         XK_kana_HE,             NoSymbol,               /* 0xa4 */
  539.         XK_prolongedsound,      NoSymbol,               /* 0xa5 */
  540.         NoSymbol,               NoSymbol,               /* 0xa6 */
  541.         NoSymbol,               NoSymbol,               /* 0xa7 */
  542.         NoSymbol,               NoSymbol,               /* 0xa8 */
  543.         XK_kana_TA,             NoSymbol,               /* 0xa9 */
  544.         XK_kana_TE,             NoSymbol,               /* 0xaa */
  545.         XK_kana_I,              XK_kana_i,              /* 0xab */
  546.         XK_kana_SU,             NoSymbol,               /* 0xac */
  547.         XK_kana_KA,             NoSymbol,               /* 0xad */
  548.         XK_kana_N,              NoSymbol,               /* 0xae */
  549.         XK_kana_NA,             NoSymbol,               /* 0xaf */
  550.         XK_kana_NI,             NoSymbol,               /* 0xb0 */
  551.         XK_kana_RA,             NoSymbol,               /* 0xb1 */
  552.         XK_kana_SE,             NoSymbol,               /* 0xb2 */
  553.         XK_voicedsound,         NoSymbol,               /* 0xb3 */
  554.         XK_semivoicedsound,     XK_kana_openingbracket, /* 0xb4 */
  555.         NoSymbol,               NoSymbol,               /* 0xb5 */
  556.         NoSymbol,               NoSymbol,               /* 0xb6 */
  557.         NoSymbol,               NoSymbol,               /* 0xb7 */
  558.         NoSymbol,               NoSymbol,               /* 0xb8 */
  559.         XK_kana_TI,             NoSymbol,               /* 0xb9 */
  560.         XK_kana_TO,             NoSymbol,               /* 0xba */
  561.         XK_kana_SHI,            NoSymbol,               /* 0xbb */
  562.         XK_kana_HA,             NoSymbol,               /* 0xbc */
  563.         XK_kana_KI,             NoSymbol,               /* 0xbd */
  564.         XK_kana_KU,             NoSymbol,               /* 0xbe */
  565.         XK_kana_MA,             NoSymbol,               /* 0xbf */
  566.         XK_kana_NO,             NoSymbol,               /* 0xc0 */
  567.         XK_kana_RI,             NoSymbol,               /* 0xc1 */
  568.         XK_kana_RE,             NoSymbol,               /* 0xc2 */
  569.         XK_kana_KE,             NoSymbol,               /* 0xc3 */
  570.         XK_kana_MU,             XK_kana_closingbracket, /* 0xc4 */
  571.         NoSymbol,               NoSymbol,               /* 0xc5 */
  572.         NoSymbol,               NoSymbol,               /* 0xc6 */
  573.         NoSymbol,               NoSymbol,               /* 0xc7 */
  574.         NoSymbol,               NoSymbol,               /* 0xc8 */
  575.         XK_kana_TU,             XK_kana_tu,             /* 0xc9 */
  576.         XK_kana_SA,             NoSymbol,               /* 0xca */
  577.         XK_kana_SO,             NoSymbol,               /* 0xcb */
  578.         XK_kana_HI,             NoSymbol,               /* 0xcc */
  579.         XK_kana_KO,             NoSymbol,               /* 0xcd */
  580.         XK_kana_MI,             NoSymbol,               /* 0xce */
  581.         XK_kana_MO,             NoSymbol,               /* 0xcf */
  582.         XK_kana_NE,             XK_kana_comma,          /* 0xd0 */
  583.         XK_kana_RU,             XK_kana_fullstop,       /* 0xd1 */
  584.         XK_kana_ME,             XK_kana_middledot,      /* 0xd2 */
  585.         XK_kana_RO,             NoSymbol,               /* 0xd3 */
  586.         NoSymbol,               NoSymbol,               /* 0xd4 */
  587.         NoSymbol,               NoSymbol,               /* 0xd5 */
  588.         NoSymbol,               NoSymbol,               /* 0xd6 */
  589.         NoSymbol,               NoSymbol,               /* 0xd7 */
  590.         XK_plus,                NoSymbol,               /* 0xd8 */
  591.         XK_minus,               NoSymbol,               /* 0xd9 */
  592.         XK_7,                   NoSymbol,               /* 0xda */
  593.         XK_8,                   NoSymbol,               /* 0xdb */
  594.         XK_9,                   NoSymbol,               /* 0xdc */
  595.         XK_4,                   NoSymbol,               /* 0xdd */
  596.         XK_5,                   NoSymbol,               /* 0xde */
  597.         XK_6,                   NoSymbol,               /* 0xdf */
  598.         XK_1,                   NoSymbol,               /* 0xe0 */
  599.         XK_2,                   NoSymbol,               /* 0xe1 */
  600.         XK_3,                   NoSymbol,               /* 0xe2 */
  601.         XK_0,                   NoSymbol,               /* 0xe3 */
  602.         XK_period,              NoSymbol,               /* 0xe4 */
  603.         XK_Return,              NoSymbol,               /* 0xe5 */
  604.         NoSymbol,               NoSymbol,               /* 0xe6 */
  605.         NoSymbol,               NoSymbol,               /* 0xe7 */
  606.         NoSymbol,               NoSymbol,               /* 0xe8 */
  607.         XK_F1,                  NoSymbol,               /* 0xe9 */
  608.         XK_F2,                  NoSymbol,               /* 0xea */
  609.         XK_F3,                  NoSymbol,               /* 0xeb */
  610.         XK_F4,                  NoSymbol,               /* 0xec */
  611.         XK_F5,                  NoSymbol,               /* 0xed */
  612.         XK_F6,                  NoSymbol,               /* 0xee */
  613.         XK_F7,                  NoSymbol,               /* 0xef */
  614.         XK_F8,                  NoSymbol,               /* 0xf0 */
  615.         XK_F9,                  NoSymbol,               /* 0xf1 */
  616.         XK_F10,                 NoSymbol,               /* 0xf2 */
  617.         XK_asterisk,            XK_asterisk,            /* 0xf3 */
  618.         XK_slash,               XK_slash,               /* 0xf4 */
  619.         XK_equal,               XK_equal,               /* 0xf5 */
  620.         XK_comma,               XK_comma,               /* 0xf6  -> maxKeyCode */
  621. };
  622.  
  623. static KeySym omronAsciijisKeyMap[] = {
  624. /*      NormalShift             ShiftedShift            */
  625.         XK_Tab,                 NoSymbol,               /* 0x9 -> min KeyCode */
  626.         XK_Control_L,           NoSymbol,               /* 0xa */
  627.         NoSymbol,               NoSymbol,               /* 0xb -> kana Key */
  628.         XK_Shift_R,             NoSymbol,               /* 0xc */
  629.         XK_Shift_L,             NoSymbol,               /* 0xd */
  630.         XK_Caps_Lock,           NoSymbol,               /* 0xe */
  631.         XK_Meta_L,              NoSymbol,               /* 0xf -> zenmen Key */
  632.         XK_Escape,              NoSymbol,               /* 0x10 */
  633.         XK_BackSpace,           NoSymbol,               /* 0x11 */
  634.         XK_Return,              NoSymbol,               /* 0x12 */
  635.         NoSymbol,               NoSymbol,               /* 0x13 -> Nothing */
  636.         XK_space,               NoSymbol,               /* 0x14 */
  637.         XK_Delete,              NoSymbol,               /* 0x15 */
  638.         XK_henkan,              NoSymbol,               /* 0x16 -> Henkan Key */
  639.         XK_kakutei,             NoSymbol,               /* 0x17 -> Kakutei Key */
  640.         XK_F11,                 NoSymbol,               /* 0x18 */
  641.         XK_F12,                 NoSymbol,               /* 0x19 */
  642.         XK_F13,                 NoSymbol,               /* 0x1a */
  643.         XK_F14,                 NoSymbol,               /* 0x1b */
  644.         XK_Up,                  NoSymbol,               /* 0x1c */
  645.         XK_Left,                NoSymbol,               /* 0x1d */
  646.         XK_Right,               NoSymbol,               /* 0x1e */
  647.         XK_Down,                NoSymbol,               /* 0x1f */
  648.         osfXK_Insert,           NoSymbol,               /* 0x20 -> Insert */
  649.         osfXK_Copy,             NoSymbol,               /* 0x21 -> Copy */
  650.         XK_1,                   XK_exclam,              /* 0x22 */
  651.         NoSymbol,               NoSymbol,               /* 0x23 */
  652.         XK_3,                   XK_numbersign,          /* 0x24 */
  653.         XK_4,                   XK_dollar,              /* 0x25 */
  654.         XK_5,                   XK_percent,             /* 0x26 */
  655.         NoSymbol,               NoSymbol,               /* 0x27 */
  656.         NoSymbol,               NoSymbol,               /* 0x28 */
  657.         NoSymbol,               NoSymbol,               /* 0x29 */
  658.         NoSymbol,               NoSymbol,               /* 0x2a */
  659.         NoSymbol,               NoSymbol,               /* 0x2b */
  660.         NoSymbol,               NoSymbol,               /* 0x2c */
  661.         NoSymbol,               NoSymbol,               /* 0x2d */
  662.         XK_backslash,           XK_bar,                 /* 0x2e */
  663.         XK_9,                   XK_parenleft,           /* 0x2f */
  664.         osfXK_Cut,              NoSymbol,               /* 0x30 -> Cut */
  665.         osfXK_Paste,            NoSymbol,               /* 0x31 -> Paste */
  666.         XK_q,                   XK_Q,                   /* 0x32 */
  667.         XK_w,                   XK_W,                   /* 0x33 */
  668.         XK_e,                   XK_E,                   /* 0x34 */
  669.         XK_r,                   XK_R,                   /* 0x35 */
  670.         XK_t,                   XK_T,                   /* 0x36 */
  671.         XK_y,                   XK_Y,                   /* 0x37 */
  672.         XK_u,                   XK_U,                   /* 0x38 */
  673.         XK_i,                   XK_I,                   /* 0x39 */
  674.         XK_o,                   XK_O,                   /* 0x3a */
  675.         XK_p,                   XK_P,                   /* 0x3b */
  676.         NoSymbol,               NoSymbol,               /* 0x3c */
  677.         NoSymbol,               NoSymbol,               /* 0x3d */
  678.         XK_minus,               XK_underscore,          /* 0x3e */
  679.         XK_equal,               XK_plus,                /* 0x3f */
  680.         XK_2,                   XK_at,                  /* 0x40 */
  681.         XK_6,                   XK_asciicircum,         /* 0x41 */
  682.         XK_a,                   XK_A,                   /* 0x42 */
  683.         XK_s,                   XK_S,                   /* 0x43 */
  684.         XK_d,                   XK_D,                   /* 0x44 */
  685.         XK_f,                   XK_F,                   /* 0x45 */
  686.         XK_g,                   XK_G,                   /* 0x46 */
  687.         XK_h,                   XK_H,                   /* 0x47 */
  688.         XK_j,                   XK_J,                   /* 0x48 */
  689.         XK_k,                   XK_K,                   /* 0x49 */
  690.         XK_l,                   XK_L,                   /* 0x4a */
  691.         NoSymbol,               NoSymbol,               /* 0x4b */
  692.         NoSymbol,               NoSymbol,               /* 0x4c */
  693.         NoSymbol,               NoSymbol,               /* 0x4d */
  694.         XK_bracketleft,         XK_braceleft,           /* 0x4e */
  695.         XK_bracketright,        XK_braceright,          /* 0x4f */
  696.         XK_7,                   XK_ampersand,           /* 0x50 */
  697.         XK_8,                   XK_asterisk,            /* 0x51 */
  698.         XK_z,                   XK_Z,                   /* 0x52 */
  699.         XK_x,                   XK_X,                   /* 0x53 */
  700.         XK_c,                   XK_C,                   /* 0x54 */
  701.         XK_v,                   XK_V,                   /* 0x55 */
  702.         XK_b,                   XK_B,                   /* 0x56 */
  703.         XK_n,                   XK_N,                   /* 0x57 */
  704.         XK_m,                   XK_M,                   /* 0x58 */
  705.         XK_comma,               XK_less,                /* 0x59 */
  706.         XK_period,              XK_greater,             /* 0x5a */
  707.         XK_slash,               XK_question,            /* 0x5b */
  708.         NoSymbol,               XK_underscore,          /* 0x5c */
  709.         XK_semicolon,           XK_colon,               /* 0x5d */
  710.         XK_apostrophe,          XK_quotedbl,            /* 0x5e */
  711.         XK_grave,               XK_asciitilde,          /* 0x5f */
  712.         XK_Home,                NoSymbol,               /* 0x60 -> Home */
  713.         XK_plus,                NoSymbol,               /* 0x61 */
  714.         XK_minus,               NoSymbol,               /* 0x62 */
  715.         XK_7,                   NoSymbol,               /* 0x63 */
  716.         XK_8,                   NoSymbol,               /* 0x64 */
  717.         XK_9,                   NoSymbol,               /* 0x65 */
  718.         XK_4,                   NoSymbol,               /* 0x66 */
  719.         XK_5,                   NoSymbol,               /* 0x67 */
  720.         XK_6,                   NoSymbol,               /* 0x68 */
  721.         XK_1,                   NoSymbol,               /* 0x69 */
  722.         XK_2,                   NoSymbol,               /* 0x6a */
  723.         XK_3,                   NoSymbol,               /* 0x6b */
  724.         XK_0,                   NoSymbol,               /* 0x6c */
  725.         XK_period,              NoSymbol,               /* 0x6d */
  726.         XK_Return,              NoSymbol,               /* 0x6e */
  727.         XK_0,                   XK_parenright,          /* 0x6f */
  728.         NoSymbol,               NoSymbol,               /* 0x70 */
  729.         NoSymbol,               NoSymbol,               /* 0x71 */
  730.         XK_F1,                  NoSymbol,               /* 0x72 */
  731.         XK_F2,                  NoSymbol,               /* 0x73 */
  732.         XK_F3,                  NoSymbol,               /* 0x74 */
  733.         XK_F4,                  NoSymbol,               /* 0x75 */
  734.         XK_F5,                  NoSymbol,               /* 0x76 */
  735.         XK_F6,                  NoSymbol,               /* 0x77 */
  736.         XK_F7,                  NoSymbol,               /* 0x78 */
  737.         XK_F8,                  NoSymbol,               /* 0x79 */
  738.         XK_F9,                  NoSymbol,               /* 0x7a */
  739.         XK_F10,                 NoSymbol,               /* 0x7b */
  740.         XK_asterisk,            XK_asterisk,            /* 0x7c */
  741.         XK_slash,               XK_slash,               /* 0x7d */
  742.         XK_equal,               XK_equal,               /* 0x7e */
  743.         XK_comma,               XK_comma,               /* 0x7f */
  744. /************************** Kana Code Table *****************************/
  745.         XK_Tab,                 NoSymbol,               /* 0x80 */
  746.         NoSymbol,               NoSymbol,               /* 0x81 */
  747.         NoSymbol,               NoSymbol,               /* 0x82 */
  748.         NoSymbol,               NoSymbol,               /* 0x83 */
  749.         NoSymbol,               NoSymbol,               /* 0x84 */
  750.         NoSymbol,               NoSymbol,               /* 0x85 */
  751.         NoSymbol,               NoSymbol,               /* 0x86 */
  752.         XK_Escape,              NoSymbol,               /* 0x87 */
  753.         XK_BackSpace,           NoSymbol,               /* 0x88 */
  754.         XK_Return,              NoSymbol,               /* 0x89 */
  755.         NoSymbol,               NoSymbol,               /* 0x8a */
  756.         XK_space,               NoSymbol,               /* 0x8b */
  757.         XK_Delete,              NoSymbol,               /* 0x8c */
  758.         XK_henkan,              NoSymbol,               /* 0x8d */ /* HENKAN */ 
  759.         XK_kakutei,             NoSymbol,               /* 0x8e */ /* KAKUTEI */
  760.         XK_F11,                 NoSymbol,               /* 0x8f */
  761.         XK_F12,                 NoSymbol,               /* 0x90 */
  762.         XK_F13,                 NoSymbol,               /* 0x91 */
  763.         XK_F14,                 NoSymbol,               /* 0x92 */
  764.         XK_Up,                  NoSymbol,               /* 0x93 */
  765.         XK_Left,                NoSymbol,               /* 0x94 */
  766.         XK_Right,               NoSymbol,               /* 0x95 */
  767.         XK_Down,                NoSymbol,               /* 0x96 */
  768.         NoSymbol,               NoSymbol,               /* 0x97 */
  769.         NoSymbol,               NoSymbol,               /* 0x98 */
  770.         XK_kana_NU,             NoSymbol,               /* 0x99 */
  771.         NoSymbol,               NoSymbol,               /* 0x9a */
  772.         XK_kana_A,              XK_kana_a,              /* 0x9b */
  773.         XK_kana_U,              XK_kana_u,              /* 0x9c */
  774.         XK_kana_E,              XK_kana_e,              /* 0x9d */
  775.         NoSymbol,               NoSymbol,               /* 0x9e */
  776.         NoSymbol,               NoSymbol,               /* 0x9f */
  777.         NoSymbol,               NoSymbol,               /* 0xa0 */
  778.         NoSymbol,               NoSymbol,               /* 0xa1 */
  779.         NoSymbol,               NoSymbol,               /* 0xa2 */
  780.         NoSymbol,               NoSymbol,               /* 0xa3 */
  781.         NoSymbol,               NoSymbol,               /* 0xa4 */
  782.         XK_prolongedsound,      NoSymbol,               /* 0xa5 */
  783.         XK_kana_YO,             XK_kana_yo,             /* 0xa6 */
  784.         NoSymbol,               NoSymbol,               /* 0xa7 */
  785.         NoSymbol,               NoSymbol,               /* 0xa8 */
  786.         XK_kana_TA,             NoSymbol,               /* 0xa9 */
  787.         XK_kana_TE,             NoSymbol,               /* 0xaa */
  788.         XK_kana_I,              XK_kana_i,              /* 0xab */
  789.         XK_kana_SU,             NoSymbol,               /* 0xac */
  790.         XK_kana_KA,             NoSymbol,               /* 0xad */
  791.         XK_kana_N,              NoSymbol,               /* 0xae */
  792.         XK_kana_NA,             NoSymbol,               /* 0xaf */
  793.         XK_kana_NI,             NoSymbol,               /* 0xb0 */
  794.         XK_kana_RA,             NoSymbol,               /* 0xb1 */
  795.         XK_kana_SE,             NoSymbol,               /* 0xb2 */
  796.         NoSymbol,               NoSymbol,               /* 0xb3 */
  797.         NoSymbol,               NoSymbol,               /* 0xb4 */
  798.         XK_kana_HO,             NoSymbol,               /* 0xb5 */
  799.         XK_kana_HE,             NoSymbol,               /* 0xb6 */
  800.         XK_kana_FU,             NoSymbol,               /* 0xb7 */
  801.         XK_kana_O,              XK_kana_o,              /* 0xb8 */
  802.         XK_kana_TI,             NoSymbol,               /* 0xb9 */
  803.         XK_kana_TO,             NoSymbol,               /* 0xba */
  804.         XK_kana_SHI,            NoSymbol,               /* 0xbb */
  805.         XK_kana_HA,             NoSymbol,               /* 0xbc */
  806.         XK_kana_KI,             NoSymbol,               /* 0xbd */
  807.         XK_kana_KU,             NoSymbol,               /* 0xbe */
  808.         XK_kana_MA,             NoSymbol,               /* 0xbf */
  809.         XK_kana_NO,             NoSymbol,               /* 0xc0 */
  810.         XK_kana_RI,             NoSymbol,               /* 0xc1 */
  811.         NoSymbol,               NoSymbol,               /* 0xc2 */
  812.         NoSymbol,               NoSymbol,               /* 0xc3 */
  813.         NoSymbol,               NoSymbol,               /* 0xc4 */
  814.         XK_voicedsound,         XK_kana_openingbracket, /* 0xc5 */
  815.         XK_semivoicedsound,     XK_kana_closingbracket, /* 0xc6 */
  816.         XK_kana_YA,             XK_kana_ya,             /* 0xc7 */
  817.         XK_kana_YU,             XK_kana_yu,             /* 0xc8 */
  818.         XK_kana_TU,             XK_kana_tu,             /* 0xc9 */
  819.         XK_kana_SA,             NoSymbol,               /* 0xca */
  820.         XK_kana_SO,             NoSymbol,               /* 0xcb */
  821.         XK_kana_HI,             NoSymbol,               /* 0xcc */
  822.         XK_kana_KO,             NoSymbol,               /* 0xcd */
  823.         XK_kana_MI,             NoSymbol,               /* 0xce */
  824.         XK_kana_MO,             NoSymbol,               /* 0xcf */
  825.         XK_kana_NE,             XK_kana_comma,          /* 0xd0 */
  826.         XK_kana_RU,             XK_kana_fullstop,       /* 0xd1 */
  827.         XK_kana_ME,             XK_kana_middledot,      /* 0xd2 */
  828.         XK_kana_RO,             NoSymbol,               /* 0xd3 */
  829.         XK_kana_RE,             NoSymbol,               /* 0xd4 */
  830.         XK_kana_KE,             NoSymbol,               /* 0xd5 */
  831.         XK_kana_MU,             NoSymbol,               /* 0xd6 */
  832.         NoSymbol,               NoSymbol,               /* 0xd7 */
  833.         XK_plus,                NoSymbol,               /* 0xd8 */
  834.         XK_minus,               NoSymbol,               /* 0xd9 */
  835.         XK_7,                   NoSymbol,               /* 0xda */
  836.         XK_8,                   NoSymbol,               /* 0xdb */
  837.         XK_9,                   NoSymbol,               /* 0xdc */
  838.         XK_4,                   NoSymbol,               /* 0xdd */
  839.         XK_5,                   NoSymbol,               /* 0xde */
  840.         XK_6,                   NoSymbol,               /* 0xdf */
  841.         XK_1,                   NoSymbol,               /* 0xe0 */
  842.         XK_2,                   NoSymbol,               /* 0xe1 */
  843.         XK_3,                   NoSymbol,               /* 0xe2 */
  844.         XK_0,                   NoSymbol,               /* 0xe3 */
  845.         XK_period,              NoSymbol,               /* 0xe4 */
  846.         XK_Return,              NoSymbol,               /* 0xe5 */
  847.         XK_kana_WA,             XK_kana_WO,             /* 0xe6 */
  848.         NoSymbol,               NoSymbol,               /* 0xe7 */
  849.         NoSymbol,               NoSymbol,               /* 0xe8 */
  850.         XK_F1,                  NoSymbol,               /* 0xe9 */
  851.         XK_F2,                  NoSymbol,               /* 0xea */
  852.         XK_F3,                  NoSymbol,               /* 0xeb */
  853.         XK_F4,                  NoSymbol,               /* 0xec */
  854.         XK_F5,                  NoSymbol,               /* 0xed */
  855.         XK_F6,                  NoSymbol,               /* 0xee */
  856.         XK_F7,                  NoSymbol,               /* 0xef */
  857.         XK_F8,                  NoSymbol,               /* 0xf0 */
  858.         XK_F9,                  NoSymbol,               /* 0xf1 */
  859.         XK_F10,                 NoSymbol,               /* 0xf2 */
  860.         XK_asterisk,            XK_asterisk,            /* 0xf3 */
  861.         XK_slash,               XK_slash,               /* 0xf4 */
  862.         XK_equal,               XK_equal,               /* 0xf5 */
  863.         XK_comma,               XK_comma,               /* 0xf6  -> maxKeyCode */
  864. };
  865.  
  866. static KeySym omronAsciiKeyMap[] = {
  867. /*      NormalShift             ShiftedShift            */
  868.         XK_Tab,                 NoSymbol,               /* 0x9 -> min KeyCode */
  869.         XK_Control_L,           NoSymbol,               /* 0xa */
  870.         NoSymbol,               NoSymbol,               /* 0xb -> kana Key */
  871.         XK_Shift_R,             NoSymbol,               /* 0xc */
  872.         XK_Shift_L,             NoSymbol,               /* 0xd */
  873.         XK_Caps_Lock,           NoSymbol,               /* 0xe */
  874.         XK_Meta_L,              NoSymbol,               /* 0xf -> zenmen Key */
  875.         XK_Escape,              NoSymbol,               /* 0x10 */
  876.         XK_BackSpace,           NoSymbol,               /* 0x11 */
  877.         XK_Return,              NoSymbol,               /* 0x12 */
  878.         NoSymbol,               NoSymbol,               /* 0x13 -> Nothing */
  879.         XK_space,               NoSymbol,               /* 0x14 */
  880.         XK_Delete,              NoSymbol,               /* 0x15 */
  881.         NoSymbol,               NoSymbol,               /* 0x16 -> Henkan Key */
  882.         NoSymbol,               NoSymbol,               /* 0x17 -> Kakutei Key */
  883.         XK_F11,                 NoSymbol,               /* 0x18 */
  884.         XK_F12,                 NoSymbol,               /* 0x19 */
  885.         XK_F13,                 NoSymbol,               /* 0x1a */
  886.         XK_F14,                 NoSymbol,               /* 0x1b */
  887.         XK_Up,                  NoSymbol,               /* 0x1c */
  888.         XK_Left,                NoSymbol,               /* 0x1d */
  889.         XK_Right,               NoSymbol,               /* 0x1e */
  890.         XK_Down,                NoSymbol,               /* 0x1f */
  891.         NoSymbol,               NoSymbol,               /* 0x20 */
  892.         NoSymbol,               NoSymbol,               /* 0x21 */
  893.         XK_1,                   XK_exclam,              /* 0x22 */
  894.         NoSymbol,               NoSymbol,               /* 0x23 */
  895.         XK_3,                   XK_numbersign,          /* 0x24 */
  896.         XK_4,                   XK_dollar,              /* 0x25 */
  897.         XK_5,                   XK_percent,             /* 0x26 */
  898.         NoSymbol,               NoSymbol,               /* 0x27 */
  899.         NoSymbol,               NoSymbol,               /* 0x28 */
  900.         NoSymbol,               NoSymbol,               /* 0x29 */
  901.         NoSymbol,               NoSymbol,               /* 0x2a */
  902.         NoSymbol,               NoSymbol,               /* 0x2b */
  903.         NoSymbol,               NoSymbol,               /* 0x2c */
  904.         NoSymbol,               NoSymbol,               /* 0x2d */
  905.         XK_backslash,           XK_bar,                 /* 0x2e */
  906.         XK_9,                   XK_parenleft,           /* 0x2f */
  907.         NoSymbol,               NoSymbol,               /* 0x30 */
  908.         NoSymbol,               NoSymbol,               /* 0x31 */
  909.         XK_q,                   XK_Q,                   /* 0x32 */
  910.         XK_w,                   XK_W,                   /* 0x33 */
  911.         XK_e,                   XK_E,                   /* 0x34 */
  912.         XK_r,                   XK_R,                   /* 0x35 */
  913.         XK_t,                   XK_T,                   /* 0x36 */
  914.         XK_y,                   XK_Y,                   /* 0x37 */
  915.         XK_u,                   XK_U,                   /* 0x38 */
  916.         XK_i,                   XK_I,                   /* 0x39 */
  917.         XK_o,                   XK_O,                   /* 0x3a */
  918.         XK_p,                   XK_P,                   /* 0x3b */
  919.         NoSymbol,               NoSymbol,               /* 0x3c */
  920.         NoSymbol,               NoSymbol,               /* 0x3d */
  921.         XK_minus,               XK_underscore,          /* 0x3e */
  922.         XK_equal,               XK_plus,                /* 0x3f */
  923.         XK_2,                   XK_at,                  /* 0x40 */
  924.         XK_6,                   XK_asciicircum,         /* 0x41 */
  925.         XK_a,                   XK_A,                   /* 0x42 */
  926.         XK_s,                   XK_S,                   /* 0x43 */
  927.         XK_d,                   XK_D,                   /* 0x44 */
  928.         XK_f,                   XK_F,                   /* 0x45 */
  929.         XK_g,                   XK_G,                   /* 0x46 */
  930.         XK_h,                   XK_H,                   /* 0x47 */
  931.         XK_j,                   XK_J,                   /* 0x48 */
  932.         XK_k,                   XK_K,                   /* 0x49 */
  933.         XK_l,                   XK_L,                   /* 0x4a */
  934.         NoSymbol,               NoSymbol,               /* 0x4b */
  935.         NoSymbol,               NoSymbol,               /* 0x4c */
  936.         NoSymbol,               NoSymbol,               /* 0x4d */
  937.         XK_bracketleft,         XK_braceleft,           /* 0x4e */
  938.         XK_bracketright,        XK_braceright,          /* 0x4f */
  939.         XK_7,                   XK_ampersand,           /* 0x50 */
  940.         XK_8,                   XK_asterisk,            /* 0x51 */
  941.         XK_z,                   XK_Z,                   /* 0x52 */
  942.         XK_x,                   XK_X,                   /* 0x53 */
  943.         XK_c,                   XK_C,                   /* 0x54 */
  944.         XK_v,                   XK_V,                   /* 0x55 */
  945.         XK_b,                   XK_B,                   /* 0x56 */
  946.         XK_n,                   XK_N,                   /* 0x57 */
  947.         XK_m,                   XK_M,                   /* 0x58 */
  948.         XK_comma,               XK_less,                /* 0x59 */
  949.         XK_period,              XK_greater,             /* 0x5a */
  950.         XK_slash,               XK_question,            /* 0x5b */
  951.         NoSymbol,               NoSymbol,               /* 0x5c XXX */
  952.         XK_semicolon,           XK_colon,               /* 0x5d */
  953.         XK_apostrophe,          XK_quotedbl,            /* 0x5e */
  954.         XK_grave,               XK_asciitilde,          /* 0x5f */
  955.         XK_Home,                NoSymbol,               /* 0x60 -> Home */
  956.         NoSymbol,               NoSymbol,               /* 0x61 */
  957.         NoSymbol,               NoSymbol,               /* 0x62 */
  958.         NoSymbol,               NoSymbol,               /* 0x63 */
  959.         NoSymbol,               NoSymbol,               /* 0x64 */
  960.         NoSymbol,               NoSymbol,               /* 0x65 */
  961.         NoSymbol,               NoSymbol,               /* 0x66 */
  962.         NoSymbol,               NoSymbol,               /* 0x67 */
  963.         NoSymbol,               NoSymbol,               /* 0x68 */
  964.         NoSymbol,               NoSymbol,               /* 0x69 */
  965.         NoSymbol,               NoSymbol,               /* 0x6a */
  966.         NoSymbol,               NoSymbol,               /* 0x6b */
  967.         NoSymbol,               NoSymbol,               /* 0x6c */
  968.         NoSymbol,               NoSymbol,               /* 0x6d */
  969.         NoSymbol,               NoSymbol,               /* 0x6e */
  970.         XK_0,                   XK_parenright,          /* 0x6f */
  971.         NoSymbol,               NoSymbol,               /* 0x70 */
  972.         NoSymbol,               NoSymbol,               /* 0x71 */
  973.         XK_F1,                  NoSymbol,               /* 0x72 */
  974.         XK_F2,                  NoSymbol,               /* 0x73 */
  975.         XK_F3,                  NoSymbol,               /* 0x74 */
  976.         XK_F4,                  NoSymbol,               /* 0x75 */
  977.         XK_F5,                  NoSymbol,               /* 0x76 */
  978.         XK_F6,                  NoSymbol,               /* 0x77 */
  979.         XK_F7,                  NoSymbol,               /* 0x78 */
  980.         XK_F8,                  NoSymbol,               /* 0x79 */
  981.         XK_F9,                  NoSymbol,               /* 0x7a */
  982.         XK_F10,                 NoSymbol,               /* 0x7b */
  983. };
  984. #endif /* luna2 */
  985. #else
  986. static KeySym omronDefKeyMap[] = {
  987.         XK_Tab,         NoSymbol,     XK_Tab,         NoSymbol,     /* 0x9 -> min KeyCode */
  988.         XK_Control_L,   NoSymbol,     NoSymbol,       NoSymbol,     /* 0xa */
  989.         XK_Mode_switch, NoSymbol,     NoSymbol,       NoSymbol,     /* 0xb -> kana Key */
  990.         XK_Shift_R,     NoSymbol,     NoSymbol,       NoSymbol,     /* 0xc */
  991.         XK_Shift_L,     NoSymbol,     NoSymbol,       NoSymbol,     /* 0xd */
  992.         XK_Caps_Lock,   NoSymbol,     NoSymbol,       NoSymbol,     /* 0xe */
  993.         XK_Meta_L,      NoSymbol,     NoSymbol,       NoSymbol,     /* 0xf -> zenmen Key */
  994.         XK_Escape,      NoSymbol,     XK_Escape,      NoSymbol,     /* 0x10 */
  995.         XK_BackSpace,   NoSymbol,     XK_BackSpace,   NoSymbol,     /* 0x11 */
  996.         XK_Return,      NoSymbol,     XK_Return,      NoSymbol,     /* 0x12 */
  997.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x13 -> Nothing */
  998.         XK_space,       NoSymbol,     XK_space,       NoSymbol,     /* 0x14 */
  999.         XK_Delete,      NoSymbol,     XK_Delete,      NoSymbol,     /* 0x15 */
  1000.         XK_henkan,      NoSymbol,     XK_henkan,      NoSymbol,     /* 0x16 -> Henkan Key */
  1001.         XK_kakutei,     NoSymbol,     XK_kakutei,     NoSymbol,     /* 0x17 -> Kakutei Key */
  1002.         XK_F11,         NoSymbol,     XK_F11,         NoSymbol,     /* 0x18 */
  1003.         XK_F12,         NoSymbol,     XK_F12,         NoSymbol,     /* 0x19 */
  1004.         XK_F13,         NoSymbol,     XK_F13,         NoSymbol,     /* 0x1a */
  1005.         XK_F14,         NoSymbol,     XK_F14,         NoSymbol,     /* 0x1b */
  1006.         XK_Up,          NoSymbol,     XK_Up,          NoSymbol,     /* 0x1c */
  1007.         XK_Left,        NoSymbol,     XK_Left,        NoSymbol,     /* 0x1d */
  1008.         XK_Right,       NoSymbol,     XK_Right,       NoSymbol,     /* 0x1e */
  1009.         XK_Down,        NoSymbol,     XK_Down,        NoSymbol,     /* 0x1f */
  1010.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x20 -> Nothing */
  1011.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x21 -> Nothing */
  1012.         XK_1,           XK_exclam,    XK_kana_NU,     NoSymbol,     /* 0x22 */
  1013.         XK_2,           XK_quotedbl,  XK_kana_HU,     NoSymbol,     /* 0x23 */
  1014.         XK_3,           XK_numbersign,XK_kana_A,      XK_kana_a,    /* 0x24 */
  1015.         XK_4,           XK_dollar,    XK_kana_U,      XK_kana_u,    /* 0x25 */
  1016.         XK_5,           XK_percent,   XK_kana_E,      XK_kana_e,    /* 0x26 */
  1017.         XK_6,           XK_ampersand, XK_kana_O,      XK_kana_o,    /* 0x27 */
  1018.         XK_7,           XK_quoteright,XK_kana_YA,     XK_kana_ya,   /* 0x28 */
  1019.         XK_8,           XK_parenleft, XK_kana_YU,     XK_kana_yu,   /* 0x29 */
  1020.         XK_9,           XK_parenright,XK_kana_YO,     XK_kana_yo,   /* 0x2a */
  1021.         XK_0,           NoSymbol,     XK_kana_WA,     XK_kana_WO,   /* 0x2b */
  1022.         XK_minus,       XK_equal,     XK_kana_HO,     NoSymbol,     /* 0x2c */
  1023.         XK_asciicircum, XK_asciitilde,XK_kana_HE,     NoSymbol,     /* 0x2d */
  1024.         XK_backslash,   XK_bar,       XK_prolongedsound, NoSymbol,  /* 0x2e */
  1025.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x2f -> Nothing */
  1026.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x30 -> Nothing */
  1027.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x31 -> Nothing */
  1028.         XK_q,           XK_Q,         XK_kana_TA,     NoSymbol,     /* 0x32 */
  1029.         XK_w,           XK_W,         XK_kana_TE,     NoSymbol,     /* 0x33 */
  1030.         XK_e,           XK_E,         XK_kana_I,      XK_kana_i,    /* 0x34 */
  1031.         XK_r,           XK_R,         XK_kana_SU,     NoSymbol,     /* 0x35 */
  1032.         XK_t,           XK_T,         XK_kana_KA,     NoSymbol,     /* 0x36 */
  1033.         XK_y,           XK_Y,         XK_kana_N,      NoSymbol,     /* 0x37 */
  1034.         XK_u,           XK_U,         XK_kana_NA,     NoSymbol,     /* 0x38 */
  1035.         XK_i,           XK_I,         XK_kana_NI,     NoSymbol,     /* 0x39 */
  1036.         XK_o,           XK_O,         XK_kana_RA,     NoSymbol,     /* 0x3a */
  1037.         XK_p,           XK_P,         XK_kana_SE,     NoSymbol,     /* 0x3b */
  1038.         XK_at,          XK_quoteleft, XK_voicedsound, NoSymbol,     /* 0x3c */
  1039.         XK_bracketleft, XK_braceleft, XK_semivoicedsound, XK_kana_openingbracket, /* 0x3d */
  1040.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x3e -> Nothing */
  1041.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x3f -> Nothing */
  1042.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x40 -> Nothing */
  1043.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x41 -> Nothing */
  1044.         XK_a,           XK_A,         XK_kana_TI,     NoSymbol,     /* 0x42 */
  1045.         XK_s,           XK_S,         XK_kana_TO,     NoSymbol,     /* 0x43 */
  1046.         XK_d,           XK_D,         XK_kana_SHI,    NoSymbol,     /* 0x44 */
  1047.         XK_f,           XK_F,         XK_kana_HA,     NoSymbol,     /* 0x45 */
  1048.         XK_g,           XK_G,         XK_kana_KI,     NoSymbol,     /* 0x46 */
  1049.         XK_h,           XK_H,         XK_kana_KU,     NoSymbol,     /* 0x47 */
  1050.         XK_j,           XK_J,         XK_kana_MA,     NoSymbol,     /* 0x48 */
  1051.         XK_k,           XK_K,         XK_kana_NO,     NoSymbol,     /* 0x49 */
  1052.         XK_l,           XK_L,         XK_kana_RI,     NoSymbol,     /* 0x4a */
  1053.         XK_semicolon,   XK_plus,      XK_kana_RE,     NoSymbol,     /* 0x4b */
  1054.         XK_colon,       XK_asterisk,  XK_kana_KE,     NoSymbol,     /* 0x4c */
  1055.         XK_bracketright,XK_braceright,XK_kana_MU,     XK_kana_closingbracket,  /* 0x4d */
  1056.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x4e -> Nothing */
  1057.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x4f -> Nothing */
  1058.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x50 -> Nothing */
  1059.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x51 -> Nothing */
  1060.         XK_z,           XK_Z,         XK_kana_TU,     XK_kana_tu,   /* 0x52 */
  1061.         XK_x,           XK_X,         XK_kana_SA,     NoSymbol,     /* 0x53 */
  1062.         XK_c,           XK_C,         XK_kana_SO,     NoSymbol,     /* 0x54 */
  1063.         XK_v,           XK_V,         XK_kana_HI,     NoSymbol,     /* 0x55 */
  1064.         XK_b,           XK_B,         XK_kana_KO,     NoSymbol,     /* 0x56 */
  1065.         XK_n,           XK_N,         XK_kana_MI,     NoSymbol,     /* 0x57 */
  1066.         XK_m,           XK_M,         XK_kana_MO,     NoSymbol,     /* 0x58 */
  1067.         XK_comma,       XK_less,      XK_kana_NE,     XK_kana_comma,     /* 0x59 */
  1068.         XK_period,      XK_greater,   XK_kana_RU,     XK_kana_fullstop,  /* 0x5a */
  1069.         XK_slash,       XK_question,  XK_kana_ME,     XK_kana_middledot, /* 0x5b */
  1070.         NoSymbol,       XK_underscore,XK_kana_RO,     NoSymbol,     /* 0x5c */
  1071.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x5d -> Nothing */
  1072.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x5e -> Nothing */
  1073.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x5f -> Nothing */
  1074.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x60 -> Nothing */
  1075.         XK_plus,        NoSymbol,     XK_plus,        NoSymbol,     /* 0x61 */
  1076.         XK_minus,       NoSymbol,     XK_minus,       NoSymbol,     /* 0x62 */
  1077.         XK_7,           NoSymbol,     XK_7,           NoSymbol,     /* 0x63 */
  1078.         XK_8,           NoSymbol,     XK_8,           NoSymbol,     /* 0x64 */
  1079.         XK_9,           NoSymbol,     XK_9,           NoSymbol,     /* 0x65 */
  1080.         XK_4,           NoSymbol,     XK_4,           NoSymbol,     /* 0x66 */
  1081.         XK_5,           NoSymbol,     XK_5,           NoSymbol,     /* 0x67 */
  1082.         XK_6,           NoSymbol,     XK_6,           NoSymbol,     /* 0x68 */
  1083.         XK_1,           NoSymbol,     XK_1,           NoSymbol,     /* 0x69 */
  1084.         XK_2,           NoSymbol,     XK_2,           NoSymbol,     /* 0x6a */
  1085.         XK_3,           NoSymbol,     XK_3,           NoSymbol,     /* 0x6b */
  1086.         XK_0,           NoSymbol,     XK_0,           NoSymbol,     /* 0x6c */
  1087.         XK_period,      NoSymbol,     XK_period,      NoSymbol,     /* 0x6d */
  1088.         XK_Return,      NoSymbol,     XK_Return,      NoSymbol,     /* 0x6e */
  1089.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x6f */
  1090.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x70 */
  1091.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x71 */
  1092.         XK_F1,          NoSymbol,     XK_F1,          NoSymbol,     /* 0x72 */
  1093.         XK_F2,          NoSymbol,     XK_F2,          NoSymbol,     /* 0x73 */
  1094.         XK_F3,          NoSymbol,     XK_F3,          NoSymbol,     /* 0x74 */
  1095.         XK_F4,          NoSymbol,     XK_F4,          NoSymbol,     /* 0x75 */
  1096.         XK_F5,          NoSymbol,     XK_F5,          NoSymbol,     /* 0x76 */
  1097.         XK_F6,          NoSymbol,     XK_F6,          NoSymbol,     /* 0x77 */
  1098.         XK_F7,          NoSymbol,     XK_F7,          NoSymbol,     /* 0x78 */
  1099.         XK_F8,          NoSymbol,     XK_F8,          NoSymbol,     /* 0x79 */
  1100.         XK_F9,          NoSymbol,     XK_F9,          NoSymbol,     /* 0x7a */
  1101.         XK_F10,         NoSymbol,     XK_F10,         NoSymbol,     /* 0x7b */
  1102.         XK_asterisk,    XK_asterisk,  XK_asterisk,    XK_asterisk,  /* 0x7c */
  1103.         XK_slash,       XK_slash,     XK_slash,       XK_slash,     /* 0x7d */
  1104.         XK_equal,       XK_equal,     XK_equal,       XK_equal,     /* 0x7e */
  1105.         XK_comma,       XK_comma,     XK_comma,       XK_comma,     /* 0x7f */
  1106. };
  1107.  
  1108. #ifdef luna2 
  1109. static KeySym omronJisjisKeyMap[] = {
  1110. /*      NormalShift     ShiftedShift                */
  1111.         XK_Tab,         NoSymbol,     XK_Tab,         NoSymbol,     /* 0x9 -> min KeyCode */
  1112.         XK_Control_L,   NoSymbol,     NoSymbol,       NoSymbol,     /* 0xa */
  1113.         XK_Mode_switch, NoSymbol,     NoSymbol,       NoSymbol,     /* 0xb -> kana Key */
  1114.         XK_Shift_R,     NoSymbol,     NoSymbol,       NoSymbol,     /* 0xc */
  1115.         XK_Shift_L,     NoSymbol,     NoSymbol,       NoSymbol,     /* 0xd */
  1116.         XK_Caps_Lock,   NoSymbol,     NoSymbol,       NoSymbol,     /* 0xe */
  1117.         XK_Meta_L,      NoSymbol,     NoSymbol,       NoSymbol,     /* 0xf -> zenmen Key */
  1118.         XK_Escape,      NoSymbol,     XK_Escape,      NoSymbol,     /* 0x10 */
  1119.         XK_BackSpace,   NoSymbol,     XK_BackSpace,   NoSymbol,     /* 0x11 */
  1120.         XK_Return,      NoSymbol,     XK_Return,      NoSymbol,     /* 0x12 */
  1121.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x13 -> Nothing */
  1122.         XK_space,       NoSymbol,     XK_space,       NoSymbol,     /* 0x14 */
  1123.         XK_Delete,      NoSymbol,     XK_Delete,      NoSymbol,     /* 0x15 */
  1124.         XK_henkan,      NoSymbol,     XK_henkan,      NoSymbol,     /* 0x16 -> Henkan Key */
  1125.         XK_kakutei,     NoSymbol,     XK_kakutei,     NoSymbol,     /* 0x17 -> Kakutei Key */
  1126.         XK_F11,         NoSymbol,     XK_F11,         NoSymbol,     /* 0x18 */
  1127.         XK_F12,         NoSymbol,     XK_F12,         NoSymbol,     /* 0x19 */
  1128.         XK_F13,         NoSymbol,     XK_F13,         NoSymbol,     /* 0x1a */
  1129.         XK_F14,         NoSymbol,     XK_F14,         NoSymbol,     /* 0x1b */
  1130.         XK_Up,          NoSymbol,     XK_Up,          NoSymbol,     /* 0x1c */
  1131.         XK_Left,        NoSymbol,     XK_Left,        NoSymbol,     /* 0x1d */
  1132.         XK_Right,       NoSymbol,     XK_Right,       NoSymbol,     /* 0x1e */
  1133.         XK_Down,        NoSymbol,     XK_Down,        NoSymbol,     /* 0x1f */
  1134.         osfXK_Insert,   NoSymbol,     NoSymbol,       NoSymbol,     /* 0x20 -> Insert */
  1135.         osfXK_Copy,     NoSymbol,     NoSymbol,       NoSymbol,     /* 0x21 -> Copy */
  1136.         XK_1,           XK_exclam,    XK_kana_NU,     NoSymbol,     /* 0x22 */
  1137.         XK_2,           XK_quotedbl,  XK_kana_HU,     NoSymbol,     /* 0x23 */
  1138.         XK_3,           XK_numbersign,XK_kana_A,      XK_kana_a,    /* 0x24 */
  1139.         XK_4,           XK_dollar,    XK_kana_U,      XK_kana_u,    /* 0x25 */
  1140.         XK_5,           XK_percent,   XK_kana_E,      XK_kana_e,    /* 0x26 */
  1141.         XK_6,           XK_ampersand, XK_kana_O,      XK_kana_o,    /* 0x27 */
  1142.         XK_7,           XK_quoteright,XK_kana_YA,     XK_kana_ya,   /* 0x28 */
  1143.         XK_8,           XK_parenleft, XK_kana_YU,     XK_kana_yu,   /* 0x29 */
  1144.         XK_9,           XK_parenright,XK_kana_YO,     XK_kana_yo,   /* 0x2a */
  1145.         XK_0,           NoSymbol,     XK_kana_WA,     XK_kana_WO,   /* 0x2b */
  1146.         XK_minus,       XK_equal,     XK_kana_HO,     NoSymbol,     /* 0x2c */
  1147.         XK_asciicircum, XK_asciitilde,XK_kana_HE,     NoSymbol,     /* 0x2d */
  1148.         XK_backslash,   XK_bar,       XK_prolongedsound, NoSymbol,  /* 0x2e */
  1149.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x2f -> Nothing */
  1150.         osfXK_Cut,      NoSymbol,     NoSymbol,       NoSymbol,     /* 0x30 -> Cut */
  1151.         osfXK_Paste,    NoSymbol,     NoSymbol,       NoSymbol,     /* 0x31 -> Paste */
  1152.         XK_q,           XK_Q,         XK_kana_TA,     NoSymbol,     /* 0x32 */
  1153.         XK_w,           XK_W,         XK_kana_TE,     NoSymbol,     /* 0x33 */
  1154.         XK_e,           XK_E,         XK_kana_I,      XK_kana_i,    /* 0x34 */
  1155.         XK_r,           XK_R,         XK_kana_SU,     NoSymbol,     /* 0x35 */
  1156.         XK_t,           XK_T,         XK_kana_KA,     NoSymbol,     /* 0x36 */
  1157.         XK_y,           XK_Y,         XK_kana_N,      NoSymbol,     /* 0x37 */
  1158.         XK_u,           XK_U,         XK_kana_NA,     NoSymbol,     /* 0x38 */
  1159.         XK_i,           XK_I,         XK_kana_NI,     NoSymbol,     /* 0x39 */
  1160.         XK_o,           XK_O,         XK_kana_RA,     NoSymbol,     /* 0x3a */
  1161.         XK_p,           XK_P,         XK_kana_SE,     NoSymbol,     /* 0x3b */
  1162.         XK_at,          XK_quoteleft, XK_voicedsound, NoSymbol,     /* 0x3c */
  1163.         XK_bracketleft, XK_braceleft, XK_semivoicedsound, XK_kana_openingbracket, /* 0x3d */
  1164.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x3e -> Nothing */
  1165.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x3f -> Nothing */
  1166.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x40 -> Nothing */
  1167.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x41 -> Nothing */
  1168.         XK_a,           XK_A,         XK_kana_TI,     NoSymbol,     /* 0x42 */
  1169.         XK_s,           XK_S,         XK_kana_TO,     NoSymbol,     /* 0x43 */
  1170.         XK_d,           XK_D,         XK_kana_SHI,    NoSymbol,     /* 0x44 */
  1171.         XK_f,           XK_F,         XK_kana_HA,     NoSymbol,     /* 0x45 */
  1172.         XK_g,           XK_G,         XK_kana_KI,     NoSymbol,     /* 0x46 */
  1173.         XK_h,           XK_H,         XK_kana_KU,     NoSymbol,     /* 0x47 */
  1174.         XK_j,           XK_J,         XK_kana_MA,     NoSymbol,     /* 0x48 */
  1175.         XK_k,           XK_K,         XK_kana_NO,     NoSymbol,     /* 0x49 */
  1176.         XK_l,           XK_L,         XK_kana_RI,     NoSymbol,     /* 0x4a */
  1177.         XK_semicolon,   XK_plus,      XK_kana_RE,     NoSymbol,     /* 0x4b */
  1178.         XK_colon,       XK_asterisk,  XK_kana_KE,     NoSymbol,     /* 0x4c */
  1179.         XK_bracketright,XK_braceright,XK_kana_MU, XK_kana_closingbracket, /* 0x4d */
  1180.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x4e -> Nothing */
  1181.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x4f -> Nothing */
  1182.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x50 -> Nothing */
  1183.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x51 -> Nothing */
  1184.         XK_z,           XK_Z,         XK_kana_TU,     XK_kana_tu,   /* 0x52 */
  1185.         XK_x,           XK_X,         XK_kana_SA,     NoSymbol,     /* 0x53 */
  1186.         XK_c,           XK_C,         XK_kana_SO,     NoSymbol,     /* 0x54 */
  1187.         XK_v,           XK_V,         XK_kana_HI,     NoSymbol,     /* 0x55 */
  1188.         XK_b,           XK_B,         XK_kana_KO,     NoSymbol,     /* 0x56 */
  1189.         XK_n,           XK_N,         XK_kana_MI,     NoSymbol,     /* 0x57 */
  1190.         XK_m,           XK_M,         XK_kana_MO,     NoSymbol,     /* 0x58 */
  1191.         XK_comma,       XK_less,      XK_kana_NE,     XK_kana_comma,     /* 0x59 */
  1192.         XK_period,      XK_greater,   XK_kana_RU,     XK_kana_fullstop,  /* 0x5a */
  1193.         XK_slash,       XK_question,  XK_kana_ME,     XK_kana_middledot, /* 0x5b */
  1194.         NoSymbol,       XK_underscore,XK_kana_RO,     NoSymbol,     /* 0x5c */
  1195.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x5d -> Nothing */
  1196.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x5e -> Nothing */
  1197.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x5f -> Nothing */
  1198.         XK_Home,        NoSymbol,     NoSymbol,       NoSymbol,     /* 0x60 -> Home */
  1199.         XK_plus,        NoSymbol,     XK_plus,        NoSymbol,     /* 0x61 */
  1200.         XK_minus,       NoSymbol,     XK_minus,       NoSymbol,     /* 0x62 */
  1201.         XK_7,           NoSymbol,     XK_7,           NoSymbol,     /* 0x63 */
  1202.         XK_8,           NoSymbol,     XK_8,           NoSymbol,     /* 0x64 */
  1203.         XK_9,           NoSymbol,     XK_9,           NoSymbol,     /* 0x65 */
  1204.         XK_4,           NoSymbol,     XK_4,           NoSymbol,     /* 0x66 */
  1205.         XK_5,           NoSymbol,     XK_5,           NoSymbol,     /* 0x67 */
  1206.         XK_6,           NoSymbol,     XK_6,           NoSymbol,     /* 0x68 */
  1207.         XK_1,           NoSymbol,     XK_1,           NoSymbol,     /* 0x69 */
  1208.         XK_2,           NoSymbol,     XK_2,           NoSymbol,     /* 0x6a */
  1209.         XK_3,           NoSymbol,     XK_3,           NoSymbol,     /* 0x6b */
  1210.         XK_0,           NoSymbol,     XK_0,           NoSymbol,     /* 0x6c */
  1211.         XK_period,      NoSymbol,     XK_period,      NoSymbol,     /* 0x6d */
  1212.         XK_Return,      NoSymbol,     XK_Return,      NoSymbol,     /* 0x6e */
  1213.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x6f */
  1214.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x70 */
  1215.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x71 */
  1216.         XK_F1,          NoSymbol,     XK_F1,          NoSymbol,     /* 0x72 */
  1217.         XK_F2,          NoSymbol,     XK_F2,          NoSymbol,     /* 0x73 */
  1218.         XK_F3,          NoSymbol,     XK_F3,          NoSymbol,     /* 0x74 */
  1219.         XK_F4,          NoSymbol,     XK_F4,          NoSymbol,     /* 0x75 */
  1220.         XK_F5,          NoSymbol,     XK_F5,          NoSymbol,     /* 0x76 */
  1221.         XK_F6,          NoSymbol,     XK_F6,          NoSymbol,     /* 0x77 */
  1222.         XK_F7,          NoSymbol,     XK_F7,          NoSymbol,     /* 0x78 */
  1223.         XK_F8,          NoSymbol,     XK_F8,          NoSymbol,     /* 0x79 */
  1224.         XK_F9,          NoSymbol,     XK_F9,          NoSymbol,     /* 0x7a */
  1225.         XK_F10,         NoSymbol,     XK_F10,         NoSymbol,     /* 0x7b */
  1226.         XK_asterisk,    XK_asterisk,  XK_asterisk,    XK_asterisk,  /* 0x7c */ /* KANA new */
  1227.         XK_slash,       XK_slash,     XK_slash,       XK_slash,     /* 0x7d */
  1228.         XK_equal,       XK_equal,     XK_equal,       XK_equal,     /* 0x7e */
  1229.         XK_comma,       XK_comma,     XK_comma,       XK_comma,     /* 0x7f */
  1230. };
  1231.  
  1232. static KeySym omronAsciijisKeyMap[] = {
  1233. /*      NormalShift     ShiftedShift                */
  1234.         XK_Tab,         NoSymbol,     XK_Tab,         NoSymbol,     /* 0x9 -> min KeyCode */
  1235.         XK_Control_L,   NoSymbol,     NoSymbol,       NoSymbol,     /* 0xa */
  1236.         XK_Mode_switch, NoSymbol,     NoSymbol,       NoSymbol,     /* 0xb -> kana Key */
  1237.         XK_Shift_R,     NoSymbol,     NoSymbol,       NoSymbol,     /* 0xc */
  1238.         XK_Shift_L,     NoSymbol,     NoSymbol,       NoSymbol,     /* 0xd */
  1239.         XK_Caps_Lock,   NoSymbol,     NoSymbol,       NoSymbol,     /* 0xe */
  1240.         XK_Meta_L,      NoSymbol,     NoSymbol,       NoSymbol,     /* 0xf -> zenmen Key */
  1241.         XK_Escape,      NoSymbol,     XK_Escape,      NoSymbol,     /* 0x10 */
  1242.         XK_BackSpace,   NoSymbol,     XK_BackSpace,   NoSymbol,     /* 0x11 */
  1243.         XK_Return,      NoSymbol,     XK_Return,      NoSymbol,     /* 0x12 */
  1244.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x13 -> Nothing */
  1245.         XK_space,       NoSymbol,     XK_space,       NoSymbol,     /* 0x14 */
  1246.         XK_Delete,      NoSymbol,     XK_Delete,      NoSymbol,     /* 0x15 */
  1247.         XK_henkan,      NoSymbol,     XK_henkan,      NoSymbol,     /* 0x16 -> Henkan Key */
  1248.         XK_kakutei,     NoSymbol,     XK_kakutei,     NoSymbol,     /* 0x17 -> Kakutei Key */
  1249.         XK_F11,         NoSymbol,     XK_F11,         NoSymbol,     /* 0x18 */
  1250.         XK_F12,         NoSymbol,     XK_F12,         NoSymbol,     /* 0x19 */
  1251.         XK_F13,         NoSymbol,     XK_F13,         NoSymbol,     /* 0x1a */
  1252.         XK_F14,         NoSymbol,     XK_F14,         NoSymbol,     /* 0x1b */
  1253.         XK_Up,          NoSymbol,     XK_Up,          NoSymbol,     /* 0x1c */
  1254.         XK_Left,        NoSymbol,     XK_Left,        NoSymbol,     /* 0x1d */
  1255.         XK_Right,       NoSymbol,     XK_Right,       NoSymbol,     /* 0x1e */
  1256.         XK_Down,        NoSymbol,     XK_Down,        NoSymbol,     /* 0x1f */
  1257.         osfXK_Insert,   NoSymbol,     NoSymbol,       NoSymbol,     /* 0x20 -> Insert */
  1258.         osfXK_Copy,     NoSymbol,     NoSymbol,       NoSymbol,     /* 0x21 -> Copy */
  1259.         XK_1,           XK_exclam,    XK_kana_NU,     NoSymbol,     /* 0x22 */
  1260.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x23 */
  1261.         XK_3,           XK_numbersign,XK_kana_A,      XK_kana_a,    /* 0x24 */
  1262.         XK_4,           XK_dollar,    XK_kana_U,      XK_kana_u,    /* 0x25 */
  1263.         XK_5,           XK_percent,   XK_kana_E,      XK_kana_e,    /* 0x26 */
  1264.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x27 */
  1265.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x28 */
  1266.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x29 */
  1267.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x2a */
  1268.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x2b */
  1269.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x2c */
  1270.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x2d */
  1271.         XK_backslash,   XK_bar,       XK_prolongedsound, NoSymbol,  /* 0x2e */
  1272.         XK_9,           XK_parenleft, XK_kana_YO,     XK_kana_yo,   /* 0x2f */
  1273.         osfXK_Cut,      NoSymbol,     NoSymbol,       NoSymbol,     /* 0x30 -> Cut */
  1274.         osfXK_Paste,    NoSymbol,     NoSymbol,       NoSymbol,     /* 0x31 -> Paste */
  1275.         XK_q,           XK_Q,         XK_kana_TA,     NoSymbol,     /* 0x32 */
  1276.         XK_w,           XK_W,         XK_kana_TE,     NoSymbol,     /* 0x33 */
  1277.         XK_e,           XK_E,         XK_kana_I,      XK_kana_i,    /* 0x34 */
  1278.         XK_r,           XK_R,         XK_kana_SU,     NoSymbol,     /* 0x35 */
  1279.         XK_t,           XK_T,         XK_kana_KA,     NoSymbol,     /* 0x36 */
  1280.         XK_y,           XK_Y,         XK_kana_N,      NoSymbol,     /* 0x37 */
  1281.         XK_u,           XK_U,         XK_kana_NA,     NoSymbol,     /* 0x38 */
  1282.         XK_i,           XK_I,         XK_kana_NI,     NoSymbol,     /* 0x39 */
  1283.         XK_o,           XK_O,         XK_kana_RA,     NoSymbol,     /* 0x3a */
  1284.         XK_p,           XK_P,         XK_kana_SE,     NoSymbol,     /* 0x3b */
  1285.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x3c */
  1286.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x3d */
  1287.         XK_minus,       XK_underscore,XK_kana_HO,     NoSymbol,     /* 0x3e */
  1288.         XK_equal,       XK_plus,      XK_kana_HE,     NoSymbol,     /* 0x3f */
  1289.         XK_2,           XK_at,        XK_kana_FU,     NoSymbol,     /* 0x40 */
  1290.         XK_6,           XK_asciicircum, XK_kana_O,    XK_kana_o,    /* 0x41 */
  1291.         XK_a,           XK_A,         XK_kana_TI,     NoSymbol,     /* 0x42 */
  1292.         XK_s,           XK_S,         XK_kana_TO,     NoSymbol,     /* 0x43 */
  1293.         XK_d,           XK_D,         XK_kana_SHI,    NoSymbol,     /* 0x44 */
  1294.         XK_f,           XK_F,         XK_kana_HA,     NoSymbol,     /* 0x45 */
  1295.         XK_g,           XK_G,         XK_kana_KI,     NoSymbol,     /* 0x46 */
  1296.         XK_h,           XK_H,         XK_kana_KU,     NoSymbol,     /* 0x47 */
  1297.         XK_j,           XK_J,         XK_kana_MA,     NoSymbol,     /* 0x48 */
  1298.         XK_k,           XK_K,         XK_kana_NO,     NoSymbol,     /* 0x49 */
  1299.         XK_l,           XK_L,         XK_kana_RI,     NoSymbol,     /* 0x4a */
  1300.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x4b */
  1301.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x4c */
  1302.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x4d */
  1303.         XK_bracketleft, XK_braceleft, XK_voicedsound, XK_kana_openingbracket,     /* 0x4e */
  1304.         XK_bracketright,XK_braceright,XK_semivoicedsound, XK_kana_closingbracket, /* 0x4f */
  1305.         XK_7,           XK_ampersand, XK_kana_YA,     XK_kana_ya,   /* 0x50 */
  1306.         XK_8,           XK_asterisk,  XK_kana_YU,     XK_kana_yu,   /* 0x51 */
  1307.         XK_z,           XK_Z,         XK_kana_TU,     XK_kana_tu,   /* 0x52 */
  1308.         XK_x,           XK_X,         XK_kana_SA,     NoSymbol,     /* 0x53 */
  1309.         XK_c,           XK_C,         XK_kana_SO,     NoSymbol,     /* 0x54 */
  1310.         XK_v,           XK_V,         XK_kana_HI,     NoSymbol,     /* 0x55 */
  1311.         XK_b,           XK_B,         XK_kana_KO,     NoSymbol,     /* 0x56 */
  1312.         XK_n,           XK_N,         XK_kana_MI,     NoSymbol,     /* 0x57 */
  1313.         XK_m,           XK_M,         XK_kana_MO,     NoSymbol,     /* 0x58 */
  1314.         XK_comma,       XK_less,      XK_kana_NE,     XK_kana_comma,     /* 0x59 */
  1315.         XK_period,      XK_greater,   XK_kana_RU,     XK_kana_fullstop,  /* 0x5a */
  1316.         XK_slash,       XK_question,  XK_kana_ME,     XK_kana_middledot, /* 0x5b */
  1317.         NoSymbol,       XK_underscore,XK_kana_RO,     NoSymbol,     /* 0x5c */
  1318.         XK_semicolon,   XK_colon,     XK_kana_RE,     NoSymbol,     /* 0x5d */
  1319.         XK_apostrophe,  XK_quotedbl,  XK_kana_KE,     NoSymbol,     /* 0x5e */
  1320.         XK_grave,       XK_asciitilde,XK_kana_MU,     NoSymbol,     /* 0x5f */
  1321.         XK_Home,        NoSymbol,     NoSymbol,       NoSymbol,     /* 0x60 -> Home */
  1322.         XK_plus,        NoSymbol,     XK_plus,        NoSymbol,     /* 0x61 */
  1323.         XK_minus,       NoSymbol,     XK_minus,       NoSymbol,     /* 0x62 */
  1324.         XK_7,           NoSymbol,     XK_7,           NoSymbol,     /* 0x63 */
  1325.         XK_8,           NoSymbol,     XK_8,           NoSymbol,     /* 0x64 */
  1326.         XK_9,           NoSymbol,     XK_9,           NoSymbol,     /* 0x65 */
  1327.         XK_4,           NoSymbol,     XK_4,           NoSymbol,     /* 0x66 */
  1328.         XK_5,           NoSymbol,     XK_5,           NoSymbol,     /* 0x67 */
  1329.         XK_6,           NoSymbol,     XK_6,           NoSymbol,     /* 0x68 */
  1330.         XK_1,           NoSymbol,     XK_1,           NoSymbol,     /* 0x69 */
  1331.         XK_2,           NoSymbol,     XK_2,           NoSymbol,     /* 0x6a */
  1332.         XK_3,           NoSymbol,     XK_3,           NoSymbol,     /* 0x6b */
  1333.         XK_0,           NoSymbol,     XK_0,           NoSymbol,     /* 0x6c */
  1334.         XK_period,      NoSymbol,     XK_period,      NoSymbol,     /* 0x6d */
  1335.         XK_Return,      NoSymbol,     XK_Return,      NoSymbol,     /* 0x6e */
  1336.         XK_0,           XK_parenright,XK_kana_WA,     XK_kana_WO,   /* 0x6f */
  1337.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x70 */
  1338.         NoSymbol,       NoSymbol,     NoSymbol,       NoSymbol,     /* 0x71 */
  1339.         XK_F1,          NoSymbol,     XK_F1,          NoSymbol,     /* 0x72 */
  1340.         XK_F2,          NoSymbol,     XK_F2,          NoSymbol,     /* 0x73 */
  1341.         XK_F3,          NoSymbol,     XK_F3,          NoSymbol,     /* 0x74 */
  1342.         XK_F4,          NoSymbol,     XK_F4,          NoSymbol,     /* 0x75 */
  1343.         XK_F5,          NoSymbol,     XK_F5,          NoSymbol,     /* 0x76 */
  1344.         XK_F6,          NoSymbol,     XK_F6,          NoSymbol,     /* 0x77 */
  1345.         XK_F7,          NoSymbol,     XK_F7,          NoSymbol,     /* 0x78 */
  1346.         XK_F8,          NoSymbol,     XK_F8,          NoSymbol,     /* 0x79 */
  1347.         XK_F9,          NoSymbol,     XK_F9,          NoSymbol,     /* 0x7a */
  1348.         XK_F10,         NoSymbol,     XK_F10,         NoSymbol,     /* 0x7b */
  1349.         XK_asterisk,    XK_asterisk,  XK_asterisk,    XK_asterisk,  /* 0x7c */ /* KANA new */
  1350.         XK_slash,       XK_slash,     XK_slash,       XK_slash,     /* 0x7d */
  1351.         XK_equal,       XK_equal,     XK_equal,       XK_equal,     /* 0x7e */
  1352.         XK_comma,       XK_comma,     XK_comma,       XK_comma,     /* 0x7f */
  1353. };
  1354.  
  1355. static KeySym omronAsciiKeyMap[] = {        
  1356. /*      NormalShift             ShiftedShift            */
  1357.         XK_Tab,                 NoSymbol,               /* 0x9 -> min KeyCode */
  1358.         XK_Control_L,           NoSymbol,               /* 0xa */
  1359.         NoSymbol,               NoSymbol,               /* 0xb -> kana Key */
  1360.         XK_Shift_R,             NoSymbol,               /* 0xc */
  1361.         XK_Shift_L,             NoSymbol,               /* 0xd */
  1362.         XK_Caps_Lock,           NoSymbol,               /* 0xe */
  1363.         XK_Meta_L,              NoSymbol,               /* 0xf -> zenmen Key */
  1364.         XK_Escape,              NoSymbol,               /* 0x10 */
  1365.         XK_BackSpace,           NoSymbol,               /* 0x11 */
  1366.         XK_Return,              NoSymbol,               /* 0x12 */
  1367.         NoSymbol,               NoSymbol,               /* 0x13 -> Nothing */
  1368.         XK_space,               NoSymbol,               /* 0x14 */
  1369.         XK_Delete,              NoSymbol,               /* 0x15 */
  1370.         NoSymbol,               NoSymbol,               /* 0x16 -> Henkan Key */
  1371.         NoSymbol,               NoSymbol,               /* 0x17 -> Kakutei Key */
  1372.         XK_F11,                 NoSymbol,               /* 0x18 */
  1373.         XK_F12,                 NoSymbol,               /* 0x19 */
  1374.         XK_F13,                 NoSymbol,               /* 0x1a */
  1375.         XK_F14,                 NoSymbol,               /* 0x1b */
  1376.         XK_Up,                  NoSymbol,               /* 0x1c */
  1377.         XK_Left,                NoSymbol,               /* 0x1d */
  1378.         XK_Right,               NoSymbol,               /* 0x1e */
  1379.         XK_Down,                NoSymbol,               /* 0x1f */
  1380.         NoSymbol,               NoSymbol,               /* 0x20 */
  1381.         NoSymbol,               NoSymbol,               /* 0x21 */
  1382.         XK_1,                   XK_exclam,              /* 0x22 */
  1383.         NoSymbol,               NoSymbol,               /* 0x23 */
  1384.         XK_3,                   XK_numbersign,          /* 0x24 */
  1385.         XK_4,                   XK_dollar,              /* 0x25 */
  1386.         XK_5,                   XK_percent,             /* 0x26 */
  1387.         NoSymbol,               NoSymbol,               /* 0x27 */
  1388.         NoSymbol,               NoSymbol,               /* 0x28 */
  1389.         NoSymbol,               NoSymbol,               /* 0x29 */
  1390.         NoSymbol,               NoSymbol,               /* 0x2a */
  1391.         NoSymbol,               NoSymbol,               /* 0x2b */
  1392.         NoSymbol,               NoSymbol,               /* 0x2c */
  1393.         NoSymbol,               NoSymbol,               /* 0x2d */
  1394.         XK_backslash,           XK_bar,                 /* 0x2e */
  1395.         XK_9,                   XK_parenleft,           /* 0x2f */
  1396.         NoSymbol,               NoSymbol,               /* 0x30 */
  1397.         NoSymbol,               NoSymbol,               /* 0x31 */
  1398.         XK_q,                   XK_Q,                   /* 0x32 */
  1399.         XK_w,                   XK_W,                   /* 0x33 */
  1400.         XK_e,                   XK_E,                   /* 0x34 */
  1401.         XK_r,                   XK_R,                   /* 0x35 */
  1402.         XK_t,                   XK_T,                   /* 0x36 */
  1403.         XK_y,                   XK_Y,                   /* 0x37 */
  1404.         XK_u,                   XK_U,                   /* 0x38 */
  1405.         XK_i,                   XK_I,                   /* 0x39 */
  1406.         XK_o,                   XK_O,                   /* 0x3a */
  1407.         XK_p,                   XK_P,                   /* 0x3b */
  1408.         NoSymbol,               NoSymbol,               /* 0x3c */
  1409.         NoSymbol,               NoSymbol,               /* 0x3d */
  1410.         XK_minus,               XK_underscore,          /* 0x3e */
  1411.         XK_equal,               XK_plus,                /* 0x3f */
  1412.         XK_2,                   XK_at,                  /* 0x40 */
  1413.         XK_6,                   XK_asciicircum,         /* 0x41 */
  1414.         XK_a,                   XK_A,                   /* 0x42 */
  1415.         XK_s,                   XK_S,                   /* 0x43 */
  1416.         XK_d,                   XK_D,                   /* 0x44 */
  1417.         XK_f,                   XK_F,                   /* 0x45 */
  1418.         XK_g,                   XK_G,                   /* 0x46 */
  1419.         XK_h,                   XK_H,                   /* 0x47 */
  1420.         XK_j,                   XK_J,                   /* 0x48 */
  1421.         XK_k,                   XK_K,                   /* 0x49 */
  1422.         XK_l,                   XK_L,                   /* 0x4a */
  1423.         NoSymbol,               NoSymbol,               /* 0x4b */
  1424.         NoSymbol,               NoSymbol,               /* 0x4c */
  1425.         NoSymbol,               NoSymbol,               /* 0x4d */
  1426.         XK_bracketleft,         XK_braceleft,           /* 0x4e */
  1427.         XK_bracketright,        XK_braceright,          /* 0x4f */
  1428.         XK_7,                   XK_ampersand,           /* 0x50 */
  1429.         XK_8,                   XK_asterisk,            /* 0x51 */
  1430.         XK_z,                   XK_Z,                   /* 0x52 */
  1431.         XK_x,                   XK_X,                   /* 0x53 */
  1432.         XK_c,                   XK_C,                   /* 0x54 */
  1433.         XK_v,                   XK_V,                   /* 0x55 */
  1434.         XK_b,                   XK_B,                   /* 0x56 */
  1435.         XK_n,                   XK_N,                   /* 0x57 */
  1436.         XK_m,                   XK_M,                   /* 0x58 */
  1437.         XK_comma,               XK_less,                /* 0x59 */
  1438.         XK_period,              XK_greater,             /* 0x5a */
  1439.         XK_slash,               XK_question,            /* 0x5b */
  1440.         NoSymbol,               NoSymbol,               /* 0x5c XXX */
  1441.         XK_semicolon,           XK_colon,               /* 0x5d */
  1442.         XK_apostrophe,          XK_quotedbl,            /* 0x5e */
  1443.         XK_grave,               XK_asciitilde,          /* 0x5f */
  1444.         XK_Home,                NoSymbol,               /* 0x60 -> Home */
  1445.         NoSymbol,               NoSymbol,               /* 0x61 */
  1446.         NoSymbol,               NoSymbol,               /* 0x62 */
  1447.         NoSymbol,               NoSymbol,               /* 0x63 */
  1448.         NoSymbol,               NoSymbol,               /* 0x64 */
  1449.         NoSymbol,               NoSymbol,               /* 0x65 */
  1450.         NoSymbol,               NoSymbol,               /* 0x66 */
  1451.         NoSymbol,               NoSymbol,               /* 0x67 */
  1452.         NoSymbol,               NoSymbol,               /* 0x68 */
  1453.         NoSymbol,               NoSymbol,               /* 0x69 */
  1454.         NoSymbol,               NoSymbol,               /* 0x6a */
  1455.         NoSymbol,               NoSymbol,               /* 0x6b */
  1456.         NoSymbol,               NoSymbol,               /* 0x6c */
  1457.         NoSymbol,               NoSymbol,               /* 0x6d */
  1458.         NoSymbol,               NoSymbol,               /* 0x6e */
  1459.         XK_0,                   XK_parenright,          /* 0x6f */
  1460.         NoSymbol,               NoSymbol,               /* 0x70 */
  1461.         NoSymbol,               NoSymbol,               /* 0x71 */
  1462.         XK_F1,                  NoSymbol,               /* 0x72 */
  1463.         XK_F2,                  NoSymbol,               /* 0x73 */
  1464.         XK_F3,                  NoSymbol,               /* 0x74 */
  1465.         XK_F4,                  NoSymbol,               /* 0x75 */
  1466.         XK_F5,                  NoSymbol,               /* 0x76 */
  1467.         XK_F6,                  NoSymbol,               /* 0x77 */
  1468.         XK_F7,                  NoSymbol,               /* 0x78 */
  1469.         XK_F8,                  NoSymbol,               /* 0x79 */
  1470.         XK_F9,                  NoSymbol,               /* 0x7a */
  1471.         XK_F10,                 NoSymbol,               /* 0x7b */
  1472. };
  1473. #endif
  1474. #endif
  1475.  
  1476. KeySymsRec omronKeySyms[] = {
  1477.         /*  map          minKeyCode   maxKeyCode  width */
  1478. #ifdef USE_KEYCOMPATI
  1479. # ifdef USE_KANA_SWITCH
  1480. #  ifdef luna2
  1481.         omronJisjisKeyMap,   0x9,         0x7f,   4,
  1482.         omronAsciiKeyMap,    0x9,         0x7b,   2,
  1483.         omronAsciijisKeyMap, 0x9,         0x7f,   4,
  1484. #  endif
  1485.         omronDefKeyMap,      0x9,         0x7f,   4
  1486. # else
  1487. #  ifdef luna2
  1488.         omronJisjisKeyMap,   0x9,         0xf6,   2,
  1489.         omronAsciiKeyMap,    0x9,         0x7b,   2,
  1490.         omronAsciijisKeyMap, 0x9,         0xf6,   2,
  1491. #  endif
  1492.         omronDefKeyMap,      0x9,         0xf6,   2
  1493. # endif
  1494. #else
  1495. # ifdef USE_KANA_SWITCH
  1496. #  ifdef luna2
  1497.         omronJisjisKeyMap,   0x10,        0x86,   4,
  1498.         omronAsciiKeyMap,    0x10,        0x82,   2,
  1499.         omronAsciijisKeyMap, 0x10,        0x86,   4,
  1500. #  endif
  1501.         omronDefKeyMap,      0x10,        0x86,   4
  1502. # else
  1503. #  ifdef luna2
  1504.         omronJisjisKeyMap,   0x10,        0xfd,   2,
  1505.         omronAsciiKeyMap,    0x10,        0x82,   2,
  1506.         omronAsciijisKeyMap, 0x10,        0xfd,   2,
  1507. #  endif
  1508.         omronDefKeyMap,      0x10,        0xfd,   2
  1509. # endif
  1510. #endif
  1511. };
  1512.  
  1513. #ifdef luna2
  1514. # ifdef USE_KEYCOMPATI
  1515. static unsigned char omronAsciiAutoRepeats[AREPBUFSZ] = {
  1516.     0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  1517.     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
  1518.     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1519.     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  1520. };
  1521. # else
  1522. static unsigned char omronAsciiAutoRepeats[AREPBUFSZ] = {
  1523.     0x00, 0x00, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff,
  1524.     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  1525.     0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1526.     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  1527. };
  1528. # endif
  1529. #endif
  1530.  
  1531. #ifdef USE_KEYCOMPATI
  1532. # ifdef USE_KANA_SWITCH
  1533. static unsigned char omronDefAutoRepeats[AREPBUFSZ] = {
  1534.     0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  1535.     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  1536.     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1537.     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  1538. };
  1539. # else
  1540. static unsigned char omronDefAutoRepeats[AREPBUFSZ] = {
  1541.     0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  1542.     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  1543.     0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  1544.     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00
  1545. };
  1546. # endif
  1547. #else
  1548. # ifdef USE_KANA_SWITCH
  1549. static unsigned char omronDefAutoRepeats[AREPBUFSZ] = {
  1550.     0x00, 0x00, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff,
  1551.     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  1552.     0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1553.     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  1554. };
  1555. # else
  1556. static unsigned char omronDefAutoRepeats[AREPBUFSZ] = {
  1557.     0x00, 0x00, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff,
  1558.     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  1559.     0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  1560.     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f
  1561. };
  1562. # endif
  1563. #endif
  1564.  
  1565. unsigned char *omronAutoRepeats[] = {
  1566. #ifdef luna2
  1567.     omronDefAutoRepeats,
  1568.     omronAsciiAutoRepeats,
  1569.     omronDefAutoRepeats,
  1570. #endif
  1571.     omronDefAutoRepeats
  1572. };
  1573.