From a6c08e2fda19f6695ccd5c8276ada504df8f62a2 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sat, 25 Feb 2023 17:20:58 +0200 Subject: [PATCH] Restore mfmpos after checking disk details --- disk.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/disk.cpp b/disk.cpp index 22470d49..6a6686f5 100644 --- a/disk.cpp +++ b/disk.cpp @@ -5297,7 +5297,7 @@ void DISK_reset (void) 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; @@ -5306,7 +5306,7 @@ static void load_track (int num, int cyl, int side, int *sectable) 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); @@ -5491,8 +5491,8 @@ int DISK_examine_image(struct uae_prefs *p, int num, struct diskinfo *di, bool d 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); @@ -5509,6 +5509,7 @@ int DISK_examine_image(struct uae_prefs *p, int num, struct diskinfo *di, bool d 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)) { @@ -5595,13 +5596,13 @@ end: } 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; } -- 2.47.3