diff options
author | 2020-05-31 17:07:44 -0400 | |
---|---|---|
committer | 2020-05-31 17:07:44 -0400 | |
commit | f3c69775c9327e16f84d40d59aa72379be7ee55c (patch) | |
tree | e69e4297b622952926d9073988439db475ec35ad /src/devices/bus/isa/mcd.cpp | |
parent | e9392e8b50b96e1d86a54d94652ad084b30d22fc (diff) |
bus/isa: Simplify signatures of most handlers (nw)
sb16_lle: Add device map for host I/O (nw)
Diffstat (limited to 'src/devices/bus/isa/mcd.cpp')
-rw-r--r-- | src/devices/bus/isa/mcd.cpp | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/devices/bus/isa/mcd.cpp b/src/devices/bus/isa/mcd.cpp index 69a0ca5e844..0e184f56da4 100644 --- a/src/devices/bus/isa/mcd.cpp +++ b/src/devices/bus/isa/mcd.cpp @@ -106,10 +106,11 @@ bool mcd_isa_device::read_sector(bool first) return true; } -READ8_MEMBER(mcd_isa_device::flag_r) +uint8_t mcd_isa_device::flag_r() { uint8_t ret = 0; - m_isa->irq5_w(CLEAR_LINE); + if (!machine().side_effects_disabled()) + m_isa->irq5_w(CLEAR_LINE); if(!m_buf_count || !m_data || m_dma) // if dma enabled the cpu will never not see that flag as it will be halted ret |= FLAG_NODATA; if(!m_cmdbuf_count || !m_newstat) @@ -117,19 +118,28 @@ READ8_MEMBER(mcd_isa_device::flag_r) return ret | FLAG_UNK; } -READ8_MEMBER(mcd_isa_device::data_r) +uint8_t mcd_isa_device::data_r() { if(m_cmdbuf_count) { - m_cmdbuf_count--; - return m_cmdbuf[m_cmdbuf_idx++]; + if(machine().side_effects_disabled()) + return m_cmdbuf[m_cmdbuf_idx]; + else + { + m_cmdbuf_count--; + return m_cmdbuf[m_cmdbuf_idx++]; + } } else if(m_buf_count) { - uint8_t ret = m_buf_idx < 2352 ? m_buf[m_buf_idx++] : 0; - m_buf_count--; - if(!m_buf_count) - read_sector(); + uint8_t ret = m_buf_idx < 2352 ? m_buf[m_buf_idx] : 0; + if(!machine().side_effects_disabled()) + { + m_buf_idx++; + m_buf_count--; + if(!m_buf_count) + read_sector(); + } return ret; } return m_stat; @@ -153,12 +163,12 @@ uint16_t mcd_isa_device::dack16_r(int line) return 0; } -WRITE8_MEMBER(mcd_isa_device::reset_w) +void mcd_isa_device::reset_w(uint8_t data) { reset(); } -WRITE8_MEMBER(mcd_isa_device::cmd_w) +void mcd_isa_device::cmd_w(uint8_t data) { if(m_cmdrd_count) { |