diff --git a/src/emu/machine/msm5832.c b/src/emu/machine/msm5832.c index 1e254681c23..b158846c388 100644 --- a/src/emu/machine/msm5832.c +++ b/src/emu/machine/msm5832.c @@ -182,13 +182,14 @@ READ8_MEMBER( msm5832_device::data_r ) { // TODO reference output } - else if (m_address > REGISTER_Y10) // Otrona Attache CP/M BIOS checks these unused registers to detect it + else if (m_address <= REGISTER_Y10) { - data = 0x0f; + data = m_reg[m_address]; } else { - data = m_reg[m_address]; + // Otrona Attache CP/M BIOS checks unused registers to detect it + data = 0x0f; } } @@ -206,12 +207,19 @@ WRITE8_MEMBER( msm5832_device::data_w ) { if (LOG) logerror("MSM5832 '%s' Register Write %01x: %01x\n", tag(), m_address, data & 0x0f); - if (m_cs && m_write && m_address <= REGISTER_Y10) + if (m_cs && m_write) { - m_reg[m_address] = data & 0x0f; + if (m_address == REGISTER_REF) + { + // TODO reference output + } + else if (m_address <= REGISTER_Y10) + { + m_reg[m_address] = data & 0x0f; - set_time(false, read_counter(REGISTER_Y1), read_counter(REGISTER_MO1), read_counter(REGISTER_D1), m_reg[REGISTER_W], - read_counter(REGISTER_H1), read_counter(REGISTER_MI1), read_counter(REGISTER_S1)); + set_time(false, read_counter(REGISTER_Y1), read_counter(REGISTER_MO1), read_counter(REGISTER_D1), m_reg[REGISTER_W], + read_counter(REGISTER_H1), read_counter(REGISTER_MI1), read_counter(REGISTER_S1)); + } } }