apple2gs: add keypad equals, fix p showing as keypad (GitHub #7658) [R. Belmont]

This commit is contained in:
arbee 2021-02-13 12:13:48 -05:00
parent a1719a7c9c
commit 854bd7a84d

View File

@ -886,10 +886,18 @@ WRITE_LINE_MEMBER(apple2gs_state::ay3600_data_ready_w)
trans |= (m_kbspecial->read() & 0x08) ? 0x00 : 0x02; // control is bit 2 (active low)
trans |= (m_kbspecial->read() & 0x01) ? 0x0000 : 0x0200; // caps lock is bit 9 (active low)
m_transchar = decode[trans];
// hack in keypad equals because we can't find it in the IIe keymap (Sather doesn't show it in the matrix, but it's clearly on real platinum IIes)
if (m_lastchar == 0x146)
{
m_transchar = '=';
}
else
{
m_transchar = decode[trans];
}
m_strobe = 0x80;
//printf("new char = %04x (%02x)\n", m_lastchar, m_transchar);
// printf("new char = %04x (%02x)\n", m_lastchar, m_transchar);
}
}
@ -2437,7 +2445,7 @@ u8 apple2gs_state::c000_r(offs_t offset)
{
ret |= 0x10;
}
else if (m_lastchar >= 0x32 && m_lastchar <= 0x3f)
else if ((m_lastchar >= 0x32 && m_lastchar <= 0x3f) && (m_lastchar != 0x39))
{
ret |= 0x10;
}
@ -2445,7 +2453,7 @@ u8 apple2gs_state::c000_r(offs_t offset)
{
ret |= 0x10;
}
else if (m_lastchar >= 0x109 && m_lastchar <= 0x10a)
else if ((m_lastchar >= 0x109 && m_lastchar <= 0x10a) || (m_lastchar == 0x146))
{
ret |= 0x10;
}
@ -4839,7 +4847,7 @@ INPUT_PORTS_START( apple2gs )
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('\"')
PORT_START("X7")
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS_PAD) PORT_CHAR(UCHAR_MAMEKEY(EQUALS_PAD))
PORT_BIT(0x002, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x004, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD))
@ -5138,8 +5146,9 @@ void apple2gs_state::apple2gs(machine_config &config)
SOFTWARE_LIST(config, "flop35_list").set_original("apple2gs");
SOFTWARE_LIST(config, "flop525_clean").set_compatible("apple2_flop_clcracked"); // No filter on clean cracks yet.
// As WOZ images won't load in the 2GS driver yet, comment out the softlist entry.
//SOFTWARE_LIST(config, "flop525_orig").set_compatible("apple2_flop_orig").set_filter("A2GS"); // Filter list to compatible disks for this machine.
#if NEW_IWM
SOFTWARE_LIST(config, "flop525_orig").set_compatible("apple2_flop_orig").set_filter("A2GS"); // Filter list to compatible disks for this machine.
#endif
SOFTWARE_LIST(config, "flop525_misc").set_compatible("apple2_flop_misc");
}