diff options
Diffstat (limited to 'src/devices/machine/upd765.h')
-rw-r--r-- | src/devices/machine/upd765.h | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/src/devices/machine/upd765.h b/src/devices/machine/upd765.h index dd2e30ce78a..0a40e4f4b53 100644 --- a/src/devices/machine/upd765.h +++ b/src/devices/machine/upd765.h @@ -45,34 +45,29 @@ public: auto intrq_wr_callback() { return intrq_cb.bind(); } auto drq_wr_callback() { return drq_cb.bind(); } auto hdl_wr_callback() { return hdl_cb.bind(); } + auto us_wr_callback() { return us_cb.bind(); } + auto idx_wr_callback() { return idx_cb.bind(); } virtual void map(address_map &map) override = 0; - DECLARE_READ8_MEMBER (sra_r); - DECLARE_READ8_MEMBER (srb_r); - DECLARE_READ8_MEMBER (dor_r); - DECLARE_WRITE8_MEMBER(dor_w); - DECLARE_READ8_MEMBER (tdr_r); - DECLARE_WRITE8_MEMBER(tdr_w); - uint8_t read_msr(); - DECLARE_READ8_MEMBER (msr_r); - DECLARE_WRITE8_MEMBER(dsr_w); - uint8_t read_fifo(); - void write_fifo(uint8_t data); - DECLARE_READ8_MEMBER (fifo_r) { return read_fifo(); } - DECLARE_WRITE8_MEMBER(fifo_w) { write_fifo(data); } - DECLARE_READ8_MEMBER (dir_r); - DECLARE_WRITE8_MEMBER(ccr_w); + uint8_t sra_r(); + uint8_t srb_r(); + uint8_t dor_r(); + void dor_w(uint8_t data); + uint8_t tdr_r(); + void tdr_w(uint8_t data); + uint8_t msr_r(); + void dsr_w(uint8_t data); + uint8_t fifo_r(); + void fifo_w(uint8_t data); + uint8_t dir_r() { return do_dir_r(); } + void ccr_w(uint8_t data); virtual uint8_t do_dir_r() override; uint8_t dma_r() override; void dma_w(uint8_t data) override; - // Same as the previous ones, but as memory-mappable members - DECLARE_READ8_MEMBER(mdma_r); - DECLARE_WRITE8_MEMBER(mdma_w); - bool get_irq() const; bool get_drq() const; void tc_w(bool val) override; @@ -91,6 +86,7 @@ public: protected: upd765_family_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_resolve_objects() override; virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; @@ -269,7 +265,8 @@ protected: int main_phase; live_info cur_live, checkpoint_live; - devcb_write_line intrq_cb, drq_cb, hdl_cb; + devcb_write_line intrq_cb, drq_cb, hdl_cb, idx_cb; + devcb_write8 us_cb; bool cur_irq, other_irq, data_irq, drq, internal_drq, tc, tc_done, locked, mfm, scan_done; floppy_info flopi[4]; @@ -473,7 +470,7 @@ public: upd72065_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void map(address_map &map) override; - DECLARE_WRITE8_MEMBER(auxcmd_w); + void auxcmd_w(uint8_t data); }; class n82077aa_device : public upd765_family_device { @@ -524,7 +521,7 @@ public: auto input_handler() { return m_input_handler.bind(); } virtual void map(address_map &map) override; - DECLARE_READ8_MEMBER( input_r ); + uint8_t input_r(); protected: virtual void device_start() override; @@ -539,7 +536,7 @@ public: virtual void map(address_map &map) override; - DECLARE_WRITE8_MEMBER(cr1_w); + void cr1_w(uint8_t data); protected: virtual void device_start() override; |