diff options
author | 2012-09-19 19:48:09 +0000 | |
---|---|---|
committer | 2012-09-19 19:48:09 +0000 | |
commit | 621ac620ae1ca743a66bb52aaf5478da01c3bac6 (patch) | |
tree | 2743a87e9077417af7546970d1ea1cc3b8781a63 /src/mess/drivers/sg1000.c | |
parent | 33c77e65bbd4513957f2ece623cee476cf439248 (diff) |
Since nobody checks for NULLs anyway, make
device_memory_interface::space() assert against NULL and
return a reference, and pushed references throughout all
address space usage in the system. Added a has_space()
method to check for those rare case when it is ambiguous.
[Aaron Giles]
Also reinstated the generic space and added fatal error
handlers if anyone tries to actually read/write from it.
Diffstat (limited to 'src/mess/drivers/sg1000.c')
-rw-r--r-- | src/mess/drivers/sg1000.c | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/src/mess/drivers/sg1000.c b/src/mess/drivers/sg1000.c index bb623468fc5..5d645b1bbc7 100644 --- a/src/mess/drivers/sg1000.c +++ b/src/mess/drivers/sg1000.c @@ -642,20 +642,20 @@ const cassette_interface sc3000_cassette_interface = void sg1000_state::install_cartridge(UINT8 *ptr, int size) { - address_space *program = m_maincpu->space(AS_PROGRAM); + address_space &program = m_maincpu->space(AS_PROGRAM); switch (size) { case 40 * 1024: - program->install_read_bank(0x8000, 0x9fff, "bank1"); - program->unmap_write(0x8000, 0x9fff); + program.install_read_bank(0x8000, 0x9fff, "bank1"); + program.unmap_write(0x8000, 0x9fff); membank("bank1")->configure_entry(0, memregion(Z80_TAG)->base() + 0x8000); membank("bank1")->set_entry(0); break; case 48 * 1024: - program->install_read_bank(0x8000, 0xbfff, "bank1"); - program->unmap_write(0x8000, 0xbfff); + program.install_read_bank(0x8000, 0xbfff, "bank1"); + program.unmap_write(0x8000, 0xbfff); membank("bank1")->configure_entry(0, memregion(Z80_TAG)->base() + 0x8000); membank("bank1")->set_entry(0); break; @@ -663,14 +663,14 @@ void sg1000_state::install_cartridge(UINT8 *ptr, int size) default: if (IS_CARTRIDGE_TV_DRAW(ptr)) { - program->install_write_handler(0x6000, 0x6000, 0, 0, write8_delegate(FUNC(sg1000_state::tvdraw_axis_w), this), 0); - program->install_read_handler(0x8000, 0x8000, 0, 0, read8_delegate(FUNC(sg1000_state::tvdraw_status_r), this), 0); - program->install_read_handler(0xa000, 0xa000, 0, 0, read8_delegate(FUNC(sg1000_state::tvdraw_data_r), this), 0); - program->nop_write(0xa000, 0xa000); + program.install_write_handler(0x6000, 0x6000, 0, 0, write8_delegate(FUNC(sg1000_state::tvdraw_axis_w), this), 0); + program.install_read_handler(0x8000, 0x8000, 0, 0, read8_delegate(FUNC(sg1000_state::tvdraw_status_r), this), 0); + program.install_read_handler(0xa000, 0xa000, 0, 0, read8_delegate(FUNC(sg1000_state::tvdraw_data_r), this), 0); + program.nop_write(0xa000, 0xa000); } else if (IS_CARTRIDGE_THE_CASTLE(ptr)) { - program->install_readwrite_bank(0x8000, 0x9fff, "bank1"); + program.install_readwrite_bank(0x8000, 0x9fff, "bank1"); } break; } @@ -684,7 +684,7 @@ static DEVICE_IMAGE_LOAD( sg1000_cart ) { running_machine &machine = image.device().machine(); sg1000_state *state = machine.driver_data<sg1000_state>(); - address_space *program = machine.device(Z80_TAG)->memory().space(AS_PROGRAM); + address_space &program = machine.device(Z80_TAG)->memory().space(AS_PROGRAM); UINT8 *ptr = state->memregion(Z80_TAG)->base(); UINT32 ram_size = 0x400; bool install_2000_ram = false; @@ -781,11 +781,11 @@ static DEVICE_IMAGE_LOAD( sg1000_cart ) if ( install_2000_ram ) { - program->install_ram(0x2000, 0x3FFF); + program.install_ram(0x2000, 0x3FFF); } /* work RAM banking */ - program->install_readwrite_bank(0xc000, 0xc000 + ram_size - 1, 0, 0x4000 - ram_size, "bank2"); + program.install_readwrite_bank(0xc000, 0xc000 + ram_size - 1, 0, 0x4000 - ram_size, "bank2"); return IMAGE_INIT_PASS; } @@ -825,25 +825,25 @@ static DEVICE_IMAGE_LOAD( omv_cart ) void sc3000_state::install_cartridge(UINT8 *ptr, int size) { - address_space *program = m_maincpu->space(AS_PROGRAM); + address_space &program = m_maincpu->space(AS_PROGRAM); /* include SG-1000 mapping */ sg1000_state::install_cartridge(ptr, size); if (IS_CARTRIDGE_BASIC_LEVEL_III(ptr)) { - program->install_readwrite_bank(0x8000, 0xbfff, "bank1"); - program->install_readwrite_bank(0xc000, 0xffff, "bank2"); + program.install_readwrite_bank(0x8000, 0xbfff, "bank1"); + program.install_readwrite_bank(0xc000, 0xffff, "bank2"); } else if (IS_CARTRIDGE_MUSIC_EDITOR(ptr)) { - program->install_readwrite_bank(0x8000, 0x9fff, "bank1"); - program->install_readwrite_bank(0xc000, 0xc7ff, 0, 0x3800, "bank2"); + program.install_readwrite_bank(0x8000, 0x9fff, "bank1"); + program.install_readwrite_bank(0xc000, 0xc7ff, 0, 0x3800, "bank2"); } else { /* regular cartridges */ - program->install_readwrite_bank(0xc000, 0xc7ff, 0, 0x3800, "bank2"); + program.install_readwrite_bank(0xc000, 0xc7ff, 0, 0x3800, "bank2"); } } |