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.

047086,000002:                                                                                                  ## Copyright:   Public domain.
047087,000003:                                                                                                  ## Filename:    FIXED-FIXED_CONSTANT_POOL.agc
047088,000004:                                                                                                  ## Purpose:     A section of Luminary revision 210.
047089,000005:                                                                                                  ##              It is part of the source code for the Lunar Module's (LM)
047090,000006:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 15-17.
047091,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
047092,000008:                                                                                                  ##              that the code format has been changed to conform to the
047093,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the
047094,000010:                                                                                                  ##              original YUL assembler.
047095,000011:                                                                                                  ## Reference:   pp. 1093-1097
047096,000012:                                                                                                  ## Assembler:   yaYUL
047097,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
047098,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
047099,000015:                                                                                                  ## Mod history: 2016-11-17 JL   Created from Luminary131 version.
047100,000016:                                                                                                  ##              2016-12-05 RRB  Updated from Luminary210.
047101,000017:                                                                                                  ##              2016-12-26 RSB  Comment-text proofed using ProoferComments
047102,000018:                                                                                                  ##                              and corrected errors found.
047103,000019: 

Page 1093

047105,000021:    4723                                           BLOCK    02                                    
047106,000022:    4723                                           COUNT*   $$/FCONS                              
047107,000023: 
047108,000024:                                                                                                  #  THE FOLLOWING TABLE OF 18 VALUES IS INDEXED.  DO NOT INSERT OR REMOVE ANY QUANTITIES.
047109,000025: 
047110,000026:    4723           37777        DPOSMAX            OCT      37777                                 #  MUST PRECEDE POSMAX
047111,000027:    4724           37777        POSMAX             OCT      37777                                 
047112,000028: 
047113,000029:    4725     4725               LIMITS             =        NEG1/2                                
047114,000030: 
047115,000031:    4725           57777        NEG1/2             OCT      -20000                                #  USED BY SIN ROUTINE (MUST BE TWO 
047116,000032:                                                                                                  #  LOCATIONS IN FRONT OF BIT14)
047117,000033: 
047118,000034:                                                                                                  #  BIT TABLE                                     
047119,000035: 
047120,000036:    4726           40000        BIT15              OCT      40000                                 
047121,000037:    4727           20000        BIT14              OCT      20000                                 
047122,000038:    4730           10000        BIT13              OCT      10000                                 
047123,000039:    4731           04000        BIT12              OCT      04000                                 
047124,000040:    4732           02000        BIT11              OCT      02000                                 
047125,000041:    4733           01000        BIT10              OCT      01000                                 
047126,000042:    4734           00400        BIT9               OCT      00400                                 
047127,000043:    4735           00200        BIT8               OCT      00200                                 
047128,000044:    4736           00100        BIT7               OCT      00100                                 
047129,000045:    4737           00040        BIT6               OCT      00040                                 
047130,000046:    4740           00020        BIT5               OCT      00020                                 
047131,000047:    4741           00010        BIT4               OCT      00010                                 
047132,000048:    4742           00004        BIT3               OCT      00004                                 
047133,000049:    4743           00002        BIT2               OCT      00002                                 
047134,000050:    4744           00001        BIT1               OCT      00001                                 
047135,000051: 
047136,000052:                                                                                                  #  DO NOT DESTROY THIS COMBINATION, SINCE IT IS USED IN DOUBLE PRECISION INSTRUCTIONS.
047137,000053:    4745           77777        NEG0               OCT      -0                                    #  MUST PRECEDE ZERO
047138,000054:    4746           00000        ZERO               OCT      0                                     #  MUST FOLLOW NEG0
047139,000055:                                                                                                  #  BIT1          OCT     00001
047140,000056:                                                                                                  #  NO.WDS        OCT     2               INTERPRETER
047141,000057:                                                                                                  #  OCTAL3        OCT     3               INTERPRETER
047142,000058:                                                                                                  #  R3D1          OCT     4               PINBALL
047143,000059:    4747           00005        FIVE               OCT      5                                     
047144,000060:                                                                                                  #  REVCNT        OCT     6               INTERPRETER
047145,000061:    4750           00007        SEVEN              OCT      7                                     
047146,000062:                                                                                                  #  BIT4          OCT     00010
047147,000063:                                                                                                  #  R2D1          OCT     11              PINBALL
047148,000064:    4751     4311               OCT11              =        R2D1                                  #  P20S
047149,000065:                                                                                                  #  BINCON        DEC     10              PINBALL         (OCTAL 12)
047150,000066:    4751           00013        ELEVEN             DEC      11         B-14                       
047151,000067:                                                                                                  #  OCT14         OCT     14              ALARM AND ABORT (FILLER)
047152,000068:    4752           00015        OCT15              OCT      15                                    
047153,000069:                                                                                                  #  R1D1          OCT     16              PINBALL
047154,000070:    4753           00017        LOW4               OCT      17                                    

