Source Code
058934,000001: # Copyright: Public domain.
058935,000002: # Filename: UPDATE_PROGRAM.agc
058936,000003: # Purpose: Part of the source code for Luminary 1A build 099.
058937,000004: # It is part of the source code for the Lunar Module's (LM)
058938,000005: # Apollo Guidance Computer (AGC), for Apollo 11.
058939,000006: # Assembler: yaYUL
058940,000007: # Contact: Ron Burkey <info@sandroid.org>.
058941,000008: # Website: www.ibiblio.org/apollo.
058942,000009: # Pages: 1386-1396
058943,000010: # Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
058944,000011: # from the Luminary131/ file of the same
058945,000012: # name, using Luminary099 page images.
058946,000013: # 2009-06-07 RSB Added an SBANK= to account for incompatibilities
058947,000014: # between YUL and yaYUL.
058948,000015:
058949,000016: # This source code has been transcribed or otherwise adapted from
058950,000017: # digitized images of a hardcopy from the MIT Museum. The digitization
058951,000018: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of
058952,000019: # the Museum. Many thanks to both. The images (with suitable reduction
058953,000020: # in storage size and consequent reduction in image quality as well) are
058954,000021: # available online at www.ibiblio.org/apollo. If for some reason you
058955,000022: # find that the images are illegible, contact me at info@sandroid.org
058956,000023: # about getting access to the (much) higher-quality images which Paul
058957,000024: # actually created.
058958,000025:
058959,000026: # Notations on the hardcopy document read, in part:
058960,000027:
058961,000028: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61
058962,000029: # 16:27 JULY 14, 1969
058963,000030:
058964,000031: # Page 1386
058965,000032: # PROGRAM NAME: P27
058966,000033: # WRITTEN BY: KILROY/ DE WOLF
058967,000034:
058968,000035: # MOD NO: 6
058969,000036: # MOD BY: KILROY
058970,000037: # DATE: 01DEC67
058971,000038:
058972,000039: # LOG SECTION: UPDATE PROGRAM.
058973,000040:
058974,000041: # FUNCT. DESCR.: P27 (THE UPDATE PROGRAM) PROCESSES COMMANDS AND DATA
058975,000042: # INSERTIONS REQUESTED BY THE GROUND VIA UPLINK.
058976,000043: # THE P27 PROGRAM WILL ACCEPT UPDATES
058977,000044: # ONLY DURING P00 FOR THE LM, AND ONLY DURINT P00,
058978,000045: # P02, AND FRESH START FOR THE CSM
058979,000046:
058980,000047: # CALLING SEQ: PROGRAM IS INITIATED BY UPLINK ENTRY OF VERBS 70, 71, 72, AND 73.
058981,000048:
058982,000049: # SUBROUTINES: TESTXACT, NEWMODEX, NEWMODEX +3, GOXDSPF, BANKCALL, FINDVAC, INTPRET, INTSTALL, TPAGREE,
058983,000050: # INTWAKEU, ENDEXT, POSTJUMP, FALTON, NEWPHASE, PHASCHNG
058984,000051:
058985,000052: # NORMAL EXIT: TC ENDEXT
058986,000053:
058987,000054: # ALARM/ABORT: TC FALTON FOLLOWED BY TC ENDEXT
058988,000055:
058989,000056: # RESTARTS: P27 IS RESTART PROTECTED IN TWO WAYS ...
058990,000057: # 1. PRIOR TO VERIFLAG INVERSION (WHICH IS CAUSED BY THE GROUND/ASTRONAUT'S VERIFICATION OF UPDATE
058991,000058: # DATA BY SENDING A V33E WHEN V21N02 IS FLASHING)---
058992,000059: # NO PROTECTION EXCEPT PRE-P27 MODE IS RESTROED, COAST + ALIGN DOWNLIST IS SELECTED AND UPLINK
058993,000060: # ACTIVITY LIGHT IS TURNED OFF. (JUST AS IF A V34E WAS SENT DURING P27 DATA LOADS).
058994,000061: # V70,V71,V72, OR V73 WILL HAVE TO BE COMPLETELY RESENT BY USER.
058995,000062: # 2. AFTER VERIFLAG INVERSION (WHEN UPDATE OF THE SPECIFIED ERASABLES IS BEING PERFORMED)---
058996,000063: # PROTECTED AGAINST RESTARTS.
058997,000064:
058998,000065: # DEBRIS: UPBUFF (20D) TEMP STORAGE FOR ADDRESSES AND CONTENTS.
058999,000066: # UPVERB (1) VERB NUMBER MINUS 70D (E.G., FOR V72, UPVERB = 72D - 70D = 2)
059000,000067: # UPOLDMOD(1) FOR MAJOR MODE INTERRUPTED BY P27.
059001,000068: # COMPNUMB(1) TOTAL NUMBER OF COMPONENTS TO BE TRANSMITTED.
059002,000069: # UPCOUNT (1) ACTUAL NUMBER OF COMPONENTS RECEIVED.
059003,000070: # UPTEMP (1) SCRATCH, BUT USUALLY CONTAINS COMPONENT NUMBER TO BE CHANGED DURING VERIFY CYCLE
059004,000071:
059005,000072: # INPUT:
059006,000073:
059007,000074: # ENTRY DESCRIPTION
059008,000075: # V70EXXXXXEXXXXXE (LIFTOFF TIME INCREMENT) DOUBLE PRECISION OCTAL TIME INCREMENT, XXXXX XXXXX,
059009,000076: # IS ADDED TO TEPHEM, SUBTRACTED FROM AGC CLOCK(TIME2,TIME1), SUBTRACTED FROM CSM STATE
059010,000077: # VECTOR TIME(TETCSM) AND SUBTRACTED FROM LEM STATE VECTOR TIME(TETLEM).
059011,000078: # THE DP OCTAL TIME INCREMENT IS SCALED AT 2(28).
059012,000079: # Page 1387
059013,000080: # V71EIIEAAAAE (CONTIGUOUS BLOCK UPDATE) II-2 OCTAL COMPONENTS, XXXXX,
059014,000081: # XXXXXE ARE LOADED INTO ERASABLE STARTING AT ECADR, AAAA.
059015,000082: # XXXXXE IT IS .GE. 3 .AND. .LE. 200.,
059016,000083: # ... AND (AAAA + II -3) DOES NOT PRODUCE AN ADDRESS IN THE
059017,000084: # NEXT BANK.
059018,000085: # SCALING IS SAME AS INTERNAL REGISTERS.
059019,000086: # V72EIIE (SCATTER UPDATE) (II-1)/2 OCTAL COMPONENTS, XXXXX, ARE
059020,000087: # AAAAEXXXXXE LOADED INTO ERASABLE LOCATIONS, AAAA.
059021,000088: # AAAAEXXXXXE II IS .GE. 3 .AND. .LE. 19D, AND MUST BE ODD.
059022,000089: # ... SCALING IS SAME AS INTERNAL REGISTERS.
059023,000090:
059024,000091: # V73EXXXXXEXXXXXE (OCTAL CLOCK INCREMENT) DOUBLE PRECISION OCTAL TIME
059025,000092: # INCREMENT XXXXX XXXXX, IS ADDED TO THE AGC CLOCK, IN
059026,000093: # CENTISECONDS SCALED AT (2)28).
059027,000094: # THIS LOAD IS THE OCTAL EQUIVALENT OF V55.
059028,000095:
059029,000096: # OUTPUT: IN ADDITION TO THE ABOVE REGISTER LOADS, ALL UPDATES
059030,000097: # COMPLEMENT BIT3 OF FLAGWORD7.
059031,000098:
059032,000099: # ADDITIONAL NOTES: VERB 71, JUST DEFINED ABOVE WILL BE USED TO PERFORM BUT NOT LIMITED TO THE FOLLOWING UPDATES --
059033,000100: # 1. CSM/LM STATE VECTOR UPDATE
059034,000101: # 2. REFSMMAT UPDATE
059035,000102:
059036,000103: # THE FOLLOWING COMMENTS DELINEATE EACH SPECIAL UPDATE ---
059037,000104:
059038,000105: # 1. CSM/LM STATE VECTOR UPDATE (ALL DATA ENTRIES IN OCTAL)
059039,000106: # ENTRIES: DATA DEFINITION: SCALE FACTORS:
059040,000107: # V71E CONTIGUOUS BLOCK UPDATE VERB
059041,000108: # 21E NUMBER OF COMPONENTS FOR STATE VECTOR UPDATE
059042,000109: # AAAAE ECADR OF `UPSVFLAG'
059043,000110: # XXXXXE STATE VECTOR IDENTIFIER: 00001 FOR CSM, 77776 FOR LEM -- EARTH SPHERE OF INFLUENCE SCALING
059044,000111: # 00002 FOR CSM, 77775 FOR LEM -- LUNAR SPHERE OF INFLUENCE SCALING
059045,000112: # XXXXXEXXXXXE X POSITION
059046,000113: # XXXXXEXXXXXE Y POSITION
059047,000114: # XXXXXEXXXXXE Z POSITION
059048,000115: # XXXXXEXXXXXE X VELOCITY
059049,000116: # XXXXXEXXXXXE Y VELOCITY
059050,000117: # XXXXXEXXXXXE Z VELOCITY
059051,000118: # XXXXXEXXXXXE TIME FROM AGC CLOCK ZERO
059052,000119: # V33E VERB 33 TO SIGNAL THAT THE STATE VECTOR IS READY TO BE STORED.
059053,000120:
059054,000121: # 2. REFSMMAT (ALL DATA ENTRIES IN OCTAL)
059055,000122: # ENTRIES: DATA DEFINITITIONS: SCALE FACTORS:
059056,000123: # Page 1388
059057,000124: # V71E CONTIGUOUS BLOCK UPDATE VERB
059058,000125: # 24E NUMBER OF COMPONENTS FOR REFSMMAT UPDATE
059059,000126: # AAAAE ECADR OF `REFSMMAT'
059060,000127: # XXXXXEXXXXXE ROW 1 COLUMN 1 2(-1)
059061,000128: # XXXXXEXXXXXE ROW 1 COLUMN 2 2(-1)
059062,000129: # XXXXXEXXXXXE ROW 1 COLUMN 3 2(-1)
059063,000130: # XXXXXEXXXXXE ROW 2 COLUMN 1 2(-1)
059064,000131: # XXXXXEXXXXXE ROW 2 COLUMN 2 2(-1)
059065,000132: # XXXXXEXXXXXE ROW 2 COLUMN 3 2(-1)
059066,000133: # XXXXXEXXXXXE ROW 3 COLUMN 1 2(-1)
059067,000134: # XXXXXEXXXXXE ROW 3 COLUMN 2 2(-1)
059068,000135: # XXXXXEXXXXXE ROW 3 COLUMN 3 2(-1)
059069,000136: # V33E VERB 33 TO SIGNAL THAT REFSMMAT IS READY TO BE STORED
059070,000137:
059071,000138:
059072,000139:
059073,000140: 07,3773 BANK 07
059074,000141: 43,2000 SETLOC EXTVERBS
059075,000142: 43,2000 BANK
059076,000143:
059077,000144: 43,3724 E3,1706 EBANK= TEPHEM
059078,000145:
059079,000146: 43,3724 COUNT* $$/P27
059080,000147: 43,3724 34755 V70UPDAT CAF UP70 # COMES HERE ON V70E
059081,000148: 43,3725 13733 TCF V73UPDAT +1
059082,000149:
059083,000150: 43,3726 34753 V71UPDAT CAF UP71 # COMES HERE ON V71E
059084,000151: 43,3727 13733 TCF V73UPDAT +1
059085,000152:
059086,000153: 43,3730 34752 V72UPDAT CAF UP72 # COMES HERE ON V72E
059087,000154: 43,3731 13733 TCF V73UPDAT +1
059088,000155:
059089,000156: 43,3732 36245 V73UPDAT CAF UP73 # COMES HERE ON V73E
059090,000157:
059091,000158: 43,3733 55166 +1 TS UPVERBSV # SAVE UPVERB UNTIL IT'S OK TO ENTER P27
059092,000159:
059093,000160: 43,3734 02076 TC TESTXACT # GRAB DISPLAY IF AVAILABLE, OTHERWISE
059094,000161: # TURN*OPERATOR ERROR* ON AND TERMINATEJOB
059095,000162:
059096,000163: 43,3735 31011 CA MODREG # CHECK IF UPDATE ALLOWED
059097,000164: 43,3736 00006 EXTEND # FIRST CHECK FOR MODREG = +0, -0
059098,000165: 43,3737 13742 BZF +3 # (+0 = P00, -0 = FRESHSTART)
059099,000166: 43,3740 04635 UPERROR TC POSTJUMP # TURN ON 'OPERATOR ERROR' LIGHT
059100,000167: 43,3741 11762 CADR UPERROUT +2 # GO TO COMMON UPDATE PROGRAM EXIT
059101,000168:
059102,000169: 43,3742 31011 CAE MODREG # UPDATE ALLOWED.
059103,000170: 43,3743 43,3740 CKMDMORE = UPERROR
059104,000171: 43,3743 55171 TS UPOLDMOD # SAVE CURRENT MAJOR MODE
059105,000172: # Page 1389
059106,000173: 43,3744 31166 CAE UPVERBSV # SET UPVERB TO INDICDATE TO P27
059107,000174:
059108,000175: 43,3745 55172 TS UPVERB # WHICH EXTENDED VERB CALLED IT.
059109,000176:
059110,000177: 43,3746 34753 CAF ONE
059111,000178: 43,3747 55173 TS UPCOUNT # INITIALIZE UPCOUNT TO 1
059112,000179:
059113,000180: 43,3750 04635 TC POSTJUMP # LEAVE EXTENDED VERB BANK AND
059114,000181: 43,3751 11401 CADR UPPART2 # GO TO UPDATE PROGRAM (P27) BANK.
059115,000182:
059116,000183: 43,3752 4755 UP70 EQUALS ZERO
059117,000184: 43,3752 4753 UP71 EQUALS ONE
059118,000185: 43,3752 4752 UP72 EQUALS TWO
059119,000186: 43,3752 6245 UP73 EQUALS THREE
059120,000187:
059121,000188: 04,3401 BANK 04
059122,000189: 04,2000 SETLOC UPDATE2
059123,000190: 04,2000 BANK
059124,000191:
059125,000192: 04,3401 COUNT* $$/P27
059126,000193:
059127,000194: 04,3401 UPPART2 EQUALS # UPDATE PROGRAM -- PART 2
059128,000195:
059129,000196: 04,3401 05353 TC PHASCHNG # SET RESTART GROUP 6 TO RESTORE OLD MODE
059130,000197: 04,3402 07026 OCT 07026 # AND DOWNLIST AND EXIT IF RESTART OCCURS.
059131,000198: 04,3403 30000 OCT 30000 # PRIORITY SAME AS CHRPRIO
059132,000199: 04,3404 40,2000 SBANK= PINSUPER # RSB 2009
059133,000200: 04,3404 1174 EBANK= UPBUFF
059134,000201: 04,3404 03712 10102 2CADR UPOUT +1
059135,000202:
059136,000203: 04,3406 34753 CAF ONE
059137,000204: 04,3407 54332 TS DNLSTCOD # DOWNLIST
059138,000205:
059139,000206: 04,3410 05311 TC NEWMODEX # SET MAJOR MODE = 27
059140,000207: 04,3411 00033 DEC 27 B-14
059141,000208:
059142,000209: 04,3412 51172 INDEX UPVERB # BRANCH DEPENDING ON WHETHER THE UPDATE
059143,000210: 04,3413 13414 TCF +1 # VERB REQUIRES A FIXED OR VARIABLE NUMBER
059144,000211: 04,3414 13417 TCF +3 # V70 FIXED (OF COMPONENTS)
059145,000212: 04,3415 13422 TCF OHWELL1 # V71 VARIABLE -- GO GET NO. OF COMPONENTS
059146,000213: 04,3416 13422 TCF OHWELL1 # V72 VARIABLE -- GO GET NO. OF COMPONENTS
059147,000214: 04,3417 34752 CA TWO # V73 (AND V70) FIXED
059148,000215: 04,3420 55170 TS COMPNUMB # SET NUMBER OF COMPONENTS TO 2.
059149,000216: 04,3421 13445 TCF OHWELL2 # GO GET THE TWO UPDATE COMPONENTS
059150,000217:
059151,000218: 04,3422 33515 OHWELL1 CAF ADUPBUFF # * REQUEST USER TO SEND NUMBER *
059152,000219: 04,3423 54156 TS MPAC +2 # * OF COMPONENTS PARAMETER(II).*
059153,000220: 04,3424 33516 +2 CAF UPLOADNV # (CKV432 RETURNS HERE IF V32 ENCOUNTERED)
059154,000221: 04,3425 04616 TC BANKCALL # DISPLAY A FLASHING V21N01
059155,000222: # Page 1390
059156,000223: 04,3426 20334 CADR GOXDSPF # TO REQUEST II.
059157,000224:
059158,000225: 04,3427 13712 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN
059159,000226: 04,3430 13424 TCF OHWELL1 +2
059160,000227: 04,3431 03506 TC CK4V32 # DATA OR V32 RETURN
059161,000228: 04,3432 44752 CS BIT2
059162,000229: 04,3433 61174 AD UPBUFF # IS II (NUMBER OF COMPONENTS PARAMETER)
059163,000230: 04,3434 00006 EXTEND # .GE. 3 AND .LE. 20D.
059164,000231: 04,3435 63424 BZMF OHWELL1 +2
059165,000232: 04,3436 41174 CS UPBUFF
059166,000233: 04,3437 64362 AD UP21
059167,000234: 04,3440 00006 EXTEND
059168,000235: 04,3441 63424 BZMF OHWELL1 +2
059169,000236: 04,3442 31174 CAE UPBUFF
059170,000237: 04,3443 55170 TS COMPNUMB # SAVE II IN COMPNUMB
059171,000238:
059172,000239: # UPBUFF LOADING SEQUENCE
059173,000240:
059174,000241: 04,3444 25173 INCR UPCOUNT # INCREMENT COUNT OF COMPONENTS RECEIVED.
059175,000242: 04,3445 33662 OHWELL2 CAF ADUPBFM1 # CALCULATE LOCATION (ECADR) IN UPBUFF
059176,000243: 04,3446 61173 AD UPCOUNT # WHERE NEXT COMPONENT SHOULD BE STORED
059177,000244: 04,3447 54156 +2 TS MPAC +2 # PLACE ECADR INTO R3.
059178,000245: 04,3450 33516 +3 CAF UPLOADNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
059179,000246: 04,3451 04616 TC BANKCALL # DISPLAY A FLASHING V21N01
059180,000247: 04,3452 20334 CADR GOXDSPF # TO REQUEST DATA.
059181,000248: 04,3453 13712 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN.
059182,000249: 04,3454 13450 TCF OHWELL2 +3 # V33 PROCEED RETURN
059183,000250: 04,3455 03506 TC CK4V32 # DATA OR V32 RETURN
059184,000251: 04,3456 41173 CS UPCOUNT # HAVE WE FINISHED RECEIVING ALL
059185,000252: 04,3457 61170 AD COMPNUMB # THE DATA WE EXPECTED.
059186,000253: 04,3460 00006 EXTEND
059187,000254: 04,3461 63463 BZMF UPVERIFY # YES -- GO TO VERIFICATION SEQUENCE
059188,000255: 04,3462 13444 TCF OHWELL2 -1 # NO -- REQUEST ADDITIONAL DATA.
059189,000256:
059190,000257: # VERIFY SEQUENCE
059191,000258:
059192,000259: 04,3463 33514 UPVERIFY CAF ADUPTEMP # PLACE ECADR WHERE COMPONENT NO. INDEX
059193,000260: 04,3464 54156 TS MPAC +2 # IS TO BE STORED INTO R3.
059194,000261: 04,3465 33517 CAF UPVRFYNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
059195,000262: 04,3466 04616 TC BANKCALL # DISPLAY A FLASHING V21N02 TO REQUEST
059196,000263: 04,3467 20334 CADR GOXDSPF # DATA CORRECTION OR VERIFICATION.
059197,000264: 04,3470 13712 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN
059198,000265: 04,3471 13520 TCF UPSTORE # V33 DATA SENT IS GOOD. GO STORE IT.
059199,000266: 04,3472 03506 TC CK4V32 # COMPONENT NO. INDEX OR V32 RETURN
059200,000267: 04,3473 31167 CA UPTEMP # DOES THE COMPONENT NO. INDEX JUST SENT
059201,000268: 04,3474 00006 EXTEND # SPECIFY A LEGAL COMPONENT NUMBER?
059202,000269: 04,3475 63463 BZMF UPVERIFY # NO, IT IS NOT POSITIVE NONZERO
059203,000270: 04,3476 41167 CS UPTEMP
059204,000271: 04,3477 61170 AD COMPNUMB
059205,000272: # Page 1391
059206,000273: 04,3500 64753 AD BIT1
059207,000274: 04,3501 00006 EXTEND
059208,000275: 04,3502 63463 BZMF UPVERIFY # NO
059209,000276: 04,3503 33662 CAF ADUPBFM1 # YES -- BASED ON THE COMPONENT NO. INDEX
059210,000277: 04,3504 61167 AD UPTEMP # CALCULATE THE ECADR OF LOCATION IN
059211,000278: 04,3505 13447 TCF OHWELL2 +2 # UPBUFF WHICH USER WANTS TO CHANGE.
059212,000279:
059213,000280: 04,3506 04,3712 UPOUT4 EQUALS UPOUT +1 # COMES HERE ON V34 TO TERMINATE UPDATE
059214,000281:
059215,000282: # CHECK FOR VERB 32 SEQUENCE
059216,000283:
059217,000284: 04,3506 40154 CK4V32 CS MPAC # ON DATA RETURN FROM `GOXDSPF'
059218,000285: 04,3507 74746 MASK BIT6 # ON DATA RETURN FROM "GOXDSP" & THE CON-
059219,000286: 04,3510 10000 CCS A # TENTS OF MPAC = VERB. SO TEST FOR V32.
059220,000287: 04,3511 00002 TC Q # IT'S NOT A V32, IT'S DATA. PROCEED.
059221,000288: 04,3512 50002 INDEX Q
059222,000289: 04,3513 77771 TC 0 -6 # V32 ENCOUNTERED -- GO BACK AND GET DATA
059223,000290:
059224,000291: 04,3514 01167 ADUPTEMP ADRES UPTEMP # ADDRESS OF TEMP STORAGE FOR CORRECTIONS
059225,000292: 04,3515 01174 ADUPBUFF ADRES UPBUFF # ADDRESS OF UPDATE DATA STORAGE BUFFER
059226,000293: 04,3516 05201 UPLOADNV VN 2101 # VERB 21 NOUN 01
059227,000294: 04,3517 05202 UPVRFYNV VN 2102 # VERB 21 NOUN 02
059228,000295: 04,3520 4362 UP21 = MD1 # DEC 21 = MAX NO OF COMPONENTS +1
059229,000296: 04,3520 4756 UPDTPHAS EQUALS FIVE
059230,000297:
059231,000298: # PRE-STORE AND FAN TO APPROPRIATE BRANCH SEQUENCE
059232,000299:
059233,000300: 04,3520 UPSTORE EQUALS # GROUND HAS VERIFIED UPDATE. STORE DATA.
059234,000301:
059235,000302: 04,3520 00004 INHINT
059236,000303:
059237,000304: 04,3521 30103 CAE FLAGWRD7 # INVERT VERIFLAG (BIT 3 OF FLAGWRD7) TO
059238,000305: 04,3522 56001 XCH L # INDICATE TO THE GROUND (VIA DOWNLINK)
059239,000306: 04,3523 34751 CAF VERIFBIT # THAT THE V33 (WHICH THE GROUND SENT TO
059240,000307: 04,3524 00006 EXTEND # VERIFY THE UPDATE) HAS BEEN SUCCESSFULLY
059241,000308: 04,3525 06001 RXOR LCHAN # RECEIVED BY THE UPDATE PROGRAM
059242,000309: 04,3526 54103 TS FLAGWRD7
059243,000310:
059244,000311: 04,3527 05353 TC PHASCHNG # SET RESTART GROUP 6 TO REDO THE UPDATE
059245,000312: 04,3530 04026 OCT 04026 # DATA STORE IF A RESTART OCCURS.
059246,000313: 04,3531 00004 INHINT # (BECAUSE PHASCHNG DID A RELINT)
059247,000314:
059248,000315: 04,3532 44752 CS TWO # GO TO UPFNDVAC IF INSTALL IS REQUIRED.
059249,000316: 04,3533 61172 AD UPVERB # THAT IS, IF IT'S A V70 - V72.
059250,000317: 04,3534 00006 EXTEND # GO TO UPEND73 IF IT'S A V73.
059251,000318: 04,3535 63544 BZMF UPFNDVAC
059252,000319:
059253,000320: # VERB 73 BRANCH
059254,000321: # Page 1392
059255,000322: 04,3536 00006 UPEND73 EXTEND # V73 -- PERFORM DP OCTAL AGC CLOCK INCREMENT
059256,000323:
059257,000324: 04,3537 31175 DCA UPBUFF
059258,000325: 04,3540 53205 DXCH UPBUFF +8D
059259,000326: 04,3541 03567 TC TIMEDIDL
059260,000327: 04,3542 04364 TC FALTON # ERROR -- TURN ON *OPERATOR ERROR* LIGHT
059261,000328: 04,3543 03712 TC UPOUT +1 # GO TO COMMON UPDATE PROGRAM EXIT
059262,000329:
059263,000330: 04,3544 34355 UPFNDVAC CAF CHRPRIO # (USE EXTENDED VERB PRIORITY)
059264,000331: 04,3545 05105 TC FINDVAC # GET VAC AREA FOR 'CALL INTSTALL'
059265,000332: 04,3546 E3,1706 EBANK= TEPHEM
059266,000333: 04,3546 03551 10103 2CADR UPJOB # (NOTE: THIS WILL ALSO SET EBANK FOR
059267,000334: 04,3550 05155 TC ENDOFJOB # 'TEPHEM' UPDATE BY V70)
059268,000335:
059269,000336: 04,3551 06037 UPJOB TC INTPRET # THIS COULD BE A STATE VECTOR UPDATE -- SO
059270,000337: 04,3552 77624 CALL # WAIT (PUT JOB TO SLEEP) IF ORBIT INT(OI)
059271,000338: 04,3553 27414 INTSTALL # IS IN PROGRESS -- OR -- GRAB OI AND RETURN
059272,000339: # TO UPWAKE IF OI IS NOT IN PROGRESS.
059273,000340:
059274,000341: 04,3554 77776 UPWAKE EXIT
059275,000342:
059276,000343: 04,3555 05353 TC PHASCHNG # RESTART PROTECT (GROUP 6)
059277,000344: 04,3556 04026 OCT 04026
059278,000345:
059279,000346: 04,3557 05504 TC UPFLAG # SET INTEGRATION RESTART BIT
059280,000347: 04,3560 00236 ADRES REINTFLG
059281,000348: 04,3561 00004 INHINT
059282,000349: 04,3562 UPPART3 EQUALS
059283,000350:
059284,000351: 04,3562 51172 INDEX UPVERB # BRANCH TO THE APPROPRIATE UPDATE VERB
059285,000352: 04,3563 13564 TCF +1 # ROUTINE TO ACTUALLY PERFORM THE UPDATE
059286,000353: 04,3564 13723 TCF UPEND70 # V70
059287,000354: 04,3565 13632 TCF UPEND71 # V71
059288,000355: 04,3566 13664 TCF UPEND72 # V72
059289,000356:
059290,000357: # ROUTINE TO INCREMENT CLOCK (TIME2,TIME1) WITH CONTENTS OF DP WORD AT UPBUFF.
059291,000358:
059292,000359: 04,3567 00006 TIMEDIDL EXTEND
059293,000360: 04,3570 23167 QXCH UPTEMP # SAVE Q FOR RETURN
059294,000361: 04,3571 34755 CAF ZERO # ZERO AND SAVE TIME2,TIME1
059295,000362: 04,3572 22007 ZL
059296,000363: 04,3573 52025 DXCH TIME2
059297,000364: 04,3574 53217 DXCH UPBUFF +18D # STORE IN CASE OF OVERFLOW
059298,000365:
059299,000366: 04,3575 34756 CAF UPDTPHAS # SO
059300,000367: 04,3576 54001 TS L # A
059301,000368: 04,3577 40000 COM # QUICK
059302,000369: 04,3600 52765 DXCH -PHASE6 # PHASCHNG
059303,000370: # Page 1393
059304,000371: 04,3601 00004 TIMEDIDR INHINT
059305,000372:
059306,000373: 04,3602 34755 CAF ZERO
059307,000374: 04,3603 22007 ZL # PICK UP INCRMENTER (AND ZERO
059308,000375: 04,3604 54156 TS MPAC +2 # IT IN CASE OF RESTARTS) AND
059309,000376: 04,3605 53205 DXCH UPBUFF +8D # STORE IT
059310,000377: 04,3606 52155 DXCH MPAC # INTO MPAC FOR TPAGREE.
059311,000378:
059312,000379: 04,3607 00006 EXTEND
059313,000380: 04,3610 31217 DCA UPBUFF +18D
059314,000381: 04,3611 20155 DAS MPAC # FORM SUM IN MPAC
059315,000382: 04,3612 00006 EXTEND
059316,000383: 04,3613 13622 BZF DELTAOK # TEST FOR OVERFLOW
059317,000384: 04,3614 34755 CAF ZERO
059318,000385: 04,3615 53217 DXCH UPBUFF +18D # OVERFLOW, RESTORE OLD VALUE OF CLOCK
059319,000386: 04,3616 20025 DAS TIME2 # AND TURN ON OPERATOR ERROR
059320,000387:
059321,000388: 04,3617 05353 TC PHASCHNG # RESTART PROTECT (GROUP 6)
059322,000389: 04,3620 04026 OCT 04026
059323,000390:
059324,000391: 04,3621 01167 TC UPTEMP # GO TO ERROR EXIT
059325,000392:
059326,000393: 04,3622 07257 DELTAOK TC TPAGREE # FORCE SIGN AGREEMENT
059327,000394: 04,3623 52155 DXCH MPAC
059328,000395: 04,3624 20025 DAS TIME2 # INCREMENT TIME2,TIME1
059329,000396:
059330,000397: 04,3625 05353 TC PHASCHNG # RESTART PROTECT (GROUP 6)
059331,000398: 04,3626 04026 OCT 04026
059332,000399:
059333,000400: 04,3627 00004 INHINT
059334,000401: 04,3630 51167 INDEX UPTEMP # (CODED THIS WAY FOR RESTART PROTECTION)
059335,000402: 04,3631 00001 TC 1 # NORMAL RETURN
059336,000403:
059337,000404: # VERB 71 BRANCH
059338,000405:
059339,000406: 04,3632 31175 UPEND71 CAE UPBUFF +1 # SET EBANK
059340,000407: 04,3633 54003 TS EBANK # AND
059341,000408: 04,3634 74357 MASK LOW8 # CALCULATE
059342,000409: 04,3635 55167 TS UPTEMP # S-REG VALUE OF RECEIVING AREA
059343,000410:
059344,000411: 04,3636 67745 AD NEG3 # IN THE PROCESS OF
059345,000412: 04,3637 61170 AD COMPNUMB # PERFORMING
059346,000413: 04,3640 00006 EXTEND # THIS UPDATE
059347,000414: 04,3641 13647 BZF STORLP71 # WILL WE
059348,000415: 04,3642 74743 MASK BIT9 # OVERFLOW
059349,000416: 04,3643 10000 CCS A # INTO THE NEXT EBANK....
059350,000417: 04,3644 13760 TCF UPERROUT # YES
059351,000418:
059352,000419: 04,3645 37745 CA NEG3 # NO -- CALCULATE NUMBER OF
059353,000420: 04,3646 61170 AD COMPNUMB # WORDS TO BE STORED MINUS ONE
059354,000421: 04,3647 54154 STORLP71 TS MPAC # SAVE NO. OF WORDS REMAINING MINUS ONE
059355,000422: # Page 1394
059356,000423: 04,3650 50000 INDEX A # TAKE NEXT UPDATE WORD FROM
059357,000424: 04,3651 31176 CA UPBUFF +2 # UPBUFF AND
059358,000425:
059359,000426: 04,3652 54001 TS L # SAVE IT IN L
059360,000427: 04,3653 30154 CA MPAC # CALCULATE NEXT
059361,000428: 04,3654 61167 AD UPTEMP # RECEIVING ADDRESS
059362,000429: 04,3655 50000 INDEX A
059363,000430: 04,3656 E3,1400 EBANK= 1400
059364,000431: 04,3656 23400 LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
059365,000432: 04,3657 E3,1706 EBANK= TEPHEM
059366,000433: 04,3657 10154 CCS MPAC # ARE THERE ANY WORDS LEFT TO BE STORED
059367,000434: 04,3660 13647 TCF STORLP71 # YES
059368,000435: 04,3661 13711 TCF UPOUT # NO -- THEN EXIT UPDATE PROGRAM
059369,000436: 04,3662 01173 ADUPBFM1 ADRES UPBUFF -1 # SAME AS ADUPBUFF BUT LESS 1 (DON'T MOVE)
059370,000437: 04,3663 13711 TCF UPOUT # NO -- EXIT UPDATE (HERE WHEN COMPNUMB = 3)
059371,000438:
059372,000439: # VERB 72 BRANCH
059373,000440:
059374,000441: 04,3664 34753 UPEND72 CAF BIT1 # HAVE AN ODD NO. OF COMPONENTS
059375,000442: 04,3665 71170 MASK COMPNUMB # BEEN SENT FOR A V72 UPDATE ...
059376,000443: 04,3666 10000 CCS A
059377,000444: 04,3667 13671 TCF +2 # YES
059378,000445: 04,3670 13760 TCF UPERROUT # ERROR -- SHOULD BE ODD NO. OF COMPONENTS
059379,000446: 04,3671 44752 CS BIT2
059380,000447: 04,3672 61170 AD COMPNUMB
059381,000448: 04,3673 54154 LDLOOP72 TS MPAC # NOW PERFORM THE UPDATE
059382,000449: 04,3674 50000 INDEX A
059383,000450: 04,3675 31175 CAE UPBUFF +1 # PICK UP NEXT UPDATE WORD
059384,000451: 04,3676 22000 LXCH A
059385,000452: 04,3677 10154 CCS MPAC # SET POINTER TO ECADR (MUST BE CCS)
059386,000453: 04,3700 54154 TS MPAC
059387,000454: 04,3701 50000 INDEX A
059388,000455: 04,3702 31175 CAE UPBUFF +1 # PICK UP NEXT ECADR OF REG TO BE UPDATED
059389,000456: 04,3703 54003 TS EBANK # SET EBANK
059390,000457: 04,3704 74357 MASK LOW8 # ISOLATE RELATIVE ADDRESS
059391,000458: 04,3705 50000 INDEX A
059392,000459: 04,3706 E3,1400 EBANK= 1400
059393,000460: 04,3706 23400 LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
059394,000461: 04,3707 E3,1706 EBANK= TEPHEM
059395,000462: 04,3707 10154 CCS MPAC # ARE WE THORUGH THE V72 UPDATE...
059396,000463: 04,3710 13673 TCF LDLOOP72 # NO
059397,000464:
059398,000465: # NORMAL FINISH OF P27
059399,000466:
059400,000467: 04,3711 UPOUT EQUALS
059401,000468: 04,3711 03165 TC INTWAKEU # RELEASE GRAB OF ORBITAL INTEGRATION
059402,000469: 04,3712 31171 +1 CAE UPOLDMOD # RESTORE PRIOR P27 MODE
059403,000470: 04,3713 05314 TC NEWMODEX +3
059404,000471: 04,3714 34755 CAF ZERO
059405,000472: # Page 1395
059406,000473: 04,3715 54332 TS DNLSTCOD
059407,000474: 04,3716 03765 TC UPACTOFF # TURN OFF 'UPLINK ACTIVITY' LIGHT
059408,000475:
059409,000476: 04,3717 00006 EXTEND # KILL GROUP 6.
059410,000477: 04,3720 34755 DCA NEG0
059411,000478: 04,3721 52765 DXCH -PHASE6
059412,000479:
059413,000480: 04,3722 05472 TC ENDEXT # EXTENDED VERB EXIT
059414,000481:
059415,000482: # VERB TO BRANCH
059416,000483:
059417,000484: 04,3723 00006 UPEND70 EXTEND # V70 DOES THE FOLLOWING WITH DP DELTA
059418,000485: 04,3724 41175 DCS UPBUFF # TIME IN UPBUFF
059419,000486: 04,3725 53205 DXCH UPBUFF +8D
059420,000487: 04,3726 03567 TC TIMEDIDL # DECREMENT AGC CLOCK
059421,000488:
059422,000489: 04,3727 03760 TC UPERROUT # ERROR WHILE DECREMENTING CLOCK -- EXIT
059423,000490:
059424,000491: 04,3730 E3,1706 EBANK= TEPHEM
059425,000492: 04,3730 00006 EXTEND
059426,000493: 04,3731 41175 DCS UPBUFF # COPY DECREMENTERS FOR
059427,000494: 04,3732 53207 DXCH UPBUFF +10D # RESTART PROTECTION
059428,000495: 04,3733 00006 EXTEND
059429,000496: 04,3734 41175 DCS UPBUFF
059430,000497: 04,3735 53211 DXCH UPBUFF +12D
059431,000498:
059432,000499: 04,3736 05353 TC PHASCHNG # RESTART PROTECT (GROUP 6)
059433,000500: 04,3737 04026 OCT 04026
059434,000501:
059435,000502: 04,3740 34755 CAF ZERO
059436,000503: 04,3741 22007 ZL
059437,000504: 04,3742 53207 DXCH UPBUFF +10D # DECREMENT CSM STATE VECTOR TIME
059438,000505: 04,3743 21571 DAS TETCSM
059439,000506:
059440,000507: 04,3744 34755 CAF ZERO
059441,000508: 04,3745 22007 ZL
059442,000509: 04,3746 53211 DXCH UPBUFF +12D # DECREMENT LEM STATE VECTOR TIME
059443,000510: 04,3747 21643 DAS TETLEM
059444,000511:
059445,000512: 04,3750 34755 CAF ZERO
059446,000513: 04,3751 22007 ZL
059447,000514: 04,3752 53175 DXCH UPBUFF
059448,000515: 04,3753 21710 DAS TEPHEM +1 # INCREMENT TP TEPHEM
059449,000516: 04,3754 27706 ADS TEPHEM
059450,000517:
059451,000518: 04,3755 05353 TC PHASCHNG # RESTART PROTECT (GROUP 6)
059452,000519: 04,3756 04026 OCT 04026
059453,000520:
059454,000521: 04,3757 1174 EBANK= UPBUFF
059455,000522: # Page 1396
059456,000523: 04,3757 03711 TC UPOUT # GO TO STANDARD UPDATE PROGRAM EXIT
059457,000524:
059458,000525:
059459,000526: # ERROR SEQUENCE
059460,000527:
059461,000528: 04,3760 04364 UPERROUT TC FALTON # TURN ON *OPERATOR ERROR* LIGHT
059462,000529: 04,3761 13711 TCF UPOUT # GO TO COMMON UPDATE PROGRAM EXIT
059463,000530:
059464,000531: 04,3762 04364 +2 TC FALTON # TURN ON 'OPERATOR ERROR' LIGHT
059465,000532: 04,3763 03765 TC UPACTOFF # TURN OFF 'UPLINK ACTIVITY' LIGHT
059466,000533: 04,3764 05472 TC ENDEXT # EXTENDED VERB EXIT
059467,000534: # (THE PURPOS OF UPERROUT +2 EXIT IS
059468,000535: # TO PROVIDE AN ERROR EXIT WHICH DOES NOT
059469,000536: # RESET ANY RESTART GROUPS)
059470,000537:
059471,000538: # 'UPACTOFF' IS A ROUTINE TO TURN OFF UPLINK ACTIVITY LIGHT ON ALL EXITS FROM UPDATE PROGRAM (P27).
059472,000539:
059473,000540: 04,3765 44751 UPACTOFF CS BIT3
059474,000541: 04,3766 00006 EXTEND # TURN OFF UPLINK ACTIVITY LIGHT
059475,000542: 04,3767 03011 WAND DSALMOUT # (BIT 3 OF CHANNEL 11)
059476,000543: 04,3770 00002 TC Q
059477,000544:
End of include-file UPDATE_PROGRAM.agc. Parent file is MAIN.agc