summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/fs_prodos.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/formats/fs_prodos.h')
-rw-r--r--src/lib/formats/fs_prodos.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/lib/formats/fs_prodos.h b/src/lib/formats/fs_prodos.h
index 5c9dfb3f082..75cb49f2507 100644
--- a/src/lib/formats/fs_prodos.h
+++ b/src/lib/formats/fs_prodos.h
@@ -12,13 +12,25 @@
class fs_prodos : public filesystem_manager_t {
public:
+ class impl : public filesystem_t {
+ public:
+ impl(fsblk_t &blockdev) : filesystem_t(blockdev) {}
+ virtual ~impl() = default;
+
+ virtual void format() override;
+
+ private:
+ static const u8 boot[512];
+ };
+
fs_prodos() : filesystem_manager_t() {}
virtual void enumerate(floppy_enumerator &fe, uint32_t form_factor, const std::vector<uint32_t> &variants) const override;
- virtual void floppy_instantiate(u32 key, std::vector<u8> &image) const override;
+ virtual std::unique_ptr<filesystem_t> mount(fsblk_t &blockdev) const override;
-private:
- static const u8 boot[512];
+ virtual bool can_format() const override;
+ virtual bool can_read() const override;
+ virtual bool can_write() const override;
};
extern const filesystem_manager_type FS_PRODOS;