示例#1
0
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);
}
示例#2
0
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);
}
示例#3
0
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);
	}
}
示例#4
0
void z80ctc_1_reset (void) { z80ctc_reset (1); }
示例#5
0
void z80ctc_0_reset (void) { z80ctc_reset (0); }