summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/channelf.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/channelf.cpp')
-rw-r--r--src/mame/drivers/channelf.cpp132
1 files changed, 67 insertions, 65 deletions
diff --git a/src/mame/drivers/channelf.cpp b/src/mame/drivers/channelf.cpp
index 529a911e10d..848dae8d73c 100644
--- a/src/mame/drivers/channelf.cpp
+++ b/src/mame/drivers/channelf.cpp
@@ -12,10 +12,6 @@
* also spanning from $3000 to $FFFF. Added clones
* Fabio "etabeta" Priuli, moved carts to be slot devices
*
- * TODO:
- * - hook up F3851 and F3853 devices (note: from a black box pov there's
- * currently no problem, nothing uses the timer or irq)
- *
******************************************************************/
#include "emu.h"
@@ -25,6 +21,9 @@
#include "softlist.h"
#include "speaker.h"
+#define MASTER_CLOCK_PAL 2000000 /* PAL unit has a separate crystal at 4.000 MHz */
+#define PAL_VBLANK_TIME 4623
+
/* The F8 has latches on its port pins
* These mimic's their behavior
@@ -198,116 +197,119 @@ static void cf_cart(device_slot_interface &device)
}
-void channelf_state::channelf_cart(machine_config &config)
-{
+MACHINE_CONFIG_START(channelf_state::channelf_cart)
/* cartridge */
- CHANF_CART_SLOT(config, m_cart, cf_cart, nullptr);
+ MCFG_CHANNELF_CARTRIDGE_ADD("cartslot", cf_cart, nullptr)
/* Software lists */
- SOFTWARE_LIST(config, "cart_list").set_original("channelf");
-}
+ MCFG_SOFTWARE_LIST_ADD("cart_list","channelf")
+MACHINE_CONFIG_END
-void channelf_state::channelf(machine_config &config)
-{
+MACHINE_CONFIG_START(channelf_state::channelf)
/* basic machine hardware */
- F8(config, m_maincpu, 3.579545_MHz_XTAL/2); /* Colorburst/2 */
- m_maincpu->set_addrmap(AS_PROGRAM, &channelf_state::channelf_map);
- m_maincpu->set_addrmap(AS_IO, &channelf_state::channelf_io);
+ MCFG_DEVICE_ADD("maincpu", F8, 3579545/2) /* Colorburst/2 */
+ MCFG_DEVICE_PROGRAM_MAP(channelf_map)
+ MCFG_DEVICE_IO_MAP(channelf_io)
+ MCFG_QUANTUM_TIME(attotime::from_hz(60))
/* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
- screen.set_size(128, 64);
- screen.set_visarea(4, 112 - 7, 4, 64 - 3);
- screen.set_screen_update(FUNC(channelf_state::screen_update_channelf));
- screen.set_palette("palette");
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ MCFG_SCREEN_SIZE(128, 64)
+ MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3)
+ MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf)
+ MCFG_SCREEN_PALETTE("palette")
PALETTE(config, "palette", FUNC(channelf_state::channelf_palette), 8);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- CHANNELF_SOUND(config, m_custom).add_route(ALL_OUTPUTS, "mono", 1.00);
+ MCFG_DEVICE_ADD("custom", CHANNELF_SOUND)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
channelf_cart(config);
-}
+MACHINE_CONFIG_END
-void channelf_state::sabavdpl(machine_config &config)
-{
+MACHINE_CONFIG_START(channelf_state::sabavdpl)
/* basic machine hardware */
- F8(config, m_maincpu, 4_MHz_XTAL/2); /* PAL speed */
- m_maincpu->set_addrmap(AS_PROGRAM, &channelf_state::channelf_map);
- m_maincpu->set_addrmap(AS_IO, &channelf_state::channelf_io);
+ MCFG_DEVICE_ADD("maincpu", F8, MASTER_CLOCK_PAL) /* PAL speed */
+ MCFG_DEVICE_PROGRAM_MAP(channelf_map)
+ MCFG_DEVICE_IO_MAP(channelf_io)
+ MCFG_QUANTUM_TIME(attotime::from_hz(50))
/* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(50);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(4623)); /* approximate */
- screen.set_size(128, 64);
- screen.set_visarea(4, 112 - 7, 4, 64 - 3);
- screen.set_screen_update(FUNC(channelf_state::screen_update_channelf));
- screen.set_palette("palette");
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(PAL_VBLANK_TIME)) /* approximate */
+ MCFG_SCREEN_SIZE(128, 64)
+ MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3)
+ MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf)
+ MCFG_SCREEN_PALETTE("palette")
PALETTE(config, "palette", FUNC(channelf_state::channelf_palette), 8);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- CHANNELF_SOUND(config, m_custom).add_route(ALL_OUTPUTS, "mono", 1.00);
+ MCFG_DEVICE_ADD("custom", CHANNELF_SOUND)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
channelf_cart(config);
-}
+MACHINE_CONFIG_END
-void channelf_state::channlf2(machine_config &config)
-{
+MACHINE_CONFIG_START(channelf_state::channlf2)
/* basic machine hardware */
- F8(config, m_maincpu, 3.579545_MHz_XTAL/2); /* Colorburst / 2 */
- m_maincpu->set_addrmap(AS_PROGRAM, &channelf_state::channelf_map);
- m_maincpu->set_addrmap(AS_IO, &channelf_state::channelf_io);
+ MCFG_DEVICE_ADD("maincpu", F8, 3579545/2) /* Colorburst / 2 */
+ MCFG_DEVICE_PROGRAM_MAP(channelf_map)
+ MCFG_DEVICE_IO_MAP(channelf_io)
+ MCFG_QUANTUM_TIME(attotime::from_hz(60))
/* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
- screen.set_size(128, 64);
- screen.set_visarea(4, 112 - 7, 4, 64 - 3);
- screen.set_screen_update(FUNC(channelf_state::screen_update_channelf));
- screen.set_palette("palette");
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ MCFG_SCREEN_SIZE(128, 64)
+ MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3)
+ MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf)
+ MCFG_SCREEN_PALETTE("palette")
PALETTE(config, "palette", FUNC(channelf_state::channelf_palette), 8);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- CHANNELF_SOUND(config, m_custom).add_route(ALL_OUTPUTS, "mono", 1.00);
+ MCFG_DEVICE_ADD("custom", CHANNELF_SOUND)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
channelf_cart(config);
-}
+MACHINE_CONFIG_END
-void channelf_state::sabavpl2(machine_config &config)
-{
+MACHINE_CONFIG_START(channelf_state::sabavpl2)
/* basic machine hardware */
- F8(config, m_maincpu, 4_MHz_XTAL/2); /* PAL speed */
- m_maincpu->set_addrmap(AS_PROGRAM, &channelf_state::channelf_map);
- m_maincpu->set_addrmap(AS_IO, &channelf_state::channelf_io);
+ MCFG_DEVICE_ADD("maincpu", F8, MASTER_CLOCK_PAL) /* PAL speed */
+ MCFG_DEVICE_PROGRAM_MAP(channelf_map)
+ MCFG_DEVICE_IO_MAP(channelf_io)
+ MCFG_QUANTUM_TIME(attotime::from_hz(50))
/* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(50);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(4623)); /* approximate */
- screen.set_size(128, 64);
- screen.set_visarea(4, 112 - 7, 4, 64 - 3);
- screen.set_screen_update(FUNC(channelf_state::screen_update_channelf));
- screen.set_palette("palette");
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(PAL_VBLANK_TIME)) /* not accurate */
+ MCFG_SCREEN_SIZE(128, 64)
+ MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3)
+ MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf)
+ MCFG_SCREEN_PALETTE("palette")
PALETTE(config, "palette", FUNC(channelf_state::channelf_palette), 8);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- CHANNELF_SOUND(config, m_custom).add_route(ALL_OUTPUTS, "mono", 0.50);
+ MCFG_DEVICE_ADD("custom", CHANNELF_SOUND)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
channelf_cart(config);
-}
+MACHINE_CONFIG_END
ROM_START( channelf )
ROM_REGION(0x10000,"maincpu",0)