Previous 199869 Revisions Next

r17647 Tuesday 4th September, 2012 at 22:15:53 UTC by Aaron Giles
And death to AM_SIZE_LEGACY.
[src/emu]addrmap.h
[src/mess/drivers]apollo.c
[src/mess/includes]apollo.h

trunk/src/emu/addrmap.h
r17646r17647
739739#define AM_BASE_LEGACY(_base) \
740740   curentry->set_baseptr(_base); \
741741
742#define AM_SIZE_LEGACY(_size) \
743   curentry->set_sizeptr(_size); \
744742
745
746743// common shortcuts
747744#define AM_ROMBANK(_bank)               AM_READ_BANK(_bank)
748745#define AM_RAMBANK(_bank)               AM_READWRITE_BANK(_bank)
trunk/src/mess/includes/apollo.h
r17646r17647
111111public:
112112   apollo_state(const machine_config &mconfig, device_type type, const char *tag)
113113         : driver_device(mconfig, type, tag),
114            m_ctape(*this, APOLLO_CTAPE_TAG)
114            m_ctape(*this, APOLLO_CTAPE_TAG),
115            m_messram_ptr(*this, "messram")
115116            { }
116117
117118    required_device<sc499_device> m_ctape;
r17646r17647
177178   DECLARE_DRIVER_INIT(dsp3500);
178179   DECLARE_DRIVER_INIT(dn5500);
179180   DECLARE_DRIVER_INIT(apollo);
181
182   required_shared_ptr<UINT32> m_messram_ptr;
180183};
181184
182185MACHINE_CONFIG_EXTERN( apollo );
trunk/src/mess/drivers/apollo.c
r17646r17647
107107static UINT32 ram_base_address;
108108static UINT32 ram_end_address;
109109
110static generic_ptr messram_ptr;
111static size_t messram_size = 0;
112
113110static int node_type;
114111
115112// FIXME: value of ram_config_byte must match with default/selected RAM size
r17646r17647
445442 ***************************************************************************/
446443
447444READ32_MEMBER(apollo_state::ram_with_parity_r){
448   UINT32 data = messram_ptr.u32[parity_error_offset+offset];
445   UINT32 data = m_messram_ptr[parity_error_offset+offset];
449446
450447   SLOG2(("memory dword read with parity error at %08x = %08x & %08x parity_byte=%04x",
451448         ram_base_address + parity_error_offset*4 + offset*4,data, mem_mask, parity_error_byte_mask));
r17646r17647
467464
468465WRITE32_MEMBER(apollo_state::ram_with_parity_w){
469466
470   COMBINE_DATA(messram_ptr.u32+offset);
467   COMBINE_DATA(m_messram_ptr+offset);
471468
472469   if (apollo_csr_get_control_register() & APOLLO_CSR_CR_FORCE_BAD_PARITY) {
473470      parity_error_byte_mask = (apollo_csr_get_control_register()
r17646r17647
499496      // uninstall not supported, reinstall previous read handler instead
500497
501498      // memory_install_rom(&space, ram_base_address, ram_end_address, 0xffffffff, 0, messram_ptr.v);
502      space.install_rom(ram_base_address,ram_end_address,0xffffffff,0,messram_ptr.v);
499      space.install_rom(ram_base_address,ram_end_address,0xffffffff,0,&m_messram_ptr[0]);
503500
504501      parity_error_handler_is_installed = 0;
505502      parity_error_byte_mask = 0;
r17646r17647
765762
766763      // FIXME: must match with RAM size in driver/apollo_sio.c
767764      // AM_RANGE(DN3500_RAM_BASE, DN3500_RAM_END) AM_RAM /* 8MB RAM */
768      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)
765      AM_RANGE(DN3500_RAM_BASE, DN3500_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_SHARE("messram")
769766
770767      AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE(apollo_atbus_memory_r, apollo_atbus_memory_w)
771768
r17646r17647
813810
814811      // FIXME: must match with RAM size in driver/apollo_sio.c
815812      // AM_RANGE(DN3500_RAM_BASE, DN3500_RAM_END) AM_RAM  /* 8MB RAM */
816      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)
813      AM_RANGE(DN3500_RAM_BASE, DN3500_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_SHARE("messram")
817814
818815      AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE(apollo_atbus_memory_r, apollo_atbus_memory_w)
819816
r17646r17647
852849
853850      // FIXME: must match with RAM size in driver/apollo_sio.c
854851      // AM_RANGE(DN3000_RAM_BASE, DN3000_RAM_END) AM_RAM  /* 8MB RAM */
855      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)
852      AM_RANGE(DN3000_RAM_BASE, DN3000_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_SHARE("messram")
856853
857854      AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE(apollo_atbus_memory_r, apollo_atbus_memory_w)
858855
r17646r17647
890887
891888      // FIXME: must match with RAM size in driver/apollo_sio.c
892889      // AM_RANGE(DN3000_RAM_BASE, DN3000_RAM_END) AM_RAM  /* 8MB RAM */
893      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)
890      AM_RANGE(DN3000_RAM_BASE, DN3000_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_SHARE("messram")
894891
895892      AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE(apollo_atbus_memory_r, apollo_atbus_memory_w)
896893
r17646r17647
936933
937934      // FIXME: must match with RAM size in driver/apollo_sio.c
938935      // AM_RANGE(DN3500_RAM_BASE, DN3500_RAM_END) AM_RAM  /* 8MB RAM */
939      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)
936      AM_RANGE(DN5500_RAM_BASE, DN5500_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_SHARE("messram")
940937
941938      AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE(apollo_atbus_memory_r, apollo_atbus_memory_w)
942939
r17646r17647
987984      AM_RANGE(0x080000, 0x081fff) AM_ROM /* 3C505 boot ROM  */
988985
989986      // FIXME: must match with RAM size in driver/apollo_sio.c
990      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)
987      AM_RANGE(DN5500_RAM_BASE, DN5500_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_SHARE("messram")
991988
992989      AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE(apollo_atbus_memory_r, apollo_atbus_memory_w)
993990
r17646r17647
10661063 ***************************************************************************/
10671064
10681065static MACHINE_START( dn3500 ) {
1069   MLOG1(("machine_start_dn3500: ram size is %d MB", (int)messram_size/(1024*1024)));
1066   memory_share *messram = machine.root_device().memshare("messram");
1067   MLOG1(("machine_start_dn3500: ram size is %d MB", (int)messram->bytes()/(1024*1024)));
10701068
10711069   // clear ram
1072   memset(messram_ptr.u8, 0x55, messram_size);
1070   memset(messram->ptr(), 0x55, messram->bytes());
10731071
10741072   MACHINE_START_CALL(apollo);
10751073}

Previous 199869 Revisions Next


© 1997-2024 The MAME Team