summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/mc68901.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/mc68901.cpp')
-rw-r--r--src/devices/machine/mc68901.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/devices/machine/mc68901.cpp b/src/devices/machine/mc68901.cpp
index 3a178089dfc..1b175bbb703 100644
--- a/src/devices/machine/mc68901.cpp
+++ b/src/devices/machine/mc68901.cpp
@@ -1114,30 +1114,31 @@ WRITE8_MEMBER( mc68901_device::write )
}
-int mc68901_device::get_vector()
+u16 mc68901_device::get_vector()
{
- int ch;
-
- for (ch = 15; ch >= 0; ch--)
+ for (int ch = 15; ch >= 0; ch--)
{
if (BIT(m_imr, ch) && BIT(m_ipr, ch))
{
- if (m_vr & VR_S)
+ if (!machine().side_effects_disabled())
{
- /* set interrupt-in-service bit */
- m_isr |= (1 << ch);
- }
+ if (m_vr & VR_S)
+ {
+ /* set interrupt-in-service bit */
+ m_isr |= (1 << ch);
+ }
- /* clear interrupt pending bit */
- m_ipr &= ~(1 << ch);
+ /* clear interrupt pending bit */
+ m_ipr &= ~(1 << ch);
- check_interrupts();
+ check_interrupts();
+ }
return (m_vr & 0xf0) | ch;
}
}
- return M68K_INT_ACK_SPURIOUS;
+ return 0x18; // Spurious irq
}
WRITE_LINE_MEMBER( mc68901_device::i0_w ) { gpio_input(0, state); }