diff options
author | Maxwell Beck <max@rastertail.net> | 2024-12-30 15:21:14 -0600 |
---|---|---|
committer | Maxwell Beck <max@rastertail.net> | 2024-12-30 15:21:14 -0600 |
commit | 2a3984933e9b39cd37a136dd2a95645bff0d3774 (patch) | |
tree | a1537d12c4e2d7df2a3de7d24ccf28cb28ef38aa | |
parent | 7d49c99f8eaa216e8456320bc5c68dd61a379e2c (diff) |
Tighten drive lookahead, improve track stepping
-rw-r--r-- | src/drive.c | 4 | ||||
-rw-r--r-- | src/drive.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/drive.c b/src/drive.c index cc85635..64b765a 100644 --- a/src/drive.c +++ b/src/drive.c @@ -55,7 +55,7 @@ void drive_step_up(drive_t *drive) { if (drive->track < 39 && drive->halftrack == 0) { drive->image_ptr += SECTORS_PER_TRACK[drive->track] << 8; drive->track += 1; - drive->sector = drive->sector % SECTORS_PER_TRACK[drive->track]; + drive->sector = drive->sector * SECTORS_PER_TRACK[drive->track] / SECTORS_PER_TRACK[drive->track - 1]; } } @@ -64,7 +64,7 @@ void drive_step_down(drive_t *drive) { if (drive->track > 0 && drive->halftrack == 0) { drive->image_ptr -= SECTORS_PER_TRACK[drive->track - 1] << 8; drive->track -= 1; - drive->sector = drive->sector % SECTORS_PER_TRACK[drive->track]; + drive->sector = drive->sector * SECTORS_PER_TRACK[drive->track] / SECTORS_PER_TRACK[drive->track + 1]; } } diff --git a/src/drive.h b/src/drive.h index c41712a..e131c5c 100644 --- a/src/drive.h +++ b/src/drive.h @@ -4,7 +4,7 @@ #include <stdbool.h> #include <stdint.h> -#define DRIVE_LOOKAHEAD 16 +#define DRIVE_LOOKAHEAD 8 extern const uint8_t SECTORS_PER_TRACK[40]; extern const uint8_t BITRATE_PER_TRACK[40]; |