static void delayed_sound_2( running_machine &machine, int data )
{
	n8080_state *state = machine.driver_data<n8080_state>();

	state->m_curr_sound_pins &= ~(
		(1 << 0x8) |
		(1 << 0x9) |
		(1 << 0xa) |
		(1 << 0xb) |
		(1 << 0x2) |
		(1 << 0xc));

	if (~data & 0x01) state->m_curr_sound_pins |= 1 << 0x8;
	if (~data & 0x02) state->m_curr_sound_pins |= 1 << 0x9;
	if (~data & 0x04) state->m_curr_sound_pins |= 1 << 0xa;
	if (~data & 0x08) state->m_curr_sound_pins |= 1 << 0xb;
	if (~data & 0x10) state->m_curr_sound_pins |= 1 << 0x2; /* pulse */
	if (~data & 0x20) state->m_curr_sound_pins |= 1 << 0xc;

	if (state->m_n8080_hardware == 1)
		state->flip_screen_set_no_update(data & 0x20);
	if (state->m_n8080_hardware == 3)
		state->m_helifire_flash = data & 0x20;

	sound_pins_changed(machine);
}
static void delayed_sound_1( running_machine &machine, int data )
{
	n8080_state *state = machine.driver_data<n8080_state>();

	state->m_curr_sound_pins &= ~(
		(1 << 0x7) |
		(1 << 0x5) |
		(1 << 0x6) |
		(1 << 0x3) |
		(1 << 0x4) |
		(1 << 0x1));

	if (~data & 0x01) state->m_curr_sound_pins |= 1 << 0x7;
	if (~data & 0x02) state->m_curr_sound_pins |= 1 << 0x5; /* pulse */
	if (~data & 0x04) state->m_curr_sound_pins |= 1 << 0x6; /* pulse */
	if (~data & 0x08) state->m_curr_sound_pins |= 1 << 0x3; /* pulse (except in Helifire) */
	if (~data & 0x10) state->m_curr_sound_pins |= 1 << 0x4; /* pulse (except in Helifire) */
	if (~data & 0x20) state->m_curr_sound_pins |= 1 << 0x1;

	if (state->m_n8080_hardware == 1)
	{
		if (data & ~state->m_prev_snd_data & 0x10)
		{
			spacefev_start_red_cannon(machine);
		}

		state->m_spacefev_red_screen = data & 0x08;
	}

	sound_pins_changed(machine);

	state->m_prev_snd_data = data;
}
Beispiel #3
0
void n8080_state::delayed_sound_1( int data )
{
	m_curr_sound_pins &= ~(
		(1 << 0x7) |
		(1 << 0x5) |
		(1 << 0x6) |
		(1 << 0x3) |
		(1 << 0x4) |
		(1 << 0x1));

	if (~data & 0x01) m_curr_sound_pins |= 1 << 0x7;
	if (~data & 0x02) m_curr_sound_pins |= 1 << 0x5; /* pulse */
	if (~data & 0x04) m_curr_sound_pins |= 1 << 0x6; /* pulse */
	if (~data & 0x08) m_curr_sound_pins |= 1 << 0x3; /* pulse (except in Helifire) */
	if (~data & 0x10) m_curr_sound_pins |= 1 << 0x4; /* pulse (except in Helifire) */
	if (~data & 0x20) m_curr_sound_pins |= 1 << 0x1;

	if (m_n8080_hardware == 1)
	{
		if (data & ~m_prev_snd_data & 0x10)
		{
			spacefev_start_red_cannon();
		}

		m_spacefev_red_screen = data & 0x08;
	}

	sound_pins_changed();

	m_prev_snd_data = data;
}
Beispiel #4
0
void n8080_state::delayed_sound_2( int data )
{
	m_curr_sound_pins &= ~(
		(1 << 0x8) |
		(1 << 0x9) |
		(1 << 0xa) |
		(1 << 0xb) |
		(1 << 0x2) |
		(1 << 0xc));

	if (~data & 0x01) m_curr_sound_pins |= 1 << 0x8;
	if (~data & 0x02) m_curr_sound_pins |= 1 << 0x9;
	if (~data & 0x04) m_curr_sound_pins |= 1 << 0xa;
	if (~data & 0x08) m_curr_sound_pins |= 1 << 0xb;
	if (~data & 0x10) m_curr_sound_pins |= 1 << 0x2; /* pulse */
	if (~data & 0x20) m_curr_sound_pins |= 1 << 0xc;

	if (m_n8080_hardware == 1)
		flip_screen_set(data & 0x20);
	if (m_n8080_hardware == 3)
		m_helifire_flash = data & 0x20;

	sound_pins_changed();
}