From 84b7bc9e6bd3fcff715933fe963be452164949e0 Mon Sep 17 00:00:00 2001 From: James Wallace Date: Fri, 5 Jul 2024 20:27:20 +0100 Subject: r65c52.cpp: Correct bug associated with IRQ handling (nw) --- src/devices/machine/r65c52.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/devices/machine/r65c52.cpp b/src/devices/machine/r65c52.cpp index ee631bdb7af..c1f5d70c153 100644 --- a/src/devices/machine/r65c52.cpp +++ b/src/devices/machine/r65c52.cpp @@ -260,14 +260,16 @@ void r65c52_device::update_irq(int idx) { bool irq = false; LOG("R65C52: %x IER %x ISR %x\n", idx + 1, m_ier[idx], m_isr[idx]); - for (int i = 0; i < 8; i++) + for (int i = 0; i < 7; i++) { - if ((m_ier[idx] & (1 >> i)) && ((m_isr[idx] & (1 >> i)))) + int ier_bit = BIT(m_ier[idx],i); + int isr_bit = BIT(m_isr[idx],i); + + if ((ier_bit == isr_bit) && (ier_bit ==1)) { irq = true; } } - output_irq(idx, irq); } -- cgit v1.2.3