summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/lw30_dsk.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/formats/lw30_dsk.cpp')
-rw-r--r--src/lib/formats/lw30_dsk.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/lib/formats/lw30_dsk.cpp b/src/lib/formats/lw30_dsk.cpp
index dd5eef5da5f..dd1536755d5 100644
--- a/src/lib/formats/lw30_dsk.cpp
+++ b/src/lib/formats/lw30_dsk.cpp
@@ -138,9 +138,11 @@ static constexpr int raw_track_size = 2/*0xaa*/ + 48/*0xaa*/ + SECTORS_PER_TRACK
int lw30_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const
{
uint64_t size = 0;
- io.length(size);
+ if(io.length(size))
+ return 0;
+
if(size == TRACKS_PER_DISK * SECTORS_PER_TRACK * SECTOR_SIZE)
- return 50; // identified by size
+ return FIFID_SIZE; // identified by size
return 0;
}
@@ -150,9 +152,8 @@ bool lw30_format::load(util::random_read &io, uint32_t form_factor, const std::v
uint8_t trackdata[SECTORS_PER_TRACK * SECTOR_SIZE], rawdata[CELLS_PER_REV / 8];
memset(rawdata, 0xaa, sizeof(rawdata));
for(int track = 0; track < TRACKS_PER_DISK; track++) {
- size_t actual{};
- io.read_at(track * SECTORS_PER_TRACK * SECTOR_SIZE, trackdata, SECTORS_PER_TRACK * SECTOR_SIZE, actual);
- if(actual != SECTORS_PER_TRACK * SECTOR_SIZE)
+ auto const [err, actual] = read_at(io, track * SECTORS_PER_TRACK * SECTOR_SIZE, trackdata, SECTORS_PER_TRACK * SECTOR_SIZE);
+ if(err || (actual != SECTORS_PER_TRACK * SECTOR_SIZE))
return false;
size_t i = 0;
for(int x = 0; x < 2 + 48; x++)