Source Code
These source code files are an attempted reconstruction of Sundance revision 306, the Apollo 9
LM (Lunar Module) AGC (Apollo Guidance Computer) flight software, created from binary dumps of
original core rope program modules, as follows:
|
054626,000002: ## Copyright: Public domain.
054627,000003: ## Filename: UPDATE_PROGRAM.agc
054628,000004: ## Purpose: A section of an attempt to reconstruct Sundance revision 306
054629,000005: ## as closely as possible with available information. Sundance
054630,000006: ## 306 is the source code for the Lunar Module's (LM) Apollo
054631,000007: ## Guidance Computer (AGC) for Apollo 9. This program was created
054632,000008: ## using the mixed-revision SundanceXXX as a starting point, and
054633,000009: ## pulling back features from Luminary 69 believed to have been
054634,000010: ## added based on memos, checklists, observed address changes,
054635,000011: ## or the Sundance GSOPs.
054636,000012: ## Assembler: yaYUL
054637,000013: ## Contact: Ron Burkey <info@sandroid.org>.
054638,000014: ## Website: www.ibiblio.org/apollo/index.html
054639,000015: ## Mod history: 2020-07-24 MAS Created from SundanceXXX.
054640,000016: ## 2021-05-30 ABS DELTAOK -> DELTATOK
054641,000017:
054642,000018:
054643,000019:
054644,000020: # PROGRAM NAME: P27
054645,000021: # WRITTEN BY: KILROY/ DE WOLF
054646,000022:
054647,000023: # MOD NO: 6
054648,000024: # MOD BY: KILROY
054649,000025: # DATE: 01DEC67
054650,000026:
054651,000027: # LOG SECTION: UPDATE PROGRAM.
054652,000028:
054653,000029: # FUNCT. DESCR: P27 (THE UPDATE PROGRAM) PROCESSES COMMANDS AND DATA
054654,000030: # INSERTIONS REQUESTED BY THE GROUND VIA UPLINK.
054655,000031: # THE P27 PROGRAM WILL ACCEPT UPDATES
054656,000032: # ONLY DURING P00 FOR THE LM, AND ONLY DURING P00,
054657,000033: # P02, AND FRESH START FOR THE CSM
054658,000034:
054659,000035: # CALLING SEQ: PROGRAM IS INITIATED BY UPLINK ENTRY OF VERBS 70, 71, 72 AND 73.
054660,000036:
054661,000037: # SUBROUTINES: TESTXACT, NEWMODEX, NEWMODEX +3, GOXDSPF, BANKCALL, FINDVAC, INTPRET, INTSTALL, TPAGREE,
054662,000038: # INTWAKEU, ENDEXT, POSTJUMP, FALTON, NEWPHASE, PHASCHNG
054663,000039:
054664,000040: # NORMAL EXIT: TC ENDEXT
054665,000041:
054666,000042: # ALARM/ABORT: TC FALTON FOLLOWED BY TC ENDEXT
054667,000043:
054668,000044: # RESTARTS: P27 IS RESTART PROTECTED IN TWO WAYS...
054669,000045: # 1. PRIOR TO VERIFLAG INVERSION(WHICH IS CAUSED BY THE GROUND/ASTRONAUT'S VERIFICATION OF UPDATE
054670,000046: # DATA BY SENDING A V33E WHEN V21N02 IS FLASHING)---
054671,000047: # NO PROTECTION EXCEPT PRE-P27 MODE IS RESTORED, COAST + ALIGN DOWNLIST IS SELECTED AND UPLINK
054672,000048: # ACTIVITY LIGHT IS TURNED OFF.(JUST AS IF A V34E WAS SENT DURING P27 DATA LOADS).
054673,000049: # V70,V71,V72 OR V73 WILL HAVE TO BE COMPLETELY RESENT BY USER.
054674,000050: # 2. AFTER VERIFLAG INVERSION(WHEN UPDATE OF THE SPECIFIED ERASABLES IS BEING PERFORMED)---
054675,000051: # PROTECTED AGAINST RESTARTS.
054676,000052:
054677,000053: # DEBRIS: UPBUFF (20D) TEMP STORAGE FOR ADDRESSES AND CONTENTS.
054678,000054: # UPVERB (1) VERB NUMBER MINUS 70D (E.G. FOR V72, UPVERB = 72D - 70D = 2)
054679,000055: # UPOLDMOD (1) FOR MAJOR MODE INTERRUPTED BY P27.
054680,000056: # COMPNUMB (1) TOTAL NUMBER OF COMPONENTS TO BE TRANSMITTED.
054681,000057: # UPCOUNT (1) ACTUAL NUMBER OF COMPONENTS RECEIVED.
054682,000058: # UPTEMP (1) SCRATCH, BUT USUALLY CONTAINS COMPONENT NUMBER TO BE CHANGED DURING VERIFY CYCLE
054683,000059:
054684,000060: # INPUT:
054685,000061:
054686,000062: # ENTRY: DESCRIPTION
054687,000063:
054688,000064: # V70EXXXXXEXXXXXE (LIFTOFF TIME INCREMENT) DOUBLE PRECISION OCTAL TIME INCREMENT, XXXXX XXXXX,
054689,000065: # IS ADDED TO TEPHEM, SUBTRACTED FROM AGC CLOCK(TIME2,TIME1), SUBTRACTED FROM CSM STATE
054690,000066: # VECTOR TIME(TETCSM) AND SUBTRACTED FROM LEM STATE VECTOR TIME(TETLEM).
054691,000067: # THE DP OCTAL TIME INCREMENT IS SCALED AT 2(28).
054692,000068: # V71EIIEAAAAE (CONTIGUOUS BLOCK UPDATE) II-2 OCTAL COMPONENTS,XXXXX,
054693,000069: # XXXXXE ARE LOADED INTO ERASABLE STARTING AT ECADR, AAAA.
054694,000070: # XXXXXE IT IS .GE. 3 .AND. .LE. 20D.,
054695,000071: # AND (AAAA + II -3) DOES NOT PRODUCE AN ADDRESS IN THE
054696,000072: # 9 NEXT BANK
054697,000073: # . SCALING IS SAME AS INTERNAL REGISTERS.
054698,000074:
054699,000075: # V72EIIE (SCATTER UPDATE) (II-1)/2 OCTAL COMPONENTS,XXXXX, ARE
054700,000076: # AAAAEXXXXXE LOADED INTO ERASABLE LOCATIONS, AAAA.
054701,000077: # AAAAEXXXXXE II IS .GE. 3 .AND. .LE. 19D, AND MUST BE ODD.
054702,000078: # . SCALING IS SAME AS INTERNAL REGISTERS.
054703,000079:
054704,000080: # V73EXXXXXEXXXXXE (OCTAL CLOCK INCREMENT) DOUBLE PRECISION OCTAL TIME
054705,000081: # INCREMENT XXXXX XXXXX, IS ADDED TO THE AGC CLOCK, IN
054706,000082: # CENTISECONDS SCALED AT (2)28.
054707,000083: # THIS LOAD IS THE OCTAL EQUIVALENT OF V55.
054708,000084:
054709,000085: # OUTPUT: IN ADDITION TO THE ABOVE REGISTER LOADS, ALL UPDATES
054710,000086: # COMPLEMENT BIT3 OF FLAGWORD7.
054711,000087:
054712,000088: # ADDITIONAL NOTES: VERB 71, JUST DEFINED ABOVE WILL BE USED TO PERFORM BUT NOT LIMITED TO THE FOLLOWING UPDATES--
054713,000089: # 1. CSM/LM STATE VECTOR UPDATE
054714,000090: # 2. REFSMMAT UPDATE
054715,000091:
054716,000092: # THE FOLLOWING COMMENTS DELINEATE EACH SPECIAL UPDATE----
054717,000093:
054718,000094: # 1. CSM/LM STATE VECTOR UPDATE (ALL DATA ENTRIES IN OCTAL)
054719,000095:
054720,000096: # ENTRIES: DATA DEFINITION: SCALE FACTORS:
054721,000097: # V71E CONTIGUOUS BLOCK UPDATE VERB
054722,000098: # 21E NUMBER OF COMPONENTS FOR STATE VECTOR UPDATE
054723,000099: # AAAAE ECADR OF 'UPSVFLAG'
054724,000100: # XXXXXE STATE VECTOR IDENTIFIER: 00001 FOR CSM, 77776 FOR LEM - EARTH SPHERE OF INFLUENCE SCALING
054725,000101: # 00002 FOR CSM, 77775 FOR LEM - LUNAR SPHERE OF INFLUENCE SCALING
054726,000102: # XXXXXEXXXXXE X POSITION
054727,000103: # XXXXXEXXXXXE Y POSITION
054728,000104: # XXXXXEXXXXXE Z POSITION
054729,000105: # XXXXXEXXXXXE X VELOCITY
054730,000106: # XXXXXEXXXXXE Y VELOCITY
054731,000107: # XXXXXEXXXXXE Z VELOCITY
054732,000108: # XXXXXEXXXXXE TIME FROM AGC CLOCK ZERO
054733,000109: # V33E VERB 33 TO SIGNAL THAT THE STATE VECTOR IS READY TO BE STORED.
054734,000110:
054735,000111: # 2. REFSMMAT(ALL DATA ENTRIES IN OCTAL)
054736,000112: # ENTRIES: DATA DEFINITIONS: SCALE FACTORS:
054737,000113: # V71E CONTIGUOUS BLOCK UPDATE VERB
054738,000114: # 24E NUMBER OF COMPONENTS FOR REFSMMAT UPDATE
054739,000115: # AAAAE ECADR OF 'REFSMMAT'
054740,000116: # XXXXXEXXXXXE ROW 1 COLUMN 1 2(-1)
054741,000117: # XXXXXEXXXXXE ROW 1 COLUMN 2 2(-1)
054742,000118: # XXXXXEXXXXXE ROW 1 COLUMN 3 2(-1)
054743,000119: # XXXXXEXXXXXE ROW 2 COLUMN 1 2(-1)
054744,000120: # XXXXXEXXXXXE ROW 2 COLUMN 2 2(-1)
054745,000121: # XXXXXEXXXXXE ROW 2 COLUMN 3 2(-1)
054746,000122: # XXXXXEXXXXXE ROW 3 COLUMN 1 2(-1)
054747,000123: # XXXXXEXXXXXE ROW 3 COLUMN 2 2(-1)
054748,000124: # XXXXXEXXXXXE ROW 3 COLUMN 3 2(-1)
054749,000125: # V33E VERB 33 TO SIGNAL THAT REFSMMAT IS READY TO BE STORED.
054750,000126:
054751,000127:
054752,000128: 07,3701 BANK 07
054753,000129: 43,2000 SETLOC EXTVERBS
054754,000130: 43,2000 BANK
054755,000131:
054756,000132: 43,3724 E3,1706 EBANK= TEPHEM
054757,000133:
054758,000134: 43,3724 COUNT* $$/P27
054759,000135: 43,3724 35030 V70UPDAT CAF UP70 # COMES HERE ON V70E
054760,000136: 43,3725 13733 TCF V73UPDAT +1
054761,000137:
054762,000138: 43,3726 35026 V71UPDAT CAF UP71 # COMES HERE ON V71E
054763,000139: 43,3727 13733 TCF V73UPDAT +1
054764,000140:
054765,000141: 43,3730 35025 V72UPDAT CAF UP72 # COMES HERE ON V72E
054766,000142: 43,3731 13733 TCF V73UPDAT +1
054767,000143:
054768,000144: 43,3732 36221 V73UPDAT CAF UP73 # COMES HERE ON V73E
054769,000145:
054770,000146: 43,3733 54300 +1 TS UPVERBSV # SAVE UPVERB UNTIL IT'S OK TO ENTER P27
054771,000147:
054772,000148: 43,3734 02076 TC TESTXACT # GRAB DISPLAY IF AVAILABLE, OTHERWISE
054773,000149: # TURN*OPERATOR ERROR* ON AND TERMINATEJOB
054774,000150:
054775,000151: 43,3735 31012 CA MODREG # CHECK IF UPDATE ALLOWED
054776,000152: 43,3736 00006 EXTEND # FIRST CHECK FOR MODREG = +0, -0
054777,000153: 43,3737 13741 BZF +2 # (+0 = P00, -0 = FRESHSTART)
054778,000154: 43,3740 03751 TC CKMDMORE # NOW CHECK FOR PROGRAM WHICH CAN BE
054779,000155: # INTERRUPTED BY P27.
054780,000156:
054781,000157: 43,3741 31012 CAE MODREG # UPDATE ALLOWED.
054782,000158: 43,3742 54303 TS UPOLDMOD # SAVE CURRENT MAJOR MODE
054783,000159: 43,3743 30300 CAE UPVERBSV # SET UPVERB TO INDICATE TO P27
054784,000160:
054785,000161: 43,3744 54304 TS UPVERB # WHICH EXTENDED VERB CALLED IT.
054786,000162:
054787,000163: 43,3745 35026 CAF ONE
054788,000164: 43,3746 54305 TS UPCOUNT # INITIALIZE UPCOUNT TO 1
054789,000165:
054790,000166: 43,3747 04674 TC POSTJUMP # LEAVE EXTENDED VERB BANK AND
054791,000167: 43,3750 11213 CADR UPPART2 # GO TO UPDATE PROGRAM (P27) BANK.
054792,000168:
054793,000169: 43,3751 40101 CKMDMORE CS FLAGWRD5
054794,000170: 43,3752 75017 MASK BIT8 # CHECK IF COMPUTER IS LGC
054795,000171: 43,3753 10000 CCS A # IS COMPUTER LGC OR AGC
054796,000172: 43,3754 13762 UPERLEM TCF UPERROR # ERROR- IT'S THE LEM + MODE IS NOT POO.
054797,000173: 43,3755 46221 CS THREE
054798,000174: 43,3756 71012 MASK MODREG
054799,000175: 43,3757 10000 CCS A
054800,000176: 43,3760 13762 UPERCMC TCF UPERROR # ERROR- IT'S THE CMC AND MODE IS NOT
054801,000177: # P00 OR P02.
054802,000178: 43,3761 00002 TC Q # ALLOW UPDATE TO PROCEED
054803,000179: 43,3762 04674 UPERROR TC POSTJUMP # TURN ON 'OPERATOR ERROR' LIGHT
054804,000180: 43,3763 11626 CADR UPERROUT +2 # GO TO COMMON UPDATE PROGRAM EXIT
054805,000181:
054806,000182: 43,3764 5030 UP70 EQUALS ZERO
054807,000183: 43,3764 5026 UP71 EQUALS ONE
054808,000184: 43,3764 5025 UP72 EQUALS TWO
054809,000185: 43,3764 6221 UP73 EQUALS THREE
054810,000186:
054811,000187:
054812,000188: 04,3213 BANK 04
054813,000189: 04,2000 SETLOC UPDATE2
054814,000190: 04,2000 BANK
054815,000191:
054816,000192: 04,3213 COUNT* $$/P27
054817,000193:
054818,000194: 04,3213 UPPART2 EQUALS # UPDATE PROGRAM - PART 2
054819,000195:
054820,000196: 04,3213 05423 TC PHASCHNG # SET RESTART GROUP 6 TO RESTORE OLD MODE
054821,000197: 04,3214 07026 OCT 07026 # AND DOWNLIST AND EXIT IF RESTART OCCURS.
054822,000198: 04,3215 30000 OCT 30000 # PRIORITY SAME AS CHRPRIO
054823,000199: 04,3216 0306 EBANK= UPBUFF
054824,000200: 04,3216 03556 10100 2CADR UPOUT +1
054825,000201:
054826,000202: 04,3220 35026 CAF ONE
054827,000203: 04,3221 54332 TS DNLSTCOD # DOWNLIST
054828,000204:
054829,000205: 04,3222 05361 TC NEWMODEX # SET MAJOR MODE = 27
054830,000206: 04,3223 00033 DEC 27 B-14
054831,000207:
054832,000208: 04,3224 50304 INDEX UPVERB # BRANCH DEPENDING ON WHETHER THE UPDATE
054833,000209: 04,3225 13226 TCF +1 # VERB REQUIRES A FIXED OR VARIABLE NUMBER
054834,000210: 04,3226 13231 TCF +3 # V70 FIXED. (OF COMPONENTS.
054835,000211: 04,3227 13234 TCF OHWELL1 # V71 VARIABLE - GO GET NO. OF COMPONENTS
054836,000212: 04,3230 13234 TCF OHWELL1 # V72 VARIABLE - GO GET NO. OF COMPONENTS
054837,000213: 04,3231 35025 CA TWO # V73 (AND V70) FIXED
054838,000214: 04,3232 54302 TS COMPNUMB # SET NUMBER OF COMPONENTS TO 2.
054839,000215: 04,3233 13257 TCF OHWELL2 # GO GET THE TWO UPDATE COMPONENTS
054840,000216:
054841,000217: 04,3234 33333 OHWELL1 CAF ADUPBUFF # * REQUEST USER TO SEND NUMBER *
054842,000218: 04,3235 54156 TS MPAC +2 # * OF COMPONENTS PARAMETER(II).*
054843,000219: 04,3236 33334 +2 CAF UPLOADNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
054844,000220: 04,3237 04655 TC BANKCALL # DISPLAY A FLASHING V21N01
054845,000221: 04,3240 20226 CADR GOXDSPF # TO REQUEST II.
054846,000222: 04,3241 13556 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN
054847,000223: 04,3242 13236 TCF OHWELL1 +2
054848,000224: 04,3243 03322 TC CK4V32 # DATA OR V32 RETURN
054849,000225: 04,3244 45025 CS BIT2
054850,000226: 04,3245 60306 AD UPBUFF # IS II (NUMBER OF COMPONENTS PARAMETER)
054851,000227: 04,3246 00006 EXTEND # .GE. 3 AND .LE. 20D.
054852,000228: 04,3247 63234 BZMF OHWELL1
054853,000229: 04,3250 40306 CS UPBUFF
054854,000230: 04,3251 64374 AD UP21
054855,000231: 04,3252 00006 EXTEND
054856,000232: 04,3253 63234 BZMF OHWELL1
054857,000233: 04,3254 30306 CAE UPBUFF
054858,000234: 04,3255 54302 TS COMPNUMB # SAVE II IN COMPNUMB
054859,000235:
054860,000236: # UPBUFF LOADING SEQUENCE
054861,000237:
054862,000238: 04,3256 24305 INCR UPCOUNT # INCREMENT COUNT OF COMPONENTS RECEIVED.
054863,000239: 04,3257 33336 OHWELL2 CAF ADUPBFM1 # CALCULATE LOCATION(ECADR) IN UPBUFF
054864,000240: 04,3260 60305 AD UPCOUNT # WHERE NEXT COMPONENT SHOULD BE STORED.
054865,000241: 04,3261 54156 +2 TS MPAC +2 # PLACE ECADR INTO R3.
054866,000242: 04,3262 33334 +3 CAF UPLOADNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
054867,000243: 04,3263 04655 TC BANKCALL # DISPLAY A FLASHING V21N01
054868,000244: 04,3264 20226 CADR GOXDSPF # TO REQUEST DATA.
054869,000245: 04,3265 13556 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN.
054870,000246: 04,3266 13262 TCF OHWELL2 +3 # V33 PROCEED RETURN
054871,000247: 04,3267 03322 TC CK4V32 # DATA OR V32 RETURN
054872,000248: 04,3270 40305 CS UPCOUNT # HAVE WE FINISHED RECEIVING ALL
054873,000249: 04,3271 60302 AD COMPNUMB # THE DATA WE EXPECTED.
054874,000250: 04,3272 00006 EXTEND
054875,000251: 04,3273 63275 BZMF UPVERIFY # YES- GO TO VERIFICATION SEQUENCE
054876,000252: 04,3274 13256 TCF OHWELL2 -1 # NO- REQUEST ADDITIONAL DATA.
054877,000253:
054878,000254: # VERIFY SEQUENCE
054879,000255:
054880,000256: 04,3275 33332 UPVERIFY CAF ADUPTEMP # PLACE ECADR WHERE COMPONENT NO. INDEX
054881,000257: 04,3276 54156 TS MPAC +2 # IS TO BE STORED INTO R3.
054882,000258: 04,3277 33335 CAF UPVRFYNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
054883,000259: 04,3300 04655 TC BANKCALL # DISPLAY A FLASHING V21N02 TO REQUEST
054884,000260: 04,3301 20226 CADR GOXDSPF # DATA CORRECTION OR VERIFICATION.
054885,000261: 04,3302 13556 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN
054886,000262: 04,3303 13337 TCF UPSTORE # V33 DATA SENT IS GOOD. GO STORE IT.
054887,000263: 04,3304 03322 TC CK4V32 # COMPONENT NO. INDEX OR V32 RETURN
054888,000264: 04,3305 10301 CCS UPTEMP # DOES THE COMPONENT NO. INDEX JUST SENT
054889,000265: 04,3306 13312 TCF +4 # SPECIFY A LEGAL COMPONENT NUMBER?
054890,000266: 04,3307 13275 TCF UPVERIFY # NO, IT IS NOT POSITIVE NONZERO
054891,000267: 04,3310 13275 TCF UPVERIFY
054892,000268: 04,3311 13275 TCF UPVERIFY
054893,000269: 04,3312 40301 CS UPTEMP
054894,000270: 04,3313 60302 AD COMPNUMB
054895,000271: 04,3314 65026 AD BIT1
054896,000272: 04,3315 00006 EXTEND
054897,000273: 04,3316 63275 BZMF UPVERIFY # NO
054898,000274: 04,3317 33336 CAF ADUPBFM1 # YES- BASED ON THE COMPONENT NO. INDEX
054899,000275: 04,3320 60301 AD UPTEMP # CALCULATE THE ECADR OF LOCATION IN
054900,000276: 04,3321 13261 TCF OHWELL2 +2 # UPBUFF WHICH USER WANTS TO CHANGE.
054901,000277:
054902,000278: 04,3322 04,3556 UPOUT4 EQUALS UPOUT +1 # COMES HERE ON V34 TO TERMINATE UPDATE
054903,000279:
054904,000280: # CHECK FOR VERB 32 SEQUENCE
054905,000281:
054906,000282: 04,3322 40154 CK4V32 CS MPAC # ON DATA RETURN FROM 'GOXDSPF'
054907,000283: 04,3323 65021 AD BIT6 # ON DATA RETURN FROM "GOXDSP"& THE CON-
054908,000284: 04,3324 00006 EXTEND # TENTS OF MPAC = VERB. SO TEST FOR V32.
054909,000285: 04,3325 13327 BZF +2
054910,000286: 04,3326 00002 TC Q # IT'S NOT A V32, IT'S DATA. PROCEED.
054911,000287: 04,3327 46216 CS SIX
054912,000288: 04,3330 60002 AD Q
054913,000289: 04,3331 00000 TC A # V32 ENCOUNTERED - GO BACK AND GET DATA
054914,000290:
054915,000291: 04,3332 00301 ADUPTEMP ADRES UPTEMP # ADDRESS OF TEMP STORAGE FOR CORRECTIONS
054916,000292: 04,3333 00306 ADUPBUFF ADRES UPBUFF # ADDRESS OF UPDATE DATA STORAGE BUFFER
054917,000293: 04,3334 05201 UPLOADNV VN 2101 # VERB 21 NOUN 01
054918,000294: 04,3335 05202 UPVRFYNV VN 2102 # VERB 21 NOUN 02
054919,000295: 04,3336 00305 ADUPBFM1 ADRES UPBUFF -1 # SAME AS ADUPBUFF BUT LESS 1
054920,000296: 04,3337 4374 UP21 = MD1 # DEC 21 = MAX NO OF COMPONENTS +1
054921,000297: 04,3337 5031 UPDTPHAS EQUALS FIVE
054922,000298:
054923,000299: # PRE-STORE AND FAN TO APPROPRIATE BRANCH SEQUENCE
054924,000300:
054925,000301: 04,3337 UPSTORE EQUALS # GROUND HAS VERIFIED UPDATE. STORE DATA.
054926,000302:
054927,000303: 04,3337 00004 INHINT
054928,000304:
054929,000305: 04,3340 30103 CAE FLAGWRD7 # INVERT VERIFLAG(BIT 3 OF FLAGWRD7) TO
054930,000306: 04,3341 56001 XCH L # INDICATE TO THE GROUND(VIA DOWNLINK)
054931,000307: 04,3342 35024 CAF VERIFBIT # THAT THE V33 (WHICH THE GROUND SENT TO
054932,000308: 04,3343 00006 EXTEND # VERIFY THE UPDATE) HAS BEEN SUCCESSFULLY
054933,000309: 04,3344 06001 RXOR LCHAN # RECEIVED BY THE UPDATE PROGRAM
054934,000310: 04,3345 54103 TS FLAGWRD7
054935,000311:
054936,000312: 04,3346 05423 TC PHASCHNG # SET RESTART GROUP 6 TO REDO THE UPDATE
054937,000313: 04,3347 04026 OCT 04026 # DATA STORE IF A RESTART OCCURS.
054938,000314: 04,3350 00004 INHINT # (BECAUSE PHASCHNG DID A RELINT)
054939,000315:
054940,000316: 04,3351 50304 INDEX UPVERB # GO TO UPFNDVAC IF INSTALL IS REQUIRED,
054941,000317: 04,3352 13353 TCF +1 # THAT IS, IF IT'S A V70 - V72.
054942,000318: 04,3353 13364 TCF UPFNDVAC
054943,000319: 04,3354 13364 TCF UPFNDVAC
054944,000320: 04,3355 13364 TCF UPFNDVAC
054945,000321:
054946,000322: # VERB 73 BRANCH
054947,000323: 04,3356 00006 UPEND73 EXTEND # V73-PERFORM DP OCTAL AGC CLOCK INCREMENT
054948,000324:
054949,000325: 04,3357 30307 DCA UPBUFF
054950,000326: 04,3360 52317 DXCH UPBUFF +8D
054951,000327: 04,3361 03410 TC TIMEDIDL
054952,000328: 04,3362 04376 TC FALTON # ERROR- TURN ON *OPERATOR ERROR* LIGHT
054953,000329: 04,3363 03556 TC UPOUT +1 # GO TO COMMON UPDATE PROGRAM EXIT
054954,000330:
054955,000331: 04,3364 34367 UPFNDVAC CAF CHRPRIO # (USE EXTENDED VERB PRIORITY)
054956,000332: 04,3365 05155 TC FINDVAC # GET VAC AREA FOR 'CALL INTSTALL'
054957,000333: 04,3366 E3,1706 EBANK= TEPHEM
054958,000334: 04,3366 03371 10103 2CADR UPJOB # (NOTE: THIS WILL ALSO SET EBANK FOR
054959,000335:
054960,000336: 04,3370 05225 TC ENDOFJOB # 'TEPHEM' UPDATE BY V70)
054961,000337:
054962,000338: 04,3371 06014 UPJOB TC INTPRET # THIS COULD BE A STATE VECTOR UPDATE--SO
054963,000339: 04,3372 77624 CALL # WAIT(PUT JOB TO SLEEP) IF ORBIT INT(OI)
054964,000340: 04,3373 27362 INTSTALL # IS IN PROGRESS--OR--GRAB OI AND RETURN
054965,000341: # TO UPWAKE IF OI IS NOT IN PROGRESS.
054966,000342:
054967,000343: 04,3374 77776 UPWAKE EXIT
054968,000344:
054969,000345: 04,3375 05423 TC PHASCHNG # RESTART PROTECT(GROUP 6)
054970,000346: 04,3376 04026 OCT 04026
054971,000347:
054972,000348: 04,3377 00004 INHINT
054973,000349: 04,3400 40774 CS RASFLAG # SET INTEGRATION RESTART BIT
054974,000350: 04,3401 75020 MASK REINTBIT
054975,000351: 04,3402 26774 ADS RASFLAG
054976,000352: 04,3403 UPPART3 EQUALS
054977,000353:
054978,000354: 04,3403 50304 INDEX UPVERB # BRANCH TO THE APPROPRIATE UPDATE VERB
054979,000355: 04,3404 13405 TCF +1 # ROUTINE TO ACTUALLY PERFORM THE UPDATE
054980,000356: 04,3405 13567 TCF UPEND70 # V70
054981,000357: 04,3406 13453 TCF UPEND71 # V71
054982,000358: 04,3407 13511 TCF UPEND72 # V72
054983,000359:
054984,000360: # ROUTINE TO INCREMENT CLOCK(TIME2,TIME1) WITH CONTENTS OF DP WORD AT UPBUFF.
054985,000361:
054986,000362: 04,3410 00006 TIMEDIDL EXTEND
054987,000363: 04,3411 22301 QXCH UPTEMP # SAVE Q FOR RETURN
054988,000364: 04,3412 35030 CAF ZERO # ZERO AND SAVE TIME2,TIME1
054989,000365: 04,3413 22007 ZL
054990,000366: 04,3414 52025 DXCH TIME2
054991,000367: 04,3415 52331 DXCH UPBUFF +18D # STORE IN CASE OF OVERFLOW
054992,000368:
054993,000369: 04,3416 35031 CAF UPDTPHAS # DO
054994,000370: 04,3417 54001 TS L # A
054995,000371: 04,3420 40000 COM # QUICK
054996,000372: 04,3421 52765 DXCH -PHASE6 # PHASCHNG
054997,000373: 04,3422 00004 TIMEDIDR INHINT
054998,000374:
054999,000375: 04,3423 35030 CAF ZERO
055000,000376: 04,3424 22007 ZL # PICK UP INCREMENTER(AND ZERO
055001,000377: 04,3425 54156 TS MPAC +2 # IT IN CASE OF RESTARTS) AND
055002,000378: 04,3426 52317 DXCH UPBUFF +8D # STORE IT
055003,000379: 04,3427 52155 DXCH MPAC # INTO MPAC FOR TPAGREE.
055004,000380:
055005,000381: 04,3430 00006 EXTEND
055006,000382: 04,3431 30331 DCA UPBUFF +18D
055007,000383: 04,3432 20155 DAS MPAC # FORM SUM IN MPAC
055008,000384: 04,3433 00006 EXTEND
055009,000385: 04,3434 13443 BZF DELTATOK # TEST FOR OVERFLOW
055010,000386: 04,3435 35030 CAF ZERO
055011,000387: 04,3436 52331 DXCH UPBUFF +18D # OVERFLOW, RESTORE OLD VALUE OF CLOCK
055012,000388: 04,3437 20025 DAS TIME2 # AND TURN ON OPERATOR ERROR
055013,000389:
055014,000390: 04,3440 05423 TC PHASCHNG # RESTART PROTECT(GROUP 6)
055015,000391: 04,3441 04026 OCT 04026
055016,000392:
055017,000393: 04,3442 00301 TC UPTEMP # GO TO ERROR EXIT
055018,000394:
055019,000395: 04,3443 07231 DELTATOK TC TPAGREE # FORCE SIGN AGREEMENT
055020,000396: 04,3444 52155 DXCH MPAC
055021,000397: 04,3445 20025 DAS TIME2 # INCREMENT TIME2,TIME1
055022,000398:
055023,000399: 04,3446 05423 TC PHASCHNG # RESTART PROTECT(GROUP 6)
055024,000400: 04,3447 04026 OCT 04026
055025,000401:
055026,000402: 04,3450 00004 INHINT
055027,000403: 04,3451 50301 INDEX UPTEMP # (CODED THIS WAY FOR RESTART PROTECTION)
055028,000404: 04,3452 00001 TC 1 # NORMAL RETURN
055029,000405:
055030,000406: # VERB 71 BRANCH
055031,000407:
055032,000408: 04,3453 43507 UPEND71 CS ENDSAFE
055033,000409: 04,3454 60307 AD UPBUFF +1
055034,000410: 04,3455 00006 EXTEND
055035,000411: 04,3456 63624 BZMF UPERROUT
055036,000412:
055037,000413: 04,3457 30307 CAE UPBUFF +1 # SET EBANK
055038,000414: 04,3460 54003 TS EBANK # AND
055039,000415: 04,3461 74371 MASK LOW8 # CALCULATE
055040,000416: 04,3462 54301 TS UPTEMP # S-REG VALUE OF RECEIVING AREA
055041,000417:
055042,000418: 04,3463 67717 AD NEG3 # IN THE PROCESS OF
055043,000419: 04,3464 60302 AD COMPNUMB # PERFORMING
055044,000420: 04,3465 00006 EXTEND # THIS UPDATE
055045,000421: 04,3466 13474 BZF STORLP71 # WILL WE
055046,000422: 04,3467 75016 MASK BIT9 # OVERFLOW
055047,000423: 04,3470 10000 CCS A # INTO THE NEXT EBANK....
055048,000424: 04,3471 13624 TCF UPERROUT # YES
055049,000425:
055050,000426: 04,3472 37717 CA NEG3 # NO- CALCULATE NUMBER OF
055051,000427: 04,3473 60302 AD COMPNUMB # WORDS TO BE STORED MINUS ONE
055052,000428: 04,3474 54154 STORLP71 TS MPAC # SAVE NO. OF WORDS REMAINING MINUS ONE
055053,000429: 04,3475 50000 INDEX A # TAKE NEXT UPDATE WORD FROM
055054,000430: 04,3476 30310 CA UPBUFF +2 # UPBUFF AND
055055,000431: 04,3477 22000 LXCH A # SAVE IT IN L
055056,000432: 04,3500 30154 CA MPAC # CALCULATE NEXT
055057,000433: 04,3501 60301 AD UPTEMP # RECEIVING ADDRESS
055058,000434: 04,3502 50000 INDEX A
055059,000435: 04,3503 E3,1400 EBANK= 1400
055060,000436: 04,3503 23400 LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
055061,000437: 04,3504 E3,1706 EBANK= TEPHEM
055062,000438: 04,3504 10154 CCS MPAC # ARE THERE ANY WORDS LEFT TO BE STORED
055063,000439: 04,3505 13474 TCF STORLP71 # YES
055064,000440: 04,3506 13555 TCF UPOUT # NO- THEN EXIT UPDATE PROGRAM
055065,000441: 04,3507 01074 ENDSAFE ADRES R1SAVE
055066,000442: 04,3510 13555 TCF UPOUT # NO- EXIT UPDATE(HERE WHEN COMPNUMB = 3)
055067,000443:
055068,000444: # VERB 72 BRANCH
055069,000445:
055070,000446: 04,3511 35026 UPEND72 CAF BIT1 # HAVE AN ODD NO. OF COMPONENTS
055071,000447: 04,3512 70302 MASK COMPNUMB # BEEN SENT FOR A V72 UPDATE ...
055072,000448: 04,3513 10000 CCS A
055073,000449: 04,3514 13516 TCF +2 # YES
055074,000450: 04,3515 13624 TCF UPERROUT # ERROR- SHOULD BE ODD NO. OF COMPONENTS
055075,000451: 04,3516 00003 RELINT
055076,000452: 04,3517 45025 CS BIT2
055077,000453: 04,3520 60302 AD COMPNUMB
055078,000454: 04,3521 54154 LMLOOP72 TS MPAC
055079,000455: 04,3522 50000 INDEX A
055080,000456: 04,3523 30306 CAE UPBUFF
055081,000457: 04,3524 56001 XCH L
055082,000458: 04,3525 43507 CS ENDSAFE
055083,000459: 04,3526 60001 AD L
055084,000460: 04,3527 00006 EXTEND
055085,000461: 04,3530 63624 BZMF UPERROUT
055086,000462: 04,3531 10154 CCS MPAC
055087,000463: 04,3532 10000 CCS A
055088,000464: 04,3533 13521 TCF LMLOOP72
055089,000465: 04,3534 00004 INHINT
055090,000466: 04,3535 45025 CS BIT2
055091,000467: 04,3536 60302 AD COMPNUMB
055092,000468: 04,3537 54154 LDLOOP72 TS MPAC # NOW PERFORM THE UPDATE
055093,000469: 04,3540 50000 INDEX A
055094,000470: 04,3541 30307 CAE UPBUFF +1 # PICK UP NEXT UPDATE WORD
055095,000471: 04,3542 22000 LXCH A
055096,000472: 04,3543 10154 CCS MPAC # SET POINTER TO ECADR (MUST BE CCS)
055097,000473: 04,3544 54154 TS MPAC
055098,000474: 04,3545 50000 INDEX A
055099,000475: 04,3546 30307 CAE UPBUFF +1 # PICK UP NEXT ECADR OF REG TO BE UPDATED
055100,000476: 04,3547 54003 TS EBANK # SET EBANK
055101,000477: 04,3550 74371 MASK LOW8 # ISOLATE RELATIVE ADDRESS
055102,000478: 04,3551 50000 INDEX A
055103,000479: 04,3552 E3,1400 EBANK= 1400
055104,000480: 04,3552 23400 LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
055105,000481: 04,3553 E3,1706 EBANK= TEPHEM
055106,000482: 04,3553 10154 CCS MPAC # ARE WE THROUGH THE V72 UPDATE...
055107,000483: 04,3554 13537 TCF LDLOOP72 # NO
055108,000484:
055109,000485: # NORMAL FINISH OF P27
055110,000486:
055111,000487: 04,3555 UPOUT EQUALS
055112,000488: 04,3555 03000 TC INTWAKEU # RELEASE GRAB OF ORBITAL INTEGRATION
055113,000489: 04,3556 30303 +1 CAE UPOLDMOD # RESTORE PRIOR P27 MODE
055114,000490: 04,3557 05364 TC NEWMODEX +3
055115,000491: 04,3560 35030 CAF ZERO
055116,000492: 04,3561 54332 TS DNLSTCOD
055117,000493: 04,3562 03631 TC UPACTOFF # TURN OFF 'UPLINK ACTIVITY' LIGHT
055118,000494:
055119,000495: 04,3563 35030 CAF ZERO # KILL GROUP 6.
055120,000496: 04,3564 05511 TC NEWPHASE
055121,000497: 04,3565 00006 OCT 6
055122,000498:
055123,000499: 04,3566 05564 TC ENDEXT # EXTENDED VERB EXIT
055124,000500:
055125,000501: # VERB 70 BRANCH
055126,000502:
055127,000503: 04,3567 00006 UPEND70 EXTEND # V70 DOES THE FOLLOWING WITH DP DELTA
055128,000504: 04,3570 40307 DCS UPBUFF # TIME IN UPBUFF
055129,000505: 04,3571 52317 DXCH UPBUFF +8D
055130,000506: 04,3572 03410 TC TIMEDIDL # DECREMENT AGC CLOCK
055131,000507:
055132,000508: 04,3573 03624 TC UPERROUT # ERROR WHILE DECREMENTING CLOCK -- EXIT
055133,000509:
055134,000510: 04,3574 E3,1706 EBANK= TEPHEM
055135,000511: 04,3574 00006 EXTEND
055136,000512: 04,3575 40307 DCS UPBUFF # COPY DECREMENTERS FOR
055137,000513: 04,3576 52321 DXCH UPBUFF +10D # RESTART PROTECTION
055138,000514: 04,3577 00006 EXTEND
055139,000515: 04,3600 40307 DCS UPBUFF
055140,000516: 04,3601 52323 DXCH UPBUFF +12D
055141,000517:
055142,000518: 04,3602 05423 TC PHASCHNG # RESTART PROTECT(GROUP 6)
055143,000519: 04,3603 04026 OCT 04026
055144,000520:
055145,000521: 04,3604 35030 CAF ZERO
055146,000522: 04,3605 22007 ZL
055147,000523: 04,3606 52321 DXCH UPBUFF +10D # DECREMENT CSM STATE VECTOR TIME
055148,000524: 04,3607 21571 DAS TETCSM
055149,000525:
055150,000526: 04,3610 35030 CAF ZERO
055151,000527: 04,3611 22007 ZL
055152,000528: 04,3612 52323 DXCH UPBUFF +12D # DECREMENT LEM STATE VECTOR TIME
055153,000529: 04,3613 21643 DAS TETLEM
055154,000530:
055155,000531: 04,3614 35030 CAF ZERO
055156,000532: 04,3615 22007 ZL
055157,000533: 04,3616 52307 DXCH UPBUFF
055158,000534: 04,3617 21710 DAS TEPHEM +1 # INCREMENT TP TEPHEM
055159,000535: 04,3620 27706 ADS TEPHEM
055160,000536:
055161,000537: 04,3621 05423 TC PHASCHNG # RESTART PROTECT(GROUP 6)
055162,000538: 04,3622 04026 OCT 04026
055163,000539:
055164,000540: 04,3623 0306 EBANK= UPBUFF
055165,000541: 04,3623 03555 TC UPOUT # GO TO STANDARD UPDATE PROGRAM EXIT
055166,000542:
055167,000543:
055168,000544: # ERROR SEQUENCE
055169,000545:
055170,000546: 04,3624 04376 UPERROUT TC FALTON # TURN ON *OPERATOR ERROR* LIGHT
055171,000547: 04,3625 13555 TCF UPOUT # GO TO COMMON UPDATE PROGRAM EXIT
055172,000548:
055173,000549: 04,3626 04376 +2 TC FALTON # TURN ON 'OPERATOR ERROR' LIGHT
055174,000550: 04,3627 03631 TC UPACTOFF # TURN OFF'UPLINK ACTIVITY'LIGHT
055175,000551: 04,3630 05564 TC ENDEXT # EXTENDED VERB EXIT
055176,000552: # (THE PURPOSE OF UPERROUT +2 EXIT IS
055177,000553: # TO PROVIDE AN ERROR EXIT WHICH DOES NOT
055178,000554: # RESET ANY RESTART GROUPS)
055179,000555:
055180,000556: # :UPACTOFF: IS A ROUTINE TO TURN OFF UPLINK ACTIVITY LIGHT ON ALL EXITS FROM UPDATE PROGRAM (P27).
055181,000557:
055182,000558: 04,3631 45024 UPACTOFF CS BIT3
055183,000559: 04,3632 00006 EXTEND # TURN OFF UPLINK ACTIVITY LIGHT
055184,000560: 04,3633 03011 WAND DSALMOUT # (BIT 3 OF CHANNEL 11)
055185,000561: 04,3634 00002 TC Q
055186,000562:
End of include-file UPDATE_PROGRAM.agc. Parent file is MAIN.agc