SimulationsRaum Rotating Header Image

Porgrammiersprachen

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:

Playing with Virtuality

Heute habe ich mein Belegexemplar des von Benjamin Bigl und Sebastian Stoppe herausgegebenen Sammelbandes “Playing with Virtuality” bekommen. Mein Beitrag basiert auf einem der vergangenen “Game Circuit”-Voträge und beschäftigt sich mit der Frage, welche medienwissenschaftlichen Erkenntnisse sich aus Programmierfehlern in Computerspielen gewinnen lassen. Dazu stelle ich die beiden Forschungsmethoden Medienarchäologie und Platform Studies einander gegenüber.

Weitere Infos: Peter Lang

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

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

Mein heutiger Ausflug zum Schockwellenreiter hat sich in mehrfacher Hinsicht gelohnt. Nicht nur habe ich einen netten Blogger kennengelernt, sondern auch eine stolze Menge alter Programmier-Bücher von ihm übernehmen können. Mein Dank noch einmal in diese Richtung – und vielleicht sehen wir uns ja bald mal wieder!

IF

Basics about BASIC

Die Programmiersprache BASIC bildet den Kern meines computerarchäologischen Forschungsprojektes. Demzufolge wächst meine Bibliothek in diese Richtung derzeit auch am schnellsten. Vier “Neu”zugänge habe ich im Laufe der vergangenen Woche verzeichnet:

Donald Alcock: Illustrating BASIC (A Simple Programming Language). Cambridge: Cambridge Univ. Press 1977.

Alcocks Buch ist vollständig handgeschrieben und geht die Didaktik problemorientiert an. Die Illiustrationen und Programmbeispiele scheinen sich an Kinder zu richten; umso erstaunlicher, dass das Buch in einem Universitätsverlag erschienen ist.

John G. Kemeny: Man and the Computer. New York: Charles Scribner’s sons 1972.

Kemeny, der zu den Miterfindern von BASIC gehört, erzählt hier die Geschichte der Programmiersprachenlehre am Dartmouth-College, wo BASIC 1964 erstmals implementiert wurde. Noch bevor David Ahl mit seinem Buch über “BASIC Computer Spiele” berühmt wird, wirft sich Kemeny hier schon für eine Nutzung des Computers als Spielmaschine in die Bresche.

Henry Mullish: A Basic Approach to BASIC. New York: John Wiley & Sons 1976.

Eine Empfehlung aus “10 PRINT”: Mullishs didaktisches Konzept versucht das Lernen einer Programmiersprache mit einer Fremdsprache zu vergleichen. Er stellt dabei sukzessive Vokabeln (Befehle), Phrasen (komplexere Funktionen) und Texte (Programme) vor.

John M. Nevison: The Little Book oaf BASIC Style. How to write a program you can read. Reading u.a.: Addison-Wesley 1982.

Der Untertitel verrät es bereits: Das Buch versucht sich dem Spaghetti-Code-Angriffen entgegen zu stellen und Programmierempfehlungen zu geben, bei denen der Programmierer nicht zuerst an die Maschine, sondern an einen potenziellen menschlichen Leser des Codes denken soll.

Game Circuit #7 & Game Circuit #8

Aufgrund der Semester- und Veranstaltungsplanung habe ich die Termine und Themen für die nächsten beiden Game-Circuit-Treffen bereits jetzt festgelegt:
Game Circuits #7 gamecircuits8

Retrocomputing im Direktkontakt

Wie bereits geschrieben, bin ich in diesem Jahr als Gastredner auf das 14. Vintage Computing Festival Europe nach München eingeladen. Die Webseite mit Informationen – unter anderem über meinen Vortrag – wird gerade aufgebaut. Zusätzlich bekomme ich einen Ausstellertisch, auf dem ich zwei meiner exotischeren Heimcomputer und die darauf am kommenden Freitag eingetippten BASIC-Spiele präsentieren werde.

Colon-Einführung

15 Jahre, nachdem Thomas E. Kurtz und John Kemeny 1964 am Dortmouth-College die Programmiersprache BASIC veröffentlicht hatten, gab es derartig viele Dialekte, die sich nicht nur im Befehlswortschatz, sondern oft auch in der Syntax unterschieden, dass man es teilweise mit ganz anderen Programmiersprachen zu tun hatte. Ein zentrales Anliegen der BASIC-Erfinder war der klare Programmaufbau, der u.a. dadurch unterstützt werden sollte, dass – wie beim Assembler – pro Zeile nur eine Programmanweisung zugelassen war.

