diff options
Diffstat (limited to 'src/lib/formats/vgi_dsk.cpp')
-rw-r--r-- | src/lib/formats/vgi_dsk.cpp | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/lib/formats/vgi_dsk.cpp b/src/lib/formats/vgi_dsk.cpp index ae6cd53018e..a86ffdefb75 100644 --- a/src/lib/formats/vgi_dsk.cpp +++ b/src/lib/formats/vgi_dsk.cpp @@ -18,8 +18,8 @@ http://www.bitsavers.org/pdf/micropolis/metafloppy/1084-01_1040_1050_Users_Manua #include <cstring> -static const int track_size = 100'000; -static const int half_bitcell_size = 2000; +static constexpr int TRACK_SIZE = 100'000; +static constexpr int HALF_BITCELL_SIZE = 2000; micropolis_vgi_format::micropolis_vgi_format() : floppy_image_format_t() { @@ -32,10 +32,10 @@ struct format { }; static const format formats[] = { - {1, 35, floppy_image::SSDD}, // MOD-I - {2, 35, floppy_image::DSDD}, - {1, 77, floppy_image::SSQD}, // MOD-II - {2, 77, floppy_image::DSQD}, + {1, 35, floppy_image::SSDD16}, // MOD-I + {2, 35, floppy_image::DSDD16}, + {1, 77, floppy_image::SSQD16}, // MOD-II + {2, 77, floppy_image::DSQD16}, {} }; @@ -76,14 +76,14 @@ bool micropolis_vgi_format::load(util::random_read &io, uint32_t form_factor, co for (int track = 0; track < fmt.track_count; track++) { for (int sector = 0; sector < 16; sector++) { for (int i = 0; i < 40; i++) - mfm_w(buf, 8, 0, half_bitcell_size); - std::size_t actual; - if (io.read(sector_bytes, std::size(sector_bytes), actual)) + mfm_w(buf, 8, 0, HALF_BITCELL_SIZE); + auto const [err, actual] = read(io, sector_bytes, std::size(sector_bytes)); + if (err || (actual != std::size(sector_bytes))) return false; for (int i = 0; i < std::size(sector_bytes); i++) - mfm_w(buf, 8, sector_bytes[i], half_bitcell_size); - while (buf.size() < track_size/16 * (sector+1)) - mfm_w(buf, 8, 0, half_bitcell_size); + mfm_w(buf, 8, sector_bytes[i], HALF_BITCELL_SIZE); + while (buf.size() < TRACK_SIZE/16 * (sector+1)) + mfm_w(buf, 8, 0, HALF_BITCELL_SIZE); } generate_track_from_levels(track, head, buf, 0, image); buf.clear(); @@ -116,9 +116,9 @@ bool micropolis_vgi_format::save(util::random_read_write &io, const std::vector< uint8_t sector_bytes[275]; for (int head = 0; head < fmt.head_count; head++) { for (int track = 0; track < fmt.track_count; track++) { - std::vector<bool> bitstream = generate_bitstream_from_track(track, head, half_bitcell_size, image); + std::vector<bool> bitstream = generate_bitstream_from_track(track, head, HALF_BITCELL_SIZE, image); for (int sector = 0; sector < 16; sector++) { - int sector_start = track_size/16 * sector; + int sector_start = TRACK_SIZE/16 * sector; uint32_t pos = sector_start + 512 - 16; uint16_t shift_reg = 0; while (pos < sector_start + 60*16 && pos < bitstream.size()) { @@ -134,8 +134,8 @@ bool micropolis_vgi_format::save(util::random_read_write &io, const std::vector< memset(sector_bytes, 0, std::size(sector_bytes)); } - std::size_t actual; - if (io.write(sector_bytes, std::size(sector_bytes), actual)) + auto const [err, actual] = write(io, sector_bytes, std::size(sector_bytes)); + if (err) return false; } } |