Page 1094

047156,000072:                                                                                                  #  BIT5          OCT     00020
047157,000073:                                                                                                  #  ND1           OCT     21              PINBALL
047158,000074:                                                                                                  #  VD1           OCT     23              PINBALL
047159,000075:                                                                                                  #  OCT24         OCT     24              SERVICE ROUTINES
047160,000076:                                                                                                  #  MD1           OCT     25              PINBALL
047161,000077:    4754           00030        BITS4&5            OCT      30                                    
047162,000078:                                                                                                  #  OCT31         OCT     31              SERVICE ROUTINES
047163,000079:    4755           00033        OCT33              OCT      33                                    
047164,000080:    4756     4755               DEC27              =        OCT33                                 
047165,000081:    4756           00035        OCT35              OCT      35                                    
047166,000082:    4757     4756               DEC29              =        OCT35                                 
047167,000083:    4757           00032        CALLCODE           OCT      00032                                 
047168,000084:                                                                                                  #  LOW5          OCT     37              PINBALL
047169,000085:                                                                                                  #  33DEC         DEC     33              PINBALL         (OCTAL 41)
047170,000086:                                                                                                  #  34DEC         DEC     34              PINBALL         (OCTAL 42)
047171,000087:    4760           00045        TBUILDFX           DEC      37         B-14                       #  BUILDUP FOR CONVIENCE IN DAPTESTING
047172,000088:    4761           00046        TDECAYFX           DEC      38         B-14                       #  CONVENIENCE FOR DAPTESTING
047173,000089:                                                                                                  #  BIT6          OCT     00040
047174,000090:    4762           00050        OCT50              OCT      50                                    
047175,000091:    4763           00055        DEC45              DEC      45         B-14                       
047176,000092:    4764           00060        SUPER011           OCT      60                                    #  BITS FOR SUPERBNK SETTING 011.
047177,000093:    4765           00062        .5SEC              DEC      50         B-14                       
047178,000094:                                                                                                  #  BIT7          OCT     00100
047179,000095: 
047180,000096:    4766     4736               SUPER100           =        BIT7                                  #  BITS FOR SUPERBNK SETTING 100
047181,000097:                                                                                                  #  (LAST 4K OF ROPE)
047182,000098:    4766           00120        SUPER101           OCT      120                                   #  BITS FOR SUPERBNK SETTING 101
047183,000099:                                                                                                  #  OCT121        OCT     121             SERVICE ROUTINES
047184,000100:                                                                                                  #  (FIRST 8K OF ACM)
047185,000101:    4767           00140        SUPER110           OCT      140                                   #  BITS FOR SUPERBNK SETTING 110.
047186,000102:                                                                                                  #  (LAST 8K OF ACM)
047187,000103:    4770           00144        1SEC               DEC      100        B-14                       
047188,000104:                                                                                                  #  LOW7          OCT     177             INTERPRETER
047189,000105:                                                                                                  #  BIT8          OCT     00200
047190,000106:                                                                                                  #  OT215         OCT     215             ALARM AND ABORT
047191,000107:                                                                                                  #  8,5           OCT     00220           P20-P25 SUNDANCE
047192,000108:    4771           00310        2SECS              DEC      200        B-14                       
047193,000109:                                                                                                  #  LOW8          OCT     377             PINBALL
047194,000110:                                                                                                  #  BIT9          OCT     00400
047195,000111:    4772           00401        GN/CCODE           OCT      00401                                 #  SET S/C CONTROL SWITCH TO G/N
047196,000112:    4773           00454        3SECS              DEC      300        B-14                       
047197,000113:    4774           00620        4SECS              DEC      400        B-14                       
047198,000114:    4775           00777        LOW9               OCT      777                                   
047199,000115:                                                                                                  #  BIT10         OCT     01000
047200,000116:                                                                                                  #  5.5DEGS       DEC     .03056          P20-P25 SUNDANCE        (OCTAL 00765)
047201,000117:                                                                                                  #  OCT1103       OCT     1103            ALARM AND ABORT
047202,000118:    4776           01124        C5/2               DEC      .0363551                              #                        (OCTAL 01124)
047203,000119:    4777           01211        V05N09             VN       0509                                  #  (SAME AS OCTAL 1211)
047204,000120:    5000           01400        OCT1400            OCT      01400                                 
047205,000121:    5001           01426        V06N22             VN       0622                                  

