void devcb_write_base::reset(callback_type type) { // parent first devcb_base::reset(type); // local stuff m_writeline = write_line_delegate(); m_write8 = write8_delegate(); m_write16 = write16_delegate(); m_write32 = write32_delegate(); m_write64 = write64_delegate(); m_adapter = &devcb_write_base::write_unresolved_adapter; }
MACHINE_RESET_MEMBER(midxunit_state,midxunit) { int i; /* reset sound */ m_dcs->reset_w(1); m_dcs->reset_w(0); /* reset I/O shuffling */ for (i = 0; i < 16; i++) m_ioshuffle[i] = i % 8; m_dcs->set_io_callbacks(write_line_delegate(FUNC(midxunit_state::midxunit_dcs_output_full),this), write_line_delegate()); }
void amiga_state::machine_start() { // add callback for RESET instruction m_maincpu->set_reset_callback(write_line_delegate(FUNC(amiga_state::m68k_reset), this)); // set up chip RAM access memory_share *share = memshare("chip_ram"); if (share == nullptr) fatalerror("Unable to find Amiga chip RAM\n"); m_chip_ram.set(*share, 2); m_chip_ram_mask = (m_chip_ram.bytes() - 1) & ~1; // set up the timers m_irq_timer = timer_alloc(TIMER_AMIGA_IRQ); m_blitter_timer = timer_alloc(TIMER_AMIGA_BLITTER); m_serial_timer = timer_alloc(TIMER_SERIAL); // start the scanline timer timer_set(m_screen->time_until_pos(0), TIMER_SCANLINE); }
/* zerowing, fireshrk, outzone */ MACHINE_RESET_MEMBER(toaplan1_state,zerowing) { machine_reset(); m_maincpu->set_reset_callback(write_line_delegate(FUNC(toaplan1_state::reset_callback),this)); }
void dectalk_state::machine_reset() { /* hook the RESET line, which resets a slew of other components */ m_maincpu->set_reset_callback(write_line_delegate(FUNC(dectalk_state::dectalk_reset),this)); }
MACHINE_RESET_MEMBER(toaplan1_state,vimana) { MACHINE_RESET_CALL_MEMBER(toaplan1); m_maincpu->set_reset_callback(write_line_delegate(FUNC(toaplan1_state::toaplan1_reset_callback),this)); }
MACHINE_START_MEMBER(sat_console_state, saturn) { system_time systime; machine().base_datetime(systime); machine().device<scsp_device>("scsp")->set_ram_base(m_sound_ram); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x02400000, 0x027fffff, read32_delegate(FUNC(sat_console_state::saturn_null_ram_r),this), write32_delegate(FUNC(sat_console_state::saturn_null_ram_w),this)); m_slave->space(AS_PROGRAM).install_readwrite_handler(0x02400000, 0x027fffff, read32_delegate(FUNC(sat_console_state::saturn_null_ram_r),this), write32_delegate(FUNC(sat_console_state::saturn_null_ram_w),this)); m_maincpu->space(AS_PROGRAM).nop_readwrite(0x04000000, 0x047fffff); m_slave->space(AS_PROGRAM).nop_readwrite(0x04000000, 0x047fffff); m_nvram->set_base(m_backupram.get(), 0x8000); m_smpc_nv->set_base(&m_smpc.SMEM, 4); if (m_exp) { switch (m_exp->get_cart_type()) { case 0x21: // Battery RAM cart case 0x22: case 0x23: case 0x24: m_maincpu->space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp)); m_maincpu->space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp)); m_slave->space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp)); m_slave->space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp)); m_maincpu->space(AS_PROGRAM).install_read_handler(0x24000000, 0x247fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp)); m_maincpu->space(AS_PROGRAM).install_write_handler(0x24000000, 0x247fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp)); m_slave->space(AS_PROGRAM).install_read_handler(0x24000000, 0x247fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp)); m_slave->space(AS_PROGRAM).install_write_handler(0x24000000, 0x247fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp)); break; case 0x5a: // Data RAM cart case 0x5c: m_maincpu->space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp)); m_maincpu->space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp)); m_maincpu->space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp)); m_maincpu->space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp)); m_slave->space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp)); m_slave->space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp)); m_slave->space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp)); m_slave->space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp)); m_maincpu->space(AS_PROGRAM).install_read_handler(0x22400000, 0x225fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp)); m_maincpu->space(AS_PROGRAM).install_write_handler(0x22400000, 0x225fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp)); m_maincpu->space(AS_PROGRAM).install_read_handler(0x22600000, 0x227fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp)); m_maincpu->space(AS_PROGRAM).install_write_handler(0x22600000, 0x227fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp)); m_slave->space(AS_PROGRAM).install_read_handler(0x22400000, 0x225fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp)); m_slave->space(AS_PROGRAM).install_write_handler(0x22400000, 0x225fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp)); m_slave->space(AS_PROGRAM).install_read_handler(0x22600000, 0x227fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp)); m_slave->space(AS_PROGRAM).install_write_handler(0x22600000, 0x227fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp)); break; case 0xff: // ROM cart + mirror m_maincpu->space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp)); m_maincpu->space(AS_PROGRAM).install_read_handler(0x22000000, 0x223fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp)); m_slave->space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp)); m_slave->space(AS_PROGRAM).install_read_handler(0x22000000, 0x223fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp)); break; } } // save states save_pointer(NAME(m_scu_regs.get()), 0x100/4); save_pointer(NAME(m_scsp_regs.get()), 0x1000/2); save_item(NAME(m_NMI_reset)); save_item(NAME(m_en_68k)); save_item(NAME(m_smpc.IOSEL1)); save_item(NAME(m_smpc.IOSEL2)); save_item(NAME(m_smpc.EXLE1)); save_item(NAME(m_smpc.EXLE2)); save_item(NAME(m_smpc.PDR1)); save_item(NAME(m_smpc.PDR2)); // save_item(NAME(m_port_sel)); // save_item(NAME(mux_data)); save_item(NAME(m_scsp_last_line)); save_item(NAME(m_smpc.intback_stage)); save_item(NAME(m_smpc.pmode)); save_item(NAME(m_smpc.SR)); save_item(NAME(m_smpc.SMEM)); machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(sat_console_state::stvcd_exit), this)); m_smpc.rtc_data[0] = DectoBCD(systime.local_time.year /100); m_smpc.rtc_data[1] = DectoBCD(systime.local_time.year %100); m_smpc.rtc_data[2] = (systime.local_time.weekday << 4) | (systime.local_time.month+1); m_smpc.rtc_data[3] = DectoBCD(systime.local_time.mday); m_smpc.rtc_data[4] = DectoBCD(systime.local_time.hour); m_smpc.rtc_data[5] = DectoBCD(systime.local_time.minute); m_smpc.rtc_data[6] = DectoBCD(systime.local_time.second); m_stv_rtc_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sat_console_state::stv_rtc_increment),this)); m_audiocpu->set_reset_callback(write_line_delegate(FUNC(sat_console_state::m68k_reset_callback),this)); }