Am 20. Juli 2009 wurden zu Ehren des 40. Jahrestages der Mondlandung Ausdrucke mit dem Quellcode des Programms für den Bordcomputer Apollo Guidance Computer (AGC) digitalisiert und im Internet veröffentlicht . Sieben Jahre sind vergangen - und jetzt hat dieses einzigartige Beispiel der Computergeschichte ein zweites Leben erhalten. Heute wird der Quellcode für AGC in Assembler vollständig auf Github veröffentlicht und kann gesucht, kommentiert, gegabelt usw. werden.Im Code finden Sie die Aufrufe der berühmten Fehler mit den Codes 1201 und 1202 , über die Neil Armstrong so besorgt war, und vieles mehr.Auf Github belegte das Apollo-11- Repository schnell den 1. Platz in der Liste der beliebtesten Repositories pro Tag (es besteht kein Zweifel, dass es in der wöchentlichen Bewertung morgen den 1. Platz haben wird). Es gibt wirklich etwas zu sehen. Es ist besonders interessant, einige Prozedurnamen ( BURN_BABY_BURN - MASTER_IGNITION_ROUTINE.s ) und Kommentare im Originalcode zu lesen .CAF CODE500 # ASTRONAUT: PLEASE CRANK THE
TC BANKCALL # SILLY THING AROUND
CADR GOPERF1
TCF GOTOP00H # TERMINATE
TCF P63SPOT3 # PROCEED SEE IF HE'S LYING
TC BANKCALL # ENTER INITIALIZE LANDING RADAR
CADR SETPOS1
TC POSTJUMP # OFF TO SEE THE WIZARD ...
CADR BURNBABY
Das Programm hat einen "temporären" Code, wie in vielen modernen Programmen.TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE
CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE
TC DOWNFLAG # PERMIT X-AXIS OVERRIDE
Und hier ist die 1969er Version des beliebten Kommentars "This Must Never Happen".CA A
Das erste Ticket wurde bereits im Github-Repository erstellt - eine Diskussion über den „Fehler“, der im Programm behoben werden muss.Der Entwickler von SilverWingedSeraph schreibt: "Ein Benutzer hatte ein ziemlich ernstes Problem mit dem kryogenen Mischen in Sauerstofftanks mit dem Auftreten einer Fehlermeldung." Wiederholen Sie die folgende Abfolge von Aktionen, um den Fehler im Programm zu reproduzieren:- Erstellen Sie ein Servicemodul.
- Fliege zur Mondumlaufbahn.
- Beginnen Sie in der Mondumlaufbahn mit dem Mischen in Sauerstofftanks.
„Wenn es ein Problem mit der Verkabelung im Modul gibt, kann der Fehler reproduziert werden. Seien Sie vorsichtig, denn die Situation kann für einen Tester gefährlich sein, der versucht, den Fehler zu reproduzieren “, sagte der Entwickler von Github, nicht ohne Sinn für Humor.Natürlich meint er den berühmten Unfall mit der Ausrüstung des Apollo 13-Servicemoduls, nach dem das Modul mit außergewöhnlichen Manövern dringend auf die Erde zurückgebracht werden musste.Bisher ist im Allgemeinen nur eine physische Kopie der Ausdrucke des Mondmodulprogramms erhalten geblieben . Ein Ausdruckbuch wird im Museum des Massachusetts Institute of Technology aufbewahrt.Der Programmcode wurde von Don Isles geschriebenmit Kollegen. Isles persönlich ist der Autor von etwa 2.000 Codezeilen, die für die Landung des Mondmoduls verantwortlich waren.Sie können versuchen, Apollo-Steuerbefehle im Emulator auszuführen (dies ist nur ein Computersimulator ohne das Raumschiff selbst).
Apollo-Raumfahrzeug-Computeremulator
Apollo-Emulator-AnweisungenApollo Command Module (CM) - und Lunar Module (LM) -Computer landeten automatisch auf der Mondoberfläche. Der Computer steuerte die Motoren und Servomotoren in Echtzeit.
Bordsteuerungscomputer des Apollo-Raumfahrzeugs
Anzeige des Steuercomputers an BordDas Management wurde von Apollo Guidance Computer (AGC) durchgeführt. Der Bordcomputer war mit einem Echtzeit-Betriebssystem mit Unterstützung für Multithreading ausgestattet. Er steuerte alle Systeme und empfing Signale von Radargeräten, Teleskopen, Gyroskopen und Beschleunigungsmessern.Das Buch „ Digital Apollo “ beschreibt gut, wie das Programm die CPU-Zeit priorisiert und zugewiesen hat.
Technische Daten des Bordsteuercomputers des Apollo-RaumfahrzeugsDie AGC-Zeitstandards wurden von einem Quarzresonator mit einer Frequenz von 2,048 MHz festgelegt. Der Computerspeicher bestand aus 2048 Wörtern wiederbeschreibbarem RAM und 36 K Wörtern ROM mit linearer Abtastung auf mehreren zusammengefügten Kernen. Der Lese- / Schreibzyklus von RAM und ROM dauerte 11,72 μs. Die Wortlänge betrug 16 Bit: 15 Datenbits und 1 Bit Parität. Das 16-Bit-Wortformat des Prozessors enthielt 14 Datenbits, ein Überlaufbit und ein Vorzeichenbit.Siehe auch:Apollo Guidance Computer Programming Guide