summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/f8/f8.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/f8/f8.cpp')
-rw-r--r--src/devices/cpu/f8/f8.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/devices/cpu/f8/f8.cpp b/src/devices/cpu/f8/f8.cpp
index 9aa27af8f54..a62c3037617 100644
--- a/src/devices/cpu/f8/f8.cpp
+++ b/src/devices/cpu/f8/f8.cpp
@@ -46,7 +46,6 @@
#include "emu.h"
#include "f8.h"
#include "f8dasm.h"
-#include "debugger.h"
/* status flags */
@@ -68,7 +67,8 @@ f8_cpu_device::f8_cpu_device(const machine_config &mconfig, const char *tag, dev
cpu_device(mconfig, F8, tag, owner, clock),
m_program_config("program", ENDIANNESS_BIG, 8, 16, 0),
m_regs_config("register", ENDIANNESS_BIG, 8, 6, 0, address_map_constructor(FUNC(f8_cpu_device::regs_map), this)),
- m_io_config("io", ENDIANNESS_BIG, 8, 8, 0)
+ m_io_config("io", ENDIANNESS_BIG, 8, 8, 0),
+ m_romc08_callback(*this, 0)
{ }
void f8_cpu_device::regs_map(address_map &map)
@@ -280,7 +280,6 @@ void f8_cpu_device::ROMC_00(int insttim)
* code addressed by PC0; then all devices increment the contents
* of PC0.
*/
-
m_dbus = m_program.read_byte(m_pc0);
m_pc0 += 1;
m_icount -= insttim; /* ROMC00 is usually short, not short+long, but DS is long */
@@ -370,7 +369,7 @@ void f8_cpu_device::ROMC_08()
*/
m_pc1 = m_pc0;
m_dbus = 0;
- m_pc0 = 0;
+ m_pc0 = m_romc08_callback() * 0x0101;
m_icount -= cL;
}
@@ -449,7 +448,7 @@ void f8_cpu_device::ROMC_0F()
* must move the contents of the data bus into the low order
* byte of PC0.
*/
- m_irq_vector = standard_irq_callback(F8_INPUT_LINE_INT_REQ);
+ m_irq_vector = standard_irq_callback(F8_INPUT_LINE_INT_REQ, m_pc0);
m_dbus = m_irq_vector & 0x00ff;
m_pc1 = m_pc0;
m_pc0 = (m_pc0 & 0xff00) | m_dbus;