diff options
Diffstat (limited to 'src/mame/drivers/mycom.cpp')
-rw-r--r-- | src/mame/drivers/mycom.cpp | 44 |
1 files changed, 21 insertions, 23 deletions
diff --git a/src/mame/drivers/mycom.cpp b/src/mame/drivers/mycom.cpp index e4a7e440c27..609dc44fe5a 100644 --- a/src/mame/drivers/mycom.cpp +++ b/src/mame/drivers/mycom.cpp @@ -508,11 +508,12 @@ void mycom_state::init_mycom() membank("boot")->configure_entries(0, 2, &RAM[0x0000], 0x10000); } -MACHINE_CONFIG_START(mycom_state::mycom) +void mycom_state::mycom(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, 10_MHz_XTAL / 4) - MCFG_DEVICE_PROGRAM_MAP(mycom_map) - MCFG_DEVICE_IO_MAP(mycom_io) + Z80(config, m_maincpu, 10_MHz_XTAL / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &mycom_state::mycom_map); + m_maincpu->set_addrmap(AS_IO, &mycom_state::mycom_io); I8255(config, m_ppi0); m_ppi0->out_pa_callback().set(FUNC(mycom_state::mycom_04_w)); @@ -525,19 +526,19 @@ MACHINE_CONFIG_START(mycom_state::mycom) m_ppi1->out_pc_callback().set(FUNC(mycom_state::mycom_0a_w)); I8255(config, m_ppi2); - m_ppi2->in_pb_callback().set("rtc", FUNC(msm5832_device::data_r)); - m_ppi2->out_pb_callback().set("rtc", FUNC(msm5832_device::data_w)); + m_ppi2->in_pb_callback().set(m_rtc, FUNC(msm5832_device::data_r)); + m_ppi2->out_pb_callback().set(m_rtc, FUNC(msm5832_device::data_w)); m_ppi2->out_pc_callback().set(FUNC(mycom_state::mycom_rtc_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 192-1) + 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_screen_update("crtc", FUNC(mc6845_device::screen_update)); + screen.set_size(640, 480); + screen.set_visarea(0, 320-1, 0, 192-1); PALETTE(config, m_palette, palette_device::MONOCHROME); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_mycom) + GFXDECODE(config, "gfxdecode", m_palette, gfx_mycom); /* Manual states clock is 1.008mhz for 40 cols, and 2.016 mhz for 80 cols. The CRTC is a HD46505S - same as a 6845. The start registers need to be readable. */ @@ -551,22 +552,19 @@ MACHINE_CONFIG_START(mycom_state::mycom) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05); - MCFG_DEVICE_ADD("sn1", SN76489, 10_MHz_XTAL / 4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.50) + SN76489(config, m_audio, 10_MHz_XTAL / 4).add_route(ALL_OUTPUTS, "mono", 1.50); /* Devices */ - MCFG_DEVICE_ADD("rtc", MSM5832, 32.768_kHz_XTAL) + MSM5832(config, m_rtc, 32.768_kHz_XTAL); - MCFG_CASSETTE_ADD("cassette") + CASSETTE(config, m_cass); FD1771(config, m_fdc, 16_MHz_XTAL / 16); - MCFG_FLOPPY_DRIVE_ADD("fdc:0", mycom_floppies, "525sd", floppy_image_device::default_floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", mycom_floppies, "525sd", floppy_image_device::default_floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) + FLOPPY_CONNECTOR(config, "fdc:0", mycom_floppies, "525sd", floppy_image_device::default_floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "fdc:1", mycom_floppies, "525sd", floppy_image_device::default_floppy_formats).enable_sound(true); - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard_timer", mycom_state, mycom_kbd, attotime::from_hz(20)) -MACHINE_CONFIG_END + TIMER(config, "keyboard_timer").configure_periodic(FUNC(mycom_state::mycom_kbd), attotime::from_hz(20)); +} /* ROM definition */ ROM_START( mycom ) |