diff options
Diffstat (limited to 'src/mame/drivers/cloud9.cpp')
-rw-r--r-- | src/mame/drivers/cloud9.cpp | 33 |
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") |