From e9fe64ecdb7c4da51da9e595de75dfaa1db394a2 Mon Sep 17 00:00:00 2001 From: AJR Date: Sat, 2 May 2020 17:43:41 -0400 Subject: [PATCH] i86, i186, i286: Don't automatically clear IRQ state upon acknowledgment i86, i386, v20, v30 & related CPUs: Add exception hook for debugger gex command --- src/devices/cpu/i86/i86.cpp | 6 +----- src/devices/cpu/nec/nec.cpp | 3 ++- src/devices/cpu/nec/v25.cpp | 2 ++ 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/devices/cpu/i86/i86.cpp b/src/devices/cpu/i86/i86.cpp index b5af615377a..0233d66ece2 100644 --- a/src/devices/cpu/i86/i86.cpp +++ b/src/devices/cpu/i86/i86.cpp @@ -577,12 +577,8 @@ void i8086_common_cpu_device::interrupt(int int_num, int trap) m_TF = m_IF = 0; if (int_num == -1) - { int_num = standard_irq_callback(0); - - m_irq_state = CLEAR_LINE; - m_pending_irq &= ~INT_IRQ; - } + debugger_exception_hook(int_num); m_easeg = CS; uint16_t dest_off = read_word(int_num * 4 + 0); diff --git a/src/devices/cpu/nec/nec.cpp b/src/devices/cpu/nec/nec.cpp index e72b5fa4603..e0363f54d40 100644 --- a/src/devices/cpu/nec/nec.cpp +++ b/src/devices/cpu/nec/nec.cpp @@ -323,7 +323,8 @@ void nec_common_device::nec_interrupt(unsigned int_num, int/*INTSOURCES*/ source m_MF = 1; if (source == INT_IRQ) /* get vector */ - int_num = (standard_irq_callback)(0); + int_num = standard_irq_callback(0); + debugger_exception_hook(int_num); dest_off = read_mem_word(int_num*4); dest_seg = read_mem_word(int_num*4+2); diff --git a/src/devices/cpu/nec/v25.cpp b/src/devices/cpu/nec/v25.cpp index e6d948dc5ee..e5f18733719 100644 --- a/src/devices/cpu/nec/v25.cpp +++ b/src/devices/cpu/nec/v25.cpp @@ -263,6 +263,8 @@ void v25_common_device::nec_interrupt(unsigned int_num, int /*INTSOURCES*/ sourc break; } + debugger_exception_hook(int_num); + dest_off = read_mem_word(int_num*4); dest_seg = read_mem_word(int_num*4+2);