Page 1095

047207,000123:                                                                                                  #  MID5          OCT     1740            PINBALL
047208,000124:    5002           01776        BITS2-10           OCT      1776                                  
047209,000125:    5003           01777        LOW10              OCT      1777                                  
047210,000126:                                                                                                  #  BIT11         OCT     02000
047211,000127:                                                                                                  #  2K+3          OCT     2003            PINBALL
047212,000128:    5004           02177        LOW7+2K            OCT      2177                                  #  OP CODE MASK + BANK 1 FBANK SETTING.
047213,000129:    5005           02400        EBANK5             OCT      02400                                 
047214,000130:    5006           03000        PRIO3              OCT      03000                                 
047215,000131:    5007           03400        EBANK7             OCT      03400                                 
047216,000132:                                                                                                  #  LOW11         OCT     3777            PINBALL
047217,000133:                                                                                                  #  BIT12         OCT     04000
047218,000134:                                                                                                  #  RELTAB        OCT     04025           T4RUPT
047219,000135:    5010           05000        PRIO5              OCT      05000                                 
047220,000136:    5011           06000        PRIO6              OCT      06000                                 
047221,000137:    5012           07000        PRIO7              OCT      07000                                 
047222,000138: 
047223,000139:                                                                                                  #  BIT13         OCT     10000
047224,000140:                                                                                                  #                OCT     10003           T4RUPT  RELTAB +1D
047225,000141:                                                                                                  #  13,7,2        OCT     10102           P20-P25 SUNDANCE
047226,000142:    5013           11000        PRIO11             OCT      11000                                 
047227,000143:                                                                                                  #  PRIO12        OCT     12000           BANKCALL
047228,000144:    5014           13000        PRIO13             OCT      13000                                 
047229,000145:    5015           14000        PRIO14             OCT      14000                                 
047230,000146:                                                                                                  #                OCT     14031           T4RUPT  RELTAB +2D
047231,000147:    5016           15000        PRIO15             OCT      15000                                 
047232,000148:    5017           16000        PRIO16             OCT      16000                                 
047233,000149:                                                                                                  #  85DEGS        DEC     .45556          P20-P25 SUNDANCE        (OCTAL 16450)
047234,000150:    5020           17000        PRIO17             OCT      17000                                 
047235,000151:    5021           17770        OCT17770           OCT      17770                                 
047236,000152:                                                                                                  #  BIT14         OCT     20000
047237,000153:                                                                                                  #                OCT     20033           T4RUPT  RELTAB +3D
047238,000154:    5022           21000        PRIO21             OCT      21000                                 
047239,000155:    7731                                           BLOCK    03                                    
047240,000156:    7731                                           COUNT*   $$/FCONS                              
047241,000157:    7731           22000        PRIO22             OCT      22000                                 #  SERVICE ROUTINES
047242,000158:    7732           23000        PRIO23             OCT      23000                                 
047243,000159:    7733           24000        PRIO24             OCT      24000                                 
047244,000160:                                                                                                  #  5/8+1         OCT     24001           SINGLE PRECISION SUBROUTINES
047245,000161:                                                                                                  #                OCT     24017           T4RUPT  RELTAB +4D
047246,000162:    7734           25000        PRIO25             OCT      25000                                 
047247,000163:    7735           26000        PRIO26             OCT      26000                                 
047248,000164:    7736           27000        PRIO27             OCT      27000                                 
047249,000165:                                                                                                  #  CHRPRIO       OCT     30000           PINBALL
047250,000166:                                                                                                  #                OCT     30036           T4RUPT  RELTAB +5D
047251,000167:    7737           31000        PRIO31             OCT      31000                                 
047252,000168:    7740           31103        C1/2               DEC      .7853134                              #                        (OCTAL 31103)
047253,000169:    7741           32000        PRIO32             OCT      32000                                 
047254,000170:    7742           33000        PRIO33             OCT      33000                                 
047255,000171:    7743           34000        PRIO34             OCT      34000                                 
047256,000172:                                                                                                  #                OCT     34034           T4RUPT  RELTAB +6D              

