Source Code

These source-code files derive from a printout of Luminary 210 (Apollo 15-17 Lunar Module guidance computer program), from the personal library of original AGC developer Don Eyles, digitally photographed at archive.org, financially sponsored by Jim Lawton, and transcribed to source code by a team of volunteers. This colorized, syntax-highlighted form was created by assembling that transcribed source code. Note that the full page images are available on the Virtual AGC project page at archive.org, while reduced-size images are presented at the VirtualAGC project website. Report or fix any transcription errors at the Virtual AGC project code repository.

Notations on the program listing read, in part:

	GAP: ASSEMBLE REVISION 210 OF AGC PROGRAM LUMINARY 
	BY NASA 2021112-161 17:11 MAR. 19,1971
Note that the date is the date of the printout, not the date of the program revision.

059724,000002:                                                                                                  ## Copyright:   Public domain.
059725,000003:                                                                                                  ## Filename:    UPDATE_PROGRAM.agc
059726,000004:                                                                                                  ## Purpose:     A section of Luminary revision 210.
059727,000005:                                                                                                  ##              It is part of the source code for the Lunar Module's (LM)
059728,000006:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 15-17.
059729,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
059730,000008:                                                                                                  ##              that the code format has been changed to conform to the
059731,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the
059732,000010:                                                                                                  ##              original YUL assembler.
059733,000011:                                                                                                  ## Reference:   pp. 1383-1393
059734,000012:                                                                                                  ## Assembler:   yaYUL
059735,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
059736,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
059737,000015:                                                                                                  ## Mod history: 2016-11-17 JL   Created from Luminary131 version.
059738,000016:                                                                                                  ##              2016-12-06 RRB  Updated for Luminary210.
059739,000017:                                                                                                  ##              2016-12-07 HG   Fix P00 -> POO (appears only in comments)
059740,000018:                                                                                                  ##                         Change POO -> P00 in some comments
059741,000019:                                                                                                  ##              2016-12-11 HG   Add missing operation  AD BIT1
059742,000020:                                                                                                  ##              2016-12-26 RSB  Comment-text proofed using ProoferComments
059743,000021:                                                                                                  ##                              and corrected errors found.
059744,000022:                                                                                                  ##              2017-01-28 RSB  Comment-text fixes identified for Luminary 69.
059745,000023:                                                                                                  ##              2017-02-09 RSB  Comment-text fixes identified for Artemis 72.
059746,000024:                                                                                                  ##              2017-06-17 MAS  Globally removed all SBANK= workarounds.
059747,000025:                                                                                                  ##              2021-05-30 ABS  DELTAOK -> DELTATOK
059748,000026: 

Page 1383

059750,000028:                                                                                                  #  PROGRAM NAME:         P27
059751,000029:                                                                                                  #  WRITTEN BY:           KILROY/ DE WOLF
059752,000030: 
059753,000031:                                                                                                  #  MOD NO:               6
059754,000032:                                                                                                  #  MOD BY:               KILROY
059755,000033:                                                                                                  #  DATE:                 01DEC67
059756,000034: 
059757,000035:                                                                                                  #  LOG SECTION:          UPDATE PROGRAM.
059758,000036: 
059759,000037:                                                                                                  #  FUNCT. DESCR:         P27 (THE UPDATE PROGRAM) PROCESSES COMMANDS AND DATA
059760,000038:                                                                                                  #                                INSERTIONS REQUESTED BY THE GROUND VIA UPLINK.
059761,000039:                                                                                                  #                                THE P27 PROGRAM WILL ACCEPT UPDATES
059762,000040:                                                                                                  #                                ONLY DURING P00 FOR THE LM, AND ONLY DURING P00,
059763,000041:                                                                                                  #                        P02, AND FRESH START FOR THE CSM
059764,000042: 
059765,000043:                                                                                                  #  CALLING SEQ:          PROGRAM IS INITIATED BY UPLINK ENTRY OF VERBS 70, 71, 72 AND 73.
059766,000044: 
059767,000045:                                                                                                  #  SUBROUTINES:          TESTXACT, NEWMODEX, NEWMODEX +3, GOXDSPF, BANKCALL, FINDVAC, INTPRET, INTSTALL, TPAGREE,
059768,000046:                                                                                                  #                        INTWAKEU, ENDEXT, POSTJUMP, FALTON, NEWPHASE, PHASCHNG
059769,000047: 
059770,000048:                                                                                                  #  NORMAL EXIT:          TC ENDEXT
059771,000049: 
059772,000050:                                                                                                  #  ALARM/ABORT:          TC FALTON FOLLOWED BY TC ENDEXT
059773,000051: 
059774,000052:                                                                                                  #  RESTARTS:             P27 IS RESTART PROTECTED IN TWO WAYS ...
059775,000053:                                                                                                  #                        1.      PRIOR TO VERIFLAG INVERSION (WHICH IS CAUSED BY THE GROUND/ASTRONAUT'S VERIFICATION OF UPDATE
059776,000054:                                                                                                  #                                DATA BY SENDING A V33E WHEN V21N02 IS FLASHING)---
059777,000055:                                                                                                  #                                NO PROTECTION EXCEPT PRE-P27 MODE IS RESTORED, COAST + ALIGN DOWNLIST IS SELECTED AND UPLINK
059778,000056:                                                                                                  #                                ACTIVITY LIGHT IS TURNED OFF.  (JUST AS IF A V34E WAS SENT DURING P27 DATA LOADS).
059779,000057:                                                                                                  #                                V70,V71,V72 OR V73 WILL HAVE TO BE COMPLETELY RESENT BY USER.
059780,000058:                                                                                                  #                        2.      AFTER VERIFLAG INVERSION (WHEN UPDATE OF THE SPECIFIED ERASABLES IS BEING PERFORMED)---
059781,000059:                                                                                                  #                                PROTECTED AGAINST RESTARTS.
059782,000060: 
059783,000061:                                                                                                  #  DEBRIS:               UPBUFF  (20D)   TEMP STORAGE FOR ADDRESSES AND CONTENTS.
059784,000062:                                                                                                  #                        UPVERB  (1)     VERB NUMBER MINUS 70D (E.G. FOR V72, UPVERB = 72D - 70D = 2)
059785,000063:                                                                                                  #                        UPOLDMOD(1)     FOR MAJOR MODE INTERRUPTED BY P27.
059786,000064:                                                                                                  #                        COMPNUMB(1)     TOTAL NUMBER OF COMPONENTS TO BE TRANSMITTED.
059787,000065:                                                                                                  #                        UPCOUNT (1)     ACTUAL NUMBER OF COMPONENTS RECEIVED.
059788,000066:                                                                                                  #                        UPTEMP  (1)     SCRATCH, BUT USUALLY CONTAINS COMPONENT NUMBER TO BE CHANGED DURING VERIFY CYCLE
059789,000067: 
059790,000068:                                                                                                  #  INPUT:
059791,000069: 
059792,000070:                                                                                                  #        ENTRY:                  DESCRIPTION
059793,000071:                                                                                                  #        V70EXXXXXEXXXXXE        (LIFTOFF TIME INCREMENT) DOUBLE PRECISION OCTAL TIME INCREMENT, XXXXX XXXXX,
059794,000072:                                                                                                  #                                IS ADDED TO TEPHEM, SUBTRACTED FROM AGC CLOCK(TIME2,TIME1), SUBTRACTED FROM CSM STATE
059795,000073:                                                                                                  #                                VECTOR TIME(TETCSM) AND SUBTRACTED FROM LEM STATE VECTOR TIME(TETLEM).
059796,000074:                                                                                                  #                                THE DP OCTAL TIME INCREMENT IS SCALED AT 2(28).

