diff options
author | 2017-04-01 22:09:44 +0200 | |
---|---|---|
committer | 2017-04-01 22:10:03 +0200 | |
commit | 2b9d6a355418d3aa86e384fa402dacea137b1a87 (patch) | |
tree | d21e47203b1fbabeff104725f9ee91e56c7106b1 /src/devices/cpu/i86/i286.cpp | |
parent | 5766bced1b33355e30ad218190c5fa042aa70e48 (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.cpp | 15 |
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; } |