Source Code

These source-code files derive from a printout of Luminary 210 (Apollo 15-17 Lunar Module guidance computer program), from the personal library of original AGC developer Don Eyles, digitally photographed at archive.org, financially sponsored by Jim Lawton, and transcribed to source code by a team of volunteers. This colorized, syntax-highlighted form was created by assembling that transcribed source code. Note that the full page images are available on the Virtual AGC project page at archive.org, while reduced-size images are presented at the VirtualAGC project website. Report or fix any transcription errors at the Virtual AGC project code repository.

Notations on the program listing read, in part:

	GAP: ASSEMBLE REVISION 210 OF AGC PROGRAM LUMINARY 
	BY NASA 2021112-161 17:11 MAR. 19,1971
Note that the date is the date of the printout, not the date of the program revision.

006920,000002:                                                                                                  ## Copyright:   Public domain.
006921,000003:                                                                                                  ## Filename:    CHECK_EQUALS_LIST.agc
006922,000004:                                                                                                  ## Purpose:     A section of Luminary revision 210.
006923,000005:                                                                                                  ##              It is part of the source code for the Lunar Module's (LM)
006924,000006:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 15-17.
006925,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
006926,000008:                                                                                                  ##              that the code format has been changed to conform to the
006927,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the
006928,000010:                                                                                                  ##              original YUL assembler.
006929,000011:                                                                                                  ## Reference:   pp. 161-162
006930,000012:                                                                                                  ## Assembler:   yaYUL
006931,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
006932,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
006933,000015:                                                                                                  ## Mod history: 2016-11-17 JL   Created from Artemis072 version.
006934,000016:                                                                                                  ##              2016-11-20 HG   Transcribed
006935,000017:                                                                                                  ##              2016-12-23 RSB  Proofed comment text with octopus/ProoferComments
006936,000018:                                                                                                  ##                              and fixed all errors found.
006937,000019: 

Page 161

006939,000021:                                                                                                  #  THIS LIST IS MAINTAINED TO ENSURE THAT CERTAIN ERASABLE LOCATIONS
006940,000022:                                                                                                  #  ARE LOCATED AT A SPECIFIED DISTANCE FROM ANOTHER ERASABLE LOCATION
006941,000023:                                                                                                  #  AS REQUIRED BY THE STRUCTURE OF THE DOWNLINK LISTS:
006942,000024:                                                                                                  #        1. IF A LOCATION IS THE SECOND PART OF A DOWNLINK WORD, IT MUST
006943,000025:                                                                                                  #           BE CONTIGUOUS TO THE LOCATION THAT IS THE FIRST PART.
006944,000026:                                                                                                  #        2. IF A LOCATION IS NOT THE FIRST WORD OF AN NDNADR IT
006945,000027:                                                                                                  #           MUST BE AT A SPECIFIC NUMBER OF LOCATIONS FROM THE FIRST
006946,000028:                                                                                                  #           LOCATION IN THE INSTRUCTION.
006947,000029:                                                                                                  #        3. OTHER NAMES MAY BE GIVEN TO LOCATIONS IN THE DOWNLIND LISTS
006948,000030:                                                                                                  #           THAT ARE NOT REFERENCED IN THE LISTS. THESE MUST NOT BE MOVED.
006949,000031:                                                                                                  #  THIS IS ACCOMPLISHED USING THE INSTRUCTION    CHECK=   .
006950,000032:                                                                                                  #  THIS INSTRUCTION GIVES A CUSS IN THE ASSEMBLY IF THE LOCATION OF THE
006951,000033:                                                                                                  #  FIRST TAG FIELD IS NOT EQUAL TO THE LOCATION OF THE SECOND TAG FIELD.
006952,000034:                                                                                                  #  THE INSTRUCTION HAS NO OTHER EFFECT ON THE ASSEMBLY OR CODE.
006953,000035: 
006954,000036:                                                                                                  #  THIS LIST SHOULD BE UPDATED FOR ANY CHANGES TO THE DOWNLINK LISTS.
006955,000037: 
006956,000038:                                                                                                  #  THIS LIST IS MAINTAINED BY  SUMNER ROSENBERG
006957,000039: 
006958,000040: 
006959,000041: E7,1745                        TIME1              CHECK=   TIME2      +1                         
006960,000042: ???????                        CDUY               CHECK=   CDUX       +1                         
006961,000043: ???????                        CDUZ               CHECK=   CDUY       +1                         
006962,000044: ???????                        CDUT               CHECK=   CDUZ       +1                         
006963,000045: ???????                        PIPAX              CHECK=   CDUS       +1                         
006964,000046: ???????                        PIPAY              CHECK=   PIPAX      +1                         
006965,000047: ???????                        PIPAZ              CHECK=   PIPAY      +1                         
006966,000048: ???????                        DAPBOOLS           CHECK=   RADMODES   +1                         
006967,000049: ???????                        LASTXCMD           CHECK=   LASTYCMD   +1                         
006968,000050: ???????                        THETAD             CHECK=   REDOCTR    +1                         
006969,000051: ???????                        FAILREG            CHECK=   CHANBKUP   +1                         
006970,000052: ???????                        UPOLDMOD           CHECK=   COMPNUMB   +1                         
006971,000053: ???????                        UPVERB             CHECK=   UPOLDMOD   +1                         
006972,000054: ???????                        UPCOUNT            CHECK=   UPVERB     +1                         
006973,000055: ???????                        UPBUFF             CHECK=   UPCOUNT    +1                         
006974,000056: ???????                        SPIRAL             CHECK=   CURSOR     +1                         
006975,000057: ???????                        IMODES33           CHECK=   IMODES30   +1                         
006976,000058: ???????                        CSMMASS            CHECK=   LEMMASS    +1                         
006977,000059: ???????                        DNRRDOT            CHECK=   DNRRANGE   +1                         
006978,000060: ???????                        DNLRVELY           CHECK=   DNLRVELX   +1                         
006979,000061: ???????                        DNLRVELZ           CHECK=   DNLRVELY   +1                         
006980,000062: ???????                        DNLRALT            CHECK=   DNLRVELZ   +1                         
006981,000063: ???????                        DUMLOOPS           CHECK=   SERVDURN   +1                         
006982,000064: ???????                        ZNBSAV             CHECK=   YNBSAV     +6                         
006983,000065: ???????                        IGC                CHECK=   OGC        +2                         
006984,000066: ???????                        MGC                CHECK=   IGC        +2                         
006985,000067: ???????                        BESTJ              CHECK=   BESTI      +1                         
006986,000068: ???????                        OMEGAQ             CHECK=   OMEGAP     +1                         
006987,000069: ???????                        OMEGAR             CHECK=   OMEGAQ     +1                         
006988,000070: ???????                        ALPHAR             CHECK=   ALPHAQ     +1                         
006989,000071: 

