Work-In-Progress Reports for April 2010
Gap Support: IPF Library: Now all data is seen by the decoder as a stream that can be read (regardless of its content type) or rewound. Previously (since only MFM was supported) there was no distinction or abstraction between the data represented by the IPF file, and how it was encoded to represent the "real" (in the case of the library's, MFM encoded) data as seen through a virtual disk; this was a bit hacky, but very fast. (more)
Gap Support: IPF Library: The decoder/encoder part of the IPF library is being gradually rewritten/replaced to support everything that old, new and future images might need. Each block is processed as three stream files; one data stream, and two optional gap streams for each gap direction (see previous WIPs why there are two gap directions). (more)
KryoFlux Host Software (DTC) Encoding Types: - Created a class for all disk encoding types to share related code among the analyser, library, tools and DTC. - Updated everything to use the common encoding class. This will be very useful when adding new encoding types (e.g. FM, GCR) to the various components we use, currently only DTC can make full use of it.
Gap Support: IPF: IPF images now have gap patterns encoded.
Gap Support: IPF: Separated the internal representation of the data of IPF files into gap and data streams for greater flexibility. Fixed various new issues and regressions after testing.
Gap Support: IPF: Fixed various issues found with library versions and compatibility control. Gap patterns are now transformed into the internal data format used by the IPF exporter.
Gap Support: Analyser and IPF Library: Preparation for the biggest change of the encoder in the analyser and decoder library since 2003. Decided to remove some advanced gap related features that were never ever used in the IPF format. These features won't be used due to the arrival of the much more flexible gap pattern scripting that is used by the MFM script generator - and possibly any other script generators in the future like FM. (more)
Gap Support: Analyser Datatypes and Scripting: * Added new auto-generated data type for scripting. * Scripting of gap pattern zones. * Scripting terminates "directions" - data to be encoded directly after the current sector vs. data to be encoded backwards from the start of the next sector - by using an empty pattern command. * Detecting if the gap pattern zone is a filler (i.e. (more)
Gap Support: Work Left: Currently researching the best way to add the new datatype to support gap patterns: * How to script. * How to encode/store in the IPF image. * Make sure existing libraries refuse to decode these images - we don't want to get sidetracks by non-existent bugs. This should simply be a matter of increasing the IPF format version number, but it needs testing.
Analyser: Generic MFM Support - Gap: In the previous WIP, we talked about the new algorithm for gap analysation we developed because after issues found in testing the previous one. This WIP will go into more detail on exactly how the gap is used, to help highlight the problems in analysing it. In particular we should explain what we mean when we said "data can be read in two directions between sectors". (more)
Analyser: Generic MFM Support - Gap Analyser: The analyser can now properly detect the exact patterns used to generate the gap, regardless of how many different filler values were used. As mentioned in a previous WIP, the algorithms developed for gap analysation have been replaced due to issues found in testing. The new code is very complex, and now is a good time to explain how it works. (more)
Analyser: Generic MFM Support - Gap Analyser: Testing looks good so far on over 100 disks. The following is what is left to do on this. (more)