summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/6883sam.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/6883sam.cpp')
-rw-r--r--src/mame/machine/6883sam.cpp85
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);
}
}
}