Source Code

058980,000001: # Copyright: Public domain. 058981,000002: # Filename: UPDATE_PROGRAM.agc 058982,000003: # Purpose: Part of the source code for Luminary 1A build 099. 058983,000004: # It is part of the source code for the Lunar Module's (LM) 058984,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 058985,000006: # Assembler: yaYUL 058986,000007: # Contact: Ron Burkey <info@sandroid.org>. 058987,000008: # Website: www.ibiblio.org/apollo. 058988,000009: # Pages: 1386-1396 058989,000010: # Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting 058990,000011: # from the Luminary131/ file of the same 058991,000012: # name, using Luminary099 page images. 058992,000013: # 2009-06-07 RSB Added an SBANK= to account for incompatibilities 058993,000014: # between YUL and yaYUL. 058994,000015: # 2011-01-06 JL Fixed pseudo-label indentation. 058995,000016: # 2011-05-07 JL Flag SBANK= workaround. 058996,000017: 058997,000018: # This source code has been transcribed or otherwise adapted from 058998,000019: # digitized images of a hardcopy from the MIT Museum. The digitization 058999,000020: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of 059000,000021: # the Museum. Many thanks to both. The images (with suitable reduction 059001,000022: # in storage size and consequent reduction in image quality as well) are 059002,000023: # available online at www.ibiblio.org/apollo. If for some reason you 059003,000024: # find that the images are illegible, contact me at info@sandroid.org 059004,000025: # about getting access to the (much) higher-quality images which Paul 059005,000026: # actually created. 059006,000027: 059007,000028: # Notations on the hardcopy document read, in part: 059008,000029: 059009,000030: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 059010,000031: # 16:27 JULY 14, 1969 059011,000032: 059012,000033: # Page 1386 059013,000034: # PROGRAM NAME: P27 059014,000035: # WRITTEN BY: KILROY/ DE WOLF 059015,000036: 059016,000037: # MOD NO: 6 059017,000038: # MOD BY: KILROY 059018,000039: # DATE: 01DEC67 059019,000040: 059020,000041: # LOG SECTION: UPDATE PROGRAM. 059021,000042: 059022,000043: # FUNCT. DESCR.: P27 (THE UPDATE PROGRAM) PROCESSES COMMANDS AND DATA 059023,000044: # INSERTIONS REQUESTED BY THE GROUND VIA UPLINK. 059024,000045: # THE P27 PROGRAM WILL ACCEPT UPDATES 059025,000046: # ONLY DURING P00 FOR THE LM, AND ONLY DURINT P00, 059026,000047: # P02, AND FRESH START FOR THE CSM 059027,000048: 059028,000049: # CALLING SEQ: PROGRAM IS INITIATED BY UPLINK ENTRY OF VERBS 70, 71, 72, AND 73. 059029,000050: 059030,000051: # SUBROUTINES: TESTXACT, NEWMODEX, NEWMODEX +3, GOXDSPF, BANKCALL, FINDVAC, INTPRET, INTSTALL, TPAGREE, 059031,000052: # INTWAKEU, ENDEXT, POSTJUMP, FALTON, NEWPHASE, PHASCHNG 059032,000053: 059033,000054: # NORMAL EXIT: TC ENDEXT 059034,000055: 059035,000056: # ALARM/ABORT: TC FALTON FOLLOWED BY TC ENDEXT 059036,000057: 059037,000058: # RESTARTS: P27 IS RESTART PROTECTED IN TWO WAYS ... 059038,000059: # 1. PRIOR TO VERIFLAG INVERSION (WHICH IS CAUSED BY THE GROUND/ASTRONAUT'S VERIFICATION OF UPDATE 059039,000060: # DATA BY SENDING A V33E WHEN V21N02 IS FLASHING)--- 059040,000061: # NO PROTECTION EXCEPT PRE-P27 MODE IS RESTROED, COAST + ALIGN DOWNLIST IS SELECTED AND UPLINK 059041,000062: # ACTIVITY LIGHT IS TURNED OFF. (JUST AS IF A V34E WAS SENT DURING P27 DATA LOADS). 059042,000063: # V70,V71,V72, OR V73 WILL HAVE TO BE COMPLETELY RESENT BY USER. 059043,000064: # 2. AFTER VERIFLAG INVERSION (WHEN UPDATE OF THE SPECIFIED ERASABLES IS BEING PERFORMED)--- 059044,000065: # PROTECTED AGAINST RESTARTS. 059045,000066: 059046,000067: # DEBRIS: UPBUFF (20D) TEMP STORAGE FOR ADDRESSES AND CONTENTS. 059047,000068: # UPVERB (1) VERB NUMBER MINUS 70D (E.G., FOR V72, UPVERB = 72D - 70D = 2) 059048,000069: # UPOLDMOD(1) FOR MAJOR MODE INTERRUPTED BY P27. 059049,000070: # COMPNUMB(1) TOTAL NUMBER OF COMPONENTS TO BE TRANSMITTED. 059050,000071: # UPCOUNT (1) ACTUAL NUMBER OF COMPONENTS RECEIVED. 059051,000072: # UPTEMP (1) SCRATCH, BUT USUALLY CONTAINS COMPONENT NUMBER TO BE CHANGED DURING VERIFY CYCLE 059052,000073: 059053,000074: # INPUT: 059054,000075: 059055,000076: # ENTRY DESCRIPTION 059056,000077: # V70EXXXXXEXXXXXE (LIFTOFF TIME INCREMENT) DOUBLE PRECISION OCTAL TIME INCREMENT, XXXXX XXXXX, 059057,000078: # IS ADDED TO TEPHEM, SUBTRACTED FROM AGC CLOCK(TIME2,TIME1), SUBTRACTED FROM CSM STATE 059058,000079: # VECTOR TIME(TETCSM) AND SUBTRACTED FROM LEM STATE VECTOR TIME(TETLEM). 059059,000080: # THE DP OCTAL TIME INCREMENT IS SCALED AT 2(28). 059060,000081: # Page 1387 059061,000082: # V71EIIEAAAAE (CONTIGUOUS BLOCK UPDATE) II-2 OCTAL COMPONENTS, XXXXX, 059062,000083: # XXXXXE ARE LOADED INTO ERASABLE STARTING AT ECADR, AAAA. 059063,000084: # XXXXXE IT IS .GE. 3 .AND. .LE. 200., 059064,000085: # ... AND (AAAA + II -3) DOES NOT PRODUCE AN ADDRESS IN THE 059065,000086: # NEXT BANK. 059066,000087: # SCALING IS SAME AS INTERNAL REGISTERS. 059067,000088: # V72EIIE (SCATTER UPDATE) (II-1)/2 OCTAL COMPONENTS, XXXXX, ARE 059068,000089: # AAAAEXXXXXE LOADED INTO ERASABLE LOCATIONS, AAAA. 059069,000090: # AAAAEXXXXXE II IS .GE. 3 .AND. .LE. 19D, AND MUST BE ODD. 059070,000091: # ... SCALING IS SAME AS INTERNAL REGISTERS. 059071,000092: 059072,000093: # V73EXXXXXEXXXXXE (OCTAL CLOCK INCREMENT) DOUBLE PRECISION OCTAL TIME 059073,000094: # INCREMENT XXXXX XXXXX, IS ADDED TO THE AGC CLOCK, IN 059074,000095: # CENTISECONDS SCALED AT (2)28). 059075,000096: # THIS LOAD IS THE OCTAL EQUIVALENT OF V55. 059076,000097: 059077,000098: # OUTPUT: IN ADDITION TO THE ABOVE REGISTER LOADS, ALL UPDATES 059078,000099: # COMPLEMENT BIT3 OF FLAGWORD7. 059079,000100: 059080,000101: # ADDITIONAL NOTES: VERB 71, JUST DEFINED ABOVE WILL BE USED TO PERFORM BUT NOT LIMITED TO THE FOLLOWING UPDATES -- 059081,000102: # 1. CSM/LM STATE VECTOR UPDATE 059082,000103: # 2. REFSMMAT UPDATE 059083,000104: 059084,000105: # THE FOLLOWING COMMENTS DELINEATE EACH SPECIAL UPDATE --- 059085,000106: 059086,000107: # 1. CSM/LM STATE VECTOR UPDATE (ALL DATA ENTRIES IN OCTAL) 059087,000108: # ENTRIES: DATA DEFINITION: SCALE FACTORS: 059088,000109: # V71E CONTIGUOUS BLOCK UPDATE VERB 059089,000110: # 21E NUMBER OF COMPONENTS FOR STATE VECTOR UPDATE 059090,000111: # AAAAE ECADR OF `UPSVFLAG' 059091,000112: # XXXXXE STATE VECTOR IDENTIFIER: 00001 FOR CSM, 77776 FOR LEM -- EARTH SPHERE OF INFLUENCE SCALING 059092,000113: # 00002 FOR CSM, 77775 FOR LEM -- LUNAR SPHERE OF INFLUENCE SCALING 059093,000114: # XXXXXEXXXXXE X POSITION 059094,000115: # XXXXXEXXXXXE Y POSITION 059095,000116: # XXXXXEXXXXXE Z POSITION 059096,000117: # XXXXXEXXXXXE X VELOCITY 059097,000118: # XXXXXEXXXXXE Y VELOCITY 059098,000119: # XXXXXEXXXXXE Z VELOCITY 059099,000120: # XXXXXEXXXXXE TIME FROM AGC CLOCK ZERO 059100,000121: # V33E VERB 33 TO SIGNAL THAT THE STATE VECTOR IS READY TO BE STORED. 059101,000122: 059102,000123: # 2. REFSMMAT (ALL DATA ENTRIES IN OCTAL) 059103,000124: # ENTRIES: DATA DEFINITITIONS: SCALE FACTORS: 059104,000125: # Page 1388 059105,000126: # V71E CONTIGUOUS BLOCK UPDATE VERB 059106,000127: # 24E NUMBER OF COMPONENTS FOR REFSMMAT UPDATE 059107,000128: # AAAAE ECADR OF `REFSMMAT' 059108,000129: # XXXXXEXXXXXE ROW 1 COLUMN 1 2(-1) 059109,000130: # XXXXXEXXXXXE ROW 1 COLUMN 2 2(-1) 059110,000131: # XXXXXEXXXXXE ROW 1 COLUMN 3 2(-1) 059111,000132: # XXXXXEXXXXXE ROW 2 COLUMN 1 2(-1) 059112,000133: # XXXXXEXXXXXE ROW 2 COLUMN 2 2(-1) 059113,000134: # XXXXXEXXXXXE ROW 2 COLUMN 3 2(-1) 059114,000135: # XXXXXEXXXXXE ROW 3 COLUMN 1 2(-1) 059115,000136: # XXXXXEXXXXXE ROW 3 COLUMN 2 2(-1) 059116,000137: # XXXXXEXXXXXE ROW 3 COLUMN 3 2(-1) 059117,000138: # V33E VERB 33 TO SIGNAL THAT REFSMMAT IS READY TO BE STORED 059118,000139: 059119,000140: 059120,000141: 059121,000142: 07,3773 BANK 07 059122,000143: 43,2000 SETLOC EXTVERBS 059123,000144: 43,2000 BANK 059124,000145: 059125,000146: 43,3724 E3,1706 EBANK= TEPHEM 059126,000147: 059127,000148: 43,3724 COUNT* $$/P27 059128,000149: 43,3724 34755 V70UPDAT CAF UP70 # COMES HERE ON V70E 059129,000150: 43,3725 13733 TCF V73UPDAT +1 059130,000151: 059131,000152: 43,3726 34753 V71UPDAT CAF UP71 # COMES HERE ON V71E 059132,000153: 43,3727 13733 TCF V73UPDAT +1 059133,000154: 059134,000155: 43,3730 34752 V72UPDAT CAF UP72 # COMES HERE ON V72E 059135,000156: 43,3731 13733 TCF V73UPDAT +1 059136,000157: 059137,000158: 43,3732 36245 V73UPDAT CAF UP73 # COMES HERE ON V73E 059138,000159: 059139,000160: 43,3733 55166 +1 TS UPVERBSV # SAVE UPVERB UNTIL IT'S OK TO ENTER P27 059140,000161: 059141,000162: 43,3734 02076 TC TESTXACT # GRAB DISPLAY IF AVAILABLE, OTHERWISE 059142,000163: # TURN*OPERATOR ERROR* ON AND TERMINATEJOB 059143,000164: 059144,000165: 43,3735 31011 CA MODREG # CHECK IF UPDATE ALLOWED 059145,000166: 43,3736 00006 EXTEND # FIRST CHECK FOR MODREG = +0, -0 059146,000167: 43,3737 13742 BZF +3 # (+0 = P00, -0 = FRESHSTART) 059147,000168: 43,3740 04635 UPERROR TC POSTJUMP # TURN ON 'OPERATOR ERROR' LIGHT 059148,000169: 43,3741 11762 CADR UPERROUT +2 # GO TO COMMON UPDATE PROGRAM EXIT 059149,000170: 059150,000171: 43,3742 31011 CAE MODREG # UPDATE ALLOWED. 059151,000172: 43,3743 43,3740 CKMDMORE = UPERROR 059152,000173: 43,3743 55171 TS UPOLDMOD # SAVE CURRENT MAJOR MODE 059153,000174: # Page 1389 059154,000175: 43,3744 31166 CAE UPVERBSV # SET UPVERB TO INDICDATE TO P27 059155,000176: 059156,000177: 43,3745 55172 TS UPVERB # WHICH EXTENDED VERB CALLED IT. 059157,000178: 059158,000179: 43,3746 34753 CAF ONE 059159,000180: 43,3747 55173 TS UPCOUNT # INITIALIZE UPCOUNT TO 1 059160,000181: 059161,000182: 43,3750 04635 TC POSTJUMP # LEAVE EXTENDED VERB BANK AND 059162,000183: 43,3751 11401 CADR UPPART2 # GO TO UPDATE PROGRAM (P27) BANK. 059163,000184: 059164,000185: 43,3752 4755 UP70 EQUALS ZERO 059165,000186: 43,3752 4753 UP71 EQUALS ONE 059166,000187: 43,3752 4752 UP72 EQUALS TWO 059167,000188: 43,3752 6245 UP73 EQUALS THREE 059168,000189: 059169,000190: 04,3401 BANK 04 059170,000191: 04,2000 SETLOC UPDATE2 059171,000192: 04,2000 BANK 059172,000193: 059173,000194: 04,3401 COUNT* $$/P27 059174,000195: 059175,000196: 04,3401 UPPART2 EQUALS # UPDATE PROGRAM -- PART 2 059176,000197: 059177,000198: 04,3401 05353 TC PHASCHNG # SET RESTART GROUP 6 TO RESTORE OLD MODE 059178,000199: 04,3402 07026 OCT 07026 # AND DOWNLIST AND EXIT IF RESTART OCCURS. 059179,000200: 04,3403 30000 OCT 30000 # PRIORITY SAME AS CHRPRIO

