SimulationsRaum Rotating Header Image

Assembler

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:

(weiterlesen …)

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:

Z80 – Medienarchäologie meets Platform Studies

Am kommenden Mittwoche halte ich zusammen mit meinem Kollegen Johannes Maibaum im Kolloquium “Medien, die wir meinen” einen Vortrag über unseren Assembler-Workshop und dessen mögliche, medienwissenschaftliche Perspektive:

Mit dem Erscheinen der ersten 8-Bit-Mikroprozessoren verändert sich die gesamte Welt der elektronischen Datenverarbeitung. Nachdem Intel 1974 mit dem 8080 einen Standard definiert hatte, hielten Mikroprozessoren in immer mehr günstige und kleine Computer-Plattformen Einzug. Das Resultat davon war eine ungeahnte Popularisierung des Mikrocomputers, der nun auch erstmals für rein private Zwecke – insbesondere zum Spielen und Programmieren – zur Verfügung stand. Der enormen Einfluss, den diese als Hobby betriebenen Tätigkeiten für die Entwicklung von Hardware, Software und Betriebssystemen hatten, ist noch nicht in Gänze (und erst recht nicht im Detail) untersucht.

1976 folgte dem Intel-Chip vom selben Ingenieur (Federico Faggin) konstruiert der Z80-Mikroprozessor, welcher mit schätzungsweise 600 Implementierungen in unterschiedlichste Computertypen bis Ende der 1980er-Jahre der erfolgreichste dieser Prozessoren war. Der Z80 definiert eine medienhistorisch hochinteressante Nische, weil er den 8080 ablöst und um etliche Funktionen erweitert, die ihn besonders komfortabel programmierbar machen. Zudem sorgen aber sein besonderer Konstruktionstyp sowie seine disparaten Implementierungsumgebungen dafür, dass die Kapazitäten von Z80-Plattformen selbst heute noch nicht in vollem Umfang erschlossen worden sind.

Im Vortrag stellen wir eine dieser historischen Plattformen – Amstrads 1984-85 erschienene CPC-Homecomputer-Reihe –, auf welcher seit zwei Semestern auch unser Assembler-Kurs durchgeführt wird, vor. An praktischen Beispielen maschinennaher Grafik- und Soundprogrammierung demonstrieren wir die Möglichkeiten dieser spezifischen Hardware-Umgebung und versuchen die historischen und elektronischen Besonderheiten der Z80-Plattform für eine medienarchäologische Erweiterung der jüngst in den USA (am MIT) von Ian Bogost und Nick Montfort gegründeten „Platform Studies“ zu diskutieren.

Wider „die herbeigeredete Angst vor Assemblern und Kaltstarts“! (F. Kittler)

Ort: Medientheater, Georgenstraße 47, Berlin-Mitte
Zeit: 18:00 Uhr ct.

µP – An Eye to the Future

Noch rechtzeitig vor meinem Vortrag übernächste Woche im Kolloquium, wo es um den Z80-Assembler-Kurs und die Anschlussfähigkeit der Platform Studies an die Medienarchäologie gehen wird, ist heute der kürzlich bei ebay ersteigerte “Microprofessor MPF-1b” gekommen. Ein Einplatinenrechner auf Z80-Basis, der zu den am längsten und häufigsten verkauften Lehrsystemen gehört. In der Ausführung MPF-1b verfügt der Microprofessor über ein zusätzliches BASIC-ROM und etwas mehr RAM, so dass sich damit ganz rudimentäre Programme in dieser Hochsprache entwickeln lassen. Dazu gibt es eine Tastaturschablone, auf der die Befehls-Shortcuts abgedruckt sind sowie ein englischsprachiges Handbuch.

3 x 8 Bit im Juni