Page 1384

059798,000076:                                                                                                  #         V71EIIEAAAAE           (CONTIGUOUS BLOCK UPDATE) II-2 OCTAL COMPONENTS, XXXXX,
059799,000077:                                                                                                  #         XXXXXE                 ARE LOADED INTO ERASABLE STARTING AT ECADR, AAAA.
059800,000078:                                                                                                  #        XXXXXE                  IT IS .GE. 3 .AND. .LE. 20D.,
059801,000079:                                                                                                  #                                AND (AAAA + II -3) DOES NOT PRODUCE AN ADDRESS IN THE
059802,000080:                                                                                                  #        9 NEXT BANK
059803,000081:                                                                                                  #         .                      SCALING IS SAME AS INTERNAL REGISTERS.
059804,000082:                                                                                                  #        V72EIIE                 (SCATTER UPDATE) (II-1)/2 OCTAL COMPONENTS, XXXXX, ARE
059805,000083:                                                                                                  #        AAAAEXXXXXE             LOADED INTO ERASABLE LOCATIONS, AAAA.
059806,000084:                                                                                                  #        AAAAEXXXXXE             II IS .GE. 3 .AND. .LE. 19D, AND MUST BE ODD.
059807,000085:                                                                                                  #         .                      SCALING IS SAME AS INTERNAL REGISTERS.
059808,000086: 
059809,000087:                                                                                                  #        V73EXXXXXEXXXXXE        (OCTAL CLOCK INCREMENT) DOUBLE PRECISION OCTAL TIME
059810,000088:                                                                                                  #                                INCREMENT XXXXX XXXXX, IS ADDED TO THE AGC CLOCK, IN
059811,000089:                                                                                                  #                                CENTISECONDS SCALED AT (2)28.
059812,000090:                                                                                                  #                                THIS LOAD IS THE OCTAL EQUIVALENT OF V55.
059813,000091: 
059814,000092:                                                                                                  #  OUTPUT:               IN ADDITION TO THE ABOVE REGISTER LOADS, ALL UPDATES
059815,000093:                                                                                                  #                        COMPLEMENT BIT3 OF FLAGWORD7.
059816,000094: 
059817,000095:                                                                                                  #  ADDITIONAL NOTES:     VERB 71, JUST DEFINED ABOVE WILL BE USED TO PERFORM BUT NOT LIMITED TO THE FOLLOWING UPDATES --
059818,000096:                                                                                                  #                        1.  CSM/LM STATE VECTOR UPDATE
059819,000097:                                                                                                  #                        2.  REFSMMAT UPDATE
059820,000098: 
059821,000099:                                                                                                  #        THE FOLLOWING COMMENTS DELINEATE EACH SPECIAL UPDATE----
059822,000100: 
059823,000101:                                                                                                  #  1.  CSM/LM STATE VECTOR UPDATE (ALL DATA ENTRIES IN OCTAL)
059824,000102:                                                                                                  #  ENTRIES:      DATA DEFINITION:                                SCALE FACTORS:
059825,000103:                                                                                                  #  V71E          CONTIGUOUS BLOCK UPDATE VERB
059826,000104:                                                                                                  #     21E        NUMBER OF COMPONENTS FOR STATE VECTOR UPDATE
059827,000105:                                                                                                  #   AAAAE        ECADR OF 'UPSVFLAG'
059828,000106:                                                                                                  #  XXXXXE        STATE VECTOR IDENTIFIER: 00001 FOR CSM, 77776 FOR LEM - EARTH SPHERE OF INFLUENCE SCALING
059829,000107:                                                                                                  #                                         00002 FOR CSM, 77775 FOR LEM - LUNAR SPHERE OF INFLUENCE SCALING
059830,000108:                                                                                                  #  XXXXXEXXXXXE  X POSITION
059831,000109:                                                                                                  #  XXXXXEXXXXXE  Y POSITION
059832,000110:                                                                                                  #  XXXXXEXXXXXE  Z POSITION
059833,000111:                                                                                                  #  XXXXXEXXXXXE  X VELOCITY
059834,000112:                                                                                                  #  XXXXXEXXXXXE  Y VELOCITY
059835,000113:                                                                                                  #  XXXXXEXXXXXE  Z VELOCITY
059836,000114:                                                                                                  #  XXXXXEXXXXXE  TIME FROM AGC CLOCK ZERO
059837,000115:                                                                                                  #  V33E          VERB 33 TO SIGNAL THAT THE STATE VECTOR IS READY TO BE STORED.
059838,000116: 
059839,000117:                                                                                                  #  2.  REFSMMAT (ALL DATA ENTRIES IN OCTAL)
059840,000118:                                                                                                  #  ENTRIES:              DATA DEFINITIONS:                               SCALE FACTORS:

