From 0c1714b695eca1d870d290f4b84912fee65a9e07 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Thu, 17 Aug 2017 21:36:14 -0400 Subject: [PATCH] Relaxed a little to allow +10% in track length. --- Storage/Disk/Encodings/MFM.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Storage/Disk/Encodings/MFM.cpp b/Storage/Disk/Encodings/MFM.cpp index ccace455a..5bbd815e8 100644 --- a/Storage/Disk/Encodings/MFM.cpp +++ b/Storage/Disk/Encodings/MFM.cpp @@ -175,7 +175,10 @@ template std::shared_ptr } while(segment.data.size() < expected_track_bytes) shifter.add_byte(0x00); - if(segment.data.size() > expected_track_bytes) segment.data.resize(expected_track_bytes); + + // Allow the amount of data written to be up to 10% more than the expected size. Which is generous. + size_t max_size = expected_track_bytes + (expected_track_bytes / 10); + if(segment.data.size() > max_size) segment.data.resize(max_size); segment.number_of_bits = (unsigned int)(segment.data.size() * 8); return std::shared_ptr(new Storage::Disk::PCMTrack(std::move(segment)));