30 Jahre Commodore C16

Vor genau 30 Jahren, am 13. September 1984, war der Verkaufsstart des Commodore 16. Der C16 und C116 gehörten zur selben Computerfamilie wie der Plus/4, wobei der Plus/4 über zusätzliche bereits eingebaute Anwenderprogramme verfügte. Software konnte prinzipiell zwischen den Rechnern ausgetauscht werden, jedoch hatte der C16 weniger Arbeitsspeicher zur Verfügung. Der C16 war ein Flop auf dem amerikanischen Markt und auch in Europa verkaufte er sich nur in einigen wenigen Ländern einigermaßen.

Über diesen und weitere Commodore Computer gibt es natürlich einen Eintrag im 8Bit-Museum.de.

Webtipp: Games that weren’t

Games that weren'tGames that weren’t ist eine Website für echte Spieler und Hobby-Archäologen. Diese Website widmet sich ganz den unveröffentlichten Spielen und den Prototypen, die es nie in den Handel geschafft haben und liefert umfangreiche Informationen dazu.

Von Zeit zu Zeit findet sich auch der eine oder andere Quellcode wieder. So wurde z.B. das Ultimate Spiel The Bubbler aus dem Jahr 1987 für den ZX Spectrum von Lynsoft für den C64 konvertiert. Kurz vor Fertigstellung entschloss sich Ultimate aber dazu das Spiel nicht zu veröffentlichen, da es auf dem C64 viel zu langsam lief. Der Programmierer Matt Young hatte den Code aber nach über 20 Jahren noch auf Disketten vorliegen und zusammen mit ihm schaffte es GTW eine voll lauffähige Version für den C64 zu kompilieren und bietet diese zum Download an.

Die Website beschäftigt sich zwar hauptsächlich mit verschollenen C64 und Amiga Spielen, aber auch andere Systeme sind, wenn auch mit nur wenigen Titeln, vertreten.

Link: Games that weren’t

Bild des Tages: Captain Kirk und sein VC 20

Als Commodore in den USA damit begann den VC 20 über K-Mart zu verkaufen, wählten sie William Shatner als Werbesprecher, der in seinen Auftritten die Frage stellte : “Why buy just a video game?”

Video: Commodore VIC 20, morrisonAV, YouTube

Der kanadische Schauspieler William Shatner wurde hauptsächlich durch seine Rollen als Captain Kirk in Raumschiff Enterprise, als T.J. Hooker in der gleichnamigen Serie und als Denny Crane in der Anwaltsserie Boston Legal bekannt.

Mehr über Commodore gibt es in diesem Beitrag.

Vor 30 Jahren: Jack Tramiel kauft Atari von Warner Communications

Nachdem Raymond Kassar am 7. Juli 1983 die Geschäftsführung Ataris aufgibt, wird unter der Leitung seines Nachfolgers James Morgan die Zusammenarbeit mit Jay Miner und dessen Unternehmen Amiga vertieft. Während dieser Zusammenarbeit entsteht das gemeinsame Lorraine-Projekt, ein Heimcomputer basierend auf einer Motorola M68000 CPU.

Am 2. Juli 1984 verkauft Warner Communications die Konsolen- und Computerabteilung Ataris an Jack Tramiel, der zuvor Commodore verlassen hatte und davor schon versucht hatte mit seiner Firma Tramiel Technologies Ltd Amiga zu kaufen. Da Commodore aber doppelt so viel bot, bekam Commodore schließlich den Zuschlag. Aus dem Lorraine-Projekt wurde schließlich der Amiga Computer.

Tramiel besaß jetzt zwar Atari, aber keinen geeigneten Computer mehr, der auf dem entstehenden Markt für 16-Bit Computer bestehen konnte. Sein Mitarbeiter Shiraz Shivji, der ihm von Commodore nach Atari folgte, entwickelte den Atari ST in nur fünf Monaten zur Prototypenreife, so dass er im Januar 1985 auf der CES in Las Vegas als Atari 130ST und 520ST der Öffentlichkeit vorgestellt werden konnte.

Mehr über Jack Tramiel gibt es in den Beiträgen über Atari und Commodore.

 

