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.

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

Page 135

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

Page 136

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

Page 137

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

Page 138

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

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