From 572977f5f8918573fedca6aa0af1e0658b11ea9a Mon Sep 17 00:00:00 2001 From: tudnai Date: Wed, 6 May 2020 20:49:15 -0700 Subject: [PATCH] Disk adjustment magic numbers lifted out as variables so it will be easier to remember them and adjust them --- src/dev/disk/woz.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/dev/disk/woz.c b/src/dev/disk/woz.c index 79206c3..df3fe9c 100644 --- a/src/dev/disk/woz.c +++ b/src/dev/disk/woz.c @@ -254,12 +254,15 @@ uint8_t woz_read() { clkelpased = m6502.clktime - m6502.clklast; m6502.clklast = m6502.clktime; + const int clkBeforeAdjusting = 250; + const int magicShiftOffset = 90; + uint16_t usedBytes = woz_trks[track].bytes_used < WOZ_TRACK_BYTE_COUNT ? woz_trks[track].bytes_used : WOZ_TRACK_BYTE_COUNT; if ( usedBytes ) { - if ( clkelpased > 120 ) { + if ( clkelpased > clkBeforeAdjusting ) { // printf("NEED SYNC : %llu\n", clkelpased); bitOffset = (clkelpased >> 2) & 7; - trackOffset += ((clkelpased >> 5) +80) % usedBytes; + trackOffset += ((clkelpased >> 5) + magicShiftOffset) % usedBytes; WOZread.data = woz_trks[track].data[trackOffset]; }