SimulationsRaum Rotating Header Image

Porgrammiersprachen

»My brain hurts!«

Was einem nicht alles begegnet auf der Suche nach geeigneter Studienliteratur zum nächsten Assemblerkurs:

complete

SAVE „GAME“,8,1

Am 22. April findet der von der Arbeitsgruppe „Langzeitarchivierung“ der Gesellschaft für Informatik initiierte Workshop „Save Game – Legal Challanges in Game Preservation“, bei dem die Medienwissenschaft Gastgeberin ist, bei uns im Medientheater statt. Ich halte dort einen Vortag über Probleme und Möglichkeiten der Code- und Hardware-nahen Forschung an historischen Computerspielen.

Der Workshop ist öffentlich. Weitere Informationen zum Programm und zur Anmeldung:

(mehr …)

Medien ∩ Wissenschaften

Gestern habe ich die erfreuliche Nachricht bekommen, dass die Kultur-, Sozial- und Bildungswissenschaftliche Fakultät der Humboldt-Universität meinen Finanzantrag in voller Höhe bewilligt hat, so dass ich am 17. und 18. April einen international besetzte interdisziplinären Workshop unter dem Titel „Medien ∩ Wissenschaften“ durchführen kann. Ziel ist es, die wichtigsten Hilfswissenschaften der Medienwissenschaft an einen Tisch zu bekommen, um zu erörtern, welche Schnittmengen zwischen ihnen und unserer Disziplin bestehen. Die Frage, „Wie verhandelt die Logik, Mathematik, Physik, Elektronik, Informatik, Kybernetik und Informationstheorie den Gegenstand Medien?“ soll schließlich auf die Konzipierung eines Lehrbuchs für die Medienwissenschaft hinauslaufen, aus dem Studierende derselben (aber auch Interessierte anderer Disziplinen) die notwendigen Kenntnisse der jeweiligen Gebiete erwerben können, um einen technisch informierten Medienbegriff zu verwenden.

Der Workshop ist offen für interessierte Respondenten (insbesondere aus den angesprochenen Disziplinen). Ich bitte jedoch um vorherige Anmeldung per E-Mail.

Medienwissenschaften

Lehre im Sommersemester 2015

6809-Assembler

Im Sommersemester gebe ich zwei Lehrveranstaltungen:

(mehr …)

Die Frage …

… warum man in der Schule eine Programmiersprache lernen soll, nicht aber die zum Ausfüllen einer Steuererklärung nötigen Begriffe und Zusammenhänge wird nur unzureichend beantwortet werden können.

(Zit. aus: W. Knauer: Informatik als Schulfach. Reihe: EDV in der Anwendung, hg. v. M. A. Graef. Tübingen: Verlag Bernhard Bruscha 1980, S: 11f.)

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.

Kittler Studies

Nachdem ein kürzlich erschienener Sammelband die „Kittler Studies“ ausgerufen hat, kommt der Kolloquiums-Vortrag von Moritz Hiller am kommenden Mittwoch genau zur richtigen Zeit:

Am nächsten Mittwoch, den 4.2.15, wird Moritz Hiller im Kolloquium zu seiner Dissertation vortragen. Das Thema des Vortrags: „Software-Philologie, oder: Die Zeichen der Zeit lesen.“ Die anschließende Diskussion wird von Prof. Dr. Wolfgang Ernst moderiert.

Das Kolloquium findet wie gewohnt im Medientheater (EG, Raum 0.01) der Georgenstraße 47 statt. Beginn: 18 Uhr.

(mehr …)

Birth of BASIC

BASIC-Samstag

Am 24. Januar findet im Oldenburger Computermuseum ein fünfstündiger BASIC-Workshop statt, bei dem Neulinge eine einfache Programmiersprache erlernen können. Geleitet wird der Workshop vom Kurator Thiemo Eddiks. Ich bin (als OCM-Mitglied) auch vor Ort und werde einen einführenden Vortrag über die Geschichte und Gegenwart von BASIC halten.

Anmelden kann man sich per E-Mail oder über die Facebook-Seite.

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

Die Relaismotte

Vor einigen Wochen hat mich Christian Grasse vom Deutschlandradio besucht, um mit mir über Programmierfehler zu sprechen. Das Interview ist nun im Rahmen der Reihe „Systemfehler“ veröffentlicht worden und kann hier angehört werden:

 

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.

