diff options
Diffstat (limited to 'src/mame/drivers/cd2650.cpp')
-rw-r--r-- | src/mame/drivers/cd2650.cpp | 38 |
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 ) |