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,1971Note 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