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.

047061,000002:                                                                                                  ## Copyright:   Public domain.
047062,000003:                                                                                                  ## Filename:    FIXED-FIXED_CONSTANT_POOL.agc
047063,000004:                                                                                                  ## Purpose:     A section of Luminary revision 210.
047064,000005:                                                                                                  ##              It is part of the source code for the Lunar Module's (LM)
047065,000006:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 15-17.
047066,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
047067,000008:                                                                                                  ##              that the code format has been changed to conform to the
047068,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the
047069,000010:                                                                                                  ##              original YUL assembler.
047070,000011:                                                                                                  ## Reference:   pp. 1093-1097
047071,000012:                                                                                                  ## Assembler:   yaYUL
047072,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
047073,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
047074,000015:                                                                                                  ## Mod history: 2016-11-17 JL   Created from Luminary131 version.
047075,000016:                                                                                                  ##              2016-12-05 RRB  Updated from Luminary210.
047076,000017:                                                                                                  ##              2016-12-26 RSB  Comment-text proofed using ProoferComments
047077,000018:                                                                                                  ##                              and corrected errors found.
047078,000019: 

Page 1093

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

Page 1094

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

Page 1095

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

Page 1096

047233,000174:    7744           35000        PRIO35             OCT      35000                                 
047234,000175:    7745           36000        PRIO36             OCT      36000                                 
047235,000176:    7746           37000        PRIO37             OCT      37000                                 
047236,000177:    7747           37401        63/64+1            OCT      37401                                 
047237,000178:                                                                                                  #  MID7          OCT     37600           PINBALL
047238,000179:    7750           37766        OCT37766           OCT      37766                                 
047239,000180:    7751           37774        OCT37774           OCT      37774                                 
047240,000181:    7752           37776        OCT37776           OCT      37776                                 
047241,000182:                                                                                                  #  DPOSMAX       OCT     37777
047242,000183:                                                                                                  #  BIT15         OCT     40000
047243,000184:                                                                                                  #  OCT40001      OCT     40001           INTERPRETER (CS 1 INSTRUCTION)
047244,000185:    7753           40014        DLOADCOD           OCT      40014                                 
047245,000186:    7754           40015        DLOAD*             OCT      40015                                 
047246,000187:                                                                                                  #                OCT     40023           T4RUPT  RELTAB +7D
047247,000188:    7755           40040        BIT15+6            OCT      40040                                 
047248,000189:    7756           40200        OCT40200           OCT      40200                                 
047249,000190:                                                                                                  #                OCT     44035           T4RUPT  RELTAB +8D
047250,000191:                                                                                                  #                OCT     50037           T4RUPT   RELTAB +9D
047251,000192:                                                                                                  #                OCT     54000           T4RUPT   RELTAB +10D
047252,000193:    7757           57777        -BIT14             OCT      57777                                 
047253,000194:                                                                                                  #  RELTAB11      OCT     60000           T4RUPT
047254,000195:    7760           65552        C3/2               DEC      -.3216147                             #                        (OCTAL 65552)
047255,000196:    7761           70000        13,14,15           OCT      70000                                 
047256,000197:    7762           73777        -1/8               OCT      73777                                 
047257,000198:    7763           74000        HIGH4              OCT      74000                                 
047258,000199:    7764           74056        -ENDERAS           DEC      -2001      B-14                       #                        (OCTAL 74056)
047259,000200:                                                                                                  #  HI5           OCT     76000           PINBALL
047260,000201:    7765           77700        HIGH9              OCT      77700                                 
047261,000202:                                                                                                  #  -ENDVAC       DEC     -45             INTERPRETER             (OCTAL 77722)
047262,000203:                                                                                                  #  -OCT10        OCT     -10                                     (OCT 77767)
047263,000204:                                                                                                  #  NEG4          DEC     -4                                      (OCTAL 77773)
047264,000205:    7766           77774        NEG3               DEC      -3         B-14                       ## In octal to left, "77774 0" is circled - RRB
047265,000206:    7767           77775        NEG2               OCT      77775                                 
047266,000207:    7770           77776        NEGONE             DEC      -1         B-14                       
047267,000208: 

Page 1097

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

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