Group coded recording was first used for magnetic tape data storage on 9-trackreel-to-reel tape. The term was coined during the development of the IBM 3420 Model 4/6/8 Magnetic Tape Unit and the corresponding 3803 Model 2 Tape Control Unit, both introduced in 1973.IBM referred to the error correcting code itself as "group coded recording". However, GCR has come to refer to the recording format of 6250 cpi tape as a whole, and later to formats which use similar RLL codes without the error correction code.
In order to reliably read and write to magnetic tape, several constraints on the signal to be written must be followed. The first is that two adjacent flux reversals must be separated by a certain distance on the media. The second is that there must be a flux reversal often enough to keep the reader's clock in phase with the written signal; that is, the signal must be self-clocking. Prior to 6250 cpi tapes, 1600 cpi tapes satisfied these constraints using a technique called phase encoding, which was only 50% efficient. For 6250 GCR tapes, a (0,2) RLL code is used. This code requires five bits to be written for every four bits of data. The code is structured so that no more than two zero bits (which are represented by lack of a flux reversal) can occur in a row, either within a code or between codes, no matter what the data was. This RLL code is applied independently to the data going to each of the nine tracks.
Of the 32 five-bit patterns, eight begin with two consecutive zero bits, six others end with two consecutive zero bits, and one more (10001) contains three consecutive zero bits. Removing the all-ones pattern (11111) from the remainder leaves 16 suitable code words.
11 of the nibbles (other than xx00 and 0001) have their code formed by prepending the complement of the most significant bit; i.e. abcd is encoded as aabcd. The other five values are assigned codes beginning with 11. Nibbles of the form ab00 have codes 11baa, i.e. the bit reverse of the code for ab11. The code 0001 is assigned the remaining value 11011.
Because of the extremely high density of 6250 cpi tape, the RLL code is not sufficient to ensure reliable data storage. On top of the RLL code, an error-correcting code called the Optimal Rectangular Code (ORC) is applied. This code is a combination of a parity track and polynomial code similar to a CRC, but structured for error correction rather than error detection. For every seven bytes written to the tape (before RLL encoding), an eighth check byte is calculated and written to the tape. When reading, the parity is calculated on each byte and exclusive-OR'd with the contents of the parity track, and the polynomial check code calculated and exclusive-OR'd with the received check code, resulting in two 8-bit syndrome words. If these are both zero, the data is error free. Otherwise, error-correction logic in the tape controller corrects the data before it is forwarded to the host. The error correcting code is able to correct any number of errors in any single track, or in any two tracks if the erroneous tracks can be identified by other means.
For the Apple II floppy drive, Steve Wozniak invented a floppy controller which (along with the Disk II drive itself) imposed two constraints:
Between any two one bits, there may be a maximum of one zero bit.
Each 8-bit byte must start with a one bit.
The simplest scheme to ensure compliance with these limits is to record an extra "clock" transition before each data bit. This scheme is called differential Manchester encoding or (digital) FM (Frequency Modulation) or 4-and-4 encoding, and allows only ten 256-byte sectors per track to be recorded on a single-density 5¼-inch floppy.
Close to a month prior to the shipment of the disk drive in spring 1978, Wozniak realized that a more complex encoding scheme would allow each eight-bit byte on disk to hold five bits of useful data rather than four bits. This is because there are 34 bytes which have the top bit set and no two zero bits in a row. This encoding scheme became known as 5-and-3 encoding, and allowed 13 sectors per track; it was used for Apple DOS 3.1, 3.2, and 3.2.1, as well as for the earliest version of Apple CP/M (de):
Wozniak called the system "my most incredible experience at Apple and the finest job I did".
Later, the design of the floppy drive controller was modified to allow a byte on disk to contain up to one pair of zero bits in a row. This allowed each eight-bit byte to hold six bits of useful data, and allowed 16 sectors per track. This scheme is known as 6-and-2 encoding, and was used on Apple Pascal, Apple DOS 3.3 and ProDOS, and later on the 400K and 800K 3½-inch disks on the Macintosh and Apple II. Apple did not originally call this scheme "GCR", but the term was later applied to it to distinguish it from IBM PC floppies which used the MFM encoding scheme.
Independently, Commodore Business Machines (CBM) created a group coded recording scheme for their Commodore 2040 floppy disk drive (launched in the spring of 1979). The relevant constraints on the 2040 drive were that no more than two zero bits could occur in a row, nor more than eight one bits in a row; the drive imposed no special constraint on the first bit in a byte. This allowed the use of a scheme similar to that used in 6250 tape drives. Every four bits of data are translated into five bits on disk, according to the following table:
Inhere, no code starts with two zero bits, nor ends with two zero bits. This ensures that regardless of the input data, the encoded data will never contain more than two zero bits in a row. With this encoding not more than eight one bits in a row are possible. Therefore, Commodore used sequences of ten or more one bits in a row as synchronization mark.
This more efficient GCR scheme, combined with an approach at constant bit-density recording by gradually increasing the clock rate (zone constant angular velocity, ZCAV) and storing more physical sectors on the outer tracks than on the inner ones (zone bit recording, ZBR), enabled Commodore to fit 170 kB on a standard single-sided single-density 5.25-inch floppy, where Apple fit 140 kB (with 6-and-2 encoding) or 114 kB (with 5-and-3 encoding) and an FM-encoded floppy held only 88 kB.
Similar, the 5.25-inch floppy drives of the Victor 9000 aka Sirius 1, designed by Chuck Peddle in 1981/1982, used a combination of ten-bit GCR and constant bit-density recording by gradually decreasing a drive's rotational speed for the outer tracks in nine zones to achieve formatted capacities of 606 kB (single sided) / 1188 kB (double-sided) on 96 tpi media.
In 1986, Sharp introduced a turnable 2.5-inch micro diskette drive solution (drives: CE-1600F, CE-140F; internally based on FDU-250 chassis; medium: CE-1650F) for their series of pocket computers with a formatted capacity of 62464 bytes per side (2× 64 kB nominal, 16 tracks, 8 sectors/track, 512 bytes per sector, 48 tpi, 250 kbits/s, 270 rpm) with GCR (4/5) recording.
^The product flyer for the Durango 800 series documents an formatted "on-line capacity" of 1.892 MB for the diskette drives. The system, however, was equipped with two 5¼-inch Micropolis100 tpi 77-track floppy drives by default, and 1.892 MB is about twice as large as the physical drive capacity documented in various other sources (480 KB per side), therefore, by "on-line capacity" they must have meant the available storage capacity available to users for the combination of two drives.
^ abcCW staff (1973-03-14). "6,250 Byte/In. Density - IBM 3420 Storage More Than Tripled". Computerworld. White Plains, New York, USA. 7 (11): 1–2. Archived from the original on 2017-03-23. Retrieved 2017-03-23. IBM added three new models to the 3420 magnetic tape system than can record data at the "densest recording capability yet offered", according to the company. Using a new method called Group Coded Recording (GCR), the IBM drives can handle tapes containing a data density of 6,250 byte/in. compared with 1,600 byte/in. on earlier models of the 3420. […] An upgraded control unit was also announced - the 3803 Model 2 - which operates with both the earlier and latest 3420 tape units. The Model 2 includes the capability of correcting errors in one or two tracks "simultaneously while the tape is in motion", IBM said. […] The GCR method segments data written on tape into groups of characters to which a special coding character is added. And the higher density is based on a combination of a modified coding scheme, a smaller interrecord gap (called an interblock gap) and modified electronics and electromechanical components, IBM said. Installed 3803/3420 tape systems can be converted to the higher densities in the field. […]
^"The Gallery of Old Iron". 2004. Archived from the original on 2008-12-25. […] I moved to the lab at Poughkeepsie in 1958 […] I later was Lead designer and architect for the 2802 Tape Control Unit and a few years after that, Lead Designer and Architect of the 3803 which was a very large modification based on the 2802. Three of us shared a Corporate Award for the 3803 and I, along with Planner Charlie Von Reyn, came up with the name "Group Coded Recording (GCR)" as the name of the recording method. […] (NB. An anonymous comment by one of the developers on the origin of the name "Group Coded Recording".)
^"Supplemental Technical Reference Material". Revision 0 (1st printing ed.). Scotts Valley, CA, USA: Victor Publications. 1983-03-23. Application Note: 002. […] Single-sided floppy drive offers 80 tracks at 96 TPI […] Double-sided floppy drive offers 160 tracks at 96 TPI […] Floppy drives have 512 byte sectors; utilising a GCR, 10-bit recording technique. […] Although the Victor 9000 uses 5 1/4-inch minifloppies of a similar type to those used in other computers, the floppy disks themselves are not readable on other machines, nor can the Victor 9000 read a disk from another manufacturers machine. The Victor 9000 uses a unique recording method to allow the data to be packed as densely as 600 kbytes on a single-sided single-density minifloppy; this recording method involves the regulation of the speed at which the floppy rotates, explaining the fact that the noise from the drive sometimes changes frequency.
^"Chapter 7. Disk Drive Assembly". Victor 9000 Technical Reference Manual(PDF). Victor Business Products, Inc. June 1982. pp. 7–1..7–9. 710620. Archived(PDF) from the original on 2017-03-23. Retrieved 2017-03-23. […] Track density is 96 tracks per inch, and recording density is maintained at approximately 8000 bits per inch on all tracks. […] The VICTOR 9000 uses an encoding technique called group code recording (GCR) to convert the data from internal represenation to an acceptable form. GCR converts each (4-bit) nibble into a 5-bit code that guarantees a recording pattern that never has more than two zeros together. Then data is recorded on the disk by causing a flux reversal for each "one" bit and no flux reversal for each "zero" bit. […]
^"Model CE-1600F". Sharp PC-1600 Service Manual(PDF). Yamatokoriyama, Japan: Sharp Corporation, Information Systems Group, Quality & Reliability Control Center. July 1986. pp. 98–104. Archived(PDF) from the original on 2017-03-23. Retrieved 2017-03-23. GCR is an abbreviation of Group Coded Recording. A single byte, 8 bits, data are divided into two 4-bit data which is also converted onto a 5-bit data. Thus, a single byte (8 bits) is recorded on the media as a 10-bit data.