diff options
Diffstat (limited to 'src/mame/drivers/coco3.cpp')
-rw-r--r-- | src/mame/drivers/coco3.cpp | 75 |
1 files changed, 38 insertions, 37 deletions
diff --git a/src/mame/drivers/coco3.cpp b/src/mame/drivers/coco3.cpp index d7c8033b195..9c985218e0b 100644 --- a/src/mame/drivers/coco3.cpp +++ b/src/mame/drivers/coco3.cpp @@ -242,14 +242,14 @@ DEVICE_INPUT_DEFAULTS_END // MACHINE CONFIGURATION //************************************************************************** -MACHINE_CONFIG_START(coco3_state::coco3) - MCFG_DEVICE_MODIFY(":") - MCFG_DEVICE_CLOCK(XTAL(28'636'363) / 32) +void coco3_state::coco3(machine_config &config) +{ + this->set_clock(XTAL(28'636'363) / 32); // basic machine hardware - MCFG_DEVICE_ADD(MAINCPU_TAG, MC6809E, DERIVED_CLOCK(1, 1)) - MCFG_DEVICE_PROGRAM_MAP(coco3_mem) - MCFG_DEVICE_DISASSEMBLE_OVERRIDE(coco_state, dasm_override) + MC6809E(config, m_maincpu, DERIVED_CLOCK(1, 1)); + m_maincpu->set_addrmap(AS_PROGRAM, &coco3_state::coco3_mem); + m_maincpu->set_dasm_override(FUNC(coco_state::dasm_override)); // devices pia6821_device &pia0(PIA6821(config, PIA0_TAG, 0)); @@ -271,11 +271,11 @@ MACHINE_CONFIG_START(coco3_state::coco3) pia1.irqb_handler().set(FUNC(coco_state::pia1_firq_b)); // Becker Port device - MCFG_DEVICE_ADD(DWSOCK_TAG, COCO_DWSOCK, 0) + COCO_DWSOCK(config, DWSOCK_TAG, 0); - MCFG_CASSETTE_ADD("cassette") - MCFG_CASSETTE_FORMATS(coco_cassette_formats) - MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED) + CASSETTE(config, m_cassette); + m_cassette->set_formats(coco_cassette_formats); + m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED); rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, "printer")); rs232.dcd_handler().set(PIA1_TAG, FUNC(pia6821_device::ca1_w)); @@ -286,13 +286,14 @@ MACHINE_CONFIG_START(coco3_state::coco3) cartslot.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); cartslot.halt_callback().set_inputline(m_maincpu, INPUT_LINE_HALT); - COCO_VHD(config, m_vhd_0, 0); - COCO_VHD(config, m_vhd_1, 0); + COCO_VHD(config, m_vhd_0, 0, m_maincpu); + COCO_VHD(config, m_vhd_1, 0, m_maincpu); // video hardware config.set_default_layout(layout_coco3); GIME_NTSC(config, m_gime, XTAL(28'636'363), MAINCPU_TAG, RAM_TAG, CARTRIDGE_TAG, MAINCPU_TAG); + m_gime->set_screen(COMPOSITE_SCREEN_TAG); m_gime->hsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::ca1_w)); m_gime->fsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::cb1_w)); m_gime->irq_wr_callback().set(FUNC(coco3_state::gime_irq_w)); @@ -300,20 +301,20 @@ MACHINE_CONFIG_START(coco3_state::coco3) m_gime->floating_bus_rd_callback().set(FUNC(coco3_state::floating_bus_r)); // composite monitor - MCFG_SCREEN_ADD(COMPOSITE_SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_DRIVER(coco3_state, screen_update) - MCFG_SCREEN_SIZE(640, 243) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 1, 241-1) - MCFG_SCREEN_VBLANK_TIME(0) + screen_device &composite_screen(SCREEN(config, COMPOSITE_SCREEN_TAG, SCREEN_TYPE_RASTER)); + composite_screen.set_refresh_hz(60); + composite_screen.set_screen_update(FUNC(coco3_state::screen_update)); + composite_screen.set_size(640, 243); + composite_screen.set_visarea(0, 640-1, 1, 241-1); + composite_screen.set_vblank_time(0); // RGB monitor - MCFG_SCREEN_ADD(RGB_SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_DRIVER(coco3_state, screen_update) - MCFG_SCREEN_SIZE(640, 243) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 1, 241-1) - MCFG_SCREEN_VBLANK_TIME(0) + screen_device &rgb_screen(SCREEN(config, RGB_SCREEN_TAG, SCREEN_TYPE_RASTER)); + rgb_screen.set_refresh_hz(60); + rgb_screen.set_screen_update(FUNC(coco3_state::screen_update)); + rgb_screen.set_size(640, 243); + rgb_screen.set_visarea(0, 640-1, 1, 241-1); + rgb_screen.set_vblank_time(0); // sound hardware coco_sound(config); @@ -325,32 +326,32 @@ MACHINE_CONFIG_START(coco3_state::coco3) coco_floating(config); // software lists - MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart") - MCFG_SOFTWARE_LIST_FILTER("cart_list","COCO3") + SOFTWARE_LIST(config, "cart_list").set_original("coco_cart").set_filter("COCO3"); - MCFG_SOFTWARE_LIST_ADD("flop_list","coco_flop") - MCFG_SOFTWARE_LIST_FILTER("flop_list","COCO3") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "flop_list").set_original("coco_flop").set_filter("COCO3"); +} -MACHINE_CONFIG_START(coco3_state::coco3p) +void coco3_state::coco3p(machine_config &config) +{ coco3(config); - MCFG_DEVICE_MODIFY(":") - MCFG_DEVICE_CLOCK(XTAL(28'475'000) / 32) + this->set_clock(XTAL(28'475'000) / 32); // An additional 4.433618 MHz XTAL is required for PAL color encoding GIME_PAL(config.replace(), m_gime, XTAL(28'475'000), MAINCPU_TAG, RAM_TAG, CARTRIDGE_TAG, MAINCPU_TAG); + m_gime->set_screen(COMPOSITE_SCREEN_TAG); m_gime->hsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::ca1_w)); m_gime->fsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::cb1_w)); m_gime->irq_wr_callback().set(FUNC(coco3_state::gime_irq_w)); m_gime->firq_wr_callback().set(FUNC(coco3_state::gime_firq_w)); m_gime->floating_bus_rd_callback().set(FUNC(coco3_state::floating_bus_r)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(coco3_state::coco3h) +void coco3_state::coco3h(machine_config &config) +{ coco3(config); - MCFG_DEVICE_REPLACE(MAINCPU_TAG, HD6309E, DERIVED_CLOCK(1, 1)) - MCFG_DEVICE_PROGRAM_MAP(coco3_mem) -MACHINE_CONFIG_END + HD6309E(config.replace(), m_maincpu, DERIVED_CLOCK(1, 1)); + m_maincpu->set_addrmap(AS_PROGRAM, &coco3_state::coco3_mem); +} void coco3_state::coco3dw1(machine_config &config) { |