From 9ed27202aab995b76a2dd5fa1ea8274a9aba04f9 Mon Sep 17 00:00:00 2001 From: Michael Zapf Date: Sat, 21 Sep 2013 22:37:56 +0000 Subject: [PATCH] Application of the set_address (AM_SETOFFSET) feature. --- src/emu/cpu/tms9900/tms9900.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/emu/cpu/tms9900/tms9900.c b/src/emu/cpu/tms9900/tms9900.c index 22a633fd4dc..6b7f5793562 100644 --- a/src/emu/cpu/tms9900/tms9900.c +++ b/src/emu/cpu/tms9900/tms9900.c @@ -1382,6 +1382,14 @@ void tms99xx_device::acquire_instruction() */ void tms99xx_device::mem_read() { + // The following line will be taken out of this method and + // be executed at an earlier microprogram clock tick + // After set_address, any device attached to the address bus may pull down + // READY in order to put the CPU into wait state before the read_word + // operation will be performed + // set_address and read_word should pass the same address as argument + m_prgspace->set_address(m_address & m_prgaddr_mask & 0xfffe); + m_current_value = m_prgspace->read_word(m_address & m_prgaddr_mask & 0xfffe); pulse_clock(2); m_check_ready = true; @@ -1390,6 +1398,9 @@ void tms99xx_device::mem_read() void tms99xx_device::mem_write() { + // see mem_read + m_prgspace->set_address(m_address & m_prgaddr_mask & 0xfffe); + m_prgspace->write_word(m_address & m_prgaddr_mask & 0xfffe, m_current_value); pulse_clock(2); m_check_ready = true;