Source Code

These source-code files are part of a reconstructed copy of Artemis 071, the first release of the Apollo 15 through 17 Command Module (CM) Apollo Guidance Computer (AGC) software.

The reconstruction began with source code of Artemis 072 previously transcribed from a digitized copy of that program. The code was then updated by undoing changes between the two versions. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021154-. Note that page numbers in the reconstructed code match those on the Artemis 072 printout, although the changed code would likely have changed page numbers for a real Artemis 071 listing.

Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository.

018396,000002:                                                                                                  ## Copyright:   Public domain.
018397,000003:                                                                                                  ## Filename:    GIMBAL_LOCK_AVOIDANCE.agc
018398,000004:                                                                                                  ## Purpose:     A section of Artemis revision 071.
018399,000005:                                                                                                  ##              It is part of the reconstructed source code for the first
018400,000006:                                                                                                  ##              release of the flight software for the Command Module's
018401,000007:                                                                                                  ##              (CM) Apollo Guidance Computer (AGC) for Apollo 15 through
018402,000008:                                                                                                  ##              17. The code has been recreated from a copy of Artemis 072.
018403,000009:                                                                                                  ##              It has been adapted such that the resulting bugger words
018404,000010:                                                                                                  ##              exactly match those specified for Artemis 071 in NASA
018405,000011:                                                                                                  ##              drawing 2021154-, which gives relatively high confidence
018406,000012:                                                                                                  ##              that the reconstruction is correct.
018407,000013:                                                                                                  ## Reference:   416
018408,000014:                                                                                                  ## Assembler:   yaYUL
018409,000015:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
018410,000016:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
018411,000017:                                                                                                  ## Mod history: 2019-08-14 MAS  Created from Artemis 072.
018412,000018: 

Page 416

018414,000020: 
018415,000021: 22,2000                                           SETLOC   KALCMON1                              
018416,000022: 22,2000                                           BANK                                           
018417,000023: 
018418,000024: 22,2745                                           COUNT*   $$/KALC                               
018419,000025: 22,2745  E6,1661                                  EBANK=   BCDU                                  
018420,000026: 
018421,000027:                                                                                                  #  DETECTING GIMBAL LOCK
018422,000028: 22,2745  22,2745               LOCSKIRT           EQUALS   WCALC                                 
018423,000029: 22,2745           70740        WCALC              LXC,1    DLOAD*                                
018424,000030: 22,2746           00774                                    RATEINDX                              
018425,000031: 22,2747           05002                                    ARATE,1                               
018426,000032: 22,2750           45002                           SR4      CALL                                  #  COMPUTE THE INCREMENTAL ROTATION MATRIX
018427,000033: 22,2751           44522                                    DELCOMP                               #  DEL CORRESPONDING TO A 1 SEC ROTATION
018428,000034:                                                                                                  #  ABOUT COF
018429,000035: 22,2752           74343                           DLOAD*   VXSC                                  
018430,000036: 22,2753           05002                                    ARATE,1                               
018431,000037: 22,2754           03343                                    COF                                   
018432,000038: 22,2755           77721                           MXV                                            
018433,000039: 22,2756           05014                                    QUADROT                               
018434,000040: 22,2757           17311                           STODL    BRATE                                 
018435,000041: 22,2760           03365                                    AM                                    
018436,000042: 22,2761           55605                           DMP      DDV*                                  
018437,000043: 22,2762           05012                                    ANGLTIME                              
018438,000044: 22,2763           05002                                    ARATE,1                               
018439,000045: 22,2764           77661                           SR                                             
018440,000046: 22,2765           20606                                    5                                     
018441,000047: 22,2766           03317                           STORE    TM                                    
018442,000048: 22,2767           77214                           BON      VLOAD                                 
018443,000049: 22,2770           00313                                    CYC61FLG                              
018444,000050: 22,2771           71747                                    RCYCLR61                              
018445,000051: 22,2772           03311                                    BRATE                                 
018446,000052: 22,2773           77761                           VXSC                                           
018447,000053: 22,2774           05036                                    BIASCALE                              
018448,000054: 22,2775           03275                           STORE    BIASTEMP                              #  ATTITUDE ERROR BIAS TO PREVENT OVERSHOOT
018449,000055:                                                                                                  #  IN SYSTEM
018450,000056: 22,2776           77614                           SETGO                                          #  STATE SWITCH CALCMAN2 (43D)
018451,000057: 22,2777           01035                                    CALCMAN2                              #  0(OFF) = BYPASS STARTING PROCEDURE
018452,000058: 22,3000           45053                                    NEWANGL    +1                         #  1(ON) = START MANEUVER
018453,000059: 
018454,000060: 
018455,000061: 22,3001           00044 15053  ARATE              2DEC     .0022222222                            #  = .05 DEG/SEC
018456,000062: 22,3003           00221 24255                     2DEC     .0088888889                            #  = .2 DEG/SEC
018457,000063: 22,3005           00554 02660                     2DEC     .0222222222                            #  = .5 DEG/SEC
018458,000064: 22,3007           02660 13301                     2DEC     .0888888889                            #  = 2 DEG/SEC                $22.5 DEG/SEC
018459,000065: 22,3011           00003 04000  ANGLTIME           2DEC     .000190735                            #  = 100B - 19
018460,000066:                                                                                                  #  MANEUVER ANGLE TO MANEUVER TIME

Page 417

018462,000068: 22,3013           03146 14632  QUADROT            2DEC     .1                                    #  ROTATION MATRIX FROM S/C AXES TO CONTROL
018463,000069: 22,3015           00000 00000                     2DEC     0          B-28                       #  AXES (X ROT = -7.25 DEG)
018464,000070: 22,3017           00000 00000                     2DEC     0          B-28                       
018465,000071: 22,3021           00000 00000                     2DEC     0          B-28                       
018466,000072: 22,3023           03131 11275                     2DEC     .099200                               #  =(.1)COS7.25
018467,000073: 22,3025           77461 47370                     2DEC     -.012620                              #  =-(.1)SIN7.25
018468,000074: 22,3027           00000 00000                     2DEC     0          B-28                       
018469,000075: 22,3031           00316 30407                     2DEC     .012620                               #  (.1)SIN7.25
018470,000076: 22,3033           03131 11275                     2DEC     .099200                               #  (.1)COS7.25
018471,000077: 22,3035           00004 05253  BIASCALE           2DEC     .0002543132                            #  = (450/180)(1/0.6)(1/16384)

End of include-file GIMBAL_LOCK_AVOIDANCE.agc.  Parent file is MAIN.agc