SimulationsRaum Rotating Header Image

Assembler

Time for Medien ∩ Wissenschaften

Medienwissenschaften

In Kürze findet der Workshop „Medien ∩ Wissenschaften“ bei uns im Signallabor statt, bei dem zusammen mit Natur-, Ingenieur- und Geisteswissenschaftlern ein Lehrbuch für Medienwissenschaftler konzipiert werden soll.

Mittlerweile gibt es auch eine Timeline für die Vorträge:

(mehr …)

Lehre im Sommersemester 2015

6809-Assembler

Im Sommersemester gebe ich zwei Lehrveranstaltungen:

(mehr …)

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

Call for PAPER

In der neu gegründeten Buchreihe „Computerarchäologie“ soll 2016 ein Buch mit dem Titel „Papiermaschinen“ erscheinen. Dafür benötige ich Hilfe!

Ich such nämlich handschriftlich notierte Programmcodes aus den 1970er- und -80er-Jahren (Programmiersprache egal). Zu dieser Zeit war für Kinder und Jugendliche der Zugriff auf (Heim)Computer nicht jederzeit möglich, so dass etliche Programme auf Papier „vorgeschrieben“ wurden, bevor sie dann später (in Kaufhäusern, bei Freunden, …) in die Computer abgetippt werden konnten.

In dem Buch möchte ich auf diese vergessene Programmierkultur hinweisen. Dazu sollen solche handschriftlichen Programme faksimiliert abgedruckt werden und mit Kommentaren, Hintergrundinformationen zum Programmierer, System und der „Geschichte“ dazu versehen werden. Besonders interessant sind vollständige Programme, sehr gern kurze Listings und wenn dann auch noch „Denkfehler“ darin enthalten sind, die zeigen, wie sich das Programmieren auf Papier von dem auf dem Computer unterscheidet, wäre das ein besonderer Glücksfall.

Sendet eure Listings bitte im Original an mich (ich scanne sie und ihr erhaltet sie unversehrt zurück). Bitte nehmt vorher Kontakt mit mir auf: email@computerarchaeologie.de

Als Dankeschön erhält jeder, dessen Listing aufgenommen wird, ein Belegexemplar des Buches.

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.

MUL

6809-Assembler

Die NOPs und HALTs digitaler Medien

Just ist ein Beitrag über meine Programmierlehre erschienen:

Stefan Höltgen:
Die NOPs und HALTs digitaler Medien. Programmierlehre maschinennaher Sprachen für Medienwissenschaftler
In: Grundlagen aus Kybernetik und Geisteswissenschaft. Internationale Zeitschrift für Modellierung und Mathematisierung in den Humanwissenschaften.
Band 55, Heft 4, Dez. 2014, S. 139-153.

Link zur Zeitschrift | PDF der Ausgabe 4/2014

How to do Things with Keys

Gestern habe ich via Skype meinen Vortrag zur Tagung in Brno gehalten. Ich habe den Talk mitgeschnitten und als Film auf YouTube hoch geladen. Die dazugehörigen Slides können hier herunter geladen werden.

Assembler im Browser

Dank schneller Rechner und Betriebssysteme sowie den Interaktionsmöglichkeiten von Java und HTML5 kann man im Browser inzwischen so gut wie alles machen, wofür man noch vor ein paar Jahren spezielle Programme benötigte. Insbesondere die Möglichkeit, Emulatoren und daran angeschlossene Programmbibliotheken nutzen zu können, erleichtert die Arbeit mit alten Systemen (vor allem in der Lehre) sehr.

heise.de berichtet heute von einem Assembler für Browser, der mehrere alte Systeme emuliert: ASM80. Das sind natürlich Z80-Systeme. Der Assembler stellt allerdings eine gute Auswahl davon zusammen.

Unser Kosmos

Vergangene Woche habe ich von einem Freund für kleines Geld einen „KOSMOS CP1„-Lerncomputer erworben. Mein System besteht aus der Grundeinheit, einer Speichererweiterung und einer Ergänzung mit Relais zur Ansteuerung von Motoren etc. Das Kassetten-Interface habe ich leider noch nicht.

IMG_3516

Der Computer ist aus mehrfacher Hinsicht interessant. Zum einen ist darin Intels vergleichsweise schneller 8049 verbaut, ein Mikrocontroller, der alle wesentlichen Elemente eines Mikrocomputers enthält, weshalb auf der Platine des CP1 nur noch ein zusätzliches IC mit dem ROM für das Betriebssystem zu finden ist. Dieses enthält ein Monitorprogramm und eine Programmiersprache, die man als „Lern-Assembler“ bezeichnen könnte. Dieser Assembler stellt 21 6-Bit-Opcodes zur Verfügung und bietet eine Adressierungsart: relative Adressierung. Letzteres mag auf das minimale RAM von 128 Byte, das im 8049 integriert ist, zurückzuführen sein, bei dem man die RAM-Bank nicht verlässt und also jedes Ziel (das wie alle Daten in Dezimalzahlen angegeben wird!) relativ anspringen kann.

