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