Schon mal im Voraus, damit die Planung funktioniert, kündige ich drei dicht aufeinander folgende Veranstaltungen im Juni an:

  1. Am 6. Juni stelle ich zusammen mit meinem Kollegen Johannes Maibaum im Kolloquium “Medien, die wir meinen” (im Medientheater, Georgenstraße 47, Erdgeschoss) unseren mittlerweile recht erfolgreichen und gut fortgeschrittenen z80-Assemlberkurs vor. Neben der Frage, warum maschinennahe Programmierung von 8-Bit-Computern interessant für die Medientheorien sein kann, wird es dort eine Vorführung der Soundprogrammierung des Schneider/Amstrad-CPC-Soundchips “AY-3-8912” in Assembler geben. Das Kolloquium beginnt wie üblich um 18 Uhr (c.t.), der Vortrag dauert eine dreiviertel Stunde, danach wird diskutiert und zusammen gegessen und getrunken.
  2. Tags darauf, am 7. Juni, zeigt das Computerspielemuseum den neuen Dokumentarfilm “8 Bit Generation – Playing the Revolution”. Die Veranstaltung beginnt um 20 Uhr im Museum (Karl-Marx-Allee 93a). Vorsichtshalber sollte man sich wohl dazu anmelden.
  3. Einen Tag später, am 8. Juni, findet der dritte Game Circuit im Signallabor des Bereichs Medienwissenschaft der Humboldt-Uni (Georgenstraße 47, 2. OG, Raum 2.26) statt. Anlass und Thema dieses mal ist der 30. Geburtstag des Commodore 64. Im Rahmen dessen wird Milo Mundt brandneue Spiele aus dem letztjährigen RGCD-Wettbewerb für den Brotkasten mitbringen, die simultan auf vier C64ern gespielt werden. Die Veranstaltung beginnt um 17 Uhr und endet voraussichtlich auch irgendwann wieder. Aufgrund des begrenzten Platzes wird um Anmeldung per E-Mail gebeten.

»Greeting to all Z80 programmers«

Rodnay Zaks hat heute eine kleine Grußbotschaft für das demnächst erscheinende LOAD-Magazin gesandt – angeblich, nachdem er von meinem Artikel über den Z80-Workshop erfahren hat. :-)

AppleWorlds on 6502

Gestern hatte ich nach dem Analogcomputer-Workshop erstmals wieder etwas Zeit für die digitale Welt und habe für den Apple IIe das ADTPro in Gang gebracht. Nach einiger Anwendungssoftware (DOS, Grafikprogramme, …) waren die Spiele dran und ein mir ganz wichtiges war das erste in der Reihe:

Rescue on Fractalus

Eine tolle Adaption in Monochrom-Grafik, steuerbar mit der Tastatur und meinem ebenfalls neuen Analog-Stick.

Daneben wurde ich – als Dankeschön für meine Beiträge hier im Blog – noch mit einem Buch-Geschenk beehrt:

Mein Dank dafür geht zurück an den Spender und SimulationsRaum-Leser Markus Ackermann!

BattleCode

Gestern habe ich Kontakt mit Christopher Cantrell aufgenommen, der die Website Computer Archaeology betreibt. Dort analysiert er alte Computerspiele und fertigt kommentierte Disassembles davon an. Auf meine Frage, ob er nicht ein Disassemble von “Battle Zone” habe, hat er prompt eines angefertigt, das in der nächsten Zeit auskommentiert wird. Ich bin ja immer noch sehr an der Gestaltung der Treffer-Sequenz des Spiels interessiert. Künftig werde ich mit Christopher wohl regeren Austausch pflegen.

C64 komplett

Via pagetable bin ich heute morgen auf die 177. Folge des Chaos-Radio gestoßen, in dem sich der Moderator Tim Pritlove mit Michael Steil (dem Macher von pagetable) mehr als 2,5 Stunden lang über den Commodore C64, seine Geschichte, Hardware-Details und Programmierung unterhält. Wer das Gerät nicht kennt, kennt es nach dem Anhören des Podcasts sehr gut. Leider ergeht sich der Moderator nicht selten in Zotigkeiten und Spitzfingerigkeiten (allein der Unsinn, den er über den TI 99/4a zu sagen hat …) Diese Form von Humor hat sich seit Benjamin Maacks GEE-Podcasts ja leider eingebürgert. Dennoch: sehr hörenswert!