diff options
author | 2022-10-19 21:12:10 -0400 | |
---|---|---|
committer | 2022-10-19 21:12:10 -0400 | |
commit | bd6e34de43cc8feae70be4f86b2f412e59e5a924 (patch) | |
tree | 50e57fabd7beccef3629e55c6c4c29a6a3c0df71 | |
parent | f5c50383f97039e4c113e94a330bddc34f525628 (diff) |
v25: IF only masks externally vectored interrupts
-rw-r--r-- | src/devices/cpu/nec/v25.cpp | 9 |
1 files 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) |