Kansas City Standard

In den 1980er Jahren war es bei den Heim- und Personal-Computern üblich, dass die Programme, Spiele und Daten auf der sogenannten Datasette gespeichert wurden, also eine Kompaktaudiokassette mit dem Magnetband, wie sie in derselben Dekade für die Aufnahme von Musik und anderen Tonaufnahmen wie Hörspiele und Radiomitschnitte verwendet wurden. Wobei es sprachlich aufzupassen gilt, denn die Datasette ist quasi das Tempo-Taschentuch unter den Kompaktkassetten für die Speicherung der Computerdaten, da die Bezeichnung ursprünglich von Commodore ist. Das lag nicht zuletzt daran, da der Begriff vor allem mit dem Commodore C64 eine starke Verbreitung in Deutschland und Mitteleuropa bei den Heim- und Personal-Computer fand, wurde der Begriff Datasette also zum Synonym für die Speicherung von Computer-Daten auf der Kompaktaudiokassette. Andere Hersteller wie unter anderem Atari, Apple, Sinclair, Robotron oder Amstrad/Schneider besaßen ebenfalls die Möglichkeit, die Computerdaten auf Kompaktaudiokassette zu speichern und von ihr wieder zu lesen. Selbst der berühmte IBM 5150 PC besaß eine Schnittstelle zum Anschluss eines Datenrekorders. Die Hersteller boten über den Handel bereits auch Programme und Spiele auf der „Datasette“ zum Verkauf an. Je nach Größe des Programms war die Spielzeit dieser um die 15 bis 20 Minuten lang. Es war aber auch möglich, sich über den damalig gewöhnlichen HiFi-Handel sich leere Kassetten mit üblicherweise 60 oder 90 Minuten Spielzeit zu kaufen, um so auch mehrere Programme auf die Kassette zu speichern.
Bezüglich der Heimcomputer von Robotron in der DDR hatte ich bereits einen Artikel geschrieben gehabt, wie wir es mit den Laden der Spiele in den Robotron KC 85/4 gehandhabt hatten.

Kansas City Standard
Kansas City Standard mit Optionen

In dem YouTube-Video ‚Loading PC Games from Reel to Reel Tape‘ des Kanals LGR vom US-Amerikaner Clint Basinger stellt dieser den ‚Kansas City Standard‘ vor, der ein offener Standard durch den Zusammenschluss von einigen Herstellern der Heim- und Personal-Computer wie Acorn Computers Ltd, Triumph-Adler, MITS für ihren Altair 8800, dem Taschenrechner-Hersteller Casio und anderen war und im amerikanischen Byte Magazin im Jahr 1975 beschlossen und vorgestellt hatten. Mit einem nach diesem Standard funktionierenden Kassetteninterface war es möglich, im wesentlichen wie das an einer seriellen Schnittstelle angeschlossenem Modem die Bits in Töne umzuwandeln, um sie eben auf ein Tonband oder Kompaktaudiokassette speichern und wieder von ihr einlesen zu können. Gespeichert wurden die Bits mit einer Modulation von 300 Bit je Sekunde. Entsprechende Kassetteninterface-Geräte waren dann ab der zweiten Hälfte der 1970er Jahre ab zirka 80 US-$ im Handel erhältlich, was wesentlich preiswerter war als ein 8″ oder später 5,25″ Diskettenlaufwerk. Zu dieser Zeit kostete in Deutschland zum Beispiel ein Diskettenlaufwerk 3.000,- DM. Davon abweichend implementierte Sega für ihre Spielekonsole SG-1000 eine Variante mit 600 Bit je Sekunde, sowie Acorn für ihren BBC Micro und Acorn Electron eine mit bis zu 1200 Bit je Sekunde.
Clint stellt dabei das im Jahr 2006 unter der Public Domain Mark 1.0 stehende DOS-Programm KCS08 vor, welches Dateien in Wave-Audiodateien encodiert und wieder zurück decodiert. Dabei bietet es einige Optionen wie zum Beispiel die Art der Modulation – 300, 600 oder 1200 Bit je Sekunde, Parität, die Kodierung und einige weitere an.

Kansas City Standard
Kansas City Standard in Benutzung

Und Clint wäre nicht Clint von LGR, wenn er das Spielchen nicht bis aufs i-Tüpfelchen treibt und sich extra ein altes und hochwertiges Tonbandgerät zulegt, um auf einigen Tonbändern ein altes DOS-Spiel und einige andere Dateien zur Demonstration zu encodieren und speichern, um es wieder dann als Audio-Stream einzuspielen und vom KCS08-Programm zurück zu dekodieren.

Bei meiner Internet-Recherche bin ich noch auf das Python-Script py-kcs von dem US-amerikanischen Software-Autor David Beazley gestoßen, welches Dateien mit einer Modulation von 300 Bit je Sekunde nach 8N1 encodieren und wieder decodieren kann. – Wenn man auf seinem macOS, Linux oder anderem *Unix keinen DOS-Emulator direkt zur Hand hat.

Zum Schluss habe ich nun also auch diesen Artikel in seiner Klarschrift in eine Wave-Datei mit 1200 Baud zum Nachhören umgewandelt.

Audio Sample Datei ‚Kansas City standard‘

Links:

Einrichten eines virtualisierten MS-DOS Systems

Erst einmal eine Sache vorweg: Auch wenn ich bei der Lösungserstellung VMWare Fusion für Mac als Desktop-Virtualisierung verwendet habe, wird diese aber auch mit VMWare Desktop für Linux oder Windows, den Virtualisierungslösungen Parallels Desktop oder Oracle VirtualBox, und sogar mit diversen x86-Emulatoren funktionieren.

