diff options
author | 2020-01-23 23:21:03 -0500 | |
---|---|---|
committer | 2020-01-23 23:21:03 -0500 | |
commit | b5d622dceee8478d1533e1c5bb6e66fd9fc0cd7d (patch) | |
tree | f552647c7bce79f6ad860a09d9fd23f34f667b06 /src/devices/cpu/m88000/m88000.cpp | |
parent | 92bd148e05aa7a20888ebeb5c3a95326a5c621b7 (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.cpp | 13 |
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); |