This is kbdef.h in view mode; [Download] [Up]
/*
* kbdef.h - X11 keyboard definitions.
*
* Written by
* Jouko Valta (jopi@stekt.oulu.fi)
* Andre' Fachat (fachat@physik.tu-chemnitz.de)
* Ettore Perazzoli (ettore@comm2000.it)
*
* This file is part of VICE, the Versatile Commodore Emulator.
* See README for copyright notice.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
* 02111-1307 USA.
*
*/
/* Keyboard definitions for the X11 keyboard driver. */
#ifndef _KBDEF_X_H
#define _KBDEF_X_H
enum shift_type {
NO_SHIFT =(0), /* Key is not shifted. */
VIRTUAL_SHIFT =(1 << 0), /* The key needs a shift on the real machine. */
LEFT_SHIFT =(1 << 1), /* Key is left shift. */
RIGHT_SHIFT =(1 << 2), /* Key is right shift. */
ALLOW_SHIFT =(1 << 3), /* Allow key to be shifted. */
};
typedef struct {
KeySym sym;
int row;
int column;
enum shift_type shift;
} keyconv;
#if 0 /*********************************************************************/
#ifdef VIC20
#define ROW0 7
#define ROW7 0
#define COL3 7
#define COL7 3
#else
#define ROW0 0
#define ROW7 7
#define COL3 3
#define COL7 7
#endif
/* VIC20/C64/C128 keyboard maps. */
#ifndef PET
static keyconv default_keyconvmap[] =
{
{ XK_Delete, ROW0, 0, ALLOW_SHIFT }, /* del */
{ XK_Return, ROW0, 1, ALLOW_SHIFT },
{ XK_Right, ROW0, 2, ALLOW_SHIFT },
{ XK_F7, ROW0, COL3, ALLOW_SHIFT },
{ XK_F1, ROW0, 4, ALLOW_SHIFT },
{ XK_F3, ROW0, 5, ALLOW_SHIFT },
{ XK_F5, ROW0, 6, ALLOW_SHIFT },
{ XK_Down, ROW0, COL7, ALLOW_SHIFT },
{ XK_3, 1, 0, NO_SHIFT },
{ XK_w, 1, 1, ALLOW_SHIFT },
{ XK_a, 1, 2, ALLOW_SHIFT },
{ XK_4, 1, COL3, NO_SHIFT },
{ XK_z, 1, 4, ALLOW_SHIFT },
{ XK_s, 1, 5, ALLOW_SHIFT },
{ XK_e, 1, 6, ALLOW_SHIFT },
{ XK_Shift_L, 1, COL7, LEFT_SHIFT },
{ XK_5, 2, 0, NO_SHIFT },
{ XK_r, 2, 1, ALLOW_SHIFT },
{ XK_d, 2, 2, ALLOW_SHIFT },
{ XK_6, 2, COL3, NO_SHIFT },
{ XK_c, 2, 4, ALLOW_SHIFT },
{ XK_f, 2, 5, ALLOW_SHIFT },
{ XK_t, 2, 6, ALLOW_SHIFT },
{ XK_x, 2, COL7, ALLOW_SHIFT },
{ XK_7, 3, 0, NO_SHIFT },
{ XK_y, 3, 1, ALLOW_SHIFT },
{ XK_g, 3, 2, ALLOW_SHIFT },
{ XK_8, 3, COL3, NO_SHIFT },
{ XK_b, 3, 4, ALLOW_SHIFT },
{ XK_h, 3, 5, ALLOW_SHIFT },
{ XK_u, 3, 6, ALLOW_SHIFT },
{ XK_v, 3, COL7, ALLOW_SHIFT },
{ XK_9, 4, 0, NO_SHIFT },
{ XK_i, 4, 1, ALLOW_SHIFT },
{ XK_j, 4, 2, ALLOW_SHIFT },
{ XK_0, 4, COL3, NO_SHIFT },
{ XK_m, 4, 4, ALLOW_SHIFT },
{ XK_k, 4, 5, ALLOW_SHIFT },
{ XK_o, 4, 6, ALLOW_SHIFT },
{ XK_n, 4, COL7, ALLOW_SHIFT },
{ XK_plus, 5, 0, NO_SHIFT },
{ XK_p, 5, 1, ALLOW_SHIFT },
{ XK_l, 5, 2, ALLOW_SHIFT },
{ XK_minus, 5, COL3, NO_SHIFT },
{ XK_period, 5, 4, NO_SHIFT },
{ XK_colon, 5, 5, NO_SHIFT },
{ XK_at, 5, 6, NO_SHIFT }, /* shifted @ gives 'grave' */
{ XK_comma, 5, COL7, NO_SHIFT },
{ XK_sterling, 6, 0, NO_SHIFT }, /* Sterling Pound sign */
{ XK_bar, 6, 0, ALLOW_SHIFT }, /* Sterling Pound sign */
{ XK_asterisk, 6, 1, NO_SHIFT },
{ XK_semicolon, 6, 2, NO_SHIFT },
{ XK_Home, 6, COL3, ALLOW_SHIFT },
{ XK_Shift_R, 6, 4, NO_SHIFT },
{ XK_equal, 6, 5, NO_SHIFT },
{ XK_asciicircum, 6, 6, NO_SHIFT }, /* Up arrow (US kbd) */
{ XK_asciitilde, 6, 6, NO_SHIFT }, /* Up arrow (scandinavian kbd) */
{ XK_slash, 6, COL7, NO_SHIFT },
{ XK_1, ROW7, 0, NO_SHIFT },
{ XK_underscore, ROW7, 1, NO_SHIFT }, /* Left arrow */
{ XK_Control_L, ROW7, 2, ALLOW_SHIFT }, /* CNTRL */
{ XK_2, ROW7, COL3, NO_SHIFT },
{ XK_space, ROW7, 4, ALLOW_SHIFT },
{ XK_Alt_L, ROW7, 5, ALLOW_SHIFT }, /* CBM */
{ XK_Meta_L, ROW7, 5, ALLOW_SHIFT }, /* CBM */
{ XK_q, ROW7, 6, ALLOW_SHIFT },
{ XK_Escape, ROW7, COL7, ALLOW_SHIFT }, /* STOP */
{ XK_BackSpace, ROW0, 0, ALLOW_SHIFT }, /* Del */
/*
* Some keys for DECstations
*/
{ XK_KP_F1, ROW0, 4, ALLOW_SHIFT }, /* F1 */
{ XK_KP_F2, ROW0, 5, ALLOW_SHIFT }, /* F3 */
{ XK_KP_F3, ROW0, 6, ALLOW_SHIFT }, /* F5 */
{ XK_KP_F4, ROW0, 2, ALLOW_SHIFT }, /* F7 */
{ XK_Insert, ROW0, 0, 16 }, /* Inst */
{ XK_Find, 6, COL3, ALLOW_SHIFT }, /* Home */
#ifdef DECMAP
{ DXK_Remove, ROW0, 0, ALLOW_SHIFT }, /* del (DECkeysym.h) */
{ XK_Help, ROW7, COL7, ALLOW_SHIFT }, /* because no real ESC-key on the keyboard /RH/ */
#endif
/*
* C128 Keyboard Extension
* C128 Special keys, rows K1, K2 and K3 from the VIC-IIe
*
* Kx d02f dc01:
* 08 fe KP_1 KP_7 KP_4 KP_2 Tab KP_5 KP_8 Help
* 09 fd KP_3 KP_9 KP_6 KP_Entr LineFd KP_Minus KP_Plus Esc
* 10 fb NoScroll Right Left Down Up KP_Dot KP_0 Alt
*
*/
#ifdef C128
{ XK_KP_1, 8, 7, ALLOW_SHIFT }, /* Numpad 1 */
{ XK_KP_2, 8, 4, ALLOW_SHIFT }, /* Numpad 2 */
{ XK_KP_3, 9, 7, ALLOW_SHIFT }, /* Numpad 3 */
{ XK_KP_4, 8, 5, ALLOW_SHIFT }, /* Numpad 4 */
{ XK_KP_5, 8, 2, ALLOW_SHIFT }, /* Numpad 5 */
{ XK_KP_6, 9, 5, ALLOW_SHIFT }, /* Numpad 6 */
{ XK_KP_7, 8, 6, ALLOW_SHIFT }, /* Numpad 7 */
{ XK_KP_8, 8, 1, ALLOW_SHIFT }, /* Numpad 8 */
{ XK_KP_9, 9, 6, ALLOW_SHIFT }, /* Numpad 9 */
{ XK_KP_0, 10, 1, ALLOW_SHIFT }, /* Numpad 0 */
{ XK_KP_Subtract, 9, 2, ALLOW_SHIFT }, /* Numpad - */
{ XK_KP_Add, 0, 1, ALLOW_SHIFT }, /* Numpad + */
{ XK_KP_Separator, 10, 2, ALLOW_SHIFT }, /* Numpad . */
#endif /* C128 */
/*
* Shifted C64/128 keys
*/
{ XK_Linefeed, ROW0, 1, VIRTUAL_SHIFT },
{ XK_Left, ROW0, 2, VIRTUAL_SHIFT },
{ XK_F8, ROW0, COL3, VIRTUAL_SHIFT },
{ XK_F2, ROW0, 4, VIRTUAL_SHIFT },
{ XK_F4, ROW0, 5, VIRTUAL_SHIFT },
{ XK_F6, ROW0, 6, VIRTUAL_SHIFT },
{ XK_Up, ROW0, COL7, VIRTUAL_SHIFT },
{ XK_numbersign, 1, 0, VIRTUAL_SHIFT },
{ XK_W, 1, 1, VIRTUAL_SHIFT },
{ XK_A, 1, 2, VIRTUAL_SHIFT },
{ XK_dollar, 1, COL3, VIRTUAL_SHIFT },
{ XK_Z, 1, 4, VIRTUAL_SHIFT },
{ XK_S, 1, 5, VIRTUAL_SHIFT },
{ XK_E, 1, 6, VIRTUAL_SHIFT },
{ XK_percent, 2, 0, VIRTUAL_SHIFT },
{ XK_R, 2, 1, VIRTUAL_SHIFT },
{ XK_D, 2, 2, VIRTUAL_SHIFT },
{ XK_ampersand, 2, COL3, VIRTUAL_SHIFT },
{ XK_C, 2, 4, VIRTUAL_SHIFT },
{ XK_F, 2, 5, VIRTUAL_SHIFT },
{ XK_T, 2, 6, VIRTUAL_SHIFT },
{ XK_X, 2, COL7, VIRTUAL_SHIFT },
{ XK_quoteright, 3, 0, VIRTUAL_SHIFT }, /* apostrophe */
{ XK_Y, 3, 1, VIRTUAL_SHIFT },
{ XK_G, 3, 2, VIRTUAL_SHIFT },
{ XK_parenleft, 3, COL3, VIRTUAL_SHIFT },
{ XK_B, 3, 4, VIRTUAL_SHIFT },
{ XK_H, 3, 5, VIRTUAL_SHIFT },
{ XK_U, 3, 6, VIRTUAL_SHIFT },
{ XK_V, 3, COL7, VIRTUAL_SHIFT },
{ XK_parenright, 4, 0, VIRTUAL_SHIFT },
{ XK_I, 4, 1, VIRTUAL_SHIFT },
{ XK_J, 4, 2, VIRTUAL_SHIFT },
{ XK_M, 4, 4, VIRTUAL_SHIFT },
{ XK_K, 4, 5, VIRTUAL_SHIFT },
{ XK_O, 4, 6, VIRTUAL_SHIFT },
{ XK_N, 4, COL7, VIRTUAL_SHIFT },
{ XK_P, 5, 1, VIRTUAL_SHIFT },
{ XK_L, 5, 2, VIRTUAL_SHIFT },
{ XK_greater, 5, 4, VIRTUAL_SHIFT },
{ XK_bracketleft, 5, 5, VIRTUAL_SHIFT },
{ XK_grave, 5, 6, VIRTUAL_SHIFT }, /* shifted @ */
{ XK_less, 5, COL7, VIRTUAL_SHIFT },
{ XK_backslash, 6, 0, VIRTUAL_SHIFT },
{ XK_bracketright, 6, 2, VIRTUAL_SHIFT },
#ifdef US_KBD
{ XK_asciitilde, 6, 6, NO_SHIFT }, /* shift up arrow (US kbd) */
#else
{ XK_asciicircum, 6, 6, ALLOW_SHIFT }, /* shift up arrow (scandinavian kbd) */
#endif
{ XK_question, 6, COL7, VIRTUAL_SHIFT },
{ XK_exclam, ROW7, 0, VIRTUAL_SHIFT },
{ XK_quotedbl, ROW7, COL3, VIRTUAL_SHIFT },
{ XK_Q, ROW7, 6, VIRTUAL_SHIFT },
{ 0, 0, 0, 0}
};
/* End of VIC20/C64/C128 keyboard */
#else
/* ------------------------------------------------------------------------- */
/* PET keyboard(s). */
/* PET 8032 Business Keyboard. */
static keyconv pet80map[] =
{
{ XK_0, 1, 3, NO_SHIFT },
{ XK_1, 1, 0, NO_SHIFT },
{ XK_2, 0, 0, NO_SHIFT },
{ XK_3, 9, 1, NO_SHIFT },
{ XK_4, 1, 1, NO_SHIFT },
{ XK_5, 0, 1, NO_SHIFT },
{ XK_6, 9, 2, NO_SHIFT },
{ XK_7, 1, 2, NO_SHIFT },
{ XK_8, 0, 2, NO_SHIFT },
{ XK_9, 9, 3, NO_SHIFT },
{ XK_Control_L, 9, 4, ALLOW_SHIFT }, /* left Ctrl maps to run/stop */
{ XK_Home, 8, 4, ALLOW_SHIFT },
{ XK_Right, 0, 5, ALLOW_SHIFT },
{ XK_Down, 5, 4, ALLOW_SHIFT },
{ XK_Delete, 4, 7, NO_SHIFT }, /* del */
{ XK_BackSpace, 4, 7, ALLOW_SHIFT }, /* inst/del */
{ XK_Shift_L, 6, 0, LEFT_SHIFT },
{ XK_Shift_R, 6, 6, RIGHT_SHIFT },
{ XK_Return, 3, 4, NO_SHIFT },
{ XK_Escape, 2, 0, NO_SHIFT }, /* Escape */
{ XK_Alt_L, 8, 0, ALLOW_SHIFT }, /* Left Alt -> RVS */
{ XK_Meta_L, 8, 0, ALLOW_SHIFT }, /* Left Meta -> RVS */
{ XK_Control_R, 7, 6, ALLOW_SHIFT }, /* Right Ctrl -> RPT */
{ XK_Tab, 4, 0, ALLOW_SHIFT }, /* Tab -> Tab */
#ifdef XK_ISO_Left_Tab
{ XK_ISO_Left_Tab, 4, 0, VIRTUAL_SHIFT }, /* Left Tab -> Shift-Tab */
#endif
#ifdef hpXK_BackTab
{ hpXK_BackTab, 4, 0, VIRTUAL_SHIFT },
#endif
#ifdef hpXK_KP_BackTab
{ hpXK_KP_BackTab, 4, 0, VIRTUAL_SHIFT },
#endif
{ XK_KP_0, 7, 4, ALLOW_SHIFT }, /* Numpad 0 */
{ XK_KP_1, 8, 7, ALLOW_SHIFT }, /* Numpad 1 */
{ XK_KP_2, 7, 7, ALLOW_SHIFT }, /* Numpad 2 */
{ XK_KP_3, 6, 7, ALLOW_SHIFT }, /* Numpad 3 */
{ XK_KP_4, 5, 7, ALLOW_SHIFT }, /* Numpad 4 */
{ XK_KP_5, 2, 7, ALLOW_SHIFT }, /* Numpad 5 */
{ XK_KP_6, 3, 7, ALLOW_SHIFT }, /* Numpad 6 */
{ XK_KP_7, 1, 4, ALLOW_SHIFT }, /* Numpad 7 */
{ XK_KP_8, 0, 4, ALLOW_SHIFT }, /* Numpad 8 */
{ XK_KP_9, 1, 7, ALLOW_SHIFT }, /* Numpad 9 */
{ XK_KP_Separator, 7, 3, NO_SHIFT },
{ XK_KP_Multiply, 9, 5, VIRTUAL_SHIFT },
{ XK_KP_Divide, 8, 6, NO_SHIFT },
{ XK_KP_Add, 2, 6, VIRTUAL_SHIFT },
{ XK_KP_Subtract, 0, 3, NO_SHIFT },
{ XK_KP_Enter, 3, 4, NO_SHIFT },
{ XK_KP_Decimal, 6, 4, NO_SHIFT }, /* Numpad . */
{ XK_period, 6, 4, NO_SHIFT },
{ XK_minus, 0, 3, NO_SHIFT },
{ XK_space, 8, 2, NO_SHIFT },
{ XK_colon, 9, 5, NO_SHIFT },
{ XK_underscore, 9, 0, NO_SHIFT }, /* Left arrow */
{ XK_comma, 7, 3, NO_SHIFT },
{ XK_slash, 8, 6, NO_SHIFT },
{ XK_semicolon, 2, 6, NO_SHIFT },
{ XK_at, 3, 6, NO_SHIFT }, /* shifted @ gives 'grave' */
{ XK_a, 3, 0, NO_SHIFT },
{ XK_b, 6, 2, NO_SHIFT },
{ XK_c, 6, 1, NO_SHIFT },
{ XK_d, 3, 1, NO_SHIFT },
{ XK_e, 5, 1, NO_SHIFT },
{ XK_f, 2, 2, NO_SHIFT },
{ XK_g, 3, 2, NO_SHIFT },
{ XK_h, 2, 3, NO_SHIFT },
{ XK_i, 4, 5, NO_SHIFT },
{ XK_j, 3, 3, NO_SHIFT },
{ XK_k, 2, 5, NO_SHIFT },
{ XK_l, 3, 5, NO_SHIFT },
{ XK_m, 8, 3, NO_SHIFT },
{ XK_n, 7, 2, NO_SHIFT },
{ XK_o, 5, 5, NO_SHIFT },
{ XK_p, 4, 6, NO_SHIFT },
{ XK_q, 5, 0, NO_SHIFT },
{ XK_r, 4, 2, NO_SHIFT },
{ XK_s, 2, 1, NO_SHIFT },
{ XK_t, 5, 2, NO_SHIFT },
{ XK_u, 5, 3, NO_SHIFT },
{ XK_v, 7, 1, NO_SHIFT },
{ XK_w, 4, 1, NO_SHIFT },
{ XK_x, 8, 1, NO_SHIFT },
{ XK_y, 4, 3, NO_SHIFT },
{ XK_z, 7, 0, NO_SHIFT },
{ XK_asciicircum, 1, 5, NO_SHIFT }, /* Up arrow (US kbd) */
{ XK_asciitilde, 1, 5, NO_SHIFT }, /* Up arrow (scandinavian kbd) */
{ XK_bracketright, 2, 5, NO_SHIFT },
{ XK_bracketleft, 5, 6, NO_SHIFT },
/*
* Shifted PET keys
*/
{ XK_Insert, 4, 7, VIRTUAL_SHIFT },
{ XK_Left, 0, 5, VIRTUAL_SHIFT },
{ XK_Up, 5, 4, VIRTUAL_SHIFT },
{ XK_A, 3, 0, VIRTUAL_SHIFT },
{ XK_B, 6, 2, VIRTUAL_SHIFT },
{ XK_C, 6, 1, VIRTUAL_SHIFT },
{ XK_D, 3, 1, VIRTUAL_SHIFT },
{ XK_E, 5, 1, VIRTUAL_SHIFT },
{ XK_F, 2, 2, VIRTUAL_SHIFT },
{ XK_G, 3, 2, VIRTUAL_SHIFT },
{ XK_H, 2, 3, VIRTUAL_SHIFT },
{ XK_I, 4, 5, VIRTUAL_SHIFT },
{ XK_J, 3, 3, VIRTUAL_SHIFT },
{ XK_K, 2, 5, VIRTUAL_SHIFT },
{ XK_L, 3, 5, VIRTUAL_SHIFT },
{ XK_M, 8, 3, VIRTUAL_SHIFT },
{ XK_N, 7, 2, VIRTUAL_SHIFT },
{ XK_O, 5, 5, VIRTUAL_SHIFT },
{ XK_P, 4, 6, VIRTUAL_SHIFT },
{ XK_Q, 5, 0, VIRTUAL_SHIFT },
{ XK_R, 4, 2, VIRTUAL_SHIFT },
{ XK_S, 2, 1, VIRTUAL_SHIFT },
{ XK_T, 5, 2, VIRTUAL_SHIFT },
{ XK_U, 5, 3, VIRTUAL_SHIFT },
{ XK_V, 7, 1, VIRTUAL_SHIFT },
{ XK_W, 4, 1, VIRTUAL_SHIFT },
{ XK_X, 8, 1, VIRTUAL_SHIFT },
{ XK_Y, 4, 3, VIRTUAL_SHIFT },
{ XK_Z, 7, 0, VIRTUAL_SHIFT },
{ XK_exclam, 1, 0, VIRTUAL_SHIFT },
{ XK_quotedbl, 0, 0, VIRTUAL_SHIFT },
{ XK_numbersign, 9, 1, VIRTUAL_SHIFT },
{ XK_dollar, 1, 1, VIRTUAL_SHIFT },
{ XK_percent, 0, 1, VIRTUAL_SHIFT },
{ XK_ampersand, 9, 2, VIRTUAL_SHIFT },
{ XK_quoteright, 1, 2, VIRTUAL_SHIFT }, /* apostrophe = shift 7 */
{ XK_parenleft, 0, 2, VIRTUAL_SHIFT },
{ XK_parenright, 9, 3, VIRTUAL_SHIFT },
{ XK_asterisk, 9, 5, VIRTUAL_SHIFT },
{ XK_plus, 2, 6, VIRTUAL_SHIFT },
{ XK_less, 7, 3, VIRTUAL_SHIFT },
{ XK_equal, 0, 3, VIRTUAL_SHIFT },
{ XK_greater, 6, 3, VIRTUAL_SHIFT },
{ XK_question, 8, 6, VIRTUAL_SHIFT },
{ 0, 0, 0, 0}
};
/* PET 3032/4032 Graphics Keyboard. */
keyconv pet40map[] =
{
{ XK_Return, 6, 5, NO_SHIFT },
{ XK_Down, 1, 6, ALLOW_SHIFT },
{ XK_Right, 0, 7, ALLOW_SHIFT },
{ XK_Home, 0, 6, ALLOW_SHIFT },
{ XK_BackSpace, 1, 7, ALLOW_SHIFT },
{ XK_Delete, 1, 7, NO_SHIFT },
{ XK_Tab, 9, 0, ALLOW_SHIFT }, /* Tab -> rev/off */
{ XK_KP_Tab, 9, 0, ALLOW_SHIFT },
#ifdef XK_ISO_Left_Tab
{ XK_ISO_Left_Tab, 9, 0, VIRTUAL_SHIFT }, /* Shift-Tab */
#endif
#ifdef hpXK_BackTab
{ hpXK_BackTab, 9, 0, VIRTUAL_SHIFT }, /* Tab -> rev/off */
#endif
#ifdef hpXK_KP_BackTab
{ hpXK_KP_BackTab, 9, 0, VIRTUAL_SHIFT }, /* Tab -> rev/off */
#endif
{ XK_Alt_L, 9, 0, ALLOW_SHIFT }, /* Left Alt -> rev/off */
{ XK_Meta_L, 9, 0, ALLOW_SHIFT }, /* Left Meta -> rev/off */
{ XK_Escape, 9, 4, ALLOW_SHIFT }, /* Escape -> Run/Stop */
{ XK_Control_L, 9, 4, ALLOW_SHIFT }, /* Left Ctrl -> Run/Stop */
{ XK_Find, 0, 6, NO_SHIFT }, /* Home */
{ XK_Shift_L, 8, 0, LEFT_SHIFT },
{ XK_Shift_R, 8, 5, RIGHT_SHIFT },
#ifdef DECMAP
{ DXK_Remove, 1, 7, NO_SHIFT }, /* del (DECkeysym.h) */
{ XK_Help, 9, 4, ALLOW_SHIFT }, /* because there is no real ESC-key
on the keyboard /RH/ */
#endif /* DECMAP */
{ XK_a, 4, 0, NO_SHIFT },
{ XK_b, 6, 2, NO_SHIFT },
{ XK_c, 6, 1, NO_SHIFT },
{ XK_d, 4, 1, NO_SHIFT },
{ XK_e, 2, 1, NO_SHIFT },
{ XK_f, 5, 1, NO_SHIFT },
{ XK_g, 4, 2, NO_SHIFT },
{ XK_h, 5, 2, NO_SHIFT },
{ XK_i, 3, 3, NO_SHIFT },
{ XK_j, 4, 3, NO_SHIFT },
{ XK_k, 5, 3, NO_SHIFT },
{ XK_l, 4, 4, NO_SHIFT },
{ XK_m, 6, 3, NO_SHIFT },
{ XK_n, 7, 2, NO_SHIFT },
{ XK_o, 2, 4, NO_SHIFT },
{ XK_p, 3, 4, NO_SHIFT },
{ XK_q, 2, 0, NO_SHIFT },
{ XK_r, 3, 1, NO_SHIFT },
{ XK_s, 5, 0, NO_SHIFT },
{ XK_t, 2, 2, NO_SHIFT },
{ XK_u, 2, 3, NO_SHIFT },
{ XK_v, 7, 1, NO_SHIFT },
{ XK_w, 3, 0, NO_SHIFT },
{ XK_x, 7, 0, NO_SHIFT },
{ XK_y, 3, 2, NO_SHIFT },
{ XK_z, 6, 0, NO_SHIFT },
{ XK_KP_0, 8, 6, ALLOW_SHIFT },
{ XK_KP_1, 6, 6, ALLOW_SHIFT },
{ XK_KP_2, 7, 6, ALLOW_SHIFT },
{ XK_KP_3, 6, 7, ALLOW_SHIFT },
{ XK_KP_4, 4, 6, ALLOW_SHIFT },
{ XK_KP_5, 5, 6, ALLOW_SHIFT },
{ XK_KP_6, 4, 7, ALLOW_SHIFT },
{ XK_KP_7, 2, 6, ALLOW_SHIFT },
{ XK_KP_8, 3, 6, ALLOW_SHIFT },
{ XK_KP_9, 2, 7, ALLOW_SHIFT },
{ XK_KP_Separator, 7, 3, ALLOW_SHIFT },
{ XK_KP_Multiply, 5, 7, ALLOW_SHIFT },
{ XK_KP_Divide, 3, 7, ALLOW_SHIFT },
{ XK_KP_Add, 7, 7, ALLOW_SHIFT },
{ XK_KP_Subtract, 8, 7, ALLOW_SHIFT },
{ XK_KP_Enter, 6, 5, ALLOW_SHIFT },
{ XK_KP_Decimal, 9, 6, ALLOW_SHIFT }, /* Numpad . */
{ XK_0, 8, 6, NO_SHIFT },
{ XK_1, 6, 6, NO_SHIFT },
{ XK_2, 7, 6, NO_SHIFT },
{ XK_3, 6, 7, NO_SHIFT },
{ XK_4, 4, 6, NO_SHIFT },
{ XK_5, 5, 6, NO_SHIFT },
{ XK_6, 4, 7, NO_SHIFT },
{ XK_7, 2, 6, NO_SHIFT },
{ XK_8, 3, 6, NO_SHIFT },
{ XK_9, 2, 7, NO_SHIFT },
{ XK_slash, 3, 7, NO_SHIFT },
{ XK_bracketright, 1, 4, NO_SHIFT },
{ XK_bracketleft, 0, 4, NO_SHIFT },
{ XK_parenright, 1, 4, NO_SHIFT },
{ XK_parenleft, 0, 4, NO_SHIFT },
{ XK_question, 7, 4, NO_SHIFT },
{ XK_dollar, 1, 1, NO_SHIFT },
{ XK_asterisk, 5, 7, NO_SHIFT },
{ XK_colon, 5, 4, NO_SHIFT },
{ XK_comma, 7, 3, NO_SHIFT },
{ XK_quotedbl, 1, 0, NO_SHIFT },
{ XK_sterling, 1, 3, NO_SHIFT },
{ XK_backslash, 1, 3, NO_SHIFT },
{ XK_bar, 1, 3, NO_SHIFT },
{ XK_numbersign, 0, 1, NO_SHIFT },
{ XK_exclam, 0, 0, NO_SHIFT },
{ XK_percent, 0, 2, NO_SHIFT },
{ XK_plus, 7, 7, NO_SHIFT },
{ XK_underscore, 0, 5, NO_SHIFT },
{ XK_ampersand, 0, 3, NO_SHIFT },
{ XK_semicolon, 6, 4, NO_SHIFT },
{ XK_minus, 8, 7, NO_SHIFT },
{ XK_equal, 9, 7, NO_SHIFT },
{ XK_space, 9, 2, NO_SHIFT },
{ XK_greater, 8, 4, NO_SHIFT },
{ XK_less, 9, 3, NO_SHIFT },
{ XK_period, 9, 6, NO_SHIFT },
{ XK_at, 8, 1, NO_SHIFT },
{ XK_asciicircum, 2, 5, NO_SHIFT }, /* up arrow (US kbd) */
{ XK_asciitilde, 2, 5, NO_SHIFT }, /* up arrow (scandinavian kbd) */
/* shifted keys */
{ XK_Left, 0, 7, VIRTUAL_SHIFT },
{ XK_Up, 1, 6, VIRTUAL_SHIFT },
{ XK_Insert, 1, 7, VIRTUAL_SHIFT },
{ XK_Clear, 0, 6, VIRTUAL_SHIFT },
{ XK_grave, 8, 1, VIRTUAL_SHIFT }, /* shifted @ */
{ XK_W, 3, 0, VIRTUAL_SHIFT },
{ XK_A, 4, 0, VIRTUAL_SHIFT },
{ XK_Z, 6, 0, VIRTUAL_SHIFT },
{ XK_S, 5, 0, VIRTUAL_SHIFT },
{ XK_E, 2, 1, VIRTUAL_SHIFT },
{ XK_R, 3, 1, VIRTUAL_SHIFT },
{ XK_D, 4, 1, VIRTUAL_SHIFT },
{ XK_C, 6, 1, VIRTUAL_SHIFT },
{ XK_F, 5, 1, VIRTUAL_SHIFT },
{ XK_T, 2, 2, VIRTUAL_SHIFT },
{ XK_X, 7, 0, VIRTUAL_SHIFT },
{ XK_Y, 3, 2, VIRTUAL_SHIFT },
{ XK_G, 4, 2, VIRTUAL_SHIFT },
{ XK_B, 6, 2, VIRTUAL_SHIFT },
{ XK_H, 5, 2, VIRTUAL_SHIFT },
{ XK_U, 2, 3, VIRTUAL_SHIFT },
{ XK_V, 7, 1, VIRTUAL_SHIFT },
{ XK_I, 3, 3, VIRTUAL_SHIFT },
{ XK_J, 4, 3, VIRTUAL_SHIFT },
{ XK_M, 6, 3, VIRTUAL_SHIFT },
{ XK_K, 5, 3, VIRTUAL_SHIFT },
{ XK_O, 2, 4, VIRTUAL_SHIFT },
{ XK_N, 7, 2, VIRTUAL_SHIFT },
{ XK_P, 3, 4, VIRTUAL_SHIFT },
{ XK_L, 4, 4, VIRTUAL_SHIFT },
{ XK_Q, 2, 0, VIRTUAL_SHIFT },
{ 0, 0, 0, 0 }
};
/* static keyconv *keyconvmap = pet80map; */
/* static int CONV_KEYS = sizeof(pet80map) / sizeof(keyconv); */
#endif /* PET */
#ifndef PET
/* #define CONV_KEYS (sizeof(keyconvmap)/sizeof(keyconv)) */
#endif
#endif /*******************************************************************/
static keyconv *keyconvmap = NULL;
#endif /* !_KBDEF_X_H */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.