diff --git a/src/floppy/fdd.c b/src/floppy/fdd.c index 8a38b2139..d4fef4fd8 100644 --- a/src/floppy/fdd.c +++ b/src/floppy/fdd.c @@ -316,15 +316,13 @@ fdd_seek(int drive, int track_diff) return; } - // Count actual seek time (6ms per track + 50ms base) - // 80 tracks -> 50 + 6 * 80 = 530ms - //double seek_ratio = 80.0 / (double)drive_types[fdd[drive].type].max_track; - double seek_ratio = 1.0; - uint64_t seek_time_us = (15000 + (abs(actual_track_diff) * 6000 * seek_ratio)) * TIMER_USEC; if (!fdd_seek_timer[drive].callback) { timer_add(&(fdd_seek_timer[drive]), fdd_seek_complete_callback, &drives[drive], 0); } + double initial_seek_time = FDC_FLAG_PCJR & fdd_fdc->flags ? 50000.0 : 15000.0; + double track_seek_time = FDC_FLAG_PCJR & fdd_fdc->flags ? 10000.0 : 6000.0; + uint64_t seek_time_us = (initial_seek_time + (abs(actual_track_diff) * track_seek_time)) * TIMER_USEC; timer_set_delay_u64(&fdd_seek_timer[drive], seek_time_us); }