Main Page | See live article | Alphabetical index

Group Code Recording

Group Code Recording (GCR) is a floppy disk data encoding format invented by Commodore Business Machines and used in the 5¼" disk drives for their 8-bit home/-personal computers (the best-known drive probably being the single-sided Commodore 1541, used with the C64 computer).

The purpose of GCR was to avoid situations where too many subsequent zeroes would be recorded on the disc surface of the floppy. This was important, because the rising edges of the ones were used to synchronize the reading from the disc. While other formats such as MFM used a doubling of each 2-bit group to avoid this, GCR was tailored to give a much higher data density on the disc and avoid unnecessary redundancy, under the assumption that a few zeroes in a row was OK, but not too many.

The choice of GCR encoding made Commodore's 5¼" drives somewhat complex and expensive, requiring quite a lot of electronics to perform the GCR encoding/decoding: an on-board microprocessor, some ROM for storing the processor's code, and some RAM for buffering. Commodore also chose to embed the whole DOS in the disk drive. As an example consider the VIC-20's companion floppy drive, the Commodore 1540, which had a 6502 CPU, 16KB ROM and 2KB RAM. The VIC-20 itself had the exact same CPU, the same amount of ROM, and some more RAM: 5KB.

While embedding the low-level data encoding and the (higher-level) DOS into the disk drives made the drives more complex, and thus, costly, two major advantages were obtained compared to most other home computer disk drives of the time: 1) a Commodore drive was ready for work the instant it was powered on, not needing the DOS to be loaded from disk; and 2) the host computer did not have to store and execute the DOS code, thus freeing its expensive RAM and meager CPU capacity for the main application it was running, all in all leading to better performance.

A disk data encoding format similar to GCR was adopted by the original Apple Macintosh 3½" floppy disk drive, though no attempt was made to be compatible with Commodore's system – in fact since the physical form of the disk itself was new, Apple was free to implement it any way they chose. Their encoding scheme permitted the use of constant linear (as opposed to angular) disk velocity, which added some complexity to the drive electronics, but increased data density and reliability.

Later Mac floppy drives could read both 'classic Mac'-encoded and MS-DOS compatible MFM-encoded disks, which had in the meantime become the most prevalent format due to the success of inexpensive PC cloness (the PC factor also affected Commodore's 1570/71 and 1581 disk drives).