Source Code
These source-code files were transcribed from scans made from Don Eyles's personal
copy of Luminary 069. They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Onno Hommes. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are prefixed with a single '#' symbol,
whereas comments added later are prefixed by "##" or "###". In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the Luminary 69 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 069 OF AGC PROGRAM LUMINARY BY NASA 2021112-011 19:02 NOV. 25,1968Note that the date is the date of the printout, not the date of the program revision. |
059807,000002: ## Copyright: Public domain.
059808,000003: ## Filename: UPDATE_PROGRAM.agc
059809,000004: ## Purpose: The main source file for Luminary revision 069.
059810,000005: ## It is part of the source code for the original release
059811,000006: ## of the flight software for the Lunar Module's (LM) Apollo
059812,000007: ## Guidance Computer (AGC) for Apollo 10. The actual flown
059813,000008: ## version was Luminary 69 revision 2, which included a
059814,000009: ## newer lunar gravity model and only affected module 2.
059815,000010: ## This file is intended to be a faithful transcription, except
059816,000011: ## that the code format has been changed to conform to the
059817,000012: ## requirements of the yaYUL assembler rather than the
059818,000013: ## original YUL assembler.
059819,000014: ## Reference: pp. 1379-1389
059820,000015: ## Assembler: yaYUL
059821,000016: ## Contact: Ron Burkey <info@sandroid.org>.
059822,000017: ## Website: www.ibiblio.org/apollo/index.html
059823,000018: ## Mod history: 2016-12-13 MAS Created from Luminary 99.
059824,000019: ## 2016-12-18 MAS Updated from comment-proofed Luminary 99 version.
059825,000020: ## 2017-01-09 RSB Completed transcription. I made an effort to
059826,000021: ## correct all of the whitespace, but I believe that
059827,000022: ## whitespace was the only actual change.
059828,000023: ## 2017-01-16 MAS Fixed a page number and changed to spaces-only in
059829,000024: ## the line comments.
059830,000025: ## 2017-01-22 HG Add workaround for SBANK
059831,000026: ## 2017-01-28 RSB Proofed comment text using octopus/prooferComments
059832,000027: ## and fixed errors found.
059833,000028: ## 2017-02-09 RSB Comment-text fixes identified for Artemis 72.
059834,000029: ## 2017-06-17 MAS Globally removed all SBANK= workarounds.
059835,000030: ## 2021-05-30 ABS DELTAOK -> DELTATOK
059836,000031:
Page 1379 |
059838,000033: # PROGRAM NAME: P27
059839,000034: # WRITTEN BY: KILROY/ DE WOLF
059840,000035:
059841,000036: # MOD NO: 6
059842,000037: # MOD BY: KILROY
059843,000038: # DATE: 01DEC67
059844,000039:
059845,000040: # LOG SECTION: UPDATE PROGRAM.
059846,000041:
059847,000042: # FUNCT. DESCR: P27 (THE UPDATE PROGRAM) PROCESSES COMMANDS AND DATA
059848,000043: # INSERTIONS REQUESTED BY THE GROUND VIA UPLINK.
059849,000044: # THE P27 PROGRAM WILL ACCEPT UPDATES
059850,000045: # ONLY DURING P00 FOR THE LM, AND ONLY DURING P00,
059851,000046: # P02, AND FRESH START FOR THE CSM
059852,000047:
059853,000048: # CALLING SEQ: PROGRAM IS INITIATED BY UPLINK ENTRY OF VERBS 70, 71, 72 AND 73.
059854,000049:
059855,000050: # SUBROUTINES: TESTXACT, NEWMODEX, NEWMODEX +3, GOXDSPF, BANKCALL, FINDVAC, INTPRET, INTSTALL, TPAGREE,
059856,000051: # INTWAKEU, ENDEXT, POSTJUMP, FALTON, NEWPHASE, PHASCHNG
059857,000052:
059858,000053: # NORMAL EXIT: TC ENDEXT
059859,000054:
059860,000055: # ALARM/ABORT: TC FALTON FOLLOWED BY TC ENDEXT
059861,000056:
059862,000057: # RESTARTS: P27 IS RESTART PROTECTED IN TWO WAYS...
059863,000058: # 1. PRIOR TO VERIFLAG INVERSION(WHICH IS CAUSED BY THE GROUND/ASTRONAUT'S VERIFICATION OF UPDATE
059864,000059: # DATA BY SENDING A V33E WHEN V21N02 IS FLASHING)---
059865,000060: # NO PROTECTION EXCEPT PRE-P27 MODE IS RESTORED, COAST + ALIGN DOWNLIST IS SELECTED AND UPLINK
059866,000061: # ACTIVITY LIGHT IS TURNED OFF.(JUST AS IF A V34E WAS SENT DURING P27 DATA LOADS).
059867,000062: # V70,V71,V72 OR V73 WILL HAVE TO BE COMPLETELY RESENT BY USER.
059868,000063: # 2. AFTER VERIFLAG INVERSION(WHEN UPDATE OF THE SPECIFIED ERASABLES IS BEING PERFORMED)---
059869,000064: # PROTECTED AGAINST RESTARTS.
059870,000065:
059871,000066: # DEBRIS: UPBUFF (20D) TEMP STORAGE FOR ADDRESSES AND CONTENTS.
059872,000067: # UPVERB (1) VERB NUMBER MINUS 70D (E.G. FOR V72, UPVERB = 72D - 70D = 2)
059873,000068: # UPOLDMOD (1) FOR MAJOR MODE INTERRUPTED BY P27.
059874,000069: # COMPNUMB (1) TOTAL NUMBER OF COMPONENTS TO BE TRANSMITTED.
059875,000070: # UPCOUNT (1) ACTUAL NUMBER OF COMPONENTS RECEIVED.
059876,000071: # UPTEMP (1) SCRATCH, BUT USUALLY CONTAINS COMPONENT NUMBER TO BE CHANGED DURING VERIFY CYCLE
059877,000072:
059878,000073: # INPUT:
059879,000074:
059880,000075: # ENTRY: DESCRIPTION
059881,000076:
059882,000077: # V70EXXXXXEXXXXXE (LIFTOFF TIME INCREMENT) DOUBLE PRECISION OCTAL TIME INCREMENT, XXXXX XXXXX,
059883,000078: # IS ADDED TO TEPHEM, SUBTRACTED FROM AGC CLOCK(TIME2,TIME1), SUBTRACTED FROM CSM STATE
059884,000079: # VECTOR TIME(TETCSM) AND SUBTRACTED FROM LEM STATE VECTOR TIME(TETLEM).
059885,000080: # THE DP OCTAL TIME INCREMENT IS SCALED AT 2(28).
Page 1380 |
059887,000082: # V71EIIEAAAAE (CONTIGUOUS BLOCK UPDATE) II-2 OCTAL COMPONENTS,XXXXX,
059888,000083: # XXXXXE ARE LOADED INTO ERASABLE STARTING AT ECADR, AAAA.
059889,000084: # XXXXXE IT IS .GE. 3 .AND. .LE. 20D.,
059890,000085: # AND (AAAA + II -3) DOES NOT PRODUCE AN ADDRESS IN THE
059891,000086: # 9 NEXT BANK
059892,000087: # . SCALING IS SAME AS INTERNAL REGISTERS.
059893,000088:
059894,000089: # V72EIIE (SCATTER UPDATE) (II-1)/2 OCTAL COMPONENTS,XXXXX, ARE
059895,000090: # AAAAEXXXXXE LOADED INTO ERASABLE LOCATIONS, AAAA.
059896,000091: # AAAAEXXXXXE II IS .GE. 3 .AND. .LE. 19D, AND MUST BE ODD.
059897,000092: # . SCALING IS SAME AS INTERNAL REGISTERS.
059898,000093:
059899,000094: # V73EXXXXXEXXXXXE (OCTAL CLOCK INCREMENT) DOUBLE PRECISION OCTAL TIME
059900,000095: # INCREMENT XXXXX XXXXX, IS ADDED TO THE AGC CLOCK, IN
059901,000096: # CENTISECONDS SCALED AT (2)28.
059902,000097: # THIS LOAD IS THE OCTAL EQUIVALENT OF V55.
059903,000098:
059904,000099: # OUTPUT: IN ADDITION TO THE ABOVE REGISTER LOADS, ALL UPDATES
059905,000100: # COMPLEMENT BIT3 OF FLAGWORD7.
059906,000101:
059907,000102: # ADDITIONAL NOTES: VERB 71, JUST DEFINED ABOVE WILL BE USED TO PERFORM BUT NOT LIMITED TO THE FOLLOWING UPDATES--
059908,000103: # 1. CSM/LM STATE VECTOR UPDATE
059909,000104: # 2. REFSMMAT UPDATE
059910,000105:
059911,000106: # THE FOLLOWING COMMENTS DELINEATE EACH SPECIAL UPDATE----
059912,000107:
059913,000108: # 1. CSM/LM STATE VECTOR UPDATE (ALL DATA ENTRIES IN OCTAL)
059914,000109:
059915,000110: # ENTRIES: DATA DEFINITION: SCALE FACTORS:
059916,000111: # V71E CONTIGUOUS BLOCK UPDATE VERB
059917,000112: # 21E NUMBER OF COMPONENTS FOR STATE VECTOR UPDATE
059918,000113: # AAAAE ECADR OF 'UPSVFLAG'
059919,000114: # XXXXXE STATE VECTOR IDENTIFIER: 00001 FOR CSM, 77776 FOR LEM - EARTH SPHERE OF INFLUENCE SCALING
059920,000115: # 00002 FOR CSM, 77775 FOR LEM - LUNAR SPHERE OF INFLUENCE SCALING
059921,000116: # XXXXXEXXXXXE X POSITION
059922,000117: # XXXXXEXXXXXE Y POSITION
059923,000118: # XXXXXEXXXXXE Z POSITION
059924,000119: # XXXXXEXXXXXE X VELOCITY
059925,000120: # XXXXXEXXXXXE Y VELOCITY
059926,000121: # XXXXXEXXXXXE Z VELOCITY
059927,000122: # XXXXXEXXXXXE TIME FROM AGC CLOCK ZERO
059928,000123: # V33E VERB 33 TO SIGNAL THAT THE STATE VECTOR IS READY TO BE STORED.
059929,000124:
059930,000125: # 2. REFSMMAT(ALL DATA ENTRIES IN OCTAL)
059931,000126: # ENTRIES: DATA DEFINITIONS: SCALE FACTORS:
Page 1381 |
059933,000128: # V71E CONTIGUOUS BLOCK UPDATE VERB
059934,000129: # 24E NUMBER OF COMPONENTS FOR REFSMMAT UPDATE
059935,000130: # AAAAE ECADR OF 'REFSMMAT'
059936,000131: # XXXXXEXXXXXE ROW 1 COLUMN 1 2(-1)
059937,000132: # XXXXXEXXXXXE ROW 1 COLUMN 2 2(-1)
059938,000133: # XXXXXEXXXXXE ROW 1 COLUMN 3 2(-1)
059939,000134: # XXXXXEXXXXXE ROW 2 COLUMN 1 2(-1)
059940,000135: # XXXXXEXXXXXE ROW 2 COLUMN 2 2(-1)
059941,000136: # XXXXXEXXXXXE ROW 2 COLUMN 3 2(-1)
059942,000137: # XXXXXEXXXXXE ROW 3 COLUMN 1 2(-1)
059943,000138: # XXXXXEXXXXXE ROW 3 COLUMN 2 2(-1)
059944,000139: # XXXXXEXXXXXE ROW 3 COLUMN 3 2(-1)
059945,000140: # V33E VERB 33 TO SIGNAL THAT REFSMMAT IS READY TO BE STORED.
059946,000141:
059947,000142:
059948,000143: 07,3746 BANK 07
059949,000144: 43,2000 SETLOC EXTVERBS
059950,000145: 43,2000 BANK
059951,000146:
059952,000147: 43,3732 E3,1706 EBANK= TEPHEM
059953,000148:
059954,000149: 43,3732 COUNT* $$/P27
059955,000150: 43,3732 34755 V70UPDAT CAF UP70 # COMES HERE ON V70E
059956,000151: 43,3733 13741 TCF V73UPDAT +1
059957,000152:
059958,000153: 43,3734 34753 V71UPDAT CAF UP71 # COMES HERE ON V71E
059959,000154: 43,3735 13741 TCF V73UPDAT +1
059960,000155:
059961,000156: 43,3736 34752 V72UPDAT CAF UP72 # COMES HERE ON V72E
059962,000157: 43,3737 13741 TCF V73UPDAT +1
059963,000158:
059964,000159: 43,3740 36244 V73UPDAT CAF UP73 # COMES HERE ON V73E
059965,000160:
059966,000161: 43,3741 55166 +1 TS UPVERBSV # SAVE UPVERB UNTIL IT'S OK TO ENTER P27
059967,000162:
059968,000163: 43,3742 02076 TC TESTXACT # GRAB DISPLAY IF AVAILABLE, OTHERWISE
059969,000164: # TURN*OPERATOR ERROR* ON AND TERMINATEJOB
059970,000165:
059971,000166: 43,3743 31011 CA MODREG # CHECK IF UPDATE ALLOWED
059972,000167: 43,3744 00006 EXTEND # FIRST CHECK FOR MODREG = +0, -0
059973,000168: 43,3745 13750 BZF +3 # (+0 = P00, -0 = FRESHSTART)
059974,000169: 43,3746 04635 UPERROR TC POSTJUMP # TURN ON 'OPERATOR ERROR' LIGHT
059975,000170: 43,3747 11703 CADR UPERROUT +2 # GO TO COMMON UPDATE PROGRAM EXIT
059976,000171:
059977,000172: 43,3750 31011 CAE MODREG # UPDATE ALLOWED.
059978,000173: 43,3751 43,3746 CKMDMORE = UPERROR
059979,000174: 43,3751 55171 TS UPOLDMOD # SAVE CURRENT MAJOR MODE
Page 1382 |
059981,000176: 43,3752 31166 CAE UPVERBSV # SET UPVERB TO INDICATE TO P27
059982,000177:
059983,000178: 43,3753 55172 TS UPVERB # WHICH EXTENDED VERB CALLED IT.
059984,000179:
059985,000180: 43,3754 34753 CAF ONE
059986,000181: 43,3755 55173 TS UPCOUNT # INITIALIZE UPCOUNT TO 1
059987,000182:
059988,000183: 43,3756 04635 TC POSTJUMP # LEAVE EXTENDED VERB BANK AND
059989,000184: 43,3757 11322 CADR UPPART2 # GO TO UPDATE PROGRAM (P27) BANK.
059990,000185:
059991,000186: 43,3760 4755 UP70 EQUALS ZERO
059992,000187: 43,3760 4753 UP71 EQUALS ONE
059993,000188: 43,3760 4752 UP72 EQUALS TWO
059994,000189: 43,3760 6244 UP73 EQUALS THREE
059995,000190:
059996,000191: 04,3322 BANK 04
059997,000192: 04,2000 SETLOC UPDATE2
059998,000193: 04,2000 BANK
059999,000194:
060000,000195: 04,3322 COUNT* $$/P27
060001,000196:
060002,000197: 04,3322 UPPART2 EQUALS # UPDATE PROGRAM - PART 2
060003,000198:
060004,000199: 04,3322 05353 TC PHASCHNG # SET RESTART GROUP 6 TO RESTORE OLD MODE
060005,000200: 04,3323 07026 OCT 07026 # AND DOWNLIST AND EXIT IF RESTART OCCURS.
060006,000201: 04,3324 30000 OCT 30000 # PRIORITY SAME AS CHRPRIO
060007,000202: 04,3325 1174 EBANK= UPBUFF
060008,000203: 04,3325 03633 10102 2CADR UPOUT +1
060009,000204:
060010,000205: 04,3327 34753 CAF ONE
060011,000206: 04,3330 54332 TS DNLSTCOD # DOWNLIST
060012,000207:
060013,000208: 04,3331 05311 TC NEWMODEX # SET MAJOR MODE = 27
060014,000209: 04,3332 00033 DEC 27 B-14
060015,000210:
060016,000211: 04,3333 51172 INDEX UPVERB # BRANCH DEPENDING ON WHETHER THE UPDATE
060017,000212: 04,3334 13335 TCF +1 # VERB REQUIRES A FIXED OR VARIABLE NUMBER
060018,000213: 04,3335 13340 TCF +3 # V70 FIXED. (OF COMPONENTS.
060019,000214: 04,3336 13343 TCF OHWELL1 # V71 VARIABLE - GO GET NO. OF COMPONENTS
060020,000215: 04,3337 13343 TCF OHWELL1 # V72 VARIABLE - GO GET NO. OF COMPONENTS
060021,000216: 04,3340 34752 CA TWO # V73 (AND V70) FIXED
060022,000217: 04,3341 55170 TS COMPNUMB # SET NUMBER OF COMPONENTS TO 2.
060023,000218: 04,3342 13366 TCF OHWELL2 # GO GET THE TWO UPDATE COMPONENTS
060024,000219:
060025,000220: 04,3343 33436 OHWELL1 CAF ADUPBUFF # * REQUEST USER TO SEND NUMBER *
060026,000221: 04,3344 54156 TS MPAC +2 # * OF COMPONENTS PARAMETER(II).*
060027,000222: 04,3345 33437 +2 CAF UPLOADNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
060028,000223: 04,3346 04616 TC BANKCALL # DISPLAY A FLASHING V21N01
Page 1383 |
060030,000225: 04,3347 20212 CADR GOXDSPF # TO REQUEST II.
060031,000226: 04,3350 13633 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN
060032,000227: 04,3351 13345 TCF OHWELL1 +2
060033,000228: 04,3352 03427 TC CK4V32 # DATA OR V32 RETURN
060034,000229: 04,3353 44752 CS BIT2
060035,000230: 04,3354 61174 AD UPBUFF # IS II (NUMBER OF COMPONENTS PARAMETER)
060036,000231: 04,3355 00006 EXTEND # .GE. 3 AND .LE. 20D.
060037,000232: 04,3356 63345 BZMF OHWELL1 +2
060038,000233: 04,3357 41174 CS UPBUFF
060039,000234: 04,3360 64362 AD UP21
060040,000235: 04,3361 00006 EXTEND
060041,000236: 04,3362 63345 BZMF OHWELL1 +2
060042,000237: 04,3363 31174 CAE UPBUFF
060043,000238: 04,3364 55170 TS COMPNUMB # SAVE II IN COMPNUMB
060044,000239:
060045,000240: # UPBUFF LOADING SEQUENCE
060046,000241:
060047,000242: 04,3365 25173 INCR UPCOUNT # INCREMENT COUNT OF COMPONENTS RECEIVED.
060048,000243: 04,3366 33603 OHWELL2 CAF ADUPBFM1 # CALCULATE LOCATION(ECADR) IN UPBUFF
060049,000244: 04,3367 61173 AD UPCOUNT # WHERE NEXT COMPONENT SHOULD BE STORED.
060050,000245: 04,3370 54156 +2 TS MPAC +2 # PLACE ECADR INTO R3.
060051,000246: 04,3371 33437 +3 CAF UPLOADNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
060052,000247: 04,3372 04616 TC BANKCALL # DISPLAY A FLASHING V21N01
060053,000248: 04,3373 20212 CADR GOXDSPF # TO REQUEST DATA.
060054,000249: 04,3374 13633 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN.
060055,000250: 04,3375 13371 TCF OHWELL2 +3 # V33 PROCEED RETURN
060056,000251: 04,3376 03427 TC CK4V32 # DATA OR V32 RETURN
060057,000252: 04,3377 41173 CS UPCOUNT # HAVE WE FINISHED RECEIVING ALL
060058,000253: 04,3400 61170 AD COMPNUMB # THE DATA WE EXPECTED.
060059,000254: 04,3401 00006 EXTEND
060060,000255: 04,3402 63404 BZMF UPVERIFY # YES- GO TO VERIFICATION SEQUENCE
060061,000256: 04,3403 13365 TCF OHWELL2 -1 # NO- REQUEST ADDITIONAL DATA.
060062,000257:
060063,000258: # VERIFY SEQUENCE
060064,000259:
060065,000260: 04,3404 33435 UPVERIFY CAF ADUPTEMP # PLACE ECADR WHERE COMPONENT NO. INDEX
060066,000261: 04,3405 54156 TS MPAC +2 # IS TO BE STORED INTO R3.
060067,000262: 04,3406 33440 CAF UPVRFYNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
060068,000263: 04,3407 04616 TC BANKCALL # DISPLAY A FLASHING V21N02 TO REQUEST
060069,000264: 04,3410 20212 CADR GOXDSPF # DATA CORRECTION OR VERIFICATION.
060070,000265: 04,3411 13633 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN
060071,000266: 04,3412 13441 TCF UPSTORE # V33 DATA SENT IS GOOD. GO STORE IT.
060072,000267: 04,3413 03427 TC CK4V32 # COMPONENT NO. INDEX OR V32 RETURN
060073,000268: 04,3414 31167 CA UPTEMP # DOES THE COMPONENT NO. INDEX JUST SENT
060074,000269: 04,3415 00006 EXTEND # SPECIFY A LEGAL COMPONENT NUMBER?
060075,000270: 04,3416 63404 BZMF UPVERIFY # NO, IT IS NOT POSITIVE NONZERO
060076,000271: 04,3417 41167 CS UPTEMP
060077,000272: 04,3420 61170 AD COMPNUMB
Page 1384 |
060079,000274: 04,3421 64753 AD BIT1
060080,000275: 04,3422 00006 EXTEND
060081,000276: 04,3423 63404 BZMF UPVERIFY # NO
060082,000277: 04,3424 33603 CAF ADUPBFM1 # YES- BASED ON THE COMPONENT NO. INDEX
060083,000278: 04,3425 61167 AD UPTEMP # CALCULATE THE ECADR OF LOCATION IN
060084,000279: 04,3426 13370 TCF OHWELL2 +2 # UPBUFF WHICH USER WANTS TO CHANGE.
060085,000280:
060086,000281: 04,3427 04,3633 UPOUT4 EQUALS UPOUT +1 # COMES HERE ON V34 TO TERMINATE UPDATE
060087,000282:
060088,000283: # CHECK FOR VERB 32 SEQUENCE
060089,000284:
060090,000285: 04,3427 40154 CK4V32 CS MPAC # ON DATA RETURN FROM 'GOXDSPF'
060091,000286: 04,3430 74746 MASK BIT6 # ON DATA RETURN FROM "GOXDSP"& THE CON-
060092,000287: 04,3431 10000 CCS A # TENTS OF MPAC = VERB. SO TEST FOR V32.
060093,000288: 04,3432 00002 TC Q # IT'S NOT A V32, IT'S DATA. PROCEED.
060094,000289: 04,3433 50002 INDEX Q
060095,000290: 04,3434 77771 TC 0 -6 # V32 ENCOUNTERED - GO BACK AND GET DATA
060096,000291:
060097,000292: 04,3435 01167 ADUPTEMP ADRES UPTEMP # ADDRESS OF TEMP STORAGE FOR CORRECTIONS
060098,000293: 04,3436 01174 ADUPBUFF ADRES UPBUFF # ADDRESS OF UPDATE DATA STORAGE BUFFER
060099,000294: 04,3437 05201 UPLOADNV VN 2101 # VERB 21 NOUN 01
060100,000295: 04,3440 05202 UPVRFYNV VN 2102 # VERB 21 NOUN 02
060101,000296: 04,3441 4362 UP21 = MD1 # DEC 21 = MAX NO OF COMPONENTS +1
060102,000297: 04,3441 4756 UPDTPHAS EQUALS FIVE
060103,000298:
060104,000299: # PRE-STORE AND FAN TO APPROPRIATE BRANCH SEQUENCE
060105,000300:
060106,000301: 04,3441 UPSTORE EQUALS # GROUND HAS VERIFIED UPDATE. STORE DATA.
060107,000302:
060108,000303: 04,3441 00004 INHINT
060109,000304:
060110,000305: 04,3442 30103 CAE FLAGWRD7 # INVERT VERIFLAG(BIT 3 OF FLAGWRD7) TO
060111,000306: 04,3443 56001 XCH L # INDICATE TO THE GROUND(VIA DOWNLINK)
060112,000307: 04,3444 34751 CAF VERIFBIT # THAT THE V33 (WHICH THE GROUND SENT TO
060113,000308: 04,3445 00006 EXTEND # VERIFY THE UPDATE) HAS BEEN SUCCESSFULLY
060114,000309: 04,3446 06001 RXOR LCHAN # RECEIVED BY THE UPDATE PROGRAM
060115,000310: 04,3447 54103 TS FLAGWRD7
060116,000311:
060117,000312: 04,3450 05353 TC PHASCHNG # SET RESTART GROUP 6 TO REDO THE UPDATE
060118,000313: 04,3451 04026 OCT 04026 # DATA STORE IF A RESTART OCCURS.
060119,000314: 04,3452 00004 INHINT # (BECAUSE PHASCHNG DID A RELINT)
060120,000315:
060121,000316: 04,3453 44752 CS TWO # GO TO UPFNDVAC IF INSTALL IS REQUIRED,
060122,000317: 04,3454 61172 AD UPVERB # THAT IS, IF IT'S A V70 - V72.
060123,000318: 04,3455 00006 EXTEND # GO TO UPEND73 IF IT'S A V73.
060124,000319: 04,3456 63465 BZMF UPFNDVAC
060125,000320:
060126,000321: # VERB 73 BRANCH
Page 1385 |
060128,000323: 04,3457 00006 UPEND73 EXTEND # V73-PERFORM DP OCTAL AGC CLOCK INCREMENT
060129,000324:
060130,000325: 04,3460 31175 DCA UPBUFF
060131,000326: 04,3461 53205 DXCH UPBUFF +8D
060132,000327: 04,3462 03510 TC TIMEDIDL
060133,000328: 04,3463 04364 TC FALTON # ERROR- TURN ON *OPERATOR ERROR* LIGHT
060134,000329: 04,3464 03633 TC UPOUT +1 # GO TO COMMON UPDATE PROGRAM EXIT
060135,000330:
060136,000331: 04,3465 34355 UPFNDVAC CAF CHRPRIO # (USE EXTENDED VERB PRIORITY)
060137,000332: 04,3466 05105 TC FINDVAC # GET VAC AREA FOR 'CALL INTSTALL'
060138,000333: 04,3467 E3,1706 EBANK= TEPHEM
060139,000334: 04,3467 03472 10103 2CADR UPJOB # (NOTE: THIS WILL ALSO SET EBANK FOR
060140,000335:
060141,000336: 04,3471 05155 TC ENDOFJOB # 'TEPHEM' UPDATE BY V70)
060142,000337:
060143,000338: 04,3472 06036 UPJOB TC INTPRET # THIS COULD BE A STATE VECTOR UPDATE--SO
060144,000339: 04,3473 77624 CALL # WAIT(PUT JOB TO SLEEP) IF ORBIT INT(OI)
060145,000340: 04,3474 27412 INTSTALL # IS IN PROGRESS--OR--GRAB OI AND RETURN
060146,000341: # TO UPWAKE IF OI IS NOT IN PROGRESS.
060147,000342:
060148,000343: 04,3475 77776 UPWAKE EXIT
060149,000344:
060150,000345: 04,3476 05353 TC PHASCHNG # RESTART PROTECT(GROUP 6)
060151,000346: 04,3477 04026 OCT 04026
060152,000347:
060153,000348: 04,3500 05504 TC UPFLAG # SET INTEGRATION RESTART BIT
060154,000349: 04,3501 00236 ADRES REINTFLG
060155,000350: 04,3502 00004 INHINT
060156,000351: 04,3503 UPPART3 EQUALS
060157,000352:
060158,000353: 04,3503 51172 INDEX UPVERB # BRANCH TO THE APPROPRIATE UPDATE VERB
060159,000354: 04,3504 13505 TCF +1 # ROUTINE TO ACTUALLY PERFORM THE UPDATE
060160,000355: 04,3505 13644 TCF UPEND70 # V70
060161,000356: 04,3506 13553 TCF UPEND71 # V71
060162,000357: 04,3507 13605 TCF UPEND72 # V72
060163,000358:
060164,000359: # ROUTINE TO INCREMENT CLOCK(TIME2,TIME1) WITH CONTENTS OF DP WORD AT UPBUFF.
060165,000360:
060166,000361: 04,3510 00006 TIMEDIDL EXTEND
060167,000362: 04,3511 23167 QXCH UPTEMP # SAVE Q FOR RETURN
060168,000363: 04,3512 34755 CAF ZERO # ZERO AND SAVE TIME2,TIME1
060169,000364: 04,3513 22007 ZL
060170,000365: 04,3514 52025 DXCH TIME2
060171,000366: 04,3515 53217 DXCH UPBUFF +18D # STORE IN CASE OF OVERFLOW
060172,000367:
060173,000368: 04,3516 34756 CAF UPDTPHAS # DO
060174,000369: 04,3517 54001 TS L # A
060175,000370: 04,3520 40000 COM # QUICK
060176,000371: 04,3521 52765 DXCH -PHASE6 # PHASCHNG
Page 1386 |
060178,000373: 04,3522 00004 TIMEDIDR INHINT
060179,000374:
060180,000375: 04,3523 34755 CAF ZERO
060181,000376: 04,3524 22007 ZL # PICK UP INCREMENTER(AND ZERO
060182,000377: 04,3525 54156 TS MPAC +2 # IT IN CASE OF RESTARTS) AND
060183,000378: 04,3526 53205 DXCH UPBUFF +8D # STORE IT
060184,000379: 04,3527 52155 DXCH MPAC # INTO MPAC FOR TPAGREE.
060185,000380:
060186,000381: 04,3530 00006 EXTEND
060187,000382: 04,3531 31217 DCA UPBUFF +18D
060188,000383: 04,3532 20155 DAS MPAC # FORM SUM IN MPAC
060189,000384: 04,3533 00006 EXTEND
060190,000385: 04,3534 13543 BZF DELTATOK # TEST FOR OVERFLOW
060191,000386: 04,3535 34755 CAF ZERO
060192,000387: 04,3536 53217 DXCH UPBUFF +18D # OVERFLOW, RESTORE OLD VALUE OF CLOCK
060193,000388: 04,3537 20025 DAS TIME2 # AND TURN ON OPERATOR ERROR
060194,000389:
060195,000390: 04,3540 05353 TC PHASCHNG # RESTART PROTECT(GROUP 6)
060196,000391: 04,3541 04026 OCT 04026
060197,000392:
060198,000393: 04,3542 01167 TC UPTEMP # GO TO ERROR EXIT
060199,000394:
060200,000395: 04,3543 07256 DELTATOK TC TPAGREE # FORCE SIGN AGREEMENT
060201,000396: 04,3544 52155 DXCH MPAC
060202,000397: 04,3545 20025 DAS TIME2 # INCREMENT TIME2,TIME1
060203,000398:
060204,000399: 04,3546 05353 TC PHASCHNG # RESTART PROTECT(GROUP 6)
060205,000400: 04,3547 04026 OCT 04026
060206,000401:
060207,000402: 04,3550 00004 INHINT
060208,000403: 04,3551 51167 INDEX UPTEMP # (CODED THIS WAY FOR RESTART PROTECTION)
060209,000404: 04,3552 00001 TC 1 # NORMAL RETURN
060210,000405:
060211,000406: # VERB 71 BRANCH
060212,000407:
060213,000408: 04,3553 31175 UPEND71 CAE UPBUFF +1 # SET EBANK
060214,000409: 04,3554 54003 TS EBANK # AND
060215,000410: 04,3555 74357 MASK LOW8 # CALCULATE
060216,000411: 04,3556 55167 TS UPTEMP # S-REG VALUE OF RECEIVING AREA
060217,000412:
060218,000413: 04,3557 67744 AD NEG3 # IN THE PROCESS OF
060219,000414: 04,3560 61170 AD COMPNUMB # PERFORMING
060220,000415: 04,3561 00006 EXTEND # THIS UPDATE
060221,000416: 04,3562 13570 BZF STORLP71 # WILL WE
060222,000417: 04,3563 74743 MASK BIT9 # OVERFLOW
060223,000418: 04,3564 10000 CCS A # INTO THE NEXT EBANK....
060224,000419: 04,3565 13701 TCF UPERROUT # YES
060225,000420:
060226,000421: 04,3566 37744 CA NEG3 # NO- CALCULATE NUMBER OF
060227,000422: 04,3567 61170 AD COMPNUMB # WORDS TO BE STORED MINUS ONE
060228,000423: 04,3570 54154 STORLP71 TS MPAC # SAVE NO. OF WORDS REMAINING MINUS ONE
Page 1387 |
060230,000425: 04,3571 50000 INDEX A # TAKE NEXT UPDATE WORD FROM
060231,000426: 04,3572 31176 CA UPBUFF +2 # UPBUFF AND
060232,000427: 04,3573 54001 TS L # SAVE IT IN L
060233,000428: 04,3574 30154 CA MPAC # CALCULATE NEXT
060234,000429: 04,3575 61167 AD UPTEMP # RECEIVING ADDRESS
060235,000430: 04,3576 50000 INDEX A
060236,000431: 04,3577 E3,1400 EBANK= 1400
060237,000432: 04,3577 23400 LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
060238,000433: 04,3600 E3,1706 EBANK= TEPHEM
060239,000434: 04,3600 10154 CCS MPAC # ARE THERE ANY WORDS LEFT TO BE STORED
060240,000435: 04,3601 13570 TCF STORLP71 # YES
060241,000436: 04,3602 13632 TCF UPOUT # NO- THEN EXIT UPDATE PROGRAM
060242,000437: 04,3603 01173 ADUPBFM1 ADRES UPBUFF -1 # SAME AS ADUPBUFF BUT LESS 1 (DON'T MOVE)
060243,000438: 04,3604 13632 TCF UPOUT # NO- EXIT UPDATE(HERE WHEN COMPNUMB = 3)
060244,000439:
060245,000440: # VERB 72 BRANCH
060246,000441:
060247,000442: 04,3605 34753 UPEND72 CAF BIT1 # HAVE AN ODD NO. OF COMPONENTS
060248,000443: 04,3606 71170 MASK COMPNUMB # BEEN SENT FOR A V72 UPDATE ...
060249,000444: 04,3607 10000 CCS A
060250,000445: 04,3610 13612 TCF +2 # YES
060251,000446: 04,3611 13701 TCF UPERROUT # ERROR- SHOULD BE ODD NO. OF COMPONENTS
060252,000447: 04,3612 44752 CS BIT2
060253,000448: 04,3613 61170 AD COMPNUMB
060254,000449: 04,3614 54154 LDLOOP72 TS MPAC # NOW PERFORM THE UPDATE
060255,000450: 04,3615 50000 INDEX A
060256,000451: 04,3616 31175 CAE UPBUFF +1 # PICK UP NEXT UPDATE WORD
060257,000452: 04,3617 22000 LXCH A
060258,000453: 04,3620 10154 CCS MPAC # SET POINTER TO ECADR (MUST BE CCS)
060259,000454: 04,3621 54154 TS MPAC
060260,000455: 04,3622 50000 INDEX A
060261,000456: 04,3623 31175 CAE UPBUFF +1 # PICK UP NEXT ECADR OF REG TO BE UPDATED
060262,000457: 04,3624 54003 TS EBANK # SET EBANK
060263,000458: 04,3625 74357 MASK LOW8 # ISOLATE RELATIVE ADDRESS
060264,000459: 04,3626 50000 INDEX A
060265,000460: 04,3627 E3,1400 EBANK= 1400
060266,000461: 04,3627 23400 LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
060267,000462: 04,3630 E3,1706 EBANK= TEPHEM
060268,000463: 04,3630 10154 CCS MPAC # ARE WE THROUGH THE V72 UPDATE...
060269,000464: 04,3631 13614 TCF LDLOOP72 # NO
060270,000465:
060271,000466: # NORMAL FINISH OF P27
060272,000467:
060273,000468: 04,3632 UPOUT EQUALS
060274,000469: 04,3632 03106 TC INTWAKEU # RELEASE GRAB OF ORBITAL INTEGRATION
060275,000470: 04,3633 31171 +1 CAE UPOLDMOD # RESTORE PRIOR P27 MODE
060276,000471: 04,3634 05314 TC NEWMODEX +3
060277,000472: 04,3635 34755 CAF ZERO
Page 1388 |
060279,000474: 04,3636 54332 TS DNLSTCOD
060280,000475: 04,3637 03706 TC UPACTOFF # TURN OFF 'UPLINK ACTIVITY' LIGHT
060281,000476:
060282,000477: 04,3640 00006 EXTEND # KILL GROUP 6.
060283,000478: 04,3641 34755 DCA NEG0
060284,000479: 04,3642 52765 DXCH -PHASE6
060285,000480:
060286,000481: 04,3643 05472 TC ENDEXT # EXTENDED VERB EXIT
060287,000482:
060288,000483: # VERB 70 BRANCH
060289,000484:
060290,000485: 04,3644 00006 UPEND70 EXTEND # V70 DOES THE FOLLOWING WITH DP DELTA
060291,000486: 04,3645 41175 DCS UPBUFF # TIME IN UPBUFF
060292,000487: 04,3646 53205 DXCH UPBUFF +8D
060293,000488: 04,3647 03510 TC TIMEDIDL # DECREMENT AGC CLOCK
060294,000489:
060295,000490: 04,3650 03701 TC UPERROUT # ERROR WHILE DECREMENTING CLOCK -- EXIT
060296,000491:
060297,000492: 04,3651 E3,1706 EBANK= TEPHEM
060298,000493: 04,3651 00006 EXTEND
060299,000494: 04,3652 41175 DCS UPBUFF # COPY DECREMENTERS FOR
060300,000495: 04,3653 53207 DXCH UPBUFF +10D # RESTART PROTECTION
060301,000496: 04,3654 00006 EXTEND
060302,000497: 04,3655 41175 DCS UPBUFF
060303,000498: 04,3656 53211 DXCH UPBUFF +12D
060304,000499:
060305,000500: 04,3657 05353 TC PHASCHNG # RESTART PROTECT(GROUP 6)
060306,000501: 04,3660 04026 OCT 04026
060307,000502:
060308,000503: 04,3661 34755 CAF ZERO
060309,000504: 04,3662 22007 ZL
060310,000505: 04,3663 53207 DXCH UPBUFF +10D # DECREMENT CSM STATE VECTOR TIME
060311,000506: 04,3664 21571 DAS TETCSM
060312,000507:
060313,000508: 04,3665 34755 CAF ZERO
060314,000509: 04,3666 22007 ZL
060315,000510: 04,3667 53211 DXCH UPBUFF +12D # DECREMENT LEM STATE VECTOR TIME
060316,000511: 04,3670 21643 DAS TETLEM
060317,000512:
060318,000513: 04,3671 34755 CAF ZERO
060319,000514: 04,3672 22007 ZL
060320,000515: 04,3673 53175 DXCH UPBUFF
060321,000516: 04,3674 21710 DAS TEPHEM +1 # INCREMENT TP TEPHEM
060322,000517: 04,3675 27706 ADS TEPHEM
060323,000518:
060324,000519: 04,3676 05353 TC PHASCHNG # RESTART PROTECT(GROUP 6)
060325,000520: 04,3677 04026 OCT 04026
060326,000521:
060327,000522: 04,3700 1174 EBANK= UPBUFF
Page 1389 |
060329,000524: 04,3700 03632 TC UPOUT # GO TO STANDARD UPDATE PROGRAM EXIT
060330,000525:
060331,000526:
060332,000527: # ERROR SEQUENCE
060333,000528:
060334,000529: 04,3701 04364 UPERROUT TC FALTON # TURN ON *OPERATOR ERROR* LIGHT
060335,000530: 04,3702 13632 TCF UPOUT # GO TO COMMON UPDATE PROGRAM EXIT
060336,000531:
060337,000532: 04,3703 04364 +2 TC FALTON # TURN ON 'OPERATOR ERROR' LIGHT
060338,000533: 04,3704 03706 TC UPACTOFF # TURN OFF'UPLINK ACTIVITY'LIGHT
060339,000534: 04,3705 05472 TC ENDEXT # EXTENDED VERB EXIT
060340,000535: # (THE PURPOSE OF UPERROUT +2 EXIT IS
060341,000536: # TO PROVIDE AN ERROR EXIT WHICH DOES NOT
060342,000537: # RESET ANY RESTART GROUPS)
060343,000538:
060344,000539: # :UPACTOFF: IS A ROUTINE TO TURN OFF UPLINK ACTIVITY LIGHT ON ALL EXITS FROM UPDATE PROGRAM (P27).
060345,000540:
060346,000541: 04,3706 44751 UPACTOFF CS BIT3
060347,000542: 04,3707 00006 EXTEND # TURN OFF UPLINK ACTIVITY LIGHT
060348,000543: 04,3710 03011 WAND DSALMOUT # (BIT 3 OF CHANNEL 11)
060349,000544: 04,3711 00002 TC Q
060350,000545:
End of include-file UPDATE_PROGRAM.agc. Parent file is MAIN.agc