diff options
author | 2020-05-02 17:43:41 -0400 | |
---|---|---|
committer | 2020-05-02 17:49:30 -0400 | |
commit | e9fe64ecdb7c4da51da9e595de75dfaa1db394a2 (patch) | |
tree | 014ee30ec807984df7f0072de61677d908b44ea6 | |
parent | e0a5fca0d59c6f021d0325d5c9ae4732ac913b7b (diff) |
i86, i186, i286: Don't automatically clear IRQ state upon acknowledgment
i86, i386, v20, v30 & related CPUs: Add exception hook for debugger gex command
-rw-r--r-- | src/devices/cpu/i86/i86.cpp | 6 | ||||
-rw-r--r-- | src/devices/cpu/nec/nec.cpp | 3 | ||||
-rw-r--r-- | 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); |