summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/ioport.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/ioport.c')
-rw-r--r--src/emu/ioport.c968
1 files changed, 483 insertions, 485 deletions
diff --git a/src/emu/ioport.c b/src/emu/ioport.c
index 2c3c2b3aed3..2abe71e2c81 100644
--- a/src/emu/ioport.c
+++ b/src/emu/ioport.c
@@ -134,14 +134,14 @@
// temporary: set this to 1 to enable the originally defined behavior that
// a field specified via PORT_MODIFY which intersects a previously-defined
// field completely wipes out the previous definition
-#define INPUT_PORT_OVERRIDE_FULLY_NUKES_PREVIOUS 1
+#define INPUT_PORT_OVERRIDE_FULLY_NUKES_PREVIOUS 1
//**************************************************************************
// DEBUGGING
//**************************************************************************
-#define LOG_NATURAL_KEYBOARD 0
+#define LOG_NATURAL_KEYBOARD 0
@@ -192,46 +192,46 @@ private:
INT32 apply_inverse_sensitivity(INT32 value) const;
// internal state
- analog_field * m_next; // link to the next analog state for this port
- ioport_field & m_field; // pointer to the input field referenced
+ analog_field * m_next; // link to the next analog state for this port
+ ioport_field & m_field; // pointer to the input field referenced
// adjusted values (right-justified and tweaked)
- UINT8 m_shift; // shift to align final value in the port
- INT32 m_adjdefvalue; // adjusted default value from the config
- INT32 m_adjmin; // adjusted minimum value from the config
- INT32 m_adjmax; // adjusted maximum value from the config
+ UINT8 m_shift; // shift to align final value in the port
+ INT32 m_adjdefvalue; // adjusted default value from the config
+ INT32 m_adjmin; // adjusted minimum value from the config
+ INT32 m_adjmax; // adjusted maximum value from the config
// live values of configurable parameters
- INT32 m_sensitivity; // current live sensitivity (100=normal)
- bool m_reverse; // current live reverse flag
- INT32 m_delta; // current live delta to apply each frame a digital inc/dec key is pressed
- INT32 m_centerdelta; // current live delta to apply each frame no digital inputs are pressed
+ INT32 m_sensitivity; // current live sensitivity (100=normal)
+ bool m_reverse; // current live reverse flag
+ INT32 m_delta; // current live delta to apply each frame a digital inc/dec key is pressed
+ INT32 m_centerdelta; // current live delta to apply each frame no digital inputs are pressed
// live analog value tracking
- INT32 m_accum; // accumulated value (including relative adjustments)
- INT32 m_previous; // previous adjusted value
- INT32 m_previousanalog; // previous analog value
+ INT32 m_accum; // accumulated value (including relative adjustments)
+ INT32 m_previous; // previous adjusted value
+ INT32 m_previousanalog; // previous analog value
// parameters for modifying live values
- INT32 m_minimum; // minimum adjusted value
- INT32 m_maximum; // maximum adjusted value
- INT32 m_center; // center adjusted value for autocentering
- INT32 m_reverse_val; // value where we subtract from to reverse directions
+ INT32 m_minimum; // minimum adjusted value
+ INT32 m_maximum; // maximum adjusted value
+ INT32 m_center; // center adjusted value for autocentering
+ INT32 m_reverse_val; // value where we subtract from to reverse directions
// scaling factors
- INT64 m_scalepos; // scale factor to apply to positive adjusted values
- INT64 m_scaleneg; // scale factor to apply to negative adjusted values
- INT64 m_keyscalepos; // scale factor to apply to the key delta field when pos
- INT64 m_keyscaleneg; // scale factor to apply to the key delta field when neg
- INT64 m_positionalscale; // scale factor to divide a joystick into positions
+ INT64 m_scalepos; // scale factor to apply to positive adjusted values
+ INT64 m_scaleneg; // scale factor to apply to negative adjusted values
+ INT64 m_keyscalepos; // scale factor to apply to the key delta field when pos
+ INT64 m_keyscaleneg; // scale factor to apply to the key delta field when neg
+ INT64 m_positionalscale; // scale factor to divide a joystick into positions
// misc flags
- bool m_absolute; // is this an absolute or relative input?
- bool m_wraps; // does the control wrap around?
- bool m_autocenter; // autocenter this input?
- bool m_single_scale; // scale joystick differently if default is between min/max
- bool m_interpolate; // should we do linear interpolation for mid-frame reads?
- bool m_lastdigital; // was the last modification caused by a digital form?
+ bool m_absolute; // is this an absolute or relative input?
+ bool m_wraps; // does the control wrap around?
+ bool m_autocenter; // autocenter this input?
+ bool m_single_scale; // scale joystick differently if default is between min/max
+ bool m_interpolate; // should we do linear interpolation for mid-frame reads?
+ bool m_lastdigital; // was the last modification caused by a digital form?
};
@@ -254,10 +254,10 @@ public:
private:
// internal state
- dynamic_field * m_next; // linked list of info for this port
- ioport_field & m_field; // reference to the input field
- UINT8 m_shift; // shift to apply to the final result
- ioport_value m_oldval; // last value
+ dynamic_field * m_next; // linked list of info for this port
+ ioport_field & m_field; // reference to the input field
+ UINT8 m_shift; // shift to apply to the final result
+ ioport_value m_oldval; // last value
};
@@ -268,14 +268,14 @@ struct ioport_field_live
ioport_field_live(ioport_field &field, analog_field *analog);
// public state
- analog_field * analog; // pointer to live analog data if this is an analog field
- digital_joystick * joystick; // pointer to digital joystick information
- input_seq seq[SEQ_TYPE_TOTAL];// currently configured input sequences
- ioport_value value; // current value of this port
- UINT8 impulse; // counter for impulse controls
- bool last; // were we pressed last time?
- digital_joystick::direction_t joydir; // digital joystick direction index
- astring name; // overridden name
+ analog_field * analog; // pointer to live analog data if this is an analog field
+ digital_joystick * joystick; // pointer to digital joystick information
+ input_seq seq[SEQ_TYPE_TOTAL];// currently configured input sequences
+ ioport_value value; // current value of this port
+ UINT8 impulse; // counter for impulse controls
+ bool last; // were we pressed last time?
+ digital_joystick::direction_t joydir; // digital joystick direction index
+ astring name; // overridden name
};
@@ -286,12 +286,12 @@ struct ioport_port_live
ioport_port_live(ioport_port &port);
// public state
- simple_list<analog_field> analoglist; // list of analog port info
- simple_list<dynamic_field> readlist; // list of dynamic read fields
- simple_list<dynamic_field> writelist; // list of dynamic write fields
- ioport_value defvalue; // combined default value across the port
- ioport_value digital; // current value from all digital inputs
- ioport_value outputvalue; // current value for outputs
+ simple_list<analog_field> analoglist; // list of analog port info
+ simple_list<dynamic_field> readlist; // list of dynamic read fields
+ simple_list<dynamic_field> writelist; // list of dynamic write fields
+ ioport_value defvalue; // combined default value across the port
+ ioport_value digital; // current value from all digital inputs
+ ioport_value outputvalue; // current value for outputs
};
@@ -300,7 +300,7 @@ struct char_info
{
unicode_char ch;
const char *name;
- const char *alternate; // alternative string, in UTF-8
+ const char *alternate; // alternative string, in UTF-8
static const char_info *find(unicode_char target);
};
@@ -355,296 +355,296 @@ static const char *const seqtypestrings[] = { "standard", "increment", "decremen
// master character info table
static const char_info charinfo[] =
{
- { 0x0008, "Backspace", NULL }, // Backspace
- { 0x0009, "Tab", " " }, // Tab
- { 0x000c, "Clear", NULL }, // Clear
- { 0x000d, "Enter", NULL }, // Enter
- { 0x001a, "Esc", NULL }, // Esc
- { 0x0020, "Space", " " }, // Space
- { 0x0061, NULL, "A" }, // a
- { 0x0062, NULL, "B" }, // b
- { 0x0063, NULL, "C" }, // c
- { 0x0064, NULL, "D" }, // d
- { 0x0065, NULL, "E" }, // e
- { 0x0066, NULL, "F" }, // f
- { 0x0067, NULL, "G" }, // g
- { 0x0068, NULL, "H" }, // h
- { 0x0069, NULL, "I" }, // i
- { 0x006a, NULL, "J" }, // j
- { 0x006b, NULL, "K" }, // k
- { 0x006c, NULL, "L" }, // l
- { 0x006d, NULL, "M" }, // m
- { 0x006e, NULL, "N" }, // n
- { 0x006f, NULL, "O" }, // o
- { 0x0070, NULL, "P" }, // p
- { 0x0071, NULL, "Q" }, // q
- { 0x0072, NULL, "R" }, // r
- { 0x0073, NULL, "S" }, // s
- { 0x0074, NULL, "T" }, // t
- { 0x0075, NULL, "U" }, // u
- { 0x0076, NULL, "V" }, // v
- { 0x0077, NULL, "W" }, // w
- { 0x0078, NULL, "X" }, // x
- { 0x0079, NULL, "Y" }, // y
- { 0x007a, NULL, "Z" }, // z
- { 0x00a0, NULL, " " }, // non breaking space
- { 0x00a1, NULL, "!" }, // inverted exclaimation mark
- { 0x00a6, NULL, "|" }, // broken bar
- { 0x00a9, NULL, "(c)" }, // copyright sign
- { 0x00ab, NULL, "<<" }, // left pointing double angle
- { 0x00ae, NULL, "(r)" }, // registered sign
- { 0x00bb, NULL, ">>" }, // right pointing double angle
- { 0x00bc, NULL, "1/4" }, // vulgar fraction one quarter
- { 0x00bd, NULL, "1/2" }, // vulgar fraction one half
- { 0x00be, NULL, "3/4" }, // vulgar fraction three quarters
- { 0x00bf, NULL, "?" }, // inverted question mark
- { 0x00c0, NULL, "A" }, // 'A' grave
- { 0x00c1, NULL, "A" }, // 'A' acute
- { 0x00c2, NULL, "A" }, // 'A' circumflex
- { 0x00c3, NULL, "A" }, // 'A' tilde
- { 0x00c4, NULL, "A" }, // 'A' diaeresis
- { 0x00c5, NULL, "A" }, // 'A' ring above
- { 0x00c6, NULL, "AE" }, // 'AE' ligature
- { 0x00c7, NULL, "C" }, // 'C' cedilla
- { 0x00c8, NULL, "E" }, // 'E' grave
- { 0x00c9, NULL, "E" }, // 'E' acute
- { 0x00ca, NULL, "E" }, // 'E' circumflex
- { 0x00cb, NULL, "E" }, // 'E' diaeresis
- { 0x00cc, NULL, "I" }, // 'I' grave
- { 0x00cd, NULL, "I" }, // 'I' acute
- { 0x00ce, NULL, "I" }, // 'I' circumflex
- { 0x00cf, NULL, "I" }, // 'I' diaeresis
- { 0x00d0, NULL, "D" }, // 'ETH'
- { 0x00d1, NULL, "N" }, // 'N' tilde
- { 0x00d2, NULL, "O" }, // 'O' grave
- { 0x00d3, NULL, "O" }, // 'O' acute
- { 0x00d4, NULL, "O" }, // 'O' circumflex
- { 0x00d5, NULL, "O" }, // 'O' tilde
- { 0x00d6, NULL, "O" }, // 'O' diaeresis
- { 0x00d7, NULL, "X" }, // multiplication sign
- { 0x00d8, NULL, "O" }, // 'O' stroke
- { 0x00d9, NULL, "U" }, // 'U' grave
- { 0x00da, NULL, "U" }, // 'U' acute
- { 0x00db, NULL, "U" }, // 'U' circumflex
- { 0x00dc, NULL, "U" }, // 'U' diaeresis
- { 0x00dd, NULL, "Y" }, // 'Y' acute
- { 0x00df, NULL, "SS" }, // sharp S
- { 0x00e0, NULL, "a" }, // 'a' grave
- { 0x00e1, NULL, "a" }, // 'a' acute
- { 0x00e2, NULL, "a" }, // 'a' circumflex
- { 0x00e3, NULL, "a" }, // 'a' tilde
- { 0x00e4, NULL, "a" }, // 'a' diaeresis
- { 0x00e5, NULL, "a" }, // 'a' ring above
- { 0x00e6, NULL, "ae" }, // 'ae' ligature
- { 0x00e7, NULL, "c" }, // 'c' cedilla
- { 0x00e8, NULL, "e" }, // 'e' grave
- { 0x00e9, NULL, "e" }, // 'e' acute
- { 0x00ea, NULL, "e" }, // 'e' circumflex
- { 0x00eb, NULL, "e" }, // 'e' diaeresis
- { 0x00ec, NULL, "i" }, // 'i' grave
- { 0x00ed, NULL, "i" }, // 'i' acute
- { 0x00ee, NULL, "i" }, // 'i' circumflex
- { 0x00ef, NULL, "i" }, // 'i' diaeresis
- { 0x00f0, NULL, "d" }, // 'eth'
- { 0x00f1, NULL, "n" }, // 'n' tilde
- { 0x00f2, NULL, "o" }, // 'o' grave
- { 0x00f3, NULL, "o" }, // 'o' acute
- { 0x00f4, NULL, "o" }, // 'o' circumflex
- { 0x00f5, NULL, "o" }, // 'o' tilde
- { 0x00f6, NULL, "o" }, // 'o' diaeresis
- { 0x00f8, NULL, "o" }, // 'o' stroke
- { 0x00f9, NULL, "u" }, // 'u' grave
- { 0x00fa, NULL, "u" }, // 'u' acute
- { 0x00fb, NULL, "u" }, // 'u' circumflex
- { 0x00fc, NULL, "u" }, // 'u' diaeresis
- { 0x00fd, NULL, "y" }, // 'y' acute
- { 0x00ff, NULL, "y" }, // 'y' diaeresis
- { 0x2010, NULL, "-" }, // hyphen
- { 0x2011, NULL, "-" }, // non-breaking hyphen
- { 0x2012, NULL, "-" }, // figure dash
- { 0x2013, NULL, "-" }, // en dash
- { 0x2014, NULL, "-" }, // em dash
- { 0x2015, NULL, "-" }, // horizontal dash
- { 0x2018, NULL, "\'" }, // left single quotation mark
- { 0x2019, NULL, "\'" }, // right single quotation mark
- { 0x201a, NULL, "\'" }, // single low quotation mark
- { 0x201b, NULL, "\'" }, // single high reversed quotation mark
- { 0x201c, NULL, "\"" }, // left double quotation mark
- { 0x201d, NULL, "\"" }, // right double quotation mark
- { 0x201e, NULL, "\"" }, // double low quotation mark
- { 0x201f, NULL, "\"" }, // double high reversed quotation mark
- { 0x2024, NULL, "." }, // one dot leader
- { 0x2025, NULL, ".." }, // two dot leader
- { 0x2026, NULL, "..." }, // horizontal ellipsis
- { 0x2047, NULL, "??" }, // double question mark
- { 0x2048, NULL, "?!" }, // question exclamation mark
- { 0x2049, NULL, "!?" }, // exclamation question mark
- { 0xff01, NULL, "!" }, // fullwidth exclamation point
- { 0xff02, NULL, "\"" }, // fullwidth quotation mark
- { 0xff03, NULL, "#" }, // fullwidth number sign
- { 0xff04, NULL, "$" }, // fullwidth dollar sign
- { 0xff05, NULL, "%" }, // fullwidth percent sign
- { 0xff06, NULL, "&" }, // fullwidth ampersand
- { 0xff07, NULL, "\'" }, // fullwidth apostrophe
- { 0xff08, NULL, "(" }, // fullwidth left parenthesis
- { 0xff09, NULL, ")" }, // fullwidth right parenthesis
- { 0xff0a, NULL, "*" }, // fullwidth asterisk
- { 0xff0b, NULL, "+" }, // fullwidth plus
- { 0xff0c, NULL, "," }, // fullwidth comma
- { 0xff0d, NULL, "-" }, // fullwidth minus
- { 0xff0e, NULL, "." }, // fullwidth period
- { 0xff0f, NULL, "/" }, // fullwidth slash
- { 0xff10, NULL, "0" }, // fullwidth zero
- { 0xff11, NULL, "1" }, // fullwidth one
- { 0xff12, NULL, "2" }, // fullwidth two
- { 0xff13, NULL, "3" }, // fullwidth three
- { 0xff14, NULL, "4" }, // fullwidth four
- { 0xff15, NULL, "5" }, // fullwidth five
- { 0xff16, NULL, "6" }, // fullwidth six
- { 0xff17, NULL, "7" }, // fullwidth seven
- { 0xff18, NULL, "8" }, // fullwidth eight
- { 0xff19, NULL, "9" }, // fullwidth nine
- { 0xff1a, NULL, ":" }, // fullwidth colon
- { 0xff1b, NULL, ";" }, // fullwidth semicolon
- { 0xff1c, NULL, "<" }, // fullwidth less than sign
- { 0xff1d, NULL, "=" }, // fullwidth equals sign
- { 0xff1e, NULL, ">" }, // fullwidth greater than sign
- { 0xff1f, NULL, "?" }, // fullwidth question mark
- { 0xff20, NULL, "@" }, // fullwidth at sign
- { 0xff21, NULL, "A" }, // fullwidth 'A'
- { 0xff22, NULL, "B" }, // fullwidth 'B'
- { 0xff23, NULL, "C" }, // fullwidth 'C'
- { 0xff24, NULL, "D" }, // fullwidth 'D'
- { 0xff25, NULL, "E" }, // fullwidth 'E'
- { 0xff26, NULL, "F" }, // fullwidth 'F'
- { 0xff27, NULL, "G" }, // fullwidth 'G'
- { 0xff28, NULL, "H" }, // fullwidth 'H'
- { 0xff29, NULL, "I" }, // fullwidth 'I'
- { 0xff2a, NULL, "J" }, // fullwidth 'J'
- { 0xff2b, NULL, "K" }, // fullwidth 'K'
- { 0xff2c, NULL, "L" }, // fullwidth 'L'
- { 0xff2d, NULL, "M" }, // fullwidth 'M'
- { 0xff2e, NULL, "N" }, // fullwidth 'N'
- { 0xff2f, NULL, "O" }, // fullwidth 'O'
- { 0xff30, NULL, "P" }, // fullwidth 'P'
- { 0xff31, NULL, "Q" }, // fullwidth 'Q'
- { 0xff32, NULL, "R" }, // fullwidth 'R'
- { 0xff33, NULL, "S" }, // fullwidth 'S'
- { 0xff34, NULL, "T" }, // fullwidth 'T'
- { 0xff35, NULL, "U" }, // fullwidth 'U'
- { 0xff36, NULL, "V" }, // fullwidth 'V'
- { 0xff37, NULL, "W" }, // fullwidth 'W'
- { 0xff38, NULL, "X" }, // fullwidth 'X'
- { 0xff39, NULL, "Y" }, // fullwidth 'Y'
- { 0xff3a, NULL, "Z" }, // fullwidth 'Z'
- { 0xff3b, NULL, "[" }, // fullwidth left bracket
- { 0xff3c, NULL, "\\" }, // fullwidth backslash
- { 0xff3d, NULL, "]" }, // fullwidth right bracket
- { 0xff3e, NULL, "^" }, // fullwidth caret
- { 0xff3f, NULL, "_" }, // fullwidth underscore
- { 0xff40, NULL, "`" }, // fullwidth backquote
- { 0xff41, NULL, "a" }, // fullwidth 'a'
- { 0xff42, NULL, "b" }, // fullwidth 'b'
- { 0xff43, NULL, "c" }, // fullwidth 'c'
- { 0xff44, NULL, "d" }, // fullwidth 'd'
- { 0xff45, NULL, "e" }, // fullwidth 'e'
- { 0xff46, NULL, "f" }, // fullwidth 'f'
- { 0xff47, NULL, "g" }, // fullwidth 'g'
- { 0xff48, NULL, "h" }, // fullwidth 'h'
- { 0xff49, NULL, "i" }, // fullwidth 'i'
- { 0xff4a, NULL, "j" }, // fullwidth 'j'
- { 0xff4b, NULL, "k" }, // fullwidth 'k'
- { 0xff4c, NULL, "l" }, // fullwidth 'l'
- { 0xff4d, NULL, "m" }, // fullwidth 'm'
- { 0xff4e, NULL, "n" }, // fullwidth 'n'
- { 0xff4f, NULL, "o" }, // fullwidth 'o'
- { 0xff50, NULL, "p" }, // fullwidth 'p'
- { 0xff51, NULL, "q" }, // fullwidth 'q'
- { 0xff52, NULL, "r" }, // fullwidth 'r'
- { 0xff53, NULL, "s" }, // fullwidth 's'
- { 0xff54, NULL, "t" }, // fullwidth 't'
- { 0xff55, NULL, "u" }, // fullwidth 'u'
- { 0xff56, NULL, "v" }, // fullwidth 'v'
- { 0xff57, NULL, "w" }, // fullwidth 'w'
- { 0xff58, NULL, "x" }, // fullwidth 'x'
- { 0xff59, NULL, "y" }, // fullwidth 'y'
- { 0xff5a, NULL, "z" }, // fullwidth 'z'
- { 0xff5b, NULL, "{" }, // fullwidth left brace
- { 0xff5c, NULL, "|" }, // fullwidth vertical bar
- { 0xff5d, NULL, "}" }, // fullwidth right brace
- { 0xff5e, NULL, "~" }, // fullwidth tilde
- { 0xff5f, NULL, "((" }, // fullwidth double left parenthesis
- { 0xff60, NULL, "))" }, // fullwidth double right parenthesis
- { 0xffe0, NULL, "\xC2\xA2" }, // fullwidth cent sign
- { 0xffe1, NULL, "\xC2\xA3" }, // fullwidth pound sign
- { 0xffe4, NULL, "\xC2\xA4" }, // fullwidth broken bar
- { 0xffe5, NULL, "\xC2\xA5" }, // fullwidth yen sign
- { 0xffe6, NULL, "\xE2\x82\xA9" }, // fullwidth won sign
- { 0xffe9, NULL, "\xE2\x86\x90" }, // fullwidth left arrow
- { 0xffea, NULL, "\xE2\x86\x91" }, // fullwidth up arrow
- { 0xffeb, NULL, "\xE2\x86\x92" }, // fullwidth right arrow
- { 0xffec, NULL, "\xE2\x86\x93" }, // fullwidth down arrow
- { 0xffed, NULL, "\xE2\x96\xAA" }, // fullwidth solid box
- { 0xffee, NULL, "\xE2\x97\xA6" }, // fullwidth open circle
- { UCHAR_SHIFT_1, "Shift", NULL }, // Shift key
- { UCHAR_SHIFT_2, "Ctrl", NULL }, // Ctrl key
- { UCHAR_MAMEKEY(F1), "F1", NULL }, // F1 function key
- { UCHAR_MAMEKEY(F2), "F2", NULL }, // F2 function key
- { UCHAR_MAMEKEY(F3), "F3", NULL }, // F3 function key
- { UCHAR_MAMEKEY(F4), "F4", NULL }, // F4 function key
- { UCHAR_MAMEKEY(F5), "F5", NULL }, // F5 function key
- { UCHAR_MAMEKEY(F6), "F6", NULL }, // F6 function key
- { UCHAR_MAMEKEY(F7), "F7", NULL }, // F7 function key
- { UCHAR_MAMEKEY(F8), "F8", NULL }, // F8 function key
- { UCHAR_MAMEKEY(F9), "F9", NULL }, // F9 function key
- { UCHAR_MAMEKEY(F10), "F10", NULL }, // F10 function key
- { UCHAR_MAMEKEY(F11), "F11", NULL }, // F11 function key
- { UCHAR_MAMEKEY(F12), "F12", NULL }, // F12 function key
- { UCHAR_MAMEKEY(F13), "F13", NULL }, // F13 function key
- { UCHAR_MAMEKEY(F14), "F14", NULL }, // F14 function key
- { UCHAR_MAMEKEY(F15), "F15", NULL }, // F15 function key
- { UCHAR_MAMEKEY(ESC), "Esc", "\033" }, // Esc key
- { UCHAR_MAMEKEY(INSERT), "Insert", NULL }, // Insert key
- { UCHAR_MAMEKEY(DEL), "Delete", "\010" }, // Delete key
- { UCHAR_MAMEKEY(HOME), "Home", "\014" }, // Home key
- { UCHAR_MAMEKEY(END), "End", NULL }, // End key
- { UCHAR_MAMEKEY(PGUP), "Page Up", NULL }, // Page Up key
- { UCHAR_MAMEKEY(PGDN), "Page Down", NULL }, // Page Down key
- { UCHAR_MAMEKEY(LEFT), "Cursor Left", NULL }, // Cursor Left
- { UCHAR_MAMEKEY(RIGHT), "Cursor Right", NULL }, // Cursor Right
- { UCHAR_MAMEKEY(UP), "Cursor Up", NULL }, // Cursor Up
- { UCHAR_MAMEKEY(DOWN), "Cursor Down", NULL }, // Cursor Down
- { UCHAR_MAMEKEY(0_PAD), "Keypad 0", NULL }, // 0 on the numeric keypad
- { UCHAR_MAMEKEY(1_PAD), "Keypad 1", NULL }, // 1 on the numeric keypad
- { UCHAR_MAMEKEY(2_PAD), "Keypad 2", NULL }, // 2 on the numeric keypad
- { UCHAR_MAMEKEY(3_PAD), "Keypad 3", NULL }, // 3 on the numeric keypad
- { UCHAR_MAMEKEY(4_PAD), "Keypad 4", NULL }, // 4 on the numeric keypad
- { UCHAR_MAMEKEY(5_PAD), "Keypad 5", NULL }, // 5 on the numeric keypad
- { UCHAR_MAMEKEY(6_PAD), "Keypad 6", NULL }, // 6 on the numeric keypad
- { UCHAR_MAMEKEY(7_PAD), "Keypad 7", NULL }, // 7 on the numeric keypad
- { UCHAR_MAMEKEY(8_PAD), "Keypad 8", NULL }, // 8 on the numeric keypad
- { UCHAR_MAMEKEY(9_PAD), "Keypad 9", NULL }, // 9 on the numeric keypad
- { UCHAR_MAMEKEY(SLASH_PAD), "Keypad /", NULL }, // / on the numeric keypad
- { UCHAR_MAMEKEY(ASTERISK), "Keypad *", NULL }, // * on the numeric keypad
- { UCHAR_MAMEKEY(MINUS_PAD), "Keypad -", NULL }, // - on the numeric Keypad
- { UCHAR_MAMEKEY(PLUS_PAD), "Keypad +", NULL }, // + on the numeric Keypad
- { UCHAR_MAMEKEY(DEL_PAD), "Keypad .", NULL }, // . on the numeric keypad
- { UCHAR_MAMEKEY(ENTER_PAD), "Keypad Enter", NULL }, // Enter on the numeric keypad
- { UCHAR_MAMEKEY(PRTSCR), "Print Screen", NULL }, // Print Screen key
- { UCHAR_MAMEKEY(PAUSE), "Pause", NULL }, // Pause key
- { UCHAR_MAMEKEY(LSHIFT), "Left Shift", NULL }, // Left Shift key
- { UCHAR_MAMEKEY(RSHIFT), "Right Shift", NULL }, // Right Shift key
- { UCHAR_MAMEKEY(LCONTROL), "Left Ctrl", NULL }, // Left Control key
- { UCHAR_MAMEKEY(RCONTROL), "Right Ctrl", NULL }, // Right Control key
- { UCHAR_MAMEKEY(LALT), "Left Alt", NULL }, // Left Alt key
- { UCHAR_MAMEKEY(RALT), "Right Alt", NULL }, // Right Alt key
- { UCHAR_MAMEKEY(SCRLOCK), "Scroll Lock", NULL }, // Scroll Lock key
- { UCHAR_MAMEKEY(NUMLOCK), "Num Lock", NULL }, // Num Lock key
- { UCHAR_MAMEKEY(CAPSLOCK), "Caps Lock", NULL }, // Caps Lock key
- { UCHAR_MAMEKEY(LWIN), "Left Win", NULL }, // Left Win key
- { UCHAR_MAMEKEY(RWIN), "Right Win", NULL }, // Right Win key
- { UCHAR_MAMEKEY(MENU), "Menu", NULL }, // Menu key
- { UCHAR_MAMEKEY(CANCEL), "Break", NULL } // Break/Pause key
+ { 0x0008, "Backspace", NULL }, // Backspace
+ { 0x0009, "Tab", " " }, // Tab
+ { 0x000c, "Clear", NULL }, // Clear
+ { 0x000d, "Enter", NULL }, // Enter
+ { 0x001a, "Esc", NULL }, // Esc
+ { 0x0020, "Space", " " }, // Space
+ { 0x0061, NULL, "A" }, // a
+ { 0x0062, NULL, "B" }, // b
+ { 0x0063, NULL, "C" }, // c
+ { 0x0064, NULL, "D" }, // d
+ { 0x0065, NULL, "E" }, // e
+ { 0x0066, NULL, "F" }, // f
+ { 0x0067, NULL, "G" }, // g
+ { 0x0068, NULL, "H" }, // h
+ { 0x0069, NULL, "I" }, // i
+ { 0x006a, NULL, "J" }, // j
+ { 0x006b, NULL, "K" }, // k
+ { 0x006c, NULL, "L" }, // l
+ { 0x006d, NULL, "M" }, // m
+ { 0x006e, NULL, "N" }, // n
+ { 0x006f, NULL, "O" }, // o
+ { 0x0070, NULL, "P" }, // p
+ { 0x0071, NULL, "Q" }, // q
+ { 0x0072, NULL, "R" }, // r
+ { 0x0073, NULL, "S" }, // s
+ { 0x0074, NULL, "T" }, // t
+ { 0x0075, NULL, "U" }, // u
+ { 0x0076, NULL, "V" }, // v
+ { 0x0077, NULL, "W" }, // w
+ { 0x0078, NULL, "X" }, // x
+ { 0x0079, NULL, "Y" }, // y
+ { 0x007a, NULL, "Z" }, // z
+ { 0x00a0, NULL, " " }, // non breaking space
+ { 0x00a1, NULL, "!" }, // inverted exclaimation mark
+ { 0x00a6, NULL, "|" }, // broken bar
+ { 0x00a9, NULL, "(c)" }, // copyright sign
+ { 0x00ab, NULL, "<<" }, // left pointing double angle
+ { 0x00ae, NULL, "(r)" }, // registered sign
+ { 0x00bb, NULL, ">>" }, // right pointing double angle
+ { 0x00bc, NULL, "1/4" }, // vulgar fraction one quarter
+ { 0x00bd, NULL, "1/2" }, // vulgar fraction one half
+ { 0x00be, NULL, "3/4" }, // vulgar fraction three quarters
+ { 0x00bf, NULL, "?" }, // inverted question mark
+ { 0x00c0, NULL, "A" }, // 'A' grave
+ { 0x00c1, NULL, "A" }, // 'A' acute
+ { 0x00c2, NULL, "A" }, // 'A' circumflex
+ { 0x00c3, NULL, "A" }, // 'A' tilde
+ { 0x00c4, NULL, "A" }, // 'A' diaeresis
+ { 0x00c5, NULL, "A" }, // 'A' ring above
+ { 0x00c6, NULL, "AE" }, // 'AE' ligature
+ { 0x00c7, NULL, "C" }, // 'C' cedilla
+ { 0x00c8, NULL, "E" }, // 'E' grave
+ { 0x00c9, NULL, "E" }, // 'E' acute
+ { 0x00ca, NULL, "E" }, // 'E' circumflex
+ { 0x00cb, NULL, "E" }, // 'E' diaeresis
+ { 0x00cc, NULL, "I" }, // 'I' grave
+ { 0x00cd, NULL, "I" }, // 'I' acute
+ { 0x00ce, NULL, "I" }, // 'I' circumflex
+ { 0x00cf, NULL, "I" }, // 'I' diaeresis
+ { 0x00d0, NULL, "D" }, // 'ETH'
+ { 0x00d1, NULL, "N" }, // 'N' tilde
+ { 0x00d2, NULL, "O" }, // 'O' grave
+ { 0x00d3, NULL, "O" }, // 'O' acute
+ { 0x00d4, NULL, "O" }, // 'O' circumflex
+ { 0x00d5, NULL, "O" }, // 'O' tilde
+ { 0x00d6, NULL, "O" }, // 'O' diaeresis
+ { 0x00d7, NULL, "X" }, // multiplication sign
+ { 0x00d8, NULL, "O" }, // 'O' stroke
+ { 0x00d9, NULL, "U" }, // 'U' grave
+ { 0x00da, NULL, "U" }, // 'U' acute
+ { 0x00db, NULL, "U" }, // 'U' circumflex
+ { 0x00dc, NULL, "U" }, // 'U' diaeresis
+ { 0x00dd, NULL, "Y" }, // 'Y' acute
+ { 0x00df, NULL, "SS" }, // sharp S
+ { 0x00e0, NULL, "a" }, // 'a' grave
+ { 0x00e1, NULL, "a" }, // 'a' acute
+ { 0x00e2, NULL, "a" }, // 'a' circumflex
+ { 0x00e3, NULL, "a" }, // 'a' tilde
+ { 0x00e4, NULL, "a" }, // 'a' diaeresis
+ { 0x00e5, NULL, "a" }, // 'a' ring above
+ { 0x00e6, NULL, "ae" }, // 'ae' ligature
+ { 0x00e7, NULL, "c" }, // 'c' cedilla
+ { 0x00e8, NULL, "e" }, // 'e' grave
+ { 0x00e9, NULL, "e" }, // 'e' acute
+ { 0x00ea, NULL, "e" }, // 'e' circumflex
+ { 0x00eb, NULL, "e" }, // 'e' diaeresis
+ { 0x00ec, NULL, "i" }, // 'i' grave
+ { 0x00ed, NULL, "i" }, // 'i' acute
+ { 0x00ee, NULL, "i" }, // 'i' circumflex
+ { 0x00ef, NULL, "i" }, // 'i' diaeresis
+ { 0x00f0, NULL, "d" }, // 'eth'
+ { 0x00f1, NULL, "n" }, // 'n' tilde
+ { 0x00f2, NULL, "o" }, // 'o' grave
+ { 0x00f3, NULL, "o" }, // 'o' acute
+ { 0x00f4, NULL, "o" }, // 'o' circumflex
+ { 0x00f5, NULL, "o" }, // 'o' tilde
+ { 0x00f6, NULL, "o" }, // 'o' diaeresis
+ { 0x00f8, NULL, "o" }, // 'o' stroke
+ { 0x00f9, NULL, "u" }, // 'u' grave
+ { 0x00fa, NULL, "u" }, // 'u' acute
+ { 0x00fb, NULL, "u" }, // 'u' circumflex
+ { 0x00fc, NULL, "u" }, // 'u' diaeresis
+ { 0x00fd, NULL, "y" }, // 'y' acute
+ { 0x00ff, NULL, "y" }, // 'y' diaeresis
+ { 0x2010, NULL, "-" }, // hyphen
+ { 0x2011, NULL, "-" }, // non-breaking hyphen
+ { 0x2012, NULL, "-" }, // figure dash
+ { 0x2013, NULL, "-" }, // en dash
+ { 0x2014, NULL, "-" }, // em dash
+ { 0x2015, NULL, "-" }, // horizontal dash
+ { 0x2018, NULL, "\'" }, // left single quotation mark
+ { 0x2019, NULL, "\'" }, // right single quotation mark
+ { 0x201a, NULL, "\'" }, // single low quotation mark
+ { 0x201b, NULL, "\'" }, // single high reversed quotation mark
+ { 0x201c, NULL, "\"" }, // left double quotation mark
+ { 0x201d, NULL, "\"" }, // right double quotation mark
+ { 0x201e, NULL, "\"" }, // double low quotation mark
+ { 0x201f, NULL, "\"" }, // double high reversed quotation mark
+ { 0x2024, NULL, "." }, // one dot leader
+ { 0x2025, NULL, ".." }, // two dot leader
+ { 0x2026, NULL, "..." }, // horizontal ellipsis
+ { 0x2047, NULL, "??" }, // double question mark
+ { 0x2048, NULL, "?!" }, // question exclamation mark
+ { 0x2049, NULL, "!?" }, // exclamation question mark
+ { 0xff01, NULL, "!" }, // fullwidth exclamation point
+ { 0xff02, NULL, "\"" }, // fullwidth quotation mark
+ { 0xff03, NULL, "#" }, // fullwidth number sign
+ { 0xff04, NULL, "$" }, // fullwidth dollar sign
+ { 0xff05, NULL, "%" }, // fullwidth percent sign
+ { 0xff06, NULL, "&" }, // fullwidth ampersand
+ { 0xff07, NULL, "\'" }, // fullwidth apostrophe
+ { 0xff08, NULL, "(" }, // fullwidth left parenthesis
+ { 0xff09, NULL, ")" }, // fullwidth right parenthesis
+ { 0xff0a, NULL, "*" }, // fullwidth asterisk
+ { 0xff0b, NULL, "+" }, // fullwidth plus
+ { 0xff0c, NULL, "," }, // fullwidth comma
+ { 0xff0d, NULL, "-" }, // fullwidth minus
+ { 0xff0e, NULL, "." }, // fullwidth period
+ { 0xff0f, NULL, "/" }, // fullwidth slash
+ { 0xff10, NULL, "0" }, // fullwidth zero
+ { 0xff11, NULL, "1" }, // fullwidth one
+ { 0xff12, NULL, "2" }, // fullwidth two
+ { 0xff13, NULL, "3" }, // fullwidth three
+ { 0xff14, NULL, "4" }, // fullwidth four
+ { 0xff15, NULL, "5" }, // fullwidth five
+ { 0xff16, NULL, "6" }, // fullwidth six
+ { 0xff17, NULL, "7" }, // fullwidth seven
+ { 0xff18, NULL, "8" }, // fullwidth eight
+ { 0xff19, NULL, "9" }, // fullwidth nine
+ { 0xff1a, NULL, ":" }, // fullwidth colon
+ { 0xff1b, NULL, ";" }, // fullwidth semicolon
+ { 0xff1c, NULL, "<" }, // fullwidth less than sign
+ { 0xff1d, NULL, "=" }, // fullwidth equals sign
+ { 0xff1e, NULL, ">" }, // fullwidth greater than sign
+ { 0xff1f, NULL, "?" }, // fullwidth question mark
+ { 0xff20, NULL, "@" }, // fullwidth at sign
+ { 0xff21, NULL, "A" }, // fullwidth 'A'
+ { 0xff22, NULL, "B" }, // fullwidth 'B'
+ { 0xff23, NULL, "C" }, // fullwidth 'C'
+ { 0xff24, NULL, "D" }, // fullwidth 'D'
+ { 0xff25, NULL, "E" }, // fullwidth 'E'
+ { 0xff26, NULL, "F" }, // fullwidth 'F'
+ { 0xff27, NULL, "G" }, // fullwidth 'G'
+ { 0xff28, NULL, "H" }, // fullwidth 'H'
+ { 0xff29, NULL, "I" }, // fullwidth 'I'
+ { 0xff2a, NULL, "J" }, // fullwidth 'J'
+ { 0xff2b, NULL, "K" }, // fullwidth 'K'
+ { 0xff2c, NULL, "L" }, // fullwidth 'L'
+ { 0xff2d, NULL, "M" }, // fullwidth 'M'
+ { 0xff2e, NULL, "N" }, // fullwidth 'N'
+ { 0xff2f, NULL, "O" }, // fullwidth 'O'
+ { 0xff30, NULL, "P" }, // fullwidth 'P'
+ { 0xff31, NULL, "Q" }, // fullwidth 'Q'
+ { 0xff32, NULL, "R" }, // fullwidth 'R'
+ { 0xff33, NULL, "S" }, // fullwidth 'S'
+ { 0xff34, NULL, "T" }, // fullwidth 'T'
+ { 0xff35, NULL, "U" }, // fullwidth 'U'
+ { 0xff36, NULL, "V" }, // fullwidth 'V'
+ { 0xff37, NULL, "W" }, // fullwidth 'W'
+ { 0xff38, NULL, "X" }, // fullwidth 'X'
+ { 0xff39, NULL, "Y" }, // fullwidth 'Y'
+ { 0xff3a, NULL, "Z" }, // fullwidth 'Z'
+ { 0xff3b, NULL, "[" }, // fullwidth left bracket
+ { 0xff3c, NULL, "\\" }, // fullwidth backslash
+ { 0xff3d, NULL, "]" }, // fullwidth right bracket
+ { 0xff3e, NULL, "^" }, // fullwidth caret
+ { 0xff3f, NULL, "_" }, // fullwidth underscore
+ { 0xff40, NULL, "`" }, // fullwidth backquote
+ { 0xff41, NULL, "a" }, // fullwidth 'a'
+ { 0xff42, NULL, "b" }, // fullwidth 'b'
+ { 0xff43, NULL, "c" }, // fullwidth 'c'
+ { 0xff44, NULL, "d" }, // fullwidth 'd'
+ { 0xff45, NULL, "e" }, // fullwidth 'e'
+ { 0xff46, NULL, "f" }, // fullwidth 'f'
+ { 0xff47, NULL, "g" }, // fullwidth 'g'
+ { 0xff48, NULL, "h" }, // fullwidth 'h'
+ { 0xff49, NULL, "i" }, // fullwidth 'i'
+ { 0xff4a, NULL, "j" }, // fullwidth 'j'
+ { 0xff4b, NULL, "k" }, // fullwidth 'k'
+ { 0xff4c, NULL, "l" }, // fullwidth 'l'
+ { 0xff4d, NULL, "m" }, // fullwidth 'm'
+ { 0xff4e, NULL, "n" }, // fullwidth 'n'
+ { 0xff4f, NULL, "o" }, // fullwidth 'o'
+ { 0xff50, NULL, "p" }, // fullwidth 'p'
+ { 0xff51, NULL, "q" }, // fullwidth 'q'
+ { 0xff52, NULL, "r" }, // fullwidth 'r'
+ { 0xff53, NULL, "s" }, // fullwidth 's'
+ { 0xff54, NULL, "t" }, // fullwidth 't'
+ { 0xff55, NULL, "u" }, // fullwidth 'u'
+ { 0xff56, NULL, "v" }, // fullwidth 'v'
+ { 0xff57, NULL, "w" }, // fullwidth 'w'
+ { 0xff58, NULL, "x" }, // fullwidth 'x'
+ { 0xff59, NULL, "y" }, // fullwidth 'y'
+ { 0xff5a, NULL, "z" }, // fullwidth 'z'
+ { 0xff5b, NULL, "{" }, // fullwidth left brace
+ { 0xff5c, NULL, "|" }, // fullwidth vertical bar
+ { 0xff5d, NULL, "}" }, // fullwidth right brace
+ { 0xff5e, NULL, "~" }, // fullwidth tilde
+ { 0xff5f, NULL, "((" }, // fullwidth double left parenthesis
+ { 0xff60, NULL, "))" }, // fullwidth double right parenthesis
+ { 0xffe0, NULL, "\xC2\xA2" }, // fullwidth cent sign
+ { 0xffe1, NULL, "\xC2\xA3" }, // fullwidth pound sign
+ { 0xffe4, NULL, "\xC2\xA4" }, // fullwidth broken bar
+ { 0xffe5, NULL, "\xC2\xA5" }, // fullwidth yen sign
+ { 0xffe6, NULL, "\xE2\x82\xA9" }, // fullwidth won sign
+ { 0xffe9, NULL, "\xE2\x86\x90" }, // fullwidth left arrow
+ { 0xffea, NULL, "\xE2\x86\x91" }, // fullwidth up arrow
+ { 0xffeb, NULL, "\xE2\x86\x92" }, // fullwidth right arrow
+ { 0xffec, NULL, "\xE2\x86\x93" }, // fullwidth down arrow
+ { 0xffed, NULL, "\xE2\x96\xAA" }, // fullwidth solid box
+ { 0xffee, NULL, "\xE2\x97\xA6" }, // fullwidth open circle
+ { UCHAR_SHIFT_1, "Shift", NULL }, // Shift key
+ { UCHAR_SHIFT_2, "Ctrl", NULL }, // Ctrl key
+ { UCHAR_MAMEKEY(F1), "F1", NULL }, // F1 function key
+ { UCHAR_MAMEKEY(F2), "F2", NULL }, // F2 function key
+ { UCHAR_MAMEKEY(F3), "F3", NULL }, // F3 function key
+ { UCHAR_MAMEKEY(F4), "F4", NULL }, // F4 function key
+ { UCHAR_MAMEKEY(F5), "F5", NULL }, // F5 function key
+ { UCHAR_MAMEKEY(F6), "F6", NULL }, // F6 function key
+ { UCHAR_MAMEKEY(F7), "F7", NULL }, // F7 function key
+ { UCHAR_MAMEKEY(F8), "F8", NULL }, // F8 function key
+ { UCHAR_MAMEKEY(F9), "F9", NULL }, // F9 function key
+ { UCHAR_MAMEKEY(F10), "F10", NULL }, // F10 function key
+ { UCHAR_MAMEKEY(F11), "F11", NULL }, // F11 function key
+ { UCHAR_MAMEKEY(F12), "F12", NULL }, // F12 function key
+ { UCHAR_MAMEKEY(F13), "F13", NULL }, // F13 function key
+ { UCHAR_MAMEKEY(F14), "F14", NULL }, // F14 function key
+ { UCHAR_MAMEKEY(F15), "F15", NULL }, // F15 function key
+ { UCHAR_MAMEKEY(ESC), "Esc", "\033" }, // Esc key
+ { UCHAR_MAMEKEY(INSERT), "Insert", NULL }, // Insert key
+ { UCHAR_MAMEKEY(DEL), "Delete", "\010" }, // Delete key
+ { UCHAR_MAMEKEY(HOME), "Home", "\014" }, // Home key
+ { UCHAR_MAMEKEY(END), "End", NULL }, // End key
+ { UCHAR_MAMEKEY(PGUP), "Page Up", NULL }, // Page Up key
+ { UCHAR_MAMEKEY(PGDN), "Page Down", NULL }, // Page Down key
+ { UCHAR_MAMEKEY(LEFT), "Cursor Left", NULL }, // Cursor Left
+ { UCHAR_MAMEKEY(RIGHT), "Cursor Right", NULL }, // Cursor Right
+ { UCHAR_MAMEKEY(UP), "Cursor Up", NULL }, // Cursor Up
+ { UCHAR_MAMEKEY(DOWN), "Cursor Down", NULL }, // Cursor Down
+ { UCHAR_MAMEKEY(0_PAD), "Keypad 0", NULL }, // 0 on the numeric keypad
+ { UCHAR_MAMEKEY(1_PAD), "Keypad 1", NULL }, // 1 on the numeric keypad
+ { UCHAR_MAMEKEY(2_PAD), "Keypad 2", NULL }, // 2 on the numeric keypad
+ { UCHAR_MAMEKEY(3_PAD), "Keypad 3", NULL }, // 3 on the numeric keypad
+ { UCHAR_MAMEKEY(4_PAD), "Keypad 4", NULL }, // 4 on the numeric keypad
+ { UCHAR_MAMEKEY(5_PAD), "Keypad 5", NULL }, // 5 on the numeric keypad
+ { UCHAR_MAMEKEY(6_PAD), "Keypad 6", NULL }, // 6 on the numeric keypad
+ { UCHAR_MAMEKEY(7_PAD), "Keypad 7", NULL }, // 7 on the numeric keypad
+ { UCHAR_MAMEKEY(8_PAD), "Keypad 8", NULL }, // 8 on the numeric keypad
+ { UCHAR_MAMEKEY(9_PAD), "Keypad 9", NULL }, // 9 on the numeric keypad
+ { UCHAR_MAMEKEY(SLASH_PAD), "Keypad /", NULL }, // / on the numeric keypad
+ { UCHAR_MAMEKEY(ASTERISK), "Keypad *", NULL }, // * on the numeric keypad
+ { UCHAR_MAMEKEY(MINUS_PAD), "Keypad -", NULL }, // - on the numeric Keypad
+ { UCHAR_MAMEKEY(PLUS_PAD), "Keypad +", NULL }, // + on the numeric Keypad
+ { UCHAR_MAMEKEY(DEL_PAD), "Keypad .", NULL }, // . on the numeric keypad
+ { UCHAR_MAMEKEY(ENTER_PAD), "Keypad Enter", NULL }, // Enter on the numeric keypad
+ { UCHAR_MAMEKEY(PRTSCR), "Print Screen", NULL }, // Print Screen key
+ { UCHAR_MAMEKEY(PAUSE), "Pause", NULL }, // Pause key
+ { UCHAR_MAMEKEY(LSHIFT), "Left Shift", NULL }, // Left Shift key
+ { UCHAR_MAMEKEY(RSHIFT), "Right Shift", NULL }, // Right Shift key
+ { UCHAR_MAMEKEY(LCONTROL), "Left Ctrl", NULL }, // Left Control key
+ { UCHAR_MAMEKEY(RCONTROL), "Right Ctrl", NULL }, // Right Control key
+ { UCHAR_MAMEKEY(LALT), "Left Alt", NULL }, // Left Alt key
+ { UCHAR_MAMEKEY(RALT), "Right Alt", NULL }, // Right Alt key
+ { UCHAR_MAMEKEY(SCRLOCK), "Scroll Lock", NULL }, // Scroll Lock key
+ { UCHAR_MAMEKEY(NUMLOCK), "Num Lock", NULL }, // Num Lock key
+ { UCHAR_MAMEKEY(CAPSLOCK), "Caps Lock", NULL }, // Caps Lock key
+ { UCHAR_MAMEKEY(LWIN), "Left Win", NULL }, // Left Win key
+ { UCHAR_MAMEKEY(RWIN), "Right Win", NULL }, // Right Win key
+ { UCHAR_MAMEKEY(MENU), "Menu", NULL }, // Menu key
+ { UCHAR_MAMEKEY(CANCEL), "Break", NULL } // Break/Pause key
};
@@ -833,22 +833,22 @@ void ioport_list::append(device_t &device, astring &errorbuf)
input_type_entry::input_type_entry(ioport_type type, ioport_group group, int player, const char *token, const char *name, input_seq standard)
: m_next(NULL),
- m_type(type),
- m_group(group),
- m_player(player),
- m_token(token),
- m_name(name)
+ m_type(type),
+ m_group(group),
+ m_player(player),
+ m_token(token),
+ m_name(name)
{
m_defseq[SEQ_TYPE_STANDARD] = m_seq[SEQ_TYPE_STANDARD] = standard;
}
input_type_entry::input_type_entry(ioport_type type, ioport_group group, int player, const char *token, const char *name, input_seq standard, input_seq decrement, input_seq increment)
: m_next(NULL),
- m_type(type),
- m_group(group),
- m_player(player),
- m_token(token),
- m_name(name)
+ m_type(type),
+ m_group(group),
+ m_player(player),
+ m_token(token),
+ m_name(name)
{
m_defseq[SEQ_TYPE_STANDARD] = m_seq[SEQ_TYPE_STANDARD] = standard;
m_defseq[SEQ_TYPE_INCREMENT] = m_seq[SEQ_TYPE_INCREMENT] = increment;
@@ -879,10 +879,10 @@ void input_type_entry::configure_osd(const char *token, const char *name)
digital_joystick::digital_joystick(int player, int number)
: m_player(player),
- m_number(number),
- m_current(0),
- m_current4way(0),
- m_previous(0)
+ m_number(number),
+ m_current(0),
+ m_current4way(0),
+ m_previous(0)
{
}
@@ -984,12 +984,12 @@ void digital_joystick::frame_update()
natural_keyboard::natural_keyboard(running_machine &machine)
: m_machine(machine),
- m_bufbegin(0),
- m_bufend(0),
- m_status_keydown(false),
- m_last_cr(false),
- m_timer(NULL),
- m_current_rate(attotime::zero)
+ m_bufbegin(0),
+ m_bufend(0),
+ m_status_keydown(false),
+ m_last_cr(false),
+ m_timer(NULL),
+ m_current_rate(attotime::zero)
{
m_queue_chars = ioport_queue_chars_delegate();
m_accept_char = ioport_accept_char_delegate();
@@ -1147,34 +1147,34 @@ void natural_keyboard::post_coded(const char *text, size_t length, attotime rate
unicode_char code;
} codes[] =
{
- { "BACKSPACE", 8 },
- { "BS", 8 },
- { "BKSP", 8 },
- { "DEL", UCHAR_MAMEKEY(DEL) },
- { "DELETE", UCHAR_MAMEKEY(DEL) },
- { "END", UCHAR_MAMEKEY(END) },
- { "ENTER", 13 },
- { "ESC", '\033' },
- { "HOME", UCHAR_MAMEKEY(HOME) },
- { "INS", UCHAR_MAMEKEY(INSERT) },
- { "INSERT", UCHAR_MAMEKEY(INSERT) },
- { "PGDN", UCHAR_MAMEKEY(PGDN) },
- { "PGUP", UCHAR_MAMEKEY(PGUP) },
- { "SPACE", 32 },
- { "TAB", 9 },
- { "F1", UCHAR_MAMEKEY(F1) },
- { "F2", UCHAR_MAMEKEY(F2) },
- { "F3", UCHAR_MAMEKEY(F3) },
- { "F4", UCHAR_MAMEKEY(F4) },
- { "F5", UCHAR_MAMEKEY(F5) },
- { "F6", UCHAR_MAMEKEY(F6) },
- { "F7", UCHAR_MAMEKEY(F7) },
- { "F8", UCHAR_MAMEKEY(F8) },
- { "F9", UCHAR_MAMEKEY(F9) },
- { "F10", UCHAR_MAMEKEY(F10) },
- { "F11", UCHAR_MAMEKEY(F11) },
- { "F12", UCHAR_MAMEKEY(F12) },
- { "QUOTE", '\"' }
+ { "BACKSPACE", 8 },
+ { "BS", 8 },
+ { "BKSP", 8 },
+ { "DEL", UCHAR_MAMEKEY(DEL) },
+ { "DELETE", UCHAR_MAMEKEY(DEL) },
+ { "END", UCHAR_MAMEKEY(END) },
+ { "ENTER", 13 },
+ { "ESC", '\033' },
+ { "HOME", UCHAR_MAMEKEY(HOME) },
+ { "INS", UCHAR_MAMEKEY(INSERT) },
+ { "INSERT", UCHAR_MAMEKEY(INSERT) },
+ { "PGDN", UCHAR_MAMEKEY(PGDN) },
+ { "PGUP", UCHAR_MAMEKEY(PGUP) },
+ { "SPACE", 32 },
+ { "TAB", 9 },
+ { "F1", UCHAR_MAMEKEY(F1) },
+ { "F2", UCHAR_MAMEKEY(F2) },
+ { "F3", UCHAR_MAMEKEY(F3) },
+ { "F4", UCHAR_MAMEKEY(F4) },
+ { "F5", UCHAR_MAMEKEY(F5) },
+ { "F6", UCHAR_MAMEKEY(F6) },
+ { "F7", UCHAR_MAMEKEY(F7) },
+ { "F8", UCHAR_MAMEKEY(F8) },
+ { "F9", UCHAR_MAMEKEY(F9) },
+ { "F10", UCHAR_MAMEKEY(F10) },
+ { "F11", UCHAR_MAMEKEY(F11) },
+ { "F12", UCHAR_MAMEKEY(F12) },
+ { "QUOTE", '\"' }
};
// set the fixed rate
@@ -1398,10 +1398,10 @@ const char *natural_keyboard::unicode_to_string(astring &buffer, unicode_char ch
switch (ch)
{
// check some magic values
- case '\0': buffer.cpy("\\0"); break;
- case '\r': buffer.cpy("\\r"); break;
- case '\n': buffer.cpy("\\n"); break;
- case '\t': buffer.cpy("\\t"); break;
+ case '\0': buffer.cpy("\\0"); break;
+ case '\r': buffer.cpy("\\r"); break;
+ case '\n': buffer.cpy("\\n"); break;
+ case '\t': buffer.cpy("\\t"); break;
default:
// seven bit ASCII is easy
@@ -1572,13 +1572,13 @@ bool ioport_condition::eval(device_t &device) const
ioport_value condvalue = device.ioport(m_tag)->read();
switch (m_condition)
{
- case ALWAYS: return true;
- case EQUALS: return ((condvalue & m_mask) == m_value);
- case NOTEQUALS: return ((condvalue & m_mask) != m_value);
- case GREATERTHAN: return ((condvalue & m_mask) > m_value);
- case NOTGREATERTHAN: return ((condvalue & m_mask) <= m_value);
- case LESSTHAN: return ((condvalue & m_mask) < m_value);
- case NOTLESSTHAN: return ((condvalue & m_mask) >= m_value);
+ case ALWAYS: return true;
+ case EQUALS: return ((condvalue & m_mask) == m_value);
+ case NOTEQUALS: return ((condvalue & m_mask) != m_value);
+ case GREATERTHAN: return ((condvalue & m_mask) > m_value);
+ case NOTGREATERTHAN: return ((condvalue & m_mask) <= m_value);
+ case LESSTHAN: return ((condvalue & m_mask) < m_value);
+ case NOTLESSTHAN: return ((condvalue & m_mask) >= m_value);
}
return true;
}
@@ -1595,9 +1595,9 @@ bool ioport_condition::eval(device_t &device) const
ioport_setting::ioport_setting(ioport_field &field, ioport_value _value, const char *_name)
: m_next(NULL),
- m_field(field),
- m_value(_value),
- m_name(_name)
+ m_field(field),
+ m_value(_value),
+ m_name(_name)
{
}
@@ -1613,9 +1613,9 @@ ioport_setting::ioport_setting(ioport_field &field, ioport_value _value, const c
ioport_diplocation::ioport_diplocation(const char *name, UINT8 swnum, bool invert)
: m_next(NULL),
- m_name(name),
- m_number(swnum),
- m_invert(invert)
+ m_name(name),
+ m_number(swnum),
+ m_invert(invert)
{
}
@@ -1631,30 +1631,30 @@ ioport_diplocation::ioport_diplocation(const char *name, UINT8 swnum, bool inver
ioport_field::ioport_field(ioport_port &port, ioport_type type, ioport_value defvalue, ioport_value maskbits, const char *name)
: m_next(NULL),
- m_port(port),
- m_live(NULL),
- m_modcount(port.modcount()),
- m_mask(maskbits),
- m_defvalue(defvalue & maskbits),
- m_type(type),
- m_player(0),
- m_flags(0),
- m_impulse(0),
- m_name(name),
- m_read_param(NULL),
- m_write_param(NULL),
- m_min(0),
- m_max(maskbits),
- m_sensitivity(0),
- m_delta(0),
- m_centerdelta(0),
- m_crosshair_axis(CROSSHAIR_AXIS_NONE),
- m_crosshair_scale(1.0),
- m_crosshair_offset(0),
- m_crosshair_altaxis(0),
- m_full_turn_count(0),
- m_remap_table(NULL),
- m_way(0)
+ m_port(port),
+ m_live(NULL),
+ m_modcount(port.modcount()),
+ m_mask(maskbits),
+ m_defvalue(defvalue & maskbits),
+ m_type(type),
+ m_player(0),
+ m_flags(0),
+ m_impulse(0),
+ m_name(name),
+ m_read_param(NULL),
+ m_write_param(NULL),
+ m_min(0),
+ m_max(maskbits),
+ m_sensitivity(0),
+ m_delta(0),
+ m_centerdelta(0),
+ m_crosshair_axis(CROSSHAIR_AXIS_NONE),
+ m_crosshair_scale(1.0),
+ m_crosshair_offset(0),
+ m_crosshair_altaxis(0),
+ m_full_turn_count(0),
+ m_remap_table(NULL),
+ m_way(0)
{
// reset sequences and chars
for (input_seq_type seqtype = SEQ_TYPE_STANDARD; seqtype < SEQ_TYPE_TOTAL; seqtype++)
@@ -2311,11 +2311,11 @@ void ioport_field::init_live_state(analog_field *analog)
ioport_field_live::ioport_field_live(ioport_field &field, analog_field *analog)
: analog(analog),
- joystick(NULL),
- value(field.defvalue()),
- impulse(0),
- last(0),
- joydir(digital_joystick::JOYDIR_COUNT)
+ joystick(NULL),
+ value(field.defvalue()),
+ impulse(0),
+ last(0),
+ joydir(digital_joystick::JOYDIR_COUNT)
{
// fill in the basic values
for (input_seq_type seqtype = SEQ_TYPE_STANDARD; seqtype < SEQ_TYPE_TOTAL; seqtype++)
@@ -2362,11 +2362,11 @@ ioport_field_live::ioport_field_live(ioport_field &field, analog_field *analog)
ioport_port::ioport_port(device_t &owner, const char *tag)
: m_next(NULL),
- m_device(owner),
- m_tag(tag),
- m_modcount(0),
- m_active(0),
- m_live(NULL)
+ m_device(owner),
+ m_tag(tag),
+ m_modcount(0),
+ m_active(0),
+ m_live(NULL)
{
}
@@ -2572,8 +2572,8 @@ void ioport_port::init_live_state()
ioport_port_live::ioport_port_live(ioport_port &port)
: defvalue(0),
- digital(0),
- outputvalue(0)
+ digital(0),
+ outputvalue(0)
{
// iterate over fields
for (ioport_field *field = port.first_field(); field != NULL; field = field->next())
@@ -2608,14 +2608,14 @@ ioport_port_live::ioport_port_live(ioport_port &port)
ioport_manager::ioport_manager(running_machine &machine)
: m_machine(machine),
- m_safe_to_read(false),
- m_natkeyboard(machine),
- m_last_frame_time(attotime::zero),
- m_last_delta_nsec(0),
- m_record_file(machine.options().input_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS),
- m_playback_file(machine.options().input_directory(), OPEN_FLAG_READ),
- m_playback_accumulated_speed(0),
- m_playback_accumulated_frames(0)
+ m_safe_to_read(false),
+ m_natkeyboard(machine),
+ m_last_frame_time(attotime::zero),
+ m_last_delta_nsec(0),
+ m_record_file(machine.options().input_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS),
+ m_playback_file(machine.options().input_directory(), OPEN_FLAG_READ),
+ m_playback_accumulated_speed(0),
+ m_playback_accumulated_frames(0)
{
memset(m_type_to_entry, 0, sizeof(m_type_to_entry));
}
@@ -3753,11 +3753,11 @@ void ioport_manager::record_port(ioport_port &port)
ioport_configurer::ioport_configurer(device_t &owner, ioport_list &portlist, astring &errorbuf)
: m_owner(owner),
- m_portlist(portlist),
- m_errorbuf(errorbuf),
- m_curport(NULL),
- m_curfield(NULL),
- m_cursetting(NULL)
+ m_portlist(portlist),
+ m_errorbuf(errorbuf),
+ m_curport(NULL),
+ m_curfield(NULL),
+ m_cursetting(NULL)
{
}
@@ -3975,9 +3975,9 @@ const char_info *char_info::find(unicode_char target)
dynamic_field::dynamic_field(ioport_field &field)
: m_next(NULL),
- m_field(field),
- m_shift(0),
- m_oldval(field.defvalue())
+ m_field(field),
+ m_shift(0),
+ m_oldval(field.defvalue())
{
// fill in the data
for (ioport_value mask = field.mask(); !(mask & 1); mask >>= 1)
@@ -4033,33 +4033,33 @@ void dynamic_field::write(ioport_value newval)
analog_field::analog_field(ioport_field &field)
: m_next(NULL),
- m_field(field),
- m_shift(0),
- m_adjdefvalue(field.defvalue() & field.mask()),
- m_adjmin(field.minval() & field.mask()),
- m_adjmax(field.maxval() & field.mask()),
- m_sensitivity(field.sensitivity()),
- m_reverse(field.analog_reverse()),
- m_delta(field.delta()),
- m_centerdelta(field.centerdelta()),
- m_accum(0),
- m_previous(0),
- m_previousanalog(0),
- m_minimum(INPUT_ABSOLUTE_MIN),
- m_maximum(INPUT_ABSOLUTE_MAX),
- m_center(0),
- m_reverse_val(0),
- m_scalepos(0),
- m_scaleneg(0),
- m_keyscalepos(0),
- m_keyscaleneg(0),
- m_positionalscale(0),
- m_absolute(false),
- m_wraps(false),
- m_autocenter(false),
- m_single_scale(false),
- m_interpolate(false),
- m_lastdigital(false)
+ m_field(field),
+ m_shift(0),
+ m_adjdefvalue(field.defvalue() & field.mask()),
+ m_adjmin(field.minval() & field.mask()),
+ m_adjmax(field.maxval() & field.mask()),
+ m_sensitivity(field.sensitivity()),
+ m_reverse(field.analog_reverse()),
+ m_delta(field.delta()),
+ m_centerdelta(field.centerdelta()),
+ m_accum(0),
+ m_previous(0),
+ m_previousanalog(0),
+ m_minimum(INPUT_ABSOLUTE_MIN),
+ m_maximum(INPUT_ABSOLUTE_MAX),
+ m_center(0),
+ m_reverse_val(0),
+ m_scalepos(0),
+ m_scaleneg(0),
+ m_keyscalepos(0),
+ m_keyscaleneg(0),
+ m_positionalscale(0),
+ m_absolute(false),
+ m_wraps(false),
+ m_autocenter(false),
+ m_single_scale(false),
+ m_interpolate(false),
+ m_lastdigital(false)
{
// compute the shift amount and number of bits
for (ioport_value mask = field.mask(); !(mask & 1); mask >>= 1)
@@ -4586,5 +4586,3 @@ int validate_natural_keyboard_statics(void)
return error;
}
*/
-
-