# Group coded recording

En informática, grabación codificada de grupo o grabación de código de grupo (GCR, Group coded recording) se refiere a varios métodos de codificación distintos pero relacionados para representar datos en medios magnéticos. El primero, utilizado en cinta magnética de 6250 bits por pulgada desde 1973, es un código de corrección de errores combinado con un esquema de codificación ejecución de longitud limitada (RLL), perteneciente al grupo de códigos de modulación. Los otros son diferentes métodos de codificación de discos duros de mainframes así como disqueteras utilizados en algunas microcomputadoras hasta finales de la década de 1980. GCR es una forma modificada de un código NRZI, pero necesariamente con una densidad de transición más alta.

## Cinta magnética

La grabación codificada en grupo se utilizó por primera vez para cinta magnética de almacenamiento de datos en cinta de carrete a carrete de 9 pistas. El término fue acuñado durante el desarrollo de la unidad de cinta magnética IBM 3420 modelo 4/6/8 y la correspondiente unidad de control de cinta 3803 modelo 2, both introduced in 1973. IBM se refirió al código de corrección de errores en sí mismo como «grabación codificada en grupo». Sin embargo, GCR ha llegado a referirse al formato de grabación de la cinta de 6250 bpi (250 bits/mm) en su totalidad y, posteriormente, a formatos que utilizan códigos RLL similares sin el código de corrección de errores.
Para leer y escribir de manera confiable en cinta magnética, se deben seguir varias restricciones en la señal que se va a escribir. La primera es que dos inversiones de flujo adyacentes deben estar separados por una cierta distancia en el medio, definida por las propiedades magnéticas del medio en sí. La segunda es que debe haber una inversión con la frecuencia suficiente para mantener el reloj del lector en fase con la señal escrita; es decir, la señal debe ser de reloj automático y, lo que es más importante, mantener la salida de reproducción lo suficientemente alta, ya que es proporcional a la densidad del flujo de transiciones. Antes de las cintas 6250 bpi, las cintas de 1600 bpi cumplían con estas restricciones utilizando una técnica llamada codificación de fase (PE), que solo tenía una eficiencia del 50%. Para las cintas GCR de 6250 bpi, se usa un código RLL (0, 2), o más específicamente un código de bloque 4/5 (0, 2) que a veces también se denomina codificación GCR (4B-5B). Este código requiere que se escriban cinco bits por cada cuatro bits de datos. El código está estructurado de modo que no más de dos bits 0 (que están representados por la falta de una inversión de flujo) puedan aparecer en una fila, ya sea dentro de un código o entre códigos, sin importar los datos. Este código RLL se aplica de forma independiente a los datos que van a cada una de las nueve pistas.
De los 32 patrones de cinco bits, ocho comienzan con dos bits cero consecutivos, otros seis terminan con dos bits cero consecutivos y uno más (10001) contiene tres bits cero consecutivos. Eliminando el patrón de todos unos (11111) del resto deja 16 palabras de código adecuadas.
El código GCR RLL de 6250 bpi:
| Valor 4-bit | Valor 4-bit | Código GCR | Código GCR |
| hex | bin | bin | hex |
| 0x0 | 0000 | 1.1001 | 0x19 |
| 0x1 | 0001 | 1.1011 | 0x1B |
| 0x2 | 0010 | 1.0010 | 0x12 |
| 0x3 | 0011 | 1.0011 | 0x13 |
| 0x4 | 0100 | 1.1101 | 0x1D |
| 0x5 | 0101 | 1.0101 | 0x15 |
| 0x6 | 0110 | 1.0110 | 0x16 |
| 0x7 | 0111 | 1.0111 | 0x17 |
| Valor 4-bit | Valor 4-bit | Código GCR | Código GCR |
| hex | bin | bin | hex |
| 0x8 | 1000 | 1.1010 | 0x1A |
| 0x9 | 1001 | 0.1001 | 0x09 |
| 0xA | 1010 | 0.1010 | 0x0A |
| 0xB | 1011 | 0.1011 | 0x0B |
| 0xC | 1100 | 1.1110 | 0x1E |
| 0xD | 1101 | 0.1101 | 0x0D |
| 0xE | 1110 | 0.1110 | 0x0E |
| 0xF | 1111 | 0.1111 | 0x0F |
Once de los nibbles (distintos de xx00 y 0001) tienen su código formado anteponiendo el complemento del bit más significativo; es decir, abcd está codificado como a abcd. A los otros cinco valores se les asignan códigos que comienzan con 11. Nibbles de la forma ab00 tienen códigos 11ba a, es decir, el bit inverso del código para ab11. Al código 0001 se le asigna el valor restante 11011.
Debido a la densidad extremadamente alta en ese entonces de la cinta de 6250 bpi, el código RLL no es suficiente para garantizar un almacenamiento de datos confiable. En la parte superior del código RLL, se aplica un código de corrección de errores llamado código rectangular óptimo (ORC). Este código es una combinación de una pista de paridad y código polinomial similar a un CRC, pero estructurado para la corrección de errores en lugar de la detección de errores. Por cada siete bytes escritos en la cinta (antes de la codificación RLL), se calcula y se escribe un octavo byte de verificación. Al leer, la paridad se calcula en cada byte y se hace OR-exclusivo con el contenido de la pista de paridad, y el código de verificación polinomial calculado se hace OR exclusivo con el código de verificación recibido, lo que da como resultado dos palabras de 8 bits de coincidencia. Si ambos son cero, los datos están libres de errores. De lo contrario, la lógica de corrección de errores en el controlador de cinta corrige los datos antes de que se reenvíen al host. El código de corrección de errores puede corregir cualquier número de errores en una sola pista, o en dos pistas cualesquiera si las pistas erróneas pueden identificarse por otros medios.
En las unidades de cinta IBM más nuevas de 18 pistas y 12,7 mm que graban a 24000 bpi, el GCR 4/5(0, 2) fue reemplazado por un código de modulación 8/9 (0, 3) más eficiente, que asigna ocho bits a nueve bits.

## Discos duros

A mediados de la década de 1970, la División ISS de Sperry Univac estaba trabajando en grandes discos duros para el mercado de mainframes utilizando codificación de grupo.