Page 1096

047258,000174:    7744           35000        PRIO35             OCT      35000                                 
047259,000175:    7745           36000        PRIO36             OCT      36000                                 
047260,000176:    7746           37000        PRIO37             OCT      37000                                 
047261,000177:    7747           37401        63/64+1            OCT      37401                                 
047262,000178:                                                                                                  #  MID7          OCT     37600           PINBALL
047263,000179:    7750           37766        OCT37766           OCT      37766                                 
047264,000180:    7751           37774        OCT37774           OCT      37774                                 
047265,000181:    7752           37776        OCT37776           OCT      37776                                 
047266,000182:                                                                                                  #  DPOSMAX       OCT     37777
047267,000183:                                                                                                  #  BIT15         OCT     40000
047268,000184:                                                                                                  #  OCT40001      OCT     40001           INTERPRETER (CS 1 INSTRUCTION)
047269,000185:    7753           40014        DLOADCOD           OCT      40014                                 
047270,000186:    7754           40015        DLOAD*             OCT      40015                                 
047271,000187:                                                                                                  #                OCT     40023           T4RUPT  RELTAB +7D
047272,000188:    7755           40040        BIT15+6            OCT      40040                                 
047273,000189:    7756           40200        OCT40200           OCT      40200                                 
047274,000190:                                                                                                  #                OCT     44035           T4RUPT  RELTAB +8D
047275,000191:                                                                                                  #                OCT     50037           T4RUPT   RELTAB +9D
047276,000192:                                                                                                  #                OCT     54000           T4RUPT   RELTAB +10D
047277,000193:    7757           57777        -BIT14             OCT      57777                                 
047278,000194:                                                                                                  #  RELTAB11      OCT     60000           T4RUPT
047279,000195:    7760           65552        C3/2               DEC      -.3216147                             #                        (OCTAL 65552)
047280,000196:    7761           70000        13,14,15           OCT      70000                                 
047281,000197:    7762           73777        -1/8               OCT      73777                                 
047282,000198:    7763           74000        HIGH4              OCT      74000                                 
047283,000199:    7764           74056        -ENDERAS           DEC      -2001      B-14                       #                        (OCTAL 74056)
047284,000200:                                                                                                  #  HI5           OCT     76000           PINBALL
047285,000201:    7765           77700        HIGH9              OCT      77700                                 
047286,000202:                                                                                                  #  -ENDVAC       DEC     -45             INTERPRETER             (OCTAL 77722)
047287,000203:                                                                                                  #  -OCT10        OCT     -10                                     (OCT 77767)
047288,000204:                                                                                                  #  NEG4          DEC     -4                                      (OCTAL 77773)
047289,000205:    7766           77774        NEG3               DEC      -3         B-14                       ## In octal to left, "77774 0" is circled - RRB
047290,000206:    7767           77775        NEG2               OCT      77775                                 
047291,000207:    7770           77776        NEGONE             DEC      -1         B-14                       
047292,000208: 

