summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/scsi
diff options
context:
space:
mode:
author mooglyguy <therealmogminer@gmail.com>2018-08-01 02:14:05 +0200
committer mooglyguy <therealmogminer@gmail.com>2018-08-01 02:14:05 +0200
commitc3aa68905ed78e4bac19ff2e2a6542914b97e243 (patch)
tree714e55adba98b549d002b622bff26923b5105710 /src/devices/bus/scsi
parent082617fa3d77788058f264a30af8f45b1df20b93 (diff)
Fix recent regressions, nw
Diffstat (limited to 'src/devices/bus/scsi')
-rw-r--r--src/devices/bus/scsi/scsi.cpp9
-rw-r--r--src/devices/bus/scsi/scsi.h2
2 files changed, 9 insertions, 2 deletions
diff --git a/src/devices/bus/scsi/scsi.cpp b/src/devices/bus/scsi/scsi.cpp
index d11bef77de5..d2cf678f239 100644
--- a/src/devices/bus/scsi/scsi.cpp
+++ b/src/devices/bus/scsi/scsi.cpp
@@ -70,7 +70,14 @@ void scsi_port_device::device_add_mconfig(machine_config &config)
void scsi_port_device::device_start()
{
- m_device_count = 8;
+ m_device_count = 0;
+
+ for (int i = 0; i < 7; i++)
+ {
+ scsi_port_slot_device *slot = subdevice<scsi_port_slot_device>(m_slot[i].finder_tag());
+ if (slot != nullptr)
+ m_device_count = i + 1;
+ }
m_bsy_handler.resolve_safe();
m_sel_handler.resolve_safe();
diff --git a/src/devices/bus/scsi/scsi.h b/src/devices/bus/scsi/scsi.h
index b5f1ee7473a..9dd4db673f0 100644
--- a/src/devices/bus/scsi/scsi.h
+++ b/src/devices/bus/scsi/scsi.h
@@ -211,7 +211,7 @@ private:
devcb_write_line m_data6_handler;
devcb_write_line m_data7_handler;
- required_device_array<scsi_port_slot_device, 7> m_slot;
+ optional_device_array<scsi_port_slot_device, 7> m_slot;
int m_device_count;
int m_bsy_in;