diff options
Diffstat (limited to 'src/mame/machine/6883sam.cpp')
-rw-r--r-- | src/mame/machine/6883sam.cpp | 85 |
1 files changed, 41 insertions, 44 deletions
diff --git a/src/mame/machine/6883sam.cpp b/src/mame/machine/6883sam.cpp index d5d064167dd..7bfc87c3421 100644 --- a/src/mame/machine/6883sam.cpp +++ b/src/mame/machine/6883sam.cpp @@ -72,24 +72,24 @@ DEFINE_DEVICE_TYPE(SAM6883, sam6883_device, "sam6883", "MC6883 SAM") //------------------------------------------------- sam6883_device::sam6883_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, SAM6883, tag, owner, clock), - m_cpu_tag(nullptr), - m_cpu_space_ref(AS_PROGRAM), - m_read_res(*this), - m_space_0000(*this), - m_space_8000(*this), - m_space_A000(*this), - m_space_C000(*this), - m_space_FF00(*this), - m_space_FF20(*this), - m_space_FF40(*this), - m_space_FF60(*this), - m_space_FFE0(*this) + : device_t(mconfig, SAM6883, tag, owner, clock) + , m_cpu_tag(nullptr) + , m_cpu_space_ref(AS_PROGRAM) + , m_cpu_space(nullptr) + , m_read_res(*this) + , m_space_0000(*this) + , m_space_8000(*this) + , m_space_A000(*this) + , m_space_C000(*this) + , m_space_FF00(*this) + , m_space_FF20(*this) + , m_space_FF40(*this) + , m_space_FF60(*this) + , m_space_FFE0(*this) { } - //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- @@ -115,7 +115,6 @@ void sam6883_device::device_start() } - //------------------------------------------------- // configure_bank - bank configuration //------------------------------------------------- @@ -126,7 +125,6 @@ void sam6883_device::configure_bank(int bank, uint8_t *memory, uint32_t memory_s } - //------------------------------------------------- // configure_bank - bank configuration //------------------------------------------------- @@ -137,7 +135,6 @@ void sam6883_device::configure_bank(int bank, read8_delegate rhandler, write8_de } - //------------------------------------------------- // configure_bank - bank configuration //------------------------------------------------- @@ -155,19 +152,19 @@ void sam6883_device::configure_bank(int bank, uint8_t *memory, uint32_t memory_s switch(bank) { case 4: - m_space_FF00.point(&m_banks[4], 0x0000); + m_space_FF00.point(m_banks[4], 0x0000); break; case 5: - m_space_FF20.point(&m_banks[5], 0x0000); + m_space_FF20.point(m_banks[5], 0x0000); break; case 6: - m_space_FF40.point(&m_banks[6], 0x0000); + m_space_FF40.point(m_banks[6], 0x0000); break; case 7: - m_space_FF60.point(&m_banks[7], 0x0000); + m_space_FF60.point(m_banks[7], 0x0000); break; case 2: - m_space_FFE0.point(&m_banks[2], 0x1FE0); + m_space_FFE0.point(m_banks[2], 0x1FE0); break; } } @@ -248,14 +245,14 @@ void sam6883_device::update_memory(void) { case 0: // 4K mode - m_space_0000.point(&m_banks[0], 0x0000, m_banks[0].m_memory_size); + m_space_0000.point(m_banks[0], 0x0000, m_banks[0].m_memory_size); m_counter_mask = 0x0FFF; m_counter_or = 0x0000; break; case SAM_STATE_M0: // 16K mode - m_space_0000.point(&m_banks[0], 0x0000, m_banks[0].m_memory_size); + m_space_0000.point(m_banks[0], 0x0000, m_banks[0].m_memory_size); m_counter_mask = 0x3FFF; m_counter_or = 0x0000; break; @@ -266,10 +263,10 @@ void sam6883_device::update_memory(void) if (m_sam_state & SAM_STATE_TY) { // full 64k RAM - m_space_0000.point(&m_banks[0], 0x0000, m_banks[0].m_memory_size); - m_space_8000.point(&m_banks[0], 0x8000); - m_space_A000.point(&m_banks[0], 0xA000); - m_space_C000.point(&m_banks[0], 0xC000); + m_space_0000.point(m_banks[0], 0x0000, m_banks[0].m_memory_size); + m_space_8000.point(m_banks[0], 0x8000); + m_space_A000.point(m_banks[0], 0xA000); + m_space_C000.point(m_banks[0], 0xC000); m_counter_mask = 0xFFFF; m_counter_or = 0x0000; setup_rom = false; @@ -278,7 +275,7 @@ void sam6883_device::update_memory(void) { // ROM/RAM uint16_t ram_base = (m_sam_state & SAM_STATE_P1) ? 0x8000 : 0x0000; - m_space_0000.point(&m_banks[0], ram_base, m_banks[0].m_memory_size); + m_space_0000.point(m_banks[0], ram_base, m_banks[0].m_memory_size); m_counter_mask = 0x7FFF; m_counter_or = ram_base; } @@ -287,13 +284,13 @@ void sam6883_device::update_memory(void) if (setup_rom) { - m_space_8000.point(&m_banks[1], m_banks[1].m_memory_offset); - m_space_A000.point(&m_banks[2], m_banks[2].m_memory_offset); - m_space_C000.point(&m_banks[3], m_banks[3].m_memory_offset); + m_space_8000.point(m_banks[1], m_banks[1].m_memory_offset); + m_space_A000.point(m_banks[2], m_banks[2].m_memory_offset); + m_space_C000.point(m_banks[3], m_banks[3].m_memory_offset); } // update $FFE0-$FFFF - m_space_FFE0.point(&m_banks[2], m_banks[2].m_memory_offset + 0x1FE0); + m_space_FFE0.point(m_banks[2], m_banks[2].m_memory_offset + 0x1FE0); } @@ -475,7 +472,7 @@ address_space &sam6883_device::sam_space<_addrstart, _addrend>::cpu_space() cons //------------------------------------------------- template<uint16_t _addrstart, uint16_t _addrend> -void sam6883_device::sam_space<_addrstart, _addrend>::point(const sam_bank *bank, uint16_t offset, uint32_t length) +void sam6883_device::sam_space<_addrstart, _addrend>::point(const sam_bank &bank, uint16_t offset, uint32_t length) { if (LOG_SAM) { @@ -484,8 +481,8 @@ void sam6883_device::sam_space<_addrstart, _addrend>::point(const sam_bank *bank (unsigned) _addrend, (unsigned) offset, (unsigned)length, - bank->m_memory, - bank->m_memory_read_only ? "true" : "false"); + bank.m_memory, + bank.m_memory_read_only ? "true" : "false"); } point_specific_bank(bank, offset, length, m_read_bank, _addrstart, _addrend, false); @@ -498,9 +495,9 @@ void sam6883_device::sam_space<_addrstart, _addrend>::point(const sam_bank *bank // sam_space::point_specific_bank //------------------------------------------------- template<uint16_t _addrstart, uint16_t _addrend> -void sam6883_device::sam_space<_addrstart, _addrend>::point_specific_bank(const sam_bank *bank, uint32_t offset, uint32_t length, memory_bank *&memory_bank, uint32_t addrstart, uint32_t addrend, bool is_write) +void sam6883_device::sam_space<_addrstart, _addrend>::point_specific_bank(const sam_bank &bank, uint32_t offset, uint32_t length, memory_bank *&memory_bank, uint32_t addrstart, uint32_t addrend, bool is_write) { - if (bank->m_memory != nullptr) + if (bank.m_memory != nullptr) { // this bank is a memory bank - first lets adjust the length as per the offset; as // passed to this method, the length is from offset zero @@ -543,10 +540,10 @@ void sam6883_device::sam_space<_addrstart, _addrend>::point_specific_bank(const // point the bank if (memory_bank != nullptr) { - if (is_write && bank->m_memory_read_only) + if (is_write && bank.m_memory_read_only) memory_bank->set_base(m_owner.m_dummy); else - memory_bank->set_base(bank->m_memory + offset); + memory_bank->set_base(bank.m_memory + offset); } } else @@ -557,13 +554,13 @@ void sam6883_device::sam_space<_addrstart, _addrend>::point_specific_bank(const if (is_write) { - if (!bank->m_whandler.isnull()) - cpu_space().install_write_handler(addrstart, addrend, bank->m_whandler); + if (!bank.m_whandler.isnull()) + cpu_space().install_write_handler(addrstart, addrend, bank.m_whandler); } else { - if (!bank->m_rhandler.isnull()) - cpu_space().install_read_handler(addrstart, addrend, bank->m_rhandler); + if (!bank.m_rhandler.isnull()) + cpu_space().install_read_handler(addrstart, addrend, bank.m_rhandler); } } } |