Source to bsd/dev/ppc/PPCKeymap.c
/*
* Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
*
* @APPLE_LICENSE_HEADER_START@
*
* "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
* Reserved. This file contains Original Code and/or Modifications of
* Original Code as defined in and that are subject to the Apple Public
* Source License Version 1.0 (the 'License'). You may not use this file
* except in compliance with the License. Please obtain a copy of the
* License at http://www.apple.com/publicsource and read it before using
* this file.
*
* The Original Code and all software distributed under the License are
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
* License for the specific language governing rights and limitations
* under the License."
*
* @APPLE_LICENSE_HEADER_END@
*/
/* Copyright (c) 1992 NeXT Computer, Inc. All rights reserverd
*
* PCKeymap.c - Declaration of the PC's default keymap string
*
* HISTORY
* 07 Dec 1992 Joe Pasqua
* Created true PC version.
* 11 April 1997 Simon Douglas
* Apple ADB version.
*/
#import <bsd/dev/event.h>
#import <bsd/dev/ev_keymap.h>
#import <bsd/dev/ev_keymap.h>
#import "PPCKeyboardPriv.h"
#define CTRL(c) ((c)&037)
static const unsigned char PPCDefaultKeymap[] = {
0x00, 0x00, /* char file format */
6, /* Modifier key definitions */
NX_MODIFIERKEY_SHIFT, 0x02, ADBK_SHIFT, ADBK_SHIFT_R, /* Shift, 2 keys */
NX_MODIFIERKEY_CONTROL, 0x02, ADBK_CONTROL, ADBK_CONTROL_R, /* Ctrl, 2 keys */
NX_MODIFIERKEY_ALTERNATE, 0x02, ADBK_OPTION, ADBK_OPTION_R, /* Alt, 2 keys */
NX_MODIFIERKEY_COMMAND, 0x01, ADBK_FLOWER, /* Cmd, 1 key */
NX_MODIFIERKEY_NUMERICPAD, 0x15, /* NumPad, 21 key(s) */
0x52, 0x41, 0x4c, // 0 . Enter
0x53, 0x54, 0x55, // 1 2 3
0x56, 0x57, 0x58, 0x45, // 4 5 6 +
0x59, 0x5b, 0x5c, // 7 8 9
ADBK_NUMLOCK, 0x51, 0x4b, 0x43,
ADBK_UP, ADBK_DOWN, ADBK_LEFT, ADBK_RIGHT,
NX_MODIFIERKEY_HELP, 0x01, 0x72, /* The help key */
93, /* Key Definitions */
/* Key 0x00 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'a', /* no flags */
NX_ASCIISET, 'A', /* AlphaShift */
NX_ASCIISET, CTRL('A'), /* Ctrl */
NX_ASCIISET, CTRL('A'), /* AlphaShift Ctrl */
NX_ASCIISET, 0xca, /* Alt */
NX_ASCIISET, 0xc7, /* AlphaShift Alt */
NX_ASCIISET, CTRL('A'), /* Ctrl Alt */
NX_ASCIISET, CTRL('A'), /* AlphaShift Ctrl Alt */
/* Key 0x01 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 's', /* no flags */
NX_ASCIISET, 'S', /* AlphaShift */
NX_ASCIISET, CTRL('S'), /* Ctrl */
NX_ASCIISET, CTRL('S'), /* AlphaShift Ctrl */
NX_ASCIISET, 0xfb, /* Alt */
NX_ASCIISET, 0xa7, /* AlphaShift Alt */
NX_ASCIISET, CTRL('S'), /* Ctrl Alt */
NX_ASCIISET, CTRL('S'), /* AlphaShift Ctrl Alt */
/* Key 0x02 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'd', /* no flags */
NX_ASCIISET, 'D', /* AlphaShift */
NX_ASCIISET, CTRL('D'), /* Ctrl */
NX_ASCIISET, CTRL('D'), /* AlphaShift Ctrl */
NX_SYMBOLSET, 0x44, /* Alt */
NX_SYMBOLSET, 0xb6, /* AlphaShift Alt */
NX_ASCIISET, CTRL('D'), /* Ctrl Alt */
NX_ASCIISET, CTRL('D'), /* AlphaShift Ctrl Alt */
/* Key 0x03 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'f', /* no flags */
NX_ASCIISET, 'F', /* AlphaShift */
NX_ASCIISET, CTRL('F'), /* Ctrl */
NX_ASCIISET, CTRL('F'), /* AlphaShift Ctrl */
NX_ASCIISET, 0xa6, /* Alt */
NX_SYMBOLSET, 0xac, /* AlphaShift Alt */
NX_ASCIISET, CTRL('F'), /* Ctrl Alt */
NX_ASCIISET, CTRL('F'), /* AlphaShift Ctrl Alt */
/* Key 0x04 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'h', /* no flags */
NX_ASCIISET, 'H', /* AlphaShift */
NX_ASCIISET, '\b', /* Ctrl */
NX_ASCIISET, '\b', /* AlphaShift Ctrl */
NX_ASCIISET, 0xe3, /* Alt */
NX_ASCIISET, 0xeb, /* AlphaShift Alt */
NX_ASCIISET, CTRL('@'), /* Ctrl Alt */
0x18, CTRL('@'), /* AlphaShift Ctrl Alt */
/* Key 0x05 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'g', /* no flags */
NX_ASCIISET, 'G', /* AlphaShift */
NX_ASCIISET, CTRL('G'), /* Ctrl */
NX_ASCIISET, CTRL('G'), /* AlphaShift Ctrl */
NX_ASCIISET, 0xf1, /* Alt */
NX_ASCIISET, 0xe1, /* AlphaShift Alt */
NX_ASCIISET, CTRL('G'), /* Ctrl Alt */
NX_ASCIISET, CTRL('G'), /* AlphaShift Ctrl Alt */
/* Key 0x06 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'z', /* no flags */
NX_ASCIISET, 'Z', /* AlphaShift */
NX_ASCIISET, CTRL('Z'), /* Ctrl */
NX_ASCIISET, CTRL('Z'), /* AlphaShift Ctrl */
NX_ASCIISET, 0xcf, /* Alt */
NX_SYMBOLSET, 0x57, /* AlphaShift Alt */
NX_ASCIISET, CTRL('Z'), /* Ctrl Alt */
NX_ASCIISET, CTRL('Z'), /* AlphaShift Ctrl Alt */
/* Key 0x07 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'x', /* no flags */
NX_ASCIISET, 'X', /* AlphaShift */
NX_ASCIISET, CTRL('X'), /* Ctrl */
NX_ASCIISET, CTRL('X'), /* AlphaShift Ctrl */
NX_SYMBOLSET, 0xb4, /* Alt */
NX_SYMBOLSET, 0xce, /* AlphaShift Alt */
NX_ASCIISET, CTRL('X'), /* Ctrl Alt */
NX_ASCIISET, CTRL('X'), /* AlphaShift Ctrl Alt */
/* Key 0x08 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'c', /* no flags */
NX_ASCIISET, 'C', /* AlphaShift */
NX_ASCIISET, CTRL('C'), /* Ctrl */
NX_ASCIISET, CTRL('C'), /* AlphaShift Ctrl */
NX_SYMBOLSET, 0xe3, /* Alt */
NX_SYMBOLSET, 0xd3, /* AlphaShift Alt */
NX_ASCIISET, CTRL('C'), /* Ctrl Alt */
NX_ASCIISET, CTRL('C'), /* AlphaShift Ctrl Alt */
/* Key 0x09 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'v', /* no flags */
NX_ASCIISET, 'V', /* AlphaShift */
NX_ASCIISET, CTRL('V'), /* Ctrl */
NX_ASCIISET, CTRL('V'), /* AlphaShift Ctrl */
NX_SYMBOLSET, 0xd6, /* Alt */
NX_SYMBOLSET, 0xe0, /* AlphaShift Alt */
NX_ASCIISET, CTRL('V'), /* Ctrl Alt */
NX_ASCIISET, CTRL('V'), /* AlphaShift Ctrl Alt */
0xff, /* Key 0x0a unassigned */
/* Key 0x0b modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'b', /* no flags */
NX_ASCIISET, 'B', /* AlphaShift */
NX_ASCIISET, CTRL('B'), /* Ctrl */
NX_ASCIISET, CTRL('B'), /* AlphaShift Ctrl */
NX_SYMBOLSET, 0xe5, /* Alt */
NX_SYMBOLSET, 0xf2, /* AlphaShift Alt */
NX_ASCIISET, CTRL('B'), /* Ctrl Alt */
NX_ASCIISET, CTRL('B'), /* AlphaShift Ctrl Alt */
/* Key 0x0c modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'q', /* no flags */
NX_ASCIISET, 'Q', /* AlphaShift */
NX_ASCIISET, CTRL('Q'), /* Ctrl */
NX_ASCIISET, CTRL('Q'), /* AlphaShift Ctrl */
NX_ASCIISET, 0xfa, /* Alt */
NX_ASCIISET, 0xea, /* AlphaShift Alt */
NX_ASCIISET, CTRL('Q'), /* Ctrl Alt */
NX_ASCIISET, CTRL('Q'), /* AlphaShift Ctrl Alt */
/* Key 0x0d modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'w', /* no flags */
NX_ASCIISET, 'W', /* AlphaShift */
NX_ASCIISET, CTRL('W'), /* Ctrl */
NX_ASCIISET, CTRL('W'), /* AlphaShift Ctrl */
NX_SYMBOLSET, 0xc8, /* Alt */
NX_SYMBOLSET, 0xc7, /* AlphaShift Alt */
NX_ASCIISET, CTRL('W'), /* Ctrl Alt */
NX_ASCIISET, CTRL('W'), /* AlphaShift Ctrl Alt */
/* Key 0x0e modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'e', /* no flags */
NX_ASCIISET, 'E', /* AlphaShift */
NX_ASCIISET, CTRL('E'), /* Ctrl */
NX_ASCIISET, CTRL('E'), /* AlphaShift Ctrl */
NX_ASCIISET, 0xc2, /* Alt */
NX_ASCIISET, 0xc5, /* AlphaShift Alt */
NX_ASCIISET, CTRL('E'), /* Ctrl Alt */
NX_ASCIISET, CTRL('E'), /* AlphaShift Ctrl Alt */
/* Key 0x0f modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'r', /* no flags */
NX_ASCIISET, 'R', /* AlphaShift */
NX_ASCIISET, CTRL('R'), /* Ctrl */
NX_ASCIISET, CTRL('R'), /* AlphaShift Ctrl */
NX_SYMBOLSET, 0xe2, /* Alt */
NX_SYMBOLSET, 0xd2, /* AlphaShift Alt */
NX_ASCIISET, CTRL('R'), /* Ctrl Alt */
NX_ASCIISET, CTRL('R'), /* AlphaShift Ctrl Alt */
/* Key 0x10 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'y', /* no flags */
NX_ASCIISET, 'Y', /* AlphaShift */
NX_ASCIISET, CTRL('Y'), /* Ctrl */
NX_ASCIISET, CTRL('Y'), /* AlphaShift Ctrl */
NX_ASCIISET, 0xa5, /* Alt */
NX_SYMBOLSET, 0xdb, /* AlphaShift Alt */
NX_ASCIISET, CTRL('Y'), /* Ctrl Alt */
NX_ASCIISET, CTRL('Y'), /* AlphaShift Ctrl Alt */
/* Key 0x11 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 't', /* no flags */
NX_ASCIISET, 'T', /* AlphaShift */
NX_ASCIISET, CTRL('T'), /* Ctrl */
NX_ASCIISET, CTRL('T'), /* AlphaShift Ctrl */
NX_SYMBOLSET, 0xe4, /* Alt */
NX_SYMBOLSET, 0xd4, /* AlphaShift Alt */
NX_ASCIISET, CTRL('T'), /* Ctrl Alt */
NX_ASCIISET, CTRL('T'), /* AlphaShift Ctrl Alt */
/* Key 0x12 modifier key mask bits (0x0a) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '1', /* no flags */
NX_ASCIISET, '!', /* Shift */
NX_SYMBOLSET, 0xad, /* Alt */
NX_ASCIISET, 0xa1, /* Shift Alt */
/* Key 0x13 modifier key mask bits (0x0e) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '2', /* no flags */
NX_ASCIISET, '@', /* Shift */
NX_ASCIISET, CTRL('@'), /* Ctrl */
NX_ASCIISET, CTRL('@'), /* Shift Ctrl */
NX_ASCIISET, 0xb2, /* Alt */
NX_ASCIISET, 0xb3, /* Shift Alt */
NX_ASCIISET, CTRL('@'), /* Ctrl Alt */
NX_ASCIISET, CTRL('@'), /* Shift Ctrl Alt */
/* Key 0x14 modifier key mask bits (0x0a) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '3', /* no flags */
NX_ASCIISET, '#', /* Shift */
NX_ASCIISET, 0xa3, /* Alt */
NX_SYMBOLSET, 0xba, /* Shift Alt */
/* Key 0x15 modifier key mask bits (0x0a) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '4', /* no flags */
NX_ASCIISET, '$', /* Shift */
NX_ASCIISET, 0xa2, /* Alt */
NX_ASCIISET, 0xa8, /* Shift Alt */
/* Key 0x16 modifier key mask bits (0x0e) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '6', /* no flags */
NX_ASCIISET, '^', /* Shift */
NX_ASCIISET, CTRL('^'), /* Ctrl */
NX_ASCIISET, CTRL('^'), /* Shift Ctrl */
NX_ASCIISET, 0xb6, /* Alt */
NX_ASCIISET, 0xc3, /* Shift Alt */
NX_ASCIISET, CTRL('^'), /* Ctrl Alt */
NX_ASCIISET, CTRL('^'), /* Shift Ctrl Alt */
/* Key 0x17 modifier key mask bits (0x0a) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '5', /* no flags */
NX_ASCIISET, '%', /* Shift */
NX_SYMBOLSET, 0xa5, /* Alt */
NX_ASCIISET, 0xbd, /* Shift Alt */
/* Key 0x18 modifier key mask bits (0x0a) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '=', /* no flags */
NX_ASCIISET, '+', /* Shift */
NX_SYMBOLSET, 0xb9, /* Alt */
NX_SYMBOLSET, 0xb1, /* Shift Alt */
/* Key 0x19 modifier key mask bits (0x0a) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '9', /* no flags */
NX_ASCIISET, '(', /* Shift */
NX_ASCIISET, 0xac, /* Alt */
NX_ASCIISET, 0xab, /* Shift Alt */
/* Key 0x1a modifier key mask bits (0x0a) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '7', /* no flags */
NX_ASCIISET, '&', /* Shift */
NX_ASCIISET, 0xb7, /* Alt */
NX_SYMBOLSET, 0xab, /* Shift Alt */
/* Key 0x1b modifier key mask bits (0x0e) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '-', /* no flags */
NX_ASCIISET, '_', /* Shift */
NX_ASCIISET, CTRL('_'), /* Ctrl */
NX_ASCIISET, CTRL('_'), /* Shift Ctrl */
NX_ASCIISET, 0xb1, /* Alt */
NX_ASCIISET, 0xd0, /* Shift Alt */
NX_ASCIISET, CTRL('_'), /* Ctrl Alt */
NX_ASCIISET, CTRL('_'), /* Shift Ctrl Alt */
/* Key 0x1c modifier key mask bits (0x0a) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '8', /* no flags */
NX_ASCIISET, '*', /* Shift */
NX_SYMBOLSET, 0xb0, /* Alt */
NX_ASCIISET, 0xb4, /* Shift Alt */
/* Key 0x1d modifier key mask bits (0x0a) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '0', /* no flags */
NX_ASCIISET, ')', /* Shift */
NX_ASCIISET, 0xad, /* Alt */
NX_ASCIISET, 0xbb, /* Shift Alt */
/* Key 0x1e modifier key mask bits (0x0e) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, ']', /* no flags */
NX_ASCIISET, '}', /* Shift */
NX_ASCIISET, CTRL(']'), /* Ctrl */
NX_ASCIISET, CTRL(']'), /* Shift Ctrl */
NX_ASCIISET, '\'', /* Alt */
NX_ASCIISET, 0xba, /* Shift Alt */
NX_ASCIISET, CTRL(']'), /* Ctrl Alt */
NX_ASCIISET, CTRL(']'), /* Shift Ctrl Alt */
/* Key 0x1f modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'o', /* no flags */
NX_ASCIISET, 'O', /* AlphaShift */
NX_ASCIISET, CTRL('O'), /* Ctrl */
NX_ASCIISET, CTRL('O'), /* AlphaShift Ctrl */
NX_ASCIISET, 0xf9, /* Alt */
NX_ASCIISET, 0xe9, /* AlphaShift Alt */
NX_ASCIISET, CTRL('O'), /* Ctrl Alt */
NX_ASCIISET, CTRL('O'), /* AlphaShift Ctrl Alt */
/* Key 0x20 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'u', /* no flags */
NX_ASCIISET, 'U', /* AlphaShift */
NX_ASCIISET, CTRL('U'), /* Ctrl */
NX_ASCIISET, CTRL('U'), /* AlphaShift Ctrl */
NX_ASCIISET, 0xc8, /* Alt */
NX_ASCIISET, 0xcd, /* AlphaShift Alt */
NX_ASCIISET, CTRL('U'), /* Ctrl Alt */
NX_ASCIISET, CTRL('U'), /* AlphaShift Ctrl Alt */
/* Key 0x21 modifier key mask bits (0x0e) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '[', /* no flags */
NX_ASCIISET, '{', /* Shift */
NX_ASCIISET, CTRL('['), /* Ctrl */
NX_ASCIISET, CTRL('['), /* Shift Ctrl */
NX_ASCIISET, '`', /* Alt */
NX_ASCIISET, 0xaa, /* Shift Alt */
NX_ASCIISET, CTRL('['), /* Ctrl Alt */
NX_ASCIISET, CTRL('['), /* Shift Ctrl Alt */
/* Key 0x22 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'i', /* no flags */
NX_ASCIISET, 'I', /* AlphaShift */
NX_ASCIISET, '\t', /* Ctrl */
NX_ASCIISET, '\t', /* AlphaShift Ctrl */
NX_ASCIISET, 0xc1, /* Alt */
NX_ASCIISET, 0xf5, /* AlphaShift Alt */
NX_ASCIISET, '\t', /* Ctrl Alt */
NX_ASCIISET, '\t', /* AlphaShift Ctrl Alt */
/* Key 0x23 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'p', /* no flags */
NX_ASCIISET, 'P', /* AlphaShift */
NX_ASCIISET, CTRL('P'), /* Ctrl */
NX_ASCIISET, CTRL('P'), /* AlphaShift Ctrl */
NX_SYMBOLSET, 0x70, /* Alt */
NX_SYMBOLSET, 0x50, /* AlphaShift Alt */
NX_ASCIISET, CTRL('P'), /* Ctrl Alt */
NX_ASCIISET, CTRL('P'), /* AlphaShift Ctrl Alt */
/* Key 0x24 modifier key mask bits (0x10) */
(1<<NX_MODIFIERKEY_COMMAND),
NX_ASCIISET, '\r', /* no flags */
NX_ASCIISET, CTRL('C'), /* Cmd */
/* Key 0x25 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'l', /* no flags */
NX_ASCIISET, 'L', /* AlphaShift */
NX_ASCIISET, '\f', /* Ctrl */
NX_ASCIISET, '\f', /* AlphaShift Ctrl */
NX_ASCIISET, 0xf8, /* Alt */
NX_ASCIISET, 0xe8, /* AlphaShift Alt */
NX_ASCIISET, '\f', /* Ctrl Alt */
NX_ASCIISET, '\f', /* AlphaShift Ctrl Alt */
/* Key 0x26 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'j', /* no flags */
NX_ASCIISET, 'J', /* AlphaShift */
NX_ASCIISET, '\n', /* Ctrl */
NX_ASCIISET, '\n', /* AlphaShift Ctrl */
NX_ASCIISET, 0xc6, /* Alt */
NX_ASCIISET, 0xae, /* AlphaShift Alt */
NX_ASCIISET, '\n', /* Ctrl Alt */
NX_ASCIISET, '\n', /* AlphaShift Ctrl Alt */
/* Key 0x27 modifier key mask bits (0x0a) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '\'', /* no flags */
NX_ASCIISET, '"', /* Shift */
NX_ASCIISET, 0xa9, /* Alt */
NX_SYMBOLSET, 0xae, /* Shift Alt */
/* Key 0x28 modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'k', /* no flags */
NX_ASCIISET, 'K', /* AlphaShift */
NX_ASCIISET, CTRL('K'), /* Ctrl */
NX_ASCIISET, CTRL('K'), /* AlphaShift Ctrl */
NX_ASCIISET, 0xce, /* Alt */
NX_ASCIISET, 0xaf, /* AlphaShift Alt */
NX_ASCIISET, CTRL('K'), /* Ctrl Alt */
NX_ASCIISET, CTRL('K'), /* AlphaShift Ctrl Alt */
/* Key 0x29 modifier key mask bits (0x0a) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, ';', /* no flags */
NX_ASCIISET, ':', /* Shift */
NX_SYMBOLSET, 0xb2, /* Alt */
NX_SYMBOLSET, 0xa2, /* Shift Alt */
/* Key 0x2a modifier key mask bits (0x0e) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '\\', /* no flags */
NX_ASCIISET, '|', /* Shift */
NX_ASCIISET, CTRL('\\'), /* Ctrl */
NX_ASCIISET, CTRL('\\'), /* Shift Ctrl */
NX_ASCIISET, 0xe3, /* Alt */
NX_ASCIISET, 0xeb, /* Shift Alt */
NX_ASCIISET, CTRL('\\'), /* Ctrl Alt */
NX_ASCIISET, CTRL('\\'), /* Shift Ctrl Alt */
/* Key 0x2b modifier key mask bits (0x0a) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, ',', /* no flags */
NX_ASCIISET, '<', /* Shift */
NX_ASCIISET, 0xcb, /* Alt */
NX_SYMBOLSET, 0xa3, /* Shift Alt */
/* Key 0x2c modifier key mask bits (0x0a) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '/', /* no flags */
NX_ASCIISET, '?', /* Shift */
NX_SYMBOLSET, 0xb8, /* Alt */
NX_ASCIISET, 0xbf, /* Shift Alt */
/* Key 0x2d modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'n', /* no flags */
NX_ASCIISET, 'N', /* AlphaShift */
NX_ASCIISET, CTRL('N'), /* Ctrl */
NX_ASCIISET, CTRL('N'), /* AlphaShift Ctrl */
NX_ASCIISET, 0xc4, /* Alt */
NX_SYMBOLSET, 0xaf, /* AlphaShift Alt */
NX_ASCIISET, CTRL('N'), /* Ctrl Alt */
NX_ASCIISET, CTRL('N'), /* AlphaShift Ctrl Alt */
/* Key 0x2e modifier key mask bits (0x0d) */
(1<<NX_MODIFIERKEY_ALPHALOCK)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, 'm', /* no flags */
NX_ASCIISET, 'M', /* AlphaShift */
NX_ASCIISET, '\r', /* Ctrl */
NX_ASCIISET, '\r', /* AlphaShift Ctrl */
NX_SYMBOLSET, 0x6d, /* Alt */
NX_SYMBOLSET, 0xd8, /* AlphaShift Alt */
NX_ASCIISET, '\r', /* Ctrl Alt */
NX_ASCIISET, '\r', /* AlphaShift Ctrl Alt */
/* Key 0x2f modifier key mask bits (0x0a) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '.', /* no flags */
NX_ASCIISET, '>', /* Shift */
NX_ASCIISET, 0xbc, /* Alt */
NX_SYMBOLSET, 0xb3, /* Shift Alt */
/* Key 0x30 modifier key mask bits (0x02) */
(1<<NX_MODIFIERKEY_SHIFT),
NX_ASCIISET, '\t', /* no flags */
NX_ASCIISET, CTRL('Y'), /* Shift */
/* Key 0x31 modifier key mask bits (0x0c) */
(1<<NX_MODIFIERKEY_CONTROL)|(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, ' ', /* no flags */
NX_ASCIISET, CTRL('@'), /* Ctrl */
NX_ASCIISET, 0x80, /* Alt */
NX_ASCIISET, CTRL('@'), /* Ctrl Alt */
/* Key 0x32 modifier key mask bits (0x02) */
(1<<NX_MODIFIERKEY_SHIFT),
NX_ASCIISET, '`', /* no flags */
NX_ASCIISET, '~', /* Shift */
/* Key 0x33 modifier key mask bits (0x02) */
(1<<NX_MODIFIERKEY_SHIFT),
NX_ASCIISET, 0x7f, /* no flags */
NX_ASCIISET, '\b', /* Shift */
0xff, /* Key 0x34 unassigned */
/* Key 0x35 modifier key mask bits (0x02) */
(1<<NX_MODIFIERKEY_SHIFT),
NX_ASCIISET, CTRL('['), /* no flags */
NX_ASCIISET, '~', /* Shift */
0xff, /* Key 0x36 unassigned */
0xff, /* Key 0x37 unassigned */
0xff, /* Key 0x38 unassigned */
0xff, /* Key 0x39 unassigned */
0xff, /* Key 0x3a unassigned */
/* Key 0x3b modifier key mask bits (0x00) LEFT */
0,
NX_SYMBOLSET, 0xac, /* all */
/* Key 0x3c modifier key mask bits (0x00) RIGHT */
0,
NX_SYMBOLSET, 0xae, /* all */
/* Key 0x3d modifier key mask bits (0x00) DOWN */
0,
NX_SYMBOLSET, 0xaf, /* all */
/* Key 0x3e modifier key mask bits (0x00) UP */
0,
NX_SYMBOLSET, 0xad, /* all */
0xff, /* Key 0x3f unassigned */
0xff, /* Key 0x40 unassigned */
/* Key 0x41 modifier key mask bits (0x00) */
0,
NX_ASCIISET, '.', /* all */
0xff, /* Key 0x42 unassigned */
/* Key 0x43 modifier key mask bits (0x00) */
0,
NX_ASCIISET, '*', /* all */
0xff, /* Key 0x44 unassigned */
/* Key 0x45 modifier key mask bits (0x00) */
0,
NX_ASCIISET, '+', /* all */
0xff, /* Key 0x46 unassigned */
0xff, /* Key 0x47 unassigned */
0xff, /* Key 0x48 unassigned */
0xff, /* Key 0x49 unassigned */
0xff, /* Key 0x4a unassigned */
/* Key 0x4b modifier key mask bits (0x0e) */
(1<<NX_MODIFIERKEY_SHIFT)|(1<<NX_MODIFIERKEY_CONTROL)|
(1<<NX_MODIFIERKEY_ALTERNATE),
NX_ASCIISET, '/', /* no flags */
NX_ASCIISET, '\\', /* Shift */
NX_ASCIISET, '/', /* Ctrl */
NX_ASCIISET, CTRL('\\'), /* Shift Ctrl */
NX_ASCIISET, '/', /* Alt */
NX_ASCIISET, '\\', /* Shift Alt */
NX_ASCIISET, CTRL('@'), /* Ctrl Alt */
0x0a, CTRL('@'), /* Shift Ctrl Alt */
/* Key 0x4C modifier key mask bits (0x10) Num Enter */
(1<<NX_MODIFIERKEY_COMMAND),
NX_ASCIISET, '\r', /* no flags */
NX_ASCIISET, CTRL('C'), /* Cmd */
0xff, /* Key 0x4d unassigned */
/* Key 0x4e modifier key mask bits (0x00) */
0,
NX_SYMBOLSET, 0x2d, /* all */
0xff, /* Key 0x4f unassigned */
0xff, /* Key 0x50 unassigned */
/* Key 0x51 modifier key mask bits (0x00) */
0,
NX_ASCIISET, '=', /* all */
/* Key 0x52 modifier key mask bits (0x00) */
0,
NX_ASCIISET, '0', /* all */
/* Key 0x53 modifier key mask bits (0x00) */
0,
NX_ASCIISET, '1', /* all */
/* Key 0x54 modifier key mask bits (0x00) */
0,
NX_ASCIISET, '2', /* all */
/* Key 0x55 modifier key mask bits (0x00) */
0,
NX_ASCIISET, '3', /* all */
/* Key 0x56 modifier key mask bits (0x00) */
0,
NX_ASCIISET, '4', /* all */
/* Key 0x57 modifier key mask bits (0x00) */
0,
NX_ASCIISET, '5', /* all */
/* Key 0x58 modifier key mask bits (0x00) */
0,
NX_ASCIISET, '6', /* all */
/* Key 0x59 modifier key mask bits (0x00) */
0,
NX_ASCIISET, '7', /* all */
0xff, /* Key 0x5a unassigned */
/* Key 0x5b modifier key mask bits (0x00) */
0,
NX_ASCIISET, '8', /* all */
/* Key 0x5c modifier key mask bits (0x00) */
0,
NX_ASCIISET, '9', /* all */
0, /* Sequence Definitions */
9, /* special keys */
#if 0
0x00, 0x68, /* Sound Up */
0x01, 0x69, /* Sound Down */
0x02, 0x6A, /* Brightness Up */
0x03, 0x6B, /* Brightness Down */
#endif
0x04, ADBK_CAPSLOCK, /* Caps Lock */
0x05, 0x3B, /* Help Key */ // FIXME
0x06, ADBK_POWER, /* Power Key */
0x07, ADBK_UP, /* Up Arrow */
0x08, ADBK_DOWN /* Down Arrow */
};