summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/cloud9.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/cloud9.cpp')
-rw-r--r--src/mame/drivers/cloud9.cpp33
1 files changed, 26 insertions, 7 deletions
diff --git a/src/mame/drivers/cloud9.cpp b/src/mame/drivers/cloud9.cpp
index 3137af7189d..b0dff16b242 100644
--- a/src/mame/drivers/cloud9.cpp
+++ b/src/mame/drivers/cloud9.cpp
@@ -216,15 +216,27 @@ WRITE8_MEMBER(cloud9_state::irq_ack_w)
}
-WRITE8_MEMBER(cloud9_state::cloud9_led_w)
+WRITE_LINE_MEMBER(cloud9_state::led1_w)
{
- output().set_led_value(offset, ~data & 0x80);
+ output().set_led_value(0, !state);
}
-WRITE8_MEMBER(cloud9_state::cloud9_coin_counter_w)
+WRITE_LINE_MEMBER(cloud9_state::led2_w)
{
- machine().bookkeeping().coin_counter_w(offset, data & 0x80);
+ output().set_led_value(1, !state);
+}
+
+
+WRITE_LINE_MEMBER(cloud9_state::coin1_counter_w)
+{
+ machine().bookkeeping().coin_counter_w(0, state);
+}
+
+
+WRITE_LINE_MEMBER(cloud9_state::coin2_counter_w)
+{
+ machine().bookkeeping().coin_counter_w(1, state);
}
@@ -272,9 +284,8 @@ static ADDRESS_MAP_START( cloud9_map, AS_PROGRAM, 8, cloud9_state )
AM_RANGE(0x5400, 0x547f) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
AM_RANGE(0x5480, 0x54ff) AM_WRITE(irq_ack_w)
AM_RANGE(0x5500, 0x557f) AM_RAM_WRITE(cloud9_paletteram_w) AM_SHARE("paletteram")
- AM_RANGE(0x5580, 0x5587) AM_MIRROR(0x0078) AM_WRITE(cloud9_video_control_w)
- AM_RANGE(0x5600, 0x5601) AM_MIRROR(0x0078) AM_WRITE(cloud9_coin_counter_w)
- AM_RANGE(0x5602, 0x5603) AM_MIRROR(0x0078) AM_WRITE(cloud9_led_w)
+ AM_RANGE(0x5580, 0x5587) AM_MIRROR(0x0078) AM_DEVWRITE("videolatch", ls259_device, write_d7) // video control registers
+ AM_RANGE(0x5600, 0x5607) AM_MIRROR(0x0078) AM_DEVWRITE("outlatch", ls259_device, write_d7)
AM_RANGE(0x5680, 0x56ff) AM_WRITE(nvram_store_w)
AM_RANGE(0x5700, 0x577f) AM_WRITE(nvram_recall_w)
AM_RANGE(0x5800, 0x5800) AM_MIRROR(0x007e) AM_READ_PORT("IN0")
@@ -410,6 +421,12 @@ static MACHINE_CONFIG_START( cloud9 )
MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/8)
MCFG_CPU_PROGRAM_MAP(cloud9_map)
+ MCFG_DEVICE_ADD("outlatch", LS259, 0)
+ MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(cloud9_state, coin1_counter_w))
+ MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(cloud9_state, coin2_counter_w))
+ MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(cloud9_state, led1_w))
+ MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(cloud9_state, led2_w))
+
MCFG_WATCHDOG_ADD("watchdog")
MCFG_WATCHDOG_VBLANK_INIT("screen", 8)
@@ -427,6 +444,8 @@ static MACHINE_CONFIG_START( cloud9 )
MCFG_SCREEN_UPDATE_DRIVER(cloud9_state, screen_update_cloud9)
MCFG_SCREEN_PALETTE("palette")
+ MCFG_DEVICE_ADD("videolatch", LS259, 0)
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")