Source Code
![]() |
These source-code files were from the printout at the MIT Museum, with many thanks
to Deborah Douglas, the Museum's Curator of Science and Technology, for releasing
it to us. The printout was digitally photographed by Paul Fjeld. A team of
volunteers transcribed the source code manually from these images or, where
appropriate, modified already-transcribed but similar source Colossus 249 (Apollo 9)
source code to agree with the images from the printout. Note that the page images
presented online are of reduced quality, and that higher-quality images
are available. Report any conversion errors or legibility
problems in page images to info@sandroid.org.
Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 055 OF AGC PROGRAM COMANCHE BY NASA 2021113-051 10:28 APR. 1,1969Note that the date is the date of the printout, not the date of the program revision. |
065179,000002: ## Copyright: Public domain.
065180,000003: ## Filename: UPDATE_PROGRAM.agc
065181,000004: ## Purpose: Part of the source code for Comanche, build 055. It
065182,000005: ## is part of the source code for the Command Module's
065183,000006: ## (CM) Apollo Guidance Computer (AGC), Apollo 11.
065184,000007: ## Assembler: yaYUL
065185,000008: ## Reference: pp. 1497-1507
065186,000009: ## Contact: Ron Burkey <info@sandroid.org>
065187,000010: ## Website: http://www.ibiblio.org/apollo.
065188,000011: ## Mod history: 2009-05-07 RSB Adapted from Colossus249/UPDATE_PROGRAM.agc
065189,000012: ## and page images. Corrected various typos
065190,000013: ## in the transcription of program comments,
065191,000014: ## and these should be back-ported to
065192,000015: ## Colossus249.
065193,000016: ## 2010-08-29 JL Fixed indentation, whitespace.
065194,000017: ## 2016-12-22 RSB Proofed comment text using octopus/ProoferComments
065195,000018: ## and corrected the errors found.
065196,000019: ## 2017-01-20 RSB Fixed comment-text errors noted while diff'ing
065197,000020: ## vs Colossus 249.
065198,000021: ## 2017-02-09 RSB Comment-text fixes identified for Artemis 72.
065199,000022: ##
065200,000023: ## The contents of the "Comanche055" files, in general, are transcribed
065201,000024: ## from scanned documents.
065202,000025: ##
065203,000026: ## Assemble revision 055 of AGC program Comanche by NASA
065204,000027: ## 2021113-051. April 1, 1969.
065205,000028: ##
065206,000029: ## This AGC program shall also be referred to as Colossus 2A
065207,000030: ##
065208,000031: ## Prepared by
065209,000032: ## Massachusetts Institute of Technology
065210,000033: ## 75 Cambridge Parkway
065211,000034: ## Cambridge, Massachusetts
065212,000035: ##
065213,000036: ## under NASA contract NAS 9-4065.
065214,000037: ##
065215,000038: ## Refer directly to the online document mentioned above for further
065216,000039: ## information. Please report any errors to info@sandroid.org.
065217,000040:
![]() |
Page 1497 |
065219,000042: # PROGRAM NAME: P27
065220,000043: # WRITTEN BY: KILROY/ DE WOLF
065221,000044:
065222,000045: # MOD NO: 6
065223,000046: # MOD BY: KILROY
065224,000047: # DATE: 01DEC67
065225,000048:
065226,000049: # LOG SECTION: UPDATE PROGRAM.
065227,000050:
065228,000051: # FUNCT. DESCR: P27 (THE UPDATE PROGRAM) PROCESSES COMMANDS AND DATA
065229,000052: # INSERTIONS REQUESTED BY THE GROUND VIA UPLINK.
065230,000053: # THE P27 PROGRAM WILL ACCEPT UPDATES
065231,000054: # ONLY DURING P00 FOR THE LM, AND ONLY DURING P00,
065232,000055: # P02, AND FRESH START FOR THE CSM
065233,000056:
065234,000057: # CALLING SEQ: PROGRAM IS INITIATED BY UPLINK ENTRY OF VERBS 70, 71, 72 AND 73.
065235,000058:
065236,000059: # SUBROUTINES: TESTXACT, NEWMODEX, NEWMODEX +3, GOXDSPF, BANKCALL, FINDVAC, INTPRET, INTSTALL, TPAGREE,
065237,000060: # INTWAKEU, ENDEXT, POSTJUMP, FALTON, NEWPHASE, PHASCHNG
065238,000061:
065239,000062: # NORMAL EXIT: TC ENDEXT
065240,000063:
065241,000064: # ALARM/ABORT: TC FALTON FOLLOWED BY TC ENDEXT
065242,000065:
065243,000066: # RESTARTS: P27 IS RESTART PROTECTED IN TWO WAYS ...
065244,000067: # 1. PRIOR TO VERIFLAG INVERSION (WHICH IS CAUSED BY THE GROUND/ASTRONAUT'S VERIFICATION OF UPDATE
065245,000068: # DATA BY SENDING A V33E WHEN V21N02 IS FLASHING)---
065246,000069: # NO PROTECTION EXCEPT PRE-P27 MODE IS RESTORED, COAST + ALIGN DOWNLIST IS SELECTED AND UPLINK
065247,000070: # ACTIVITY LIGHT IS TURNED OFF. (JUST AS IF A V34E WAS SENT DURING P27 DATA LOADS).
065248,000071: # V70,V71,V72 OR V73 WILL HAVE TO BE COMPLETELY RESENT BY USER.
065249,000072: # 2. AFTER VERIFLAG INVERSION (WHEN UPDATE OF THE SPECIFIED ERASABLES IS BEING PERFORMED)---
065250,000073: # PROTECTED AGAINST RESTARTS.
065251,000074:
065252,000075: # DEBRIS: UPBUFF (20D) TEMP STORAGE FOR ADDRESSES AND CONTENTS.
065253,000076: # UPVERB (1) VERB NUMBER MINUS 70D (E.G. FOR V72, UPVERB = 72D - 70D = 2)
065254,000077: # UPOLDMOD(1) FOR MAJOR MODE INTERRUPTED BY P27.
065255,000078: # COMPNUMB(1) TOTAL NUMBER OF COMPONENTS TO BE TRANSMITTED.
065256,000079: # UPCOUNT (1) ACTUAL NUMBER OF COMPONENTS RECEIVED.
065257,000080: # UPTEMP (1) SCRATCH, BUT USUALLY CONTAINS COMPONENT NUMBER TO BE CHANGED DURING VERIFY CYCLE
065258,000081:
065259,000082: # INPUT:
065260,000083:
065261,000084: # ENTRY: DESCRIPTION
065262,000085: # V70EXXXXXEXXXXXE (LIFTOFF TIME INCREMENT) DOUBLE PRECISION OCTAL TIME INCREMENT, XXXXX XXXXX,
065263,000086: # IS ADDED TO TEPHEM, SUBTRACTED FROM AGC CLOCK(TIME2,TIME1), SUBTRACTED FROM CSM STATE
065264,000087: # VECTOR TIME(TETCSM) AND SUBTRACTED FROM LEM STATE VECTOR TIME(TETLEM).
065265,000088: # THE DP OCTAL TIME INCREMENT IS SCALED AT 2(28).
![]() |
Page 1498 |
065267,000090: # V71EIIEAAAAE (CONTIGUOUS BLOCK UPDATE) II-2 OCTAL COMPONENTS, XXXXX,
065268,000091: # XXXXXE ARE LOADED INTO ERASABLE STARTING AT ECADR, AAAA.
065269,000092: # XXXXXE IT IS .GE. 3 .AND. .LE. 20D.,
065270,000093: # AND (AAAA + II -3) DOES NOT PRODUCE AN ADDRESS IN THE
065271,000094: # 9 NEXT BANK
065272,000095: # . SCALING IS SAME AS INTERNAL REGISTERS.
065273,000096: # V72EIIE (SCATTER UPDATE) (II-1)/2 OCTAL COMPONENTS, XXXXX, ARE
065274,000097: # AAAAEXXXXXE LOADED INTO ERASABLE LOCATIONS, AAAA.
065275,000098: # AAAAEXXXXXE II IS .GE. 3 .AND. .LE. 19D, AND MUST BE ODD.
065276,000099: # . SCALING IS SAME AS INTERNAL REGISTERS.
065277,000100:
065278,000101: # V73EXXXXXEXXXXXE (OCTAL CLOCK INCREMENT) DOUBLE PRECISION OCTAL TIME
065279,000102: # INCREMENT XXXXX XXXXX, IS ADDED TO THE AGC CLOCK, IN
065280,000103: # CENTISECONDS SCALED AT (2)28.
065281,000104: # THIS LOAD IS THE OCTAL EQUIVALENT OF V55.
065282,000105:
065283,000106: # OUTPUT: IN ADDITION TO THE ABOVE REGISTER LOADS, ALL UPDATES
065284,000107: # COMPLEMENT BIT3 OF FLAGWORD7.
065285,000108:
065286,000109: # ADDITIONAL NOTES: VERB 71, JUST DEFINED ABOVE WILL BE USED TO PERFORM BUT NOT LIMITED TO THE FOLLOWING UPDATES --
065287,000110: # 1. CSM/LM STATE VECTOR UPDATE
065288,000111: # 2. REFSMMAT UPDATE
065289,000112:
065290,000113: # THE FOLLOWING COMMENTS DELINEATE EACH SPECIAL UPDATE ----
065291,000114:
065292,000115: # 1. CSM/LM STATE VECTOR UPDATE (ALL DATA ENTRIES IN OCTAL)
065293,000116: # ENTRIES: DATA DEFINITION: SCALE FACTORS:
065294,000117: # V71E CONTIGUOUS BLOCK UPDATE VERB
065295,000118: # 21E NUMBER OF COMPONENTS FOR STATE VECTOR UPDATE
065296,000119: # AAAAE ECADR OF 'UPSVFLAG'
065297,000120: # XXXXXE STATE VECTOR IDENTIFIER: 00001 FOR CSM, 77776 FOR LEM - EARTH SPHERE OF INFLUENCE SCALING
065298,000121: # 00002 FOR CSM, 77775 FOR LEM - LUNAR SPHERE OF INFLUENCE SCALING
065299,000122: # XXXXXEXXXXXE X POSITION
065300,000123: # XXXXXEXXXXXE Y POSITION
065301,000124: # XXXXXEXXXXXE Z POSITION
065302,000125: # XXXXXEXXXXXE X VELOCITY
065303,000126: # XXXXXEXXXXXE Y VELOCITY
065304,000127: # XXXXXEXXXXXE Z VELOCITY
065305,000128: # XXXXXEXXXXXE TIME FROM AGC CLOCK ZERO
065306,000129: # V33E VERB 33 TO SIGNAL THAT THE STATE VECTOR IS READY TO BE STORED.
065307,000130:
065308,000131: # 2. REFSMMAT (ALL DATA ENTRIES IN OCTAL)
065309,000132: # ENTRIES: DATA DEFINITIONS: SCALE FACTORS:
![]() |
Page 1499 |
065311,000134: # V71E CONTIGUOUS BLOCK UPDATE VERB
065312,000135: # 24E NUMBER OF COMPONENTS FOR REFSMMAT UPDATE
065313,000136: # AAAAE ECADR OF 'REFSMMAT'
065314,000137: # XXXXXEXXXXXE ROW 1 COLUMN 1 2(-1)
065315,000138: # XXXXXEXXXXXE ROW 1 COLUMN 2 2(-1)
065316,000139: # XXXXXEXXXXXE ROW 1 COLUMN 3 2(-1)
065317,000140: # XXXXXEXXXXXE ROW 2 COLUMN 1 2(-1)
065318,000141: # XXXXXEXXXXXE ROW 2 COLUMN 2 2(-1)
065319,000142: # XXXXXEXXXXXE ROW 2 COLUMN 3 2(-1)
065320,000143: # XXXXXEXXXXXE ROW 3 COLUMN 1 2(-1)
065321,000144: # XXXXXEXXXXXE ROW 3 COLUMN 2 2(-1)
065322,000145: # XXXXXEXXXXXE ROW 3 COLUMN 3 2(-1)
065323,000146: # V33E VERB 33 TO SIGNAL THAT REFSMMAT IS READY TO BE STORED.
065324,000147:
065325,000148: 07,3777 BANK 07
065326,000149: 43,2000 SETLOC EXTVERBS
065327,000150: 43,2000 BANK
065328,000151:
065329,000152: 43,3726 E3,1706 EBANK= TEPHEM
065330,000153:
065331,000154: 43,3726 COUNT* $$/P27
065332,000155: 43,3726 35021 V70UPDAT CAF UP70 # COMES HERE ON V70E
065333,000156: 43,3727 13735 TCF V73UPDAT +1
065334,000157:
065335,000158: 43,3730 35017 V71UPDAT CAF UP71 # COMES HERE ON V71E
065336,000159: 43,3731 13735 TCF V73UPDAT +1
065337,000160:
065338,000161: 43,3732 35016 V72UPDAT CAF UP72 # COMES HERE ON V72E
065339,000162: 43,3733 13735 TCF V73UPDAT +1
065340,000163:
065341,000164: 43,3734 36214 V73UPDAT CAF UP73 # COMES HERE ON V73E
065342,000165:
065343,000166: 43,3735 54331 +1 TS UPVERBSV # SAVE UPVERB UNTIL IT'S OK TO ENTER P27
065344,000167:
065345,000168: 43,3736 02076 TC TESTXACT # GRAB DISPLAY IF AVAILABLE, OTHERWISE
065346,000169: # TURN *OPERATOR ERROR* ON AND TERMINATE JOB
065347,000170:
065348,000171: 43,3737 31011 CA MODREG # CHECK IF UPDATE ALLOWED
065349,000172: 43,3740 00006 EXTEND # FIRST CHECK FOR MODREG = +0, -0
065350,000173: 43,3741 13743 BZF +2 # (+0 = P00, -0 = FRESHSTART)
065351,000174: 43,3742 03753 TC CKMDMORE # NOW CHECK FOR PROGRAM WHICH CAN BE
065352,000175: # INTERRUPTED BY P27.
065353,000176:
065354,000177: 43,3743 31011 CAE MODREG # UPDATE ALLOWED.
065355,000178: 43,3744 54301 TS UPOLDMOD # SAVE CURRENT MAJOR MODE
![]() |
Page 1500 |
065357,000180: 43,3745 30331 CAE UPVERBSV # SET UPVERB TO INDICATE TO P27
065358,000181: 43,3746 54302 TS UPVERB # WHICH EXTENDED VERB CALLED IT.
065359,000182:
065360,000183: 43,3747 35017 CAF ONE
065361,000184: 43,3750 54303 TS UPCOUNT # INITIALIZE UPCOUNT TO 1
065362,000185:
065363,000186: 43,3751 04701 TC POSTJUMP # LEAVE EXTENDED VERB BANK AND
065364,000187: 43,3752 57373 CADR UPPART2 # GO TO UPDATE PROGRAM (P27) BANK.
065365,000188:
065366,000189: 43,3753 40101 CKMDMORE CS FLAGWRD5
065367,000190: 43,3754 75010 MASK BIT8 # CHECK IF COMPUTER IS LGC
065368,000191: 43,3755 10000 CCS A # IS COMPUTER LGC OR AGC
065369,000192: 43,3756 13764 UPERLEM TCF UPERROR # ERROR- IT'S THE LEM + MODE IS NOT POO.
065370,000193: 43,3757 45016 CS TWO
065371,000194: 43,3760 71011 MASK MODREG
065372,000195: 43,3761 10000 CCS A
065373,000196: 43,3762 13764 UPERCMC TCF UPERROR # ERROR- IT'S THE CMC AND MODE IS NOT
065374,000197: # P00 OR P02.
065375,000198: 43,3763 00002 TC Q # ALLOW UPDATE TO PROCEED
065376,000199:
065377,000200: 43,3764 04701 UPERROR TC POSTJUMP # TURN ON 'OPERATOR ERROR' LIGHT
065378,000201: 43,3765 57754 CADR UPERROUT +2 # GO TO COMMON UPDATE PROGRAM EXIT
065379,000202:
065380,000203: 43,3766 30,2000 SBANK= LOWSUPER
065381,000204: 43,3766 5021 UP70 EQUALS ZERO
065382,000205: 43,3766 5017 UP71 EQUALS ONE
065383,000206: 43,3766 5016 UP72 EQUALS TWO
065384,000207: 43,3766 6214 UP73 EQUALS THREE
065385,000208:
065386,000209: 04,3757 BANK 04
065387,000210: 27,2000 SETLOC UPDATE2
065388,000211: 27,2000 BANK
065389,000212:
065390,000213: 27,3373 COUNT* $$/P27
065391,000214:
065392,000215: 27,3373 UPPART2 EQUALS # UPDATE PROGRAM - PART 2
065393,000216:
065394,000217: 27,3373 05412 TC PHASCHNG # SET RESTART GROUP 6 TO RESTORE OLD MODE
065395,000218: 27,3374 07026 OCT 07026 # AND DOWNLIST AND EXIT IF RESTART OCCURS.
065396,000219: 27,3375 30000 OCT 30000 # PRIORITY SAME AS CHRPRIO
065397,000220: 27,3376 0304 EBANK= UPBUFF
065398,000221: 27,3376 03704 56060 2CADR UPOUT +1
065399,000222:
065400,000223: 27,3400 35017 CAF ONE
065401,000224: 27,3401 54332 TS DNLSTCOD # DOWNLIST
065402,000225:
065403,000226: 27,3402 05354 TC NEWMODEX # SET MAJOR MODE = 27
![]() |
Page 1501 |
065405,000228: 27,3403 00033 DEC 27 B-14
065406,000229:
065407,000230: 27,3404 50302 INDEX UPVERB # BRANCH DEPENDING ON WHETHER THE UPDATE
065408,000231: 27,3405 13406 TCF +1 # VERB REQUIRES A FIXED OR VARIABLE NUMBER
065409,000232: 27,3406 13411 TCF +3 # V70 FIXED. (OF COMPONENTS.
065410,000233: 27,3407 13414 TCF OHWELL1 # V71 VARIABLE - GO GET NO. OF COMPONENTS
065411,000234: 27,3410 13414 TCF OHWELL1 # V72 VARIABLE - GO GET NO. OF COMPONENTS
065412,000235: 27,3411 35016 CA TWO # V73 (AND V70) FIXED
065413,000236: 27,3412 54300 TS COMPNUMB # SET NUMBER OF COMPONENTS TO 2.
065414,000237: 27,3413 13437 TCF OHWELL2 # GO GET THE TWO UPDATE COMPONENTS
065415,000238:
065416,000239: 27,3414 33507 OHWELL1 CAF ADUPBUFF # * REQUEST USER TO SEND NUMBER *
065417,000240: 27,3415 54156 TS MPAC +2 # * OF COMPONENTS PARAMETER(II). *
065418,000241: 27,3416 33510 +2 CAF UPLOADNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
065419,000242: 27,3417 04662 TC BANKCALL # DISPLAY A FLASHING V21N01
065420,000243: 27,3420 20561 CADR GOXDSPF # TO REQUEST II.
065421,000244: 27,3421 13704 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN
065422,000245: 27,3422 13416 TCF OHWELL1 +2
065423,000246: 27,3423 03500 TC CK4V32 # DATA OR V32 RETURN
065424,000247: 27,3424 45016 CS BIT2
065425,000248: 27,3425 60304 AD UPBUFF # IS II (NUMBER OF COMPONENTS PARAMETER)
065426,000249: 27,3426 00006 EXTEND # .GE. 3 AND .LE. 20D.
065427,000250: 27,3427 63416 BZMF OHWELL1 +2
065428,000251: 27,3430 40304 CS UPBUFF
065429,000252: 27,3431 64376 AD UP21
065430,000253: 27,3432 00006 EXTEND
065431,000254: 27,3433 63416 BZMF OHWELL1 +2
065432,000255: 27,3434 30304 CAE UPBUFF
065433,000256: 27,3435 54300 TS COMPNUMB # SAVE II IN COMPNUMB
065434,000257:
065435,000258: # UPBUFF LOADING SEQUENCE
065436,000259:
065437,000260: 27,3436 24303 INCR UPCOUNT # INCREMENT COUNT OF COMPONENTS RECEIVED.
065438,000261: 27,3437 33654 OHWELL2 CAF ADUPBFM1 # CALCULATE LOCATION (ECADR) IN UPBUFF
065439,000262: 27,3440 60303 AD UPCOUNT # WHERE NEXT COMPONENT SHOULD BE STORED.
065440,000263: 27,3441 54156 +2 TS MPAC +2 # PLACE ECADR INTO R3.
065441,000264: 27,3442 33510 +3 CAF UPLOADNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
065442,000265: 27,3443 04662 TC BANKCALL # DISPLAY A FLASHING V21N01
065443,000266: 27,3444 20561 CADR GOXDSPF # TO REQUEST DATA.
065444,000267: 27,3445 13704 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN.
065445,000268: 27,3446 13442 TCF OHWELL2 +3 # V33 PROCEED RETURN
065446,000269: 27,3447 03500 TC CK4V32 # DATA OR V32 RETURN
065447,000270: 27,3450 40303 CS UPCOUNT # HAVE WE FINISHED RECEIVING ALL
065448,000271: 27,3451 60300 AD COMPNUMB # THE DATA WE EXPECTED.
065449,000272: 27,3452 00006 EXTEND
065450,000273: 27,3453 63455 BZMF UPVERIFY # YES- GO TO VERIFICATION SEQUENCE
065451,000274: 27,3454 13436 TCF OHWELL2 -1 # NO- REQUEST ADDITIONAL DATA.
065452,000275:
![]() |
Page 1502 |
065454,000277: # VERIFY SEQUENCE
065455,000278: 27,3455 33506 UPVERIFY CAF ADUPTEMP # PLACE ECADR WHERE COMPONENT NO. INDEX
065456,000279: 27,3456 54156 TS MPAC +2 # IS TO BE STORED INTO R3.
065457,000280: 27,3457 33511 CAF UPVRFYNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
065458,000281: 27,3460 04662 TC BANKCALL # DISPLAY A FLASHING V21N02 TO REQUEST
065459,000282: 27,3461 20561 CADR GOXDSPF # DATA CORRECTION OR VERIFICATION.
065460,000283: 27,3462 13704 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN
065461,000284: 27,3463 13512 TCF UPSTORE # V33 DATA SENT IS GOOD. GO STORE IT.
065462,000285: 27,3464 03500 TC CK4V32 # COMPONENT NO. INDEX OR V32 RETURN
065463,000286: 27,3465 30330 CA UPTEMP # DOES THE COMPONENT NO. INDEX JUST SENT
065464,000287: 27,3466 00006 EXTEND # SPECIFY A LEGAL COMPONENT NUMBER?
065465,000288: 27,3467 63455 BZMF UPVERIFY # NO, IT IS NOT POSITIVE NONZERO
065466,000289: 27,3470 40330 CS UPTEMP
065467,000290: 27,3471 60300 AD COMPNUMB
065468,000291: 27,3472 65017 AD BIT1
065469,000292: 27,3473 00006 EXTEND
065470,000293: 27,3474 63455 BZMF UPVERIFY # NO
065471,000294: 27,3475 33654 CAF ADUPBFM1 # YES- BASED ON THE COMPONENT NO. INDEX
065472,000295: 27,3476 60330 AD UPTEMP # CALCULATE THE ECADR OF LOCATION IN
065473,000296: 27,3477 13441 TCF OHWELL2 +2 # UPBUFF WHICH USER WANTS TO CHANGE.
065474,000297:
065475,000298: 27,3500 27,3704 UPOUT4 EQUALS UPOUT +1 # COMES HERE ON V34 TO TERMINATE UPDATE
065476,000299:
065477,000300: # CHECK FOR VERB 32 SEQUENCE
065478,000301:
065479,000302: 27,3500 40154 CK4V32 CS MPAC # ON DATA RETURN FROM 'GOXDSPF'
065480,000303: 27,3501 75012 MASK BIT6 # ON DATA RETURN FROM "GOXDSP"& THE CON-
065481,000304: 27,3502 10000 CCS A # TENTS OF MPAC = VERB. SO TEST FOR V32.
065482,000305: 27,3503 00002 TC Q # IT'S NOT A V32, IT'S DATA. PROCEED.
065483,000306: 27,3504 50002 INDEX Q
065484,000307: 27,3505 77771 TC 0 -6 # V32 ENCOUNTERED - GO BACK AND GET DATA
065485,000308:
065486,000309: 27,3506 00330 ADUPTEMP ADRES UPTEMP # ADDRESS OF TEMP STORAGE FOR CORRECTIONS
065487,000310: 27,3507 00304 ADUPBUFF ADRES UPBUFF # ADDRESS OF UPDATE DATA STORAGE BUFFER
065488,000311: 27,3510 05201 UPLOADNV VN 2101 # VERB 21 NOUN 01
065489,000312: 27,3511 05202 UPVRFYNV VN 2102 # VERB 21 NOUN 02
065490,000313: 27,3512 4376 UP21 = MD1 # DEC 21 = MAX NO OF COMPONENTS +1
065491,000314: 27,3512 5022 UPDTPHAS EQUALS FIVE
065492,000315:
065493,000316: # PRE-STORE AND FAN TO APPROPRIATE BRANCH SEQUENCE
065494,000317:
065495,000318: 27,3512 UPSTORE EQUALS # GROUND HAS VERIFIED UPDATE. STORE DATA.
065496,000319:
065497,000320: 27,3512 00004 INHINT
065498,000321:
065499,000322: 27,3513 30103 CAE FLAGWRD7 # INVERT VERIFLAG (BIT 3 OF FLAGWRD7) TO
065500,000323: 27,3514 56001 XCH L # INDICATE TO THE GROUND (VIA DOWNLINK)
065501,000324: 27,3515 35015 CAF BIT3 # THAT THE V33 (WHICH THE GROUND SENT TO
![]() |
Page 1503 |
065503,000326: 27,3516 00006 EXTEND # VERIFY THE UPDATE) HAS BEEN SUCCESSFULLY
065504,000327: 27,3517 06001 RXOR LCHAN # RECEIVED BY THE UPDATE PROGRAM
065505,000328: 27,3520 54103 TS FLAGWRD7
065506,000329:
065507,000330: 27,3521 05412 TC PHASCHNG # SET RESTART GROUP 6 TO REDO THE UPDATE
065508,000331: 27,3522 04026 OCT 04026 # DATA STORE IF A RESTART OCCURS.
065509,000332: 27,3523 00004 INHINT # (BECAUSE PHASCHNG DID A RELINT)
065510,000333:
065511,000334: 27,3524 45016 CS TWO # GO TO UPFNDVAC IF INSTALL IS REQUIRED,
065512,000335: 27,3525 60302 AD UPVERB # THAT IS, IF IT'S A V70 - V72.
065513,000336: 27,3526 00006 EXTEND # GO TO UPEND73 IF IT'S A V73.
065514,000337: 27,3527 63536 BZMF UPFNDVAC
065515,000338:
065516,000339: # VERB 73 BRANCH
065517,000340:
065518,000341: 27,3530 00006 UPEND73 EXTEND # V73-PERFORM DP OCTAL AGC CLOCK INCREMENT
065519,000342: 27,3531 30305 DCA UPBUFF
065520,000343: 27,3532 52315 DXCH UPBUFF +8D
065521,000344: 27,3533 03561 TC TIMEDIDL
065522,000345: 27,3534 04400 TC FALTON # ERROR- TURN ON *OPERATOR ERROR* LIGHT
065523,000346: 27,3535 03704 TC UPOUT +1 # GO TO COMMON UPDATE PROGRAM EXIT
065524,000347:
065525,000348: 27,3536 34371 UPFNDVAC CAF CHRPRIO # (USE EXTENDED VERB PRIORITY)
065526,000349: 27,3537 05147 TC FINDVAC # GET VAC AREA FOR 'CALL INTSTALL'
065527,000350: 27,3540 E3,1706 EBANK= TEPHEM
065528,000351: 27,3540 03543 56063 2CADR UPJOB # (NOTE: THIS WILL ALSO SET EBANK FOR
065529,000352: 27,3542 05217 TC ENDOFJOB # 'TEPHEM' UPDATE BY V70)
065530,000353:
065531,000354: 27,3543 06006 UPJOB TC INTPRET # THIS COULD BE A STATE VECTOR UPDATE -- SO
065532,000355: 27,3544 77624 CALL # WAIT (PUT JOB TO SLEEP) IF ORBIT INT(OI)
065533,000356: 27,3545 27442 INTSTALL # IS IN PROGRESS -- OR -- GRAB OI AND RETURN
065534,000357: # TO UPWAKE IF OI IS NOT IN PROGRESS.
065535,000358:
065536,000359: 27,3546 77776 UPWAKE EXIT
065537,000360:
065538,000361: 27,3547 05412 TC PHASCHNG # RESTART PROTECT (GROUP 6)
065539,000362: 27,3550 04026 OCT 04026
065540,000363:
065541,000364: 27,3551 05546 TC UPFLAG # SET INTEGRATION RESTART BIT
065542,000365: 27,3552 00236 ADRES REINTFLG
065543,000366: 27,3553 00004 INHINT
065544,000367: 27,3554 UPPART3 EQUALS
065545,000368:
065546,000369: 27,3554 50302 INDEX UPVERB # BRANCH TO THE APPROPRIATE UPDATE VERB
065547,000370: 27,3555 13556 TCF +1 # ROUTINE TO ACTUALLY PERFORM THE UPDATE
065548,000371: 27,3556 13715 TCF UPEND70 # V70
065549,000372: 27,3557 13624 TCF UPEND71 # V71
065550,000373: 27,3560 13656 TCF UPEND72 # V72
065551,000374:
![]() |
Page 1504 |
065553,000376: # ROUTINE TO INCREMENT CLOCK (TIME2,TIME1) WITH CONTENTS OF DP WORD AT UPBUFF.
065554,000377: 27,3561 00006 TIMEDIDL EXTEND
065555,000378: 27,3562 22330 QXCH UPTEMP # SAVE Q FOR RETURN
065556,000379: 27,3563 35021 CAF ZERO # ZERO AND SAVE TIME2,TIME1
065557,000380: 27,3564 22007 ZL
065558,000381: 27,3565 52025 DXCH TIME2
065559,000382: 27,3566 52327 DXCH UPBUFF +18D # STORE IN CASE OF OVERFLOW
065560,000383:
065561,000384: 27,3567 35022 CAF UPDTPHAS # DO
065562,000385: 27,3570 54001 TS L # A
065563,000386: 27,3571 40000 COM # QUICK
065564,000387: 27,3572 52765 DXCH -PHASE6 # PHASCHNG
065565,000388:
065566,000389: 27,3573 00004 TIMEDIDR INHINT
065567,000390: 27,3574 35021 CAF ZERO
065568,000391: 27,3575 22007 ZL # PICK UP INCREMENTER(AND ZERO
065569,000392: 27,3576 54156 TS MPAC +2 # IT IN CASE OF RESTARTS) AND
065570,000393: 27,3577 52315 DXCH UPBUFF +8D # STORE IT
065571,000394: 27,3600 52155 DXCH MPAC # INTO MPAC FOR TPAGREE.
065572,000395:
065573,000396: 27,3601 00006 EXTEND
065574,000397: 27,3602 30327 DCA UPBUFF +18D
065575,000398: 27,3603 20155 DAS MPAC # FORM SUM IN MPAC
065576,000399: 27,3604 00006 EXTEND
065577,000400: 27,3605 13614 BZF DELTAOK # TEST FOR OVERFLOW
065578,000401: 27,3606 35021 CAF ZERO
065579,000402: 27,3607 52327 DXCH UPBUFF +18D # OVERFLOW, RESTORE OLD VALUE OF CLOCK
065580,000403: 27,3610 20025 DAS TIME2 # AND TURN ON OPERATOR ERROR
065581,000404:
065582,000405: 27,3611 05412 TC PHASCHNG # RESTART PROTECT (GROUP 6)
065583,000406: 27,3612 04026 OCT 04026
065584,000407:
065585,000408: 27,3613 00330 TC UPTEMP # GO TO ERROR EXIT
065586,000409:
065587,000410: 27,3614 07226 DELTAOK TC TPAGREE # FORCE SIGN AGREEMENT
065588,000411: 27,3615 52155 DXCH MPAC
065589,000412: 27,3616 20025 DAS TIME2 # INCREMENT TIME2,TIME1
065590,000413:
065591,000414: 27,3617 05412 TC PHASCHNG # RESTART PROTECT (GROUP 6)
065592,000415: 27,3620 04026 OCT 04026
065593,000416:
065594,000417: 27,3621 00004 INHINT
065595,000418: 27,3622 50330 INDEX UPTEMP # (CODED THIS WAY FOR RESTART PROTECTION)
065596,000419: 27,3623 00001 TC 1 # NORMAL RETURN
065597,000420:
065598,000421: # VERB 71 BRANCH
065599,000422:
065600,000423: 27,3624 30305 UPEND71 CAE UPBUFF +1 # SET EBANK
065601,000424: 27,3625 54003 TS EBANK # AND
![]() |
Page 1505 |
065603,000426: 27,3626 74373 MASK LOW8 # CALCULATE
065604,000427: 27,3627 54330 TS UPTEMP # S-REG VALUE OF RECEIVING AREA
065605,000428: 27,3630 67714 AD NEG3 # IN THE PROCESS OF
065606,000429: 27,3631 60300 AD COMPNUMB # PERFORMING
065607,000430: 27,3632 00006 EXTEND # THIS UPDATE
065608,000431: 27,3633 13641 BZF STORLP71 # WILL WE
065609,000432: 27,3634 75007 MASK BIT9 # OVERFLOW
065610,000433: 27,3635 10000 CCS A # INTO THE NEXT EBANK....
065611,000434: 27,3636 13752 TCF UPERROUT # YES
065612,000435:
065613,000436: 27,3637 37714 CA NEG3 # NO- CALCULATE NUMBER OF
065614,000437: 27,3640 60300 AD COMPNUMB # WORDS TO BE STORED MINUS ONE
065615,000438: 27,3641 54154 STORLP71 TS MPAC # SAVE NO. OF WORDS REMAINING MINUS ONE
065616,000439: 27,3642 50000 INDEX A # TAKE NEXT UPDATE WORD FROM
065617,000440: 27,3643 30306 CA UPBUFF +2 # UPBUFF AND
065618,000441: 27,3644 54001 TS L # SAVE IT IN L
065619,000442: 27,3645 30154 CA MPAC # CALCULATE NEXT
065620,000443: 27,3646 60330 AD UPTEMP # RECEIVING ADDRESS
065621,000444: 27,3647 50000 INDEX A
065622,000445: 27,3650 E3,1400 EBANK= 1400
065623,000446: 27,3650 23400 LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
065624,000447: 27,3651 E3,1706 EBANK= TEPHEM
065625,000448: 27,3651 10154 CCS MPAC # ARE THERE ANY WORDS LEFT TO BE STORED
065626,000449: 27,3652 13641 TCF STORLP71 # YES
065627,000450: 27,3653 13703 TCF UPOUT # NO- THEN EXIT UPDATE PROGRAM
065628,000451: 27,3654 00303 ADUPBFM1 ADRES UPBUFF -1 # SAME AS ADUPBUFF BUT LESS 1 (DON'T MOVE)
065629,000452: 27,3655 13703 TCF UPOUT # NO- EXIT UPDATE (HERE WHEN COMPNUMB = 3)
065630,000453:
065631,000454: # VERB 72 BRANCH
065632,000455:
065633,000456: 27,3656 35017 UPEND72 CAF BIT1 # HAVE AN ODD NO. OF COMPONENTS
065634,000457: 27,3657 70300 MASK COMPNUMB # BEEN SENT FOR A V72 UPDATE ...
065635,000458: 27,3660 10000 CCS A
065636,000459: 27,3661 13663 TCF +2 # YES
065637,000460: 27,3662 13752 TCF UPERROUT # ERROR- SHOULD BE ODD NO. OF COMPONENTS
065638,000461: 27,3663 45016 CS BIT2
065639,000462: 27,3664 60300 AD COMPNUMB
065640,000463: 27,3665 54154 LDLOOP72 TS MPAC # NOW PERFORM THE UPDATE
065641,000464: 27,3666 50000 INDEX A
065642,000465: 27,3667 30305 CAE UPBUFF +1 # PICK UP NEXT UPDATE WORD
065643,000466: 27,3670 22000 LXCH A
065644,000467: 27,3671 10154 CCS MPAC # SET POINTER TO ECADR (MUST BE CCS)
065645,000468: 27,3672 54154 TS MPAC
065646,000469: 27,3673 50000 INDEX A
065647,000470: 27,3674 30305 CAE UPBUFF +1 # PICK UP NEXT ECADR OF REG TO BE UPDATED
065648,000471: 27,3675 54003 TS EBANK # SET EBANK
065649,000472: 27,3676 74373 MASK LOW8 # ISOLATE RELATIVE ADDRESS
065650,000473: 27,3677 50000 INDEX A
065651,000474:
![]() |
Page 1506 |
065653,000476: 27,3700 E3,1400 EBANK= 1400
065654,000477: 27,3700 23400 LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
065655,000478: 27,3701 E3,1706 EBANK= TEPHEM
065656,000479: 27,3701 10154 CCS MPAC # ARE WE THROUGH THE V72 UPDATE...
065657,000480: 27,3702 13665 TCF LDLOOP72 # NO
065658,000481:
065659,000482: # NORMAL FINISH OF P27
065660,000483:
065661,000484: 27,3703 UPOUT EQUALS
065662,000485: 27,3703 02671 TC INTWAKEU # RELEASE GRAB OF ORBITAL INTEGRATION
065663,000486: 27,3704 30301 +1 CAE UPOLDMOD # RESTORE PRIOR P27 MODE
065664,000487: 27,3705 05357 TC NEWMODEX +3
065665,000488: 27,3706 35021 CAF ZERO
065666,000489: 27,3707 54332 TS DNLSTCOD
065667,000490: 27,3710 03757 TC UPACTOFF # TURN OFF 'UPLINK ACTIVITY' LIGHT
065668,000491: 27,3711 00006 EXTEND # KILL GROUP 6.
065669,000492: 27,3712 35021 DCA NEG0
065670,000493: 27,3713 52765 DXCH -PHASE6
065671,000494:
065672,000495: 27,3714 05534 TC ENDEXT # EXTENDED VERB EXIT
065673,000496:
065674,000497: # VERB 70 BRANCH
065675,000498:
065676,000499: 27,3715 00006 UPEND70 EXTEND # V70 DOES THE FOLLOWING WITH DP DELTA
065677,000500: 27,3716 40305 DCS UPBUFF # TIME IN UPBUFF
065678,000501: 27,3717 52315 DXCH UPBUFF +8D
065679,000502: 27,3720 03561 TC TIMEDIDL # DECREMENT AGC CLOCK
065680,000503:
065681,000504: 27,3721 03752 TC UPERROUT # ERROR WHILE DECREMENTING CLOCK -- EXIT
065682,000505:
065683,000506: 27,3722 E3,1706 EBANK= TEPHEM
065684,000507: 27,3722 00006 EXTEND
065685,000508: 27,3723 40305 DCS UPBUFF # COPY DECREMENTERS FOR
065686,000509: 27,3724 52317 DXCH UPBUFF +10D # RESTART PROTECTION
065687,000510: 27,3725 00006 EXTEND
065688,000511: 27,3726 40305 DCS UPBUFF
065689,000512: 27,3727 52321 DXCH UPBUFF +12D
065690,000513:
065691,000514: 27,3730 05412 TC PHASCHNG # RESTART PROTECT (GROUP 6)
065692,000515: 27,3731 04026 OCT 04026
065693,000516:
065694,000517: 27,3732 35021 CAF ZERO
065695,000518: 27,3733 22007 ZL
065696,000519: 27,3734 52317 DXCH UPBUFF +10D # DECREMENT CSM STATE VECTOR TIME
065697,000520: 27,3735 21571 DAS TETCSM
065698,000521:
065699,000522: 27,3736 35021 CAF ZERO
065700,000523:
![]() |
Page 1507 |
065702,000525: 27,3737 22007 ZL
065703,000526: 27,3740 52321 DXCH UPBUFF +12D # DECREMENT LEM STATE VECTOR TIME
065704,000527: 27,3741 21643 DAS TETLEM
065705,000528: 27,3742 35021 CAF ZERO
065706,000529: 27,3743 22007 ZL
065707,000530: 27,3744 52305 DXCH UPBUFF
065708,000531: 27,3745 21710 DAS TEPHEM +1 # INCREMENT TP TEPHEM
065709,000532: 27,3746 27706 ADS TEPHEM
065710,000533:
065711,000534: 27,3747 05412 TC PHASCHNG # RESTART PROTECT (GROUP 6)
065712,000535: 27,3750 04026 OCT 04026
065713,000536:
065714,000537: 27,3751 0304 EBANK= UPBUFF
065715,000538:
065716,000539: 27,3751 03703 TC UPOUT # GO TO STANDARD UPDATE PROGRAM EXIT
065717,000540:
065718,000541: # ERROR SEQUENCE
065719,000542:
065720,000543: 27,3752 04400 UPERROUT TC FALTON # TURN ON *OPERATOR ERROR* LIGHT
065721,000544: 27,3753 13703 TCF UPOUT # GO TO COMMON UPDATE PROGRAM EXIT
065722,000545:
065723,000546: 27,3754 04400 +2 TC FALTON # TURN ON 'OPERATOR ERROR' LIGHT
065724,000547: 27,3755 03757 TC UPACTOFF # TURN OFF 'UPLINK ACTIVITY' LIGHT
065725,000548: 27,3756 05534 TC ENDEXT # EXTENDED VERB EXIT
065726,000549: # (THE PURPOSE OF UPERROUT +2 EXIT IS
065727,000550: # TO PROVIDE AN ERROR EXIT WHICH DOES NOT
065728,000551: # RESET ANY RESTART GROUPS)
065729,000552:
065730,000553: # :UPACTOFF: IS A ROUTINE TO TURN OFF UPLINK ACTIVITY LIGHT ON ALL EXITS FROM UPDATE PROGRAM (P27).
065731,000554:
065732,000555: 27,3757 45015 UPACTOFF CS BIT3
065733,000556: 27,3760 00006 EXTEND # TURN OFF UPLINK ACTIVITY LIGHT
065734,000557: 27,3761 03011 WAND DSALMOUT # (BIT 3 OF CHANNEL 11)
065735,000558: 27,3762 00002 TC Q
End of include-file UPDATE_PROGRAM.agc. Parent file is MAIN.agc