Source Code

057320,000001: # Copyright: Public domain. 057321,000002: # Filename: UPDATE_PROGRAM.agc 057322,000003: # Purpose: A section of Luminary 1C, revision 131. 057323,000004: # It is part of the source code for the Lunar Module's (LM) 057324,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14. 057325,000006: # This file is intended to be a faithful transcription, except 057326,000007: # that the code format has been changed to conform to the 057327,000008: # requirements of the yaYUL assembler rather than the 057328,000009: # original YUL assembler. 057329,000010: # Reference: pp. 1383-1393 of 1729.pdf. 057330,000011: # Contact: Ron Burkey <info@sandroid.org>. 057331,000012: # Website: www.ibiblio.org/apollo/index.html 057332,000013: # Mod history: 06/07/03 RSB. Began transcribing. 057333,000014: # 05/14/05 RSB Corrected website reference above. 057334,000015: # 2010-10-25 JL Indentation fixes. 057335,000016: # 2011-05-07 JL Flagged SBANK= workaround for future removal. 057336,000017: 057337,000018: # Page 1383 057338,000019: # PROGRAM NAME: P27 057339,000020: # WRITTEN BY: KILROY/ DE WOLF 057340,000021: 057341,000022: # MOD NO: 6 057342,000023: # MOD BY: KILROY 057343,000024: # DATE: 01DEC67 057344,000025: 057345,000026: # LOG SECTION: UPDATE PROGRAM. 057346,000027: 057347,000028: # FUNCT. DESCR.: P27 (THE UPDATE PROGRAM) PROCESSES COMMANDS AND DATA 057348,000029: # INSERTIONS REQUESTED BY THE GROUND VIA UPLINK. 057349,000030: # THE P27 PROGRAM WILL ACCEPT UPDATES 057350,000031: # ONLY DURING P00 FOR THE LM, AND ONLY DURINT P00, 057351,000032: # P02, AND FRESH START FOR THE CSM. 057352,000033: 057353,000034: # CALLING SEQ: PROGRAM IS INITIATED BY UPLINK ENTRY OF VERBS 70, 71, 72, AND 73. 057354,000035: 057355,000036: # SUBROUTINES: TESTXACT, NEWMODEX, NEWMODEX +3, GOXDSPF, BANKCALL, FINDVAC, INTPRET, INTSTALL, TPAGREE, 057356,000037: # INTWAKEU, ENDEXT, POSTJUMP, FALTON, NEWPHASE, PHASCHNG 057357,000038: 057358,000039: # NORMAL EXIT: TC ENDEXT 057359,000040: 057360,000041: # ALARM/ABORT: TC FALTON FOLLOWED BY TC ENDEXT 057361,000042: 057362,000043: # RESTARTS: P27 IS RESTART PROTECTED IN TWO WAYS ... 057363,000044: # 1. PRIOR TO VERIFLAG INVERSION (WHICH IS CAUSED BY THE GROUND/ASTRONAUT'S VERIFICATION OF UPDATE 057364,000045: # DATA BY SENDING A V33E WHEN V21N02 IS FLASHING)--- 057365,000046: # NO PROTECTION EXCEPT PRE-P27 MODE IS RESTROED, COAST + ALIGN DOWNLIST IS SELECTED AND UPLINE 057366,000047: # ACTIVITY LIGHT IS TURNED OFF. (JUST AS IF A V34E WAS SENT DURING P27 DATA LOADS). 057367,000048: # V70,V71,V72, OR V73 WILL HAVE TO BE COMPLETELY RESENT BY USER. 057368,000049: # 2. AFTER VERIFLAG INVERSION (WHEN UPDATE OF THE SPECIFIED ERASABLES IS BEING PERFORMED)--- 057369,000050: # PROTECTED AGAINST RESTARTS. 057370,000051: 057371,000052: # DEBRIS: UPBUFF (20D) TEMP STORAGE FOR ADDRESSES AND CONTENTS. 057372,000053: # UPVERB (1) VERB NUMBER MINUS 70D (E.G., FOR V72, UPVERB = 72D - 70D = 2) 057373,000054: # UPOLDMOD(1) FOR MAJOR MODE INTERRUPTED BY P27. 057374,000055: # COMPNUMB(1) TOTAL NUMBER OF COMPONENTS TO BE TRANSMITTED. 057375,000056: # UPCOUNT (1) ACTUAL NUMBER OF COMPONENTS RECEIVED. 057376,000057: # UPTEMP (1) SCRATCH, BUT USUALLY CONTAINS COMPONENT NUMBER TO BE CHANGED DURING VERIFY CYCLE. 057377,000058: 057378,000059: # INPUT: 057379,000060: 057380,000061: # ENTRY DESCRIPTION 057381,000062: # V70EXXXXXEXXXXXE (LIFTOFF TIME INCREMENT) DOUBLE PRECISION OCTAL TIME INCREMENT, XXXXX XXXXX, 057382,000063: # IS ADDED TO TEPHEM, SUBTRACTED FROM AGC CLOCK(TIME2,TIME1), SUBTRACTED FROM CSM STATE 057383,000064: # VECTOR TIME(TETCSM) AND SUBTRACTED FROM LEM STATE VECTOR TIME(TETLEM). 057384,000065: # THE DP OCTAL TIME INCREMENT IS SCALED AT 2(28). 057385,000066: # Page 1384 057386,000067: # V71EIIEAAAAE (CONTIGUOUS BLOCK UPDATE) II-2 OCTAL COMPONENTS, XXXXX, 057387,000068: # XXXXXE ARE LOADED INTO ERASABLE STARTING AT ECADR, AAAA. 057388,000069: # XXXXXE IT IS .GE. 3 .AND. .LE. 200., 057389,000070: # ... AND (AAAA + II -3) DOES NOT PRODUCE AN ADDRESS IN THE 057390,000071: # NEXT BANK. SCALING IS SAME AS INTERNAL REGISTERS. 057391,000072: # V72EIIE (SCATTER UPDATE) (II-1)/2 OCTAL COMPONENTS, XXXXX, ARE 057392,000073: # AAAAEXXXXXE LOADED INTO ERASABLE LOCATIONS, AAAA. 057393,000074: # AAAAEXXXXXE II IS .GE. 3 .AND. .LE. 19D, AND MUST BE ODD. 057394,000075: # ... SCALING IS SAME AS INTERNAL REGISTERS. 057395,000076: 057396,000077: # V73EXXXXXEXXXXXE (OCTAL CLOCK INCREMENT) DOUBLE PRECISION OCTAL TIME 057397,000078: # INCREMENT XXXXX XXXXX, IS ADDED TO THE AGC CLOCK, IN 057398,000079: # CENTISECONDS SCALED AT (2)28). 057399,000080: # THIS LOAD IS THE OCTAL EQUIVALENT OF V55. 057400,000081: 057401,000082: # OUTPUT: IN ADDITION TO THE ABOVE REGISTER LOADS, ALL UPDATES 057402,000083: # COMPLEMENT BIT3 OF FLAGWORD7. 057403,000084: 057404,000085: # ADDITIONAL NOTES: VERB 71, JUST DEFINED ABOVE WILL BE USED TO PERFORM BUT NOT LIMITED TO THE FOLLOWING UPDATES -- 057405,000086: # 1. CSM/LM STATE VECTOR UPDATE 057406,000087: # 2. REFSMMAT UPDATE 057407,000088: 057408,000089: # THE FOLLOWING COMMENTS DELINEATE EACH SPECIAL UPDATE --- 057409,000090: 057410,000091: # 1. CSM/LM STATE VECTOR UPDATE (ALL DATA ENTRIES IN OCTAL) 057411,000092: # ENTRIES: DATA DEFINITION: SCALE FACTORS: 057412,000093: # V71E CONTIGUOUS BLOCK UPDATE VERB 057413,000094: # 21E NUMBER OF COMPONENTS FOR STATE VECTOR UPDATE 057414,000095: # AAAAE ECADR OF `UPSVFLAG' 057415,000096: # XXXXXE STATE VECTOR IDENTIFIER: 00001 FOR CSM, 77776 FOR LEM -- EARTH SPHERE OF INFLUENCE SCALING 057416,000097: # 00002 FOR CSM, 77775 FOR LEM -- LUNAR SPHERE OF INFLUENCE SCALING 057417,000098: # XXXXXEXXXXXE X POSITION 057418,000099: # XXXXXEXXXXXE Y POSITION 057419,000100: # XXXXXEXXXXXE Z POSITION 057420,000101: # XXXXXEXXXXXE X VELOCITY 057421,000102: # XXXXXEXXXXXE Y VELOCITY 057422,000103: # XXXXXEXXXXXE Z VELOCITY 057423,000104: # XXXXXEXXXXXE TIME FROM AGC CLOCK ZERO 057424,000105: # V33E VERB 33 TO SIGNAL THAT THE STATE VECTOR IS READY TO BE STORED. 057425,000106: 057426,000107: # 2. REFSMMAT (ALL DATA ENTRIES IN OCTAL) 057427,000108: # ENTRIES DATA DEFINITITIONS SCALE FACTORS: 057428,000109: # Page 1385 057429,000110: # V71E CONTIGUOUS BLOCK UPDATE VERB 057430,000111: # 24E NUMBER OF COMPONENTS FOR REFSMMAT UPDATE 057431,000112: # AAAAE ECADR OF `REFSMMAT' 057432,000113: # XXXXXEXXXXXE ROW 1 COLUMN 1 2(-1) 057433,000114: # XXXXXEXXXXXE ROW 1 COLUMN 2 2(-1) 057434,000115: # XXXXXEXXXXXE ROW 1 COLUMN 3 2(-1) 057435,000116: # XXXXXEXXXXXE ROW 2 COLUMN 1 2(-1) 057436,000117: # XXXXXEXXXXXE ROW 2 COLUMN 2 2(-1) 057437,000118: # XXXXXEXXXXXE ROW 2 COLUMN 3 2(-1) 057438,000119: # XXXXXEXXXXXE ROW 3 COLUMN 1 2(-1) 057439,000120: # XXXXXEXXXXXE ROW 3 COLUMN 2 2(-1) 057440,000121: # XXXXXEXXXXXE ROW 3 COLUMN 3 2(-1) 057441,000122: # V33E VERB 33 TO SIGNAL THAT REFSMMAT IS READY TO BE STORED 057442,000123:

