void z80ctc_init(int which, z80ctc_interface *intf) { z80ctc *ctc = &ctcs[which]; assert(which < MAX_CTC); memset(ctc, 0, sizeof(*ctc)); ctc->clock = intf->baseclock; ctc->invclock16 = 16.0 / (double)intf->baseclock; ctc->invclock256 = 256.0 / (double)intf->baseclock; ctc->notimer = intf->notimer; ctc->intr = intf->intr; ctc->timer[0] = timer_alloc(timercallback); ctc->timer[1] = timer_alloc(timercallback); ctc->timer[2] = timer_alloc(timercallback); ctc->timer[3] = timer_alloc(timercallback); ctc->zc[0] = intf->zc0; ctc->zc[1] = intf->zc1; ctc->zc[2] = intf->zc2; ctc->zc[3] = 0; z80ctc_reset(which); state_save_register_item("z80ctc", which, ctc->vector); state_save_register_item_array("z80ctc", which, ctc->mode); state_save_register_item_array("z80ctc", which, ctc->tconst); state_save_register_item_array("z80ctc", which, ctc->down); state_save_register_item_array("z80ctc", which, ctc->extclk); state_save_register_item_array("z80ctc", which, ctc->int_state); }
static void kc_disc_interface_init(void) { timer_set(TIME_NOW, 0, kc85_disk_reset_timer_callback); nec765_init(&kc_fdc_interface,NEC765A); /* reset ctc */ z80ctc_reset(1); /* hold cpu at reset */ cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); }
void z80ctc_init (z80ctc_interface *intf) { int i; memset (ctcs, 0, sizeof (ctcs)); for (i = 0; i < intf->num; i++) { ctcs[i].clock = intf->baseclock[i]; ctcs[i].invclock16 = 16.0 / (double)intf->baseclock[i]; ctcs[i].invclock256 = 256.0 / (double)intf->baseclock[i]; ctcs[i].notimer = intf->notimer[i]; ctcs[i].intr = intf->intr[i]; ctcs[i].zc[0] = intf->zc0[i]; ctcs[i].zc[1] = intf->zc1[i]; ctcs[i].zc[2] = intf->zc2[i]; ctcs[i].zc[3] = 0; z80ctc_reset (i); } }
void z80ctc_1_reset (void) { z80ctc_reset (1); }
void z80ctc_0_reset (void) { z80ctc_reset (0); }