diff options
-rw-r--r-- | src/devices/bus/isa/isa.cpp | 7 | ||||
-rw-r--r-- | src/devices/bus/isa/isa.h | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/devices/bus/isa/isa.cpp b/src/devices/bus/isa/isa.cpp index 5d56e949380..303ffb289ae 100644 --- a/src/devices/bus/isa/isa.cpp +++ b/src/devices/bus/isa/isa.cpp @@ -125,6 +125,7 @@ isa8_device::isa8_device(const machine_config &mconfig, device_type type, const m_out_drq1_cb(*this), m_out_drq2_cb(*this), m_out_drq3_cb(*this), + m_write_iochrdy(*this), m_write_iochck(*this) { std::fill(std::begin(m_dma_device), std::end(m_dma_device), nullptr); @@ -223,6 +224,7 @@ void isa8_device::device_config_complete() void isa8_device::device_resolve_objects() { // resolve callbacks + m_write_iochrdy.resolve_safe(); m_write_iochck.resolve_safe(); m_out_irq2_cb.resolve_safe(); @@ -407,6 +409,11 @@ void isa8_device::eop_w(int channel, int state) m_dma_device[channel]->eop_w(state); } +void isa8_device::set_ready(bool ready) +{ + m_write_iochrdy(ready); +} + void isa8_device::nmi() { // active low pulse diff --git a/src/devices/bus/isa/isa.h b/src/devices/bus/isa/isa.h index 7994f4c892a..0da8b483be8 100644 --- a/src/devices/bus/isa/isa.h +++ b/src/devices/bus/isa/isa.h @@ -125,6 +125,7 @@ public: // inline configuration template <typename T> void set_memspace(T &&tag, int spacenum) { m_memspace.set_tag(std::forward<T>(tag), spacenum); } template <typename T> void set_iospace(T &&tag, int spacenum) { m_iospace.set_tag(std::forward<T>(tag), spacenum); } + auto iochrdy_callback() { return m_write_iochrdy.bind(); } auto iochck_callback() { return m_write_iochck.bind(); } auto irq2_callback() { return m_out_irq2_cb.bind(); } auto irq3_callback() { return m_out_irq3_cb.bind(); } @@ -181,6 +182,7 @@ public: void dack_line_w(int line, int state); void eop_w(int channels, int state); + void set_ready(bool ready); void nmi(); virtual void set_dma_channel(uint8_t channel, device_isa8_card_interface *dev, bool do_eop); @@ -222,6 +224,7 @@ protected: std::forward_list<device_slot_interface *> m_slot_list; private: + devcb_write_line m_write_iochrdy; devcb_write_line m_write_iochck; }; |