[WORKAROUND] RSB 2004

057444,000125: 13,3760  40,2000                                 SBANK=   PINSUPER                              

[WORKAROUND]

057446,000127: 
057447,000128: 07,3763                                          BANK     07                                    
057448,000129: 43,2000                                          SETLOC   EXTVERBS                              
057449,000130: 43,2000                                          BANK                                           
057450,000131: 
057451,000132: 43,3751  E3,1706                                 EBANK=   TEPHEM                                
057452,000133: 
057453,000134: 43,3751                                          COUNT*   $$/P27                                
057454,000135: 43,3751           34755        V70UPDAT          CAF      UP70                                  #  COMES HERE ON V70E
057455,000136: 43,3752           13760                          TCF      V73UPDAT   +1                         
057456,000137: 
057457,000138: 43,3753           34753        V71UPDAT          CAF      UP71                                  #  COMES HERE ON V71E
057458,000139: 43,3754           13760                          TCF      V73UPDAT   +1                         
057459,000140: 
057460,000141: 43,3755           34752        V72UPDAT          CAF      UP72                                  #  COMES HERE ON V72E
057461,000142: 43,3756           13760                          TCF      V73UPDAT   +1                         
057462,000143: 
057463,000144: 43,3757           36250        V73UPDAT          CAF      UP73                                  #  COMES HERE ON V73E
057464,000145: 
057465,000146: 43,3760           55165                 +1       TS       UPVERBSV                              #  SAVE UPVERB UNTIL IT'S OK TO ENTER P27
057466,000147: 
057467,000148: 43,3761           02076                          TC       TESTXACT                              #  GRAB DISPLAY IF AVAILABLE, OTHERWISE
057468,000149:                                                                                                 #  TURN *OPERATOR ERROR* ON AND TERMINATE EJOB
057469,000150: 
057470,000151: 43,3762           31010                          CA       MODREG                                #  CHECK IF UPDATE ALLOWED
057471,000152: 43,3763           00006                          EXTEND                                         #  FIRST CHECK FOR MODREG = +0, -0
057472,000153: 43,3764           13767                          BZF      +3                                    #  (+0 = P00, -0 = FRESHSTART)
057473,000154: 43,3765           04635        UPERROR           TC       POSTJUMP                              #  TURN ON `OPERATOR ERROR' LIGHT
057474,000155: 43,3766           11740                          CADR     UPERROUT   +2                         #  GO TO COMMON UPDATE PROGRAM EXIT
057475,000156: 
057476,000157: 43,3767  43,3765               CKMDMORE          =        UPERROR                               
057477,000158: 43,3767           55170                 +3       TS       UPOLDMOD                              #  SET UPOLDMOD TO ZERO.
057478,000159: 43,3770           31165                          CAE      UPVERBSV                              #  SET UPVERB TO INDICDATE TO P27
057479,000160:                                                                                                 #  Page 1386
057480,000161: 43,3771           55171                          TS       UPVERB                                #  WHICH EXTENDED VERB CALLED IT.
057481,000162: 
057482,000163: 43,3772           34753                          CAF      ONE                                   
057483,000164: 43,3773           55172                          TS       UPCOUNT                               #  INITIALIZE UPCOUNT TO 1
057484,000165: 
057485,000166: 43,3774           04635                          TC       POSTJUMP                              #  LEAVE EXTENDED VERB BANK AND
057486,000167: 43,3775           11357                          CADR     UPPART2                               #  GO TO UPDATE PROGRAM (P27) BANK.
057487,000168: 
057488,000169: 43,3776     4755               UP70              EQUALS   ZERO                                  
057489,000170: 43,3776     4753               UP71              EQUALS   ONE                                   
057490,000171: 43,3776     4752               UP72              EQUALS   TWO                                   
057491,000172: 43,3776     6250               UP73              EQUALS   THREE                                 
057492,000173: 
057493,000174: 04,3357                                          BANK     04                                    
057494,000175: 04,2000                                          SETLOC   UPDATE2                               
057495,000176: 04,2000                                          BANK                                           
057496,000177: 
057497,000178: 04,3357                                          COUNT*   $$/P27                                
057498,000179: 
057499,000180: 04,3357                        UPPART2           EQUALS                                         #  UPDATE PROGRAM -- PART 2
057500,000181: 
057501,000182: 04,3357           05353                          TC       PHASCHNG                              #  SET RESTART GROUP 6 TO RESTORE OLD MODE
057502,000183: 04,3360           07026                          OCT      07026                                 #  AND DOWNLIST AND EXIT IF RESTART OCCURS.
057503,000184: 04,3361           30000                          OCT      30000                                 #  PRIORITY SAME AS CHRPRIO
057504,000185: 04,3362     1173                                 EBANK=   UPBUFF                                
057505,000186: 04,3362           03670 10102                    2CADR    UPOUT      +1                         
057506,000187: 
057507,000188: 04,3364           34753                          CAF      ONE                                   
057508,000189: 04,3365           54333                          TS       DNLSTCOD                              #  DOWNLIST
057509,000190: 
057510,000191: 04,3366           05311                          TC       NEWMODEX                              #  SET MAJOR MODE = 27
057511,000192: 04,3367           00033                          DEC      27         B-14                       
057512,000193: 
057513,000194: 04,3370           51171                          INDEX    UPVERB                                #  BRANCH DEPENDING ON WHETHER THE UPDATE
057514,000195: 04,3371           13372                          TCF      +1                                    #  VERB REQUIRES A FIXED OR VARIABLE NUMBER
057515,000196: 04,3372           13375                          TCF      +3                                    #  V70 FIXED                (OF COMPONENTS)
057516,000197: 04,3373           13400                          TCF      OHWELL1                               #  V71 VARIABLE -- GO GET NO. OF COMPONENTS
057517,000198: 04,3374           13400                          TCF      OHWELL1                               #  V72 VARIABLE -- GO GET NO. OF COMPONENTS
057518,000199: 04,3375           34752                          CA       TWO                                   #  V73 (AND V70) FIXED
057519,000200: 04,3376           55167                          TS       COMPNUMB                              #  SET NUMBER OF COMPONENTS TO 2.
057520,000201: 04,3377           13423                          TCF      OHWELL2                               #  GO GET THE TWO UPDATE COMPONENTS
057521,000202: 
057522,000203: 04,3400           33473        OHWELL1           CAF      ADUPBUFF                              #  * REQUEST USER TO SEND NUMBER *
057523,000204: 04,3401           54156                          TS       MPAC       +2                         #  * OF COMPONENTS PARAMETER(II) *
057524,000205: 04,3402           33474                 +2       CAF      UPLOADNV                              #  (CKV432 RETURNS HERE IF V32 ENCOUNTERED)
057525,000206: 04,3403           04616                          TC       BANKCALL                              #  DISPLAY A FLASHING V21N01
057526,000207: 04,3404           20334                          CADR     GOXDSPF                               #  TO REQUEST II.
057527,000208:                                                                                                 #  Page 1387
057528,000209: 04,3405           13670                          TCF      UPOUT4                                #  V32 TERMINATE UPDATE (P27) RETURN
057529,000210: 04,3406           13402                          TCF      OHWELL1    +2                         
057530,000211: 04,3407           03464                          TC       CK4V32                                #  DATA OR V32 RETURN
057531,000212: 04,3410           44752                          CS       BIT2                                  
057532,000213: 04,3411           61173                          AD       UPBUFF                                #  IS II (NUMBER OF COMPONENTS PARAMETER)
057533,000214: 04,3412           00006                          EXTEND                                         #  .GE. 3 AND .LE. 20D.
057534,000215: 04,3413           63402                          BZMF     OHWELL1    +2                         
057535,000216: 04,3414           41173                          CS       UPBUFF                                
057536,000217: 04,3415           64362                          AD       UP21                                  
057537,000218: 04,3416           00006                          EXTEND                                         
057538,000219: 04,3417           63402                          BZMF     OHWELL1    +2                         
057539,000220: 04,3420           31173                          CAE      UPBUFF                                
057540,000221: 04,3421           55167                          TS       COMPNUMB                              #  SAVE II IN COMPNUMB
057541,000222: 
057542,000223:                                                                                                 #  UPBUFF LOADING SEQUENCE
057543,000224: 
057544,000225: 04,3422           25172                          INCR     UPCOUNT                               #  INCREMENT COUNT OF COMPONENTS RECEIVED.
057545,000226: 04,3423           33640        OHWELL2           CAF      ADUPBFM1                              #  CALCULATE LOCATION (ECADR) IN UPBUFF
057546,000227: 04,3424           61172                          AD       UPCOUNT                               #  WHERE NEXT COMPONENT SHOULD BE STORED
057547,000228: 04,3425           54156                 +2       TS       MPAC       +2                         #  PLACE ECADR INTO R3.
057548,000229: 04,3426           33474                 +3       CAF      UPLOADNV                              #  (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
057549,000230: 04,3427           04616                          TC       BANKCALL                              #  DISPLAY A FLASHING V21N01
057550,000231: 04,3430           20334                          CADR     GOXDSPF                               #  TO REQUEST DATA.
057551,000232: 04,3431           13670                          TCF      UPOUT4                                #  V34 TERMINATE UPDATE (P27) RETURN.
057552,000233: 04,3432           13426                          TCF      OHWELL2    +3                         #  V33 PROCEED RETURN
057553,000234: 04,3433           03464                          TC       CK4V32                                #  DATA OR V32 RETURN
057554,000235: 04,3434           41172                          CS       UPCOUNT                               #  HAVE WE FINISHED RECEIVING ALL
057555,000236: 04,3435           61167                          AD       COMPNUMB                              #  THE DATA WE EXPECTED.
057556,000237: 04,3436           00006                          EXTEND                                         
057557,000238: 04,3437           63441                          BZMF     UPVERIFY                              #  YES -- GO TO VERIFICATION SEQUENCE
057558,000239: 04,3440           13422                          TCF      OHWELL2    -1                         #  NO -- REQUEST ADDITIONAL DATA.
057559,000240: 
057560,000241:                                                                                                 #  VERIFY SEQUENCE
057561,000242: 
057562,000243: 04,3441           33472        UPVERIFY          CAF      ADUPTEMP                              #  PLACE ECADR WHERE COMPONENT NO. INDEX
057563,000244: 04,3442           54156                          TS       MPAC       +2                         #  IS TO BE STORED INTO R3.
057564,000245: 04,3443           33475                          CAF      UPVRFYNV                              #  (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
057565,000246: 04,3444           04616                          TC       BANKCALL                              #  DISPLAY A FLASHING V21N02 TO REQUEXT
057566,000247: 04,3445           20334                          CADR     GOXDSPF                               #  DATA CORRECTION OR VERIFICATION.
057567,000248: 04,3446           13670                          TCF      UPOUT4                                #  V34 TERMINATE UPDATE (P27) RETURN
057568,000249: 04,3447           13476                          TCF      UPSTORE                               #  V33 DATA SENT IS GOOD.  GO STORE IT.
057569,000250: 04,3450           03464                          TC       CK4V32                                #  COMPONENT NO. INDEX OR V32 RETURN
057570,000251: 04,3451           31166                          CA       UPTEMP                                #  DOES THE COMPONENT NO. INDEX JUST SEND
057571,000252: 04,3452           00006                          EXTEND                                         #  SPECIFY A LEGAL COMPONENT NUMBER?
057572,000253: 04,3453           63441                          BZMF     UPVERIFY                              #  NO, IT IS NOT POSITIVE NONZERO
057573,000254: 04,3454           41166                          CS       UPTEMP                                
057574,000255: 04,3455           61167                          AD       COMPNUMB                              
057575,000256: 04,3456           64753                          AD       BIT1                                  
057576,000257:                                                                                                 #  Page 1388
057577,000258: 04,3457           00006                          EXTEND                                         
057578,000259: 04,3460           63441                          BZMF     UPVERIFY                              #  NO
057579,000260: 04,3461           33640                          CAF      ADUPBFM1                              #  YES -- BASED ON THE COMPONENT NO. INDEX
057580,000261: 04,3462           61166                          AD       UPTEMP                                #  CALCULATE THE ECADR OF LOCATION IN
057581,000262: 04,3463           13425                          TCF      OHWELL2    +2                         #  UPBUFF WHICH USER WANTS TO CHANG.
057582,000263: 
057583,000264: 04,3464  04,3670               UPOUT4            EQUALS   UPOUT      +1                         #  COMES HERE ON V34 TC TERMINATE UPDATE.
057584,000265: 
057585,000266:                                                                                                 #  CHECK FOR VERB 32 SEQUENCE
057586,000267: 
057587,000268: 04,3464           40154        CK4V32            CS       MPAC                                  #  ON DATA RETURN FROM `GOXDSPF'
057588,000269: 04,3465           74746                          MASK     BIT6                                  #  ON DATA RETURN FROM "GOXDSP" & THE CON-
057589,000270: 04,3466           10000                          CCS      A                                     #  TENTS OF MPAC = VERB.  SO TEST FOR V32.
057590,000271: 04,3467           00002                          TC       Q                                     #  IT'S NOT A V32, IT'S DATA.  PROCEED.
057591,000272: 04,3470           50002                          INDEX    Q                                     
057592,000273: 04,3471           77771                          TC       0          -6                         #  V32 ENCOUNTERED -- GO BACK AND GET DATA
057593,000274: 
057594,000275: 04,3472           01166        ADUPTEMP          ADRES    UPTEMP                                #  ADDRESS OF TEMP STORAGE FOR CORRECTIONS
057595,000276: 04,3473           01173        ADUPBUFF          ADRES    UPBUFF                                #  ADDRESS OF UPDATE DATA STORAGE BUFFER
057596,000277: 04,3474           05201        UPLOADNV          VN       2101                                  #  VERB 21 NOUN 01
057597,000278: 04,3475           05202        UPVRFYNV          VN       2102                                  #  VERB 21 NOUN 02
057598,000279: 04,3476     4362               UP21              =        MD1                                   #  DEC 21 = MAX NO OF COMPONENTS +1
057599,000280: 04,3476     4756               UPDTPHAS          EQUALS   FIVE                                  
057600,000281: 
057601,000282:                                                                                                 #  PRE-STORE AND FAN TO APPROPRIATE BRANCH SEQUENCE
057602,000283: 
057603,000284: 04,3476                        UPSTORE           EQUALS                                         #  GROUND HAS VERIFIED UPDATE.  STORE DATA.
057604,000285: 
057605,000286: 04,3476           00004                          INHINT                                         
057606,000287: 
057607,000288: 04,3477           30103                          CAE      FLAGWRD7                              #  INVERT VERIFLAG (BIT 3 OF FLAGWRD7) TO
057608,000289: 04,3500           56001                          XCH      L                                     #  INDICATE TO THE GROUND (VIA DOWNLINK)
057609,000290: 04,3501           34751                          CAF      VERIFBIT                              #  THAT THE V33 (WHICH THE GROUND SENT TO
057610,000291: 04,3502           00006                          EXTEND                                         #  VERIFY THE UPDATE) HAS BEEN SUCCESSFULLY
057611,000292: 04,3503           06001                          RXOR     LCHAN                                 #  RECEIVED BY THE UPDATE PROGRAM
057612,000293: 04,3504           54103                          TS       FLAGWRD7                              
057613,000294: 
057614,000295: 04,3505           05353                          TC       PHASCHNG                              #  SET RESTART GROUP 6 TO REDO THE UPDATE
057615,000296: 04,3506           04026                          OCT      04026                                 #  DATA STORE IF A RESTART OCCURS.
057616,000297: 04,3507           00004                          INHINT                                         #  (BECAUSE PHASCHNG DID A RELINT)
057617,000298: 
057618,000299: 04,3510           44752                          CS       TWO                                   #  GO TO UPFNDVAC IF INSTALL IS REQUIRED.
057619,000300: 04,3511           61171                          AD       UPVERB                                #  THAT IS, IF IT'S A V70 - V72.
057620,000301: 04,3512           00006                          EXTEND                                         #  GO TO UPEND73 IF IT'S A V73.
057621,000302: 04,3513           63522                          BZMF     UPFNDVAC                              
057622,000303: 
057623,000304:                                                                                                 #  VERB 73 BRANCH
057624,000305: 
057625,000306: 04,3514           00006        UPEND73           EXTEND                                         #  V73 -- PERFORM DP OCTAL AGC CLOCK INCREMENT
057626,000307:                                                                                                 #  Page 1389
057627,000308: 04,3515           31174                          DCA      UPBUFF                                
057628,000309: 04,3516           53204                          DXCH     UPBUFF     +8D                        
057629,000310: 04,3517           03545                          TC       TIMEDIDL                              
057630,000311: 04,3520           04364                          TC       FALTON                                #  ERROR -- TURN ON *OPERATOR ERROR* LIGHT
057631,000312: 04,3521           03670                          TC       UPOUT      +1                         #  GO TO COMMON UPDATE PROGRAM EXIT
057632,000313: 
057633,000314: 04,3522           34355        UPFNDVAC          CAF      CHRPRIO                               #  (USE EXTENDED VERB PRIORITY)
057634,000315: 04,3523           05105                          TC       FINDVAC                               #  GET VAC AREA FOR `CALL INTSTALL'
057635,000316: 04,3524  E3,1706                                 EBANK=   TEPHEM                                
057636,000317: 04,3524           03527 10103                    2CADR    UPJOB                                 #  (NOTE:  THIS WILL ALSO SET EBANK FOR
057637,000318: 04,3526           05155                          TC       ENDOFJOB                              #  `TEPHEM' UPDATE BY V70)
057638,000319: 
057639,000320: 04,3527           06042        UPJOB             TC       INTPRET                               #  THIS COULD BE A STATE VECTOR UPDATE -- SO
057640,000321: 04,3530           77624                          CALL                                           #  WAIT (PUT JOB TO SLEEP) IF ORBIT INT(OI)
057641,000322: 04,3531           27410                                   INTSTALL                              #  IS IN PROGRESS -- OR -- GRAB OI AND RETURN
057642,000323:                                                                                                 #  TO UPWAKE IF OI IS NOT IN PROGRESS.
057643,000324: 
057644,000325: 04,3532           77776        UPWAKE            EXIT                                           
057645,000326: 
057646,000327: 04,3533           05353                          TC       PHASCHNG                              #  RESTART PROTECT (GROUP 6)
057647,000328: 04,3534           04026                          OCT      04026                                 
057648,000329: 
057649,000330: 04,3535           05504                          TC       UPFLAG                                #  SET INTEGRATION RESTART BIT
057650,000331: 04,3536           00236                          ADRES    REINTFLG                              
057651,000332: 04,3537           00004                          INHINT                                         
057652,000333: 04,3540                        UPPART3           EQUALS                                         
057653,000334: 
057654,000335: 04,3540           51171                          INDEX    UPVERB                                #  BRANCH TO THE APPROPRIATE UPDATE VERB
057655,000336: 04,3541           13542                          TCF      +1                                    #  ROUTINE TO ACTUALLY PERFORM THE UPDATE
057656,000337: 04,3542           13701                          TCF      UPEND70                               #  V70
057657,000338: 04,3543           13610                          TCF      UPEND71                               #  V71
057658,000339: 04,3544           13642                          TCF      UPEND72                               #  V72
057659,000340: 
057660,000341:                                                                                                 #  ROUTINE TO INCREMENT CLOCK (TIME2,TIME1) WITH CONTENTS OF DP WORD AT UPBUFF.
057661,000342: 
057662,000343: 04,3545           00006        TIMEDIDL          EXTEND                                         
057663,000344: 04,3546           23166                          QXCH     UPTEMP                                #  SAVE Q FOR RETURN
057664,000345: 04,3547           34755                          CAF      ZERO                                  #  ZERO AND SAVE TIME2,TIME1
057665,000346: 04,3550           22007                          ZL                                             
057666,000347: 04,3551           52025                          DXCH     TIME2                                 
057667,000348: 04,3552           53216                          DXCH     UPBUFF     +18D                       #  STORE IN CASE OF OVERFLOW
057668,000349: 
057669,000350: 04,3553           34756                          CAF      UPDTPHAS                              #  SO
057670,000351: 04,3554           54001                          TS       L                                     #  A
057671,000352: 04,3555           40000                          COM                                            #  QUICK
057672,000353: 04,3556           52764                          DXCH     -PHASE6                               #  PHASCHNG
057673,000354: 
057674,000355: 04,3557           00004        TIMEDIDR          INHINT                                         
057675,000356:                                                                                                 #  Page 1390
057676,000357: 04,3560           34755                          CAF      ZERO                                  
057677,000358: 04,3561           22007                          ZL                                             #  PICK UP INCRMENTER (AND ZERO
057678,000359: 04,3562           54156                          TS       MPAC       +2                         #  IT IN CASE OF RESTARTS) AND
057679,000360: 04,3563           53204                          DXCH     UPBUFF     +8D                        #  STORE IT
057680,000361: 04,3564           52155                          DXCH     MPAC                                  #  INTO MPAC FOR TPAGREE.
057681,000362: 
057682,000363: 04,3565           00006                          EXTEND                                         
057683,000364: 04,3566           31216                          DCA      UPBUFF     +18D                       
057684,000365: 04,3567           20155                          DAS      MPAC                                  #  FORM SUM IN MPAC
057685,000366: 04,3570           00006                          EXTEND                                         
057686,000367: 04,3571           13600                          BZF      DELTAOK                               #  TEST FOR OVERFLOW
057687,000368: 04,3572           34755                          CAF      ZERO                                  
057688,000369: 04,3573           53216                          DXCH     UPBUFF     +18D                       #  OVERFLOW, RESTORE OLD VALUE OF CLOCK
057689,000370: 04,3574           20025                          DAS      TIME2                                 #  AND TURN ON OPERATOR ERROR
057690,000371: 
057691,000372: 04,3575           05353                          TC       PHASCHNG                              #  RESTART PROTECT (GROUP 6)
057692,000373: 04,3576           04026                          OCT      04026                                 
057693,000374: 
057694,000375: 04,3577           01166                          TC       UPTEMP                                #  GO TO ERROR EXIT
057695,000376: 
057696,000377: 04,3600           07262        DELTAOK           TC       TPAGREE                               #  FORCE SIGN AGREEMENT
057697,000378: 04,3601           52155                          DXCH     MPAC                                  
057698,000379: 04,3602           20025                          DAS      TIME2                                 #  INCREMENT TIME2,TIME1
057699,000380: 
057700,000381: 04,3603           05353                          TC       PHASCHNG                              #  RESTART PROTECT (GROUP 6)
057701,000382: 04,3604           04026                          OCT      04026                                 
057702,000383: 
057703,000384: 04,3605           00004                          INHINT                                         
057704,000385: 04,3606           51166                          INDEX    UPTEMP                                #  (CODED THIS WAY FOR RESTART PROTECTION)
057705,000386: 04,3607           00001                          TC       1                                     #  NORMAL RETURN
057706,000387: 
057707,000388:                                                                                                 #  VERB 71 BRANCH
057708,000389: 
057709,000390: 04,3610           31174        UPEND71           CAE      UPBUFF     +1                         #  SET EBANK
057710,000391: 04,3611           54003                          TS       EBANK                                 #         AND
057711,000392: 04,3612           74357                          MASK     LOW8                                  #  CALCULATE
057712,000393: 04,3613           55166                          TS       UPTEMP                                #  S-REG VALUE OF RECEIVING AREA
057713,000394: 
057714,000395: 04,3614           67750                          AD       NEG3                                  #  IN THE PROCESS OF
057715,000396: 04,3615           61167                          AD       COMPNUMB                              #  PERFORMING
057716,000397: 04,3616           00006                          EXTEND                                         #  THIS UPDATE
057717,000398: 04,3617           13625                          BZF      STORLP71                              #  WILL WE
057718,000399: 04,3620           74743                          MASK     BIT9                                  #  OVERFLOW
057719,000400: 04,3621           10000                          CCS      A                                     #  INTO THE NEXT EBANK....
057720,000401: 04,3622           13736                          TCF      UPERROUT                              
057721,000402: 
057722,000403: 04,3623           37750                          CA       NEG3                                  #  NO -- CALCULATE NUMBER OF
057723,000404: 04,3624           61167                          AD       COMPNUMB                              #  WORDS TO BE STORED MINUS ONE
057724,000405: 04,3625           54154        STORLP71          TS       MPAC                                  #  SAVE NO. OF WORDS REMAINING MINUS ONE
057725,000406: 04,3626           50000                          INDEX    A                                     #  TAKE NEXT UPDATE WORD FROM
057726,000407: 04,3627           31175                          CA       UPBUFF     +2                         #  UPBUFF AND
057727,000408:                                                                                                 #  Page 1391
057728,000409: 04,3630           54001                          TS       L                                     #  SAVE IT IN L
057729,000410: 04,3631           30154                          CA       MPAC                                  #  CALCULATE NEXT
057730,000411: 04,3632           61166                          AD       UPTEMP                                #  RECEIVING ADDRESS
057731,000412: 04,3633           50000                          INDEX    A                                     
057732,000413: 04,3634  E3,1400                                 EBANK=   1400                                  
057733,000414: 04,3634           23400                          LXCH     1400                                  #  UPDATE THE REGISTER BY CONTENTS OF L
057734,000415: 04,3635  E3,1706                                 EBANK=   TEPHEM                                
057735,000416: 04,3635           10154                          CCS      MPAC                                  #  ARE THERE ANY WORDS LEFT TO BE STORED
057736,000417: 04,3636           13625                          TCF      STORLP71                              #  YES
057737,000418: 04,3637           13667                          TCF      UPOUT                                 #  NO -- THEN EXIT UPDATE PROGRAM
057738,000419: 04,3640           01172        ADUPBFM1          ADRES    UPBUFF     -1                         #  SAME AS ADUPBUFF BUT LESS 1 (DON'T MOVE)
057739,000420: 04,3641           13667                          TCF      UPOUT                                 #  NO -- EXIT UPDATE (HERE WHEN COMPNUMB = 3)
057740,000421: 
057741,000422:                                                                                                 #  VERB 72 BRANCH
057742,000423: 
057743,000424: 04,3642           34753        UPEND72           CAF      BIT1                                  #  HAVE AN ODD NO. OF COMPONENTS
057744,000425: 04,3643           71167                          MASK     COMPNUMB                              #  BEEN SENT FOR A V72 UPDATE ...
057745,000426: 04,3644           10000                          CCS      A                                     
057746,000427: 04,3645           13647                          TCF      +2                                    #  YES
057747,000428: 04,3646           13736                          TCF      UPERROUT                              #  ERROR -- SHOULD BE ODD NO. OF COMPONENTS
057748,000429: 04,3647           44752                          CS       BIT2                                  
057749,000430: 04,3650           61167                          AD       COMPNUMB                              
057750,000431: 04,3651           54154        LDLOOP72          TS       MPAC                                  #  NO PERFORM THE UPDATE
057751,000432: 04,3652           50000                          INDEX    A                                     
057752,000433: 04,3653           31174                          CAE      UPBUFF     +1                         #  PICK UP NEXT UPDATE WORD
057753,000434: 04,3654           22000                          LXCH     A                                     
057754,000435: 04,3655           10154                          CCS      MPAC                                  #  SET POINTER TO ECADR (MUST BE CCS)
057755,000436: 04,3656           54154                          TS       MPAC                                  
057756,000437: 04,3657           50000                          INDEX    A                                     
057757,000438: 04,3660           31174                          CAE      UPBUFF     +1                         #  PICK UP NEXT ECADR OF REG TO BE UPDATED
057758,000439: 04,3661           54003                          TS       EBANK                                 #  SET EBANK
057759,000440: 04,3662           74357                          MASK     LOW8                                  #  ISOLATE RELATIVE ADDRESS
057760,000441: 04,3663           50000                          INDEX    A                                     
057761,000442: 04,3664  E3,1400                                 EBANK=   1400                                  
057762,000443: 04,3664           23400                          LXCH     1400                                  #  UPDATE THE REGISTER BY CONTENTS OF L
057763,000444: 04,3665  E3,1706                                 EBANK=   TEPHEM                                
057764,000445: 04,3665           10154                          CCS      MPAC                                  #  ARE WE THORUGH THE V72 UPDATE...
057765,000446: 04,3666           13651                          TCF      LDLOOP72                              #  NO
057766,000447: 
057767,000448:                                                                                                 #  NORMAL FINISH OF P27
057768,000449: 
057769,000450: 04,3667                        UPOUT             EQUALS                                         
057770,000451: 04,3667           03131                          TC       INTWAKEU                              #  RELEASE GRAB OF ORBITAL INTEGRATION
057771,000452: 04,3670           31170                 +1       CAE      UPOLDMOD                              #  RESTORE PRIOR P27 MODE
057772,000453: 04,3671           05314                          TC       NEWMODEX   +3                         
057773,000454: 04,3672           34755                          CAF      ZERO                                  
057774,000455: 04,3673           54333                          TS       DNLSTCOD                              
057775,000456: 04,3674           03743                          TC       UPACTOFF                              #  TURN OFF `UPLINK ACTIVITY' LIGHT
057776,000457:                                                                                                 #  Page 1392
057777,000458: 04,3675           00006                          EXTEND                                         #  KILL GROUP 6
057778,000459: 04,3676           34755                          DCA      NEG0                                  
057779,000460: 04,3677           52764                          DXCH     -PHASE6                               
057780,000461: 
057781,000462: 04,3700           05472                          TC       ENDEXT                                #  EXTENDED VERB EXIT
057782,000463: 
057783,000464:                                                                                                 #  VERB TO BRANCH
057784,000465: 
057785,000466: 04,3701           00006        UPEND70           EXTEND                                         #  V70 DOES THE FOLLOWING WITH DP DELTA
057786,000467: 04,3702           41174                          DCS      UPBUFF                                #  TIME IN UPBUFF
057787,000468: 04,3703           53204                          DXCH     UPBUFF     +8D                        
057788,000469: 04,3704           03545                          TC       TIMEDIDL                              #  DECREMENT AGC CLOCK
057789,000470: 
057790,000471: 04,3705           03736                          TC       UPERROUT                              #  ERROR WHILE DECREMENTING CLOCK -- EXIT
057791,000472: 
057792,000473: 04,3706  E3,1706                                 EBANK=   TEPHEM                                
057793,000474: 04,3706           00006                          EXTEND                                         
057794,000475: 04,3707           41174                          DCS      UPBUFF                                #  COPY DECREMENTERS FOR
057795,000476: 04,3710           53206                          DXCH     UPBUFF     +10D                       #  RESTART PROTECTION
057796,000477: 04,3711           00006                          EXTEND                                         
057797,000478: 04,3712           41174                          DCS      UPBUFF                                
057798,000479: 04,3713           53210                          DXCH     UPBUFF     +12D                       
057799,000480: 
057800,000481: 04,3714           05353                          TC       PHASCHNG                              #  RESTART PROTECT (GROUP 6)
057801,000482: 04,3715           04026                          OCT      04026                                 
057802,000483: 
057803,000484: 04,3716           34755                          CAF      ZERO                                  
057804,000485: 04,3717           22007                          ZL                                             
057805,000486: 04,3720           53206                          DXCH     UPBUFF     +10D                       #  DECREMENT CSM STATE VECTOR TIME
057806,000487: 04,3721           21571                          DAS      TETCSM                                
057807,000488: 
057808,000489: 04,3722           34755                          CAF      ZERO                                  
057809,000490: 04,3723           22007                          ZL                                             
057810,000491: 04,3724           53210                          DXCH     UPBUFF     +12D                       #  DECREMENT LEM STATE VECTOR TIME
057811,000492: 04,3725           21643                          DAS      TETLEM                                
057812,000493: 
057813,000494: 04,3726           34755                          CAF      ZERO                                  
057814,000495: 04,3727           22007                          ZL                                             
057815,000496: 04,3730           53174                          DXCH     UPBUFF                                
057816,000497: 04,3731           21710                          DAS      TEPHEM     +1                         #  INCREMENT TP TEPHEM
057817,000498: 04,3732           27706                          ADS      TEPHEM                                
057818,000499: 
057819,000500: 04,3733           05353                          TC       PHASCHNG                              #  RESTART PROTECT (GROUP 6)
057820,000501: 04,3734           04026                          OCT      04026                                 
057821,000502: 
057822,000503: 04,3735     1173                                 EBANK=   UPBUFF                                
057823,000504: 
057824,000505: 04,3735           03667                          TC       UPOUT                                 #  GO TO STANDARD UPDATE PROGRAM EXIT
057825,000506: 
057826,000507:                                                                                                 #  Page 1393
057827,000508:                                                                                                 #  ERROR SEQUENCE
057828,000509: 
057829,000510: 04,3736           04364        UPERROUT          TC       FALTON                                #  TURN ON *OPERATOR ERROR* LIGHT
057830,000511: 04,3737           13667                          TCF      UPOUT                                 #  GO TO COMMON UPDATE PROGRAM EXIT
057831,000512: 
057832,000513: 04,3740           04364                 +2       TC       FALTON                                #  TURN ON `OPERATOR ERROR' LIGHT
057833,000514: 04,3741           03743                          TC       UPACTOFF                              #  TURN OFF `UPLINK ACTIVITY' LIGHT
057834,000515: 04,3742           05472                          TC       ENDEXT                                #  EXTENDED VERB EXIT
057835,000516:                                                                                                 #  (THE PURPOS OF UPERROUT +2 EXIT IS
057836,000517:                                                                                                 #  TO PROVIDE AN ERROR EXIT WHICH DOES NOT
057837,000518:                                                                                                 #  RESET ANY RESTART GROUPS)
057838,000519: 
057839,000520:                                                                                                 #  `UPACTOFF' IS A ROUTINE TO TURN OFF UPLINK ACTIVITY LIGHT ON ALL EXITS FROM UPDATE PROGRAM (P27).
057840,000521: 
057841,000522: 04,3743           44751        UPACTOFF          CS       BIT3                                  
057842,000523: 04,3744           00006                          EXTEND                                         #  TURN OFF UPLINK ACTIVITY LIGHT
057843,000524: 04,3745           03011                          WAND     DSALMOUT                              #  (BIT 3 OF CHANNEL 11)
057844,000525: 04,3746           00002                          TC       Q                                     
057845,000526: 

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