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); }
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); }
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); }
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; } }
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; } }
/*-------------------------------------------------------------------------*/ void compis_irq_set(UINT8 irq) { cpunum_set_input_line_vector(0, 0, irq); cpunum_set_input_line(0, 0, HOLD_LINE); }
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); }
void looping_spcint(int state) { cpunum_set_input_line_vector(1, 0, 6); cpunum_set_input_line(1, 0, state); }