Page 1385

059842,000120:                                                                                                  #  V71E          CONTIGUOUS BLOCK UPDATE VERB
059843,000121:                                                                                                  #     24E        NUMBER OF COMPONENTS FOR REFSMMAT UPDATE
059844,000122:                                                                                                  #  AAAAE         ECADR OF 'REFSMMAT'
059845,000123:                                                                                                  #  XXXXXEXXXXXE  ROW 1 COLUMN 1                                  2(-1)
059846,000124:                                                                                                  #  XXXXXEXXXXXE  ROW 1 COLUMN 2                                  2(-1)
059847,000125:                                                                                                  #  XXXXXEXXXXXE  ROW 1 COLUMN 3                                  2(-1)
059848,000126:                                                                                                  #  XXXXXEXXXXXE  ROW 2 COLUMN 1                                  2(-1)
059849,000127:                                                                                                  #  XXXXXEXXXXXE  ROW 2 COLUMN 2                                  2(-1)
059850,000128:                                                                                                  #  XXXXXEXXXXXE  ROW 2 COLUMN 3                                  2(-1)
059851,000129:                                                                                                  #  XXXXXEXXXXXE  ROW 3 COLUMN 1                                  2(-1)
059852,000130:                                                                                                  #  XXXXXEXXXXXE  ROW 3 COLUMN 2                                  2(-1)
059853,000131:                                                                                                  #  XXXXXEXXXXXE  ROW 3 COLUMN 3                                  2(-1)
059854,000132:                                                                                                  #  V33E          VERB 33 TO SIGNAL THAT REFSMMAT IS READY TO BE STORED.
059855,000133: 
059856,000134: 07,3767                                           BANK     07                                    
059857,000135: 43,2000                                           SETLOC   EXTVERBS                              
059858,000136: 43,2000                                           BANK                                           
059859,000137: 
059860,000138: 43,3727  E3,1706                                  EBANK=   TEPHEM                                
059861,000139: 
059862,000140: 43,3727                                           COUNT*   $$/P27                                
059863,000141: 43,3727           34746        V70UPDAT           CAF      UP70                                  #  COMES HERE ON V70E
059864,000142: 43,3730           13736                           TCF      V73UPDAT   +1                         
059865,000143: 
059866,000144: 43,3731           34744        V71UPDAT           CAF      UP71                                  #  COMES HERE ON V71E
059867,000145: 43,3732           13736                           TCF      V73UPDAT   +1                         
059868,000146: 
059869,000147: 43,3733           34743        V72UPDAT           CAF      UP72                                  #  COMES HERE ON V72E
059870,000148: 43,3734           13736                           TCF      V73UPDAT   +1                         
059871,000149: 
059872,000150: 43,3735           36266        V73UPDAT           CAF      UP73                                  #  COMES HERE ON V73E
059873,000151: 
059874,000152: 43,3736           55165                 +1        TS       UPVERBSV                              #  SAVE UPVERB UNTIL IT'S OK TO ENTER P27
059875,000153: 
059876,000154: 43,3737           02076                           TC       TESTXACT                              #  GRAB DISPLAY IF AVAILABLE, OTHERWISE
059877,000155:                                                                                                  #  TURN *OPERATOR ERROR* ON AND TERMINATEJOB
059878,000156: 
059879,000157: 43,3740           04626                           TC       POSTJUMP                              #  LEAVE EXTENDED VERB BANK AND
059880,000158: 43,3741           11372                           CADR     UPPART2                               #  GO TO UPDATE PROGRAM (P27) BANK.
059881,000159: 
059882,000160: 43,3742     4746               UP70               EQUALS   ZERO                                  
059883,000161: 43,3742     4744               UP71               EQUALS   ONE                                   
059884,000162: 43,3742     4743               UP72               EQUALS   TWO                                   
059885,000163: 43,3742     6266               UP73               EQUALS   THREE                                 

Page 1386

