Group Coded Recording (Gruppenkodierte Aufzeichnung oder Gruppenwechselschrift, 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 5¼"-Diskettenlaufwerken von Commodore (siehe auch CBM-Diskettenlaufwerke) und Apple, wobei es diverse leicht unterschiedliche Varianten des GCR-Verfahrens gibt. Daher sind Commodore- und Apple-Disketten nicht untereinander austauschbar.
Commodore-GCR Bei Commodore gab es die zusätzliche Bedingung, dass nicht mehr als acht Eins-Bits aufeinander folgen dürfen, da eine solche Aneinanderreihung als Sektor-Startmarke (SYNC) fehlinterpretiert würde. Es wurde jeweils ein Nibble (vier Bit) in fünf Bit kodiert. Daraus ergibt sich, dass immer vier Bytes in fünf Bytes umkodiert wurden. 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 acht Eins-Bits hintereinander auftreten.
Apple-GCR 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 (in einer frühen Codevariante, die bei Apple nur in den Betriebssystemen Apple DOS 3.1 und 3.2 von 1978 bis 1980 benutzt wurde, waren gar keine aufeinander folgenden Null-Bits erlaubt). Letztlich wurden bei Apple-GCR (in der 1980er-Variante, eingeführt mit Apple DOS 3.3 und auf dem Macintosh noch bis in die 1990er Jahre verwendet) 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 1978er-Variante kodierte nur fünf Bits in acht Bits um und war damit nochmals deutlich weniger effizient. Die Codetabelle für Apple-GCR in der 1980er-Variante sieht so aus: Daten Code 000000 10010110 000001 10010111 000010 10011010 000011 10011011 000100 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 010100 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 100100 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 110100 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
Andere Systeme Bei IBM-PCs wurde stattdessen Modified Frequency Modulation (MFM) benutzt. Die MFM-Codierung und -Decodierung wird in PCs per Hardware, im Floppy-Controller des Chipsatzes, realisiert und kann daher auch nicht ohne weiteres umgangen werden. Mit Hilfe spezieller Controller wie dem Catweasel-Controller oder KryoFlux ist es aber auch PC-Diskettenlaufwerken möglich, GCR-kodierte Commodore- und Apple-Disketten zu lesen und auch zu schreiben.
Es gibt allerdings auch Software (z. B. „Disk2FDI“), die zumindest das Lesen von GCR-Disketten und anderen nicht-PC-Formaten in normalen PCs durch ausgeklügelte Tricks mittels zweier gekoppelter Diskettenlaufwerke ermöglicht, sofern denn das Mainboard des PC auch zwei Diskettenlaufwerke unterstützt (was bei den allermeisten neueren Boards nicht mehr der Fall ist). Das Schreiben von GCR-Disketten ist aber nach bisherigem Kenntnisstand für PC-Laufwerke an gewöhnlichen PC-Diskettencontrollern auch mit Tricks nicht möglich.
Einzelnachweise
Kategorie:Digitale Speichermedien Kategorie:Speichertechnologie Kategorie:Leitungscode