summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/scsi
diff options
context:
space:
mode:
author andreasnaive <andreasnaive@gmail.com>2019-03-25 23:13:40 +0100
committer andreasnaive <andreasnaive@gmail.com>2019-03-25 23:13:40 +0100
commitb380514764cf857469bae61c11143a19f79a74c5 (patch)
tree63c8012e262618f08a332da31dd714281aa2c5ed /src/devices/bus/scsi
parentc24473ddff715ecec2e258a6eb38960cf8c8e98e (diff)
Revert "conflict resolution (nw)"
This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
Diffstat (limited to 'src/devices/bus/scsi')
-rw-r--r--src/devices/bus/scsi/omti5100.cpp9
-rw-r--r--src/devices/bus/scsi/s1410.cpp17
-rw-r--r--src/devices/bus/scsi/sa1403d.cpp7
-rw-r--r--src/devices/bus/scsi/scsi.h88
-rw-r--r--src/devices/bus/scsi/scsicd.cpp10
-rw-r--r--src/devices/bus/scsi/scsihd.cpp8
-rw-r--r--src/devices/bus/scsi/scsihle.h6
7 files changed, 118 insertions, 27 deletions
diff --git a/src/devices/bus/scsi/omti5100.cpp b/src/devices/bus/scsi/omti5100.cpp
index 519aa723a0b..415b68bb4ed 100644
--- a/src/devices/bus/scsi/omti5100.cpp
+++ b/src/devices/bus/scsi/omti5100.cpp
@@ -176,8 +176,7 @@ void omti5100_device::WriteData( uint8_t *data, int dataLength )
}
}
-void omti5100_device::device_add_mconfig(machine_config &config)
-{
- HARDDISK(config, m_image0);
- HARDDISK(config, m_image1);
-}
+MACHINE_CONFIG_START(omti5100_device::device_add_mconfig)
+ MCFG_HARDDISK_ADD("image0")
+ MCFG_HARDDISK_ADD("image1")
+MACHINE_CONFIG_END
diff --git a/src/devices/bus/scsi/s1410.cpp b/src/devices/bus/scsi/s1410.cpp
index 5416089fd9d..e05cfe73014 100644
--- a/src/devices/bus/scsi/s1410.cpp
+++ b/src/devices/bus/scsi/s1410.cpp
@@ -165,15 +165,14 @@ void s1410_device::s1410_io(address_map &map)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void s1410_device::device_add_mconfig(machine_config &config)
-{
- z80_device &z8400a(Z80(config, Z8400A_TAG, XTAL(16'000'000)/4));
- z8400a.set_addrmap(AS_PROGRAM, &s1410_device::s1410_mem);
- z8400a.set_addrmap(AS_IO, &s1410_device::s1410_io);
- z8400a.set_disable();
-
- HARDDISK(config, "image");
-}
+MACHINE_CONFIG_START(s1410_device::device_add_mconfig)
+ MCFG_DEVICE_ADD(Z8400A_TAG, Z80, XTAL(16'000'000)/4)
+ MCFG_DEVICE_PROGRAM_MAP(s1410_mem)
+ MCFG_DEVICE_IO_MAP(s1410_io)
+ MCFG_DEVICE_DISABLE()
+
+ MCFG_HARDDISK_ADD("image")
+MACHINE_CONFIG_END
diff --git a/src/devices/bus/scsi/sa1403d.cpp b/src/devices/bus/scsi/sa1403d.cpp
index 5ab22288835..902b69f5b63 100644
--- a/src/devices/bus/scsi/sa1403d.cpp
+++ b/src/devices/bus/scsi/sa1403d.cpp
@@ -57,10 +57,9 @@ const tiny_rom_entry *sa1403d_device::device_rom_region() const
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void sa1403d_device::device_add_mconfig(machine_config &config)
-{
- HARDDISK(config, "image");
-}
+MACHINE_CONFIG_START(sa1403d_device::device_add_mconfig)
+ MCFG_HARDDISK_ADD("image")
+MACHINE_CONFIG_END
//-------------------------------------------------
diff --git a/src/devices/bus/scsi/scsi.h b/src/devices/bus/scsi/scsi.h
index 66ddae370d6..e5995f970ab 100644
--- a/src/devices/bus/scsi/scsi.h
+++ b/src/devices/bus/scsi/scsi.h
@@ -17,6 +17,77 @@
#define SCSI_PORT_DEVICE6 "6"
#define SCSI_PORT_DEVICE7 "7"
+#define MCFG_SCSI_BSY_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_bsy_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_SEL_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_sel_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_CD_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_cd_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_IO_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_io_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_MSG_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_msg_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_REQ_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_req_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_ACK_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_ack_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_ATN_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_atn_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_RST_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_rst_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_DATA0_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_data0_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_DATA1_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_data1_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_DATA2_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_data2_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_DATA3_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_data3_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_DATA4_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_data4_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_DATA5_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_data5_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_DATA6_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_data6_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_DATA7_HANDLER(_devcb) \
+ downcast<scsi_port_device &>(*device).set_data7_handler(DEVCB_##_devcb);
+
+#define MCFG_SCSI_OUTPUT_LATCH_ADD(_tag, scsi_port_tag) \
+ MCFG_DEVICE_ADD(_tag, OUTPUT_LATCH, 0) \
+ MCFG_OUTPUT_LATCH_BIT0_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data0)) \
+ MCFG_OUTPUT_LATCH_BIT1_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data1)) \
+ MCFG_OUTPUT_LATCH_BIT2_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data2)) \
+ MCFG_OUTPUT_LATCH_BIT3_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data3)) \
+ MCFG_OUTPUT_LATCH_BIT4_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data4)) \
+ MCFG_OUTPUT_LATCH_BIT5_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data5)) \
+ MCFG_OUTPUT_LATCH_BIT6_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data6)) \
+ MCFG_OUTPUT_LATCH_BIT7_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data7))
+
+#define MCFG_SCSI_DATA_INPUT_BUFFER(_tag) \
+ MCFG_SCSI_DATA0_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit0)) \
+ MCFG_SCSI_DATA1_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit1)) \
+ MCFG_SCSI_DATA2_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit2)) \
+ MCFG_SCSI_DATA3_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit3)) \
+ MCFG_SCSI_DATA4_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit4)) \
+ MCFG_SCSI_DATA5_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit5)) \
+ MCFG_SCSI_DATA6_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit6)) \
+ MCFG_SCSI_DATA7_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit7))
class scsi_port_slot_device;
class scsi_port_interface;
@@ -29,6 +100,23 @@ public:
// construction/destruction
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)); }
+ template <class Object> devcb_base &set_cd_handler(Object &&cb) { return m_cd_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_io_handler(Object &&cb) { return m_io_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_msg_handler(Object &&cb) { return m_msg_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_req_handler(Object &&cb) { return m_req_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_ack_handler(Object &&cb) { return m_ack_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_atn_handler(Object &&cb) { return m_atn_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_rst_handler(Object &&cb) { return m_rst_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_data0_handler(Object &&cb) { return m_data0_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_data1_handler(Object &&cb) { return m_data1_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_data2_handler(Object &&cb) { return m_data2_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_data3_handler(Object &&cb) { return m_data3_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_data4_handler(Object &&cb) { return m_data4_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_data5_handler(Object &&cb) { return m_data5_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_data6_handler(Object &&cb) { return m_data6_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_data7_handler(Object &&cb) { return m_data7_handler.set_callback(std::forward<Object>(cb)); }
auto bsy_handler() { return m_bsy_handler.bind(); }
auto sel_handler() { return m_sel_handler.bind(); }
auto cd_handler() { return m_cd_handler.bind(); }
diff --git a/src/devices/bus/scsi/scsicd.cpp b/src/devices/bus/scsi/scsicd.cpp
index 0f577ea44d3..1a5e6f8002d 100644
--- a/src/devices/bus/scsi/scsicd.cpp
+++ b/src/devices/bus/scsi/scsicd.cpp
@@ -30,8 +30,8 @@ void scsicd_device::device_start()
scsihle_device::device_start();
}
-void scsicd_device::device_add_mconfig(machine_config &config)
-{
- CDROM(config, "image").set_interface("cdrom");
- CDDA(config, "cdda");
-}
+MACHINE_CONFIG_START(scsicd_device::device_add_mconfig)
+ MCFG_CDROM_ADD("image")
+ MCFG_CDROM_INTERFACE("cdrom")
+ MCFG_DEVICE_ADD("cdda", CDDA)
+MACHINE_CONFIG_END
diff --git a/src/devices/bus/scsi/scsihd.cpp b/src/devices/bus/scsi/scsihd.cpp
index 4fb01e02130..b63bafeb098 100644
--- a/src/devices/bus/scsi/scsihd.cpp
+++ b/src/devices/bus/scsi/scsihd.cpp
@@ -29,7 +29,7 @@ void scsihd_device::device_start()
scsihle_device::device_start();
}
-void scsihd_device::device_add_mconfig(machine_config &config)
-{
- HARDDISK(config, "image", "scsi_hdd");
-}
+MACHINE_CONFIG_START(scsihd_device::device_add_mconfig)
+ MCFG_HARDDISK_ADD("image")
+ MCFG_HARDDISK_INTERFACE("scsi_hdd")
+MACHINE_CONFIG_END
diff --git a/src/devices/bus/scsi/scsihle.h b/src/devices/bus/scsi/scsihle.h
index e98e38122e7..bce047ae474 100644
--- a/src/devices/bus/scsi/scsihle.h
+++ b/src/devices/bus/scsi/scsihle.h
@@ -84,4 +84,10 @@ extern const input_device_default DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_5)[];
extern const input_device_default DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_6)[];
extern const input_device_default DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_7)[];
+#define MCFG_SCSIDEV_ADD(_tag, _option, _type, _id) \
+ MCFG_DEVICE_MODIFY(_tag ) \
+ MCFG_SLOT_OPTION_ADD( _option, _type ) \
+ MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS( _option, _id ) \
+ MCFG_SLOT_DEFAULT_OPTION( _option )
+
#endif // MAME_BUS_SCSI_SCSIHLE_H