diff options
Diffstat (limited to 'src/devices/machine/mc6843.h')
-rw-r--r-- | src/devices/machine/mc6843.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/devices/machine/mc6843.h b/src/devices/machine/mc6843.h index 63052970edb..c75ba561548 100644 --- a/src/devices/machine/mc6843.h +++ b/src/devices/machine/mc6843.h @@ -21,6 +21,15 @@ class mc6843_device : public device_t public: mc6843_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + template<int Id, typename T> void set_floppy_drive(T &&tag) { m_floppy[Id].set_tag(std::forward<T>(tag)); } + template<typename T, typename U, typename V, typename W> void set_floppy_drives(T &&tag0, U &&tag1, V &&tag2, W &&tag3) + { + m_floppy[0].set_tag(std::forward<T>(tag0)); + m_floppy[1].set_tag(std::forward<U>(tag1)); + m_floppy[2].set_tag(std::forward<V>(tag2)); + m_floppy[3].set_tag(std::forward<W>(tag3)); + } + auto irq() { return m_write_irq.bind(); } DECLARE_READ8_MEMBER(read); @@ -42,6 +51,8 @@ private: TIMER_CONT }; + optional_device_array<legacy_floppy_image_device, 4> m_floppy; + devcb_write_line m_write_irq; /* registers */ @@ -68,7 +79,6 @@ private: /* trigger delayed actions (bottom halves) */ emu_timer* m_timer_cont; - legacy_floppy_image_device* floppy_image(uint8_t drive); legacy_floppy_image_device* floppy_image(); void status_update(); void cmd_end(); |