Source Code
These source code files are a reconstruction of Sundance, the Apollo 9 LM (Lunar Module) AGC
(Apollo Guidance Computer) flight software, created from binary dumps of original core rope
program modules, as follows:
Since only binary dumps (rather than listings) of Sundance are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
054370,000002: ## Copyright: Public domain.
054371,000003: ## Filename: UPDATE_PROGRAM.agc
054372,000004: ## Purpose: A section of a reconstructed, mixed version of Sundance
054373,000005: ## It is part of the reconstructed source code for the Lunar
054374,000006: ## Module's (LM) Apollo Guidance Computer (AGC) for Apollo 9.
054375,000007: ## No original listings of this program are available;
054376,000008: ## instead, this file was created via disassembly of dumps
054377,000009: ## of various revisions of Sundance core rope modules.
054378,000010: ## Assembler: yaYUL
054379,000011: ## Contact: Ron Burkey <info@sandroid.org>.
054380,000012: ## Website: www.ibiblio.org/apollo/index.html
054381,000013: ## Mod history: 2020-06-17 MAS Created from Luminary 69.
054382,000014: ## 2021-05-30 ABS DELTAOK -> DELTATOK
054383,000015:
054384,000016: ## Sundance 306
054385,000017:
054386,000018: # PROGRAM NAME: P27
054387,000019: # WRITTEN BY: KILROY/ DE WOLF
054388,000020:
054389,000021: # MOD NO: 6
054390,000022: # MOD BY: KILROY
054391,000023: # DATE: 01DEC67
054392,000024:
054393,000025: # LOG SECTION: UPDATE PROGRAM.
054394,000026:
054395,000027: # FUNCT. DESCR: P27 (THE UPDATE PROGRAM) PROCESSES COMMANDS AND DATA
054396,000028: # INSERTIONS REQUESTED BY THE GROUND VIA UPLINK.
054397,000029: # THE P27 PROGRAM WILL ACCEPT UPDATES
054398,000030: # ONLY DURING P00 FOR THE LM, AND ONLY DURING P00,
054399,000031: # P02, AND FRESH START FOR THE CSM
054400,000032:
054401,000033: # CALLING SEQ: PROGRAM IS INITIATED BY UPLINK ENTRY OF VERBS 70, 71, 72 AND 73.
054402,000034:
054403,000035: # SUBROUTINES: TESTXACT, NEWMODEX, NEWMODEX +3, GOXDSPF, BANKCALL, FINDVAC, INTPRET, INTSTALL, TPAGREE,
054404,000036: # INTWAKEU, ENDEXT, POSTJUMP, FALTON, NEWPHASE, PHASCHNG
054405,000037:
054406,000038: # NORMAL EXIT: TC ENDEXT
054407,000039:
054408,000040: # ALARM/ABORT: TC FALTON FOLLOWED BY TC ENDEXT
054409,000041:
054410,000042: # RESTARTS: P27 IS RESTART PROTECTED IN TWO WAYS...
054411,000043: # 1. PRIOR TO VERIFLAG INVERSION(WHICH IS CAUSED BY THE GROUND/ASTRONAUT'S VERIFICATION OF UPDATE
054412,000044: # DATA BY SENDING A V33E WHEN V21N02 IS FLASHING)---
054413,000045: # NO PROTECTION EXCEPT PRE-P27 MODE IS RESTORED, COAST + ALIGN DOWNLIST IS SELECTED AND UPLINK
054414,000046: # ACTIVITY LIGHT IS TURNED OFF.(JUST AS IF A V34E WAS SENT DURING P27 DATA LOADS).
054415,000047: # V70,V71,V72 OR V73 WILL HAVE TO BE COMPLETELY RESENT BY USER.
054416,000048: # 2. AFTER VERIFLAG INVERSION(WHEN UPDATE OF THE SPECIFIED ERASABLES IS BEING PERFORMED)---
054417,000049: # PROTECTED AGAINST RESTARTS.
054418,000050:
054419,000051: # DEBRIS: UPBUFF (20D) TEMP STORAGE FOR ADDRESSES AND CONTENTS.
054420,000052: # UPVERB (1) VERB NUMBER MINUS 70D (E.G. FOR V72, UPVERB = 72D - 70D = 2)
054421,000053: # UPOLDMOD (1) FOR MAJOR MODE INTERRUPTED BY P27.
054422,000054: # COMPNUMB (1) TOTAL NUMBER OF COMPONENTS TO BE TRANSMITTED.
054423,000055: # UPCOUNT (1) ACTUAL NUMBER OF COMPONENTS RECEIVED.
054424,000056: # UPTEMP (1) SCRATCH, BUT USUALLY CONTAINS COMPONENT NUMBER TO BE CHANGED DURING VERIFY CYCLE
054425,000057:
054426,000058: # INPUT:
054427,000059:
054428,000060: # ENTRY: DESCRIPTION
054429,000061:
054430,000062: # V70EXXXXXEXXXXXE (LIFTOFF TIME INCREMENT) DOUBLE PRECISION OCTAL TIME INCREMENT, XXXXX XXXXX,
054431,000063: # IS ADDED TO TEPHEM, SUBTRACTED FROM AGC CLOCK(TIME2,TIME1), SUBTRACTED FROM CSM STATE
054432,000064: # VECTOR TIME(TETCSM) AND SUBTRACTED FROM LEM STATE VECTOR TIME(TETLEM).
054433,000065: # THE DP OCTAL TIME INCREMENT IS SCALED AT 2(28).
054434,000066: # V71EIIEAAAAE (CONTIGUOUS BLOCK UPDATE) II-2 OCTAL COMPONENTS,XXXXX,
054435,000067: # XXXXXE ARE LOADED INTO ERASABLE STARTING AT ECADR, AAAA.
054436,000068: # XXXXXE IT IS .GE. 3 .AND. .LE. 20D.,
054437,000069: # AND (AAAA + II -3) DOES NOT PRODUCE AN ADDRESS IN THE
054438,000070: # 9 NEXT BANK
054439,000071: # . SCALING IS SAME AS INTERNAL REGISTERS.
054440,000072:
054441,000073: # V72EIIE (SCATTER UPDATE) (II-1)/2 OCTAL COMPONENTS,XXXXX, ARE
054442,000074: # AAAAEXXXXXE LOADED INTO ERASABLE LOCATIONS, AAAA.
054443,000075: # AAAAEXXXXXE II IS .GE. 3 .AND. .LE. 19D, AND MUST BE ODD.
054444,000076: # . SCALING IS SAME AS INTERNAL REGISTERS.
054445,000077:
054446,000078: # V73EXXXXXEXXXXXE (OCTAL CLOCK INCREMENT) DOUBLE PRECISION OCTAL TIME
054447,000079: # INCREMENT XXXXX XXXXX, IS ADDED TO THE AGC CLOCK, IN
054448,000080: # CENTISECONDS SCALED AT (2)28.
054449,000081: # THIS LOAD IS THE OCTAL EQUIVALENT OF V55.
054450,000082:
054451,000083: # OUTPUT: IN ADDITION TO THE ABOVE REGISTER LOADS, ALL UPDATES
054452,000084: # COMPLEMENT BIT3 OF FLAGWORD7.
054453,000085:
054454,000086: # ADDITIONAL NOTES: VERB 71, JUST DEFINED ABOVE WILL BE USED TO PERFORM BUT NOT LIMITED TO THE FOLLOWING UPDATES--
054455,000087: # 1. CSM/LM STATE VECTOR UPDATE
054456,000088: # 2. REFSMMAT UPDATE
054457,000089:
054458,000090: # THE FOLLOWING COMMENTS DELINEATE EACH SPECIAL UPDATE----
054459,000091:
054460,000092: # 1. CSM/LM STATE VECTOR UPDATE (ALL DATA ENTRIES IN OCTAL)
054461,000093:
054462,000094: # ENTRIES: DATA DEFINITION: SCALE FACTORS:
054463,000095: # V71E CONTIGUOUS BLOCK UPDATE VERB
054464,000096: # 21E NUMBER OF COMPONENTS FOR STATE VECTOR UPDATE
054465,000097: # AAAAE ECADR OF 'UPSVFLAG'
054466,000098: # XXXXXE STATE VECTOR IDENTIFIER: 00001 FOR CSM, 77776 FOR LEM - EARTH SPHERE OF INFLUENCE SCALING
054467,000099: # 00002 FOR CSM, 77775 FOR LEM - LUNAR SPHERE OF INFLUENCE SCALING
054468,000100: # XXXXXEXXXXXE X POSITION
054469,000101: # XXXXXEXXXXXE Y POSITION
054470,000102: # XXXXXEXXXXXE Z POSITION
054471,000103: # XXXXXEXXXXXE X VELOCITY
054472,000104: # XXXXXEXXXXXE Y VELOCITY
054473,000105: # XXXXXEXXXXXE Z VELOCITY
054474,000106: # XXXXXEXXXXXE TIME FROM AGC CLOCK ZERO
054475,000107: # V33E VERB 33 TO SIGNAL THAT THE STATE VECTOR IS READY TO BE STORED.
054476,000108:
054477,000109: # 2. REFSMMAT(ALL DATA ENTRIES IN OCTAL)
054478,000110: # ENTRIES: DATA DEFINITIONS: SCALE FACTORS:
054479,000111: # V71E CONTIGUOUS BLOCK UPDATE VERB
054480,000112: # 24E NUMBER OF COMPONENTS FOR REFSMMAT UPDATE
054481,000113: # AAAAE ECADR OF 'REFSMMAT'
054482,000114: # XXXXXEXXXXXE ROW 1 COLUMN 1 2(-1)
054483,000115: # XXXXXEXXXXXE ROW 1 COLUMN 2 2(-1)
054484,000116: # XXXXXEXXXXXE ROW 1 COLUMN 3 2(-1)
054485,000117: # XXXXXEXXXXXE ROW 2 COLUMN 1 2(-1)
054486,000118: # XXXXXEXXXXXE ROW 2 COLUMN 2 2(-1)
054487,000119: # XXXXXEXXXXXE ROW 2 COLUMN 3 2(-1)
054488,000120: # XXXXXEXXXXXE ROW 3 COLUMN 1 2(-1)
054489,000121: # XXXXXEXXXXXE ROW 3 COLUMN 2 2(-1)
054490,000122: # XXXXXEXXXXXE ROW 3 COLUMN 3 2(-1)
054491,000123: # V33E VERB 33 TO SIGNAL THAT REFSMMAT IS READY TO BE STORED.
054492,000124:
054493,000125:
054494,000126: 07,3701 BANK 07
054495,000127: 43,2000 SETLOC EXTVERBS
054496,000128: 43,2000 BANK
054497,000129:
054498,000130: 43,3724 E3,1706 EBANK= TEPHEM
054499,000131:
054500,000132: 43,3724 COUNT* $$/P27
054501,000133: 43,3724 35030 V70UPDAT CAF UP70 # COMES HERE ON V70E
054502,000134: 43,3725 13733 TCF V73UPDAT +1
054503,000135:
054504,000136: 43,3726 35026 V71UPDAT CAF UP71 # COMES HERE ON V71E
054505,000137: 43,3727 13733 TCF V73UPDAT +1
054506,000138:
054507,000139: 43,3730 35025 V72UPDAT CAF UP72 # COMES HERE ON V72E
054508,000140: 43,3731 13733 TCF V73UPDAT +1
054509,000141:
054510,000142: 43,3732 36221 V73UPDAT CAF UP73 # COMES HERE ON V73E
054511,000143:
054512,000144: 43,3733 54300 +1 TS UPVERBSV # SAVE UPVERB UNTIL IT'S OK TO ENTER P27
054513,000145:
054514,000146: 43,3734 02076 TC TESTXACT # GRAB DISPLAY IF AVAILABLE, OTHERWISE
054515,000147: # TURN*OPERATOR ERROR* ON AND TERMINATEJOB
054516,000148:
054517,000149: 43,3735 31012 CA MODREG # CHECK IF UPDATE ALLOWED
054518,000150: 43,3736 00006 EXTEND # FIRST CHECK FOR MODREG = +0, -0
054519,000151: 43,3737 13741 BZF +2 # (+0 = P00, -0 = FRESHSTART)
054520,000152: 43,3740 03751 TC CKMDMORE # NOW CHECK FOR PROGRAM WHICH CAN BE
054521,000153: # INTERRUPTED BY P27.
054522,000154:
054523,000155: 43,3741 31012 CAE MODREG # UPDATE ALLOWED.
054524,000156: 43,3742 54303 TS UPOLDMOD # SAVE CURRENT MAJOR MODE
054525,000157: 43,3743 30300 CAE UPVERBSV # SET UPVERB TO INDICATE TO P27
054526,000158:
054527,000159: 43,3744 54304 TS UPVERB # WHICH EXTENDED VERB CALLED IT.
054528,000160:
054529,000161: 43,3745 35026 CAF ONE
054530,000162: 43,3746 54305 TS UPCOUNT # INITIALIZE UPCOUNT TO 1
054531,000163:
054532,000164: 43,3747 04674 TC POSTJUMP # LEAVE EXTENDED VERB BANK AND
054533,000165: 43,3750 11210 CADR UPPART2 # GO TO UPDATE PROGRAM (P27) BANK.
054534,000166:
054535,000167: 43,3751 40101 CKMDMORE CS FLAGWRD5
054536,000168: 43,3752 75017 MASK BIT8 # CHECK IF COMPUTER IS LGC
054537,000169: 43,3753 10000 CCS A # IS COMPUTER LGC OR AGC
054538,000170: 43,3754 13762 UPERLEM TCF UPERROR # ERROR- IT'S THE LEM + MODE IS NOT POO.
054539,000171: 43,3755 46221 CS THREE
054540,000172: 43,3756 71012 MASK MODREG
054541,000173: 43,3757 10000 CCS A
054542,000174: 43,3760 13762 UPERCMC TCF UPERROR # ERROR- IT'S THE CMC AND MODE IS NOT
054543,000175: # P00 OR P02.
054544,000176: 43,3761 00002 TC Q # ALLOW UPDATE TO PROCEED
054545,000177: 43,3762 04674 UPERROR TC POSTJUMP # TURN ON 'OPERATOR ERROR' LIGHT
054546,000178: 43,3763 11623 CADR UPERROUT +2 # GO TO COMMON UPDATE PROGRAM EXIT
054547,000179:
054548,000180: 43,3764 5030 UP70 EQUALS ZERO
054549,000181: 43,3764 5026 UP71 EQUALS ONE
054550,000182: 43,3764 5025 UP72 EQUALS TWO
054551,000183: 43,3764 6221 UP73 EQUALS THREE
054552,000184:
Sundance 292 |
054554,000186:
054555,000187: 04,3210 BANK 04
054556,000188: 04,2000 SETLOC UPDATE2
054557,000189: 04,2000 BANK
054558,000190:
054559,000191: 04,3210 COUNT* $$/P27
054560,000192:
054561,000193: 04,3210 UPPART2 EQUALS # UPDATE PROGRAM - PART 2
054562,000194:
054563,000195: 04,3210 05413 TC PHASCHNG # SET RESTART GROUP 6 TO RESTORE OLD MODE
054564,000196: 04,3211 07026 OCT 07026 # AND DOWNLIST AND EXIT IF RESTART OCCURS.
054565,000197: 04,3212 30000 OCT 30000 # PRIORITY SAME AS CHRPRIO
054566,000198: 04,3213 0306 EBANK= UPBUFF
054567,000199: 04,3213 03553 10100 2CADR UPOUT +1
054568,000200:
054569,000201: 04,3215 35026 CAF ONE
054570,000202: 04,3216 54332 TS DNLSTCOD # DOWNLIST
054571,000203:
054572,000204: 04,3217 05351 TC NEWMODEX # SET MAJOR MODE = 27
054573,000205: 04,3220 00033 DEC 27 B-14
054574,000206:
054575,000207: 04,3221 50304 INDEX UPVERB # BRANCH DEPENDING ON WHETHER THE UPDATE
054576,000208: 04,3222 13223 TCF +1 # VERB REQUIRES A FIXED OR VARIABLE NUMBER
054577,000209: 04,3223 13226 TCF +3 # V70 FIXED. (OF COMPONENTS.
054578,000210: 04,3224 13231 TCF OHWELL1 # V71 VARIABLE - GO GET NO. OF COMPONENTS
054579,000211: 04,3225 13231 TCF OHWELL1 # V72 VARIABLE - GO GET NO. OF COMPONENTS
054580,000212: 04,3226 35025 CA TWO # V73 (AND V70) FIXED
054581,000213: 04,3227 54302 TS COMPNUMB # SET NUMBER OF COMPONENTS TO 2.
054582,000214: 04,3230 13254 TCF OHWELL2 # GO GET THE TWO UPDATE COMPONENTS
054583,000215:
054584,000216: 04,3231 33330 OHWELL1 CAF ADUPBUFF # * REQUEST USER TO SEND NUMBER *
054585,000217: 04,3232 54156 TS MPAC +2 # * OF COMPONENTS PARAMETER(II).*
054586,000218: 04,3233 33331 +2 CAF UPLOADNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
054587,000219: 04,3234 04655 TC BANKCALL # DISPLAY A FLASHING V21N01
054588,000220: 04,3235 20226 CADR GOXDSPF # TO REQUEST II.
054589,000221: 04,3236 13553 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN
054590,000222: 04,3237 13233 TCF OHWELL1 +2
054591,000223: 04,3240 03317 TC CK4V32 # DATA OR V32 RETURN
054592,000224: 04,3241 45025 CS BIT2
054593,000225: 04,3242 60306 AD UPBUFF # IS II (NUMBER OF COMPONENTS PARAMETER)
054594,000226: 04,3243 00006 EXTEND # .GE. 3 AND .LE. 20D.
054595,000227: 04,3244 63231 BZMF OHWELL1
054596,000228: 04,3245 40306 CS UPBUFF
054597,000229: 04,3246 64374 AD UP21
054598,000230: 04,3247 00006 EXTEND
054599,000231: 04,3250 63231 BZMF OHWELL1
054600,000232: 04,3251 30306 CAE UPBUFF
054601,000233: 04,3252 54302 TS COMPNUMB # SAVE II IN COMPNUMB
054602,000234:
054603,000235: # UPBUFF LOADING SEQUENCE
054604,000236:
054605,000237: 04,3253 24305 INCR UPCOUNT # INCREMENT COUNT OF COMPONENTS RECEIVED.
054606,000238: 04,3254 33333 OHWELL2 CAF ADUPBFM1 # CALCULATE LOCATION(ECADR) IN UPBUFF
054607,000239: 04,3255 60305 AD UPCOUNT # WHERE NEXT COMPONENT SHOULD BE STORED.
054608,000240: 04,3256 54156 +2 TS MPAC +2 # PLACE ECADR INTO R3.
054609,000241: 04,3257 33331 +3 CAF UPLOADNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
054610,000242: 04,3260 04655 TC BANKCALL # DISPLAY A FLASHING V21N01
054611,000243: 04,3261 20226 CADR GOXDSPF # TO REQUEST DATA.
054612,000244: 04,3262 13553 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN.
054613,000245: 04,3263 13257 TCF OHWELL2 +3 # V33 PROCEED RETURN
054614,000246: 04,3264 03317 TC CK4V32 # DATA OR V32 RETURN
054615,000247: 04,3265 40305 CS UPCOUNT # HAVE WE FINISHED RECEIVING ALL
054616,000248: 04,3266 60302 AD COMPNUMB # THE DATA WE EXPECTED.
054617,000249: 04,3267 00006 EXTEND
054618,000250: 04,3270 63272 BZMF UPVERIFY # YES- GO TO VERIFICATION SEQUENCE
054619,000251: 04,3271 13253 TCF OHWELL2 -1 # NO- REQUEST ADDITIONAL DATA.
054620,000252:
054621,000253: # VERIFY SEQUENCE
054622,000254:
054623,000255: 04,3272 33327 UPVERIFY CAF ADUPTEMP # PLACE ECADR WHERE COMPONENT NO. INDEX
054624,000256: 04,3273 54156 TS MPAC +2 # IS TO BE STORED INTO R3.
054625,000257: 04,3274 33332 CAF UPVRFYNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
054626,000258: 04,3275 04655 TC BANKCALL # DISPLAY A FLASHING V21N02 TO REQUEST
054627,000259: 04,3276 20226 CADR GOXDSPF # DATA CORRECTION OR VERIFICATION.
054628,000260: 04,3277 13553 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN
054629,000261: 04,3300 13334 TCF UPSTORE # V33 DATA SENT IS GOOD. GO STORE IT.
054630,000262: 04,3301 03317 TC CK4V32 # COMPONENT NO. INDEX OR V32 RETURN
054631,000263: 04,3302 10301 CCS UPTEMP # DOES THE COMPONENT NO. INDEX JUST SENT
054632,000264: 04,3303 13307 TCF +4 # SPECIFY A LEGAL COMPONENT NUMBER?
054633,000265: 04,3304 13272 TCF UPVERIFY # NO, IT IS NOT POSITIVE NONZERO
054634,000266: 04,3305 13272 TCF UPVERIFY
054635,000267: 04,3306 13272 TCF UPVERIFY
054636,000268: 04,3307 40301 CS UPTEMP
054637,000269: 04,3310 60302 AD COMPNUMB
054638,000270: 04,3311 65026 AD BIT1
054639,000271: 04,3312 00006 EXTEND
054640,000272: 04,3313 63272 BZMF UPVERIFY # NO
054641,000273: 04,3314 33333 CAF ADUPBFM1 # YES- BASED ON THE COMPONENT NO. INDEX
054642,000274: 04,3315 60301 AD UPTEMP # CALCULATE THE ECADR OF LOCATION IN
054643,000275: 04,3316 13256 TCF OHWELL2 +2 # UPBUFF WHICH USER WANTS TO CHANGE.
054644,000276:
054645,000277: 04,3317 04,3553 UPOUT4 EQUALS UPOUT +1 # COMES HERE ON V34 TO TERMINATE UPDATE
054646,000278:
054647,000279: # CHECK FOR VERB 32 SEQUENCE
054648,000280:
054649,000281: 04,3317 40154 CK4V32 CS MPAC # ON DATA RETURN FROM 'GOXDSPF'
054650,000282: 04,3320 65021 AD BIT6 # ON DATA RETURN FROM "GOXDSP"& THE CON-
054651,000283: 04,3321 00006 EXTEND # TENTS OF MPAC = VERB. SO TEST FOR V32.
054652,000284: 04,3322 13324 BZF +2
054653,000285: 04,3323 00002 TC Q # IT'S NOT A V32, IT'S DATA. PROCEED.
054654,000286: 04,3324 46216 CS SIX
054655,000287: 04,3325 60002 AD Q
054656,000288: 04,3326 00000 TC A # V32 ENCOUNTERED - GO BACK AND GET DATA
054657,000289:
054658,000290: 04,3327 00301 ADUPTEMP ADRES UPTEMP # ADDRESS OF TEMP STORAGE FOR CORRECTIONS
054659,000291: 04,3330 00306 ADUPBUFF ADRES UPBUFF # ADDRESS OF UPDATE DATA STORAGE BUFFER
054660,000292: 04,3331 05201 UPLOADNV VN 2101 # VERB 21 NOUN 01
054661,000293: 04,3332 05202 UPVRFYNV VN 2102 # VERB 21 NOUN 02
054662,000294: 04,3333 00305 ADUPBFM1 ADRES UPBUFF -1 # SAME AS ADUPBUFF BUT LESS 1
054663,000295: 04,3334 4374 UP21 = MD1 # DEC 21 = MAX NO OF COMPONENTS +1
054664,000296: 04,3334 5031 UPDTPHAS EQUALS FIVE
054665,000297:
054666,000298: # PRE-STORE AND FAN TO APPROPRIATE BRANCH SEQUENCE
054667,000299:
054668,000300: 04,3334 UPSTORE EQUALS # GROUND HAS VERIFIED UPDATE. STORE DATA.
054669,000301:
054670,000302: 04,3334 00004 INHINT
054671,000303:
054672,000304: 04,3335 30103 CAE FLAGWRD7 # INVERT VERIFLAG(BIT 3 OF FLAGWRD7) TO
054673,000305: 04,3336 56001 XCH L # INDICATE TO THE GROUND(VIA DOWNLINK)
054674,000306: 04,3337 35024 CAF VERIFBIT # THAT THE V33 (WHICH THE GROUND SENT TO
054675,000307: 04,3340 00006 EXTEND # VERIFY THE UPDATE) HAS BEEN SUCCESSFULLY
054676,000308: 04,3341 06001 RXOR LCHAN # RECEIVED BY THE UPDATE PROGRAM
054677,000309: 04,3342 54103 TS FLAGWRD7
054678,000310:
054679,000311: 04,3343 05413 TC PHASCHNG # SET RESTART GROUP 6 TO REDO THE UPDATE
054680,000312: 04,3344 04026 OCT 04026 # DATA STORE IF A RESTART OCCURS.
054681,000313: 04,3345 00004 INHINT # (BECAUSE PHASCHNG DID A RELINT)
054682,000314:
054683,000315: 04,3346 50304 INDEX UPVERB # GO TO UPFNDVAC IF INSTALL IS REQUIRED,
054684,000316: 04,3347 13350 TCF +1 # THAT IS, IF IT'S A V70 - V72.
054685,000317: 04,3350 13361 TCF UPFNDVAC
054686,000318: 04,3351 13361 TCF UPFNDVAC
054687,000319: 04,3352 13361 TCF UPFNDVAC
054688,000320:
054689,000321: # VERB 73 BRANCH
054690,000322: 04,3353 00006 UPEND73 EXTEND # V73-PERFORM DP OCTAL AGC CLOCK INCREMENT
054691,000323:
054692,000324: 04,3354 30307 DCA UPBUFF
054693,000325: 04,3355 52317 DXCH UPBUFF +8D
054694,000326: 04,3356 03405 TC TIMEDIDL
054695,000327: 04,3357 04376 TC FALTON # ERROR- TURN ON *OPERATOR ERROR* LIGHT
054696,000328: 04,3360 03553 TC UPOUT +1 # GO TO COMMON UPDATE PROGRAM EXIT
054697,000329:
054698,000330: 04,3361 34367 UPFNDVAC CAF CHRPRIO # (USE EXTENDED VERB PRIORITY)
054699,000331: 04,3362 05155 TC FINDVAC # GET VAC AREA FOR 'CALL INTSTALL'
054700,000332: 04,3363 E3,1706 EBANK= TEPHEM
054701,000333: 04,3363 03366 10103 2CADR UPJOB # (NOTE: THIS WILL ALSO SET EBANK FOR
054702,000334:
054703,000335: 04,3365 05225 TC ENDOFJOB # 'TEPHEM' UPDATE BY V70)
054704,000336:
054705,000337: 04,3366 06014 UPJOB TC INTPRET # THIS COULD BE A STATE VECTOR UPDATE--SO
054706,000338: 04,3367 77624 CALL # WAIT(PUT JOB TO SLEEP) IF ORBIT INT(OI)
054707,000339: 04,3370 27362 INTSTALL # IS IN PROGRESS--OR--GRAB OI AND RETURN
054708,000340: # TO UPWAKE IF OI IS NOT IN PROGRESS.
054709,000341:
054710,000342: 04,3371 77776 UPWAKE EXIT
054711,000343:
054712,000344: 04,3372 05413 TC PHASCHNG # RESTART PROTECT(GROUP 6)
054713,000345: 04,3373 04026 OCT 04026
054714,000346:
054715,000347: 04,3374 00004 INHINT
054716,000348: 04,3375 40774 CS RASFLAG # SET INTEGRATION RESTART BIT
054717,000349: 04,3376 75020 MASK REINTBIT
054718,000350: 04,3377 26774 ADS RASFLAG
054719,000351: 04,3400 UPPART3 EQUALS
054720,000352:
054721,000353: 04,3400 50304 INDEX UPVERB # BRANCH TO THE APPROPRIATE UPDATE VERB
054722,000354: 04,3401 13402 TCF +1 # ROUTINE TO ACTUALLY PERFORM THE UPDATE
054723,000355: 04,3402 13564 TCF UPEND70 # V70
054724,000356: 04,3403 13450 TCF UPEND71 # V71
054725,000357: 04,3404 13506 TCF UPEND72 # V72
054726,000358:
054727,000359: # ROUTINE TO INCREMENT CLOCK(TIME2,TIME1) WITH CONTENTS OF DP WORD AT UPBUFF.
054728,000360:
054729,000361: 04,3405 00006 TIMEDIDL EXTEND
054730,000362: 04,3406 22301 QXCH UPTEMP # SAVE Q FOR RETURN
054731,000363: 04,3407 35030 CAF ZERO # ZERO AND SAVE TIME2,TIME1
054732,000364: 04,3410 22007 ZL
054733,000365: 04,3411 52025 DXCH TIME2
054734,000366: 04,3412 52331 DXCH UPBUFF +18D # STORE IN CASE OF OVERFLOW
054735,000367:
054736,000368: 04,3413 35031 CAF UPDTPHAS # DO
054737,000369: 04,3414 54001 TS L # A
054738,000370: 04,3415 40000 COM # QUICK
054739,000371: 04,3416 52765 DXCH -PHASE6 # PHASCHNG
054740,000372: 04,3417 00004 TIMEDIDR INHINT
054741,000373:
054742,000374: 04,3420 35030 CAF ZERO
054743,000375: 04,3421 22007 ZL # PICK UP INCREMENTER(AND ZERO
054744,000376: 04,3422 54156 TS MPAC +2 # IT IN CASE OF RESTARTS) AND
054745,000377: 04,3423 52317 DXCH UPBUFF +8D # STORE IT
054746,000378: 04,3424 52155 DXCH MPAC # INTO MPAC FOR TPAGREE.
054747,000379:
054748,000380: 04,3425 00006 EXTEND
054749,000381: 04,3426 30331 DCA UPBUFF +18D
054750,000382: 04,3427 20155 DAS MPAC # FORM SUM IN MPAC
054751,000383: 04,3430 00006 EXTEND
054752,000384: 04,3431 13440 BZF DELTATOK # TEST FOR OVERFLOW
054753,000385: 04,3432 35030 CAF ZERO
054754,000386: 04,3433 52331 DXCH UPBUFF +18D # OVERFLOW, RESTORE OLD VALUE OF CLOCK
054755,000387: 04,3434 20025 DAS TIME2 # AND TURN ON OPERATOR ERROR
054756,000388:
054757,000389: 04,3435 05413 TC PHASCHNG # RESTART PROTECT(GROUP 6)
054758,000390: 04,3436 04026 OCT 04026
054759,000391:
054760,000392: 04,3437 00301 TC UPTEMP # GO TO ERROR EXIT
054761,000393:
054762,000394: 04,3440 07231 DELTATOK TC TPAGREE # FORCE SIGN AGREEMENT
054763,000395: 04,3441 52155 DXCH MPAC
054764,000396: 04,3442 20025 DAS TIME2 # INCREMENT TIME2,TIME1
054765,000397:
054766,000398: 04,3443 05413 TC PHASCHNG # RESTART PROTECT(GROUP 6)
054767,000399: 04,3444 04026 OCT 04026
054768,000400:
054769,000401: 04,3445 00004 INHINT
054770,000402: 04,3446 50301 INDEX UPTEMP # (CODED THIS WAY FOR RESTART PROTECTION)
054771,000403: 04,3447 00001 TC 1 # NORMAL RETURN
054772,000404:
054773,000405: # VERB 71 BRANCH
054774,000406:
054775,000407: 04,3450 43504 UPEND71 CS ENDSAFE
054776,000408: 04,3451 60307 AD UPBUFF +1
054777,000409: 04,3452 00006 EXTEND
054778,000410: 04,3453 63621 BZMF UPERROUT
054779,000411:
054780,000412: 04,3454 30307 CAE UPBUFF +1 # SET EBANK
054781,000413: 04,3455 54003 TS EBANK # AND
054782,000414: 04,3456 74371 MASK LOW8 # CALCULATE
054783,000415: 04,3457 54301 TS UPTEMP # S-REG VALUE OF RECEIVING AREA
054784,000416:
054785,000417: 04,3460 67717 AD NEG3 # IN THE PROCESS OF
054786,000418: 04,3461 60302 AD COMPNUMB # PERFORMING
054787,000419: 04,3462 00006 EXTEND # THIS UPDATE
054788,000420: 04,3463 13471 BZF STORLP71 # WILL WE
054789,000421: 04,3464 75016 MASK BIT9 # OVERFLOW
054790,000422: 04,3465 10000 CCS A # INTO THE NEXT EBANK....
054791,000423: 04,3466 13621 TCF UPERROUT # YES
054792,000424:
054793,000425: 04,3467 37717 CA NEG3 # NO- CALCULATE NUMBER OF
054794,000426: 04,3470 60302 AD COMPNUMB # WORDS TO BE STORED MINUS ONE
054795,000427: 04,3471 54154 STORLP71 TS MPAC # SAVE NO. OF WORDS REMAINING MINUS ONE
054796,000428: 04,3472 50000 INDEX A # TAKE NEXT UPDATE WORD FROM
054797,000429: 04,3473 30310 CA UPBUFF +2 # UPBUFF AND
054798,000430: 04,3474 22000 LXCH A # SAVE IT IN L
054799,000431: 04,3475 30154 CA MPAC # CALCULATE NEXT
054800,000432: 04,3476 60301 AD UPTEMP # RECEIVING ADDRESS
054801,000433: 04,3477 50000 INDEX A
054802,000434: 04,3500 E3,1400 EBANK= 1400
054803,000435: 04,3500 23400 LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
054804,000436: 04,3501 E3,1706 EBANK= TEPHEM
054805,000437: 04,3501 10154 CCS MPAC # ARE THERE ANY WORDS LEFT TO BE STORED
054806,000438: 04,3502 13471 TCF STORLP71 # YES
054807,000439: 04,3503 13552 TCF UPOUT # NO- THEN EXIT UPDATE PROGRAM
054808,000440: 04,3504 01074 ENDSAFE ADRES R1SAVE
054809,000441: 04,3505 13552 TCF UPOUT # NO- EXIT UPDATE(HERE WHEN COMPNUMB = 3)
054810,000442:
054811,000443: # VERB 72 BRANCH
054812,000444:
054813,000445: 04,3506 35026 UPEND72 CAF BIT1 # HAVE AN ODD NO. OF COMPONENTS
054814,000446: 04,3507 70302 MASK COMPNUMB # BEEN SENT FOR A V72 UPDATE ...
054815,000447: 04,3510 10000 CCS A
054816,000448: 04,3511 13513 TCF +2 # YES
054817,000449: 04,3512 13621 TCF UPERROUT # ERROR- SHOULD BE ODD NO. OF COMPONENTS
054818,000450: 04,3513 00003 RELINT
054819,000451: 04,3514 45025 CS BIT2
054820,000452: 04,3515 60302 AD COMPNUMB
054821,000453: 04,3516 54154 LMLOOP72 TS MPAC
054822,000454: 04,3517 50000 INDEX A
054823,000455: 04,3520 30306 CAE UPBUFF
054824,000456: 04,3521 56001 XCH L
054825,000457: 04,3522 43504 CS ENDSAFE
054826,000458: 04,3523 60001 AD L
054827,000459: 04,3524 00006 EXTEND
054828,000460: 04,3525 63621 BZMF UPERROUT
054829,000461: 04,3526 10154 CCS MPAC
054830,000462: 04,3527 10000 CCS A
054831,000463: 04,3530 13516 TCF LMLOOP72
054832,000464: 04,3531 00004 INHINT
054833,000465: 04,3532 45025 CS BIT2
054834,000466: 04,3533 60302 AD COMPNUMB
054835,000467: 04,3534 54154 LDLOOP72 TS MPAC # NOW PERFORM THE UPDATE
054836,000468: 04,3535 50000 INDEX A
054837,000469: 04,3536 30307 CAE UPBUFF +1 # PICK UP NEXT UPDATE WORD
054838,000470: 04,3537 22000 LXCH A
054839,000471: 04,3540 10154 CCS MPAC # SET POINTER TO ECADR (MUST BE CCS)
054840,000472: 04,3541 54154 TS MPAC
054841,000473: 04,3542 50000 INDEX A
054842,000474: 04,3543 30307 CAE UPBUFF +1 # PICK UP NEXT ECADR OF REG TO BE UPDATED
054843,000475: 04,3544 54003 TS EBANK # SET EBANK
054844,000476: 04,3545 74371 MASK LOW8 # ISOLATE RELATIVE ADDRESS
054845,000477: 04,3546 50000 INDEX A
054846,000478: 04,3547 E3,1400 EBANK= 1400
054847,000479: 04,3547 23400 LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
054848,000480: 04,3550 E3,1706 EBANK= TEPHEM
054849,000481: 04,3550 10154 CCS MPAC # ARE WE THROUGH THE V72 UPDATE...
054850,000482: 04,3551 13534 TCF LDLOOP72 # NO
054851,000483:
054852,000484: # NORMAL FINISH OF P27
054853,000485:
054854,000486: 04,3552 UPOUT EQUALS
054855,000487: 04,3552 02775 TC INTWAKEU # RELEASE GRAB OF ORBITAL INTEGRATION
054856,000488: 04,3553 30303 +1 CAE UPOLDMOD # RESTORE PRIOR P27 MODE
054857,000489: 04,3554 05354 TC NEWMODEX +3
054858,000490: 04,3555 35030 CAF ZERO
054859,000491: 04,3556 54332 TS DNLSTCOD
054860,000492: 04,3557 03626 TC UPACTOFF # TURN OFF 'UPLINK ACTIVITY' LIGHT
054861,000493:
054862,000494: 04,3560 35030 CAF ZERO # KILL GROUP 6.
054863,000495: 04,3561 05501 TC NEWPHASE
054864,000496: 04,3562 00006 OCT 6
054865,000497:
054866,000498: 04,3563 05561 TC ENDEXT # EXTENDED VERB EXIT
054867,000499:
054868,000500: # VERB 70 BRANCH
054869,000501:
054870,000502: 04,3564 00006 UPEND70 EXTEND # V70 DOES THE FOLLOWING WITH DP DELTA
054871,000503: 04,3565 40307 DCS UPBUFF # TIME IN UPBUFF
054872,000504: 04,3566 52317 DXCH UPBUFF +8D
054873,000505: 04,3567 03405 TC TIMEDIDL # DECREMENT AGC CLOCK
054874,000506:
054875,000507: 04,3570 03621 TC UPERROUT # ERROR WHILE DECREMENTING CLOCK -- EXIT
054876,000508:
054877,000509: 04,3571 E3,1706 EBANK= TEPHEM
054878,000510: 04,3571 00006 EXTEND
054879,000511: 04,3572 40307 DCS UPBUFF # COPY DECREMENTERS FOR
054880,000512: 04,3573 52321 DXCH UPBUFF +10D # RESTART PROTECTION
054881,000513: 04,3574 00006 EXTEND
054882,000514: 04,3575 40307 DCS UPBUFF
054883,000515: 04,3576 52323 DXCH UPBUFF +12D
054884,000516:
054885,000517: 04,3577 05413 TC PHASCHNG # RESTART PROTECT(GROUP 6)
054886,000518: 04,3600 04026 OCT 04026
054887,000519:
054888,000520: 04,3601 35030 CAF ZERO
054889,000521: 04,3602 22007 ZL
054890,000522: 04,3603 52321 DXCH UPBUFF +10D # DECREMENT CSM STATE VECTOR TIME
054891,000523: 04,3604 21571 DAS TETCSM
054892,000524:
054893,000525: 04,3605 35030 CAF ZERO
054894,000526: 04,3606 22007 ZL
054895,000527: 04,3607 52323 DXCH UPBUFF +12D # DECREMENT LEM STATE VECTOR TIME
054896,000528: 04,3610 21643 DAS TETLEM
054897,000529:
054898,000530: 04,3611 35030 CAF ZERO
054899,000531: 04,3612 22007 ZL
054900,000532: 04,3613 52307 DXCH UPBUFF
054901,000533: 04,3614 21710 DAS TEPHEM +1 # INCREMENT TP TEPHEM
054902,000534: 04,3615 27706 ADS TEPHEM
054903,000535:
054904,000536: 04,3616 05413 TC PHASCHNG # RESTART PROTECT(GROUP 6)
054905,000537: 04,3617 04026 OCT 04026
054906,000538:
054907,000539: 04,3620 0306 EBANK= UPBUFF
054908,000540: 04,3620 03552 TC UPOUT # GO TO STANDARD UPDATE PROGRAM EXIT
054909,000541:
054910,000542:
054911,000543: # ERROR SEQUENCE
054912,000544:
054913,000545: 04,3621 04376 UPERROUT TC FALTON # TURN ON *OPERATOR ERROR* LIGHT
054914,000546: 04,3622 13552 TCF UPOUT # GO TO COMMON UPDATE PROGRAM EXIT
054915,000547:
054916,000548: 04,3623 04376 +2 TC FALTON # TURN ON 'OPERATOR ERROR' LIGHT
054917,000549: 04,3624 03626 TC UPACTOFF # TURN OFF'UPLINK ACTIVITY'LIGHT
054918,000550: 04,3625 05561 TC ENDEXT # EXTENDED VERB EXIT
054919,000551: # (THE PURPOSE OF UPERROUT +2 EXIT IS
054920,000552: # TO PROVIDE AN ERROR EXIT WHICH DOES NOT
054921,000553: # RESET ANY RESTART GROUPS)
054922,000554:
054923,000555: # :UPACTOFF: IS A ROUTINE TO TURN OFF UPLINK ACTIVITY LIGHT ON ALL EXITS FROM UPDATE PROGRAM (P27).
054924,000556:
054925,000557: 04,3626 45024 UPACTOFF CS BIT3
054926,000558: 04,3627 00006 EXTEND # TURN OFF UPLINK ACTIVITY LIGHT
054927,000559: 04,3630 03011 WAND DSALMOUT # (BIT 3 OF CHANNEL 11)
054928,000560: 04,3631 00002 TC Q
054929,000561:
End of include-file UPDATE_PROGRAM.agc. Parent file is MAIN.agc