From 5bb21b3b0a31ff493233cb52511e96df8d8e109a Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Fri, 9 Dec 2022 15:45:40 +0100 Subject: [PATCH] Fix block allocator for .d64 generator --- oscar64/DiskImage.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/oscar64/DiskImage.cpp b/oscar64/DiskImage.cpp index 601d28d..9164a27 100644 --- a/oscar64/DiskImage.cpp +++ b/oscar64/DiskImage.cpp @@ -89,9 +89,9 @@ void DiskImage::MarkBAMSector(int track, int sector) uint8* dp = bam + 4 * track; - if (dp[sector >> 3] & (1 << (sector & 7))) + if (dp[1 + (sector >> 3)] & (1 << (sector & 7))) { - dp[sector >> 3] &= ~(1 << (sector & 7)); + dp[1 + (sector >> 3)] &= ~(1 << (sector & 7)); dp[0]--; } } @@ -108,7 +108,7 @@ int DiskImage::AllocBAMSector(int track, int sector) if (sector >= SectorsPerTrack[track]) sector -= SectorsPerTrack[track]; - while (!(dp[sector >> 3] & (1 << (sector & 7)))) + while (!(dp[1 + (sector >> 3)] & (1 << (sector & 7)))) { sector++; if (sector >= SectorsPerTrack[track])