summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats
diff options
context:
space:
mode:
author Sergey Svishchev <shattered@users.noreply.github.com>2017-01-13 00:25:47 +0300
committer Sergey Svishchev <shattered@users.noreply.github.com>2017-01-15 02:24:48 +0300
commit89b7801ebe654466a5ddb32fe5c11e2c9bba52dc (patch)
tree8ca430a9f7c65bff41abfcfdf33aab8f91b2bac3 /src/lib/formats
parent62363c0c219222926fdf858db0b950cb528665f7 (diff)
formats/wd177x_dsk: allow override of build_sector_description, like nec765_dsk
Diffstat (limited to 'src/lib/formats')
-rw-r--r--src/lib/formats/wd177x_dsk.cpp6
-rw-r--r--src/lib/formats/wd177x_dsk.h2
2 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/formats/wd177x_dsk.cpp b/src/lib/formats/wd177x_dsk.cpp
index 52e8db2f1f2..fe6c9db2535 100644
--- a/src/lib/formats/wd177x_dsk.cpp
+++ b/src/lib/formats/wd177x_dsk.cpp
@@ -55,7 +55,7 @@ int wd177x_format::compute_track_size(const format &f) const
return track_size;
}
-void wd177x_format::build_sector_description(const format &f, uint8_t *sectdata, desc_s *sectors) const
+void wd177x_format::build_sector_description(const format &f, uint8_t *sectdata, desc_s *sectors, int track, int head) const
{
if(f.sector_base_id == -1) {
for(int i=0; i<f.sector_count; i++) {
@@ -200,7 +200,6 @@ bool wd177x_format::load(io_generic *io, uint32_t form_factor, floppy_image *ima
uint8_t sectdata[40*512];
desc_s sectors[40];
- build_sector_description(f, sectdata, sectors);
for(int track=0; track < f.track_count; track++)
for(int head=0; head < f.head_count; head++) {
@@ -209,6 +208,7 @@ bool wd177x_format::load(io_generic *io, uint32_t form_factor, floppy_image *ima
else
desc[16].p1 = get_track_dam_mfm(f, head, track);
+ build_sector_description(f, sectdata, sectors, track, head);
io_generic_read(io, sectdata, get_image_offset(f, head, track), track_size);
generate_track(desc, track, head, sectors, f.sector_count, total_size, image);
}
@@ -330,10 +330,10 @@ bool wd177x_format::save(io_generic *io, floppy_image *image)
uint8_t sectdata[40*512];
desc_s sectors[40];
- build_sector_description(f, sectdata, sectors);
for(int track=0; track < f.track_count; track++)
for(int head=0; head < f.head_count; head++) {
+ build_sector_description(f, sectdata, sectors, track, head);
extract_sectors(image, f, sectors, track, head);
io_generic_write(io, sectdata, get_image_offset(f, head, track), track_size);
}
diff --git a/src/lib/formats/wd177x_dsk.h b/src/lib/formats/wd177x_dsk.h
index 0061212d14b..88b3a511240 100644
--- a/src/lib/formats/wd177x_dsk.h
+++ b/src/lib/formats/wd177x_dsk.h
@@ -55,7 +55,7 @@ protected:
virtual int get_track_dam_mfm(const format &f, int head, int track);
int compute_track_size(const format &f) const;
- void build_sector_description(const format &d, uint8_t *sectdata, desc_s *sectors) 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);
};