diff options
author | 2017-12-20 21:48:44 -0500 | |
---|---|---|
committer | 2017-12-20 21:50:22 -0500 | |
commit | 9492f7eeb26d77d93ec3ffa01dcd4aaf15322b62 (patch) | |
tree | 83490eac6d4103a6557b4c42827623fd9c5af2f7 /src/devices/machine/amigafdc.h | |
parent | 1ead1fb7912b474b8f25c73e2ebee3b1deb2d434 (diff) |
amigafdc: Eliminate driver_data dependencies (nw)
Diffstat (limited to 'src/devices/machine/amigafdc.h')
-rw-r--r-- | src/devices/machine/amigafdc.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/devices/machine/amigafdc.h b/src/devices/machine/amigafdc.h index b0e18debc69..065ed590176 100644 --- a/src/devices/machine/amigafdc.h +++ b/src/devices/machine/amigafdc.h @@ -10,11 +10,27 @@ #define MCFG_AMIGA_FDC_INDEX_CALLBACK(_write) \ devcb = &amiga_fdc_device::set_index_wr_callback(*device, DEVCB_##_write); +#define MCFG_AMIGA_FDC_READ_DMA_CALLBACK(_read) \ + devcb = &amiga_fdc_device::set_dma_rd_callback(*device, DEVCB_##_read); + +#define MCFG_AMIGA_FDC_WRITE_DMA_CALLBACK(_write) \ + devcb = &amiga_fdc_device::set_dma_wr_callback(*device, DEVCB_##_write); + +#define MCFG_AMIGA_FDC_DSKBLK_CALLBACK(_write) \ + devcb = &amiga_fdc_device::set_dskblk_wr_callback(*device, DEVCB_##_write); + +#define MCFG_AMIGA_FDC_DSKSYN_CALLBACK(_write) \ + devcb = &amiga_fdc_device::set_dsksyn_wr_callback(*device, DEVCB_##_write); + class amiga_fdc_device : public device_t { public: amiga_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); template <class Object> static devcb_base &set_index_wr_callback(device_t &device, Object &&cb) { return downcast<amiga_fdc_device &>(device).m_write_index.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base &set_dma_rd_callback(device_t &device, Object &&cb) { return downcast<amiga_fdc_device &>(device).m_read_dma.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base &set_dma_wr_callback(device_t &device, Object &&cb) { return downcast<amiga_fdc_device &>(device).m_write_dma.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base &set_dskblk_wr_callback(device_t &device, Object &&cb) { return downcast<amiga_fdc_device &>(device).m_write_dskblk.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base &set_dsksyn_wr_callback(device_t &device, Object &&cb) { return downcast<amiga_fdc_device &>(device).m_write_dsksyn.set_callback(std::forward<Object>(cb)); } DECLARE_WRITE8_MEMBER(ciaaprb_w); @@ -87,6 +103,10 @@ private: }; devcb_write_line m_write_index; + devcb_read16 m_read_dma; + devcb_write16 m_write_dma; + devcb_write_line m_write_dskblk; + devcb_write_line m_write_dsksyn; floppy_image_device *floppy; floppy_image_device *floppy_devices[4]; |