How To Do Things With Keys

On november, 20th I will speak in Brno (Czech Republic) on the „MEDIA PERFORMANCE 4 / GESTURE“ workshop about the „Gesture of Assembly Programming“ and Flusser’s concept of programming, computers and gestures.

Abstract:

How To Do Things With Keys
Programming (Assembly) as a (Kind of) Gesture

Is programming a practice of writing? Or is it rather a craft? Vilém Flusser did not mention coding as a special gesture in his book but there are several sentences about the role and the effect of computer usage for the arts, writing (text) and thinking. I want to set programming computer with formal languages between Flusser’s gestures of „making“ (Machen) and „writing“ (Schreiben) – especially programming in assembly, since these machine orientated languages „do things“ directly in the sense of John L. Austin: They switch together elements of the hardware; they make the electrical signals flow a distinct way through the circuits; and beyond all that their syntax and semantic stand for a theoretical model for the computer itself (Turing completeness). So the coder at the keyboard becomes much more than only a writer/autor of code. He applies a theoretical to a real machine. In my lecture I will show the effects of the „gesture of programming“ from the computer’s subface in detail: how it effects its circuits and how the programming forces the „universal Turing machine“ to become a „special purpose machine“ – only by using words from a special alphabet – the programming opcodes. On the other hand there will be the question how the hands of the programmer can become programming devices (perhaps by losing their „dialectical position“ for eacht oterh). I will ask if there is a gap in Flusser’s theory between making and writing and if that could be filled with theories of computer studies and pragmatics.

1. Introduction: Flusser, Computers, and programming
2. Programming between Flusser’s gestures „making“ and „writing“
3. Is a computer program just another kind of text type?
3.1 Formal languages in theoretical computer science
3.2 Paradigms of programming languages and programming
4. Is programming assembly just „making“?
4.1 The instruction set of a (micro) processor as a pre-post-structural dictionary
4.2 Programming as a perlucotionary (speech) act
5. Derrida’s critique on Searle and formal languages
6. People programming computers programming people

Zeit-Invasionen

Am 14. und 15.10. veranstaltet der Lehrstuhl für Medientheorien einen Workshop mit dem Titel „Zeitigungen von Medien„, in welchem ich einen Vortrag halten werde:

Time Invaders
Spielende Digitalcomputer als pluritemporale Medien

Der Digitalcomputer ist eine Technologie der Zeit: Er ist in der Zeit und zugleich „hat“ er Zeit. Welche und wie viele Zeitformationen sich um und im Computer zeigen, scheint dabei ein wesentliches Kriterium seiner Medialität zu sein. Zunächst wäre zu diskutieren, unter welchen Umständen ein Computer überhaupt ein „Objekt der Zeit / der Geschichte“ sein kann – insbesondere, wenn er zwar als technikhistorisches Artefakt aufgerufen, dann jedoch eingeschaltet wird. Im Sinne des Retro-Computing zeigen sich hier bereits Temporaleffekte, die kaum seinen bloß ökonomischen oder technikhistorischen Zuschreibung entspringen, sondern bereits seine inneren Zeitverhältnisse äußern. Um diese offenzulegen, soll ein Ausflug in die temporalen Segmente des Computers anhand eines zunächst ästhetischen Phänomens – des Computerspiels „Space Invaders“ (1978) – unternommen werden. „Space Invaders“, hier weniger als Raum-, denn als Zeitproblem zu analysieren, entbirgt bereits auf der Oberfläche unterschiedlichste Zeitaspekte seiner konkreten Hard- und Software. Schicht um Schicht sich mit medienarchäologischen Methoden freigelegt werden: von den linearen Abläufen, rekursiven Funktionen und Schleifenkonstruktionen der Software bis zu den diskreten Taktungen, kontinuierlichen Signalverläufen und sprunghaften Basal-Prozessen der Hardware.

Dauer: 45 Minuten zzgl. Diskussion. – Zum Zeitvertreib wird es verschiedene Space-Invaders-Handheld-Spiele zum Ausprobieren geben.

Informationen zum Workshop finden sich auf der Institutsseite: https://www.medientheorien.hu-berlin.de/zeitigungen-von-medien

ZvM_Plakat_A1

Lehre im Wintersemester 2014/15

Meine Lehrveranstaltungen fürs Wintersemester:

(mehr …)

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