diff options
author | 2017-07-01 12:11:28 +0200 | |
---|---|---|
committer | 2017-07-03 08:03:57 +0200 | |
commit | cbbbd07484c736eae2069b294ec666f231e64bff (patch) | |
tree | b94a690f0ab10635eb6d11837425744208c7e8a4 /src/devices/cpu/i86/i286.cpp | |
parent | cb1930f6e6a6b460577f01207888eab402469e9f (diff) |
dimemory: Lift the cap on the number of address spaces per device [O. Galibert]
Diffstat (limited to 'src/devices/cpu/i86/i286.cpp')
-rw-r--r-- | src/devices/cpu/i86/i286.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/devices/cpu/i86/i286.cpp b/src/devices/cpu/i86/i286.cpp index 2a2b8d5d1bb..9d78bfc21e9 100644 --- a/src/devices/cpu/i86/i286.cpp +++ b/src/devices/cpu/i86/i286.cpp @@ -282,15 +282,19 @@ 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 +std::vector<std::pair<int, const address_space_config *>> i80286_cpu_device::memory_space_config() const { - switch(spacenum) - { - case AS_PROGRAM: return &m_program_config; - case AS_IO: return &m_io_config; - case AS_OPCODES: return has_configured_map(AS_OPCODES) ? &m_opcodes_config : nullptr; - default: return nullptr; - } + if(has_configured_map(AS_OPCODES)) + return std::vector<std::pair<int, const address_space_config *>> { + std::make_pair(AS_PROGRAM, &m_program_config), + std::make_pair(AS_OPCODES, &m_opcodes_config), + std::make_pair(AS_IO, &m_io_config) + }; + else + return std::vector<std::pair<int, const address_space_config *>> { + std::make_pair(AS_PROGRAM, &m_program_config), + std::make_pair(AS_IO, &m_io_config) + }; } @@ -367,7 +371,7 @@ void i80286_cpu_device::state_string_export(const device_state_entry &entry, std } } -bool i80286_cpu_device::memory_translate(address_spacenum spacenum, int intention, offs_t &address) +bool i80286_cpu_device::memory_translate(int spacenum, int intention, offs_t &address) { if(spacenum == AS_PROGRAM) address &= m_amask; |