Viele, die BASIC in den 1980er-Jahren kennengelernt haben, wurden indes mit Möglichkeiten konfrontiert, mehrere Anweisungen in einer Zeile unterzubringen. Zu deren Trennung wurde vor allem der Doppelpunkt benutzt. Gerüchten zufolge hat Microsoft diese – wie etliche andere – Neuerung in BASIC eingeführt, als sie 1975 ihr ALTAIR-BASIC veröffentlichten. Tatsächlich findet sich darin bereits der Doppelpunkt zur Trennung.

Auf der Suche nach einem Beleg dafür, dass das hier erstmals auftaucht, bin ich allerdings auf wesentlich frühere Dialekte gestoßen, die es ebenfalls zulassen, dass mehrere Befehle pro Zeile eingegeben werden können. Der Verdacht, dass es sich dabei um eine Veränderung für Minicomputer-BASIC-Dialekte handelt, hat sich letztlich bestätigt, wie ich aus einem Programmierhandbuch für das PDP-11-BASIC aus dem Jahre 1970 entnehmen konnte:

All BASIC statements and computations must be written on a single line; they cannot be continued onto a following line. However, more than one statement may be written on a single line when each statement after the first is preceded by a colon.

(Multiple statement lines are a special feature of PDP-11 BASIC.) For example:

10 INPUT A^B> C
is a single statement line, whereas

2 LET X=ll: PRINT X^Y-.Z: IF X=A THEM 10

is a multiple statement line containing three statements: LET, PRINT, and IF. Most statements may be used anywhere in a multiple state- ment line; exceptions are noted in the discussion of each statement.

Quelle: PDP-11-BASIC Programming Manual – Single User, Paper Tape Software, S. 2-1 (Hervorh. durch mich)

Spätere BASIC-Dialekte für die PDP-11 nutzten nicht nur Doppelpunkte, sondern Slashes und/oder Backslashes zur Befehlstrennung – etwa das RT-11-BASIC.

Was nun noch etwas mysteriös ist, ist die Frage, woher Gates und Allen auf die Idee gekommen sind, den Doppelpunkt zu übernehmen. Entstanden ist das ALTAIR-BASIC auf einer 8080-Emulation auf einer PDP-10. Für die PDP-10 scheint aber 1975 nach meiner ersten Suche kein BASIC-Dialekt mit Doppelpunkt-Befehlstrennung existiert zu haben. Hat sich 1975 in Harvard, wo die beiden BASIC entwickelt haben, ebenfalls eine PDP-11 befunden? Und warum haben die beiden diesen wesentlich schnelleren Rechner nicht für ihre Emulation benutzt?

7. Lange Nacht der Computerspiele

Am Samstag, den 4.5. findet an der HTWK Leipzig wieder eine lange Nacht der Computerspiele statt. Im vergangenen Jahr war ich dort und hielt einen Vortrag über Spieleingabegeräte. Auch dieses Jahr bin ich wieder mit einem Beitrag vertreten. Ich stelle einige Ergebnisse der letzten “Game Circuit”-Sitzung vor: Ich erzähle etwas über die Besonderheiten des BASIC-Abtipp-Spiels, bekomme eine Vitrine, in der typische Computerzeitschriften der 1970er- und 1980er-Jahre ausgestellt sind, und einen Tisch für drei Computer, auf denen abgetippte Spiele vorgeführt werden.

Weitere Infos: http://www.schreibfabrik.de/spielenacht.phpUnd: https://www.facebook.com/events/239947402806664/

Sit down & type in

Die 6. Runde der Game Circuits steht an! Am 8. Februar lade ich ab 17 Uhr ins Signallabor ein, um auf historischer 8-Bit-Hardware Computerspiele zu spielen und zu diskutieren.

