diff options
Diffstat (limited to 'src/mame/machine/balsente.c')
-rw-r--r-- | src/mame/machine/balsente.c | 130 |
1 files changed, 64 insertions, 66 deletions
diff --git a/src/mame/machine/balsente.c b/src/mame/machine/balsente.c index 60e4506afbf..3fa53271e3f 100644 --- a/src/mame/machine/balsente.c +++ b/src/mame/machine/balsente.c @@ -75,112 +75,110 @@ TIMER_DEVICE_CALLBACK( balsente_interrupt_timer ) } -MACHINE_START( balsente ) +void balsente_state::machine_start() { - balsente_state *state = machine.driver_data<balsente_state>(); int i; - state->m_cem_device[0] = state->m_cem1; - state->m_cem_device[1] = state->m_cem2; - state->m_cem_device[2] = state->m_cem3; - state->m_cem_device[3] = state->m_cem4; - state->m_cem_device[4] = state->m_cem5; - state->m_cem_device[5] = state->m_cem6; + m_cem_device[0] = m_cem1; + m_cem_device[1] = m_cem2; + m_cem_device[2] = m_cem3; + m_cem_device[3] = m_cem4; + m_cem_device[4] = m_cem5; + m_cem_device[5] = m_cem6; /* create the polynomial tables */ - poly17_init(machine); + poly17_init(machine()); /* register for saving */ for (i = 0; i < 3; i++) { - state_save_register_item(machine, "8253counter", NULL, i, state->m_counter[i].timer_active); - state_save_register_item(machine, "8253counter", NULL, i, state->m_counter[i].initial); - state_save_register_item(machine, "8253counter", NULL, i, state->m_counter[i].count); - state_save_register_item(machine, "8253counter", NULL, i, state->m_counter[i].gate); - state_save_register_item(machine, "8253counter", NULL, i, state->m_counter[i].out); - state_save_register_item(machine, "8253counter", NULL, i, state->m_counter[i].mode); - state_save_register_item(machine, "8253counter", NULL, i, state->m_counter[i].readbyte); - state_save_register_item(machine, "8253counter", NULL, i, state->m_counter[i].writebyte); + state_save_register_item(machine(), "8253counter", NULL, i, m_counter[i].timer_active); + state_save_register_item(machine(), "8253counter", NULL, i, m_counter[i].initial); + state_save_register_item(machine(), "8253counter", NULL, i, m_counter[i].count); + state_save_register_item(machine(), "8253counter", NULL, i, m_counter[i].gate); + state_save_register_item(machine(), "8253counter", NULL, i, m_counter[i].out); + state_save_register_item(machine(), "8253counter", NULL, i, m_counter[i].mode); + state_save_register_item(machine(), "8253counter", NULL, i, m_counter[i].readbyte); + state_save_register_item(machine(), "8253counter", NULL, i, m_counter[i].writebyte); } - state->save_item(NAME(state->m_counter_control)); - state->save_item(NAME(state->m_counter_0_ff)); - state->save_item(NAME(state->m_counter_0_timer_active)); + save_item(NAME(m_counter_control)); + save_item(NAME(m_counter_0_ff)); + save_item(NAME(m_counter_0_timer_active)); - state->save_item(NAME(state->m_analog_input_data)); - state->save_item(NAME(state->m_adc_value)); + save_item(NAME(m_analog_input_data)); + save_item(NAME(m_adc_value)); - state->save_item(NAME(state->m_dac_value)); - state->save_item(NAME(state->m_dac_register)); - state->save_item(NAME(state->m_chip_select)); + save_item(NAME(m_dac_value)); + save_item(NAME(m_dac_register)); + save_item(NAME(m_chip_select)); - state->save_item(NAME(state->m_m6850_status)); - state->save_item(NAME(state->m_m6850_control)); - state->save_item(NAME(state->m_m6850_input)); - state->save_item(NAME(state->m_m6850_output)); - state->save_item(NAME(state->m_m6850_data_ready)); + save_item(NAME(m_m6850_status)); + save_item(NAME(m_m6850_control)); + save_item(NAME(m_m6850_input)); + save_item(NAME(m_m6850_output)); + save_item(NAME(m_m6850_data_ready)); - state->save_item(NAME(state->m_m6850_sound_status)); - state->save_item(NAME(state->m_m6850_sound_control)); - state->save_item(NAME(state->m_m6850_sound_input)); - state->save_item(NAME(state->m_m6850_sound_output)); + save_item(NAME(m_m6850_sound_status)); + save_item(NAME(m_m6850_sound_control)); + save_item(NAME(m_m6850_sound_input)); + save_item(NAME(m_m6850_sound_output)); - state->save_item(NAME(state->m_noise_position)); + save_item(NAME(m_noise_position)); - state->save_item(NAME(state->m_nstocker_bits)); - state->save_item(NAME(state->m_spiker_expand_color)); - state->save_item(NAME(state->m_spiker_expand_bgcolor)); - state->save_item(NAME(state->m_spiker_expand_bits)); - state->save_item(NAME(state->m_grudge_steering_result)); - state->save_item(NAME(state->m_grudge_last_steering)); + save_item(NAME(m_nstocker_bits)); + save_item(NAME(m_spiker_expand_color)); + save_item(NAME(m_spiker_expand_bgcolor)); + save_item(NAME(m_spiker_expand_bits)); + save_item(NAME(m_grudge_steering_result)); + save_item(NAME(m_grudge_last_steering)); } -MACHINE_RESET( balsente ) +void balsente_state::machine_reset() { - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); - balsente_state *state = machine.driver_data<balsente_state>(); + address_space *space = machine().device("maincpu")->memory().space(AS_PROGRAM); int numbanks; /* reset counters; counter 2's gate is tied high */ - memset(state->m_counter, 0, sizeof(state->m_counter)); - state->m_counter[1].timer = machine.device<timer_device>("8253_1_timer"); - state->m_counter[2].timer = machine.device<timer_device>("8253_2_timer"); - state->m_counter[2].gate = 1; + memset(m_counter, 0, sizeof(m_counter)); + m_counter[1].timer = machine().device<timer_device>("8253_1_timer"); + m_counter[2].timer = machine().device<timer_device>("8253_2_timer"); + m_counter[2].gate = 1; /* reset the manual counter 0 clock */ - state->m_counter_control = 0x00; - state->m_counter_0_ff = 0; - state->m_counter_0_timer_active = 0; + m_counter_control = 0x00; + m_counter_0_ff = 0; + m_counter_0_timer_active = 0; /* reset the ADC states */ - state->m_adc_value = 0; + m_adc_value = 0; /* reset the CEM3394 I/O states */ - state->m_dac_value = 0; - state->m_dac_register = 0; - state->m_chip_select = 0x3f; + m_dac_value = 0; + m_dac_register = 0; + m_chip_select = 0x3f; /* reset game-specific states */ - state->m_grudge_steering_result = 0; + m_grudge_steering_result = 0; /* reset the 6850 chips */ - state->balsente_m6850_w(*space, 0, 3); - state->balsente_m6850_sound_w(*space, 0, 3); + balsente_m6850_w(*space, 0, 3); + balsente_m6850_sound_w(*space, 0, 3); /* reset the noise generator */ - memset(state->m_noise_position, 0, sizeof(state->m_noise_position)); + memset(m_noise_position, 0, sizeof(m_noise_position)); /* point the banks to bank 0 */ - numbanks = (state->memregion("maincpu")->bytes() > 0x40000) ? 16 : 8; - state->membank("bank1")->configure_entries(0, numbanks, &state->memregion("maincpu")->base()[0x10000], 0x6000); - state->membank("bank2")->configure_entries(0, numbanks, &state->memregion("maincpu")->base()[0x12000], 0x6000); - state->membank("bank1")->set_entry(0); - state->membank("bank2")->set_entry(0); - machine.device("maincpu")->reset(); + numbanks = (memregion("maincpu")->bytes() > 0x40000) ? 16 : 8; + membank("bank1")->configure_entries(0, numbanks, &memregion("maincpu")->base()[0x10000], 0x6000); + membank("bank2")->configure_entries(0, numbanks, &memregion("maincpu")->base()[0x12000], 0x6000); + membank("bank1")->set_entry(0); + membank("bank2")->set_entry(0); + machine().device("maincpu")->reset(); /* start a timer to generate interrupts */ - state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); } |