Informatik-Nostalgie: Code des Apollo-11-Bordcomputers jetzt auf GitHub verfügbar

Lächerliche 2,4 Megabyte ist das neue Repository groß, welches Interessierte nun auf GitHub betrachten können: Mit 2,4 Megabyte Code flog die Menschheit zum Mond und heute könnte man damit kaum eine aktuelle Webseite erstellen. Natürlich hinkt der Vergleich, aber trotzdem: Auch wer kein Informatik-Experte ist findet in den 127 Dateien Assembler-Code einige spannende Details und lustige Kommentare.

Buzz Aldrin im Inneren der Apollo-11-Raumfähre. Im Hintergrund ist rechts unten das DSKY-Bedienpanel des Apollo Guidance Computers zu erkennen. (Quelle: NASA)
GitHub-Community findet Rechtschreibfehler und lustige Kommentare
Der Code war bereits viele Jahre im Internet zu betrachten, allerdings meistens nur in der Form von Bilddateien oder als Text auf Webseiten von Menschen, die sich die Mühe gemacht haben, den Code abzutippen. In ausgedruckter Form ergeben die 2,4 Megabyte Code übrigens einen Papierhaufen der in etwa so groß ist wie Margaret Hamilton, eine der leitenden Entwicklerinnen für die Apollo-11-Mission. Die aktuelle Veröffentlichung auf GitHub sorgt für einige neue Nebeneffekte, denn die Entwickler-Community ist dort sehr aktiv und hat sofort lustige Kommentare, Rechtschreibfehler und Probleme in dem Code entdeckt.
Zum Beispiel hat ein Nutzer ein Problem im Code im Zusammenspiel mit den Sauerstofftanks gemeldet – eine Anspielung auf den kritischen Fehler an Bord der Apollo-13-Mission. Ebenfalls sehr interessant ist einer der Dateinamen: BURN_BABY_BURN–MASTER_IGNITION_ROUTINE.s. Spannend sind auch viele Kommentare innerhalb des Codes. Zum Beispiel gibt es an einer Stelle Hinweise dass es sich nur um eine temporäre Version handeln sollte, die aber am Ende augenscheinlich auch im fertigen Code zum Einsatz kam:
TS WCHPHOLD
TS WCHPHASE
TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE
CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE
TC DOWNFLAG # PERMIT X-AXIS OVERRIDE
ADRES XOVINFLG
Andere Kommentare fordern die Astronauten dazu auf, endlich „ein dummes Ding umzulegen“ oder handeln davon „den Zauberer zu besuchen“.
CAF CODE500 # ASTRONAUT: PLEASE CRANK THE
TC BANKCALL # SILLY THING AROUND
CADR GOPERF1
TCF GOTOP00H # TERMINATE
TCF P63SPOT3 # PROCEED SEE IF HE'S LYING
P63SPOT4
TC BANKCALL # ENTER INITIALIZE LANDING RADAR
CADR SETPOS1
TC POSTJUMP # OFF TO SEE THE WIZARD ...
CADR BURNBABY

Margaret Hamilton, eine der leitenden Entwicklerinnen der Apollo-11-Mission neben dem ausgedruckten Code für den Apollo Guidance Computer, der jetzt auf GitHub eingesehen werden kann. (Quelle: Wikipedia)
Apollo Guidance Computer: Rund 20 Sekunden Antwortzeit
Der Apollo Guidance Computer war vermutlich das erste Computersystem das man heutzutage als Embedded System bezeichnen könnte: Es war speziell auf sein Einsatzgebiet im Weltall ausgerichtet. Die Ähnlichkeit mit Heimcomputern der damaligen Zeit war gering. Der AGC lief mit einer Taktfrequenz von 2048 kHz (also etwa 2 MHz) und konnte 2048 Datenworte zu 16 bit (also etwa 4 Kilobyte) im Arbeitsspeicher halten. Eine Festplatte gab es nicht, lediglich einen ROM-Speicher von 36.000 Datenworten (etwa 72 Kilobyte) die nur gelesen werden konnten. Für eine arithmetische Operation lag die Antwortzeit bei etwa 20 Sekunden. Das zugehörige Bedienpanel ähnelt mehr einem Taschenrechner als einem Computer wie wir ihn heute kennen.

Das Bedienmodul des Apollo Guidance Computer hörte auf den Namen DSKY (DiSplay & KeYboard) und erinnert eher an einen Taschenrechner. (Quelle: NASA)
Die Programmierung des Computers erfolgte in einer speziellen, eigens-entwickelten AGC-Assembler-Sprache. Wer einige der verwendeten Instruktionen nachschlagen möchte, findet im Netz sehr gute Referenzen zum AGC-Befehlssatz. Und wer ganz übermütig ist und selbst einmal den AGC programmieren möchte, der kann das inzwischen mithilfe eines JavaScript-Emulators ganz bequem im Browser tun.
via qz.com