summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/mazerbla.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/mazerbla.cpp')
-rw-r--r--src/mame/drivers/mazerbla.cpp94
1 files changed, 47 insertions, 47 deletions
diff --git a/src/mame/drivers/mazerbla.cpp b/src/mame/drivers/mazerbla.cpp
index 2e9d272a2c8..c5cdaa330d3 100644
--- a/src/mame/drivers/mazerbla.cpp
+++ b/src/mame/drivers/mazerbla.cpp
@@ -973,27 +973,27 @@ void mazerbla_state::machine_reset()
}
}
-MACHINE_CONFIG_START(mazerbla_state::mazerbla)
-
+void mazerbla_state::mazerbla(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK) /* 4 MHz, no NMI, IM2 - vectors at 0xf8, 0xfa, 0xfc */
- MCFG_DEVICE_PROGRAM_MAP(mazerbla_map)
- MCFG_DEVICE_IO_MAP(mazerbla_io_map)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(mazerbla_state,irq_callback)
-
- MCFG_DEVICE_ADD("sub", Z80, MASTER_CLOCK) /* 4 MHz, NMI, IM1 INT */
- MCFG_DEVICE_PROGRAM_MAP(mazerbla_cpu2_map)
- MCFG_DEVICE_IO_MAP(mazerbla_cpu2_io_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(mazerbla_state, irq0_line_hold, 400) /* frequency in Hz */
-
- MCFG_DEVICE_ADD("sub2", Z80, MASTER_CLOCK) /* 4 MHz, no NMI, IM1 INT */
- MCFG_DEVICE_PROGRAM_MAP(mazerbla_cpu3_map)
- MCFG_DEVICE_IO_MAP(mazerbla_cpu3_io_map)
+ Z80(config, m_maincpu, MASTER_CLOCK); /* 4 MHz, no NMI, IM2 - vectors at 0xf8, 0xfa, 0xfc */
+ m_maincpu->set_addrmap(AS_PROGRAM, &mazerbla_state::mazerbla_map);
+ m_maincpu->set_addrmap(AS_IO, &mazerbla_state::mazerbla_io_map);
+ m_maincpu->set_irq_acknowledge_callback(FUNC(mazerbla_state::irq_callback));
+
+ Z80(config, m_subcpu, MASTER_CLOCK); /* 4 MHz, NMI, IM1 INT */
+ m_subcpu->set_addrmap(AS_PROGRAM, &mazerbla_state::mazerbla_cpu2_map);
+ m_subcpu->set_addrmap(AS_IO, &mazerbla_state::mazerbla_cpu2_io_map);
+ m_subcpu->set_periodic_int(FUNC(mazerbla_state::irq0_line_hold), attotime::from_hz(400)); /* frequency in Hz */
+
+ z80_device &sub2(Z80(config, "sub2", MASTER_CLOCK)); /* 4 MHz, no NMI, IM1 INT */
+ sub2.set_addrmap(AS_PROGRAM, &mazerbla_state::mazerbla_cpu3_map);
+ sub2.set_addrmap(AS_IO, &mazerbla_state::mazerbla_cpu3_io_map);
/* (vblank related ??) int generated by a custom video processor
and cleared on ANY port access.
but handled differently for now
*/
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mazerbla_state, irq0_line_hold)
+ sub2.set_vblank_int("screen", FUNC(mazerbla_state::irq0_line_hold));
/* synchronization forced on the fly */
MB_VCU(config, m_vcu, SOUND_CLOCK/4);
@@ -1003,40 +1003,40 @@ MACHINE_CONFIG_START(mazerbla_state::mazerbla)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(mazerbla_state, screen_update_mazerbla)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, mazerbla_state, screen_vblank))
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ m_screen->set_size(40*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 0*8, 28*8-1);
+ m_screen->set_screen_update(FUNC(mazerbla_state::screen_update_mazerbla));
+ m_screen->screen_vblank().set(FUNC(mazerbla_state::screen_vblank));
PALETTE(config, "palette", FUNC(mazerbla_state::mazerbla_palette), 256+1);
/* sound hardware */
-MACHINE_CONFIG_END
-
+}
-MACHINE_CONFIG_START(mazerbla_state::greatgun)
+void mazerbla_state::greatgun(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK) /* 4 MHz, no NMI, IM2 - vectors at 0xf8, 0xfa, 0xfc */
- MCFG_DEVICE_PROGRAM_MAP(mazerbla_map)
- MCFG_DEVICE_IO_MAP(greatgun_io_map)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(mazerbla_state,irq_callback)
-
- MCFG_DEVICE_ADD("sub", Z80, SOUND_CLOCK / 4) /* 3.579500 MHz, NMI - caused by sound command write, periodic INT */
- MCFG_DEVICE_PROGRAM_MAP(greatgun_sound_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(mazerbla_state, sound_interrupt, (double)14318180/16/16/16/16 )
-
- MCFG_DEVICE_ADD("sub2", Z80, MASTER_CLOCK) /* 4 MHz, no NMI, IM1 INT */
- MCFG_DEVICE_PROGRAM_MAP(mazerbla_cpu3_map)
- MCFG_DEVICE_IO_MAP(greatgun_cpu3_io_map)
+ Z80(config, m_maincpu, MASTER_CLOCK); /* 4 MHz, no NMI, IM2 - vectors at 0xf8, 0xfa, 0xfc */
+ m_maincpu->set_addrmap(AS_PROGRAM, &mazerbla_state::mazerbla_map);
+ m_maincpu->set_addrmap(AS_IO, &mazerbla_state::greatgun_io_map);
+ m_maincpu->set_irq_acknowledge_callback(FUNC(mazerbla_state::irq_callback));
+
+ Z80(config, m_subcpu, SOUND_CLOCK / 4); /* 3.579500 MHz, NMI - caused by sound command write, periodic INT */
+ m_subcpu->set_addrmap(AS_PROGRAM, &mazerbla_state::greatgun_sound_map);
+ m_subcpu->set_periodic_int(FUNC(mazerbla_state::sound_interrupt), attotime::from_hz((double)14318180/16/16/16/16 ));
+
+ z80_device &sub2(Z80(config, "sub2", MASTER_CLOCK)); /* 4 MHz, no NMI, IM1 INT */
+ sub2.set_addrmap(AS_PROGRAM, &mazerbla_state::mazerbla_cpu3_map);
+ sub2.set_addrmap(AS_IO, &mazerbla_state::greatgun_cpu3_io_map);
/* (vblank related ??) int generated by a custom video processor
and cleared on ANY port access.
but handled differently for now
*/
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mazerbla_state, irq0_line_hold)
+ sub2.set_vblank_int("screen", FUNC(mazerbla_state::irq0_line_hold));
MB_VCU(config, m_vcu, SOUND_CLOCK/4);
m_vcu->set_cpu_tag("sub2");
@@ -1045,13 +1045,13 @@ MACHINE_CONFIG_START(mazerbla_state::greatgun)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(mazerbla_state, screen_update_mazerbla)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, mazerbla_state, screen_vblank))
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ m_screen->set_size(40*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 0*8, 28*8-1);
+ m_screen->set_screen_update(FUNC(mazerbla_state::screen_update_mazerbla));
+ m_screen->screen_vblank().set(FUNC(mazerbla_state::screen_vblank));
PALETTE(config, "palette", FUNC(mazerbla_state::mazerbla_palette), 246+1);
@@ -1069,7 +1069,7 @@ MACHINE_CONFIG_START(mazerbla_state::greatgun)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_subcpu, INPUT_LINE_NMI);
m_soundlatch->set_separate_acknowledge(true);
-MACHINE_CONFIG_END
+}
/*************************************
*