SimulationsRaum Rotating Header Image

Assembler

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.

 

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

Racing the Beam …

Am Samstag, den 8. Februar findet bei uns im Insitut ein Workshop zur Programmierung für die Atari VCS statt. Geleitet wird der ganztägige Workshop von SvOl.li. Man kann seinen eigenen x86-Rechner mitbringen. Es sind aber auch genug Computer für die max. 18 Teilnehmer vorhanden. Außerdem gibt es natürlich einige VCS-Konsolen mit Harmony-Cartridges, damit die Programme auch auf der Originalplattform getestet werden können.

vcs-ws

Der Workshop ist kostenlos. Aufgrund der begrenzten Platzzahl ist eine vorherige Anmeldung allerdings unbedingt erforderlich. Bitte per E-Mail an mich. Weitere Informationen gibt es auf der Facebook-Seite.

Mikroprofessioneller Clone

Heute hat mich ein großes Paket aus dem Hause Bryx erreicht, in welchem nicht nur die endlich reparierte Magnavox Odyssey (gleich mit Falschpolungsschutz versehen) und eine Philips G7400 (mit Video- und RGB-Mod) enthalten war, sondern auch ein original verpackter “Microprofessor II”-Computer:

IMG_2982

Der MPF-II ist der Nachfolger des legendären “Microprofessor”-Einplatinencomputers. Er hat allerdings nicht den Z80A, sondern einen MOS 6502-Mikroprozessor eingebaut – und das nicht ohne Grund: der MPF-II ist ein beinahe lupenreiner Apple-II-Clone, was man vor allem am BASIC merkt. Bis auf ein paar Betriebssystem-Adressen und eine softwaregenerierte Textdarstellung unterscheidet er sich nicht vom Apple-Vorbild. Interessant sind auch die Beigaben. Neben dem Netzteil und einem HF-Signalteiler (der Computer hat allerdings auch einen FBAS-Ausgang … wie der Apple II) gibt es parallele und serielle Schnittstellen und Anschlüsse für einen Datenrekorder.

Das wirklich umfangreiche Begleitmaterial besteht aus einem dicken BASIC-Handbuch, einem Hardware-Handbuch (in dem auch die Kommandos des Monitor-Programms erklärt sind, denn der MPF-II lässt sich natürlich auch in 6502-Assembler programmieren). Nett ist das mitgelieferte Diagnose-System “Micro-Nurse”, das auf Audiokassette vorliegt und sein eigenes Manual hat.

Signetics 2650: Infos and Software:


The Signetics 2650 – The MESSUI Place

Verlaufsformen

Morgen halte ich ab 18 Uhr im Kolloquium “Medien, die wir meinen” einen Vortrag aus meine Forschungsprojekt:

Die Frage, ob und wie Medien die Wirklichkeiten ihrer Nutzer konstruieren ist, betrachtet man sie nicht bloß als soziologisches Problem, eine zentrale Frage jeder Medienepistemologie. Denn in der medialen Konstruktion von Wirklichkeit schreibt sich das Medium immer schon ein, weshalb die Analyse des Konstruktes immer auch eine Analyse des Mediums sein muss. Ausgehend von einer frühen sprachlichen Beschreibung eines physikalischen Vorganges aus der Kinetik (“Der springende Punkt”) durch Aristoteles wird über drei theoretische Scharniere (S. J. Schmidt, F. Kittler, C. Pias) ein Sprung in die zweite Hälfte des 20. Jahrhunderts unternommen, in welchem Analog- und Digitalcomputer mit der “Beschreibung” desselben physikalischen Vorgangs betraut wurden, diesen jedoch nicht mehr nur in (programmier)sprachliche Codes kleiden, sondern ihn ihren technischen Aprioris unterwerfen. Im Vortrag wird die unterschiedliche “Simulationstätigkeit” desselben physikalischen Vorgangs durch fünf Sprachen demonstriert: die menschliche Sprache, die analog-elektronische Schaltung (auf dem Telefunken RA-742), die Implementierungen in 68k-Assembler/C (auf dem Commodore Amiga), Locomotive BASIC (auf dem Amstrad CPC) und 6507-Assembler (auf der Atari VCS). Dabei wird en passant versucht zu zeigen, warum solche Demonstrationen stets in Echtzeit erfolgen müssen (und damit an ein “Medientheater” gebunden sind) und – im Hinblick auf ein laufendes Buchprojekt -, wie die jeweiligen Simulationen das Wissen um die Grenzen und Möglichkeiten des Computers in der “Retrospektive” nutzbar machen.
Dauer ca. 60 Minuten mit vier unterschiedlichen Simulationsdurchläufen in Echtzeit – danach: Diskussion

