void seek8271() { int diff = i8271.params[0] - i8271.curtrack[curdrive]; i8271.realtrack[curdrive] += diff; disc_seek(curdrive, i8271.realtrack[curdrive]); }
void fdd_seek(int drive, int track_diff) { int old_track; drive ^= fdd_swap; old_track = fdd[drive].track; fdd[drive].track += track_diff; if (fdd[drive].track < 0) fdd[drive].track = 0; if (fdd[drive].track > drive_types[fdd[drive].type].max_track) fdd[drive].track = drive_types[fdd[drive].type].max_track; // pclog("fdd_seek: drive=%i track_diff=%i old_track=%i track=%i\n", drive, track_diff, old_track, fdd[drive].track); if (fdd[drive].track != old_track) fdc_discchange_clear(drive); disc_seek(drive, fdd[drive].track); disctime = 5000; }