diff options
Diffstat (limited to 'src/devices/machine/upd765.h')
-rw-r--r-- | src/devices/machine/upd765.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/devices/machine/upd765.h b/src/devices/machine/upd765.h index 2eefbc9ae55..d0c7c6ac3ae 100644 --- a/src/devices/machine/upd765.h +++ b/src/devices/machine/upd765.h @@ -63,16 +63,16 @@ MCFG_DEVICE_ADD(_tag, TC8566AF, 0) #define MCFG_MCS3201_INPUT_HANDLER(_devcb) \ - devcb = &downcast<mcs3201_device &>(*device).set_input_handler(DEVCB_##_devcb); + downcast<mcs3201_device &>(*device).set_input_handler(DEVCB_##_devcb); #define MCFG_UPD765_INTRQ_CALLBACK(_write) \ - devcb = &downcast<upd765_family_device &>(*device).set_intrq_wr_callback(DEVCB_##_write); + downcast<upd765_family_device &>(*device).set_intrq_wr_callback(DEVCB_##_write); #define MCFG_UPD765_DRQ_CALLBACK(_write) \ - devcb = &downcast<upd765_family_device &>(*device).set_drq_wr_callback(DEVCB_##_write); + downcast<upd765_family_device &>(*device).set_drq_wr_callback(DEVCB_##_write); #define MCFG_UPD765_HDL_CALLBACK(_write) \ - devcb = &downcast<upd765_family_device &>(*device).set_hdl_wr_callback(DEVCB_##_write); + downcast<upd765_family_device &>(*device).set_hdl_wr_callback(DEVCB_##_write); /* Interface required for PC ISA wrapping */ class pc_fdc_interface : public device_t { @@ -104,6 +104,9 @@ public: template <class Object> devcb_base &set_intrq_wr_callback(Object &&cb) { return intrq_cb.set_callback(std::forward<Object>(cb)); } template <class Object> devcb_base &set_drq_wr_callback(Object &&cb) { return drq_cb.set_callback(std::forward<Object>(cb)); } template <class Object> devcb_base &set_hdl_wr_callback(Object &&cb) { return hdl_cb.set_callback(std::forward<Object>(cb)); } + auto intrq_wr_callback() { return intrq_cb.bind(); } + auto drq_wr_callback() { return drq_cb.bind(); } + auto hdl_wr_callback() { return hdl_cb.bind(); } virtual void map(address_map &map) override = 0; @@ -435,6 +438,10 @@ protected: class upd765a_device : public upd765_family_device { public: + upd765a_device(const machine_config &mconfig, const char *tag, device_t *owner, bool ready, bool select) : upd765a_device(mconfig, tag, owner, 0U) { + set_ready_line_connected(ready); + set_select_lines_connected(select); + } upd765a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void map(address_map &map) override; |