mirror of
https://github.com/holub/mame
synced 2025-06-09 06:13:04 +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_ADD("maincpu", I8085A, 6.144_MHz_XTAL)
|
||||||
MCFG_DEVICE_PROGRAM_MAP(mem_map)
|
MCFG_DEVICE_PROGRAM_MAP(mem_map)
|
||||||
MCFG_DEVICE_IO_MAP(io_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_I8085A_SOD(WRITELINE(*this, cit101_state, blink_w))
|
||||||
|
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
|
@ -52,8 +52,8 @@ INPUT_PORTS_START(cit101_hle_keyboard)
|
|||||||
|
|
||||||
PORT_START("KEYS0")
|
PORT_START("KEYS0")
|
||||||
PORT_BIT(0x00000003, IP_ACTIVE_HIGH, IPT_UNUSED)
|
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(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_CODE(KEYCODE_BACKSLASH)
|
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(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(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)
|
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(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(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(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_START("KEYS1")
|
||||||
PORT_BIT(0x00000003, IP_ACTIVE_HIGH, IPT_UNUSED)
|
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(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(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(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(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(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)
|
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)
|
else if (column < 31)
|
||||||
send_key((BIT(modifiers, 0) ? 0x1f : BIT(modifiers, 1) || BIT(modifiers, 2) ? 0x5f : 0x7f) - column);
|
send_key((BIT(modifiers, 0) ? 0x1f : BIT(modifiers, 1) || BIT(modifiers, 2) ? 0x5f : 0x7f) - column);
|
||||||
else
|
else
|
||||||
send_key(BIT(modifiers, 1) ? '~' : 0x7f - column);
|
send_key(BIT(modifiers, 0) ? 0x1e : BIT(modifiers, 1) ? '~' : 0x7f - column);
|
||||||
break;
|
break;
|
||||||
case 1:
|
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);
|
send_key((column == 31 && BIT(modifiers, 0) ? 0x1f : 0x3f) - column);
|
||||||
else switch (0x3f - column)
|
else switch (0x3f - column)
|
||||||
{
|
{
|
||||||
@ -270,7 +272,7 @@ void cit101_hle_keyboard_device::send_translated(u8 row, u8 column)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
send_key(0x1f - column);
|
send_key((column == 0) ? 0x7f : 0x1f - column);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
send_key((0x9f - column) | (BIT(modifiers, 0) ? 0x40 : 0) | (BIT(modifiers, 1) ? 0x20 : 0));
|
send_key((0x9f - column) | (BIT(modifiers, 0) ? 0x40 : 0) | (BIT(modifiers, 1) ? 0x20 : 0));
|
||||||
|
Loading…
Reference in New Issue
Block a user