## Disquetes

Al igual que las unidades de cinta magnética, las unidades de disquete tienen límites físicos en el espaciado de las inversiones de flujo (también llamadas transiciones, representadas bits 1).

### Micropolis

Ofreciendo unidades de disquete compatibles con GCR y controlador de disquete s (como el 100163-51-8 y 100163-52-6), Micropolis avaló la codificación de datos con grabación codificada en grupo en unidades de disquete de 77 pistas a 100 tpi de 5¼ pulgadas para almacenar doce sectores de 512 bytes por pista desde 1977 o 1978.

### Micro Peripherals

Micro Peripherals, Inc. (MPI) comercializaba unidades de disco de doble densidad de 5¼ pulgadas (como las unidades B51 y las unidades B52) y un controlador que implementa GCR desde principios de 1978.

### Durango

El Durango Systems F-85 (introducido en septiembre de 1978) usaba unidades de disquete de 5¼ pulgadas de una sola cara 100 tpi que proporcionaban 480 kB utilizando una codificación de grupo 4/5 grupo de alta densidad propia patentada. La máquina utilizaba un controlador de disquete Western Digital FD1781, diseñado por un ex ingeniero de Sperry ISS, con unidades Micropolis de 77 pistas. En modelos posteriores, como la serie Durango 800, se amplió a una opción de doble cara de 960 kB (946 kB con formato) por disquete.

### Apple

