summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/centronics/ctronics.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/centronics/ctronics.h')
-rw-r--r--src/devices/bus/centronics/ctronics.h24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/devices/bus/centronics/ctronics.h b/src/devices/bus/centronics/ctronics.h
index a9e9c921546..dbbaa1ee5e1 100644
--- a/src/devices/bus/centronics/ctronics.h
+++ b/src/devices/bus/centronics/ctronics.h
@@ -76,16 +76,6 @@
MCFG_OUTPUT_LATCH_BIT6_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data6)) \
MCFG_OUTPUT_LATCH_BIT7_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data7))
-#define MCFG_CENTRONICS_DATA_INPUT_BUFFER(_tag) \
- MCFG_CENTRONICS_DATA0_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit0)) \
- MCFG_CENTRONICS_DATA1_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit1)) \
- MCFG_CENTRONICS_DATA2_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit2)) \
- MCFG_CENTRONICS_DATA3_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit3)) \
- MCFG_CENTRONICS_DATA4_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit4)) \
- MCFG_CENTRONICS_DATA5_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit5)) \
- MCFG_CENTRONICS_DATA6_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit6)) \
- MCFG_CENTRONICS_DATA7_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit7))
-
DECLARE_DEVICE_TYPE(CENTRONICS, centronics_device)
class device_centronics_peripheral_interface;
@@ -125,6 +115,8 @@ public:
template <class Object> devcb_base &set_init_handler(Object &&cb) { return m_init_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_select_in_handler(Object &&cb) { return m_select_in_handler.set_callback(std::forward<Object>(cb)); }
+ auto strobe_handler() { return m_strobe_handler.bind(); }
+
auto ack_handler() { return m_ack_handler.bind(); }
auto busy_handler() { return m_busy_handler.bind(); }
auto perror_handler() { return m_perror_handler.bind(); }
@@ -134,6 +126,18 @@ public:
auto init_handler() { return m_init_handler.bind(); }
auto select_in_handler() { return m_select_in_handler.bind(); }
+ template <typename T> void set_data_input_buffer(T &&tag)
+ {
+ m_data0_handler.bind().set(tag, FUNC(input_buffer_device::write_bit0));
+ m_data1_handler.bind().set(tag, FUNC(input_buffer_device::write_bit1));
+ m_data2_handler.bind().set(tag, FUNC(input_buffer_device::write_bit2));
+ m_data3_handler.bind().set(tag, FUNC(input_buffer_device::write_bit3));
+ m_data4_handler.bind().set(tag, FUNC(input_buffer_device::write_bit4));
+ m_data5_handler.bind().set(tag, FUNC(input_buffer_device::write_bit5));
+ m_data6_handler.bind().set(tag, FUNC(input_buffer_device::write_bit6));
+ m_data7_handler.bind().set(tag, FUNC(input_buffer_device::write_bit7));
+ }
+
DECLARE_WRITE_LINE_MEMBER( write_strobe );
DECLARE_WRITE_LINE_MEMBER( write_data0 );
DECLARE_WRITE_LINE_MEMBER( write_data1 );