diff options
Diffstat (limited to 'src/devices/imagedev/microdrv.h')
-rw-r--r-- | src/devices/imagedev/microdrv.h | 52 |
1 files changed, 23 insertions, 29 deletions
diff --git a/src/devices/imagedev/microdrv.h b/src/devices/imagedev/microdrv.h index 30ff82724fc..c4480fade69 100644 --- a/src/devices/imagedev/microdrv.h +++ b/src/devices/imagedev/microdrv.h @@ -8,12 +8,12 @@ *********************************************************************/ -#ifndef MAME_DEVICES_IMAGEDEV_MICRODRV_H -#define MAME_DEVICES_IMAGEDEV_MICRODRV_H +#ifndef MAME_IMAGEDEV_MICRODRV_H +#define MAME_IMAGEDEV_MICRODRV_H #pragma once -#include "softlist_dev.h" +#include "magtape.h" //************************************************************************** @@ -30,8 +30,7 @@ // ======================> microdrive_image_device -class microdrive_image_device : public device_t, - public device_image_interface +class microdrive_image_device : public microtape_image_device { public: // construction/destruction @@ -40,35 +39,30 @@ public: auto comms_out_wr_callback() { return m_write_comms_out.bind(); } - // image-level overrides - virtual image_init_result call_load() override; + // device_image_interface implementation + virtual std::pair<std::error_condition, std::string> call_load() override; virtual void call_unload() override; - virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); } - virtual iodevice_t image_type() const override { return IO_MAGTAPE; } - - virtual bool is_readable() const override { return 1; } - virtual bool is_writeable() const override { return 1; } - virtual bool is_creatable() const override { return 0; } - virtual bool must_be_loaded() const override { return 0; } - virtual bool is_reset_on_load() const override { return 0; } - virtual const char *image_interface() const override { return "ql_cass"; } - virtual const char *file_extensions() const override { return "mdv,mdr"; } + virtual bool is_creatable() const noexcept override { return false; } + virtual const char *image_interface() const noexcept override { return "ql_cass"; } + virtual const char *file_extensions() const noexcept override { return "mdv,mdr"; } // specific implementation - DECLARE_WRITE_LINE_MEMBER( clk_w ); - DECLARE_WRITE_LINE_MEMBER( comms_in_w ); - DECLARE_WRITE_LINE_MEMBER( erase_w ); - DECLARE_WRITE_LINE_MEMBER( read_write_w ); - DECLARE_WRITE_LINE_MEMBER( data1_w ); - DECLARE_WRITE_LINE_MEMBER( data2_w ); - DECLARE_READ_LINE_MEMBER ( data1_r ); - DECLARE_READ_LINE_MEMBER ( data2_r ); + void clk_w(int state); + void comms_in_w(int state); + void erase_w(int state); + void read_write_w(int state); + void data1_w(int state); + void data2_w(int state); + int data1_r(); + int data2_r(); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // device_t implementation + virtual void device_start() override ATTR_COLD; + + TIMER_CALLBACK_MEMBER(bit_timer); + private: devcb_write_line m_write_comms_out; @@ -91,4 +85,4 @@ private: // device type definition DECLARE_DEVICE_TYPE(MICRODRIVE, microdrive_image_device) -#endif // MAME_DEVICES_IMAGEDEV_MICRODRV_H +#endif // MAME_IMAGEDEV_MICRODRV_H |