Analyser: Automatic Descriptor Building

28 June 2005

Now the system is able to build a complete description of the disk format based on the data found on a track.

This is tested on various protection methods, and once it is proven okay the cached data needs to be translated into the script language used by the rest of the analyser. That is, translating the collected information into scripts that the rest of the analyser actually understands. Currently we are tweaking existing functionality to ensure exceptions (and manual intervention) as rare as is possible. We are also adding some safeguards like making positively correct information have higher priority than “guessed” data.

This is fairly important for broken disks. For example, if you find a bad block header on one revolution but another sample got it right, the good sample should be used to decide the block size. This actually happens. On hardware MFM there is normally a header block and a data block following each other (except for certain protection types) and the header will tell us the correct data size.

Anyway, this process is also able to spot modified blocks while building the format. It works perfectly on everything we have tried so far. Whenever it complained, it turned out the block being reported contained a high-score, or similar modification. This is exactly what we want.

Modified Disks on the Atari ST

We have now seen that modified disks on the Atari ST are a far bigger problem than on the Commodore Amiga. This actually makes sense because writing a reliable save routine on an Amiga is a considerable programming effort, whereas using the FDC on the Atari ST is just a matter of a few lines of code and is often implemented.

Statistically, from hundreds of disk images, it seems that roughly every third Atari ST game dumped is modified...