summary refs log tree commit diff
path: root/src/drive.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drive.c')
-rw-r--r--src/drive.c4
1 files changed, 2 insertions, 2 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];
 	}
 }