static MACHINE_RESET( super8 ) { /* reset PIO */ z80pio_init(0, &z80pio_intf); z80pio_reset(0); keyboard_scan(); /* enable ROM in base >0000, and re-enable RAM shortly thereafter */ memory_set_bankptr(1, memory_region(REGION_CPU1) + 0xC000); timer_set(TIME_IN_USEC(10), 0, reset_timer_callback); }
/* initialize pio emurator */ void z80pio_init (z80pio_interface *intf) { int i; memset (pios, 0, sizeof (pios)); for (i = 0; i < intf->num; i++) { pios[i].intr = intf->intr[i]; pios[i].rdyr[0] = intf->rdyA[i]; pios[i].rdyr[1] = intf->rdyB[i]; z80pio_reset (i); } }
void z80pio_init(int which, z80pio_interface *intf) { z80pio *pio = pios + which; assert(which < MAX_PIO); memset(pio, 0, sizeof(*pio)); pio->intr = intf->intr; pio->rdyr[0] = intf->rdyA; pio->rdyr[1] = intf->rdyB; z80pio_reset(which); state_save_register_item_array("z80pio", which, pio->vector); state_save_register_item_array("z80pio", which, pio->mode); state_save_register_item_array("z80pio", which, pio->enable); state_save_register_item_array("z80pio", which, pio->mask); state_save_register_item_array("z80pio", which, pio->dir); state_save_register_item_array("z80pio", which, pio->rdy); state_save_register_item_array("z80pio", which, pio->in); state_save_register_item_array("z80pio", which, pio->out); state_save_register_item_array("z80pio", which, pio->strobe); state_save_register_item_array("z80pio", which, pio->int_state); }
void z80pio_0_reset (void) { z80pio_reset (0); }