[WORKAROUND] RSB 2009

059181,000202: 04,3404  40,2000                                 SBANK=   PINSUPER                              

[WORKAROUND]

059183,000204: 04,3404     1174                                 EBANK=   UPBUFF                                
059184,000205: 04,3404           03712 10102                    2CADR    UPOUT      +1                         
059185,000206: 
059186,000207: 04,3406           34753                          CAF      ONE                                   
059187,000208: 04,3407           54332                          TS       DNLSTCOD                              #  DOWNLIST
059188,000209: 
059189,000210: 04,3410           05311                          TC       NEWMODEX                              #  SET MAJOR MODE = 27
059190,000211: 04,3411           00033                          DEC      27         B-14                       
059191,000212: 
059192,000213: 04,3412           51172                          INDEX    UPVERB                                #  BRANCH DEPENDING ON WHETHER THE UPDATE
059193,000214: 04,3413           13414                          TCF      +1                                    #  VERB REQUIRES A FIXED OR VARIABLE NUMBER
059194,000215: 04,3414           13417                          TCF      +3                                    #  V70 FIXED                (OF COMPONENTS)
059195,000216: 04,3415           13422                          TCF      OHWELL1                               #  V71 VARIABLE -- GO GET NO. OF COMPONENTS
059196,000217: 04,3416           13422                          TCF      OHWELL1                               #  V72 VARIABLE -- GO GET NO. OF COMPONENTS
059197,000218: 04,3417           34752                          CA       TWO                                   #  V73 (AND V70) FIXED
059198,000219: 04,3420           55170                          TS       COMPNUMB                              #  SET NUMBER OF COMPONENTS TO 2.
059199,000220: 04,3421           13445                          TCF      OHWELL2                               #  GO GET THE TWO UPDATE COMPONENTS
059200,000221: 
059201,000222: 04,3422           33515        OHWELL1           CAF      ADUPBUFF                              #  * REQUEST USER TO SEND NUMBER *
059202,000223: 04,3423           54156                          TS       MPAC       +2                         #  * OF COMPONENTS PARAMETER(II).*
059203,000224: 04,3424           33516                 +2       CAF      UPLOADNV                              #  (CKV432 RETURNS HERE IF V32 ENCOUNTERED)
059204,000225: 04,3425           04616                          TC       BANKCALL                              #  DISPLAY A FLASHING V21N01
059205,000226:                                                                                                 #  Page 1390
059206,000227: 04,3426           20334                          CADR     GOXDSPF                               #  TO REQUEST II.
059207,000228: 
059208,000229: 04,3427           13712                          TCF      UPOUT4                                #  V34 TERMINATE UPDATE (P27) RETURN
059209,000230: 04,3430           13424                          TCF      OHWELL1    +2                         
059210,000231: 04,3431           03506                          TC       CK4V32                                #  DATA OR V32 RETURN
059211,000232: 04,3432           44752                          CS       BIT2                                  
059212,000233: 04,3433           61174                          AD       UPBUFF                                #  IS II (NUMBER OF COMPONENTS PARAMETER)
059213,000234: 04,3434           00006                          EXTEND                                         #  .GE. 3 AND .LE. 20D.
059214,000235: 04,3435           63424                          BZMF     OHWELL1    +2                         
059215,000236: 04,3436           41174                          CS       UPBUFF                                
059216,000237: 04,3437           64362                          AD       UP21                                  
059217,000238: 04,3440           00006                          EXTEND                                         
059218,000239: 04,3441           63424                          BZMF     OHWELL1    +2                         
059219,000240: 04,3442           31174                          CAE      UPBUFF                                
059220,000241: 04,3443           55170                          TS       COMPNUMB                              #  SAVE II IN COMPNUMB
059221,000242: 
059222,000243:                                                                                                 #  UPBUFF LOADING SEQUENCE
059223,000244: 
059224,000245: 04,3444           25173                          INCR     UPCOUNT                               #  INCREMENT COUNT OF COMPONENTS RECEIVED.
059225,000246: 04,3445           33662        OHWELL2           CAF      ADUPBFM1                              #  CALCULATE LOCATION (ECADR) IN UPBUFF
059226,000247: 04,3446           61173                          AD       UPCOUNT                               #  WHERE NEXT COMPONENT SHOULD BE STORED
059227,000248: 04,3447           54156                 +2       TS       MPAC       +2                         #  PLACE ECADR INTO R3.
059228,000249: 04,3450           33516                 +3       CAF      UPLOADNV                              #  (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
059229,000250: 04,3451           04616                          TC       BANKCALL                              #  DISPLAY A FLASHING V21N01
059230,000251: 04,3452           20334                          CADR     GOXDSPF                               #  TO REQUEST DATA.
059231,000252: 04,3453           13712                          TCF      UPOUT4                                #  V34 TERMINATE UPDATE (P27) RETURN.
059232,000253: 04,3454           13450                          TCF      OHWELL2    +3                         #  V33 PROCEED RETURN
059233,000254: 04,3455           03506                          TC       CK4V32                                #  DATA OR V32 RETURN
059234,000255: 04,3456           41173                          CS       UPCOUNT                               #  HAVE WE FINISHED RECEIVING ALL
059235,000256: 04,3457           61170                          AD       COMPNUMB                              #  THE DATA WE EXPECTED.
059236,000257: 04,3460           00006                          EXTEND                                         
059237,000258: 04,3461           63463                          BZMF     UPVERIFY                              #  YES -- GO TO VERIFICATION SEQUENCE
059238,000259: 04,3462           13444                          TCF      OHWELL2    -1                         #  NO -- REQUEST ADDITIONAL DATA.
059239,000260: 
059240,000261:                                                                                                 #  VERIFY SEQUENCE
059241,000262: 
059242,000263: 04,3463           33514        UPVERIFY          CAF      ADUPTEMP                              #  PLACE ECADR WHERE COMPONENT NO. INDEX
059243,000264: 04,3464           54156                          TS       MPAC       +2                         #  IS TO BE STORED INTO R3.
059244,000265: 04,3465           33517                          CAF      UPVRFYNV                              #  (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
059245,000266: 04,3466           04616                          TC       BANKCALL                              #  DISPLAY A FLASHING V21N02 TO REQUEST
059246,000267: 04,3467           20334                          CADR     GOXDSPF                               #  DATA CORRECTION OR VERIFICATION.
059247,000268: 04,3470           13712                          TCF      UPOUT4                                #  V34 TERMINATE UPDATE (P27) RETURN
059248,000269: 04,3471           13520                          TCF      UPSTORE                               #  V33 DATA SENT IS GOOD.  GO STORE IT.
059249,000270: 04,3472           03506                          TC       CK4V32                                #  COMPONENT NO. INDEX OR V32 RETURN
059250,000271: 04,3473           31167                          CA       UPTEMP                                #  DOES THE COMPONENT NO. INDEX JUST SENT
059251,000272: 04,3474           00006                          EXTEND                                         #  SPECIFY A LEGAL COMPONENT NUMBER?
059252,000273: 04,3475           63463                          BZMF     UPVERIFY                              #  NO, IT IS NOT POSITIVE NONZERO
059253,000274: 04,3476           41167                          CS       UPTEMP                                
059254,000275: 04,3477           61170                          AD       COMPNUMB                              
059255,000276:                                                                                                 #  Page 1391
059256,000277: 04,3500           64753                          AD       BIT1                                  
059257,000278: 04,3501           00006                          EXTEND                                         
059258,000279: 04,3502           63463                          BZMF     UPVERIFY                              #  NO
059259,000280: 04,3503           33662                          CAF      ADUPBFM1                              #  YES -- BASED ON THE COMPONENT NO. INDEX
059260,000281: 04,3504           61167                          AD       UPTEMP                                #  CALCULATE THE ECADR OF LOCATION IN
059261,000282: 04,3505           13447                          TCF      OHWELL2    +2                         #  UPBUFF WHICH USER WANTS TO CHANGE.
059262,000283: 
059263,000284: 04,3506  04,3712               UPOUT4            EQUALS   UPOUT      +1                         #  COMES HERE ON V34 TO TERMINATE UPDATE
059264,000285: 
059265,000286:                                                                                                 #  CHECK FOR VERB 32 SEQUENCE
059266,000287: 
059267,000288: 04,3506           40154        CK4V32            CS       MPAC                                  #  ON DATA RETURN FROM `GOXDSPF'
059268,000289: 04,3507           74746                          MASK     BIT6                                  #  ON DATA RETURN FROM "GOXDSP" & THE CON-
059269,000290: 04,3510           10000                          CCS      A                                     #  TENTS OF MPAC = VERB.  SO TEST FOR V32.
059270,000291: 04,3511           00002                          TC       Q                                     #  IT'S NOT A V32, IT'S DATA.  PROCEED.
059271,000292: 04,3512           50002                          INDEX    Q                                     
059272,000293: 04,3513           77771                          TC       0          -6                         #  V32 ENCOUNTERED -- GO BACK AND GET DATA
059273,000294: 
059274,000295: 04,3514           01167        ADUPTEMP          ADRES    UPTEMP                                #  ADDRESS OF TEMP STORAGE FOR CORRECTIONS
059275,000296: 04,3515           01174        ADUPBUFF          ADRES    UPBUFF                                #  ADDRESS OF UPDATE DATA STORAGE BUFFER
059276,000297: 04,3516           05201        UPLOADNV          VN       2101                                  #  VERB 21 NOUN 01
059277,000298: 04,3517           05202        UPVRFYNV          VN       2102                                  #  VERB 21 NOUN 02
059278,000299: 04,3520     4362               UP21              =        MD1                                   #  DEC 21 = MAX NO OF COMPONENTS +1
059279,000300: 04,3520     4756               UPDTPHAS          EQUALS   FIVE                                  
059280,000301: 
059281,000302:                                                                                                 #  PRE-STORE AND FAN TO APPROPRIATE BRANCH SEQUENCE
059282,000303: 
059283,000304: 04,3520                        UPSTORE           EQUALS                                         #  GROUND HAS VERIFIED UPDATE.  STORE DATA.
059284,000305: 
059285,000306: 04,3520           00004                          INHINT                                         
059286,000307: 
059287,000308: 04,3521           30103                          CAE      FLAGWRD7                              #  INVERT VERIFLAG (BIT 3 OF FLAGWRD7) TO
059288,000309: 04,3522           56001                          XCH      L                                     #  INDICATE TO THE GROUND (VIA DOWNLINK)
059289,000310: 04,3523           34751                          CAF      VERIFBIT                              #  THAT THE V33 (WHICH THE GROUND SENT TO
059290,000311: 04,3524           00006                          EXTEND                                         #  VERIFY THE UPDATE) HAS BEEN SUCCESSFULLY
059291,000312: 04,3525           06001                          RXOR     LCHAN                                 #  RECEIVED BY THE UPDATE PROGRAM
059292,000313: 04,3526           54103                          TS       FLAGWRD7                              
059293,000314: 
059294,000315: 04,3527           05353                          TC       PHASCHNG                              #  SET RESTART GROUP 6 TO REDO THE UPDATE
059295,000316: 04,3530           04026                          OCT      04026                                 #  DATA STORE IF A RESTART OCCURS.
059296,000317: 04,3531           00004                          INHINT                                         #  (BECAUSE PHASCHNG DID A RELINT)
059297,000318: 
059298,000319: 04,3532           44752                          CS       TWO                                   #  GO TO UPFNDVAC IF INSTALL IS REQUIRED.
059299,000320: 04,3533           61172                          AD       UPVERB                                #  THAT IS, IF IT'S A V70 - V72.
059300,000321: 04,3534           00006                          EXTEND                                         #  GO TO UPEND73 IF IT'S A V73.
059301,000322: 04,3535           63544                          BZMF     UPFNDVAC                              
059302,000323: 
059303,000324:                                                                                                 #  VERB 73 BRANCH
059304,000325:                                                                                                 #  Page 1392
059305,000326: 04,3536           00006        UPEND73           EXTEND                                         #  V73 -- PERFORM DP OCTAL AGC CLOCK INCREMENT
059306,000327: 
059307,000328: 04,3537           31175                          DCA      UPBUFF                                
059308,000329: 04,3540           53205                          DXCH     UPBUFF     +8D                        
059309,000330: 04,3541           03567                          TC       TIMEDIDL                              
059310,000331: 04,3542           04364                          TC       FALTON                                #  ERROR -- TURN ON *OPERATOR ERROR* LIGHT
059311,000332: 04,3543           03712                          TC       UPOUT      +1                         #  GO TO COMMON UPDATE PROGRAM EXIT
059312,000333: 
059313,000334: 04,3544           34355        UPFNDVAC          CAF      CHRPRIO                               #  (USE EXTENDED VERB PRIORITY)
059314,000335: 04,3545           05105                          TC       FINDVAC                               #  GET VAC AREA FOR 'CALL INTSTALL'
059315,000336: 04,3546  E3,1706                                 EBANK=   TEPHEM                                
059316,000337: 04,3546           03551 10103                    2CADR    UPJOB                                 #  (NOTE:  THIS WILL ALSO SET EBANK FOR
059317,000338: 04,3550           05155                          TC       ENDOFJOB                              #  'TEPHEM' UPDATE BY V70)
059318,000339: 
059319,000340: 04,3551           06037        UPJOB             TC       INTPRET                               #  THIS COULD BE A STATE VECTOR UPDATE -- SO
059320,000341: 04,3552           77624                          CALL                                           #  WAIT (PUT JOB TO SLEEP) IF ORBIT INT(OI)
059321,000342: 04,3553           27414                                   INTSTALL                              #  IS IN PROGRESS -- OR -- GRAB OI AND RETURN
059322,000343:                                                                                                 #  TO UPWAKE IF OI IS NOT IN PROGRESS.
059323,000344: 
059324,000345: 04,3554           77776        UPWAKE            EXIT                                           
059325,000346: 
059326,000347: 04,3555           05353                          TC       PHASCHNG                              #  RESTART PROTECT (GROUP 6)
059327,000348: 04,3556           04026                          OCT      04026                                 
059328,000349: 
059329,000350: 04,3557           05504                          TC       UPFLAG                                #  SET INTEGRATION RESTART BIT
059330,000351: 04,3560           00236                          ADRES    REINTFLG                              
059331,000352: 04,3561           00004                          INHINT                                         
059332,000353: 04,3562                        UPPART3           EQUALS                                         
059333,000354: 
059334,000355: 04,3562           51172                          INDEX    UPVERB                                #  BRANCH TO THE APPROPRIATE UPDATE VERB
059335,000356: 04,3563           13564                          TCF      +1                                    #  ROUTINE TO ACTUALLY PERFORM THE UPDATE
059336,000357: 04,3564           13723                          TCF      UPEND70                               #  V70
059337,000358: 04,3565           13632                          TCF      UPEND71                               #  V71
059338,000359: 04,3566           13664                          TCF      UPEND72                               #  V72
059339,000360: 
059340,000361:                                                                                                 #  ROUTINE TO INCREMENT CLOCK (TIME2,TIME1) WITH CONTENTS OF DP WORD AT UPBUFF.
059341,000362: 
059342,000363: 04,3567           00006        TIMEDIDL          EXTEND                                         
059343,000364: 04,3570           23167                          QXCH     UPTEMP                                #  SAVE Q FOR RETURN
059344,000365: 04,3571           34755                          CAF      ZERO                                  #  ZERO AND SAVE TIME2,TIME1
059345,000366: 04,3572           22007                          ZL                                             
059346,000367: 04,3573           52025                          DXCH     TIME2                                 
059347,000368: 04,3574           53217                          DXCH     UPBUFF     +18D                       #  STORE IN CASE OF OVERFLOW
059348,000369: 
059349,000370: 04,3575           34756                          CAF      UPDTPHAS                              #  SO
059350,000371: 04,3576           54001                          TS       L                                     #  A
059351,000372: 04,3577           40000                          COM                                            #  QUICK
059352,000373: 04,3600           52765                          DXCH     -PHASE6                               #  PHASCHNG
059353,000374:                                                                                                 #  Page 1393
059354,000375: 04,3601           00004        TIMEDIDR          INHINT                                         
059355,000376: 
059356,000377: 04,3602           34755                          CAF      ZERO                                  
059357,000378: 04,3603           22007                          ZL                                             #  PICK UP INCRMENTER (AND ZERO
059358,000379: 04,3604           54156                          TS       MPAC       +2                         #  IT IN CASE OF RESTARTS) AND
059359,000380: 04,3605           53205                          DXCH     UPBUFF     +8D                        #  STORE IT
059360,000381: 04,3606           52155                          DXCH     MPAC                                  #  INTO MPAC FOR TPAGREE.
059361,000382: 
059362,000383: 04,3607           00006                          EXTEND                                         
059363,000384: 04,3610           31217                          DCA      UPBUFF     +18D                       
059364,000385: 04,3611           20155                          DAS      MPAC                                  #  FORM SUM IN MPAC
059365,000386: 04,3612           00006                          EXTEND                                         
059366,000387: 04,3613           13622                          BZF      DELTAOK                               #  TEST FOR OVERFLOW
059367,000388: 04,3614           34755                          CAF      ZERO                                  
059368,000389: 04,3615           53217                          DXCH     UPBUFF     +18D                       #  OVERFLOW, RESTORE OLD VALUE OF CLOCK
059369,000390: 04,3616           20025                          DAS      TIME2                                 #  AND TURN ON OPERATOR ERROR
059370,000391: 
059371,000392: 04,3617           05353                          TC       PHASCHNG                              #  RESTART PROTECT (GROUP 6)
059372,000393: 04,3620           04026                          OCT      04026                                 
059373,000394: 
059374,000395: 04,3621           01167                          TC       UPTEMP                                #  GO TO ERROR EXIT
059375,000396: 
059376,000397: 04,3622           07257        DELTAOK           TC       TPAGREE                               #  FORCE SIGN AGREEMENT
059377,000398: 04,3623           52155                          DXCH     MPAC                                  
059378,000399: 04,3624           20025                          DAS      TIME2                                 #  INCREMENT TIME2,TIME1
059379,000400: 
059380,000401: 04,3625           05353                          TC       PHASCHNG                              #  RESTART PROTECT (GROUP 6)
059381,000402: 04,3626           04026                          OCT      04026                                 
059382,000403: 
059383,000404: 04,3627           00004                          INHINT                                         
059384,000405: 04,3630           51167                          INDEX    UPTEMP                                #  (CODED THIS WAY FOR RESTART PROTECTION)
059385,000406: 04,3631           00001                          TC       1                                     #  NORMAL RETURN
059386,000407: 
059387,000408:                                                                                                 #  VERB 71 BRANCH
059388,000409: 
059389,000410: 04,3632           31175        UPEND71           CAE      UPBUFF     +1                         #  SET EBANK
059390,000411: 04,3633           54003                          TS       EBANK                                 #         AND
059391,000412: 04,3634           74357                          MASK     LOW8                                  #  CALCULATE
059392,000413: 04,3635           55167                          TS       UPTEMP                                #  S-REG VALUE OF RECEIVING AREA
059393,000414: 
059394,000415: 04,3636           67745                          AD       NEG3                                  #  IN THE PROCESS OF
059395,000416: 04,3637           61170                          AD       COMPNUMB                              #  PERFORMING
059396,000417: 04,3640           00006                          EXTEND                                         #  THIS UPDATE
059397,000418: 04,3641           13647                          BZF      STORLP71                              #  WILL WE
059398,000419: 04,3642           74743                          MASK     BIT9                                  #  OVERFLOW
059399,000420: 04,3643           10000                          CCS      A                                     #  INTO THE NEXT EBANK....
059400,000421: 04,3644           13760                          TCF      UPERROUT                              #  YES
059401,000422: 
059402,000423: 04,3645           37745                          CA       NEG3                                  #  NO -- CALCULATE NUMBER OF
059403,000424: 04,3646           61170                          AD       COMPNUMB                              #  WORDS TO BE STORED MINUS ONE
059404,000425: 04,3647           54154        STORLP71          TS       MPAC                                  #  SAVE NO. OF WORDS REMAINING MINUS ONE
059405,000426:                                                                                                 #  Page 1394
059406,000427: 04,3650           50000                          INDEX    A                                     #  TAKE NEXT UPDATE WORD FROM
059407,000428: 04,3651           31176                          CA       UPBUFF     +2                         #  UPBUFF AND
059408,000429: 
059409,000430: 04,3652           54001                          TS       L                                     #  SAVE IT IN L
059410,000431: 04,3653           30154                          CA       MPAC                                  #  CALCULATE NEXT
059411,000432: 04,3654           61167                          AD       UPTEMP                                #  RECEIVING ADDRESS
059412,000433: 04,3655           50000                          INDEX    A                                     
059413,000434: 04,3656  E3,1400                                 EBANK=   1400                                  
059414,000435: 04,3656           23400                          LXCH     1400                                  #  UPDATE THE REGISTER BY CONTENTS OF L
059415,000436: 04,3657  E3,1706                                 EBANK=   TEPHEM                                
059416,000437: 04,3657           10154                          CCS      MPAC                                  #  ARE THERE ANY WORDS LEFT TO BE STORED
059417,000438: 04,3660           13647                          TCF      STORLP71                              #  YES
059418,000439: 04,3661           13711                          TCF      UPOUT                                 #  NO -- THEN EXIT UPDATE PROGRAM
059419,000440: 04,3662           01173        ADUPBFM1          ADRES    UPBUFF     -1                         #  SAME AS ADUPBUFF BUT LESS 1 (DON'T MOVE)
059420,000441: 04,3663           13711                          TCF      UPOUT                                 #  NO -- EXIT UPDATE (HERE WHEN COMPNUMB = 3)
059421,000442: 
059422,000443:                                                                                                 #  VERB 72 BRANCH
059423,000444: 
059424,000445: 04,3664           34753        UPEND72           CAF      BIT1                                  #  HAVE AN ODD NO. OF COMPONENTS
059425,000446: 04,3665           71170                          MASK     COMPNUMB                              #  BEEN SENT FOR A V72 UPDATE ...
059426,000447: 04,3666           10000                          CCS      A                                     
059427,000448: 04,3667           13671                          TCF      +2                                    #  YES
059428,000449: 04,3670           13760                          TCF      UPERROUT                              #  ERROR -- SHOULD BE ODD NO. OF COMPONENTS
059429,000450: 04,3671           44752                          CS       BIT2                                  
059430,000451: 04,3672           61170                          AD       COMPNUMB                              
059431,000452: 04,3673           54154        LDLOOP72          TS       MPAC                                  #  NOW PERFORM THE UPDATE
059432,000453: 04,3674           50000                          INDEX    A                                     
059433,000454: 04,3675           31175                          CAE      UPBUFF     +1                         #  PICK UP NEXT UPDATE WORD
059434,000455: 04,3676           22000                          LXCH     A                                     
059435,000456: 04,3677           10154                          CCS      MPAC                                  #  SET POINTER TO ECADR (MUST BE CCS)
059436,000457: 04,3700           54154                          TS       MPAC                                  
059437,000458: 04,3701           50000                          INDEX    A                                     
059438,000459: 04,3702           31175                          CAE      UPBUFF     +1                         #  PICK UP NEXT ECADR OF REG TO BE UPDATED
059439,000460: 04,3703           54003                          TS       EBANK                                 #  SET EBANK
059440,000461: 04,3704           74357                          MASK     LOW8                                  #  ISOLATE RELATIVE ADDRESS
059441,000462: 04,3705           50000                          INDEX    A                                     
059442,000463: 04,3706  E3,1400                                 EBANK=   1400                                  
059443,000464: 04,3706           23400                          LXCH     1400                                  #  UPDATE THE REGISTER BY CONTENTS OF L
059444,000465: 04,3707  E3,1706                                 EBANK=   TEPHEM                                
059445,000466: 04,3707           10154                          CCS      MPAC                                  #  ARE WE THORUGH THE V72 UPDATE...
059446,000467: 04,3710           13673                          TCF      LDLOOP72                              #  NO
059447,000468: 
059448,000469:                                                                                                 #  NORMAL FINISH OF P27
059449,000470: 
059450,000471: 04,3711                        UPOUT             EQUALS                                         
059451,000472: 04,3711           03165                          TC       INTWAKEU                              #  RELEASE GRAB OF ORBITAL INTEGRATION
059452,000473: 04,3712           31171                 +1       CAE      UPOLDMOD                              #  RESTORE PRIOR P27 MODE
059453,000474: 04,3713           05314                          TC       NEWMODEX   +3                         
059454,000475: 04,3714           34755                          CAF      ZERO                                  
059455,000476:                                                                                                 #  Page 1395
059456,000477: 04,3715           54332                          TS       DNLSTCOD                              
059457,000478: 04,3716           03765                          TC       UPACTOFF                              #  TURN OFF 'UPLINK ACTIVITY' LIGHT
059458,000479: 
059459,000480: 04,3717           00006                          EXTEND                                         #  KILL GROUP 6.
059460,000481: 04,3720           34755                          DCA      NEG0                                  
059461,000482: 04,3721           52765                          DXCH     -PHASE6                               
059462,000483: 
059463,000484: 04,3722           05472                          TC       ENDEXT                                #  EXTENDED VERB EXIT
059464,000485: 
059465,000486:                                                                                                 #  VERB TO BRANCH
059466,000487: 
059467,000488: 04,3723           00006        UPEND70           EXTEND                                         #  V70 DOES THE FOLLOWING WITH DP DELTA
059468,000489: 04,3724           41175                          DCS      UPBUFF                                #  TIME IN UPBUFF
059469,000490: 04,3725           53205                          DXCH     UPBUFF     +8D                        
059470,000491: 04,3726           03567                          TC       TIMEDIDL                              #  DECREMENT AGC CLOCK
059471,000492: 
059472,000493: 04,3727           03760                          TC       UPERROUT                              #  ERROR WHILE DECREMENTING CLOCK -- EXIT
059473,000494: 
059474,000495: 04,3730  E3,1706                                 EBANK=   TEPHEM                                
059475,000496: 04,3730           00006                          EXTEND                                         
059476,000497: 04,3731           41175                          DCS      UPBUFF                                #  COPY DECREMENTERS FOR
059477,000498: 04,3732           53207                          DXCH     UPBUFF     +10D                       #  RESTART PROTECTION
059478,000499: 04,3733           00006                          EXTEND                                         
059479,000500: 04,3734           41175                          DCS      UPBUFF                                
059480,000501: 04,3735           53211                          DXCH     UPBUFF     +12D                       
059481,000502: 
059482,000503: 04,3736           05353                          TC       PHASCHNG                              #  RESTART PROTECT (GROUP 6)
059483,000504: 04,3737           04026                          OCT      04026                                 
059484,000505: 
059485,000506: 04,3740           34755                          CAF      ZERO                                  
059486,000507: 04,3741           22007                          ZL                                             
059487,000508: 04,3742           53207                          DXCH     UPBUFF     +10D                       #  DECREMENT CSM STATE VECTOR TIME
059488,000509: 04,3743           21571                          DAS      TETCSM                                
059489,000510: 
059490,000511: 04,3744           34755                          CAF      ZERO                                  
059491,000512: 04,3745           22007                          ZL                                             
059492,000513: 04,3746           53211                          DXCH     UPBUFF     +12D                       #  DECREMENT LEM STATE VECTOR TIME
059493,000514: 04,3747           21643                          DAS      TETLEM                                
059494,000515: 
059495,000516: 04,3750           34755                          CAF      ZERO                                  
059496,000517: 04,3751           22007                          ZL                                             
059497,000518: 04,3752           53175                          DXCH     UPBUFF                                
059498,000519: 04,3753           21710                          DAS      TEPHEM     +1                         #  INCREMENT TP TEPHEM
059499,000520: 04,3754           27706                          ADS      TEPHEM                                
059500,000521: 
059501,000522: 04,3755           05353                          TC       PHASCHNG                              #  RESTART PROTECT (GROUP 6)
059502,000523: 04,3756           04026                          OCT      04026                                 
059503,000524: 
059504,000525: 04,3757     1174                                 EBANK=   UPBUFF                                
059505,000526:                                                                                                 #  Page 1396
059506,000527: 04,3757           03711                          TC       UPOUT                                 #  GO TO STANDARD UPDATE PROGRAM EXIT
059507,000528: 
059508,000529: 
059509,000530:                                                                                                 #  ERROR SEQUENCE
059510,000531: 
059511,000532: 04,3760           04364        UPERROUT          TC       FALTON                                #  TURN ON *OPERATOR ERROR* LIGHT
059512,000533: 04,3761           13711                          TCF      UPOUT                                 #  GO TO COMMON UPDATE PROGRAM EXIT
059513,000534: 
059514,000535: 04,3762           04364                 +2       TC       FALTON                                #  TURN ON 'OPERATOR ERROR' LIGHT
059515,000536: 04,3763           03765                          TC       UPACTOFF                              #  TURN OFF 'UPLINK ACTIVITY' LIGHT
059516,000537: 04,3764           05472                          TC       ENDEXT                                #  EXTENDED VERB EXIT
059517,000538:                                                                                                 #  (THE PURPOS OF UPERROUT +2 EXIT IS
059518,000539:                                                                                                 #  TO PROVIDE AN ERROR EXIT WHICH DOES NOT
059519,000540:                                                                                                 #  RESET ANY RESTART GROUPS)
059520,000541: 
059521,000542:                                                                                                 #  'UPACTOFF' IS A ROUTINE TO TURN OFF UPLINK ACTIVITY LIGHT ON ALL EXITS FROM UPDATE PROGRAM (P27).
059522,000543: 
059523,000544: 04,3765           44751        UPACTOFF          CS       BIT3                                  
059524,000545: 04,3766           00006                          EXTEND                                         #  TURN OFF UPLINK ACTIVITY LIGHT
059525,000546: 04,3767           03011                          WAND     DSALMOUT                              #  (BIT 3 OF CHANNEL 11)
059526,000547: 04,3770           00002                          TC       Q                                     
059527,000548: 

End of include-file UPDATE_PROGRAM.agc.  Parent file is MAIN.agc