Source Code
043339,000002: ## Copyright: Public domain. 043340,000003: ## Filename: DOWN-TELEMETRY_PROGRAM.agc 043341,000004: ## Purpose: A section of Luminary revision 210. 043342,000005: ## It is part of the source code for the Lunar Module's (LM) 043343,000006: ## Apollo Guidance Computer (AGC) for Apollo 15-17. 043344,000007: ## This file is intended to be a faithful transcription, except 043345,000008: ## that the code format has been changed to conform to the 043346,000009: ## requirements of the yaYUL assembler rather than the 043347,000010: ## original YUL assembler. 043348,000011: ## Reference: pp. 986-995 043349,000012: ## Assembler: yaYUL 043350,000013: ## Contact: Ron Burkey <info@sandroid.org>. 043351,000014: ## Website: www.ibiblio.org/apollo/index.html 043352,000015: ## Mod history: 2016-11-17 JL Created from Luminary131 version. 043353,000016: ## 2016-12-07 JS Compared to Luminary210 images. Updated where needed. 043354,000017: ## 2016-12-26 RSB Comment-text proofed using ProoferComments 043355,000018: ## and corrected errors found. 043356,000019: ## 2017-03-15 RSB Comment-text fixes identified in 5-way 043357,000020: ## side-by-side diff of Luminary 69/99/116/131/210. 043358,000021:
![]() |
Page 986 |
043360,000023: # PROGRAM NAME- DOWN TELEMETRY PROGRAM
043361,000024: # MOD NO.- 0 TO COMPLETELY REWRITE THE DOWN TELEMETRY PROGRAM AND DOWNLINK ERASABLE DUMP PROGRAM FOR THE
043362,000025: # PURPOSE OF SAVING APPROXIMATELY 150 WORDS OF CORE STORAGE.
043363,000026: # THIS CHANGE REQUIRES AN ENTIRELY NEW METHOD OF SPECIFYING DOWNLINK LISTS.REFER TO DOWNLINK
043364,000027: # LISTS LOG SECTION FOR MORE DETAILS. HOWEVER THIS CHANGE WILL NOT AFFECT THE GROUND PROCESSING
043365,000028: # OF DOWN TELEMETRY DATA.
043366,000029: # MOD BY- KILROY, SMITH, DEWITT
043367,000030: # DATE- 02 OCT 67
043368,000031: # AUTHORS- KILROY, SMITH, DEWITT, DEWOLF, FAGIN
043369,000032: # LOG SECTION- DOWN-TELEMETRY PROGRAM
043370,000033:
043371,000034: # FUNCTIONAL DESCRIPTION- THIS ROUTINE IS INITIATED BY TELEMETRY END
043372,000035: # PULSE FROM THE DOWNLINK TELEMETRY CONVERTER. THIS PULSE OCCURS
043373,000036: # AT 50 TIMES PER SEC(EVERY 20 MS) THEREFORE DODOWNTM IS
043374,000037: # EXECUTED AT THESE RATES. THIS ROUTINE SELECTS THE APPROPRIATE
043375,000038: # AGC DATA TO BE TRANSMITTED DOWNLINK AND LOADS IT INTO OUTPUT
043376,000039: # CHANNELS 34 AND 35. THE INFORMATION IS THEN GATED OUT FROM THE
043377,000040: # LGC IN SERIAL FASHION.
043378,000041: # THIS PROGRAM IS CODED FOR A 2 SECOND DOWNLIST. SINCE DOWNRUPTS
043379,000042: # OCCUR EVERY 20 MS AND 2 AGC COMPUTER WORDS CAN BE PLACED IN
043380,000043: # CHANNELS 34 AND 35 DURING EACH DOWNRUPT THE PROGRAM IS CAPABLE
043381,000044: # OF SENDING 200 AGC WORDS EVERY 2 SECONDS.
043382,000045: # CALLING SEQUENCE- NONE
043383,000046: # PROGRAM IS ENTERED VIA TCF DODOWNTM WHICH IS EXECUTED AS A
043384,000047: # RESULT OF A DOWNRUPT. CONTROL IS RETURNED VIA TCF RESUME WHICH
043385,000048: # IN EFFECT IS A RESUME.
043386,000049: # SUBROUTINES CALLED- NONE
043387,000050: # NORMAL EXIT MODE- TCF RESUME
043388,000051: # ALARM OR ABORT EXIT MODE- NONE
043389,000052: # RESTART PROTECTION:
043390,000053: # ON A FRESH START AND RESTART THE 'STARTSUB' SUBROUTINE WILL INITIALIZE THE DOWNLIST POINTER(ACTUALLY
043391,000054: # DNTMGOTO) TO THE BEGINNING OF THE CURRENT DOWNLIST(I.E. CURRENT CONTENTS OF DNLSTADR). THIS HAS THE
043392,000055: # EFFECT OF IGNORING THE REMAINDER OF THE DOWNLIST WHICH THE DOWN-TELEMETRY PROGRAM WAS WORKING ON WHEN
043393,000056: # THE RESTART(OR FRESH START) OCCURRED AND RESUME DOWN TELEMETRY FROM THE BEGINNING OF THE CURRENT
043394,000057: # DOWNLIST.
043395,000058: # ALSO OF INTEREST IS THE FACT THAT ON A RESTART THE AGC WILL ZERO DOWNLINK CHANNELS 13, 34 AND 35.
043396,000059: # DOWNLINK LIST SELECTION:
043397,000060: # THE APPROPRIATE DOWNLINK LISTS ARE SELECTED BY THE FOLLOWING:
043398,000061: # 1. FRESH START
043399,000062: # 2. V37EXXE WHERE XX = THE MAJOR MODE BEING SELECTED.
043400,000063: # 3. UPDATE PROGRAM(P27)
043401,000064: # 4. NON-V37 SELECTABLE TYPE PROGRAMS(E.G. AGS INITIALIZATION(SUNDANCE,LUMINARY) AND P61-P62
043402,000065: # TRANSITION(COLOSSUS) ETC.).
043403,000066: # DOWNLINK LIST RULES AND LIMITATIONS:
043404,000067: # READ SECTION(S) WHICH FOLLOW 'DEBRIS' WRITEUP.
043405,000068: # OUTPUT- EVERY 2 SECONDS 100 DOUBLE PRECISION WORDS(I.E. 200 LGC
043406,000069: # COMPUTER WORDS) ARE TRANSMITTED VIA DOWNLINK.
043407,000070: # ERASABLE INITIALIZATION REQUIRED- NONE
043408,000071: # 'DNTMGOTO' AND 'DNLSTADR' ARE INITIALIZED BY THE FRESH START PROGRAM.
043409,000072: # DEBRIS(ERASABLE LOCATIONS DESTROYED BY THIS PROGRAM)-
043410,000073: # LDATALST,DNTMBUFF TO DNTMBUFF +21D,TMINDEX,DNQ.
043411,000074:
![]() |
Page 987 No source on this page of the original assembly listing. |
043414,000077:
![]() |
Page 988 |
043416,000079: # DODOWNTM IS ENTERED EVERY 20 MS BY AN INTERRUPT TRIGGERED BY THE
043417,000080: # RECEIPT OF AN ENDPULSE FROM THE SPACECRAFT TELEMETRY PROGRAMMER.
043418,000081:
043419,000082: # NOTES REGARDING DOWNLINK LISTS ASSOCIATED WITH THIS PROGRAM:
043420,000083: # 1. DOWNLISTS. - DOWNLISTS MUST BE COMPILED IN THE SAME BANK AS THE
043421,000084: # DOWN-TELEMETRY PROGRAM. THIS IS DONE FOR EASE OF CODING, FASTER
043422,000085: # EXECUTION.
043423,000086: # 2. EACH DOWNLINK LIST CONSISTS OF A CONTROL LIST AND A NUMBER OF
043424,000087: # SUBLISTS.
043425,000088: # 3. A SUBLIST REFERS TO A SNAPSHOT OR DATA COMMON TO THE SAME OR OTHER
043426,000089: # DOWNLINK LISTS. ANY SUBLIST CONTAINING COMMON DATA NEEDS TO BE
043427,000090: # CODED ONLY ONCE FOR THE APPLICABLE DOWNLINK LISTS.
043428,000091: # 4. SNAPSHOT SUBLISTS REFER SPECIFICALLY TO HOMOGENOUS DATA WHICH MUST BE
043429,000092: # SAVED IN A BUFFER DURING ONE DOWNRUPT.
043430,000093: # 5. THE 1DNADR FOR THE 1ST WORD OF SNAPSHOT DATA IS FOUND AT THE END
043431,000094: # OF EACH SNAPSHOT SUBLIST, SINCE THE PROGRAM CODING SENDS THIS DP WORD
043432,000095: # IMMEDIATELY AFTER STORING THE OTHERS IN THE SNAPSHOT BUFFER.
043433,000096: # 6. ALL LISTS ARE COMBINATIONS OF CODED ERASABLE ADDRESS CONSTANTS
043434,000097: # CREATED FOR THE DOWNLIST PROGRAM.
043435,000098: # A. 1DNADR 1-WORD DOWNLIST ADDRESS.
043436,000099: # SAME AS ECADR, BUT USED WHEN THE WORD ADDRESSED IS THE LEFT
043437,000100: # HALF OF A DOUBLE-PRECISION WORD FOR DOWN TELEMETRY.
043438,000101: # B. 2DNADR - 6DNADR N-WORD DOWNLIST ADDRESS, N = 2 - 6.
043439,000102: # SAME AS 1DNADR, BUT WITH THE 4 UNUSED BITS OF THE ECADR FORMAT
043440,000103: # FILLED IN WITH 0001-0101. USED TO POINT TO A LIST OF N DOUBLE-
043441,000104: # PRECISION WORDS, STORED CONSECUTIVELY, FOR DOWN TELEMETRY.
043442,000105: # C. DNCHAN DOWNLIST CHANNEL ADDRESS.
043443,000106: # SAME AS 1DNADR, BUT WITH PREFIX BITS 0111. USED TO POINT TO
043444,000107: # A PAIR OF CHANNELS FOR DOWN TELEMETRY.
043445,000108: # D. DNPTR DOWN TELEMETRY SUBLIST POINTER.
043446,000109: # SAME AS CAF BUT TAGGED AS A CONSTANT. USED IN CONTROL LIST TO POINT TO A SUBLIST.
043447,000110: # CAUTION--- A DNPTR CANNOT BE USED IN A SUBLIST.
043448,000111: # 7. THE WORD ORDER CODE IS SET TO ZERO AT THE BEGINNING OF EACH DOWNLIST (I.E. CONTROL LIST) AND WHEN
043449,000112: # A '1DNADR TIME2' IS DETECTED IN THE CONTROL LIST(ONLY).
043450,000113: # 8. IN THE SNAPSHOT SUBLIST ONLY, THE DNADR'S CANNOT POINT TO THE FIRST WORD OF ANY EBANK.
043451,000114:
043452,000115: # DOWNLINK LIST RESTRICTIONS:
043453,000116: # (THE FOLLOWING POINTS MAY BE LISTED ELSEWHERE BUT ARE LISTED HERE SO IT IS CLEAR THAT THESE THINGS CANNOT BE
043454,000117: # DONE)
043455,000118: # 1. SNAPSHOT DOWNLIST:
043456,000119: # (A) CANNOT CONTAIN THE FOLLOWING ECADRS (I.E. 1DNADR'S): 0, 400, 1000, 1400, 2000, 2400, 3000, 3400.
043457,000120: # (B) CAN CONTAIN ONLY 1DNADR'S
043458,000121: # 2. ALL DOWNLINKED DATA(EXCEPT CHANNELS) IS PICKED UP BY A <DCA<SO DOWNLINK LISTS CANNOT CONTAIN THE
043459,000122: # EQUIVALENT OF THE FOLLOWING ECADRS(I.E. IDNADRS): 377, 777, 1377, 1777, 2377, 27777, 3377, 3777.
043460,000123: # (NOTE: THE TERM EQUIVALENT ' MEANT THAT THE IDNADR TO 6DNADR WILL BE PROCESSED LIKE 1 TO 6 ECADRS)
043461,000124: # 3. CONTROL LISTS AND SUBLISTS CANNOT HAVE ENTRIES = OCTAL 00000 OR OCTAL 77777
043462,000125:
![]() |
Page 989 |
043464,000127: # 4. THE '1DNADR TIME2' WHICH WILL CAUSE THE DOWNLINK PROGRAM TO SET THE WORDER CODE TO 3 MUST APPEAR IN THE
043465,000128: # CONTROL SECTION OF THE DOWNLIST.
043466,000129: # 5. 'DNCHAN 0' CANNOT BE USED.
043467,000130: # 6. 'DNPTR 0' CANNOT BE USED.
043468,000131: # 7. DNPTR CANNOT APPEAR IN A SUBLIST.
043469,000132:
043470,000133: # EBANK SETTINGS
043471,000134: # IN THE PROCESS OF SETTING THE EBANK(WHEN PICKING UP DOWNLINK DATA) THE DOWN TELEMETRY PROGRAM PUTS
043472,000135: # 'GARBAGE' INTO BITS15-12 OF EBANK. HUGH BLAIR-SMITH WARNS US THAT BITS15-12 OF EBANK MAY BECOME
043473,000136: # SIGNIFICANT SOMEDAY IN THE FUTURE. IF/WHEN THAT HAPPENS, THE PROGRAM SHOULD INSURE(BY MASKING ETC.)
043474,000137: # THAT BITS 15-12 OF EBANK ARE ZERO.
043475,000138:
043476,000139: # INITIALIZATION REQUIRED- TO INTERRUPT CURRENT LIST AND START A NEW ONE..
043477,000140: # 1. ADRES OF DOWNLINK LIST INTO DNLSTADR
043478,000141: # 2. NEGONE INTO SUBLIST
043479,000142: # 3. NEGONE INTO DNECADR
043480,000143:
043481,000144: 22,3712 BANK 22
043482,000145: 05,2000 SETLOC DOWNTELM
043483,000146: 05,2000 BANK
043484,000147:
043485,000148: 05,3507 0340 EBANK= DNTMBUFF
043486,000149:
043487,000150: 05,3507 COUNT* $$/DPROG
043488,000151: 05,3507 54016 DODOWNTM TS BANKRUPT
043489,000152: 05,3510 00006 EXTEND
043490,000153: 05,3511 22012 QXCH QRUPT # SAVE Q
043491,000154: 05,3512 34736 CA BIT7 # AT THE BEGINNING OF THE LIST THE WORD
043492,000155: 05,3513 00006 EXTEND # ORDER BIT WILL BE SET BACK TO ZERO.
043493,000156: 05,3514 02013 RAND CHAN13
043494,000157: 05,3515 10000 CCS A
043495,000158: 05,3516 00335 TC DNTMGOTO
043496,000159: 05,3517 06040 TC C13STALL
043497,000160: 05,3520 34736 CA BIT7
043498,000161: 05,3521 00006 EXTEND # SET WORD ORDER BIT TO 1 ONLY IF IT
043499,000162: 05,3522 05013 WOR CHAN13 # ALREADY ISN'T.
043500,000163: 05,3523 00335 TC DNTMGOTO # GOTO APPROPRIATE PHASE OF PROGRAM
043501,000164:
043502,000165: 05,2000 SETLOC DOWNTELM
043503,000166: 05,2000 BANK
043504,000167:
043505,000168: 05,3524 37770 DNPHASE1 CA NEGONE # INITIALIZE ALL CONTROL WORDS
043506,000169: 05,3525 54337 TS SUBLIST # WORDS TO MINUS ONE
043507,000170: 05,3526 54336 TS DNECADR
043508,000171: 05,3527 33654 CA LDNPHAS2 # SET DNTMGOTO =O ALL SUBSEQUENT DOWNRUPTS
043509,000172:
![]() |
Page 990 |
043511,000174: 05,3530 54335 TS DNTMGOTO # GO TO DNPHASE2
043512,000175: 05,3531 13545 TCF NEWLIST
043513,000176: 05,3532 10336 DNPHASE2 CCS DNECADR # SENDING OF DATA IN PROGRESS
043514,000177: 05,3533 03667 DODNADR TC FETCH2WD # YES - THEN FETCH THE NEXT 2 SP WORDS
043515,000178: 05,3534 77753 MINTIME2 -1DNADR TIME2 # NEGATIVE OF TIME2 1DNADR
043516,000179: 05,3535 13536 TCF +1 # (ECADR OF 3776 + 74001 = 77777)
043517,000180:
043518,000181: 05,3536 10337 CCS SUBLIST # IS THE SUBLIST IN CONTROL
043519,000182: 05,3537 13702 TCF NEXTINSL # YES
043520,000183: 05,3540 74001 DNADRDCR OCT 74001 # DNADR COUNT AND ECADR DECREMENTER
043521,000184:
043522,000185: 05,3541 30334 CHKLIST CA CTLIST
043523,000186: 05,3542 00006 EXTEND
043524,000187: 05,3543 63545 BZMF NEWLIST # IT WILL BE NEGATIVE AT END OF LIST
043525,000188: 05,3544 13552 TCF NEXTINCL
043526,000189: 05,3545 50333 NEWLIST INDEX DNLSTCOD
043527,000190: 05,3546 32446 CA DNTABLE # INITIALIZE CTLIST WITH
043528,000191: 05,3547 54334 TS CTLIST # STARTING ADDRESS OF NEW LIST
043529,000192: 05,3550 40333 CS DNLSTCOD
043530,000193: 05,3551 13771 TCF SENDID +3
043531,000194: 05,3552 50334 NEXTINCL INDEX CTLIST
043532,000195: 05,3553 30000 CA 0
043533,000196: 05,3554 10000 CCS A
043534,000197: 05,3555 24334 INCR CTLIST # SET POINTER TO PICK UP NEXT CTLIST WORD
043535,000198: 05,3556 13562 TCF +4 # ON NEXT ENTRY TO PROG. (A SHOULD NOT =0)
043536,000199: 05,3557 56334 XCH CTLIST # SET CTLIST TO NEGATIVE AND PLACE(CODING)
043537,000200: 05,3560 40000 COM # UNCOMPLEMENTED DNADR INTO A. (FOR LA)
043538,000201: 05,3561 56334 XCH CTLIST # (ST IN )
043539,000202: 05,3562 24000 +4 INCR A # (CTLIST)
043540,000203: 05,3563 54336 TS DNECADR # SAVE DNADR
043541,000204: 05,3564 63534 AD MINTIME2 # TEST FOR TIME2 (NEG. OF ECADR)
043542,000205: 05,3565 10000 CCS A
043543,000206: 05,3566 13572 TCF SETWO +1 # DON'T SET WORD ORDER CODE
043544,000207: 05,3567 47777 MINB1314 OCT 47777 # MINUS BIT 13 AND 14 (CAN'T GET HERE)
043545,000208: 05,3570 13572 TCF SETWO +1 # DON'T SET WORD ORDER CODE
043546,000209: 05,3571 03614 SETWO TC WOZERO # GO SET WORD ORDER CODE TO ZERO.
043547,000210: 05,3572 30336 +1 CA DNECADR # RELOAD A WITH THE DNADR.
043548,000211: 05,3573 63567 +2 AD MINB1314 # IS THIS A REGULAR DNADR?
043549,000212: 05,3574 00006 EXTEND
043550,000213: 05,3575 63667 BZMF FETCH2WD # YES. (A MUST NEVER BE ZERO)
043551,000214: 05,3576 67762 AD MINB12 # NO- IS IT A POINTER (DNPTR) OR A
043552,000215: 05,3577 00006 EXTEND # CHANNEL(DNCHAN)
043553,000216: 05,3600 63625 BZMF DODNPTR # IT'S A POINTER. (A MUST NEVER BE ZERO)
043554,000217:
043555,000218: 05,3601 00006 DODNCHAN TC 6 # (EXECUTED AS EXTEND) IT S A CHANNEL
043556,000219: 05,3602 50336 INDEX DNECADR
043557,000220: 05,3603 44000 INDEX 0 -4000 # (EXECUTED AS READ)
043558,000221: 05,3604 54001 TS L
043559,000222: 05,3605 00006 TC 6 # (EXECUTED AS EXTEND)
043560,000223: 05,3606 50336 INDEX DNECADR
043561,000224:
![]() |
Page 991 |
043563,000226: 05,3607 43777 INDEX 0 -4001 # (EXECUTED AS READ)
043564,000227: 05,3610 54336 TS DNECADR # SET DNECADR
043565,000228: 05,3611 37770 CA NEGONE # TO MINUS
043566,000229: 05,3612 56336 XCH DNECADR # WHILE PRESERVING A.
043567,000230: 05,3613 13715 TCF DNTMEXIT # GO SEND CHANNELS
043568,000231:
043569,000232: 05,3614 00006 WOZERO EXTEND
043570,000233: 05,3615 23265 QXCH C13QSAV
043571,000234: 05,3616 22070 LXCH RUPTREG1
043572,000235: 05,3617 06040 TC C13STALL
043573,000236:
043574,000237: 05,3620 22070 LXCH RUPTREG1
043575,000238: 05,3621 44736 CS BIT7
043576,000239: 05,3622 00006 EXTEND
043577,000240: 05,3623 03013 WAND CHAN13 # SET WORD ORDER CODE TO ZERO
043578,000241: 05,3624 01265 TC C13QSAV
043579,000242:
043580,000243: 05,3625 50336 DODNPTR INDEX DNECADR # DNECADR CONTAINS ADRES OF SUBLIST
043581,000244: 05,3626 00000 0 0 # CLEAR AND ADD LIST ENTRY INTO A.
043582,000245: 05,3627 10000 CCS A # IS THIS A SNAPSHOT SUBLIST
043583,000246: 05,3630 30336 CA DNECADR # NO, IT IS A REGULAR SUBLIST.
043584,000247: 05,3631 13701 TCF DOSUBLST # A MUST NOT BE ZERO.
043585,000248:
043586,000249: 05,3632 56336 XCH DNECADR # YES, IT IS A SNAPSHOT SUBLIST.
043587,000250: 05,3633 54337 TS SUBLIST # C(DNECADR) INTO SUBLIST
043588,000251: 05,3634 34746 CAF ZERO # A INTO A
043589,000252: 05,3635 56336 XCH TMINDEX # (NOTE.. TMINDEX = DNECADR)
043590,000253:
043591,000254: # THE FOLLOWING CODING (FROM SNAPLOOP TO SNAPEND)IS FOR THE PURPOSE OF TAKING A SNAPSHOT OF 12 DP REGISTERS.
043592,000255: # THIS IS DONE BY SAVING 11 DP REGISTERS IN DNTMBUFF AND SENDING THE FIRST DP WORD IMMEDIATELY.
043593,000256: # THE SNAPSHOT PROCESSING IS THE MOST TIME CONSUMING AND THEREFORE THE CODING AND LIST STRUCTURE WERE DESIGNED
043594,000257: # TO MINIMIZE TIME. THE TIME OPTIMIZATION RESULTS IN RULES UNIQUE TO THE SNAPSHOT PORTION OF THE DOWNLIST.
043595,000258: # THESE RULES ARE......
043596,000259: # 1. ONLY 1DNADR'S CAN APPEAR IN THE SNAPSHOT SUBLIST
043597,000260: # 2. THE 1DNADR'S CANNOT REFER TO THE FIRST LOCATION IN ANY BANK.
043598,000261:
043599,000262: 05,3636 54003 SNAPLOOP TS EBANK # SET EBANK
043600,000263: 05,3637 74350 MASK LOW8 # ISOLATE RELATIVE ADDRESS
043601,000264: 05,3640 00006 EXTEND
043602,000265: 05,3641 50000 INDEX A
043603,000266: 05,3642 E3,1401 EBANK= 1401
043604,000267: 05,3642 31402 DCA 1401 # PICK UP 2 SNAPSHOT WORDS.
043605,000268: 05,3643 0340 EBANK= DNTMBUFF
043606,000269: 05,3643 50336 INDEX TMINDEX
043607,000270: 05,3644 52341 DXCH DNTMBUFF # STORE 2 SNAPSHOT WORDS IN BUFFER
043608,000271: 05,3645 24336 INCR TMINDEX # SET BUFFER INDEX FOR NEXT 2 WORDS.
043609,000272: 05,3646 24336 INCR TMINDEX
043610,000273: 05,3647 24337 SNAPAGN INCR SUBLIST # SET POINTER TO NEXT 2 WORDS OF SNAPSHOT
043611,000274:
![]() |
Page 992 |
043613,000276: 05,3650 50337 INDEX SUBLIST
043614,000277: 05,3651 00000 0 0 # = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
043615,000278: 05,3652 10000 CCS A # TEST FOR LAST TWO WORDS OF SNAPSHOT.
043616,000279: 05,3653 13636 TCF SNAPLOOP # NOT LAST TWO.
043617,000280: 05,3654 03532 LDNPHAS2 GENADR DNPHASE2
043618,000281: 05,3655 54337 TS SUBLIST # YES, LAST. SAVE A.
043619,000282: 05,3656 37770 CA NEGONE # SET DNECADR AND
043620,000283: 05,3657 54336 TS DNECADR # SUBLIST POINTERS
043621,000284: 05,3660 56337 XCH SUBLIST # TO NEGATIVE VALUES.
043622,000285: 05,3661 54003 TS EBANK
043623,000286: 05,3662 74350 MASK LOW8
043624,000287: 05,3663 00006 EXTEND
043625,000288: 05,3664 50000 INDEX A
043626,000289: 05,3665 E3,1401 EBANK= 1401
043627,000290: 05,3665 31402 DCA 1401 # PICK UP FIRST 2 WORDS OF SNAPSHOT.
043628,000291: 05,3666 0340 EBANK= DNTMBUFF
043629,000292: 05,3666 13715 SNAPEND TCF DNTMEXIT # NOW GO SEND THEM.
043630,000293:
043631,000294: 05,3667 30336 FETCH2WD CA DNECADR
043632,000295: 05,3670 54003 TS EBANK # SET EBANK
043633,000296: 05,3671 74350 MASK LOW8 # ISOLATE RELATIVE ADDRESS
043634,000297: 05,3672 54001 TS L
043635,000298: 05,3673 33540 CA DNADRDCR # DECREMENT COUNT AND ECADR
043636,000299: 05,3674 26336 ADS DNECADR
043637,000300: 05,3675 00006 EXTEND
043638,000301: 05,3676 50001 INDEX L
043639,000302: 05,3677 E3,1400 EBANK= 1400
043640,000303: 05,3677 31401 DCA 1400 # PICK UP 2 DATA WORDS
043641,000304: 05,3700 0340 EBANK= DNTMBUFF
043642,000305: 05,3700 13715 TCF DNTMEXIT # NOW GO SEND THEM.
043643,000306:
043644,000307: 05,3701 54337 DOSUBLST TS SUBLIST # SET SUBLIST POINTER
043645,000308: 05,3702 50337 NEXTINSL INDEX SUBLIST
043646,000309: 05,3703 00000 0 0 # = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
043647,000310: 05,3704 10000 CCS A # IS IT THE END OF THE SUBLIST
043648,000311: 05,3705 24337 INCR SUBLIST # NO-
043649,000312: 05,3706 13712 TCF +4
043650,000313: 05,3707 54337 TS SUBLIST # SAVE A.
043651,000314: 05,3710 37770 CA NEGONE # SET SUBLIST TO MINUS
043652,000315: 05,3711 56337 XCH SUBLIST # RETRIEVE A.
043653,000316: 05,3712 24000 +4 INCR A
043654,000317: 05,3713 54336 TS DNECADR # SAVE DNADR
043655,000318: 05,3714 13573 TCF SETWO +2 # GO USE COMMON CODING(PROBLEMS WOULD
043656,000319: # OCCUR IF THE PROGRAM ENCOUNTERED A
043657,000320: # DNPTR NOW)
043658,000321:
043659,000322: 05,3715 00006 DNTMEXIT EXTEND # DOWN-TELEMETRY EXIT
043660,000323: 05,3716 01034 WRITE DNTM1 # TO SEND A + L TO CHANNELS 34 + 35
043661,000324: 05,3717 30001 CA L # RESPECTIVELY
043662,000325: 05,3720 00006 TMEXITL EXTEND
043663,000326:
![]() |
Page 993 |
043665,000328: 05,3721 01035 WRITE DNTM2
043666,000329: 05,3722 15272 TMRESUME TCF RESUME # EXIT TELEMETRY PROGRAM VIA RESUME.
043667,000330:
043668,000331: 05,3723 7762 MINB12 EQUALS -1/8
043669,000332:
![]() |
Page 994 |
043671,000334: # SUBROUTINE NAME- DNDUMP
043672,000335:
043673,000336: # FUNCTIONAL DESCRIPTION - TO SEND (DUMP) ALL 8 BANKS OF ERASABLE STORAGE TWICE. BANKS ARE SENT ONE AT A TIME
043674,000337: # EACH BANK IS PRECEEDED BY AN ID WORD, SYNCH BITS, ECADR AND TIME1 FOLLOWED BY THE 256D WORDS OF EACH
043675,000338: # EBANK. EBANKS ARE DUMPED IN ORDER(I.E. EBANK 0 FIRST, THEN EBANK1 ETC.)
043676,000339:
043677,000340: # CALLING SEQUENCE- THE GROUND OR ASTRONAUT BY KEYING V74E CAN INITIALIZE THE DUMP.
043678,000341: # AFTER KEYING IN V74E THE CURRENT DOWNLIST WILL BE IMMEDIATELY TERMINATED AND THE DOWNLINK ERASABLE DUMP
043679,000342: # WILL BEGIN.
043680,000343: # ONCE INITIATED THE DOWNLINK ERASABLE DUMP CAN BE TERMINATED (AND INTERRUPTED DOWNLIST REINSTATED) ONLY
043681,000344: # BY THE FOLLOWING:
043682,000345: # 1. A FRESH START
043683,000346: # 2. COMPLETION OF BOTH COMPLETE DUMPS
043684,000347: # 3. AND INVOLUNTARILY BY A RESTART.
043685,000348: # NORMAL EXIT MODE- TCF DNPHASE1
043686,000349: # ALARM OR ABORT MODE- NONE
043687,000350: # *SUBROUTINES CALLED- NONE.
043688,000351: # ERASABLE INITIALIZATION REQUIRED-
043689,000352: # NONE
043690,000353: # DEBRIS- DUMPLOC, DUMPSW, DNTMGOTO, EBANK AND CENTRAL REGISTERS
043691,000354: # TIMING- TIME(IN SECS) = ((NO.DUMPS)*(NO.EBANKS)*(WDSPEREBANK + NO.IDWDS)) / NO.WDSPERSEC
043692,000355: # TIME(IN SECS) = ( 4 )*( 8 )*( 256 + 4 ) / 100
043693,000356: # THUS TIME(IN SECS TO SEND DUMP OF ERASABLE 4 TIMES VIA DOWNLINK) = 83.2 SECONDS
043694,000357:
043695,000358: # STRUCTURE OF ONE EBANK AS IT IS SENT BY DOWNLINK PROGRAM-
043696,000359: # (REMINDER-THIS ONLY DESCRIBES ONE OF THE 8 EBANKS X 4 (DUMPS) = 32 EBANKS WHICH WILL BE SENT BY DNDUMP)
043697,000360: # DOWNLIST W
043698,000361: # WORD TAKEN FROM CONTENTS OF EXAMPLE O COMMENTS
043699,000362: # 1 ERASID 0177X 0 DOWNLIST I.D. FOR DOWNLINK ERASABLE DUMP (X=7 CSM, 6 LM)
043700,000363: # 2 LOWIDCOD 77340 1 DOWNLINK SYNCH BITS.(SAME ONE USED IN ALL OTHER DOWNLISTS)
043701,000364: # 3 DUMPLOC 13400 1 (SEE NOTES ON DUMPLOC)1= 3RD ERAS DUMP, 3400=ECADR OF 5TH WD
043702,000365: # 4 TIME1 14120 1 TIME IN CENTISECONDS
043703,000366: # 5 FIRST WORD OF EBANK X 03400 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1400 (ECADR 3400)
043704,000367: # 6 2ND WORD OF EBANK X 00142 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1401 (ECADR 3401)
043705,000368: # 7 3RD WORD OF EBANK X 00142 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1402 (ECADR 3402)
043706,000369: # . 1
043707,000370: # . 1
043708,000371: # . 1
043709,000372: # 260D 256TH WORD OF EBANK X 03777 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1777 (ECADR 3777)
043710,000373:
043711,000374: # NOTE- DUMPLOC CONTAINS THE COUNTER AND ECADR FOR EACH WORD BEING SENT.
043712,000375: # THE BIT STRUCTURE OF DUMPLOC IS FOLLOWS---
043713,000376: # X = NOT USED
043714,000377: # X ABC EEE RRRRRRRR ABC = ERASABLE DUMP COUNTER(I.E. ABC = 0,1,2 OR 3 WHICH MEANS THAT
043715,000378: # COMPLETE ERASABLE DUMP NUMBER 1,2,3 OR 4 RESPECTIVELY IS IN PROGRESS)
043716,000379: # EEE = EBANK BITS
043717,000380: # RRRRRRRR = RELATIVE ADDRESS WITHIN AN EBANK.
043718,000381:
043719,000382: 05,3723 34746 DNDUMPI CA ZERO # INITIALIZE DOWNLINK
043720,000383: 05,3724 54336 TS DUMPLOC # ERASABLE DUMP
043721,000384: 05,3725 03766 +2 TC SENDID # GO SEND ID AND SYNCH BITS
043722,000385:
![]() |
Page 995 |
043724,000387: 05,3726 33735 CA LDNDUMP1 # SET DNTMGOTO
043725,000388: 05,3727 54335 TS DNTMGOTO # TO LOCATION FOR NEXT PASS
043726,000389: 05,3730 30025 CA TIME1 # PLACE TIME1
043727,000390: 05,3731 56001 XCH L # INTO L
043728,000391: 05,3732 30336 CA DUMPLOC # AND ECADR OF THIS EBANK INTO A
043729,000392: 05,3733 13715 TCF DNTMEXIT # SEND DUMPLOC AND TIME1
043730,000393:
043731,000394: 05,3734 03736 LDNDUMP ADRES DNDUMP
043732,000395: 05,3735 03750 LDNDUMP1 ADRES DNDUMP1
043733,000396:
043734,000397: 05,3736 34743 DNDUMP CA TWO # INCREMENT ECADR IN DUMPLOC
043735,000398: 05,3737 26336 ADS DUMPLOC # TO NEXT DP WORD TO BE
043736,000399: 05,3740 74350 MASK LOW8 # DUMPED AND SAVE IT.
043737,000400: 05,3741 10000 CCS A # IS THIS THE BEGINNING OF A NEW EBANK
043738,000401: 05,3742 13752 TCF DNDUMP2 # NO- THEN CONTINUE DUMPING
043739,000402: 05,3743 30336 CA DUMPLOC # YES- IS THIS THE END OF THE
043740,000403: 05,3744 74730 MASK BIT13 # SECOND COMPLETE ERASABLE DUMP?
043741,000404: 05,3745 00006 EXTEND
043742,000405: 05,3746 13725 BZF DNDUMPI +2 # NO - GO BACK AND INITIALIZE NEXT BANK
043743,000406: 05,3747 13524 TCF DNPHASE1 # YES - SEND DOWNLIST AGAIN
043744,000407: 05,3750 33734 DNDUMP1 CA LDNDUMP # SET DNTMGOTO
043745,000408: 05,3751 54335 TS DNTMGOTO # FOR WORDS 3 TO 256D OF CURRENT EBANK
043746,000409:
043747,000410: 05,3752 30336 DNDUMP2 CA DUMPLOC
043748,000411: 05,3753 54003 TS EBANK # SET EBANK
043749,000412: 05,3754 74350 MASK LOW8 # ISOLATE RELATIVE ADDRESS.
043750,000413: 05,3755 54002 TS Q # (NOTE: MASK INSTRUCTION IS USED TO PICK
043751,000414: 05,3756 34745 CA NEG0 # UP ERASABLE REGISTERS SO THAT EDITING
043752,000415: 05,3757 54001 TS L # REGISTERS 20-23 WILL NOT BE ALTERED.)
043753,000416: 05,3760 50002 INDEX Q
043754,000417: 05,3761 E3,1400 EBANK= 1400 # PICK UP LOW ORDER REGISTER OF PAIR
043755,000418: 05,3761 71401 MASK 1401 # OF ERASABLE REGISTERS.
043756,000419: 05,3762 56001 XCH L
043757,000420: 05,3763 50002 INDEX Q # PICK UP HIGH ORDER REGISTER OF PAIR
043758,000421: 05,3764 71400 MASK 1400 # OF ERASABLE REGISTERS.
043759,000422: 05,3765 0340 EBANK= DNTMBUFF
043760,000423: 05,3765 13715 TCF DNTMEXIT # GO SEND THEM
043761,000424:
043762,000425: 05,3766 00006 SENDID EXTEND # **ENTRANCE USED BY ERASABLE DUMP PROG.**
043763,000426: 05,3767 22335 QXCH DNTMGOTO # SET DNTMGOTO SO NEXT TIME PROG WILL GO
043764,000427: 05,3770 35002 CAF ERASID # TO LOCATION FOLLOWING :TC SENDID:
043765,000428:
043766,000429: 05,3771 54001 TS L # **ENTRANCE USED BY REGULAR DOWNLINK PG**
043767,000430: 05,3772 03614 TC WOZERO # GO SET WORD ORDER CODE TO ZERO
043768,000431: 05,3773 32045 CAF LOWIDCOD # PLACE SPECIAL ID CODE INTO L
043769,000432: 05,3774 56001 XCH L # AND ID BACK INTO A
043770,000433: 05,3775 13715 TCF DNTMEXIT # SEND DOWNLIST ID CODE(S).
043771,000434:
End of include-file DOWN-TELEMETRY_PROGRAM.agc. Parent file is MAIN.agc