Der Hintergrund warum ich diesen Artikel erstellt habe ist, dass ich mich vor einigen Tagen in ein Gespräch mit zwei mir mehr und weniger bekannten Personen dazu gesellt habe, wo es um eine Software zur Erstellung von Partituren im MIDI-Format ging. Ich berichtete, dass ich im Alter von 15 bis 17 Jahre selber eine Windows-Software besaß, mit der es möglich war in Form einer Partitur MIDI-Songs zu erstellen, um die musikalischen Partner für das Üben zu ersetzen. Die Software die ich damals einsetzte – und auch heute auf Diskette noch habe, heißt „MIDI Recording Session“. Auch wenn es sich bei dieser um ein 16-bittige Windows 3.x Anwendung handelt, so konnte ich sie dennoch ohne Probleme in einer bestehenden virtuellen Maschine mit Windows XP starten und benutzen. Allerdings kam mir bereits bei dem ersten Gedanken das Programm nach so langer Zeit mal wieder zu Starten auch die Idee, nach recht langer Zeit ein MS-DOS mit Windows 3.11 mal wieder zu virtualisieren.
So habe ich meine Disketten-Images aus dem Schrank geholt und das Microsoft DOS 6.2 in eine virtuelle Maschine installiert. Um das Windows for Workgroups in der Version 3.11, sowie das Microsoft Works für Windows Version 2 von CD-ROM in die DOS-VM installieren zu können, bedarf es allerdings auch noch einen Treiber um überhaupt auf das optische Laufwerk zugreifen zu können.

Bei meiner Recherche nach einem adäquaten DOS-Treiber für das virtualisierte MS-DOS bin ich auf das Technology Blog von Werner Ziegelwanger gestoßen. Dieser hatte es sich zu seinem Hobby gemacht einen DOS-PC zusammen zu bauen und ist bereits auf das selbe Problem gestoßen wie ich, nur mit der zusätzlichen Schwierigkeit im Gegensatz zu mir, dass er eben kein virtualisiertes System verwendet, wo sich die (Pseudo-) Hardware immer gleich verhält, sondern dass er mit den Herstellereigenen Besonderheiten der Laufwerke zu kämpfen hatte, die immer für Fummelarbeiten bei den Treibern unter einem nativ ausgeführten DOS sorgten.
Ziegelwanger hat die Arbeitsschritte sehr schön dokumentiert, so dass es mir ohne Probleme möglich war das optische Laufwerk aus der virtualisierten DOS-Umgebung ansprechen zu können. Ich habe sie als Anleitung nochmals in mein Wiki übernommen.

Links:
Anleitung im eigenen Dokuwiki
Technology Blog – DOS CD Rom Treiber installieren

Darüber hinaus stand ich vor dem Problem, Dateien, wie zum Beispiel eben die Treiber für den Zugriff auf das CD-Laufwerk, von meinem Host-System (macOS) in die virtuelle Maschine zu übertragen. Der Trick ist für das erste aber recht einfach.:

  1. Über das Terminal unter macOS (Linux, BSD) ein leeres Disketten-Image mit dem Konsolenprogramm dd erstellen.
    dd if=/dev/zero bs=512 count=2880 of=msdos-floppy.img
  2. Das erstellte Disketten-Image mit dem Virtualisierungsprogramm als Diskettenlaufwerk verbinden und mit dem Befehl format a: mit dem Dateisystem FAT12 unter DOS formatieren.
  3. Image von der VM wieder lösen und im Dateimanager (macOS Finder oder dem jedes anderen Host-Systems) wieder mounten und dann die Dateien hineinkopieren.
  4. Zuletzt das Image wieder aus dem Dateimanager auswerfen und mit der virtuellen Maschine verbinden. Die Dateien können gelesen beziehungsweise wenn nötig verändert werden.

Auf Dauer ist dies aber natürlich keine Lösung und ziemlich umständlich sowie nervend.

DOSBox vs. DOS-EMU

Seit meinem Umstieg auf Ubuntu 8.04 (Hardy Heron) macht das Spielen mit DOSBox auch nicht mehr so recht Spaß. Denn irgendwie lassen sich die Cursortasten nicht richtig ansprechen. Jeder Versuch das Tastenlayout im DOSBox eigenem Keymapper neu zu gestalten bringt keine Besserung. Der Keymapper interpretiert weiterhin die Pfeil-nach-links-Taste mit der Funktion der ‚Alt-Gr‘-Taste und diese wiederum mit der ‚Return‘-Taste. An der dem Tastaturlayout von Ubuntu und dem DOS-Treiber für eine deutsche Tastatur innerhalb von DOSBox liegt es auch nicht. Einzige Abhilfe, damit es nicht langweilig wird, schafft die Installation von DOS-EMU, auch wenn dieser Emulator durch das Fehlen einiger Features bei den Spielen nicht so rockt wie DOSBox. Ein solches Verhalten hat aber bisher auch noch niemand in einem Forum geschildert.
Damit man aber dennoch seine DOS-Programme benutzen kann, hier mal eine kleine Anleitung wie beide Emulatoren auf die selben Daten zugreifen können. In meinem Beispiel habe ich sämtliche Ordner, Programme und Daten, auf die ausschließlich beide Emulatoren zugegriffen werden soll, in ein eigenes Verzeichnis mit dem Namen DOS im ~/.dosbox -Verzeichnis gelegt. Dieses wiederum wird sowohl durch das entsprechende editieren der dosbox.conf unter DOSBox als und durch dem im Beispiel angegebenen Link im ~/.dosemu -Verzeichnis direkt in beiden Emulatoren als DOS-Laufwerk C: gemountet.

~$ cd .dosemu/drive_c
~$ cp autoexec.bat config.sys ~/.dosbox/DOS
~$ cd.. && mv drive_c drive_bak
~$ ln -s ~/.dosbox/DOS/ drive_c