From: Toni Wilen Date: Sun, 11 Sep 2016 15:38:13 +0000 (+0300) Subject: Too small extended adf: skip bytes from the beginning (which is usually gap), not... X-Git-Tag: 3400~103 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=fb30fe4cbb2e00edc4c46a4c57c7f595ec2782b2;p=francis%2Fwinuae.git Too small extended adf: skip bytes from the beginning (which is usually gap), not at the end. --- diff --git a/disk.cpp b/disk.cpp index 10e7efc9..13e681d4 100644 --- a/disk.cpp +++ b/disk.cpp @@ -2338,17 +2338,19 @@ static int drive_write_adf_amigados (drive *drv) /* write raw track to disk file */ static int drive_write_ext2 (uae_u16 *bigmfmbuf, struct zfile *diskfile, trackid *ti, int tracklen) { - int len, i; + int len, i, offset; + offset = 0; len = (tracklen + 7) / 8; if (len > ti->len) { write_log (_T("disk raw write: image file's track %d is too small (%d < %d)!\n"), ti->track, ti->len, len); + offset = (len - ti->len) / 2; len = ti->len; } diskfile_update (diskfile, ti, tracklen, TRACK_RAW); for (i = 0; i < ti->len / 2; i++) { - uae_u16 *mfm = bigmfmbuf + i; - uae_u16 *mfmw = bigmfmbufw + i; + uae_u16 *mfm = bigmfmbuf + i + offset; + uae_u16 *mfmw = bigmfmbufw + i + offset; uae_u8 *data = (uae_u8 *) mfm; *mfmw = 256 * *data + *(data + 1); }