1 // license:BSD-3-Clause 2 // copyright-holders:Dirk Best, Nigel Barnes 3 /*************************************************************************** 4 5 Acorn - BBC Micro, Electron, Archimedes 6 7 Disk image formats 8 9 ***************************************************************************/ 10 #ifndef MAME_FORMATS_ACORN_DSK_H 11 #define MAME_FORMATS_ACORN_DSK_H 12 13 #pragma once 14 15 #include "flopimg.h" 16 #include "wd177x_dsk.h" 17 18 class acorn_ssd_format : public wd177x_format 19 { 20 public: 21 acorn_ssd_format(); 22 23 virtual int find_size(io_generic *io, uint32_t form_factor) override; 24 virtual int identify(io_generic *io, uint32_t form_factor) override; 25 virtual int get_image_offset(const format &f, int head, int track) override; 26 virtual const char *name() const override; 27 virtual const char *description() const override; 28 virtual const char *extensions() const override; 29 30 private: 31 static const format formats[]; 32 }; 33 34 class acorn_dsd_format : public wd177x_format 35 { 36 public: 37 acorn_dsd_format(); 38 39 virtual int find_size(io_generic *io, uint32_t form_factor) override; 40 virtual int identify(io_generic *io, uint32_t form_factor) override; 41 virtual int get_image_offset(const format &f, int head, int track) override; 42 virtual const char *name() const override; 43 virtual const char *description() const override; 44 virtual const char *extensions() const override; 45 46 private: 47 static const format formats[]; 48 }; 49 50 class opus_ddos_format : public wd177x_format 51 { 52 public: 53 opus_ddos_format(); 54 55 virtual int find_size(io_generic *io, uint32_t form_factor) override; 56 virtual int identify(io_generic *io, uint32_t form_factor) override; 57 virtual int get_image_offset(const format &f, int head, int track) override; 58 virtual const char *name() const override; 59 virtual const char *description() const override; 60 virtual const char *extensions() const override; 61 62 private: 63 static const format formats[]; 64 }; 65 66 class acorn_adfs_old_format : public wd177x_format 67 { 68 public: 69 acorn_adfs_old_format(); 70 71 virtual int find_size(io_generic *io, uint32_t form_factor) override; 72 virtual int identify(io_generic *io, uint32_t form_factor) override; 73 virtual int get_image_offset(const format &f, int head, int track) override; 74 virtual const char *name() const override; 75 virtual const char *description() const override; 76 virtual const char *extensions() const override; 77 78 private: 79 static const format formats[]; 80 }; 81 82 class acorn_adfs_new_format : public wd177x_format 83 { 84 public: 85 acorn_adfs_new_format(); 86 87 virtual int find_size(io_generic *io, uint32_t form_factor) override; 88 virtual int identify(io_generic *io, uint32_t form_factor) override; 89 virtual int get_image_offset(const format &f, int head, int track) override; 90 virtual const char *name() const override; 91 virtual const char *description() const override; 92 virtual const char *extensions() const override; 93 94 private: 95 static const format formats[]; 96 }; 97 98 class acorn_dos_format : public wd177x_format 99 { 100 public: 101 acorn_dos_format(); 102 103 virtual int find_size(io_generic *io, uint32_t form_factor) override; 104 virtual int identify(io_generic *io, uint32_t form_factor) override; 105 virtual int get_image_offset(const format &f, int head, int track) override; 106 virtual const char *name() const override; 107 virtual const char *description() const override; 108 virtual const char *extensions() const override; 109 110 private: 111 static const format formats[]; 112 }; 113 114 class opus_ddcpm_format : public floppy_image_format_t 115 { 116 public: 117 opus_ddcpm_format(); 118 119 virtual int identify(io_generic *io, uint32_t form_factor) override; 120 virtual bool load(io_generic *io, uint32_t form_factor, floppy_image *image) override; 121 virtual bool save(io_generic *io, floppy_image *image) override; 122 123 virtual const char *name() const override; 124 virtual const char *description() const override; 125 virtual const char *extensions() const override; 126 virtual bool supports_save() const override; 127 }; 128 129 130 extern const floppy_format_type FLOPPY_ACORN_SSD_FORMAT; 131 extern const floppy_format_type FLOPPY_ACORN_DSD_FORMAT; 132 extern const floppy_format_type FLOPPY_ACORN_DOS_FORMAT; 133 extern const floppy_format_type FLOPPY_ACORN_ADFS_OLD_FORMAT; 134 extern const floppy_format_type FLOPPY_ACORN_ADFS_NEW_FORMAT; 135 extern const floppy_format_type FLOPPY_OPUS_DDOS_FORMAT; 136 extern const floppy_format_type FLOPPY_OPUS_DDCPM_FORMAT; 137 138 #endif // MAME_FORMATS_ACORN_DSK_H 139