diff options
Diffstat (limited to 'src/mame/drivers/astrocde.c')
-rw-r--r-- | src/mame/drivers/astrocde.c | 238 |
1 files changed, 114 insertions, 124 deletions
diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c index 229201a67e1..db7cf05aa75 100644 --- a/src/mame/drivers/astrocde.c +++ b/src/mame/drivers/astrocde.c @@ -152,27 +152,24 @@ static MACHINE_START( astrocde ) * *************************************/ -static WRITE8_HANDLER( protected_ram_enable_w ) +WRITE8_MEMBER(astrocde_state::protected_ram_enable_w) { - astrocde_state *state = space->machine().driver_data<astrocde_state>(); - state->m_ram_write_enable = TRUE; + m_ram_write_enable = TRUE; } -static READ8_HANDLER( protected_ram_r ) +READ8_MEMBER(astrocde_state::protected_ram_r) { - astrocde_state *state = space->machine().driver_data<astrocde_state>(); - state->m_ram_write_enable = FALSE; - return state->m_protected_ram[offset]; + m_ram_write_enable = FALSE; + return m_protected_ram[offset]; } -static WRITE8_HANDLER( protected_ram_w ) +WRITE8_MEMBER(astrocde_state::protected_ram_w) { - astrocde_state *state = space->machine().driver_data<astrocde_state>(); - if (state->m_ram_write_enable) - state->m_protected_ram[offset] = data; - state->m_ram_write_enable = FALSE; + if (m_ram_write_enable) + m_protected_ram[offset] = data; + m_ram_write_enable = FALSE; } @@ -183,7 +180,7 @@ static WRITE8_HANDLER( protected_ram_w ) * *************************************/ -static WRITE8_HANDLER( seawolf2_lamps_w ) +WRITE8_MEMBER(astrocde_state::seawolf2_lamps_w) { /* 0x42 = player 2 (left), 0x43 = player 1 (right) */ /* --x----- explosion */ @@ -203,12 +200,11 @@ static WRITE8_HANDLER( seawolf2_lamps_w ) } -static WRITE8_HANDLER( seawolf2_sound_1_w ) // Port 40 +WRITE8_MEMBER(astrocde_state::seawolf2_sound_1_w)// Port 40 { - astrocde_state *state = space->machine().driver_data<astrocde_state>(); - samples_device *samples = space->machine().device<samples_device>("samples"); - UINT8 rising_bits = data & ~state->m_port_1_last; - state->m_port_1_last = data; + samples_device *samples = machine().device<samples_device>("samples"); + UINT8 rising_bits = data & ~m_port_1_last; + m_port_1_last = data; if (rising_bits & 0x01) samples->start(1, 1); /* Left Torpedo */ if (rising_bits & 0x02) samples->start(0, 0); /* Left Ship Hit */ @@ -219,12 +215,11 @@ static WRITE8_HANDLER( seawolf2_sound_1_w ) // Port 40 } -static WRITE8_HANDLER( seawolf2_sound_2_w ) // Port 41 +WRITE8_MEMBER(astrocde_state::seawolf2_sound_2_w)// Port 41 { - astrocde_state *state = space->machine().driver_data<astrocde_state>(); - samples_device *samples = space->machine().device<samples_device>("samples"); - UINT8 rising_bits = data & ~state->m_port_2_last; - state->m_port_2_last = data; + samples_device *samples = machine().device<samples_device>("samples"); + UINT8 rising_bits = data & ~m_port_2_last; + m_port_2_last = data; samples->set_volume(0, (data & 0x80) ? 1.0 : 0.0); samples->set_volume(1, (data & 0x80) ? 1.0 : 0.0); @@ -247,7 +242,7 @@ static WRITE8_HANDLER( seawolf2_sound_2_w ) // Port 41 if (rising_bits & 0x10) samples->start(8, 3); /* Right Sonar */ if (rising_bits & 0x20) samples->start(3, 3); /* Left Sonar */ - coin_counter_w(space->machine(), 0, data & 0x40); /* Coin Counter */ + coin_counter_w(machine(), 0, data & 0x40); /* Coin Counter */ } @@ -266,16 +261,15 @@ static CUSTOM_INPUT( ebases_trackball_r ) } -static WRITE8_HANDLER( ebases_trackball_select_w ) +WRITE8_MEMBER(astrocde_state::ebases_trackball_select_w) { - astrocde_state *state = space->machine().driver_data<astrocde_state>(); - state->m_input_select = data & 3; + m_input_select = data & 3; } -static WRITE8_HANDLER( ebases_coin_w ) +WRITE8_MEMBER(astrocde_state::ebases_coin_w) { - coin_counter_w(space->machine(), 0, data & 1); + coin_counter_w(machine(), 0, data & 1); } @@ -286,11 +280,11 @@ static WRITE8_HANDLER( ebases_coin_w ) * *************************************/ -static READ8_HANDLER( spacezap_io_r ) +READ8_MEMBER(astrocde_state::spacezap_io_r) { - coin_counter_w(space->machine(), 0, (offset >> 8) & 1); - coin_counter_w(space->machine(), 1, (offset >> 9) & 1); - return input_port_read_safe(space->machine(), "P3HANDLE", 0xff); + coin_counter_w(machine(), 0, (offset >> 8) & 1); + coin_counter_w(machine(), 1, (offset >> 9) & 1); + return input_port_read_safe(machine(), "P3HANDLE", 0xff); } @@ -301,20 +295,19 @@ static READ8_HANDLER( spacezap_io_r ) * *************************************/ -static READ8_HANDLER( wow_io_r ) +READ8_MEMBER(astrocde_state::wow_io_r) { - astrocde_state *state = space->machine().driver_data<astrocde_state>(); UINT8 data = (offset >> 8) & 1; switch ((offset >> 9) & 7) { - case 0: coin_counter_w(space->machine(), 0, data); break; - case 1: coin_counter_w(space->machine(), 1, data); break; - case 2: state->m_sparkle[0] = data; break; - case 3: state->m_sparkle[1] = data; break; - case 4: state->m_sparkle[2] = data; break; - case 5: state->m_sparkle[3] = data; break; - case 7: coin_counter_w(space->machine(), 2, data); break; + case 0: coin_counter_w(machine(), 0, data); break; + case 1: coin_counter_w(machine(), 1, data); break; + case 2: m_sparkle[0] = data; break; + case 3: m_sparkle[1] = data; break; + case 4: m_sparkle[2] = data; break; + case 5: m_sparkle[3] = data; break; + case 7: coin_counter_w(machine(), 2, data); break; } return 0xff; } @@ -327,25 +320,24 @@ static READ8_HANDLER( wow_io_r ) * *************************************/ -static READ8_HANDLER( gorf_io_1_r ) +READ8_MEMBER(astrocde_state::gorf_io_1_r) { - astrocde_state *state = space->machine().driver_data<astrocde_state>(); UINT8 data = (offset >> 8) & 1; switch ((offset >> 9) & 7) { - case 0: coin_counter_w(space->machine(), 0, data); break; - case 1: coin_counter_w(space->machine(), 1, data); break; - case 2: state->m_sparkle[0] = data; break; - case 3: state->m_sparkle[1] = data; break; - case 4: state->m_sparkle[2] = data; break; - case 5: state->m_sparkle[3] = data; break; + case 0: coin_counter_w(machine(), 0, data); break; + case 1: coin_counter_w(machine(), 1, data); break; + case 2: m_sparkle[0] = data; break; + case 3: m_sparkle[1] = data; break; + case 4: m_sparkle[2] = data; break; + case 5: m_sparkle[3] = data; break; case 6: - space->machine().device<astrocade_device>("astrocade1")->set_output_gain(0, data ? 0.0 : 1.0); + machine().device<astrocade_device>("astrocade1")->set_output_gain(0, data ? 0.0 : 1.0); #if USE_FAKE_VOTRAX - space->machine().device<samples_device>("samples")->set_output_gain(0, data ? 1.0 : 0.0); + machine().device<samples_device>("samples")->set_output_gain(0, data ? 1.0 : 0.0); #else - space->machine().device<votrax_sc01_device>("votrax")->set_output_gain(0, data ? 1.0 : 0.0); + machine().device<votrax_sc01_device>("votrax")->set_output_gain(0, data ? 1.0 : 0.0); #endif break; case 7: mame_printf_debug("io_1:%d\n", data); break; @@ -354,7 +346,7 @@ static READ8_HANDLER( gorf_io_1_r ) } -static READ8_HANDLER( gorf_io_2_r ) +READ8_MEMBER(astrocde_state::gorf_io_2_r) { UINT8 data = (offset >> 8) & 1; @@ -380,17 +372,17 @@ static READ8_HANDLER( gorf_io_2_r ) * *************************************/ -static READ8_HANDLER( robby_io_r ) +READ8_MEMBER(astrocde_state::robby_io_r) { UINT8 data = (offset >> 8) & 1; switch ((offset >> 9) & 7) { - case 0: coin_counter_w(space->machine(), 0, data); break; - case 1: coin_counter_w(space->machine(), 1, data); break; - case 2: coin_counter_w(space->machine(), 2, data); break; - case 6: set_led_status(space->machine(), 0, data); break; - case 7: set_led_status(space->machine(), 1, data); break; + case 0: coin_counter_w(machine(), 0, data); break; + case 1: coin_counter_w(machine(), 1, data); break; + case 2: coin_counter_w(machine(), 2, data); break; + case 6: set_led_status(machine(), 0, data); break; + case 7: set_led_status(machine(), 1, data); break; } return 0xff; } @@ -403,17 +395,17 @@ static READ8_HANDLER( robby_io_r ) * *************************************/ -static READ8_HANDLER( profpac_io_1_r ) +READ8_MEMBER(astrocde_state::profpac_io_1_r) { - coin_counter_w(space->machine(), 0, (offset >> 8) & 1); - coin_counter_w(space->machine(), 1, (offset >> 9) & 1); - set_led_status(space->machine(), 0, (offset >> 10) & 1); - set_led_status(space->machine(), 1, (offset >> 11) & 1); + coin_counter_w(machine(), 0, (offset >> 8) & 1); + coin_counter_w(machine(), 1, (offset >> 9) & 1); + set_led_status(machine(), 0, (offset >> 10) & 1); + set_led_status(machine(), 1, (offset >> 11) & 1); return 0xff; } -static READ8_HANDLER( profpac_io_2_r ) +READ8_MEMBER(astrocde_state::profpac_io_2_r) { output_set_lamp_value(0, (offset >> 8) & 1); /* left lamp A */ output_set_lamp_value(1, (offset >> 9) & 1); /* left lamp B */ @@ -425,27 +417,26 @@ static READ8_HANDLER( profpac_io_2_r ) } -static WRITE8_HANDLER( profpac_banksw_w ) +WRITE8_MEMBER(astrocde_state::profpac_banksw_w) { - astrocde_state *state = space->machine().driver_data<astrocde_state>(); int bank = (data >> 5) & 3; - /* this is accessed from I/O space but modifies program space, so we normalize here */ - space = space->device().memory().space(AS_PROGRAM); + /* this is accessed from I/O &space but modifies program &space, so we normalize here */ + address_space *prog_space = space.device().memory().space(AS_PROGRAM); /* remember the banking bits for save state support */ - state->m_profpac_bank = data; + m_profpac_bank = data; /* set the main banking */ - space->install_read_bank(0x4000, 0xbfff, "bank1"); - memory_set_bankptr(space->machine(), "bank1", space->machine().region("user1")->base() + 0x8000 * bank); + prog_space->install_read_bank(0x4000, 0xbfff, "bank1"); + memory_set_bankptr(machine(), "bank1", machine().region("user1")->base() + 0x8000 * bank); /* bank 0 reads video RAM in the 4000-7FFF range */ if (bank == 0) - space->install_legacy_read_handler(0x4000, 0x7fff, FUNC(profpac_videoram_r)); + prog_space->install_legacy_read_handler(0x4000, 0x7fff, FUNC(profpac_videoram_r)); /* if we have a 640k EPROM board, map that on top of the 4000-7FFF range if specified */ - if ((data & 0x80) && space->machine().region("user2")->base() != NULL) + if ((data & 0x80) && machine().region("user2")->base() != NULL) { /* Note: There is a jumper which could change the base offset to 0xa8 instead */ bank = data - 0x80; @@ -453,11 +444,11 @@ static WRITE8_HANDLER( profpac_banksw_w ) /* if the bank is in range, map the appropriate bank */ if (bank < 0x28) { - space->install_read_bank(0x4000, 0x7fff, "bank2"); - memory_set_bankptr(space->machine(), "bank2", space->machine().region("user2")->base() + 0x4000 * bank); + prog_space->install_read_bank(0x4000, 0x7fff, "bank2"); + memory_set_bankptr(machine(), "bank2", machine().region("user2")->base() + 0x4000 * bank); } else - space->unmap_read(0x4000, 0x7fff); + prog_space->unmap_read(0x4000, 0x7fff); } } @@ -467,7 +458,7 @@ static void profbank_banksw_restore(running_machine &machine) astrocde_state *state = machine.driver_data<astrocde_state>(); address_space *space = machine.device("maincpu")->memory().space(AS_IO); - profpac_banksw_w(space, 0, state->m_profpac_bank); + state->profpac_banksw_w(*space, 0, state->m_profpac_bank); } @@ -478,14 +469,13 @@ static void profbank_banksw_restore(running_machine &machine) * *************************************/ -static READ8_HANDLER( demndrgn_io_r ) +READ8_MEMBER(astrocde_state::demndrgn_io_r) { - astrocde_state *state = space->machine().driver_data<astrocde_state>(); - coin_counter_w(space->machine(), 0, (offset >> 8) & 1); - coin_counter_w(space->machine(), 1, (offset >> 9) & 1); - set_led_status(space->machine(), 0, (offset >> 10) & 1); - set_led_status(space->machine(), 1, (offset >> 11) & 1); - state->m_input_select = (offset >> 12) & 1; + coin_counter_w(machine(), 0, (offset >> 8) & 1); + coin_counter_w(machine(), 1, (offset >> 9) & 1); + set_led_status(machine(), 0, (offset >> 10) & 1); + set_led_status(machine(), 1, (offset >> 11) & 1); + m_input_select = (offset >> 12) & 1; return 0xff; } @@ -498,7 +488,7 @@ static CUSTOM_INPUT( demndragn_joystick_r ) } -static WRITE8_HANDLER( demndrgn_sound_w ) +WRITE8_MEMBER(astrocde_state::demndrgn_sound_w) { logerror("Trigger sound sample 0x%02x\n",data); } @@ -532,14 +522,14 @@ static const ay8910_interface ay8912_interface = }; -static WRITE8_HANDLER( tenpindx_sound_w ) +WRITE8_MEMBER(astrocde_state::tenpindx_sound_w) { soundlatch_w(space, offset, data); - cputag_set_input_line(space->machine(), "sub", INPUT_LINE_NMI, PULSE_LINE); + cputag_set_input_line(machine(), "sub", INPUT_LINE_NMI, PULSE_LINE); } -static WRITE8_HANDLER( tenpindx_lamp_w ) +WRITE8_MEMBER(astrocde_state::tenpindx_lamp_w) { /* lamps */ if (offset == 0) @@ -561,14 +551,14 @@ static WRITE8_HANDLER( tenpindx_lamp_w ) } -static WRITE8_HANDLER( tenpindx_counter_w ) +WRITE8_MEMBER(astrocde_state::tenpindx_counter_w) { - coin_counter_w(space->machine(), 0, (data >> 0) & 1); + coin_counter_w(machine(), 0, (data >> 0) & 1); if (data & 0xfc) mame_printf_debug("tenpindx_counter_w = %02X\n", data); } -static WRITE8_HANDLER( tenpindx_lights_w ) +WRITE8_MEMBER(astrocde_state::tenpindx_lights_w) { /* "flashlights" */ int which = data >> 4; @@ -611,7 +601,7 @@ static ADDRESS_MAP_START( spacezap_map, AS_PROGRAM, 8, astrocde_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x0000, 0x3fff) AM_WRITE_LEGACY(astrocade_funcgen_w) AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE(m_videoram) - AM_RANGE(0xd000, 0xd03f) AM_READWRITE_LEGACY(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram) + AM_RANGE(0xd000, 0xd03f) AM_READWRITE(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram) AM_RANGE(0xd040, 0xd7ff) AM_RAM ADDRESS_MAP_END @@ -621,7 +611,7 @@ static ADDRESS_MAP_START( wow_map, AS_PROGRAM, 8, astrocde_state ) AM_RANGE(0x0000, 0x3fff) AM_WRITE_LEGACY(astrocade_funcgen_w) AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE(m_videoram) AM_RANGE(0x8000, 0xcfff) AM_ROM - AM_RANGE(0xd000, 0xd03f) AM_READWRITE_LEGACY(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram) + AM_RANGE(0xd000, 0xd03f) AM_READWRITE(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram) AM_RANGE(0xd040, 0xdfff) AM_RAM ADDRESS_MAP_END @@ -631,7 +621,7 @@ static ADDRESS_MAP_START( robby_map, AS_PROGRAM, 8, astrocde_state ) AM_RANGE(0x0000, 0x3fff) AM_WRITE_LEGACY(astrocade_funcgen_w) AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE(m_videoram) AM_RANGE(0x8000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xe1ff) AM_READWRITE_LEGACY(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram) + AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram) AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xe800, 0xffff) AM_RAM ADDRESS_MAP_END @@ -643,7 +633,7 @@ static ADDRESS_MAP_START( profpac_map, AS_PROGRAM, 8, astrocde_state ) AM_RANGE(0x4000, 0x7fff) AM_READWRITE_LEGACY(profpac_videoram_r, profpac_videoram_w) AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xe1ff) AM_READWRITE_LEGACY(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram) + AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram) AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xe800, 0xffff) AM_RAM ADDRESS_MAP_END @@ -682,7 +672,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( port_map_mono_pattern, AS_IO, 8, astrocde_state ) AM_RANGE(0x0000, 0x0019) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_READWRITE_LEGACY(astrocade_data_chip_register_r, astrocade_data_chip_register_w) AM_RANGE(0x0078, 0x007e) AM_MIRROR(0xff00) AM_WRITE_LEGACY(astrocade_pattern_board_w) - AM_RANGE(0xa55b, 0xa55b) AM_WRITE_LEGACY(protected_ram_enable_w) + AM_RANGE(0xa55b, 0xa55b) AM_WRITE(protected_ram_enable_w) ADDRESS_MAP_END @@ -690,7 +680,7 @@ static ADDRESS_MAP_START( port_map_stereo_pattern, AS_IO, 8, astrocde_state ) AM_RANGE(0x0000, 0x0019) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_READWRITE_LEGACY(astrocade_data_chip_register_r, astrocade_data_chip_register_w) AM_RANGE(0x0050, 0x0058) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_DEVWRITE_LEGACY("astrocade2", astrocade_sound_w) AM_RANGE(0x0078, 0x007e) AM_MIRROR(0xff00) AM_WRITE_LEGACY(astrocade_pattern_board_w) - AM_RANGE(0xa55b, 0xa55b) AM_WRITE_LEGACY(protected_ram_enable_w) + AM_RANGE(0xa55b, 0xa55b) AM_WRITE(protected_ram_enable_w) ADDRESS_MAP_END @@ -701,8 +691,8 @@ static ADDRESS_MAP_START( port_map_16col_pattern, AS_IO, 8, astrocde_state ) AM_RANGE(0x00bf, 0x00bf) AM_MIRROR(0xff00) AM_WRITE_LEGACY(profpac_page_select_w) AM_RANGE(0x00c3, 0x00c3) AM_MIRROR(0xff00) AM_READ_LEGACY(profpac_intercept_r) AM_RANGE(0x00c0, 0x00c5) AM_MIRROR(0xff00) AM_WRITE_LEGACY(profpac_screenram_ctrl_w) - AM_RANGE(0x00f3, 0x00f3) AM_MIRROR(0xff00) AM_WRITE_LEGACY(profpac_banksw_w) - AM_RANGE(0xa55b, 0xa55b) AM_WRITE_LEGACY(protected_ram_enable_w) + AM_RANGE(0x00f3, 0x00f3) AM_MIRROR(0xff00) AM_WRITE(profpac_banksw_w) + AM_RANGE(0xa55b, 0xa55b) AM_WRITE(protected_ram_enable_w) ADDRESS_MAP_END @@ -712,8 +702,8 @@ static ADDRESS_MAP_START( port_map_16col_pattern_nosound, AS_IO, 8, astrocde_sta AM_RANGE(0x00bf, 0x00bf) AM_MIRROR(0xff00) AM_WRITE_LEGACY(profpac_page_select_w) AM_RANGE(0x00c3, 0x00c3) AM_MIRROR(0xff00) AM_READ_LEGACY(profpac_intercept_r) AM_RANGE(0x00c0, 0x00c5) AM_MIRROR(0xff00) AM_WRITE_LEGACY(profpac_screenram_ctrl_w) - AM_RANGE(0x00f3, 0x00f3) AM_MIRROR(0xff00) AM_WRITE_LEGACY(profpac_banksw_w) - AM_RANGE(0xa55b, 0xa55b) AM_WRITE_LEGACY(protected_ram_enable_w) + AM_RANGE(0x00f3, 0x00f3) AM_MIRROR(0xff00) AM_WRITE(profpac_banksw_w) + AM_RANGE(0xa55b, 0xa55b) AM_WRITE(protected_ram_enable_w) ADDRESS_MAP_END @@ -1751,9 +1741,9 @@ static DRIVER_INIT( seawolf2 ) { astrocde_state *state = machine.driver_data<astrocde_state>(); state->m_video_config = 0x00; - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x40, 0x40, 0, 0xff18, FUNC(seawolf2_sound_1_w)); - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x41, 0x41, 0, 0xff18, FUNC(seawolf2_sound_2_w)); - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x42, 0x43, 0, 0xff18, FUNC(seawolf2_lamps_w)); + machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x40, 0x40, 0, 0xff18, write8_delegate(FUNC(astrocde_state::seawolf2_sound_1_w),state)); + machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x41, 0x41, 0, 0xff18, write8_delegate(FUNC(astrocde_state::seawolf2_sound_2_w),state)); + machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x42, 0x43, 0, 0xff18, write8_delegate(FUNC(astrocde_state::seawolf2_lamps_w),state)); } @@ -1761,8 +1751,8 @@ static DRIVER_INIT( ebases ) { astrocde_state *state = machine.driver_data<astrocde_state>(); state->m_video_config = AC_SOUND_PRESENT; - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x20, 0x20, 0, 0xff07, FUNC(ebases_coin_w)); - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x28, 0x28, 0, 0xff07, FUNC(ebases_trackball_select_w)); + machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x20, 0x20, 0, 0xff07, write8_delegate(FUNC(astrocde_state::ebases_coin_w),state)); + machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x28, 0x28, 0, 0xff07, write8_delegate(FUNC(astrocde_state::ebases_trackball_select_w),state)); } @@ -1770,7 +1760,7 @@ static DRIVER_INIT( spacezap ) { astrocde_state *state = machine.driver_data<astrocde_state>(); state->m_video_config = AC_SOUND_PRESENT | AC_MONITOR_BW; - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x13, 0x13, 0x03ff, 0xff00, FUNC(spacezap_io_r)); + machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x13, 0x13, 0x03ff, 0xff00, read8_delegate(FUNC(astrocde_state::spacezap_io_r),state)); } @@ -1778,7 +1768,7 @@ static DRIVER_INIT( wow ) { astrocde_state *state = machine.driver_data<astrocde_state>(); state->m_video_config = AC_SOUND_PRESENT | AC_LIGHTPEN_INTS | AC_STARS; - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x15, 0x15, 0x0fff, 0xff00, FUNC(wow_io_r)); + machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x15, 0x15, 0x0fff, 0xff00, read8_delegate(FUNC(astrocde_state::wow_io_r),state)); machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x17, 0x17, 0xffff, 0xff00, FUNC(wow_speech_r)); } @@ -1787,8 +1777,8 @@ static DRIVER_INIT( gorf ) { astrocde_state *state = machine.driver_data<astrocde_state>(); state->m_video_config = AC_SOUND_PRESENT | AC_LIGHTPEN_INTS | AC_STARS; - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x15, 0x15, 0x0fff, 0xff00, FUNC(gorf_io_1_r)); - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x16, 0x16, 0x0fff, 0xff00, FUNC(gorf_io_2_r)); + machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x15, 0x15, 0x0fff, 0xff00, read8_delegate(FUNC(astrocde_state::gorf_io_1_r),state)); + machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x16, 0x16, 0x0fff, 0xff00, read8_delegate(FUNC(astrocde_state::gorf_io_2_r),state)); machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x17, 0x17, 0xffff, 0xff00, FUNC(gorf_speech_r)); } @@ -1797,7 +1787,7 @@ static DRIVER_INIT( robby ) { astrocde_state *state = machine.driver_data<astrocde_state>(); state->m_video_config = AC_SOUND_PRESENT; - machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x15, 0x15, 0x0fff, 0xff00, FUNC(robby_io_r)); + machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x15, 0x15, 0x0fff, 0xff00, read8_delegate(FUNC(astrocde_state::robby_io_r),state)); } @@ -1807,11 +1797,11 @@ static DRIVER_INIT( profpac ) address_space *iospace = machine.device("maincpu")->memory().space(AS_IO); state->m_video_config = AC_SOUND_PRESENT; - iospace->install_legacy_read_handler(0x14, 0x14, 0x0fff, 0xff00, FUNC(profpac_io_1_r)); - iospace->install_legacy_read_handler(0x15, 0x15, 0x77ff, 0xff00, FUNC(profpac_io_2_r)); + iospace->install_read_handler(0x14, 0x14, 0x0fff, 0xff00, read8_delegate(FUNC(astrocde_state::profpac_io_1_r),state)); + iospace->install_read_handler(0x15, 0x15, 0x77ff, 0xff00, read8_delegate(FUNC(astrocde_state::profpac_io_2_r),state)); /* reset banking */ - profpac_banksw_w(iospace, 0, 0); + state->profpac_banksw_w(*iospace, 0, 0); machine.save().register_postload(save_prepost_delegate(FUNC(profbank_banksw_restore), &machine)); } @@ -1822,13 +1812,13 @@ static DRIVER_INIT( demndrgn ) address_space *iospace = machine.device("maincpu")->memory().space(AS_IO); state->m_video_config = 0x00; - iospace->install_legacy_read_handler(0x14, 0x14, 0x1fff, 0xff00, FUNC(demndrgn_io_r)); + iospace->install_read_handler(0x14, 0x14, 0x1fff, 0xff00, read8_delegate(FUNC(astrocde_state::demndrgn_io_r),state)); iospace->install_read_port(0x1c, 0x1c, 0x0000, 0xff00, "FIREX"); iospace->install_read_port(0x1d, 0x1d, 0x0000, 0xff00, "FIREY"); - iospace->install_legacy_write_handler(0x97, 0x97, 0x0000, 0xff00, FUNC(demndrgn_sound_w)); + iospace->install_write_handler(0x97, 0x97, 0x0000, 0xff00, write8_delegate(FUNC(astrocde_state::demndrgn_sound_w),state)); /* reset banking */ - profpac_banksw_w(iospace, 0, 0); + state->profpac_banksw_w(*iospace, 0, 0); machine.save().register_postload(save_prepost_delegate(FUNC(profbank_banksw_restore), &machine)); } @@ -1844,13 +1834,13 @@ static DRIVER_INIT( tenpindx ) iospace->install_read_port(0x62, 0x62, 0x0000, 0xff00, "P62"); iospace->install_read_port(0x63, 0x63, 0x0000, 0xff00, "P63"); iospace->install_read_port(0x64, 0x64, 0x0000, 0xff00, "P64"); - iospace->install_legacy_write_handler(0x65, 0x66, 0x0000, 0xff00, FUNC(tenpindx_lamp_w)); - iospace->install_legacy_write_handler(0x67, 0x67, 0x0000, 0xff00, FUNC(tenpindx_counter_w)); - iospace->install_legacy_write_handler(0x68, 0x68, 0x0000, 0xff00, FUNC(tenpindx_lights_w)); - iospace->install_legacy_write_handler(0x97, 0x97, 0x0000, 0xff00, FUNC(tenpindx_sound_w)); + iospace->install_write_handler(0x65, 0x66, 0x0000, 0xff00, write8_delegate(FUNC(astrocde_state::tenpindx_lamp_w),state)); + iospace->install_write_handler(0x67, 0x67, 0x0000, 0xff00, write8_delegate(FUNC(astrocde_state::tenpindx_counter_w),state)); + iospace->install_write_handler(0x68, 0x68, 0x0000, 0xff00, write8_delegate(FUNC(astrocde_state::tenpindx_lights_w),state)); + iospace->install_write_handler(0x97, 0x97, 0x0000, 0xff00, write8_delegate(FUNC(astrocde_state::tenpindx_sound_w),state)); /* reset banking */ - profpac_banksw_w(iospace, 0, 0); + state->profpac_banksw_w(*iospace, 0, 0); machine.save().register_postload(save_prepost_delegate(FUNC(profbank_banksw_restore), &machine)); } |