Source Code
|
These source-code files are part of a reconstructed copy of LUM69 Revision 2, the
flown Apollo 10 Lunar Module (LM) Apollo Guidance Computer (AGC) software.
The reconstruction began with source code of Luminary 69 revision 0 previously transcribed from a digitized copy of that program. The code was then updated by back-porting the R-2 lunar potential model from previously-transcribed source code of Luminary 99. These required changes were described in the original Luminary memos 75 and 78. The reconstructed code was verified by matching memory-bank checksums to those listed in drawing 2021152G. Note that page numbers in the reconstructed code match those on the Luminary 069 printout, although the added code would likely have changed page numbers for a real LUM69 Revision 2 listing. Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository. |
059316,000002: ## Copyright: Public domain.
059317,000003: ## Filename: UPDATE_PROGRAM.agc
059318,000004: ## Purpose: A section of LUM69 revision 2.
059319,000005: ## It is part of the reconstructed source code for the flown
059320,000006: ## version of the flight software for the Lunar Module's (LM)
059321,000007: ## Apollo Guidance Computer (AGC) for Apollo 10. The code has
059322,000008: ## been recreated from a copy of Luminary revsion 069, using
059323,000009: ## changes present in Luminary 099 which were described in
059324,000010: ## Luminary memos 75 and 78. The code has been adapted such
059325,000011: ## that the resulting bugger words exactly match those specified
059326,000012: ## for LUM69 revision 2 in NASA drawing 2021152B, which gives
059327,000013: ## relatively high confidence that the reconstruction is correct.
059328,000014: ## Reference: pp. 1379-1389
059329,000015: ## Assembler: yaYUL
059330,000016: ## Contact: Ron Burkey <info@sandroid.org>.
059331,000017: ## Website: www.ibiblio.org/apollo/index.html
059332,000018: ## Mod history: 2019-07-27 MAS Created from Luminary 69.
059333,000019:
|
Page 1379 |
059335,000021: # PROGRAM NAME: P27
059336,000022: # WRITTEN BY: KILROY/ DE WOLF
059337,000023:
059338,000024: # MOD NO: 6
059339,000025: # MOD BY: KILROY
059340,000026: # DATE: 01DEC67
059341,000027:
059342,000028: # LOG SECTION: UPDATE PROGRAM.
059343,000029:
059344,000030: # FUNCT. DESCR: P27 (THE UPDATE PROGRAM) PROCESSES COMMANDS AND DATA
059345,000031: # INSERTIONS REQUESTED BY THE GROUND VIA UPLINK.
059346,000032: # THE P27 PROGRAM WILL ACCEPT UPDATES
059347,000033: # ONLY DURING P00 FOR THE LM, AND ONLY DURING P00,
059348,000034: # P02, AND FRESH START FOR THE CSM
059349,000035:
059350,000036: # CALLING SEQ: PROGRAM IS INITIATED BY UPLINK ENTRY OF VERBS 70, 71, 72 AND 73.
059351,000037:
059352,000038: # SUBROUTINES: TESTXACT, NEWMODEX, NEWMODEX +3, GOXDSPF, BANKCALL, FINDVAC, INTPRET, INTSTALL, TPAGREE,
059353,000039: # INTWAKEU, ENDEXT, POSTJUMP, FALTON, NEWPHASE, PHASCHNG
059354,000040:
059355,000041: # NORMAL EXIT: TC ENDEXT
059356,000042:
059357,000043: # ALARM/ABORT: TC FALTON FOLLOWED BY TC ENDEXT
059358,000044:
059359,000045: # RESTARTS: P27 IS RESTART PROTECTED IN TWO WAYS...
059360,000046: # 1. PRIOR TO VERIFLAG INVERSION(WHICH IS CAUSED BY THE GROUND/ASTRONAUT'S VERIFICATION OF UPDATE
059361,000047: # DATA BY SENDING A V33E WHEN V21N02 IS FLASHING)---
059362,000048: # NO PROTECTION EXCEPT PRE-P27 MODE IS RESTORED, COAST + ALIGN DOWNLIST IS SELECTED AND UPLINK
059363,000049: # ACTIVITY LIGHT IS TURNED OFF.(JUST AS IF A V34E WAS SENT DURING P27 DATA LOADS).
059364,000050: # V70,V71,V72 OR V73 WILL HAVE TO BE COMPLETELY RESENT BY USER.
059365,000051: # 2. AFTER VERIFLAG INVERSION(WHEN UPDATE OF THE SPECIFIED ERASABLES IS BEING PERFORMED)---
059366,000052: # PROTECTED AGAINST RESTARTS.
059367,000053:
059368,000054: # DEBRIS: UPBUFF (20D) TEMP STORAGE FOR ADDRESSES AND CONTENTS.
059369,000055: # UPVERB (1) VERB NUMBER MINUS 70D (E.G. FOR V72, UPVERB = 72D - 70D = 2)
059370,000056: # UPOLDMOD (1) FOR MAJOR MODE INTERRUPTED BY P27.
059371,000057: # COMPNUMB (1) TOTAL NUMBER OF COMPONENTS TO BE TRANSMITTED.
059372,000058: # UPCOUNT (1) ACTUAL NUMBER OF COMPONENTS RECEIVED.
059373,000059: # UPTEMP (1) SCRATCH, BUT USUALLY CONTAINS COMPONENT NUMBER TO BE CHANGED DURING VERIFY CYCLE
059374,000060:
059375,000061: # INPUT:
059376,000062:
059377,000063: # ENTRY: DESCRIPTION
059378,000064:
059379,000065: # V70EXXXXXEXXXXXE (LIFTOFF TIME INCREMENT) DOUBLE PRECISION OCTAL TIME INCREMENT, XXXXX XXXXX,
059380,000066: # IS ADDED TO TEPHEM, SUBTRACTED FROM AGC CLOCK(TIME2,TIME1), SUBTRACTED FROM CSM STATE
059381,000067: # VECTOR TIME(TETCSM) AND SUBTRACTED FROM LEM STATE VECTOR TIME(TETLEM).
059382,000068: # THE DP OCTAL TIME INCREMENT IS SCALED AT 2(28).
|
Page 1380 |
059384,000070: # V71EIIEAAAAE (CONTIGUOUS BLOCK UPDATE) II-2 OCTAL COMPONENTS,XXXXX,
059385,000071: # XXXXXE ARE LOADED INTO ERASABLE STARTING AT ECADR, AAAA.
059386,000072: # XXXXXE IT IS .GE. 3 .AND. .LE. 20D.,
059387,000073: # AND (AAAA + II -3) DOES NOT PRODUCE AN ADDRESS IN THE
059388,000074: # 9 NEXT BANK
059389,000075: # . SCALING IS SAME AS INTERNAL REGISTERS.
059390,000076:
059391,000077: # V72EIIE (SCATTER UPDATE) (II-1)/2 OCTAL COMPONENTS,XXXXX, ARE
059392,000078: # AAAAEXXXXXE LOADED INTO ERASABLE LOCATIONS, AAAA.
059393,000079: # AAAAEXXXXXE II IS .GE. 3 .AND. .LE. 19D, AND MUST BE ODD.
059394,000080: # . SCALING IS SAME AS INTERNAL REGISTERS.
059395,000081:
059396,000082: # V73EXXXXXEXXXXXE (OCTAL CLOCK INCREMENT) DOUBLE PRECISION OCTAL TIME
059397,000083: # INCREMENT XXXXX XXXXX, IS ADDED TO THE AGC CLOCK, IN
059398,000084: # CENTISECONDS SCALED AT (2)28.
059399,000085: # THIS LOAD IS THE OCTAL EQUIVALENT OF V55.
059400,000086:
059401,000087: # OUTPUT: IN ADDITION TO THE ABOVE REGISTER LOADS, ALL UPDATES
059402,000088: # COMPLEMENT BIT3 OF FLAGWORD7.
059403,000089:
059404,000090: # ADDITIONAL NOTES: VERB 71, JUST DEFINED ABOVE WILL BE USED TO PERFORM BUT NOT LIMITED TO THE FOLLOWING UPDATES--
059405,000091: # 1. CSM/LM STATE VECTOR UPDATE
059406,000092: # 2. REFSMMAT UPDATE
059407,000093:
059408,000094: # THE FOLLOWING COMMENTS DELINEATE EACH SPECIAL UPDATE----
059409,000095:
059410,000096: # 1. CSM/LM STATE VECTOR UPDATE (ALL DATA ENTRIES IN OCTAL)
059411,000097:
059412,000098: # ENTRIES: DATA DEFINITION: SCALE FACTORS:
059413,000099: # V71E CONTIGUOUS BLOCK UPDATE VERB
059414,000100: # 21E NUMBER OF COMPONENTS FOR STATE VECTOR UPDATE
059415,000101: # AAAAE ECADR OF 'UPSVFLAG'
059416,000102: # XXXXXE STATE VECTOR IDENTIFIER: 00001 FOR CSM, 77776 FOR LEM - EARTH SPHERE OF INFLUENCE SCALING
059417,000103: # 00002 FOR CSM, 77775 FOR LEM - LUNAR SPHERE OF INFLUENCE SCALING
059418,000104: # XXXXXEXXXXXE X POSITION
059419,000105: # XXXXXEXXXXXE Y POSITION
059420,000106: # XXXXXEXXXXXE Z POSITION
059421,000107: # XXXXXEXXXXXE X VELOCITY
059422,000108: # XXXXXEXXXXXE Y VELOCITY
059423,000109: # XXXXXEXXXXXE Z VELOCITY
059424,000110: # XXXXXEXXXXXE TIME FROM AGC CLOCK ZERO
059425,000111: # V33E VERB 33 TO SIGNAL THAT THE STATE VECTOR IS READY TO BE STORED.
059426,000112:
059427,000113: # 2. REFSMMAT(ALL DATA ENTRIES IN OCTAL)
059428,000114: # ENTRIES: DATA DEFINITIONS: SCALE FACTORS:
|
Page 1381 |
059430,000116: # V71E CONTIGUOUS BLOCK UPDATE VERB
059431,000117: # 24E NUMBER OF COMPONENTS FOR REFSMMAT UPDATE
059432,000118: # AAAAE ECADR OF 'REFSMMAT'
059433,000119: # XXXXXEXXXXXE ROW 1 COLUMN 1 2(-1)
059434,000120: # XXXXXEXXXXXE ROW 1 COLUMN 2 2(-1)
059435,000121: # XXXXXEXXXXXE ROW 1 COLUMN 3 2(-1)
059436,000122: # XXXXXEXXXXXE ROW 2 COLUMN 1 2(-1)
059437,000123: # XXXXXEXXXXXE ROW 2 COLUMN 2 2(-1)
059438,000124: # XXXXXEXXXXXE ROW 2 COLUMN 3 2(-1)
059439,000125: # XXXXXEXXXXXE ROW 3 COLUMN 1 2(-1)
059440,000126: # XXXXXEXXXXXE ROW 3 COLUMN 2 2(-1)
059441,000127: # XXXXXEXXXXXE ROW 3 COLUMN 3 2(-1)
059442,000128: # V33E VERB 33 TO SIGNAL THAT REFSMMAT IS READY TO BE STORED.
059443,000129:
059444,000130:
059445,000131: 07,3746 BANK 07
059446,000132: 43,2000 SETLOC EXTVERBS
059447,000133: 43,2000 BANK
059448,000134:
059449,000135: 43,3732 E3,1706 EBANK= TEPHEM
059450,000136:
059451,000137: 43,3732 COUNT* $$/P27
059452,000138: 43,3732 34755 V70UPDAT CAF UP70 # COMES HERE ON V70E
059453,000139: 43,3733 13741 TCF V73UPDAT +1
059454,000140:
059455,000141: 43,3734 34753 V71UPDAT CAF UP71 # COMES HERE ON V71E
059456,000142: 43,3735 13741 TCF V73UPDAT +1
059457,000143:
059458,000144: 43,3736 34752 V72UPDAT CAF UP72 # COMES HERE ON V72E
059459,000145: 43,3737 13741 TCF V73UPDAT +1
059460,000146:
059461,000147: 43,3740 36244 V73UPDAT CAF UP73 # COMES HERE ON V73E
059462,000148:
059463,000149: 43,3741 55166 +1 TS UPVERBSV # SAVE UPVERB UNTIL IT'S OK TO ENTER P27
059464,000150:
059465,000151: 43,3742 02076 TC TESTXACT # GRAB DISPLAY IF AVAILABLE, OTHERWISE
059466,000152: # TURN*OPERATOR ERROR* ON AND TERMINATEJOB
059467,000153:
059468,000154: 43,3743 31011 CA MODREG # CHECK IF UPDATE ALLOWED
059469,000155: 43,3744 00006 EXTEND # FIRST CHECK FOR MODREG = +0, -0
059470,000156: 43,3745 13750 BZF +3 # (+0 = P00, -0 = FRESHSTART)
059471,000157: 43,3746 04635 UPERROR TC POSTJUMP # TURN ON 'OPERATOR ERROR' LIGHT
059472,000158: 43,3747 11703 CADR UPERROUT +2 # GO TO COMMON UPDATE PROGRAM EXIT
059473,000159:
059474,000160: 43,3750 31011 CAE MODREG # UPDATE ALLOWED.
059475,000161: 43,3751 43,3746 CKMDMORE = UPERROR
059476,000162: 43,3751 55171 TS UPOLDMOD # SAVE CURRENT MAJOR MODE
|
Page 1382 |
059478,000164: 43,3752 31166 CAE UPVERBSV # SET UPVERB TO INDICATE TO P27
059479,000165:
059480,000166: 43,3753 55172 TS UPVERB # WHICH EXTENDED VERB CALLED IT.
059481,000167:
059482,000168: 43,3754 34753 CAF ONE
059483,000169: 43,3755 55173 TS UPCOUNT # INITIALIZE UPCOUNT TO 1
059484,000170:
059485,000171: 43,3756 04635 TC POSTJUMP # LEAVE EXTENDED VERB BANK AND
059486,000172: 43,3757 11322 CADR UPPART2 # GO TO UPDATE PROGRAM (P27) BANK.
059487,000173:
059488,000174: 43,3760 4755 UP70 EQUALS ZERO
059489,000175: 43,3760 4753 UP71 EQUALS ONE
059490,000176: 43,3760 4752 UP72 EQUALS TWO
059491,000177: 43,3760 6244 UP73 EQUALS THREE
059492,000178:
059493,000179: 04,3322 BANK 04
059494,000180: 04,2000 SETLOC UPDATE2
059495,000181: 04,2000 BANK
059496,000182:
059497,000183: 04,3322 COUNT* $$/P27
059498,000184:
059499,000185: 04,3322 UPPART2 EQUALS # UPDATE PROGRAM - PART 2
059500,000186:
059501,000187: 04,3322 05353 TC PHASCHNG # SET RESTART GROUP 6 TO RESTORE OLD MODE
059502,000188: 04,3323 07026 OCT 07026 # AND DOWNLIST AND EXIT IF RESTART OCCURS.
059503,000189: 04,3324 30000 OCT 30000 # PRIORITY SAME AS CHRPRIO
059504,000190: 04,3325 1174 EBANK= UPBUFF
059505,000191: 04,3325 03633 10102 2CADR UPOUT +1
059506,000192:
059507,000193: 04,3327 34753 CAF ONE
059508,000194: 04,3330 54332 TS DNLSTCOD # DOWNLIST
059509,000195:
059510,000196: 04,3331 05311 TC NEWMODEX # SET MAJOR MODE = 27
059511,000197: 04,3332 00033 DEC 27 B-14
059512,000198:
059513,000199: 04,3333 51172 INDEX UPVERB # BRANCH DEPENDING ON WHETHER THE UPDATE
059514,000200: 04,3334 13335 TCF +1 # VERB REQUIRES A FIXED OR VARIABLE NUMBER
059515,000201: 04,3335 13340 TCF +3 # V70 FIXED. (OF COMPONENTS.
059516,000202: 04,3336 13343 TCF OHWELL1 # V71 VARIABLE - GO GET NO. OF COMPONENTS
059517,000203: 04,3337 13343 TCF OHWELL1 # V72 VARIABLE - GO GET NO. OF COMPONENTS
059518,000204: 04,3340 34752 CA TWO # V73 (AND V70) FIXED
059519,000205: 04,3341 55170 TS COMPNUMB # SET NUMBER OF COMPONENTS TO 2.
059520,000206: 04,3342 13366 TCF OHWELL2 # GO GET THE TWO UPDATE COMPONENTS
059521,000207:
059522,000208: 04,3343 33436 OHWELL1 CAF ADUPBUFF # * REQUEST USER TO SEND NUMBER *
059523,000209: 04,3344 54156 TS MPAC +2 # * OF COMPONENTS PARAMETER(II).*
059524,000210: 04,3345 33437 +2 CAF UPLOADNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
059525,000211: 04,3346 04616 TC BANKCALL # DISPLAY A FLASHING V21N01
|
Page 1383 |
059527,000213: 04,3347 20212 CADR GOXDSPF # TO REQUEST II.
059528,000214: 04,3350 13633 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN
059529,000215: 04,3351 13345 TCF OHWELL1 +2
059530,000216: 04,3352 03427 TC CK4V32 # DATA OR V32 RETURN
059531,000217: 04,3353 44752 CS BIT2
059532,000218: 04,3354 61174 AD UPBUFF # IS II (NUMBER OF COMPONENTS PARAMETER)
059533,000219: 04,3355 00006 EXTEND # .GE. 3 AND .LE. 20D.
059534,000220: 04,3356 63345 BZMF OHWELL1 +2
059535,000221: 04,3357 41174 CS UPBUFF
059536,000222: 04,3360 64362 AD UP21
059537,000223: 04,3361 00006 EXTEND
059538,000224: 04,3362 63345 BZMF OHWELL1 +2
059539,000225: 04,3363 31174 CAE UPBUFF
059540,000226: 04,3364 55170 TS COMPNUMB # SAVE II IN COMPNUMB
059541,000227:
059542,000228: # UPBUFF LOADING SEQUENCE
059543,000229:
059544,000230: 04,3365 25173 INCR UPCOUNT # INCREMENT COUNT OF COMPONENTS RECEIVED.
059545,000231: 04,3366 33603 OHWELL2 CAF ADUPBFM1 # CALCULATE LOCATION(ECADR) IN UPBUFF
059546,000232: 04,3367 61173 AD UPCOUNT # WHERE NEXT COMPONENT SHOULD BE STORED.
059547,000233: 04,3370 54156 +2 TS MPAC +2 # PLACE ECADR INTO R3.
059548,000234: 04,3371 33437 +3 CAF UPLOADNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
059549,000235: 04,3372 04616 TC BANKCALL # DISPLAY A FLASHING V21N01
059550,000236: 04,3373 20212 CADR GOXDSPF # TO REQUEST DATA.
059551,000237: 04,3374 13633 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN.
059552,000238: 04,3375 13371 TCF OHWELL2 +3 # V33 PROCEED RETURN
059553,000239: 04,3376 03427 TC CK4V32 # DATA OR V32 RETURN
059554,000240: 04,3377 41173 CS UPCOUNT # HAVE WE FINISHED RECEIVING ALL
059555,000241: 04,3400 61170 AD COMPNUMB # THE DATA WE EXPECTED.
059556,000242: 04,3401 00006 EXTEND
059557,000243: 04,3402 63404 BZMF UPVERIFY # YES- GO TO VERIFICATION SEQUENCE
059558,000244: 04,3403 13365 TCF OHWELL2 -1 # NO- REQUEST ADDITIONAL DATA.
059559,000245:
059560,000246: # VERIFY SEQUENCE
059561,000247:
059562,000248: 04,3404 33435 UPVERIFY CAF ADUPTEMP # PLACE ECADR WHERE COMPONENT NO. INDEX
059563,000249: 04,3405 54156 TS MPAC +2 # IS TO BE STORED INTO R3.
059564,000250: 04,3406 33440 CAF UPVRFYNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
059565,000251: 04,3407 04616 TC BANKCALL # DISPLAY A FLASHING V21N02 TO REQUEST
059566,000252: 04,3410 20212 CADR GOXDSPF # DATA CORRECTION OR VERIFICATION.
059567,000253: 04,3411 13633 TCF UPOUT4 # V34 TERMINATE UPDATE (P27) RETURN
059568,000254: 04,3412 13441 TCF UPSTORE # V33 DATA SENT IS GOOD. GO STORE IT.
059569,000255: 04,3413 03427 TC CK4V32 # COMPONENT NO. INDEX OR V32 RETURN
059570,000256: 04,3414 31167 CA UPTEMP # DOES THE COMPONENT NO. INDEX JUST SENT
059571,000257: 04,3415 00006 EXTEND # SPECIFY A LEGAL COMPONENT NUMBER?
059572,000258: 04,3416 63404 BZMF UPVERIFY # NO, IT IS NOT POSITIVE NONZERO
059573,000259: 04,3417 41167 CS UPTEMP
059574,000260: 04,3420 61170 AD COMPNUMB
|
Page 1384 |
059576,000262: 04,3421 64753 AD BIT1
059577,000263: 04,3422 00006 EXTEND
059578,000264: 04,3423 63404 BZMF UPVERIFY # NO
059579,000265: 04,3424 33603 CAF ADUPBFM1 # YES- BASED ON THE COMPONENT NO. INDEX
059580,000266: 04,3425 61167 AD UPTEMP # CALCULATE THE ECADR OF LOCATION IN
059581,000267: 04,3426 13370 TCF OHWELL2 +2 # UPBUFF WHICH USER WANTS TO CHANGE.
059582,000268:
059583,000269: 04,3427 04,3633 UPOUT4 EQUALS UPOUT +1 # COMES HERE ON V34 TO TERMINATE UPDATE
059584,000270:
059585,000271: # CHECK FOR VERB 32 SEQUENCE
059586,000272:
059587,000273: 04,3427 40154 CK4V32 CS MPAC # ON DATA RETURN FROM 'GOXDSPF'
059588,000274: 04,3430 74746 MASK BIT6 # ON DATA RETURN FROM "GOXDSP"& THE CON-
059589,000275: 04,3431 10000 CCS A # TENTS OF MPAC = VERB. SO TEST FOR V32.
059590,000276: 04,3432 00002 TC Q # IT'S NOT A V32, IT'S DATA. PROCEED.
059591,000277: 04,3433 50002 INDEX Q
059592,000278: 04,3434 77771 TC 0 -6 # V32 ENCOUNTERED - GO BACK AND GET DATA
059593,000279:
059594,000280: 04,3435 01167 ADUPTEMP ADRES UPTEMP # ADDRESS OF TEMP STORAGE FOR CORRECTIONS
059595,000281: 04,3436 01174 ADUPBUFF ADRES UPBUFF # ADDRESS OF UPDATE DATA STORAGE BUFFER
059596,000282: 04,3437 05201 UPLOADNV VN 2101 # VERB 21 NOUN 01
059597,000283: 04,3440 05202 UPVRFYNV VN 2102 # VERB 21 NOUN 02
059598,000284: 04,3441 4362 UP21 = MD1 # DEC 21 = MAX NO OF COMPONENTS +1
059599,000285: 04,3441 4756 UPDTPHAS EQUALS FIVE
059600,000286:
059601,000287: # PRE-STORE AND FAN TO APPROPRIATE BRANCH SEQUENCE
059602,000288:
059603,000289: 04,3441 UPSTORE EQUALS # GROUND HAS VERIFIED UPDATE. STORE DATA.
059604,000290:
059605,000291: 04,3441 00004 INHINT
059606,000292:
059607,000293: 04,3442 30103 CAE FLAGWRD7 # INVERT VERIFLAG(BIT 3 OF FLAGWRD7) TO
059608,000294: 04,3443 56001 XCH L # INDICATE TO THE GROUND(VIA DOWNLINK)
059609,000295: 04,3444 34751 CAF VERIFBIT # THAT THE V33 (WHICH THE GROUND SENT TO
059610,000296: 04,3445 00006 EXTEND # VERIFY THE UPDATE) HAS BEEN SUCCESSFULLY
059611,000297: 04,3446 06001 RXOR LCHAN # RECEIVED BY THE UPDATE PROGRAM
059612,000298: 04,3447 54103 TS FLAGWRD7
059613,000299:
059614,000300: 04,3450 05353 TC PHASCHNG # SET RESTART GROUP 6 TO REDO THE UPDATE
059615,000301: 04,3451 04026 OCT 04026 # DATA STORE IF A RESTART OCCURS.
059616,000302: 04,3452 00004 INHINT # (BECAUSE PHASCHNG DID A RELINT)
059617,000303:
059618,000304: 04,3453 44752 CS TWO # GO TO UPFNDVAC IF INSTALL IS REQUIRED,
059619,000305: 04,3454 61172 AD UPVERB # THAT IS, IF IT'S A V70 - V72.
059620,000306: 04,3455 00006 EXTEND # GO TO UPEND73 IF IT'S A V73.
059621,000307: 04,3456 63465 BZMF UPFNDVAC
059622,000308:
059623,000309: # VERB 73 BRANCH
|
Page 1385 |
059625,000311: 04,3457 00006 UPEND73 EXTEND # V73-PERFORM DP OCTAL AGC CLOCK INCREMENT
059626,000312:
059627,000313: 04,3460 31175 DCA UPBUFF
059628,000314: 04,3461 53205 DXCH UPBUFF +8D
059629,000315: 04,3462 03510 TC TIMEDIDL
059630,000316: 04,3463 04364 TC FALTON # ERROR- TURN ON *OPERATOR ERROR* LIGHT
059631,000317: 04,3464 03633 TC UPOUT +1 # GO TO COMMON UPDATE PROGRAM EXIT
059632,000318:
059633,000319: 04,3465 34355 UPFNDVAC CAF CHRPRIO # (USE EXTENDED VERB PRIORITY)
059634,000320: 04,3466 05105 TC FINDVAC # GET VAC AREA FOR 'CALL INTSTALL'
059635,000321: 04,3467 E3,1706 EBANK= TEPHEM
059636,000322: 04,3467 03472 10103 2CADR UPJOB # (NOTE: THIS WILL ALSO SET EBANK FOR
059637,000323:
059638,000324: 04,3471 05155 TC ENDOFJOB # 'TEPHEM' UPDATE BY V70)
059639,000325:
059640,000326: 04,3472 06036 UPJOB TC INTPRET # THIS COULD BE A STATE VECTOR UPDATE--SO
059641,000327: 04,3473 77624 CALL # WAIT(PUT JOB TO SLEEP) IF ORBIT INT(OI)
059642,000328: 04,3474 27412 INTSTALL # IS IN PROGRESS--OR--GRAB OI AND RETURN
059643,000329: # TO UPWAKE IF OI IS NOT IN PROGRESS.
059644,000330:
059645,000331: 04,3475 77776 UPWAKE EXIT
059646,000332:
059647,000333: 04,3476 05353 TC PHASCHNG # RESTART PROTECT(GROUP 6)
059648,000334: 04,3477 04026 OCT 04026
059649,000335:
059650,000336: 04,3500 05504 TC UPFLAG # SET INTEGRATION RESTART BIT
059651,000337: 04,3501 00236 ADRES REINTFLG
059652,000338: 04,3502 00004 INHINT
059653,000339: 04,3503 UPPART3 EQUALS
059654,000340:
059655,000341: 04,3503 51172 INDEX UPVERB # BRANCH TO THE APPROPRIATE UPDATE VERB
059656,000342: 04,3504 13505 TCF +1 # ROUTINE TO ACTUALLY PERFORM THE UPDATE
059657,000343: 04,3505 13644 TCF UPEND70 # V70
059658,000344: 04,3506 13553 TCF UPEND71 # V71
059659,000345: 04,3507 13605 TCF UPEND72 # V72
059660,000346:
059661,000347: # ROUTINE TO INCREMENT CLOCK(TIME2,TIME1) WITH CONTENTS OF DP WORD AT UPBUFF.
059662,000348:
059663,000349: 04,3510 00006 TIMEDIDL EXTEND
059664,000350: 04,3511 23167 QXCH UPTEMP # SAVE Q FOR RETURN
059665,000351: 04,3512 34755 CAF ZERO # ZERO AND SAVE TIME2,TIME1
059666,000352: 04,3513 22007 ZL
059667,000353: 04,3514 52025 DXCH TIME2
059668,000354: 04,3515 53217 DXCH UPBUFF +18D # STORE IN CASE OF OVERFLOW
059669,000355:
059670,000356: 04,3516 34756 CAF UPDTPHAS # DO
059671,000357: 04,3517 54001 TS L # A
059672,000358: 04,3520 40000 COM # QUICK
059673,000359: 04,3521 52765 DXCH -PHASE6 # PHASCHNG
|
Page 1386 |
059675,000361: 04,3522 00004 TIMEDIDR INHINT
059676,000362:
059677,000363: 04,3523 34755 CAF ZERO
059678,000364: 04,3524 22007 ZL # PICK UP INCREMENTER(AND ZERO
059679,000365: 04,3525 54156 TS MPAC +2 # IT IN CASE OF RESTARTS) AND
059680,000366: 04,3526 53205 DXCH UPBUFF +8D # STORE IT
059681,000367: 04,3527 52155 DXCH MPAC # INTO MPAC FOR TPAGREE.
059682,000368:
059683,000369: 04,3530 00006 EXTEND
059684,000370: 04,3531 31217 DCA UPBUFF +18D
059685,000371: 04,3532 20155 DAS MPAC # FORM SUM IN MPAC
059686,000372: 04,3533 00006 EXTEND
059687,000373: 04,3534 13543 BZF DELTAOK # TEST FOR OVERFLOW
059688,000374: 04,3535 34755 CAF ZERO
059689,000375: 04,3536 53217 DXCH UPBUFF +18D # OVERFLOW, RESTORE OLD VALUE OF CLOCK
059690,000376: 04,3537 20025 DAS TIME2 # AND TURN ON OPERATOR ERROR
059691,000377:
059692,000378: 04,3540 05353 TC PHASCHNG # RESTART PROTECT(GROUP 6)
059693,000379: 04,3541 04026 OCT 04026
059694,000380:
059695,000381: 04,3542 01167 TC UPTEMP # GO TO ERROR EXIT
059696,000382:
059697,000383: 04,3543 07256 DELTAOK TC TPAGREE # FORCE SIGN AGREEMENT
059698,000384: 04,3544 52155 DXCH MPAC
059699,000385: 04,3545 20025 DAS TIME2 # INCREMENT TIME2,TIME1
059700,000386:
059701,000387: 04,3546 05353 TC PHASCHNG # RESTART PROTECT(GROUP 6)
059702,000388: 04,3547 04026 OCT 04026
059703,000389:
059704,000390: 04,3550 00004 INHINT
059705,000391: 04,3551 51167 INDEX UPTEMP # (CODED THIS WAY FOR RESTART PROTECTION)
059706,000392: 04,3552 00001 TC 1 # NORMAL RETURN
059707,000393:
059708,000394: # VERB 71 BRANCH
059709,000395:
059710,000396: 04,3553 31175 UPEND71 CAE UPBUFF +1 # SET EBANK
059711,000397: 04,3554 54003 TS EBANK # AND
059712,000398: 04,3555 74357 MASK LOW8 # CALCULATE
059713,000399: 04,3556 55167 TS UPTEMP # S-REG VALUE OF RECEIVING AREA
059714,000400:
059715,000401: 04,3557 67744 AD NEG3 # IN THE PROCESS OF
059716,000402: 04,3560 61170 AD COMPNUMB # PERFORMING
059717,000403: 04,3561 00006 EXTEND # THIS UPDATE
059718,000404: 04,3562 13570 BZF STORLP71 # WILL WE
059719,000405: 04,3563 74743 MASK BIT9 # OVERFLOW
059720,000406: 04,3564 10000 CCS A # INTO THE NEXT EBANK....
059721,000407: 04,3565 13701 TCF UPERROUT # YES
059722,000408:
059723,000409: 04,3566 37744 CA NEG3 # NO- CALCULATE NUMBER OF
059724,000410: 04,3567 61170 AD COMPNUMB # WORDS TO BE STORED MINUS ONE
059725,000411: 04,3570 54154 STORLP71 TS MPAC # SAVE NO. OF WORDS REMAINING MINUS ONE
|
Page 1387 |
059727,000413: 04,3571 50000 INDEX A # TAKE NEXT UPDATE WORD FROM
059728,000414: 04,3572 31176 CA UPBUFF +2 # UPBUFF AND
059729,000415: 04,3573 54001 TS L # SAVE IT IN L
059730,000416: 04,3574 30154 CA MPAC # CALCULATE NEXT
059731,000417: 04,3575 61167 AD UPTEMP # RECEIVING ADDRESS
059732,000418: 04,3576 50000 INDEX A
059733,000419: 04,3577 E3,1400 EBANK= 1400
059734,000420: 04,3577 23400 LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
059735,000421: 04,3600 E3,1706 EBANK= TEPHEM
059736,000422: 04,3600 10154 CCS MPAC # ARE THERE ANY WORDS LEFT TO BE STORED
059737,000423: 04,3601 13570 TCF STORLP71 # YES
059738,000424: 04,3602 13632 TCF UPOUT # NO- THEN EXIT UPDATE PROGRAM
059739,000425: 04,3603 01173 ADUPBFM1 ADRES UPBUFF -1 # SAME AS ADUPBUFF BUT LESS 1 (DON'T MOVE)
059740,000426: 04,3604 13632 TCF UPOUT # NO- EXIT UPDATE(HERE WHEN COMPNUMB = 3)
059741,000427:
059742,000428: # VERB 72 BRANCH
059743,000429:
059744,000430: 04,3605 34753 UPEND72 CAF BIT1 # HAVE AN ODD NO. OF COMPONENTS
059745,000431: 04,3606 71170 MASK COMPNUMB # BEEN SENT FOR A V72 UPDATE ...
059746,000432: 04,3607 10000 CCS A
059747,000433: 04,3610 13612 TCF +2 # YES
059748,000434: 04,3611 13701 TCF UPERROUT # ERROR- SHOULD BE ODD NO. OF COMPONENTS
059749,000435: 04,3612 44752 CS BIT2
059750,000436: 04,3613 61170 AD COMPNUMB
059751,000437: 04,3614 54154 LDLOOP72 TS MPAC # NOW PERFORM THE UPDATE
059752,000438: 04,3615 50000 INDEX A
059753,000439: 04,3616 31175 CAE UPBUFF +1 # PICK UP NEXT UPDATE WORD
059754,000440: 04,3617 22000 LXCH A
059755,000441: 04,3620 10154 CCS MPAC # SET POINTER TO ECADR (MUST BE CCS)
059756,000442: 04,3621 54154 TS MPAC
059757,000443: 04,3622 50000 INDEX A
059758,000444: 04,3623 31175 CAE UPBUFF +1 # PICK UP NEXT ECADR OF REG TO BE UPDATED
059759,000445: 04,3624 54003 TS EBANK # SET EBANK
059760,000446: 04,3625 74357 MASK LOW8 # ISOLATE RELATIVE ADDRESS
059761,000447: 04,3626 50000 INDEX A
059762,000448: 04,3627 E3,1400 EBANK= 1400
059763,000449: 04,3627 23400 LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
059764,000450: 04,3630 E3,1706 EBANK= TEPHEM
059765,000451: 04,3630 10154 CCS MPAC # ARE WE THROUGH THE V72 UPDATE...
059766,000452: 04,3631 13614 TCF LDLOOP72 # NO
059767,000453:
059768,000454: # NORMAL FINISH OF P27
059769,000455:
059770,000456: 04,3632 UPOUT EQUALS
059771,000457: 04,3632 03106 TC INTWAKEU # RELEASE GRAB OF ORBITAL INTEGRATION
059772,000458: 04,3633 31171 +1 CAE UPOLDMOD # RESTORE PRIOR P27 MODE
059773,000459: 04,3634 05314 TC NEWMODEX +3
059774,000460: 04,3635 34755 CAF ZERO
|
Page 1388 |
059776,000462: 04,3636 54332 TS DNLSTCOD
059777,000463: 04,3637 03706 TC UPACTOFF # TURN OFF 'UPLINK ACTIVITY' LIGHT
059778,000464:
059779,000465: 04,3640 00006 EXTEND # KILL GROUP 6.
059780,000466: 04,3641 34755 DCA NEG0
059781,000467: 04,3642 52765 DXCH -PHASE6
059782,000468:
059783,000469: 04,3643 05472 TC ENDEXT # EXTENDED VERB EXIT
059784,000470:
059785,000471: # VERB 70 BRANCH
059786,000472:
059787,000473: 04,3644 00006 UPEND70 EXTEND # V70 DOES THE FOLLOWING WITH DP DELTA
059788,000474: 04,3645 41175 DCS UPBUFF # TIME IN UPBUFF
059789,000475: 04,3646 53205 DXCH UPBUFF +8D
059790,000476: 04,3647 03510 TC TIMEDIDL # DECREMENT AGC CLOCK
059791,000477:
059792,000478: 04,3650 03701 TC UPERROUT # ERROR WHILE DECREMENTING CLOCK -- EXIT
059793,000479:
059794,000480: 04,3651 E3,1706 EBANK= TEPHEM
059795,000481: 04,3651 00006 EXTEND
059796,000482: 04,3652 41175 DCS UPBUFF # COPY DECREMENTERS FOR
059797,000483: 04,3653 53207 DXCH UPBUFF +10D # RESTART PROTECTION
059798,000484: 04,3654 00006 EXTEND
059799,000485: 04,3655 41175 DCS UPBUFF
059800,000486: 04,3656 53211 DXCH UPBUFF +12D
059801,000487:
059802,000488: 04,3657 05353 TC PHASCHNG # RESTART PROTECT(GROUP 6)
059803,000489: 04,3660 04026 OCT 04026
059804,000490:
059805,000491: 04,3661 34755 CAF ZERO
059806,000492: 04,3662 22007 ZL
059807,000493: 04,3663 53207 DXCH UPBUFF +10D # DECREMENT CSM STATE VECTOR TIME
059808,000494: 04,3664 21571 DAS TETCSM
059809,000495:
059810,000496: 04,3665 34755 CAF ZERO
059811,000497: 04,3666 22007 ZL
059812,000498: 04,3667 53211 DXCH UPBUFF +12D # DECREMENT LEM STATE VECTOR TIME
059813,000499: 04,3670 21643 DAS TETLEM
059814,000500:
059815,000501: 04,3671 34755 CAF ZERO
059816,000502: 04,3672 22007 ZL
059817,000503: 04,3673 53175 DXCH UPBUFF
059818,000504: 04,3674 21710 DAS TEPHEM +1 # INCREMENT TP TEPHEM
059819,000505: 04,3675 27706 ADS TEPHEM
059820,000506:
059821,000507: 04,3676 05353 TC PHASCHNG # RESTART PROTECT(GROUP 6)
059822,000508: 04,3677 04026 OCT 04026
059823,000509:
059824,000510: 04,3700 1174 EBANK= UPBUFF
|
Page 1389 |
059826,000512: 04,3700 03632 TC UPOUT # GO TO STANDARD UPDATE PROGRAM EXIT
059827,000513:
059828,000514:
059829,000515: # ERROR SEQUENCE
059830,000516:
059831,000517: 04,3701 04364 UPERROUT TC FALTON # TURN ON *OPERATOR ERROR* LIGHT
059832,000518: 04,3702 13632 TCF UPOUT # GO TO COMMON UPDATE PROGRAM EXIT
059833,000519:
059834,000520: 04,3703 04364 +2 TC FALTON # TURN ON 'OPERATOR ERROR' LIGHT
059835,000521: 04,3704 03706 TC UPACTOFF # TURN OFF'UPLINK ACTIVITY'LIGHT
059836,000522: 04,3705 05472 TC ENDEXT # EXTENDED VERB EXIT
059837,000523: # (THE PURPOSE OF UPERROUT +2 EXIT IS
059838,000524: # TO PROVIDE AN ERROR EXIT WHICH DOES NOT
059839,000525: # RESET ANY RESTART GROUPS)
059840,000526:
059841,000527: # :UPACTOFF: IS A ROUTINE TO TURN OFF UPLINK ACTIVITY LIGHT ON ALL EXITS FROM UPDATE PROGRAM (P27).
059842,000528:
059843,000529: 04,3706 44751 UPACTOFF CS BIT3
059844,000530: 04,3707 00006 EXTEND # TURN OFF UPLINK ACTIVITY LIGHT
059845,000531: 04,3710 03011 WAND DSALMOUT # (BIT 3 OF CHANNEL 11)
059846,000532: 04,3711 00002 TC Q
059847,000533:
End of include-file UPDATE_PROGRAM.agc. Parent file is MAIN.agc