point

Wie ist der Vektor, Victor?

Gestern trat – als Ersatz für Claus Pias, der wegen universitärer Verpflichtungen leider verhindert war, der Linzer Hobby-Programmierer Norbert Kehrer in der Vortragsreihe auf und sprach dort über die Emulation von Spielautomaten-Spielen für 8-Bit-Homecomputer. Am Beispiel von “Asteroids” zeigte er die Schwierigkeiten, die Automaten-Hardware in Software abzubilden – denn der “Asteroids”-Automat verfügt über einen Vektormonitor, der über eine spezielle Hardware den Kathodenstrahl direkt steuert (anstatt der Rasterzeilen-Steuerung bei “herkömmlichen” Aracade-Automaten). Die Emulation der Vektor-Hardware war daher auch die große Herausfordernung, die Norbert Kehrer auf zwei Homecomputer (Atari 800 und C64) ganz unterschiedlich bewältigen musste – weil deren Rasterbildschirm-RAMs ganz unterschiedlich funktionieren. So war also nachzuvollziehen, wie zwei mathematisch ganz unterschiedliche Episteme ineinander überführt wurden und wie sich die Vektormathematik im diskreten Zahlenraum des Bildschirmspeichers abbilden lässt.

P.S.: Ein Besuch der Webseite von Norbert Kehrer lohnt sich: Dort finden sich eine Menge Emulatoren – für die ausgefallendsten Systeme (etwa den Mailüfterl-Großrechner oder die PDP-8, die auf einem 8-Bit-Atari emuliert wird)!

Display Lists

Der gestrige Vortrag in der Reihe SHIFT – RESTORE – ESC von Berthold Fritz beschäftigte sich mit der Assemblerprogrammierung eines Spiels für Atari-8-Bit-Computer. Die Konzentration lag vor allem auf den Grafikfähigkeiten – aber auch die Frage, welche Faktoren bei der Auswahl der Programmiersprache und des Editors eine Rolle spielen, wurde verhandelt. Der Vortrag ist jetzt bei YouTube einzusehen:

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…)

SymbOS: Ein grafisches Multitasking-Betriebssystem für Z80-Plattformen

Gestern trug Jörn Mika in der Vortragsreihe SHIFT – RESTORE – ESC über die Geschichte der GUI-Betriebssysteme und sein SymbOS, das auf Amstrad-CPC-, -Joyce- und MSX-Rechnern läuft, vor. Wir haben den Vortrag gefilmt und heute bei YouTube bereitgestellt:

Gulp, Splat, Zong, Hack!

Nachdem ich vor ein paar Tagen das Buch über “Retro Game Programming” bekommen habe, lagen heute zwei weitere Bücher zum Themenfeld im Briefkasten:

Yoda Zhangs und alias Kemal Ezcans “Gulp Splat Zong” – eine (gebundene) Monografie über Musik in Computerspielen. Yoda hat selbst als Programmierer bei zahlreichen Computerspielen mitgearbeitet und Musiken komponiert. Das schon 2011 in einer 100er-Auflage erschienene Buch berichtet aus dieser Zeit und wird ergänzt durch eine Internetseite mit Videos, Musik und Spielen. Ich rezensieren “Gulp Spalt Zong” für die RETRO Ausgabe 28.

gulp

