KryoFlux - Misc, Warnings

2010-01-19

  1. Very limited beta started, currently with one user to control the amount of bug reports and issues to deal with.
  2. Fixed maximum track limit setting; it was set higher than it should have been.
  3. Program messages now can be fully controlled; only information that has been selected would be output.
  4. Changed track dependencies to allow a list of dependencies to be supplied; currently all of them have to be true (I.e. only AND operation is supported).
  5. Added automatic 80/81/82 track image support for AmigaDOS ADF images. As discussed before, the image now is the smallest image that can hold all valid ADOS sectors found without data loss. It is of course possible to use a fixed size, 80 track image instead if possible data from track 80 is unwanted.
  6. If the band analyzer completely fails to find a bitcell reference clock within the given limits the format analyzer is not invoked, which is the correct behaviour, however the lack of format information output can be confusing for the users; so made a change to output format information even if the format analyzer is not called.
  7. A special case of the special case seen with Guardian Angel was found see relevant wip on the original issue; when an index signal starts on an extended long encoding, the index signal stream position should take the encoding/decoding difference into account. With Guardian Angel’s case the index signal started at the end of an extended encoding...
  8. Stream files are now always saved regardless of errors encountered in them, after all they are meant to be for debugging containing the last communication stream from a KryoFlux board. Previously stream files considered bad were not saved. In reality, stream files haven’t had any bad content for months, but as far as the host is concerned it can be bad if it fails decoding and integrity checks - this always turned out to be a problem in the stream decoder for a long time now.
  9. Currently the AmigaDOS decoder tries to pick up anything that could possibly be AmigaDOS sectors on a track, and that can end up with bad sectors being reported on some tracks of some disks, when there is no AmigaDOS data there really. Sensitivity might be improved upon eventually, but currently it can read/recover various tracks data are no longer readable by other methods, so it might as well remain how it is now.
  10. Sector level error information now can be queried from the format analyser as well a summary for all sectors.
  11. Borrowed some MFM integrity check code from CTA... The AmigaDOS decoder now skips headers that has a certain amount of badly encoded MFM data. This seems to eliminate the high sensitivity and sometimes trying to decode random noise.

Warnings

The format level info now contains the warnings about non-standard data found. If a track can be fully decoded without any errors, but contains non-standard information an OK* is displayed, and after the the sector number summaries, a short overview of modifications found get listed with letters. The letters used are the same as the CTA generic script generator values.

The presence of any of the letters means non-standard value found in one or more of the sectors decoded - although the exact one can be slightly different for specific formats due to format implementation details. So far the following are reported (the modifications that can be present in AmigaDOS sectors):

H: data in header (in case of AmigaDOS it’s the OS data part) I: ID/format type T: track number B: sector/block number Z: sector offset (distance from track gap)

Here are a few examples (output level set to only on the format analyser for clarity)

Example 1: Dragon’s Breath has a few tracks using the OS data part of the sector headers.

00.0 : AmigaDOS: OK*, sec: 11, bad: 0, mis: 0, *H 
00.1 : AmigaDOS: OK*, sec: 11, bad: 0, mis: 0, *H 
01.0 : AmigaDOS: OK*, sec: 11, bad: 0, mis: 0, *H 
01.1 : AmigaDOS: OK*, sec: 11, bad: 0, mis: 0, *H 
02.0 : AmigaDOS: OK*, sec: 11, bad: 0, mis: 0, *H 
02.1 : AmigaDOS: OK, sec: 11, bad: 0, mis: 0 
... 

Example 2: Fire and Ice has modified track numbers:

00.0 : AmigaDOS: OK, sec: 11, bad: 0, mis: 0 
00.1 : AmigaDOS: < unformatted> 
01.0 : AmigaDOS: OK*, sec: 11, bad: 0, mis: 0, *T 
01.1 : AmigaDOS: OK*, sec: 11, bad: 0, mis: 0, *T 
... 

This is a bit verbose, so we changed it to only output format info that needs attention. Such data now only appears once it is found.

Dragon’s Breath output:

00.0 : AmigaDOS: OK*, sec: 11, *H 
00.1 : AmigaDOS: OK*, sec: 11, *H 
01.0 : AmigaDOS: OK*, sec: 11, *H 
01.1 : AmigaDOS: OK*, sec: 11, *H 
02.0 : AmigaDOS: OK*, sec: 11, *H 
02.1 : AmigaDOS: OK, sec: 11 
... 

Output of a bad dump:

76.0 : AmigaDOS: OK, sec: 22 
76.1 : AmigaDOS: < error>, sec: 22, bad: 3 
77.0 : AmigaDOS: OK, sec: 22 
77.1 : AmigaDOS: < error>, sec: 22, bad: 3, mis: 2