static WRITE8_HANDLER( pandoras_int_control_w ){ /* byte 0: irq enable (CPU A) byte 2: coin counter 1 byte 3: coin counter 2 byte 5: flip screen byte 6: irq enable (CPU B) byte 7: NMI to CPU B other bytes unknown */ switch (offset){ case 0x00: if (!data) cpunum_set_input_line(0, M6809_IRQ_LINE, CLEAR_LINE); irq_enable_a = data; break; case 0x02: coin_counter_w(0,data & 0x01); break; case 0x03: coin_counter_w(1,data & 0x01); break; case 0x05: pandoras_flipscreen_w(0, data); break; case 0x06: if (!data) cpunum_set_input_line(1, M6809_IRQ_LINE, CLEAR_LINE); irq_enable_b = data; break; case 0x07: cpunum_set_input_line(1,INPUT_LINE_NMI,PULSE_LINE); break; default: logerror("%04x: (irq_ctrl) write %02x to %02x\n",activecpu_get_pc(), data, offset); } }
static WRITE8_HANDLER( pandoras_int_control_w ) { /* byte 0: irq enable (CPU A) byte 2: coin counter 1 byte 3: coin counter 2 byte 5: flip screen byte 6: irq enable (CPU B) byte 7: NMI to CPU B other bytes unknown */ pandoras_state *state = space->machine().driver_data<pandoras_state>(); switch (offset) { case 0x00: if (!data) device_set_input_line(state->m_maincpu, M6809_IRQ_LINE, CLEAR_LINE); state->m_irq_enable_a = data; break; case 0x02: coin_counter_w(space->machine(), 0,data & 0x01); break; case 0x03: coin_counter_w(space->machine(), 1,data & 0x01); break; case 0x05: pandoras_flipscreen_w(space, 0, data); break; case 0x06: if (!data) device_set_input_line(state->m_subcpu, M6809_IRQ_LINE, CLEAR_LINE); state->m_irq_enable_b = data; break; case 0x07: device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, PULSE_LINE); break; default: logerror("%04x: (irq_ctrl) write %02x to %02x\n",cpu_get_pc(&space->device()), data, offset); break; } }