Skip to content

Commit

Permalink
sun/sun4.cpp: Less convoluted way of changing default SCSI devices.
Browse files Browse the repository at this point in the history
  • Loading branch information
cuavas committed Sep 21, 2024
1 parent 6c54c0c commit 882c8bc
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 44 deletions.
6 changes: 2 additions & 4 deletions src/devices/imagedev/floppy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -890,18 +890,16 @@ bool floppy_image_device::floppy_is_hd()
{
if (!m_image)
return false;
u32 variant = m_image->get_variant();
u32 const variant = m_image->get_variant();
return variant == floppy_image::DSHD;

}

bool floppy_image_device::floppy_is_ed()
{
if (!m_image)
return false;
u32 variant = m_image->get_variant();
u32 const variant = m_image->get_variant();
return variant == floppy_image::DSED;

}

void floppy_image_device::track_changed()
Expand Down
52 changes: 12 additions & 40 deletions src/mame/sun/sun4.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -569,8 +569,6 @@ class sun4_base_state : public driver_device
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);

Expand Down Expand Up @@ -684,9 +682,6 @@ class sun4_state : public sun4_base_state

void sun4(machine_config &config);

protected:
virtual void scsi_devices_config(machine_config &config) override;

private:
void type1space_map(address_map &map);
};
Expand All @@ -710,9 +705,6 @@ class sun4c_state : public sun4_base_state
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;
Expand Down Expand Up @@ -1443,8 +1435,15 @@ 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));

// SCSI
scsi_devices_config(config);
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); });
}

void sun4_state::sun4(machine_config &config)
Expand All @@ -1456,6 +1455,9 @@ void sun4_state::sun4(machine_config &config)

sun4_base(config);

// add a tape drive at SCSI ID 4
subdevice<nscsi_connector>("scsibus:4")->set_default_option("tape");

// MMU Type 1 device space
ADDRESS_MAP_BANK(config, m_type1space).set_map(&sun4_state::type1space_map).set_options(ENDIANNESS_BIG, 32, 32, 0x80000000);

Expand All @@ -1469,21 +1471,6 @@ 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 */
Expand Down Expand Up @@ -1638,21 +1625,6 @@ 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
Expand Down

0 comments on commit 882c8bc

Please sign in to comment.