diff options
Diffstat (limited to 'src/devices/cpu/tms9900/tms9995.cpp')
-rw-r--r-- | src/devices/cpu/tms9900/tms9995.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/devices/cpu/tms9900/tms9995.cpp b/src/devices/cpu/tms9900/tms9995.cpp index 26d357a8e61..8458b2f656d 100644 --- a/src/devices/cpu/tms9900/tms9995.cpp +++ b/src/devices/cpu/tms9900/tms9995.cpp @@ -1795,12 +1795,13 @@ void tms9995_device::mem_read() if ((m_address & 0xfffe)==0xfffa && !m_mp9537) { - LOGMASKED(LOG_DEC, "read decrementer\n"); + LOGMASKED(LOG_DEC, "read dec=%04x\n", m_decrementer_value); // Decrementer mapped into the address space m_current_value = m_decrementer_value; if (m_byteop) { - if ((m_address & 1)!=1) m_current_value <<= 8; + // When reading FFFB, return the lower byte + if ((m_address & 1)==1) m_current_value <<= 8; m_current_value &= 0xff00; } pulse_clock(1); @@ -1942,7 +1943,7 @@ void tms9995_device::mem_write() { m_starting_count_storage_register = m_decrementer_value = m_current_value; } - LOGMASKED(LOG_DEC, "Setting decrementer to %04x, PC=%04x\n", m_current_value, PC); + LOGMASKED(LOG_DEC, "Setting dec=%04x [PC=%04x]\n", m_current_value, PC); pulse_clock(1); return; } @@ -2234,9 +2235,9 @@ void tms9995_device::trigger_decrementer() if (m_starting_count_storage_register>0) // null will turn off the decrementer { m_decrementer_value--; + LOGMASKED(LOG_DEC, "dec=%04x\n", m_decrementer_value); if (m_decrementer_value==0) { - LOGMASKED(LOG_DEC, "decrementer reached 0\n"); m_decrementer_value = m_starting_count_storage_register; if (m_flag[1]==true) { |