Das zweite Buch kommt aus dem O’Reilly-Verlag und beschäftigt sich mit “Retro Gaming Hacks” – wie  der Titel verrät. Chris Kohler sammelt darin Hard- und Software-Hacks, mit deren Hilfe klassische Computerspiele “gehackt” werden können, testet diverse Emulatoren, gibt Anleitungen für das Programmieren damaliger Plattformen und scheint auch sonst eine Menge zum Thema zu vermitteln zu haben. Er bittet sogar um zusätzliche Hacks, die in seinem Blog hacks.oreilly.com gesammelt werden.

»I program my home computer … Beam myself into the past«

Heute habe ich Earl C. Careys Buch “RETRO Game Programming unleashed for the Masses” bekommen:

Das Buch unternimmt nicht weniger, als die hardwarenahe Programmierung von Spielen auf vier verschiedenen Plattformen für Programmieranfänger(!) vorzustellen: Programmiert werden der Atari 800, Commodore 64, Apple II und TRS-80 CoCo. Vom Aufbau und Anschluss der Rechner über deren Hardware-Ausstattung, die unterschiedlichen Assembler-Dialekte und BASIC-Versionen, Grundlagen der Computergrafik aber auch die Geschichte der Firmen und Computerspiele bis hin zu dezidierten Programmiertechniken führen die Kapitel den Leser ins Thema ein. Höhepunkte bilden die Kapitel über den praktischen Umgang mit den Grafikmodi, Sprites, Soundeffekten und das Zusammenfügen aller Elemente zu einem Spiel.

Interessant scheint mir das Buch nicht nur für Leute, die wirklich Spiele auf diesen Plattformen programmieren wollen, sondern auch für diejenigen, die einen operativen Zugang zur Homecomputergeschichte suchen. Ich bin sehr gespannt und werde von meiner Lektüreerfahrung hier berichten …

Elektronik-Sonderhefte: Mikroprozessoren 1-3

Im vergangenen Semester habe ich u.a. die drei Sonderhefte über Mikroprozessoren der Zeitschrift “Elektronik” als Seminarlektüre gehabt. Mir kam dann der Gedanke, dass ich die natürlich seit Ewigkeiten vergriffenen und nur noch schwer zu findenden Hefte re-publizieren könnte. Den Verlag gefragt, erhielt ich jetzt eine positive Antwort mit freundlicher Genehmigung zum Upload.

Die Hefte unterliegen dem Copyright der Zeitschrift Elektronik (WEKA-Fachmedien-Verlag GmbH). Informationen zur Zeitschrift finden sich auf dieser Webseite: www.elektroniknet.de

µP-Hardware

Sonderheft 1: Hardware (1976)

µP-Software

Sonderheft 2: Software (1977)

µP3-Anwendungen

Sonderheft 3: Produkte, Anwendungen, Tendenzen (1978)

Zum Herunterladen der PDF-Dateien die Coverabbildungen anklicken.

TRSound

Seit ich für die Vorbereitung des letzten Game Circuit erstmals von den Soundfähigkeiten des und insbesondere der Sounderzeugung beim TRS-80 erfahren habe, lässt mich das Thema nicht mehr los. Der Computer verfügt weder über einen Soundchip noch einen eingebauten Lautsprecher und dennoch ist es Programmierern gelungen, nicht nur Sound, sondern sogar Sprachausgaben damit zu realisieren:

Der Trick steckt in der kreativen Umwidmung der vorhandenen Hardware: Der Z80 sorgt im TRS-80 dafür, dass Rechteckwellen entstehen, die mit den I/O-Bausteinen moduliert, als Tonsignal über den Kassettenport ausgegeben werden. Warum? Weil damit Daten auf das Magnetband geschrieben werden. In diesen Prozess greift der Programmierer ein und schließt anstatt eines Kassettenrecorders einen kleinen Verstärker am Port an.

