SimulationsRaum Rotating Header Image

Signetics 2650

Flappy Bird @ VC-4000 @ Classic Computing

Zwischen 2013 und 2015 habe ich mich in 4 Seminaren zum Signetics-2650-Assembler mit der Programmierung der frühen Computerspielkonsole VC-4000 von Interton befasst. In einer Gruppenarbeit sollte für diese Konsole ein neues Spiel entstehen – das erste seit 1982 – nämlich „Flappy Birds“. Nachdem wir die Charakter-Animation, die Steuerung und sogar die Hintergrundmusik bereits fertig hatten, wollten wir uns an die Programmierung der Röhren-Animation machen, die aus der für den Video-Chip typischen „Gittergrafik“ bestehen sollte. Hierbei haben wir dann festgestellt, dass es erhebliche Unterschiede zwischen dem von uns verwendeten VC-4000-Emulator und der Original-Hardware gibt, die dazu führten, dass Algorithmen, die im Emulator fehlerlos liefen, auf der Konsole nicht funktionierten. Um uns den zeitaufwändigen und sich ständig wiederholenden Prozess von „Programmieren – Assemblieren – EPROM-Brennen – Testen – EPROM löschen – …“ zu ersparen, sollte zunächst ein Multi-ROM-Modul, konstruiert werden, auf dem man Programm-Binaries einfach auf einer SD-Karte speichern kann, um sie von dort in die Konsole zu laden.

Dieses Modul ist nun seit einiger Zeit fertig und gerade wird eine professionelle Platine dafür konstruiert, die dann zum Selbstkostenpreis erworben werden kann. Alle notwendigen Teile lassen sich im Elektronik-Einzelhandel besorgen; die Software, alle Schaltpläne und Informationen befinden sich auf GitHub. Dort ist auch der Stub unseres „Flappy Birds“-Versuchs zu finden.

Gestern habe ich nun erfahren, dass sich ein anderer deutscher Hobbyist ebenfalls an die Programmierung des Spiels gemacht hat und dabei Erfolg hatte. (Er hat den oben geschilderten, zeitaufwändigen Entwicklungsprozess nicht gescheut). Anstatt der Gitter-Grafik bentutz er für die Hindernisse Sprites. Davon kann er zwar nur zwei gleichzeitig auf den Bildschirm bringen; diese Entscheidung liefert ihm aber 50 Byte mehr RAM-Speicher und zudem eine weniger „ruckartige“ Bewegung der Röhren. Elegant ist der „Durchlass“ zwischen dem oberen und unteren Rohr gelöst: Ein Sprite-Flag erlaubt die vertikale Spiegelung eines Sprites, so dass nur eine Hälfte gezeichnet werden muss. Das Ergebnis hat er für YouTube gefilmt:

Außerdem bietet er den Sourcecode, der Teile unseres unvollständigen Spielcodes enthält, sowie ein ROM-Image des Spiels zum Download über seine Homepage an.

Wer sowohl das fertige Multi-ROM-Modul als auch das spielbare Spiel sehen möchte, kann am übernächsten Wochenende nach Nordhorn zur „Classic Computing“ kommen – dem Jahres-Event des „Vereins zum Erhalt klassischer Computer e.V.“ Dort habe ich einen Stand (auf dem ich unseren restaurierten Sol-20 vorführe) und Mario Keller, einer der Mitentwickler des Moduls sowie der Spiel- Entwickler „Senildata“ werden ebenfalls dort sein.

Tennis 2650

In seinem Essay Children of the Revolution. Video-Spiel-Computer als Kreuzungen der Informationsgesellschaft (print|online) berichtet Claus Pias von frühen Tennis-Computerspielen. Neben einer apokryphen Whirlwind-Demo und dem berüchtigten „Tennis for Two“ schildert er eine experimentelle Implementierung aus dem Jahr 1960, die auf einer IBM 704 vorgenommen wurde:

Weitere zwei Jahre 1960, war eine dritte Art von Ballspiel zu sehen, das Studenten des MIT für den IBM 704 geschrieben hatten. Dieser besaß eine Kette von Kontrollämpchen, über die die Funktionsfähigkeit einzelner Bauteile getestet werden konnte. Das Programm bestand nun darin, die einzelnen Teile des Rechners in einer bestimmten Reihenfolge zu testen, um so die Lämpchen nacheinander aufleuchten zu lassen und einen wandernden Lichtpunkt zu erzeugen, der rechts verschwand um links sofort wieder zu erscheinen. Drückte man dann pünktlich beim Aufleuchten des letzten Lämpchens eine Taste, so kehrte der Lichtpunkt seine Laufrichtung um, schien abzuprallen und zurückzuwandern. Die Kontrolltafel des 1BM704 war zu einer Art eindimensionalem Tennisspiel geworden. (S. 218f. der Printversion)

