diff options
Diffstat (limited to 'src/mame/drivers/slicer.cpp')
-rw-r--r-- | src/mame/drivers/slicer.cpp | 52 |
1 files changed, 27 insertions, 25 deletions
diff --git a/src/mame/drivers/slicer.cpp b/src/mame/drivers/slicer.cpp index cc388934a9d..47e5762fdaf 100644 --- a/src/mame/drivers/slicer.cpp +++ b/src/mame/drivers/slicer.cpp @@ -98,16 +98,17 @@ static void slicer_floppies(device_slot_interface &device) device.option_add("8dsdd", FLOPPY_8_DSDD); } -MACHINE_CONFIG_START(slicer_state::slicer) - MCFG_DEVICE_ADD("maincpu", I80186, 16_MHz_XTAL / 2) - MCFG_DEVICE_PROGRAM_MAP(slicer_map) - MCFG_DEVICE_IO_MAP(slicer_io) +void slicer_state::slicer(machine_config &config) +{ + i80186_cpu_device &maincpu(I80186(config, "maincpu", 16_MHz_XTAL / 2)); + maincpu.set_addrmap(AS_PROGRAM, &slicer_state::slicer_map); + maincpu.set_addrmap(AS_IO, &slicer_state::slicer_io); - MCFG_DEVICE_ADD("duart", SCN2681, 3.6864_MHz_XTAL) - MCFG_MC68681_IRQ_CALLBACK(WRITELINE("maincpu", i80186_cpu_device, int0_w)) - MCFG_MC68681_A_TX_CALLBACK(WRITELINE("rs232_1", rs232_port_device, write_txd)) - MCFG_MC68681_B_TX_CALLBACK(WRITELINE("rs232_2", rs232_port_device, write_txd)) - MCFG_MC68681_OUTPORT_CALLBACK(WRITE8(*this, slicer_state, sio_out_w)) + scn2681_device &duart(SCN2681(config, "duart", 3.6864_MHz_XTAL)); + duart.irq_cb().set("maincpu", FUNC(i80186_cpu_device::int0_w)); + duart.a_tx_cb().set("rs232_1", FUNC(rs232_port_device::write_txd)); + duart.b_tx_cb().set("rs232_2", FUNC(rs232_port_device::write_txd)); + duart.outport_cb().set(FUNC(slicer_state::sio_out_w)); rs232_port_device &rs232_1(RS232_PORT(config, "rs232_1", default_rs232_devices, "terminal")); rs232_1.rxd_handler().set("duart", FUNC(scn2681_device::rx_a_w)); @@ -117,10 +118,10 @@ MACHINE_CONFIG_START(slicer_state::slicer) FD1797(config, m_fdc, 16_MHz_XTAL / 2 / 8); m_fdc->intrq_wr_callback().set("maincpu", FUNC(i80186_cpu_device::int1_w)); m_fdc->drq_wr_callback().set("maincpu", FUNC(i80186_cpu_device::drq0_w)); - MCFG_FLOPPY_DRIVE_ADD("fdc:0", slicer_floppies, "525dd", floppy_image_device::default_floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", slicer_floppies, nullptr, floppy_image_device::default_floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("fdc:2", slicer_floppies, nullptr, floppy_image_device::default_floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("fdc:3", slicer_floppies, nullptr, floppy_image_device::default_floppy_formats) + FLOPPY_CONNECTOR(config, "fdc:0", slicer_floppies, "525dd", floppy_image_device::default_floppy_formats); + FLOPPY_CONNECTOR(config, "fdc:1", slicer_floppies, nullptr, floppy_image_device::default_floppy_formats); + FLOPPY_CONNECTOR(config, "fdc:2", slicer_floppies, nullptr, floppy_image_device::default_floppy_formats); + FLOPPY_CONNECTOR(config, "fdc:3", slicer_floppies, nullptr, floppy_image_device::default_floppy_formats); ls259_device &drivelatch(LS259(config, "drivelatch")); // U29 drivelatch.q_out_cb<0>().set("sasi", FUNC(scsi_port_device::write_sel)); @@ -132,18 +133,19 @@ MACHINE_CONFIG_START(slicer_state::slicer) drivelatch.q_out_cb<6>().set(FUNC(slicer_state::drive_size_w)); drivelatch.q_out_cb<7>().set("fdc", FUNC(fd1797_device::dden_w)); - MCFG_DEVICE_ADD("sasi", SCSI_PORT, 0) - MCFG_SCSI_DATA_INPUT_BUFFER("sasi_data_in") - MCFG_SCSI_BSY_HANDLER(WRITELINE("sasi_ctrl_in", input_buffer_device, write_bit3)) - MCFG_SCSI_MSG_HANDLER(WRITELINE("sasi_ctrl_in", input_buffer_device, write_bit4)) - MCFG_SCSI_CD_HANDLER(WRITELINE("sasi_ctrl_in", input_buffer_device, write_bit5)) - MCFG_SCSI_REQ_HANDLER(WRITELINE("sasi_ctrl_in", input_buffer_device, write_bit6)) - MCFG_SCSI_IO_HANDLER(WRITELINE("sasi_ctrl_in", input_buffer_device, write_bit7)) - - MCFG_SCSI_OUTPUT_LATCH_ADD("sasi_data_out", "sasi") - MCFG_DEVICE_ADD("sasi_data_in", INPUT_BUFFER, 0) - MCFG_DEVICE_ADD("sasi_ctrl_in", INPUT_BUFFER, 0) -MACHINE_CONFIG_END + SCSI_PORT(config, m_sasi, 0); + m_sasi->set_data_input_buffer("sasi_data_in"); + m_sasi->bsy_handler().set("sasi_ctrl_in", FUNC(input_buffer_device::write_bit3)); + m_sasi->msg_handler().set("sasi_ctrl_in", FUNC(input_buffer_device::write_bit4)); + m_sasi->cd_handler().set("sasi_ctrl_in", FUNC(input_buffer_device::write_bit5)); + m_sasi->req_handler().set("sasi_ctrl_in", FUNC(input_buffer_device::write_bit6)); + m_sasi->io_handler().set("sasi_ctrl_in", FUNC(input_buffer_device::write_bit7)); + + output_latch_device &sasi_data_out(OUTPUT_LATCH(config, "sasi_data_out")); + m_sasi->set_output_latch(sasi_data_out); + INPUT_BUFFER(config, "sasi_data_in"); + INPUT_BUFFER(config, "sasi_ctrl_in"); +} ROM_START( slicer ) ROM_REGION(0x8001, "bios", 0) |