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. |
043159,000002: ## Copyright: Public domain.
043160,000003: ## Filename: DOWN-TELEMETRY_PROGRAM.agc
043161,000004: ## Purpose: A section of LUM69 revision 2.
043162,000005: ## It is part of the reconstructed source code for the flown
043163,000006: ## version of the flight software for the Lunar Module's (LM)
043164,000007: ## Apollo Guidance Computer (AGC) for Apollo 10. The code has
043165,000008: ## been recreated from a copy of Luminary revsion 069, using
043166,000009: ## changes present in Luminary 099 which were described in
043167,000010: ## Luminary memos 75 and 78. The code has been adapted such
043168,000011: ## that the resulting bugger words exactly match those specified
043169,000012: ## for LUM69 revision 2 in NASA drawing 2021152B, which gives
043170,000013: ## relatively high confidence that the reconstruction is correct.
043171,000014: ## Reference: pp. 983-992
043172,000015: ## Assembler: yaYUL
043173,000016: ## Contact: Ron Burkey <info@sandroid.org>.
043174,000017: ## Website: www.ibiblio.org/apollo/index.html
043175,000018: ## Mod history: 2019-07-27 MAS Created from Luminary 69.
043176,000019:
|
Page 983 |
043178,000021: # PROGRAM NAME - DOWN TELEMETRY PROGRAM
043179,000022: # MOD NO. - 0 TO COMPLETELY REWRITE THE DOWN TELEMETRY PROGRAM AND DOWNLINK ERASABLE DUMP PROGRAM FOR THE
043180,000023: # PURPOSE OF SAVING APPROXIMATELY 150 WORDS OF CORE STORAGE.
043181,000024: # THIS CHANGE REQUIRES AN ENTIRELY NEW METHOD OF SPECIFYING DOWNLINK LISTS.REFER TO DOWNLINK
043182,000025: # LISTS LOG SECTION FOR MORE DETAILS. HOWEVER THIS CHANGE WILL NOT AFFECT THE GROUND PROCESSING
043183,000026: # OF DOWN TELEMETRY DATA.
043184,000027: # MOD BY - KILROY, SMITH, DEWITT
043185,000028: # DATE - 02OCT67
043186,000029: # AUTHORS - KILROY, SMITH, DEWITT, DEWOLF, FAGIN
043187,000030: # LOG SECTION - DOWN-TELEMETRY PROGRAM
043188,000031:
043189,000032: # FUNCTIONAL DESCRIPTION - THIS ROUTINE IS INITIATED BY TELEMETRY END
043190,000033: # PULSE FROM THE DOWNLINK TELEMETRY CONVERTER. THIS PULSE OCCURS
043191,000034: # AT 50 TIMES PER SEC (EVERY 20 MS) THEREFORE DODOWNTM IS
043192,000035: # EXECUTED AT THESE RATES. THIS ROUTINE SELECTS THE APPROPRIATE
043193,000036: # AGC DATA TO BE TRANSMITTED DOWNLINK AND LOADS IT INTO OUTPUT
043194,000037: # CHANNELS 34 AND 35. THE INFORMATION IS THEN GATED OUT FROM THE
043195,000038: # LGC IN SERIAL FASHION.
043196,000039: # THIS PROGRAM IS CODED FOR A 2 SECOND DOWNLIST. SINCE DOWNRUPTS
043197,000040: # OCCUR EVERY 20 MS AND 2 AGC COMPUTER WORDS CAN BE PLACED IN
043198,000041: # CHANNELS 34 AND 35 DURING EACH DOWNRUPT THE PROGRAM IS CAPABLE
043199,000042: # OF SENDING 200 AGC WORDS EVERY 2 SECONDS.
043200,000043: # CALLING SEQUENCE - NONE
043201,000044: # PROGRAM IS ENTERED VIA TCF DODOWNTM WHICH IS EXECUTED AS A
043202,000045: # RESULT OF A DOWNRUPT. CONTROL IS RETURNED VIA TCF RESUME WHICH
043203,000046: # IN EFFECT IS A RESUME.
043204,000047: # SUBROUTINES CALLED - NONE
043205,000048: # NORMAL EXIT MODE - TCF RESUME
043206,000049: # ALARM OR ABORT EXIT MODE - NONE
043207,000050: # RESTART PROTECTION:
043208,000051: # ON A FRESH START AND RESTART THE 'STARTSUB' SUBROUTINE WILL INITIALIZE THE DOWNLIST POINTER (ACTUALLY
043209,000052: # DNTMGOTO) TO THE BEGINNING OF THE CURRENT DOWNLIST (I.E. CURRENT CONTENTS OF DNLSTADR). THIS HAS THE
043210,000053: # EFFECT OF IGNORING THE REMAINDER OF THE DOWNLIST WHICH THE DOWN-TELEMETRY PROGRAM WAS WORKING ON WHEN
043211,000054: # THE RESTART (OR FRESH START) OCCURRED AND RESUME DOWN TELEMETRY FROM THE BEGINNING OF THE CURRENT
043212,000055: # DOWNLIST.
043213,000056: # ALSO OF INTEREST IS THE FACT THAT ON A RESTART THE AGC WILL ZERO DOWNLINK CHANNELS 13, 34 AND 35.
043214,000057: # DOWNLINK LIST SELECTION:
043215,000058: # THE APPROPRIATE DOWNLINK LISTS ARE SELECTED BY THE FOLLOWING:
043216,000059: # 1. FRESH START
043217,000060: # 2. V37EXXE WHERE XX = THE MAJOR MODE BEING SELECTED.
043218,000061: # 3. UPDATE PROGRAM (P27)
043219,000062: # 4. NON-V37 SELECTABLE TYPE PROGRAMS (E.G. AGS INITIALIZATION (SUNDANCE, LUMINARY) AND P61-P62
043220,000063: # TRANSITION (COLOSSUS) ETC.).
043221,000064: # DOWNLINK LIST RULES AND LIMITATIONS:
043222,000065: # READ SECTION(S) WHICH FOLLOW 'DEBRIS' WRITEUP.
043223,000066: # OUTPUT - EVERY 2 SECONDS 100 DOUBLE PRECISION WORDS (I.E. 200 LGC
043224,000067: # COMPUTER WORDS) ARE TRANSMITTED VIA DOWNLINK.
043225,000068: # ERASABLE INITIALIZATION REQUIRED - NONE
043226,000069: # 'DNTMGOTO' AND 'DNLSTADR' ARE INITIALIZED BY THE FRESH START PROGRAM.
043227,000070: # DEBRIS (ERASABLE LOCATIONS DESTROYED BY THIS PROGRAM) -
043228,000071: # LDATALST,DNTMBUFF TO DNTMBUFF +21D,TMINDEX,DNQ.
043229,000072:
|
Page 984
This page is empty |
043232,000075:
|
Page 985 |
043234,000077: # DODOWNTM IS ENTERED EVERY 20 MS BY AN INTERRUPT TRIGGERED BY THE
043235,000078: # RECEIPT OF AN ENDPULSE FROM THE SPACECRAFT TELEMETRY PROGRAMMER.
043236,000079:
043237,000080: # NOTES REGARDING DOWNLINK LISTS ASSOCIATED WITH THIS PROGRAM:
043238,000081: # 1. DOWNLISTS. - DOWNLISTS MUST BE COMPILED IN THE SAME BANK AS THE
043239,000082: # DOWN-TELEMETRY PROGRAM. THIS IS DONE FOR EASE OF CODING, FASTER
043240,000083: # EXECUTION.
043241,000084: # 2. EACH DOWNLINK LIST CONSISTS OF A CONTROL LIST AND A NUMBER OF
043242,000085: # SUBLISTS.
043243,000086: # 3. A SUBLIST REFERS TO A SNAPSHOT OR DATA COMMON TO THE SAME OR OTHER
043244,000087: # DOWNLINK LISTS. ANY SUBLIST CONTAINING COMMON DATA NEEDS TO BE
043245,000088: # CODED ONLY ONCE FOR THE APPLICABLE DOWNLINK LISTS.
043246,000089: # 4. SNAPSHOT SUBLISTS REFER SPECIFICALLY TO HOMOGENOUS DATA WHICH MUST BE
043247,000090: # SAVED IN A BUFFER DURING ONE DOWNRUPT.
043248,000091: # 5. THE 1DNADR FOR THE 1ST WORD OF SNAPSHOT DATA IS FOUND AT THE END
043249,000092: # OF EACH SNAPSHOT SUBLIST, SINCE THE PROGRAM CODING SENDS THIS DP WORD
043250,000093: # IMMEDIATELY AFTER STORING THE OTHERS IN THE SNAPSHOT BUFFER.
043251,000094: # 6. ALL LISTS ARE COMBINATIONS OF CODED ERASABLE ADDRESS CONSTANTS
043252,000095: # CREATED FOR THE DOWNLIST PROGRAM.
043253,000096: # A. 1DNADR 1-WORD DOWNLIST ADDRESS.
043254,000097: # SAME AS ECADR, BUT USED WHEN THE WORD ADDRESSED IS THE LEFT
043255,000098: # HALF OF A DOUBLE-PRECISION WORD FOR DOWN TELEMETRY.
043256,000099: # B. 2DNADR - 6DNADR N-WORD DOWNLIST ADDRESS, N = 2 - 6.
043257,000100: # SAME AS 1DNADR, BUT WITH THE 4 UNUSED BITS OF THE ECADR FORMAT
043258,000101: # FILLED IN WITH 0001-0101. USED TO POINT TO A LIST OF N DOUBLE-
043259,000102: # PRECISION WORDS, STORED CONSECUTIVELY, FOR DOWN TELEMETRY.
043260,000103: # C. DNCHAN DOWNLIST CHANNEL ADDRESS.
043261,000104: # SAME AS 1DNADR, BUT WITH PREFIX BITS 0111. USED TO POINT TO
043262,000105: # A PAIR OF CHANNELS FOR DOWN TELEMETRY.
043263,000106: # D. DNPTR DOWN TELEMETRY SUBLIST POINTER.
043264,000107: # SAME AS CAF BUT TAGGED AS A CONSTANT. USED IN CONTROL LIST TO POINT TO A SUBLIST.
043265,000108: # CAUTION--- A DNPTR CANNOT BE USED IN A SUBLIST.
043266,000109: # 7. THE WORD ORDER CODE IS SET TO ZERO AT THE BEGINNING OF EACH DOWNLIST (I.E. CONTROL LIST) AND WHEN
043267,000110: # A '1DNADR TIME2' IS DETECTED IN THE CONTROL LIST (ONLY).
043268,000111: # 8. IN THE SNAPSHOT SUBLIST ONLY, THE DNADR'S CANNOT POINT TO THE FIRST WORD OF ANY EBANK.
043269,000112:
043270,000113: # DOWNLINK LIST RESTRICTIONS:
043271,000114: # (THE FOLLOWING POINTS MAY BE LISTED ELSEWHERE BUT ARE LISTED HERE SO IT IS CLEAR THAT THESE THINGS CANNOT BE
043272,000115: # DONE)
043273,000116: # 1. SNAPSHOT DOWNLIST:
043274,000117: # (A) CANNOT CONTAIN THE FOLLOWING ECADRS (I.E. 1DNADR'S): 0, 400, 1000, 1400, 2000, 2400, 3000, 3400.
043275,000118: # (B) CAN CONTAIN ONLY 1DNADR'S
043276,000119: # 2. ALL DOWNLINKED DATA (EXCEPT CHANNELS) IS PICKED UP BY A <DCA<SO DOWNLINK LISTS CANNOT CONTAIN THE
043277,000120: # EQUIVALENT OF THE FOLLOWING ECADRS (I.E. IDNADRS): 377, 777, 1377, 1777, 2377, 27777, 3377, 3777.
043278,000121: # (NOTE: THE TERM EQUIVALENT ' MEANT THAT THE IDNADR TO 6DNADR WILL BE PROCESSED LIKE 1 TO 6 ECADRS)
043279,000122: # 3. CONTROL LISTS AND SUBLISTS CANNOT HAVE ENTRIES = OCTAL 00000 OR OCTAL 77777
|
Page 986 |
043281,000124: # 4. THE '1DNADR TIME2' WHICH WILL CAUSE THE DOWNLINK PROGRAM TO SET THE WORDER CODE TO 3 MUST APPEAR IN THE
043282,000125: # CONTROL SECTION OF THE DOWNLIST.
043283,000126:
043284,000127: # 5. 'DNCHAN 0' CANNOT BE USED.
043285,000128:
043286,000129: # 6. 'DNPTR 0' CANNOT BE USED.
043287,000130:
043288,000131: # 7. DNPTR CANNOT APPEAR IN A SUBLIST.
043289,000132:
043290,000133: # EBANK SETTINGS
043291,000134: # IN THE PROCESS OF SETTING THE EBANK (WHEN PICKING UP DOWNLINK DATA) THE DOWN TELEMETRY PROGRAM PUTS
043292,000135: # 'GARBAGE' INTO BITS15-12 OF EBANK. HUGH BLAIR-SMITH WARNS US THAT BITS15-12 OF EBANK MAY BECOME
043293,000136: # SIGNIFICANT SOMEDAY IN THE FUTURE. IF/WHEN THAT HAPPENS, THE PROGRAM SHOULD INSURE (BY MASKING ETC.)
043294,000137: # THAT BITS15-12 OF EBANK ARE ZERO.
043295,000138:
043296,000139: # INITIALIZATION REQUIRED - TO INTERRUPT CURRENT LIST AND START A NEW ONE..
043297,000140: # 1. ADRES OF DOWNLINK LIST INTO DNLSTADR
043298,000141: # 2. NEGONE INTO SUBLIST
043299,000142: # 3. NEGONE INTO DNECADR
043300,000143:
043301,000144: 22,3647 BANK 22
043302,000145: 05,2000 SETLOC DOWNTELM
043303,000146: 05,2000 BANK
043304,000147:
043305,000148: 05,3430 0340 EBANK= DNTMBUFF
043306,000149:
043307,000150: 05,3430 COUNT* $$/DPROG
043308,000151: 05,3430 54016 DODOWNTM TS BANKRUPT
043309,000152: 05,3431 00006 EXTEND
043310,000153: 05,3432 22012 QXCH QRUPT # SAVE Q
043311,000154: 05,3433 34745 CA BIT7 # SET WORD ORDER CODE TO 1. EXCEPTION- AT
043312,000155: 05,3434 00006 WO1 EXTEND # THE BEGINNING OF EACH LIST THE WORD
043313,000156: 05,3435 05013 WOR CHAN13 # CODE WILL BE SET BACK TO 0.
043314,000157: 05,3436 00335 TC DNTMGOTO # GO TO APPROPRIATE PHASE OF PROGRAM
043315,000158:
043316,000159: 05,3437 37746 DNPHASE1 CA NEGONE # INITIALIZE ALL CONTROL WORDS
043317,000160: 05,3440 54337 TS SUBLIST # WORDS TO MINUS ONE
043318,000161: 05,3441 54336 TS DNECADR
043319,000162: 05,3442 33562 CA LDNPHAS2 # SET DNTMGOTO =O ALL SUBSEQUENT DOWNRUPTS
043320,000163: 05,3443 54335 TS DNTMGOTO # GO TO DNPHASE2
043321,000164: 05,3444 13460 TCF NEWLIST
043322,000165: 05,3445 10336 DNPHASE2 CCS DNECADR # SENDING OF DATA IN PROGRESS
043323,000166: 05,3446 03575 DODNADR TC FETCH2WD # YES - THEN FETCH THE NEXT 2 SP WORDS
043324,000167: 05,3447 77753 MINTIME2 -1DNADR TIME2 # NEGATIVE OF TIME2 1DNADR
043325,000168: 05,3450 13451 TCF +1 # (ECADR OF 3776 + 74001 = 77777)
043326,000169:
043327,000170: 05,3451 10337 CCS SUBLIST # IS THE SUBLIST IN CONTROL
043328,000171: 05,3452 13610 TCF NEXTINSL # YES
|
Page 987 |
043330,000173: 05,3453 74001 DNADRDCR OCT 74001 # DNADR COUNT AND ECADR DECREMENTER
043331,000174:
043332,000175: 05,3454 30334 CHKLIST CA CTLIST
043333,000176: 05,3455 00006 EXTEND
043334,000177: 05,3456 63460 BZMF NEWLIST # IT WILL BE NEGATIVE AT END OF LIST
043335,000178: 05,3457 13465 TCF NEXTINCL
043336,000179: 05,3460 50332 NEWLIST INDEX DNLSTCOD
043337,000180: 05,3461 32441 CA DNTABLE # INITIALIZE CTLIST WITH
043338,000181: 05,3462 54334 TS CTLIST # STARTING ADDRESS OF NEW LIST
043339,000182: 05,3463 40332 CS DNLSTCOD
043340,000183: 05,3464 13700 TCF SENDID +3
043341,000184: 05,3465 50334 NEXTINCL INDEX CTLIST
043342,000185: 05,3466 30000 CA 0
043343,000186: 05,3467 10000 CCS A
043344,000187: 05,3470 24334 INCR CTLIST # SET POINTER TO PICK UP NEXT CTLIST WORD
043345,000188: 05,3471 13475 TCF +4 # ON NEXT ENTRY TO PROG. (A SHOULD NOT =0)
043346,000189: 05,3472 56334 XCH CTLIST # SET CTLIST TO NEGATIVE AND PLACE(CODING)
043347,000190: 05,3473 40000 COM # UNCOMPLEMENTED DNADR INTO A. (FOR LA)
043348,000191: 05,3474 56334 XCH CTLIST # (ST IN )
043349,000192: 05,3475 24000 +4 INCR A # (CTLIST)
043350,000193: 05,3476 54336 TS DNECADR # SAVE DNADR
043351,000194: 05,3477 63447 AD MINTIME2 # TEST FOR TIME2 (NEG. OF ECADR)
043352,000195: 05,3500 10000 CCS A
043353,000196: 05,3501 13505 TCF SETWO +1 # DON'T SET WORD ORDER CODE
043354,000197: 05,3502 47777 MINB1314 OCT 47777 # MINUS BIT 13 AND 14 (CAN'T GET HERE)
043355,000198: 05,3503 13505 TCF SETWO +1 # DON'T SET WORD ORDER CODE
043356,000199: 05,3504 03527 SETWO TC WOZERO # GO SET WORD ORDER CODE TO ZERO.
043357,000200: 05,3505 30336 +1 CA DNECADR # RELOAD A WITH THE DNADR.
043358,000201: 05,3506 63502 +2 AD MINB1314 # IS THIS A REGULAR DNADR?
043359,000202: 05,3507 00006 EXTEND
043360,000203: 05,3510 63575 BZMF FETCH2WD # YES. (A MUST NEVER BE ZERO)
043361,000204: 05,3511 67740 AD MINB12 # NO- IS IT A POINTER (DNPTR) OR A
043362,000205: 05,3512 00006 EXTEND # CHANNEL(DNCHAN)
043363,000206: 05,3513 63533 BZMF DODNPTR # IT'S A POINTER. (A MUST NEVER BE ZERO)
043364,000207:
043365,000208: 05,3514 00006 DODNCHAN TC 6 # (EXECUTED AS EXTEND) IT S A CHANNEL
043366,000209: 05,3515 50336 INDEX DNECADR
043367,000210: 05,3516 44000 INDEX 0 -4000 # (EXECUTED AS READ)
043368,000211: 05,3517 54001 TS L
043369,000212: 05,3520 00006 TC 6 # (EXECUTED AS EXTEND)
043370,000213: 05,3521 50336 INDEX DNECADR
043371,000214: 05,3522 43777 INDEX 0 -4001 # (EXECUTED AS READ)
043372,000215: 05,3523 54336 TS DNECADR # SET DNECADR
043373,000216: 05,3524 37746 CA NEGONE # TO MINUS
043374,000217: 05,3525 56336 XCH DNECADR # WHILE PRESERVING A.
043375,000218: 05,3526 13623 TCF DNTMEXIT # GO SEND CHANNELS
043376,000219:
043377,000220: 05,3527 44745 WOZERO CS BIT7
043378,000221: 05,3530 00006 EXTEND
043379,000222: 05,3531 03013 WAND CHAN13 # SET WORD ORDER CODE TO ZERO
|
Page 988 |
043381,000224: 05,3532 00002 TC Q # RETURN TO CALLER
043382,000225:
043383,000226: 05,3533 50336 DODNPTR INDEX DNECADR # DNECADR CONTAINS ADRES OF SUBLIST
043384,000227: 05,3534 00000 0 0 # CLEAR AND ADD LIST ENTRY INTO A.
043385,000228: 05,3535 10000 CCS A # IS THIS A SNAPSHOT SUBLIST
043386,000229: 05,3536 30336 CA DNECADR # NO, IT IS A REGULAR SUBLIST.
043387,000230: 05,3537 13607 TCF DOSUBLST # A MUST NOT BE ZERO.
043388,000231:
043389,000232: 05,3540 56336 XCH DNECADR # YES, IT IS A SNAPSHOT SUBLIST.
043390,000233: 05,3541 54337 TS SUBLIST # C(DNECADR) INTO SUBLIST
043391,000234: 05,3542 34755 CAF ZERO # A INTO A
043392,000235: 05,3543 56336 XCH TMINDEX # (NOTE.. TMINDEX = DNECADR)
043393,000236:
043394,000237: # THE FOLLOWING CODING (FROM SNAPLOOP TO SNAPEND) IS FOR THE PURPOSE OF TAKING A SNAPSHOT OF 12 DP REGISTERS.
043395,000238: # THIS IS DONE BY SAVING 11 DP REGISTERS IN DNTMBUFF AND SENDING THE FIRST DP WORD IMMEDIATELY.
043396,000239: # THE SNAPSHOT PROCESSING IS THE MOST TIME CONSUMING AND THEREFORE THE CODING AND LIST STRUCTURE WERE DESIGNED
043397,000240: # TO MINIMIZE TIME. THE TIME OPTIMIZATION RESULTS IN RULES UNIQUE TO THE SNAPSHOT PORTION OF THE DOWNLIST.
043398,000241: # THESE RULES ARE......
043399,000242: # 1. ONLY 1DNADR'S CAN APPEAR IN THE SNAPSHOT SUBLIST
043400,000243: # 2. THE 1DNADR'S CANNOT REFER TO THE FIRST LOCATION IN ANY BANK.
043401,000244:
043402,000245: 05,3544 54003 SNAPLOOP TS EBANK # SET EBANK
043403,000246: 05,3545 74357 MASK LOW8 # ISOLATE RELATIVE ADDRESS
043404,000247: 05,3546 00006 EXTEND
043405,000248: 05,3547 50000 INDEX A
043406,000249: 05,3550 E3,1401 EBANK= 1401
043407,000250: 05,3550 31402 DCA 1401 # PICK UP 2 SNAPSHOT WORDS.
043408,000251: 05,3551 0340 EBANK= DNTMBUFF
043409,000252: 05,3551 50336 INDEX TMINDEX
043410,000253: 05,3552 52341 DXCH DNTMBUFF # STORE 2 SNAPSHOT WORDS IN BUFFER
043411,000254: 05,3553 24336 INCR TMINDEX # SET BUFFER INDEX FOR NEXT 2 WORDS.
043412,000255: 05,3554 24336 INCR TMINDEX
043413,000256: 05,3555 24337 SNAPAGN INCR SUBLIST # SET POINTER TO NEXT 2 WORDS OF SNAPSHOT
043414,000257: 05,3556 50337 INDEX SUBLIST
043415,000258: 05,3557 00000 0 0 # = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
043416,000259: 05,3560 10000 CCS A # TEST FOR LAST TWO WORDS OF SNAPSHOT.
043417,000260: 05,3561 13544 TCF SNAPLOOP # NOT LAST TWO.
043418,000261: 05,3562 03445 LDNPHAS2 GENADR DNPHASE2
043419,000262: 05,3563 54337 TS SUBLIST # YES, LAST. SAVE A.
043420,000263: 05,3564 37746 CA NEGONE # SET DNECADR AND
043421,000264: 05,3565 54336 TS DNECADR # SUBLIST POINTERS
043422,000265: 05,3566 56337 XCH SUBLIST # TO NEGATIVE VALUES.
043423,000266: 05,3567 54003 TS EBANK
043424,000267: 05,3570 74357 MASK LOW8
043425,000268: 05,3571 00006 EXTEND
043426,000269: 05,3572 50000 INDEX A
043427,000270: 05,3573 E3,1401 EBANK= 1401
043428,000271: 05,3573 31402 DCA 1401 # PICK UP FIRST 2 WORDS OF SNAPSHOT.
|
Page 989 |
043430,000273: 05,3574 0340 EBANK= DNTMBUFF
043431,000274: 05,3574 13623 SNAPEND TCF DNTMEXIT # NOW GO SEND THEM.
043432,000275:
043433,000276: 05,3575 30336 FETCH2WD CA DNECADR
043434,000277: 05,3576 54003 TS EBANK # SET EBANK
043435,000278: 05,3577 74357 MASK LOW8 # ISOLATE RELATIVE ADDRESS
043436,000279: 05,3600 54001 TS L
043437,000280: 05,3601 33453 CA DNADRDCR # DECREMENT COUNT AND ECADR
043438,000281: 05,3602 26336 ADS DNECADR
043439,000282: 05,3603 00006 EXTEND
043440,000283: 05,3604 50001 INDEX L
043441,000284: 05,3605 E3,1400 EBANK= 1400
043442,000285: 05,3605 31401 DCA 1400 # PICK UP 2 DATA WORDS
043443,000286: 05,3606 0340 EBANK= DNTMBUFF
043444,000287: 05,3606 13623 TCF DNTMEXIT # NOW GO SEND THEM.
043445,000288:
043446,000289: 05,3607 54337 DOSUBLST TS SUBLIST # SET SUBLIST POINTER
043447,000290: 05,3610 50337 NEXTINSL INDEX SUBLIST
043448,000291: 05,3611 00000 0 0 # = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
043449,000292: 05,3612 10000 CCS A # IS IT THE END OF THE SUBLIST
043450,000293: 05,3613 24337 INCR SUBLIST # NO -
043451,000294: 05,3614 13620 TCF +4
043452,000295: 05,3615 54337 TS SUBLIST # SAVE A.
043453,000296: 05,3616 37746 CA NEGONE # SET SUBLIST TO MINUS
043454,000297: 05,3617 56337 XCH SUBLIST # RETRIEVE A.
043455,000298: 05,3620 24000 +4 INCR A
043456,000299: 05,3621 54336 TS DNECADR # SAVE DNADR
043457,000300: 05,3622 13506 TCF SETWO +2 # GO USE COMMON CODING (PROBLEMS WOULD
043458,000301: # OCCUR IF THE PROGRAM ENCOUNTERED A
043459,000302: # DNPTR NOW)
043460,000303:
043461,000304: 05,3623 00006 DNTMEXIT EXTEND # DOWN-TELEMETRY EXIT
043462,000305: 05,3624 01034 WRITE DNTM1 # TO SEND A + L TO CHANNELS 34 + 35
043463,000306: 05,3625 30001 CA L # RESPECTIVELY
043464,000307: 05,3626 00006 TMEXITL EXTEND
043465,000308: 05,3627 01035 WRITE DNTM2
043466,000309: 05,3630 15270 TMRESUME TCF RESUME # EXIT TELEMETRY PROGRAM VIA RESUME.
043467,000310:
043468,000311: 05,3631 7740 MINB12 EQUALS -1/8
043469,000312: 05,3631 0336 DNECADR EQUALS TMINDEX
043470,000313: 05,3631 0334 CTLIST EQUALS LDATALST
043471,000314: 05,3631 0337 SUBLIST EQUALS DNQ
043472,000315:
|
Page 990 |
043474,000317: # SUBROUTINE NAME- DNDUMP
043475,000318: # FUNCTIONAL DESCRIPTION - TO SEND (DUMP) ALL ERASABLE STORAGE 'N' TIMES.(N=1 TO 4). BANKS ARE SENT ONE AT A TIME
043476,000319: # EACH BANK IS PRECEEDED BY AN ID WORD, SYNCH BITS, ECADR AND TIME1 FOLLOWED BY THE 256D WORDS OF EACH
043477,000320: # EBANK. EBANKS ARE DUMPED IN ORDER (I.E. EBANK 0 FIRST, THEN EBANK1 ETC.)
043478,000321: # CALLING SEQUENCE- THE GROUND OR ASTRONAUT BY KEYING V74E CAN INITIALIZE THE DUMP.
043479,000322: # AFTER KEYING IN V74E THE CURRENT DOWNLIST WILL BE IMMEDIATELY TERMINATED AND THE DOWNLINK ERASABLE DUMP
043480,000323: # WILL BEGIN.
043481,000324: # ONCE INITIATED THE DOWNLINK ERASABLE DUMP CAN BE TERMINATED (AND INTERRUPTED DOWNLIST REINSTATED) ONLY
043482,000325: # BY THE FOLLOWING:
043483,000326: # 1. A FRESH START
043484,000327: # 2. COMPLETION OF ALL DOWNLINK DUMPS REQUESTED (ACCORDING TO BITS SET IN DUMPCNT). NOTE THAT DUMPCNT
043485,000328: # CAN BE ALTERED BY A V21N01.
043486,000329: # 3. AND INVOLUNTARILY BY A RESTART.
043487,000330: # NORMAL EXIT MODE - TCF DNPHASE1
043488,000331: # ALARM OR ABORT MODE - NONE
043489,000332: # *SUBROUTINES CALLED - NONE.
043490,000333: # ERASABLE INITIALIZATION REQUIRED -
043491,000334: # DUMPCNT OCT 20000 IF 4 COMPLETE ERASABLE DUMPS ARE DESIRED
043492,000335: # DUMPCNT OCT 10000 IF 2 COMPLETE ERASABLE DUMPS ARE DESIRED
043493,000336: # DUMPCNT OCT 04000 IF 1 COMPLETE ERASABLE DUMP IS DESIRED
043494,000337: # DEBRIS - DUMPLOC, DUMPSW, DNTMGOTO, EBANK AND CENTRAL REGISTERS
043495,000338: # TIMING - TIME (IN SECS) = ((NO.DUMPS)*(NO.EBANKS)*(WDSPEREBANK + NO.IDWDS)) / NO.WDSPERSEC
043496,000339: # TIME (IN SECS) = ( 4 )*( 8 )*( 256 + 4 ) / 100
043497,000340: # THUS TIME (IN SECS TO SEND DUMP OF ERASABLE 4 TIMES VIA DOWNLINK) = 83.2 SECONDS
043498,000341:
043499,000342: # STRUCTURE OF ONE EBANK AS IT IS SENT BY DOWNLINK PROGRAM -
043500,000343: # (REMINDER - THIS ONLY DESCRIBES ONE OF THE 8 EBANKS X 4 (DUMPS) = 32 EBANKS WHICH WILL BE SENT BY DNDUMP)
043501,000344: # DOWNLIST W
043502,000345: # WORD TAKEN FROM CONTENTS OF EXAMPLE O COMMENTS
043503,000346: # 1 ERASID 0177X 0 DOWNLIST I.D. FOR DOWNLINK ERASABLE DUMP (X=7 CSM, 6 LM)
043504,000347: # 2 LOWIDCOD 77340 1 DOWNLINK SYNCH BITS. (SAME ONE USED IN ALL OTHER DOWNLISTS)
043505,000348: # 3 DUMPLOC 13400 1 (SEE NOTES ON DUMPLOC) 1 = 3RD ERAS DUMP, 3400=ECADR OF 5TH WD
043506,000349: # 4 TIME1 14120 1 TIME IN CENTISECONDS
043507,000350: # 5 FIRST WORD OF EBANK X 03400 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1400 (ECADR 3400)
043508,000351: # 6 2ND WORD OF EBANK X 00142 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1401 (ECADR 3401)
043509,000352: # 7 3RD WORD OF EBANK X 00142 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1402 (ECADR 3402)
043510,000353: # . 1
043511,000354: # . 1
043512,000355: # . 1
043513,000356: # 260D 256TH WORD OF EBANK X 03777 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1777 (ECADR 3777)
043514,000357:
043515,000358: # NOTE- DUMPLOC CONTAINS THE COUNTER AND ECADR FOR EACH WORD BEING SENT.
043516,000359: # THE BIT STRUCTURE OF DUMPLOC IS FOLLOWS---
043517,000360: # X = NOT USED
043518,000361: # X ABC EEE RRRRRRRR ABC = ERASABLE DUMP COUNTER (I.E. ABC = 0,1,2 OR 3 WHICH MEANS THAT
043519,000362: # COMPLETE ERASABLE DUMP NUMBER 1,2,3 OR 4 RESPECTIVELY IS IN PROGRESS)
043520,000363: # EEE = EBANK BITS
043521,000364: # RRRRRRRR = RELATIVE ADDRESS WITHIN AN EBANK.
043522,000365:
|
Page 991 |
043524,000367: 05,3631 34755 DNDUMPI CA ZERO # INITIALIZE DOWNLINK
043525,000368: 05,3632 54336 TS DUMPLOC # ERASABLE DUMP
043526,000369: 05,3633 03675 +2 TC SENDID # GO SEND ID AND SYNCH BITS
043527,000370: 05,3634 33643 CA LDNDUMP1 # SET DNTMGOTO
043528,000371: 05,3635 54335 TS DNTMGOTO # TO LOCATION FOR NEXT PASS
043529,000372: 05,3636 30025 CA TIME1 # PLACE TIME1
043530,000373: 05,3637 56001 XCH L # INTO L
043531,000374: 05,3640 30336 CA DUMPLOC # AND ECADR OF THIS EBANK INTO A
043532,000375: 05,3641 13623 TCF DNTMEXIT # SEND DUMPLOC AND TIME1
043533,000376:
043534,000377: 05,3642 03644 LDNDUMP ADRES DNDUMP
043535,000378: 05,3643 03657 LDNDUMP1 ADRES DNDUMP1
043536,000379:
043537,000380: 05,3644 34752 DNDUMP CA TWO # INCREMENT ECADR IN DUMPLOC
043538,000381: 05,3645 26336 ADS DUMPLOC # TO NEXT DP WORD TO BE
043539,000382: 05,3646 74357 MASK LOW8 # DUMPED AND SAVE IT.
043540,000383: 05,3647 10000 CCS A # IS THIS THE BEGINNING OF A NEW EBANK
043541,000384: 05,3650 13661 TCF DNDUMP2 # NO- THEN CONTINUE DUMPING
043542,000385: 05,3651 30336 CA DUMPLOC # YES- IS THIS THE END OF THE
043543,000386: 05,3652 70333 MASK DUMPCNT # N TH (N = 1 TO 4) COMPLETE ERASABLE
043544,000387: 05,3653 77721 MASK PRIO34 # DUMP (BIT14 FOR 4, BIT13 FOR 2 OR BIT12
043545,000388: 05,3654 10000 CCS A # FOR 1 COMPLETE ERASABLE DUMP(S)).
043546,000389: 05,3655 13437 TCF DNPHASE1 # YES- START SENDING INTERRUPTED DOWNLIST
043547,000390: # AGAIN
043548,000391: 05,3656 13633 TCF DNDUMPI +2 # NO- GO BACK AND INITIALIZE NEXT BANK
043549,000392:
043550,000393: 05,3657 33642 DNDUMP1 CA LDNDUMP # SET DNTMGOTO
043551,000394: 05,3660 54335 TS DNTMGOTO # FOR WORDS 3 TO 256D OF CURRENT EBANK
043552,000395:
043553,000396: 05,3661 30336 DNDUMP2 CA DUMPLOC
043554,000397: 05,3662 54003 TS EBANK # SET EBANK
043555,000398: 05,3663 74357 MASK LOW8 # ISOLATE RELATIVE ADDRESS.
043556,000399: 05,3664 54002 TS Q # (NOTE: MASK INSTRUCTION IS USED TO PICK
043557,000400: 05,3665 34754 CA NEG0 # UP ERASABLE REGISTERS SO THAT EDITING
043558,000401: 05,3666 54001 TS L # REGISTERS 20-23 WILL NOT BE ALTERED.)
043559,000402: 05,3667 50002 INDEX Q
043560,000403: 05,3670 E3,1400 EBANK= 1400 # PICK UP LOW ORDER REGISTER OF PAIR
043561,000404: 05,3670 71401 MASK 1401 # OF ERASABLE REGISTERS.
043562,000405: 05,3671 56001 XCH L
043563,000406: 05,3672 50002 INDEX Q # PICK UP HIGH ORDER REGISTER OF PAIR
043564,000407: 05,3673 71400 MASK 1400 # OF ERASABLE REGISTERS.
043565,000408: 05,3674 0340 EBANK= DNTMBUFF
043566,000409: 05,3674 13623 TCF DNTMEXIT # GO SEND THEM
043567,000410:
043568,000411: 05,3675 00006 SENDID EXTEND # **ENTRANCE USED BY ERASABLE DUMP PROG.**
043569,000412: 05,3676 22335 QXCH DNTMGOTO # SET DNTMGOTO SO NEXT TIME PROG WILL GO
043570,000413: 05,3677 35011 CAF ERASID # TO LOCATION FOLLOWING :TC SENDID:
043571,000414:
043572,000415: 05,3700 54001 TS L # **ENTRANCE USED BY REGULAR DOWNLINK PG**
|
Page 992 |
043574,000417: 05,3701 03527 TC WOZERO # GO SET WORD ORDER CODE TO ZERO
043575,000418: 05,3702 32065 CAF LOWIDCOD # PLACE SPECIAL ID CODE INTO L
043576,000419: 05,3703 56001 XCH L # AND ID BACK INTO A
043577,000420: 05,3704 13623 TCF DNTMEXIT # SEND DOWNLIST ID CODE(S).
043578,000421:
End of include-file DOWN-TELEMETRY_PROGRAM.agc. Parent file is MAIN.agc