Auf dem Programm stehen dieses mal von Amateuren in BASIC programmierte und in Computerzeitschriften veröffentlichte Spiele für verschiedene Homecomputer-Systeme. Nach einem Vortrag über die medienarchäologischen und -epistemologischen Perspektiven auf die Textsorte “Programmlisting” sind die Teilnehmer angehalten, in eines der zur Verfügung gestellten Systeme Listings mit einer maximalen Länge von 100 Zeilen einzutippen. Verschiedene Vorlagen aus zeitgenössischen Computerzeitschriften und -büchern werden dazu zur Auswahl gestellt. Der Nachvollzug dieser archaischen Eingabetätigkeit, bei der der Mensch zu einem Medium zwischen Papier und Maschine wird, soll einerseits die pragmatischen Aspekte der Textsorte “Programmlisting” veranschaulichen und andererseits die Funktionsweise von Spielesoftware als Code in Ansätzen erfahrbar machen. Mitzubringen sind eine leere Audiokassette und/oder eine 5,25- bzw. 3-Zoll-Diskette (letztere für diejenigen, die sich vorab schon für den Amstrad CPC 6128 als Plattform entscheiden möchte).

Weitere Infos zu Zeit und Ort finden sich auf dem Plakat:

gamecircuits6.

NODDY

“Your MTX has three languages resident in its memory – Assembler, Noddy and BASIC. In this chapter we will be taking a look at the Noddy language. This is a language that has been designed to simplify text handling and, as it only uses eleven eommands, it is very easy to get to grips with. In order to exploit this language to the full you must get used to the idea of coding it in conjunetion with BASIC. In essence, Noddy provides you with a simple way of storing and displaying textual information. In other words you can create well designed textual sereens and wonderful adventure games within a BASIC program by calling on a specifie Noddy file. It is very simple to switch from BASIC to Noddy without losing any files resident in memory.

To access the Noddy language type in as a direct command NODDY (or NODD.) and press the < RET> key. The screen will display

Noddy>”*

Memorex MTX 512

* Spencxer Bateson: Memotech Operator’s Manual. Bushey: Memotech Ltd. o. J., S. 171.

Meine Lehrveranstaltungen im Sommersemester 2013

Im Sommersemester werde ich drei reguläre Lehrveranstaltungen anbieten:

  1. Seminar (für BA MeWi, Modul III und MuMe, Modul X): Strings – Symbolmanipulation mit dem Computer
  2. Seminar (für MA MeWi Modul I): Die Verkabelung der Sprache. Geschichte und Theorie der medialen Sprach- und Textverarbeitung
  3. Ringvorlesung (für MA Mewi Modul I): SHIFT – RESTORE – ESC. Die Aufhebung des Retro-Computings in der Medienarchäologie

Interessierte Studenten anderer Studiengänge sind zur Teilnahme herzlich eingeladen. Das Master-Seminar ist wieder für den Scheinerwerb für Kulturwissenschaft-Master-Studenten geöffnet.

Details zu den Veranstaltungen:

(weiterlesen …)

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.

Shift it!

Logo zur Vortragsreihe

Die Vorbereitungen zur Vortragsreihe “SHIFT – RESTORE – ESCAPE. Die Aufhebung des Retrocomputings in der Medienarchäologie” schreiten mit großen Schritten voran. Die Timeline ist weitgehend bestätigt und es liegen auch bereits eine handvoll Abstracts vor. Dass der VzEkC e.V. in seiner Jahreshauptversammlung meinem Finanzantrag über 500 Euro (Reise- und Unterkunftskosten) voll zugestimmt hat, stimmt darüber hinaus freudig. Mehr als genug Gründe also, mit ersten “Ergebnissen” an die Öffentlichkeit zu gehen:

http://www.medienwissenschaft.hu-berlin.de/medientheorien/shift-restore-escape/

oder abgekürzt:

http://u.hu-berlin.de/ShiftRestoreEscape

oder noch kürzer:

http://u.hu-berlin.de/SRE

Gern darf für die Seit geworben werden. Gern mit dem obigen Logo (allerdings bitte nicht per Hotlink. Hier der Downloadlink).

RETURN again to BASIC

In Kürze erscheint die 12. Ausgabe des Magazins RETURN, zu dem ich die Fortsetzung meines Beitrags zur Geschichte der Programmiersprache BASIC beigesteuert habe. Dieses mal schreibe ich über die Zeit, nachdem “Micro Soft” das ALTAIR-BASIC publiziert hab bis in die Gegenwart der immer noch sehr lebendigen Programmiersprache. Bestellt werden kann das Heft über die Homepage (aufs Cover klicken).

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 …

Call for Papers: SHIFT • RESTORE • ESC – Die Aufhebung des Retro-Computings in der Medienarchäologie

Vortragsreihe im Sommersemester 2013 am Fachgebiet Medienwissenschaft der Humboldt-Universität zu Berlin sowie anschließender Sammelband

(weiterlesen …)

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