From 44fd97da4e759b793242f7bc446302560f9e00b2 Mon Sep 17 00:00:00 2001 From: arbee Date: Mon, 28 Sep 2020 20:12:01 -0400 Subject: [PATCH] apple3: fix low-memory indirection through the X byte and get slot IRQs working [Rob Justice] --- src/devices/bus/a2bus/a2bus.cpp | 4 ++-- src/mame/machine/apple3.cpp | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/devices/bus/a2bus/a2bus.cpp b/src/devices/bus/a2bus/a2bus.cpp index ae5dbf82643..e09671f8f16 100644 --- a/src/devices/bus/a2bus/a2bus.cpp +++ b/src/devices/bus/a2bus/a2bus.cpp @@ -205,8 +205,6 @@ uint8_t a2bus_device::get_a2bus_nmi_mask() void a2bus_device::set_irq_line(int state, int slot) { - m_out_irq_cb(state); - if (state == CLEAR_LINE) { m_slot_irq_mask &= ~(1<= 0xFFD0) && (offset <= 0xFFEF)) result = apple3_bankaddr(~0, offset & 0x7FFF); else if (offset < 0x2000) - result = apple3_bankaddr(~0, offset - 0x2000); + result = apple3_bankaddr(~0, offset); else if (offset > 0x9FFF) result = apple3_bankaddr(~0, offset - 0x8000); else @@ -1367,24 +1367,24 @@ WRITE_LINE_MEMBER(apple3_state::a2bus_irq_w) { uint8_t irq_mask = m_a2bus->get_a2bus_irq_mask(); - m_via[0]->write_ca1(state); + m_via[0]->write_ca1(!state); if (irq_mask & (1<<4)) { - m_via[1]->write_pa4(ASSERT_LINE); + m_via[1]->write_pa4(CLEAR_LINE); } else { - m_via[1]->write_pa4(CLEAR_LINE); + m_via[1]->write_pa4(ASSERT_LINE); } if (irq_mask & (1<<3)) { - m_via[1]->write_pa5(ASSERT_LINE); + m_via[1]->write_pa5(CLEAR_LINE); } else { - m_via[1]->write_pa5(CLEAR_LINE); + m_via[1]->write_pa5(ASSERT_LINE); } }