RLL codes are defined by four main parameters:
| m, n | refer to the rate of the code |
| d | minimal number of zeroes between consecutive ones |
| k | maximal number of zeroes between consecutive ones |
(0,1): FM
| data | encoded |
|---|---|
| 0 | 10 |
| 1 | 11 |
The first bit of the encoded symbol functions as a clock pulse.
|
Data: Encoded: 40 units, 29 edges, 20 in-signal clock pulses |
(1,2): Differential Manchester
| data | encoded |
|---|---|
| 0 | 11 |
| 1 | 01 |
The second bit of the encoded symbol functions as a clock pulse.
|
Data: Encoded: 40 units, 31 edges, 20 in-signal clock pulses |
(1,3): MFM
First, there’s the basic conversion table
| data | encoded | |
|---|---|---|
| 0 | x0 |
0x → 01 |
| 1 | 01 |
But then there‘s the formula
x, y, z → x,
| 000 | 0101 |
|---|---|
| 001 | 0100 |
| 010 | 0010 |
| 011 | 0010 |
| 100 | 1001 |
| 101 | 1000 |
| 110 | 1010 |
| 111 | 1010 |
|
Data: Encoded: 40 units, 14 edges, 5 in-signal clock pulses |
|
Data: Encoded:
40 units, 14 edges, 9 in-signal clock pulses |
Clock pulses seem to come at unit boundaries "0 1"
(0,2): GCR
| data | IBM | CBM |
|---|---|---|
| 0000 | 11001 | 01010 |
| 0001 | 11011 | 01011 |
| 0010 | 10010 | 10010 |
| 0011 | 10011 | 10011 |
| 0100 | 11101 | 01110 |
| 0101 | 10101 | 01111 |
| 0110 | 10110 | 10110 |
| 0111 | 10111 | 10111 |
| 1000 | 11010 | 01001 |
| 1001 | 01001 | 11001 |
| 1010 | 01010 | 11010 |
| 1011 | 01011 | 11011 |
| 1100 | 11110 | 01101 |
| 1101 | 01101 | 11101 |
| 1110 | 01110 | 11110 |
| 1111 | 01111 | 10101 |
|
Data: Encoded (IBM): Encoded (CBM): |
(1,7)
| data | Jacoby & Kost | DC Free | Cirrus | |
|---|---|---|---|---|
| 00 | 101 | x01 | 010 | 0x → 01 |
| 01 | 100 | 010 | … | |
| 10 | 001 | x00 | x01 | |
| 11 | 010 | … | x00 | |
| 0000 | 101000 | |||
| 0001 | 100000 | |||
| 0100 | 010001 | |||
| 0101 | 010000 | |||
| 0110 | x00001 | |||
| 0111 | x00000 | |||
| 1000 | 001000 | |||
| 1001 | 010000 | |||
| 1100 | 010001 | |||
| 1101 | x00000 | |||
| 1110 | x00001 | |||
| 1111 | 010000 |
|
Data: Encoded (J&K): Encoded (DC Free): Encoded (Cirrus): J&K:
x,0,0,y → “00 00” → “101000”, to avoid “101101” |
(2,7)
| data | WD encoded | Seagate encoded | Perstor encoded |
|---|---|---|---|
| 10 | 0100 | 0100 | 0100 |
| 11 | 1000 | 1000 | 1000 |
| 000 | 100100 | 000100 | 100100 |
| 001 | 001000 | ||
| 010 | 000100 | 100100 | 000100 |
| 011 | 001000 | 001000 | |
| 0010 | 00100100 | 00100100 | |
| 0011 | 00001000 | 00001000 | |
| 0110 | 00100100 | ||
| 0111 | 00001000 |
|
Data: Encoded (WD): Encoded (Seagate): Encoded (Perstor): |
(1,13): HHH
| data | encoded |
|---|---|
| 00 | 010 |
| 01 | 001 |
| 10 | 100 |
| 11 | 101 |
| 0110 | 001000 |
| 0111 | 010000 |
| 1110 | 101000 |
| 1111 | 100000 |
| 001100 | 010000000 |
| 001101 | 001000000 |
| 101100 | 100000000 |
| 101101 | 101000000 |
| 00111011 | 010000000000 |
| 10111011 | 100000000000 |
Designed for IrDA transfer rather than magnetic storage.
|
Data: Encoded: |
Links