Kansas City standard
The Kansas City standard (KCS), or Byte standard, is a way of storing digital data on standard audio cassettes at data rates of 300 to 2400 bits per second (at 300–2400 baud) that was first defined in 1976. It was the default encoding used by several machine families, including those from Acorn and the MSX. It was also the standard used for cross-platform BASICODE distribution.
It originated in a symposium sponsored by Byte magazine in November 1975 in Kansas City, Missouri to develop a standard for storage of digital microcomputer data on inexpensive consumer quality cassettes, at a time when floppy disk drives cost more than $1,000 USD each (today more than $4500 USD). Although the standard existed from the earliest days of the microcomputer revolution, it failed to prevent a proliferation of alternative encodings.
- 1 History
- 2 CUTS
- 3 Floppy ROM
- 4 300 baud
- 5 1200 baud
- 6 2400 baud
- 7 Computers using the Kansas City standard
- 8 See also
- 9 Further reading
- 10 References
- 11 External links
Early microcomputers generally used punched tape for program storage, an expensive option. Computer consultant Jerry Ogdin conceived the use of audio tones on a cassette to replace the paper tapes. He took the idea to Les Solomon, editor of Popular Electronics magazine, who was similarly frustrated by punched tapes. In September 1975 the two co-authored an article on the HITS (Hobbyists' Interchange Tape System), using two tones to represent 1s and 0s. Soon after a number of manufacturers started using similar approaches, although each of these systems were incompatible.
Kansas City symposium
Wayne Green, who had just started Byte magazine, wanted all the manufacturers to get together and produce a single cassette standard. The site picked was Kansas City, Missouri. The two-day meeting was attended by 18 people, who settled on a system based on Don Lancaster's design, published in Byte magazine's first issue. After the meeting, Lee Felsenstein (Processor Technology) and Harold Mauch (Percom) wrote the standard.
A cassette interface is similar to a modem connected to a serial port. The 1s and 0s from the serial port are converted to audio tones using audio frequency-shift keying (AFSK). A '0' bit is represented as four cycles of a 1200 Hz sine wave, and a '1' bit as eight cycles of 2400 Hz. This gives a data rate of 300 baud. Each frame starts with one start bit (a '0') followed by eight data bits (least significant bit first) followed by two stop bits ('1's). So each frame is 11 bits, for a data rate of 27 3⁄11 bytes per second.
The February 1976 issue of Byte had a report on the symposium, and the March issue featured two hardware examples by Don Lancaster and Harold Mauch. The 300 baud rate was reliable but slow. (The typical 8-kilobyte BASIC program took five minutes to load.) Most audio cassette circuits would support higher speeds.
According to Solomon, the efforts were unsuccessful, "Unfortunately, it didn't last long; before the month ended, everyone went back to his own tape standard and the recording confusion got worse."
The participants of the Kansas City symposium include the following.
- Ray Borrill, Bloomington IN
- Hal Chamberlin, The Computer Hobbyist, Raleigh NC
- Richard Smith, The Computer Hobbyist, Raleigh NC
- Tom Durston, MITS, Albuquerque NM
- Bill Gates, MITS, Albuquerque NM
- Ed Roberts, MITS, Albuquerque NM
- Bob Zaller, MITS, Albuquerque NM
- Lee Felsenstein, LGC Engineering / Processor Technology, Berkeley CA
- Les Solomon, Popular Electronics Magazine, New York NY
- Bob Marsh, Processor Technology, Berkeley CA
- Joe Frappier, Mikra-D, Bellingham MA
- Gary Kay, Southwest Technical Products Corp, San Antonio TX
- Harold A Mauch, Pronetics/Percom Data, Garland TX
- Bob Nelson, PCM, San Ramon CA
- George Perrine, HAL Communications Corp, Urbana IL
- Paul Tucker, HAL Communications Corp, Urbana IL
- Michael Stolowitz, Godbout Electronics, Oakland Airport CA
- Mike Wise, Sphere, Bountiful UT
Processor Technology developed the popular CUTS (Computer Users' Tape Standard) which works at either 300 or 1200 baud. They provided the S-100 bus CUTS Tape I/O interface board which offers both CUTS and Kansas City standard support to any S-100 system.
In August 1976 at the Personal Computing show in Atlantic City, Bob Marsh of Processor Technology approached Bob Jones, the publisher of Interface Age magazine, about pressing software onto vinyl records. Processor Technology provided an 8080 program to be recorded. This test record did not work and Processor Technology was unable to devote more time to the effort.
Daniel Meyer and Gary Kay of Southwest Technical Products arranged for Robert Uiterwyk to provide his 4K BASIC interpreter program for the 6800 microprocessor. The idea was to record the program on audio tape in the "Kansas City" standard format and then make a master record from the tape. Eva-Tone made Soundsheets on thin vinyl that would hold one song. These were inexpensive and could be bound in a magazine.
Bill Turner and Bill Blomgren of MicroComputerSystems Inc. along with Bob Jones of Interface Age and Bud Schamburger of Holiday Inn worked with EVA-TONE and developed a successful process. The intermediate stage of recording to tape produced dropouts so a SWTPC AC-30 cassette interface was connected directly to the record cutting equipment.
The May 1977 issue of Interface Age contains the first "Floppy ROM", a 331⁄3 RPM record containing about six minutes of Kansas City standard audio. The September 1978 Floppy ROM Number 5 has two sides: Apple BASIC "the automated dress pattern" and IAPS format "A program for writing letters".
The original standard recorded data as "marks" (one) and "spaces" (zero). A mark bit consisted of eight cycles at a frequency of 2400 Hz, while a space bit consisted of four cycles at a frequency of 1200 Hz. A word, usually one byte (8 bits) long, was recorded in little endian order, i.e. least significant bit first. 7-bit words were followed by a parity bit.
Acorn Computers Ltd implemented a 1200 baud variation of CUTS in their BBC Micro and Acorn Electron microcomputers, which reduced a '0' bit to one cycle of a 1200 Hz sine wave and a '1' bit to two cycles of a 2400 Hz wave. Standard encoding includes a '0' start bit and '1' stop bit around every 8 bit piece of information, giving an effective data rate of 960 bits per second.
Also, these machines record data in 256-byte blocks interspersed with gaps of carrier tone, each block carrying a sequence number and a CRC checksum, so that it is possible to rewind the tape and retry from the failed block when a read error occurs.
The MSX by default supports both a 1200 baud variation of the standard with the same bit encoding as Acorn's, and a 2400 baud variant which doubles the audio rate — a '0' bit is one cycle of a 2400 Hz wave and a '1' bit is two cycles of a 4800 Hz wave. Unlike Acorn machines, the MSX uses two '1' stop bits in addition to one '0' start bit, so the effective rate at 1200 baud is approximately 873 bits per second, and the effective rate at 2400 baud is approximately 1,745 bits per second.
The machine's BIOS can read data at up to 3600 baud from an ideal audio source.
Computers using the Kansas City standard
(several use S-100 bus)
- Compukit UK101
- Exidy Sorcerer Optional S-100 expansion bus, standard 300 bit/s mode and a 1200 baud variant by default.
- Kim-1, MOS Technology Optional S-100 expansion bus (KIMSI), standard 300 bit/s mode and a hypertype 1200 baud variant.
- Lucas Nascom 1, 2 (which also supported a 1200 bit/s variant, see below)
- MITS Altair 8800
- Motorola MEK D1 6800 board
- Ohio Scientific C1P/Superboard II
- Processor Tech SOL-20 Terminal Computer
- Processor Tech CUTS S-100 bus Tape I/O interface board
- SWTPC's 6800-based computers
- Tangerine MICROTAN 65 (300 baud CUTS - faster 2400 non-CUTS format also available)
- Eltec (German Company) Eurocom 1
- Z80 Starter Kit (1977 - Development board by SD Systems - 300 bauds - S-100 bus)
Home and personal computers
- ABC 80
- Acorn Computers Ltd
- Dick Smith Super-80 (300 baud only)
- Elektor Magazine National SC/MP Project
- MicroBee Systems
- MicroBee (300 and 1200 baud)
- MSX (1200 and 2400 baud)
- Sega SC-3000 A slightly different 600 baud variant
- Casio PT-50 electronic keyboard with TA-1 tape interface module.
- TapeDump, Chris Covell's NES/Famicom cartridge dumping solution
- Roland TR-707 drum machine and other musical equipment.
- BASICODE - a common basic platform using the 1200 baud KCS
- Flexi disc
- IBM cassette tape
- Tarbell Cassette Interface
- UEF - a popular file format for archiving Kansas City standard audio
- Feichtinger, Herwig (1987). "1.8.3. Kassettenaufzeichnung" [1.8.3. Cassette recording]. Arbeitsbuch Mikrocomputer [Microcomputer work book] (in German) (2 ed.). Munich, Germany: Franzis-Verlag GmbH. pp. 230–235. ISBN 3-7723-8022-0.
- Hübler, Bernd (1987) . "2.6. Kassetteninterface" [2.6. Cassette interface]. In Erlekampf, Rainer; Mönk, Hans-Joachim. Mikroelektronik in der Amateurpraxis [Micro-electronics for the practical amateur] (in German) (3 ed.). Berlin: Militärverlag der Deutschen Demokratischen Republik, Leipzig. pp. 92–99, 164–165. ISBN 3-327-00357-2. 7469332.
- von Cube, Marcus (2015-03-15). "CASsette IO Utilities". Archived from the original on 2017-03-14. Retrieved 2017-03-14.
- Virginia Peschke (February 1976). "BYTE's Audio Cassette Standards Symposium". BYTE. Vol. 1 no. 6. BYTE Publications. pp. 72–73.
- Bunnell, David (December 1975). "BYTE Sponsors ACR Standards Meeting". Computer Notes. Altair Users Group, MITS Inc. 1 (6): 1. Archived from the original on 2012-03-23. Retrieved 2007-05-04.
- The MITS 88-DCDD Altair Disk (controller board, 8 inch disk drive, case and power supply) sold for $1480 kit and $1980 assembled. (December 1975 BYTE magazine, page 45). It could store 300,000 bytes on a disk. The Shugart SA400 51⁄4 inch drive became available in late 1976 for $450 USD. It could store around 90,000 bytes on a disk. By 1977 this became a popular option for hobbyist computers.
- Les Solomon, "Solomon's Memory", Digital Deli, 1984
- Lancaster, Don (September 1975). "Serial Interface". BYTE. Vol. 0 no. 1. Green Publishing. p. 22. Retrieved 2018-04-10.
- Manfred and Virginia Peschke (February 1976). "Report: BYTE's Audio Cassette Standards Symposium". BYTE. Vol. 0 no. 6. BYTE Publications. pp. 72–73.
- Don Lancaster (March 1976). "Build the Bit Boffer". BYTE. Vol. 0 no. 7. BYTE Publications. pp. 30–39.
- Harold A. Mauch (March 1976). "Digital Data on Cassette Recorders". BYTE. Vol. 0 no. 7. BYTE Publications. pp. 40–45.
- Jones, Robert S. (May 1977). "The Floppy ROM Experiment". Interface Age. McPheters, Wolfe & Jones. 2 (6): .pp 28, 83.
- Penchansky, Alan (November 10, 1979). "New Building for 'Soundsheets' Firm". Billboard. Vol. 91 no. 45. New York: Billboard Publications. p. 88. ISSN 0006-2510.
- Turner, William W. (May 1977). "Robert Uiterwyk's 4K BASIC". Interface Age. McPheters, Wolfe & Jones. 2 (6): .pp 40–54.
- Blomgren, William (May 1977). "Platter BASIC: The Search for a Good, Random Access, Record Cutting Juke Box". Interface Age. McPheters, Wolfe & Jones. 2 (6): 29–36.
- Gary Kay (December 1976). "The Designer's Eye View of the AC-30". BYTE. Vol. 1 no. 16. BYTE Publications. pp. 98–108.
- R. T. Russell, BBC Engineering Designs Department (1981). The BBC Microcomputer System. PART II - HARDWARE SPECIFICATION (Report). The British Broadcasting Corporation.
A cassette modem will be incorporated to allow storage of programs and data on a standard audio cassette recorder ... The format will be ... 300 baud and 1200 baud. ... It must be possible to switch between low-speed (CUTS) mode and high-speed mode
- "4, ROM BIOS". The MSX Red Book. Kuma Computers. 1985. ISBN 0-7457-0178-7.
The MSX ROM uses a software driven FSK ... method for storing information on the cassette. At the 1200 baud rate this is identical to the Kansas City Standard ... At 1200 baud each 0 bit is written as one complete 1200 Hz LO cycle and each 1 bit as two complete 2400 Hz HI cycles ... When the 2400 baud rate is selected the two frequencies change to 2400 Hz and 4800 Hz but the format is otherwise unchanged.
- Acorn System 1 Technical Manual, p.15: "On the keyboard is a Computer Users Tape Standard interface"