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