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.

005885,000002:                                                                                                  ## Copyright:   Public domain.
005886,000003:                                                                                                  ## Filename:    CHECK_EQUALS_LIST.agc
005887,000004:                                                                                                  ## Purpose:     A section of Artemis revision 071.
005888,000005:                                                                                                  ##              It is part of the reconstructed source code for the first
005889,000006:                                                                                                  ##              release of the flight software for the Command Module's
005890,000007:                                                                                                  ##              (CM) Apollo Guidance Computer (AGC) for Apollo 15 through
005891,000008:                                                                                                  ##              17. The code has been recreated from a copy of Artemis 072.
005892,000009:                                                                                                  ##              It has been adapted such that the resulting bugger words
005893,000010:                                                                                                  ##              exactly match those specified for Artemis 071 in NASA
005894,000011:                                                                                                  ##              drawing 2021154-, which gives relatively high confidence
005895,000012:                                                                                                  ##              that the reconstruction is correct.
005896,000013:                                                                                                  ## Reference:   135
005897,000014:                                                                                                  ## Assembler:   yaYUL
005898,000015:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
005899,000016:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
005900,000017:                                                                                                  ## Mod history: 2019-08-14 MAS  Created from Artemis 072.
005901,000018: 

Page 135

005903,000020:                                                                                                  #  ********** CHECK EQUALS LIST **********
005904,000021: 
005905,000022:                                                                                                  #  THIS LIST IS MAINTAINED TO ENSURE THAT CERTAIN ERASABLE LOCATIONS
005906,000023:                                                                                                  #  ARE LOCATED AT A SPECIFIED DISTANCE FROM ANOTHER ERASABLE LOCATION
005907,000024:                                                                                                  #  AS REQUIRED BY THE STRUCTURE OF THE DOWNLINK LISTS:
005908,000025:                                                                                                  #        1. IF A LOCATION IS THE SECOND PART OF A DOWNLINK WORD, IT MUST
005909,000026:                                                                                                  #           BE CONTIGUOUS TO THE LOCATION THAT IS THE FIRST PART.
005910,000027:                                                                                                  #        2. IF A LOCATION IS NOT THE FIRST WORD OF AN NDNADR IT
005911,000028:                                                                                                  #           MUST BE AT A SPECIFIC NUMBER OF LOCATIONS FROM THE FIRST
005912,000029:                                                                                                  #           LOCATION IN THE INSTRUCTION.
005913,000030:                                                                                                  #        3. OTHER NAMES MAY BE GIVEN TO LOCATIONS IN THE DOWNLINK LISTS
005914,000031:                                                                                                  #           THAT ARE NOT REFERENCED IN THE LISTS.THESE MUST NOT BE MOVED.
005915,000032:                                                                                                  #  THIS IS ACCOMPLISHED USING THE INSTRUCTION    CHECK=  .
005916,000033:                                                                                                  #  THIS INSTRUCTION GIVES A CUSS IN THE ASSEMBLY IF THE LOCATION OF THE
005917,000034:                                                                                                  #  FIRST TAG FIELD IS NOT EQUAL TO THE LOCATION OF THE SECOND TAG FIELD.
005918,000035:                                                                                                  #  THE INSTRUCTION HAS NO OTHER EFFECT ON THE ASSEMBLY OR CODE.
005919,000036: 
005920,000037:                                                                                                  #  THIS LIST SHOULD BE UPDATED FOR ANY CHANGES TO THE DOWNLINK LISTS.
005921,000038: 
005922,000039:                                                                                                  #  THIS LIST IS MAINTAINED BY  SUMNER ROSENBERG
005923,000040: 
005924,000041: 
005925,000042: E7,1426                        TIME1              CHECK=   TIME2      +1                         
005926,000043: ???????                        CDUY               CHECK=   CDUX       +1                         
005927,000044: ???????                        CDUT               CHECK=   CDUZ       +1                         
005928,000045: ???????                        PIPAX              CHECK=   CDUS       +1                         
005929,000046: ???????                        PIPAY              CHECK=   PIPAX      +1                         
005930,000047: ???????                        PIPAZ              CHECK=   PIPAY      +1                         
005931,000048: ???????                        UPOLDMOD           CHECK=   COMPNUMB   +1                         
005932,000049: ???????                        UPVERB             CHECK=   UPOLDMOD   +1                         
005933,000050: ???????                        UPCOUNT            CHECK=   UPVERB     +1                         
005934,000051: ???????                        BESTJ              CHECK=   BESTI      +1                         
005935,000052: ???????                        FAILREG            CHECK=   C31FLWRD   +1                         
005936,000053: ???????                        TRKMKCNT           CHECK=   VHFCNT     +1                         
005937,000054: ???????                        OPTION2            CHECK=   OPTION1    +1                         
005938,000055: ???????                        THETAD             CHECK=   REDOCTR    +1                         
005939,000056: ???????                        IMODES33           CHECK=   IMODES30   +1                         
005940,000057: ???????                        HOLDFLAG           CHECK=   OPTMODES   +1                         
005941,000058: ???????                        RRATE              CHECK=   RANGE      +2                         
005942,000059: ???????                        HPERX              CHECK=   HAPOX      +2                         
005943,000060: ???????                        TCSI               CHECK=   TCDH       +2                         
005944,000061: ???????                        IGC                CHECK=   OGC        +2                         
005945,000062: ???????                        MGC                CHECK=   IGC        +2                         
005946,000063: ???????                        YACTOFF            CHECK=   PACTOFF    +1                         
005947,000064: ???????                        DAPDATR2           CHECK=   DAPDATR1   +1                         
005948,000065: ???????                        CSMMASS            CHECK=   LEMMASS    +1                         
005949,000066: ???????                        AK1                CHECK=   AK         +1                         
005950,000067: ???????                        AK2                CHECK=   AK1        +1                         
005951,000068: ???????                        RCSFLAGS           CHECK=   AK2        +1                         
005952,000069: 