Zum 20. Todestag von Jay Miner

Jay Miner wurde am 31. Mai 1932 in Prescott, Arizona, geboren. Nach seinem Abschluss 1958 als Elektroingenieur an der University of California, Berkeley, arbeitete er für mehrere Unternehmen bis er Mitte 1970 bei Atari anfängt. Dort war er an der Entwicklung des VCS beteiligt und entwickelte später die Custom-Chips ANTIC und GTIA für den Atari 400 und Atari 800.

Schließlich verließ er Atari und gründete 1982 die Firma HiToro, die später in Amiga umbenannt wird. Dort begann Miner mit der Entwicklung einer neuen Computerplattform. Als Amiga schließlich von Commodore International aufgekauft wurde, setzte Miner die Arbeit an seinem Computer für Commodore fort. Unter seiner Leitung entstanden die Spezialbausteine, die dem Commodore Amiga seine damals erstaunlichen Grafik- und Soundfähigkeiten verliehen.

1989 musste er aufgrund von gesundheitlichen Problemen Commodore verlassen und sich 1990 einer Nierentransplantation unterziehen. Am 20. Juni 1994 verstarb Jay Miner an Nierenversagen.

Mehr über Jay Miner und Commodore gibt es in diesem Beitrag.

Bild: Jay Miner, Copyright 1990 Michael C. Battilana and Cloanto Italia srl (CC BY 2.0)

Floppy Emulator für den Commodore Amiga

Für den Fall, dass das Floppy-Laufwerk eines Heimcomputers, wie Atari ST oder Commodore Amiga, nicht mehr funktioniert, hatte ich im September den HxC 2001 vorgestellt, eine auf einem PIC18F4620 @40Mhz basierende Lösung.

Jetzt hat Maurizo Ramondo eine Bastellösung mit dem Raspberry Pi entwickelt. Hierzu stellt er einen Schaltplan für eine kleine Zusatzplatine und eine Firmware auf seiner Homepage bereit. So erweitert emuliert der RPi ein Floppy-Laufwerk für den Commodore Amiga, eine Änderung an der Hardware ist nicht notwendig. Auf der SD-Karte können dann Images von Disketten abgelegt werden und bequem über ein Menü ausgewählt werden.

Bild: Maurizo Ramondo

30 Jahre Commodore SX-64

Im Dezember 1983 erschien der SX-64 auf dem deutschen Markt. Es war eine portable Ausgabe (17kg(!)) des C64 mit einem eingebautem Monitor und Diskettenlaufwerk. Der Rechner wurde in den USA im Dezember 1983 zum Preis von US$ 995 veröffentlicht und war in Deutschland ab dem Frühjahr 1984 für knapp 3.000 DM erhältlich. Er wurde aber nur in geringen Stückzahlen verkauft, insgesamt etwas über 49.000 Geräte sollen es gewesen sein. Der SX-64 bot aber ansonsten die gleichen Features wie der C64, bis auf die fehlenden Datasette- und HF-Anschlüsse.

Ursprünglich sollte ein Doppel-Diskettenlaufwerk in das Gerät eingebaut werden und auf der Summer CES (Consumer Electronics Show) 1983 in Las Vegas stellte man auch einen entsprechend ausgestatteten Prototypen unter der Bezeichnung DX-64 vor. Der DX-64 wurde aber nie veröffentlicht, es blieb beim Prototypen. Anstatt dessen, wurde auf der Winter CES das Gerät aus Kostengründen mit nur einem Diskettenlaufwerk unter dem Namen SX-64 (Single Drive Executive 64) vorgestellt.

Mehr zum SX-64 und den anderen Rechnern von Commodore gibt es in diesem Artikel.

Bild: SX-64, Wikipedia, CC BY-SA, User Hedning

USB-Adapter für Commodore Tastaturen

