summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/imagedev/microdrv.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/imagedev/microdrv.h')
-rw-r--r--src/devices/imagedev/microdrv.h52
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