Beispiel #1
0
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);
	}
}
Beispiel #2
0
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;
	}
}