Nach ein wenig Recherche in Ira Goldklangs Zeitschriftenarchiv bin ich auf eine handvoll Artikel gestoßen, die beschreiben, wie man diese Soundprogrammierung vornimmt. (Die Sprachausgabe ist freilich zu aufwändig, um sie in einem Zeitschriftenartikel abzuhandeln.) Auf einem TRS-80-FTP-Server habe ich nun eine kleine Bibliothek mit Büchern (zumeist Assembler- und BASIC-Bücher für den Rechner) gefunden, in welcher sich auch das Buch “33 Games for Adults” befindet. Zwar sind die Abtippspiele nicht so “adult”, wie ich erwartet hatte, doch gleich zu Beginn finden sich kurze Sound-Programmier-Routinen für den TRS-80 (und den Apple II, der ganz ähnliche “Fähigkeiten” besitzt – aber wenigstens einen Lautsprecher eingebaut hat).

Hands off the handheld!

Zum 15.000sten gab es eine ganze Reihe schöner Geschenke – darunter auch toller Elektroschrott: Von Dirk hab ich einen Atari Portfolio mit Software und Peripherie sowie zwei dicke Bücher zum Atari ST bekommen. Henry Westphal hat mir einen seltenen Intel Microcontroller (8751) geschenkt, Ingolf hat meine Programmiersprachen-Bibliothek um das Abacus-COBOL für den C64 erweitert.

Heute im Institut hat dann noch eine Neuerwerbung von eBay auf mich gewartet: ein Amstrad NC-100. Das ist ein recht komfortabler Z80-Handheld mit eingebauten Office-Programmen. Das Gerät ist nicht nur in exzellentem Zustand, sondern hat auch sein deutschsprachiges Handbuch dabei. Neben dem BBC-BASIC kann man ihn direkt in Assembler programmieren. Davon steht jedoch nichts im Handbuch, sondern (auf S. 203) unter der Überschrift “Z80-Assembler” findet sich vielmehr folgende kurze Sentenz:

Im Gegensatz zu den Acorn-Rechnern, die auf dem 6502-Prozessor basieren, hat das Notepad einen eingebauten Z80-Prozessor. Infolgedessen erkennt der im Notepad eingebaute Assembler nur den Z80-Assembler-Code. Die Programmierung in Assembler ist so kompliziert und umfangreich, daß es unmöglich ist, dieses Thema in einem Handbuch dieser Größenordnung anzusprechen. Wir können Sie deshalb nur dringend ersuchen, die Finger von der Programmierung des Rechners in Assembler zu lassen, da derartige Versuche meist damit enden, daß die Maschine “abstürzt” und alle gespeicherten Daten und Dokumente verlorengehen.

Irgendwie müssen dann aber doch Informationen über dieses hochbrisante Thema aus dem Firmensafe von Amstrad gestohlen und in die Öffentlichkeit “geleaked” worden sein.

JMP $6502

In den vergangenen zwei Semestern haben wir den meistverbauten Mikroprozessor der Vergangenheit, Zilogs Z80, in Assembler programmieren gelernt. Zur Zeit des Z80 wurde der Markt allerdings von einem anderen Chip dominiert, den bereits 1975 von der Firma MOS Technology Inc. veröffentlichten MOS-6502. Er fand sich in den ersten und meistverkauften Computerplattformen der 1970er- und frühen -80er-Jahre: Apple I, II, Commodore PET, VC20, C64 sowie allen Atari-Computern und -Konsolen. Wie der Z80 entstand auch der 6502 als abwärtskompatibler Nachfolger eines Konkurrenten – in diesem Fall des Motorola 6800. Welche Residuen von 6800-Funktionalitäten im 6502 und seinen Nachfolgern (6507, 6510, 8500, …) zu finden sind, wäre eine mögliche, technikhistorische Ausgangsfrage unseres Kurses, in dessen Zentrum jedoch die hardwarenahe Programmierung des sehr orthogonal angelegten 6502 steht. In diesem Semester lernen wir alle Opcodes des Prozessors sowie einige plattformspezifische Funktionen kennen. Programmiert wird auf dem Commodore C64 sowie einer Emulationsumgebung. Laptops mit Emulatoren können vom Institut gestellt werden. Der Kursus versteht sich als Anfängerkurs und setzt keine Programmierkenntnisse voraus!

