Exemple #1
0
static WRITE8_HANDLER( cbasebal_coinctrl_w )
{
	coin_lockout_w(0,~data & 0x04);
	coin_lockout_w(1,~data & 0x08);
	coin_counter_w(0,data & 0x01);
	coin_counter_w(1,data & 0x02);
}
Exemple #2
0
static WRITE8_DEVICE_HANDLER( starshp1_audio_w )
{
	starshp1_state *state = device->machine().driver_data<starshp1_state>();
	data &= 1;

	switch (offset & 7)
	{
	case 0:
		state->m_attract = data;
		discrete_sound_w(device, STARSHP1_ATTRACT, data);
		break;
	case 1:
		state->m_phasor = data;
		discrete_sound_w(device, STARSHP1_PHASOR_ON, data);
		break;
	case 2:
		discrete_sound_w(device, STARSHP1_KICKER, data);
		break;
	case 3:
		discrete_sound_w(device, STARSHP1_SL1, data);
		break;
	case 4:
		discrete_sound_w(device, STARSHP1_SL2, data);
		break;
	case 5:
		discrete_sound_w(device, STARSHP1_MOLVL, data);
		break;
	case 6:
		discrete_sound_w(device, STARSHP1_NOISE_FREQ, data);
		break;
	}

	coin_lockout_w(device->machine(), 0, !state->m_attract);
	coin_lockout_w(device->machine(), 1, !state->m_attract);
}
static WRITE8_HANDLER( firetrk_output_w )
{
	firetrk_state *state = space->machine().driver_data<firetrk_state>();
	device_t *discrete = space->machine().device("discrete");

	/* BIT0 => START1 LAMP */
	set_led_status(space->machine(), 0, !(data & 0x01));

	/* BIT1 => START2 LAMP */
	set_led_status(space->machine(), 1, !(data & 0x02));

	/* BIT2 => FLASH       */
	state->m_flash = data & 0x04;

	/* BIT3 => TRACK LAMP  */
	set_led_status(space->machine(), 3, !(data & 0x08));

	/* BIT4 => ATTRACT     */
	discrete_sound_w(discrete, FIRETRUCK_ATTRACT_EN, data & 0x10);
	coin_lockout_w(space->machine(), 0, !(data & 0x10));
	coin_lockout_w(space->machine(), 1, !(data & 0x10));

	/* BIT5 => START3 LAMP */
	set_led_status(space->machine(), 2, !(data & 0x20));

	/* BIT6 => UNUSED      */

	/* BIT7 => BELL OUT    */
	discrete_sound_w(discrete, FIRETRUCK_BELL_EN, data & 0x80);
}
Exemple #4
0
void twincobr_state::toaplan0_coin_dsp_w(address_space &space, int offset, int data)
{
	if (data > 1)
		LOG(("%s:Writing %08x to %08x.\n",machine().describe_context(),data,toaplan_port_type[m_toaplan_main_cpu] - offset));
	switch (data) {
		case 0x08: coin_counter_w(machine(), 0,0); break;
		case 0x09: coin_counter_w(machine(), 0,1); break;
		case 0x0a: coin_counter_w(machine(), 1,0); break;
		case 0x0b: coin_counter_w(machine(), 1,1); break;
		case 0x0c: coin_lockout_w(machine(), 0,1); break;
		case 0x0d: coin_lockout_w(machine(), 0,0); break;
		case 0x0e: coin_lockout_w(machine(), 1,1); break;
		case 0x0f: coin_lockout_w(machine(), 1,0); break;
		/****** The following apply to Flying Shark/Wardner only ******/
		case 0x00:  /* This means assert the INT line to the DSP */
					LOG(("Turning DSP on and main CPU off\n"));
					m_dsp->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
					m_dsp->set_input_line(0, ASSERT_LINE); /* TMS32010 INT */
					m_maincpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
					break;
		case 0x01:  /* This means inhibit the INT line to the DSP */
					LOG(("Turning DSP off\n"));
					m_dsp->set_input_line(0, CLEAR_LINE); /* TMS32010 INT */
					m_dsp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
					break;
	}
}
Exemple #5
0
static WRITE_HANDLER( exzisus_coincounter_w )
{
	coin_lockout_w(0,~data & 0x01);
	coin_lockout_w(1,~data & 0x02);
	coin_counter_w(0,data & 0x04);
	coin_counter_w(1,data & 0x08);
}
Exemple #6
0
static WRITE_HANDLER( starshp1_audio_w )
{
	data &= 1;

	switch (offset & 7)
	{
	case 0:
		starshp1_attract = data;
		break;
	case 1:
		starshp1_phasor = data;
		break;
	case 2:
		/* KICKER */
		break;
	case 3:
		/* SL1 */
		break;
	case 4:
		/* SL2 */
		break;
	case 5:
		/* MOLVL */
		break;
	case 6:
		/* NOISE FREQ */
		break;
	}

	coin_lockout_w(0, !starshp1_attract);
	coin_lockout_w(1, !starshp1_attract);
}
Exemple #7
0
static WRITE8_HANDLER( cbasebal_coinctrl_w )
{
	coin_lockout_w(space->machine, 0, ~data & 0x04);
	coin_lockout_w(space->machine, 1, ~data & 0x08);
	coin_counter_w(space->machine, 0, data & 0x01);
	coin_counter_w(space->machine, 1, data & 0x02);
}
Exemple #8
0
static WRITE16_HANDLER( darius_ioc_w )
{
	switch (offset)
	{
		case 0x00:	/* sound interface write */

			taitosound_port_w (0, data & 0xff);
			return;

		case 0x01:	/* sound interface write */

			taitosound_comm_w (0, data & 0xff);
			return;

		case 0x28:	/* unknown, written by both cpus - always 0? */
//usrintf_showmessage(" address %04x value %04x",offset,data);
			return;

		case 0x30:	/* coin control */
			/* bits 7,5,4,0 used on reset */
			/* bit 4 used whenever bg is blanked ? */
			coin_lockout_w(0, ~data & 0x02);
			coin_lockout_w(1, ~data & 0x04);
			coin_counter_w(0, data & 0x08);
			coin_counter_w(1, data & 0x40);
			coin_word = data &0xffff;
//usrintf_showmessage(" address %04x value %04x",offset,data);
			return;
	}

logerror("CPU #0 PC %06x: warning - write unmapped ioc offset %06x with %04x\n",activecpu_get_pc(),offset,data);
}
Exemple #9
0
static WRITE8_HANDLER( exzisus_coincounter_w )
{
	coin_lockout_w(space->machine, 0,~data & 0x01);
	coin_lockout_w(space->machine, 1,~data & 0x02);
	coin_counter_w(space->machine, 0,data & 0x04);
	coin_counter_w(space->machine, 1,data & 0x08);
}
Exemple #10
0
static void pacland_coin_w(int offset,int data)
{
    coin_lockout_w(0,data & 1);
    coin_lockout_w(1,data & 1);

    coin_counter_w(0,~data & 2);
    coin_counter_w(1,~data & 4);
}
Exemple #11
0
static WRITE8_HANDLER( blktiger_coinlockout_w )
{
	if (input_port_read(space->machine, "COIN_LOCKOUT") & 0x01)
	{
		coin_lockout_w(0,~data & 0x01);
		coin_lockout_w(1,~data & 0x02);
	}
}
Exemple #12
0
static WRITE8_DEVICE_HANDLER(ppi0_b_w)
{
	output_set_lamp_value(8, !BIT(data,7)); /* Stand Light */
	output_set_lamp_value(9, !BIT(data,6)); /* Cancel Light */

	coin_counter_w(device->machine, 0, BIT(data,1));
	coin_lockout_w(device->machine, 0, BIT(data,5));
	coin_lockout_w(device->machine, 1, BIT(data,4));
}
Exemple #13
0
static void triplhnt_update_misc(address_space &space, int offset)
{
	triplhnt_state *state = space.machine().driver_data<triplhnt_state>();
	samples_device *samples = space.machine().device<samples_device>("samples");
	device_t *discrete = space.machine().device("discrete");
	UINT8 is_witch_hunt;
	UINT8 bit = offset >> 1;

	/* BIT0 => UNUSED      */
	/* BIT1 => LAMP        */
	/* BIT2 => SCREECH     */
	/* BIT3 => LOCKOUT     */
	/* BIT4 => SPRITE ZOOM */
	/* BIT5 => CMOS WRITE  */
	/* BIT6 => TAPE CTRL   */
	/* BIT7 => SPRITE BANK */

	if (offset & 1)
	{
		state->m_misc_flags |= 1 << bit;

		if (bit == 5)
		{
			state->m_cmos[state->m_cmos_latch] = state->m_da_latch;
		}
	}
	else
	{
		state->m_misc_flags &= ~(1 << bit);
	}

	state->m_sprite_zoom = (state->m_misc_flags >> 4) & 1;
	state->m_sprite_bank = (state->m_misc_flags >> 7) & 1;

	set_led_status(space.machine(), 0, state->m_misc_flags & 0x02);

	coin_lockout_w(space.machine(), 0, !(state->m_misc_flags & 0x08));
	coin_lockout_w(space.machine(), 1, !(state->m_misc_flags & 0x08));

	discrete_sound_w(discrete, space, TRIPLHNT_SCREECH_EN, state->m_misc_flags & 0x04);	// screech
	discrete_sound_w(discrete, space, TRIPLHNT_LAMP_EN, state->m_misc_flags & 0x02);	// Lamp is used to reset noise
	discrete_sound_w(discrete, space, TRIPLHNT_BEAR_EN, state->m_misc_flags & 0x80);	// bear

	is_witch_hunt = space.machine().root_device().ioport("0C09")->read() == 0x40;
	bit = ~state->m_misc_flags & 0x40;

	/* if we're not playing the sample yet, start it */
	if (!samples->playing(0))
		samples->start(0, 0, true);
	if (!samples->playing(1))
		samples->start(1, 1, true);

	/* bit 6 turns cassette on/off */
	samples->pause(0,  is_witch_hunt || bit);
	samples->pause(1, !is_witch_hunt || bit);
}
Exemple #14
0
static WRITE16_HANDLER( shangha3_coinctrl_w )
{
	if (ACCESSING_BITS_8_15)
	{
		coin_lockout_w(space->machine, 0,~data & 0x0400);
		coin_lockout_w(space->machine, 1,~data & 0x0400);
		coin_counter_w(space->machine, 0,data & 0x0100);
		coin_counter_w(space->machine, 1,data & 0x0200);
	}
}
Exemple #15
0
static WRITE16_HANDLER( mcat_coin_w )
{
	if(ACCESSING_BITS_8_15)
	{
		coin_counter_w(space->machine, 0, data & 0x1000);
		coin_counter_w(space->machine, 1, data & 0x2000);
		coin_lockout_w(space->machine, 0, ~data & 0x4000);
		coin_lockout_w(space->machine, 1, ~data & 0x8000);
	}
}
Exemple #16
0
static WRITE16_HANDLER( coinctrl_w )
{
    if (ACCESSING_BITS_0_7)
    {
        coin_counter_w(space->machine, 0, data & 1);
        coin_counter_w(space->machine, 1, data & 2);
        coin_lockout_w(space->machine, 0, ~data & 4);
        coin_lockout_w(space->machine, 1, ~data & 8);
    }
}
static WRITE_HANDLER( shangha3_coinctrl_w )
{
	if ((data & 0xff000000) == 0)
	{
		coin_lockout_w(0,~data & 0x0400);
		coin_lockout_w(1,~data & 0x0400);
		coin_counter_w(0,data & 0x0100);
		coin_counter_w(1,data & 0x0200);
	}
}
Exemple #18
0
static WRITE16_HANDLER( shangha3_coinctrl_w )
{
	if (ACCESSING_MSB)
	{
		coin_lockout_w(0,~data & 0x0400);
		coin_lockout_w(1,~data & 0x0400);
		coin_counter_w(0,data & 0x0100);
		coin_counter_w(1,data & 0x0200);
	}
}
Exemple #19
0
static WRITE8_HANDLER( galpani2_coin_lockout_w )
{
		coin_counter_w(space->machine, 0, data & 0x01);
		coin_counter_w(space->machine, 1, data & 0x02);
		coin_lockout_w(space->machine, 0,~data & 0x04);
		coin_lockout_w(space->machine, 1,~data & 0x08);
		// & 0x10     CARD in lockout?
		// & 0x20     CARD in lockout?
		// & 0x40     CARD out
}
Exemple #20
0
static WRITE8_HANDLER( champbwl_misc_w )
{
	coin_counter_w(space->machine(), 0, data & 1);
	coin_counter_w(space->machine(), 1, data & 2);

	coin_lockout_w(space->machine(), 0, ~data & 8);
	coin_lockout_w(space->machine(), 1, ~data & 4);

	memory_set_bank(space->machine(), "bank1", (data & 0x30) >> 4);
}
Exemple #21
0
static WRITE16_HANDLER( coinctrl_w )
{
	if (ACCESSING_LSB)
	{
		coin_counter_w(0,data & 1);
		coin_counter_w(1,data & 2);
		coin_lockout_w(0,~data & 4);
		coin_lockout_w(1,~data & 8);
	}
}
/*** Main CPU ***/

