summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/s2650
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2020-04-02 19:49:45 +0200
committer Olivier Galibert <galibert@pobox.com>2020-04-02 19:50:30 +0200
commit06f16e479388a3646ef6b4a98a0cc2ca8a0d4c30 (patch)
treecce2c54adc88c1075024585d051b0a899c10cc63 /src/devices/cpu/s2650
parent40bd4325e885bdda0e91490ee5491ce94d5cbf3e (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.cpp8
-rw-r--r--src/devices/cpu/s2650/s2650.h2
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) */