summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/cd2650.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/cd2650.cpp')
-rw-r--r--src/mame/drivers/cd2650.cpp38
1 files changed, 20 insertions, 18 deletions
diff --git a/src/mame/drivers/cd2650.cpp b/src/mame/drivers/cd2650.cpp
index 7067898726c..39d751370c1 100644
--- a/src/mame/drivers/cd2650.cpp
+++ b/src/mame/drivers/cd2650.cpp
@@ -88,7 +88,7 @@ public:
private:
uint8_t m_term_data;
virtual void machine_reset() override;
- required_device<cpu_device> m_maincpu;
+ required_device<s2650_device> m_maincpu;
required_shared_ptr<uint8_t> m_p_videoram;
required_region_ptr<u8> m_p_chargen;
required_device<cassette_image_device> m_cass;
@@ -286,14 +286,15 @@ QUICKLOAD_LOAD_MEMBER( cd2650_state, cd2650 )
return result;
}
-MACHINE_CONFIG_START(cd2650_state::cd2650)
+void cd2650_state::cd2650(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", S2650, XTAL(14'192'640) / 12) // 1.182720MHz according to RE schematic
- MCFG_DEVICE_PROGRAM_MAP(cd2650_mem)
- MCFG_DEVICE_IO_MAP(cd2650_io)
- MCFG_DEVICE_DATA_MAP(cd2650_data)
- MCFG_S2650_SENSE_INPUT(READLINE(*this, cd2650_state, cass_r))
- MCFG_S2650_FLAG_OUTPUT(WRITELINE(*this, cd2650_state, cass_w))
+ S2650(config, m_maincpu, XTAL(14'192'640) / 12); // 1.182720MHz according to RE schematic
+ m_maincpu->set_addrmap(AS_PROGRAM, &cd2650_state::cd2650_mem);
+ m_maincpu->set_addrmap(AS_IO, &cd2650_state::cd2650_io);
+ m_maincpu->set_addrmap(AS_DATA, &cd2650_state::cd2650_data);
+ m_maincpu->sense_handler().set(FUNC(cd2650_state::cass_r));
+ m_maincpu->flag_handler().set(FUNC(cd2650_state::cass_w));
f9334_device &outlatch(F9334(config, "outlatch")); // IC26
outlatch.q_out_cb<0>().set(FUNC(cd2650_state::tape_deck_on_w)); // TD ON
@@ -304,27 +305,28 @@ MACHINE_CONFIG_START(cd2650_state::cd2650)
// "Morse Code" program by Mike Durham.
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(14'192'640), 112 * CHARACTER_WIDTH, 0, 80 * CHARACTER_WIDTH, 22 * CHARACTER_LINES, 0, 16 * CHARACTER_LINES)
- MCFG_SCREEN_UPDATE_DRIVER(cd2650_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(XTAL(14'192'640), 112 * CHARACTER_WIDTH, 0, 80 * CHARACTER_WIDTH, 22 * CHARACTER_LINES, 0, 16 * CHARACTER_LINES);
+ screen.set_screen_update(FUNC(cd2650_state::screen_update));
+ screen.set_palette("palette");
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cd2650)
- MCFG_PALETTE_ADD_MONOCHROME("palette")
+ GFXDECODE(config, "gfxdecode", "palette", gfx_cd2650);
+ PALETTE(config, "palette", 2).set_init("palette", FUNC(palette_device::palette_init_monochrome));
/* quickload */
- MCFG_QUICKLOAD_ADD("quickload", cd2650_state, cd2650, "pgm", 1)
+ quickload_image_device &quickload(QUICKLOAD(config, "quickload", 0));
+ quickload.set_handler(snapquick_load_delegate(&QUICKLOAD_LOAD_NAME(cd2650_state, cd2650), this), "pgm", 1);
/* Sound */
SPEAKER(config, "mono").front_center();
- WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
+ WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "mono", 0.25);
BEEP(config, "beeper", 950).add_route(ALL_OUTPUTS, "mono", 0.50); // guess
/* Devices */
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0));
keyboard.set_keyboard_callback(FUNC(cd2650_state::kbd_put));
- MCFG_CASSETTE_ADD( "cassette" )
-MACHINE_CONFIG_END
+ CASSETTE(config, m_cass);
+}
/* ROM definition */
ROM_START( cd2650 )