aus Wikipedia, der freien Enzyklopädie
Group Coded Recording (Gruppenkodierte Aufzeichnung, kurz: GCR) bezeichnet ein Aufzeichnungsverfahren für magnetische Datenträger wie Magnetbänder oder Disketten. Bei diesem Verfahren wird ein Daten-Byte mit zehn oder mehr Bit so kodiert, dass nie mehr als zwei Null-Bits aufeinanderfolgen. Eins-Bits werden durch einen Polaritätswechsel der magnetischen Datenträgeroberfläche dargestellt, Null-Bits durch keinen Polaritätswechsel innerhalb einer bestimmten Zeitperiode. Durch das Auftreten von Eins-Bits nach spätestens zwei Null-Bits erfolgt eine ständige Synchronisierung der Lese-Elektronik. Dies ist nötig, da bei längeren Folgen von Null-Bits (d. h., bei mehr als zwei aufeinanderfolgenden Nullen) wegen der immer vorhandenen leichten Schwankungen der Drehgeschwindigkeit die genaue Anzahl der vorhandenen Null-Bits nicht mehr sicher festgestellt werden könnte.
Zum Einsatz kam das GCR-Verfahren z. B. in Diskettenlaufwerken von Commodore und Apple, wobei es diverse leicht unterschiedliche Varianten des GCR-Verfahrens gibt. Daher sind Commodore- und Apple-Disketten nicht untereinander austauschbar.
Bei Commodore gab es die zusätzliche Bedingung, dass nicht mehr als neun Eins-Bits aufeinander folgen dürfen, da eine solche Aneinanderreihung als Sektor-Startmarke (sync) fehlinterpretiert würde. Es wurden jeweils ein Nibble (vier Bit) in fünf Bit kodiert. Daraus ergibt sich, dass vier Bytes in fünf Bytes kodiert werden müssen. Die Tabelle für Commodores GCR-Kodierung sieht folgendermaßen aus (links die Nutzdaten, rechts der dafür auf die Diskette geschriebene Code):
| Daten |
Code |
| 0000 |
01010 |
| 0001 |
01011 |
| 0010 |
10010 |
| 0011 |
10011 |
| 0100 |
01110 |
| 0101 |
01111 |
| 0110 |
10110 |
| 0111 |
10111 |
|
| Daten |
Code |
| 1000 |
01001 |
| 1001 |
11001 |
| 1010 |
11010 |
| 1011 |
11011 |
| 1100 |
01101 |
| 1101 |
11101 |
| 1110 |
11110 |
| 1111 |
10101 |
|
Mit dieser Kodierung ist sichergestellt, dass nie mehr als zwei Null-Bits oder mehr als neun Eins-Bits hintereinander auftreten.
Bei Apple gab es keine Beschränkung der Anzahl der Eins-Bits, die aufeinander folgen dürfen, da dort andere Sektor-Startmarken verwendet wurden. Dafür gab es andere Zusatzbedingungen: Jedes Byte muss mit einem Eins-Bit beginnen, und in den übrigen sieben Bits müssen mindestens ein Paar aufeinander folgende Eins-Bits und nicht mehr als ein Paar aufeinander folgende Null-Bits vorkommen. Letztlich wurden bei Apple-GCR jeweils sechs Bits in acht Bits umkodiert, wodurch der Code insgesamt etwa sechs Prozent weniger effizient war als Commodore-GCR, jedoch war zugleich der Hardware-Aufwand deutlich geringer. Die Codetabelle für Apple-GCR sieht so aus:
| Daten |
Code |
| 000000 |
10010110 |
| 000001 |
10010111 |
| 000010 |
10011010 |
| 000011 |
10011011 |
| 000010 |
10011101 |
| 000101 |
10011110 |
| 000110 |
10011111 |
| 000111 |
10100110 |
|
| Daten |
Code |
| 001000 |
10100111 |
| 001001 |
10101011 |
| 001010 |
10101100 |
| 001011 |
10101101 |
| 001100 |
10101110 |
| 001101 |
10101111 |
| 001110 |
10110010 |
| 001111 |
10110011 |
|
| Daten |
Code |
| 010000 |
10110100 |
| 010001 |
10110101 |
| 010010 |
10110110 |
| 010011 |
10110111 |
| 010010 |
10111001 |
| 010101 |
10111010 |
| 010110 |
10111011 |
| 010111 |
10111100 |
|
| Daten |
Code |
| 011000 |
10111101 |
| 011001 |
10111110 |
| 011010 |
10111111 |
| 011011 |
11001011 |
| 011100 |
11001101 |
| 011101 |
11001110 |
| 011110 |
11001111 |
| 011111 |
11010011 |
|
| Daten |
Code |
| 100000 |
11010110 |
| 100001 |
11010111 |
| 100010 |
11011001 |
| 100011 |
11011010 |
| 100010 |
11011011 |
| 100101 |
11011100 |
| 100110 |
11011101 |
| 100111 |
11011110 |
|
| Daten |
Code |
| 101000 |
11011111 |
| 101001 |
11100101 |
| 101010 |
11100110 |
| 101011 |
11100111 |
| 101100 |
11101001 |
| 101101 |
11101010 |
| 101110 |
11101011 |
| 101111 |
11101100 |
|
| Daten |
Code |
| 110000 |
11101101 |
| 110001 |
11101110 |
| 110010 |
11101111 |
| 110011 |
11110010 |
| 110010 |
11110011 |
| 110101 |
11110100 |
| 110110 |
11110101 |
| 110111 |
11110110 |
|
| Daten |
Code |
| 111000 |
11110111 |
| 111001 |
11111001 |
| 111010 |
11111010 |
| 111011 |
11111011 |
| 111100 |
11111100 |
| 111101 |
11111101 |
| 111110 |
11111110 |
| 111111 |
11111111 |
|
Bei IBM-PCs wurde stattdessen Modified Frequency Modulation (MFM) benutzt. Mit Hilfe spezieller Controller wie dem Catweasel-Controller ist es PC-Diskettenlaufwerken möglich, GCR-kodierte Commodore- und Apple-Disketten zu lesen. Es gibt allerdings auch Software (z. B. "Disk2FDI"), die dies mittels zweier gekoppelter Diskettenlaufwerke ermöglicht. Das Schreiben von GCR-Disketten ist aber PC-Laufwerken an gewöhnlichen PC-Diskettencontrollern nicht möglich.