Exclusif : le code source d’Apollo 11 !

Il est hallucinant d’imaginer qu’ils sont partis sur la Lune avec une si petite puissance de calcul et… si peu de lignes de code.

Pour rappel, l’ordinateur de bord faisait 14ko !!! Ce qui provoqua d’ailleurs une erreur 1202 lors de l’alunissage pour cause de trop plein d’informations (l’ordinateur ne pouvait pas gérer deux radars en même temps).

Le code source en entier est ici.

Extrait :

# Copyright:    Public domain.
# Filename:     CM_BODY_ATTITUDE.s
# Purpose:      Part of the source code for Comanche, build 055. It
#               is part of the source code for the Command Module’s
#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler:    yaYUL
# Reference:    pp. 883-889
# Contact:      Ron Burkey <[email protected]>
# Website:      http://www.ibiblio.org/apollo.
# Mod history:  2009-05-12 RSB    Adapted from Colossus249 file of the same
#                name and Comanche 055 page images.
#
# The contents of the « Comanche055 » files, in general, are transcribed
# from scanned documents.
#
#       Assemble revision 055 of AGC program Comanche by NASA
#       2021113-051.  April 1, 1969.
#
#       This AGC program shall also be referred to as Colossus 2A
#
#       Prepared by
#                       Massachussets Institute of Technology
#                       75 Cambridge Parkway
#                       Cambridge, Massachusetts
#
#       under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information.  Please report any errors to [email protected].

# Page 883
BANK    35

SETLOC    BODYATT
BANK

COUNT    37/CMBAT

# PDL 12D – 15D SAFE.

# VALUE OF GIMBAL AND BODY ANGLES VALID AT PIP TIME ARE SAVED DURING  READACCS.

EBANK=    RTINIT        # LET INTERPRETER SET EB

CM/POSE        TC    INTPRET        # COME HERE VIA AVEGEXIT.

SETPD    VLOAD
0
VN        # KVSCALE = (12800/ .3048) /2VS
VXSC    PDVL
-KVSCALE    # KVSCALE = .81491944
UNITW        # FULL UNIT VECTOR
VXV    VXSC        # VREL = V – WE*R
UNITR
KWE
VAD    STADR
STORE    -VREL        # SAVE FOR ENTRY GUIDANCE.    REF COORDS

UNIT    LXA,1
36D        # ABVAL( -VREL) TO X1
STORE    UXA/2        # -UVREL            REF COORDS

VXV    VCOMP
UNITR        # .5 UNIT            REF COORDS
UNIT    SSP        # THE FOLLOWING IS TO PROVIDE A STABLE
S1        # UN FOR THE END OF THE TERMINAL PHASE.
SPVQUIT        DEC    .019405        # 1000/ 2 VS
TIX,1    VLOAD        # IF V-VQUIT POS, BRANCH.
CM/POSE2    # SAME UYA IN OLDUYA
OLDUYA        # OTHERWISE CONTINUE TO USE OLDUYA
CM/POSE2    STORE    UYA/2        #                REF COORDS

STORE    OLDUYA        # RESTORE, OR SAVE AS CASE MAY BE.

VXV    VCOMP
UXA/2        # FINISH OBTAINING TRAJECTORY TRIAD.
VSL1
STORE    UZA/2        #                REF COORDS