summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/mosaic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/mosaic.cpp')
-rw-r--r--src/mame/drivers/mosaic.cpp44
1 files changed, 20 insertions, 24 deletions
diff --git a/src/mame/drivers/mosaic.cpp b/src/mame/drivers/mosaic.cpp
index fddb52cf413..37cabb24b2d 100644
--- a/src/mame/drivers/mosaic.cpp
+++ b/src/mame/drivers/mosaic.cpp
@@ -31,10 +31,6 @@ Sound: YM2203C
MCM2018ANS45 (x2)
HY6264P-15
-Actual Measured Clocks Derived
- Z180 - 6.14522MHz (12.288000MHz/2)
- YM2203C - 3.57543MHz (14.318181MHz/4)
-
Unknown 28 pin protection chip (possibly a PIC) at 5A (UC02 as silkscreened on PCB)
***************************************************************************/
@@ -281,23 +277,23 @@ void mosaic_state::machine_reset()
m_prot_val = 0;
}
-void mosaic_state::mosaic(machine_config &config)
-{
+MACHINE_CONFIG_START(mosaic_state::mosaic)
+
/* basic machine hardware */
- Z180(config, m_maincpu, XTAL(12'288'000)/2); /* 6.144MHz - Verified */
- m_maincpu->set_addrmap(AS_PROGRAM, &mosaic_state::mosaic_map);
- m_maincpu->set_addrmap(AS_IO, &mosaic_state::mosaic_io_map);
- m_maincpu->set_vblank_int("screen", FUNC(mosaic_state::irq0_line_hold));
+ MCFG_DEVICE_ADD("maincpu", Z180, XTAL(12'288'000)/2) /* 6.144MHz */
+ MCFG_DEVICE_PROGRAM_MAP(mosaic_map)
+ MCFG_DEVICE_IO_MAP(mosaic_io_map)
+ MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mosaic_state, irq0_line_hold)
/* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(64*8, 32*8);
- screen.set_visarea(8*8, 48*8-1, 2*8, 30*8-1);
- screen.set_screen_update(FUNC(mosaic_state::screen_update));
- screen.set_palette("palette");
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ MCFG_SCREEN_SIZE(64*8, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1)
+ MCFG_SCREEN_UPDATE_DRIVER(mosaic_state, screen_update)
+ MCFG_SCREEN_PALETTE("palette")
GFXDECODE(config, m_gfxdecode, "palette", gfx_mosaic);
PALETTE(config, "palette").set_format(palette_device::xRGB_555, 256);
@@ -306,18 +302,18 @@ void mosaic_state::mosaic(machine_config &config)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- ym2203_device &ymsnd(YM2203(config, "ymsnd", XTAL(14'318'181)/4)); /* 3.579545MHz - Verified */
+ ym2203_device &ymsnd(YM2203(config, "ymsnd", XTAL(12'288'000)/4)); /* 3.072MHz or 3.579545MHz (14.31818MHz/4)? */
ymsnd.port_a_read_callback().set_ioport("DSW");
ymsnd.add_route(ALL_OUTPUTS, "mono", 0.50);
-}
+MACHINE_CONFIG_END
-void mosaic_state::gfire2(machine_config &config)
-{
+MACHINE_CONFIG_START(mosaic_state::gfire2)
mosaic(config);
- m_maincpu->set_addrmap(AS_PROGRAM, &mosaic_state::gfire2_map);
- m_maincpu->set_addrmap(AS_IO, &mosaic_state::gfire2_io_map);
-}
+ MCFG_DEVICE_MODIFY("maincpu")
+ MCFG_DEVICE_PROGRAM_MAP(gfire2_map)
+ MCFG_DEVICE_IO_MAP(gfire2_io_map)
+MACHINE_CONFIG_END