diff options
Diffstat (limited to 'src/mame/drivers/pcd.cpp')
-rw-r--r-- | src/mame/drivers/pcd.cpp | 54 |
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 |