summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/scsi/scsi.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/scsi/scsi.h')
-rw-r--r--src/devices/bus/scsi/scsi.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/devices/bus/scsi/scsi.h b/src/devices/bus/scsi/scsi.h
index 154b346d6a4..e5995f970ab 100644
--- a/src/devices/bus/scsi/scsi.h
+++ b/src/devices/bus/scsi/scsi.h
@@ -98,7 +98,7 @@ class scsi_port_device : public device_t
public:
// construction/destruction
- scsi_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ scsi_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
template <class Object> devcb_base &set_bsy_handler(Object &&cb) { return m_bsy_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_sel_handler(Object &&cb) { return m_sel_handler.set_callback(std::forward<Object>(cb)); }
@@ -148,6 +148,8 @@ public:
data7_handler().set(tag, FUNC(input_buffer_device::write_bit7));
}
+ void set_output_latch(output_latch_device &latch);
+
DECLARE_WRITE_LINE_MEMBER( write_bsy );
DECLARE_WRITE_LINE_MEMBER( write_sel );
DECLARE_WRITE_LINE_MEMBER( write_cd );
@@ -166,6 +168,9 @@ public:
DECLARE_WRITE_LINE_MEMBER( write_data6 );
DECLARE_WRITE_LINE_MEMBER( write_data7 );
+ scsi_port_slot_device &slot(int index);
+ void set_slot_device(int index, const char *option, const device_type &type, const input_device_default *id);
+
protected:
// device-level overrides
virtual void device_start() override;
@@ -208,7 +213,7 @@ private:
devcb_write_line m_data6_handler;
devcb_write_line m_data7_handler;
- scsi_port_slot_device *m_slot[7];
+ optional_device_array<scsi_port_slot_device, 7> m_slot;
int m_device_count;
int m_bsy_in;
@@ -258,7 +263,7 @@ class scsi_port_slot_device : public device_t,
friend class scsi_port_interface;
public:
- scsi_port_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ scsi_port_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
scsi_port_interface *dev() { return m_dev; }
scsi_port_device *port() { return m_port; }