From bd6e34de43cc8feae70be4f86b2f412e59e5a924 Mon Sep 17 00:00:00 2001 From: AJR Date: Wed, 19 Oct 2022 21:12:10 -0400 Subject: v25: IF only masks externally vectored interrupts --- src/devices/cpu/nec/v25.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/devices/cpu/nec/v25.cpp b/src/devices/cpu/nec/v25.cpp index 4b24f752623..cdfeabd1ce2 100644 --- a/src/devices/cpu/nec/v25.cpp +++ b/src/devices/cpu/nec/v25.cpp @@ -457,7 +457,7 @@ void v25_common_device::external_int() } } } - else if (pending & INT_IRQ) + else if (m_IF && (pending & INT_IRQ)) { /* the actual vector is retrieved after pushing flags */ /* and clearing the IF */ @@ -782,12 +782,7 @@ void v25_common_device::execute_run() /* Dispatch IRQ */ m_prev_ip = m_ip; if (m_no_interrupt==0 && (m_pending_irq & m_unmasked_irq)) - { - if (m_pending_irq & NMI_IRQ) - external_int(); - else if (m_IF) - external_int(); - } + external_int(); /* No interrupt allowed between last instruction and this one */ if (m_no_interrupt) -- cgit v1.2.3