Wenn Computerarchäologie nicht bloße Archivarbeit sein will (über weitere Hinweise zum IBM-704-Tennisspiel würde ich mich übrigens sehr freuen!), die solche Fundstücke als Historeme birgt, sondern ihre Monumente in Vollzug setzt, um deren informatische Aspekte kennenzulernen, scheint es angebracht, dieses Experiment nachzuvollziehen. Dies habe ich in einem Assembler-Brückenkurs im Frühjahr 2014 gemacht. In 14 Tagen sollten Programmieranfänger den Signetics-2650-Assembler für den Lehrcomputer Instructor 50 erlernen, um sich im darauf folgenden Sommersemester in den laufenden Assemblerkurs einschreiben zu können. Der von Pias entdeckte „frühe[] und reine[] Hack“ (Die Pflichten des Spielers, S. 323, print|online) schien mir – gerade, weil der Instructor 50 neben seiner 7-Segment-Anzeige lediglich noch über eine binäre LED-Ausgabe verfügt, ideal, um das historische Vorbild nachzuprogrammieren.

Im Folgenden der Signetics-2650-Assembler-Sourcecode für ein Leuchtdioden-Tennisspiel für den Instructor 50:

(mehr …)

Game of Memories 1.0

Das hier, hier und hier bereits vorgestellte Programm „Game of Memories“, das ich im Zuge meines Signetics-2650-Assemblerkurses geschrieben habe (und das von Thomas Nückel debugged und erweitert wurde) ist nun in der finalen Version 1.0 von der Webseite des Signallabors zu laden. In der ZIP befindet sich neben dem Sourcecode (als .asm-Textdatei) auch eine .COS-Datei, die ein Binary für den 2650-Emulator „WinArcadia“ darstellt. Nur in diesem Emulator kann das Programm auch „zeigen“, was es tut, denn der kleine „Game of Life“-Klon operiert ausschließlich in einer 256 Byte großen RAM-Bank des „Instructor 50“, die er als Monitor „missbraucht“. Damit wird zum einen auf den epistemologischen Unterschied der Emulation gegenüber einer Originalhardware hingewiesen; zum anderen ruft das Programm als computerarchäologisches Re-Release die Geschichte des CRT-Computermonitors in Form einer Williams-Tube-Inszenierung auf.

gom

VC-4000 Flash-ROM

In den vergangenen drei Semestern hat sich der Assembler-Kurs, den ich alldonnerstäglich veranstalten, ausschließlich um den Signetics 2650 gedreht. Zunächst wurde die Maschinensprache auf einem Lehr-Computer (Signetics Instructor 50) kennen gelernt. Im zweiten Semester haben wir die Plattform gewechselt und uns um die einzige deutsche Spielkonsole, die Interton VC-4000, gekümmert. Die Finessen des Grafik/Sound-Chips Signetics 2636 (PVI), der seltsamen Speicherverwaltung und insbesondere des von uns verwendeten Emulators „WinArcadia“ haben ihren ganz eigenen Reiz und ihre Probleme verursacht. Die Idee, zusammen einen „Flappy Birds“-Clon für die VC-4000 zu entwickeln, hat sich bis zum Ende des zweiten Kurses nicht umsetzen lassen.

(mehr …)

VCFe 2014 & 2015

Im vergangenen Jahr haben mein Kollege Thomas Nückel und ich auf dem 15. Müncher VCFe zum Thema „Exoten“ einen Vortrag über unseren Signetics-2650-Workshop gehalten. Dieser ist jetzt als Podcast nachzuhören. Auf dem diesjährigen VCFe ist das Thema „Computer im Osten“. Ich werde wieder dort sein und die Hard- und Soft- und Paperware von Horst Völz vorstellen.

Rechnen & Leben

Am kommenden Mittwoch werden in Wolfgang Ernsts Forschungskolloquium „Medien, die wir meinen“ die Projekte meines letztsemestrigen Assembler-Workshops vorgestellt:

Rechnen & Leben – Coding-Performance