Page 162

006991,000073: ???????                        NEGTORKP           CHECK=   POSTORKP   +1                         
006992,000074: ???????                        NEGTORKU           CHECK=   POSTORKU   +1                         
006993,000075: ???????                        POSTORKV           CHECK=   NEGTORKU   +1                         
006994,000076: ???????                        NEGTORKV           CHECK=   POSTORKV   +1                         
006995,000077: ???????                        CDUYD              CHECK=   CDUXD      +1                         
006996,000078: ???????                        CDUZD              CHECK=   CDUYD      +1                         
006997,000079: ???????                        OMEGAQD            CHECK=   OMEGAPD    +1                         
006998,000080: ???????                        OMEGARD            CHECK=   OMEGAQD    +1                         
006999,000081: ???????                        AMG                CHECK=   AIG        +1                         
007000,000082: ???????                        TRKMKCNT           CHECK=   AOG        +1                         
007001,000083: ???????                        VSELECT            CHECK=   AOG        +1                         
007002,000084: ???????                        FORVMETR           CHECK=   LATVMETR   +1                         
007003,000085: ???????                        FLAGWRD0           CHECK=   STATE                                 
007004,000086: ???????                        FLGWRD12           CHECK=   RADMODES                              
007005,000087: ???????                        FLGWRD13           CHECK=   DAPBOOLS                              
007006,000088: ???????                        CPHI               CHECK=   THETAD                                
007007,000089: ???????                        CTHETA             CHECK=   THETAD     +1                         
007008,000090: ???????                        CPSI               CHECK=   THETAD     +2                         
007009,000091: ???????                        DELVX              CHECK=   DELV                                  
007010,000092: ???????                        DELVY              CHECK=   DELV       +2                         
007011,000093: ???????                        DELVZ              CHECK=   DELV       +4                         
007012,000094: ???????                        CTLIST             CHECK=   DNLSTCOD   +1                         
007013,000095: ???????                        CADRMARK           CHECK=   CADRFLSH   +1                         
007014,000096: ???????                        TEMPFLSH           CHECK=   CADRFLSH   +2                         
007015,000097: ???????                        STARCODE           CHECK=   AOTCODE                               
007016,000098: ???????                        TETCSM             CHECK=   T-OTHER                               
007017,000099: ???????                        TETOTHER           CHECK=   T-OTHER                               
007018,000100: ???????                        R(CSM)             CHECK=   R-OTHER                               
007019,000101: ???????                        V(CSM)             CHECK=   V-OTHER                               
007020,000102: ???????                        DOWNTORK           CHECK=   POSTORKP                              
007021,000103: ???????                        DCDU               CHECK=   CDUXD                                 
007022,000104: ???????                        DELVLVC            CHECK=   DELVSLV                               
007023,000105: ???????                        MARKCTR            CHECK=   TRKMKCNT                              
007024,000106: ???????                        VGPREV             CHECK=   VGTIG                                 
007025,000107: ???????                        CH6MASK            CHECK=   CH5MASK    +1                         

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