Para la unidad de disquete para el Apple II, Steve Wozniak inventó un controlador de disquete que (junto con la propia unidad Disk II) imponía dos restricciones:
* Entre dos bits 1 cualquiera, puede haber un máximo de un bit cero.
* Cada byte de 8 bits debe comenzar con un bit 1.
El esquema más simple para garantizar el cumplimiento de estos límites es registrar una transición de «reloj» adicional antes de cada bit de datos de acuerdo con la codificación diferencial Manchester o FM (digital) (modulación de frecuencia). Conocida como codificación 4-y-4, la implementación de Apple resultante permitió que solo se registraran diez sectores de 256 bytes por pista en un disquete de 5¼ pulgadas de densidad simple. Utiliza dos bytes para cada byte.
Tabla de codificación 4-y-4
| Valor | Valor | Código | Código |
| hex | bin | bin | hex |
| 0x00 | 0000.0000 | 1010.1010 1010.1010 | 0xAA 0xAA |
| 0x01 | 0000.0001 | 1010.1010 1010.1011 | 0xAA 0xAB |
| 0x02 | 0000.0010 | 1010.1011 1010.1010 | 0xAB 0xAA |
| 0x03 | 0000.0011 | 1010.1011 1010.1011 | 0xAB 0xAB |
| 0x04 | 0000.0100 | 1010.1010 1010.1110 | 0xAA 0xAE |
| 0x05 | 0000.0101 | 1010.1010 1010.1111 | 0xAA 0xAF |
| 0x06 | 0000.0110 | 1010.1011 1010.1110 | 0xAB 0xAE |
| 0x07 | 0000.0111 | 1010.1011 1010.1111 | 0xAB 0xAF |
| 0x08 | 0000.1000 | 1010.1110 1010.1010 | 0xAE 0xAA |
| 0x09 | 0000.1001 | 1010.1110 1010.1011 | 0xAE 0xAB |
| 0x0A | 0000.1010 | 1010.1111 1010.1010 | 0xAF 0xAA |
| 0x0B | 0000.1011 | 1010.1111 1010.1011 | 0xAF 0xAB |
| 0x0C | 0000.1100 | 1010.1110 1010.1110 | 0xAE 0xAE |
| 0x0D | 0000.1101 | 1010.1110 1010.1111 | 0xAE 0xAF |
| 0x0E | 0000.1110 | 1010.1111 1010.1110 | 0xAF 0xAE |
| 0x0F | 0000.1111 | 1010.1111 1010.1111 | 0xAF 0xAF |
| 0x10 | 0001.0000 | 1010.1010 1011.1010 | 0xAA 0xBA |
| 0x11 | 0001.0001 | 1010.1010 1011.1011 | 0xAA 0xBB |
| 0x12 | 0001.0010 | 1010.1011 1011.1010 | 0xAB 0xBA |
| 0x13 | 0001.0011 | 1010.1011 1011.1011 | 0xAB 0xBB |
| 0x14 | 0001.0100 | 1010.1010 1011.1110 | 0xAA 0xBE |
| 0x15 | 0001.0101 | 1010.1010 1011.1111 | 0xAA 0xBF |
| 0x16 | 0001.0110 | 1010.1011 1011.1110 | 0xAB 0xBE |
| 0x17 | 0001.0111 | 1010.1011 1011.1111 | 0xAB 0xBF |
| 0x18 | 0001.1000 | 1010.1110 1011.1010 | 0xAE 0xBA |
| 0x19 | 0001.1001 | 1010.1110 1011.1011 | 0xAE 0xBB |
| 0x1A | 0001.1010 | 1010.1111 1011.1010 | 0xAF 0xBA |
| 0x1B | 0001.1011 | 1010.1111 1011.1011 | 0xAF 0xBB |
| 0x1C | 0001.1100 | 1010.1110 1011.1110 | 0xAE 0xBE |
| 0x1D | 0001.1101 | 1010.1110 1011.1111 | 0xAE 0xBF |
| 0x1E | 0001.1110 | 1010.1111 1011.1110 | 0xAF 0xBE |
| 0x1F | 0001.1111 | 1010.1111 1011.1111 | 0xAF 0xBF |
| 0x20 | 0010.0000 | 1011.1010 1010.1010 | 0xBA 0xAA |
| 0x21 | 0010.0001 | 1011.1010 1010.1011 | 0xBA 0xAB |
| 0x22 | 0010.0010 | 1011.1011 1010.1010 | 0xBB 0xAA |
| 0x23 | 0010.0011 | 1011.1011 1010.1011 | 0xBB 0xAB |
| 0x24 | 0010.0100 | 1011.1010 1010.1110 | 0xBA 0xAE |
| 0x25 | 0010.0101 | 1011.1010 1010.1111 | 0xBA 0xAF |
| 0x26 | 0010.0110 | 1011.1011 1010.1110 | 0xBB 0xAE |
| 0x27 | 0010.0111 | 1011.1011 1010.1111 | 0xBB 0xAF |
| 0x28 | 0010.1000 | 1011.1110 1010.1010 | 0xBE 0xAA |
| 0x29 | 0010.1001 | 1011.1110 1010.1011 | 0xBE 0xAB |
| 0x2A | 0010.1010 | 1011.1111 1010.1010 | 0xBF 0xAA |
| 0x2B | 0010.1011 | 1011.1111 1010.1011 | 0xBF 0xAB |
| 0x2C | 0010.1100 | 1011.1110 1010.1110 | 0xBE 0xAE |
| 0x2D | 0010.1101 | 1011.1110 1010.1111 | 0xBE 0xAF |
| 0x2E | 0010.1110 | 1011.1111 1010.1110 | 0xBF 0xAE |
| 0x2F | 0010.1111 | 1011.1111 1010.1111 | 0xBF 0xAF |
| 0x30 | 0011.0000 | 1011.1010 1011.1010 | 0xBA 0xBA |
| 0x31 | 0011.0001 | 1011.1010 1011.1011 | 0xBA 0xBB |
| 0x32 | 0011.0010 | 1011.1011 1011.1010 | 0xBB 0xBA |
| 0x33 | 0011.0011 | 1011.1011 1011.1011 | 0xBB 0xBB |
| 0x34 | 0011.0100 | 1011.1010 1011.1110 | 0xBA 0xBE |
| 0x35 | 0011.0101 | 1011.1010 1011.1111 | 0xBA 0xBF |
| 0x36 | 0011.0110 | 1011.1011 1011.1110 | 0xBB 0xBE |
| 0x37 | 0011.0111 | 1011.1011 1011.1111 | 0xBB 0xBF |
| 0x38 | 0011.1000 | 1011.1110 1011.1010 | 0xBE 0xBA |
| 0x39 | 0011.1001 | 1011.1110 1011.1011 | 0xBE 0xBB |
| 0x3A | 0011.1010 | 1011.1111 1011.1010 | 0xBF 0xBA |
| 0x3B | 0011.1011 | 1011.1111 1011.1011 | 0xBF 0xBB |
| 0x3C | 0011.1100 | 1011.1110 1011.1110 | 0xBE 0xBE |
| 0x3D | 0011.1101 | 1011.1110 1011.1111 | 0xBE 0xBF |
| 0x3E | 0011.1110 | 1011.1111 1011.1110 | 0xBF 0xBE |
| 0x3F | 0011.1111 | 1011.1111 1011.1111 | 0xBF 0xBF |
| Valor | Valor | Código | Código |
| hex | bin | bin | hex |
| 0x40 | 0100.0000 | 1010.1010 1110.1010 | 0xAA 0xEA |
| 0x41 | 0100.0001 | 1010.1010 1110.1011 | 0xAA 0xEB |
| 0x42 | 0100.0010 | 1010.1011 1110.1010 | 0xAB 0xEA |
| 0x43 | 0100.0011 | 1010.1011 1110.1011 | 0xAB 0xEB |
| 0x44 | 0100.0100 | 1010.1010 1110.1110 | 0xAA 0xEE |
| 0x45 | 0100.0101 | 1010.1010 1110.1111 | 0xAA 0xEF |
| 0x46 | 0100.0110 | 1010.1011 1110.1110 | 0xAB 0xEE |
| 0x47 | 0100.0111 | 1010.1011 1110.1111 | 0xAB 0xEF |
| 0x48 | 0100.1000 | 1010.1110 1110.1010 | 0xAE 0xEA |
| 0x49 | 0100.1001 | 1010.1110 1110.1011 | 0xAE 0xEB |
| 0x4A | 0100.1010 | 1010.1111 1110.1010 | 0xAF 0xEA |
| 0x4B | 0100.1011 | 1010.1111 1110.1011 | 0xAF 0xEB |
| 0x4C | 0100.1100 | 1010.1110 1110.1110 | 0xAE 0xEE |
| 0x4D | 0100.1101 | 1010.1110 1110.1111 | 0xAE 0xEF |
| 0x4E | 0100.1110 | 1010.1111 1110.1110 | 0xAF 0xEE |
| 0x4F | 0100.1111 | 1010.1111 1110.1111 | 0xAF 0xEF |
| 0x50 | 0101.0000 | 1010.1010 1111.1010 | 0xAA 0xFA |
| 0x51 | 0101.0001 | 1010.1010 1111.1011 | 0xAA 0xFB |
| 0x52 | 0101.0010 | 1010.1011 1111.1010 | 0xAB 0xFA |
| 0x53 | 0101.0011 | 1010.1011 1111.1011 | 0xAB 0xFB |
| 0x54 | 0101.0100 | 1010.1010 1111.1110 | 0xAA 0xFE |
| 0x55 | 0101.0101 | 1010.1010 1111.1111 | 0xAA 0xFF |
| 0x56 | 0101.0110 | 1010.1011 1111.1110 | 0xAB 0xFE |
| 0x57 | 0101.0111 | 1010.1011 1111.1111 | 0xAB 0xFF |
| 0x58 | 0101.1000 | 1010.1110 1111.1010 | 0xAE 0xFA |
| 0x59 | 0101.1001 | 1010.1110 1111.1011 | 0xAE 0xFB |
| 0x5A | 0101.1010 | 1010.1111 1111.1010 | 0xAF 0xFA |
| 0x5B | 0101.1011 | 1010.1111 1111.1011 | 0xAF 0xFB |
| 0x5C | 0101.1100 | 1010.1110 1111.1110 | 0xAE 0xFE |
| 0x5D | 0101.1101 | 1010.1110 1111.1111 | 0xAE 0xFF |
| 0x5E | 0101.1110 | 1010.1111 1111.1110 | 0xAF 0xFE |
| 0x5F | 0101.1111 | 1010.1111 1111.1111 | 0xAF 0xFF |
| 0x60 | 0110.0000 | 1011.1010 1110.1010 | 0xBA 0xEA |
| 0x61 | 0110.0001 | 1011.1010 1110.1011 | 0xBA 0xEB |
| 0x62 | 0110.0010 | 1011.1011 1110.1010 | 0xBB 0xEA |
| 0x63 | 0110.0011 | 1011.1011 1110.1011 | 0xBB 0xEB |
| 0x64 | 0110.0100 | 1011.1010 1110.1110 | 0xBA 0xEE |
| 0x65 | 0110.0101 | 1011.1010 1110.1111 | 0xBA 0xEF |
| 0x66 | 0110.0110 | 1011.1011 1110.1110 | 0xBB 0xEE |
| 0x67 | 0110.0111 | 1011.1011 1110.1111 | 0xBB 0xEF |
| 0x68 | 0110.1000 | 1011.1110 1110.1010 | 0xBE 0xEA |
| 0x69 | 0110.1001 | 1011.1110 1110.1011 | 0xBE 0xEB |
| 0x6A | 0110.1010 | 1011.1111 1110.1010 | 0xBF 0xEA |
| 0x6B | 0110.1011 | 1011.1111 1110.1011 | 0xBF 0xEB |
| 0x6C | 0110.1100 | 1011.1110 1110.1110 | 0xBE 0xEE |
| 0x6D | 0110.1101 | 1011.1110 1110.1111 | 0xBE 0xEF |
| 0x6E | 0110.1110 | 1011.1111 1110.1110 | 0xBF 0xEE |
| 0x6F | 0110.1111 | 1011.1111 1110.1111 | 0xBF 0xEF |
| 0x70 | 0111.0000 | 1011.1010 1111.1010 | 0xBA 0xFA |
| 0x71 | 0111.0001 | 1011.1010 1111.1011 | 0xBA 0xFB |
| 0x72 | 0111.0010 | 1011.1011 1111.1010 | 0xBB 0xFA |
| 0x73 | 0111.0011 | 1011.1011 1111.1011 | 0xBB 0xFB |
| 0x74 | 0111.0100 | 1011.1010 1111.1110 | 0xBA 0xFE |
| 0x75 | 0111.0101 | 1011.1010 1111.1111 | 0xBA 0xFF |
| 0x76 | 0111.0110 | 1011.1011 1111.1110 | 0xBB 0xFE |
| 0x77 | 0111.0111 | 1011.1011 1111.1111 | 0xBB 0xFF |
| 0x78 | 0111.1000 | 1011.1110 1111.1010 | 0xBE 0xFA |
| 0x79 | 0111.1001 | 1011.1110 1111.1011 | 0xBE 0xFB |
| 0x7A | 0111.1010 | 1011.1111 1111.1010 | 0xBF 0xFA |
| 0x7B | 0111.1011 | 1011.1111 1111.1011 | 0xBF 0xFB |
| 0x7C | 0111.1100 | 1011.1110 1111.1110 | 0xBE 0xFE |
| 0x7D | 0111.1101 | 1011.1110 1111.1111 | 0xBE 0xFF |
| 0x7E | 0111.1110 | 1011.1111 1111.1110 | 0xBF 0xFE |
| 0x7F | 0111.1111 | 1011.1111 1111.1111 | 0xBF 0xFF |
| Valor | Valor | Código | Código |
| hex | bin | bin | hex |
| 0x80 | 1000.0000 | 1110.1010 1010.1010 | 0xEA 0xAA |
| 0x81 | 1000.0001 | 1110.1010 1010.1011 | 0xEA 0xAB |
| 0x82 | 1000.0010 | 1110.1011 1010.1010 | 0xEB 0xAA |
| 0x83 | 1000.0011 | 1110.1011 1010.1011 | 0xEB 0xAB |
| 0x84 | 1000.0100 | 1110.1010 1010.1110 | 0xEA 0xAE |
| 0x85 | 1000.0101 | 1110.1010 1010.1111 | 0xEA 0xAF |
| 0x86 | 1000.0110 | 1110.1011 1010.1110 | 0xEB 0xAE |
| 0x87 | 1000.0111 | 1110.1011 1010.1111 | 0xEB 0xAF |
| 0x88 | 1000.1000 | 1110.1110 1010.1010 | 0xEE 0xAA |
| 0x89 | 1000.1001 | 1110.1110 1010.1011 | 0xEE 0xAB |
| 0x8A | 1000.1010 | 1110.1111 1010.1010 | 0xEF 0xAA |
| 0x8B | 1000.1011 | 1110.1111 1010.1011 | 0xEF 0xAB |
| 0x8C | 1000.1100 | 1110.1110 1010.1110 | 0xEE 0xAE |
| 0x8D | 1000.1101 | 1110.1110 1010.1111 | 0xEE 0xAF |
| 0x8E | 1000.1110 | 1110.1111 1010.1110 | 0xEF 0xAE |
| 0x8F | 1000.1111 | 1110.1111 1010.1111 | 0xEF 0xAF |
| 0x90 | 1001.0000 | 1110.1010 1011.1010 | 0xEA 0xBA |
| 0x91 | 1001.0001 | 1110.1010 1011.1011 | 0xEA 0xBB |
| 0x92 | 1001.0010 | 1110.1011 1011.1010 | 0xEB 0xBA |
| 0x93 | 1001.0011 | 1110.1011 1011.1011 | 0xEB 0xBB |
| 0x94 | 1001.0100 | 1110.1010 1011.1110 | 0xEA 0xBE |
| 0x95 | 1001.0101 | 1110.1010 1011.1111 | 0xEA 0xBF |
| 0x96 | 1001.0110 | 1110.1011 1011.1110 | 0xEB 0xBE |
| 0x97 | 1001.0111 | 1110.1011 1011.1111 | 0xEB 0xBF |
| 0x98 | 1001.1000 | 1110.1110 1011.1010 | 0xEE 0xBA |
| 0x99 | 1001.1001 | 1110.1110 1011.1011 | 0xEE 0xBB |
| 0x9A | 1001.1010 | 1110.1111 1011.1010 | 0xEF 0xBA |
| 0x9B | 1001.1011 | 1110.1111 1011.1011 | 0xEF 0xBB |
| 0x9C | 1001.1100 | 1110.1110 1011.1110 | 0xEE 0xBE |
| 0x9D | 1001.1101 | 1110.1110 1011.1111 | 0xEE 0xBF |
| 0x9E | 1001.1110 | 1110.1111 1011.1110 | 0xEF 0xBE |
| 0x9F | 1001.1111 | 1110.1111 1011.1111 | 0xEF 0xBF |
| 0xA0 | 1010.0000 | 1111.1010 1010.1010 | 0xFA 0xAA |
| 0xA1 | 1010.0001 | 1111.1010 1010.1011 | 0xFA 0xAB |
| 0xA2 | 1010.0010 | 1111.1011 1010.1010 | 0xFB 0xAA |
| 0xA3 | 1010.0011 | 1111.1011 1010.1011 | 0xFB 0xAB |
| 0xA4 | 1010.0100 | 1111.1010 1010.1110 | 0xFA 0xAE |
| 0xA5 | 1010.0101 | 1111.1010 1010.1111 | 0xFA 0xAF |
| 0xA6 | 1010.0110 | 1111.1011 1010.1110 | 0xFB 0xAE |
| 0xA7 | 1010.0111 | 1111.1011 1010.1111 | 0xFB 0xAF |
| 0xA8 | 1010.1000 | 1111.1110 1010.1010 | 0xFE 0xAA |
| 0xA9 | 1010.1001 | 1111.1110 1010.1011 | 0xFE 0xAB |
| 0xAA | 1010.1010 | 1111.1111 1010.1010 | 0xFF 0xAA |
| 0xAB | 1010.1011 | 1111.1111 1010.1011 | 0xFF 0xAB |
| 0xAC | 1010.1100 | 1111.1110 1010.1110 | 0xFE 0xAE |
| 0xAD | 1010.1101 | 1111.1110 1010.1111 | 0xFE 0xAF |
| 0xAE | 1010.1110 | 1111.1111 1010.1110 | 0xFF 0xAE |
| 0xAF | 1010.1111 | 1111.1111 1010.1111 | 0xFF 0xAF |
| 0xB0 | 1011.0000 | 1111.1010 1011.1010 | 0xFA 0xBA |
| 0xB1 | 1011.0001 | 1111.1010 1011.1011 | 0xFA 0xBB |
| 0xB2 | 1011.0010 | 1111.1011 1011.1010 | 0xFB 0xBA |
| 0xB3 | 1011.0011 | 1111.1011 1011.1011 | 0xFB 0xBB |
| 0xB4 | 1011.0100 | 1111.1010 1011.1110 | 0xFA 0xBE |
| 0xB5 | 1011.0101 | 1111.1010 1011.1111 | 0xFA 0xBF |
| 0xB6 | 1011.0110 | 1111.1011 1011.1110 | 0xFB 0xBE |
| 0xB7 | 1011.0111 | 1111.1011 1011.1111 | 0xFB 0xBF |
| 0xB8 | 1011.1000 | 1111.1110 1011.1010 | 0xFE 0xBA |
| 0xB9 | 1011.1001 | 1111.1110 1011.1011 | 0xFE 0xBB |
| 0xBA | 1011.1010 | 1111.1111 1011.1010 | 0xFF 0xBA |
| 0xBB | 1011.1011 | 1111.1111 1011.1011 | 0xFF 0xBB |
| 0xBC | 1011.1100 | 1111.1110 1011.1110 | 0xFE 0xBE |
| 0xBD | 1011.1101 | 1111.1110 1011.1111 | 0xFE 0xBF |
| 0xBE | 1011.1110 | 1111.1111 1011.1110 | 0xFF 0xBE |
| 0xBF | 1011.1111 | 1111.1111 1011.1111 | 0xFF 0xBF |
| Valor | Valor | Código | Código |
| hex | bin | bin | hex |
| 0xC0 | 1100.0000 | 1110.1010 1110.1010 | 0xEA 0xEA |
| 0xC1 | 1100.0001 | 1110.1010 1110.1011 | 0xEA 0xEB |
| 0xC2 | 1100.0010 | 1110.1011 1110.1010 | 0xEB 0xEA |
| 0xC3 | 1100.0011 | 1110.1011 1110.1011 | 0xEB 0xEB |
| 0xC4 | 1100.0100 | 1110.1010 1110.1110 | 0xEA 0xEE |
| 0xC5 | 1100.0101 | 1110.1010 1110.1111 | 0xEA 0xEF |
| 0xC6 | 1100.0110 | 1110.1011 1110.1110 | 0xEB 0xEE |
| 0xC7 | 1100.0111 | 1110.1011 1110.1111 | 0xEB 0xEF |
| 0xC8 | 1100.1000 | 1110.1110 1110.1010 | 0xEE 0xEA |
| 0xC9 | 1100.1001 | 1110.1110 1110.1011 | 0xEE 0xEB |
| 0xCA | 1100.1010 | 1110.1111 1110.1010 | 0xEF 0xEA |
| 0xCB | 1100.1011 | 1110.1111 1110.1011 | 0xEF 0xEB |
| 0xCC | 1100.1100 | 1110.1110 1110.1110 | 0xEE 0xEE |
| 0xCD | 1100.1101 | 1110.1110 1110.1111 | 0xEE 0xEF |
| 0xCE | 1100.1110 | 1110.1111 1110.1110 | 0xEF 0xEE |
| 0xCF | 1100.1111 | 1110.1111 1110.1111 | 0xEF 0xEF |
| 0xD0 | 1101.0000 | 1110.1010 1111.1010 | 0xEA 0xFA |
| 0xD1 | 1101.0001 | 1110.1010 1111.1011 | 0xEA 0xFB |
| 0xD2 | 1101.0010 | 1110.1011 1111.1010 | 0xEB 0xFA |
| 0xD3 | 1101.0011 | 1110.1011 1111.1011 | 0xEB 0xFB |
| 0xD4 | 1101.0100 | 1110.1010 1111.1110 | 0xEA 0xFE |
| 0xD5 | 1101.0101 | 1110.1010 1111.1111 | 0xEA 0xFF |
| 0xD6 | 1101.0110 | 1110.1011 1111.1110 | 0xEB 0xFE |
| 0xD7 | 1101.0111 | 1110.1011 1111.1111 | 0xEB 0xFF |
| 0xD8 | 1101.1000 | 1110.1110 1111.1010 | 0xEE 0xFA |
| 0xD9 | 1101.1001 | 1110.1110 1111.1011 | 0xEE 0xFB |
| 0xDA | 1101.1010 | 1110.1111 1111.1010 | 0xEF 0xFA |
| 0xDB | 1101.1011 | 1110.1111 1111.1011 | 0xEF 0xFB |
| 0xDC | 1101.1100 | 1110.1110 1111.1110 | 0xEE 0xFE |
| 0xDD | 1101.1101 | 1110.1110 1111.1111 | 0xEE 0xFF |
| 0xDE | 1101.1110 | 1110.1111 1111.1110 | 0xEF 0xFE |
| 0xDF | 1101.1111 | 1110.1111 1111.1111 | 0xEF 0xFF |
| 0xE0 | 1110.0000 | 1111.1010 1110.1010 | 0xFA 0xEA |
| 0xE1 | 1110.0001 | 1111.1010 1110.1011 | 0xFA 0xEB |
| 0xE2 | 1110.0010 | 1111.1011 1110.1010 | 0xFB 0xEA |
| 0xE3 | 1110.0011 | 1111.1011 1110.1011 | 0xFB 0xEB |
| 0xE4 | 1110.0100 | 1111.1010 1110.1110 | 0xFA 0xEE |
| 0xE5 | 1110.0101 | 1111.1010 1110.1111 | 0xFA 0xEF |
| 0xE6 | 1110.0110 | 1111.1011 1110.1110 | 0xFB 0xEE |
| 0xE7 | 1110.0111 | 1111.1011 1110.1111 | 0xFB 0xEF |
| 0xE8 | 1110.1000 | 1111.1110 1110.1010 | 0xFE 0xEA |
| 0xE9 | 1110.1001 | 1111.1110 1110.1011 | 0xFE 0xEB |
| 0xEA | 1110.1010 | 1111.1111 1110.1010 | 0xFF 0xEA |
| 0xEB | 1110.1011 | 1111.1111 1110.1011 | 0xFF 0xEB |
| 0xEC | 1110.1100 | 1111.1110 1110.1110 | 0xFE 0xEE |
| 0xED | 1110.1101 | 1111.1110 1110.1111 | 0xFE 0xEF |
| 0xEE | 1110.1110 | 1111.1111 1110.1110 | 0xFF 0xEE |
| 0xEF | 1110.1111 | 1111.1111 1110.1111 | 0xFF 0xEF |
| 0xF0 | 1111.0000 | 1111.1010 1111.1010 | 0xFA 0xFA |
| 0xF1 | 1111.0001 | 1111.1010 1111.1011 | 0xFA 0xFB |
| 0xF2 | 1111.0010 | 1111.1011 1111.1010 | 0xFB 0xFA |
| 0xF3 | 1111.0011 | 1111.1011 1111.1011 | 0xFB 0xFB |
| 0xF4 | 1111.0100 | 1111.1010 1111.1110 | 0xFA 0xFE |
| 0xF5 | 1111.0101 | 1111.1010 1111.1111 | 0xFA 0xFF |
| 0xF6 | 1111.0110 | 1111.1011 1111.1110 | 0xFB 0xFE |
| 0xF7 | 1111.0111 | 1111.1011 1111.1111 | 0xFB 0xFF |
| 0xF8 | 1111.1000 | 1111.1110 1111.1010 | 0xFE 0xFA |
| 0xF9 | 1111.1001 | 1111.1110 1111.1011 | 0xFE 0xFB |
| 0xFA | 1111.1010 | 1111.1111 1111.1010 | 0xFF 0xFA |
| 0xFB | 1111.1011 | 1111.1111 1111.1011 | 0xFF 0xFB |
| 0xFC | 1111.1100 | 1111.1110 1111.1110 | 0xFE 0xFE |
| 0xFD | 1111.1101 | 1111.1110 1111.1111 | 0xFE 0xFF |
| 0xFE | 1111.1110 | 1111.1111 1111.1110 | 0xFF 0xFE |
| 0xFF | 1111.1111 | 1111.1111 1111.1111 | 0xFF 0xFF |
Casi un mes antes de las entregas de la unidad de disco en la primavera de 1978, Wozniak se dio cuenta de que un esquema de codificación más complejo permitiría que cada byte de ocho bits en el disco contenga cinco bits de datos útiles en lugar de cuatro bits. Esto se debe a que hay 34 bytes que tienen el bit superior establecido y no hay dos bits cero en una fila. Este esquema de codificación se conoció como codificación 5 y 3 y permitía 13 sectores por pista; se utilizó para Apple DOS 3.1, 3.2 y 3.2.1, así como para la versión más antigua de Apple CP/M:
Tabla de codificación 5-y-3
| Valor de 5 bits | Valor de 5 bits | Código GCR | Código GCR |
| hex | bin | bin | hex |
| 0x00 | 0.0000 | 1010.1011 | 0xAB |
| 0x01 | 0.0001 | 1010.1101 | 0xAD |
| 0x02 | 0.0010 | 1010.1110 | 0xAE |
| 0x03 | 0.0011 | 1010.1111 | 0xAF |
| 0x04 | 0.0100 | 1011.0101 | 0xB5 |
| 0x05 | 0.0101 | 1011.0110 | 0xB6 |
| 0x06 | 0.0110 | 1011.0111 | 0xB7 |
| 0x07 | 0.0111 | 1011.1010 | 0xBA |
| 0x08 | 0.1000 | 1011.1011 | 0xBB |
| 0x09 | 0.1001 | 1011.1101 | 0xBD |
| 0x0A | 0.1010 | 1011.1110 | 0xBE |
| 0x0B | 0.1011 | 1011.1111 | 0xBF |
| 0x0C | 0.1100 | 1101.0110 | 0xD6 |
| 0x0D | 0.1101 | 1101.0111 | 0xD7 |
| 0x0E | 0.1110 | 1101.1010 | 0xDA |
| 0x0F | 0.1111 | 1101.1011 | 0xDB |
| Valor de 5 bits | Valor de 5 bits | Código GCR | Código GCR |
| hex | bin | bin | hex |
| 0x10 | 1.0000 | 1101.1101 | 0xDD |
| 0x11 | 1.0001 | 1101.1110 | 0xDE |
| 0x12 | 1.0010 | 1101.1111 | 0xDF |
| 0x13 | 1.0011 | 1110.1010 | 0xEA |
| 0x14 | 1.0100 | 1110.1011 | 0xEB |
| 0x15 | 1.0101 | 1110.1101 | 0xED |
| 0x16 | 1.0110 | 1110.1110 | 0xEE |
| 0x17 | 1.0111 | 1110.1111 | 0xEF |
| 0x18 | 1.1000 | 1111.0101 | 0xF5 |
| 0x19 | 1.1001 | 1111.0110 | 0xF6 |
| 0x1A | 1.1010 | 1111.0111 | 0xF7 |
| 0x1B | 1.1011 | 1111.1010 | 0xFA |
| 0x1C | 1.1100 | 1111.1011 | 0xFB |
| 0x1D | 1.1101 | 1111.1101 | 0xFD |
| 0x1E | 1.1110 | 1111.1110 | 0xFE |
| 0x1F | 1.1111 | 1111.1111 | 0xFF |
Códigos GCR reservados: 0xAA y 0xD5.
Wozniak llamó al sistema «mi experiencia más increíble en Apple y el mejor trabajo que hice».
Más tarde, el diseño del controlador de la unidad de disquete se modificó para permitir que un byte en el disco contenga hasta un par de bits 0 seguidos. Esto permitió que cada byte de ocho bits contenga seis bits de datos útiles y permitiera 16 sectores por pista. Este esquema se conoce como codificación 6-y-2, y se usó en Apple Pascal, Apple DOS 3.3 y ProDOS, y posteriormente con las unidades Apple FileWare en el Apple Lisa y los discos de 400K y 800K de 3½ pulgadas en el Macintosh y el Apple II. Apple no llamó originalmente a este esquema «GCR», pero sí posteriormente para distinguirlo de los disquetes de IBM PC que utilizaban el esquema de codificación MFM.
Tabla de codificación 6-y-2
| Valor de 6 bits | Valor de 6 bits | Código GCR | Código GCR |
| hex | bin | bin | hex |
| 0x00 | 00.0000 | 1001.0110 | 0x96 |
| 0x01 | 00.0001 | 1001.0111 | 0x97 |
| 0x02 | 00.0010 | 1001.1010 | 0x9A |
| 0x03 | 00.0011 | 1001.1011 | 0x9B |
| 0x04 | 00.0100 | 1001.1101 | 0x9D |
| 0x05 | 00.0101 | 1001.1110 | 0x9E |
| 0x06 | 00.0110 | 1001.1111 | 0x9F |
| 0x07 | 00.0111 | 1010.0110 | 0xA6 |
| 0x08 | 00.1000 | 1010.0111 | 0xA7 |
| 0x09 | 00.1001 | 1010.1011 | 0xAB |
| 0x0A | 00.1010 | 1010.1100 | 0xAC |
| 0x0B | 00.1011 | 1010.1101 | 0xAD |
| 0x0C | 00.1100 | 1010.1110 | 0xAE |
| 0x0D | 00.1101 | 1010.1111 | 0xAF |
| 0x0E | 00.1110 | 1011.0010 | 0xB2 |
| 0x0F | 00.1111 | 1011.0011 | 0xB3 |
| Valor de 6 bits | Valor de 6 bits | Código GCR | Código GCR |
| hex | bin | bin | hex |
| 0x10 | 01.0000 | 1011.0100 | 0xB4 |
| 0x11 | 01.0001 | 1011.0101 | 0xB5 |
| 0x12 | 01.0010 | 1011.0110 | 0xB6 |
| 0x13 | 01.0011 | 1011.0111 | 0xB7 |
| 0x14 | 01.0100 | 1011.1001 | 0xB9 |
| 0x15 | 01.0101 | 1011.1010 | 0xBA |
| 0x16 | 01.0110 | 1011.1011 | 0xBB |
| 0x17 | 01.0111 | 1011.1100 | 0xBC |
| 0x18 | 01.1000 | 1011.1101 | 0xBD |
| 0x19 | 01.1001 | 1011.1110 | 0xBE |
| 0x1A | 01.1010 | 1011.1111 | 0xBF |
| 0x1B | 01.1011 | 1100.1011 | 0xCB |
| 0x1C | 01.1100 | 1100.1101 | 0xCD |
| 0x1D | 01.1101 | 1100.1110 | 0xCE |
| 0x1E | 01.1110 | 1100.1111 | 0xCF |
| 0x1F | 01.1111 | 1101.0011 | 0xD3 |
| Valor de 6 bits | Valor de 6 bits | Código GCR | Código GCR |
| hex | bin | bin | hex |
| 0x20 | 10.0000 | 1101.0110 | 0xD6 |
| 0x21 | 10.0001 | 1101.0111 | 0xD7 |
| 0x22 | 10.0010 | 1101.1001 | 0xD9 |
| 0x23 | 10.0011 | 1101.1010 | 0xDA |
| 0x24 | 10.0100 | 1101.1011 | 0xDB |
| 0x25 | 10.0101 | 1101.1100 | 0xDC |
| 0x26 | 10.0110 | 1101.1101 | 0xDD |
| 0x27 | 10.0111 | 1101.1110 | 0xDE |
| 0x28 | 10.1000 | 1101.1111 | 0xDF |
| 0x29 | 10.1001 | 1110.0101 | 0xE5 |
| 0x2A | 10.1010 | 1110.0110 | 0xE6 |
| 0x2B | 10.1011 | 1110.0111 | 0xE7 |
| 0x2C | 10.1100 | 1110.1001 | 0xE9 |
| 0x2D | 10.1101 | 1110.1010 | 0xEA |
| 0x2E | 10.1110 | 1110.1011 | 0xEB |
| 0x2F | 10.1111 | 1110.1100 | 0xEC |
| Valor de 6 bits | Valor de 6 bits | Código GCR | Código GCR |
| hex | bin | bin | hex |
| 0x30 | 11.0000 | 1110.1101 | 0xED |
| 0x31 | 11.0001 | 1110.1110 | 0xEE |
| 0x32 | 11.0010 | 1110.1111 | 0xEF |
| 0x33 | 11.0011 | 1111.0010 | 0xF2 |
| 0x34 | 11.0100 | 1111.0011 | 0xF3 |
| 0x35 | 11.0101 | 1111.0100 | 0xF4 |
| 0x36 | 11.0110 | 1111.0101 | 0xF5 |
| 0x37 | 11.0111 | 1111.0110 | 0xF6 |
| 0x38 | 11.1000 | 1111.0111 | 0xF7 |
| 0x39 | 11.1001 | 1111.1001 | 0xF9 |
| 0x3A | 11.1010 | 1111.1010 | 0xFA |
| 0x3B | 11.1011 | 1111.1011 | 0xFB |
| 0x3C | 11.1100 | 1111.1100 | 0xFC |
| 0x3D | 11.1101 | 1111.1101 | 0xFD |
| 0x3E | 11.1110 | 1111.1110 | 0xFE |
| 0x3F | 11.1111 | 1111.1111 | 0xFF |
Códigos GCR reservados: 0xAA y 0xD5.

