Source Code
048222,000001: # Copyright: Public domain.
048223,000002: # Filename: DOWN-TELEMETRY_PROGRAM.agc
048224,000003: # Purpose: Part of the source code for Comanche, build 055. It
048225,000004: # is part of the source code for the Command Module's
048226,000005: # (CM) Apollo Guidance Computer (AGC), Apollo 11.
048227,000006: # Assembler: yaYUL
048228,000007: # Reference: pp. 1093-1102
048229,000008: # Contact: Ron Burkey <info@sandroid.org>
048230,000009: # Website: http://www.ibiblio.org/apollo.
048231,000010: # Mod history: 2009-05-08 RSB Adapted from Colossus249/ file of same name
048232,000011: # and page images. Corrected various typos
048233,000012: # in the transcription of program comments,
048234,000013: # and these should be back-ported to
048235,000014: # Colossus249.
048236,000015: # 2010-08-28 JL Fixed indentation.
048237,000016:
048238,000017: # The contents of the "Comanche055" files, in general, are transcribed
048239,000018: # from scanned documents.
048240,000019:
048241,000020: # Assemble revision 055 of AGC program Comanche by NASA
048242,000021: # 2021113-051. April 1, 1969.
048243,000022:
048244,000023: # This AGC program shall also be referred to as Colossus 2A
048245,000024:
048246,000025: # Prepared by
048247,000026: # Massachusetts Institute of Technology
048248,000027: # 75 Cambridge Parkway
048249,000028: # Cambridge, Massachusetts
048250,000029:
048251,000030: # under NASA contract NAS 9-4065.
048252,000031:
048253,000032: # Refer directly to the online document mentioned above for further
048254,000033: # information. Please report any errors to info@sandroid.org.
048255,000034:
048256,000035: # Page 1093
048257,000036: # PROGRAM NAME -- DOWN TELEMETRY PROGRAM
048258,000037: # MOD NO. -- 0 TO COMPLETELY REWRITE THE DOWN TELEMETRY PROGRAM AND DOWNLINK ERASABLE DUMP PROGRAM FOR THE
048259,000038: # PURPOSE OF SAVING APPROXIMATELY 150 WORDS OF CORE STORAGE.
048260,000039: # THIS CHANGE REQUIRES AN ENTIRELY NEW METHOD OF SPECIFYING DOWNLINK LISTS. REFER TO DOWNLINK
048261,000040: # LISTS LOG SECTION FOR MORE DETAILS. HOWEVER THIS CHANGES WILL NOT AFFECT THE GROUND PROCESSING
048262,000041: # OF DOWN TELEMETRY DATA.
048263,000042: # MOD BY -- KILROY, SMITH, DEWITT
048264,000043: # DATE -- 02 OCT 67
048265,000044: # AUTHORS -- KILROY, SMITH, DWWITT, DEWOLF, FAGIN
048266,000045: # LOG SECTION -- DOWN-TELEMETRY PROGRAM
048267,000046:
048268,000047: # FUNCTIONAL DESCRIPTION -- THIS ROUTINE IS INITIATED BY TELEMETRY END
048269,000048: # PULSE FROM THE DOWNLINK TELEMETRY CONVERTER. THIS PULSE OCCURS
048270,000049: # AT 50 TIMES PER SEC (EVERY 20 MS) THEREFORE DODOWNTM IS
048271,000050: # EXECUTED AT THESE RATES. THIS ROUTINE SELECTS THE APPROPRIATE
048272,000051: # AGC DATA TO BE TRANSMITTED DOWNLINK AND LOADS IT INTO OUTPUT
048273,000052: # CHANNELS 34 AND 35. THE INFORMATION IS THEN GATED OUT FROM THE
048274,000053: # LGC IN SERIAL FASHION.
048275,000054:
048276,000055: # THIS PROGRAM IS CODED FOR A 2 SECOND DOWNLIST. SINCE DOWNRUPTS
048277,000056: # OCCUR EVERY 20 MS AND 2 AGC COMPUTER WORDS CAN BE PLACED IN
048278,000057: # CHANNELS 34 AND 35 DURING EACH DOWNRUPT THE PROGRAM IS CAPABLE
048279,000058: # OF SENDING 200 AGC WORDS EVERY 2 SECONDS.
048280,000059:
048281,000060: # CALLING SEQUENCE -- NONE
048282,000061: # PROGRAM IS ENTERED VIA TCF DODOWNTM WHICH IS EXECUTED AS A
048283,000062: # RESULT OF A DOWNRUPT. CONTROL IS RETURNED VIA TCF RESUME WHICH
048284,000063: # IN EFFECT IS A RESUME.
048285,000064:
048286,000065: # SUBROUTINES CALLED -- NONE
048287,000066:
048288,000067: # NORMAL EXIT MODE -- TCF RESUME
048289,000068:
048290,000069: # ALARM OR ABORT EXIT MODE -- NONE
048291,000070:
048292,000071: # RESTART PROTECTION:
048293,000072: # ON A FRESH START AND RESTART THE `STARTSUB' SUBROUTINE WILL INITIALIZE THE DOWNLIST POINTER (ACTUALLY
048294,000073: # DNTMGOTO) TO THE BEGINNING OF THE CURRENT DOWNLIST (I.E., CURRENT CONTENTS OF DNLSTADR). THIS HAS THE
048295,000074: # EFFECT OF IGNORING THE REMAINDER OF THE DOWNLIST WHICH THE DOWN-TELEMETRY PROGRAM WAS WORKING ON WHEN
048296,000075: # THE RESTART (OR FRESH START) OCCURRED AND RESUME DOWN TELEMETRY FROM THE BEGINNING OF THE CURRENT
048297,000076: # DOWNLIST.
048298,000077:
048299,000078: # ALSO OF INTEREST IS THE FACT THAT ON A RESTART THE AGC WILL ZERO DOWNLINK CHANNELS 13, 34 AND 35.
048300,000079:
048301,000080: # DOWNLINK LIST SELECTION:
048302,000081: # THE APPROPRIATE DOWNLINK LISTS ARE SELECTED BY THE FOLLOWING:
048303,000082: # 1. FRESH START
048304,000083: # 2. V37EXXE WHERE XX = THE MAJOR MODE BEING SELECTED.
048305,000084: # 3. UPDATE PROGRAM (P27)
048306,000085: # 4. NON-V37 SELECTABLE TYPE PROGRAMS (E.G., AGS INITIALIZATION (SUNDANCE, LUMINARY) AND P61-P62
048307,000086: # TRANSITIONS (COLOSSUS) ETC.).
048308,000087:
048309,000088: # DOWNLINK LIST RULES AND LIMITATIONS:
048310,000089: # READ SECTION(S) WHICH FOLLOW `DEBRIS' WRITEUP.
048311,000090:
048312,000091: # OUTPUT -- EVERY 2 SECONDS 100 DOUBLE PRECISION WORDS (I.E., 200 LGC
048313,000092: # COMPUTER WORDS) ARE TRANSMITTED VIA DOWNLINK.
048314,000093:
048315,000094: # ERASABLE INITIALIZATION REQUIRED -- NONE
048316,000095: # `DNTMGOTO' AND `DNLSTADR' ARE INITIALIZED BY THE FRESH START PROGRAM.
048317,000096:
048318,000097: # DEBRIS (ERASABLE LOCATIONS DESTROYED BY THIS PROGRAM) --
048319,000098: # LDATALST, DNTMBUFF TO DNTMBUFF +21D, TMINDEX, DNQ.
048320,000099: # Page 1094
048321,000100: # (No source on this page of the original assembly listing.)
048322,000101:
048323,000102: # Page 1095
048324,000103: # DODOWNTM IS ENTERED EVERY 20 MS BY AN INTERRUPT TRIGGERED BY THE
048325,000104: # RECEIPT OF AN ENDPULSE FROM THE SPACECRAFT TELEMETRY PROGRAMMER.
048326,000105:
048327,000106: # NOTES REGARDING DOWNLINK LISTS ASSOCIATED WITH THIS PROGRAM:
048328,000107: # 1. DOWNLISTS. DOWNLISTS MUST BE COMPILED IN THE SAME BANK AS THE
048329,000108: # DOWN-TELEMETRY PROGRAM. THIS IS DONE FOR EASE OF CODING, FASTER
048330,000109: # EXECUTION.
048331,000110: # 2. EACH DOWNLINK LIST CONSISTES OF A CONTROL LIST AND A NUMBER OF
048332,000111: # SUBLISTS.
048333,000112: # 3. A SUBLIST REFERS TO A SNAPSHOT OR DATA COMMON TO THE SAME OR OTHER
048334,000113: # DOWNLINK LISTS. ANY SUBLIST CONTAINING COMMON DATA NEEDS TO BE
048335,000114: # CODED ONLY ONCE FOR THE APPLICABLE DOWNLINK LISTS.
048336,000115: # 4. SNAPSHOT SUBLISTS REFER SPECIFICALLY TO HOMOGENEOUS DATA WHICH MUST BE
048337,000116: # SAVED IN A BUFFER DURING ONE DOWNRUPT.
048338,000117: # 5. THE 1DNADR FOR THE 1ST WORD OF SNAPSHOT DATA IS FOUND AT THE END
048339,000118: # OF EACH SNAPSHOT SUBLIST, SINCE THE PROGRAM CODING SENDS THIS DP WORD
048340,000119: # IMMEDIATELY AFTER STORING THE OTHERS IN THE SNAPSHOT BUFFER.
048341,000120: # 6. ALL LISTS ARE COMBINATIONS OF CODED ERASABLE ADDRESS CONSTANTS
048342,000121: # CREATED FOR THE DOWNLIST PROGRAM.
048343,000122: # A. 1DNADR 1-WORD DOWNLIST ADDRESS.
048344,000123: # SAME AS ECADR, BUT USED WHEN THE WORD ADDRESSED IS THE LEFT
048345,000124: # HALF OF A DOUBLE-PRECISION WORD FOR DOWN TELEMETRY.
048346,000125: # B. 2DNADR - 6DNADR N-WORD DOWNLIST ADDRESS, N = 2 - 6.
048347,000126: # SAME AS 1DNADR, BUT WTIH THE 4 UNUSED BITS OF THE ECADR FORMAT
048348,000127: # FILLED IN WITH 0001-0101. USED TO POINT TO A LIST OF N DOUBLE-
048349,000128: # PRECISION WORDS, STORED CONSECUTIVELY, FOR DOWN TELEMETRY.
048350,000129: # C. DNCHAN DOWNLIST CHANNEL ADDRESS.
048351,000130: # SAME AS 1DNADR, BUT WITH PREFIX BITS 0111. USED TO POINT TO
048352,000131: # A PAIR OF CHANNELS FOR DOWN TELEMETRY.
048353,000132: # D. DNPTR DOWN-TELEMETRY SUBLIST POINTER.
048354,000133: # SAME AS CAF BUT TAGGES AS A CONSTANT. USED IN CONTROL LIST TO POINT TO A SUBLIST.
048355,000134: # CAUTION --- A DNPTR CANNOT BE USED IN A SUBLIST.
048356,000135: # 7. THE WORD ORDER CODE IS SET TO ZERO AT THE BEGINNING OF EACH DOWNLIST (I.E., CONTROL LIST) AND WHEN
048357,000136: # A `1DNADR TIME2' IS DETECTED IN THE CONTROL LIST (ONLY).
048358,000137: # 8. IN THE SNAPSHOT SUBLIST ONLY, THE DNADR'S CANNOT POINT TO THE FIRST WORD OF ANY EBANK.
048359,000138:
048360,000139: # DOWNLIST LIST RESTRICTIONS:
048361,000140: # (THE FOLLOWING POINTS MAY BE LISTED ELSEWHERE BUT ARE LISTED HERE SO IT IS CLEAR THAT THESE THINGS CANNOT BE
048362,000141: # DONE)
048363,000142: # 1. SNAPSHOT DOWNLIST:
048364,000143: # (A) CANNOT CONTAIN THE FOLLOWING ECADRS (I.E., 1DNADR'S): Q, 400, 1000, 1400, 2000, 2400, 3000, 3400.
048365,000144: # (B) CAN CONTAIN ONLY 1DNADR'S
048366,000145: # 2. ALL DOWNLINKED DATA (EXCEPT CHANNELS) IS PICKED UP BY A DCA SO DOWNLINK LISTS CANNOT CONTAIN THE
048367,000146: # EQUIVALENT OF THE FOLLOWING ECADRS (I.E., IDNADRS): 377, 777, 1377, 1777, 2377, 2777, 3377, 3777.
048368,000147: # (NOTE: TE TERM `EQUIVALENT' MEANT THAT THE IDNADR TO 6DNADR WILL BE PROCESSED LIKE 1 TO 6 ECADRS)
048369,000148: # 3. CONTROL LISTS AND SUBLISTS CANNOT HAVE ENTRIES = OCTAL 00000 OR OCTAL 77777
048370,000149: # Page 1096
048371,000150: # 4. THE `1DNADR TIME2' WHICH WILL CAUSE THE DOWNLINT PROGRAM TO SET THE WORDER CODE TO 3 MUST APPEAR IN THE
048372,000151: # CONTROL SECTION OF THE DOWNLIST.
048373,000152: # 5. `DNCHAN 0' CANNOT BE USED.
048374,000153: # 6. `DNPTR 0' CANNOT BE USED.
048375,000154: # 7. DNPTR CANNOT APPEAR IN A SUBLIST.
048376,000155:
048377,000156: # EBANK SETTINGS
048378,000157: # IN THE PROCESS OF SETTING THE EBANK (WHEN PICKING UP DOWNLINK DATA) THE DOWN TELEMETRY PROGRAM PUTS
048379,000158: # `GARBAGE' INTO BITS15-12 OF EBANK. HUGH BLAIR-SMITH WARNS US THAT BITS15-12 OF EBANK MAY BECOME
048380,000159: # SIGNIFICANT SOMEDAY IN THE FUTURE. IF/WHEN THAT HAPPENS, THE PROGRAM SHOULD INSURE (BY MASKING ETC.)
048381,000160: # THAT BITS 15-12 OF EBANK ARE ZERO.
048382,000161:
048383,000162: # INITIALIZATION REQUIRED -- TO INTERRUPT CURRENT LIST AND START A NEW ONE.
048384,000163: # 1. ADRES OF DOWNLINK LIST INTO DNLSTADR
048385,000164: # 2. NEGONE INTO SUBLIST
048386,000165: # 3. NEGONE INTO DNECADR
048387,000166:
048388,000167: 22,3510 BANK 22
048389,000168: 05,2000 SETLOC DOWNTELM
048390,000169: 05,2000 BANK
048391,000170:
048392,000171: 05,3521 0340 EBANK= DNTMBUFF
048393,000172:
048394,000173: 05,3521 COUNT 05/DPROG
048395,000174:
048396,000175: 05,3521 54016 DODOWNTM TS BANKRUPT
048397,000176: 05,3522 00006 EXTEND
048398,000177: 05,3523 22012 QXCH QRUPT # SAVE Q
048399,000178: 05,3524 35011 CA BIT7 # SET WORD ORDER CODE TO 1. EXCEPTION: AT
048400,000179: 05,3525 00006 EXTEND # THE BEGINNING OF EACH LIST THE WORD
048401,000180: 05,3526 05013 WOR CHAN13 # CODE WILL BE SET BACK TO 0.
048402,000181: 05,3527 00335 TC DNTMGOTO # GOTO APPROPRIATE PHASE OF PROGRAM
048403,000182:
048404,000183: 05,3530 37716 DNPHASE1 CA NEGONE # INITIALIZE ALL CONTROL WORDS
048405,000184: 05,3531 54337 TS SUBLIST # WORDS TO MINUS ONE
048406,000185: 05,3532 54336 TS DNECADR
048407,000186: 05,3533 33653 CA LDNPHAS2 # SET DNTMGOTO = 0 ALL SUSEQUENT DOWRUPTS
048408,000187: 05,3534 54335 TS DNTMGOTO # GO TO DNPHASE2
048409,000188: 05,3535 13551 TCF NEWLIST
048410,000189: 05,3536 10336 DNPHASE2 CCS DNECADR # SENDING OF DATA IN PROGRESS
048411,000190: 05,3537 03666 DODNADR TC FETCH2WD # YES -- THEN FETCH THE NEXT 2 SP WORDS
048412,000191: 05,3540 77753 MINTIME2 -1DNADR TIME2 # NEGATIVE OF TIME2 1DNADR
048413,000192: 05,3541 13542 TCF +1 # (ECADR OF 3776 + 74001 = 77777)
048414,000193:
048415,000194: 05,3542 10337 CCS SUBLIST # IS THE SUBLIST IN CONTROL
048416,000195: # Page 1097
048417,000196: 05,3543 13701 TCF NEXTINSL # YES
048418,000197: 05,3544 74001 DNADRDCR OCT 74001 # DNADR COUNT AND ECADR DECREMENTER
048419,000198:
048420,000199: 05,3545 30334 CHKLIST CA CTLIST
048421,000200: 05,3546 00006 EXTEND
048422,000201: 05,3547 63551 BZMF NEWLIST # IT WILL BE NEGATIVE AT END OF LIST
048423,000202: 05,3550 13556 TCF NEXTINCL
048424,000203: 05,3551 50332 NEWLIST INDEX DNLSTCOD
048425,000204: 05,3552 32335 CA DNTABLE # INITIALIZE CTLIST WITH
048426,000205: 05,3553 54334 TS CTLIST # STARTING ADDRESS OF NEW LIST
048427,000206: 05,3554 40332 CS DNLSTCOD
048428,000207: 05,3555 13771 TCF SENDID +3
048429,000208: 05,3556 50334 NEXTINCL INDEX CTLIST
048430,000209: 05,3557 30000 CA 0
048431,000210: 05,3560 10000 CCS A
048432,000211: 05,3561 24334 INCR CTLIST # SET POINTER TO PICK UP NEXT CTLIST WORD
048433,000212: 05,3562 13566 TCF +4 # ON NEXT ENTRY TO PROG. (A SHOULD NOT =0)
048434,000213: 05,3563 56334 XCH CTLIST # SET CTLIST TO NEGATIVE AND PLACE(CODING)
048435,000214: 05,3564 40000 COM # UNCOMPLEMENTED DNADR INTO A. (FOR LA)
048436,000215: 05,3565 56334 XCH CTLIST # (ST IN )
048437,000216: 05,3566 24000 +4 INCR A # (CTLIST)
048438,000217: 05,3567 54336 TS DNECADR # SAVE DNADR
048439,000218: 05,3570 63540 AD MINTIME2 # TEST FOR TIME2 (NEG. OF ECADR)
048440,000219: 05,3571 10000 CCS A
048441,000220: 05,3572 13576 TCF SETWO +1 # DON'T SET WORD ORDER CODE
048442,000221: 05,3573 47777 MINB1314 OCT 47777 # MINUS BIT 13 AND 14 (CAN'T GET HERE)
048443,000222: 05,3574 13576 TCF SETWO +1 # DON'T SET WORD ORDER CODE
048444,000223: 05,3575 03620 SETWO TC WOZERO # GO SET WORD ORDER CODE TO ZERO.
048445,000224: 05,3576 30336 +1 CA DNECADR # RELOAD A WITH THE DNADR.
048446,000225: 05,3577 63573 +2 AD MINB1314 # IS THIS A REGULAR DNADR?
048447,000226: 05,3600 00006 EXTEND
048448,000227: 05,3601 63666 BZMF FETCH2WD # YES. (A MUST NEVER BE ZERO)
048449,000228: 05,3602 67710 AD MINB12 # NO. IS IT A POINTER (DNPTR) OR A
048450,000229: 05,3603 00006 EXTEND # CHANNEL(DNCHAN)
048451,000230: 05,3604 63624 BZMF DODNPTR # IT'S A POINTER. (A MUST NEVER BE ZERO)
048452,000231:
048453,000232: 05,3605 00006 DODNCHAN TC 6 # (EXECUTED AS EXTEND) IT'S A CHANNEL
048454,000233: 05,3606 50336 INDEX DNECADR
048455,000234: 05,3607 44000 INDEX 0 -4000 # (EXECUTED AS READ)
048456,000235: 05,3610 54001 TS L
048457,000236: 05,3611 00006 TC 6 # (EXECUTED AS EXTEND)
048458,000237: 05,3612 50336 INDEX DNECADR
048459,000238: 05,3613 43777 INDEX 0 -4001 # (EXECUTED AS READ)
048460,000239: 05,3614 54336 TS DNECADR # SET DNECADR
048461,000240: 05,3615 37716 CA NEGONE # TO MINUS
048462,000241: 05,3616 56336 XCH DNECADR # WHILE PRESERVING A.
048463,000242: 05,3617 13714 TCF DNTMEXIT # GO SEND CHANNELS
048464,000243:
048465,000244: 05,3620 45011 WOZERO CS BIT7
048466,000245: 05,3621 00006 EXTEND
048467,000246: # Page 1098
048468,000247: 05,3622 03013 WAND CHAN13 # SET WORD ORDER CODE TO ZERO
048469,000248: 05,3623 00002 TC Q # RETURN TO CALLER
048470,000249:
048471,000250: 05,3624 50336 DODNPTR INDEX DNECADR # DNECADR CONTAINS ADRES OF SUBLIST
048472,000251: 05,3625 00000 0 0 # CLEAR AND ADD LIST ENTRY INTO A.
048473,000252: 05,3626 10000 CCS A # IS THIS A SNAPSHOT SUBLIST
048474,000253: 05,3627 30336 CA DNECADR # NO, IT IS A REGULAR SUBLIST.
048475,000254: 05,3630 13700 TCF DOSUBLST # A MUST NOT BE ZERO.
048476,000255:
048477,000256: 05,3631 56336 XCH DNECADR # YES. IT IS A SNAPSHOT SUBLIST.
048478,000257: 05,3632 54337 TS SUBLIST # C(DNECADR) INTO SUBLIST
048479,000258: 05,3633 35021 CAF ZERO # A INTO A
048480,000259: 05,3634 56336 XCH TMINDEX # (NOTE: TMINDEX = DNECADR)
048481,000260:
048482,000261: # THE FOLLOWING CODING (FROM SNAPLOOP TO SNAPEND) IS FOR THE PURPOSE OF TAKING A SNAPSHOT OF 12 DP REGISTERS.
048483,000262: # THIS IS DONE BY SAVING 11 DP REGISTERS IN DNTMBUFF AND SENDING THE FIRST DP WORD IMMEDIATELY.
048484,000263: # THE SNAPSHOT PROCESSING IS THE MOST TIME CONSUMING AND THEREFORE THE CODING AND LIST STRUCTURE WERE DESIGNED
048485,000264: # TO MINIMIZE TIME. THE TIME OPTIMIZATION RESULTS IN RULES UNIQUE TO THE SNAPSHOT PORTION OF THE DOWNLIST.
048486,000265: # THESE RULES ARE ......
048487,000266: # 1. ONLY 1DNADR'S CAN APPEAR IN THE SNAPSHOT SUBLIST
048488,000267: # 2. THE 1DNADR'S CANNOT REFER TO THE FIRST LOCATION IN ANY BANK.
048489,000268:
048490,000269: 05,3635 54003 SNAPLOOP TS EBANK # SET EBANK
048491,000270: 05,3636 74373 MASK LOW8 # ISOLATE RELATIVE ADDRESS
048492,000271: 05,3637 00006 EXTEND
048493,000272: 05,3640 50000 INDEX A
048494,000273: 05,3641 E3,1401 EBANK= 1401
048495,000274: 05,3641 31402 DCA 1401 # PICK UP 2 SNAPSHOT WORDS.
048496,000275: 05,3642 0340 EBANK= DNTMBUFF
048497,000276: 05,3642 50336 INDEX TMINDEX
048498,000277: 05,3643 52341 DXCH DNTMBUFF # STORE 2 SNAPSHOT WORDS IN BUFFER
048499,000278: 05,3644 24336 INCR TMINDEX # SET BUFFER INDEX FOR NEXT 2 WORDS.
048500,000279: 05,3645 24336 INCR TMINDEX
048501,000280: 05,3646 24337 SNAPAGN INCR SUBLIST # SET POINTER TO NEXT 2 WORDS OF SNAPSHOT
048502,000281: 05,3647 50337 INDEX SUBLIST
048503,000282: 05,3650 00000 0 0 # = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
048504,000283: 05,3651 10000 CCS A # TEST FOR LAST TWO WORDS OF SNAPSHOT.
048505,000284: 05,3652 13635 TCF SNAPLOOP # NOT LAST TWO.
048506,000285: 05,3653 03536 LDNPHAS2 GENADR DNPHASE2
048507,000286: 05,3654 54337 TS SUBLIST # YES, LAST. SAVE A.
048508,000287: 05,3655 37716 CA NEGONE # SET DNECADR AND
048509,000288: 05,3656 54336 TS DNECADR # SUBLIST POINTERS
048510,000289: 05,3657 56337 XCH SUBLIST # TO NEGATIVE VALUES
048511,000290: 05,3660 54003 TS EBANK
048512,000291: 05,3661 74373 MASK LOW8
048513,000292: 05,3662 00006 EXTEND
048514,000293: 05,3663 50000 INDEX A
048515,000294: 05,3664 E3,1401 EBANK= 1401
048516,000295: # Page 1099
048517,000296: 05,3664 31402 DCA 1401 # PICK UP FIRST 2 WORDS OF SNAPSHOT.
048518,000297: 05,3665 0340 EBANK= DNTMBUFF
048519,000298: 05,3665 13714 SNAPEND TCF DNTMEXIT # NOW GO SEND THEM.
048520,000299:
048521,000300: 05,3666 30336 FETCH2WD CA DNECADR
048522,000301: 05,3667 54003 TS EBANK # SET EBANK
048523,000302: 05,3670 74373 MASK LOW8 # ISOLATE RELATIVE ADDRESS
048524,000303: 05,3671 54001 TS L
048525,000304: 05,3672 33544 CA DNADRDCR # DECREMENT COUNT AND ECADR
048526,000305: 05,3673 26336 ADS DNECADR
048527,000306: 05,3674 00006 EXTEND
048528,000307: 05,3675 50001 INDEX L
048529,000308: 05,3676 E3,1400 EBANK= 1400
048530,000309: 05,3676 31401 DCA 1400 # PICK UP 2 DATA WORDS
048531,000310: 05,3677 0340 EBANK= DNTMBUFF
048532,000311: 05,3677 13714 TCF DNTMEXIT # NOW GO SEND THEM.
048533,000312:
048534,000313: 05,3700 54337 DOSUBLST TS SUBLIST # SET SUBLIST POINTER
048535,000314: 05,3701 50337 NEXTINSL INDEX SUBLIST
048536,000315: 05,3702 00000 0 0 # = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
048537,000316: 05,3703 10000 CCS A # IS IT THE END OF THE SUBLIST
048538,000317: 05,3704 24337 INCR SUBLIST # NO --
048539,000318: 05,3705 13711 TCF +4
048540,000319: 05,3706 54337 TS SUBLIST # SAVE A.
048541,000320: 05,3707 37716 CA NEGONE # SET SUBLIST TO MINUS
048542,000321: 05,3710 56337 XCH SUBLIST # RETRIEVE A.
048543,000322: 05,3711 24000 +4 INCR A
048544,000323: 05,3712 54336 TS DNECADR # SAVE DNADR
048545,000324: 05,3713 13577 TCF SETWO +2 # GO USE COMMON CODING (PROBLEMS WOULD
048546,000325: # OCCUR IF THE PROGRAM ENCOUNTERED A
048547,000326: # DNPTR NOW)
048548,000327:
048549,000328: 05,3714 00006 DNTMEXIT EXTEND # DOWN-TELEMETRY EXIT
048550,000329: 05,3715 01034 WRITE DNTM1 # TO SEND A + L TO CHANNELS 34 + 35
048551,000330: 05,3716 30001 CA L # RESPECTIVELY
048552,000331: 05,3717 00006 TMEXITL EXTEND
048553,000332: 05,3720 01035 WRITE DNTM2
048554,000333: 05,3721 15333 TMRESUME TCF RESUME # EXIT TELEMTRY PROGRAM VIA RESUME.
048555,000334:
048556,000335: 05,3722 7710 MINB12 EQUALS -1/8
048557,000336: 05,3722 0336 DNECADR EQUALS TMINDEX
048558,000337: 05,3722 0334 CTLIST EQUALS LDATALST
048559,000338: 05,3722 0337 SUBLIST EQUALS DNQ
048560,000339:
048561,000340: # Page 1100
048562,000341: # SUBROUTINE NAME -- DNDUMP
048563,000342:
048564,000343: # FUNCTIONAL DESCRIPTION -- TO SEND (DUMP) ALL 8 BANKS OF ERASABLE STORAGE TWICE. BANKS ARE SENT ONE AT A TIME
048565,000344: # EACH BANK IS PRECEDED BY AN ID WORD, SYNCH BITS, ECADR AND TIME1 FOLLOWED BY THE 256D WORDS OF EACH
048566,000345: # EBANK. EBANKS ARE DUMPED IN ORDER (I.E., EBANK 0 FIRST, THEN EBANK1 ETC.)
048567,000346:
048568,000347: # CALLING SEQUENCE -- THE GROUND OR ASTRONAUT BY KEYING V74E CAN INITIALIZE THE DUMP.
048569,000348: # AFTER KEYING IN V74E THE CURRENT DOWNLIST WILL BE IMMEDIATELY TERMINATED AND THE DOWNLINK ERASABLE DUMP
048570,000349: # WILL BEGIN.
048571,000350:
048572,000351: # ONCE INITITIATED THE DOWNLINK ERASABLE DUMP CAN BE TERMINATED (AND INTERRUPTED DOWNLIST REINSTATED) ONLY
048573,000352: # BY THE FOLLOWING:
048574,000353:
048575,000354: # 1. A FRESH START
048576,000355: # 2. COMPLETION OF ALL DOWNLINK DUMPS REQUESTED (ACCORDING TO BITS SET IN DUMPCNT). NOTE THAT DUMPCNT
048577,000356: # CAN BE ALTERED BY A V21N01.
048578,000357: # 3. AND INVOLUNTARILY BY A RESTART.
048579,000358:
048580,000359: # NORMAL EXIT MODE -- TCF DNPHASE1
048581,000360:
048582,000361: # ALARM OR ABORT MODE -- NONE
048583,000362:
048584,000363: # *SUBROUTINES CALLED -- NONE
048585,000364:
048586,000365: # ERASABLE INITIALIZATION REQUIRED --
048587,000366: # DUMPCNT OCT 20000 IF 4 COMPLETE ERASABLE DUMPS ARE DESIRED
048588,000367: # DUMPCNT OCT 10000 IF 2 COMPLETE ERASABLE DUMPS ARE DESIRED
048589,000368: # DUMPCNT OCT 04000 IF 1 COMPLETE ERASABLE DUMP IS DESIRED
048590,000369:
048591,000370: # DEBRIS -- DUMPLOC, DUMPSW, DNTMGOTO, EBANK, AND CENTRAL REGISTERS
048592,000371:
048593,000372: # TIMING -- TIME (IN SECS) = ((NO.DUMPS)*(NO.EBANKS)*(WDSPEREBANK + NO.IDWDS)) / NO.WDSPERSEC
048594,000373: # TIME (IN SECS) = ( 4 )*( 8 )*( 256 + 4 ) / 100
048595,000374: # THUS TIME (IN SECS TO SEND DUMP OF ERASABLE 4 TIMES VIA DOWNLINK) = 83.2 SECONDS
048596,000375:
048597,000376: # STRUCTURE OF ONE EBANK AS IT IS SENT BY DOWNLINK PROGRAM --
048598,000377: # (REMINDER -- THIS ONLY DESCRIBES ONE OF THE 8 EBANKS X 4 (DUMPS) = 32 EBANKS WHICH WILL BE SENT BY DNDUMP)
048599,000378:
048600,000379: # DOWNLIST W
048601,000380: # WORD TAKEN FROM CONTENTS OF EXAMPLE O COMMENTS
048602,000381: # 1 ERASID 0177X 0 DOWNLIST I.D. FOR DOWNLINK ERASABLE DUMP (X=7 CSM, 6 LM)
048603,000382: # 2 LOWIDCOD 77340 1 DOWNLINK SYNCH BITS. (SAME ONE USED IN ALL OTHER DOWNLISTS)
048604,000383: # 3 DUMPLOC 13400 1 (SEE NOTES ON DUMPLOC) 1 = 3RD ERAS DUMP, 3400=ECADR OF 5TH WD
048605,000384: # 4 TIME1 14120 1 TIME IN CENTISECONDS
048606,000385: # 5 FIRST WORD OF EBANK X 03400 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1400 (ECADR 3400)
048607,000386: # 6 2ND WORD OF EBANK X 00142 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1401 (ECADR 3401)
048608,000387: # 7. 3RD WORD OF EBANK X 00142 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1402 (ECADR 3402)
048609,000388: # .
048610,000389: # .
048611,000390: # .
048612,000391: # 260D 256TH WORD OF EBANK X 03777 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1777 (ECADR 3777)
048613,000392:
048614,000393: # NOTE -- DUMPLOC CONTAINS THE COUNTER AND ECADR FOR EACH WORD BEING SENT.
048615,000394: # THE BIT STRUCTURE OF DUMPLOC IS FOLLOW --
048616,000395: # X = NOT USED
048617,000396: # X ABC EEE RRRRRRRR ABC = ERASABLE DUMP COUNTER (I.E. ABC = 0,1,2, OR 3 WHICH MEANS THAT
048618,000397: # COMPLETE ERASABLE DUMP NUMBER 1,2,3, OR 4 RESPECTIVELY IS IN PROGRESS)
048619,000398: # EEE = EBANK BITS
048620,000399: # RRRRRRRR = RELATIVE ADDRESS WITHIN AN EBANK
048621,000400:
048622,000401: # Page 1101
048623,000402: 05,3722 35021 DNDUMPI CA ZERO # INITIALIZE DOWNLINK
048624,000403: 05,3723 54336 TS DUMPLOC # ERASABLE DUMP
048625,000404: 05,3724 03766 +2 TC SENDID # GO SEND ID AND SYNCH BITS
048626,000405: 05,3725 33734 CA LDNDUMP1 # SET DNTMGOTO
048627,000406: 05,3726 54335 TS DNTMGOTO # TO LOCATION FOR NEXT PASS
048628,000407: 05,3727 30025 CA TIME1 # PLACE TIME1
048629,000408: 05,3730 56001 XCH L # INTO L
048630,000409: 05,3731 30336 CA DUMPLOC # AND ECADR OF THIS EBANK INTO A
048631,000410: 05,3732 13714 TCF DNTMEXIT # SEND DUMPLOC AND TIME1
048632,000411:
048633,000412: 05,3733 03735 LDNDUMP ADRES DNDUMP
048634,000413: 05,3734 03750 LDNDUMP1 ADRES DNDUMP1
048635,000414:
048636,000415: 05,3735 35016 DNDUMP CA TWO # INCREMENT ECADR IN DUMPLOC
048637,000416: 05,3736 26336 ADS DUMPLOC # TO NEXT DP WORD TO BE
048638,000417: 05,3737 74373 MASK LOW8 # DUMPED AND SAVE IT.
048639,000418: 05,3740 10000 CCS A # IS THIS THE BEGINNING OF A NEW EBANK
048640,000419: 05,3741 13752 TCF DNDUMP2 # NO -- THEN CONTINUE DUMPING
048641,000420: 05,3742 30336 CA DUMPLOC # YES -- IS THIS THE END OF THE
048642,000421: 05,3743 70333 MASK DUMPCNT # N-TH(N = 1 TO 4) COMPLETE ERASABLE
048643,000422: 05,3744 77671 MASK PRIO34 # DUMP(BIT14 FOR 4, BIT13 FOR 2 OR BIT12
048644,000423: 05,3745 10000 CCS A # FOR 1 COMPLETE ERASABLE DUMP(S)).
048645,000424: 05,3746 13530 TCF DNPHASE1 # YES -- SEND DOWNLIST AGAIN
048646,000425: # AGAIN
048647,000426: 05,3747 13724 TCF DNDUMPI +2 # NO -- GO BACK AND INITIALZE NEXT BANK
048648,000427:
048649,000428: 05,3750 33733 DNDUMP1 CA LDNDUMP # SET DNTMGOTO
048650,000429: 05,3751 54335 TS DNTMGOTO # FOR WORDS 3 TO 256D OF CURRENT EBANK
048651,000430:
048652,000431: 05,3752 30336 DNDUMP2 CA DUMPLOC
048653,000432: 05,3753 54003 TS EBANK # SET EBANK
048654,000433: 05,3754 74373 MASK LOW8 # ISOLATE RELATIVE ADDRESS.
048655,000434: 05,3755 54002 TS Q # (NOTE: MASK INSTRUCTION IS USED TO PICK
048656,000435: 05,3756 35020 CA NEG0 # UP ERASABLE REGISTERS TO THAT EDITING
048657,000436: 05,3757 54001 TS L # REGISTERS 20-23 WILL NOT BE ALTERED.)
048658,000437: 05,3760 50002 INDEX Q
048659,000438: 05,3761 E3,1400 EBANK= 1400 # PICK UP LOW ORDER REGISTER OF PAIR
048660,000439: 05,3761 71401 MASK 1401 # OF ERASABLE REGISTERS.
048661,000440: 05,3762 56001 XCH L
048662,000441: 05,3763 50002 INDEX Q # PICK UP HIGH ORDER REGISTER OF PAIR
048663,000442: 05,3764 71400 MASK 1400 # OF ERASABLE REGISTERS.
048664,000443: 05,3765 0340 EBANK= DNTMBUFF
048665,000444: 05,3765 13714 TCF DNTMEXIT # GO SEND THEM
048666,000445:
048667,000446: 05,3766 00006 SENDID EXTEND # ** ENTRANCE USED BY ERASABLE DUMP PROG. **
048668,000447: 05,3767 22335 QXCH DNTMGOTO # SET DNTMGOTO SO NEXT TIME PROG WILL GO
048669,000448: 05,3770 35054 CAF ERASID # TO LOCATION FOLLOWING `TC SENDID'
048670,000449:
048671,000450: 05,3771 54001 TS L # ** ENTRANCE USED BY REGULAR DOWNLINK PG **
048672,000451: # Page 1102
048673,000452: 05,3772 03620 TC WOZERO # GO SET WORD ORDER CODE TO ZERO
048674,000453: 05,3773 32000 CAF LOWIDCOD # PLACE SPECIAL ID CODE INTO L
048675,000454: 05,3774 56001 XCH L # AND ID BACK INTO A
048676,000455: 05,3775 13714 TCF DNTMEXIT # SEND DOWNLIST ID CODE(S).
End of include-file DOWN-TELEMETRY_PROGRAM.agc. Parent file is MAIN.agc