KryoFlux - Band Analyser Results

2009-11-29

The results from the band analyser are linked below. A fairly complex pattern based process is being used to determine the correct cell size (otherwise the peak shifts distort the values), but if that fails, the system falls back on an average model without the patterns.

When the analyser is uncertain whether a bitcell size is really correct (did not find enough patterns), the math average based cell size is marked with a question mark. Note that the program has no idea whatsoever about expected bitcell sizes or encoding at this point - it identifies potential data using various statistical and pattern based algorithms.

The resulting bitcells can be used to do things like:

  • Derive a reference clock for bitstream decoding - having a perfectly identified bitcell window making decoding errors a lot less likely to happen.
  • Compare with default bitcell sizes for various encodings and help identifying, for example, whether a track was written as FM, MFM or GCR data or even the target system.

On the Commodore 64, valid cell sizes vary depending on the track being read. The default sizes for the various track ranges are:

Track Bit cell
1-17 3.2us
18-24 3.5us
25-30 3.75us
31-35 4us

“Additional” being the sizes for flux transition intervals valid in C64 GCR encoding.

Of course it’s up to the mastering process what was really used, custom disk routines can set any value as long as the data remains readable for the drive and the boot code and associated directory entry is using the default cell size, as the drive uses fixed constants by default.

The program dumps all tracks (of which every second is considered to be a “half-track”). This makes the lists a bit difficult to read since the C64 drives number the tracks from 1, while other systems use track 0 for start. So track 00.0 is track 1 on C64; 01.0 is the half-track between track 1 and track 2; track 02.0 is track 2 and so on.

  • To convert a standard track number to its C64 version, divide the track number by 2 and add 1.
  • To convert from the C64 numbering to normal, subtract 1 from the C64 track number and multiply the result by 2.

C64 Paranoia Complex
It’s easy to see that half-track are unwritten (cell sizes as low as 1.3 us are reported) and that side 1 is not written either. The first 35 tracks are written with the default cell density then there is a protection track 36 using a 3.5us bitcell size. The rest of the disk is unwritten.

C64 Arcade Muscle
Both sides are written. It can be seen that:

  • There is an offset in speed zones as expected; 34.0 (c64 18) switches to 3.5us cell, 32.0 (17) is 3.2us. On side 1 the 3.5us zone starts at 26.1 (14). The difference is exactly 4 (18-14) c64 or 8 normal tracks.
  • Half-tracks are at the same relative position; there is no additional distance apart from the 8 (4) track offset in track distance.

Amiga Jim Power
The MFM DD bitcell size 2us (resulting in 4us, 6us, 8us flux transition intervals valid in DD MFM encoding) is what you can see there apart from the two protection tracks 79.0 and 79.1, where the bitcell size has been changed to about 1.9us.