Group Coded Recording

Group Coded Recording (Gruppenkodierte Aufzeichnung oder Gruppenwechselschrift,[1][2] 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.[3]

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):

DatenCode
000001010
000101011
001010010
001110011
010001110
010101111
011010110
011110111
DatenCode
100001001
100111001
101011010
101111011
110001101
110111101
111011110
111110101

Mit dieser Kodierung ist sichergestellt, dass nie mehr als zwei Null-Bits oder mehr als acht Eins-Bits hintereinander auftreten.[4]

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:

DatenCode
00000010010110
00000110010111
00001010011010
00001110011011
00010010011101
00010110011110
00011010011111
00011110100110
DatenCode
00100010100111
00100110101011
00101010101100
00101110101101
00110010101110
00110110101111
00111010110010
00111110110011
DatenCode
01000010110100
01000110110101
01001010110110
01001110110111
01010010111001
01010110111010
01011010111011
01011110111100
DatenCode
01100010111101
01100110111110
01101010111111
01101111001011
01110011001101
01110111001110
01111011001111
01111111010011
DatenCode
10000011010110
10000111010111
10001011011001
10001111011010
10010011011011
10010111011100
10011011011101
10011111011110
DatenCode
10100011011111
10100111100101
10101011100110
10101111100111
10110011101001
10110111101010
10111011101011
10111111101100
DatenCode
11000011101101
11000111101110
11001011101111
11001111110010
11010011110011
11010111110100
11011011110101
11011111110110
DatenCode
11100011110111
11100111111001
11101011111010
11101111111011
11110011111100
11110111111101
11111011111110
11111111111111

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

  1. Karsten Schramm: Die Floppy 1570/1571. Markt & Technik Verlag AG, 10.2.1 Das GCR-Format.
  2. https://www.online.uni-marburg.de/hrz/chronik/quellen/sperry-univac-magnetbandsystem-uniservo-30-1983.pdf
  3. Karsten Schramm: Die Floppy 1570/1571. Markt & Technik Verlag AG, 10.2.1.1 Das Ausgleichen von Laufwerksschwankungen unter GCR.
  4. Karsten Schramm: Die Floppy 1570/1571. Markt & Technik Verlag AG, 10.2.1.3 Die GCR-Codierung.