diff --git a/src/mame/drivers/turbo.cpp b/src/mame/drivers/turbo.cpp index d540009c9b2..0328e7ff29e 100644 --- a/src/mame/drivers/turbo.cpp +++ b/src/mame/drivers/turbo.cpp @@ -148,6 +148,7 @@ #include "emu.h" #include "includes/turbo.h" +#include "machine/74259.h" #include "machine/i8279.h" #include "machine/segacrpt_device.h" #include "sound/samples.h" @@ -401,20 +402,21 @@ WRITE8_MEMBER(turbo_state::turbo_analog_reset_w) } -WRITE8_MEMBER(turbo_state::turbo_coin_and_lamp_w) +WRITE_LINE_MEMBER(turbo_state::coin_meter_1_w) { - switch (offset & 7) - { - case 0: - machine().bookkeeping().coin_counter_w(0, data & 1); - break; - case 1: - machine().bookkeeping().coin_counter_w(1, data & 1); - break; - case 3: - output().set_led_value(0, data & 1); - break; - } + machine().bookkeeping().coin_counter_w(0, state); +} + + +WRITE_LINE_MEMBER(turbo_state::coin_meter_2_w) +{ + machine().bookkeeping().coin_counter_w(0, state); +} + + +WRITE_LINE_MEMBER(turbo_state::start_lamp_w) +{ + machine().output().set_led_value(0, state); } @@ -500,7 +502,7 @@ WRITE8_MEMBER(turbo_state::spriteram_w) static ADDRESS_MAP_START( turbo_map, AS_PROGRAM, 8, turbo_state ) AM_RANGE(0x0000, 0x5fff) AM_ROM AM_RANGE(0xa000, 0xa0ff) AM_MIRROR(0x0700) AM_READWRITE(spriteram_r, spriteram_w) - AM_RANGE(0xa800, 0xa807) AM_MIRROR(0x07f8) AM_WRITE(turbo_coin_and_lamp_w) + AM_RANGE(0xa800, 0xa807) AM_MIRROR(0x07f8) AM_DEVWRITE("outlatch", ls259_device, write_d0) AM_RANGE(0xb000, 0xb3ff) AM_MIRROR(0x0400) AM_RAM AM_SHARE("spritepos") AM_RANGE(0xb800, 0xbfff) AM_WRITE(turbo_analog_reset_w) AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(turbo_videoram_w) AM_SHARE("videoram") @@ -867,6 +869,11 @@ static MACHINE_CONFIG_START( turbo ) MCFG_I8279_OUT_DISP_CB(WRITE8(turbo_state, digit_w)) // display A&B MCFG_I8279_IN_RL_CB(IOPORT("DSW1")) // kbd RL lines + MCFG_DEVICE_ADD("outlatch", LS259, 0) // IC125 - outputs passed through CN5 + MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(turbo_state, coin_meter_1_w)) + MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(turbo_state, coin_meter_2_w)) + MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(turbo_state, start_lamp_w)) + /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", "palette", turbo) MCFG_PALETTE_ADD("palette", 256) diff --git a/src/mame/includes/turbo.h b/src/mame/includes/turbo.h index e82084a1e30..41b8049a420 100644 --- a/src/mame/includes/turbo.h +++ b/src/mame/includes/turbo.h @@ -130,7 +130,9 @@ public: DECLARE_READ8_MEMBER(turbo_collision_r); DECLARE_WRITE8_MEMBER(turbo_collision_clear_w); DECLARE_WRITE8_MEMBER(turbo_analog_reset_w); - DECLARE_WRITE8_MEMBER(turbo_coin_and_lamp_w); + DECLARE_WRITE_LINE_MEMBER(coin_meter_1_w); + DECLARE_WRITE_LINE_MEMBER(coin_meter_2_w); + DECLARE_WRITE_LINE_MEMBER(start_lamp_w); DECLARE_READ8_MEMBER(buckrog_cpu2_command_r); DECLARE_READ8_MEMBER(buckrog_port_2_r); DECLARE_READ8_MEMBER(buckrog_port_3_r);