diff options
author | 2017-01-13 00:25:47 +0300 | |
---|---|---|
committer | 2017-01-15 02:24:48 +0300 | |
commit | 89b7801ebe654466a5ddb32fe5c11e2c9bba52dc (patch) | |
tree | 8ca430a9f7c65bff41abfcfdf33aab8f91b2bac3 | |
parent | 62363c0c219222926fdf858db0b950cb528665f7 (diff) |
formats/wd177x_dsk: allow override of build_sector_description, like nec765_dsk
-rw-r--r-- | src/lib/formats/wd177x_dsk.cpp | 6 | ||||
-rw-r--r-- | src/lib/formats/wd177x_dsk.h | 2 |
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); }; |