summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/samcoupe.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/samcoupe.cpp')
-rw-r--r--src/mame/drivers/samcoupe.cpp66
1 files changed, 32 insertions, 34 deletions
diff --git a/src/mame/drivers/samcoupe.cpp b/src/mame/drivers/samcoupe.cpp
index ada3169c91a..2f13fdd8745 100644
--- a/src/mame/drivers/samcoupe.cpp
+++ b/src/mame/drivers/samcoupe.cpp
@@ -504,59 +504,57 @@ static void samcoupe_floppies(device_slot_interface &device)
device.option_add("35dd", FLOPPY_35_DD);
}
-
-MACHINE_CONFIG_START(samcoupe_state::samcoupe)
+void samcoupe_state::samcoupe(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, SAMCOUPE_XTAL_X1 / 4) /* 6 MHz */
- MCFG_DEVICE_PROGRAM_MAP(samcoupe_mem)
- MCFG_DEVICE_IO_MAP(samcoupe_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", samcoupe_state, samcoupe_frame_interrupt)
-
+ Z80(config, m_maincpu, SAMCOUPE_XTAL_X1 / 4); /* 6 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &samcoupe_state::samcoupe_mem);
+ m_maincpu->set_addrmap(AS_IO, &samcoupe_state::samcoupe_io);
+ m_maincpu->set_vblank_int("screen", FUNC(samcoupe_state::samcoupe_frame_interrupt));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(SAMCOUPE_XTAL_X1/2, SAM_TOTAL_WIDTH, 0, SAM_BORDER_LEFT + SAM_SCREEN_WIDTH + SAM_BORDER_RIGHT, SAM_TOTAL_HEIGHT, 0, SAM_BORDER_TOP + SAM_SCREEN_HEIGHT + SAM_BORDER_BOTTOM)
- MCFG_SCREEN_UPDATE_DRIVER(samcoupe_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(SAMCOUPE_XTAL_X1/2, SAM_TOTAL_WIDTH, 0, SAM_BORDER_LEFT + SAM_SCREEN_WIDTH + SAM_BORDER_RIGHT,
+ SAM_TOTAL_HEIGHT, 0, SAM_BORDER_TOP + SAM_SCREEN_HEIGHT + SAM_BORDER_BOTTOM);
+ m_screen->set_screen_update(FUNC(samcoupe_state::screen_update));
+ m_screen->set_palette("palette");
- MCFG_PALETTE_ADD("palette", 128)
- MCFG_PALETTE_INIT_OWNER(samcoupe_state, samcoupe)
+ PALETTE(config, "palette", 128).set_init(FUNC(samcoupe_state::palette_init_samcoupe));
/* devices */
- MCFG_DEVICE_ADD(m_lpt1, CENTRONICS, centronics_devices, "printer")
- MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, samcoupe_state, write_lpt1_busy))
+ CENTRONICS(config, m_lpt1, centronics_devices, "printer");
+ m_lpt1->busy_handler().set(FUNC(samcoupe_state::write_lpt1_busy));
- MCFG_CENTRONICS_OUTPUT_LATCH_ADD("lpt1_data_out", "lpt1")
+ output_latch_device &lpt1_data_out(OUTPUT_LATCH(config, "lpt1_data_out"));
+ m_lpt1->set_output_latch(lpt1_data_out);
- MCFG_DEVICE_ADD(m_lpt2, CENTRONICS, centronics_devices, "printer")
- MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, samcoupe_state, write_lpt2_busy))
+ CENTRONICS(config, m_lpt2, centronics_devices, "printer");
+ m_lpt2->busy_handler().set(FUNC(samcoupe_state::write_lpt2_busy));
- MCFG_CENTRONICS_OUTPUT_LATCH_ADD("lpt2_data_out", "lpt2")
+ output_latch_device &lpt2_data_out(OUTPUT_LATCH(config, "lpt2_data_out"));
+ m_lpt2->set_output_latch(lpt2_data_out);
- MCFG_DEVICE_ADD("sambus_clock", MSM6242, 32.768_kHz_XTAL)
- MCFG_CASSETTE_ADD("cassette")
- MCFG_CASSETTE_FORMATS(tzx_cassette_formats)
- MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED)
- MCFG_CASSETTE_INTERFACE("samcoupe_cass")
+ MSM6242(config, m_rtc, 32.768_kHz_XTAL);
- MCFG_SOFTWARE_LIST_ADD("cass_list","samcoupe_cass")
+ CASSETTE(config, m_cassette);
+ m_cassette->set_formats(tzx_cassette_formats);
+ m_cassette->set_default_state((cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED));
+ m_cassette->set_interface("samcoupe_cass");
+ SOFTWARE_LIST(config, "cass_list").set_original("samcoupe_cass");
WD1772(config, m_fdc, SAMCOUPE_XTAL_X1/3);
- MCFG_FLOPPY_DRIVE_ADD("wd1772:0", samcoupe_floppies, "35dd", samcoupe_state::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("wd1772:1", samcoupe_floppies, "35dd", samcoupe_state::floppy_formats)
- MCFG_SOFTWARE_LIST_ADD("flop_list","samcoupe_flop")
+ FLOPPY_CONNECTOR(config, "wd1772:0", samcoupe_floppies, "35dd", samcoupe_state::floppy_formats);
+ FLOPPY_CONNECTOR(config, "wd1772:1", samcoupe_floppies, "35dd", samcoupe_state::floppy_formats);
+ SOFTWARE_LIST(config, "flop_list").set_original("samcoupe_flop");
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
- MCFG_SAA1099_ADD("saa1099", SAMCOUPE_XTAL_X1/3) /* 8 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50);
+ SAA1099(config, "saa1099", SAMCOUPE_XTAL_X1/3).add_route(ALL_OUTPUTS, "mono", 0.50); /* 8 MHz */
/* internal ram */
RAM(config, RAM_TAG).set_default_size("512K").set_extra_options("256K,1280K,1536K,2304K,2560K,3328K,3584K,4352K,4608K");
-MACHINE_CONFIG_END
+}
/***************************************************************************