Vor einiger Zeit hatte ich mir überlegt, einen Raspberry Pi in ein altes C64 Gehäuse einzubauen und mit Hilfe eines Emulators, wie z.B. VICE, einen “modernisierten” C64 zu bauen. Leider fand ich damals keine Möglichkeit die C64 Tastatur mit wenig Aufwand mit dem Raspberry Pi zu verbinden. Zwar hat dieser für solche Zwecke GPIOs zur Verfügung, aber man hätte außer etwas Logik auch noch ein geeignetes Skript auf dem Raspberry Pi gebraucht, um die Tastendrücke zu simulieren. Leider erkennen nicht alle Emulatoren diese simulierten Tastendrücke, so dass ich diese Möglichkeit wieder verwarf.

 

Der USB Tastatur-Adapter

Keyrah v2 mit Raspberry Pi im C64 GehäuseAber über dieses Problem haben sich auch schon andere Gedanken gemacht: Von der Firma Individual Computers gibt es einen USB-Adapter mit dem eine C64 Tastatur (wahlweise auch VC20, C128(D), C16, C116, Plus/4, Amiga 1200/600) per USB an einen PC (und damit auch an einen Raspberry Pi) betrieben werden kann. Mit einem Preis von 35-40 EUR ist der Adapter zwar nicht gerade günstig, aber durch sein Platinendesign passt er perfekt in ein C64 Gehäuse und vereinfacht den Aufbau eines C64 Clones ungemein.

Übersetzungsprobleme unter Windows/Linux

Wo Licht ist, gibt es aber auch Schatten…

Die Idee eines solchen Adapters ist eigentlich die Tastaturmatrix der Commodore Tastatur auszuwerten und geeignete Scancodes an den angeschlossenen PC zurück zu liefern, so dass auf diesem die korrekten Zeichen erscheinen. Prinzipiell unterstützt Keyrah auch zwei Modi: In dem einem Mode werden Scancodes geliefert, die eine Verwendung unter Windows oder Linux ermöglichen sollen, der zweite Mode solle einen problemlosen Betrieb unter Vice ermöglichen.

Egal welchen Mode man unter Windows/Linux verwendet: Es werden praktisch nur die alphanumerischen Tasten mit wenigen Sondertasten korrekt zurückgeliefert. Dabei wirbt individual Computers noch “the ‘middle’ position [is] for everyday use. The emulator mapping is as easy as it can get: Every keypress will cause the exact thing that you’d expect the original machine to do when you press that key“. Darunter versteht man dann im “everyday mode” die folgende Umsetzung: Ein Druck auf “@” liefert “\” oder “|” (US Layout ohne und mit Shift) oder “Ü” (DE Layout). Ok, so kommt man auch an Umlaute, wenn man Windows oder Linux arbeitet, intuitiv ist das aber nicht. Unter “everyday use” verstehe ich, dass mit der C64 Tastatur unter Windows oder Linux die Zeichen geliefert werden, die auf der C64 Tastatur auch aufgedruckt sind und in Zusammenspiel mit der Control-, Commodore- oder Umschalt-Taste dann weitere Keycodes generiert werden, die eine normale C64 Tastatur nicht besitzt, z.B. F9-F12, Windows, Alt gr, Umlaute, Cursorblock etc.

Ich will mit der Tastatur aber auch nicht unter Windows oder Linux arbeiten, sondern unter Vice. Wie schlägt sich der Keyrah im Modus für Vice?

Betrieb unter Vice

Schon vorweg: Auch der Betrieb unter Vice ist nicht 100% optimal, aber durchaus brauchbar. Die Umsetzung läuft dabei wie folgt ab: Auf einer Windows Tastatur stehen einige Tasten einer C64-Tastatur nicht zur Verfügung, so dass diese durch andere Tasten simuliert werden müssen (z.B. die Commodore Taste durch die Alt Taste), i.d.R. sind diese bei einem Emulator auch konfigurierbar. Ein guter Tastaturadapter sollte jetzt alle Zeichen, die von einer C64 Tastatur geliefert werden, auf die entsprechenden Codes der Windows Tastatur umsetzen inkl. der Ersatztasten. Der Emulator, z.B. Vice, sollte diese dann wieder für das simulierte System zurück auf die Originaltasten umsetzen (also z.B. Control links wieder auf die Commodore Taste). So die Idee in der Theorie. Leider setzt Keyrah einige wenige Tasten abhängig zum Tastaturlayout nicht optimal um, so dass Programmieren unter Vice mit einer C64 Tastatur unter Umständen nur bedingt möglich ist, weil gerade diese Taste nicht erreichbar ist. Mit dem deutschen Tastaturlayout (German, DE) unter Raspbian ist es mir nicht gelungen ein “-” (Minus) mit der C64 Tastatur einzugeben. “showkey -a” liefert dafür keinen Code zurück (mit der Option “-s” wird der Scancode 0B 8B zurückgegeben). Mit dem englischen Layout (English, US) klappt es besser, hier sind alle Tasten erreichbar, sogar die Grafikzeichen.

