summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/vgi_dsk.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/formats/vgi_dsk.cpp')
-rw-r--r--src/lib/formats/vgi_dsk.cpp32
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;
}
}