summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2022-03-25 15:02:54 +0100
committer Olivier Galibert <galibert@pobox.com>2022-03-30 15:45:35 +0200
commit33bdc1469b3bc84ab1b811329f05c75f4801a7de (patch)
tree354dd6678a442adc26be3572fac9b27e1d21d1d4 /src
parent023486a37ff70f9be765495c07ff3fe0b9c47bc1 (diff)
Constify the floppy image handling interface
Diffstat (limited to 'src')
-rw-r--r--src/lib/formats/abc1600_dsk.cpp2
-rw-r--r--src/lib/formats/abc1600_dsk.h2
-rw-r--r--src/lib/formats/acorn_dsk.cpp42
-rw-r--r--src/lib/formats/acorn_dsk.h42
-rw-r--r--src/lib/formats/afs_dsk.cpp4
-rw-r--r--src/lib/formats/afs_dsk.h4
-rw-r--r--src/lib/formats/aim_dsk.cpp4
-rw-r--r--src/lib/formats/aim_dsk.h4
-rw-r--r--src/lib/formats/ami_dsk.cpp6
-rw-r--r--src/lib/formats/ami_dsk.h6
-rw-r--r--src/lib/formats/ap2_dsk.cpp34
-rw-r--r--src/lib/formats/ap2_dsk.h34
-rw-r--r--src/lib/formats/ap_dsk35.cpp18
-rw-r--r--src/lib/formats/ap_dsk35.h20
-rw-r--r--src/lib/formats/apd_dsk.cpp4
-rw-r--r--src/lib/formats/apd_dsk.h4
-rw-r--r--src/lib/formats/apollo_dsk.cpp11
-rw-r--r--src/lib/formats/apollo_dsk.h1
-rw-r--r--src/lib/formats/apridisk.cpp9
-rw-r--r--src/lib/formats/apridisk.h5
-rw-r--r--src/lib/formats/c3040_dsk.cpp4
-rw-r--r--src/lib/formats/c3040_dsk.h8
-rw-r--r--src/lib/formats/c4040_dsk.cpp4
-rw-r--r--src/lib/formats/c4040_dsk.h6
-rw-r--r--src/lib/formats/ccvf_dsk.cpp4
-rw-r--r--src/lib/formats/ccvf_dsk.h6
-rw-r--r--src/lib/formats/cgenie_dsk.cpp4
-rw-r--r--src/lib/formats/cgenie_dsk.h4
-rw-r--r--src/lib/formats/concept_dsk.cpp6
-rw-r--r--src/lib/formats/concept_dsk.h8
-rw-r--r--src/lib/formats/coupedsk.cpp6
-rw-r--r--src/lib/formats/coupedsk.h6
-rw-r--r--src/lib/formats/cqm_dsk.cpp6
-rw-r--r--src/lib/formats/cqm_dsk.h6
-rw-r--r--src/lib/formats/d64_dsk.cpp28
-rw-r--r--src/lib/formats/d64_dsk.h28
-rw-r--r--src/lib/formats/d80_dsk.cpp12
-rw-r--r--src/lib/formats/d80_dsk.h12
-rw-r--r--src/lib/formats/d81_dsk.cpp2
-rw-r--r--src/lib/formats/d81_dsk.h2
-rw-r--r--src/lib/formats/d88_dsk.cpp10
-rw-r--r--src/lib/formats/d88_dsk.h5
-rw-r--r--src/lib/formats/dcp_dsk.cpp4
-rw-r--r--src/lib/formats/dcp_dsk.h4
-rw-r--r--src/lib/formats/dfi_dsk.cpp4
-rw-r--r--src/lib/formats/dfi_dsk.h5
-rw-r--r--src/lib/formats/dim_dsk.cpp9
-rw-r--r--src/lib/formats/dim_dsk.h5
-rw-r--r--src/lib/formats/dip_dsk.cpp4
-rw-r--r--src/lib/formats/dip_dsk.h4
-rw-r--r--src/lib/formats/dmk_dsk.cpp11
-rw-r--r--src/lib/formats/dmk_dsk.h5
-rw-r--r--src/lib/formats/ds9_dsk.cpp4
-rw-r--r--src/lib/formats/ds9_dsk.h6
-rw-r--r--src/lib/formats/dsk_dsk.cpp4
-rw-r--r--src/lib/formats/dsk_dsk.h4
-rw-r--r--src/lib/formats/dvk_mx_dsk.cpp4
-rw-r--r--src/lib/formats/dvk_mx_dsk.h6
-rw-r--r--src/lib/formats/esq16_dsk.cpp6
-rw-r--r--src/lib/formats/esq16_dsk.h8
-rw-r--r--src/lib/formats/esq8_dsk.cpp6
-rw-r--r--src/lib/formats/esq8_dsk.h8
-rw-r--r--src/lib/formats/fdd_dsk.cpp4
-rw-r--r--src/lib/formats/fdd_dsk.h4
-rw-r--r--src/lib/formats/fl1_dsk.cpp2
-rw-r--r--src/lib/formats/fl1_dsk.h2
-rw-r--r--src/lib/formats/flex_dsk.cpp7
-rw-r--r--src/lib/formats/flex_dsk.h8
-rw-r--r--src/lib/formats/flopimg.cpp2
-rw-r--r--src/lib/formats/flopimg.h6
-rw-r--r--src/lib/formats/fsd_dsk.cpp4
-rw-r--r--src/lib/formats/fsd_dsk.h4
-rw-r--r--src/lib/formats/g64_dsk.cpp6
-rw-r--r--src/lib/formats/g64_dsk.h8
-rw-r--r--src/lib/formats/hpi_dsk.cpp6
-rw-r--r--src/lib/formats/hpi_dsk.h22
-rw-r--r--src/lib/formats/hxchfe_dsk.cpp4
-rw-r--r--src/lib/formats/hxchfe_dsk.h10
-rw-r--r--src/lib/formats/hxcmfm_dsk.cpp6
-rw-r--r--src/lib/formats/hxcmfm_dsk.h6
-rw-r--r--src/lib/formats/ibmxdf_dsk.cpp10
-rw-r--r--src/lib/formats/ibmxdf_dsk.h10
-rw-r--r--src/lib/formats/imd_dsk.cpp4
-rw-r--r--src/lib/formats/imd_dsk.h4
-rw-r--r--src/lib/formats/img_dsk.cpp6
-rw-r--r--src/lib/formats/img_dsk.h24
-rw-r--r--src/lib/formats/ipf_dsk.cpp4
-rw-r--r--src/lib/formats/ipf_dsk.h4
-rw-r--r--src/lib/formats/jfd_dsk.cpp4
-rw-r--r--src/lib/formats/jfd_dsk.h4
-rw-r--r--src/lib/formats/jvc_dsk.cpp6
-rw-r--r--src/lib/formats/jvc_dsk.h8
-rw-r--r--src/lib/formats/m20_dsk.cpp6
-rw-r--r--src/lib/formats/m20_dsk.h6
-rw-r--r--src/lib/formats/mdos_dsk.cpp11
-rw-r--r--src/lib/formats/mdos_dsk.h12
-rw-r--r--src/lib/formats/mfi_dsk.cpp7
-rw-r--r--src/lib/formats/mfi_dsk.h6
-rw-r--r--src/lib/formats/nfd_dsk.cpp4
-rw-r--r--src/lib/formats/nfd_dsk.h4
-rw-r--r--src/lib/formats/opd_dsk.cpp4
-rw-r--r--src/lib/formats/opd_dsk.h4
-rw-r--r--src/lib/formats/oric_dsk.cpp16
-rw-r--r--src/lib/formats/oric_dsk.h11
-rw-r--r--src/lib/formats/os9_dsk.cpp6
-rw-r--r--src/lib/formats/os9_dsk.h6
-rw-r--r--src/lib/formats/pasti_dsk.cpp4
-rw-r--r--src/lib/formats/pasti_dsk.h30
-rw-r--r--src/lib/formats/pc98fdi_dsk.cpp4
-rw-r--r--src/lib/formats/pc98fdi_dsk.h4
-rw-r--r--src/lib/formats/pc_dsk.cpp25
-rw-r--r--src/lib/formats/pc_dsk.h2
-rw-r--r--src/lib/formats/poly_dsk.cpp4
-rw-r--r--src/lib/formats/poly_dsk.h4
-rw-r--r--src/lib/formats/rx50_dsk.cpp6
-rw-r--r--src/lib/formats/rx50_dsk.h8
-rw-r--r--src/lib/formats/sdd_dsk.cpp2
-rw-r--r--src/lib/formats/sdd_dsk.h2
-rw-r--r--src/lib/formats/sdf_dsk.cpp10
-rw-r--r--src/lib/formats/sdf_dsk.h5
-rw-r--r--src/lib/formats/st_dsk.cpp12
-rw-r--r--src/lib/formats/st_dsk.h20
-rw-r--r--src/lib/formats/svi_dsk.cpp6
-rw-r--r--src/lib/formats/svi_dsk.h6
-rw-r--r--src/lib/formats/swd_dsk.cpp2
-rw-r--r--src/lib/formats/swd_dsk.h2
-rw-r--r--src/lib/formats/td0_dsk.cpp9
-rw-r--r--src/lib/formats/td0_dsk.h5
-rw-r--r--src/lib/formats/ti99_dsk.cpp28
-rw-r--r--src/lib/formats/ti99_dsk.h52
-rw-r--r--src/lib/formats/trd_dsk.cpp2
-rw-r--r--src/lib/formats/trd_dsk.h2
-rw-r--r--src/lib/formats/trs80_dsk.cpp8
-rw-r--r--src/lib/formats/trs80_dsk.h8
-rw-r--r--src/lib/formats/uniflex_dsk.cpp4
-rw-r--r--src/lib/formats/uniflex_dsk.h4
-rw-r--r--src/lib/formats/upd765_dsk.cpp20
-rw-r--r--src/lib/formats/upd765_dsk.h17
-rw-r--r--src/lib/formats/vdk_dsk.cpp6
-rw-r--r--src/lib/formats/vdk_dsk.h6
-rw-r--r--src/lib/formats/victor9k_dsk.cpp8
-rw-r--r--src/lib/formats/victor9k_dsk.h20
-rw-r--r--src/lib/formats/vt_dsk.cpp12
-rw-r--r--src/lib/formats/vt_dsk.h12
-rw-r--r--src/lib/formats/wd177x_dsk.cpp24
-rw-r--r--src/lib/formats/wd177x_dsk.h26
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 &current_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 &current_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 &current_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 &current_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 &current_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 &current_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 &current_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 &current_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 &current_size);
+ static floppy_image_format_t::desc_e* get_desc_8n1(const format &f, int &current_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 &sector_count);
+ static void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t &sector_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 &current_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 &current_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 &current_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 &current_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 &current_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 &current_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 &current_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 &current_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 &current_size, int &end_gap_index)
+floppy_image_format_t::desc_e* d81_format::get_desc_mfm(const format &f, int &current_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 &current_size, int &end_gap_index) override;
+ virtual floppy_image_format_t::desc_e* get_desc_mfm(const format &f, int &current_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 &sector_count);
+ static void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t &sector_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 &sector_count);
+ static void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t &sector_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 &sector_count);
+ static void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t &sector_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 &sector_count);
+ static void find_size(util::random_read &io, int &track_count, int &head_count, int &sector_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 &sectors, int &sector_size, int &base_sector_id);
+ static bool parse_header(util::random_read &io, int &header_size, int &tracks, int &heads, int &sectors, int &sector_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 &sector_count);
+ static void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t &sector_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 &sector_count);
+ static void find_size(util::random_read &io, uint8_t &track_count, uint8_t &head_count, uint8_t &sector_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 &sect, 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 &sect, 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 &current_size, int &end_gap_index)
+floppy_image_format_t::desc_e* upd765_format::get_desc_fm(const format &f, int &current_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 &current_size, int &end_gap_index)
+floppy_image_format_t::desc_e* upd765_format::get_desc_mfm(const format &f, int &current_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 &current_size, int &end_gap_index);
- floppy_image_format_t::desc_e* get_desc_mfm(const format &f, int &current_size, int &end_gap_index);
+ floppy_image_format_t::desc_e* get_desc_fm(const format &f, int &current_size, int &end_gap_index) const;
+ floppy_image_format_t::desc_e* get_desc_mfm(const format &f, int &current_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 &current_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 &current_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 &current_size, int &end_gap_index)
+floppy_image_format_t::desc_e* wd177x_format::get_desc_fm(const format &f, int &current_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 &current_size, int &end_gap_index)
+floppy_image_format_t::desc_e* wd177x_format::get_desc_mfm(const format &f, int &current_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 &current_size, int &end_gap_index);
- virtual floppy_image_format_t::desc_e* get_desc_mfm(const format &f, int &current_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 &current_size, int &end_gap_index) const;
+ virtual floppy_image_format_t::desc_e* get_desc_mfm(const format &f, int &current_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