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.

043841,000002:                                                                                                  ## Copyright:   Public domain.
043842,000003:                                                                                                  ## Filename:    MYSUBS.agc
043843,000004:                                                                                                  ## Purpose:     A section of Artemis revision 071.
043844,000005:                                                                                                  ##              It is part of the reconstructed source code for the first
043845,000006:                                                                                                  ##              release of the flight software for the Command Module's
043846,000007:                                                                                                  ##              (CM) Apollo Guidance Computer (AGC) for Apollo 15 through
043847,000008:                                                                                                  ##              17. The code has been recreated from a copy of Artemis 072.
043848,000009:                                                                                                  ##              It has been adapted such that the resulting bugger words
043849,000010:                                                                                                  ##              exactly match those specified for Artemis 071 in NASA
043850,000011:                                                                                                  ##              drawing 2021154-, which gives relatively high confidence
043851,000012:                                                                                                  ##              that the reconstruction is correct.
043852,000013:                                                                                                  ## Reference:   997
043853,000014:                                                                                                  ## Assembler:   yaYUL
043854,000015:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
043855,000016:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
043856,000017:                                                                                                  ## Mod history: 2019-08-14 MAS  Created from Artemis 072.
043857,000018: 

Page 997

043859,000020: 
043860,000021: 21,2000                                           SETLOC   MYSUBS                                
043861,000022: 21,2000                                           BANK                                           
043862,000023: 
043863,000024: 21,2060  E6,1510                                  EBANK=   KMPAC                                 
043864,000025: 21,2060     5060               SPCOS1             EQUALS   SPCOS                                 
043865,000026: 21,2060     5061               SPSIN1             EQUALS   SPSIN                                 
043866,000027: 21,2060     5060               SPCOS2             EQUALS   SPCOS                                 
043867,000028: 21,2060     5061               SPSIN2             EQUALS   SPSIN                                 
043868,000029: 
043869,000030: 21,2060                                           COUNT*   $$/DAPMS                              
043870,000031: 
043871,000032:                                                                                                  #  ONE AND ONE HALF PRECISION MULTIPLICATION ROUTINE
043872,000033: 
043873,000034: 21,2060           55512        SMALLMP            TS       KMPTEMP                               #  A(X+Y)
043874,000035: 21,2061           00006                           EXTEND                                         
043875,000036: 21,2062           71511                           MP       KMPAC      +1                         
043876,000037: 21,2063           55511                           TS       KMPAC      +1                         #  AY
043877,000038: 21,2064           34772                           CAF      ZERO                                  
043878,000039: 21,2065           57510                           XCH      KMPAC                                 
043879,000040: 21,2066           00006                           EXTEND                                         
043880,000041: 21,2067           71512                           MP       KMPTEMP                               #  AX
043881,000042: 21,2070           21511                           DAS      KMPAC                                 #  AX+AY
043882,000043: 21,2071           00002                           TC       Q                                     
043883,000044: 
043884,000045:                                                                                                  #  SUBROUTINE FOR DOUBLE PRECISION ADDITIONS OF ANGLES
043885,000046:                                                                                                  #  A AND L CONTAIN A DP(1S) ANGLE SCALED BY 180 DEGS TO BE ADDED TO KMPAC.
043886,000047:                                                                                                  #  RESULT IS PLACED IN KMPAC.  TIMING = 6 MCT (22 MCT ON OVERFLOW)
043887,000048: 
043888,000049: 21,2072           21511        DPADD              DAS      KMPAC                                 
043889,000050: 21,2073           00006                           EXTEND                                         
043890,000051: 21,2074           12111                           BZF      TSK        +1                         #  NO OVERFLOW
043891,000052: 21,2075           11510                           CCS      KMPAC                                 
043892,000053: 21,2076           12112                           TCF      DPADD+                                #  + OVERFLOW
043893,000054: 21,2077           12101                           TCF      +2                                    
043894,000055: 21,2100           12114                           TCF      DPADD-                                #  - OVERFLOW
043895,000056: 21,2101           11511                           CCS      KMPAC      +1                         
043896,000057: 21,2102           12117                           TCF      DPADD2+                               #  UPPER = 0, LOWER +
043897,000058: 21,2103           12105                           TCF      +2                                    
043898,000059: 21,2104           40000                           COM                                            #  UPPER = 0, LOWER -
043899,000060: 21,2105           64750                           AD       POSMAX                                #  LOWER = 0, A=0
043900,000061: 21,2106           55511                           TS       KMPAC      +1                         #  CAN NOT OVERFLOW
043901,000062: 21,2107           34750                           CA       POSMAX                                #  UPPER WAS = 0
043902,000063: 21,2110           55510        TSK                TS       KMPAC                                 
043903,000064: 21,2111           00002                 +1        TC       Q                                     
043904,000065: 21,2112           64752        DPADD+             AD       NEGMAX                                #  KMPAC GREATER THAN 0
043905,000066: 21,2113           12110                           TCF      TSK                                   
043906,000067: 
043907,000068: 21,2114           40000        DPADD-             COM                                            
043908,000069: 21,2115           64750                           AD       POSMAX                                #  KMPAC LESS THAN 0

Page 998

043910,000071: 21,2116           12110                           TCF      TSK                                   
043911,000072: 
043912,000073: 21,2117           64752        DPADD2+            AD       NEGMAX                                #  CAN NOT OVERFLOW
043913,000074: 21,2120           55511                           TS       KMPAC      +1                         
043914,000075: 21,2121           34752                           CA       NEGMAX                                #  UPPER WAS = 0
043915,000076: 21,2122           12110                           TCF      TSK                                   
043916,000077: 

Page 999 Empty page


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