mirror of
https://github.com/holub/mame
synced 2025-06-05 20:33:45 +03:00
cit101: Add last few control characters to keyboard (nw)
This commit is contained in:
parent
55ce3880a5
commit
c7a159babf
@ -299,6 +299,7 @@ MACHINE_CONFIG_START(cit101_state::cit101)
|
||||
MCFG_DEVICE_ADD("maincpu", I8085A, 6.144_MHz_XTAL)
|
||||
MCFG_DEVICE_PROGRAM_MAP(mem_map)
|
||||
MCFG_DEVICE_IO_MAP(io_map)
|
||||
MCFG_I8085A_SID(GND) // used to time NVR reads
|
||||
MCFG_I8085A_SOD(WRITELINE(*this, cit101_state, blink_w))
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -52,8 +52,8 @@ INPUT_PORTS_START(cit101_hle_keyboard)
|
||||
|
||||
PORT_START("KEYS0")
|
||||
PORT_BIT(0x00000003, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(']') PORT_CHAR('}') PORT_CODE(KEYCODE_CLOSEBRACE)
|
||||
PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('\\') PORT_CHAR('|') PORT_CODE(KEYCODE_BACKSLASH)
|
||||
PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(']') PORT_CHAR('}') PORT_CHAR(0x1d) PORT_CODE(KEYCODE_CLOSEBRACE)
|
||||
PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('\\') PORT_CHAR('|') PORT_CHAR(0x1c) PORT_CODE(KEYCODE_BACKSLASH)
|
||||
PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('[') PORT_CHAR('{') PORT_CODE(KEYCODE_OPENBRACE)
|
||||
PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CHAR('z') PORT_CHAR('Z') PORT_CHAR(0x1a) PORT_CODE(KEYCODE_Z)
|
||||
PORT_BIT(0x00000040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CHAR('y') PORT_CHAR('Y') PORT_CHAR(0x19) PORT_CODE(KEYCODE_Y)
|
||||
@ -81,7 +81,7 @@ INPUT_PORTS_START(cit101_hle_keyboard)
|
||||
PORT_BIT(0x10000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CHAR('c') PORT_CHAR('C') PORT_CHAR(0x03) PORT_CODE(KEYCODE_C)
|
||||
PORT_BIT(0x20000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CHAR('b') PORT_CHAR('B') PORT_CHAR(0x02) PORT_CODE(KEYCODE_B)
|
||||
PORT_BIT(0x40000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CHAR('a') PORT_CHAR('A') PORT_CHAR(0x01) PORT_CODE(KEYCODE_A)
|
||||
PORT_BIT(0x80000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('`') PORT_CHAR('~') PORT_CODE(KEYCODE_TILDE)
|
||||
PORT_BIT(0x80000000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('`') PORT_CHAR('~') PORT_CHAR(0x1e) PORT_CODE(KEYCODE_TILDE)
|
||||
|
||||
PORT_START("KEYS1")
|
||||
PORT_BIT(0x00000003, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
@ -99,7 +99,7 @@ INPUT_PORTS_START(cit101_hle_keyboard)
|
||||
PORT_BIT(0x00002000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('2') PORT_CHAR('@') PORT_CODE(KEYCODE_2)
|
||||
PORT_BIT(0x00004000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('1') PORT_CHAR('!') PORT_CODE(KEYCODE_1)
|
||||
PORT_BIT(0x00008000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('0') PORT_CHAR(')') PORT_CODE(KEYCODE_0)
|
||||
PORT_BIT(0x00010000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('/') PORT_CHAR('?') PORT_CODE(KEYCODE_SLASH)
|
||||
PORT_BIT(0x00010000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('/') PORT_CHAR('?') PORT_CHAR(0x1f) PORT_CODE(KEYCODE_SLASH)
|
||||
PORT_BIT(0x00020000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('.') PORT_CHAR('>') PORT_CODE(KEYCODE_STOP)
|
||||
PORT_BIT(0x00040000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR('-') PORT_CHAR('_') PORT_CODE(KEYCODE_MINUS)
|
||||
PORT_BIT(0x00080000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CHAR(',') PORT_CHAR('<') PORT_CODE(KEYCODE_COMMA)
|
||||
@ -227,10 +227,12 @@ void cit101_hle_keyboard_device::send_translated(u8 row, u8 column)
|
||||
else if (column < 31)
|
||||
send_key((BIT(modifiers, 0) ? 0x1f : BIT(modifiers, 1) || BIT(modifiers, 2) ? 0x5f : 0x7f) - column);
|
||||
else
|
||||
send_key(BIT(modifiers, 1) ? '~' : 0x7f - column);
|
||||
send_key(BIT(modifiers, 0) ? 0x1e : BIT(modifiers, 1) ? '~' : 0x7f - column);
|
||||
break;
|
||||
case 1:
|
||||
if (!BIT(modifiers, 1) || column == 31)
|
||||
if (BIT(modifiers, 0) && column == 16)
|
||||
send_key(0x2f - column);
|
||||
else if (!BIT(modifiers, 1) || column == 31)
|
||||
send_key((column == 31 && BIT(modifiers, 0) ? 0x1f : 0x3f) - column);
|
||||
else switch (0x3f - column)
|
||||
{
|
||||
@ -270,7 +272,7 @@ void cit101_hle_keyboard_device::send_translated(u8 row, u8 column)
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
send_key(0x1f - column);
|
||||
send_key((column == 0) ? 0x7f : 0x1f - column);
|
||||
break;
|
||||
case 3:
|
||||
send_key((0x9f - column) | (BIT(modifiers, 0) ? 0x40 : 0) | (BIT(modifiers, 1) ? 0x20 : 0));
|
||||
|
Loading…
Reference in New Issue
Block a user