summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/apollo.c
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2012-09-04 22:15:53 +0000
committer Aaron Giles <aaron@aarongiles.com>2012-09-04 22:15:53 +0000
commit459980bd3ef86e89b3af460744e3e3f100e958b6 (patch)
tree07d638f5d1f25b153cf859a252858a45c26ea976 /src/mess/drivers/apollo.c
parent65cb0b57e923dec0eefae6882c78c2aa6c18d79e (diff)
And death to AM_SIZE_LEGACY.
Diffstat (limited to 'src/mess/drivers/apollo.c')
-rw-r--r--src/mess/drivers/apollo.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/src/mess/drivers/apollo.c b/src/mess/drivers/apollo.c
index fc7b4f3e36c..115cd2f5b08 100644
--- a/src/mess/drivers/apollo.c
+++ b/src/mess/drivers/apollo.c
@@ -107,9 +107,6 @@ static UINT32 node_id = DEFAULT_NODE_ID;
static UINT32 ram_base_address;
static UINT32 ram_end_address;
-static generic_ptr messram_ptr;
-static size_t messram_size = 0;
-
static int node_type;
// FIXME: value of ram_config_byte must match with default/selected RAM size
@@ -445,7 +442,7 @@ READ16_MEMBER(apollo_state::selective_clear_locations_r){
***************************************************************************/
READ32_MEMBER(apollo_state::ram_with_parity_r){
- UINT32 data = messram_ptr.u32[parity_error_offset+offset];
+ UINT32 data = m_messram_ptr[parity_error_offset+offset];
SLOG2(("memory dword read with parity error at %08x = %08x & %08x parity_byte=%04x",
ram_base_address + parity_error_offset*4 + offset*4,data, mem_mask, parity_error_byte_mask));
@@ -467,7 +464,7 @@ READ32_MEMBER(apollo_state::ram_with_parity_r){
WRITE32_MEMBER(apollo_state::ram_with_parity_w){
- COMBINE_DATA(messram_ptr.u32+offset);
+ COMBINE_DATA(m_messram_ptr+offset);
if (apollo_csr_get_control_register() & APOLLO_CSR_CR_FORCE_BAD_PARITY) {
parity_error_byte_mask = (apollo_csr_get_control_register()
@@ -499,7 +496,7 @@ WRITE32_MEMBER(apollo_state::ram_with_parity_w){
// uninstall not supported, reinstall previous read handler instead
// memory_install_rom(&space, ram_base_address, ram_end_address, 0xffffffff, 0, messram_ptr.v);
- space.install_rom(ram_base_address,ram_end_address,0xffffffff,0,messram_ptr.v);
+ space.install_rom(ram_base_address,ram_end_address,0xffffffff,0,&m_messram_ptr[0]);
parity_error_handler_is_installed = 0;
parity_error_byte_mask = 0;
@@ -765,7 +762,7 @@ static ADDRESS_MAP_START(dn3500_map, AS_PROGRAM, 32, apollo_state )
// FIXME: must match with RAM size in driver/apollo_sio.c
// AM_RANGE(DN3500_RAM_BASE, DN3500_RAM_END) AM_RAM /* 8MB RAM */
- AM_RANGE(DN3500_RAM_BASE, DN3500_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_BASE_LEGACY(&messram_ptr.u32) AM_SIZE_LEGACY(&messram_size)
+ AM_RANGE(DN3500_RAM_BASE, DN3500_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_SHARE("messram")
AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE(apollo_atbus_memory_r, apollo_atbus_memory_w)
@@ -813,7 +810,7 @@ static ADDRESS_MAP_START(dsp3500_map, AS_PROGRAM, 32, apollo_state )
// FIXME: must match with RAM size in driver/apollo_sio.c
// AM_RANGE(DN3500_RAM_BASE, DN3500_RAM_END) AM_RAM /* 8MB RAM */
- AM_RANGE(DN3500_RAM_BASE, DN3500_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_BASE_LEGACY(&messram_ptr.u32) AM_SIZE_LEGACY(&messram_size)
+ AM_RANGE(DN3500_RAM_BASE, DN3500_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_SHARE("messram")
AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE(apollo_atbus_memory_r, apollo_atbus_memory_w)
@@ -852,7 +849,7 @@ static ADDRESS_MAP_START(dn3000_map, AS_PROGRAM, 32, apollo_state )
// FIXME: must match with RAM size in driver/apollo_sio.c
// AM_RANGE(DN3000_RAM_BASE, DN3000_RAM_END) AM_RAM /* 8MB RAM */
- AM_RANGE(DN3000_RAM_BASE, DN3000_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_BASE_LEGACY(&messram_ptr.u32) AM_SIZE_LEGACY(&messram_size)
+ AM_RANGE(DN3000_RAM_BASE, DN3000_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_SHARE("messram")
AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE(apollo_atbus_memory_r, apollo_atbus_memory_w)
@@ -890,7 +887,7 @@ static ADDRESS_MAP_START(dsp3000_map, AS_PROGRAM, 32, apollo_state )
// FIXME: must match with RAM size in driver/apollo_sio.c
// AM_RANGE(DN3000_RAM_BASE, DN3000_RAM_END) AM_RAM /* 8MB RAM */
- AM_RANGE(DN3000_RAM_BASE, DN3000_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_BASE_LEGACY(&messram_ptr.u32) AM_SIZE_LEGACY(&messram_size)
+ AM_RANGE(DN3000_RAM_BASE, DN3000_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_SHARE("messram")
AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE(apollo_atbus_memory_r, apollo_atbus_memory_w)
@@ -936,7 +933,7 @@ static ADDRESS_MAP_START(dn5500_map, AS_PROGRAM, 32, apollo_state )
// FIXME: must match with RAM size in driver/apollo_sio.c
// AM_RANGE(DN3500_RAM_BASE, DN3500_RAM_END) AM_RAM /* 8MB RAM */
- AM_RANGE(DN5500_RAM_BASE, DN5500_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_BASE_LEGACY(&messram_ptr.u32) AM_SIZE_LEGACY(&messram_size)
+ AM_RANGE(DN5500_RAM_BASE, DN5500_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_SHARE("messram")
AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE(apollo_atbus_memory_r, apollo_atbus_memory_w)
@@ -987,7 +984,7 @@ static ADDRESS_MAP_START(dsp5500_map, AS_PROGRAM, 32, apollo_state )
AM_RANGE(0x080000, 0x081fff) AM_ROM /* 3C505 boot ROM */
// FIXME: must match with RAM size in driver/apollo_sio.c
- AM_RANGE(DN5500_RAM_BASE, DN5500_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_BASE_LEGACY(&messram_ptr.u32) AM_SIZE_LEGACY(&messram_size)
+ AM_RANGE(DN5500_RAM_BASE, DN5500_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_SHARE("messram")
AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE(apollo_atbus_memory_r, apollo_atbus_memory_w)
@@ -1066,10 +1063,11 @@ static void apollo_reset_instr_callback(device_t *device)
***************************************************************************/
static MACHINE_START( dn3500 ) {
- MLOG1(("machine_start_dn3500: ram size is %d MB", (int)messram_size/(1024*1024)));
+ memory_share *messram = machine.root_device().memshare("messram");
+ MLOG1(("machine_start_dn3500: ram size is %d MB", (int)messram->bytes()/(1024*1024)));
// clear ram
- memset(messram_ptr.u8, 0x55, messram_size);
+ memset(messram->ptr(), 0x55, messram->bytes());
MACHINE_START_CALL(apollo);
}