summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/victor9k_dsk.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/formats/victor9k_dsk.cpp')
-rw-r--r--src/lib/formats/victor9k_dsk.cpp37
1 files changed, 16 insertions, 21 deletions
diff --git a/src/lib/formats/victor9k_dsk.cpp b/src/lib/formats/victor9k_dsk.cpp
index a0fdaedab5a..803c75303d8 100644
--- a/src/lib/formats/victor9k_dsk.cpp
+++ b/src/lib/formats/victor9k_dsk.cpp
@@ -136,12 +136,12 @@ const char *victor9k_format::extensions() const noexcept
int victor9k_format::find_size(util::random_read &io)
{
uint64_t size;
- if(io.length(size))
+ if (io.length(size))
return -1;
- for(int i=0; formats[i].sector_count; i++) {
+ for (int i = 0; formats[i].sector_count; i++) {
const format &f = formats[i];
- if(size == (uint32_t) f.sector_count*f.sector_base_size)
+ if(size == uint32_t(f.sector_count*f.sector_base_size))
return i;
}
@@ -155,7 +155,7 @@ int victor9k_format::find_size(util::random_read &io, uint32_t form_factor)
int victor9k_format::identify(const floppy_image &image)
{
- for(int i=0; formats[i].form_factor; i++) {
+ for (int i = 0; formats[i].form_factor; i++) {
const format &f = formats[i];
if(f.variant == image.get_variant())
return i;
@@ -291,7 +291,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) const
{
int const type = find_size(io, form_factor);
- if(type == -1)
+ if (type == -1)
return false;
const format &f = formats[type];
@@ -300,15 +300,12 @@ bool victor9k_format::load(util::random_read &io, uint32_t form_factor, const st
f.head_count, f.sector_count);
uint64_t size;
- if(io.length(size))
+ if (io.length(size))
return false;
- std::vector<uint8_t> img;
- try { img.resize(size); }
- catch (...) { return false; }
-
- size_t actual;
- io.read_at(0, &img[0], size, actual);
+ auto const [err, img, actual] = read_at(io, 0, size);
+ if (err || (actual != size))
+ return false;
log_boot_sector(&img[0]);
@@ -449,17 +446,17 @@ bool victor9k_format::save(util::random_read_write &io, const std::vector<uint32
{
int type = victor9k_format::identify(image);
uint64_t size;
- io.length(size);
+ io.length(size); // FIXME: check for errors
osd_printf_verbose("save type: %01d, size: %d\n", type, size);
- if(type == -1)
+ if (type == -1)
return false;
const format &f = formats[type];
osd_printf_verbose("save Heads: %01d Tracks: %02d Sectors/track head[1]track[1]: %02d\n ",
f.head_count, f.track_count, sectors_per_track[1][1]);
- for(int head=0; head < f.head_count; head++) {
+ for (int head = 0; head < f.head_count; head++) {
for(int track=0; track < f.track_count; track++) {
int sector_count = sectors_per_track[head][track];
int track_size = compute_track_size(f, head, track);
@@ -471,8 +468,7 @@ bool victor9k_format::save(util::random_read_write &io, const std::vector<uint32
build_sector_description(f, sectdata, 0, sectors, sector_count);
extract_sectors(image, f, sectors, track, head, sector_count);
- size_t actual;
- io.write_at(offset, sectdata, track_size, actual);
+ /*auto const [err, actual] =*/ write_at(io, offset, sectdata, track_size); // FIXME: check for errors
}
}
@@ -481,7 +477,6 @@ bool victor9k_format::save(util::random_read_write &io, const std::vector<uint32
void victor9k_format::extract_sectors(const floppy_image &image, const format &f, desc_s *sdesc, int track, int head, int sector_count)
{
-
// Extract the sectors
auto bitstream = generate_bitstream_from_track(track, head, cell_size[speed_zone[head][track]], image);
auto sectors = extract_sectors_from_bitstream_victor_gcr5(bitstream);
@@ -493,14 +488,14 @@ void victor9k_format::extract_sectors(const floppy_image &image, const format &f
}
}
- for(int i=0; i<sector_count; i++) {
+ for (int i = 0; i<sector_count; i++) {
desc_s &ds = sdesc[i];
const auto &data = sectors[ds.sector_id];
osd_printf_verbose("Head: %01d TracK: %02d Total Sectors: %02d Current Sector: %02d ",
head, track, sector_count, i);
- if(data.empty()) {
+ if (data.empty()) {
memset((uint8_t *)ds.data, 0, ds.size);
- } else if(data.size() < ds.size) {
+ } else if (data.size() < ds.size) {
memcpy((uint8_t *)ds.data, data.data(), data.size() - 1);
memset((uint8_t *)ds.data + data.size() - 1, 0, data.size() - ds.size);
osd_printf_verbose("data.size(): %01d\n", data.size());