From 0b5372772f7cabf07d619e25f5c1fb278b5b35a0 Mon Sep 17 00:00:00 2001 From: MooglyGuy Date: Sun, 5 Jan 2020 17:54:06 +0100 Subject: -psion5mx: Added HALT register support, improves performance. [Ash Wolf, Ryan Holtz] --- src/mame/drivers/psion5.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mame/drivers/psion5.cpp b/src/mame/drivers/psion5.cpp index f58c4902bdd..8c77cf41fc9 100644 --- a/src/mame/drivers/psion5.cpp +++ b/src/mame/drivers/psion5.cpp @@ -118,6 +118,11 @@ void psion5mx_state::check_interrupts() { LOGMASKED(LOG_IRQ, "Pending FIQs is %08x & %08x & %08x\n", m_pending_ints, m_int_mask, IRQ_FIQ_MASK); LOGMASKED(LOG_IRQ, "Pending IRQs is %08x & %08x & %08x\n", m_pending_ints, m_int_mask, IRQ_IRQ_MASK); + bool any_interrupts = (m_pending_ints & m_int_mask) != 0; + if (any_interrupts) + { + m_maincpu->resume(SUSPEND_REASON_HALT); + } m_maincpu->set_input_line(ARM7_FIRQ_LINE, m_pending_ints & m_int_mask & IRQ_FIQ_MASK ? ASSERT_LINE : CLEAR_LINE); m_maincpu->set_input_line(ARM7_IRQ_LINE, m_pending_ints & m_int_mask & IRQ_IRQ_MASK ? ASSERT_LINE : CLEAR_LINE); } @@ -494,6 +499,7 @@ WRITE32_MEMBER(psion5mx_state::periphs_w) LOGMASKED(LOG_POWER_WRITES, "%s: peripheral write, PWRCNT = %08x & %08x\n", machine().describe_context(), data, mem_mask); break; case REG_HALT: + m_maincpu->suspend(SUSPEND_REASON_HALT, 1); LOGMASKED(LOG_POWER_WRITES, "%s: peripheral write, HALT = %08x & %08x\n", machine().describe_context(), data, mem_mask); break; case REG_STBY: -- cgit v1.2.3