void wow_interrupt_enable_w(int offset, int data) { InterruptFlag = data; if (data & 0x01) /* Disable Interrupts? */ interrupt_enable_w(0,0); else interrupt_enable_w(0,1); /* Gorf Special interrupt */ if (data & 0x10) { GorfDelay =(CurrentScan + 7) & 0xFF; /* Gorf Special *MUST* occur before next scanline interrupt */ if ((NextScanInt > CurrentScan) && (NextScanInt < GorfDelay)) { GorfDelay = NextScanInt - 1; } #ifdef MAME_DEBUG if (errorlog) fprintf(errorlog,"Gorf Delay set to %02x\n",GorfDelay); #endif } #ifdef MAME_DEBUG if (errorlog) fprintf(errorlog,"Interrupt Flag set to %02x\n",InterruptFlag); #endif }
static WRITE16_HANDLER( xmen_18fa00_w ) { if(ACCESSING_LSB) { /* bit 2 is interrupt enable */ interrupt_enable_w(0,data & 0x04); } }
static WRITE8_HANDLER(data_410_w) { coin_counter_w(0,data&2); coin_counter_w(1,data&4); interrupt_enable_w(0,data&0x10); flip_screen_set(data&0x20); }
static WRITE16_HANDLER( xmen_18fa00_w ) { if(ACCESSING_BITS_0_7) { /* bit 2 is interrupt enable */ interrupt_enable_w(space, 0, data & 0x04); } }
static WRITE8_DEVICE_HANDLER( nmi_w ) { const address_space *space = cputag_get_address_space(device->machine, "cpu", ADDRESS_SPACE_PROGRAM); /* bit 4 - play/raise button lamp, lamp 9 in selection test mode */ set_led_status(8,data & 0x10); /* bit 6 enables NMI */ interrupt_enable_w(space, 0, data & 0x40); }
static WRITE8_HANDLER( sound_w ) { /* bit 3 used but unknown */ /* bit 6 enables NMI */ interrupt_enable_w(0,data & 0x40); /* bit 7 goes directly to the sound amplifier */ DAC_data_w(0,((data & 0x80) >> 7) * 255); /* logerror("%04x: sound_w %02x\n",activecpu_get_pc(),data); */ /* ui_popup("%02x",data); */ }
static WRITE8_DEVICE_HANDLER( sound_w ) { const address_space *space = cputag_get_address_space(device->machine, "cpu", ADDRESS_SPACE_PROGRAM); /* bit 3 - coin lockout, lamp10 in poker / lamp6 in trivia test modes */ coin_lockout_global_w(~data & 0x08); set_led_status(9,data & 0x08); /* bit 5 - ticket out in trivia games */ ticket_dispenser_w(space, 0, (data & 0x20)<< 2); /* bit 6 enables NMI */ interrupt_enable_w(space, 0, data & 0x40); /* bit 7 goes directly to the sound amplifier */ dac_data_w(devtag_get_device(device->machine, "dac"), ((data & 0x80) >> 7) * 255); }
static void friskyt_portB_w(int offset,int data) { //if (errorlog) fprintf(errorlog,"PC %04x: 8910 port B = %02x\n",cpu_get_pc(),data); /* bit 0 is IRQ enable */ interrupt_enable_w(0,data & 1); /* bit 1 flips screen */ /* bit 2 resets the microcontroller */ if (((portb & 4) == 0) && (data & 4)) { /* reset and start the protection mcu */ cpu_set_reset_line(1, PULSE_LINE); cpu_set_halt_line(1, CLEAR_LINE); } /* other bits unknown */ portb = data; }
static WRITE8_HANDLER( friskyt_portB_w ) { //logerror("PC %04x: 8910 port B = %02x\n",activecpu_get_pc(),data); /* bit 0 is IRQ enable */ interrupt_enable_w(0,data & 1); /* bit 1 flips screen */ /* bit 2 resets the microcontroller */ if (((portb & 4) == 0) && (data & 4)) { /* reset and start the protection mcu */ cpunum_set_input_line(1, INPUT_LINE_RESET, PULSE_LINE); cpunum_set_input_line(1, INPUT_LINE_HALT, CLEAR_LINE); } /* other bits unknown */ portb = data; }
static WRITE8_HANDLER( espial_master_interrupt_enable_w ) { interrupt_enable_w(space, offset, ~data & 1); }
void firetrap_nmi_disable_w(int offset,int data) { interrupt_enable_w(offset,~data & 1); }
static WRITE8_HANDLER( irq_enable_w) { interrupt_enable_w( 0, (~data) & 1 ); }
void crbaloon_06_w(int offset,int data) { val06 = data; interrupt_enable_w(offset,data & 1); }
/* Enable hardware interrupt */ void slapfight_port_07_w(int offset, int data) { interrupt_enable_w(0,1); }