summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/pcd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/pcd.cpp')
-rw-r--r--src/mame/drivers/pcd.cpp54
1 files changed, 28 insertions, 26 deletions
diff --git a/src/mame/drivers/pcd.cpp b/src/mame/drivers/pcd.cpp
index c95dc57f70a..65c8328b54a 100644
--- a/src/mame/drivers/pcd.cpp
+++ b/src/mame/drivers/pcd.cpp
@@ -500,14 +500,15 @@ static INPUT_PORTS_START(pcx)
PORT_CONFSETTING(0x02, "SINIX 1.2")
INPUT_PORTS_END
-MACHINE_CONFIG_START(pcd_state::pcd)
- MCFG_DEVICE_ADD("maincpu", I80186, 16_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(pcd_map)
- MCFG_DEVICE_IO_MAP(pcd_io)
- MCFG_80186_TMROUT1_HANDLER(WRITELINE(*this, pcd_state, i186_timer1_w))
- MCFG_80186_IRQ_SLAVE_ACK(READ8(*this, pcd_state, irq_callback))
+void pcd_state::pcd(machine_config &config)
+{
+ I80186(config, m_maincpu, 16_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcd_state::pcd_map);
+ m_maincpu->set_addrmap(AS_IO, &pcd_state::pcd_io);
+ m_maincpu->tmrout1_handler().set(FUNC(pcd_state::i186_timer1_w));
+ m_maincpu->read_slave_ack_callback().set(FUNC(pcd_state::irq_callback));
- MCFG_TIMER_DRIVER_ADD_PERIODIC("timer0_tick", pcd_state, timer0_tick, attotime::from_hz(16_MHz_XTAL / 24)) // adjusted to pass post
+ TIMER(config, "timer0_tick").configure_periodic(FUNC(pcd_state::timer0_tick), attotime::from_hz(16_MHz_XTAL / 24)); // adjusted to pass post
PIC8259(config, m_pic1, 0);
m_pic1->out_int_callback().set(m_maincpu, FUNC(i80186_cpu_device::int0_w));
@@ -529,8 +530,8 @@ MACHINE_CONFIG_START(pcd_state::pcd)
m_fdc->enmf_rd_callback().set_constant(0);
// floppy drives
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", pcd_floppies, "55f", pcd_state::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", pcd_floppies, "55f", pcd_state::floppy_formats)
+ FLOPPY_CONNECTOR(config, "fdc:0", pcd_floppies, "55f", pcd_state::floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:1", pcd_floppies, "55f", pcd_state::floppy_formats);
// usart
MC2661(config, m_usart[0], 4.9152_MHz_XTAL);
@@ -555,8 +556,7 @@ MACHINE_CONFIG_START(pcd_state::pcd)
// sound hardware
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50);
// rtc
MC146818(config, m_rtc, 32.768_kHz_XTAL);
@@ -569,23 +569,25 @@ MACHINE_CONFIG_START(pcd_state::pcd)
pcd_keyboard_device &keyboard(PCD_KEYBOARD(config, "keyboard", 0));
keyboard.out_tx_handler().set(m_usart[1], FUNC(mc2661_device::rx_w));
- MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0)
- MCFG_SCSI_DATA_INPUT_BUFFER("scsi_data_in")
- MCFG_SCSI_MSG_HANDLER(WRITELINE(*this, pcd_state, write_scsi_msg))
- MCFG_SCSI_BSY_HANDLER(WRITELINE(*this, pcd_state, write_scsi_bsy))
- MCFG_SCSI_IO_HANDLER(WRITELINE(*this, pcd_state, write_scsi_io))
- MCFG_SCSI_CD_HANDLER(WRITELINE(*this, pcd_state, write_scsi_cd))
- MCFG_SCSI_REQ_HANDLER(WRITELINE(*this, pcd_state, write_scsi_req))
+ SCSI_PORT(config, m_scsi, 0);
+ m_scsi->set_data_input_buffer("scsi_data_in");
+ m_scsi->msg_handler().set(FUNC(pcd_state::write_scsi_msg));
+ m_scsi->bsy_handler().set(FUNC(pcd_state::write_scsi_bsy));
+ m_scsi->io_handler().set(FUNC(pcd_state::write_scsi_io));
+ m_scsi->cd_handler().set(FUNC(pcd_state::write_scsi_cd));
+ m_scsi->req_handler().set(FUNC(pcd_state::write_scsi_req));
+
+ output_latch_device &scsi_out(OUTPUT_LATCH(config, "scsi_data_out", 0));
+ m_scsi->set_output_latch(scsi_out);
- MCFG_SCSI_OUTPUT_LATCH_ADD("scsi_data_out", "scsi")
- MCFG_DEVICE_ADD("scsi_data_in", INPUT_BUFFER, 0)
- MCFG_SCSIDEV_ADD("scsi:1", "harddisk", OMTI5100, SCSI_ID_0)
-MACHINE_CONFIG_END
+ INPUT_BUFFER(config, "scsi_data_in", 0);
+ m_scsi->set_slot_device(1, "harddisk", OMTI5100, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0));
+}
-MACHINE_CONFIG_START(pcd_state::pcx)
+void pcd_state::pcx(machine_config &config)
+{
pcd(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(pcx_io)
+ m_maincpu->set_addrmap(AS_IO, &pcd_state::pcx_io);
pcx_video_device &video(PCX_VIDEO(config.replace(), "video", 0));
video.txd_handler().set("keyboard", FUNC(pcd_keyboard_device::t0_w));
@@ -593,7 +595,7 @@ MACHINE_CONFIG_START(pcd_state::pcx)
subdevice<pcd_keyboard_device>("keyboard")->out_tx_handler().set("video", FUNC(pcx_video_device::rx_w));
m_usart[1]->txd_handler().set_nop();
-MACHINE_CONFIG_END
+}
//**************************************************************************
// ROM DEFINITIONS