059887,000165: 04,3372                                           BANK     04                                    
059888,000166: 04,2000                                           SETLOC   UPDATE2                               
059889,000167: 04,2000                                           BANK                                           
059890,000168: 
059891,000169: 04,3372                                           COUNT*   $$/P27                                
059892,000170: 
059893,000171: 04,3372                        UPPART2            EQUALS                                         #  UPDATE PROGRAM - PART 2
059894,000172: 
059895,000173: 04,3372           31010                           CA       MODREG                                #  IS UPDATE ALLOWED AT THIS TIME?
059896,000174: 04,3373           00006                           EXTEND                                         #  IS MODREG +0 (POOH) OR -0 (FRESH START)?
059897,000175: 04,3374           13376                           BZF      UPDATOK                               
059898,000176: 
059899,000177: 04,3375           03764        UPERROR            TC       UPERROUT   +2                         #  TURN ON OPERATOR ERROR LIGHT AND EXIT
059900,000178: 
059901,000179: 04,3376           55170        UPDATOK            TS       UPOLDMOD                              
059902,000180: 
059903,000181: 04,3377           31165                           CAE      UPVERBSV                              #  SET UPVERB TO TELL P27 WHICH EXTENDED
059904,000182: 04,3400           55171                           TS       UPVERB                                #   VERB CALLED IT
059905,000183: 
059906,000184: 04,3401           34744                           CAF      ONE                                   
059907,000185: 04,3402           55172                           TS       UPCOUNT                               
059908,000186: 
059909,000187: 04,3403           05355                           TC       PHASCHNG                              #  SET RESTART GROUP 6 TO RESTORE OLD MODE
059910,000188: 04,3404           07026                           OCT      07026                                 #  AND DOWNLIST AND EXIT IF RESTART OCCURS.
059911,000189: 04,3405           30000                           OCT      30000                                 #  PRIORITY SAME AS CHRPRIO
059912,000190: 04,3406     1173                                  EBANK=   UPBUFF                                
059913,000191: 04,3406           03714 10102                     2CADR    UPOUT      +1                         
059914,000192: 
059915,000193: 04,3410           34744                           CAF      ONE                                   
059916,000194: 04,3411           54333                           TS       DNLSTCOD                              #  DOWNLIST
059917,000195: 
059918,000196: 04,3412           05313                           TC       NEWMODEX                              #  SET MAJOR MODE = 27
059919,000197: 04,3413           00033                           DEC      27         B-14                       
059920,000198: 
059921,000199: 04,3414           51171                           INDEX    UPVERB                                #  BRANCH DEPENDING ON WHETHER THE UPDATE
059922,000200: 04,3415           13416                           TCF      +1                                    #  VERB REQUIRES A FIXED OR VARIABLE NUMBER
059923,000201: 04,3416           13421                           TCF      +3                                    #  V70 FIXED.               (OF COMPONENTS.
059924,000202: 04,3417           13424                           TCF      OHWELL1                               #  V71 VARIABLE - GO GET NO. OF COMPONENTS
059925,000203: 04,3420           13424                           TCF      OHWELL1                               #  V72 VARIABLE - GO GET NO. OF COMPONENTS
059926,000204: 04,3421           34743                           CA       TWO                                   #  V73 (AND V70) FIXED
059927,000205: 04,3422           55167                           TS       COMPNUMB                              #  SET NUMBER OF COMPONENTS TO 2.
059928,000206: 04,3423           13447                           TCF      OHWELL2                               #  GO GET THE TWO UPDATE COMPONENTS
059929,000207: 
059930,000208: 04,3424           33517        OHWELL1            CAF      ADUPBUFF                              #  * REQUEST USER TO SEND NUMBER  *
059931,000209: 04,3425           54156                           TS       MPAC       +2                         #  * OF COMPONENTS PARAMETER(II). *
059932,000210: 04,3426           33520                 +2        CAF      UPLOADNV                              #  (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
059933,000211: 04,3427           04607                           TC       BANKCALL                              #  DISPLAY A FLASHING V21N01
059934,000212: 04,3430           20323                           CADR     GOXDSPF                               #  TO REQUEST II.
059935,000213: 04,3431           13714                           TCF      UPOUT4                                #  V34 TERMINATE UPDATE (P27) RETURN

Page 1387

059937,000215: 04,3432           13426                           TCF      OHWELL1    +2                         
059938,000216: 04,3433           03510                           TC       CK4V32                                #  DATA OR V32 RETURN
059939,000217: 04,3434           44743                           CS       BIT2                                  
059940,000218: 04,3435           61173                           AD       UPBUFF                                #  IS II (NUMBER OF COMPONENTS PARAMETER)
059941,000219: 04,3436           00006                           EXTEND                                         #  .GE. 3 AND .LE. 20D.
059942,000220: 04,3437           63426                           BZMF     OHWELL1    +2                         
059943,000221: 04,3440           41173                           CS       UPBUFF                                
059944,000222: 04,3441           64353                           AD       UP21                                  
059945,000223: 04,3442           00006                           EXTEND                                         
059946,000224: 04,3443           63426                           BZMF     OHWELL1    +2                         
059947,000225: 04,3444           31173                           CAE      UPBUFF                                
059948,000226: 04,3445           55167                           TS       COMPNUMB                              #  SAVE II IN COMPNUMB
059949,000227: 
059950,000228:                                                                                                  #  UPBUFF LOADING SEQUENCE
059951,000229: 
059952,000230: 04,3446           25172                           INCR     UPCOUNT                               #  INCREMENT COUNT OF COMPONENTS RECEIVED.
059953,000231: 04,3447           33664        OHWELL2            CAF      ADUPBFM1                              #  CALCULATE LOCATION(ECADR) IN UPBUFF
059954,000232: 04,3450           61172                           AD       UPCOUNT                               #  WHERE NEXT COMPONENT SHOULD BE STORED.
059955,000233: 04,3451           54156                 +2        TS       MPAC       +2                         #  PLACE ECADR INTO R3.
059956,000234: 04,3452           33520                 +3        CAF      UPLOADNV                              #  (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
059957,000235: 04,3453           04607                           TC       BANKCALL                              #  DISPLAY A FLASHING V21N01
059958,000236: 04,3454           20323                           CADR     GOXDSPF                               #  TO REQUEST DATA.
059959,000237: 04,3455           13714                           TCF      UPOUT4                                #  V34 TERMINATE UPDATE (P27) RETURN.
059960,000238: 04,3456           13452                           TCF      OHWELL2    +3                         #  V33 PROCEED RETURN
059961,000239: 04,3457           03510                           TC       CK4V32                                #  DATA OR V32 RETURN
059962,000240: 04,3460           41172                           CS       UPCOUNT                               #  HAVE WE FINISHED RECEIVING ALL
059963,000241: 04,3461           61167                           AD       COMPNUMB                              #  THE DATA WE EXPECTED.
059964,000242: 04,3462           00006                           EXTEND                                         
059965,000243: 04,3463           63465                           BZMF     UPVERIFY                              #  YES- GO TO VERIFICATION SEQUENCE
059966,000244: 04,3464           13446                           TCF      OHWELL2    -1                         #  NO- REQUEST ADDITIONAL DATA.
059967,000245: 
059968,000246:                                                                                                  #  VERIFY SEQUENCE
059969,000247: 
059970,000248: 04,3465           33516        UPVERIFY           CAF      ADUPTEMP                              #  PLACE ECADR WHERE COMPONENT NO. INDEX
059971,000249: 04,3466           54156                           TS       MPAC       +2                         #  IS TO BE STORED INTO R3.
059972,000250: 04,3467           33521                           CAF      UPVRFYNV                              #  (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
059973,000251: 04,3470           04607                           TC       BANKCALL                              #  DISPLAY A FLASHING V21N02 TO REQUEST
059974,000252: 04,3471           20323                           CADR     GOXDSPF                               #  DATA CORRECTION OR VERIFICATION.
059975,000253: 04,3472           13714                           TCF      UPOUT4                                #  V34 TERMINATE UPDATE(P27) RETURN
059976,000254: 04,3473           13522                           TCF      UPSTORE                               #  V33 DATA SENT IS GOOD.  GO STORE IT.
059977,000255: 04,3474           03510                           TC       CK4V32                                #  COMPONENT NO. INDEX OR V32 RETURN
059978,000256: 04,3475           31166                           CA       UPTEMP                                #  DOES THE COMPONENT NO. INDEX JUST SENT
059979,000257: 04,3476           00006                           EXTEND                                         #  SPECIFY A LEGAL COMPONENT NUMBER?
059980,000258: 04,3477           63465                           BZMF     UPVERIFY                              #  NO, IT IS NOT POSITIVE NONZERO
059981,000259: 04,3500           41166                           CS       UPTEMP                                
059982,000260: 04,3501           61167                           AD       COMPNUMB                              
059983,000261: 04,3502           64744                           AD       BIT1                                  
059984,000262: 04,3503           00006                           EXTEND                                         

