diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua index 20b368b0772..6512aebcbe6 100644 --- a/scripts/src/bus.lua +++ b/scripts/src/bus.lua @@ -2143,6 +2143,7 @@ end --------------------------------------------------- -- --@src/devices/bus/nscsi/cd.h,BUSES["NSCSI"] = true +--@src/devices/bus/nscsi/devices.h,BUSES["NSCSI"] = true --@src/devices/bus/nscsi/hd.h,BUSES["NSCSI"] = true --@src/devices/bus/nscsi/s1410.h,BUSES["NSCSI"] = true --------------------------------------------------- @@ -2151,6 +2152,8 @@ if (BUSES["NSCSI"]~=null) then files { MAME_DIR .. "src/devices/bus/nscsi/cd.cpp", MAME_DIR .. "src/devices/bus/nscsi/cd.h", + MAME_DIR .. "src/devices/bus/nscsi/devices.cpp", + MAME_DIR .. "src/devices/bus/nscsi/devices.h", MAME_DIR .. "src/devices/bus/nscsi/hd.cpp", MAME_DIR .. "src/devices/bus/nscsi/hd.h", MAME_DIR .. "src/devices/bus/nscsi/s1410.cpp", diff --git a/src/devices/bus/a2bus/a2hsscsi.cpp b/src/devices/bus/a2bus/a2hsscsi.cpp index c9bc0210175..98c612dae78 100644 --- a/src/devices/bus/a2bus/a2hsscsi.cpp +++ b/src/devices/bus/a2bus/a2hsscsi.cpp @@ -40,8 +40,7 @@ #include "emu.h" #include "a2hsscsi.h" -#include "bus/nscsi/cd.h" -#include "bus/nscsi/hd.h" +#include "bus/nscsi/devices.h" /*************************************************************************** PARAMETERS @@ -57,13 +56,6 @@ DEFINE_DEVICE_TYPE(A2BUS_HSSCSI, a2bus_hsscsi_device, "a2hsscsi", "Apple II High #define SCSI_BUS_TAG "scsibus" #define SCSI_5380_TAG "scsibus:7:ncr5380" -static void hsscsi_devices(device_slot_interface &device) -{ - device.option_add("cdrom", NSCSI_CDROM); - device.option_add("harddisk", NSCSI_HARDDISK); - device.option_add_internal("ncr5380", NCR53C80); -} - ROM_START( hsscsi ) ROM_REGION(0x8000, SCSI_ROM_REGION, 0) ROM_LOAD( "341-0803.bin", 0x0000, 0x8000, CRC(2c15618b) SHA1(7d32227299933bfc1b7f8bc2062906fdfe530674) ) @@ -80,14 +72,14 @@ ROM_END void a2bus_hsscsi_device::device_add_mconfig(machine_config &config) { NSCSI_BUS(config, m_scsibus); - NSCSI_CONNECTOR(config, "scsibus:0", hsscsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsibus:1", hsscsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsibus:2", hsscsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsibus:3", hsscsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsibus:4", hsscsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsibus:5", hsscsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsibus:6", hsscsi_devices, "harddisk", false); - NSCSI_CONNECTOR(config, "scsibus:7", hsscsi_devices, "ncr5380", true).set_option_machine_config("ncr5380", [this](device_t *device) { + NSCSI_CONNECTOR(config, "scsibus:0", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsibus:1", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsibus:2", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsibus:3", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsibus:4", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsibus:5", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsibus:6", default_scsi_devices, "harddisk", false); + NSCSI_CONNECTOR(config, "scsibus:7").option_set("ncr5380", NCR53C80).machine_config([this](device_t *device) { downcast(*device).drq_handler().set(*this, FUNC(a2bus_hsscsi_device::drq_w)); }); } diff --git a/src/devices/bus/a2bus/a2scsi.cpp b/src/devices/bus/a2bus/a2scsi.cpp index 3d4c7ac6cb6..9c3e4bc6c85 100644 --- a/src/devices/bus/a2bus/a2scsi.cpp +++ b/src/devices/bus/a2bus/a2scsi.cpp @@ -33,8 +33,7 @@ #include "emu.h" #include "a2scsi.h" -#include "bus/nscsi/cd.h" -#include "bus/nscsi/hd.h" +#include "bus/nscsi/devices.h" /*************************************************************************** PARAMETERS @@ -50,13 +49,6 @@ DEFINE_DEVICE_TYPE(A2BUS_SCSI, a2bus_scsi_device, "a2scsi", "Apple II SCSI Card" #define SCSI_BUS_TAG "scsibus" #define SCSI_5380_TAG "scsibus:7:ncr5380" -static void scsi_devices(device_slot_interface &device) -{ - device.option_add("cdrom", NSCSI_CDROM_APPLE); - device.option_add("harddisk", NSCSI_HARDDISK); - device.option_add_internal("ncr5380", NCR5380N); -} - ROM_START( scsi ) ROM_REGION(0x4000, SCSI_ROM_REGION, 0) // this is the Rev. C ROM ROM_LOAD( "341-0437-a.bin", 0x0000, 0x4000, CRC(5aff85d3) SHA1(451c85c46b92e6ad2ad930f055ccf0fe3049936d) ) @@ -73,14 +65,14 @@ ROM_END void a2bus_scsi_device::device_add_mconfig(machine_config &config) { NSCSI_BUS(config, m_scsibus); - NSCSI_CONNECTOR(config, "scsibus:0", scsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsibus:1", scsi_devices, "cdrom", false); - NSCSI_CONNECTOR(config, "scsibus:2", scsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsibus:3", scsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsibus:4", scsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsibus:5", scsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsibus:6", scsi_devices, "harddisk", false); - NSCSI_CONNECTOR(config, "scsibus:7", scsi_devices, "ncr5380", true).set_option_machine_config("ncr5380", [this](device_t *device) { + NSCSI_CONNECTOR(config, "scsibus:0", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsibus:1", default_scsi_devices, "cdrom", false); + NSCSI_CONNECTOR(config, "scsibus:2", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsibus:3", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsibus:4", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsibus:5", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsibus:6", default_scsi_devices, "harddisk", false); + NSCSI_CONNECTOR(config, "scsibus:7").option_set("ncr5380", NCR5380N).machine_config([this](device_t *device) { downcast(*device).drq_handler().set(*this, FUNC(a2bus_scsi_device::drq_w)); }); } diff --git a/src/devices/bus/amiga/zorro/a590.cpp b/src/devices/bus/amiga/zorro/a590.cpp index f9dc313fcb2..01975c4a6ad 100644 --- a/src/devices/bus/amiga/zorro/a590.cpp +++ b/src/devices/bus/amiga/zorro/a590.cpp @@ -11,8 +11,7 @@ #include "emu.h" #include "a590.h" #include "machine/nscsi_bus.h" -#include "bus/nscsi/cd.h" -#include "bus/nscsi/hd.h" +#include "bus/nscsi/devices.h" //************************************************************************** @@ -115,12 +114,6 @@ ioport_constructor a2091_device::device_input_ports() const // device_add_mconfig - add device configuration //------------------------------------------------- -void dmac_hdc_device::scsi_devices(device_slot_interface &device) -{ - device.option_add("cdrom", NSCSI_CDROM); - device.option_add("harddisk", NSCSI_HARDDISK); -} - void dmac_hdc_device::wd33c93(device_t *device) { device->set_clock(10000000); @@ -137,12 +130,12 @@ void dmac_hdc_device::device_add_mconfig(machine_config &config) dmac.cfgout_handler().set(FUNC(dmac_hdc_device::dmac_cfgout_w)); NSCSI_BUS(config, "scsi", 0); - NSCSI_CONNECTOR(config, "scsi:0", scsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsi:1", scsi_devices, "harddisk", false); - NSCSI_CONNECTOR(config, "scsi:3", scsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsi:4", scsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsi:5", scsi_devices, nullptr, false); - NSCSI_CONNECTOR(config, "scsi:6", scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsi:0", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsi:1", default_scsi_devices, "harddisk", false); + NSCSI_CONNECTOR(config, "scsi:3", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsi:4", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsi:5", default_scsi_devices, nullptr, false); + NSCSI_CONNECTOR(config, "scsi:6", default_scsi_devices, nullptr, false); NSCSI_CONNECTOR(config, "scsi:7").option_set("wd33c93", WD33C93A) .machine_config([this](device_t *device) { wd33c93(device); }); } diff --git a/src/devices/bus/hp_dio/hp98265a.cpp b/src/devices/bus/hp_dio/hp98265a.cpp index 5c0194b48a4..623f2d00be1 100644 --- a/src/devices/bus/hp_dio/hp98265a.cpp +++ b/src/devices/bus/hp_dio/hp98265a.cpp @@ -10,8 +10,7 @@ #include "hp98265a.h" #include "machine/nscsi_bus.h" -#include "bus/nscsi/cd.h" -#include "bus/nscsi/hd.h" +#include "bus/nscsi/devices.h" #include "machine/mb87030.h" #define VERBOSE 0 @@ -22,12 +21,6 @@ DEFINE_DEVICE_TYPE_NS(HPDIO_98265A, bus::hp_dio, dio16_98265a_device, "hp98265a" namespace bus { namespace hp_dio { -static void scsi_devices(device_slot_interface &device) -{ - device.option_add("cdrom", NSCSI_CDROM); - device.option_add("harddisk", NSCSI_HARDDISK); -} - void dio16_98265a_device::mb87030_scsi_adapter(device_t *device) { mb87030_device &spc = downcast(*device); @@ -41,19 +34,19 @@ void dio16_98265a_device::device_add_mconfig(machine_config &config) { NSCSI_BUS(config, m_scsibus, 0); nscsi_connector &scsicon0(NSCSI_CONNECTOR(config, "scsibus:0", 0)); - scsi_devices(scsicon0); + default_scsi_devices(scsicon0); scsicon0.set_default_option("harddisk"); - scsi_devices(NSCSI_CONNECTOR(config, "scsibus:1", 0)); - scsi_devices(NSCSI_CONNECTOR(config, "scsibus:2", 0)); - scsi_devices(NSCSI_CONNECTOR(config, "scsibus:3", 0)); - scsi_devices(NSCSI_CONNECTOR(config, "scsibus:4", 0)); + default_scsi_devices(NSCSI_CONNECTOR(config, "scsibus:1", 0)); + default_scsi_devices(NSCSI_CONNECTOR(config, "scsibus:2", 0)); + default_scsi_devices(NSCSI_CONNECTOR(config, "scsibus:3", 0)); + default_scsi_devices(NSCSI_CONNECTOR(config, "scsibus:4", 0)); nscsi_connector &scsicon6(NSCSI_CONNECTOR(config, "scsibus:5", 0)); - scsi_devices(scsicon6); + default_scsi_devices(scsicon6); scsicon6.set_default_option("cdrom"); - scsi_devices(NSCSI_CONNECTOR(config, "scsibus:6", 0)); + default_scsi_devices(NSCSI_CONNECTOR(config, "scsibus:6", 0)); nscsi_connector &scsicon7(NSCSI_CONNECTOR(config, "scsibus:7", 0)); scsicon7.option_add_internal("mb87030", MB87030); scsicon7.set_default_option("mb87030"); diff --git a/src/devices/bus/isa/aha1542b.cpp b/src/devices/bus/isa/aha1542b.cpp index 53cd4a8cb64..f1b26839fd1 100644 --- a/src/devices/bus/isa/aha1542b.cpp +++ b/src/devices/bus/isa/aha1542b.cpp @@ -12,7 +12,7 @@ #include "emu.h" #include "aha1542b.h" -#include "bus/nscsi/hd.h" +#include "bus/nscsi/devices.h" #include "cpu/i8085/i8085.h" #include "machine/gen_latch.h" #include "machine/nscsi_bus.h" @@ -450,12 +450,6 @@ ioport_constructor aha1542b_device::device_input_ports() const return INPUT_PORTS_NAME(aha1542b); } -static void aha154x_scsi_devices(device_slot_interface &device) -{ - device.option_add("harddisk", NSCSI_HARDDISK); - device.option_add_internal("scsic", AIC6250); -} - void aha154x_device::scsic_config(device_t *device) { device->set_clock(20'000'000); @@ -468,15 +462,15 @@ void aha154x_device::scsic_config(device_t *device) void aha154x_device::scsi_add(machine_config &config) { NSCSI_BUS(config, "scsi"); - NSCSI_CONNECTOR(config, "scsi:0", aha154x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:1", aha154x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:2", aha154x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:3", aha154x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:4", aha154x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:5", aha154x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:6", aha154x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:7", aha154x_scsi_devices, "scsic", true) - .set_option_machine_config("scsic", [this] (device_t *device) { scsic_config(device); }); + NSCSI_CONNECTOR(config, "scsi:0", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:1", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:2", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:3", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:4", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:5", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:6", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:7").option_set("scsic", AIC6250) + .machine_config([this] (device_t *device) { scsic_config(device); }); } void aha1542a_device::device_add_mconfig(machine_config &config) diff --git a/src/devices/bus/isa/aha174x.cpp b/src/devices/bus/isa/aha174x.cpp index 39fd0aef9fe..1b212fe6ae2 100644 --- a/src/devices/bus/isa/aha174x.cpp +++ b/src/devices/bus/isa/aha174x.cpp @@ -33,7 +33,7 @@ #include "emu.h" #include "aha174x.h" -#include "bus/nscsi/hd.h" +#include "bus/nscsi/devices.h" #include "machine/aic6250.h" #include "machine/i82355.h" #include "machine/nscsi_bus.h" @@ -80,12 +80,6 @@ void aha174x_device::hpc_map(address_map &map) map(0x8000, 0xffff).rom().region("mcode", 0); } -static void aha174x_scsi_devices(device_slot_interface &device) -{ - device.option_add("harddisk", NSCSI_HARDDISK); - device.option_add_internal("scsic", AIC6251A); -} - void aha174x_device::scsic_config(device_t *device) { device->set_clock(40_MHz_XTAL / 2); // divider not verified @@ -107,15 +101,15 @@ void aha1740_device::device_add_mconfig(machine_config &config) IDT7201(config, m_fifo[1]); NSCSI_BUS(config, "scsi"); - NSCSI_CONNECTOR(config, "scsi:0", aha174x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:1", aha174x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:2", aha174x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:3", aha174x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:4", aha174x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:5", aha174x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:6", aha174x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:7", aha174x_scsi_devices, "scsic", true) - .set_option_machine_config("scsic", [this] (device_t *device) { scsic_config(device); }); + NSCSI_CONNECTOR(config, "scsi:0", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:1", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:2", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:3", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:4", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:5", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:6", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:7").option_set("scsic", AIC6251A) + .machine_config([this] (device_t *device) { scsic_config(device); }); } void aha1742a_device::device_add_mconfig(machine_config &config) @@ -134,15 +128,15 @@ void aha1742a_device::device_add_mconfig(machine_config &config) IDT7201(config, m_fifo[1]); NSCSI_BUS(config, "scsi"); - NSCSI_CONNECTOR(config, "scsi:0", aha174x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:1", aha174x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:2", aha174x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:3", aha174x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:4", aha174x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:5", aha174x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:6", aha174x_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:7", aha174x_scsi_devices, "scsic", true) - .set_option_machine_config("scsic", [this] (device_t *device) { scsic_config(device); }); + NSCSI_CONNECTOR(config, "scsi:0", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:1", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:2", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:3", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:4", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:5", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:6", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:7").option_set("scsic", AIC6251A) + .machine_config([this] (device_t *device) { scsic_config(device); }); N82077AA(config, m_fdc, 24_MHz_XTAL); } diff --git a/src/devices/bus/isa/asc88.cpp b/src/devices/bus/isa/asc88.cpp index 43dc83987aa..c04570725f8 100644 --- a/src/devices/bus/isa/asc88.cpp +++ b/src/devices/bus/isa/asc88.cpp @@ -16,7 +16,7 @@ #include "emu.h" #include "asc88.h" -#include "bus/nscsi/hd.h" +#include "bus/nscsi/devices.h" #include "machine/nscsi_bus.h" @@ -150,12 +150,6 @@ ioport_constructor asc88_device::device_input_ports() const return INPUT_PORTS_NAME(asc88); } -static void asc88_scsi_devices(device_slot_interface &device) -{ - device.option_add("harddisk", NSCSI_HARDDISK); - device.option_add_internal("scsic", NCR5380N); -} - void asc88_device::scsic_config(device_t *device) { downcast(*device).irq_handler().set("^^", FUNC(asc88_device::irq_w)); @@ -165,15 +159,16 @@ void asc88_device::scsic_config(device_t *device) void asc88_device::device_add_mconfig(machine_config &config) { NSCSI_BUS(config, "scsi"); - NSCSI_CONNECTOR(config, "scsi:0", asc88_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:1", asc88_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:2", asc88_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:3", asc88_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:4", asc88_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:5", asc88_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:6", asc88_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:7", asc88_scsi_devices, "scsic", true) - .set_option_machine_config("scsic", [this] (device_t *device) { scsic_config(device); }); + NSCSI_CONNECTOR(config, "scsi:0", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:1", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:2", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:3", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:4", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:5", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:6", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:7", default_scsi_devices, "scsic", true) + .option_add_internal("scsic", NCR5380N) + .machine_config([this] (device_t *device) { scsic_config(device); }); EEPROM_93C06_16BIT(config, m_eeprom); // NMC9306N } diff --git a/src/devices/bus/isa/bt54x.cpp b/src/devices/bus/isa/bt54x.cpp index fe6516b8a84..1c3c4bdf3f1 100644 --- a/src/devices/bus/isa/bt54x.cpp +++ b/src/devices/bus/isa/bt54x.cpp @@ -17,8 +17,7 @@ #include "emu.h" #include "bt54x.h" -#include "bus/nscsi/cd.h" -#include "bus/nscsi/hd.h" +#include "bus/nscsi/devices.h" #include "machine/ncr5390.h" //#include "machine/ncr86c05.h" @@ -68,20 +67,6 @@ void bt54x_device::local_map(address_map &map) map(0xf8000, 0xfffff).rom().region("mpu", 0); } -static void scsi_devices(device_slot_interface &device) -{ - device.option_add("cdrom", NSCSI_CDROM); - device.option_add("harddisk", NSCSI_HARDDISK); - device.option_add_internal("scsic", NCR53C94); -} - -static void fast_scsi_devices(device_slot_interface &device) -{ - device.option_add("cdrom", NSCSI_CDROM); - device.option_add("harddisk", NSCSI_HARDDISK); - device.option_add_internal("scsic", NCR53CF94); // FAS216 -} - void bt54x_device::asc_config(device_t *device) { ncr53c94_device &asc = downcast(*device); @@ -109,14 +94,16 @@ void bt54x_device::fsc_base(machine_config &config) //busintf.dma_ack_callback().set("scsi:7:scsic", FUNC(ncr53cf94_device::dma_w)); NSCSI_BUS(config, "scsi"); - NSCSI_CONNECTOR(config, "scsi:0", fast_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:1", fast_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:2", fast_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:3", fast_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:4", fast_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:5", fast_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:6", fast_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:7", fast_scsi_devices, "scsic", true).set_option_machine_config("scsic", [this] (device_t *device) { fsc_config(device); }); + NSCSI_CONNECTOR(config, "scsi:0", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:1", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:2", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:3", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:4", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:5", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:6", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:7", default_scsi_devices, "scsic", true) + .option_add_internal("scsic", NCR53CF94) // FAS216 + .machine_config([this] (device_t *device) { fsc_config(device); }); } void bt542b_device::device_add_mconfig(machine_config &config) @@ -129,14 +116,16 @@ void bt542b_device::device_add_mconfig(machine_config &config) //busintf.dma_ack_callback().set("scsi:7:scsic", FUNC(ncr53c94_device::dma_w)); NSCSI_BUS(config, "scsi"); - NSCSI_CONNECTOR(config, "scsi:0", scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:1", scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:2", scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:3", scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:4", scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:5", scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:6", scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:7", scsi_devices, "scsic", true).set_option_machine_config("scsic", [this] (device_t *device) { asc_config(device); }); + NSCSI_CONNECTOR(config, "scsi:0", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:1", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:2", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:3", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:4", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:5", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:6", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:7", default_scsi_devices, "scsic", true) + .option_add_internal("scsic", NCR53C94) + .machine_config([this] (device_t *device) { asc_config(device); }); DP8473(config, m_fdc, 24_MHz_XTAL); } diff --git a/src/devices/bus/isa/tekram_dc820.cpp b/src/devices/bus/isa/tekram_dc820.cpp index f9747c3385d..56ffd8e4ccb 100644 --- a/src/devices/bus/isa/tekram_dc820.cpp +++ b/src/devices/bus/isa/tekram_dc820.cpp @@ -23,7 +23,7 @@ #include "emu.h" #include "tekram_dc820.h" -#include "bus/nscsi/hd.h" +#include "bus/nscsi/devices.h" #include "cpu/i86/i186.h" #include "machine/i82355.h" #include "machine/ncr5390.h" @@ -192,12 +192,6 @@ void tekram_dc820_device::mpu_map(address_map &map) map(0xf0000, 0xfffff).rom().region("firmware", 0); } -static void tekram_scsi_devices(device_slot_interface &device) -{ - device.option_add("harddisk", NSCSI_HARDDISK); - device.option_add_internal("scsic", NCR53CF94); // or Emulex FAS216 -} - void tekram_eisa_scsi_device::scsic_config(device_t *device) { device->set_clock(40_MHz_XTAL); @@ -207,15 +201,15 @@ void tekram_eisa_scsi_device::scsic_config(device_t *device) void tekram_eisa_scsi_device::scsi_add(machine_config &config) { NSCSI_BUS(config, "scsi"); - NSCSI_CONNECTOR(config, "scsi:0", tekram_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:1", tekram_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:2", tekram_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:3", tekram_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:4", tekram_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:5", tekram_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:6", tekram_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:7", tekram_scsi_devices, "scsic", true) - .set_option_machine_config("scsic", [this] (device_t *device) { scsic_config(device); }); + NSCSI_CONNECTOR(config, "scsi:0", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:1", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:2", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:3", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:4", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:5", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:6", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:7").option_set("scsic", NCR53CF94) // or Emulex FAS216 + .machine_config([this] (device_t *device) { scsic_config(device); }); } void tekram_dc320b_device::device_add_mconfig(machine_config &config) diff --git a/src/devices/bus/isa/ultra14f.cpp b/src/devices/bus/isa/ultra14f.cpp index e3cc88fd969..8b60f908139 100644 --- a/src/devices/bus/isa/ultra14f.cpp +++ b/src/devices/bus/isa/ultra14f.cpp @@ -9,7 +9,7 @@ #include "emu.h" #include "ultra14f.h" -#include "bus/nscsi/hd.h" +#include "bus/nscsi/devices.h" #include "cpu/m68000/m68000.h" #include "machine/ncr5390.h" #include "machine/nscsi_bus.h" @@ -36,12 +36,6 @@ void ultra14f_device::uscpu_map(address_map &map) map(0x3f8000, 0x3fffff).ram(); } -static void u14f_scsi_devices(device_slot_interface &device) -{ - device.option_add("harddisk", NSCSI_HARDDISK); - device.option_add_internal("scsic", NCR53CF94); // Emulex FAS216 or similar custom-marked as USC060-6-40B -} - void ultra14f_device::scsic_config(device_t *device) { device->set_clock(40_MHz_XTAL); @@ -54,15 +48,15 @@ void ultra14f_device::device_add_mconfig(machine_config &config) m_uscpu->set_addrmap(AS_PROGRAM, &ultra14f_device::uscpu_map); NSCSI_BUS(config, "scsi"); - NSCSI_CONNECTOR(config, "scsi:0", u14f_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:1", u14f_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:2", u14f_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:3", u14f_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:4", u14f_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:5", u14f_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:6", u14f_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:7", u14f_scsi_devices, "scsic", true) - .set_option_machine_config("scsic", [this] (device_t *device) { scsic_config(device); }); + NSCSI_CONNECTOR(config, "scsi:0", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:1", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:2", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:3", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:4", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:5", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:6", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:7").option_set("scsic", NCR53CF94) // Emulex FAS216 or similar custom-marked as USC060-6-40B + .machine_config([this] (device_t *device) { scsic_config(device); }); DP8473(config, m_fdc, 24_MHz_XTAL); // custom-marked as USC020-1-24 } diff --git a/src/devices/bus/isa/ultra24f.cpp b/src/devices/bus/isa/ultra24f.cpp index cdb8f0c7501..211c1ab4b80 100644 --- a/src/devices/bus/isa/ultra24f.cpp +++ b/src/devices/bus/isa/ultra24f.cpp @@ -9,7 +9,7 @@ #include "emu.h" #include "ultra24f.h" -#include "bus/nscsi/hd.h" +#include "bus/nscsi/devices.h" #include "cpu/m68000/m68000.h" #include "machine/ncr5390.h" #include "machine/nscsi_bus.h" @@ -58,12 +58,6 @@ void ultra24f_device::uscpu_map(address_map &map) map(0xffc000, 0xffffff).ram(); } -static void u24f_scsi_devices(device_slot_interface &device) -{ - device.option_add("harddisk", NSCSI_HARDDISK); - device.option_add_internal("scsic", NCR53CF94); // Emulex FAS216 -} - void ultra24f_device::scsic_config(device_t *device) { device->set_clock(40_MHz_XTAL); @@ -78,15 +72,15 @@ void ultra24f_device::device_add_mconfig(machine_config &config) I82355(config, m_bmic, 0); NSCSI_BUS(config, "scsi"); - NSCSI_CONNECTOR(config, "scsi:0", u24f_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:1", u24f_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:2", u24f_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:3", u24f_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:4", u24f_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:5", u24f_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:6", u24f_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsi:7", u24f_scsi_devices, "scsic", true) - .set_option_machine_config("scsic", [this] (device_t *device) { scsic_config(device); }); + NSCSI_CONNECTOR(config, "scsi:0", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:1", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:2", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:3", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:4", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:5", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:6", default_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:7").option_set("scsic", NCR53CF94) // Emulex FAS216 + .machine_config([this] (device_t *device) { scsic_config(device); }); DP8473(config, m_fdc, 24_MHz_XTAL); // custom-marked as USC020-1-24 } diff --git a/src/devices/bus/nscsi/devices.cpp b/src/devices/bus/nscsi/devices.cpp new file mode 100644 index 00000000000..79bd99a7e54 --- /dev/null +++ b/src/devices/bus/nscsi/devices.cpp @@ -0,0 +1,13 @@ +// license:BSD-3-Clause +// copyright-holders:AJR + +#include "bus/nscsi/cd.h" +#include "bus/nscsi/hd.h" +#include "bus/nscsi/s1410.h" + +void default_scsi_devices(device_slot_interface &device) +{ + device.option_add("cdrom", NSCSI_CDROM); + device.option_add("harddisk", NSCSI_HARDDISK); + device.option_add("s1410", NSCSI_S1410); +}; diff --git a/src/devices/bus/nscsi/devices.h b/src/devices/bus/nscsi/devices.h new file mode 100644 index 00000000000..9958577517a --- /dev/null +++ b/src/devices/bus/nscsi/devices.h @@ -0,0 +1,11 @@ +// license:BSD-3-Clause +// copyright-holders:AJR + +#ifndef MAME_BUS_NSCSI_DEVICES_H +#define MAME_BUS_NSCSI_DEVICES_H + +#pragma once + +extern void default_scsi_devices(device_slot_interface &device); + +#endif // MAME_BUS_NSCSI_DEVICES_H