summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/amigafdc.h
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2017-12-20 21:48:44 -0500
committer AJR <ajrhacker@users.noreply.github.com>2017-12-20 21:50:22 -0500
commit9492f7eeb26d77d93ec3ffa01dcd4aaf15322b62 (patch)
tree83490eac6d4103a6557b4c42827623fd9c5af2f7 /src/devices/machine/amigafdc.h
parent1ead1fb7912b474b8f25c73e2ebee3b1deb2d434 (diff)
amigafdc: Eliminate driver_data dependencies (nw)
Diffstat (limited to 'src/devices/machine/amigafdc.h')
-rw-r--r--src/devices/machine/amigafdc.h20
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];