diff options
Diffstat (limited to 'src/lib/formats/os9_dsk.cpp')
-rw-r--r-- | src/lib/formats/os9_dsk.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/lib/formats/os9_dsk.cpp b/src/lib/formats/os9_dsk.cpp index 67ae74e5884..232f40e89f0 100644 --- a/src/lib/formats/os9_dsk.cpp +++ b/src/lib/formats/os9_dsk.cpp @@ -49,6 +49,7 @@ #include "coretmpl.h" // BIT #include "ioprocs.h" +#include "multibyte.h" os9_format::os9_format() : wd177x_format(formats) @@ -90,9 +91,9 @@ int os9_format::find_size(util::random_read &io, uint32_t form_factor, const std size_t actual; io.read_at(0, os9_header, sizeof(os9_header), actual); - int os9_total_sectors = pick_integer_be(os9_header, 0x00, 3); + int os9_total_sectors = get_u24be(&os9_header[0x00]); int os9_heads = util::BIT(os9_header[0x10], 0) ? 2 : 1; - int os9_sectors = pick_integer_be(os9_header, 0x11, 2); + int os9_sectors = get_u16be(&os9_header[0x11]); if (os9_total_sectors <= 0 || os9_heads <= 0 || os9_sectors <= 0) return -1; @@ -103,10 +104,10 @@ int os9_format::find_size(util::random_read &io, uint32_t form_factor, const std int opt_dtype = os9_header[0x3f + 0]; int opt_type = os9_header[0x3f + 3]; int opt_density = os9_header[0x3f + 4]; - int opt_cylinders = pick_integer_be(os9_header, 0x3f + 5, 2); + int opt_cylinders = get_u16be(&os9_header[0x3f + 5]); int opt_sides = os9_header[0x3f + 7]; - int opt_sectors_per_track = pick_integer_be(os9_header, 0x3f + 9, 2); - int opt_track0_sectors = pick_integer_be(os9_header, 0x3f + 11, 2); + int opt_sectors_per_track = get_u16be(&os9_header[0x3f + 9]); + int opt_track0_sectors = get_u16be(&os9_header[0x3f + 11]); int opt_interleave = os9_header[0x3f + 13]; int opt_mfm = util::BIT(opt_density, 0); |