summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2022-10-19 21:12:10 -0400
committer AJR <ajrhacker@users.noreply.github.com>2022-10-19 21:12:10 -0400
commitbd6e34de43cc8feae70be4f86b2f412e59e5a924 (patch)
tree50e57fabd7beccef3629e55c6c4c29a6a3c0df71
parentf5c50383f97039e4c113e94a330bddc34f525628 (diff)
v25: IF only masks externally vectored interrupts
-rw-r--r--src/devices/cpu/nec/v25.cpp9
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)