1 // license:BSD-3-Clause
2 // copyright-holders:Miodrag Milanovic
3 /*********************************************************************
4 
5     formats/imd_dsk.h
6 
7     IMD disk images
8 
9 *********************************************************************/
10 #ifndef MAME_FORMATS_IMD_DSK_H
11 #define MAME_FORMATS_IMD_DSK_H
12 
13 #include "flopimg.h"
14 
15 class imd_format : public floppy_image_format_t
16 {
17 public:
18 	imd_format();
19 
20 	virtual int identify(io_generic *io, uint32_t form_factor) override;
21 	virtual bool load(io_generic *io, uint32_t form_factor, floppy_image *image) override;
22 	virtual bool save(io_generic* io, floppy_image* image) override;
23 
24 	virtual const char *name() const override;
25 	virtual const char *description() const override;
26 	virtual const char *extensions() const override;
27 	virtual bool supports_save() const override;
28 
29 private:
30 	void fixnum(char *start, char *end) const;
31 
32 	std::vector<uint8_t> m_comment;
33 	std::vector<std::vector<uint8_t> > m_snum;
34 	std::vector<std::vector<uint8_t> > m_tnum;
35 	std::vector<std::vector<uint8_t> > m_hnum;
36 
37 	std::vector<uint8_t> m_mode;
38 	std::vector<uint8_t> m_track;
39 	std::vector<uint8_t> m_head;
40 	std::vector<uint8_t> m_sector_count;
41 	std::vector<uint8_t> m_ssize;
42 };
43 
44 extern const floppy_format_type FLOPPY_IMD_FORMAT;
45 
46 #endif // MAME_FORMATS_IMD_DSK_H
47