Der Kurs findet jeden Donnerstag von 18-20 Uhr (ct.) statt. Um vorherige Anmeldung wird gebeten. Die benötigte Literatur stellen wir als Scans in einem Moodle-Kurs zur Verfügung.

Literatur:

  • Rodnay Zaks: Programmierung des 6502. Düsseldorf u. a.: Sybex 1980.
  • C. Lorenz: Programmieren in Maschinensprache mit dem C64. Eine Einführung mit vielen Beispielen. Holzkirchen: Hofacker 1984
  • Angerhausen/Brückmann/Englisch/Gerits: 64 intern. Das große Buch zum Commodore 64 mit dokumentiertem Schaltplan. Düsseldorf: Data Becker 1984.
  • Winfired Kassera/Frank Kassera: C64 Programmieren in Maschinensprache. München: Markt&Technik 1983.
  • M. B. Immerzeel: Mikrocomputer ohne Ballast. Ein Mikrocomputer-Anleitungsbuch für Anfänger mit Assemblerprogrammen für die CPU 6502.

6502 Block-Diagramm

Quelle: Rodnay Zaks: Programmierung des 6502. Düsseldorf: Sybex 1985, S. 47.

Es ist schon interessant, wie sich nicht nur die 8-Bit-Prozessoren und ihre Programmierung voneinander unterscheiden, sondern auch die jeweils dazugehörigen Didaktiken. Bislang habe ich mich ja ausschließlich mit der Programmierung des Z80 beschäftigt und zu dessen didaktischem Material gehört so gut wie immer und überall ein schematisches Blockdiagramm des Prozessors, das man in allen Handbüchern und auch auf zahlreichen Webseiten findet. Jetzt fange ich gerade an, mich in die Programmierung der MOS 65XX-Prozessoren einzuarbeiten und dachte, dass mir ein Blockdiagramm dort auch behilflich sein könnte. Allerdings gibt es für diese Prozessoren so gut wie nichts vergleichbares und übersichtliches. Das, was ich gefunden habe, erscheint mir für meine Zwecke wenig brauchbar und auch gar nicht als Programmierhilfe konzipiert.

Rodnay Zaks, der sich ja ausführlich mit dem Z80 und seiner Peripherie beschäftigt hat, hat die dazu entwickelte Didaktik auch in seinem später erschienenen Buch zur “Programmierung des 6502” (das ich heute bekommen habe) übernommen. Und dort findet sich dann auch (auf S. 47) ein Block-Diagramm, das meine Zwecke erfüllt:

Quelle: Rodnay Zaks: Programmierung des 6502. Düsseldorf: Sybex 1985, S. 47.

Ich bin schon gespannt, welche Unterschiede sich in der Programmier-Didaktik zwischen Z80 und 6502(ff.) noch zeigen werden …

SPACE AGE

In der gestrigen Kolloquiums-Sitzung hat Henry Westphal seinen Tischrechner “SPACE AGE” vorgestellt, den er seit 2011 zusammen mit Studenten der TU Berlin in vollständig diskreter Transistorbauweise realisiert hat. Der Vortrag erläutert den Entstehungsprozess und die Funktion bis hin zur Erklärung, wie Transistoren funktionieren:

http://www.youtube.com/watch?v=_zqQJ9LXbQc

 

Coding for freedom

Auf SpOn wird heute eine Gruppe von Berlinern vorgestellt, die durch das Erlernen maschinennaher Computerprogrammierung ihre Anwenderfesseln zu sprengen hofft. (Nein, das ist nicht unser Z80-Assemblerkurs.)

Der Kittler-Code

In der Reihe “Pergamon Parley” meines Kollegen Paul Feigelfeld wurde heute das Programmierwerk Friedrich Kittlers vorgestellt, das in Kürze als Code und Buch in seinem Gesamtwerk veröffentlicht werden soll. Mit von der Partie waren Peter Berz sowie mein Kittler-Coffee-Table, an dem schlussendlich diskutiert wurde. Hier das Video von Vortrag, Podiums- und Publikumsdiskussion: