diff options
Diffstat (limited to 'src/devices/video/huc6272.cpp')
-rw-r--r-- | src/devices/video/huc6272.cpp | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/src/devices/video/huc6272.cpp b/src/devices/video/huc6272.cpp index 839bf285e20..ffe856c1270 100644 --- a/src/devices/video/huc6272.cpp +++ b/src/devices/video/huc6272.cpp @@ -379,21 +379,30 @@ WRITE32_MEMBER( huc6272_device::write ) // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(huc6272_device::device_add_mconfig) - MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0) - MCFG_SCSI_RST_HANDLER(WRITELINE("scsi_ctrl_in", input_buffer_device, write_bit7)) - MCFG_SCSI_BSY_HANDLER(WRITELINE("scsi_ctrl_in", input_buffer_device, write_bit6)) - MCFG_SCSI_REQ_HANDLER(WRITELINE("scsi_ctrl_in", input_buffer_device, write_bit5)) - MCFG_SCSI_MSG_HANDLER(WRITELINE("scsi_ctrl_in", input_buffer_device, write_bit4)) - MCFG_SCSI_CD_HANDLER(WRITELINE("scsi_ctrl_in", input_buffer_device, write_bit3)) - MCFG_SCSI_IO_HANDLER(WRITELINE("scsi_ctrl_in", input_buffer_device, write_bit2)) - MCFG_SCSI_SEL_HANDLER(WRITELINE("scsi_ctrl_in", input_buffer_device, write_bit1)) - - MCFG_SCSI_DATA_INPUT_BUFFER("scsi_data_in") - - MCFG_SCSI_OUTPUT_LATCH_ADD("scsi_data_out", "scsi") - MCFG_DEVICE_ADD("scsi_ctrl_in", INPUT_BUFFER, 0) - MCFG_DEVICE_ADD("scsi_data_in", INPUT_BUFFER, 0) - - MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "cdrom", SCSICD, SCSI_ID_1) -MACHINE_CONFIG_END +void huc6272_device::device_add_mconfig(machine_config &config) +{ + scsi_port_device &scsibus(SCSI_PORT(config, "scsi")); + scsibus.set_data_input_buffer("scsi_data_in"); + scsibus.rst_handler().set("scsi_ctrl_in", FUNC(input_buffer_device::write_bit7)); + scsibus.bsy_handler().set("scsi_ctrl_in", FUNC(input_buffer_device::write_bit6)); + scsibus.req_handler().set("scsi_ctrl_in", FUNC(input_buffer_device::write_bit5)); + scsibus.msg_handler().set("scsi_ctrl_in", FUNC(input_buffer_device::write_bit4)); + scsibus.cd_handler().set("scsi_ctrl_in", FUNC(input_buffer_device::write_bit3)); + scsibus.io_handler().set("scsi_ctrl_in", FUNC(input_buffer_device::write_bit2)); + scsibus.sel_handler().set("scsi_ctrl_in", FUNC(input_buffer_device::write_bit1)); + + output_latch_device &scsiout(OUTPUT_LATCH(config, "scsi_data_out")); + scsiout.bit_handler<0>().set("scsi", FUNC(scsi_port_device::write_data0)); + scsiout.bit_handler<1>().set("scsi", FUNC(scsi_port_device::write_data1)); + scsiout.bit_handler<2>().set("scsi", FUNC(scsi_port_device::write_data2)); + scsiout.bit_handler<3>().set("scsi", FUNC(scsi_port_device::write_data3)); + scsiout.bit_handler<4>().set("scsi", FUNC(scsi_port_device::write_data4)); + scsiout.bit_handler<5>().set("scsi", FUNC(scsi_port_device::write_data5)); + scsiout.bit_handler<6>().set("scsi", FUNC(scsi_port_device::write_data6)); + scsiout.bit_handler<7>().set("scsi", FUNC(scsi_port_device::write_data7)); + + INPUT_BUFFER(config, "scsi_ctrl_in"); + INPUT_BUFFER(config, "scsi_data_in"); + + scsibus.set_slot_device(1, "cdrom", SCSICD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_1)); +} |