From 22997d87d03825a9d470f70218b387682ebbb46b Mon Sep 17 00:00:00 2001 From: Maxwell Beck Date: Thu, 29 May 2025 15:40:22 -0500 Subject: fix: Use VIA2 PB to determine track bitrates --- src/drive.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'src/drive.c') diff --git a/src/drive.c b/src/drive.c index 5bc2e3b..e31a964 100644 --- a/src/drive.c +++ b/src/drive.c @@ -9,12 +9,7 @@ const uint8_t SECTORS_PER_TRACK[40] = { 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 }; -const uint8_t BITRATE_PER_TRACK[40] = { - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 68, 68, 68, 68, 68, 68, 68, - 65, 65, 65, 65, 65, 65, - 61 ,61, 61, 61, 61, 61, 61, 61, 61, 61 -}; +const uint8_t BITRATES[4] = { 61, 65, 68, 76 }; const uint8_t GCR_CONV[16] = { 0x0a, 0x0b, 0x12, 0x13, @@ -30,6 +25,7 @@ void drive_init(drive_t *drive) { drive->track = 17; drive->halftrack = 0; + drive->bitrate = 0; drive->image_ptr = 0x16500; drive->sector = 0; drive->byte = 0; @@ -83,7 +79,7 @@ bool drive_advance(drive_t *drive, uint8_t cycles) { void drive_cycle(drive_t *drive) { while (drive->lookahead_idx != ((drive->current_idx - 1) & (DRIVE_LOOKAHEAD - 1))) { uint8_t j = (drive->lookahead_idx + 1) & (DRIVE_LOOKAHEAD - 1); - uint8_t timer_next = drive->timer + BITRATE_PER_TRACK[drive->track]; + uint8_t timer_next = drive->timer + BITRATES[drive->bitrate]; uint16_t prev = drive->unlatched[drive->lookahead_idx]; if (timer_next < drive->timer) { -- cgit 1.4.1