summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/uniflex_dsk.cpp
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2023-09-17 09:41:35 -0400
committer AJR <ajrhacker@users.noreply.github.com>2023-09-17 09:43:06 -0400
commit676e44ca955121808828ddc7a8a024dc721f682c (patch)
tree64ca682d6e9dc0a752339f39f1900cc3b3c50fdb /src/lib/formats/uniflex_dsk.cpp
parent2f7b1f05c72e568032930e7ceba2db0b4cb63e1a (diff)
imageutl.h: Retire pick_integer_[bl]e and place_integer_[bl]e in favor of the simpler functions in multibyte.h
* multibyte.h: Add constexpr for getters and noexcept for all functions
Diffstat (limited to 'src/lib/formats/uniflex_dsk.cpp')
-rw-r--r--src/lib/formats/uniflex_dsk.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/lib/formats/uniflex_dsk.cpp b/src/lib/formats/uniflex_dsk.cpp
index fe682417b09..59c243531dd 100644
--- a/src/lib/formats/uniflex_dsk.cpp
+++ b/src/lib/formats/uniflex_dsk.cpp
@@ -13,6 +13,7 @@
#include "imageutl.h"
#include "ioprocs.h"
+#include "multibyte.h"
uniflex_format::uniflex_format() : wd177x_format(formats)
@@ -55,20 +56,20 @@ int uniflex_format::find_size(util::random_read &io, uint32_t form_factor, const
size_t actual;
io.read_at(1 * 512, sir, sizeof(sir), actual);
- uint16_t fdn_block_count = pick_integer_be(sir, 0x10, 2);
- uint32_t last_block_number = pick_integer_be(sir, 0x12, 3);
- uint32_t free_block_count = pick_integer_be(sir, 0x15, 3);
- uint16_t fdn_free_count = pick_integer_be(sir, 0x15, 2);
+ uint16_t fdn_block_count = get_u16be(&sir[0x10]);
+ uint32_t last_block_number = get_u24be(&sir[0x12]);
+ uint32_t free_block_count = get_u24be(&sir[0x15]);
+ uint16_t fdn_free_count = get_u16be(&sir[0x15]); // FIXME: offset should be different from previous?
- uint16_t volume_number = pick_integer_be(sir, 0x36, 2);
+ uint16_t volume_number = get_u16be(&sir[0x36]);
uint8_t disk_density = sir[0x3a];
uint8_t disk_side_info = sir[0x3b];
- uint32_t volbc_start_addr = pick_integer_be(sir, 0x3c, 3);
- uint16_t swap_size = pick_integer_be(sir, 0x3f, 2);
+ uint32_t volbc_start_addr = get_u24be(&sir[0x3c]);
+ uint16_t swap_size = get_u16be(&sir[0x3f]);
LOG_FORMATS("UniFLEX floppy dsk size %d\n", (uint32_t)size);
- LOG_FORMATS(" time = %u %u\n", (uint32_t) pick_integer_be(sir, 0x08, 4), (uint32_t) pick_integer_be(sir, 0x0c, 4));
+ LOG_FORMATS(" time = %u %u\n", get_u32be(&sir[0x08]), get_u32be(&sir[0x0c]));
LOG_FORMATS(" fdn_block_count: %d\n", fdn_block_count);
LOG_FORMATS(" file system name: ");
@@ -90,7 +91,7 @@ int uniflex_format::find_size(util::random_read &io, uint32_t form_factor, const
LOG_FORMATS(" swap_size: %d\n", swap_size);
// The first eight bytes appear to be zeros.
- if (pick_integer_be(sir, 0x00, 8) != 0)
+ if (get_u64be(&sir[0x00]) != 0)
return -1;
for(int i=0; formats[i].form_factor; i++) {