diff options
Diffstat (limited to 'src/devices/machine/ncr5380n.h')
-rw-r--r-- | src/devices/machine/ncr5380n.h | 45 |
1 files changed, 20 insertions, 25 deletions
diff --git a/src/devices/machine/ncr5380n.h b/src/devices/machine/ncr5380n.h index 973616c65a3..365df032419 100644 --- a/src/devices/machine/ncr5380n.h +++ b/src/devices/machine/ncr5380n.h @@ -15,11 +15,6 @@ #include "machine/nscsi_bus.h" -#define MCFG_NCR5380N_IRQ_HANDLER(_devcb) \ - downcast<ncr5380n_device &>(*device).set_irq_handler(DEVCB_##_devcb); - -#define MCFG_NCR5380N_DRQ_HANDLER(_devcb) \ - downcast<ncr5380n_device &>(*device).set_drq_handler(DEVCB_##_devcb); class ncr5380n_device : public nscsi_device { @@ -27,11 +22,11 @@ public: ncr5380n_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // configuration helpers - template <class Object> devcb_base &set_irq_handler(Object &&cb) { return m_irq_handler.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_drq_handler(Object &&cb) { return m_drq_handler.set_callback(std::forward<Object>(cb)); } + auto irq_handler() { return m_irq_handler.bind(); } + auto drq_handler() { return m_drq_handler.bind(); } - DECLARE_READ8_MEMBER(read); - DECLARE_WRITE8_MEMBER(write); + uint8_t read(offs_t offset); + void write(offs_t offset, uint8_t data); uint8_t dma_r(); void dma_w(uint8_t val); @@ -203,22 +198,22 @@ private: void map(address_map &map); - DECLARE_READ8_MEMBER(scsidata_r); - DECLARE_WRITE8_MEMBER(outdata_w); - DECLARE_READ8_MEMBER(icmd_r); - DECLARE_WRITE8_MEMBER(icmd_w); - DECLARE_READ8_MEMBER(mode_r); - DECLARE_WRITE8_MEMBER(mode_w); - DECLARE_READ8_MEMBER(command_r); - DECLARE_WRITE8_MEMBER(command_w); - DECLARE_READ8_MEMBER(status_r); - DECLARE_WRITE8_MEMBER(selenable_w); - DECLARE_READ8_MEMBER(busandstatus_r); - DECLARE_WRITE8_MEMBER(startdmasend_w); - DECLARE_READ8_MEMBER(indata_r); - DECLARE_WRITE8_MEMBER(startdmatargetrx_w); - DECLARE_READ8_MEMBER(resetparityirq_r); - DECLARE_WRITE8_MEMBER(startdmainitrx_w); + uint8_t scsidata_r(); + void outdata_w(uint8_t data); + uint8_t icmd_r(); + void icmd_w(uint8_t data); + uint8_t mode_r(); + void mode_w(uint8_t data); + uint8_t command_r(); + void command_w(uint8_t data); + uint8_t status_r(); + void selenable_w(uint8_t data); + uint8_t busandstatus_r(); + void startdmasend_w(uint8_t data); + uint8_t indata_r(); + void startdmatargetrx_w(uint8_t data); + uint8_t resetparityirq_r(); + void startdmainitrx_w(uint8_t data); devcb_write_line m_irq_handler; devcb_write_line m_drq_handler; |