setamax ();
}
-static void load_track (int num, int cyl, int side, int *sectable)
+static void load_track (int num, int cyl, int dside, int *sectable)
{
int oldcyl, oldside, drvsec;
oldcyl = drv->cyl;
oldside = side;
drv->cyl = cyl;
- side = 0;
+ side = dside;
drv->buffered_cyl = -1;
drive_fill_bigbuf (drv, -1);
decode_buffer (drv, drv->bigmfmbuf, drv->cyl, 11, drv->ddhd, drv->filetype, &drvsec, sectable, 1);
drive *drv = &floppy[num];
uae_u32 dos, crc, crc2;
int wasdelayed = drv->dskchange_time;
- int sectable[MAX_SECTORS];
- int oldcyl, oldside;
+ int sectable[MAX_SECTORS] = { 0 };
+ int oldcyl, oldside, mfmpos;
uae_u32 v = 0;
bool fb = DISK_isfloppybridge(p, num);
di->unreadable = true;
oldcyl = drv->cyl;
oldside = side;
+ mfmpos = drv->mfmpos;
drv->cyl = 0;
side = 0;
if (!drive_insert (drv, p, num, p->floppyslots[num].df, true, true) || (!drv->diskfile && !drv->bridge)) {
}
end2:
load_track(num, oldcyl, oldside, sectable);
- drive_image_free (drv);
if (wasdelayed > 1) {
drive_eject (drv);
currprefs.floppyslots[num].df[0] = 0;
drv->dskchange_time = wasdelayed;
disk_insert (num, drv->newname);
}
+ drv->mfmpos = mfmpos;
return ret;
}