Page 1388

059986,000264: 04,3504           63465                           BZMF     UPVERIFY                              #  NO
059987,000265: 04,3505           33664                           CAF      ADUPBFM1                              #  YES- BASED ON THE COMPONENT NO. INDEX
059988,000266: 04,3506           61166                           AD       UPTEMP                                #  CALCULATE THE ECADR OF LOCATION IN
059989,000267: 04,3507           13451                           TCF      OHWELL2    +2                         #  UPBUFF WHICH USER WANTS TO CHANGE.
059990,000268: 
059991,000269: 04,3510  04,3714               UPOUT4             EQUALS   UPOUT      +1                         #  COMES HERE ON V34 TO TERMINATE UPDATE
059992,000270: 
059993,000271:                                                                                                  #  CHECK FOR VERB 32 SEQUENCE
059994,000272: 
059995,000273: 04,3510           40154        CK4V32             CS       MPAC                                  #  ON DATA RETURN FROM 'GOXDSPF'
059996,000274: 04,3511           74737                           MASK     BIT6                                  #  ON DATA RETURN FROM "GOXDSP"& THE CON-
059997,000275: 04,3512           10000                           CCS      A                                     #  TENTS OF MPAC = VERB.  SO TEST FOR V32.
059998,000276: 04,3513           00002                           TC       Q                                     #  IT'S NOT A V32, IT'S DATA.  PROCEED.
059999,000277: 04,3514           50002                           INDEX    Q                                     
060000,000278: 04,3515           77771                           TC       0          -6                         #  V32 ENCOUNTERED - GO BACK AND GET DATA
060001,000279: 
060002,000280: 04,3516           01166        ADUPTEMP           ADRES    UPTEMP                                #  ADDRESS OF TEMP STORAGE FOR CORRECTIONS
060003,000281: 04,3517           01173        ADUPBUFF           ADRES    UPBUFF                                #  ADDRESS OF UPDATE DATA STORAGE BUFFER
060004,000282: 04,3520           05201        UPLOADNV           VN       2101                                  #  VERB 21 NOUN 01
060005,000283: 04,3521           05202        UPVRFYNV           VN       2102                                  #  VERB 21 NOUN 02
060006,000284: 04,3522     4353               UP21               =        MD1                                   #  DEC 21 = MAX NO OF COMPONENTS +1
060007,000285: 04,3522     4747               UPDTPHAS           EQUALS   FIVE                                  
060008,000286: 
060009,000287:                                                                                                  #  PRE-STORE AND FAN TO APPROPRIATE BRANCH SEQUENCE
060010,000288: 
060011,000289: 04,3522                        UPSTORE            EQUALS                                         #  GROUND HAS VERIFIED UPDATE.  STORE DATA.
060012,000290: 
060013,000291: 04,3522           00004                           INHINT                                         
060014,000292: 
060015,000293: 04,3523           30103                           CAE      FLAGWRD7                              #  INVERT VERIFLAG(BIT 3 OF FLAGWRD7) TO
060016,000294: 04,3524           56001                           XCH      L                                     #  INDICATE TO THE GROUND(VIA DOWNLINK)
060017,000295: 04,3525           34742                           CAF      VERIFBIT                              #  THAT THE V33 (WHICH THE GROUND SENT TO
060018,000296: 04,3526           00006                           EXTEND                                         #  VERIFY THE UPDATE) HAS BEEN SUCCESSFULLY
060019,000297: 04,3527           06001                           RXOR     LCHAN                                 #  RECEIVED BY THE UPDATE PROGRAM
060020,000298: 04,3530           54103                           TS       FLAGWRD7                              
060021,000299: 
060022,000300: 04,3531           05355                           TC       PHASCHNG                              #  SET RESTART GROUP 6 TO REDO THE UPDATE
060023,000301: 04,3532           04026                           OCT      04026                                 #  DATA STORE IF A RESTART OCCURS.
060024,000302: 04,3533           00004                           INHINT                                         #  (BECAUSE PHASCHNG DID A RELINT)
060025,000303: 
060026,000304: 04,3534           44743                           CS       TWO                                   #  GO TO UPFNDVAC IF INSTALL IS REQUIRED,
060027,000305: 04,3535           61171                           AD       UPVERB                                #  THAT IS, IF IT'S A V70 - V72.
060028,000306: 04,3536           00006                           EXTEND                                         #  GO TO UPEND73 IF IT'S A V73.
060029,000307: 04,3537           63546                           BZMF     UPFNDVAC                              
060030,000308: 
060031,000309:                                                                                                  #  VERB 73 BRANCH
060032,000310: 
060033,000311: 04,3540           00006        UPEND73            EXTEND                                         #  V73-PERFORM DP OCTAL AGC CLOCK INCREMENT
060034,000312: 04,3541           31174                           DCA      UPBUFF                                

Page 1389

