Example #1
0
static void setvector_callback(int param)
{
    static int irqvector;

    switch(param)
    {
    case VECTOR_INIT:
        irqvector = 0;
        break;
    case YM2151_ASSERT:
        irqvector |= 0x2;
        break;
    case YM2151_CLEAR:
        irqvector &= ~0x2;
        break;
    case V30_ASSERT:
        irqvector |= 0x1;
        break;
    case V30_CLEAR:
        irqvector &= ~0x1;
        break;
    }

    if (irqvector & 0x2)		/* YM2151 has precedence */
        cpunum_set_input_line_vector(1,0,0x18);
    else if (irqvector & 0x1)	/* V30 */
        cpunum_set_input_line_vector(1,0,0x19);

    if (irqvector == 0)	/* no IRQs pending */
        cpunum_set_input_line(1,0,CLEAR_LINE);
    else	/* IRQ pending */
        cpunum_set_input_line(1,0,ASSERT_LINE);
}
Example #2
0
ROM_END

static void mk1_interrupt(UINT16 addr, bool level)
{
    cpunum_set_input_line_vector(0, 0, addr);
    cpunum_set_input_line(0, F8_INT_INTR, level);
}
Example #3
0
static void setvector_callback(int param)
{
	switch(param)
	{
		case VECTOR_INIT:
			irqvector = 0xff;
			break;

		case YM2151_ASSERT:
			irqvector &= 0xef;
			break;

		case YM2151_CLEAR:
			irqvector |= 0x10;
			break;

		case Z80_ASSERT:
			irqvector &= 0xdf;
			break;

		case Z80_CLEAR:
			irqvector |= 0x20;
			break;
	}

	if (irqvector == 0)
		logerror("You didn't call m72_init_sound()\n");

	cpunum_set_input_line_vector(1,0,irqvector);
	if (irqvector == 0xff)	/* no IRQs pending */
		cpunum_set_input_line(1,0,CLEAR_LINE);
	else	/* IRQ pending */
		cpunum_set_input_line(1,0,ASSERT_LINE);
}
Example #4
0
static void timer_callback(int param)
{
	/* Only cause IRQ if the mask is set to allow it */
	if (m68681_imr&8) {
		cpunum_set_input_line_vector(1, 6, vector_reg);
		cpunum_set_input_line(1, 6, ASSERT_LINE);
		imr_status|=0x8;
	}
}
Example #5
0
static TIMER_CALLBACK( taito_en_timer_callback )
{
	/* Only cause IRQ if the mask is set to allow it */
	if (m68681_imr&8) {
		cpunum_set_input_line_vector(1, 6, vector_reg);
		cpunum_set_input_line(machine, 1, 6, ASSERT_LINE);
		imr_status|=0x8;
	}
}
Example #6
0
/*-------------------------------------------------------------------------*/
void compis_irq_set(UINT8 irq)
{
	cpunum_set_input_line_vector(0, 0, irq);
	cpunum_set_input_line(0, 0, HOLD_LINE);
}
Example #7
0
static MACHINE_RESET(coleco)
{
    cpunum_set_input_line_vector(0, 0, 0xff);
	memset(&memory_region(REGION_CPU1)[0x6000], 0xff, 0x400);	// initialize RAM
    timer_pulse(TIME_IN_MSEC(20), 0, paddle_callback);
}
Example #8
0
void looping_spcint(int state)
{
	cpunum_set_input_line_vector(1, 0, 6);
	cpunum_set_input_line(1, 0, state);
}