Source Code
![]() |
These source-code files were transcribed from scans made from Don Eyles's personal
copy of BURST120 (SUNBURST 120). They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Mike Stewart. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are in ALL-CAPS, whereas
comments added later in transcription are in Mixed-Case. In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the BURST120 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:YUL SYSTEM FOR AGC: REVISION 0 OF PROGRAM BURST120 BY NASA 2021106-031 DEC 7, 1967 THIS LISTING IS A COPY OF A VERSION OF THE PROGRAM INTENDED FOR USE IN THE ON-BOARD PRIMARY GUIDANCE COMPUTER IN THE UNMANNED FLIGHT OF APOLLO LUNAR MODULE 1 --- THE AS206 MISSION.Note that the date is the date of the printout, not the date of the program revision. |
034231,000002: ## Copyright: Public domain.
034232,000003: ## Filename: AS206_MISSION_SCHEDULING_PACKAGE.agc
034233,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst). It
034234,000005: ## is part of the source code for the Lunar Module's
034235,000006: ## (LM) Apollo Guidance Computer (AGC) for Apollo 5.
034236,000007: ## Assembler: yaYUL
034237,000008: ## Contact: Ron Burkey <info@sandroid.org>.
034238,000009: ## Website: www.ibiblio.org/apollo/index.html
034239,000010: ## Mod history: 2016-09-30 RSB Created draft version.
034240,000011: ## 2016-10-29 MAS Transcribed.
034241,000012: ## 2016-12-06 RSB Comments proofed using octopus/ProoferComments,
034242,000013: ## changes made.
034243,000014:
![]() |
Page 801 |
034245,000016: # THE FOLLOWING ROUTINES IMPLEMENT THE MISSION SCHEDULING LOGIC AS DESCRIBED IN CHAPTER 4 OF THE
034246,000017: # AS206 OPERATIONS PLAN. THE FOLLOWING ROUTINE IS ENTERED ONCE EACH SECOND FOR MOST OF THE DURATION OF THE
034247,000018: # FLIGHT, ONCE LIFT-OFF HAS OCCURRED. AN EXCEPTION TO THIS IS THE TIME-CRI
034248,000019:
034249,000020: # RESTART GROUP FOR MISSION SCHEDULING PACKAGE IS GROUP 3.
034250,000021:
034251,000022: 31,2000 BANK 31
034252,000023: 31,2000 1164 EBANK= MTIMER4
034253,000024:
034254,000025: 31,2000 36311 MMAINT CAF THREE # LOOP TO PROCESS ALL FOUR TIMERS.
034255,000026: 31,2001 54070 MLOOP TS RUPTREG1
034256,000027:
034257,000028: 31,2002 50000 INDEX A # LOOK AT TIMER.
034258,000029: 31,2003 11164 CCS MTIMER4
034259,000030: 31,2004 12010 TCF MCOUNT # PNZ - ACTIVE AND COUNTING DOWN.
034260,000031: 31,2005 12055 TCF MDUE # +0 - MISSION PHASE DUE.
034261,000032: 31,2006 67763 AD ONE # NNZ - FREE BUT LOADED BY GROUND.
034262,000033: 31,2007 40000 COM # -0 - FREE.
034263,000034: 31,2010 50070 MCOUNT INDEX RUPTREG1 # PLACE UPDATED TIMERS AND PHASE REGISTERS
034264,000035: 31,2011 55174 TS MTIMER4T # INTO COPY BUFFER FOR RESTART PROTECTION.
034265,000036:
034266,000037: 31,2012 10070 MDUERET CCS RUPTREG1
034267,000038: 31,2013 12001 TCF MLOOP
034268,000039:
034269,000040: 31,2014 11201 MCHKST CCS STATECTR # SEE IF POSSIBLY TIME FOR INTERNAL STATE
034270,000041: 31,2015 12034 TCF MSTATEOK # VECTOR EXTRAPOLATION.
034271,000042:
034272,000043: 31,2016 36311 CAF THREE # IF SO, DO UPDATE UNLESS WE ARE WITHIN 16
034273,000044: 31,2017 54070 MSTATECK TS RUPTREG1 # SECONDS OF THE INITIATION OF ANY MISSION
034274,000045: 31,2020 45343 CS LOW4 # PHASE.
034275,000046: 31,2021 50070 INDEX RUPTREG1
034276,000047: 31,2022 71164 MASK MTIMER4
034277,000048: 31,2023 00006 EXTEND
034278,000049: 31,2024 12033 BZF MSTATEOK -1 # BRANCH IF PHASE DUE WITHIN 16 SECS.
034279,000050:
034280,000051: 31,2025 10070 CCS RUPTREG1
034281,000052: 31,2026 12017 TCF MSTATECK
034282,000053:
034283,000054: 31,2027 35633 CAF PRIO5
034284,000055: 31,2030 05516 TC FINDVAC # TO DO THE INTEGRATION.
034285,000056: 31,2031 E4,1566 EBANK= TDEC
034286,000057: 31,2031 02247 16064 2CADR STATEINT
034287,000058:
034288,000059: 31,2033 35204 -1 CAF STATECRI
034289,000060: 31,2034 55201 MSTATEOK TS STATECTR
034290,000061:
034291,000062: 31,2035 04161 TC PHASCHNG
034292,000063: 31,2036 00113 OCT 00113
034293,000064:
034294,000065: 31,2037 32054 REDO3.11 CAF 1SEC
![]() |
Page 802 |
034296,000067: 31,2040 05663 TC WAITLIST
034297,000068: 31,2041 1164 EBANK= MTIMER4
034298,000069: 31,2041 02000 62062 2CADR MMAINT
034299,000070:
034300,000071: 31,2043 00006 EXTEND
034301,000072: 31,2044 31175 DCA MTIMER4T
034302,000073: 31,2045 53165 DXCH MTIMER4
034303,000074: 31,2046 00006 EXTEND
034304,000075: 31,2047 31177 DCA MTIMER4T +2
034305,000076: 31,2050 53167 DXCH MTIMER2
034306,000077:
034307,000078: 31,2051 04161 TC PHASCHNG
034308,000079: 31,2052 40133 OCT 40133
034309,000080:
034310,000081: 31,2053 05727 TC TASKOVER
034311,000082:
034312,000083: 31,2054 00144 1SEC DEC 100 B-14
034313,000084:
![]() |
Page 803 |
034315,000086: # THE FOLLOWING CODING DISPATCHES DUE MISSION PHASES VIA A TABLE OF EXECUTIVE PRIORITIES AND 2CADRS.
034316,000087:
034317,000088: 31,2055 30070 MDUE CA RUPTREG1
034318,000089: 31,2056 55200 TS MDUETEMP # COPY FOR RESTART PROTECTION
034319,000090:
034320,000091: 31,2057 50070 INDEX RUPTREG1 # GET NUMBER OF NEW PHASE AND MP BY NUMBER
034321,000092: 31,2060 31170 CA MPHASE4 # OF TABLE ENTRIES PER PHASE TO GET ADDRES
034322,000093: 31,2061 00006 EXTEND # OF TABLE ENTRY FOR THIS PHASE.
034323,000094: 31,2062 12410 BZF BADPHASE # INACTIVE MPHASE HERE IS VERY BAD.
034324,000095: 31,2063 54764 TS PHASENUM # HOLDS CURRENT MP NUMBER FOR DOWNLINK
034325,000096: 31,2064 00006 EXTEND
034326,000097: 31,2065 76311 MP THREE
034327,000098: 31,2066 50001 INDEX L
034328,000099: 31,2067 32333 CA MTABLE # PRIO, INHIBIT/ENABLE INFO., ETC.
034329,000100: 31,2070 54071 TS RUPTREG2
034330,000101: 31,2071 77765 MASK SEVEN # HONOR INHIBIT/ENABLE FUNCTION.
034331,000102: 31,2072 70076 MASK FLAGWRD2
034332,000103: 31,2073 10000 CCS A
034333,000104: 31,2074 12117 TCF MBYPASS
034334,000105:
034335,000106: 31,2075 35660 CAF PRIO37
034336,000107: 31,2076 70071 MASK RUPTREG2
034337,000108: 31,2077 54063 TS NEWPRIO
034338,000109: 31,2100 00006 EXTEND
034339,000110: 31,2101 50001 INDEX L # PICK UP 2CADR AND DO FINDVAC.
034340,000111: 31,2102 32335 DCA MTABLE +1
034341,000112: 31,2103 05526 TC SPVAC
034342,000113:
034343,000114: 31,2104 04141 TC 2PHSCHNG
034344,000115: 31,2105 00032 OCT 32 # 2.3 SPOT FOR REDOMDUE
034345,000116: 31,2106 00003 OCT 3 # GROUP 3 OFF
034346,000117:
034347,000118: 31,2107 02121 MTIMEDWN TC MTIMEFIX
034348,000119:
034349,000120: 31,2110 35210 CAF PRIO30
034350,000121: 31,2111 05505 TC NOVAC
034351,000122: 31,2112 1164 EBANK= MTIMER4
034352,000123: 31,2112 02145 62062 2CADR UPDATKIL
034353,000124:
034354,000125: 31,2114 06076 TC FLAG2DWN
034355,000126: 31,2115 00020 OCT 20
034356,000127:
034357,000128: 31,2116 05727 TC TASKOVER
034358,000129:
034359,000130: 31,2117 02121 MBYPASS TC MTIMEFIX
034360,000131: 31,2120 12012 TCF MDUERET
034361,000132:
034362,000133: 31,2121 47767 MTIMEFIX CS ZERO
034363,000134: 31,2122 51200 INDEX MDUETEMP # MAKE THIS MTIMER/MPHASE PAIR AVAILABLE.
034364,000135: 31,2123 55164 TS MTIMER4
034365,000136:
![]() |
Page 804 |
034367,000138: 31,2124 51200 INDEX MDUETEMP
034368,000139: 31,2125 55170 TS MPHASE4
034369,000140: 31,2126 51200 INDEX MDUETEMP
034370,000141: 31,2127 55174 TS MTIMER4T
034371,000142: 31,2130 00002 TC Q
034372,000143:
![]() |
Page 805 |
034374,000145: # RESTART ROUTIN E TO RESCHEDULE MISSION PHASE
034375,000146:
034376,000147: 31,2131 30764 REDOMDUE CA PHASENUM # FIND PRIO AND 2CADR OF NEW MP IN TABLE.
034377,000148: 31,2132 00006 EXTEND
034378,000149: 31,2133 76311 MP THREE
034379,000150: 31,2134 50001 INDEX L
034380,000151: 31,2135 32333 CA MTABLE
034381,000152: 31,2136 75660 MASK PRIO37
034382,000153: 31,2137 54063 TS NEWPRIO
034383,000154: 31,2140 00006 EXTEND
034384,000155: 31,2141 50001 INDEX L
034385,000156: 31,2142 32335 DCA MTABLE +1
034386,000157: 31,2143 05526 TC SPVAC # DO FINDVAC WITH 2CADR IN A + L
034387,000158: 31,2144 12107 TCF MTIMEDWN
034388,000159:
034389,000160:
034390,000161:
034391,000162: # DO A PSEUDO VERB 34 ENTER TO KILL AN UPDATE IN PROGRESS, AND TO RELEASE THE DSKY.
034392,000163:
034393,000164: 31,2145 32373 UPDATKIL CAF 34OCT
034394,000165: 31,2146 54304 TS REQRET
034395,000166: 31,2147 05206 TC BANKCALL
034396,000167: 31,2150 12314 CADR UPDATVB -1
034397,000168:
034398,000169: 31,2151 05225 TC POSTJUMP
034399,000170: 31,2152 11333 CADR VBTERM # GOES TO ENDOFJOB WHEN DONE
034400,000171:
![]() |
Page 806 |
034402,000173: # THE FOLLOWING SUBROUTINE MAY BE USED BY MISSION PROGRAMS TO SET MISSION PHASE/TIMER PAIRS TO INITIATE
034403,000174: # THE VARIOUS MISSION PHASES (SEE CHAPTER 4 OF THE GSOP).
034404,000175:
034405,000176: # CALLING SEQUENCE IS AS FOLLOWS:
034406,000177:
034407,000178: # TC MPENTRY UNDER CONTROL OF EXEC OR RUPT.
034408,000179: # DEC INDEX INDEX OF TIMER (1 TO 4).
034409,000180: # DEC PHASE MISSION PHASE NUMBER.
034410,000181: # ADRES DT DT = TIME (SECONDS) TO INITIATION.
034411,000182: # (EBANK MUST ALREADY BE SET.)
034412,000183:
034413,000184: 5126 BLOCK 02
034414,000185: 5126 00004 MPENTRY INHINT
034415,000186: 5127 50002 INDEX Q # MAKE INTERNAL INDEX.
034416,000187: 5130 40000 CS 0
034417,000188: 5131 67761 AD FOUR
034418,000189: 5132 54070 TS RUPTREG1
034419,000190:
034420,000191: 5133 50000 INDEX A # IF THIS MISSION PHASE REGISTER IS NOT
034421,000192: 5134 11170 CCS MPHASE4 # -0, IT HAS BEEN CHANGED BY THE GROUND,
034422,000193: 5135 15144 TCF MENTRYT # SO LEAVE IT ALONE.
034423,000194: 5136 15144 TCF MENTRYT
034424,000195: 5137 15144 TCF MENTRYT
034425,000196:
034426,000197: 5140 50002 INDEX Q
034427,000198: 5141 30001 CAF 1
034428,000199: 5142 50070 INDEX RUPTREG1
034429,000200: 5143 55170 TS MPHASE4
034430,000201:
034431,000202: 5144 50070 MENTRYT INDEX RUPTREG1 # IF THE TIMER IS -0, SET IT TO THE INPUT
034432,000203: 5145 11164 CCS MTIMER4 # VALUE, OTHERWISE, ASSUME IT HAS BEEN
034433,000204: 5146 67763 AD ONE # SET BY THE GROUND AND JUST FORCE IT POS.
034434,000205: 5147 15155 TCF MENTABS
034435,000206: 5150 15146 TCF -2
034436,000207:
034437,000208: 5151 50002 INDEX Q
034438,000209: 5152 30002 CAF 2
034439,000210: 5153 50000 INDEX A
034440,000211: 5154 30000 CA 0
034441,000212: 5155 50070 MENTABS INDEX RUPTREG1
034442,000213: 5156 55164 TS MTIMER4
034443,000214:
034444,000215: 5157 36311 CAF THREE # MAKE UP RETURN SO COMMON ROUTINE CAN BE
034445,000216: 5160 60002 AD Q # USED TO INITATE TIMER COUNTING.
034446,000217: 5161 55207 -1 TS MRETURN
034447,000218:
![]() |
Page 807 |
034449,000220: # SUBROUTINE TO START MISSION TIMERS IF THEY ARE NOT GOING ALREADY.
034450,000221:
034451,000222: 5162 30076 MSTART CA FLAGWRD2 # SEE IF TIMERS ENABLED ALREADY.
034452,000223: 5163 77757 MASK BIT5
034453,000224: 5164 10000 CCS A
034454,000225: 5165 15202 TCF MDONE # YES - RETURN.
034455,000226:
034456,000227: 5166 15171 TCF +3 # THERE USED TO BE A PHASE CHANGE HERE.
034457,000228: 5167 04736 TC CCSHOLE
034458,000229: 5170 04736 TC CCSHOLE
034459,000230:
034460,000231: 5171 06060 TC FLAG2UP # SHOW TIMERS ENABLED.
034461,000232: 5172 00020 OCT 20
034462,000233:
034463,000234: 5173 00004 INHINT
034464,000235:
034465,000236: 5174 35204 CAF STATECRI # INITIALIZE STATE VECTOR EXTRAPOLATION
034466,000237: 5175 55201 TS STATECTR # TIMER.
034467,000238:
034468,000239: 5176 37763 CAF ONE
034469,000240: 5177 05663 TC WAITLIST
034470,000241: 5200 1164 EBANK= MTIMER4
034471,000242: 5200 02000 62062 2CADR MMAINT # START COUNTER MAINTENANCE.
034472,000243:
034473,000244: 5202 00003 MDONE RELINT
034474,000245: 5203 01207 TC MRETURN
034475,000246:
034476,000247: 5204 01033 STATECRI DEC 539 B-14 # CALLS FOR INTEGRATION EVERY 539 SEC.
034477,000248: 5205 00145 1SEC+1 DEC 101 B-14
034478,000249:
![]() |
Page 808 |
034480,000251: # SUBROUTINE CALLS FOR VARIOUS UPDATE OPTIONS (SEE GSOP). ENTER UNDER EXEC WITH INTERRUPT INHIBITED.
034481,000252:
034482,000253: 31,2153 BANK 31
034483,000254: 31,2153 02265 DOV70 TC MTIMERUP # VERB 70
034484,000255: 31,2154 12351 TCF ENDUP
034485,000256:
034486,000257: 31,2155 02221 DOV71 TC MPHASEUP # VERB 71
034487,000258: 31,2156 12161 TCF DOV72 +2
034488,000259:
034489,000260: 31,2157 02221 DOV72 TC MPHASEUP # VERB 72
034490,000261: 31,2160 02265 TC MTIMERUP
034491,000262: 31,2161 31202 +2 CA UPPHASE # FOR V72, WE DON'T ALTER THE MPHASE
034492,000263: 31,2162 50070 INDEX RUPTREG1 # REGISTER UNTIL SURE THAT TIMER CHANGE
034493,000264: 31,2163 55170 TS MPHASE4 # IS LEGAL.
034494,000265: 31,2164 12351 TCFENDUP TCF ENDUP
034495,000266:
![]() |
Page 809 |
034497,000268: # INVERT INHIBIT/ENABLE SWITCH WHOSE INDEX IS IN UPINDEX (1 TO 3). ENTER UNDER EXEC WITH INTERRUPT INHIBITED.
034498,000269:
034499,000270: 31,2165 47762 DOV73 CS TWO
034500,000271: 31,2166 61204 AD UPINDEX
034501,000272: 31,2167 04323 TC MAGSUB # SEE IF INDEX LEGIT.
034502,000273: 31,2170 77776 DEC -1 B-14
034503,000274: 31,2171 12356 TCF UPERROR
034504,000275:
034505,000276: 31,2172 51204 INDEX UPINDEX
034506,000277: 31,2173 37760 CAF BIT3 -1 # BITS IN POSITIONS 3, 2, AND 1 OF
034507,000278: 31,2174 54001 TS L # FLAGWRD2 (SEE SWITCH ASSIGNMENTS).
034508,000279: 31,2175 30076 CA FLAGWRD2
034509,000280: 31,2176 00006 EXTEND
034510,000281: 31,2177 06001 RXOR L
034511,000282: 31,2200 54076 TS FLAGWRD2
034512,000283: 31,2201 12351 TCF ENDUP
034513,000284:
034514,000285: # THE FOLLOWING CODING ISSUES THE SINGLE LMP COMMAND FOUND IN UPINDEX PROVIDED THE TIMERS ARE ENABLED
034515,000286: # (NON TIME CRITICAL PHASE OF MISSION).
034516,000287:
034517,000288: 31,2202 40076 DOV67 CS FLAGWRD2
034518,000289: 31,2203 77757 MASK BIT5
034519,000290: 31,2204 10000 CCS A
034520,000291: 31,2205 12356 TCF UPERROR
034521,000292:
034522,000293: 31,2206 47754 CS BIT8 # COMMAND MUST BE BETWEEN 1 AND 255.
034523,000294: 31,2207 61204 AD UPINDEX
034524,000295: 31,2210 04323 TC MAGSUB
034525,000296: 31,2211 77600 DEC -127 B-14
034526,000297: 31,2212 12356 TCF UPERROR
034527,000298:
034528,000299: 31,2213 32220 CAF TC1LMP
034529,000300: 31,2214 55203 TS UPINDEX -1
034530,000301: 31,2215 32164 CAF TCFENDUP
034531,000302: 31,2216 55205 TS UPINDEX +1
034532,000303: 31,2217 01203 TC UPINDEX -1
034533,000304:
034534,000305: 31,2220 05060 TC1LMP TC 1LMP # FOR ERASABLE CALL.
034535,000306:
![]() |
Page 810 |
034537,000308: # THE FOLLOWING CODING UPDATES A MISSION PHASE NUMBER WHOSE INDEX IS IN UPINDEX TO THE VALUE FOUND
034538,000309: # IN UPPHASE. RETURN IS TO CALLER IF DATA OK, OR TO UPERROR IF DATA OUT OF RANGE.
034539,000310:
034540,000311: 31,2221 30002 MPHASEUP CA Q
034541,000312: 31,2222 02250 TC CHKUPDEX # CHECK INDEX VALUE AND MAKE INTERNAL NDX.
034542,000313:
034543,000314: 31,2223 11202 CCS UPPHASE # CHECK ON SIZE OF PHASE.
034544,000315: 31,2224 12230 TCF +4
034545,000316: 31,2225 12356 TCF UPERROR
034546,000317: 31,2226 12356 TCF UPERROR
034547,000318: 31,2227 12356 TCF UPERROR
034548,000319:
034549,000320: 31,2230 04323 +4 TC MAGSUB
034550,000321: 31,2231 77756 OCT -21 # ALLOW PHASES 1 - 18D ONLY.
034551,000322: 31,2232 12356 TCF UPERROR # FOR BAD RETURN FROM MAGSUB
034552,000323: 31,2233 41202 CS UPPHASE # CHECK LEGALITY OF UPPHASE
034553,000324: 31,2234 66306 AD SIX
034554,000325: 31,2235 10000 CCS A
034555,000326: 31,2236 12356 TCF UPERROR
034556,000327: 31,2237 72400 MPLEGAL OCT 72400 # BITS 15 - 1 = 1 FOR MP 7 - 21 LEGAL
034557,000328: 31,2240 12242 TCF +2
034558,000329: 31,2241 12356 TCF UPERROR
034559,000330:
034560,000331: 31,2242 50000 INDEX A
034561,000332: 31,2243 37745 CA BIT15
034562,000333: 31,2244 72237 MASK MPLEGAL
034563,000334: 31,2245 00006 EXTEND
034564,000335: 31,2246 12356 BZF UPERROR
034565,000336:
034566,000337: 31,2247 01207 TC MRETURN
034567,000338:
034568,000339: # MINOR SUBROUTINE TO CHECK MISSION TIMER/PHASE UPDATE INDEX AND LEAVE CORRESPONDING VALUE IN RUPTREG1.
034569,000340:
034570,000341: # TO BE ENTERED WITH INTERRUPT INHIBITED:
034571,000342:
034572,000343: 31,2250 55207 CHKUPDEX TS MRETURN # CALLER'S RETURN ARRIVES IN A.
034573,000344: 31,2251 11204 +1 CCS UPINDEX
034574,000345: 31,2252 12256 TCF +4
034575,000346: 31,2253 12356 TCF UPERROR
034576,000347: 31,2254 12356 TCF UPERROR
034577,000348: 31,2255 12356 TCF UPERROR
034578,000349:
034579,000350: 31,2256 75340 +4 MASK NEG3
034580,000351: 31,2257 10000 CCS A
034581,000352: 31,2260 12356 TCF UPERROR
034582,000353:
034583,000354: 31,2261 41204 CS UPINDEX # MAKE INTERNAL VALUE.
034584,000355: 31,2262 67761 AD FOUR
034585,000356: 31,2263 54070 TS RUPTREG1
034586,000357: 31,2264 00002 TC Q
034587,000358:
![]() |
Page 811 |
034589,000360: # THE FOLLOWING CODING UPDATES THE MISSION TIMER WHOSE INDEX IS IN UPINDEX BY ADDING THE CONTENTS OF UPDT
034590,000361: # TO IT. OUTCOMES DEPEND ON WHETHER THE TIMER WAS COUNTING AT THE TIME, AND THE SIGN OF THE RESULT (SEE GSOP).
034591,000362:
034592,000363: 31,2265 30002 MTIMERUP CA Q # GO TO COMMON SUBROUTINE TO SAVE RETURN
034593,000364: 31,2266 02250 TC CHKUPDEX # AND CHECK INDEX.
034594,000365: 31,2267 50070 INDEX RUPTREG1 # SEE IF TIMER IS COUNTING NOW.
034595,000366: 31,2270 11164 CCS MTIMER4
034596,000367: 31,2271 12276 TCF TUPBUSY # POS INDICATES IT IS.
034597,000368: 31,2272 12276 TCF TUPBUSY
034598,000369: 31,2273 12274 NOOP
034599,000370:
034600,000371: 31,2274 31203 CA UPDT # IF NOT BUSY, LOAD WITH DT DIRECTLY, WITH
034601,000372: 31,2275 12303 TCF CTRABS # NO CHANGE TO THE MAINTENANCE FLAG STATE.
034602,000373:
034603,000374: 31,2276 11203 TUPBUSY CCS UPDT # IF TIMER COUNTING, SEE IF DT ZERO.
034604,000375: 31,2277 12306 TCF CTRAD # NZ - DO ADD.
034605,000376: 31,2300 12303 TCF CTRABS # +0 - PHASE DUE NEXT MAINTENANCE CYCLE.
034606,000377: 31,2301 12306 TCF CTRAD
034607,000378:
034608,000379: 31,2302 47767 CS ZERO # IF -0, DISABLE TIMER.
034609,000380: 31,2303 50070 CTRABS INDEX RUPTREG1
034610,000381: 31,2304 55164 TS MTIMER4
034611,000382: 31,2305 01207 TC MRETURN
034612,000383:
034613,000384: 31,2306 02314 CTRAD TC CTRADSUB
034614,000385: 31,2307 10000 CCS A # IF RESULT NEGATIVE OR ZERO, PHASE DUE
034615,000386: 31,2310 01207 TC MRETURN # NEXT MAINTENANCE CYCLE.
034616,000387: 31,2311 01207 TC MRETURN
034617,000388: 31,2312 37767 CAF ZERO
034618,000389: 31,2313 12303 TCF CTRABS # (THIS ALONE REVERTS -0 TO +0.)
034619,000390:
034620,000391:
034621,000392:
034622,000393: 31,2314 31203 CTRADSUB CA UPDT
034623,000394: 31,2315 50070 INDEX RUPTREG1
034624,000395: 31,2316 61164 AD MTIMER4
034625,000396: 31,2317 54000 OVSK
034626,000397: 31,2320 12322 TCF +2 # NO OVERFLOW (NORMAL CASE).
034627,000398: 31,2321 02356 TC UPERROR # IF OVFLO, GO TO UPERROR WITH TIMER
034628,000399: 31,2322 50070 INDEX RUPTREG1 # UNCHANGED.
034629,000400: 31,2323 55164 TS MTIMER4
034630,000401: 31,2324 00002 TC Q
034631,000402:
![]() |
Page 812 |
034633,000404: # THE FOLLOWING CODING IS THE SAME AS MTIMERUP BUT ACCEPTS DP GET IN UPGET (SEE GSOP).
034634,000405:
034635,000406: 31,2325 06112 MGETUP TC INTPRET # MAKE SURE THIS ENTERED WITH VAC AREA.
034636,000407:
034637,000408: 31,2326 44234 RTB BDSU # TIME IN CS.
034638,000409: 31,2327 33454 LOADTIME
034639,000410: 31,2330 01206 UPGET
034640,000411: 31,2331 54205 DMP SL # CONVERT TO SEC & MOVE TO MAJOR PART.
034641,000412: 31,2332 22372 1/100
034642,000413: 31,2333 20217 14D
034643,000414: 31,2334 50004 BOVB BMN
034644,000415: 31,2335 62356 UPERROR
034645,000416: 31,2336 62355 UPERROR -1 # (DOES AN EXIT.)
034646,000417:
034647,000418: 31,2337 77776 EXIT
034648,000419:
034649,000420: 31,2340 00004 INHINT
034650,000421: 31,2341 37757 CA BIT5 # INSURE THAT MAINTENANCE IS STILL ENABLED
034651,000422: 31,2342 70076 MASK FLAGWRD2
034652,000423: 31,2343 00006 EXTEND
034653,000424: 31,2344 12356 BZF UPERROR
034654,000425:
034655,000426: 31,2345 02251 TC CHKUPDEX +1
034656,000427: 31,2346 30144 CA MPAC # CONTAINS DT IN SECONDS.
034657,000428: 31,2347 50070 INDEX RUPTREG1
034658,000429: 31,2350 55164 TS MTIMER4 # INSERT DT DIRECTLY INTO TIMER.
034659,000430:
034660,000431: # GENERAL EXIT LOCATION FOR SUCCESSFULLY COMPLETED UPDATE:
034661,000432:
034662,000433: 31,2351 37767 ENDUP CAF ZERO # TURN OFF GROUP 6.
034663,000434: 31,2352 04246 TC NEWPHASE
034664,000435: 31,2353 00006 OCT 6
034665,000436:
034666,000437: 31,2354 15567 TCF ENDOFJOB
034667,000438:
034668,000439: # EXIT FOR GENERAL UPDATE ERRORS (RANGE OF DATA, ETC.)
034669,000440:
034670,000441: 31,2355 77776 -1 EXIT
034671,000442:
034672,000443: 31,2356 04571 UPERROR TC FALTON
034673,000444: 31,2357 12351 TCF ENDUP # RELINT, & ENDOFJOB.
034674,000445:
![]() |
Page 813 |
034676,000447: # THE FOLLOWING TABLE SPECIFIES STARTING LOCATIONS AND PRIORITIES OF ALL 206 MISSION PHASES INITIATED BY
034677,000448: # THE MISSION TIMERS (S4B-LEM SEP AND BEYOND). IT ALSO CONTAINS INHIBIT/ENABLE INFORMATION, ETC. EACH ENTRY
034678,000449: # CONSISTS OF THREE WORDS. THE FIRST IS PACKED WITH SEVERAL PIECES OF INFORMATION, AND THE SECOND TWO CONTAIN THE
034679,000450: # 2CADR OF THE LOCATION AT WHICH THE PHASE IS TO BEGIN. THE INTERPRETATION OF WORD 1 IS AS FOLLOWS:
034680,000451:
034681,000452: # BIT15: SPARE
034682,000453: # BITS 14-10: JOB PRIORITY.
034683,000454: # BITS 9-5: SPARE
034684,000455: # BIT4: 1 IF TIMERS TO BE DISABLED ON PHASE INITIATION.
034685,000456: # BIT3: 1 IF RCS TESTS (INHIBIT/ENABLE INFO).
034686,000457: # BIT2: 1 IF DPS COLD SOAK
034687,000458: # BIT1: 1 IF RCS COLD SOAK
034688,000459:
034689,000460: # NOTE SPARES COULD BE USED FOR SWITCHING DOWNLISTS, ETC.
034690,000461:
034691,000462: # PHASES 1 - 6 ARE NOT INCLUDED SINCE THEY ARE NOT INITIATED BY THE MISSION SCHEDULING ROUTINES.
034692,000463: 31,2360 20010 MTABLE1 OCT 20010 # MP7
034693,000464: 31,2361 E4,1566 EBANK= TDEC
034694,000465: 31,2361 02474 52064 2CADR MP07JOB
034695,000466:
034696,000467: 31,2363 20012 OCT 20012 # MP8
034697,000468: 31,2364 E3,1652 EBANK= RATEINDX
034698,000469: 31,2364 02564 56063 2CADR MP8JOB
034699,000470:
034700,000471: 31,2366 20010 OCT 20010 # MP9
034701,000472: 31,2367 E4,1566 EBANK= TDEC
034702,000473: 31,2367 02724 66064 2CADR MP9JOB
034703,000474:
034704,000475: 31,2371 00243 32703 1/100 2DEC 0.01 # MP 10. UNUSED SLOT.
034705,000476:
034706,000477: 31,2373 00034 34OCT OCT 00034
034707,000478:
034708,000479: 31,2374 20010 OCT 20010 # MP11
034709,000480: 31,2375 E4,1566 EBANK= TDEC
034710,000481: 31,2375 02000 74064 2CADR MP11JOB
034711,000482:
034712,000483: 31,2377 04736 TC CCSHOLE # MP 12. UNUSED SLOT.
034713,000484: 31,2400 04736 TC CCSHOLE
034714,000485: 31,2401 04736 TC CCSHOLE
034715,000486:
034716,000487: 31,2402 20010 OCT 20010 # MP13
034717,000488: 31,2403 E4,1566 EBANK= TDEC
034718,000489: 31,2403 03114 56064 2CADR MP13JOB
034719,000490:
034720,000491: 31,2405 04736 TC CCSHOLE # MP 14. UNUSED SLOT.
034721,000492: 31,2406 04736 TC CCSHOLE
034722,000493: 31,2407 04736 TC CCSHOLE
034723,000494:
034724,000495: 31,2410 31,2333 MTABLE EQUALS MTABLE1 -21D # MP 1-6 NOT ACTUALLY INCLUDED IN TABLE.
034725,000496:
![]() |
Page 814 |
034727,000498: 31,2410 04755 BADPHASE TC ALARM # ALARM WHEN MPHASE COMES DUE BUT MPHASE
034728,000499: 31,2411 00601 OCT 00601 # REGISTER IS ZERO (-0 MEANS INACTIVE).
034729,000500:
034730,000501: 31,2412 35660 CAF PRIO37
034731,000502: 31,2413 05505 TC NOVAC
034732,000503: 31,2414 E3,1400 EBANK= LST1
034733,000504: 31,2414 02007 16063 2CADR FORGETIT
034734,000505:
034735,000506: 31,2416 05727 TC TASKOVER
End of include-file AS206_MISSION_SCHEDULING_PACKAGE.agc. Parent file is MAIN.agc