From 49e9c460ef8f2dc9a5f76c84e1d130a3476c6166 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Wed, 4 Apr 2018 19:14:38 +1000 Subject: stupid HOLD_LINE (nw) --- src/devices/cpu/dsp16/dsp16.cpp | 4 ++++ src/devices/cpu/m6800/m6801.cpp | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/devices/cpu/dsp16/dsp16.cpp b/src/devices/cpu/dsp16/dsp16.cpp index b9948495566..957dbce3a67 100644 --- a/src/devices/cpu/dsp16/dsp16.cpp +++ b/src/devices/cpu/dsp16/dsp16.cpp @@ -441,6 +441,8 @@ void dsp16_device_base::execute_set_input(int inputnum, int state) } m_ick_in = (ASSERT_LINE == state) ? 1U : 0U; } + if (CLEAR_LINE != state) + standard_irq_callback(DSP16_ICK_LINE); break; case DSP16_ILD_LINE: if (sio_ild_active()) @@ -461,6 +463,8 @@ void dsp16_device_base::execute_set_input(int inputnum, int state) } m_ock_in = (ASSERT_LINE == state) ? 1U : 0U; } + if (CLEAR_LINE != state) + standard_irq_callback(DSP16_OCK_LINE); break; case DSP16_OLD_LINE: if (sio_old_active()) diff --git a/src/devices/cpu/m6800/m6801.cpp b/src/devices/cpu/m6800/m6801.cpp index b380f16417d..5d61d8421b0 100644 --- a/src/devices/cpu/m6800/m6801.cpp +++ b/src/devices/cpu/m6800/m6801.cpp @@ -646,9 +646,9 @@ void m6801_cpu_device::execute_set_input(int irqline, int state) switch (irqline) { case M6801_SC1_LINE: - if (!m_port3_latched && (m_p3csr & M6801_P3CSR_LE)) + if (!m_sc1_state && (CLEAR_LINE != state)) { - if (!m_sc1_state && (CLEAR_LINE != state)) + if (!m_port3_latched && (m_p3csr & M6801_P3CSR_LE)) { // latch input data to port 3 m_port3_data = (m_io->read_byte(M6801_PORT3) & (m_port3_ddr ^ 0xff)) | (m_port3_data & m_port3_ddr); @@ -658,8 +658,14 @@ void m6801_cpu_device::execute_set_input(int irqline, int state) // set IS3 flag bit m_p3csr |= M6801_P3CSR_IS3_FLAG; } + else + { + LOGPORT("Not latching Port 3 Data:%s%s", m_port3_latched ? " already latched" : "", (m_p3csr & M6801_P3CSR_LE) ? "" : " LE clear"); + } } m_sc1_state = ASSERT_LINE == state; + if (CLEAR_LINE != state) + standard_irq_callback(M6801_SC1_LINE); // re-entrant - do it after setting m_sc1_state break; case M6801_TIN_LINE: -- cgit v1.2.3