diff options
author | 2022-03-25 15:02:54 +0100 | |
---|---|---|
committer | 2022-03-30 15:45:35 +0200 | |
commit | 33bdc1469b3bc84ab1b811329f05c75f4801a7de (patch) | |
tree | 354dd6678a442adc26be3572fac9b27e1d21d1d4 /src | |
parent | 023486a37ff70f9be765495c07ff3fe0b9c47bc1 (diff) |
Constify the floppy image handling interface
Diffstat (limited to 'src')
146 files changed, 589 insertions, 688 deletions
diff --git a/src/lib/formats/abc1600_dsk.cpp b/src/lib/formats/abc1600_dsk.cpp index 399ba89227b..4b33e9ce3ac 100644 --- a/src/lib/formats/abc1600_dsk.cpp +++ b/src/lib/formats/abc1600_dsk.cpp @@ -59,7 +59,7 @@ const abc1600_format::format abc1600_format::formats[] = { const floppy_format_type FLOPPY_ABC1600_FORMAT = &floppy_image_format_creator<abc1600_format>; -int abc1600_format::get_image_offset(const format &f, int head, int track) +int abc1600_format::get_image_offset(const format &f, int head, int track) const { int offset = 0; diff --git a/src/lib/formats/abc1600_dsk.h b/src/lib/formats/abc1600_dsk.h index 8498871c23e..8f97ab97d4b 100644 --- a/src/lib/formats/abc1600_dsk.h +++ b/src/lib/formats/abc1600_dsk.h @@ -24,7 +24,7 @@ public: virtual const char *extensions() const override; protected: - virtual int get_image_offset(const format &f, int head, int track) override; + virtual int get_image_offset(const format &f, int head, int track) const override; private: static const format formats[]; diff --git a/src/lib/formats/acorn_dsk.cpp b/src/lib/formats/acorn_dsk.cpp index e33f95a53f3..bd02f9ad2f1 100644 --- a/src/lib/formats/acorn_dsk.cpp +++ b/src/lib/formats/acorn_dsk.cpp @@ -35,7 +35,7 @@ const char *acorn_ssd_format::extensions() const return "ssd,bbc,img"; } -int acorn_ssd_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int acorn_ssd_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t cat[8]; uint32_t sectors0, sectors2; @@ -108,7 +108,7 @@ int acorn_ssd_format::find_size(util::random_read &io, uint32_t form_factor, con return -1; } -int acorn_ssd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int acorn_ssd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int type = find_size(io, form_factor, variants); @@ -118,7 +118,7 @@ int acorn_ssd_format::identify(util::random_read &io, uint32_t form_factor, cons return 0; } -int acorn_ssd_format::get_image_offset(const format &f, int head, int track) +int acorn_ssd_format::get_image_offset(const format &f, int head, int track) const { if (f.sector_base_id == -1) return (track * f.head_count + head) * compute_track_size(f); @@ -187,7 +187,7 @@ const char *acorn_dsd_format::extensions() const return "dsd"; } -int acorn_dsd_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int acorn_dsd_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t cat[8]; uint32_t sectors0, sectors2; @@ -241,7 +241,7 @@ int acorn_dsd_format::find_size(util::random_read &io, uint32_t form_factor, con return -1; } -int acorn_dsd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int acorn_dsd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int type = find_size(io, form_factor, variants); @@ -251,7 +251,7 @@ int acorn_dsd_format::identify(util::random_read &io, uint32_t form_factor, cons return 0; } -int acorn_dsd_format::get_image_offset(const format &f, int head, int track) +int acorn_dsd_format::get_image_offset(const format &f, int head, int track) const { if (f.sector_base_id == -1) return (track * f.head_count + head) * compute_track_size(f); @@ -300,7 +300,7 @@ const char *opus_ddos_format::extensions() const return "dds"; } -int opus_ddos_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int opus_ddos_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { size_t actual; uint8_t cat[8]; @@ -346,7 +346,7 @@ int opus_ddos_format::find_size(util::random_read &io, uint32_t form_factor, con return -1; } -int opus_ddos_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int opus_ddos_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int type = find_size(io, form_factor, variants); @@ -356,7 +356,7 @@ int opus_ddos_format::identify(util::random_read &io, uint32_t form_factor, cons return 0; } -int opus_ddos_format::get_image_offset(const format &f, int head, int track) +int opus_ddos_format::get_image_offset(const format &f, int head, int track) const { if (f.sector_base_id == -1) return (track * f.head_count + head) * compute_track_size(f); @@ -405,7 +405,7 @@ const char *acorn_adfs_old_format::extensions() const return "adf,ads,adm,adl"; } -int acorn_adfs_old_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int acorn_adfs_old_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { size_t actual; uint8_t map[3]; @@ -443,7 +443,7 @@ int acorn_adfs_old_format::find_size(util::random_read &io, uint32_t form_factor return -1; } -int acorn_adfs_old_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int acorn_adfs_old_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int type = find_size(io, form_factor, variants); @@ -453,7 +453,7 @@ int acorn_adfs_old_format::identify(util::random_read &io, uint32_t form_factor, return 0; } -int acorn_adfs_old_format::get_image_offset(const format &f, int head, int track) +int acorn_adfs_old_format::get_image_offset(const format &f, int head, int track) const { if (f.sector_base_id == -1) return (track * f.head_count + head) * compute_track_size(f); @@ -510,7 +510,7 @@ const char *acorn_adfs_new_format::extensions() const return "adf"; } -int acorn_adfs_new_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int acorn_adfs_new_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { size_t actual; uint8_t dform[4]; @@ -547,7 +547,7 @@ int acorn_adfs_new_format::find_size(util::random_read &io, uint32_t form_factor return -1; } -int acorn_adfs_new_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int acorn_adfs_new_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int type = find_size(io, form_factor, variants); @@ -557,7 +557,7 @@ int acorn_adfs_new_format::identify(util::random_read &io, uint32_t form_factor, return 0; } -int acorn_adfs_new_format::get_image_offset(const format &f, int head, int track) +int acorn_adfs_new_format::get_image_offset(const format &f, int head, int track) const { if (f.sector_base_id == -1) return (track * f.head_count + head) * compute_track_size(f); @@ -598,7 +598,7 @@ const char *acorn_dos_format::extensions() const return "img"; } -int acorn_dos_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int acorn_dos_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -628,7 +628,7 @@ int acorn_dos_format::find_size(util::random_read &io, uint32_t form_factor, con return -1; } -int acorn_dos_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int acorn_dos_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int type = find_size(io, form_factor, variants); @@ -638,7 +638,7 @@ int acorn_dos_format::identify(util::random_read &io, uint32_t form_factor, cons return 0; } -int acorn_dos_format::get_image_offset(const format &f, int head, int track) +int acorn_dos_format::get_image_offset(const format &f, int head, int track) const { if (f.sector_base_id == -1) return (track * f.head_count + head) * compute_track_size(f); @@ -680,7 +680,7 @@ bool opus_ddcpm_format::supports_save() const return false; } -int opus_ddcpm_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int opus_ddcpm_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { size_t actual; uint8_t h[8]; @@ -701,7 +701,7 @@ int opus_ddcpm_format::identify(util::random_read &io, uint32_t form_factor, con return 0; } -bool opus_ddcpm_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool opus_ddcpm_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { // Double density discs formatted with DDCPM : // @@ -750,7 +750,7 @@ bool opus_ddcpm_format::load(util::random_read &io, uint32_t form_factor, const return true; } -bool opus_ddcpm_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool opus_ddcpm_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { return false; } diff --git a/src/lib/formats/acorn_dsk.h b/src/lib/formats/acorn_dsk.h index de07e8b9fed..d3d73abe5d5 100644 --- a/src/lib/formats/acorn_dsk.h +++ b/src/lib/formats/acorn_dsk.h @@ -20,9 +20,9 @@ class acorn_ssd_format : public wd177x_format public: acorn_ssd_format(); - virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int get_image_offset(const format &f, int head, int track) override; + virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int get_image_offset(const format &f, int head, int track) const override; virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; @@ -36,9 +36,9 @@ class acorn_dsd_format : public wd177x_format public: acorn_dsd_format(); - virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int get_image_offset(const format &f, int head, int track) override; + virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int get_image_offset(const format &f, int head, int track) const override; virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; @@ -52,9 +52,9 @@ class opus_ddos_format : public wd177x_format public: opus_ddos_format(); - virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int get_image_offset(const format &f, int head, int track) override; + virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int get_image_offset(const format &f, int head, int track) const override; virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; @@ -68,9 +68,9 @@ class acorn_adfs_old_format : public wd177x_format public: acorn_adfs_old_format(); - virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int get_image_offset(const format &f, int head, int track) override; + virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int get_image_offset(const format &f, int head, int track) const override; virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; @@ -84,9 +84,9 @@ class acorn_adfs_new_format : public wd177x_format public: acorn_adfs_new_format(); - virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int get_image_offset(const format &f, int head, int track) override; + virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int get_image_offset(const format &f, int head, int track) const override; virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; @@ -100,9 +100,9 @@ class acorn_dos_format : public wd177x_format public: acorn_dos_format(); - virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int get_image_offset(const format &f, int head, int track) override; + virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int get_image_offset(const format &f, int head, int track) const override; virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; @@ -116,9 +116,9 @@ class opus_ddcpm_format : public floppy_image_format_t public: opus_ddcpm_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/afs_dsk.cpp b/src/lib/formats/afs_dsk.cpp index 000daf62df7..700860b7eeb 100644 --- a/src/lib/formats/afs_dsk.cpp +++ b/src/lib/formats/afs_dsk.cpp @@ -30,7 +30,7 @@ const char *afs_format::extensions() const return "adl,img"; } -int afs_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int afs_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int type = find_size(io, form_factor, variants); @@ -40,7 +40,7 @@ int afs_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -int afs_format::get_image_offset(const format &f, int head, int track) +int afs_format::get_image_offset(const format &f, int head, int track) const { if (f.sector_base_id == -1) return (track * f.head_count + head) * compute_track_size(f); diff --git a/src/lib/formats/afs_dsk.h b/src/lib/formats/afs_dsk.h index f56b2dcb1f4..a966a3cd925 100644 --- a/src/lib/formats/afs_dsk.h +++ b/src/lib/formats/afs_dsk.h @@ -20,8 +20,8 @@ class afs_format : public wd177x_format public: afs_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int get_image_offset(const format &f, int head, int track) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int get_image_offset(const format &f, int head, int track) const override; virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; diff --git a/src/lib/formats/aim_dsk.cpp b/src/lib/formats/aim_dsk.cpp index 6ad49b22969..b70160fdf53 100644 --- a/src/lib/formats/aim_dsk.cpp +++ b/src/lib/formats/aim_dsk.cpp @@ -40,7 +40,7 @@ const char *aim_format::extensions() const } -int aim_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int aim_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -53,7 +53,7 @@ int aim_format::identify(util::random_read &io, uint32_t form_factor, const std: } -bool aim_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool aim_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { image->set_variant(floppy_image::DSQD); diff --git a/src/lib/formats/aim_dsk.h b/src/lib/formats/aim_dsk.h index 560943be30c..9a0135162c2 100644 --- a/src/lib/formats/aim_dsk.h +++ b/src/lib/formats/aim_dsk.h @@ -21,8 +21,8 @@ class aim_format : public floppy_image_format_t public: aim_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/ami_dsk.cpp b/src/lib/formats/ami_dsk.cpp index eb96b01377d..4979bee99b7 100644 --- a/src/lib/formats/ami_dsk.cpp +++ b/src/lib/formats/ami_dsk.cpp @@ -37,7 +37,7 @@ bool adf_format::supports_save() const return true; } -int adf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int adf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -49,7 +49,7 @@ int adf_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool adf_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool adf_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { desc_s sectors[22]; uint8_t sectdata[512*22]; @@ -121,7 +121,7 @@ uint32_t adf_format::checksum(const std::vector<bool> &trackbuf, uint32_t pos, i return check & 0x55555555; } -bool adf_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool adf_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { uint8_t sectdata[512*22]; diff --git a/src/lib/formats/ami_dsk.h b/src/lib/formats/ami_dsk.h index 595beb1bcd3..4f1b444388a 100644 --- a/src/lib/formats/ami_dsk.h +++ b/src/lib/formats/ami_dsk.h @@ -19,9 +19,9 @@ class adf_format : public floppy_image_format_t public: adf_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/ap2_dsk.cpp b/src/lib/formats/ap2_dsk.cpp index 38ee0b9e1a3..7b8e9f286e6 100644 --- a/src/lib/formats/ap2_dsk.cpp +++ b/src/lib/formats/ap2_dsk.cpp @@ -584,7 +584,7 @@ bool a2_16sect_format::supports_save() const return true; } -int a2_16sect_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int a2_16sect_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -602,7 +602,7 @@ int a2_16sect_format::identify(util::random_read &io, uint32_t form_factor, cons return 0; } -bool a2_16sect_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool a2_16sect_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t size; if (io.length(size)) @@ -698,13 +698,9 @@ uint8_t a2_16sect_format::gb(const std::vector<bool> &buf, int &pos, int &wrap) return v; } -void a2_16sect_format::update_chk(const uint8_t *data, int size, uint32_t &chk) -{ -} - //#define VERBOSE_SAVE -bool a2_16sect_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool a2_16sect_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int g_tracks, g_heads; int visualgrid[16][APPLE2_TRACK_COUNT]; // visualizer grid, cleared/initialized below @@ -982,7 +978,7 @@ bool a2_rwts18_format::supports_save() const return true; } -int a2_rwts18_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int a2_rwts18_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if(io.length(size)) @@ -991,7 +987,7 @@ int a2_rwts18_format::identify(util::random_read &io, uint32_t form_factor, cons return size == expected_size; } -bool a2_rwts18_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool a2_rwts18_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { /* TODO: rewrite me properly uint8_t sector_data[(256)*16]; @@ -1037,11 +1033,7 @@ uint8_t a2_rwts18_format::gb(const std::vector<bool> &buf, int &pos, int &wrap) return v; } -void a2_rwts18_format::update_chk(const uint8_t *data, int size, uint32_t &chk) -{ -} - -bool a2_rwts18_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool a2_rwts18_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int g_tracks, g_heads; int visualgrid[18][APPLE2_TRACK_COUNT]; // visualizer grid, cleared/initialized below @@ -1468,7 +1460,7 @@ bool a2_edd_format::supports_save() const return false; } -int a2_edd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int a2_edd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -1481,7 +1473,7 @@ uint8_t a2_edd_format::pick(const uint8_t *data, int pos) return ((data[pos>>3] << 8) | data[(pos>>3)+1]) >> (8-(pos & 7)); } -bool a2_edd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool a2_edd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint8_t nibble[16384], stream[16384]; int npos[16384]; @@ -1595,7 +1587,7 @@ bool a2_woz_format::supports_save() const const uint8_t a2_woz_format::signature[8] = { 0x57, 0x4f, 0x5a, 0x31, 0xff, 0x0a, 0x0d, 0x0a }; const uint8_t a2_woz_format::signature2[8] = { 0x57, 0x4f, 0x5a, 0x32, 0xff, 0x0a, 0x0d, 0x0a }; -int a2_woz_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int a2_woz_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t header[8]; size_t actual; @@ -1605,7 +1597,7 @@ int a2_woz_format::identify(util::random_read &io, uint32_t form_factor, const s return 0; } -bool a2_woz_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool a2_woz_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t image_size; if(io.length(image_size)) @@ -1694,7 +1686,7 @@ bool a2_woz_format::load(util::random_read &io, uint32_t form_factor, const std: return true; } -bool a2_woz_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool a2_woz_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { std::vector<std::vector<bool>> tracks(160); bool twosided = false; @@ -1885,7 +1877,7 @@ bool a2_nib_format::supports_save() const return false; } -int a2_nib_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int a2_nib_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -2008,7 +2000,7 @@ std::vector<uint32_t> a2_nib_format::generate_levels_from_nibbles(const std::vec return levels; } -bool a2_nib_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool a2_nib_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t size; if (io.length(size)) diff --git a/src/lib/formats/ap2_dsk.h b/src/lib/formats/ap2_dsk.h index 1afd6cbecb4..2e86be654dc 100644 --- a/src/lib/formats/ap2_dsk.h +++ b/src/lib/formats/ap2_dsk.h @@ -42,17 +42,16 @@ class a2_16sect_format : public floppy_image_format_t public: a2_16sect_format(bool prodos_order); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override; private: const bool m_prodos_order; - uint8_t gb(const std::vector<bool> &buf, int &pos, int &wrap); - void update_chk(const uint8_t *data, int size, uint32_t &chk); + static uint8_t gb(const std::vector<bool> &buf, int &pos, int &wrap); }; class a2_16sect_dos_format : public a2_16sect_format @@ -81,9 +80,9 @@ class a2_rwts18_format : public floppy_image_format_t public: a2_rwts18_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -93,8 +92,7 @@ public: private: static const desc_e mac_gcr[]; - uint8_t gb(const std::vector<bool> &buf, int &pos, int &wrap); - void update_chk(const uint8_t *data, int size, uint32_t &chk); + static uint8_t gb(const std::vector<bool> &buf, int &pos, int &wrap); }; extern const floppy_format_type FLOPPY_RWTS18_FORMAT; @@ -105,8 +103,8 @@ class a2_edd_format : public floppy_image_format_t public: a2_edd_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override; virtual const char *name() const override; @@ -124,9 +122,9 @@ class a2_woz_format : public floppy_image_format_t public: a2_woz_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override; virtual const char *name() const override; @@ -154,8 +152,8 @@ class a2_nib_format : public floppy_image_format_t public: a2_nib_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override; virtual const char *name() const override; @@ -169,7 +167,7 @@ private: static constexpr auto expected_size_35t = 35 * nibbles_per_track; static constexpr auto expected_size_40t = 40 * nibbles_per_track; - std::vector<uint32_t> generate_levels_from_nibbles(const std::vector<uint8_t>& nibbles); + static std::vector<uint32_t> generate_levels_from_nibbles(const std::vector<uint8_t>& nibbles); }; extern const floppy_format_type FLOPPY_NIB_FORMAT; diff --git a/src/lib/formats/ap_dsk35.cpp b/src/lib/formats/ap_dsk35.cpp index a39f5a684af..25999bc01d7 100644 --- a/src/lib/formats/ap_dsk35.cpp +++ b/src/lib/formats/ap_dsk35.cpp @@ -1238,7 +1238,7 @@ bool dc42_format::supports_save() const return true; } -int dc42_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int dc42_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if(io.length(size) || (size < 0x54)) @@ -1261,7 +1261,7 @@ int dc42_format::identify(util::random_read &io, uint32_t form_factor, const std return (size == 0x54+tsize+dsize && h[0] < 64 && h[0x52] == 1 && h[0x53] == 0) ? 100 : 0; } -bool dc42_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool dc42_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; uint8_t h[0x54]; @@ -1348,7 +1348,7 @@ void dc42_format::update_chk(const uint8_t *data, int size, uint32_t &chk) } } -bool dc42_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool dc42_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int g_tracks, g_heads; image->get_actual_geometry(g_tracks, g_heads); @@ -1441,7 +1441,7 @@ bool apple_gcr_format::supports_save() const return true; } -int apple_gcr_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int apple_gcr_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if(io.length(size)) @@ -1453,7 +1453,7 @@ int apple_gcr_format::identify(util::random_read &io, uint32_t form_factor, cons return 0; } -bool apple_gcr_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool apple_gcr_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; desc_gcr_sector sectors[12]; @@ -1497,7 +1497,7 @@ bool apple_gcr_format::load(util::random_read &io, uint32_t form_factor, const s return true; } -bool apple_gcr_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool apple_gcr_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int g_tracks, g_heads; image->get_actual_geometry(g_tracks, g_heads); @@ -1550,7 +1550,7 @@ bool apple_2mg_format::supports_save() const return true; } -int apple_2mg_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int apple_2mg_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t signature[4]; size_t actual; @@ -1569,7 +1569,7 @@ int apple_2mg_format::identify(util::random_read &io, uint32_t form_factor, cons return 0; } -bool apple_2mg_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool apple_2mg_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; desc_gcr_sector sectors[12]; @@ -1607,7 +1607,7 @@ bool apple_2mg_format::load(util::random_read &io, uint32_t form_factor, const s return true; } -bool apple_2mg_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool apple_2mg_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; diff --git a/src/lib/formats/ap_dsk35.h b/src/lib/formats/ap_dsk35.h index 2af46e15f5b..49ebec57861 100644 --- a/src/lib/formats/ap_dsk35.h +++ b/src/lib/formats/ap_dsk35.h @@ -30,9 +30,9 @@ class dc42_format : public floppy_image_format_t public: dc42_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -40,7 +40,7 @@ public: virtual bool supports_save() const override; private: - void update_chk(const uint8_t *data, int size, uint32_t &chk); + static void update_chk(const uint8_t *data, int size, uint32_t &chk); }; extern const floppy_format_type FLOPPY_DC42_FORMAT; @@ -50,9 +50,9 @@ class apple_gcr_format : public floppy_image_format_t public: apple_gcr_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -67,9 +67,9 @@ class apple_2mg_format : public floppy_image_format_t public: apple_2mg_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/apd_dsk.cpp b/src/lib/formats/apd_dsk.cpp index 312de073304..85a89290748 100644 --- a/src/lib/formats/apd_dsk.cpp +++ b/src/lib/formats/apd_dsk.cpp @@ -93,7 +93,7 @@ const char *apd_format::extensions() const return "apd"; } -int apd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int apd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -135,7 +135,7 @@ int apd_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool apd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool apd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t size; if (io.length(size)) diff --git a/src/lib/formats/apd_dsk.h b/src/lib/formats/apd_dsk.h index 8c3ac6f0d42..51f7130ffef 100644 --- a/src/lib/formats/apd_dsk.h +++ b/src/lib/formats/apd_dsk.h @@ -23,8 +23,8 @@ public: virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override; }; diff --git a/src/lib/formats/apollo_dsk.cpp b/src/lib/formats/apollo_dsk.cpp index a1159ac68c8..62f8e354d61 100644 --- a/src/lib/formats/apollo_dsk.cpp +++ b/src/lib/formats/apollo_dsk.cpp @@ -46,14 +46,3 @@ const apollo_format::format apollo_format::formats[] = { }; const floppy_format_type FLOPPY_APOLLO_FORMAT = &floppy_image_format_creator<apollo_format>; - -int apollo_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) -{ - uint64_t size; - if (io.length(size)) - return 0; - - constexpr uint32_t expected_size = 77*2*8*1024; - - return ((size == expected_size) || (size == 0)) ? 1 : 0; -} diff --git a/src/lib/formats/apollo_dsk.h b/src/lib/formats/apollo_dsk.h index 1c2c6d81030..2320af167fb 100644 --- a/src/lib/formats/apollo_dsk.h +++ b/src/lib/formats/apollo_dsk.h @@ -19,7 +19,6 @@ class apollo_format : public upd765_format public: apollo_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; diff --git a/src/lib/formats/apridisk.cpp b/src/lib/formats/apridisk.cpp index 1560c199149..2fa2b4248b7 100644 --- a/src/lib/formats/apridisk.cpp +++ b/src/lib/formats/apridisk.cpp @@ -34,7 +34,7 @@ const char *apridisk_format::extensions() const return "dsk"; } -int apridisk_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int apridisk_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t header[APR_HEADER_SIZE]; size_t actual; @@ -48,7 +48,7 @@ int apridisk_format::identify(util::random_read &io, uint32_t form_factor, const return 0; } -bool apridisk_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool apridisk_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { desc_pc_sector sectors[80][2][18]; std::unique_ptr<uint8_t []> sector_data(new uint8_t [MAX_SECTORS * SECTOR_SIZE]); @@ -148,11 +148,6 @@ bool apridisk_format::load(util::random_read &io, uint32_t form_factor, const st return true; } -bool apridisk_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) -{ - return false; -} - bool apridisk_format::supports_save() const { return false; diff --git a/src/lib/formats/apridisk.h b/src/lib/formats/apridisk.h index 5cc8a1403fb..4e7de1d2f80 100644 --- a/src/lib/formats/apridisk.h +++ b/src/lib/formats/apridisk.h @@ -23,9 +23,8 @@ public: virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override; private: diff --git a/src/lib/formats/c3040_dsk.cpp b/src/lib/formats/c3040_dsk.cpp index 3400aef4342..b520227d2b8 100644 --- a/src/lib/formats/c3040_dsk.cpp +++ b/src/lib/formats/c3040_dsk.cpp @@ -54,7 +54,7 @@ const int c3040_format::c3040_gap2[] = 12, 12, 12, 12, 12 // 31-35 }; -floppy_image_format_t::desc_e* c3040_format::get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) +floppy_image_format_t::desc_e* c3040_format::get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) const { static floppy_image_format_t::desc_e desc[] = { /* 00 */ { SECTOR_LOOP_START, 0, -1 }, @@ -89,7 +89,7 @@ floppy_image_format_t::desc_e* c3040_format::get_sector_desc(const format &f, in return desc; } -void c3040_format::fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) +void c3040_format::fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) const { desc[19].p2 = remaining_size / 10; desc[20].p2 = remaining_size % 10; diff --git a/src/lib/formats/c3040_dsk.h b/src/lib/formats/c3040_dsk.h index c5897a52f2b..9023291eabc 100644 --- a/src/lib/formats/c3040_dsk.h +++ b/src/lib/formats/c3040_dsk.h @@ -23,10 +23,10 @@ public: virtual const char *extensions() const override; protected: - virtual int get_sectors_per_track(const format &f, int track) override { return c3040_sectors_per_track[track]; } - virtual floppy_image_format_t::desc_e* get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) override; - virtual int get_gap2(const format &f, int head, int track) override { return c3040_gap2[track]; } - virtual void fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) override; + virtual int get_sectors_per_track(const format &f, int track) const override { return c3040_sectors_per_track[track]; } + virtual floppy_image_format_t::desc_e* get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) const override; + virtual int get_gap2(const format &f, int head, int track) const override { return c3040_gap2[track]; } + virtual void fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) const override; static const format file_formats[]; diff --git a/src/lib/formats/c4040_dsk.cpp b/src/lib/formats/c4040_dsk.cpp index 8851f4db478..2c9368c2bb4 100644 --- a/src/lib/formats/c4040_dsk.cpp +++ b/src/lib/formats/c4040_dsk.cpp @@ -44,7 +44,7 @@ const int c4040_format::c4040_gap2[] = 12, 12, 12, 12, 12 // 31-35 }; -floppy_image_format_t::desc_e* c4040_format::get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) +floppy_image_format_t::desc_e* c4040_format::get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) const { static floppy_image_format_t::desc_e desc[] = { /* 00 */ { SECTOR_LOOP_START, 0, -1 }, @@ -79,7 +79,7 @@ floppy_image_format_t::desc_e* c4040_format::get_sector_desc(const format &f, in return desc; } -void c4040_format::fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) +void c4040_format::fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) const { desc[19].p2 = remaining_size / 10; desc[20].p2 = remaining_size % 10; diff --git a/src/lib/formats/c4040_dsk.h b/src/lib/formats/c4040_dsk.h index 9fe29b399c2..2629958334d 100644 --- a/src/lib/formats/c4040_dsk.h +++ b/src/lib/formats/c4040_dsk.h @@ -23,9 +23,9 @@ public: virtual const char *extensions() const override; protected: - virtual floppy_image_format_t::desc_e* get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) override; - virtual int get_gap2(const format &f, int head, int track) override { return c4040_gap2[track]; } - virtual void fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) override; + virtual floppy_image_format_t::desc_e* get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) const override; + virtual int get_gap2(const format &f, int head, int track) const override { return c4040_gap2[track]; } + virtual void fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) const override; static const format file_formats[]; diff --git a/src/lib/formats/ccvf_dsk.cpp b/src/lib/formats/ccvf_dsk.cpp index 6ed0c14038a..e3c6120ec37 100644 --- a/src/lib/formats/ccvf_dsk.cpp +++ b/src/lib/formats/ccvf_dsk.cpp @@ -47,7 +47,7 @@ const ccvf_format::format ccvf_format::file_formats[] = { {} }; -int ccvf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int ccvf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { char h[36]; size_t actual; @@ -88,7 +88,7 @@ floppy_image_format_t::desc_e* ccvf_format::get_desc_8n1(const format &f, int &c return desc; } -bool ccvf_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool ccvf_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { const format &f = formats[0]; diff --git a/src/lib/formats/ccvf_dsk.h b/src/lib/formats/ccvf_dsk.h index 92f04e03ddd..253dcfd83bb 100644 --- a/src/lib/formats/ccvf_dsk.h +++ b/src/lib/formats/ccvf_dsk.h @@ -39,14 +39,14 @@ public: virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override; protected: const format *formats; - floppy_image_format_t::desc_e* get_desc_8n1(const format &f, int ¤t_size); + static floppy_image_format_t::desc_e* get_desc_8n1(const format &f, int ¤t_size); static const format file_formats[]; }; diff --git a/src/lib/formats/cgenie_dsk.cpp b/src/lib/formats/cgenie_dsk.cpp index 53686965b31..612cf48971d 100644 --- a/src/lib/formats/cgenie_dsk.cpp +++ b/src/lib/formats/cgenie_dsk.cpp @@ -29,12 +29,12 @@ const char *cgenie_format::extensions() const return "dsk"; } -int cgenie_format::get_track_dam_fm(const format &f, int head, int track) +int cgenie_format::get_track_dam_fm(const format &f, int head, int track) const { return (track == f.track_count/2) ? FM_DDAM : FM_DAM; } -int cgenie_format::get_track_dam_mfm(const format &f, int head, int track) +int cgenie_format::get_track_dam_mfm(const format &f, int head, int track) const { return (track == f.track_count/2) ? MFM_DDAM : MFM_DAM; } diff --git a/src/lib/formats/cgenie_dsk.h b/src/lib/formats/cgenie_dsk.h index 4dcca24a3be..d7f7775599b 100644 --- a/src/lib/formats/cgenie_dsk.h +++ b/src/lib/formats/cgenie_dsk.h @@ -24,8 +24,8 @@ public: virtual const char *extensions() const override; protected: - virtual int get_track_dam_fm(const format &f, int head, int track) override; - virtual int get_track_dam_mfm(const format &f, int head, int track) override; + virtual int get_track_dam_fm(const format &f, int head, int track) const override; + virtual int get_track_dam_mfm(const format &f, int head, int track) const override; private: static const format formats[]; diff --git a/src/lib/formats/concept_dsk.cpp b/src/lib/formats/concept_dsk.cpp index 7f5edce3363..54b92c33536 100644 --- a/src/lib/formats/concept_dsk.cpp +++ b/src/lib/formats/concept_dsk.cpp @@ -87,7 +87,7 @@ void cc525dsdd_format::find_size(util::random_read &io, uint8_t &track_count, ui track_count = head_count = sector_count = 0; } -int cc525dsdd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int cc525dsdd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t track_count, head_count, sector_count; find_size(io, track_count, head_count, sector_count); @@ -98,7 +98,7 @@ int cc525dsdd_format::identify(util::random_read &io, uint32_t form_factor, cons return 0; } -bool cc525dsdd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool cc525dsdd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint8_t track_count, head_count, sector_count; find_size(io, track_count, head_count, sector_count); @@ -125,7 +125,7 @@ bool cc525dsdd_format::load(util::random_read &io, uint32_t form_factor, const s return true; } -bool cc525dsdd_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool cc525dsdd_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int track_count, head_count, sector_count; get_geometry_mfm_pc(image, 2000, track_count, head_count, sector_count); diff --git a/src/lib/formats/concept_dsk.h b/src/lib/formats/concept_dsk.h index 36e3f790a84..000c61abc70 100644 --- a/src/lib/formats/concept_dsk.h +++ b/src/lib/formats/concept_dsk.h @@ -17,9 +17,9 @@ class cc525dsdd_format : public floppy_image_format_t public: cc525dsdd_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -29,7 +29,7 @@ public: static const desc_e cc_9_desc[]; private: - void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t §or_count); + static void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t §or_count); }; extern const floppy_format_type FLOPPY_CONCEPT_525DSDD_FORMAT; diff --git a/src/lib/formats/coupedsk.cpp b/src/lib/formats/coupedsk.cpp index 9400cd41bb6..9184d436642 100644 --- a/src/lib/formats/coupedsk.cpp +++ b/src/lib/formats/coupedsk.cpp @@ -64,7 +64,7 @@ bool mgt_format::supports_save() const return true; } -int mgt_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int mgt_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if(io.length(size)) @@ -76,7 +76,7 @@ int mgt_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool mgt_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool mgt_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t size; if(io.length(size)) @@ -104,7 +104,7 @@ bool mgt_format::load(util::random_read &io, uint32_t form_factor, const std::ve return true; } -bool mgt_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool mgt_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int track_count, head_count, sector_count; get_geometry_mfm_pc(image, 2000, track_count, head_count, sector_count); diff --git a/src/lib/formats/coupedsk.h b/src/lib/formats/coupedsk.h index e9ef4b118ca..93089453db9 100644 --- a/src/lib/formats/coupedsk.h +++ b/src/lib/formats/coupedsk.h @@ -19,9 +19,9 @@ class mgt_format : public floppy_image_format_t public: mgt_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/cqm_dsk.cpp b/src/lib/formats/cqm_dsk.cpp index f2eacc1d6fc..0e82ebf2296 100644 --- a/src/lib/formats/cqm_dsk.cpp +++ b/src/lib/formats/cqm_dsk.cpp @@ -254,7 +254,7 @@ const char *cqm_format::extensions() const return "cqm,cqi,dsk"; } -int cqm_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int cqm_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t h[3]; size_t actual; @@ -266,7 +266,7 @@ int cqm_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool cqm_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool cqm_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; const int max_size = 4*1024*1024; // 4MB ought to be large enough for any floppy @@ -366,7 +366,7 @@ bool cqm_format::load(util::random_read &io, uint32_t form_factor, const std::ve return true; } -bool cqm_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool cqm_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { return false; } diff --git a/src/lib/formats/cqm_dsk.h b/src/lib/formats/cqm_dsk.h index fc8376a2b85..5ea4e9e88ed 100644 --- a/src/lib/formats/cqm_dsk.h +++ b/src/lib/formats/cqm_dsk.h @@ -19,9 +19,9 @@ class cqm_format : public floppy_image_format_t public: cqm_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/d64_dsk.cpp b/src/lib/formats/d64_dsk.cpp index 6099413e680..4845469bd98 100644 --- a/src/lib/formats/d64_dsk.cpp +++ b/src/lib/formats/d64_dsk.cpp @@ -102,7 +102,7 @@ int d64_format::find_size(util::random_read &io, uint32_t form_factor) const return -1; } -int d64_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int d64_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { const int type = find_size(io, form_factor); @@ -112,19 +112,19 @@ int d64_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -int d64_format::get_physical_track(const format &f, int head, int track) +int d64_format::get_physical_track(const format &f, int head, int track) const { // skip halftracks return track * 2; } -int d64_format::get_disk_id_offset(const format &f) +int d64_format::get_disk_id_offset(const format &f) const { // t18s0 +0xa2 return 0x165a2; } -void d64_format::get_disk_id(const format &f, util::random_read &io, uint8_t &id1, uint8_t &id2) +void d64_format::get_disk_id(const format &f, util::random_read &io, uint8_t &id1, uint8_t &id2) const { uint8_t id[2]; size_t actual; @@ -133,7 +133,7 @@ void d64_format::get_disk_id(const format &f, util::random_read &io, uint8_t &id id2 = id[1]; } -int d64_format::get_image_offset(const format &f, int _head, int _track) +int d64_format::get_image_offset(const format &f, int _head, int _track) const { int offset = 0; if (_head) { @@ -147,22 +147,22 @@ int d64_format::get_image_offset(const format &f, int _head, int _track) return offset; } -int d64_format::compute_track_size(const format &f, int track) +int d64_format::compute_track_size(const format &f, int track) const { return this->get_sectors_per_track(f, track) * f.sector_base_size; } -uint32_t d64_format::get_cell_size(const format &f, int track) +uint32_t d64_format::get_cell_size(const format &f, int track) const { return cell_size[speed_zone[track]]; } -int d64_format::get_sectors_per_track(const format &f, int track) +int d64_format::get_sectors_per_track(const format &f, int track) const { return sectors_per_track[track]; } -floppy_image_format_t::desc_e* d64_format::get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) +floppy_image_format_t::desc_e* d64_format::get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) const { static floppy_image_format_t::desc_e desc[] = { /* 00 */ { SECTOR_LOOP_START, 0, -1 }, @@ -210,14 +210,14 @@ void d64_format::build_sector_description(const format &f, uint8_t *sectdata, ui } } -void d64_format::fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) +void d64_format::fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) const { desc[21].p2 = remaining_size / 8; desc[22].p2 = remaining_size & 7; desc[22].p1 >>= remaining_size & 0x01; } -bool d64_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool d64_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { int type = find_size(io, form_factor); if(type == -1) @@ -280,7 +280,7 @@ bool d64_format::load(util::random_read &io, uint32_t form_factor, const std::ve return true; } -bool d64_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool d64_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { const format &f = formats[0]; @@ -302,7 +302,7 @@ bool d64_format::save(util::random_read_write &io, const std::vector<uint32_t> & return true; } -void d64_format::extract_sectors(floppy_image *image, const format &f, desc_s *sdesc, int track, int head, int sector_count) +void d64_format::extract_sectors(floppy_image *image, const format &f, desc_s *sdesc, int track, int head, int sector_count) const { int physical_track = this->get_physical_track(f, head, track); int cell_size = this->get_cell_size(f, track); @@ -318,7 +318,7 @@ void d64_format::extract_sectors(floppy_image *image, const format &f, desc_s *s else if(sectors[ds.sector_id].size() < ds.size) { memcpy((void *)ds.data, sectors[ds.sector_id].data(), sectors[ds.sector_id].size()); - memset((uint8_t *)ds.data + sectors[ds.sector_id].size(), 0, sectors[ds.sector_id].size() - ds.size); + memset((uint8_t *)ds.data + sectors[ds.sector_id].size(), 0, ds.size - sectors[ds.sector_id].size()); } else memcpy((void *)ds.data, sectors[ds.sector_id].data(), ds.size); diff --git a/src/lib/formats/d64_dsk.h b/src/lib/formats/d64_dsk.h index 13f1bd4e91c..20f398f67c2 100644 --- a/src/lib/formats/d64_dsk.h +++ b/src/lib/formats/d64_dsk.h @@ -37,9 +37,9 @@ public: virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override { return true; } protected: @@ -62,18 +62,18 @@ protected: const format *formats; int find_size(util::random_read &io, uint32_t form_factor) const; - virtual int get_physical_track(const format &f, int head, int track); - virtual uint32_t get_cell_size(const format &f, int track); - virtual int get_sectors_per_track(const format &f, int track); - virtual int get_disk_id_offset(const format &f); - void get_disk_id(const format &f, util::random_read &io, uint8_t &id1, uint8_t &id2); - virtual int get_image_offset(const format &f, int head, int track); - int compute_track_size(const format &f, int track); - virtual int get_gap2(const format &f, int head, int track) { return f.gap_2; } - virtual floppy_image_format_t::desc_e* get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2); + virtual int get_physical_track(const format &f, int head, int track) const; + virtual uint32_t get_cell_size(const format &f, int track) const; + virtual int get_sectors_per_track(const format &f, int track) const; + virtual int get_disk_id_offset(const format &f) const; + void get_disk_id(const format &f, util::random_read &io, uint8_t &id1, uint8_t &id2) const; + virtual int get_image_offset(const format &f, int head, int track) const; + int compute_track_size(const format &f, int track) const; + virtual int get_gap2(const format &f, int head, int track) const { return f.gap_2; } + virtual floppy_image_format_t::desc_e* get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) const; void build_sector_description(const format &f, uint8_t *sectdata, uint32_t sect_offs, uint32_t error_offs, desc_s *sectors, int sector_count) const; - virtual void fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size); - void extract_sectors(floppy_image *image, const format &f, desc_s *sdesc, int track, int head, int sector_count); + virtual void fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) const; + void extract_sectors(floppy_image *image, const format &f, desc_s *sdesc, int track, int head, int sector_count) const; static const format file_formats[]; diff --git a/src/lib/formats/d80_dsk.cpp b/src/lib/formats/d80_dsk.cpp index 338f00292a9..7e1e6815800 100644 --- a/src/lib/formats/d80_dsk.cpp +++ b/src/lib/formats/d80_dsk.cpp @@ -71,28 +71,28 @@ const int d80_format::d80_speed_zone[] = 0, 0, 0, 0, 0, 0, 0 // 78-84 }; -int d80_format::get_physical_track(const format &f, int head, int track) +int d80_format::get_physical_track(const format &f, int head, int track) const { return track; } -uint32_t d80_format::get_cell_size(const format &f, int track) +uint32_t d80_format::get_cell_size(const format &f, int track) const { return d80_cell_size[d80_speed_zone[track]]; } -int d80_format::get_sectors_per_track(const format &f, int track) +int d80_format::get_sectors_per_track(const format &f, int track) const { return d80_sectors_per_track[track]; } -int d80_format::get_disk_id_offset(const format &f) +int d80_format::get_disk_id_offset(const format &f) const { // t39s0 +0x18 return 0x44e18; } -floppy_image_format_t::desc_e* d80_format::get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) +floppy_image_format_t::desc_e* d80_format::get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) const { static floppy_image_format_t::desc_e desc[] = { /* 00 */ { SECTOR_LOOP_START, 0, -1 }, @@ -125,7 +125,7 @@ floppy_image_format_t::desc_e* d80_format::get_sector_desc(const format &f, int return desc; } -void d80_format::fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) +void d80_format::fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) const { desc[19].p2 = remaining_size / 8; desc[20].p2 = remaining_size & 7; diff --git a/src/lib/formats/d80_dsk.h b/src/lib/formats/d80_dsk.h index b1150ff992a..5660f3b0dc4 100644 --- a/src/lib/formats/d80_dsk.h +++ b/src/lib/formats/d80_dsk.h @@ -27,12 +27,12 @@ public: protected: const format *formats; - virtual int get_physical_track(const format &f, int head, int track) override; - virtual uint32_t get_cell_size(const format &f, int track) override; - virtual int get_sectors_per_track(const format &f, int track) override; - virtual int get_disk_id_offset(const format &f) override; - virtual floppy_image_format_t::desc_e* get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) override; - virtual void fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) override; + virtual int get_physical_track(const format &f, int head, int track) const override; + virtual uint32_t get_cell_size(const format &f, int track) const override; + virtual int get_sectors_per_track(const format &f, int track) const override; + virtual int get_disk_id_offset(const format &f) const override; + virtual floppy_image_format_t::desc_e* get_sector_desc(const format &f, int ¤t_size, int sector_count, uint8_t id1, uint8_t id2, int gap_2) const override; + virtual void fix_end_gap(floppy_image_format_t::desc_e* desc, int remaining_size) const override; static const format file_formats[]; diff --git a/src/lib/formats/d81_dsk.cpp b/src/lib/formats/d81_dsk.cpp index e7e3ac29299..98bf3408293 100644 --- a/src/lib/formats/d81_dsk.cpp +++ b/src/lib/formats/d81_dsk.cpp @@ -115,7 +115,7 @@ const d81_format::format d81_format::formats[] = { {} }; -floppy_image_format_t::desc_e* d81_format::get_desc_mfm(const format &f, int ¤t_size, int &end_gap_index) +floppy_image_format_t::desc_e* d81_format::get_desc_mfm(const format &f, int ¤t_size, int &end_gap_index) const { static floppy_image_format_t::desc_e desc[25] = { /* 00 */ { MFM, 0x4e, f.gap_1 }, diff --git a/src/lib/formats/d81_dsk.h b/src/lib/formats/d81_dsk.h index 00d99807c0e..b2f8a7935d5 100644 --- a/src/lib/formats/d81_dsk.h +++ b/src/lib/formats/d81_dsk.h @@ -23,7 +23,7 @@ public: virtual const char *description() const override; virtual const char *extensions() const override; - virtual floppy_image_format_t::desc_e* get_desc_mfm(const format &f, int ¤t_size, int &end_gap_index) override; + virtual floppy_image_format_t::desc_e* get_desc_mfm(const format &f, int ¤t_size, int &end_gap_index) const override; private: static const format formats[]; diff --git a/src/lib/formats/d88_dsk.cpp b/src/lib/formats/d88_dsk.cpp index 918f0ed9ebd..afbdc73374c 100644 --- a/src/lib/formats/d88_dsk.cpp +++ b/src/lib/formats/d88_dsk.cpp @@ -415,7 +415,7 @@ const char *d88_format::extensions() const return "d77,d88,1dd"; } -int d88_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int d88_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if(io.length(size)) @@ -431,7 +431,7 @@ int d88_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool d88_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool d88_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; @@ -542,12 +542,6 @@ bool d88_format::load(util::random_read &io, uint32_t form_factor, const std::ve return true; } - -bool d88_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) -{ - return false; -} - bool d88_format::supports_save() const { return false; diff --git a/src/lib/formats/d88_dsk.h b/src/lib/formats/d88_dsk.h index aeed5ed16e8..232978e1425 100644 --- a/src/lib/formats/d88_dsk.h +++ b/src/lib/formats/d88_dsk.h @@ -20,9 +20,8 @@ class d88_format : public floppy_image_format_t public: d88_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/dcp_dsk.cpp b/src/lib/formats/dcp_dsk.cpp index 7d419628bdc..b0fc3655bcd 100644 --- a/src/lib/formats/dcp_dsk.cpp +++ b/src/lib/formats/dcp_dsk.cpp @@ -44,7 +44,7 @@ const char *dcp_format::extensions() const return "dcp,dcu"; } -int dcp_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int dcp_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -117,7 +117,7 @@ int dcp_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool dcp_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool dcp_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; uint8_t h[0xa2]; diff --git a/src/lib/formats/dcp_dsk.h b/src/lib/formats/dcp_dsk.h index 716814ffd48..06050f05025 100644 --- a/src/lib/formats/dcp_dsk.h +++ b/src/lib/formats/dcp_dsk.h @@ -20,8 +20,8 @@ class dcp_format : public floppy_image_format_t public: dcp_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/dfi_dsk.cpp b/src/lib/formats/dfi_dsk.cpp index f2012b62d50..a28f4b85c94 100644 --- a/src/lib/formats/dfi_dsk.cpp +++ b/src/lib/formats/dfi_dsk.cpp @@ -59,7 +59,7 @@ bool dfi_format::supports_save() const return false; } -int dfi_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int dfi_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { char sign[4]; size_t actual; @@ -67,7 +67,7 @@ int dfi_format::identify(util::random_read &io, uint32_t form_factor, const std: return memcmp(sign, "DFE2", 4) ? 0 : 100; } -bool dfi_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool dfi_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; char sign[4]; diff --git a/src/lib/formats/dfi_dsk.h b/src/lib/formats/dfi_dsk.h index 71b69c43d70..f64521fc17a 100644 --- a/src/lib/formats/dfi_dsk.h +++ b/src/lib/formats/dfi_dsk.h @@ -12,9 +12,8 @@ class dfi_format : public floppy_image_format_t public: dfi_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - // virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image); + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/dim_dsk.cpp b/src/lib/formats/dim_dsk.cpp index 53359b2fd1c..b43cd1f2293 100644 --- a/src/lib/formats/dim_dsk.cpp +++ b/src/lib/formats/dim_dsk.cpp @@ -33,7 +33,7 @@ const char *dim_format::extensions() const return "dim"; } -int dim_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int dim_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t h[16]; @@ -46,7 +46,7 @@ int dim_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool dim_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool dim_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; int offset = 0x100; @@ -126,11 +126,6 @@ bool dim_format::load(util::random_read &io, uint32_t form_factor, const std::ve } -bool dim_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) -{ - return false; -} - bool dim_format::supports_save() const { return false; diff --git a/src/lib/formats/dim_dsk.h b/src/lib/formats/dim_dsk.h index 1eb27e46e66..c542f86c5b5 100644 --- a/src/lib/formats/dim_dsk.h +++ b/src/lib/formats/dim_dsk.h @@ -21,9 +21,8 @@ class dim_format : public floppy_image_format_t public: dim_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/dip_dsk.cpp b/src/lib/formats/dip_dsk.cpp index 17a7f856efe..8fbd8d55ad2 100644 --- a/src/lib/formats/dip_dsk.cpp +++ b/src/lib/formats/dip_dsk.cpp @@ -38,7 +38,7 @@ const char *dip_format::extensions() const return "dip"; } -int dip_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int dip_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -50,7 +50,7 @@ int dip_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool dip_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool dip_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { int heads, tracks, spt, bps; diff --git a/src/lib/formats/dip_dsk.h b/src/lib/formats/dip_dsk.h index e310ef3f655..de42a3a8c15 100644 --- a/src/lib/formats/dip_dsk.h +++ b/src/lib/formats/dip_dsk.h @@ -20,8 +20,8 @@ class dip_format : public floppy_image_format_t public: dip_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/dmk_dsk.cpp b/src/lib/formats/dmk_dsk.cpp index 6a9e1dc0f0b..63aad11da80 100644 --- a/src/lib/formats/dmk_dsk.cpp +++ b/src/lib/formats/dmk_dsk.cpp @@ -41,7 +41,7 @@ const char *dmk_format::extensions() const } -int dmk_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int dmk_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -83,7 +83,7 @@ int dmk_format::identify(util::random_read &io, uint32_t form_factor, const std: } -bool dmk_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool dmk_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; @@ -215,13 +215,6 @@ bool dmk_format::load(util::random_read &io, uint32_t form_factor, const std::ve return true; } - -bool dmk_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) -{ - return false; -} - - bool dmk_format::supports_save() const { return false; diff --git a/src/lib/formats/dmk_dsk.h b/src/lib/formats/dmk_dsk.h index 5485869b5b6..f19ab085809 100644 --- a/src/lib/formats/dmk_dsk.h +++ b/src/lib/formats/dmk_dsk.h @@ -21,9 +21,8 @@ class dmk_format : public floppy_image_format_t public: dmk_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/ds9_dsk.cpp b/src/lib/formats/ds9_dsk.cpp index deab3d2539b..aa7d150ffb8 100644 --- a/src/lib/formats/ds9_dsk.cpp +++ b/src/lib/formats/ds9_dsk.cpp @@ -78,7 +78,7 @@ void ds9_format::find_size(util::random_read &io, uint8_t &track_count, uint8_t track_count = head_count = sector_count = 0; } -int ds9_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int ds9_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t track_count, head_count, sector_count; find_size(io, track_count, head_count, sector_count); @@ -89,7 +89,7 @@ int ds9_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool ds9_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool ds9_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint8_t track_count, head_count, sector_count; find_size(io, track_count, head_count, sector_count); diff --git a/src/lib/formats/ds9_dsk.h b/src/lib/formats/ds9_dsk.h index 519d425561d..ed4e67c8998 100644 --- a/src/lib/formats/ds9_dsk.h +++ b/src/lib/formats/ds9_dsk.h @@ -17,8 +17,8 @@ class ds9_format : public floppy_image_format_t public: ds9_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -28,7 +28,7 @@ public: static const desc_e ds9_desc[]; private: - void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t §or_count); + static void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t §or_count); }; extern const floppy_format_type FLOPPY_DS9_FORMAT; diff --git a/src/lib/formats/dsk_dsk.cpp b/src/lib/formats/dsk_dsk.cpp index 3d5ca544c33..f4129c54a24 100644 --- a/src/lib/formats/dsk_dsk.cpp +++ b/src/lib/formats/dsk_dsk.cpp @@ -302,7 +302,7 @@ bool dsk_format::supports_save() const return false; } -int dsk_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int dsk_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t header[16]; @@ -348,7 +348,7 @@ struct sector_header #pragma pack() -bool dsk_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool dsk_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; diff --git a/src/lib/formats/dsk_dsk.h b/src/lib/formats/dsk_dsk.h index 7d6b3bc43dc..44e46594050 100644 --- a/src/lib/formats/dsk_dsk.h +++ b/src/lib/formats/dsk_dsk.h @@ -19,8 +19,8 @@ class dsk_format : public floppy_image_format_t public: dsk_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/dvk_mx_dsk.cpp b/src/lib/formats/dvk_mx_dsk.cpp index 08156d29e9c..fb23e65445d 100644 --- a/src/lib/formats/dvk_mx_dsk.cpp +++ b/src/lib/formats/dvk_mx_dsk.cpp @@ -113,7 +113,7 @@ void dvk_mx_format::find_size(util::random_read &io, uint8_t &track_count, uint8 } } -int dvk_mx_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int dvk_mx_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t track_count, head_count, sector_count; @@ -135,7 +135,7 @@ int dvk_mx_format::identify(util::random_read &io, uint32_t form_factor, const s return 0; } -bool dvk_mx_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool dvk_mx_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint8_t track_count, head_count, sector_count; diff --git a/src/lib/formats/dvk_mx_dsk.h b/src/lib/formats/dvk_mx_dsk.h index e20066fc3ec..35fa2fc0340 100644 --- a/src/lib/formats/dvk_mx_dsk.h +++ b/src/lib/formats/dvk_mx_dsk.h @@ -18,8 +18,8 @@ class dvk_mx_format : public floppy_image_format_t public: dvk_mx_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -30,7 +30,7 @@ public: static const desc_e dvk_mx_new_desc[]; private: - void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t §or_count); + static void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t §or_count); }; extern const floppy_format_type FLOPPY_DVK_MX_FORMAT; diff --git a/src/lib/formats/esq16_dsk.cpp b/src/lib/formats/esq16_dsk.cpp index b33e529fef2..7acfc1630f8 100644 --- a/src/lib/formats/esq16_dsk.cpp +++ b/src/lib/formats/esq16_dsk.cpp @@ -87,7 +87,7 @@ void esqimg_format::find_size(util::random_read &io, uint8_t &track_count, uint8 track_count = head_count = sector_count = 0; } -int esqimg_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int esqimg_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t track_count, head_count, sector_count; find_size(io, track_count, head_count, sector_count); @@ -97,7 +97,7 @@ int esqimg_format::identify(util::random_read &io, uint32_t form_factor, const s return 0; } -bool esqimg_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool esqimg_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint8_t track_count, head_count, sector_count; find_size(io, track_count, head_count, sector_count); @@ -124,7 +124,7 @@ bool esqimg_format::load(util::random_read &io, uint32_t form_factor, const std: return true; } -bool esqimg_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool esqimg_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int track_count, head_count, sector_count; get_geometry_mfm_pc(image, 2000, track_count, head_count, sector_count); diff --git a/src/lib/formats/esq16_dsk.h b/src/lib/formats/esq16_dsk.h index 2347d64f59c..66e190b33a9 100644 --- a/src/lib/formats/esq16_dsk.h +++ b/src/lib/formats/esq16_dsk.h @@ -21,9 +21,9 @@ class esqimg_format : public floppy_image_format_t public: esqimg_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -33,7 +33,7 @@ public: static const desc_e esq_10_desc[]; private: - void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t §or_count); + static void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t §or_count); }; extern const floppy_format_type FLOPPY_ESQIMG_FORMAT; diff --git a/src/lib/formats/esq8_dsk.cpp b/src/lib/formats/esq8_dsk.cpp index 493d2f5f1f5..cb7bc04010c 100644 --- a/src/lib/formats/esq8_dsk.cpp +++ b/src/lib/formats/esq8_dsk.cpp @@ -92,7 +92,7 @@ void esq8img_format::find_size(util::random_read &io, int &track_count, int &hea track_count = head_count = sector_count = 0; } -int esq8img_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int esq8img_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int track_count, head_count, sector_count; find_size(io, track_count, head_count, sector_count); @@ -103,7 +103,7 @@ int esq8img_format::identify(util::random_read &io, uint32_t form_factor, const return 0; } -bool esq8img_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool esq8img_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { int track_count, head_count, sector_count; find_size(io, track_count, head_count, sector_count); @@ -143,7 +143,7 @@ bool esq8img_format::load(util::random_read &io, uint32_t form_factor, const std return true; } -bool esq8img_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool esq8img_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t file_offset = 0; int track_count, head_count, sector_count; diff --git a/src/lib/formats/esq8_dsk.h b/src/lib/formats/esq8_dsk.h index aa09fd278a7..4ffeaf0052f 100644 --- a/src/lib/formats/esq8_dsk.h +++ b/src/lib/formats/esq8_dsk.h @@ -23,9 +23,9 @@ class esq8img_format : public floppy_image_format_t public: esq8img_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -35,7 +35,7 @@ public: static const desc_e esq_6_desc[]; private: - void find_size(util::random_read &io, int &track_count, int &head_count, int §or_count); + static void find_size(util::random_read &io, int &track_count, int &head_count, int §or_count); }; extern const floppy_format_type FLOPPY_ESQ8IMG_FORMAT; diff --git a/src/lib/formats/fdd_dsk.cpp b/src/lib/formats/fdd_dsk.cpp index 388bf1f3208..d4319f51326 100644 --- a/src/lib/formats/fdd_dsk.cpp +++ b/src/lib/formats/fdd_dsk.cpp @@ -59,7 +59,7 @@ const char *fdd_format::extensions() const return "fdd"; } -int fdd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int fdd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t h[7]; size_t actual; @@ -71,7 +71,7 @@ int fdd_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool fdd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool fdd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint8_t hsec[0x0c]; diff --git a/src/lib/formats/fdd_dsk.h b/src/lib/formats/fdd_dsk.h index c1a3ae8a29b..452b5f93177 100644 --- a/src/lib/formats/fdd_dsk.h +++ b/src/lib/formats/fdd_dsk.h @@ -20,8 +20,8 @@ class fdd_format : public floppy_image_format_t public: fdd_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/fl1_dsk.cpp b/src/lib/formats/fl1_dsk.cpp index b37e356e436..761cbff85fa 100644 --- a/src/lib/formats/fl1_dsk.cpp +++ b/src/lib/formats/fl1_dsk.cpp @@ -29,7 +29,7 @@ const char *fl1_format::extensions() const return "fl1"; } -int fl1_format::get_image_offset(const format &f, int head, int track) +int fl1_format::get_image_offset(const format &f, int head, int track) const { return (f.track_count * head + track) * compute_track_size(f); } diff --git a/src/lib/formats/fl1_dsk.h b/src/lib/formats/fl1_dsk.h index a8407e274af..96b2a559e50 100644 --- a/src/lib/formats/fl1_dsk.h +++ b/src/lib/formats/fl1_dsk.h @@ -24,7 +24,7 @@ public: private: static const format formats[]; - virtual int get_image_offset(const format &f, int head, int track) override; + virtual int get_image_offset(const format &f, int head, int track) const override; }; extern const floppy_format_type FLOPPY_FL1_FORMAT; diff --git a/src/lib/formats/flex_dsk.cpp b/src/lib/formats/flex_dsk.cpp index 52edc624c8f..e8051d823ba 100644 --- a/src/lib/formats/flex_dsk.cpp +++ b/src/lib/formats/flex_dsk.cpp @@ -75,7 +75,7 @@ const char *flex_format::extensions() const return "dsk"; } -int flex_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int flex_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int type = find_size(io, form_factor, variants); @@ -84,13 +84,14 @@ int flex_format::identify(util::random_read &io, uint32_t form_factor, const std return 0; } -int flex_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int flex_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) return -1; uint8_t boot0[256], boot1[256]; + sysinfo_sector info; size_t actual; // Look at the boot sector. @@ -182,7 +183,7 @@ int flex_format::find_size(util::random_read &io, uint32_t form_factor, const st return -1; } -const wd177x_format::format &flex_format::get_track_format(const format &f, int head, int track) +const wd177x_format::format &flex_format::get_track_format(const format &f, int head, int track) const { int n = -1; diff --git a/src/lib/formats/flex_dsk.h b/src/lib/formats/flex_dsk.h index 9a5b0a68872..01c4b19eeee 100644 --- a/src/lib/formats/flex_dsk.h +++ b/src/lib/formats/flex_dsk.h @@ -21,9 +21,9 @@ public: virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual const wd177x_format::format &get_track_format(const format &f, int head, int track) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual const wd177x_format::format &get_track_format(const format &f, int head, int track) const override; private: struct sysinfo_sector @@ -43,7 +43,7 @@ private: uint8_t last_trk = 0; uint8_t last_sec = 0; uint8_t unused2[216]{}; - } info; + }; static const format formats[]; static const format formats_head1[]; static const format formats_track0[]; diff --git a/src/lib/formats/flopimg.cpp b/src/lib/formats/flopimg.cpp index c7461087447..413c69f4a22 100644 --- a/src/lib/formats/flopimg.cpp +++ b/src/lib/formats/flopimg.cpp @@ -118,7 +118,7 @@ bool floppy_image_format_t::has_variant(const std::vector<uint32_t> &variants, u return false; } -bool floppy_image_format_t::save(util::random_read_write &io, const std::vector<uint32_t> &, floppy_image *) +bool floppy_image_format_t::save(util::random_read_write &io, const std::vector<uint32_t> &, floppy_image *) const { return false; } diff --git a/src/lib/formats/flopimg.h b/src/lib/formats/flopimg.h index 6055714b346..9e5342534aa 100644 --- a/src/lib/formats/flopimg.h +++ b/src/lib/formats/flopimg.h @@ -44,7 +44,7 @@ public: @param variants the variants from floppy_image the drive can handle @return 1 if image valid, 0 otherwise. */ - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) = 0; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const = 0; /*! @brief Load an image. The load function opens an image file and converts it to the @@ -56,7 +56,7 @@ public: @param image output buffer for data in MAME internal format. @return true on success, false otherwise. */ - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) = 0; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const = 0; /*! @brief Save an image. The save function writes back an image from the MAME internal @@ -66,7 +66,7 @@ public: @param image source buffer containing data in MAME internal format. @return true on success, false otherwise. */ - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image); + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const; //! @returns string containing name of format. virtual const char *name() const = 0; diff --git a/src/lib/formats/fsd_dsk.cpp b/src/lib/formats/fsd_dsk.cpp index 5f25c857e1f..8a72b38aeb0 100644 --- a/src/lib/formats/fsd_dsk.cpp +++ b/src/lib/formats/fsd_dsk.cpp @@ -88,7 +88,7 @@ bool fsd_format::supports_save() const return false; } -int fsd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int fsd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t h[3]; @@ -101,7 +101,7 @@ int fsd_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool fsd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool fsd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { const char* result[255]; result[0x00] = "OK"; diff --git a/src/lib/formats/fsd_dsk.h b/src/lib/formats/fsd_dsk.h index 556ae5b96d0..995abfbb018 100644 --- a/src/lib/formats/fsd_dsk.h +++ b/src/lib/formats/fsd_dsk.h @@ -33,8 +33,8 @@ public: virtual const char *extensions() const override; virtual bool supports_save() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; }; extern const floppy_format_type FLOPPY_FSD_FORMAT; diff --git a/src/lib/formats/g64_dsk.cpp b/src/lib/formats/g64_dsk.cpp index 47592b37e42..614fef05daa 100644 --- a/src/lib/formats/g64_dsk.cpp +++ b/src/lib/formats/g64_dsk.cpp @@ -31,7 +31,7 @@ const uint32_t g64_format::c1541_cell_size[] = 3250 // 16MHz/13/4 }; -int g64_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int g64_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { char h[8]; @@ -43,7 +43,7 @@ int g64_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool g64_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool g64_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t size; if (io.length(size)) @@ -118,7 +118,7 @@ int g64_format::generate_bitstream(int track, int head, int speed_zone, std::vec return ((actual_cell_size >= cell_size-10) && (actual_cell_size <= cell_size+10)) ? speed_zone : -1; } -bool g64_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool g64_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { uint8_t const zerofill[] = { 0x00, 0x00, 0x00, 0x00 }; std::vector<uint8_t> const prefill(TRACK_LENGTH, 0xff); diff --git a/src/lib/formats/g64_dsk.h b/src/lib/formats/g64_dsk.h index fcd48d96796..64b5f16a3a5 100644 --- a/src/lib/formats/g64_dsk.h +++ b/src/lib/formats/g64_dsk.h @@ -20,9 +20,9 @@ class g64_format : public floppy_image_format_t public: g64_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -47,7 +47,7 @@ protected: static const uint32_t c1541_cell_size[]; - int generate_bitstream(int track, int head, int speed_zone, std::vector<bool> &trackbuf, floppy_image *image); + static int generate_bitstream(int track, int head, int speed_zone, std::vector<bool> &trackbuf, floppy_image *image); }; extern const floppy_format_type FLOPPY_G64_FORMAT; diff --git a/src/lib/formats/hpi_dsk.cpp b/src/lib/formats/hpi_dsk.cpp index 83e187afe6b..425d1b50f17 100644 --- a/src/lib/formats/hpi_dsk.cpp +++ b/src/lib/formats/hpi_dsk.cpp @@ -81,7 +81,7 @@ hpi_format::hpi_format() (void)HPI_RED_IMAGE_SIZE; } -int hpi_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int hpi_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) { @@ -148,7 +148,7 @@ bool hpi_format::geometry_from_size(uint64_t image_size , unsigned& heads , unsi } } -bool hpi_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool hpi_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { unsigned heads; unsigned cylinders; @@ -201,7 +201,7 @@ bool hpi_format::load(util::random_read &io, uint32_t form_factor, const std::ve return true; } -bool hpi_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool hpi_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int tracks; int heads; diff --git a/src/lib/formats/hpi_dsk.h b/src/lib/formats/hpi_dsk.h index ca8aa1ffe11..d295e1ecccd 100644 --- a/src/lib/formats/hpi_dsk.h +++ b/src/lib/formats/hpi_dsk.h @@ -28,9 +28,9 @@ class hpi_format : public floppy_image_format_t public: hpi_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; @@ -40,15 +40,15 @@ private: typedef std::array<uint8_t , HPI_SECTORS> sector_list_t; static bool geometry_from_size(uint64_t image_size , unsigned& heads , unsigned& tracks); static void interleaved_sectors(unsigned il_factor , sector_list_t& sector_list); - void write_mmfm_bit(std::vector<uint32_t> &buffer , bool data_bit , bool clock_bit); - void write_mmfm_byte(std::vector<uint32_t> &buffer , uint8_t data , uint8_t clock = 0); - void write_sync(std::vector<uint32_t> &buffer); - void write_crc(std::vector<uint32_t> &buffer , uint16_t crc); - void write_sector(std::vector<uint32_t> &buffer , uint8_t track_no , uint8_t sect_head_no , const uint8_t *sect_data); - void fill_with_gap3(std::vector<uint32_t> &buffer); + static void write_mmfm_bit(std::vector<uint32_t> &buffer , bool data_bit , bool clock_bit); + static void write_mmfm_byte(std::vector<uint32_t> &buffer , uint8_t data , uint8_t clock = 0); + static void write_sync(std::vector<uint32_t> &buffer); + static void write_crc(std::vector<uint32_t> &buffer , uint16_t crc); + static void write_sector(std::vector<uint32_t> &buffer , uint8_t track_no , uint8_t sect_head_no , const uint8_t *sect_data); + static void fill_with_gap3(std::vector<uint32_t> &buffer); static unsigned chs_to_lba(unsigned cylinder , unsigned head , unsigned sector , unsigned heads); - std::vector<uint8_t> get_next_id_n_block(const std::vector<bool> &bitstream , int& pos , int& start_pos); - bool get_next_sector(const std::vector<bool> &bitstream , int& pos , unsigned& track , unsigned& head , unsigned& sector , uint8_t *sector_data); + static std::vector<uint8_t> get_next_id_n_block(const std::vector<bool> &bitstream , int& pos , int& start_pos); + static bool get_next_sector(const std::vector<bool> &bitstream , int& pos , unsigned& track , unsigned& head , unsigned& sector , uint8_t *sector_data); static const uint8_t m_track_skew[ HPI_SECTORS - 1 ][ HPI_HEADS ]; }; diff --git a/src/lib/formats/hxchfe_dsk.cpp b/src/lib/formats/hxchfe_dsk.cpp index e1c5b08cb8b..6af5c6acc7f 100644 --- a/src/lib/formats/hxchfe_dsk.cpp +++ b/src/lib/formats/hxchfe_dsk.cpp @@ -135,7 +135,7 @@ bool hfe_format::supports_save() const return false; } -int hfe_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int hfe_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t header[8]; @@ -147,7 +147,7 @@ int hfe_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool hfe_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool hfe_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; uint8_t header[HEADER_LENGTH]; diff --git a/src/lib/formats/hxchfe_dsk.h b/src/lib/formats/hxchfe_dsk.h index a332e2dc2fc..862e229512a 100644 --- a/src/lib/formats/hxchfe_dsk.h +++ b/src/lib/formats/hxchfe_dsk.h @@ -47,8 +47,8 @@ public: hfe_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -56,7 +56,7 @@ public: virtual bool supports_save() const override; private: - void generate_track_from_hfe_bitstream(int track, int head, int samplelength, const uint8_t *trackbuf, int track_end, floppy_image *image); + static void generate_track_from_hfe_bitstream(int track, int head, int samplelength, const uint8_t *trackbuf, int track_end, floppy_image *image); // Header fields from the HFE format struct header_info { @@ -81,8 +81,8 @@ private: encoding_t m_selected_encoding = UNKNOWN_ENCODING; }; - void set_floppy_mode(header_info &info, floppymode_t mode) { info.m_selected_mode = mode; } - void set_encoding(header_info &info, encoding_t enc) { info.m_selected_encoding = enc; } + static void set_floppy_mode(header_info &info, floppymode_t mode) { info.m_selected_mode = mode; } + static void set_encoding(header_info &info, encoding_t enc) { info.m_selected_encoding = enc; } }; extern const floppy_format_type FLOPPY_HFE_FORMAT; diff --git a/src/lib/formats/hxcmfm_dsk.cpp b/src/lib/formats/hxcmfm_dsk.cpp index 4a70ca8cd7d..1a17f085c18 100644 --- a/src/lib/formats/hxcmfm_dsk.cpp +++ b/src/lib/formats/hxcmfm_dsk.cpp @@ -60,7 +60,7 @@ bool mfm_format::supports_save() const return true; } -int mfm_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int mfm_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t header[7]; @@ -72,7 +72,7 @@ int mfm_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool mfm_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool mfm_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; MFMIMG header; @@ -114,7 +114,7 @@ bool mfm_format::load(util::random_read &io, uint32_t form_factor, const std::ve return true; } -bool mfm_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool mfm_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { // TODO: HD support size_t actual; diff --git a/src/lib/formats/hxcmfm_dsk.h b/src/lib/formats/hxcmfm_dsk.h index c42190f3aae..9a16333d024 100644 --- a/src/lib/formats/hxcmfm_dsk.h +++ b/src/lib/formats/hxcmfm_dsk.h @@ -19,9 +19,9 @@ class mfm_format : public floppy_image_format_t public: mfm_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/ibmxdf_dsk.cpp b/src/lib/formats/ibmxdf_dsk.cpp index c2c5f71b366..58feea0ab83 100644 --- a/src/lib/formats/ibmxdf_dsk.cpp +++ b/src/lib/formats/ibmxdf_dsk.cpp @@ -55,7 +55,7 @@ const char *ibmxdf_format::extensions() const return "xdf,img"; } -int ibmxdf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int ibmxdf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int type = find_size(io, form_factor, variants); @@ -64,7 +64,7 @@ int ibmxdf_format::identify(util::random_read &io, uint32_t form_factor, const s return 0; } -int ibmxdf_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int ibmxdf_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -76,12 +76,12 @@ int ibmxdf_format::find_size(util::random_read &io, uint32_t form_factor, const return 0; } -int ibmxdf_format::get_image_offset(const format &f, int head, int track) +int ibmxdf_format::get_image_offset(const format &f, int head, int track) const { return (2 * track) * compute_track_size(formats[0]); } -const wd177x_format::format &ibmxdf_format::get_track_format(const format &f, int head, int track) +const wd177x_format::format &ibmxdf_format::get_track_format(const format &f, int head, int track) const { int n = -1; @@ -178,7 +178,7 @@ const ibmxdf_format::format ibmxdf_format::formats_head1_track0[] = { {} }; -bool ibmxdf_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool ibmxdf_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { int type = find_size(io, form_factor, variants); if(type == -1) diff --git a/src/lib/formats/ibmxdf_dsk.h b/src/lib/formats/ibmxdf_dsk.h index dbb448f8ad3..85d9b86fdb8 100644 --- a/src/lib/formats/ibmxdf_dsk.h +++ b/src/lib/formats/ibmxdf_dsk.h @@ -23,13 +23,13 @@ public: virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override { return false; } - virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int get_image_offset(const format &f, int head, int track) override; - virtual const wd177x_format::format &get_track_format(const format &f, int head, int track) override; + virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int get_image_offset(const format &f, int head, int track) const override; + virtual const wd177x_format::format &get_track_format(const format &f, int head, int track) const override; private: static const format formats[]; diff --git a/src/lib/formats/imd_dsk.cpp b/src/lib/formats/imd_dsk.cpp index e07d0d72f21..dec565a73c5 100644 --- a/src/lib/formats/imd_dsk.cpp +++ b/src/lib/formats/imd_dsk.cpp @@ -413,7 +413,7 @@ void imd_format::fixnum(char *start, char *end) const }; } -int imd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int imd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { char h[4]; @@ -425,7 +425,7 @@ int imd_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool imd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool imd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { std::vector<uint8_t> comment; std::vector<std::vector<uint8_t> > snum; diff --git a/src/lib/formats/imd_dsk.h b/src/lib/formats/imd_dsk.h index 18816d23634..9fd85cb5f82 100644 --- a/src/lib/formats/imd_dsk.h +++ b/src/lib/formats/imd_dsk.h @@ -17,8 +17,8 @@ class imd_format : public floppy_image_format_t public: imd_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/img_dsk.cpp b/src/lib/formats/img_dsk.cpp index a8f2653da1c..a8f47d22eac 100644 --- a/src/lib/formats/img_dsk.cpp +++ b/src/lib/formats/img_dsk.cpp @@ -43,7 +43,7 @@ img_format::img_format() { } -int img_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int img_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) { @@ -58,7 +58,7 @@ int img_format::identify(util::random_read &io, uint32_t form_factor, const std: } } -bool img_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool img_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t size; if (io.length(size) || (size != IMG_IMAGE_SIZE)) { @@ -104,7 +104,7 @@ bool img_format::load(util::random_read &io, uint32_t form_factor, const std::ve return true; } -bool img_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool img_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { for (int cyl = 0; cyl < TRACKS; cyl++) { auto bitstream = generate_bitstream_from_track(cyl , 0 , CELL_SIZE , image , 0); diff --git a/src/lib/formats/img_dsk.h b/src/lib/formats/img_dsk.h index 7d83da31a0f..983a75438dd 100644 --- a/src/lib/formats/img_dsk.h +++ b/src/lib/formats/img_dsk.h @@ -27,9 +27,9 @@ public: img_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; @@ -37,15 +37,15 @@ public: private: static std::vector<uint8_t> interleaved_sectors(unsigned il_factor); - void write_mmfm_bit(std::vector<uint32_t> &buffer , bool data_bit , bool clock_bit , uint16_t &crc); - void write_mmfm_byte(std::vector<uint32_t> &buffer , uint8_t data , uint16_t &crc , uint8_t clock = 0); - void write_sync(std::vector<uint32_t> &buffer); - void write_crc(std::vector<uint32_t> &buffer , uint16_t crc); - void write_gap(std::vector<uint32_t> &buffer , unsigned size_00 , unsigned size_ff); - void write_sector(std::vector<uint32_t> &buffer , uint8_t track_no , uint8_t sect_no , const uint8_t *sect_data); - void fill_with_gap4(std::vector<uint32_t> &buffer); - std::vector<uint8_t> get_next_id_n_block(const std::vector<bool> &bitstream , int& pos , int& start_pos); - bool get_next_sector(const std::vector<bool> &bitstream , int& pos , unsigned& track , unsigned& sector , uint8_t *sector_data); + static void write_mmfm_bit(std::vector<uint32_t> &buffer , bool data_bit , bool clock_bit , uint16_t &crc); + static void write_mmfm_byte(std::vector<uint32_t> &buffer , uint8_t data , uint16_t &crc , uint8_t clock = 0); + static void write_sync(std::vector<uint32_t> &buffer); + static void write_crc(std::vector<uint32_t> &buffer , uint16_t crc); + static void write_gap(std::vector<uint32_t> &buffer , unsigned size_00 , unsigned size_ff); + static void write_sector(std::vector<uint32_t> &buffer , uint8_t track_no , uint8_t sect_no , const uint8_t *sect_data); + static void fill_with_gap4(std::vector<uint32_t> &buffer); + static std::vector<uint8_t> get_next_id_n_block(const std::vector<bool> &bitstream , int& pos , int& start_pos); + static bool get_next_sector(const std::vector<bool> &bitstream , int& pos , unsigned& track , unsigned& sector , uint8_t *sector_data); }; extern const floppy_format_type FLOPPY_IMG_FORMAT; diff --git a/src/lib/formats/ipf_dsk.cpp b/src/lib/formats/ipf_dsk.cpp index da919d4ba0a..0d588ba0eae 100644 --- a/src/lib/formats/ipf_dsk.cpp +++ b/src/lib/formats/ipf_dsk.cpp @@ -29,7 +29,7 @@ bool ipf_format::supports_save() const return false; } -int ipf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int ipf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { static const uint8_t refh[12] = { 0x43, 0x41, 0x50, 0x53, 0x00, 0x00, 0x00, 0x0c, 0x1c, 0xd5, 0x73, 0xba }; uint8_t h[12]; @@ -42,7 +42,7 @@ int ipf_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool ipf_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool ipf_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t size; if (io.length(size)) diff --git a/src/lib/formats/ipf_dsk.h b/src/lib/formats/ipf_dsk.h index 28d552d5812..a6014ff9367 100644 --- a/src/lib/formats/ipf_dsk.h +++ b/src/lib/formats/ipf_dsk.h @@ -12,8 +12,8 @@ class ipf_format : public floppy_image_format_t { public: - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/jfd_dsk.cpp b/src/lib/formats/jfd_dsk.cpp index 6a07d5c2fef..eff9f6355de 100644 --- a/src/lib/formats/jfd_dsk.cpp +++ b/src/lib/formats/jfd_dsk.cpp @@ -189,7 +189,7 @@ const char *jfd_format::extensions() const return "jfd"; } -int jfd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int jfd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -230,7 +230,7 @@ int jfd_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool jfd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool jfd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t size; if (io.length(size)) diff --git a/src/lib/formats/jfd_dsk.h b/src/lib/formats/jfd_dsk.h index 7231ccf3460..25bc49b0f27 100644 --- a/src/lib/formats/jfd_dsk.h +++ b/src/lib/formats/jfd_dsk.h @@ -23,8 +23,8 @@ public: virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override; }; diff --git a/src/lib/formats/jvc_dsk.cpp b/src/lib/formats/jvc_dsk.cpp index b5697270385..561f7507944 100644 --- a/src/lib/formats/jvc_dsk.cpp +++ b/src/lib/formats/jvc_dsk.cpp @@ -175,13 +175,13 @@ bool jvc_format::parse_header(util::random_read &io, int &header_size, int &trac return tracks * heads * sectors * sector_size == (size - header_size); } -int jvc_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int jvc_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int header_size, tracks, heads, sectors, sector_size, sector_base_id; return parse_header(io, header_size, tracks, heads, sectors, sector_size, sector_base_id) ? 50 : 0; } -bool jvc_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool jvc_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { int header_size, track_count, head_count, sector_count, sector_size, sector_base_id; int max_tracks, max_heads; @@ -246,7 +246,7 @@ bool jvc_format::load(util::random_read &io, uint32_t form_factor, const std::ve return true; } -bool jvc_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool jvc_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t file_offset = 0; diff --git a/src/lib/formats/jvc_dsk.h b/src/lib/formats/jvc_dsk.h index 1b8b59c725f..a83e1dac73b 100644 --- a/src/lib/formats/jvc_dsk.h +++ b/src/lib/formats/jvc_dsk.h @@ -35,13 +35,13 @@ public: virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override; private: - bool parse_header(util::random_read &io, int &header_size, int &tracks, int &heads, int §ors, int §or_size, int &base_sector_id); + static bool parse_header(util::random_read &io, int &header_size, int &tracks, int &heads, int §ors, int §or_size, int &base_sector_id); }; extern const floppy_format_type FLOPPY_JVC_FORMAT; diff --git a/src/lib/formats/m20_dsk.cpp b/src/lib/formats/m20_dsk.cpp index 05c52c2f211..61eb3368d95 100644 --- a/src/lib/formats/m20_dsk.cpp +++ b/src/lib/formats/m20_dsk.cpp @@ -43,7 +43,7 @@ bool m20_format::supports_save() const return true; } -int m20_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int m20_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -55,7 +55,7 @@ int m20_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool m20_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool m20_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { for (int track = 0; track < 35; track++) for (int head = 0; head < 2; head ++) { @@ -85,7 +85,7 @@ bool m20_format::load(util::random_read &io, uint32_t form_factor, const std::ve return true; } -bool m20_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool m20_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t file_offset = 0; diff --git a/src/lib/formats/m20_dsk.h b/src/lib/formats/m20_dsk.h index d9bd7a45425..9ecfeaa60bf 100644 --- a/src/lib/formats/m20_dsk.h +++ b/src/lib/formats/m20_dsk.h @@ -18,9 +18,9 @@ class m20_format : public floppy_image_format_t { public: m20_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/mdos_dsk.cpp b/src/lib/formats/mdos_dsk.cpp index e49d825ea9a..3b26fbe394d 100644 --- a/src/lib/formats/mdos_dsk.cpp +++ b/src/lib/formats/mdos_dsk.cpp @@ -74,7 +74,7 @@ const char *mdos_format::extensions() const return "dsk"; } -int mdos_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int mdos_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int type = find_size(io, form_factor, variants); @@ -84,7 +84,7 @@ int mdos_format::identify(util::random_read &io, uint32_t form_factor, const std return 0; } -bool mdos_format::check_ascii(uint8_t *str, size_t len, const char* name) +bool mdos_format::check_ascii(const uint8_t *str, size_t len, const char* name) { LOG_FORMATS(" %s: \"", name); for (int i = 0; i < len; i++) { @@ -101,7 +101,7 @@ bool mdos_format::check_ascii(uint8_t *str, size_t len, const char* name) return 1; } -int mdos_format::parse_date_field(uint8_t *str) +int mdos_format::parse_date_field(const uint8_t *str) { uint8_t high = str[0]; uint8_t low = str[1]; @@ -112,13 +112,14 @@ int mdos_format::parse_date_field(uint8_t *str) return (high - 0x30) * 10 + (low - 0x30); } -int mdos_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int mdos_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { size_t actual; uint64_t size; if (io.length(size)) return -1; + disk_id_sector info; // Look at the disk id sector. io.read_at(0, &info, sizeof(struct disk_id_sector), actual); @@ -227,7 +228,7 @@ int mdos_format::find_size(util::random_read &io, uint32_t form_factor, const st return -1; } -const wd177x_format::format &mdos_format::get_track_format(const format &f, int head, int track) +const wd177x_format::format &mdos_format::get_track_format(const format &f, int head, int track) const { int n = -1; diff --git a/src/lib/formats/mdos_dsk.h b/src/lib/formats/mdos_dsk.h index 56dd29c9954..ebcb2a5c5ca 100644 --- a/src/lib/formats/mdos_dsk.h +++ b/src/lib/formats/mdos_dsk.h @@ -19,9 +19,9 @@ public: virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual const wd177x_format::format &get_track_format(const format &f, int head, int track) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual const wd177x_format::format &get_track_format(const format &f, int head, int track) const override; private: struct disk_id_sector @@ -33,11 +33,11 @@ private: uint8_t username[20]; uint8_t rib_addr[20]; uint8_t unused[70]; - } info; + }; static const format formats[]; static const format formats_head1[]; - bool check_ascii(uint8_t *, size_t len, const char* name); - int parse_date_field(uint8_t *str); + static bool check_ascii(const uint8_t *, size_t len, const char* name); + static int parse_date_field(const uint8_t *str); }; extern const floppy_format_type FLOPPY_MDOS_FORMAT; diff --git a/src/lib/formats/mfi_dsk.cpp b/src/lib/formats/mfi_dsk.cpp index d77892ddfef..d979742a699 100644 --- a/src/lib/formats/mfi_dsk.cpp +++ b/src/lib/formats/mfi_dsk.cpp @@ -98,7 +98,7 @@ bool mfi_format::supports_save() const return true; } -int mfi_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int mfi_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { header h; @@ -113,7 +113,7 @@ int mfi_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool mfi_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool mfi_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; header h; @@ -171,11 +171,10 @@ bool mfi_format::load(util::random_read &io, uint32_t form_factor, const std::ve ent++; } - fprintf(stderr, "tick\n"); return true; } -bool mfi_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool mfi_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; int tracks, heads; diff --git a/src/lib/formats/mfi_dsk.h b/src/lib/formats/mfi_dsk.h index d0dd36c3d68..4f638496e5d 100644 --- a/src/lib/formats/mfi_dsk.h +++ b/src/lib/formats/mfi_dsk.h @@ -12,9 +12,9 @@ class mfi_format : public floppy_image_format_t public: mfi_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/nfd_dsk.cpp b/src/lib/formats/nfd_dsk.cpp index 91d60b6a2ab..df7db9ae3a4 100644 --- a/src/lib/formats/nfd_dsk.cpp +++ b/src/lib/formats/nfd_dsk.cpp @@ -105,7 +105,7 @@ const char *nfd_format::extensions() const return "nfd"; } -int nfd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int nfd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t h[16]; size_t actual; @@ -117,7 +117,7 @@ int nfd_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool nfd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool nfd_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; uint64_t size; diff --git a/src/lib/formats/nfd_dsk.h b/src/lib/formats/nfd_dsk.h index c0030b073a5..b21f79189e2 100644 --- a/src/lib/formats/nfd_dsk.h +++ b/src/lib/formats/nfd_dsk.h @@ -20,8 +20,8 @@ class nfd_format : public floppy_image_format_t public: nfd_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/opd_dsk.cpp b/src/lib/formats/opd_dsk.cpp index 964b30b75a0..4f22789fc69 100644 --- a/src/lib/formats/opd_dsk.cpp +++ b/src/lib/formats/opd_dsk.cpp @@ -30,7 +30,7 @@ const char *opd_format::extensions() const return "opd,opu"; } -int opd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int opd_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int const type = find_size(io, form_factor, variants); @@ -40,7 +40,7 @@ int opd_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -int opd_format::get_image_offset(const format &f, int head, int track) +int opd_format::get_image_offset(const format &f, int head, int track) const { return (f.track_count * head + track) * compute_track_size(f); } diff --git a/src/lib/formats/opd_dsk.h b/src/lib/formats/opd_dsk.h index 9236320f154..b8f627da49f 100644 --- a/src/lib/formats/opd_dsk.h +++ b/src/lib/formats/opd_dsk.h @@ -21,8 +21,8 @@ class opd_format : public wd177x_format public: opd_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int get_image_offset(const format &f, int head, int track) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int get_image_offset(const format &f, int head, int track) const override; virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; diff --git a/src/lib/formats/oric_dsk.cpp b/src/lib/formats/oric_dsk.cpp index df6fa1a2ba9..4a17b18cc32 100644 --- a/src/lib/formats/oric_dsk.cpp +++ b/src/lib/formats/oric_dsk.cpp @@ -35,7 +35,7 @@ bool oric_dsk_format::supports_save() const return true; } -int oric_dsk_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int oric_dsk_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t h[256]; size_t actual; @@ -57,7 +57,7 @@ int oric_dsk_format::identify(util::random_read &io, uint32_t form_factor, const return 100; } -bool oric_dsk_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool oric_dsk_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; uint8_t h[256]; @@ -107,12 +107,6 @@ bool oric_dsk_format::load(util::random_read &io, uint32_t form_factor, const st return true; } -bool oric_dsk_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) -{ - // FIXME: surely this should return false, since it does't actually save anything? - return true; -} - const floppy_format_type FLOPPY_ORIC_DSK_FORMAT = &floppy_image_format_creator<oric_dsk_format>; @@ -136,7 +130,7 @@ bool oric_jasmin_format::supports_save() const return true; } -int oric_jasmin_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int oric_jasmin_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if(io.length(size)) @@ -149,7 +143,7 @@ int oric_jasmin_format::identify(util::random_read &io, uint32_t form_factor, co return 0; } -bool oric_jasmin_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool oric_jasmin_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t size; if(io.length(size)) @@ -189,7 +183,7 @@ bool oric_jasmin_format::load(util::random_read &io, uint32_t form_factor, const return true; } -bool oric_jasmin_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool oric_jasmin_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int tracks, heads; image->get_actual_geometry(tracks, heads); diff --git a/src/lib/formats/oric_dsk.h b/src/lib/formats/oric_dsk.h index 6fd1021384b..60a09b61e76 100644 --- a/src/lib/formats/oric_dsk.h +++ b/src/lib/formats/oric_dsk.h @@ -18,9 +18,8 @@ class oric_dsk_format : public floppy_image_format_t { public: oric_dsk_format() = default; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -35,9 +34,9 @@ class oric_jasmin_format : public floppy_image_format_t public: oric_jasmin_format() = default; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/os9_dsk.cpp b/src/lib/formats/os9_dsk.cpp index d0267f80815..f19b87f2988 100644 --- a/src/lib/formats/os9_dsk.cpp +++ b/src/lib/formats/os9_dsk.cpp @@ -70,7 +70,7 @@ const char *os9_format::extensions() const return "os9,dsk"; } -int os9_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int os9_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int const type = find_size(io, form_factor, variants); @@ -80,7 +80,7 @@ int os9_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -int os9_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int os9_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -224,7 +224,7 @@ int os9_format::find_size(util::random_read &io, uint32_t form_factor, const std return -1; } -const wd177x_format::format &os9_format::get_track_format(const format &f, int head, int track) +const wd177x_format::format &os9_format::get_track_format(const format &f, int head, int track) const { int n = -1; diff --git a/src/lib/formats/os9_dsk.h b/src/lib/formats/os9_dsk.h index 124c019d155..394eae75bb3 100644 --- a/src/lib/formats/os9_dsk.h +++ b/src/lib/formats/os9_dsk.h @@ -21,9 +21,9 @@ public: virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual const wd177x_format::format &get_track_format(const format &f, int head, int track) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual const wd177x_format::format &get_track_format(const format &f, int head, int track) const override; private: static const format formats[]; diff --git a/src/lib/formats/pasti_dsk.cpp b/src/lib/formats/pasti_dsk.cpp index 1822bf7e5ad..b9d9823f4f6 100644 --- a/src/lib/formats/pasti_dsk.cpp +++ b/src/lib/formats/pasti_dsk.cpp @@ -41,7 +41,7 @@ bool pasti_format::supports_save() const return false; } -int pasti_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int pasti_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t h[16]; size_t actual; @@ -64,7 +64,7 @@ static void hexdump(const uint8_t *d, int s) } } -bool pasti_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool pasti_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; uint8_t fh[16]; diff --git a/src/lib/formats/pasti_dsk.h b/src/lib/formats/pasti_dsk.h index 2575c12eeb4..37372cef4f9 100644 --- a/src/lib/formats/pasti_dsk.h +++ b/src/lib/formats/pasti_dsk.h @@ -12,8 +12,8 @@ class pasti_format : public floppy_image_format_t public: pasti_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -37,7 +37,7 @@ protected: int track_size, sector_count; }; - void wd_generate_track_from_observations(int track, int head, floppy_image *image, wd_obs &obs); + static void wd_generate_track_from_observations(int track, int head, floppy_image *image, wd_obs &obs); private: struct wd_sect_info { @@ -46,19 +46,19 @@ private: bool hsynced, dsynced; }; - void map_sectors_in_track(wd_obs &obs, wd_sect_info *sect_infos); - void match_mfm_data(wd_obs &obs, int tpos, const uint8_t *data, int size, uint8_t context, int &bcount, int &ccount, bool &synced); - void match_raw_data(wd_obs &obs, int tpos, const uint8_t *data, int size, uint8_t context, int &bcount, int &ccount); - uint16_t byte_to_mfm(uint8_t data, bool context); - uint16_t calc_crc(const uint8_t *data, int size, uint16_t crc); + static void map_sectors_in_track(wd_obs &obs, wd_sect_info *sect_infos); + static void match_mfm_data(wd_obs &obs, int tpos, const uint8_t *data, int size, uint8_t context, int &bcount, int &ccount, bool &synced); + static void match_raw_data(wd_obs &obs, int tpos, const uint8_t *data, int size, uint8_t context, int &bcount, int &ccount); + static uint16_t byte_to_mfm(uint8_t data, bool context); + static uint16_t calc_crc(const uint8_t *data, int size, uint16_t crc); - void wd_generate_unsynced_gap(std::vector<uint32_t> &track, const wd_obs &obs, int tstart, int tend, uint32_t cell_size); - void wd_generate_synced_gap(std::vector<uint32_t> &track, const wd_obs &obs, int tstart, int tend, uint32_t cell_size); - void wd_generate_gap(std::vector<uint32_t> &track, const wd_obs &obs, int tstart, int tend, bool synced, uint32_t cell_size_start, uint32_t cell_size_end); - void wd_generate_sector_header(std::vector<uint32_t> &track, const wd_obs &obs, int sector, int tstart, uint32_t cell_size); - void wd_generate_sector_data(std::vector<uint32_t> &track, const wd_obs &obs, int sector, int tstart, uint32_t cell_size); - void wd_generate_track_from_sectors_and_track(int track, int head, floppy_image *image, wd_obs &obs); - void wd_generate_track_from_sectors_only(int track, int head, floppy_image *image, wd_obs &obs); + static void wd_generate_unsynced_gap(std::vector<uint32_t> &track, const wd_obs &obs, int tstart, int tend, uint32_t cell_size); + static void wd_generate_synced_gap(std::vector<uint32_t> &track, const wd_obs &obs, int tstart, int tend, uint32_t cell_size); + static void wd_generate_gap(std::vector<uint32_t> &track, const wd_obs &obs, int tstart, int tend, bool synced, uint32_t cell_size_start, uint32_t cell_size_end); + static void wd_generate_sector_header(std::vector<uint32_t> &track, const wd_obs &obs, int sector, int tstart, uint32_t cell_size); + static void wd_generate_sector_data(std::vector<uint32_t> &track, const wd_obs &obs, int sector, int tstart, uint32_t cell_size); + static void wd_generate_track_from_sectors_and_track(int track, int head, floppy_image *image, wd_obs &obs); + static void wd_generate_track_from_sectors_only(int track, int head, floppy_image *image, wd_obs &obs); }; extern const floppy_format_type FLOPPY_PASTI_FORMAT; diff --git a/src/lib/formats/pc98fdi_dsk.cpp b/src/lib/formats/pc98fdi_dsk.cpp index 3dd8694c981..ed0243614b5 100644 --- a/src/lib/formats/pc98fdi_dsk.cpp +++ b/src/lib/formats/pc98fdi_dsk.cpp @@ -34,7 +34,7 @@ const char *pc98fdi_format::extensions() const return "fdi"; } -int pc98fdi_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int pc98fdi_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if(io.length(size)) @@ -56,7 +56,7 @@ int pc98fdi_format::identify(util::random_read &io, uint32_t form_factor, const return 0; } -bool pc98fdi_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool pc98fdi_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; diff --git a/src/lib/formats/pc98fdi_dsk.h b/src/lib/formats/pc98fdi_dsk.h index 1c539f06094..99ba1f3f02e 100644 --- a/src/lib/formats/pc98fdi_dsk.h +++ b/src/lib/formats/pc98fdi_dsk.h @@ -20,8 +20,8 @@ class pc98fdi_format : public floppy_image_format_t public: pc98fdi_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/pc_dsk.cpp b/src/lib/formats/pc_dsk.cpp index 6fe2a82196a..101c55dacea 100644 --- a/src/lib/formats/pc_dsk.cpp +++ b/src/lib/formats/pc_dsk.cpp @@ -34,31 +34,6 @@ const char *pc_format::extensions() const return "dsk,ima,img,ufi,360"; } -int pc_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) -{ - uint64_t size; - if (io.length(size)) { - return 0; - } - - /* some 360K images have a 512-byte header */ - if (size == 368640 + 0x200) { - file_header_skip_bytes = 0x200; - } - - /* Disk Copy 4.2 images have an 84-byte header */ - if (size == 1474560 + 84) { - file_header_skip_bytes = 84; - } - - /* some 1.44MB images have a 1024-byte footer */ - if (size == 1474560 + 0x400) { - file_footer_skip_bytes = 0x400; - } - - return upd765_format::identify(io, form_factor, variants); -} - const pc_format::format pc_format::formats[] = { { /* 160K 5 1/4 inch double density single sided */ floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM, diff --git a/src/lib/formats/pc_dsk.h b/src/lib/formats/pc_dsk.h index 8c99a35457f..78378696222 100644 --- a/src/lib/formats/pc_dsk.h +++ b/src/lib/formats/pc_dsk.h @@ -20,8 +20,6 @@ class pc_format : public upd765_format public: pc_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; diff --git a/src/lib/formats/poly_dsk.cpp b/src/lib/formats/poly_dsk.cpp index 45efe6ec451..881dad52ab2 100644 --- a/src/lib/formats/poly_dsk.cpp +++ b/src/lib/formats/poly_dsk.cpp @@ -39,7 +39,7 @@ bool poly_cpm_format::supports_save() const return true; } -int poly_cpm_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int poly_cpm_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -61,7 +61,7 @@ int poly_cpm_format::identify(util::random_read &io, uint32_t form_factor, const return 0; } -bool poly_cpm_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool poly_cpm_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t size; if (io.length(size) || io.seek(0, SEEK_SET)) diff --git a/src/lib/formats/poly_dsk.h b/src/lib/formats/poly_dsk.h index 8afb6836302..9b3e1ef219e 100644 --- a/src/lib/formats/poly_dsk.h +++ b/src/lib/formats/poly_dsk.h @@ -20,8 +20,8 @@ public: virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override; }; diff --git a/src/lib/formats/rx50_dsk.cpp b/src/lib/formats/rx50_dsk.cpp index f81e2fa5b67..f7a93f2b536 100644 --- a/src/lib/formats/rx50_dsk.cpp +++ b/src/lib/formats/rx50_dsk.cpp @@ -129,7 +129,7 @@ void rx50img_format::find_size(util::random_read &io, uint8_t &track_count, uint track_count = head_count = sector_count = 0; } -int rx50img_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int rx50img_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t track_count, head_count, sector_count; find_size(io, track_count, head_count, sector_count); @@ -140,7 +140,7 @@ int rx50img_format::identify(util::random_read &io, uint32_t form_factor, const } // /* Sectors are numbered 1 to 10 */ -bool rx50img_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool rx50img_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint8_t track_count, head_count, sector_count; find_size(io, track_count, head_count, sector_count); @@ -169,7 +169,7 @@ bool rx50img_format::load(util::random_read &io, uint32_t form_factor, const std return true; } -bool rx50img_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool rx50img_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int track_count, head_count, sector_count; get_geometry_mfm_pc(image, 2000, track_count, head_count, sector_count); diff --git a/src/lib/formats/rx50_dsk.h b/src/lib/formats/rx50_dsk.h index d28ea398d30..4b0d4625b8f 100644 --- a/src/lib/formats/rx50_dsk.h +++ b/src/lib/formats/rx50_dsk.h @@ -23,9 +23,9 @@ class rx50img_format : public floppy_image_format_t public: rx50img_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -35,7 +35,7 @@ public: static const desc_e rx50_10_desc[]; private: - void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t §or_count); + static void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t §or_count); }; extern const floppy_format_type FLOPPY_RX50IMG_FORMAT; diff --git a/src/lib/formats/sdd_dsk.cpp b/src/lib/formats/sdd_dsk.cpp index f3e8df51bda..4d18bddf835 100644 --- a/src/lib/formats/sdd_dsk.cpp +++ b/src/lib/formats/sdd_dsk.cpp @@ -32,7 +32,7 @@ const char *sdd_format::extensions() const return "sdd"; } -int sdd_format::get_image_offset(const format &f, int head, int track) +int sdd_format::get_image_offset(const format &f, int head, int track) const { return (f.track_count * head + track) * compute_track_size(f); } diff --git a/src/lib/formats/sdd_dsk.h b/src/lib/formats/sdd_dsk.h index bcead8007d4..8ae481e2eaa 100644 --- a/src/lib/formats/sdd_dsk.h +++ b/src/lib/formats/sdd_dsk.h @@ -24,7 +24,7 @@ public: private: static const format formats[]; - virtual int get_image_offset(const format &f, int head, int track) override; + virtual int get_image_offset(const format &f, int head, int track) const override; }; extern const floppy_format_type FLOPPY_SDD_FORMAT; diff --git a/src/lib/formats/sdf_dsk.cpp b/src/lib/formats/sdf_dsk.cpp index f57540f3c35..76398095493 100644 --- a/src/lib/formats/sdf_dsk.cpp +++ b/src/lib/formats/sdf_dsk.cpp @@ -39,7 +39,7 @@ const char *sdf_format::extensions() const } -int sdf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int sdf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t header[HEADER_SIZE]; @@ -76,7 +76,7 @@ int sdf_format::identify(util::random_read &io, uint32_t form_factor, const std: } -bool sdf_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool sdf_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; uint8_t header[HEADER_SIZE]; @@ -184,12 +184,6 @@ bool sdf_format::load(util::random_read &io, uint32_t form_factor, const std::ve } -bool sdf_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) -{ - return false; -} - - bool sdf_format::supports_save() const { return false; diff --git a/src/lib/formats/sdf_dsk.h b/src/lib/formats/sdf_dsk.h index b86692f618a..21832b8d8e9 100644 --- a/src/lib/formats/sdf_dsk.h +++ b/src/lib/formats/sdf_dsk.h @@ -22,9 +22,8 @@ class sdf_format : public floppy_image_format_t public: sdf_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/st_dsk.cpp b/src/lib/formats/st_dsk.cpp index 3d81221ea72..d554403768d 100644 --- a/src/lib/formats/st_dsk.cpp +++ b/src/lib/formats/st_dsk.cpp @@ -52,7 +52,7 @@ void st_format::find_size(util::random_read &io, uint8_t &track_count, uint8_t & track_count = head_count = sector_count = 0; } -int st_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int st_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint8_t track_count, head_count, sector_count; find_size(io, track_count, head_count, sector_count); @@ -62,7 +62,7 @@ int st_format::identify(util::random_read &io, uint32_t form_factor, const std:: return 0; } -bool st_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool st_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint8_t track_count, head_count, sector_count; find_size(io, track_count, head_count, sector_count); @@ -90,7 +90,7 @@ bool st_format::load(util::random_read &io, uint32_t form_factor, const std::vec return true; } -bool st_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool st_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int track_count, head_count, sector_count; get_geometry_mfm_pc(image, 2000, track_count, head_count, sector_count); @@ -214,7 +214,7 @@ bool msa_format::compress(const uint8_t *buffer, int usize, uint8_t *dest, int & return dst < usize; } -int msa_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int msa_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint16_t sign, sect, head, strack, etrack; read_header(io, sign, sect, head, strack, etrack); @@ -228,7 +228,7 @@ int msa_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool msa_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool msa_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint16_t sign, sect, heads, strack, etrack; read_header(io, sign, sect, heads, strack, etrack); @@ -267,7 +267,7 @@ bool msa_format::load(util::random_read &io, uint32_t form_factor, const std::ve } -bool msa_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool msa_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int track_count, head_count, sector_count; get_geometry_mfm_pc(image, 2000, track_count, head_count, sector_count); diff --git a/src/lib/formats/st_dsk.h b/src/lib/formats/st_dsk.h index 34f303bb1ae..fe93c883a88 100644 --- a/src/lib/formats/st_dsk.h +++ b/src/lib/formats/st_dsk.h @@ -19,9 +19,9 @@ class st_format : public floppy_image_format_t public: st_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -29,7 +29,7 @@ public: virtual bool supports_save() const override; private: - void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t §or_count); + static void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t §or_count); }; class msa_format : public floppy_image_format_t @@ -37,9 +37,9 @@ class msa_format : public floppy_image_format_t public: msa_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; @@ -47,9 +47,9 @@ public: virtual bool supports_save() const override; private: - bool uncompress(uint8_t *buffer, int csize, int usize); - bool compress(const uint8_t *src, int usize, uint8_t *dest, int &csize); - void read_header(util::random_read &io, uint16_t &sign, uint16_t §, uint16_t &head, uint16_t &strack, uint16_t &etrack); + static bool uncompress(uint8_t *buffer, int csize, int usize); + static bool compress(const uint8_t *src, int usize, uint8_t *dest, int &csize); + static void read_header(util::random_read &io, uint16_t &sign, uint16_t §, uint16_t &head, uint16_t &strack, uint16_t &etrack); }; extern const floppy_format_type FLOPPY_ST_FORMAT; diff --git a/src/lib/formats/svi_dsk.cpp b/src/lib/formats/svi_dsk.cpp index 0a05bd15c80..6ba2bf4e43d 100644 --- a/src/lib/formats/svi_dsk.cpp +++ b/src/lib/formats/svi_dsk.cpp @@ -32,7 +32,7 @@ const char *svi_format::extensions() const return "dsk"; } -int svi_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int svi_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) @@ -44,7 +44,7 @@ int svi_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool svi_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool svi_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t size; if (io.length(size)) @@ -99,7 +99,7 @@ bool svi_format::load(util::random_read &io, uint32_t form_factor, const std::ve return true; } -bool svi_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool svi_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { if (io.seek(0, SEEK_SET)) return false; diff --git a/src/lib/formats/svi_dsk.h b/src/lib/formats/svi_dsk.h index a631bdf498c..64a965d1a98 100644 --- a/src/lib/formats/svi_dsk.h +++ b/src/lib/formats/svi_dsk.h @@ -23,9 +23,9 @@ public: virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override; }; diff --git a/src/lib/formats/swd_dsk.cpp b/src/lib/formats/swd_dsk.cpp index bf55a2527d6..6003144f519 100644 --- a/src/lib/formats/swd_dsk.cpp +++ b/src/lib/formats/swd_dsk.cpp @@ -29,7 +29,7 @@ const char *swd_format::extensions() const return "swd"; } -int swd_format::get_image_offset(const format &f, int head, int track) +int swd_format::get_image_offset(const format &f, int head, int track) const { return (f.track_count * head + track) * compute_track_size(f); } diff --git a/src/lib/formats/swd_dsk.h b/src/lib/formats/swd_dsk.h index b9167a119f8..50ec1b96e49 100644 --- a/src/lib/formats/swd_dsk.h +++ b/src/lib/formats/swd_dsk.h @@ -24,7 +24,7 @@ public: private: static const format formats[]; - virtual int get_image_offset(const format &f, int head, int track) override; + virtual int get_image_offset(const format &f, int head, int track) const override; }; extern const floppy_format_type FLOPPY_SWD_FORMAT; diff --git a/src/lib/formats/td0_dsk.cpp b/src/lib/formats/td0_dsk.cpp index ab8ea3d73c1..cd20ace7341 100644 --- a/src/lib/formats/td0_dsk.cpp +++ b/src/lib/formats/td0_dsk.cpp @@ -808,7 +808,7 @@ const char *td0_format::extensions() const return "td0"; } -int td0_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int td0_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { size_t actual; uint8_t h[7]; @@ -821,7 +821,7 @@ int td0_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool td0_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool td0_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; int track_count = 0; @@ -1023,11 +1023,6 @@ bool td0_format::load(util::random_read &io, uint32_t form_factor, const std::ve } -bool td0_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) -{ - return false; -} - bool td0_format::supports_save() const { return false; diff --git a/src/lib/formats/td0_dsk.h b/src/lib/formats/td0_dsk.h index cf625374130..c7e7060aa70 100644 --- a/src/lib/formats/td0_dsk.h +++ b/src/lib/formats/td0_dsk.h @@ -13,9 +13,8 @@ class td0_format : public floppy_image_format_t public: td0_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/ti99_dsk.cpp b/src/lib/formats/ti99_dsk.cpp index 61ef8cda1a3..d9f7cc95922 100644 --- a/src/lib/formats/ti99_dsk.cpp +++ b/src/lib/formats/ti99_dsk.cpp @@ -81,7 +81,7 @@ int ti99_floppy_format::get_encoding(int cell_size) /* Load the image from disk and convert it into a sequence of flux levels. */ -bool ti99_floppy_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool ti99_floppy_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t file_size; if (io.length(file_size)) @@ -215,7 +215,7 @@ bool ti99_floppy_format::load(util::random_read &io, uint32_t form_factor, const /* Save all tracks to the image file. */ -bool ti99_floppy_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool ti99_floppy_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { uint8_t sectordata[9216]; // max size (36*256) @@ -920,7 +920,7 @@ const char *ti99_sdf_format::extensions() const return "dsk"; } -int ti99_sdf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int ti99_sdf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t file_size; if (io.length(file_size)) @@ -972,7 +972,7 @@ int ti99_sdf_format::identify(util::random_read &io, uint32_t form_factor, const return vote; } -void ti99_sdf_format::determine_sizes(util::random_read &io, int& cell_size, int& sector_count, int& heads, int& tracks) +void ti99_sdf_format::determine_sizes(util::random_read &io, int& cell_size, int& sector_count, int& heads, int& tracks) const { uint64_t file_size; if (io.length(file_size)) @@ -1068,12 +1068,12 @@ void ti99_sdf_format::determine_sizes(util::random_read &io, int& cell_size, int } } -int ti99_sdf_format::get_track_size(int sector_count) +int ti99_sdf_format::get_track_size(int sector_count) const { return sector_count * SECTOR_SIZE; } -void ti99_sdf_format::load_track(util::random_read &io, uint8_t *sectordata, int *sector, int *secoffset, int head, int track, int sectorcount, int trackcount) +void ti99_sdf_format::load_track(util::random_read &io, uint8_t *sectordata, int *sector, int *secoffset, int head, int track, int sectorcount, int trackcount) const { // Calculate the track offset from the beginning of the image file int logicaltrack = (head==0)? track : (2*trackcount - track - 1); @@ -1118,7 +1118,7 @@ void ti99_sdf_format::load_track(util::random_read &io, uint8_t *sectordata, int /* For debugging. Outputs the byte array in a xxd-like way. */ -void ti99_floppy_format::dumpbytes(uint8_t* trackdata, int length) +void ti99_floppy_format::dumpbytes(const uint8_t* trackdata, int length) { for (int i=0; i < length; i+=16) { @@ -1126,7 +1126,7 @@ void ti99_floppy_format::dumpbytes(uint8_t* trackdata, int length) } } -std::string ti99_floppy_format::dumpline(uint8_t* line, int address) const +std::string ti99_floppy_format::dumpline(const uint8_t* line, int address) { std::ostringstream stream; stream << std::hex << std::setfill('0') << std::setw(6) << unsigned(address); @@ -1148,7 +1148,7 @@ std::string ti99_floppy_format::dumpline(uint8_t* line, int address) const Write the data to the disk. We have a list of sector positions, so we just need to go through that list and save each sector in the sector data. */ -void ti99_sdf_format::write_track(util::random_read_write &io, uint8_t *sectordata, int *sector, int track, int head, int sector_count, int track_count) +void ti99_sdf_format::write_track(util::random_read_write &io, uint8_t *sectordata, int *sector, int track, int head, int sector_count, int track_count) const { int logicaltrack = head * track_count; logicaltrack += ((head&1)==0)? track : (track_count - 1 - track); @@ -1223,7 +1223,7 @@ const char *ti99_tdf_format::extensions() const /* Determine whether the image file can be interpreted as a track dump */ -int ti99_tdf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int ti99_tdf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int vote = 0; uint8_t fulltrack[6872]; @@ -1294,7 +1294,7 @@ int ti99_tdf_format::identify(util::random_read &io, uint32_t form_factor, const Find the proper format for a given image file. Tracks are counted per side. Note that only two formats are actually compatible with the PC99 emulator. */ -void ti99_tdf_format::determine_sizes(util::random_read &io, int& cell_size, int& sector_count, int& heads, int& tracks) +void ti99_tdf_format::determine_sizes(util::random_read &io, int& cell_size, int& sector_count, int& heads, int& tracks) const { uint64_t file_size; if (io.length(file_size)) @@ -1356,7 +1356,7 @@ void ti99_tdf_format::determine_sizes(util::random_read &io, int& cell_size, int track from scratch. TDF is not as flexible as it suggests, it does not allow different gap lengths and so on. */ -void ti99_tdf_format::load_track(util::random_read &io, uint8_t *sectordata, int *sector, int *secoffset, int head, int track, int sectorcount, int trackcount) +void ti99_tdf_format::load_track(util::random_read &io, uint8_t *sectordata, int *sector, int *secoffset, int head, int track, int sectorcount, int trackcount) const { size_t actual; uint8_t fulltrack[12544]; // space for a full TDF track @@ -1452,7 +1452,7 @@ void ti99_tdf_format::load_track(util::random_read &io, uint8_t *sectordata, int need the sector contents and the sector sequence, which are passed via sectordata, sector, and sector_count. */ -void ti99_tdf_format::write_track(util::random_read_write &io, uint8_t *sectordata, int *sector, int track, int head, int sector_count, int track_count) +void ti99_tdf_format::write_track(util::random_read_write &io, uint8_t *sectordata, int *sector, int track, int head, int sector_count, int track_count) const { uint8_t trackdata[12544]; int offset = ((track_count * head) + track) * get_track_size(sector_count); @@ -1510,7 +1510,7 @@ void ti99_tdf_format::write_track(util::random_read_write &io, uint8_t *sectorda io.write_at(offset, trackdata, get_track_size(sector_count), actual); } -int ti99_tdf_format::get_track_size(int sector_count) +int ti99_tdf_format::get_track_size(int sector_count) const { switch (sector_count) { diff --git a/src/lib/formats/ti99_dsk.h b/src/lib/formats/ti99_dsk.h index 6590d1e7dd2..b76257eaed6 100644 --- a/src/lib/formats/ti99_dsk.h +++ b/src/lib/formats/ti99_dsk.h @@ -23,28 +23,28 @@ class ti99_floppy_format : public floppy_image_format_t { public: bool supports_save() const override { return true; } - bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; protected: - uint8_t get_data_from_encoding(uint16_t raw); - int get_sectors(const std::vector<bool> &bitstream, int encoding, int track, int head, int sectors, uint8_t *sectordata, int *secnumber); + static uint8_t get_data_from_encoding(uint16_t raw); + static int get_sectors(const std::vector<bool> &bitstream, int encoding, int track, int head, int sectors, uint8_t *sectordata, int *secnumber); - virtual int min_heads() =0; + virtual int min_heads() const =0; - virtual void determine_sizes(util::random_read &io, int& cell_size, int& sector_count, int& heads, int& tracks) =0; - virtual int get_track_size(int sector_count) =0; - virtual void load_track(util::random_read &io, uint8_t *sectordata, int *sector, int *secoffset, int head, int track, int sectorcount, int trackcount) =0; - virtual void write_track(util::random_read_write &io, uint8_t *sectordata, int *sector, int track, int head, int sector_count, int track_count) =0; + virtual void determine_sizes(util::random_read &io, int& cell_size, int& sector_count, int& heads, int& tracks) const =0; + virtual int get_track_size(int sector_count) const=0; + virtual void load_track(util::random_read &io, uint8_t *sectordata, int *sector, int *secoffset, int head, int track, int sectorcount, int trackcount) const=0; + virtual void write_track(util::random_read_write &io, uint8_t *sectordata, int *sector, int track, int head, int sector_count, int track_count) const=0; - int get_encoding(int cell_size); + static int get_encoding(int cell_size); - void generate_fm_track_from_sectors(floppy_image *image, uint8_t *sectordata, int sector_count, int *sector, int *secoffset, int track, int trackid, int head); - void generate_mfm_track_from_sectors(floppy_image *image, uint8_t *sectordata, int sector_count, int *sector, int *secoffset, int track, int trackid, int head); + static void generate_fm_track_from_sectors(floppy_image *image, uint8_t *sectordata, int sector_count, int *sector, int *secoffset, int track, int trackid, int head); + static void generate_mfm_track_from_sectors(floppy_image *image, uint8_t *sectordata, int sector_count, int *sector, int *secoffset, int track, int trackid, int head); // Debugging - void dumpbytes(uint8_t* trackdata, int length); - std::string dumpline(uint8_t* line, int address) const; + static void dumpbytes(const uint8_t* trackdata, int length); + static std::string dumpline(const uint8_t* line, int address); }; /* @@ -53,19 +53,19 @@ protected: class ti99_sdf_format : public ti99_floppy_format { public: - int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; + int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; const char *name() const override; const char *description() const override; const char *extensions() const override; private: - void determine_sizes(util::random_read &io, int& cell_size, int& sector_count, int& heads, int& tracks) override; - int get_track_size(int sector_count) override; - void write_track(util::random_read_write &io, uint8_t *sectordata, int *sector, int track, int head, int sector_count, int track_count) override; - void load_track(util::random_read &io, uint8_t *sectordata, int *sector, int *secoffset, int head, int track, int sector_count, int track_count) override; + void determine_sizes(util::random_read &io, int& cell_size, int& sector_count, int& heads, int& tracks) const override; + int get_track_size(int sector_count) const override; + void write_track(util::random_read_write &io, uint8_t *sectordata, int *sector, int track, int head, int sector_count, int track_count) const override; + void load_track(util::random_read &io, uint8_t *sectordata, int *sector, int *secoffset, int head, int track, int sector_count, int track_count) const override; // This format supports single-sided images - int min_heads() override { return 1; } + int min_heads() const override { return 1; } struct ti99vib { @@ -92,19 +92,19 @@ extern const floppy_format_type FLOPPY_TI99_SDF_FORMAT; class ti99_tdf_format : public ti99_floppy_format { public: - int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; + int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; const char *name() const override; const char *description() const override; const char *extensions() const override; private: - void determine_sizes(util::random_read &io, int& cell_size, int& sector_count, int& heads, int& tracks) override; - void load_track(util::random_read &io, uint8_t *sectordata, int *sector, int *secoffset, int head, int track, int sectorcount, int trackcount) override; - void write_track(util::random_read_write &io, uint8_t *sectordata, int *sector, int track, int head, int sector_count, int track_count) override; - int get_track_size(int sector_count) override; + void determine_sizes(util::random_read &io, int& cell_size, int& sector_count, int& heads, int& tracks) const override; + void load_track(util::random_read &io, uint8_t *sectordata, int *sector, int *secoffset, int head, int track, int sectorcount, int trackcount) const override; + void write_track(util::random_read_write &io, uint8_t *sectordata, int *sector, int track, int head, int sector_count, int track_count) const override; + int get_track_size(int sector_count) const override; // This format only supports double-sided images - int min_heads() override { return 2; } + int min_heads() const override { return 2; } }; extern const floppy_format_type FLOPPY_TI99_TDF_FORMAT; diff --git a/src/lib/formats/trd_dsk.cpp b/src/lib/formats/trd_dsk.cpp index 4236259cca5..8c6d6a7ed46 100644 --- a/src/lib/formats/trd_dsk.cpp +++ b/src/lib/formats/trd_dsk.cpp @@ -32,7 +32,7 @@ const char *trd_format::extensions() const return "trd"; } -int trd_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int trd_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) diff --git a/src/lib/formats/trd_dsk.h b/src/lib/formats/trd_dsk.h index c5a411c60bb..1ae13c68237 100644 --- a/src/lib/formats/trd_dsk.h +++ b/src/lib/formats/trd_dsk.h @@ -24,7 +24,7 @@ public: private: static const format formats[]; - virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; + virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; }; extern const floppy_format_type FLOPPY_TRD_FORMAT; diff --git a/src/lib/formats/trs80_dsk.cpp b/src/lib/formats/trs80_dsk.cpp index 60422a92081..34186c228f9 100644 --- a/src/lib/formats/trs80_dsk.cpp +++ b/src/lib/formats/trs80_dsk.cpp @@ -90,7 +90,7 @@ const char *jv1_format::extensions() const return "jv1,dsk"; } -int jv1_format::get_track_dam_fm(const format &f, int head, int track) +int jv1_format::get_track_dam_fm(const format &f, int head, int track) const { return (track == 17 && head == 0) ? FM_DDAM : FM_DAM; } @@ -137,7 +137,7 @@ const char *jv3_format::extensions() const return "jv3,dsk"; } -int jv3_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int jv3_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t image_size; if (io.length(image_size)) @@ -229,7 +229,7 @@ int jv3_format::identify(util::random_read &io, uint32_t form_factor, const std: return 80; } -bool jv3_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool jv3_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { // disk has already been validated in every way except if it exceeds drive tracks, we do that below osd_printf_info("Disk detected as JV3\n"); @@ -356,7 +356,7 @@ bool jv3_format::load(util::random_read &io, uint32_t form_factor, const std::ve return true; } -bool jv3_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool jv3_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int track_count, head_count; image->get_actual_geometry(track_count, head_count); diff --git a/src/lib/formats/trs80_dsk.h b/src/lib/formats/trs80_dsk.h index 31955fe4a5e..dd552c298f9 100644 --- a/src/lib/formats/trs80_dsk.h +++ b/src/lib/formats/trs80_dsk.h @@ -24,7 +24,7 @@ public: virtual const char *extensions() const override; protected: - virtual int get_track_dam_fm(const format &f, int head, int track) override; + virtual int get_track_dam_fm(const format &f, int head, int track) const override; private: static const format formats[]; @@ -35,9 +35,9 @@ class jv3_format : public floppy_image_format_t public: jv3_format(); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual const char *name() const override; virtual const char *description() const override; diff --git a/src/lib/formats/uniflex_dsk.cpp b/src/lib/formats/uniflex_dsk.cpp index f85da09b75e..628321f3748 100644 --- a/src/lib/formats/uniflex_dsk.cpp +++ b/src/lib/formats/uniflex_dsk.cpp @@ -34,7 +34,7 @@ const char *uniflex_format::extensions() const return "dsk"; } -int uniflex_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int uniflex_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int const type = find_size(io, form_factor, variants); @@ -44,7 +44,7 @@ int uniflex_format::identify(util::random_read &io, uint32_t form_factor, const return 0; } -int uniflex_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int uniflex_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if (io.length(size)) diff --git a/src/lib/formats/uniflex_dsk.h b/src/lib/formats/uniflex_dsk.h index af39a09678e..03908b305d2 100644 --- a/src/lib/formats/uniflex_dsk.h +++ b/src/lib/formats/uniflex_dsk.h @@ -19,8 +19,8 @@ public: virtual const char *name() const override; virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; void build_sector_description(const format &f, uint8_t *sectdata, desc_s *sectors, int track, int head) const override; private: diff --git a/src/lib/formats/upd765_dsk.cpp b/src/lib/formats/upd765_dsk.cpp index 630bd3da172..1a90bcdacec 100644 --- a/src/lib/formats/upd765_dsk.cpp +++ b/src/lib/formats/upd765_dsk.cpp @@ -17,7 +17,7 @@ #include <cstring> -upd765_format::upd765_format(const format *_formats) : file_header_skip_bytes(0), file_footer_skip_bytes(0), formats(_formats) +upd765_format::upd765_format(const format *_formats) : formats(_formats) { } @@ -34,13 +34,13 @@ int upd765_format::find_size(util::random_read &io, uint32_t form_factor, const if(!variants.empty() && !has_variant(variants, f.variant)) continue; - if(size == file_header_skip_bytes + (uint64_t) compute_track_size(f) * f.track_count * f.head_count + file_footer_skip_bytes) + if(size == compute_track_size(f) * f.track_count * f.head_count) return i; } return -1; } -int upd765_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int upd765_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int type = find_size(io, form_factor, variants); @@ -85,7 +85,7 @@ void upd765_format::build_sector_description(const format &f, uint8_t *sectdata, } } -floppy_image_format_t::desc_e* upd765_format::get_desc_fm(const format &f, int ¤t_size, int &end_gap_index) +floppy_image_format_t::desc_e* upd765_format::get_desc_fm(const format &f, int ¤t_size, int &end_gap_index) const { static floppy_image_format_t::desc_e desc[26] = { /* 00 */ { FM, 0xff, f.gap_4a }, @@ -130,7 +130,7 @@ floppy_image_format_t::desc_e* upd765_format::get_desc_fm(const format &f, int & return desc; } -floppy_image_format_t::desc_e* upd765_format::get_desc_mfm(const format &f, int ¤t_size, int &end_gap_index) +floppy_image_format_t::desc_e* upd765_format::get_desc_mfm(const format &f, int ¤t_size, int &end_gap_index) const { static floppy_image_format_t::desc_e desc[29] = { /* 00 */ { MFM, 0x4e, 0 }, @@ -184,7 +184,7 @@ floppy_image_format_t::desc_e* upd765_format::get_desc_mfm(const format &f, int return desc; } -bool upd765_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool upd765_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { int type = find_size(io, form_factor, variants); if(type == -1) @@ -232,7 +232,7 @@ bool upd765_format::load(util::random_read &io, uint32_t form_factor, const std: for(int head=0; head < f.head_count; head++) { build_sector_description(f, sectdata, sectors, track, head); size_t actual; - io.read_at(file_header_skip_bytes + (track*f.head_count + head)*track_size, sectdata, track_size, actual); + io.read_at((track*f.head_count + head)*track_size, sectdata, track_size, actual); generate_track(desc, track, head, sectors, f.sector_count, total_size, image); } @@ -246,7 +246,7 @@ bool upd765_format::supports_save() const return true; } -bool upd765_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool upd765_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { // Count the number of formats int formats_count; @@ -363,7 +363,7 @@ bool upd765_format::save(util::random_read_write &io, const std::vector<uint32_t return true; } -void upd765_format::check_compatibility(floppy_image *image, std::vector<int> &candidates) +void upd765_format::check_compatibility(floppy_image *image, std::vector<int> &candidates) const { // Extract the sectors auto bitstream = generate_bitstream_from_track(0, 0, formats[candidates[0]].cell_size, image); @@ -413,7 +413,7 @@ void upd765_format::check_compatibility(floppy_image *image, std::vector<int> &c } -void upd765_format::extract_sectors(floppy_image *image, const format &f, desc_s *sdesc, int track, int head) +void upd765_format::extract_sectors(floppy_image *image, const format &f, desc_s *sdesc, int track, int head) const { // Extract the sectors auto bitstream = generate_bitstream_from_track(track, head, f.cell_size, image); diff --git a/src/lib/formats/upd765_dsk.h b/src/lib/formats/upd765_dsk.h index 48acfc02a88..14c0aec5744 100644 --- a/src/lib/formats/upd765_dsk.h +++ b/src/lib/formats/upd765_dsk.h @@ -39,22 +39,19 @@ public: // End the array with {} upd765_format(const format *formats); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override; protected: - uint64_t file_header_skip_bytes; - uint64_t file_footer_skip_bytes; - - floppy_image_format_t::desc_e* get_desc_fm(const format &f, int ¤t_size, int &end_gap_index); - floppy_image_format_t::desc_e* get_desc_mfm(const format &f, int ¤t_size, int &end_gap_index); + floppy_image_format_t::desc_e* get_desc_fm(const format &f, int ¤t_size, int &end_gap_index) const; + floppy_image_format_t::desc_e* get_desc_mfm(const format &f, int ¤t_size, int &end_gap_index) const; int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const; int compute_track_size(const format &f) const; virtual void build_sector_description(const format &d, uint8_t *sectdata, desc_s *sectors, int track, int head) const; - void check_compatibility(floppy_image *image, std::vector<int> &candidates); - void extract_sectors(floppy_image *image, const format &f, desc_s *sdesc, int track, int head); + void check_compatibility(floppy_image *image, std::vector<int> &candidates) const; + void extract_sectors(floppy_image *image, const format &f, desc_s *sdesc, int track, int head) const; private: format const *const formats; diff --git a/src/lib/formats/vdk_dsk.cpp b/src/lib/formats/vdk_dsk.cpp index 759697f852f..abedd369861 100644 --- a/src/lib/formats/vdk_dsk.cpp +++ b/src/lib/formats/vdk_dsk.cpp @@ -34,7 +34,7 @@ const char *vdk_format::extensions() const return "vdk"; } -int vdk_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int vdk_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { size_t actual; uint8_t id[2]; @@ -46,7 +46,7 @@ int vdk_format::identify(util::random_read &io, uint32_t form_factor, const std: return 0; } -bool vdk_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool vdk_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; if (io.seek(0, SEEK_SET)) @@ -93,7 +93,7 @@ bool vdk_format::load(util::random_read &io, uint32_t form_factor, const std::ve return true; } -bool vdk_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool vdk_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { size_t actual; if (io.seek(0, SEEK_SET)) diff --git a/src/lib/formats/vdk_dsk.h b/src/lib/formats/vdk_dsk.h index 797d2644972..53e9b5a4ce5 100644 --- a/src/lib/formats/vdk_dsk.h +++ b/src/lib/formats/vdk_dsk.h @@ -25,9 +25,9 @@ public: virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override; private: diff --git a/src/lib/formats/victor9k_dsk.cpp b/src/lib/formats/victor9k_dsk.cpp index c4402db5402..52e82f5b38c 100644 --- a/src/lib/formats/victor9k_dsk.cpp +++ b/src/lib/formats/victor9k_dsk.cpp @@ -141,7 +141,7 @@ int victor9k_format::find_size(util::random_read &io, uint32_t form_factor) return -1; } -int victor9k_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int victor9k_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int type = find_size(io, form_factor); @@ -248,7 +248,7 @@ floppy_image_format_t::desc_e* victor9k_format::get_sector_desc(const format &f, return desc; } -void victor9k_format::build_sector_description(const format &f, uint8_t *sectdata, uint32_t sect_offs, desc_s *sectors, int sector_count) const +void victor9k_format::build_sector_description(const format &f, uint8_t *sectdata, uint32_t sect_offs, desc_s *sectors, int sector_count) { for (int i = 0; i < sector_count; i++) { sectors[i].data = sectdata + sect_offs; @@ -259,7 +259,7 @@ void victor9k_format::build_sector_description(const format &f, uint8_t *sectdat } } -bool victor9k_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool victor9k_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { int const type = find_size(io, form_factor); if(type == -1) @@ -408,7 +408,7 @@ const int victor9k_format::rpm[9] = 252, 267, 283, 300, 321, 342, 368, 401, 417 }; -bool victor9k_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool victor9k_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { const format &f = formats[0]; diff --git a/src/lib/formats/victor9k_dsk.h b/src/lib/formats/victor9k_dsk.h index 90391d60a15..f9a40cfffd4 100644 --- a/src/lib/formats/victor9k_dsk.h +++ b/src/lib/formats/victor9k_dsk.h @@ -34,9 +34,9 @@ public: virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override { return true; } static int get_rpm(int head, int track); @@ -49,13 +49,13 @@ protected: static const int speed_zone[2][80]; static const int rpm[9]; - int find_size(util::random_read &io, uint32_t form_factor); - void log_boot_sector(uint8_t *data); - floppy_image_format_t::desc_e* get_sector_desc(const format &f, int ¤t_size, int sector_count); - void build_sector_description(const format &f, uint8_t *sectdata, uint32_t sect_offs, desc_s *sectors, int sector_count) const; - int get_image_offset(const format &f, int head, int track); - int compute_track_size(const format &f, int head, int track); - void extract_sectors(floppy_image *image, const format &f, desc_s *sdesc, int track, int head, int sector_count); + static int find_size(util::random_read &io, uint32_t form_factor); + static void log_boot_sector(uint8_t *data); + static floppy_image_format_t::desc_e* get_sector_desc(const format &f, int ¤t_size, int sector_count); + static void build_sector_description(const format &f, uint8_t *sectdata, uint32_t sect_offs, desc_s *sectors, int sector_count); + static int get_image_offset(const format &f, int head, int track); + static int compute_track_size(const format &f, int head, int track); + static void extract_sectors(floppy_image *image, const format &f, desc_s *sdesc, int track, int head, int sector_count); }; extern const floppy_format_type FLOPPY_VICTOR_9000_FORMAT; diff --git a/src/lib/formats/vt_dsk.cpp b/src/lib/formats/vt_dsk.cpp index 6758b5a27b2..d92d586f275 100644 --- a/src/lib/formats/vt_dsk.cpp +++ b/src/lib/formats/vt_dsk.cpp @@ -216,7 +216,7 @@ const char *vtech_dsk_format::extensions() const return "dsk"; } -int vtech_bin_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int vtech_bin_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if(io.length(size)) @@ -228,7 +228,7 @@ int vtech_bin_format::identify(util::random_read &io, uint32_t form_factor, cons return 0; } -int vtech_dsk_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int vtech_dsk_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if(io.length(size)) @@ -255,7 +255,7 @@ int vtech_dsk_format::identify(util::random_read &io, uint32_t form_factor, cons return count_sh >= 30*16 && count_sd >= 30*16 ? 100 : 0; } -bool vtech_bin_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool vtech_bin_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t size; if(io.length(size) || (size != 40*16*256)) @@ -270,7 +270,7 @@ bool vtech_bin_format::load(util::random_read &io, uint32_t form_factor, const s return true; } -bool vtech_dsk_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool vtech_dsk_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { uint64_t size; if(io.length(size)) @@ -340,7 +340,7 @@ bool vtech_dsk_format::load(util::random_read &io, uint32_t form_factor, const s return true; } -bool vtech_bin_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool vtech_bin_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int tracks, heads; image->get_maximal_geometry(tracks, heads); @@ -353,7 +353,7 @@ bool vtech_bin_format::save(util::random_read_write &io, const std::vector<uint3 return true; } -bool vtech_dsk_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool vtech_dsk_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { int tracks, heads; image->get_maximal_geometry(tracks, heads); diff --git a/src/lib/formats/vt_dsk.h b/src/lib/formats/vt_dsk.h index 4bc46871e7e..b38eb1d813b 100644 --- a/src/lib/formats/vt_dsk.h +++ b/src/lib/formats/vt_dsk.h @@ -34,9 +34,9 @@ public: virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; }; class vtech_dsk_format : public vtech_common_format { @@ -47,9 +47,9 @@ public: virtual const char *description() const override; virtual const char *extensions() const override; - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; }; extern const floppy_format_type FLOPPY_VTECH_BIN_FORMAT; diff --git a/src/lib/formats/wd177x_dsk.cpp b/src/lib/formats/wd177x_dsk.cpp index eab69bb5a15..e62053c50e3 100644 --- a/src/lib/formats/wd177x_dsk.cpp +++ b/src/lib/formats/wd177x_dsk.cpp @@ -27,7 +27,7 @@ wd177x_format::wd177x_format(const format *_formats) // encoded disk, or a track with an different sector IDs etc. Only the track // encoding is used from the returned format, the number of track_count is not // accessed. -const wd177x_format::format &wd177x_format::get_track_format(const format &f, int head, int track) +const wd177x_format::format &wd177x_format::get_track_format(const format &f, int head, int track) const { return f; } @@ -35,7 +35,7 @@ const wd177x_format::format &wd177x_format::get_track_format(const format &f, in /* Default implementation for find_size. May be overwritten by subclasses. */ -int wd177x_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int wd177x_format::find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { uint64_t size; if(io.length(size)) @@ -62,7 +62,7 @@ int wd177x_format::find_size(util::random_read &io, uint32_t form_factor, const return -1; } -int wd177x_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) +int wd177x_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const { int const type = find_size(io, form_factor, variants); @@ -73,7 +73,7 @@ int wd177x_format::identify(util::random_read &io, uint32_t form_factor, const s } // A track specific format is to be supplied. -int wd177x_format::compute_track_size(const format &f) const +int wd177x_format::compute_track_size(const format &f) { int track_size; if(f.sector_base_size) @@ -111,7 +111,7 @@ void wd177x_format::build_sector_description(const format &f, uint8_t *sectdata, } // A track specific format is to be supplied. -floppy_image_format_t::desc_e* wd177x_format::get_desc_fm(const format &f, int ¤t_size, int &end_gap_index) +floppy_image_format_t::desc_e* wd177x_format::get_desc_fm(const format &f, int ¤t_size, int &end_gap_index) const { static floppy_image_format_t::desc_e desc[23] = { /* 00 */ { FM, 0xff, 0 }, @@ -159,7 +159,7 @@ floppy_image_format_t::desc_e* wd177x_format::get_desc_fm(const format &f, int & } // A track specific format is to be supplied. -floppy_image_format_t::desc_e* wd177x_format::get_desc_mfm(const format &f, int ¤t_size, int &end_gap_index) +floppy_image_format_t::desc_e* wd177x_format::get_desc_mfm(const format &f, int ¤t_size, int &end_gap_index) const { static floppy_image_format_t::desc_e desc[25] = { /* 00 */ { MFM, 0x4e, 0 }, @@ -208,7 +208,7 @@ floppy_image_format_t::desc_e* wd177x_format::get_desc_mfm(const format &f, int return desc; } -bool wd177x_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) +bool wd177x_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const { int const type = find_size(io, form_factor, variants); if(type == -1) @@ -277,7 +277,7 @@ bool wd177x_format::supports_save() const return true; } -bool wd177x_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) +bool wd177x_format::save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const { // Count the number of formats int formats_count; @@ -401,7 +401,7 @@ bool wd177x_format::save(util::random_read_write &io, const std::vector<uint32_t Default implementation of the image offset computation. May be overwritten by subclasses. */ -int wd177x_format::get_image_offset(const format &f, int head, int track) +int wd177x_format::get_image_offset(const format &f, int head, int track) const { int offset = 0; @@ -422,20 +422,20 @@ int wd177x_format::get_image_offset(const format &f, int head, int track) } // A track specific format is to be supplied. -int wd177x_format::get_track_dam_fm(const format &f, int head, int track) +int wd177x_format::get_track_dam_fm(const format &f, int head, int track) const { // everything marked as data by default return FM_DAM; } // A track specific format is to be supplied. -int wd177x_format::get_track_dam_mfm(const format &f, int head, int track) +int wd177x_format::get_track_dam_mfm(const format &f, int head, int track) const { // everything marked as data by default return MFM_DAM; } -void wd177x_format::check_compatibility(floppy_image *image, std::vector<int> &candidates) +void wd177x_format::check_compatibility(floppy_image *image, std::vector<int> &candidates) const { // Check compatibility with every candidate, copy in-place int *ok_cands = &candidates[0]; diff --git a/src/lib/formats/wd177x_dsk.h b/src/lib/formats/wd177x_dsk.h index a7bd92994e6..ea6f6972b6f 100644 --- a/src/lib/formats/wd177x_dsk.h +++ b/src/lib/formats/wd177x_dsk.h @@ -38,9 +38,9 @@ public: // End the array with {} wd177x_format(const format *formats); - virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) override; - virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) override; - virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) override; + virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override; + virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image) const override; + virtual bool save(util::random_read_write &io, const std::vector<uint32_t> &variants, floppy_image *image) const override; virtual bool supports_save() const override; protected: @@ -48,18 +48,18 @@ protected: const format *formats; - virtual const wd177x_format::format &get_track_format(const format &f, int head, int track); - virtual floppy_image_format_t::desc_e* get_desc_fm(const format &f, int ¤t_size, int &end_gap_index); - virtual floppy_image_format_t::desc_e* get_desc_mfm(const format &f, int ¤t_size, int &end_gap_index); - virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants); - virtual int get_image_offset(const format &f, int head, int track); - virtual int get_track_dam_fm(const format &f, int head, int track); - virtual int get_track_dam_mfm(const format &f, int head, int track); + virtual const wd177x_format::format &get_track_format(const format &f, int head, int track) const; + virtual floppy_image_format_t::desc_e* get_desc_fm(const format &f, int ¤t_size, int &end_gap_index) const; + virtual floppy_image_format_t::desc_e* get_desc_mfm(const format &f, int ¤t_size, int &end_gap_index) const; + virtual int find_size(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const; + virtual int get_image_offset(const format &f, int head, int track) const; + virtual int get_track_dam_fm(const format &f, int head, int track) const; + virtual int get_track_dam_mfm(const format &f, int head, int track) const; - int compute_track_size(const format &f) const; + static int compute_track_size(const format &f); virtual void build_sector_description(const format &d, uint8_t *sectdata, desc_s *sectors, int track, int head) const; - virtual void check_compatibility(floppy_image *image, std::vector<int> &candidates); - void extract_sectors(floppy_image *image, const format &f, desc_s *sdesc, int track, int head); + virtual void check_compatibility(floppy_image *image, std::vector<int> &candidates) const; + static void extract_sectors(floppy_image *image, const format &f, desc_s *sdesc, int track, int head); }; #endif // MAME_FORMATS_WD177X_DSK_H |