### Commodore

Independientemente, Commodore Business Machines (CBM) creó un esquema de grabación codificado en grupo para su disquetera Commodore 2040 (comercializada en la primavera de 1979). Las restricciones relevantes en la unidad 2040 eran que no podían aparecer más de dos bits 0 seguidos; la unidad no impuso ninguna restricción especial sobre el primer bit de un byte. Esto permitió el uso de un esquema similar al utilizado en las unidades de cinta de 6250 bpi. Cada cuatro bits de datos se traducen a cinco bits en el disco, de acuerdo con la siguiente tabla:
| Valor de 4 bits | Valor de 4 bits | Código GCR | Código GCR |
| hex | bin | bin | hex |
| 0x0 | 0000 | 0.1010 | 0x0A |
| 0x1 | 0001 | 0.1011 | 0x0B |
| 0x2 | 0010 | 1.0010 | 0x12 |
| 0x3 | 0011 | 1.0011 | 0x13 |
| 0x4 | 0100 | 0.1110 | 0x0E |
| 0x5 | 0101 | 0.1111 | 0x0F |
| 0x6 | 0110 | 1.0110 | 0x16 |
| 0x7 | 0111 | 1.0111 | 0x17 |
| Valor de 4 bits | Valor de 4 bits | Código GCR | Código GCR |
| hex | bin | bin | hex |
| 0x8 | 1000 | 0.1001 | 0x09 |
| 0x9 | 1001 | 1.1001 | 0x19 |
| 0xA | 1010 | 1.1010 | 0x1A |
| 0xB | 1011 | 1.1011 | 0x1B |
| 0xC | 1100 | 0.1101 | 0x0D |
| 0xD | 1101 | 1.1101 | 0x1D |
| 0xE | 1110 | 1.1110 | 0x1E |
| 0xF | 1111 | 1.0101 | 0x15 |
Cada código comienza y termina con como máximo un bit 0, lo que garantiza que incluso cuando los códigos estén concatenados, los datos codificados nunca contendrán más de dos bits 0 seguidos. Con esta codificación son posibles como máximo ocho bits uno seguidos. Por lo tanto, Commodore usó secuencias de diez o más bits 1 seguidos como marca de sincronización.
Este esquema GCR más eficiente, combinado con un enfoque en la grabación de densidad de bits constante aumentando gradualmente la frecuencia de reloj (velocidad constante angular por zona) y almacenando más sectores físicos en las pistas externas que en las internos (zona de grabación de bits, ZBR), permitieron que Commodore almacene 170 kB en un disquete estándar de una sola cara de densidad simple de 5,25 pulgadas, donde Apple almacenaba 140 kB (con codificación 6 y 2) o 114 kB (con codificación 5 y 3) y un disquete codificado en FM tenía solo 88 kB.

