Deciphering an odd floppy disk format.
Mattis Lind
mattislind at gmail.com
Mon Feb 15 11:08:45 CST 2021
I did some more research into this and found that a pattern 0x55509255 for
Address mark and 0x55509251 for Data mark could be used to match against
the incoming synchronized data stream (pre MFM decoding). These patterns
contain the longer flux.
I decoded the MFM data after the address mark and both track and sector is
visible as what it seems to be valid bit patterns. What is interesting
though is that the number of sectors appear to vary among tracks. Track 0
had 128 address marks, while quite many had 81 sectors. Still others had 66
and a few had 121. I studied track 18 more in detail and there were no gaps
in the sector count so I guess nothing is missing. Address marks are spaced
over the full number of samples (around 65k per revolution).
My guess is that the data that follows the sector ID is some kind of
checksum.
I tried to understand the data field but wasn't very successful. Tried
backwards and forwards and with varying bit offsets for both ASCII and
EBCDIC. But not a single valid string. Perhaps my decoder had some fault.
Will do a deeper study on the data field.
I have put some files here if anyone has some insights:
https://drive.google.com/drive/folders/1URC5i8AsRyP08d_ZhWRovbDp2TMgdj4B?usp=sharing
Looking a bit further on the *.addressAndData files I see that it seems
that the marks should probably contain the first bit of the decoded data
that follows, since when MFM decoded data fields always starts with a 1 and
address fields always starts with a 0. Including these also makes sense
because then the Track and sector will end up on proper 8 bit boundaries.
/Mattis
Den lör 13 feb. 2021 kl 21:51 skrev Mattis Lind <mattislind at gmail.com>:
>
>
> Den lör 13 feb. 2021 kl 21:06 skrev Chuck Guzis <cclist at sydex.com>:
>
>> On 2/13/21 11:15 AM, Mattis Lind wrote:
>>
>> > As to the 8x/5xH intervals, they appear to be part of the
>> > preamble to address marks.
>> >
>> >
>> > Can you please elaborate! What do you mean by 8x/5xH intervals?
>> >
>> > You think that these fluxes are part of some address mark or data mark,
>> > right?
>>
>> By 8x/5xh I mean the intervals that you noted were 84 clocks. Consider
>> a part of your sample:
>>
>> > 00003f0 20 1e 1f 1e 1f 1e 1f 1e 1f 1e 20 1e 20 1d 20 1e | .........
>> . . .|
>> > 00000400 20 1e 20 1e 1f 1d 20 1d 20 1e 1f 1e 1f 1e 1f 1e | . ... .
>> .......|
>> > 00000410 1f 1e 20 1e 1f 1e 1f 1e 1f 1e 1f 1e 1f 1e 1f 1e |..
>> .............|
>> > 00000420 22 20 39 30 1f 2e 1f 1d 20 1e 20 1d 1f 1e 20 1d |" 90.... .
>> ... .|
>> > 00000430 20 1e 20 1e 20 1d 1f 1e 1f 1e 1f 1e 20 1e 1f 1e | . .
>> ....... ...|
>> > 00000440 1f 1e 1f 1e 20 1d 20 1e 1f 1e 1f 1d 20 1e 1f 1e |.... .
>> ..... ...|
>> > 00000450 20 1d 1f 1c 54 2d 30 2e 1f 1d 1f 2f 1f 1d 1f 1d |
>> ...T-0..../....|
>> > 00000460 30 40 2f 2e 1e 1c 43 1b 44 2d 1e 1e 1f 1e 1f 1e |0@
>> /...C.D-......|
>> > 00000470 1f 2f 31 1d 1f 1e 1f 1e 1f 1e 1f 1c 21 1e 1f 1f
>> |./1.........!...|
>> > 00000480 1e 1f 1e 1f 1e 1f 1e 1f 1e 1f 1e 1f 1f 1e 1f 1e
>> |................|
>> > 00000490 1f 1e 1f 1f 1e 1e 1f 1e 1f 1e 1f 1e 1f 1e 1e 1f
>> |................|
>> > 000004a0 1f 1e 1f 1f 1f 1d 1d 53 2d 2f 2d 1d 42 1d 2e 30
>> |.......S-/-.B..0|
>> > 000004b0 2f 1e 1e 1f 1e 1e 30 30 1e 1e 1e 1e 1e 30 2f 1e
>> |/.....00.....0/.|
>>
>> Note that the 54 at 0454 appears to be the preamble to an address mark.
>> Similarly, we can see the same here:
>>
>> > 00000740 20 1e 20 1d 20 1e 20 1e 20 1d 20 1e 20 1d 20 1d | . . . . .
>> . . .|
>> > 00000750 1f 1e 20 1e 1e 1c 54 2c 30 2e 1f 1d 20 2f 1e 1e |..
>> ...T,0... /..|
>> > 00000760 1f 1d 30 40 2f 2e 1f 1d 1f 30 1e 2f 30 1d 1f 1d |..0@
>> /....0./0...|
>> > 00000770 31 2e 1e 2f 30 1d 1f 1e 20 1e 1f 1e 1f 1f 27 1e |1../0...
>> .....'.|
>> > 00000780 30 2f 1d 1f 1e 1f 1e 1f 1e 1f 1e 1f 1f 1f 1e 1f
>> |0/..............|
>> > 00000790 1e 1f 1e 1f 1e 1f 1e 1f 1e 1f 1f 1f 1e 1f 1e 1f
>> |................|
>> > 000007a0 1e 1f 1e 1f 1f 1e 1d 53 2d 2f 2e 1d 42 1c 40 42
>> |.......S-/..B. at B|
>> > 000007b0 2e 2e 1c 43 2c 2e 41 1c 40 42 2c 2f 2f 1e 30 1e |...C,.A. at B
>> ,//.0.|
>> > 000007c0 30 1d 30 30 2e 1d 31 1e 1e 1f 1e 31 1d 1d 43 2e
>> |0.00..1....1..C.|
>> > 000007d0 1d 30 30 1e 1e 1f 1e 1e 30 30 1d 1f 1f 1e 1e 31
>> |.00.....00.....1|
>>
>> Note the 54 at 0756 at the start of what appears to be an ID address
>> mark and the 53 at 07a7 at the start of what appears to be a data
>> address mark.
>>
>
> That makes sense. I tried to hand decode the section directly after 0756
> and it decoded fine as mfm. No violations. And I could see something that
> could possibly be the value 5 which would then correspond to track 5. Now I
> can try to write a piece of software that handles it and see if this gives
> something useful. I have a directory listing so somewhere I think I could
> match up what I get with that printout.
>
> /Mattis
>
>
>> --Chuck
>>
>>
>>
>>
More information about the cctech
mailing list