While making backups of some disks(Commodore 5,25 disks with a Zoomfloppy) I noticed that the reading error-rate was very high. The disks are from the mid 80;s but they can survive depending on how they have been stored and what not.

I could get a big variety of errors on totally different sectors while (re-)reading a disk. I cleaned the R/W head, disks, used different transfer-programs, speeds, copied disks to another media on the native system etc. (even had some ridiculous amounts of read retries) and yet nothing helped.

Another thing that was a bit concerning was the mylar coating (recording media) took some serious beating for every read. I could see on the surface where the R/W head had passed. Some disks even lost the coating, leaving a transparent plastic behind.

 


…condition after a couple of reads, Track 18 “visible” in the middle.

 

It was obvious that these disks didn’t have unlimited reads and with the varying read results I decided to gather some data.

To make a long story short… the disks are stored as image-files ( .d64) and include a separate block for the error-information. This is where I started looking.

First I made a tool to visualize the data and then I extended it to gather sectors from different disk images(same content) and combine them to as close to a whole image as possible.
d64eic1
Read # 1. Errors: 26

 

d64eic2
Read # 2. Errors: 10

 

d64eic3
Read #3. Errors: 10

 

d64eic4
Images 1 and 3 combined. Errors: 7

 

d64eic5
Images 1, 2 and 3 combined. Errors: 1

 

Combining the data from the three images resulted in an image with (just)one bad block.

 

 


 

Download:

Limitations:
* Version v1.0 does not support 40 track disks.