Referenten: Dr. Stefan Höltgen, Juliane Schütte, Johannes Maibaum, Thomas Nückel

Aussterbende Computerplattformen werden heutzutage durch Emulationen scheinbar adäquat emuliert und so „am Leben“ erhalten. Doch Emulatoren können gleichzeitig mehr und weniger als die reale Hardware. Die Projekte im Seminar „Signetics 2650 Programmierworkshop“ zeigen dies auf ganz unterschiedliche Weise. Juliane Schütte hat für den „Signetics Instructor 50“, der der Seminargruppe als Referenzplattform für die Programmierung diente, eine Mathematikanwendung programmiert, mit der es möglich ist, dem eigentlich auf Binär- und Hexadezimalarithmetik beschränkten Computer das Rechnen im Dezimalsystem „beizubringen“. Sie stellt ihr Programm vor und erörtert ihre Hex-Dez-Konversionsroutine im Spannungsfeld medienwissenschaftlicher und mathematischer Fragestellungen. Johannes Maibaum hat sich auf eine Metaebene begeben und nicht in Assembler selbst programmiert, sondern einen eigenen Signetics-2650-Emulator in C für Linux programmiert. Welche Besonderheiten zwischen Quell- und Zielplattform es dabei – insbesondere unter Berücksichtigung beider Zeitverhalten und Hardwareabstraktion – zu berücksichtigen gab, diskutiert er in seinem Vortragsteil. Das Projekt von Thomas Nückel ist eine Implementierung eines „Game of Live“: Die beschränkten Ausgabeports des „Instructor 50“ haben hierbei die Nachbarschafts- und Spielregeln definiert: Sein „Game of Death“ ist ein eindimensionaler, deterministischer, binärer zellulärer Automat, auf der Basis von 8 Leuchtdioden. Zusammen mit dem Kursleiter hat er danach eine zweite Variante des „Game of Life“ programmiert: Unter dem Titel „Game of Memories“ wird ein Zellulärer Automat vorgestellt, der so nur auf dem Emulator Sinn ergibt, weil dieser die Grenzen der Darstellungsmöglichkeit des „Instructor 50“ überwindet und Speicher sichtbar machen kann. Wie alle Projekte zeigt auch dieses besonders, worin Emulation stark ist: Die „Versoftung“ von Hardware bietet den Programmentwicklern größere Freiheiten und Möglichkeiten, schränkt sie aber auch ein. An „Game of Memories“ zeigt sich die Einschränkung etwa bei der Generierung von Zufallszahlen, die auf der Originalplattform durch physikalische Ereignisse an den Ports entstehen, im Emulator aber „simuliert“ werden müssen. Nückel und Höltgen binden darüber hinaus die grafische Ausgabe Ihres Systems an die Frage der Sichtbarmachung und Epistemologie von Speicher(n) in Digitalcomputern zurück.

Länge: circa 70 Minuten
Ort: Georgenstraße 47, Raum 0.01 (Medientheater)
Zeit: 18-20 Uhr

 

Wer zu früh kommt, dem erzähl ich was vom Leben.

Gestern Abend habe ich in Leipzig auf der achten „Langen Nacht der Computerspiele“ einen Vortrag über „Game of Life“ und den Assembler-Workshop zum Signetics 2650 gehalten. Der halbstündige Auftritt, der um 22:30 beginnen sollte, fand aufgrund von vorangegangenen Überziehungen allerdings erst um kurz nach 23 Uhr statt. Das wusste zwar ich zum Glück aber die große Menge an Zuhörern (schätzungsweise 70 Personen) meines Nachfolgers nicht, die sich vor mir aufschichteten und, wo sie schon mal da waren, eben mir zuhörten, was im Signallabor der HU-Medienwissenschaft so veranstaltet wird.

Foto: René Meyer

Foto: René Meyer

1+1=?

Meine Studentin Juliane Schütte hat für den „Instructor 50“ im Rahmen meines Programmierworkshops zum Signetcis 2650 einen einfachen dezimalen Tischrechner programmiert. Er beherrscht die vier Grundrechenarten, kann negative Zahlen und Divisionen mit ganzzahligem Rest darstellen. Dieses auf den ersten Blick „einfache“ Projekt offenbart seine Schwierigkeiten, wenn man sich in der Programmierung des Prozessors und der Plattform auskennt – zumal, wenn man – wie die Studentin – noch nie zuvor programmiert hat.

