From 128a1da626d3dad9f4733a6721274352cd5d4292 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Wed, 18 Sep 2019 20:18:02 -0400 Subject: [PATCH] Enables write support. --- Storage/MassStorage/Formats/HFV.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/Storage/MassStorage/Formats/HFV.cpp b/Storage/MassStorage/Formats/HFV.cpp index b6c8bd137..3e454e892 100644 --- a/Storage/MassStorage/Formats/HFV.cpp +++ b/Storage/MassStorage/Formats/HFV.cpp @@ -41,19 +41,14 @@ std::vector HFV::get_block(size_t address) { } void HFV::set_block(size_t address, const std::vector &contents) { - writes_[address] = contents; - - printf("[%zu]: ", address); - for(uint8_t v: contents) { - printf("%02x ", v); - } - printf("\n"); -// const auto source_address = mapper_.to_source_address(address); -// if(source_address >= 0 && size_t(source_address)*get_block_size() < size_t(file_.stats().st_size)) { -// const long file_offset = long(get_block_size()) * long(source_address); -// file_.seek(file_offset, SEEK_SET); -// file_.write(contents); -// } + const auto source_address = mapper_.to_source_address(address); + if(source_address >= 0 && size_t(source_address)*get_block_size() < size_t(file_.stats().st_size)) { + const long file_offset = long(get_block_size()) * long(source_address); + file_.seek(file_offset, SEEK_SET); + file_.write(contents); + } else { + writes_[address] = contents; + } } void HFV::set_drive_type(Encodings::Macintosh::DriveType drive_type) {