summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/dmac.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/dmac.h')
-rw-r--r--src/devices/machine/dmac.h44
1 files changed, 7 insertions, 37 deletions
diff --git a/src/devices/machine/dmac.h b/src/devices/machine/dmac.h
index 8c72c02d05d..203317dd742 100644
--- a/src/devices/machine/dmac.h
+++ b/src/devices/machine/dmac.h
@@ -17,39 +17,9 @@
//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_DMAC_ADD(_tag, _clock) \
- MCFG_DEVICE_ADD(_tag, AMIGA_DMAC, _clock)
-#define MCFG_DMAC_CFGOUT_HANDLER(_devcb) \
- downcast<amiga_dmac_device &>(*device).set_cfgout_handler(DEVCB_##_devcb);
-
-#define MCFG_DMAC_INT_HANDLER(_devcb) \
- downcast<amiga_dmac_device &>(*device).set_int_handler(DEVCB_##_devcb);
-
-#define MCFG_DMAC_XDACK_HANDLER(_devcb) \
- downcast<amiga_dmac_device &>(*device).set_xdack_handler(DEVCB_##_devcb);
-
-#define MCFG_DMAC_SCSI_READ_HANDLER(_devcb) \
- downcast<amiga_dmac_device &>(*device).set_scsi_read_handler(DEVCB_##_devcb);
-
-#define MCFG_DMAC_SCSI_WRITE_HANDLER(_devcb) \
- downcast<amiga_dmac_device &>(*device).set_scsi_write_handler(DEVCB_##_devcb);
-
-#define MCFG_DMAC_IO_READ_HANDLER(_devcb) \
- downcast<amiga_dmac_device &>(*device).set_io_read_handler(DEVCB_##_devcb);
-
-#define MCFG_DMAC_IO_WRITE_HANDLER(_devcb) \
- downcast<amiga_dmac_device &>(*device).set_io_write_handler(DEVCB_##_devcb);
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
-// ======================> amiga_dmac_device
-
class amiga_dmac_device : public device_t, public amiga_autoconfig
{
public:
@@ -57,13 +27,13 @@ public:
amiga_dmac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// callbacks
- template <class Object> devcb_base &set_cfgout_handler(Object &&cb) { return m_cfgout_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_int_handler(Object &&cb) { return m_int_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_xdack_handler(Object &&cb) { return m_xdack_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_scsi_read_handler(Object &&cb) { return m_scsi_read_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_scsi_write_handler(Object &&cb) { return m_scsi_write_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_io_read_handler(Object &&cb) { return m_io_read_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_io_write_handler(Object &&cb) { return m_io_write_handler.set_callback(std::forward<Object>(cb)); }
+ auto cfgout_handler() { return m_cfgout_handler.bind(); }
+ auto int_handler() { return m_int_handler.bind(); }
+ auto xdack_handler() { return m_xdack_handler.bind(); }
+ auto scsi_read_handler() { return m_scsi_read_handler.bind(); }
+ auto scsi_write_handler() { return m_scsi_write_handler.bind(); }
+ auto io_read_handler() { return m_io_read_handler.bind(); }
+ auto io_write_handler() { return m_io_write_handler.bind(); }
void set_address_space(address_space *space) { m_space = space; }
void set_rom(uint8_t *rom) { m_rom = rom; }