Page 1097

047294,000210: 
047295,000211:                                                                                                  #  DEFINED BY EQUALS
047296,000212: 
047297,000213:                                                                                                  #  IT WOULD BE TO THE USERS ADVANTAGE TO OCCASIONALLY CHECK ANY OF THESE SYMBOLS IN ORDER TO PREVENT ANY
047298,000214:                                                                                                  #  ACCIDENTAL DEFINITION CHANGES.
047299,000215: 
047300,000216:    7771     7770               MINUS1             =        NEG1                                  
047301,000217:    7771     7770               NEG1               =        NEGONE                                
047302,000218:    7771     4744               ONE                =        BIT1                                  
047303,000219:    7771     4743               TWO                =        BIT2                                  
047304,000220:    7771     6266               THREE              =        OCTAL3                                
047305,000221:    7771     6266               LOW2               =        THREE                                 
047306,000222:    7771     4742               FOUR               =        BIT3                                  
047307,000223:    7771     6263               SIX                =        REVCNT                                
047308,000224:    7771     4750               LOW3               =        SEVEN                                 
047309,000225:    7771     4741               EIGHT              =        BIT4                                  
047310,000226:    7771     4311               NINE               =        R2D1                                  
047311,000227:    7771     4354               TEN                =        BINCON                                
047312,000228:    7771     4751               NOUTCON            =        ELEVEN                                
047313,000229:    7771     4351               OCT23              =        VD1                                   
047314,000230:    7771     4353               OCT25              =        MD1                                   
047315,000231:    7771     4733               PRIO1              =        BIT10                                 
047316,000232:    7771     5000               EBANK3             =        OCT1400                               
047317,000233:    7771     4732               PRIO2              =        BIT11                                 
047318,000234:    7771     4766               OCT120             =        SUPER101                              
047319,000235:    7771     4767               OCT140             =        SUPER110                              
047320,000236:    7771     4732               2K                 =        BIT11                                 
047321,000237:    7771     4732               EBANK4             =        BIT11                                 
047322,000238:    7771     4731               PRIO4              =        BIT12                                 
047323,000239:    7771     5006               EBANK6             =        PRIO3                                 
047324,000240:    7771     4730               QUARTER            =        BIT13                                 
047325,000241:    7771     4730               PRIO10             =        BIT13                                 
047326,000242:    7771     7704               OCT10001           =        CCSL                                  
047327,000243:    7771     4727               POS1/2             =        HALF                                  
047328,000244:    7771     4727               PRIO20             =        BIT14                                 
047329,000245:    7771     4727               HALF               =        BIT14                                 
047330,000246:    7771     4346               PRIO30             =        CHRPRIO                               
047331,000247:    7771     4346               BIT13-14           =        PRIO30                                #  INTERPRETER USES IN PROCESSING STORECODE
047332,000248:    7771     6512               OCT30002           =        TLOAD      +1                         
047333,000249:    7771     7743               B12T14             =        PRIO34                                
047334,000250:    7771     4726               NEGMAX             =        BIT15                                 
047335,000251:    7771     4726               VLOADCOD           =        BIT15                                 
047336,000252:    7771     6130               VLOAD*             =        OCT40001                              
047337,000253:    7771     4101               OCT60000           =        RELTAB11                              
047338,000254:    7771     4341               BANKMASK           =        HI5                                   
047339,000255: 

End of include-file FIXED-FIXED_CONSTANT_POOL.agc.  Parent file is MAIN.agc