instr50-calc

Juliane Schütte wird ihr Projekt im Rahmen einer Präsentation am 11.6. im Kolloquium „Medien, die wir meinen“ vorstellen. Der Sourcecode und die ausführbare Datei (für den Emulator WinArcadia) kann hier heruntergeladen werden.

CLInstructor

Johannes Maibaum hat im Rahmen des Assembler-Projektes zum Signetics 2650 ein Projekt erstellt, dass den Inhalt der Veranstaltung „übersteigt“, indem es eine Metaebene dazu bildet. Er hat in C einen „Instructor 50“-Emulator für die Command-Line-Ebene von Linux und Mac OS X entwickelt. CLInstructor kann in seiner jeweils aktuellen Version bei bitbucket herunter geladen werden.

So spielt das Leben …

Das von mir und Thomas Nückel entwickelte »Game of Memories« (eine „Game of Life“-Variante für Signetics-Einplatinencomputer und deren Emulatoren) hat im ersten Halbjahr 2014 eine kleine »Deutschland-Tournee«:

Am 12. April halte ich einen Vortrag (nebst Vorführung) auf dem »Gamefest« darüber. Eine Vortragsankündigung steht schon – Zeit und Ort werden in Kürze ergänzt:

So spielt das Leben
Convays »Game of Life« als Spiel & Ernst

Das berühmte »Game of Life« stellt eine Implementierung der Theorie »zellulärer Automaten« dar, die schon in der Frühgeschichte des Computers aufgestellt wurde. In ihm überschneiden sich mathematische Spieltheorie, Informationstheorie, Speichertheorie und fragen der Künstlichen Intelligenz … aber eben auch des Computerspiels, das in sich all diese Theorien enthält. Deshalb lohnt es sich auch, einen Blick auf die faszinierende Geschichte des »Game of Life« zu werfen, wie es 196X vom britischen »Spaß-Mathematiker« mit seinen einfachen Spielregeln für Computer entworfen wurde. Dieses Spiel ist nun noch einmal im Rahmen eines Programmierkurses an der Humboldt-Universität programmiert worden – wiederum mit einem »Mehrwert« an (Be)Deutungen. Damit sollte unter anderem gezeigt werden, was man mit einfachsten Computern der 1980er-Jahre alles machen kann, obwohl in deren Handbüchern das Gegenteil steht. Hilfreich ist dazu die moderne Technik. Das Spiel wird in seiner Geschichte vorgestellt und in seiner Funktion auf einem emulierten Computer vorgeführt. 45 Minuten mit anschließender Diskussion.

Am ersten Mai-Wochenende (3.-4.5.) findet in München (wie unten geschrieben) das »VCFe« statt. Dort werde ich im Rahmen des »Exoten«-Themas den Signentics 2650 sowie unseren Programmierkurs und das Programm vorstellen. Ausgestellt wird es dort meinen Holz-EPC und meine Interton VC-4000 (mit allen Spielen) zu sehen geben.

Am 10.5. spreche ich vielleicht in Leipzig auf der »Langen Nacht der Computerspiele« noch einmal darüber.

 

BRNA,3 München

Auch dieses Jahr fahre ich wieder nach München zum „Vintage Computer Festival Europe“. Und auch dieses Jahr werde ich dort nicht nur in Sachen „Retro-Magazin“ unterwegs sein, sondern auch einen Vortrag und eine Ausstellung haben:

Vortrag: Der Signetics 2650 – ein exotischer 8-Bit-Prozessor im Lehrbetrieb

In den späteb 1970er-Jahren war der 8-Bit-Prozessor 2650 von der Firma Signetics ein beliebter Prozessor für den Programmier-Lehrbetrieb und zum Aufbau kleiner Systeme. In Norddeutschland wurde er sogar bis 2009 im Unterricht eingesetzt. Seit 2 Semestern gebe ich an der Medienwissenschaft Berliner Humboldt-Universität Programmierkurse für Plattformen auf Signetics-2650-Basis. Ziel ist die Programmierung einer Hardware-Erweiterung für die (einzige) deutsche Computerspielkonsole „Interton VC-4000“. Im Vortrag stelle ich das didaktische Konezept und natürlich den Mikroprozessor vor und diskutiere die Frage, warum man „heute noch“ 8-Bit-Assemblerprogrammierung lehren und lernen sollte – gerade für Nicht-Informatiker!