060036,000314: 04,3542           53204                           DXCH     UPBUFF     +8D                        
060037,000315: 04,3543           03571                           TC       TIMEDIDL                              
060038,000316: 04,3544           04355                           TC       FALTON                                #  ERROR- TURN ON *OPERATOR ERROR* LIGHT
060039,000317: 04,3545           03714                           TC       UPOUT      +1                         #  GO TO COMMON UPDATE PROGRAM EXIT
060040,000318: 
060041,000319: 04,3546           34346        UPFNDVAC           CAF      CHRPRIO                               #  (USE EXTENDED VERB PRIORITY)
060042,000320: 04,3547           05076                           TC       FINDVAC                               #  GET VAC AREA FOR 'CALL INTSTALL'
060043,000321: 04,3550  E3,1706                                  EBANK=   TEPHEM                                
060044,000322: 04,3550           03553 10103                     2CADR    UPJOB                                 #  (NOTE:  THIS WILL ALSO SET EBANK FOR
060045,000323: 
060046,000324: 04,3552           05146                           TC       ENDOFJOB                              #  'TEPHEM' UPDATE BY V70)
060047,000325: 
060048,000326: 04,3553           06060        UPJOB              TC       INTPRET                               #  THIS COULD BE A STATE VECTOR UPDATE--SO
060049,000327: 04,3554           77624                           CALL                                           #  WAIT(PUT JOB TO SLEEP) IF ORBIT INT(OI)
060050,000328: 04,3555           27447                                    INTSTALL                              #  IS IN PROGRESS--OR--GRAB OI AND RETURN
060051,000329:                                                                                                  #  TO UPWAKE IF OI IS NOT IN PROGRESS.
060052,000330: 
060053,000331: 04,3556           77776        UPWAKE             EXIT                                           
060054,000332: 
060055,000333: 04,3557           05355                           TC       PHASCHNG                              #  RESTART PROTECT (GROUP 6)
060056,000334: 04,3560           04026                           OCT      04026                                 
060057,000335: 
060058,000336: 04,3561           05506                           TC       UPFLAG                                #  SET INTEGRATION RESTART BIT
060059,000337: 04,3562           00236                           ADRES    REINTFLG                              
060060,000338: 04,3563           00004                           INHINT                                         
060061,000339: 04,3564                        UPPART3            EQUALS                                         
060062,000340: 
060063,000341: 04,3564           51171                           INDEX    UPVERB                                #  BRANCH TO THE APPROPRIATE UPDATE VERB
060064,000342: 04,3565           13566                           TCF      +1                                    #  ROUTINE TO ACTUALLY PERFORM THE UPDATE
060065,000343: 04,3566           13725                           TCF      UPEND70                               #  V70
060066,000344: 04,3567           13634                           TCF      UPEND71                               #  V71
060067,000345: 04,3570           13666                           TCF      UPEND72                               #  V72
060068,000346: 
060069,000347:                                                                                                  #  ROUTINE TO INCREMENT CLOCK(TIME2,TIME1) WITH CONTENTS OF DP WORD AT UPBUFF.
060070,000348: 
060071,000349: 04,3571           00006        TIMEDIDL           EXTEND                                         
060072,000350: 04,3572           23166                           QXCH     UPTEMP                                #  SAVE Q FOR RETURN
060073,000351: 04,3573           34746                           CAF      ZERO                                  #  ZERO AND SAVE TIME2,TIME1
060074,000352: 04,3574           22007                           ZL                                             
060075,000353: 04,3575           52025                           DXCH     TIME2                                 
060076,000354: 04,3576           53216                           DXCH     UPBUFF     +18D                       #  STORE IN CASE OF OVERFLOW
060077,000355: 
060078,000356: 04,3577           34747                           CAF      UPDTPHAS                              #  DO
060079,000357: 04,3600           54001                           TS       L                                     #  A
060080,000358: 04,3601           40000                           COM                                            #  QUICK
060081,000359: 04,3602           52764                           DXCH     -PHASE6                               #  PHASCHNG
060082,000360: 
060083,000361: 04,3603           00004        TIMEDIDR           INHINT                                         

Page 1390

