From 14a623f407805cdad0cafb25bad85f5a6451a80d Mon Sep 17 00:00:00 2001 From: Patrick Mackinlay Date: Thu, 10 Jan 2019 17:34:09 +0700 Subject: [PATCH] z80scc: don't spam interrupt state (nw) --- src/devices/machine/z80scc.cpp | 10 ++++++++-- src/devices/machine/z80scc.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/devices/machine/z80scc.cpp b/src/devices/machine/z80scc.cpp index 711d58b8b49..a3a926636ee 100644 --- a/src/devices/machine/z80scc.cpp +++ b/src/devices/machine/z80scc.cpp @@ -436,6 +436,7 @@ z80scc_device::z80scc_device(const machine_config &mconfig, device_type type, co m_out_rxdrq_cb{ { *this }, { *this } }, m_out_txdrq_cb{ { *this }, { *this } }, m_out_int_cb(*this), + m_out_int_state(CLEAR_LINE), m_variant(variant), m_wr0_ptrbits(0), m_cputag(nullptr) @@ -517,6 +518,7 @@ void z80scc_device::device_start() LOG("%s", FUNCNAME); // state saving + save_item(NAME(m_out_int_state)); save_item(NAME(m_int_state)); save_item(NAME(m_int_source)); save_item(NAME(m_wr9)); @@ -681,8 +683,12 @@ void z80scc_device::z80daisy_irq_reti() void z80scc_device::check_interrupts() { int state = (z80daisy_irq_state() & Z80_DAISY_INT) ? ASSERT_LINE : CLEAR_LINE; - LOGINT("%s %s \n",tag(), FUNCNAME); - m_out_int_cb(state); + if (m_out_int_state != state) + { + m_out_int_state = state; + LOGINT("%s\n", FUNCNAME); + m_out_int_cb(state); + } } diff --git a/src/devices/machine/z80scc.h b/src/devices/machine/z80scc.h index e2cad9e660b..3e8812707dc 100644 --- a/src/devices/machine/z80scc.h +++ b/src/devices/machine/z80scc.h @@ -467,6 +467,7 @@ protected: devcb_write_line m_out_int_cb; + int m_out_int_state; int m_int_state[6]; // interrupt state int m_int_source[6]; // interrupt source