diff options
author | 2020-04-02 19:49:45 +0200 | |
---|---|---|
committer | 2020-04-02 19:50:30 +0200 | |
commit | 06f16e479388a3646ef6b4a98a0cc2ca8a0d4c30 (patch) | |
tree | cce2c54adc88c1075024585d051b0a899c10cc63 /src/devices/cpu/s2650 | |
parent | 40bd4325e885bdda0e91490ee5491ce94d5cbf3e (diff) |
s2650: Get the vector from the ack reqeust, remove use of set_input_line_and_vector and HOLD_MODE [O. Galibert]
Diffstat (limited to 'src/devices/cpu/s2650')
-rw-r--r-- | src/devices/cpu/s2650/s2650.cpp | 8 | ||||
-rw-r--r-- | src/devices/cpu/s2650/s2650.h | 2 |
2 files changed, 4 insertions, 6 deletions
diff --git a/src/devices/cpu/s2650/s2650.cpp b/src/devices/cpu/s2650/s2650.cpp index 8ef7be2a0ad..9e36a1c8ae1 100644 --- a/src/devices/cpu/s2650/s2650.cpp +++ b/src/devices/cpu/s2650/s2650.cpp @@ -209,17 +209,15 @@ inline int s2650_device::check_irq_line() { if( (m_psu & II) == 0 ) { - int vector; if (m_halt) { m_halt = 0; m_iar = (m_iar + 1) & PMSK; } - vector = standard_irq_callback(0) & 0xff; + standard_irq_callback(0); /* Say hi */ - m_intack_handler(true); - + int vector = m_intack_handler(); /* build effective address within first 8K page */ m_ea = S2650_relative[vector] & PMSK; if (vector & 0x80) /* indirect bit set ? */ @@ -824,7 +822,7 @@ void s2650_device::device_start() { m_sense_handler.resolve(); m_flag_handler.resolve_safe(); - m_intack_handler.resolve_safe(); + m_intack_handler.resolve_safe(0x00); m_cache = space(AS_PROGRAM).cache<0, 0, ENDIANNESS_BIG>(); diff --git a/src/devices/cpu/s2650/s2650.h b/src/devices/cpu/s2650/s2650.h index af883c740a3..1bd42fa535c 100644 --- a/src/devices/cpu/s2650/s2650.h +++ b/src/devices/cpu/s2650/s2650.h @@ -68,7 +68,7 @@ private: devcb_read_line m_sense_handler; devcb_write_line m_flag_handler; - devcb_write_line m_intack_handler; + devcb_read8 m_intack_handler; uint16_t m_ppc; /* previous program counter (page + iar) */ uint16_t m_page; /* 8K page select register (A14..A13) */ |