Page 136

005954,000071: ???????                        WBODY              CHECK=   OMEGAC                                
005955,000072: ???????                        ADOT               CHECK=   OGARATE                               
005956,000073: ???????                        ADOT1              CHECK=   ADOT       +2                         
005957,000074: ???????                        ADOT2              CHECK=   ADOT1      +2                         
005958,000075: ???????                        ERRORY             CHECK=   ERRORX     +1                         
005959,000076: ???????                        ERRORZ             CHECK=   ERRORY     +1                         
005960,000077: ???????                        THETADX            CHECK=   ERRORZ     +1                         
005961,000078: ???????                        THETADY            CHECK=   THETADX    +1                         
005962,000079: ???????                        THETADZ            CHECK=   THETADY    +1                         
005963,000080: ???????                        YCMD               CHECK=   PCMD       +1                         
005964,000081: ???????                        BETA/180           CHECK=   ALFA/180   +1                         
005965,000082: ???????                        PREL               CHECK=   CMDAPMOD   +1                         
005966,000083: ???????                        QREL               CHECK=   PREL       +1                         
005967,000084: ???????                        RREL               CHECK=   QREL       +1                         
005968,000085: ???????                        ROLLTM             CHECK=   PAXERR1    +1                         
005969,000086: ???????                        ROLLC              CHECK=   ROLLTM     +1                         
005970,000087: ???????                        LNG(SPL)           CHECK=   LAT(SPL)   +2                         
005971,000088: ???????                        RM                 CHECK=   MARKDOWN   +7                         
005972,000089: ???????                        RDOT               CHECK=   LATANG     +2                         
005973,000090: ???????                        THETAH             CHECK=   RDOT       +2                         
005974,000091: ???????                        GAMMAEI            CHECK=   VPRED      +2                         
005975,000092: ???????                        STATE              CHECK=   FLAGWRD0                              
005976,000093: ???????                        CMTMTIME           CHECK=   UPBUFF                                
005977,000094: ???????                        SW/NDX             CHECK=   UPBUFF     +1                         
005978,000095: ???????                        ENDBUF             CHECK=   UPBUFF     +16D                       
005979,000096: ???????                        V1                 CHECK=   UPBUFF     +17D                       
005980,000097: ???????                        A0                 CHECK=   UPBUFF     +19D                       
005981,000098: ???????                        DNLSTADR           CHECK=   DNLSTCOD                              
005982,000099: ???????                        CTLIST             CHECK=   DNLSTCOD   +1                         
005983,000100: ???????                        TEMPFLSH           CHECK=   CADRFLSH   +2                         
005984,000101: ???????                        LANDLAT            CHECK=   LAT                                   
005985,000102: ???????                        TLIFTOFF           CHECK=   TEVENT                                
005986,000103: ???????                        CPHI               CHECK=   THETAD                                
005987,000104: ???????                        RDOTREF            CHECK=   THETAD                                
005988,000105: ???????                        CTHETA             CHECK=   THETAD     +1                         
005989,000106: ???????                        CPSI               CHECK=   THETAD     +2                         
005990,000107: ???????                        VREF               CHECK=   THETAD     +2                         
005991,000108: ???????                        DELVX              CHECK=   DELV                                  
005992,000109: ???????                        DELVY              CHECK=   DELV       +2                         
005993,000110: ???????                        DELVZ              CHECK=   DELV       +4                         
005994,000111: ???????                        TETLEM             CHECK=   T-OTHER                               
005995,000112: ???????                        TETOTHER           CHECK=   T-OTHER                               
005996,000113: ???????                        RRATE2             CHECK=   RTHETA                                
005997,000114: ???????                        PAXERR             CHECK=   AK                                    
005998,000115: ???????                        OMEGAXC            CHECK=   OMEGAC                                
005999,000116: ???????                        TVCRCS             CHECK=   OMEGAC                                
006000,000117: ???????                        ASPS(TM)           CHECK=   WBODY                                 
006001,000118: ???????                        OMEGAYC            CHECK=   OMEGAC     +2                         
006002,000119: ???????                        WBODY1             CHECK=   WBODY      +2                         
006003,000120: ???????                        WBODY2             CHECK=   WBODY1     +2                         
006004,000121: 

