
MFMvsGCR
Briefing put, MFM format inserts clock bits between
each data bit written to disk. If two consecutive
data bits are zero, a 1 clock bit is inserted
between them. If either of two consecutive bits is
a 1, a 0 clock pulse in put between them. Using
this coding method, the amount of data written to a
disk is doubled, but the accuracy of reading the
data is increased. You see, the disk controller has
an easier time synchronizing on data that changes
states rather than data that repeats such as a long
string of 1's or 0's.
GCR format handles synchronization problems by
encoding every four bits or data into five bits.
The result is a binary number with no more than two
adjacent 0 bits and no more than eight adjacent 1
bits. (This format is used on the Commodore 1541
drives on the C64.) The following table shows the 5
bit GCR equivalents of the binary numbers 00001111.
Binary GCR
 
0000 01010 Note that with GCR, no more than
0001 01011 8 on bits or 2 off bits are
0010 10010 possible.
0011 10011
0100 01110
0101 01111
0110 10110
0111 10111
1000 01001
1001 11001
1010 11010
1011 11011
1100 01101
1101 11101
1110 11110
1111 10101
