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