diff options
Diffstat (limited to 'src/mame/machine/micropolis.h')
-rw-r--r-- | src/mame/machine/micropolis.h | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/mame/machine/micropolis.h b/src/mame/machine/micropolis.h index 7012690c5d8..d7eb6616e18 100644 --- a/src/mame/machine/micropolis.h +++ b/src/mame/machine/micropolis.h @@ -30,16 +30,15 @@ public: auto intrq_wr_callback() { return m_write_intrq.bind(); } auto drq_wr_callback() { return m_write_drq.bind(); } - void set_drive_tags(const char *tag1, const char *tag2, const char *tag3, const char *tag4) + template<typename T, typename U, typename V, typename W> + void set_drive_tags(T &&tag1, U &&tag2, V &&tag3, W &&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; + m_floppy_drive[0].set_tag(std::forward<T>(tag1)); + m_floppy_drive[1].set_tag(std::forward<U>(tag2)); + m_floppy_drive[2].set_tag(std::forward<V>(tag3)); + m_floppy_drive[3].set_tag(std::forward<W>(tag4)); } - void set_default_drive_tags() { set_drive_tags(FLOPPY_0, FLOPPY_1, FLOPPY_2, FLOPPY_3); } - void set_drive(uint8_t drive); // set current drive (0-3) DECLARE_READ8_MEMBER( status_r ); @@ -63,7 +62,7 @@ private: devcb_write_line m_write_intrq; devcb_write_line m_write_drq; - const char *m_floppy_drive_tags[4]; + optional_device_array<legacy_floppy_image_device, 4> m_floppy_drive; /* register */ uint8_t m_data; |