summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/fs_hp98x5.h
blob: e011a5cee4853b1eea0bffb686d731bf138d1054 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
// license:BSD-3-Clause
// copyright-holders: F. Ulivi
/*********************************************************************

    fs_hp98x5.h

    HP 9825, 9831 & 9845 filesystem handling

*********************************************************************/

#ifndef MAME_FORMATS_FS_HP98X5_H
#define MAME_FORMATS_FS_HP98X5_H

#pragma once

#include "fsmgr.h"

namespace fs {

	class hp9825_image : public manager_t {
	public:
		hp9825_image() : manager_t() {}

		virtual const char *name() const override;
		virtual const char *description() const override;

		virtual void enumerate_f(floppy_enumerator &fe) const override;

		virtual bool can_format() const override;
		virtual bool can_read() const override;
		virtual bool can_write() const override;
		virtual bool has_rsrc() const override;

		virtual std::vector<meta_description> volume_meta_description() const override;
		virtual std::vector<meta_description> file_meta_description() const override;

		virtual std::unique_ptr<filesystem_t> mount(fsblk_t &blockdev) const override;

	};

	class hp9831_image : public manager_t {
	public:
		hp9831_image() : manager_t() {}

		virtual const char *name() const override;
		virtual const char *description() const override;

		virtual void enumerate_f(floppy_enumerator &fe) const override;

		virtual bool can_format() const override;
		virtual bool can_read() const override;
		virtual bool can_write() const override;
		virtual bool has_rsrc() const override;

		virtual std::vector<meta_description> volume_meta_description() const override;
		virtual std::vector<meta_description> file_meta_description() const override;

		virtual std::unique_ptr<filesystem_t> mount(fsblk_t &blockdev) const override;

	};

	class hp9845_image : public manager_t {
	public:
		hp9845_image() : manager_t() {}

		virtual const char *name() const override;
		virtual const char *description() const override;

		virtual void enumerate_f(floppy_enumerator &fe) const override;

		virtual bool can_format() const override;
		virtual bool can_read() const override;
		virtual bool can_write() const override;
		virtual bool has_rsrc() const override;

		virtual std::vector<meta_description> volume_meta_description() const override;
		virtual std::vector<meta_description> file_meta_description() const override;

		virtual std::unique_ptr<filesystem_t> mount(fsblk_t &blockdev) const override;

	};

	extern const hp9825_image HP9825;
	extern const hp9831_image HP9831;
	extern const hp9845_image HP9845;
} // namespace fs

#endif /* MAME_FORMATS_FS_HP98X5_H */