First code release
This commit is contained in:
BIN
docs/PS2 Keyboard.pdf
Normal file
BIN
docs/PS2 Keyboard.pdf
Normal file
Binary file not shown.
BIN
docs/PS_2 Mouse Interfacing.pdf
Normal file
BIN
docs/PS_2 Mouse Interfacing.pdf
Normal file
Binary file not shown.
BIN
docs/atkeyboard.pdf
Normal file
BIN
docs/atkeyboard.pdf
Normal file
Binary file not shown.
@@ -68,7 +68,7 @@ menu "MZ25Key Configuration"
|
||||
GPIO number (IOxx) used to connect the MZ-2500/2800 4bit bidirectional data bus Bit 2 with the ESP32. See schematic for actual used value. May change with revisions.
|
||||
|
||||
config MZ_KDB3
|
||||
int "KDB1 GPIO pin number"
|
||||
int "KDB3 GPIO pin number"
|
||||
range 0 46
|
||||
default 27
|
||||
help
|
||||
@@ -149,6 +149,72 @@ menu "MZ25Key Configuration"
|
||||
|
||||
endmenu
|
||||
|
||||
menu "WiFi"
|
||||
|
||||
config MZ_WIFI_ENABLED
|
||||
bool "Enable WiFi connectivity"
|
||||
default false
|
||||
help
|
||||
Allow interface to act as an Access Point to allow external connectivity. Once connected the WiFi is intended to be used for making
|
||||
key mapping changes.
|
||||
This is an experimental feature and under development.
|
||||
|
||||
config MZ_WIFI_EN_KEY
|
||||
int "WiFi Enable GPIO pin number"
|
||||
range 0 46
|
||||
default 34
|
||||
depends on MZ_WIFI_ENABLED
|
||||
help
|
||||
GPIO number (IOxx) used by the WiFi En switch to enable wifi connectivity.
|
||||
|
||||
config MZ_SSID
|
||||
string "Default SSID in Access Point Mode"
|
||||
default "mz25key"
|
||||
depends on MZ_WIFI_ENABLED
|
||||
help
|
||||
The SSID broadcast whilst the mz25key module advertises wireless connectivity.
|
||||
|
||||
config MZ_DEFAULT_SSID_PWD
|
||||
string "Default password for initial connection to Access Point Mode"
|
||||
default "mz25key"
|
||||
depends on MZ_WIFI_ENABLED
|
||||
help
|
||||
The initial password needed to connect and logon to access point.
|
||||
|
||||
config MZ_WIFI_MAX_RETRIES
|
||||
int "Maximum number of connection retries."
|
||||
range 0 100
|
||||
default 10
|
||||
depends on MZ_WIFI_ENABLED
|
||||
help
|
||||
Number of retries allowed for making a wireless connection with a client.
|
||||
|
||||
config MZ_WIFI_AP_CHANNEL
|
||||
int "Channel of the Access Point."
|
||||
range 0 13
|
||||
default 7
|
||||
depends on MZ_WIFI_ENABLED
|
||||
help
|
||||
Channel use by the Access Point, default is 7.
|
||||
|
||||
config MZ_WIFI_SSID_HIDDEN
|
||||
int "Broadcast SSID?"
|
||||
range 0 1
|
||||
default 0
|
||||
depends on MZ_WIFI_ENABLED
|
||||
help
|
||||
Broadcast the SSID (0) or hide it (1).
|
||||
|
||||
config MZ_WIFI_MAX_CONNECTIONS
|
||||
int "Maximum sinultaneous connections."
|
||||
range 0 20
|
||||
default 5
|
||||
depends on MZ_WIFI_ENABLED
|
||||
help
|
||||
Maximum number of simultaneous open connections supported.
|
||||
|
||||
endmenu
|
||||
|
||||
menu "Debug Options"
|
||||
|
||||
menu "OLED"
|
||||
|
||||
@@ -12,6 +12,13 @@
|
||||
// Copyright: (c) 2019-2022 Philip Smart <philip.smart@net2net.org>
|
||||
//
|
||||
// History: Jan 2022 - Initial write.
|
||||
// Feb 2022 - Added parameterisation to the mapping table such that keymaps
|
||||
// are applied according to machine selected to cater for differences
|
||||
// between the MZ2500/2000/80B. Also added release parameters which are
|
||||
// needed when say SHIFT+Key on PS/2 is required whereas on the MZ
|
||||
// only the mapped key. As SHIFT is an override and will be presented to
|
||||
// the MZ, it needs to be deactivated before applying a mapped key then
|
||||
// reactivated after completion.
|
||||
//
|
||||
// Notes: See Makefile to enable/disable conditional components
|
||||
//
|
||||
@@ -73,27 +80,39 @@
|
||||
//
|
||||
//
|
||||
|
||||
#define MZ_ALL 0
|
||||
#define MZ_80B 1
|
||||
#define MZ_2000 2
|
||||
#define MZ_2500 3
|
||||
#define PSMZTBL_KEYPOS 0
|
||||
#define PSMZTBL_SHIFTPOS 1
|
||||
#define PSMZTBL_FUNCPOS 2
|
||||
#define PSMZTBL_CTRLPOS 3
|
||||
#define PSMZTBL_ALTPOS 4
|
||||
#define PSMZTBL_ALTGRPOS 5
|
||||
#define PSMZTBL_GUIPOS 6
|
||||
#define PSMZTBL_MXROW1 7
|
||||
#define PSMZTBL_MXKEY1 8
|
||||
#define PSMZTBL_MXROW2 9
|
||||
#define PSMZTBL_MXKEY2 10
|
||||
#define PSMZTBL_MXROW3 11
|
||||
#define PSMZTBL_MXKEY3 12
|
||||
#define PSMZTBL_MAXROWS 13
|
||||
#define PSMZTBL_MACHINE 1
|
||||
#define PSMZTBL_SHIFTPOS 2
|
||||
#define PSMZTBL_FUNCPOS 3
|
||||
#define PSMZTBL_CTRLPOS 4
|
||||
#define PSMZTBL_ALTPOS 5
|
||||
#define PSMZTBL_ALTGRPOS 6
|
||||
#define PSMZTBL_GUIPOS 7
|
||||
#define PSMZTBL_MK_ROW1 8
|
||||
#define PSMZTBL_MK_KEY1 9
|
||||
#define PSMZTBL_MK_ROW2 10
|
||||
#define PSMZTBL_MK_KEY2 11
|
||||
#define PSMZTBL_MK_ROW3 12
|
||||
#define PSMZTBL_MK_KEY3 13
|
||||
#define PSMZTBL_BRK_ROW1 14
|
||||
#define PSMZTBL_BRK_KEY1 15
|
||||
#define PSMZTBL_BRK_ROW2 16
|
||||
#define PSMZTBL_BRK_KEY2 17
|
||||
#define PSMZTBL_MAXROWS 18
|
||||
|
||||
// Lookup table to matrix row/column co-ordinates. If a PS2 key is matched, then the Matrix is updated
|
||||
// using ROW to point into the array with a column value, equivalent of strobe line and the KEY defines the bits to be set.
|
||||
// Upto 3 matrix bits can be set (3 key presses on the MZ-2500 keyboard) per PS/2 key.
|
||||
// A set bit = 1, reset bits = 0 but is inverted in the actual matrix (1 = inactive, 0 = active).
|
||||
// The table is scanned for a match from top to bottom. The first match is used so order is important. Japanese characters still
|
||||
// need to be added.
|
||||
// Lookup table to matrix row/column co-ordinates.
|
||||
//
|
||||
// Given that the MZ-2500 can emulate 3 machines and each machine has it's own mapping, differences are tagged by machine name, ie. ALL, MZ80B, MZ2000, MZ2500
|
||||
//
|
||||
// If a PS2 key is matched, then the Matrix is updated using MK_ROW to point into the array with MK_KEY being the column value, equivalent of strobe line and
|
||||
// the required KEY bits to be set. Upto 3 matrix bits can be set (3 key presses on the MZ-2500 keyboard) per PS/2 key. Upto 2 matrix releases can be set per
|
||||
// PS/2 key. A key release is used when a modifier may already have been pressed, ie. SHIFT and it needs to be released to set the required key into the matrix.
|
||||
// A set bit = 1, reset bits = 0 but is inverted in the actual matrix (1 = inactive, 0 = active), this applies for releases two, if bit = 1 then that key will be released.
|
||||
// The table is scanned for a match from top to bottom. The first match is used so order is important. Japanese characters are being added as I gleam more information.
|
||||
//
|
||||
#if defined(CONFIG_KEYMAP_WYSE_KB3926) || defined(CONFIG_KEYMAP_STANDARD)
|
||||
//
|
||||
@@ -101,167 +120,179 @@
|
||||
//
|
||||
const unsigned char PS2toMZ[][PSMZTBL_MAXROWS] =
|
||||
{
|
||||
// PS2 Code Shift Function Ctrl ALT ALT-Gr GUI MXROW1 MXKEY1 MXROW2 MXKEY2 MXROW3 MXKEY3
|
||||
PS2_KEY_F1, 0, 0, 0, 0, 0, 0, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // F1
|
||||
PS2_KEY_F2, 0, 0, 0, 0, 0, 0, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // F2
|
||||
PS2_KEY_F3, 0, 0, 0, 0, 0, 0, 0x00, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // F3
|
||||
PS2_KEY_F4, 0, 0, 0, 0, 0, 0, 0x00, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // F4
|
||||
PS2_KEY_F5, 0, 0, 0, 0, 0, 0, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, // F5
|
||||
PS2_KEY_F6, 0, 0, 0, 0, 0, 0, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // F6
|
||||
PS2_KEY_F7, 0, 0, 0, 0, 0, 0, 0x00, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, // F7
|
||||
PS2_KEY_F8, 0, 0, 0, 0, 0, 0, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, // F8
|
||||
PS2_KEY_F9, 0, 0, 0, 0, 0, 0, 0x01, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // F9
|
||||
PS2_KEY_F10, 0, 0, 0, 0, 0, 0, 0x01, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // F10
|
||||
PS2_KEY_F11, 0, 0, 0, 0, 0, 0, 0x0D, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // HELP
|
||||
PS2_KEY_F12, 0, 0, 0, 0, 0, 0, 0x0A, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // COPY
|
||||
PS2_KEY_TAB, 0, 0, 0, 0, 0, 0, 0x03, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // TAB
|
||||
PS2_KEY_0, 1, 0, 0, 0, 0, 0, 0x08, 0x01, 0x0B, 0x04, 0xFF, 0xFF, // Close Right Bracket )
|
||||
PS2_KEY_0, 0, 0, 0, 0, 0, 0, 0x08, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // 0
|
||||
PS2_KEY_1, 1, 0, 0, 0, 0, 0, 0x08, 0x02, 0x0B, 0x04, 0xFF, 0xFF, // Exclamation
|
||||
PS2_KEY_1, 0, 0, 0, 0, 0, 0, 0x08, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // 1
|
||||
PS2_KEY_2, 1, 0, 0, 0, 0, 0, 0x08, 0x04, 0x0B, 0x04, 0xFF, 0xFF, // Double quote.
|
||||
PS2_KEY_2, 0, 0, 0, 0, 0, 0, 0x08, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // 2
|
||||
PS2_KEY_3, 1, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Pound Sign
|
||||
PS2_KEY_3, 0, 0, 0, 0, 0, 0, 0x08, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // 3
|
||||
PS2_KEY_4, 1, 0, 0, 0, 0, 0, 0x08, 0x10, 0x0B, 0x04, 0xFF, 0xFF, // Dollar
|
||||
PS2_KEY_4, 0, 0, 0, 0, 0, 0, 0x08, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, // 4
|
||||
PS2_KEY_5, 1, 0, 0, 0, 0, 0, 0x08, 0x20, 0x0B, 0x04, 0xFF, 0xFF, // Percent
|
||||
PS2_KEY_5, 0, 0, 0, 0, 0, 0, 0x08, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // 5
|
||||
PS2_KEY_6, 1, 0, 0, 0, 0, 0, 0x07, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // Kappa
|
||||
PS2_KEY_6, 0, 0, 0, 0, 0, 0, 0x08, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, // 6
|
||||
PS2_KEY_7, 1, 0, 0, 0, 0, 0, 0x08, 0x40, 0x0B, 0x04, 0xFF, 0xFF, // Ampersand
|
||||
PS2_KEY_7, 0, 0, 0, 0, 0, 0, 0x08, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, // 7
|
||||
PS2_KEY_8, 1, 0, 0, 0, 0, 0, 0x09, 0x04, 0x0B, 0x04, 0xFF, 0xFF, // Star
|
||||
PS2_KEY_8, 0, 0, 0, 0, 0, 0, 0x09, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // 8
|
||||
PS2_KEY_9, 1, 0, 0, 0, 0, 0, 0x09, 0x02, 0x0B, 0x04, 0xFF, 0xFF, // Open Left Bracket (
|
||||
PS2_KEY_9, 0, 0, 0, 0, 0, 0, 0x09, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // 9
|
||||
PS2_KEY_A, 1, 0, 0, 0, 0, 0, 0x04, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // a
|
||||
PS2_KEY_A, 0, 0, 0, 0, 0, 0, 0x04, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // A
|
||||
PS2_KEY_B, 1, 0, 0, 0, 0, 0, 0x04, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // b
|
||||
PS2_KEY_B, 0, 0, 0, 0, 0, 0, 0x04, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // B
|
||||
PS2_KEY_C, 1, 0, 0, 0, 0, 0, 0x04, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // c
|
||||
PS2_KEY_C, 0, 0, 0, 0, 0, 0, 0x04, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // C
|
||||
PS2_KEY_D, 1, 0, 0, 0, 0, 0, 0x04, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, // d
|
||||
PS2_KEY_D, 0, 0, 0, 0, 0, 0, 0x04, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, // D
|
||||
PS2_KEY_E, 1, 0, 0, 0, 0, 0, 0x04, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // e
|
||||
PS2_KEY_E, 0, 0, 0, 0, 0, 0, 0x04, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // E
|
||||
PS2_KEY_F, 1, 0, 0, 0, 0, 0, 0x04, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, // f
|
||||
PS2_KEY_F, 0, 0, 0, 0, 0, 0, 0x04, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, // F
|
||||
PS2_KEY_G, 1, 0, 0, 0, 0, 0, 0x04, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, // g
|
||||
PS2_KEY_G, 0, 0, 0, 0, 0, 0, 0x04, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, // G
|
||||
PS2_KEY_H, 1, 0, 0, 0, 0, 0, 0x05, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // h
|
||||
PS2_KEY_H, 0, 0, 0, 0, 0, 0, 0x05, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // H
|
||||
PS2_KEY_I, 1, 0, 0, 0, 0, 0, 0x05, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // i
|
||||
PS2_KEY_I, 0, 0, 0, 0, 0, 0, 0x05, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // I
|
||||
PS2_KEY_J, 1, 0, 0, 0, 0, 0, 0x05, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // j
|
||||
PS2_KEY_J, 0, 0, 0, 0, 0, 0, 0x05, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // J
|
||||
PS2_KEY_K, 1, 0, 0, 0, 0, 0, 0x05, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // k
|
||||
PS2_KEY_K, 0, 0, 0, 0, 0, 0, 0x05, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // K
|
||||
PS2_KEY_L, 1, 0, 0, 0, 0, 0, 0x05, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, // l
|
||||
PS2_KEY_L, 0, 0, 0, 0, 0, 0, 0x05, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, // L
|
||||
PS2_KEY_M, 1, 0, 0, 0, 0, 0, 0x05, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // m
|
||||
PS2_KEY_M, 0, 0, 0, 0, 0, 0, 0x05, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // M
|
||||
PS2_KEY_N, 1, 0, 0, 0, 0, 0, 0x05, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, // n
|
||||
PS2_KEY_N, 0, 0, 0, 0, 0, 0, 0x05, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, // N
|
||||
PS2_KEY_O, 1, 0, 0, 0, 0, 0, 0x05, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, // o
|
||||
PS2_KEY_O, 0, 0, 0, 0, 0, 0, 0x05, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, // O
|
||||
PS2_KEY_P, 1, 0, 0, 0, 0, 0, 0x06, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // p
|
||||
PS2_KEY_P, 0, 0, 0, 0, 0, 0, 0x06, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // P
|
||||
PS2_KEY_Q, 1, 0, 0, 0, 0, 0, 0x06, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // q
|
||||
PS2_KEY_Q, 0, 0, 0, 0, 0, 0, 0x06, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // Q
|
||||
PS2_KEY_R, 1, 0, 0, 0, 0, 0, 0x06, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // r
|
||||
PS2_KEY_R, 0, 0, 0, 0, 0, 0, 0x06, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // R
|
||||
PS2_KEY_S, 1, 0, 0, 0, 0, 0, 0x06, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // s
|
||||
PS2_KEY_S, 0, 0, 0, 0, 0, 0, 0x06, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // S
|
||||
PS2_KEY_T, 1, 0, 0, 0, 0, 0, 0x06, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, // t
|
||||
PS2_KEY_T, 0, 0, 0, 0, 0, 0, 0x06, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, // T
|
||||
PS2_KEY_U, 1, 0, 0, 0, 0, 0, 0x06, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // u
|
||||
PS2_KEY_U, 0, 0, 0, 0, 0, 0, 0x06, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // U
|
||||
PS2_KEY_V, 1, 0, 0, 0, 0, 0, 0x06, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, // v
|
||||
PS2_KEY_V, 0, 0, 0, 0, 0, 0, 0x06, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, // V
|
||||
PS2_KEY_W, 1, 0, 0, 0, 0, 0, 0x06, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, // w
|
||||
PS2_KEY_W, 0, 0, 0, 0, 0, 0, 0x06, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, // W
|
||||
PS2_KEY_X, 1, 0, 0, 0, 0, 0, 0x07, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // x
|
||||
PS2_KEY_X, 0, 0, 0, 0, 0, 0, 0x07, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // X
|
||||
PS2_KEY_Y, 1, 0, 0, 0, 0, 0, 0x07, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // y
|
||||
PS2_KEY_Y, 0, 0, 0, 0, 0, 0, 0x07, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // Y
|
||||
PS2_KEY_Z, 1, 0, 0, 0, 0, 0, 0x07, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // z
|
||||
PS2_KEY_Z, 0, 0, 0, 0, 0, 0, 0x07, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // Z
|
||||
// PS2 Code Shift Function Ctrl ALT ALT-Gr GUI MXROW1 MXKEY1 MXROW2 MXKEY2 MXROW3 MXKEY3
|
||||
PS2_KEY_SPACE, 0, 0, 0, 0, 0, 0, 0x03, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // Space
|
||||
PS2_KEY_COMMA, 1, 0, 0, 0, 0, 0, 0x07, 0x80, 0x0B, 0x04, 0xFF, 0xFF, // Less Than <
|
||||
PS2_KEY_COMMA, 0, 0, 0, 0, 0, 0, 0x07, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, // Comma ,
|
||||
PS2_KEY_SEMI, 1, 0, 0, 0, 0, 0, 0x09, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // Colon :
|
||||
PS2_KEY_SEMI, 0, 0, 0, 0, 0, 0, 0x09, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // Semi-Colon ;
|
||||
PS2_KEY_DOT, 1, 0, 0, 0, 0, 0, 0x07, 0x40, 0x0B, 0x04, 0xFF, 0xFF, // Greater Than >
|
||||
PS2_KEY_DOT, 0, 0, 0, 0, 0, 0, 0x07, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, // Full stop .
|
||||
PS2_KEY_DIV, 1, 0, 0, 0, 0, 0, 0x04, 0x01, 0x0B, 0x04, 0xFF, 0xFF, // Question ?
|
||||
PS2_KEY_DIV, 0, 0, 0, 0, 0, 0, 0x04, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // Divide /
|
||||
PS2_KEY_MINUS, 1, 0, 0, 0, 0, 0, 0x07, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // Underscore
|
||||
PS2_KEY_MINUS, 0, 0, 0, 0, 0, 0, 0x09, 0x10, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
PS2_KEY_APOS, 1, 0, 0, 0, 0, 0, 0x09, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // At @
|
||||
PS2_KEY_APOS, 0, 0, 0, 0, 0, 0, 0x08, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, // Single quote '
|
||||
PS2_KEY_OPEN_SQ, 1, 0, 0, 0, 0, 0, 0x09, 0x40, 0x0B, 0x04, 0xFF, 0xFF, // Open Left Brace {
|
||||
PS2_KEY_OPEN_SQ, 0, 0, 0, 0, 0, 0, 0x09, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, // Open Left Square Bracket [
|
||||
PS2_KEY_EQUAL, 1, 0, 0, 0, 0, 0, 0x09, 0x08, 0x0B, 0x04, 0xFF, 0xFF, // Plus +
|
||||
PS2_KEY_EQUAL, 0, 0, 0, 0, 0, 0, 0x09, 0x10, 0x0B, 0x04, 0xFF, 0xFF, // Equal =
|
||||
PS2_KEY_CAPS, 0, 0, 0, 0, 0, 0, 0x0B, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // LOCK
|
||||
PS2_KEY_ENTER, 0, 0, 0, 0, 0, 0, 0x03, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // ENTER/RETURN
|
||||
PS2_KEY_CLOSE_SQ, 0, 0, 0, 0, 0, 0, 0x0A, 0x01, 0x0B, 0x04, 0xFF, 0xFF, // Close Right Brace }
|
||||
PS2_KEY_CLOSE_SQ, 0, 0, 0, 0, 0, 0, 0x0A, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // Close Right Square Bracket ]
|
||||
PS2_KEY_BACK, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, //
|
||||
PS2_KEY_BTICK, 0, 0, 0, 0, 0, 0, 0x09, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // Back tick `
|
||||
PS2_KEY_HASH, 0, 0, 0, 0, 0, 0, 0x08, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // Hash
|
||||
PS2_KEY_BS, 0, 0, 0, 0, 0, 0, 0x0A, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, // Backspace
|
||||
PS2_KEY_ESC, 0, 0, 0, 0, 0, 0, 0x0A, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // ESCape
|
||||
PS2_KEY_SCROLL, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Not assigned.
|
||||
PS2_KEY_INSERT, 0, 0, 0, 0, 0, 0, 0x0A, 0x08, 0x0B, 0x04, 0xFF, 0xFF, // INSERT
|
||||
PS2_KEY_HOME, 1, 0, 0, 0, 0, 0, 0x0A, 0x04, 0x0B, 0x04, 0xFF, 0xFF, // CLR
|
||||
PS2_KEY_HOME, 0, 0, 0, 0, 0, 0, 0x0A, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // HOME
|
||||
PS2_KEY_PGUP, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Not assigned.
|
||||
PS2_KEY_DELETE, 0, 0, 0, 0, 0, 0, 0x0A, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // DELETE
|
||||
PS2_KEY_END, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Not assigned.
|
||||
PS2_KEY_PGDN, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
PS2_KEY_UP_ARROW, 0, 0, 0, 0, 0, 0, 0x03, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // Up Arrow
|
||||
PS2_KEY_L_ARROW, 0, 0, 0, 0, 0, 0, 0x03, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // Left Arrow
|
||||
PS2_KEY_DN_ARROW, 0, 0, 0, 0, 0, 0, 0x03, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, // Down Arrow
|
||||
PS2_KEY_R_ARROW, 0, 0, 0, 0, 0, 0, 0x03, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, // Right Arrow
|
||||
PS2_KEY_NUM, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Not assigned.
|
||||
|
||||
// Keypad.
|
||||
PS2_KEY_KP0, 0, 0, 0, 0, 0, 0, 0x02, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 0
|
||||
PS2_KEY_KP1, 0, 0, 0, 0, 0, 0, 0x02, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 1
|
||||
PS2_KEY_KP2, 0, 0, 0, 0, 0, 0, 0x02, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 2
|
||||
PS2_KEY_KP3, 0, 0, 0, 0, 0, 0, 0x02, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 3
|
||||
PS2_KEY_KP4, 0, 0, 0, 0, 0, 0, 0x02, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 4
|
||||
PS2_KEY_KP5, 0, 0, 0, 0, 0, 0, 0x02, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 5
|
||||
PS2_KEY_KP6, 0, 0, 0, 0, 0, 0, 0x02, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 6
|
||||
PS2_KEY_KP7, 0, 0, 0, 0, 0, 0, 0x02, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 7
|
||||
PS2_KEY_KP8, 0, 0, 0, 0, 0, 0, 0x01, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 8
|
||||
PS2_KEY_KP9, 0, 0, 0, 0, 0, 0, 0x01, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 9
|
||||
PS2_KEY_KP_COMMA, 0, 0, 0, 0, 0, 0, 0x01, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad Comma ,
|
||||
PS2_KEY_KP_DOT, 0, 0, 0, 0, 0, 0, 0x01, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad Full stop .
|
||||
PS2_KEY_KP_PLUS, 0, 0, 0, 0, 0, 0, 0x01, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad Plus +
|
||||
PS2_KEY_KP_MINUS, 0, 0, 0, 0, 0, 0, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad Minus -
|
||||
PS2_KEY_KP_TIMES, 0, 0, 0, 0, 0, 0, 0x0A, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad Times *
|
||||
PS2_KEY_KP_DIV, 0, 0, 0, 0, 0, 0, 0x0A, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad Divide /
|
||||
|
||||
// PS2 Code Shift Function Ctrl ALT ALT-Gr GUI MXROW1 MXKEY1 MXROW2 MXKEY2 MXROW3 MXKEY3
|
||||
|
||||
// Special keys.
|
||||
PS2_KEY_PRTSCR, 0, 1, 0, 0, 0, 0, 0x0D, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // ARGO KEY
|
||||
PS2_KEY_BREAK, 0, 0, 0, 0, 0, 0, 0x03, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, // BREAK KEY
|
||||
PS2_KEY_L_GUI, 0, 1, 0, 0, 0, 1, 0x0B, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // GRAPH KEY
|
||||
PS2_KEY_L_ALT, 0, 1, 0, 1, 0, 0, 0x0C, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, // KJ1 Sentence
|
||||
PS2_KEY_R_ALT, 0, 1, 0, 0, 1, 0, 0x0C, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, // KJ2 Transform
|
||||
PS2_KEY_R_GUI, 0, 1, 0, 0, 0, 1, 0x0B, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, // KANA KEY
|
||||
PS2_KEY_MENU, 0, 1, 0, 0, 0, 1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Not assigned.
|
||||
// Modifiers are last, only being selected if an earlier match isnt made.
|
||||
PS2_KEY_L_SHIFT, 0, 0, 0, 0, 0, 0, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
PS2_KEY_R_SHIFT, 0, 0, 0, 0, 0, 0, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
PS2_KEY_L_CTRL, 0, 0, 0, 0, 0, 0, 0x0B, 0x10, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
PS2_KEY_R_CTRL, 0, 0, 0, 0, 0, 0, 0x0B, 0x10, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
// < Keys to be applied on match > < Keys to be reset on match >
|
||||
// PS2 Code Machine Shift Function Ctrl ALT ALT-Gr GUI MK_ROW1 MK_KEY1 MK_ROW2 MK_KEY2 MK_ROW3 MK_KEY3 BRK_ROW1 BRK_KEY1 BRK_ROW2 BRK_KEY2
|
||||
PS2_KEY_F1, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // F1
|
||||
PS2_KEY_F2, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // F2
|
||||
PS2_KEY_F3, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x00, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // F3
|
||||
PS2_KEY_F4, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x00, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // F4
|
||||
PS2_KEY_F5, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // F5
|
||||
PS2_KEY_F6, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // F6
|
||||
PS2_KEY_F7, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x00, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // F7
|
||||
PS2_KEY_F8, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // F8
|
||||
PS2_KEY_F9, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x01, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // F9
|
||||
PS2_KEY_F10, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x01, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // F10
|
||||
PS2_KEY_F11, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0D, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // HELP
|
||||
PS2_KEY_F12, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0A, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // COPY
|
||||
PS2_KEY_TAB, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x03, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // TAB
|
||||
PS2_KEY_0, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x09, 0x02, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Close Right Bracket )
|
||||
PS2_KEY_0, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x08, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 0
|
||||
PS2_KEY_1, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x08, 0x02, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Exclamation
|
||||
PS2_KEY_1, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x08, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 1
|
||||
PS2_KEY_2, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x08, 0x04, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Double quote.
|
||||
PS2_KEY_2, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x08, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 2
|
||||
PS2_KEY_3, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x08, 0x08, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Pound Sign -> Hash
|
||||
PS2_KEY_3, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x08, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 3
|
||||
PS2_KEY_4, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x08, 0x10, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Dollar
|
||||
PS2_KEY_4, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x08, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 4
|
||||
PS2_KEY_5, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x08, 0x20, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Percent
|
||||
PS2_KEY_5, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x08, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 5
|
||||
PS2_KEY_6, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x07, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0x04, 0xFF, 0xFF, // Kappa
|
||||
PS2_KEY_6, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x08, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 6
|
||||
PS2_KEY_7, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x08, 0x40, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Ampersand
|
||||
PS2_KEY_7, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x08, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 7
|
||||
PS2_KEY_8, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x09, 0x04, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Star
|
||||
PS2_KEY_8, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x09, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 8
|
||||
PS2_KEY_9, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x09, 0x01, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Open Left Bracket (
|
||||
PS2_KEY_9, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x09, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 9
|
||||
PS2_KEY_A, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x04, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // a
|
||||
PS2_KEY_A, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x04, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // A
|
||||
PS2_KEY_B, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x04, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // b
|
||||
PS2_KEY_B, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x04, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // B
|
||||
PS2_KEY_C, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x04, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // c
|
||||
PS2_KEY_C, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x04, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // C
|
||||
PS2_KEY_D, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x04, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // d
|
||||
PS2_KEY_D, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x04, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // D
|
||||
PS2_KEY_E, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x04, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // e
|
||||
PS2_KEY_E, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x04, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // E
|
||||
PS2_KEY_F, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x04, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // f
|
||||
PS2_KEY_F, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x04, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // F
|
||||
PS2_KEY_G, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x04, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // g
|
||||
PS2_KEY_G, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x04, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // G
|
||||
PS2_KEY_H, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x05, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // h
|
||||
PS2_KEY_H, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x05, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // H
|
||||
PS2_KEY_I, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x05, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // i
|
||||
PS2_KEY_I, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x05, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // I
|
||||
PS2_KEY_J, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x05, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // j
|
||||
PS2_KEY_J, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x05, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // J
|
||||
PS2_KEY_K, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x05, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // k
|
||||
PS2_KEY_K, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x05, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // K
|
||||
PS2_KEY_L, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x05, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // l
|
||||
PS2_KEY_L, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x05, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // L
|
||||
PS2_KEY_M, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x05, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // m
|
||||
PS2_KEY_M, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x05, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // M
|
||||
PS2_KEY_N, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x05, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // n
|
||||
PS2_KEY_N, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x05, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // N
|
||||
PS2_KEY_O, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x05, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // o
|
||||
PS2_KEY_O, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x05, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // O
|
||||
PS2_KEY_P, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x06, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // p
|
||||
PS2_KEY_P, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x06, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // P
|
||||
PS2_KEY_Q, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x06, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // q
|
||||
PS2_KEY_Q, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x06, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Q
|
||||
PS2_KEY_R, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x06, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // r
|
||||
PS2_KEY_R, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x06, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // R
|
||||
PS2_KEY_S, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x06, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // s
|
||||
PS2_KEY_S, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x06, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // S
|
||||
PS2_KEY_T, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x06, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // t
|
||||
PS2_KEY_T, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x06, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // T
|
||||
PS2_KEY_U, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x06, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // u
|
||||
PS2_KEY_U, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x06, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // U
|
||||
PS2_KEY_V, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x06, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // v
|
||||
PS2_KEY_V, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x06, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // V
|
||||
PS2_KEY_W, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x06, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // w
|
||||
PS2_KEY_W, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x06, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // W
|
||||
PS2_KEY_X, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x07, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // x
|
||||
PS2_KEY_X, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x07, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // X
|
||||
PS2_KEY_Y, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x07, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // y
|
||||
PS2_KEY_Y, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x07, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Y
|
||||
PS2_KEY_Z, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x07, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // z
|
||||
PS2_KEY_Z, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x07, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Z
|
||||
// PS2 Code Machine Shift Function Ctrl ALT ALT-Gr GUI MK_ROW1 MK_KEY1 MK_ROW2 MK_KEY2 MK_ROW3 MK_KEY3 BRK_ROW1 BRK_KEY1 BRK_ROW2 BRK_KEY2
|
||||
PS2_KEY_SPACE, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x03, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Space
|
||||
PS2_KEY_COMMA, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x07, 0x80, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Less Than <
|
||||
PS2_KEY_COMMA, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x07, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Comma ,
|
||||
PS2_KEY_SEMI, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x09, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0x04, 0xFF, 0xFF, // Colon :
|
||||
PS2_KEY_SEMI, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x09, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Semi-Colon ;
|
||||
PS2_KEY_DOT, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x07, 0x40, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Greater Than >
|
||||
PS2_KEY_DOT, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x07, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Full stop .
|
||||
PS2_KEY_DIV, MZ_2000, 1, 0, 0, 0, 0, 0, 0x07, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0x04, 0xFF, 0xFF, // Question ?
|
||||
PS2_KEY_DIV, MZ_80B, 1, 0, 0, 0, 0, 0, 0x07, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0x04, 0xFF, 0xFF, // Question ?
|
||||
PS2_KEY_DIV, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x04, 0x01, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Question ?
|
||||
PS2_KEY_DIV, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x04, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Divide /
|
||||
PS2_KEY_MINUS, MZ_2000, 1, 0, 0, 0, 0, 0, 0x08, 0x01, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Upper bar
|
||||
PS2_KEY_MINUS, MZ_80B, 1, 0, 0, 0, 0, 0, 0x08, 0x01, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Upper bar
|
||||
PS2_KEY_MINUS, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x07, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0x04, 0xFF, 0xFF, // Underscore
|
||||
PS2_KEY_MINUS, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x09, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
PS2_KEY_APOS, MZ_80B, 1, 0, 0, 0, 0, 0, 0x09, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0x04, 0xFF, 0xFF, // At @
|
||||
PS2_KEY_APOS, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x09, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0x04, 0xFF, 0xFF, // At @
|
||||
PS2_KEY_APOS, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x08, 0x80, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Single quote '
|
||||
PS2_KEY_OPEN_SQ, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x09, 0x40, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Open Left Brace {
|
||||
PS2_KEY_OPEN_SQ, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x09, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Open Left Square Bracket [
|
||||
PS2_KEY_EQUAL, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x09, 0x08, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Plus +
|
||||
PS2_KEY_EQUAL, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x09, 0x10, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Equal =
|
||||
PS2_KEY_CAPS, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0B, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // LOCK
|
||||
PS2_KEY_ENTER, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x03, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // ENTER/RETURN
|
||||
PS2_KEY_CLOSE_SQ, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x0A, 0x01, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Close Right Brace }
|
||||
PS2_KEY_CLOSE_SQ, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0A, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Close Right Square Bracket ]
|
||||
PS2_KEY_BACK, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x07, 0x10, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, //
|
||||
PS2_KEY_BACK, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x07, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Back slash maps to Yen
|
||||
PS2_KEY_BTICK, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x07, 0x10, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Pipe
|
||||
PS2_KEY_BTICK, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x09, 0x20, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Back tick `
|
||||
PS2_KEY_HASH, MZ_2000, 1, 0, 0, 0, 0, 0, 0x07, 0x08, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Tilde
|
||||
PS2_KEY_HASH, MZ_80B, 1, 0, 0, 0, 0, 0, 0x07, 0x08, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Tilde
|
||||
PS2_KEY_HASH, MZ_ALL, 1, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Tilde has no mapping.
|
||||
PS2_KEY_HASH, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x08, 0x08, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Hash
|
||||
PS2_KEY_BS, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0A, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Backspace
|
||||
PS2_KEY_ESC, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0A, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // ESCape
|
||||
PS2_KEY_SCROLL, MZ_ALL, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Not assigned.
|
||||
PS2_KEY_INSERT, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0A, 0x08, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // INSERT
|
||||
PS2_KEY_HOME, MZ_ALL, 1, 0, 0, 0, 0, 0, 0x0A, 0x04, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // CLR
|
||||
PS2_KEY_HOME, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0A, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // HOME
|
||||
PS2_KEY_PGUP, MZ_ALL, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Not assigned.
|
||||
PS2_KEY_DELETE, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0A, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // DELETE
|
||||
PS2_KEY_END, MZ_ALL, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Not assigned.
|
||||
PS2_KEY_PGDN, MZ_ALL, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
PS2_KEY_UP_ARROW, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x03, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Up Arrow
|
||||
PS2_KEY_L_ARROW, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x03, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Left Arrow
|
||||
PS2_KEY_DN_ARROW, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x03, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Down Arrow
|
||||
PS2_KEY_R_ARROW, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x03, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Right Arrow
|
||||
PS2_KEY_NUM, MZ_ALL, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Not assigned.
|
||||
|
||||
// Keypad.
|
||||
PS2_KEY_KP0, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x02, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 0
|
||||
PS2_KEY_KP1, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x02, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 1
|
||||
PS2_KEY_KP2, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x02, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 2
|
||||
PS2_KEY_KP3, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x02, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 3
|
||||
PS2_KEY_KP4, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x02, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 4
|
||||
PS2_KEY_KP5, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x02, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 5
|
||||
PS2_KEY_KP6, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x02, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 6
|
||||
PS2_KEY_KP7, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x02, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 7
|
||||
PS2_KEY_KP8, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x01, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 8
|
||||
PS2_KEY_KP9, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x01, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad 9
|
||||
PS2_KEY_KP_COMMA, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x01, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad Comma ,
|
||||
PS2_KEY_KP_DOT, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x01, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad Full stop .
|
||||
PS2_KEY_KP_PLUS, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x01, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad Plus +
|
||||
PS2_KEY_KP_MINUS, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad Minus -
|
||||
PS2_KEY_KP_TIMES, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0A, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad Times *
|
||||
PS2_KEY_KP_DIV, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0A, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad Divide /
|
||||
PS2_KEY_KP_ENTER, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x03, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Keypad Ebter /
|
||||
|
||||
// PS2 Code Machine Shift Function Ctrl ALT ALT-Gr GUI MK_ROW1 MK_KEY1 MK_ROW2 MK_KEY2 MK_ROW3 MK_KEY3 BRK_ROW1 BRK_KEY1 BRK_ROW2 BRK_KEY2
|
||||
|
||||
// Special keys.
|
||||
PS2_KEY_PRTSCR, MZ_ALL, 0, 1, 0, 0, 0, 0, 0x0D, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // ARGO KEY
|
||||
PS2_KEY_PAUSE, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x03, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // BREAK KEY
|
||||
PS2_KEY_L_GUI, MZ_ALL, 0, 1, 0, 0, 0, 1, 0x0B, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // GRAPH KEY
|
||||
PS2_KEY_L_ALT, MZ_ALL, 0, 1, 0, 1, 0, 0, 0x0C, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // KJ1 Sentence
|
||||
PS2_KEY_R_ALT, MZ_ALL, 0, 1, 0, 0, 1, 0, 0x0C, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // KJ2 Transform
|
||||
PS2_KEY_R_GUI, MZ_ALL, 0, 1, 0, 0, 0, 1, 0x0B, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // KANA KEY
|
||||
PS2_KEY_MENU, MZ_ALL, 0, 1, 0, 0, 0, 1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Not assigned.
|
||||
// Modifiers are last, only being selected if an earlier match isnt made.
|
||||
PS2_KEY_L_SHIFT, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
PS2_KEY_R_SHIFT, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0B, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
PS2_KEY_L_CTRL, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0B, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
PS2_KEY_R_CTRL, MZ_ALL, 0, 0, 0, 0, 0, 0, 0x0B, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0, MZ_ALL, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -642,7 +642,7 @@ _ps2mode = 0;
|
||||
*/
|
||||
uint16_t translate( void )
|
||||
{
|
||||
uint8_t index, length, data;
|
||||
uint8_t index, length, data, status;
|
||||
uint16_t retdata;
|
||||
|
||||
// get next character
|
||||
@@ -655,7 +655,17 @@ uint16_t translate( void )
|
||||
index++;
|
||||
if( index >= _RX_BUFFER_SIZE )
|
||||
index = 0;
|
||||
_tail = index;
|
||||
|
||||
// Special handling for PAUSE/BREAK, PAUSE key doesnt send a BREAK code yet MZ machines need SHIFT (hold) -> BREAK to recognise a BREAK, CTRL+BREAK will not work.
|
||||
// In this case we inject a BREAK code by setting the flag on the received code.
|
||||
status = (( _rx_buffer[ index ] & 0xFF00 ) >> 8);
|
||||
if( (status & _E1_MODE) && (status & _BREAK))
|
||||
{
|
||||
_rx_buffer[index] &= ~PS2_BREAK;
|
||||
} else
|
||||
{
|
||||
_tail = index;
|
||||
}
|
||||
|
||||
// Get the flags byte break modes etc in this order
|
||||
data = _rx_buffer[ index ] & 0xFF;
|
||||
@@ -664,9 +674,9 @@ uint16_t translate( void )
|
||||
// Catch special case of PAUSE key
|
||||
if( index & _E1_MODE )
|
||||
{
|
||||
return PS2_KEY_PAUSE + _FUNCTION;
|
||||
return ( (uint16_t)PS2_keystatus << 8 ) | PS2_KEY_PAUSE | PS2_FUNCTION | (status & _BREAK ? 0 : PS2_BREAK);
|
||||
}
|
||||
|
||||
|
||||
// Ignore anything not actual keycode but command/response
|
||||
// Return untranslated as valid
|
||||
if( ( data >= PS2_KC_BAT && data != PS2_KC_LANG1 && data != PS2_KC_LANG2 ) || ( index & _WAIT_RESPONSE ) )
|
||||
@@ -736,18 +746,26 @@ uint16_t translate( void )
|
||||
if( PS2_keystatus & _BREAK )
|
||||
{
|
||||
PS2_lockstate[ retdata ] = 0; // Set received a break so next make toggles LOCK status
|
||||
retdata = PS2_KEY_IGNORE; // ignore key
|
||||
// MZ-2500 uses one make-break cycle to enable and one make-break to disable, so the BREAK is needed.
|
||||
if(retdata != PS2_KEY_CAPS)
|
||||
{
|
||||
retdata = PS2_KEY_IGNORE; // ignore key
|
||||
}
|
||||
} else {
|
||||
|
||||
if( PS2_lockstate[ retdata ] == 1 )
|
||||
{
|
||||
printf("PLEASE REMOVE ME translate: %04x, %d\n", retdata, PS2_lockstate[ retdata ]);
|
||||
retdata = PS2_KEY_IGNORE; // ignore key if make and not received break
|
||||
// As per above, MZ-2500 needs both events, so this code changed from original authors.
|
||||
} else
|
||||
{
|
||||
PS2_lockstate[ retdata ] = 1;
|
||||
switch( retdata )
|
||||
{
|
||||
case PS2_KEY_CAPS: index = PS2_LOCK_CAPS;
|
||||
case PS2_KEY_CAPS:
|
||||
index = PS2_LOCK_CAPS;
|
||||
|
||||
// Set CAPS lock if not set before
|
||||
if( PS2_keystatus & _CAPS )
|
||||
{
|
||||
@@ -757,16 +775,21 @@ uint16_t translate( void )
|
||||
PS2_keystatus |= _CAPS;
|
||||
}
|
||||
break;
|
||||
case PS2_KEY_SCROLL: index = PS2_LOCK_SCROLL;
|
||||
case PS2_KEY_SCROLL:
|
||||
index = PS2_LOCK_SCROLL;
|
||||
break;
|
||||
case PS2_KEY_NUM: index = PS2_LOCK_NUM;
|
||||
case PS2_KEY_NUM:
|
||||
index = PS2_LOCK_NUM;
|
||||
break;
|
||||
}
|
||||
// Now update PS2_led_lock status to match
|
||||
if( PS2_led_lock & index )
|
||||
{
|
||||
PS2_led_lock &= ~index;
|
||||
PS2_keystatus |= _BREAK; // send as break
|
||||
if(index != PS2_LOCK_CAPS)
|
||||
{
|
||||
PS2_keystatus |= _BREAK; // send as break
|
||||
}
|
||||
} else
|
||||
{
|
||||
PS2_led_lock |= index;
|
||||
@@ -1002,6 +1025,7 @@ while( i < ( _KEY_BUFF_SIZE - 1 ) ) // process if not full
|
||||
if( keyAvailable( ) ) // not check for more keys to process
|
||||
{
|
||||
data = translate( ); // get next translated key
|
||||
|
||||
if( data == 0 ) // unless in buffer is empty
|
||||
break;
|
||||
if( (data & 0xFF) != PS2_KEY_IGNORE && (data & 0xFF) > 0)
|
||||
|
||||
935
main/main.cpp
935
main/main.cpp
File diff suppressed because it is too large
Load Diff
128
sdkconfig
128
sdkconfig
@@ -35,6 +35,51 @@ CONFIG_APP_COMPILE_TIME_DATE=y
|
||||
CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16
|
||||
# end of Application manager
|
||||
|
||||
#
|
||||
# Arduino Configuration
|
||||
#
|
||||
CONFIG_ENABLE_ARDUINO_DEPENDS=y
|
||||
# CONFIG_AUTOSTART_ARDUINO is not set
|
||||
CONFIG_ARDUINO_RUN_CORE0=y
|
||||
# CONFIG_ARDUINO_RUN_CORE1 is not set
|
||||
# CONFIG_ARDUINO_RUN_NO_AFFINITY is not set
|
||||
CONFIG_ARDUINO_RUNNING_CORE=0
|
||||
CONFIG_ARDUINO_LOOP_STACK_SIZE=8192
|
||||
CONFIG_ARDUINO_EVENT_RUN_CORE0=y
|
||||
# CONFIG_ARDUINO_EVENT_RUN_CORE1 is not set
|
||||
# CONFIG_ARDUINO_EVENT_RUN_NO_AFFINITY is not set
|
||||
CONFIG_ARDUINO_EVENT_RUNNING_CORE=0
|
||||
CONFIG_ARDUINO_UDP_RUN_CORE0=y
|
||||
# CONFIG_ARDUINO_UDP_RUN_CORE1 is not set
|
||||
# CONFIG_ARDUINO_UDP_RUN_NO_AFFINITY is not set
|
||||
CONFIG_ARDUINO_UDP_TASK_PRIORITY=3
|
||||
CONFIG_ARDUINO_UDP_RUNNING_CORE=0
|
||||
CONFIG_ARDUINO_ISR_IRAM=y
|
||||
CONFIG_DISABLE_HAL_LOCKS=y
|
||||
|
||||
#
|
||||
# Debug Log Configuration
|
||||
#
|
||||
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_NONE is not set
|
||||
CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_ERROR=y
|
||||
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_WARN is not set
|
||||
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_INFO is not set
|
||||
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_DEBUG is not set
|
||||
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_VERBOSE is not set
|
||||
CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL=1
|
||||
# CONFIG_ARDUHAL_LOG_COLORS is not set
|
||||
# CONFIG_ARDUHAL_ESP_LOG is not set
|
||||
# end of Debug Log Configuration
|
||||
|
||||
CONFIG_ARDUHAL_PARTITION_SCHEME_DEFAULT=y
|
||||
# CONFIG_ARDUHAL_PARTITION_SCHEME_MINIMAL is not set
|
||||
# CONFIG_ARDUHAL_PARTITION_SCHEME_NO_OTA is not set
|
||||
# CONFIG_ARDUHAL_PARTITION_SCHEME_HUGE_APP is not set
|
||||
# CONFIG_ARDUHAL_PARTITION_SCHEME_MIN_SPIFFS is not set
|
||||
CONFIG_ARDUHAL_PARTITION_SCHEME="default"
|
||||
# CONFIG_ARDUINO_SELECTIVE_COMPILATION is not set
|
||||
# end of Arduino Configuration
|
||||
|
||||
#
|
||||
# Bootloader config
|
||||
#
|
||||
@@ -92,10 +137,10 @@ CONFIG_ESPTOOLPY_FLASHFREQ_40M=y
|
||||
CONFIG_ESPTOOLPY_FLASHFREQ="40m"
|
||||
# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
|
||||
# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
|
||||
# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
||||
# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
|
||||
# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE="8MB"
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y
|
||||
CONFIG_ESPTOOLPY_BEFORE_RESET=y
|
||||
# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set
|
||||
@@ -135,8 +180,8 @@ CONFIG_PARTITION_TABLE_MD5=y
|
||||
#
|
||||
# PS2 Keyboard
|
||||
#
|
||||
CONFIG_PS2_HW_DATAPIN=14
|
||||
CONFIG_PS2_HW_CLKPIN=13
|
||||
CONFIG_PS2_HW_DATAPIN=32
|
||||
CONFIG_PS2_HW_CLKPIN=33
|
||||
CONFIG_KEYMAP_WYSE_KB3926=y
|
||||
# CONFIG_KEYMAP_STANDARD is not set
|
||||
# end of PS2 Keyboard
|
||||
@@ -149,7 +194,7 @@ CONFIG_KEYMAP_WYSE_KB3926=y
|
||||
# 4Bit Strobe Input
|
||||
#
|
||||
CONFIG_MZ_KDB0=23
|
||||
CONFIG_MZ_KDB1=2
|
||||
CONFIG_MZ_KDB1=25
|
||||
CONFIG_MZ_KDB2=26
|
||||
CONFIG_MZ_KDB3=27
|
||||
# end of 4Bit Strobe Input
|
||||
@@ -157,9 +202,9 @@ CONFIG_MZ_KDB3=27
|
||||
#
|
||||
# 8Bit Scan Data Output
|
||||
#
|
||||
CONFIG_MZ_KDO0=7
|
||||
CONFIG_MZ_KDO1=11
|
||||
CONFIG_MZ_KDO2=12
|
||||
CONFIG_MZ_KDO0=14
|
||||
CONFIG_MZ_KDO1=15
|
||||
CONFIG_MZ_KDO2=16
|
||||
CONFIG_MZ_KDO3=17
|
||||
CONFIG_MZ_KDO4=18
|
||||
CONFIG_MZ_KDO5=19
|
||||
@@ -171,6 +216,12 @@ CONFIG_MZ_RTSNI=35
|
||||
CONFIG_MZ_KDI4=13
|
||||
# end of MZ-2500/2800 Interface
|
||||
|
||||
#
|
||||
# WiFi
|
||||
#
|
||||
# CONFIG_MZ_WIFI_ENABLED is not set
|
||||
# end of WiFi
|
||||
|
||||
#
|
||||
# Debug Options
|
||||
#
|
||||
@@ -185,66 +236,21 @@ CONFIG_I2C_INTERFACE=y
|
||||
CONFIG_SSD1306_128x64=y
|
||||
CONFIG_OFFSETX=0
|
||||
# CONFIG_FLIP is not set
|
||||
CONFIG_SCL_GPIO=15
|
||||
CONFIG_SDA_GPIO=4
|
||||
CONFIG_SCL_GPIO=4
|
||||
CONFIG_SDA_GPIO=5
|
||||
CONFIG_RESET_GPIO=16
|
||||
# end of OLED
|
||||
|
||||
# CONFIG_MZ_DEBUG_SERIAL is not set
|
||||
# CONFIG_MZ_DISABLE_KDB is not set
|
||||
CONFIG_MZ_DISABLE_KDO=y
|
||||
# CONFIG_MZ_DISABLE_KDO is not set
|
||||
# CONFIG_MZ_DISABLE_RTSNI is not set
|
||||
# CONFIG_MZ_DISABLE_KDI is not set
|
||||
# end of Debug Options
|
||||
|
||||
CONFIG_PWRLED=25
|
||||
CONFIG_PWRLED=2
|
||||
# end of MZ25Key Configuration
|
||||
|
||||
#
|
||||
# Arduino Configuration
|
||||
#
|
||||
CONFIG_ENABLE_ARDUINO_DEPENDS=y
|
||||
# CONFIG_AUTOSTART_ARDUINO is not set
|
||||
CONFIG_ARDUINO_RUN_CORE0=y
|
||||
# CONFIG_ARDUINO_RUN_CORE1 is not set
|
||||
# CONFIG_ARDUINO_RUN_NO_AFFINITY is not set
|
||||
CONFIG_ARDUINO_RUNNING_CORE=0
|
||||
CONFIG_ARDUINO_LOOP_STACK_SIZE=8192
|
||||
CONFIG_ARDUINO_EVENT_RUN_CORE0=y
|
||||
# CONFIG_ARDUINO_EVENT_RUN_CORE1 is not set
|
||||
# CONFIG_ARDUINO_EVENT_RUN_NO_AFFINITY is not set
|
||||
CONFIG_ARDUINO_EVENT_RUNNING_CORE=0
|
||||
CONFIG_ARDUINO_UDP_RUN_CORE0=y
|
||||
# CONFIG_ARDUINO_UDP_RUN_CORE1 is not set
|
||||
# CONFIG_ARDUINO_UDP_RUN_NO_AFFINITY is not set
|
||||
CONFIG_ARDUINO_UDP_TASK_PRIORITY=3
|
||||
CONFIG_ARDUINO_UDP_RUNNING_CORE=0
|
||||
CONFIG_ARDUINO_ISR_IRAM=y
|
||||
CONFIG_DISABLE_HAL_LOCKS=y
|
||||
|
||||
#
|
||||
# Debug Log Configuration
|
||||
#
|
||||
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_NONE is not set
|
||||
CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_ERROR=y
|
||||
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_WARN is not set
|
||||
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_INFO is not set
|
||||
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_DEBUG is not set
|
||||
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_VERBOSE is not set
|
||||
CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL=1
|
||||
# CONFIG_ARDUHAL_LOG_COLORS is not set
|
||||
# CONFIG_ARDUHAL_ESP_LOG is not set
|
||||
# end of Debug Log Configuration
|
||||
|
||||
CONFIG_ARDUHAL_PARTITION_SCHEME_DEFAULT=y
|
||||
# CONFIG_ARDUHAL_PARTITION_SCHEME_MINIMAL is not set
|
||||
# CONFIG_ARDUHAL_PARTITION_SCHEME_NO_OTA is not set
|
||||
# CONFIG_ARDUHAL_PARTITION_SCHEME_HUGE_APP is not set
|
||||
# CONFIG_ARDUHAL_PARTITION_SCHEME_MIN_SPIFFS is not set
|
||||
CONFIG_ARDUHAL_PARTITION_SCHEME="default"
|
||||
# CONFIG_ARDUINO_SELECTIVE_COMPILATION is not set
|
||||
# end of Arduino Configuration
|
||||
|
||||
#
|
||||
# Compiler options
|
||||
#
|
||||
@@ -425,10 +431,10 @@ CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y
|
||||
# CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set
|
||||
CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024
|
||||
CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000
|
||||
# CONFIG_ESP32_XTAL_FREQ_40 is not set
|
||||
CONFIG_ESP32_XTAL_FREQ_26=y
|
||||
CONFIG_ESP32_XTAL_FREQ_40=y
|
||||
# CONFIG_ESP32_XTAL_FREQ_26 is not set
|
||||
# CONFIG_ESP32_XTAL_FREQ_AUTO is not set
|
||||
CONFIG_ESP32_XTAL_FREQ=26
|
||||
CONFIG_ESP32_XTAL_FREQ=40
|
||||
# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set
|
||||
# CONFIG_ESP32_NO_BLOBS is not set
|
||||
# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
|
||||
|
||||
Reference in New Issue
Block a user