Decoding kryoflux stream for HP9895A

Christian Corti cc at
Wed Sep 21 01:59:00 CDT 2016

On Tue, 20 Sep 2016, Eric Smith wrote:
> On Tue, Sep 20, 2016 at 7:42 AM, Denise de Vries
> <denise.devries at> wrote:
>> Does anyone know of documentation for the HP9895A format with its own M2FM encoding?
>> I have a kryoflux preservation stream but so far can make no sense of it.
> I've successfully decoded Intel M2FM disks.  The track-level format
> isn't the same as the HP 9895A, but the channel code is.  I'd be happy
> to take a look at a 9895A image.

I've already written a decoder for the HP 9885/9895 format. Denise already 
sent me his image, but I haven't had the time to try decoding it yet...

Here's a rough sketchup of what my decoder does:

- Find the sync pattern (several 0x55)
- Swap the bits in each byte (i.e. MSB<-->LSB)
- Look for an address mark (clock pattern always 0x0E)
   - 0x70: ID address mark
     Calculate CRC16 (initial value 0xFFFF) over four bytes
   - 0x50: data address mark
   - 0xF0: defective track address mark
   - 0xD0: ECC data address mark

- The ID address mark contains the following information:
   0: cylinder
   1: head in bit 7, sector in bits 5..0
   2: CRC byte 1
   3: CRC byte 2


More information about the cctalk mailing list