Damit das aber problemlos klappt, muss unter Vice die passende Keymap geladen sein. Meine Erfahrungen mit den vorhanden Keymaps sind bis Vice 2.2 durchwachsen. Der Hersteller stellt inzwischen im SVN an den Keyrah angepasste Keymaps zur Verfügung. Die deutsche Umsetzung ist (bis auf das Problem mit der “-” Taste) brauchbar, für eine englische Tastaturbelegung wäre die bei Vice beiliegende Umsetzung (sdl_sym.vkm) in Ordnung (die vom Hersteller zu diesem Zeitpunkt bereitgestellte Keymap lief bei mir nicht), wäre dort nicht ein kleiner Fehler vorhanden: Für die Umsetzung von “-” nach “+” ist anstelle von “43 5 0 8” der Wert “45 5 0 8” korrekt. Eine korrigierte Version für Vice 2.2 habe ich verlinkt. Mit dem aktuellen Vice 2.4 ist dieser Fehler korrigiert.

Die wirklich “wichtigen” Kommandos LOAD “$”,8 : LIST und LOAD “program”,8,1:RUN können aber problemlos unter jeder Vice Version eingegeben werden.

Spielen unter Vice

Ein eindeutiger Pluspunkt des Keyrah sind die zwei Joystick-Ports. Im “everyday mode” liefert Port 2 numerische Keycodes (Rechts=6, Links=4, Hoch=8, Runter=2, Feuer=5) und Port 1 die Cursorkeys mit Leertaste als Feuertaste. Im Emulationsmode bleibt Port 2 wie er ist, Port 1 liefert ebenfalls numerische Codes (Rechts=1, Links=7, Hoch=9, Runter=3, Feuer=0). Möchte man unter Vice einen Joystick verwenden, definiert man ein Keyset mit genau diesen Tasten und weist dieses Joystick 1 oder 2 zu. Drück man jetzt den Feuerknopf, liefert Keyrah z.B. “0” an den Emulator, der diesen Code wiederum auf den Feuerknopf des zugewiesenen Joystick Ports umsetzt. So sollten 99% der Spiele ohne Einschränkung funktionieren. Ich habe aber zusätzlich eine PC Tastatur an den Raspberry Pi angeschlossen, damit das Optionsmenü des Emulators mit F12 aufgerufen werden kann. Wer möchte, kann dieses aber auch auf eine andere Taste legen und so auch über die C64 Tastatur aufrufen. Allerdings ist das Menü über diese recht schlecht zu bedienen.

Verwendung unter anderen Emulatoren

Theoretisch kann man Keyrah auch mit jedem beliebigen anderen Emulator einsetzen. Ich habe die drei Speccy Emulatoren Fuse, Unreal und Fbzx probiert. Im Prinzip kann man die C64 Tastatur auch hier einsetzen, aber sinnvoll mit dem simulierten Rechner arbeiten geht aufgrund der fehlenden Sondertasten des Speccys natürlich nicht. Da Keyrah nicht programmierbar ist, kann man ihm auch nicht beibringen bei Druck auf die Commodore-Taste z.B. die Windows-Taste zurück zu liefern, die der Emulator dann beispielsweise als “Symbol Shift” interpretiert.