060085,000363: 04,3604           34746                           CAF      ZERO                                  
060086,000364: 04,3605           22007                           ZL                                             #  PICK UP INCREMENTER(AND ZERO
060087,000365: 04,3606           54156                           TS       MPAC       +2                         #  IT IN CASE OF RESTARTS) AND
060088,000366: 04,3607           53204                           DXCH     UPBUFF     +8D                        #  STORE IT
060089,000367: 04,3610           52155                           DXCH     MPAC                                  #  INTO MPAC FOR TPAGREE.
060090,000368: 
060091,000369: 04,3611           00006                           EXTEND                                         
060092,000370: 04,3612           31216                           DCA      UPBUFF     +18D                       
060093,000371: 04,3613           20155                           DAS      MPAC                                  #  FORM SUM IN MPAC
060094,000372: 04,3614           00006                           EXTEND                                         
060095,000373: 04,3615           13624                           BZF      DELTATOK                              #  TEST FOR OVERFLOW
060096,000374: 04,3616           34746                           CAF      ZERO                                  
060097,000375: 04,3617           53216                           DXCH     UPBUFF     +18D                       #  OVERFLOW, RESTORE OLD VALUE OF CLOCK
060098,000376: 04,3620           20025                           DAS      TIME2                                 #  AND TURN ON OPERATOR ERROR
060099,000377: 
060100,000378: 04,3621           05355                           TC       PHASCHNG                              #  RESTART PROTECT(GROUP 6)
060101,000379: 04,3622           04026                           OCT      04026                                 
060102,000380: 
060103,000381: 04,3623           01166                           TC       UPTEMP                                #  GO TO ERROR EXIT
060104,000382: 
060105,000383: 04,3624           07300        DELTATOK           TC       TPAGREE                               #  FORCE SIGN AGREEMENT
060106,000384: 04,3625           52155                           DXCH     MPAC                                  
060107,000385: 04,3626           20025                           DAS      TIME2                                 #  INCREMENT TIME2,TIME1
060108,000386: 
060109,000387: 04,3627           05355                           TC       PHASCHNG                              #  RESTART PROTECT(GROUP 6)
060110,000388: 04,3630           04026                           OCT      04026                                 
060111,000389: 
060112,000390: 04,3631           00004                           INHINT                                         
060113,000391: 04,3632           51166                           INDEX    UPTEMP                                #  (CODED THIS WAY FOR RESTART PROTECTION)
060114,000392: 04,3633           00001                           TC       1                                     #  NORMAL RETURN
060115,000393: 
060116,000394:                                                                                                  #  VERB 71 BRANCH
060117,000395: 
060118,000396: 04,3634           31174        UPEND71            CAE      UPBUFF     +1                         #  SET EBANK
060119,000397: 04,3635           54003                           TS       EBANK                                 #        AND
060120,000398: 04,3636           74350                           MASK     LOW8                                  #  CALCULATE
060121,000399: 04,3637           55166                           TS       UPTEMP                                #  S-REG VALUE OF RECEIVING AREA
060122,000400: 
060123,000401: 04,3640           67766                           AD       NEG3                                  #  IN THE PROCESS OF
060124,000402: 04,3641           61167                           AD       COMPNUMB                              #  PERFORMING
060125,000403: 04,3642           00006                           EXTEND                                         #  THIS UPDATE
060126,000404: 04,3643           13651                           BZF      STORLP71                              #  WILL WE
060127,000405: 04,3644           74734                           MASK     BIT9                                  #  OVERFLOW
060128,000406: 04,3645           10000                           CCS      A                                     #  INTO THE NEXT EBANK....
060129,000407: 04,3646           13762                           TCF      UPERROUT                              #  YES
060130,000408: 
060131,000409: 04,3647           37766                           CA       NEG3                                  #  NO- CALCULATE NUMBER OF
060132,000410: 04,3650           61167                           AD       COMPNUMB                              #  WORDS TO BE STORED MINUS ONE
060133,000411: 04,3651           54154        STORLP71           TS       MPAC                                  #  SAVE NO. OF WORDS REMAINING MINUS ONE
060134,000412: 04,3652           50000                           INDEX    A                                     #  TAKE NEXT UPDATE WORD FROM
060135,000413: 04,3653           31175                           CA       UPBUFF     +2                         #  UPBUFF AND

Page 1391

060137,000415: 04,3654           54001                           TS       L                                     #  SAVE IT IN L
060138,000416: 04,3655           30154                           CA       MPAC                                  #  CALCULATE NEXT
060139,000417: 04,3656           61166                           AD       UPTEMP                                #  RECEIVING ADDRESS
060140,000418: 04,3657           50000                           INDEX    A                                     
060141,000419: 04,3660  E3,1400                                  EBANK=   1400                                  
060142,000420: 04,3660           23400                           LXCH     1400                                  #  UPDATE THE REGISTER BY CONTENTS OF L
060143,000421: 04,3661  E3,1706                                  EBANK=   TEPHEM                                
060144,000422: 04,3661           10154                           CCS      MPAC                                  #  ARE THERE ANY WORDS LEFT TO BE STORED
060145,000423: 04,3662           13651                           TCF      STORLP71                              #  YES
060146,000424: 04,3663           13713                           TCF      UPOUT                                 #  NO- THEN EXIT UPDATE PROGRAM
060147,000425: 04,3664           01172        ADUPBFM1           ADRES    UPBUFF     -1                         #  SAME AS ADUPBUFF BUT LESS 1 (DON'T MOVE)
060148,000426: 04,3665           13713                           TCF      UPOUT                                 #  NO- EXIT UPDATE(HERE WHEN COMPNUMB = 3)
060149,000427: 
060150,000428:                                                                                                  #  VERB 72 BRANCH
060151,000429: 
060152,000430: 04,3666           34744        UPEND72            CAF      BIT1                                  #  HAVE AN ODD NO. OF COMPONENTS
060153,000431: 04,3667           71167                           MASK     COMPNUMB                              #  BEEN SENT FOR A V72 UPDATE...
060154,000432: 04,3670           10000                           CCS      A                                     
060155,000433: 04,3671           13673                           TCF      +2                                    #  YES
060156,000434: 04,3672           13762                           TCF      UPERROUT                              #  ERROR- SHOULD BE ODD NO. OF COMPONENTS
060157,000435: 04,3673           44743                           CS       BIT2                                  
060158,000436: 04,3674           61167                           AD       COMPNUMB                              
060159,000437: 04,3675           54154        LDLOOP72           TS       MPAC                                  #  NOW PERFORM THE UPDATE
060160,000438: 04,3676           50000                           INDEX    A                                     
060161,000439: 04,3677           31174                           CAE      UPBUFF     +1                         #  PICK UP NEXT UPDATE WORD
060162,000440: 04,3700           22000                           LXCH     A                                     
060163,000441: 04,3701           10154                           CCS      MPAC                                  #  SET POINTER TO ECADR(MUST BE CCS)
060164,000442: 04,3702           54154                           TS       MPAC                                  
060165,000443: 04,3703           50000                           INDEX    A                                     
060166,000444: 04,3704           31174                           CAE      UPBUFF     +1                         #  PICK UP NEXT ECADR OF REG TO BE UPDATED
060167,000445: 04,3705           54003                           TS       EBANK                                 #  SET EBANK
060168,000446: 04,3706           74350                           MASK     LOW8                                  #  ISOLATE RELATIVE ADDRESS
060169,000447: 04,3707           50000                           INDEX    A                                     
060170,000448: 04,3710  E3,1400                                  EBANK=   1400                                  
060171,000449: 04,3710           23400                           LXCH     1400                                  #  UPDATE THE REGISTER BY CONTENTS OF L
060172,000450: 04,3711  E3,1706                                  EBANK=   TEPHEM                                
060173,000451: 04,3711           10154                           CCS      MPAC                                  #  ARE WE THROUGH THE V72 UPDATE...
060174,000452: 04,3712           13675                           TCF      LDLOOP72                              #  NO
060175,000453: 
060176,000454:                                                                                                  #  NORMAL FINISH OF P27
060177,000455: 
060178,000456: 04,3713                        UPOUT              EQUALS                                         
060179,000457: 04,3713           03172                           TC       INTWAKEU                              #  RELEASE GRAB OF ORBITAL INTEGRATION
060180,000458: 04,3714           31170                 +1        CAE      UPOLDMOD                              #  RESTORE PRIOR P27 MODE
060181,000459: 04,3715           05316                           TC       NEWMODEX   +3                         
060182,000460: 04,3716           34746                           CAF      ZERO                                  
060183,000461: 04,3717           54333                           TS       DNLSTCOD                              
060184,000462: 04,3720           03767                           TC       UPACTOFF                              #  TURN OFF 'UPLINK ACTIVITY' LIGHT

