summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/isa/mcd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/isa/mcd.cpp')
-rw-r--r--src/devices/bus/isa/mcd.cpp32
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)
{