summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-05-21 01:50:07 -0400
committer AJR <ajrhacker@users.noreply.github.com>2019-05-21 01:50:07 -0400
commit32a962e50c926d663e42e2d1ae90af3061af8725 (patch)
treee2cc152eaafc480e2ac4930c69911b10ceb11d93
parentf17e47ecfc2ffd856cdf434abcad062dda86cde6 (diff)
7200fifo: Allow side effects to be disabled for reads (nw)
-rw-r--r--src/devices/machine/7200fifo.cpp42
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;