diff options
author | 2018-08-01 02:14:05 +0200 | |
---|---|---|
committer | 2018-08-01 02:14:05 +0200 | |
commit | c3aa68905ed78e4bac19ff2e2a6542914b97e243 (patch) | |
tree | 714e55adba98b549d002b622bff26923b5105710 /src/devices/bus/scsi | |
parent | 082617fa3d77788058f264a30af8f45b1df20b93 (diff) |
Fix recent regressions, nw
Diffstat (limited to 'src/devices/bus/scsi')
-rw-r--r-- | src/devices/bus/scsi/scsi.cpp | 9 | ||||
-rw-r--r-- | src/devices/bus/scsi/scsi.h | 2 |
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; |