Es hat allerdings auch didaktische Gründe: Die Komplexitätsreduktion sollte Jugendlichen und Kindern helfen, sich in die Programmierung in Assembler schneller einfinden zu können. Aus eigener Erfahrung weiß ich, dass gerade die Vielfalt an Adressierungsarten zu Beginn immer eine große intellektuelle Hürde darstellt. Auf relative Adressierung reduziert kann man sich schneller auf die Opcodes und ihre Funktion konzentrieren. Diese Opcodes sind im CP1 lediglich Pseudo-Opcodes, weil sie nicht nur einen vergleichsweise kleinen Ausschnitt aus dem ca. 90 Befehle umfassenden Befehlsinventar des 8049 zur Verwendung anbieten, sondern zudem auch noch „auf Deutsch“ übersetzt wurden. So heißt „Springe bedingt zu Adresse XXX“ hier SPB, aus AND wird UND und ANZ bringt den Inhalt des Akkumulators auf das 7-Segment-Display – gerade hinter diesem Opcode verbirgt sich eine ganze ROM-Routine, wie 8-Bit-Assemblerprogrammierer ahnen.

vorn

hinten

Funktionsübersicht mit Pseudo-Opcodes

Leider lässt der CP1 es nicht zu, direkt auf die Funktionen des 8049 zurückzugreifen. Dazu müsste man das ROM gegen ein eigenes Monitorprogramm austauschen; sieht man diese äußerst eigenwillige Programmierung jedoch aus archäologischer Perspektive, so zeigen sich hier vor allem bereits Makros, die eher zur Benutzung und weniger zur Analyse und zum Experiment mit der Maschine einladen. Man könnte sagen: Vom „CP1-Assembler“ ist es also nur noch ein kleiner Schritt hin zu BASIC. (Eine Perspektive, deren Vektor sonst in genau die entgegen gesetzte Richtung verläuft.)

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

 

Pac-Man-Studies

In der vergangenen Woche habe ich Besuch von Volker Hann, einem Sammler und Restaurator originaler Arcade-Automaten, bekommen. „Volle“ hatte ein voll funktionstüchtiges „Pac-Man“-Board dabei, über das wir kürzlich auf der Retro-Börse gesprochen hatten und das er mir bis zum Ende des Semesters ausleiht. Zusammen mit einem angepassten Netzteil und einem Anschluss für einen Atari-kompatiblen Mikroschalter-Joystick ist das Board nun im Signallabor aufgestellt, wo es während meines feitäglichen Seminars „Pac-Man als epistemisches Spiel(-Zeug)“ von den Studierenden analysiert und bespielt werden darf.

Pac-Man-Board

Eine andere thematisch relevante Entdeckung habe ich bei der Suche nach dem Disassemblat der Atari-VCS-Version des Spiels gemacht. Der Informatiker Ben Fry, der im Rahmen seiner Dissertation bereits einige Retro-Projekte durchgeführt hat, hat auf seiner Internetseite eine Sammlung so genannter „Distellamap“ angelegt: Grafiken mit den kompletten Assembler-Codes einiger Spiele, auf denen die Verzweigungsstrukturen in Form von Verbindungslinien zwischen den Adressen angezeigt sind. Die scheinbare Linearität eines Maschinenprogramms wird so überaus deutlich denkonstruiert und in ihrer Zeitabhängigkeit vorgeführt. Die sechs Programm-Grafiken, unter denen sich auch der Code von „Pac-Man“ befindet, können dort auch als Ausdrucke bestellt werden.

Distellmap von "Pac-Man"

Zweite Definition

Für einen Beitrag über die „Didaktik maschinennaher Programmierung für Medienwissenschaftler“ sichte ich gerade ein paar alte Lehrwerke und bin dabei auf folgendes Deifinitionsdouble gestoßen:

Erste Definition:
Der Mikroprozessor ist eine Schaltung, die einen logischen Prozeßablauf gemäß einem vorgegebenen Programm interaktiv zu steuern vermag. Das Programm kann dabei jederzeit geändert werden. (S. 1)

Zweite Definition:
Der Mikroprozessor ist ein Spielzeug, das von der einfachen Binäraddition bis zum komplizierten Spiel- oder Steuerprogramm im Bereich des Denksports ein fairer, unbestechlicher Partner ist. (S. 2)

In: G. Schnell/K. Hoyer: Mikrocomputerfibel. Braunschweig/Wiesbaden: Vieweg 1981.

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.

Game Circuits #11: Pac-Man-Physik

pac-man-physik

Am kommenden Donnerstag, den 24.04.2014 findet ab 17 Uhr im Signallabor der „Game Circuit“ Nr. 11 zum Thema „Pac-Man-Physik“ statt. Auf historischen Computern der 1970er-90er-Jahre können verschiedene Adaptionen des Spiels „Pac-Man“ miteinander verglichen und in ihren spielphysikalischen Eigenschaften untersucht werden.

pac-man-physik

Einleitend gibt es von mir einen Vortrag zu hören:
(mehr …)

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.