summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/8080bw.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/8080bw.cpp')
-rw-r--r--src/mame/drivers/8080bw.cpp94
1 files changed, 36 insertions, 58 deletions
diff --git a/src/mame/drivers/8080bw.cpp b/src/mame/drivers/8080bw.cpp
index 5afad4915b6..2eed885f72d 100644
--- a/src/mame/drivers/8080bw.cpp
+++ b/src/mame/drivers/8080bw.cpp
@@ -196,6 +196,7 @@
#include "emu.h"
#include "cpu/m6800/m6800.h"
#include "cpu/i8085/i8085.h"
+#include "machine/watchdog.h"
#include "sound/ay8910.h"
#include "sound/speaker.h"
#include "includes/8080bw.h"
@@ -375,7 +376,7 @@ static ADDRESS_MAP_START( invadpt2_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(invadpt2_sh_port_1_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
AM_RANGE(0x05, 0x05) AM_WRITE(invadpt2_sh_port_2_w)
- AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x06, 0x06) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
ADDRESS_MAP_END
@@ -413,7 +414,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( invadpt2, mw8080bw_root, _8080bw_state )
/* 60 Hz signal clocks two LS161. Ripple carry will */
/* reset circuit, if LS161 not cleared before. */
- MCFG_WATCHDOG_VBLANK_INIT(255)
+ MCFG_WATCHDOG_ADD("watchdog")
+ MCFG_WATCHDOG_VBLANK_INIT("screen", 255)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -443,7 +445,7 @@ static ADDRESS_MAP_START( spacerng_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(invadpt2_sh_port_1_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
AM_RANGE(0x05, 0x05) AM_WRITE(spacerng_sh_port_2_w)
- AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x06, 0x06) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
ADDRESS_MAP_END
static MACHINE_CONFIG_DERIVED_CLASS( spacerng, invadpt2, _8080bw_state )
@@ -525,7 +527,7 @@ static ADDRESS_MAP_START( astropal_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x03, 0x03) AM_WRITE(invaders_audio_1_w)
AM_RANGE(0x05, 0x05) AM_WRITE(invaders_audio_2_w)
- AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x06, 0x06) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
ADDRESS_MAP_END
static INPUT_PORTS_START( astropal )
@@ -569,6 +571,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( astropal, invaders, _8080bw_state )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(astropal_io_map)
+
MACHINE_CONFIG_END
@@ -593,7 +596,7 @@ static ADDRESS_MAP_START( cosmo_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_WRITENOP
AM_RANGE(0x03, 0x03) AM_WRITE(invadpt2_sh_port_1_w)
AM_RANGE(0x05, 0x05) AM_WRITE(cosmo_sh_port_2_w)
- AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x06, 0x06) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
AM_RANGE(0x07, 0x07) AM_WRITENOP
ADDRESS_MAP_END
@@ -620,6 +623,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( cosmo, mw8080bw_root, _8080bw_state )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(cosmo_map)
MCFG_CPU_IO_MAP(cosmo_io_map)
+ MCFG_WATCHDOG_ADD("watchdog")
MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* video hardware */
@@ -825,7 +829,7 @@ static ADDRESS_MAP_START( invrvnge_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(invrvnge_sh_port_1_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
AM_RANGE(0x05, 0x05) AM_WRITE(invrvnge_sh_port_2_w)
- AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x06, 0x06) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( invrvnge_sound_map, AS_PROGRAM, 8, _8080bw_state )
@@ -888,6 +892,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( invrvnge, mw8080bw_root, _8080bw_state )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(invrvnge_io_map)
+ MCFG_WATCHDOG_ADD("watchdog")
+
MCFG_CPU_ADD("audiocpu", M6808, XTAL_4MHz/2) // MC6808P
MCFG_CPU_PROGRAM_MAP(invrvnge_sound_map)
@@ -1014,7 +1020,7 @@ static ADDRESS_MAP_START( starw1_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x03, 0x03) AM_WRITENOP /* writes 9B at boot */
AM_RANGE(0x04, 0x04) AM_WRITE(invadpt2_sh_port_1_w)
AM_RANGE(0x05, 0x05) AM_WRITE(invadpt2_sh_port_2_w)
- AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x06, 0x06) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
AM_RANGE(0x07, 0x07) AM_WRITENOP /* writes 89 at boot */
ADDRESS_MAP_END
@@ -1142,7 +1148,7 @@ static ADDRESS_MAP_START( cosmicmo_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x03, 0x03) AM_WRITE(invaders_audio_1_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
AM_RANGE(0x05, 0x05) AM_WRITE(cosmicmo_05_w)
- AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x06, 0x06) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
ADDRESS_MAP_END
static MACHINE_CONFIG_DERIVED_CLASS( cosmicmo, mw8080bw_root, _8080bw_state )
@@ -1154,7 +1160,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( cosmicmo, mw8080bw_root, _8080bw_state )
MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
- MCFG_WATCHDOG_VBLANK_INIT(255)
+ MCFG_WATCHDOG_ADD("watchdog")
+ MCFG_WATCHDOG_VBLANK_INIT("screen", 255)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -1308,7 +1315,7 @@ static ADDRESS_MAP_START( schaser_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(schaser_sh_port_1_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
AM_RANGE(0x05, 0x05) AM_WRITE(schaser_sh_port_2_w)
- AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x06, 0x06) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
ADDRESS_MAP_END
@@ -1395,7 +1402,9 @@ static MACHINE_CONFIG_DERIVED_CLASS( schaser, mw8080bw_root, _8080bw_state )
MCFG_CPU_REPLACE("maincpu",I8080,1996800) /* 19.968MHz / 10 */
MCFG_CPU_PROGRAM_MAP(schaser_map)
MCFG_CPU_IO_MAP(schaser_io_map)
- MCFG_WATCHDOG_VBLANK_INIT(255)
+
+ MCFG_WATCHDOG_ADD("watchdog")
+ MCFG_WATCHDOG_VBLANK_INIT("screen", 255)
MCFG_MACHINE_START_OVERRIDE(_8080bw_state,schaser)
MCFG_MACHINE_RESET_OVERRIDE(_8080bw_state,schaser)
@@ -1628,7 +1637,7 @@ static ADDRESS_MAP_START( lupin3_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(lupin3_sh_port_1_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
AM_RANGE(0x05, 0x05) AM_WRITE(lupin3_sh_port_2_w)
- AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x06, 0x06) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
ADDRESS_MAP_END
@@ -1691,6 +1700,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( lupin3, mw8080bw_root, _8080bw_state )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(lupin3_io_map)
+ MCFG_WATCHDOG_ADD("watchdog")
MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* add shifter */
@@ -1731,50 +1741,11 @@ static MACHINE_CONFIG_DERIVED_CLASS( lupin3, mw8080bw_root, _8080bw_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED_CLASS( lupin3a, mw8080bw_root, _8080bw_state )
-
- /* basic machine hardware */
- MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_PROGRAM_MAP(schaser_map)
- MCFG_CPU_IO_MAP(lupin3_io_map)
- MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
-
- /* add shifter */
- MCFG_MB14241_ADD("mb14241")
+static MACHINE_CONFIG_DERIVED( lupin3a, lupin3 )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_lupin3)
-
- MCFG_PALETTE_ADD_3BIT_RBG("palette")
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
-
- MCFG_SOUND_ADD("snsnd", SN76477, 0)
- MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C
- MCFG_SN76477_DECAY_RES(0) // decay_res: N/C
- MCFG_SN76477_ATTACK_PARAMS(0, RES_K(100)) // attack_decay_cap + attack_res
- MCFG_SN76477_AMP_RES(RES_K(56)) // amplitude_res
- MCFG_SN76477_FEEDBACK_RES(RES_K(10)) // feedback_res
- MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(8.2)) // VCO volt + cap + res
- MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
- MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res
- MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C
- MCFG_SN76477_VCO_MODE(1) // VCO mode
- MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
- MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
- MCFG_SN76477_ENABLE(1) // enable
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
-
- MCFG_SOUND_ADD("samples", SAMPLES, 0)
- MCFG_SAMPLES_CHANNELS(4)
- MCFG_SAMPLES_NAMES(lupin3_sample_names)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-
- MCFG_SOUND_ADD("discrete", DISCRETE, 0)
- MCFG_DISCRETE_INTF(indianbt)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@@ -1823,7 +1794,7 @@ static ADDRESS_MAP_START( polaris_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_WRITE(polaris_sh_port_1_w)
AM_RANGE(0x03, 0x03) AM_DEVREADWRITE("mb14241", mb14241_device, shift_result_r, shift_data_w)
AM_RANGE(0x04, 0x04) AM_WRITE(polaris_sh_port_2_w)
- AM_RANGE(0x05, 0x05) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x05, 0x05) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
AM_RANGE(0x06, 0x06) AM_WRITE(polaris_sh_port_3_w)
ADDRESS_MAP_END
@@ -1888,8 +1859,11 @@ static MACHINE_CONFIG_DERIVED_CLASS( polaris, mw8080bw_root, _8080bw_state )
MCFG_CPU_REPLACE("maincpu",I8080,1996800) /* 19.968MHz / 10 */
MCFG_CPU_PROGRAM_MAP(schaser_map)
MCFG_CPU_IO_MAP(polaris_io_map)
- MCFG_WATCHDOG_VBLANK_INIT(255)
MCFG_CPU_VBLANK_INT_DRIVER("screen", _8080bw_state, polaris_interrupt)
+
+ MCFG_WATCHDOG_ADD("watchdog")
+ MCFG_WATCHDOG_VBLANK_INIT("screen", 255)
+
MCFG_MACHINE_START_OVERRIDE(_8080bw_state,polaris)
/* add shifter */
@@ -2238,7 +2212,7 @@ static ADDRESS_MAP_START( indianbt_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(indianbt_sh_port_1_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
AM_RANGE(0x05, 0x05) AM_WRITE(indianbt_sh_port_2_w)
- AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x06, 0x06) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
AM_RANGE(0x07, 0x07) AM_WRITE(indianbt_sh_port_3_w)
ADDRESS_MAP_END
@@ -2249,7 +2223,7 @@ static ADDRESS_MAP_START( indianbtbr_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(indianbtbr_sh_port_1_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
AM_RANGE(0x05, 0x05) AM_WRITE(indianbtbr_sh_port_2_w)
- AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x06, 0x06) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
AM_RANGE(0x07, 0x07) AM_WRITENOP
ADDRESS_MAP_END
@@ -2259,6 +2233,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( indianbt, mw8080bw_root, _8080bw_state )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(indianbt_io_map)
+ MCFG_WATCHDOG_ADD("watchdog")
MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* add shifter */
@@ -2284,6 +2259,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( indianbtbr, mw8080bw_root, _8080bw_state )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(schaser_map)
MCFG_CPU_IO_MAP(indianbtbr_io_map)
+ MCFG_WATCHDOG_ADD("watchdog")
MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
/* add shifter */
@@ -2693,7 +2669,7 @@ static ADDRESS_MAP_START( vortex_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x01, 0x01) AM_WRITE(invaders_audio_1_w)
AM_RANGE(0x06, 0x06) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
AM_RANGE(0x07, 0x07) AM_WRITE(invaders_audio_2_w)
- AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x04, 0x04) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
ADDRESS_MAP_END
@@ -2727,6 +2703,8 @@ MACHINE_CONFIG_DERIVED_CLASS( vortex, mw8080bw_root, _8080bw_state )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(vortex_io_map)
MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
+
+ MCFG_WATCHDOG_ADD("watchdog")
MCFG_WATCHDOG_TIME_INIT(attotime::from_usec(255000000 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)))
/* video hardware */
@@ -2971,7 +2949,7 @@ static ADDRESS_MAP_START( claybust_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
AM_RANGE(0x02, 0x02) AM_READ(claybust_gun_lo_r) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) //AM_WRITENOP // port3 write looks sound-related
- AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x04, 0x04) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
//AM_RANGE(0x05, 0x05) AM_WRITENOP // ?
AM_RANGE(0x06, 0x06) AM_READ(claybust_gun_hi_r)
ADDRESS_MAP_END