summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/pc8001.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/pc8001.cpp')
-rw-r--r--src/mame/drivers/pc8001.cpp102
1 files changed, 50 insertions, 52 deletions
diff --git a/src/mame/drivers/pc8001.cpp b/src/mame/drivers/pc8001.cpp
index c13e1f13755..acbdbed71b0 100644
--- a/src/mame/drivers/pc8001.cpp
+++ b/src/mame/drivers/pc8001.cpp
@@ -479,101 +479,99 @@ void pc8001_state::machine_start()
/* Machine Drivers */
-void pc8001_state::pc8001(machine_config &config)
-{
+MACHINE_CONFIG_START(pc8001_state::pc8001)
/* basic machine hardware */
- Z80(config, m_maincpu, XTAL(4'000'000));
- m_maincpu->set_addrmap(AS_PROGRAM, &pc8001_state::pc8001_mem);
- m_maincpu->set_addrmap(AS_IO, &pc8001_state::pc8001_io);
+ MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(4'000'000))
+ MCFG_DEVICE_PROGRAM_MAP(pc8001_mem)
+ MCFG_DEVICE_IO_MAP(pc8001_io)
/* video hardware */
- screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_screen_update(UPD3301_TAG, FUNC(upd3301_device::screen_update));
- screen.set_size(640, 220);
- screen.set_visarea(0, 640-1, 0, 200-1);
+ MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_UPDATE_DEVICE(UPD3301_TAG, upd3301_device, screen_update)
+ MCFG_SCREEN_SIZE(640, 220)
+ MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- BEEP(config, m_beep, 2000).add_route(ALL_OUTPUTS, "mono", 0.25);
+ MCFG_DEVICE_ADD("beeper", BEEP, 2000)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* devices */
- I8251(config, I8251_TAG, 0);
+ MCFG_DEVICE_ADD(I8251_TAG, I8251, 0)
- I8255A(config, I8255A_TAG, 0);
+ MCFG_DEVICE_ADD(I8255A_TAG, I8255A, 0)
I8257(config, m_dma, XTAL(4'000'000));
m_dma->out_hrq_cb().set(FUNC(pc8001_state::hrq_w));
m_dma->in_memr_cb().set(FUNC(pc8001_state::dma_mem_r));
- m_dma->out_iow_cb<2>().set(m_crtc, FUNC(upd3301_device::dack_w));
+ m_dma->out_iow_cb<2>().set(UPD3301_TAG, FUNC(upd3301_device::dack_w));
UPD1990A(config, m_rtc);
- UPD3301(config, m_crtc, XTAL(14'318'181));
- m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(pc8001_state::pc8001_display_pixels), this);
- m_crtc->drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w));
- m_crtc->set_screen(SCREEN_TAG);
+ MCFG_DEVICE_ADD(UPD3301_TAG, UPD3301, XTAL(14'318'181))
+ MCFG_UPD3301_CHARACTER_WIDTH(8)
+ MCFG_UPD3301_DRAW_CHARACTER_CALLBACK_OWNER(pc8001_state, pc8001_display_pixels)
+ MCFG_UPD3301_DRQ_CALLBACK(WRITELINE(m_dma, i8257_device, dreq2_w))
+ MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
- CENTRONICS(config, m_centronics, centronics_devices, "printer");
- m_centronics->ack_handler().set(FUNC(pc8001_state::write_centronics_ack));
- m_centronics->busy_handler().set(FUNC(pc8001_state::write_centronics_busy));
+ MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
+ MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, pc8001_state, write_centronics_ack))
+ MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, pc8001_state, write_centronics_busy))
- OUTPUT_LATCH(config, m_cent_data_out);
- m_centronics->set_output_latch(*m_cent_data_out);
+ MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
- CASSETTE(config, m_cassette);
- m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED);
+ MCFG_CASSETTE_ADD("cassette")
+ MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED)
RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("32K,64K");
-}
+MACHINE_CONFIG_END
-void pc8001mk2_state::pc8001mk2(machine_config &config)
-{
+MACHINE_CONFIG_START(pc8001mk2_state::pc8001mk2)
/* basic machine hardware */
- Z80(config, m_maincpu, XTAL(4'000'000));
- m_maincpu->set_addrmap(AS_PROGRAM, &pc8001mk2_state::pc8001mk2_mem);
- m_maincpu->set_addrmap(AS_IO, &pc8001mk2_state::pc8001mk2_io);
+ MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(4'000'000))
+ MCFG_DEVICE_PROGRAM_MAP(pc8001mk2_mem)
+ MCFG_DEVICE_IO_MAP(pc8001mk2_io)
/* video hardware */
- screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_screen_update(UPD3301_TAG, FUNC(upd3301_device::screen_update));
- screen.set_size(640, 220);
- screen.set_visarea(0, 640-1, 0, 200-1);
+ MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_UPDATE_DEVICE(UPD3301_TAG, upd3301_device, screen_update)
+ MCFG_SCREEN_SIZE(640, 220)
+ MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- BEEP(config, m_beep, 2000).add_route(ALL_OUTPUTS, "mono", 0.25);
+ MCFG_DEVICE_ADD("beeper", BEEP, 2000)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* devices */
- I8251(config, I8251_TAG, 0);
+ MCFG_DEVICE_ADD(I8251_TAG, I8251, 0)
- I8255A(config, I8255A_TAG, 0);
+ MCFG_DEVICE_ADD(I8255A_TAG, I8255A, 0)
I8257(config, m_dma, XTAL(4'000'000));
m_dma->out_hrq_cb().set(FUNC(pc8001_state::hrq_w));
m_dma->in_memr_cb().set(FUNC(pc8001_state::dma_mem_r));
- m_dma->out_iow_cb<2>().set(m_crtc, FUNC(upd3301_device::dack_w));
+ m_dma->out_iow_cb<2>().set(UPD3301_TAG, FUNC(upd3301_device::dack_w));
UPD1990A(config, m_rtc);
- UPD3301(config, m_crtc, XTAL(14'318'181));
- m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(pc8001_state::pc8001_display_pixels), this);
- m_crtc->drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w));
- m_crtc->set_screen(SCREEN_TAG);
+ MCFG_DEVICE_ADD(UPD3301_TAG, UPD3301, XTAL(14'318'181))
+ MCFG_UPD3301_CHARACTER_WIDTH(8)
+ MCFG_UPD3301_DRAW_CHARACTER_CALLBACK_OWNER(pc8001_state, pc8001_display_pixels)
+ MCFG_UPD3301_DRQ_CALLBACK(WRITELINE(m_dma, i8257_device, dreq2_w))
+ MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
- CENTRONICS(config, m_centronics, centronics_devices, "printer");
+ MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
- OUTPUT_LATCH(config, m_cent_data_out);
- m_centronics->set_output_latch(*m_cent_data_out);
+ MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
- CASSETTE(config, m_cassette);
- m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED);
+ MCFG_CASSETTE_ADD("cassette")
+ MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED)
RAM(config, RAM_TAG).set_default_size("64K");
-}
+MACHINE_CONFIG_END
/* ROMs */