diff options
| author | 2024-09-19 07:19:18 -0700 | |
|---|---|---|
| committer | 2024-09-19 10:19:18 -0400 | |
| commit | f845a619e5ef7fecac6ea03154609e1f5ff8065e (patch) | |
| tree | d11688bfd3b74328e0b4b9c48904f8fa44f80b5d /src | |
| parent | e8e9468246cf17e892e58fa35c3ee517494c058f (diff) | |
sun3, sun3x, sun4: Add NSCSI tape to default devices. (#12733)
Note that only sun4, not sun4c or other variants, has tape among the default devices; by that era, most installation and recovery was via CD-ROM (already in the default devices) rather than via tape.
Diffstat (limited to 'src')
| -rw-r--r-- | src/mame/sun/sun3.cpp | 6 | ||||
| -rw-r--r-- | src/mame/sun/sun3x.cpp | 4 | ||||
| -rw-r--r-- | src/mame/sun/sun4.cpp | 51 |
3 files changed, 49 insertions, 12 deletions
diff --git a/src/mame/sun/sun3.cpp b/src/mame/sun/sun3.cpp index eb6267fc7c2..b8b62b09ceb 100644 --- a/src/mame/sun/sun3.cpp +++ b/src/mame/sun/sun3.cpp @@ -192,6 +192,7 @@ fefc34a - start of mem_size, which queries ECC registers for each memory board #include "machine/ncr5380.h" #include "bus/nscsi/cd.h" #include "bus/nscsi/hd.h" +#include "bus/nscsi/tape.h" #include "bus/rs232/rs232.h" #include "bus/sunkbd/sunkbd.h" @@ -333,6 +334,7 @@ static void scsi_devices(device_slot_interface &device) { device.option_add("cdrom", NSCSI_CDROM); device.option_add("harddisk", NSCSI_HARDDISK); + device.option_add("tape", NSCSI_TAPE); device.set_option_machine_config("cdrom", sun_cdrom); } @@ -1061,7 +1063,7 @@ void sun3_state::sun3(machine_config &config) NSCSI_CONNECTOR(config, "scsibus:1", scsi_devices, "harddisk"); NSCSI_CONNECTOR(config, "scsibus:2", scsi_devices, nullptr); NSCSI_CONNECTOR(config, "scsibus:3", scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsibus:4", scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsibus:4", scsi_devices, "tape"); NSCSI_CONNECTOR(config, "scsibus:5", scsi_devices, nullptr); NSCSI_CONNECTOR(config, "scsibus:6", scsi_devices, "cdrom"); NSCSI_CONNECTOR(config, "scsibus:7").option_set("sbc", NCR5380).machine_config([this] (device_t *device) { ncr5380(device); }); @@ -1167,7 +1169,7 @@ void sun3_state::sun3_50(machine_config &config) NSCSI_CONNECTOR(config, "scsibus:1", scsi_devices, "harddisk"); NSCSI_CONNECTOR(config, "scsibus:2", scsi_devices, nullptr); NSCSI_CONNECTOR(config, "scsibus:3", scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsibus:4", scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsibus:4", scsi_devices, "tape"); NSCSI_CONNECTOR(config, "scsibus:5", scsi_devices, nullptr); NSCSI_CONNECTOR(config, "scsibus:6", scsi_devices, "cdrom"); NSCSI_CONNECTOR(config, "scsibus:7").option_set("sbc", NCR5380).machine_config([this] (device_t *device) { ncr5380(device); }); diff --git a/src/mame/sun/sun3x.cpp b/src/mame/sun/sun3x.cpp index c996c14d56e..b22af3705ac 100644 --- a/src/mame/sun/sun3x.cpp +++ b/src/mame/sun/sun3x.cpp @@ -130,6 +130,7 @@ #include "bus/nscsi/cd.h" #include "bus/nscsi/hd.h" +#include "bus/nscsi/tape.h" #include "cpu/m68000/m68030.h" #include "imagedev/floppy.h" #include "machine/icm7170.h" @@ -592,6 +593,7 @@ static void scsi_devices(device_slot_interface &device) { device.option_add("cdrom", NSCSI_CDROM); device.option_add("harddisk", NSCSI_HARDDISK); + device.option_add("tape", NSCSI_TAPE); device.set_option_machine_config("cdrom", sun_cdrom); } @@ -629,7 +631,7 @@ void sun3x_state::sun3_80(machine_config &config) NSCSI_CONNECTOR(config, "scsibus:1", scsi_devices, "harddisk"); NSCSI_CONNECTOR(config, "scsibus:2", scsi_devices, nullptr); NSCSI_CONNECTOR(config, "scsibus:3", scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsibus:4", scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsibus:4", scsi_devices, "tape"); NSCSI_CONNECTOR(config, "scsibus:5", scsi_devices, nullptr); NSCSI_CONNECTOR(config, "scsibus:6", scsi_devices, "cdrom"); NSCSI_CONNECTOR(config, "scsibus:7").option_set("esp", NCR53C90).clock(20000000/2); // Emulex 2400138 (68-pin PLCC) diff --git a/src/mame/sun/sun4.cpp b/src/mame/sun/sun4.cpp index 66e67e2bd9c..5e61c892c94 100644 --- a/src/mame/sun/sun4.cpp +++ b/src/mame/sun/sun4.cpp @@ -413,6 +413,7 @@ #include "bus/nscsi/cd.h" #include "bus/nscsi/hd.h" +#include "bus/nscsi/tape.h" #include "bus/rs232/rs232.h" #include "bus/sunkbd/sunkbd.h" #include "bus/sunmouse/sunmouse.h" @@ -568,6 +569,8 @@ protected: virtual void machine_reset() override; virtual void machine_start() override; + virtual void scsi_devices_config(machine_config &config) = 0; + u32 debugger_r(offs_t offset, u32 mem_mask = ~0); void debugger_w(offs_t offset, u32 data, u32 mem_mask = ~0); @@ -681,6 +684,9 @@ public: void sun4(machine_config &config); +protected: + virtual void scsi_devices_config(machine_config &config) override; + private: void type1space_map(address_map &map); }; @@ -704,6 +710,9 @@ public: void sun4_65(machine_config &config); void sun4_75(machine_config &config); +protected: + virtual void scsi_devices_config(machine_config &config) override; + private: virtual void machine_start() override; virtual void machine_reset() override; @@ -1367,6 +1376,7 @@ static void sun_scsi_devices(device_slot_interface &device) { device.option_add("cdrom", NSCSI_CDROM); device.option_add("harddisk", NSCSI_HARDDISK); + device.option_add("tape", NSCSI_TAPE); device.option_add_internal("ncr53c90", NCR53C90); device.set_option_machine_config("cdrom", sun4_cdrom); } @@ -1433,15 +1443,8 @@ void sun4_base_state::sun4_base(machine_config &config) m_rs232[1]->dcd_handler().set(m_scc[1], FUNC(z80scc_device::dcdb_w)); m_rs232[1]->cts_handler().set(m_scc[1], FUNC(z80scc_device::ctsb_w)); - NSCSI_BUS(config, "scsibus"); - NSCSI_CONNECTOR(config, "scsibus:0", sun_scsi_devices, "harddisk"); - NSCSI_CONNECTOR(config, "scsibus:1", sun_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsibus:2", sun_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsibus:3", sun_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsibus:4", sun_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsibus:5", sun_scsi_devices, nullptr); - NSCSI_CONNECTOR(config, "scsibus:6", sun_scsi_devices, "cdrom"); - NSCSI_CONNECTOR(config, "scsibus:7", sun_scsi_devices, "ncr53c90", true).set_option_machine_config("ncr53c90", [this] (device_t *device) { ncr53c90(device); }); + // SCSI + scsi_devices_config(config); } void sun4_state::sun4(machine_config &config) @@ -1466,6 +1469,21 @@ void sun4_state::sun4(machine_config &config) m_maincpu->set_mmu(m_mmu); } +void sun4_state::scsi_devices_config(machine_config &config) +{ + // sun4 defaults to having a tape device at SCSI ID 4 + + NSCSI_BUS(config, "scsibus"); + NSCSI_CONNECTOR(config, "scsibus:0", sun_scsi_devices, "harddisk"); + NSCSI_CONNECTOR(config, "scsibus:1", sun_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsibus:2", sun_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsibus:3", sun_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsibus:4", sun_scsi_devices, "tape"); + NSCSI_CONNECTOR(config, "scsibus:5", sun_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsibus:6", sun_scsi_devices, "cdrom"); + NSCSI_CONNECTOR(config, "scsibus:7", sun_scsi_devices, "ncr53c90", true).set_option_machine_config("ncr53c90", [this] (device_t *device) { ncr53c90(device); }); +} + void sun4c_state::sun4c(machine_config &config) { /* basic machine hardware */ @@ -1620,6 +1638,21 @@ void sun4c_state::sun4_75(machine_config &config) m_maincpu->set_clock(40'000'000); } +void sun4c_state::scsi_devices_config(machine_config &config) +{ + // sun4c defaults to having nothing at SCSI ID 4 + + NSCSI_BUS(config, "scsibus"); + NSCSI_CONNECTOR(config, "scsibus:0", sun_scsi_devices, "harddisk"); + NSCSI_CONNECTOR(config, "scsibus:1", sun_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsibus:2", sun_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsibus:3", sun_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsibus:4", sun_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsibus:5", sun_scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsibus:6", sun_scsi_devices, "cdrom"); + NSCSI_CONNECTOR(config, "scsibus:7", sun_scsi_devices, "ncr53c90", true).set_option_machine_config("ncr53c90", [this] (device_t *device) { ncr53c90(device); }); +} + /* Boot PROM |
