Exemple #1
0
static TIMER_CALLBACK(dave_1khz_callback)
{
	device_t *device = (device_t *)ptr;
	dave_t *dave = get_token(device);

	/* time over - want int */
	dave->one_khz_state ^= 0x0ffffffff;

	/* lo-high transition causes int */
	if (dave->one_khz_state!=0)
	{
		dave->int_irq |=(1<<2);
	}


	/* update fifty Hz counter */
	dave->fifty_hz_count--;

	if (dave->fifty_hz_count==0)
	{
		/* these two lines are temp here */
		dave->nick_virq ^= 0x0ffffffff;
		dave_set_external_int_state(device, DAVE_INT1_ID, dave->nick_virq);


		dave->fifty_hz_count = DAVE_FIFTY_HZ_COUNTER_RELOAD;
		dave->fifty_hz_state^=0x0ffffffff;

		if (dave->fifty_hz_state!=0)
		{
			dave->int_irq |= (1<<1);
		}
	}

	dave->one_hz_count--;

	if (dave->one_hz_count==0)
	{
		/* reload counter */
		dave->one_hz_count = DAVE_ONE_HZ_COUNTER_RELOAD;

		/* change state */
		dave->int_input ^= (1<<2);

		if (dave->int_input & (1<<2))
		{
			/* transition from 0->1 */
			/* int requested */
			dave->int_latch |=(1<<3);
		}
	}

	dave_refresh_selectable_int(device);
}
Exemple #2
0
static void dave_1khz_callback(int dummy)
{
//	logerror("1khz int\n");

	/* time over - want int */
	dave.one_khz_state^=0x0ffffffff;

	/* lo-high transition causes int */
	if (dave.one_khz_state!=0)
	{
		dave.int_irq |=(1<<2);
	}


	/* update fifty hz counter */
	dave.fifty_hz_count--;

	if (dave.fifty_hz_count==0)
	{
		/* these two lines are temp here */
		nick_virq^=0x0ffffffff;
		Dave_SetExternalIntState(DAVE_INT1_ID, nick_virq);


		dave.fifty_hz_count = DAVE_FIFTY_HZ_COUNTER_RELOAD;
		dave.fifty_hz_state^=0x0ffffffff;
	
		if (dave.fifty_hz_state!=0)
		{
			dave.int_irq |= (1<<1);
		}
	}

	dave.one_hz_count--;

	if (dave.one_hz_count==0)
	{
		/* reload counter */
		dave.one_hz_count = DAVE_ONE_HZ_COUNTER_RELOAD;
	
		/* change state */
		dave.int_input ^= (1<<2);

		if (dave.int_input & (1<<2))
		{
			/* transition from 0->1 */
			/* int requested */
			dave.int_latch |=(1<<3);
		}
	}

	dave_refresh_selectable_int();
}