diff options
Diffstat (limited to 'src/devices/bus/centronics/ctronics.h')
-rw-r--r-- | src/devices/bus/centronics/ctronics.h | 24 |
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 ); |