Durchaus interessant ist aber, ob man zumindest die Joystick-Ports des Keyrah verwenden kann. Kurz gesagt: Man könnte, theoretisch… Unter Fuse muss das Spiel zuerst geladen werden, dann den Joystick auswählen (z.B. Kempston) und das Spiel über das Spielmenü starten. Dann das Spiel schnell unterbrechen und in den Emulator-Optionen dem Kempston Interface die korrekten Tasten zuweisen. Da beim Speccy die Auswahlmenüs häufig über die numerischen Tasten gesteuert werden (z.B. bei Jetpac: 1=1 Spieler, 2=2 Spieler, 3=Keyboard, 4=Kempston, 5=Start), darf noch nicht der Joystickmodus aktiviert sein, da sonst keine Auswahl per Tastatur mehr möglich ist. Bei Unreal gibt es ein anderes Problem: Unreal verwendet die Cursorkeys der Windows-Tastatur, die Keyrah im “everyday mode” auch liefert. Leider versteht dieser die Leertaste nicht als Feuerknopf, er möchte die Alt-Taste, die der Keyrah nur über die Tastatur liefert. Hier lässt sich leider nichts umdefinieren, ähnlich sieht es beim Fbzx aus.

Fazit

Keyrah ist zwar ein praktisches USB Interface, welches aber ein paar Chancen grundlos verschenkt. In dem verwendeten Szenario mit Raspbian Linux, Vice 2.4, Keyrah Interface und C64 Tastatur ist programmieren unterm Emulator mit einem englischen Tastaturlayout (English, US) möglich. Spielen funktioniert problemlos, wenn das Programm die alphanumerischen Tasten (z.B. The Hobbit) oder die Joystick Ports (z.B. Fort Apocalypse) verwendet.

Theoretisch könnte man den Adapter auch mit jedem anderen Emulator benutzen, wenn die Tastaturumsetzung entweder im Emulator oder besser am Adapter änderbar wäre. An diesem hat der Hersteller aber sogar die Chipbeschriftung entfernt, vermutlich weil man Nachbauten fürchtet. Wäre der Adapter programmierbar (vielleicht ist er es sogar), würde die Community bestimmt schnell weitere Anpassungen liefern. Schade.

Möchte man Keyrah einsetzen, sollte man das US Tastaturlayout unter Linux einstellen. Die C64 Tasten sind dann unter Windows/Linux nicht immer wie erwartet, aber die Belegung ist sinnvoller als im deutschen Layout. Ich habe zusätzlich zu der C64 Tastatur an den Keyrah noch eine Funk-Tastatur an den Raspberry Pi angeschlossen. So kann man Raspberry Pi und den Emulator vernünftig bedienen.

Kompilieren von Vice

Die aktuelle Version 2.4 von Vice steht derzeit unter Raspbian “wheezy” (noch) nicht zur Verfügung, sondern muss selbst kompiliert werden (im Repository vom Vorgänger “squeeze” findet man derzeit die Version 2.1). Das Kompilieren dauert auf dem Raspberry Pi ca. 2-3 Stunden:

sudo apt-get install libsdl1.2-dev
wget http://sourceforge.net/projects/vice-emu/files/releases/vice-2.4.tar.gz
tar -xf vice-2.4.tar.gz
cd vice-2.4
./configure --enable-sdlui --with-sdlsound
sudo make
sudo make install

Danach Vice mit

x64 -sdlbitdepth 16

starten.

Alternativen

Viele Alternativen zum Keyrah gibt es leider nicht. Kommerzielle sind mir keine bekannt, aber es gibt einige interessante Projekte:

Mikkel Holm Olsen verwendet für seinen Tastaturadapter einen ATmega16 mit softwarebasierten USB Stack (V-USB). Er stellt Platinenlayout und Treiber auf seiner Website zur Verfügung.

Antoniotrkdz verwendet einen Arduino 168/328P ebenfalls mit der V-USB Library. Auch er stellt Baupläne und Software auf seiner Website zur Verfügung.

Das ausgereifteste Interface dürfte von Simon Inns kommen. Seine Lösung verwendet einen PIC Microcontroller der Keyboard und beide Joystick Ports (inkl. ADC für Paddles) unterstützt. Auf seiner Website stellt er Platinenlayout und Firmware zur Verfügung. Er erklärt auch sehr deutlich, wie eine gute Tastaturumsetzung aussehen sollte.