summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/rollrace.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/rollrace.cpp')
-rw-r--r--src/mame/drivers/rollrace.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/mame/drivers/rollrace.cpp b/src/mame/drivers/rollrace.cpp
index ed5dfef309d..75f3dd4f9ee 100644
--- a/src/mame/drivers/rollrace.cpp
+++ b/src/mame/drivers/rollrace.cpp
@@ -13,6 +13,7 @@ Issues:
#include "includes/rollrace.h"
#include "cpu/z80/z80.h"
+#include "machine/74259.h"
#include "machine/gen_latch.h"
#include "sound/ay8910.h"
#include "screen.h"
@@ -21,7 +22,6 @@ Issues:
void rollrace_state::machine_start()
{
- save_item(NAME(m_charbank));
save_item(NAME(m_bkgpage));
save_item(NAME(m_bkgflip));
save_item(NAME(m_chrbank));
@@ -44,9 +44,9 @@ WRITE8_MEMBER(rollrace_state::fake_d800_w)
/* logerror("d900: %02X\n",data);*/
}
-WRITE8_MEMBER(rollrace_state::nmi_mask_w)
+WRITE_LINE_MEMBER(rollrace_state::nmi_mask_w)
{
- m_nmi_mask = data & 1;
+ m_nmi_mask = state;
}
WRITE8_MEMBER(rollrace_state::sound_nmi_mask_w)
@@ -54,9 +54,14 @@ WRITE8_MEMBER(rollrace_state::sound_nmi_mask_w)
m_sound_nmi_mask = data & 1;
}
-WRITE8_MEMBER(rollrace_state::coin_w)
+WRITE_LINE_MEMBER(rollrace_state::coin_counter_1_w)
{
- machine().bookkeeping().coin_counter_w(offset, data);
+ machine().bookkeeping().coin_counter_w(0, state);
+}
+
+WRITE_LINE_MEMBER(rollrace_state::coin_counter_2_w)
+{
+ machine().bookkeeping().coin_counter_w(1, state);
}
static ADDRESS_MAP_START( rollrace_map, AS_PROGRAM, 8, rollrace_state )
@@ -77,11 +82,7 @@ static ADDRESS_MAP_START( rollrace_map, AS_PROGRAM, 8, rollrace_state )
AM_RANGE(0xf803, 0xf803) AM_WRITE(flipy_w)
AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1")
AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2")
- AM_RANGE(0xfc00, 0xfc00) AM_WRITE(flipx_w)
- AM_RANGE(0xfc01, 0xfc01) AM_WRITE(nmi_mask_w)
- AM_RANGE(0xfc02, 0xfc03) AM_WRITE(coin_w)
- AM_RANGE(0xfc04, 0xfc05) AM_WRITE(charbank_w)
- AM_RANGE(0xfc06, 0xfc06) AM_WRITE(spritebank_w)
+ AM_RANGE(0xfc00, 0xfc07) AM_DEVWRITE("mainlatch", ls259_device, write_d0)
ADDRESS_MAP_END
@@ -255,6 +256,15 @@ static MACHINE_CONFIG_START( rollrace )
MCFG_CPU_PROGRAM_MAP(rollrace_sound_map)
MCFG_CPU_PERIODIC_INT_DRIVER(rollrace_state, sound_timer_irq, 4*60)
+ MCFG_DEVICE_ADD("mainlatch", LS259, 0)
+ MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(rollrace_state, flipx_w))
+ MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(rollrace_state, nmi_mask_w))
+ MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(rollrace_state, coin_counter_1_w))
+ MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(rollrace_state, coin_counter_2_w))
+ MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE(rollrace_state, charbank_0_w))
+ MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(rollrace_state, charbank_1_w))
+ MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(WRITELINE(rollrace_state, spritebank_w))
+
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)