summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/i86/i286.cpp
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2017-04-01 22:09:44 +0200
committer Olivier Galibert <galibert@pobox.com>2017-04-01 22:10:03 +0200
commit2b9d6a355418d3aa86e384fa402dacea137b1a87 (patch)
treed21e47203b1fbabeff104725f9ee91e56c7106b1 /src/devices/cpu/i86/i286.cpp
parent5766bced1b33355e30ad218190c5fa042aa70e48 (diff)
i86: Add decrypted opcodes space support [O. Galibert]
Diffstat (limited to 'src/devices/cpu/i86/i286.cpp')
-rw-r--r--src/devices/cpu/i86/i286.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/devices/cpu/i86/i286.cpp b/src/devices/cpu/i86/i286.cpp
index 44232141fa9..96ae721f3c8 100644
--- a/src/devices/cpu/i86/i286.cpp
+++ b/src/devices/cpu/i86/i286.cpp
@@ -281,6 +281,17 @@ void i80286_cpu_device::device_start()
m_out_shutdown_func.resolve_safe();
}
+const address_space_config *i80286_cpu_device::memory_space_config(address_spacenum spacenum) const
+{
+ switch(spacenum)
+ {
+ case AS_PROGRAM: return &m_program_config;
+ case AS_IO: return &m_io_config;
+ case AS_DECRYPTED_OPCODES: return has_configured_map(AS_DECRYPTED_OPCODES) ? &m_opcodes_config : nullptr;
+ default: return nullptr;
+ }
+}
+
//-------------------------------------------------
// state_import - import state into the device,
@@ -1010,7 +1021,7 @@ uint8_t i80286_cpu_device::fetch_op()
if(m_ip > m_limit[CS])
throw TRAP(FAULT_GP, 0);
- data = m_direct->read_byte( pc() & m_amask, m_fetch_xor );
+ data = m_direct_opcodes->read_byte( pc() & m_amask, m_fetch_xor );
m_ip++;
return data;
}
@@ -1021,7 +1032,7 @@ uint8_t i80286_cpu_device::fetch()
if(m_ip > m_limit[CS])
throw TRAP(FAULT_GP, 0);
- data = m_direct->read_byte( pc() & m_amask, m_fetch_xor );
+ data = m_direct_opcodes->read_byte( pc() & m_amask, m_fetch_xor );
m_ip++;
return data;
}