diff options
author | 2019-05-21 01:50:07 -0400 | |
---|---|---|
committer | 2019-05-21 01:50:07 -0400 | |
commit | 32a962e50c926d663e42e2d1ae90af3061af8725 (patch) | |
tree | e2cc152eaafc480e2ac4930c69911b10ceb11d93 | |
parent | f17e47ecfc2ffd856cdf434abcad062dda86cde6 (diff) |
7200fifo: Allow side effects to be disabled for reads (nw)
-rw-r--r-- | src/devices/machine/7200fifo.cpp | 42 |
1 files 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; |