Page 137

006006,000123: ???????                        OMEGAZC            CHECK=   OMEGAC     +4                         
006007,000124: ???????                        OGARATE            CHECK=   OMEGAB                                
006008,000125: ???????                        OMEGAXB            CHECK=   OMEGAB                                
006009,000126: ???????                        XPIPBUF            CHECK=   ADOT                                  
006010,000127: ???????                        YPIPBUF            CHECK=   XPIPBUF    +1                         
006011,000128: ???????                        ZPIPBUF            CHECK=   YPIPBUF    +1                         
006012,000129: ???????                        XOLDBUF            CHECK=   ZPIPBUF    +1                         
006013,000130: ???????                        YOLDBUF            CHECK=   XOLDBUF    +1                         
006014,000131: ???????                        ZOLDBUF            CHECK=   YOLDBUF    +1                         
006015,000132: ???????                        OMEGAYB            CHECK=   OMEGAB     +2                         
006016,000133: ???????                        OMEGAZB            CHECK=   OMEGAB     +4                         
006017,000134: ???????                        VDT/180            CHECK=   ERRORX                                
006018,000135: ???????                        -VT/180E           CHECK=   ERRORY                                
006019,000136: ???????                        QAXERR             CHECK=   THETADX                               
006020,000137: ???????                        RAXERR             CHECK=   THETADY                               
006021,000138: ???????                        Q7                 CHECK=   THETADZ                               
006022,000139: ???????                        DELVLVC            CHECK=   DELVSLV                               
006023,000140: ???????                        SPRTETIG           CHECK=   TIG                                   
006024,000141: ???????                        DELVSIN            CHECK=   DELVEET3                              
006025,000142: ???????                        VGTEMP             CHECK=   DELVEET3                              
006026,000143: ???????                        VGPREV             CHECK=   VGTIG                                 
006027,000144: ???????                        LEWD               CHECK=   VIO                                   
006028,000145: ???????                        L/DCALC            CHECK=   TTE                                   
006029,000146: ???????                        VL                 CHECK=   VPRED                                 
006030,000147: ???????                        GAMMAL             CHECK=   GAMMAEI                               
006031,000148: ???????                        PREDANG            CHECK=   GAMMAEI                               
006032,000149: ???????                        JJ                 CHECK=   GAMMAEI    +1                         
006033,000150: ???????                        VTEMP              CHECK=   MARKTIME   +2                         
006034,000151: ???????                        VMAGI              CHECK=   VGTIG      +2                         
006035,000152: ???????                        VGTLI              CHECK=   VMAGI      +2                         
006036,000153: 

Page 138

006038,000155: ???????                        ASKEP              CHECK=   ASPS                                  
006039,000156: ???????                        ASP1               CHECK=   ASPS       +1                         
006040,000157: ???????                        ASPUP              CHECK=   ASPS       +2                         
006041,000158: ???????                        ASPDWN             CHECK=   ASPS       +3                         
006042,000159: ???????                        ASP3               CHECK=   ASPS       +4                         
006043,000160: ???????                        DUMMYAD            CHECK=   ROO        +3                         

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