### Sirius/Victor

De manera similar, las unidades de disquete de 5,25 pulgadas del Victor 9000, también conocido como Sirius 1, diseñadas por Chuck Peddle en 1981/1982, usaban una combinación de GCR de diez bits y densidad de bits constante al disminuir gradualmente la velocidad de rotación de la unidad para las pistas externas en nueve zonas (una forma de velocidad lineal constante en zonas (ZCLV)) mientras se aumenta el número de sectores por pista (una variante de zona de grabación de bits (ZBR)) para lograr capacidades formateadas de 606 kB (una cara)/1188 kB ( oble cara) en disquetes de 96 tpi.

### Brother

A partir de 1985, Brother introdujo una familia de máquinas de escribir con procesador de texto dedicadas con unidad de disquete integrada de 38 pistas y 3,5 pulgadas. Los primeros modelos de la WP y Brother Serie LW utilizaban un esquema de grabación codificado en grupo específico de Brother con doce sectores de 256 bytes para almacenar hasta 120 kB en un solo lado y hasta 240 kB en disquetes de doble lado y doble densidad (DD). Según se informa, los prototipos ya se mostraron en la Internationale Funkausstellung de 1979 (IFA) en Berlín.

### Sharp 4-5

En 1986, Sharp introdujo una solución de unidad de disco giratoria de bolsillo de 2,5 pulgadas (unidades: CE-1600F, CE-140F; internamente basado en el chasis FDU-250; disquetes: CE-1650F) para su serie de computadoras de bolsillo con una capacidad formateada de 62464 bytes por lado (2 × 64 kB nominales, 16 pistas, 8 sectores/pista, 512 bytes por sector, 48 tpi, 250 kbit/s, 270 rpm) con grabación GCR (4/5).

## Otros usos

GCR también se evaluó para un posible uso en los esquemas de codificación de código de barras (eficiencia de empaquetado, tolerancias de tiempo, cantidad de bytes de almacenamiento para información de sincronización y nivel de salida CC).