Salutations!
Sur internet, on trouve de tout. Quand je trouve un truc étrange ou sympa, je le met de coté, et, aujourd'hui, je ressort un lien cool de mon chapeau à liens cools.
Maintenant, vous le saurez, le code source de l'ordinateur de guidage d'Apollo11 est sur github.
Code source original de l'ordinateur de guidage Apollo 11 (AGC) pour le module de commande (Comanche055) et le module lunaire (Luminary099). Numérisé par les gens du Virtual AGC et du MIT Museum. Le but est d'être un repo pour le code source original d'Apollo 11. En tant que tel, les PR sont les bienvenues pour tous les problèmes identifiés entre les transcriptions dans ce référentiel et les scans source originaux pour Luminary 099 et Comanche 055, ainsi que pour tous les fichiers que j'ai pu manquer.
(https://github.com/chrislgarry/Apollo-11)
En tout premier lieu, on notera que le chef de ce projet, est Margaret H. Hamilton, une très populaire "une informaticienne, ingénieure système et chef d'entreprise américaine. " dont on entends parler pour ses diverses contributions au monde de l'information.
Moi, ce qui me fascine le plus, c'est le code assembleur. En tout honnèteté, je n'y ai rien compris, et, il faudrait lire la doc du module lunaire pour le comprendre (chose étrange à dire). Un extrait pris au hasard:
# NORMAL EXIT: ENDEXT
#
# ALARM/ABORT: ALARM -- BAD REFSMMAT -- CODE:220
# OPERATOR ERROR IF V47 SELECTED DURING ANOTHER EXTENDED VERB.
#
# ERASABLES
# USED: SAMPTIME (2) TIME OF :ENTER: KEYSTROKE
# AGSK (2) GROUND ELAPSED TIME OF THE AEA CLOCK :ZERO:
# AGSBUFF (140) CONTAINS AGS INITIALIZATION DATA (SEE :OUTPUT: BELOW)
# AGSWORD (1) PREVIOUS DOWNLIST SAVED HERE
EBANK= AGSBUFF
BANK 40
SETLOC R47
BANK
COUNT* $$/R47
AGSINIT CAF REFSMBIT
MASK FLAGWRD3 # CHECK REFSMFLG.
CCS A
# Page 207
TC REDSPTEM # REFSMMAT IS OK
TC ALARM # REFSMMAT IS BAD
OCT 220
TC ENDEXT
NEWAGS EXTEND
DCA SAMPTIME # TIME OF THE :ENTER: KEYSTROKE
DXCH AGSK # BECOMES NEW AEA CLOCK :ZERO:
REDSPTEM EXTEND
DCA AGSK
DXCH DSPTEMX
AGSDISPK CAF V06N16
TC BANKCALL # R1 = 00XXX. HRS., R2 = 000XX MIN.,
CADR GOMARKF # R3 = 0XX.XX SEC.
TC ENDEXT # TERMINATE RETURN
TC AGSVCALC # PROCEED RETURN
CS BIT6 # IS ENTER VIA A V32
AD MPAC
EXTEND
BZF NEWAGS # YES, USE KEYSTROKE TIME FOR NEW AGSK
EXTEND # NO, NEW AGSK LOADED VIA V25
DCA DSPTEMX # LOADED INTO DSPTEMX BY KEYING
TC REDSPTEM -1 # V25E FOLLOWED BY HRS.,MINS.,SECS.
# DISPLAY THE NEW K.
Voilà, c'est un petit bout d'histoire que voilà, et, je trouve ça extrèmement cool que ce genre de chose devienne publique, et aussi facilement accessibles.
Hpphckng!