From 32a962e50c926d663e42e2d1ae90af3061af8725 Mon Sep 17 00:00:00 2001 From: AJR Date: Tue, 21 May 2019 01:50:07 -0400 Subject: 7200fifo: Allow side effects to be disabled for reads (nw) --- src/devices/machine/7200fifo.cpp | 42 ++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/src/devices/machine/7200fifo.cpp b/src/devices/machine/7200fifo.cpp index 77e2ba390e8..a5af4967dc1 100644 --- a/src/devices/machine/7200fifo.cpp +++ b/src/devices/machine/7200fifo.cpp @@ -143,30 +143,34 @@ uint16_t fifo7200_device::fifo_read() { if (m_ef) { - logerror("IDT7200 %s fifo_read underflow!\n", tag()); + if (!machine().side_effects_disabled()) + logerror("IDT7200 %s fifo_read underflow!\n", tag()); return 0x1ff; } uint16_t ret = m_buffer[m_read_ptr]; - m_read_ptr = (m_read_ptr + 1) % m_ram_size; - - // update flags - if (m_ff) + if (!machine().side_effects_disabled()) { - m_ff = 0; - m_ff_handler(!m_ff); - } - - else if (m_read_ptr == m_write_ptr) - { - m_ef = 1; - m_ef_handler(!m_ef); - } - - else if (((m_read_ptr + m_ram_size / 2) % m_ram_size) == m_write_ptr) - { - m_hf = 0; - m_hf_handler(!m_hf); + m_read_ptr = (m_read_ptr + 1) % m_ram_size; + + // update flags + if (m_ff) + { + m_ff = 0; + m_ff_handler(!m_ff); + } + + else if (m_read_ptr == m_write_ptr) + { + m_ef = 1; + m_ef_handler(!m_ef); + } + + else if (((m_read_ptr + m_ram_size / 2) % m_ram_size) == m_write_ptr) + { + m_hf = 0; + m_hf_handler(!m_hf); + } } return ret; -- cgit v1.2.3