Ausstellung: Signetics-Plattformen

Ich stelle die Spielkonsole „Interton VC-4000“ mit Spielen aus sowie den „Selbstbaucomputer“, der 2009 von Schülern auf Signentics-2650-Basis und nach einem Elektor-Buch gebaut wurde. Mit dabei ist umfangreiche Dokumentation und ein Emulationssystem, auf dem man sich die verschiedenen exotischen 2650-Plattformen anschauen kann.

Weitere Informationen auf der Webseite: http://www.vcfe.org/D/

Signetics 2650 Assembler – Crashkurs

Das erste Projektmodul zum 2650-Assembler ist nun vorüber und es sind immerhin drei studentische Projekte im Entstehen (die übrigen Studenten haben sich während des Semesters nach und nach verabschiedet; die anwesenden außeruniversitären Hacker haben nach meiner Kenntnis keine eigenen Programmierprojekte angefangen/umgesetzt). Da im Sommersemester die nächste Seminarrunde ansteht, auf der dann die Plattform vom „Signetics Instructor 50“-Lerncomputer auf die „Interton VC-4000“-Spielkonsole gewechselt wird, gebe ich Neueinsteigern und Rekapitulationswilligen die Möglichkeit, quereinzusteigen, indem ich in den Semesterferien einen 2650-Assembler-Crashkurs veranstalte:

Vom 31.03. bis 11.04. findet jeweils von Montag bis Freitag, 10-12 Uhr im Signallabor der Brückenkurs „Assembler für Anfänger“ statt. Die Teilnahme ist natürlich kostenlos; Computer und Lehrmaterialien werden vom Fachgebiet Medienwissenschaft zur Verfügung gestellt.

Wer Interesse an der Teilnahme hat, kann sich entweder in der Facebook-Veranstaltung eintragen oder mir eine E-Mail schreiben. Postwendend kommt dann der Zugang zum entsprechenden Moodle-Kurs, in dem weitere Informationen und Materialien zu finden sind.

Plakat_signetics-Assembler

Signetics 2650: Infos and Software:


The Signetics 2650 – The MESSUI Place

Lehre im kommenden Wintersemester

Im kommenden Wintersemester gebe ich wieder drei Lehrveranstaltungen – mit dem Unterschied, dass eine davon sowohl für Bachelor- als auch Master-Studenten geöffnet sein wird: Der Assemblerkurs.

Master-Studium: Modul II („Mediengeschichte“) – geöffnet für Kulturwissenschaft MA, Mittwochs 10-12 Uhr im Signallabor
Titel: Hacking als Kulturtechnik. Innenperspektiven deutscher und internationaler Hackerszenen der 1970er- und 1980er-Jahre.

Bachelor-Studium: Modul I („Einführung in die Medienwissenschaft“) sowie Modul I Musik & Medien, Donnerstags, 10-12 Uhr im Signallabor
Titel: Spiel, Maschine! Spielkonsolen der ersten vier Generation aus der Sicht der Medienarchäologie.

Master-Studium: Projekt- und Praxismodul sowie Bachelor-Studium: Modul VI („Projektmodul“), Donnerstags, 18:00-20:00 Uhr im Signallabor
Titel: Signetics 2650 Programmier-Workshop (Teil 1/4)
Zu dieser Lehrveranstaltung sind auch externe Gäste herzlich eingeladen!

Plakat_signetics-Assembler

Hier geht es zu den Detailbeschreibungen:

(mehr …)

Holzmaschine

Der Signetics 2650 aus dem Jahre 1974 zählt zu den eher exotischen 8-Bit-Mikroprozessoren. Das einzige einigermaßen bekannte Gerät, in das er verbaut wurde, ist die Spielkonsole „Interton VC4000“. Popularität erlangte der Chip vor allem, wegen seiner leichten Programmierbarkeit, weshalb es eine Hand voll Einplatinencomputer gab, die ihn einsetzten, um ihn für die Lehre (Assemblerprogrammierung) zu nutzen. Ein solches Lehrmodell habe ich jetzt aus dem Bestand eines pensionierten Lehrers erworben, der noch bis 2009 an seiner Schule 2650-Assembler auf von den Schülern selbst gebauten Einplatinenrechnern unterrichtete.

signetics2650

Update: Die auf dem Foto abgebildeten Dokumente und Lehrmaterialien stelle ich als gezipte PDF-Dokumente via Download zur Verfügung.