summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2017-07-27 13:48:38 -0400
committer AJR <ajrhacker@users.noreply.github.com>2017-07-27 13:48:38 -0400
commitf9f0ae17466a40cad108332781a0e7ee60e8ac52 (patch)
tree630559f5bb9b3b6b66e72f88db4ac9507e48e906
parent30732f9be72a42b6f515c228e96f52a61ce179ae (diff)
turbo: Add 74LS259 (nw)
-rw-r--r--src/mame/drivers/turbo.cpp35
-rw-r--r--src/mame/includes/turbo.h4
2 files changed, 24 insertions, 15 deletions
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);