hjalfi
Experienced Member
So using my prototype floppy disk reader, I've been looking at a disk from an old Brother word processor. ChuckG (who is quoted on wikipedia about this) says it's some weird-arse GCR system (not his words) with 240kB disks. That looks about right from what I can see. Data starts on PC track 3 on one side and seems to go up to track 80 (zero-based track numbering); weirdly tracks 0..2 are formatted too but unrecorded.
With my new pulsetrain decoder I can pull out the sector headers really easily. An X is a flux transition, a . is a gap.
Here's a few from the next track. I was actually expecting this to be identical given the Brother appears to be a 40-track system and my disk is using an 80-track drive.
So I bet the variable part in the first track is counting from 1 to 12, assuming a sane sector header. And the variation between the two tracks must indicate where the track number is stored. That ought to give a clue as to the GCR method being used. I can see the .XX.XX.X.X.XXX.X sequence used in sector 9 of the first track and sector 8 of the second, which makes sense. That's 16 bits long, so assuming the previous 16 bits is the track, then that gives XX.XXXXXX.XX.X.X for the first track number and .X.XX.XX.XX.XXXX for the second... and I can see both of those in the sector numbers, although not next to each other.
This suggests a GCR scheme with 16 bits of encoding representing a byte. (And, looking through the actual data, I can see lots of suspicious looking 16-bit aligned structures.)
I suppose the next thing to do is to write a tool which extracts all the 16-bit sequences from the data and see how many different ones there are --- 256, maybe? But I've never heard of a GCR system which like this. It seems woefully inefficient, although it'd explain how Brother managed to fit only 240kB on a disk...
With my new pulsetrain decoder I can pull out the sector headers really easily. An X is a flux transition, a . is a gap.
Code:
1: X.X.X.X.XXXXX.XXXXXX.XX.X.X.X.XX.XX.XX.XXXXX.XXX.XX.X.X.X.X.X.X.X.X.X..X.X.X
2: X.X.X.X.XXXXX.XXXXXX.XX.X.XX.X.XXXXXXX.X.XXX.XXX.XX.X.X.X.X.X.X.X.X.X.X.X.X
3: X.X.X.X.XXXXX.XXXXXX.XX.X.XXXX.XXXXX.X.X.XXX.XXX.XX.X.X.X.X.X.X.X.X.X.X.X.X
4: X.X.X.X.XXXXX.XXXXXX.XX.X.XXXXX.X.X.XXXXXXXX.XXX.XX.X.X.X.X.X.X.X.X.X.XXX.X
5: X.X.X.X.XXXXX.XXXXXX.XX.X.X.XXXX.XXXXXXX.XXX.XXX.XX.X.X.X.X.X.X.X.X.X.X.X.X
6: X.X.X.X.XXXXX.XXXXXX.XX.X.X.XXXXX.XXXXX.XXXX.XXX.XX.X.X.X.X.X.X.X.X.X...X.X.X
7: X.X.X.X.XXXXX.XXXXXX.XX.X.XXX.XXX.XX.XX.XXXX.XXX.XX.X.X.X.X.X.X.X.X.X.X.X.X.X
8: X.X.X.X.XXXXX.XXXXXX.XX.X.XXX.XXXXXX.XX.X.XX.XXX.XX.X.X.X.X.X.X.X.X.X.XX.X.X
9: X.X.X.X.XXXXX.XXXXXX.XX.X.X.XX.XX.X.X.XXX.XX.XXX.XX.X.X.X.X.X.X.X.X.X.X.X.X.X
10: X.X.X.X.XXXXX.XXXXXX.XX.X.XX.XXXX.XXX.X.XXXX.XXX.XX.X.X.X.X.X.X.X.X.X.X.X.X.X
11: X.X.X.X.XXXXX.XXXXXX.XX.X.XX.XXXXXXXX.X.X.XX.XXX.XX.X.X.X.X.X.X.X.X.X...X.X.X
12: X.X.X.X.XXXXX.XXXXXX.XX.X.X.X.X.XXX.XXX.X.XX.XXX.XX.X.X.X.X.X.X.X.X.X.X.X.X.X
Here's a few from the next track. I was actually expecting this to be identical given the Brother appears to be a 40-track system and my disk is using an 80-track drive.
Code:
1: X.X.X.X.XXX.X.XX.XX.XX.XXXX.XXXXX.XXXXX.XXXX.XXX.XX.X.X.X.X.X.X.X.X.X...X.X.X
2: X.X.X.X.XXX.X.XX.XX.XX.XXXXXX.XXX.XX.XX.XXXX.XXX.XX.X.X.X.X.X.X.X.X.X.XX.X.X.X
3: X.X.X.X.XXX.X.XX.XX.XX.XXXXXX.XXXXXX.XX.X.XX.XXX.XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X
4: X.X.X.X.XXX.X.XX.XX.XX.XXXX.XX.XX.X.X.XXX.XX.XXX.XX.X.X.X.X.X.X.X.X.X.X..X.X.X
5: X.X.X.X.XXX.X.XX.XX.XX.XXXXX.XXXX.XXX.X.XXXX.XXX.XX.X.X.X.X.X.X.X.X.X.X.X.X.X
6: X.X.X.X.XXX.X.XX.XX.XX.XXXXX.XXXXXXXX.X.X.XX.XXX.XX.X.X.X.X.X.X.X.X.X.XX.X.X.X
7: X.X.X.X.XXX.X.XX.XX.XX.XXXX.X.X.XXX.XXX.X.XX.XXX.XX.X.X.X.X.X.X.X.X.X..X.X.X.X.X
8: X.X.X.X.XXX.X.XX.XX.XX.XXXX.X.XX.XX.XX.XXXXX.XXX.XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X
9: X.X.X.X.XXX.X.XX.XX.XX.XXXXX.X.XXXXXXX.X.XXX.XXX.XX.X.X.X.X.X.X.X.X.X.X..X.X.X
10: X.X.X.X.XXX.X.XX.XX.XX.XXXXXXX.XXXXX.X.X.XXX.XXX.XX.X.X.X.X.X.X.X.X.X
11: X.X.X.X.XXX.X.XX.XX.XX.XXXXXXXX.X.X.XXXXXXXX.XXX.XX.X.X.X.X.X.X.X.X.X.XX.X
12: X.X.X.X.XXX.X.XX.XX.XX.XXXX.XXXX.XXXXXXX.XXX.XXX.XX.X.X.X.X.X.X.X.X.X.XX.X
So I bet the variable part in the first track is counting from 1 to 12, assuming a sane sector header. And the variation between the two tracks must indicate where the track number is stored. That ought to give a clue as to the GCR method being used. I can see the .XX.XX.X.X.XXX.X sequence used in sector 9 of the first track and sector 8 of the second, which makes sense. That's 16 bits long, so assuming the previous 16 bits is the track, then that gives XX.XXXXXX.XX.X.X for the first track number and .X.XX.XX.XX.XXXX for the second... and I can see both of those in the sector numbers, although not next to each other.
This suggests a GCR scheme with 16 bits of encoding representing a byte. (And, looking through the actual data, I can see lots of suspicious looking 16-bit aligned structures.)
I suppose the next thing to do is to write a tool which extracts all the 16-bit sequences from the data and see how many different ones there are --- 256, maybe? But I've never heard of a GCR system which like this. It seems woefully inefficient, although it'd explain how Brother managed to fit only 240kB on a disk...