Analyser - Generic MFM: Sliding Windows, Mark Checking


  • Implemented a sliding window technique for format pattern matching, which tries to find consecutive blocks regardless of where they start. This is necessary as there is no guarantee that track data is synced to the index hole, and therefore checks must be able to support rotation/roll over.
  • Removed dependencies on the number of marks expected apart from the initial filtering, this can be altered later if needed. This would make it possible to add some checks for mark values into the block patterns.
  • Fixed regression introduced by mark handling changes.
  • Implemented mark checking as part of a block pattern. Marks are checked against their real MFM value (e.g. 0xA1 is 0×4489); this ensures that only real marks match.

Thus far only a range check is supported. Previously segments were checked only when their mark type matched their expected value first; while that was convenient it was less flexible than the new solution.

Interesting sidenote: A format match pattern for speedlock 1987 is now some 50 lines of data. A far cry from the few lines of data it was originally!