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. |
010866,000002: ## Copyright: Public domain.
010867,000003: ## Filename: RESTART_TABLES.agc
010868,000004: ## Purpose: A section of Luminary revision 210.
010869,000005: ## It is part of the source code for the Lunar Module's (LM)
010870,000006: ## Apollo Guidance Computer (AGC) for Apollo 15-17.
010871,000007: ## This file is intended to be a faithful transcription, except
010872,000008: ## that the code format has been changed to conform to the
010873,000009: ## requirements of the yaYUL assembler rather than the
010874,000010: ## original YUL assembler.
010875,000011: ## Reference: pp. 249-254
010876,000012: ## Assembler: yaYUL
010877,000013: ## Contact: Ron Burkey <info@sandroid.org>.
010878,000014: ## Website: www.ibiblio.org/apollo/index.html
010879,000015: ## Mod history: 2016-11-17 JL Created from Luminary131 version.
010880,000016: ## 2016-11-18 MAS Transcribed.
010881,000017: ## 2016-12-07 HG Fix P00 -> POO
010882,000018: ## 2016-12-23 RSB Proofed comment text with octopus/ProoferComments
010883,000019: ## but no errors found.
010884,000020:
Page 249 |
010886,000022: # RESTART TABLES
010887,000023:
010888,000024: # ------------------
010889,000025:
010890,000026: # THERE ARE TWO FORMS OF RESTART TABLES FOR EACH GROUP. THEY ARE KNOWN AS THE EVEN RESTART TABLES AND THE ODD
010891,000027: # RESTART TABLES. THE ODD TABLES HAVE ONLY ONE ENTRY OF THREE LOCATIONS WHILE THE EVEN TABLES HAVE TWO ENTRIES
010892,000028: # EACH USING THREE LOCATIONS. THE INFORMATION AS TO WHETHER IT IS A JOB, WAITLIST, OR A LONGCALL IS GIVEN BY THE
010893,000029: # WAY THINGS ARE PUT INTO THE TABLES.
010894,000030: # A JOB HAS ITS PRIORITY STORED IN PRDTTAB OF THE CORRECT PHASE SPOT - A POSITIVE PRIORITY INDICATES A
010895,000031: # FINDVAC JOB, A NEGATIVE PRIORITY A NOVAC. THE 2CADR OF THE JOB IS STORED IN THE CADRTAB.
010896,000032: # FOR EXAMPLE,
010897,000033:
010898,000034: # 5.7SPOT OCT 23000
010899,000035: # 2CADR SOMEJOB
010900,000036:
010901,000037: # A RESTART OF GROUP 5 WITH PHASE SEVEN WOULD THEN CAUSE SOMEJOB TO BE RESTARTED AS A FINDVAC WITH PRIORITY 23.
010902,000038:
010903,000039: # 5.5SPOT OCT -23000
010904,000040: # 2CADR ANYJOB
010905,000041:
010906,000042: # HERE A RESTART OF GROUP 5 WITH PHASE 7 WOULD CAUSE ANYJOB TO BE RESTARTED AS A NOVAC WITH PRIORITY 23.
010907,000043: # A LONGCALL HAS ITS GENADR OF ITS 2CADR STORED NEGATIVELY AND ITS BBCON STORED POSITIVELY. IN ITS PRDTTAB IS
010908,000044: # PLACED THE LOCATION OF A DP REGISTER THAT CONTAINS THE DELTA TIME THAT LONGCALL HAD BEEN ORIGINALLY STARTED
010909,000045: # WITH. EXAMPLE,
010910,000046:
010911,000047: # 3.6SPOT GENADR DELTAT
010912,000048: # -GENADR LONGTASK
010913,000049: # BBCON LONGTASK
010914,000050:
010915,000051: # OCT 31000
010916,000052: # 2CADR JOBAGAIN
010917,000053:
010918,000054: # THIS WOULD START UP LONGTASK AT THE APPROPRIATE TIME, OR IMMEDIATELY IF THE TIME HAD ALREADY PASSED. IT SHOULD
010919,000055: # BE NOTED THAT IF DELTAT IS IN A SWITCHED E BANK, THIS INFORMATOIN SHOULD BE IN THE BBCON OFTHE 2CADR OF THE
010920,000056: # TASK. FROM ABOVE, WE SEE THAT THE SECOND PART OF THIS PHASE WOULD BE STARTED AS A JOB WITH A PRIORITY OF 31.
010921,000057:
010922,000058: # WAITLIST CALLS ARE IDENTIFIED BY THE FACT THAT THEIR 2CADR IS STORED NEGATIVELY. IF PRDTTAB OF THE PHASE SPOT
010923,000059: # IS POSITIVE, THEN IT CONTAINS THE DELTA TIME, IF PRDTTAB IS NEGATIVE THEN IT IS THE -GENADR OF AN ERASABLE
010924,000060: # LOCATION CONTAINING THE DELTA TIME, THAT IS, THE TIME IS STORED INDIRECTLY. IT SHOULD BE NOTED AS ABOVE, THAT
010925,000061: # IF THE TIME IS STORED INDIRECTLY, THE BBCON MUST CONTAIN THE NECESSARY E BANK INFORMATION IF APPLICABLE. WITH
010926,000062: # WAITLIST WE HAVE ONE FURTHER OPTION, IF -0 IS STORED IN PRDTTAB, IT WILL CAUSE AN IMMEDIATE RESTART OF THE
010927,000063: # TASK. EXAMPLES,
010928,000064:
010929,000065: # OCT 77777 THIS WILL CAUSE AN IMMEDIATE RESTART
010930,000066: # -2CADR ATASK OF THE TASK :ATASK:
010931,000067: #
010932,000068: # DEC 200 IF THE TIME OF THE 2 SECONDS SINCE DUMMY
010933,000069: # -2CADR DUMMY WAS PUT ON WAITLIST IS UP, IT WILL BEGIN
010934,000070: # IN 10 MS, OTHERWISE IT WILL BEGIN WHEN
010935,000071: # IT NORMALLY WOULD HAVE BEGUN.
Page 250 |
010937,000073: # -GENADR DTIME WHERE DTIME CONTAINS THE DELTA TIME
010938,000074: # -2CADR TASKTASK OTHERWISE THIS IS AS ABOVE
010939,000075:
010940,000076: # ***** NOW THE TABLES THEMSELVES *****
010941,000077:
010942,000078: 01,2002 BANK 01
010943,000079: 01,2000 SETLOC RESTART
010944,000080: 01,2000 BANK
010945,000081:
010946,000082: 01,2002 PRDTTAB EQUALS 12000 # USED TO FIND THE PRIORITY OR DELTATIME
010947,000083: 01,2002 CADRTAB EQUALS 12001 # THIS AND THE NEXT RELATIVE LOC CONTAIN
010948,000084: # RESTART 2CADR
010949,000085:
010950,000086: 01,2002 COUNT* $$/RSTAB # TABLES IN BANK 1.
010951,000087: 01,2002 00010 SIZETAB TC 1.2SPOT -12006
010952,000088: 01,2003 00020 TC 1.3SPOT -12004
010953,000089: 01,2004 00010 TC 2.2SPOT -12006
010954,000090: 01,2005 00026 TC 2.3SPOT -12004
010955,000091: 01,2006 00010 TC 3.2SPOT -12006
010956,000092: 01,2007 00056 TC 3.3SPOT -12004
010957,000093: 01,2010 00062 TC 4.2SPOT -12006
010958,000094: 01,2011 00072 TC 4.3SPOT -12004
010959,000095: 01,2012 00145 TC 5.2SPOT -12006
010960,000096: 01,2013 00163 TC 5.3SPOT -12004
010961,000097: 01,2014 00010 TC 6.2SPOT -12006
010962,000098: 01,2015 00174 TC 6.3SPOT -12004
010963,000099: 01,2016 21000 1.2SPOT OCT 21000 # A DUMMY EXAMPLE TO BE REPLACED AS SOON
010964,000100: 01,2017 0074 EBANK= STATE
010965,000101: 01,2017 05146 04060 2CADR ENDOFJOB # AS THERE IS A LEGITIMATE 1.2SPOT
010966,000102:
010967,000103: 01,2021 00144 DEC 100 B-14
010968,000104: 01,2022 0074 EBANK= STATE
010969,000105: 01,2022 05263 04060 2CADR TASKOVER
010970,000106:
010971,000107: # ANY MORE GROUP 1.EVEN RESTART VALUES SHOULD GO HERE
010972,000108:
010973,000109: 01,2024 76300 1.3SPOT -GENADR SAVET-30
010974,000110: 01,2025 E7,1515 EBANK= DVCNTR
010975,000111: 01,2025 75427 03710 -2CADR ULLGTASK
010976,000112:
010977,000113: 01,2027 32000 1.5SPOT OCT 32000
010978,000114: 01,2030 E7,1654 EBANK= HMEAS
010979,000115: 01,2030 03555 66067 2CADR REREPOS
010980,000116:
010981,000117: # ANY MORE GROUP 1.ODD RESTART VALUES SHOULD GO HERE
010982,000118:
010983,000119: 01,2032 01,2016 2.2SPOT EQUALS 1.2SPOT
010984,000120: # ANY MORE GROUP 2.EVEN RESTART VALUES SHOULD GO HERE
010985,000121:
010986,000122: 01,2032 02666 2.3SPOT GENADR 600SECS
Page 251 |
010988,000124: 01,2033 75136 -GENADR STATEINT
010989,000125: 01,2034 E3,1554 EBANK= RRECTCSM
010990,000126: 01,2034 26063 BBCON STATEINT
010991,000127:
010992,000128: 01,2035 05000 2.5SPOT OCT 05000
010993,000129: 01,2036 E3,1554 EBANK= RRECTCSM
010994,000130: 01,2036 02650 26063 2CADR STATINT1
010995,000131:
010996,000132: 01,2040 02734 2.7SPOT DEC 1500 B-14
010997,000133: 01,2041 E7,1456 EBANK= LOSCOUNT
010998,000134: 01,2041 75455 27710 -2CADR P20LEMC1
010999,000135:
011000,000136: 01,2043 14000 2.11SPOT OCT 14000
011001,000137: 01,2044 E7,1762 EBANK= P21TIME
011002,000138: 01,2044 02476 50067 2CADR P25LEM1
011003,000139:
011004,000140: 01,2046 10000 2.13SPOT OCT 10000
011005,000141: 01,2047 E7,1456 EBANK= LOSCOUNT
011006,000142: 01,2047 02231 54067 2CADR RELINUS
011007,000143:
011008,000144: 01,2051 26000 2.15SPOT OCT 26000
011009,000145: 01,2052 E7,1456 EBANK= LOSCOUNT
011010,000146: 01,2052 02735 50067 2CADR R22RSTRT
011011,000147:
011012,000148: 01,2054 77777 2.17SPOT OCT 77777
011013,000149: 01,2055 E7,1700 EBANK= VGPREV
011014,000150: 01,2055 75436 03710 -2CADR REDO2.17
011015,000151:
011016,000152: 01,2057 00031 2.21SPOT DEC 25 B-14
011017,000153: 01,2060 E7,1515 EBANK= DVCNTR
011018,000154: 01,2060 75735 35710 -2CADR R10,R11
011019,000155:
011020,000156: # ANY MORE GROUP 2.ODD RESTART VALUES SHOULD GO HERE.
011021,000157:
011022,000158: 01,2062 01,2016 3.2SPOT EQUALS 1.2SPOT
011023,000159: # ANY MORE GROUP 3.EVEN RESTART VALUES SHOULD GO HERE
011024,000160:
011025,000161: 01,2062 76355 3.3SPOT -GENADR ZOOMTIME
011026,000162: 01,2063 E7,1515 EBANK= DVCNTR
011027,000163: 01,2063 74107 05710 -2CADR ZOOM
011028,000164:
011029,000165: 01,2065 20000 3.5SPOT OCT 20000
011030,000166: 01,2066 E7,1453 EBANK= TTOGO
011031,000167: 01,2066 02536 56067 2CADR S40.13
011032,000168:
011033,000169: # ANY MORE GROUP 3.ODD RESTART VALUES SHOULD GO HERE
011034,000170:
011035,000171: 01,2070 04704 4.2SPOT DEC 2500 B-14
011036,000172: 01,2071 E7,1453 EBANK= TTOGO
Page 252 |
011038,000174: 01,2071 75423 03710 -2CADR TIG-5
011039,000175:
011040,000176: 01,2073 77777 OCT 77777
011041,000177: 01,2074 E7,1453 EBANK= TTOGO
011042,000178: 01,2074 75433 03710 -2CADR REDO4.2
011043,000179:
011044,000180: # ANY MORE GROUP 4.EVEN RESTART VALUES SHOULD GO HERE
011045,000181:
011046,000182: 01,2076 25000 4.3SPOT OCT 25000
011047,000183: 01,2077 E7,1515 EBANK= DVCNTR
011048,000184: 01,2077 03443 64067 2CADR GOABORT
011049,000185:
011050,000186: 01,2101 00062 4.5SPOT DEC 50 B-14
011051,000187: 01,2102 E7,1453 EBANK= TTOGO
011052,000188: 01,2102 75216 03710 -2CADR ULLAGOFF
011053,000189:
011054,000190: 01,2104 00764 4.7SPOT DEC 500 B-14
011055,000191: 01,2105 E7,1515 EBANK= DVCNTR
011056,000192: 01,2105 75370 03710 -2CADR TIG-0
011057,000193:
011058,000194: 01,2107 76260 4.11SPOT -GENADR TGO +1
011059,000195: 01,2110 E7,1515 EBANK= DVCNTR
011060,000196: 01,2110 74234 03710 -2CADR ENGOFTSK
011061,000197:
011062,000198: 01,2112 12000 4.13SPOT OCT 12000
011063,000199: 01,2113 E7,1462 EBANK= TRKMKCNT
011064,000200: 01,2113 03222 74067 2CADR POSTBURN
011065,000201:
011066,000202: 01,2115 00764 4.15SPOT DEC 500 B-14
011067,000203: 01,2116 E7,1453 EBANK= TTOGO
011068,000204: 01,2116 75477 03710 -2CADR TIG-30
011069,000205:
011070,000206: 01,2120 77777 4.17SPOT OCT 77777
011071,000207: 01,2121 E7,1515 EBANK= DVCNTR
011072,000208: 01,2121 75423 03710 -2CADR TIG-5
011073,000209:
011074,000210: 01,2123 13000 4.21SPOT OCT 13000
011075,000211: 01,2124 E5,1730 EBANK= STAR
011076,000212: 01,2124 03026 30065 2CADR R51.1 +1
011077,000213:
011078,000214: 01,2126 77777 4.23SPOT OCT 77777
011079,000215: 01,2127 E7,1515 EBANK= DVCNTR
011080,000216: 01,2127 75344 03710 -2CADR IGNITION
011081,000217:
011082,000218: 01,2131 01477 4.25SPOT GENADR SAVET-30
011083,000219: 01,2132 75535 -GENADR TIG-35
011084,000220: 01,2133 E7,1477 EBANK= SAVET-30
011085,000221: 01,2133 74067 BBCON TIG-35
011086,000222:
Page 253 |
011088,000224: 01,2134 52777 4.27SPOT OCT 52777
011089,000225: 01,2135 E7,1515 EBANK= DVCNTR
011090,000226: 01,2135 02133 42067 2CADR P70A
011091,000227:
011092,000228: 01,2137 52777 4.31SPOT OCT 52777
011093,000229: 01,2140 E7,1515 EBANK= DVCNTR
011094,000230: 01,2140 02136 42067 2CADR P71A
011095,000231:
011096,000232: 01,2142 46777 4.33SPOT OCT 46777
011097,000233: 01,2143 E7,1515 EBANK= DVCNTR
011098,000234: 01,2143 02040 10067 2CADR GOPOOFIX
011099,000235:
011100,000236: 01,2145 46777 4.35SPOT OCT 46777
011101,000237: 01,2146 E7,1515 EBANK= DVCNTR
011102,000238: 01,2146 05661 04067 2CADR GOPOODOO
011103,000239:
011104,000240: 01,2150 52777 4.37SPOT OCT 52777
011105,000241: 01,2151 E7,1455 EBANK= WHICH
011106,000242: 01,2151 02570 74067 2CADR COMFAIL
011107,000243:
011108,000244: # ANY MORE 4.ODD RESTART VALUES SHOULD GO HERE.
011109,000245:
011110,000246: 01,2153 22000 5.2SPOT OCT 22000
011111,000247: 01,2154 E7,1515 EBANK= DVCNTR
011112,000248: 01,2154 03661 64067 2CADR NORMLIZE
011113,000249:
011114,000250: 01,2156 00310 DEC 200 B-14
011115,000251: 01,2157 E7,1515 EBANK= DVCNTR
011116,000252: 01,2157 74164 01710 -2CADR REREADAC
011117,000253:
011118,000254: 01,2161 00310 5.4SPOT DEC 200 B-14
011119,000255: 01,2162 E7,1515 EBANK= DVCNTR
011120,000256: 01,2162 74164 01710 -2CADR REREADAC
011121,000257:
011122,000258: 01,2164 20000 OCT 20000
011123,000259: 01,2165 E7,1515 EBANK= DVCNTR
011124,000260: 01,2165 02121 66067 2CADR SERVICER
011125,000261:
011126,000262: # ANY MORE GROUP 5.EVEN RESTART VALUES SHOULD GO HERE
011127,000263:
011128,000264: 01,2167 00310 5.3SPOT DEC 200 B-14
011129,000265: 01,2170 E7,1515 EBANK= DVCNTR
011130,000266: 01,2170 74164 01710 -2CADR REREADAC
011131,000267:
011132,000268: 01,2172 77777 5.5SPOT OCT 77777
011133,000269: 01,2173 E7,1515 EBANK= DVCNTR
011134,000270: 01,2173 74335 01710 -2CADR REDO5.5
011135,000271:
Page 254 |
011137,000273: 01,2175 77777 5.7SPOT OCT 77777
011138,000274: 01,2176 E7,1515 EBANK= DVCNTR
011139,000275: 01,2176 74370 01710 -2CADR BIBIBIAS
011140,000276:
011141,000277: # ANY MORE GROUP 5.ODD RESTART VALUES SHOULD GO HERE
011142,000278:
011143,000279: 01,2200 01,2016 6.2SPOT EQUALS 1.2SPOT
011144,000280: 01,2200 00144 6.3SPOT DEC 100 B-14
011145,000281: 01,2201 E7,1441 EBANK= TIG
011146,000282: 01,2201 75061 03710 -2CADR CLOKTASK
011147,000283:
011148,000284: 01,2203 30000 6.5SPOT OCT 30000 # PROTECT INCREMENTING OF TIME2,TIME1 BY
011149,000285: 01,2204 E3,1706 EBANK= TEPHEM # P27(UPDATE PROGRAM) VIA V70 OR V73.
011150,000286: 01,2204 03603 10063 2CADR TIMEDIDR
011151,000287:
011152,000288: 01,2206 17000 6.7SPOT OCT 17000
011153,000289: 01,2207 E7,1700 EBANK= VGPREV
011154,000290: 01,2207 03355 74067 2CADR REDO6.7
011155,000291:
011156,000292: 01,2211 17000 6.11SPOT OCT 17000
011157,000293: 01,2212 E7,1700 EBANK= VGPREV
011158,000294: 01,2212 03364 74067 2CADR FKP5RST
011159,000295:
End of include-file RESTART_TABLES.agc. Parent file is MAIN.agc