summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/m88000/m88000.cpp
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-01-23 23:21:03 -0500
committer AJR <ajrhacker@users.noreply.github.com>2020-01-23 23:21:03 -0500
commitb5d622dceee8478d1533e1c5bb6e66fd9fc0cd7d (patch)
treef552647c7bce79f6ad860a09d9fd23f34f667b06 /src/devices/cpu/m88000/m88000.cpp
parent92bd148e05aa7a20888ebeb5c3a95326a5c621b7 (diff)
m88000: Use split memory spaces for MC88100; fix masking logic in disassembler (nw)
Diffstat (limited to 'src/devices/cpu/m88000/m88000.cpp')
-rw-r--r--src/devices/cpu/m88000/m88000.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/devices/cpu/m88000/m88000.cpp b/src/devices/cpu/m88000/m88000.cpp
index ddf42f3b9ac..cb25ff35a38 100644
--- a/src/devices/cpu/m88000/m88000.cpp
+++ b/src/devices/cpu/m88000/m88000.cpp
@@ -17,7 +17,10 @@ DEFINE_DEVICE_TYPE(MC88100, mc88100_device, "mc88100", "Motorola MC88100")
mc88100_device::mc88100_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: cpu_device(mconfig, MC88100, tag, owner, clock)
- , m_space_config("program", ENDIANNESS_BIG, 32, 32, 0)
+ , m_code_config("code", ENDIANNESS_BIG, 32, 32, 0)
+ , m_data_config("data", ENDIANNESS_BIG, 32, 32, 0)
+ , m_inst_cache(nullptr)
+ , m_data_space(nullptr)
, m_pc(0)
, m_r{0}
, m_cr{0}
@@ -33,15 +36,17 @@ std::unique_ptr<util::disasm_interface> mc88100_device::create_disassembler()
device_memory_interface::space_config_vector mc88100_device::memory_space_config() const
{
+ // MC88100 has physically separate code and data buses
return space_config_vector {
- std::make_pair(AS_PROGRAM, &m_space_config),
+ std::make_pair(AS_PROGRAM, &m_code_config),
+ std::make_pair(AS_DATA, &m_data_config)
};
}
void mc88100_device::device_start()
{
- m_space = &space(AS_PROGRAM);
- m_cache = m_space->cache<2, 0, ENDIANNESS_BIG>();
+ m_inst_cache = space(AS_PROGRAM).cache<2, 0, ENDIANNESS_BIG>();
+ m_data_space = &space(AS_DATA);
set_icountptr(m_icount);