# Kansas City Standard

Der Kansas City Standard (KCS), oder auch Byte Standard, ist ein digitales Datenformat für Audiokassetten, das mit einem einfachen Kassettenrekorder geschrieben und gelesen werden kann.

## Entstehungsgeschichte

Das amerikanische Byte Magazin unterstützte im November 1975 ein Symposium in Kansas City, Missouri (USA), auf dem ein Standard für das Speichern von digitalen Daten auf preisgünstigen Audiokassetten entwickelt werden sollte. Zu dieser Zeit kosteten Diskettenlaufwerke mehr als 3000 DM.
Die 18 Teilnehmer des Treffens einigten sich auf ein System, dessen Design sich auf einen Vorschlag von Don Lancaster bezog, das in der ersten Ausgabe der Zeitschrift Byte Magazine beschrieben wurde. Nach dem Treffen wurde der Standard von Lee Felsenstein (Processor Technology) und Harold Mauch (Percom Data Company) geschrieben.
Im Februar 1976 berichtete das Byte Magazine von dem Symposium und veröffentlichte im März zwei Schaltungen des Kassetten-Interfaces von Don Lancaster und Harold Mauch. Die Datenrate von 300 Baud war langsam aber zuverlässig (das Laden eines 8 Kilobyte BASIC Interpreters dauerte fünf Minuten). Die meisten Kassettenrekorder konnten damals bereits mit höheren Datenraten arbeiten.

## Beschreibung des Standards

Ein Kassetten-Interface funktioniert nach dem gleichen Prinzip wie ein an einer seriellen Schnittstelle angeschlossenes Modem. Die digitalen 0 und 1 von der seriellen Schnittstelle werden in Töne umgewandelt. Es kommt dabei das Prinzip der Frequenzumtastung zur Anwendung. Eine '0' wird durch vier vollständige Wellen einer 1200 Hz Sinus Kurve und eine '1' durch acht vollständige Wellen mit 2400 Hz abgebildet. Hierbei ergibt sich eine Datenübertragungsrate von 300 Baud.
Vor der Datenübertragung muss auf dem Band mindestens 30 Sekunden lang die Trägerfrequenz (2400 Hz) abgelegt werden; dies soll eine Synchronisation des Kassetten-Interfaces mit dem Kassettenrekorder unterstützen.
Jedes Datenpaket beginnt mit einem Startbit ('0'), auf das dann bis zu acht Datenbits (LSB, also niedrigstwertige Bits zuerst) folgen. Abgeschlossen wird das Datenpaket mit zwei Stoppbits ('1'). Jedes Datenpaket hat somit 11 bits; die Datenrate liegt bei 27 Bytes pro Sekunde.
Die Datenpakete werden in Blöcken übertragen, wobei die Blocklänge mindestens 5 Sekunden dauern muss. Der Aufbau und die Größe der Blöcke wird nicht festgelegt.

## 1200 Baud Variante

Die Firma Acorn Computers Ltd implementierte eine 1200 Baud Variante in ihren BBC Micro und Acorn Electron, welche die Kodierung der '0' auf eine vollständige Welle der Sinuskurve mit 1200 Hz und die '1' auf 2 Wellen der Sinuskurve mit 2400 Hz reduziert. Diese Erweiterung sieht genau ein Startbit '0', acht Datenbits und ein Stoppbit '1' vor; es ergibt sich eine Datenrate von 120 Bytes pro Sekunde (1200/(1+8+1)).
Die Erweiterung schreibt eine Blocklänge von 256 Bytes inkl. fortlaufender Nummerierung vor; zwischen den Blöcken muss eine zeitliche Lücke mit 2400-Hz-Ton (Carrier) sein. Dies ermöglicht bei einem Lesefehler das Zurückspulen zu einem Block vor dem falsch gelesen wurde.

## Computer mit Unterstützung des Kansas City Standards

Frühe Mikro-Computer (einige davon mit S-100-Bus):
* Compukit UK101
* Lucas Nascom 1, 2 (welche auch eine 1200 bit/s Version unterstützten)
* MITS Altair 8800
* MOS/CBM KIM-1
* Motorola MEK D1 6800 Platine
* Ohio Scientific C1P/Superboard II
* Processor Tech SOL-20 Terminal Computer
* Processor Tech CUTER S-100-Bus-Platine
* SWTPCs 6800-basierend Computer
* Eltec 6802 Computer Eurocom 1
Home/Personal Computer:
* ABC 80
* Acorn Computers Ltd
** Acorn Atom (nur 300 baud)
** BBC Micro (300 und 1200 Baud Varianten)
** Acorn Electron (nur 1200 Baud)
* MicroBee Systems
** MicroBee (300 und 1200 Baud)
* Heathkit
** Heathkit H8 (300 und 1200 Baud)
** Heathkit H89 (Auch als Zenith Z89 vertrieben) (300 und 1200 Baud)
* Triumph-Adler
** Alphatronic PC
** Alphatronic PC16
Programmierbare Taschenrechner:
* Casio
** FX-501P/FX-502P (mit Casio FA-1 Interface)
** FX-602P
** FX-702P
** PB700 (mit Casio FA-11 Interface)

## Weitere Varianten des Kansas City Standards

Die Heimcomputer TI-99/4 und TI-99/4A von Texas Instruments verfügten über folgendes zwar langsame, dafür aber gegenüber Störungen recht robuste Aufzeichnungsformat:
Es begann mit dem Vorton, bestehend aus 768 Bytes 0x00, gefolgt von einem Byte 0xFF. Danach folgte zweimal das Byte mit der Längenangabe. Das Byte benennt die Anzahl an nachfolgenden 64-Byte-Blöcken. Mindestens 0x01 für 1 Block, also 64 Bytes. Maximal 0xFF für 255 Blöcke, also 16320 Bytes. 0x00 als Längenangabe ist nicht zulässig. Der nun folgende pulsierende Sound entstand daraus, dass die zu speichernden Daten in Blöcke zu je exakt 64 Bytes aufgeteilt wurden. Jedem Block wurden zur Synchronisation 8 Bytes 0x00 gefolgt von 1 Byte 0xFF vorangestellt. Zur Datensicherheit erhielt jeder Block am Ende noch ein Checksummenbyte. Diese somit insgesamt 74 Byte lange Struktur wurde außerdem immer doppelt geschrieben. Zum Wiedereinlesen wurde vom Timer im I/O-Chip TMS9901 die Länge der Halbwellen des Tonsignals vermessen. Eine lange Halbwelle bedeutete eine Null; zwei kurze Halbwellen standen für eine Eins.
Der aus alledem resultierende typische „TI-Sound“ war jedem Benutzer wohlvertraut und schaffte es sogar in eine Fernsehserie. Der Autor des Buches Programme für den TI-99/4A (Hofacker, 1983) Rainer Heigenmoser arbeitete als technischer Berater in der deutschsprachigen Fernsehserie Der Bastard (1989) mit. Darin wird an einer Stelle ein Faxgerät gezeigt. Der während der Faxübertragung gespielte Sound stammt jedoch nicht von einer Faxübertragung, sondern von einem auf Kassette speichernden TI-99/4A.