static INTERRUPT_GEN( espial_master_interrupt ) { if (cpu_getiloops(device) == 0) nmi_line_pulse(device); else irq0_line_hold(device); }
static INTERRUPT_GEN( zodiac_sound_nmi_gen ) { zodiack_state *state = device->machine->driver_data<zodiack_state>(); if (state->sound_nmi_enabled) nmi_line_pulse(device); }
static INTERRUPT_GEN( mystston_interrupt ) { int scanline = 271 - cpu_getiloops(); static int coin; /* Inserting a coin triggers an NMI */ if ((readinputport(0) & 0xc0) != 0xc0) { if (coin == 0) { coin = 1; nmi_line_pulse(); return; } } else coin = 0; /* VBLK is lowered on scanline 8 */ if (scanline == 8) VBLK = 0; /* VBLK is raised on scanline 248 */ if (scanline == 248) VBLK = 0x80; /* IMS is triggered every time VLOC line 3 is raised, as VLOC counter starts at 16, effectively every 16 scanlines */ if ((scanline % 16) == 0) cpunum_set_input_line(0, 0, ASSERT_LINE); }
static INTERRUPT_GEN( mouser_nmi_interrupt ) { mouser_state *state = (mouser_state *)device->machine->driver_data; if (BIT(state->nmi_enable, 0)) nmi_line_pulse(device); }
static INTERRUPT_GEN( mouser_nmi_interrupt ) { mouser_state *state = device->machine().driver_data<mouser_state>(); if (BIT(state->m_nmi_enable, 0)) nmi_line_pulse(device); }
ADDRESS_MAP_END static INTERRUPT_GEN( cheekyms_interrupt ) { if (readinputport(2) & 1) /* Coin */ nmi_line_pulse(); else irq0_line_hold(); }
static INTERRUPT_GEN( ssozumo_interrupt ) { static int coin; if ((readinputport(0) & 0xc0) != 0xc0) { if (coin == 0) { coin = 1; nmi_line_pulse(); return; } } else coin = 0; irq0_line_hold(); }
static INTERRUPT_GEN( dv_interrupt ) { if (nmi_enable) nmi_line_pulse(); }