static READ16_HANDLER( mcatadv_dsw_r )
{
	return readinputport(2+offset) << 8;
}

static WRITE16_HANDLER( mcat_soundlatch_w )
{
	soundlatch_w(0, data);
	cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE);
}

#if 0 /* mcat only.. install read handler? */
static WRITE16_HANDLER( mcat_coin_w )
{
	if(ACCESSING_MSB16)
	{
		coin_counter_w(0, data & 0x1000);
		coin_counter_w(1, data & 0x2000);
		coin_lockout_w(0, ~data & 0x4000);
		coin_lockout_w(1, ~data & 0x8000);
	}
}
Exemple #23
0
static WRITE16_HANDLER( heberpop_coinctrl_w )
{
	if (ACCESSING_LSB)
	{
		/* the sound ROM bank is selected by the main CPU! */
		OKIM6295_set_bank_base(0,(data & 0x08) ? 0x40000 : 0x00000);

		coin_lockout_w(0,~data & 0x04);
		coin_lockout_w(1,~data & 0x04);
		coin_counter_w(0,data & 0x01);
		coin_counter_w(1,data & 0x02);
	}
}
static WRITE_HANDLER( heberpop_coinctrl_w )
{
	if ((data & 0x00ff0000) == 0)
	{
		/* the sound ROM bank is selected by the main CPU! */
		OKIM6295_set_bank_base(0,ALL_VOICES,(data & 0x08) ? 0x40000 : 0x00000);

		coin_lockout_w(0,~data & 0x04);
		coin_lockout_w(1,~data & 0x04);
		coin_counter_w(0,data & 0x01);
		coin_counter_w(1,data & 0x02);
	}
}
Exemple #25
0
static WRITE16_HANDLER( sengokmj_out_w )
{
	sengokmj_state *state = space->machine().driver_data<sengokmj_state>();
	/* ---- ---- ---x ---- J.P. Signal (?)*/
	/* ---- ---- ---- -x-- Coin counter (done AFTER that you press start)*/
	/* ---- ---- ---- --x- Cash enable (lockout)*/
	/* ---- ---- ---- ---x Hopper 10 */
	coin_lockout_w(space->machine(), 0,~data & 2);
	coin_lockout_w(space->machine(), 1,~data & 2);
	coin_counter_w(space->machine(), 0,data & 4);
	state->m_hopper_io = ((data & 1)<<6);
//  popmessage("%02x",state->m_hopper_io);
}
Exemple #26
0
static WRITE16_HANDLER( heberpop_coinctrl_w )
{
	if (ACCESSING_BITS_0_7)
	{
		/* the sound ROM bank is selected by the main CPU! */
		okim6295_set_bank_base(devtag_get_device(space->machine, "oki"),(data & 0x08) ? 0x40000 : 0x00000);

		coin_lockout_w(space->machine, 0,~data & 0x04);
		coin_lockout_w(space->machine, 1,~data & 0x04);
		coin_counter_w(space->machine, 0,data & 0x01);
		coin_counter_w(space->machine, 1,data & 0x02);
	}
}
static WRITE32_HANDLER( gunbustr_input_w )
{
	gunbustr_state *state = space->machine().driver_data<gunbustr_state>();

#if 0
{
char t[64];
COMBINE_DATA(&state->m_mem[offset]);

sprintf(t,"%08x %08x",state->m_mem[0],state->m_mem[1]);
popmessage(t);
}
#endif

	switch (offset)
	{
		case 0x00:
		{
			if (ACCESSING_BITS_24_31)	/* $400000 is watchdog */
			{
				watchdog_reset(space->machine());
			}

			if (ACCESSING_BITS_0_7)
			{
				eeprom_device *eeprom = space->machine().device<eeprom_device>("eeprom");
				eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
				eeprom->write_bit(data & 0x40);
				eeprom->set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
				return;
			}
			return;
		}

		case 0x01:
		{
			if (ACCESSING_BITS_24_31)
			{
				/* game does not write a separate counter for coin 2!
                   It should disable both coins when 9 credits reached
                   see code $1d8a-f6... but for some reason it's not */
				coin_lockout_w(space->machine(), 0, data & 0x01000000);
				coin_lockout_w(space->machine(), 1, data & 0x02000000);
				coin_counter_w(space->machine(), 0, data & 0x04000000);
				coin_counter_w(space->machine(), 1, data & 0x04000000);
				state->m_coin_word = (data >> 16) &0xffff;
			}
//logerror("CPU #0 PC %06x: write input %06x\n",cpu_get_pc(&space->device()),offset);
		}
	}
}
Exemple #28
0
static WRITE8_HANDLER( destroyr_misc_w )
{
	/* bits 0 to 2 connect to the sound circuits */

	destroyr_attract = data & 1;
	destroyr_noise = data & 2;
	destroyr_motor_speed = data & 4;
	destroyr_potmask[0] = data & 8;
	destroyr_wavemod = data & 16;
	destroyr_potmask[1] = data & 32;

	coin_lockout_w(0, !destroyr_attract);
	coin_lockout_w(1, !destroyr_attract);
}
Exemple #29
0
static WRITE32_HANDLER( superchs_input_w )
{
	superchs_state *state = space->machine().driver_data<superchs_state>();

	#if 0
	{
	char t[64];
	COMBINE_DATA(&state->m_mem[offset]);
	sprintf(t,"%08x %08x",state->m_mem[0],state->m_mem[1]);
	//popmessage(t);
	}
	#endif

	switch (offset)
	{
		case 0x00:
		{
			if (ACCESSING_BITS_24_31)	/* $300000 is watchdog */
			{
				watchdog_reset(space->machine());
			}

			if (ACCESSING_BITS_0_7)
			{
				eeprom_device *eeprom = space->machine().device<eeprom_device>("eeprom");
				eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
				eeprom->write_bit(data & 0x40);
				eeprom->set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
				return;
			}

			return;
		}

		/* there are 'vibration' control bits somewhere! */

		case 0x01:
		{
			if (ACCESSING_BITS_24_31)
			{
				coin_lockout_w(space->machine(), 0,~data & 0x01000000);
				coin_lockout_w(space->machine(), 1,~data & 0x02000000);
				coin_counter_w(space->machine(), 0, data & 0x04000000);
				coin_counter_w(space->machine(), 1, data & 0x08000000);
				state->m_coin_word=(data >> 16) &0xffff;
			}
		}
	}
}
Exemple #30
0
static WRITE8_HANDLER( destroyr_misc_w )
{
	destroyr_state *state = (destroyr_state *)space->machine->driver_data;

	/* bits 0 to 2 connect to the sound circuits */
	state->attract = data & 0x01;
	state->noise = data & 0x02;
	state->motor_speed = data & 0x04;
	state->potmask[0] = data & 0x08;
	state->wavemod = data & 0x10;
	state->potmask[1] = data & 0x20;

	coin_lockout_w(space->machine, 0, !state->attract);
	coin_lockout_w(space->machine, 1, !state->attract);
}