diff options
Diffstat (limited to 'src/mame/machine/micropolis.h')
-rw-r--r-- | src/mame/machine/micropolis.h | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/mame/machine/micropolis.h b/src/mame/machine/micropolis.h index 9ee893c1cdd..7474e77cbaf 100644 --- a/src/mame/machine/micropolis.h +++ b/src/mame/machine/micropolis.h @@ -22,19 +22,19 @@ ***************************************************************************/ #define MCFG_MICROPOLIS_DRIVE_TAGS(_tag1, _tag2, _tag3, _tag4) \ - micropolis_device::set_drive_tags(*device, _tag1, _tag2, _tag3, _tag4); + downcast<micropolis_device &>(*device).set_drive_tags(_tag1, _tag2, _tag3, _tag4); #define MCFG_MICROPOLIS_DEFAULT_DRIVE4_TAGS \ MCFG_MICROPOLIS_DRIVE_TAGS(FLOPPY_0, FLOPPY_1, FLOPPY_2, FLOPPY_3) #define MCFG_MICROPOLIS_DDEN_CALLBACK(_read) \ - devcb = µpolis_device::set_dden_rd_callback(*device, DEVCB_##_read); + devcb = &downcast<micropolis_device &>(*device).set_dden_rd_callback(DEVCB_##_read); #define MCFG_MICROPOLIS_INTRQ_CALLBACK(_write) \ - devcb = µpolis_device::set_intrq_wr_callback(*device, DEVCB_##_write); + devcb = &downcast<micropolis_device &>(*device).set_intrq_wr_callback(DEVCB_##_write); #define MCFG_MICROPOLIS_DRQ_CALLBACK(_write) \ - devcb = µpolis_device::set_drq_wr_callback(*device, DEVCB_##_write); + devcb = &downcast<micropolis_device &>(*device).set_drq_wr_callback(DEVCB_##_write); /*************************************************************************** MACROS @@ -45,17 +45,16 @@ class micropolis_device : public device_t public: micropolis_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template <class Object> static devcb_base &set_dden_rd_callback(device_t &device, Object &&cb) { return downcast<micropolis_device &>(device).m_read_dden.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_intrq_wr_callback(device_t &device, Object &&cb) { return downcast<micropolis_device &>(device).m_write_intrq.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_drq_wr_callback(device_t &device, Object &&cb) { return downcast<micropolis_device &>(device).m_write_drq.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_dden_rd_callback(Object &&cb) { return m_read_dden.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_intrq_wr_callback(Object &&cb) { return m_write_intrq.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_drq_wr_callback(Object &&cb) { return m_write_drq.set_callback(std::forward<Object>(cb)); } - static void set_drive_tags(device_t &device, const char *tag1, const char *tag2, const char *tag3, const char *tag4) + void set_drive_tags(const char *tag1, const char *tag2, const char *tag3, const char *tag4) { - micropolis_device &dev = downcast<micropolis_device &>(device); - dev.m_floppy_drive_tags[0] = tag1; - dev.m_floppy_drive_tags[1] = tag2; - dev.m_floppy_drive_tags[2] = tag3; - dev.m_floppy_drive_tags[3] = tag4; + m_floppy_drive_tags[0] = tag1; + m_floppy_drive_tags[1] = tag2; + m_floppy_drive_tags[2] = tag3; + m_floppy_drive_tags[3] = tag4; } void set_drive(uint8_t drive); // set current drive (0-3) |