Page 1392

060186,000464: 04,3721           00006                           EXTEND                                         #  KILL GROUP 6.
060187,000465: 04,3722           34746                           DCA      NEG0                                  
060188,000466: 04,3723           52764                           DXCH     -PHASE6                               
060189,000467: 
060190,000468: 04,3724           05474                           TC       ENDEXT                                #  EXTENDED VERB EXIT
060191,000469: 
060192,000470:                                                                                                  #  VERB 70 BRANCH
060193,000471: 
060194,000472: 04,3725           00006        UPEND70            EXTEND                                         #  V70 DOES THE FOLLOWING WITH DP DELTA
060195,000473: 04,3726           41174                           DCS      UPBUFF                                #  TIME IN UPBUFF
060196,000474: 04,3727           53204                           DXCH     UPBUFF     +8D                        
060197,000475: 04,3730           03571                           TC       TIMEDIDL                              #  DECREMENT AGC CLOCK
060198,000476: 
060199,000477: 04,3731           03762                           TC       UPERROUT                              #  ERROR WHILE DECREMENTING CLOCK -- EXIT
060200,000478: 
060201,000479: 04,3732  E3,1706                                  EBANK=   TEPHEM                                
060202,000480: 04,3732           00006                           EXTEND                                         
060203,000481: 04,3733           41174                           DCS      UPBUFF                                #  COPY DECREMENTERS FOR
060204,000482: 04,3734           53206                           DXCH     UPBUFF     +10D                       #  RESTART PROTECTION
060205,000483: 04,3735           00006                           EXTEND                                         
060206,000484: 04,3736           41174                           DCS      UPBUFF                                
060207,000485: 04,3737           53210                           DXCH     UPBUFF     +12D                       
060208,000486: 
060209,000487: 04,3740           05355                           TC       PHASCHNG                              #  RESTART PROTECT(GROUP 6)
060210,000488: 04,3741           04026                           OCT      04026                                 
060211,000489: 
060212,000490: 04,3742           34746                           CAF      ZERO                                  
060213,000491: 04,3743           22007                           ZL                                             
060214,000492: 04,3744           53206                           DXCH     UPBUFF     +10D                       #  DECREMENT CSM STATE VECTOR TIME
060215,000493: 04,3745           21571                           DAS      TETCSM                                
060216,000494: 
060217,000495: 04,3746           34746                           CAF      ZERO                                  
060218,000496: 04,3747           22007                           ZL                                             
060219,000497: 04,3750           53210                           DXCH     UPBUFF     +12D                       #  DECREMENT LEM STATE VECTOR TIME
060220,000498: 04,3751           21643                           DAS      TETLEM                                
060221,000499: 
060222,000500: 04,3752           34746                           CAF      ZERO                                  
060223,000501: 04,3753           22007                           ZL                                             
060224,000502: 04,3754           53174                           DXCH     UPBUFF                                
060225,000503: 04,3755           21710                           DAS      TEPHEM     +1                         #  INCREMENT TP TEPHEM
060226,000504: 04,3756           27706                           ADS      TEPHEM                                
060227,000505: 
060228,000506: 04,3757           05355                           TC       PHASCHNG                              #  RESTART PROTECT(GROUP 6)
060229,000507: 04,3760           04026                           OCT      04026                                 
060230,000508: 
060231,000509: 04,3761     1173                                  EBANK=   UPBUFF                                
060232,000510: 
060233,000511: 04,3761           03713                           TC       UPOUT                                 #  GO TO STANDARD UPDATE PROGRAM EXIT
060234,000512: 

Page 1393

060236,000514:                                                                                                  #  ERROR SEQUENCE
060237,000515: 
060238,000516: 04,3762           04355        UPERROUT           TC       FALTON                                #  TURN ON *OPERATOR ERROR* LIGHT
060239,000517: 04,3763           13713                           TCF      UPOUT                                 #  GO TO COMMON UPDATE PROGRAM EXIT
060240,000518: 
060241,000519: 04,3764           04355                 +2        TC       FALTON                                #  TURN ON 'OPERATOR ERROR' LIGHT
060242,000520: 04,3765           03767                           TC       UPACTOFF                              #  TURN OFF 'UPLINK ACTIVITY' LIGHT
060243,000521: 04,3766           05474                           TC       ENDEXT                                #  EXTENDED VERB EXIT
060244,000522:                                                                                                  #  (THE PURPOSE OF UPERROUT +2 EXIT IS
060245,000523:                                                                                                  #  TO PROVIDE AN ERROR EXIT WHICH DOES NOT
060246,000524:                                                                                                  #  RESET ANY RESTART GROUPS)
060247,000525: 
060248,000526:                                                                                                  #  :UPACTOFF: IS A ROUTINE TO TURN OFF UPLINK ACTIVITY LIGHT ON ALL EXITS FROM UPDATE PROGRAM(P27).
060249,000527: 
060250,000528: 04,3767           44742        UPACTOFF           CS       BIT3                                  
060251,000529: 04,3770           00006                           EXTEND                                         #  TURN OFF UPLINK ACTIVITY LIGHT
060252,000530: 04,3771           03011                           WAND     DSALMOUT                              #  (BIT 3 OF CHANNEL 11)
060253,000531: 04,3772           00002                           TC       Q                                     
060254,000532: 

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