Source Code
These source-code files were transcribed from scans made from Don Eyles's personal
copy of BURST120 (SUNBURST 120). They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Mike Stewart. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are in ALL-CAPS, whereas
comments added later in transcription are in Mixed-Case. In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the BURST120 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:YUL SYSTEM FOR AGC: REVISION 0 OF PROGRAM BURST120 BY NASA 2021106-031 DEC 7, 1967 THIS LISTING IS A COPY OF A VERSION OF THE PROGRAM INTENDED FOR USE IN THE ON-BOARD PRIMARY GUIDANCE COMPUTER IN THE UNMANNED FLIGHT OF APOLLO LUNAR MODULE 1 --- THE AS206 MISSION.Note that the date is the date of the printout, not the date of the program revision. |
013552,000002: ## Copyright: Public domain.
013553,000003: ## Filename: DOWN_TELEMETRY_PROGRAM.agc
013554,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst). It
013555,000005: ## is part of the source code for the Lunar Module's
013556,000006: ## (LM) Apollo Guidance Computer (AGC) for Apollo 5.
013557,000007: ## Assembler: yaYUL
013558,000008: ## Contact: Ron Burkey <info@sandroid.org>.
013559,000009: ## Website: www.ibiblio.org/apollo/index.html
013560,000010: ## Mod history: 2016-09-30 RSB Created draft version.
013561,000011: ## 2016-10-21 RSB Transcribed.
013562,000012: ## 2016-10-30 MAS Corrected NOMDNLIST->NOMDNLST.
013563,000013: ## 2016-10-31 RSB Typos.
013564,000014: ## 2016-11-01 RSB More typos.
013565,000015: ## 2016-12-05 RSB Comment-proofing pass with octopus/ProoferComments completed;
013566,000016: ## changes made.
013567,000017:
Page 329 |
013569,000019: # PROGRAM NAME- DOWN TELEMETRY PROGRAM
013570,000020: # MOD NO.- 2
013571,000021: # MOD BY- KILROY
013572,000022: # DATE- 21NOV66
013573,000023: # LOG SECTION- DOWN TELEMETRY PROGRAM
013574,000024: # ASSEMBLY- REV 12 OF SUNBURST
013575,000025: # FUNCTIONAL DESCRIPTION- THIS ROUTINE IS INITIATED BY TELEMETRY END
013576,000026: # PULSE FROM THE DOWNLINK TELEMETRY CONVERTER. THIS PULSE OCCURS
013577,000027: # AT 50 TIMES PER SEC(EVERY 20 MS) THEREFORE DODOWNTM IS
013578,000028: # EXECUTED AT THESE RATES. THIS ROUTINE SELECTS THE APPROPRIATE
013579,000029: # LGC DATA TO BE TRANSMITTED DOWNLINK AND LOADS IT INTO OUTPUT
013580,000030: # CHANNELS 34 AND 35. THE INFORMATION IS THEN GATED OUT FROM THE
013581,000031: # LGC IN SERIAL FASHION.
013582,000032: # THIS PROGRAM IS CODED FOR A 2 SECOND DOWNLIST. SINCE DOWNRUPTS
013583,000033: # OCCUR EVERY 20 MS AND 2 LGC COMPUTER WORDS CAN BE PLACED IN
013584,000034: # CHANNELS 34 AND 35 DURING EACH DOWNRUPT THE PROGRAM IS CAPABLE
013585,000035: # OF SENDING 200 LGC WORDS EVERY 2 SECONDS.
013586,000036: # CALLING SEQUENCE- NONE
013587,000037: # PROGRAM IS ENTERED VIA TCF DODOWNTM WHICH IS EXECUTED AS A
013588,000038: # RESULT OF A DOWNRUPT. CONTROL IS RETURNED VIA TCF RESUME WHICH
013589,000039: # IN EFFECT IS A RESUME.
013590,000040: # SUBROUTINES CALLED- NONE
013591,000041: # NORMAL EXIT MODE- TCF RESUME
013592,000042: # ALARM OR ABORT EXIT MODE- NONE
013593,000043: # RESTART PROTECTION- NONE.
013594,000044: # EXCEPT THAT WHEN A RESTART DOES OCCUR :STARTSUB: WILL
013595,000045: # INITIALIZE THE DOWNLIST POINTER TO THE BEGINNING OF THE NOMINAL
013596,000046: # DOWNLIST. THIS HAS THE EFFECT OF IGNORING THE REMAINDER OF THE
013597,000047: # DOWNLIST WHICH THE DOWN-TELEMETRY PROGRAM WAS WORKING ON WHEN
013598,000048: # THE RESTART OCCURRED.
013599,000049: # OUTPUT- EVERY 2 SECONDS 100 DOUBLE PRECISION WORDS(I.E. 200 LGC
013600,000050: # COMPUTER WORDS) ARE TRANSMITTED VIA DOWNLINK.
013601,000051: # ERASABLE INITIALIZATION REQUIRED- NONE
013602,000052: # DNTMGOTO,DNLSTADR AND EBANK ARE INITIALIZED IN STARTSUB(FRESH
013603,000053: # START AND RESTART)
013604,000054: # DEBRIS (ERASABLE LOCATIONS DESTROYED BY THIS PROGRAM)-
013605,000055: # LDATALST,ITEMP1,ITEMP2,DNTMBUFF TO DNTMBUFF + 21D,TMINDEX,DNQ
013606,000056:
013607,000057:
013608,000058: 15,2000 BANK 15
013609,000059: 15,2000 E7,1407 EBANK= DNTMBUFF
013610,000060:
013611,000061: 15,2000 ERASZERO EQUALS 7
013612,000062: 15,2000 0000007 DMYECADR EQUALS ERASZERO # USE DMYECADR TO GENERATE A DUMMY ECADR
013613,000063: 15,2000 0000007 DMYADRES EQUALS ERASZERO # USE DMYADRES TO GENERATE A DUMMY ADRES
013614,000064: 15,2000 0000007 UNKNOWN EQUALS ERASZERO # USE UNKNOWN WHEN THE MNEMONIC IS UNKNOWN
013615,000065: 15,2000 0000007 SPARE EQUALS ERASZERO # USE SPARE TO INDICATE AVAILABLE SPACE
013616,000066:
013617,000067: 15,2000 00437 LOWIDCOD OCT 00437
Page 330 |
013619,000069:
013620,000070:
013621,000071: # DODOWNTM IS ENTERED EVERY 20 MS BY AN INTERRUPT TRIGGERED BY THE
013622,000072: # RECEIPT OF AN ENDPULSE FROM THE SPACECRAFT TELEMETRY PROGRAMMER.
013623,000073:
013624,000074: # THE ORGANIZATION OF THE PROGRAM IS AS FOLLOWS......
013625,000075: # 1. A MAIN PROGRAM(DODOWNTM) WHICH CONTROLS A SERIES OF SUBROUTINES.
013626,000076: # 2. SUBROUTINES(SENDID,SENDSNAP ETC.) WHICH ARE DESIGNED TO HANDLE
013627,000077: # SPECIFIC PORTIONS OF THE DOWNLIST.
013628,000078: # 3. :EQUALS: CARDS(NDP1, NDP2, LINCR) WHICH DEFINE NO. OF ITEMS IN THE
013629,000079: # PORTIONS OF THE DOWNLISTS.
013630,000080: # 4. DOWNLISTS. - DOWNLISTS MUST BE COMPILED IN THE SAME BANK AS THE
013631,000081: # DOWN-TELEMETRY PROGRAM. THIS IS DONE FOR EASE OF CODING, FASTER
013632,000082: # EXECUTION AND TO INSURE THAT THE DOWNLIST ID:S(FIRST WORD OF EACH
013633,000083: # 2 SEC DOWNLIST.) ARE UNIQUE. THE LOCATION OF THE AGS DOWNLIST MUST BE
013634,000084: # 2001 OF THE FBANK IN WHICH THE DOWN-TELEMETRY PROGRAM RESIDES.
013635,000085: # (I.E. AGSLIST = XX,2001). THIS WILL MAKE THE ID WORD FO RTHE AGS
013636,000086: # DOWNLINK DATA = 00001.
013637,000087:
013638,000088: 15,2001 54016 DODOWNTM TS BANKRUPT
013639,000089: 15,2002 00006 EXTEND
013640,000090: 15,2003 22012 QXCH QRUPT
013641,000091: 15,2004 51401 INDEX DNTMGOTO # GO TO APPROPRIATE
013642,000092: 15,2005 10000 TCF 0 # TELEMETRY PHASE
013643,000093: 15,2006 02032 DNPHASE1 TC SENDID # SEND ID WORD(S)
013644,000094: 15,2007 37755 CAF BIT7 # SET WORD ORDER
013645,000095: 15,2010 00006 EXTEND # BACK TO 1 FOR
013646,000096: 15,2011 05013 WOR 13 # REMAINDER OF CYCLE
013647,000097: 15,2012 32235 CA DNLINCR # CALCULATE ADDRESS OF
013648,000098: 15,2013 27400 ADS LDATALST # SNAPSHOT WORDS TO BE SENT (GROUP 1)
013649,000099: 15,2014 02046 TC SNAPSHOT # SAVE AND SEND SNAPSHOT WORDS (GROUP 1)
013650,000100: 15,2015 32233 CA DNDP1-1 # PLACE NO. OF DP WORDS IN GROUP 1 INTO A
013651,000101: 15,2016 02116 TC SENDDP # SEND DOUBLE PRECISION WORDS (GROUP 1)
013652,000102: 15,2017 02152 TC SENDCH # SEND CHANNELS 11-14 AND 31-33
013653,000103: 15,2020 02206 TC SENDDSTB # SEND DISPLAY TABLES
013654,000104: 15,2021 02226 TC SENDTIME # SEND TIME1 AND TIME2
013655,000105: 15,2022 42112 CS DNSNAP # CALCULATE ADDRESS OF
013656,000106: 15,2023 27400 ADS LDATALST # SNAPSHOT WORDS TO BE SENT(GROUP 2)
013657,000107: 15,2024 02046 TC SNAPSHOT # SAVE AND SEND SNAPSHOT WORDS (GROUP 2)
013658,000108: 15,2025 32234 CA DNDP2-1 # PLACE NO. OF DP WORDS IN GROUP 2
013659,000109: 15,2026 02116 TC SENDDP # SEND DOUBLE PRECISION WORDS(GROUP 2)
013660,000110: 15,2027 02152 TC SENDCH # SEND CHANNELS 11-14 AND 31-33
013661,000111: 15,2030 02206 TC SENDDSTB # SEND DISPLAY TABLE
013662,000112: 15,2031 12006 TCF DNPHASE1 # GO BACK AND START OVER
013663,000113:
013664,000114:
013665,000115: # ........................................................................
013666,000116: 15,2032 30411 SENDID CA DNLSTADR # INITIALIZE DOWNLIST ADDRESS AS SELECTED
013667,000117: 15,2033 55400 TS LDATALST # BY A MISSION OR TEST PROGRAM
013668,000118: 15,2034 47755 CS BIT7 # SET WORD
013669,000119: 15,2035 00006 EXTEND # ORDER BIT 7 IN
Page 331 |
013671,000121: 15,2036 03013 WAND 13 # CHANNEL 13 TO 0
013672,000122:
013673,000123: 15,2037 00006 EXTEND # SET UP DNTMGOTO SO NEXT ENTRY TO
013674,000124: 15,2040 23401 QXCH DNTMGOTO # DODOWNTM WILL TRANSFER CONTROL TO
013675,000125: # THE INSTRUCTION AFTER TC SENDID.
013676,000126:
013677,000127: 15,2041 32000 CAF LOWIDCOD # PLACE SPECIAL ID CODE INTO L
013678,000128: 15,2042 54001 TS L
013679,000129:
013680,000130: 15,2043 31400 CA LDATALST # ISOLATE RELATIVE LOC OF DOWNLIST IN THIS
013681,000131: 15,2044 75337 MASK LOW10 # FIXED BANK. RESULT = 0000 - 1777. NO
013682,000132: # CONFLICT OF DUPLICATE ID WORDS CAN OCCUR
013683,000133:
013684,000134: 15,2045 12140 TCF DNTMEXIT # SEND LIST ID WORD AND SPECIAL ID CODE
013685,000135:
013686,000136:
013687,000137: # ........................................................................
013688,000138: 15,2046 00006 SNAPSHOT EXTEND
013689,000139: 15,2047 23406 QXCH DNQ # SAVE RETURN ADDRESS
013690,000140: 15,2050 37767 CAF ZERO # INITIALIZE THE
013691,000141: 15,2051 54061 TS ITEMP1 # DNTMBUFF INCREMENTER(ITEMP1) TO ZERO.
013692,000142: 15,2052 32114 CAF DNSNAP-2 # INITIALIZE LOOP COUNTER(ITEMP2) TO
013693,000143: 15,2053 54062 SNAPLOOP TS ITEMP2 # TOTAL NO. OF SNAPSHOT DP WORDS LESS 2.
013694,000144: 15,2054 61400 AD LDATALST # CALCULATE ADDRESS OF NEXT
013695,000145: 15,2055 00006 EXTEND # ENTRY IN DOWNLIST.
013696,000146: 15,2056 50000 INDEX A # PICK UP THE DOUBLE PRECISION WORD FROM
013697,000147: 15,2057 50000 INDEX 0 # THE NEXT ENTRY
013698,000148: 15,2060 30001 DCA 0 # IN THE DOWNLIST.
013699,000149: 15,2061 50061 INDEX ITEMP1 # AND SAVE IT IN THE NEXT AVAILABLE LOC
013700,000150: 15,2062 53410 DXCH DNTMBUFF # IN DNTMBUFF SNAPSHOT BUFFER.
013701,000151: 15,2063 37762 CAF TWO # INCREMENT DNTMBUFF INCREMENTER(ITEMP1)
013702,000152: 15,2064 26061 ADS ITEMP1 # BY 2.
013703,000153: 15,2065 10062 CCS ITEMP2 # HAVE ALL SNAPSHOT DP WORDS BEEN SAVED...
013704,000154: 15,2066 12053 TCF SNAPLOOP # NO--GO BACK AND CONTINUE SAVING THEM
013705,000155: 15,2067 32113 CAF DNSNAP-1 # YES--PLACE NO. OF DP WORDS REMAINING
013706,000156: 15,2070 55402 TS TMINDEX # TO BE SENT INTO TMINDEX.
013707,000157: 15,2071 32115 CAF LSENDSNP # SET UP DNTMGOTO SO PROGRAM CONTROL WILL
013708,000158: 15,2072 55401 TS DNTMGOTO # BE TRANSFERRED TO SENDSNAP ON NEXT
013709,000159: # ENTRY TO DODOWNTM.
013710,000160: 15,2073 00006 EXTEND # PICK UP FIRST DP SNAPSHOT WORD
013711,000161: 15,2074 51400 INDEX LDATALST # AND PLACE IT IN A + L.
013712,000162: 15,2075 50013 INDEX NSNAP -1 # (((THIS ADDITIONAL CODING ALTHOUGH A BIT
013713,000163: 15,2076 30001 DCA 0 # SUPERFLUOUS IS JUSTIFIED BECAUSE IT
013714,000164: # SAVES 2 WORDS OF ERASABLE STORAGE)))
013715,000165: 15,2077 12140 TCF DNTMEXIT # GO SEND FIRST SNAPSHOT DP ENTRY.
013716,000166: 15,2100 11402 SENDSNAP CCS TMINDEX # ANY SNAPSHOT WORDS LEFT IN BUFFER
013717,000167: 15,2101 12103 TCF +2 # YES--GO PROCESS THEM
013718,000168: 15,2102 01406 TC DNQ # NO--RETURN TO INSTRUCTION AFTER
013719,000169: # TC SNAPSHOT.
013720,000170:
Page 332 |
013722,000172: 15,2103 55402 TS TMINDEX # SAVE COUNT OF SNAPSHOT WORDS REMAINING
013723,000173: 15,2104 60000 DOUBLE # CALCULATE DECREMENTER
013724,000174: 15,2105 40000 COM # FOR NEXT DP WORD IN
013725,000175: 15,2106 00006 EXTEND # BUFFER.
013726,000176: 15,2107 50000 INDEX A
013727,000177: 15,2110 31434 DCA DNTMBUFF +20D # TAKE NEXT DP WORD OUT OF BUFFER, PLACE
013728,000178: 15,2111 12140 TCF DNTMEXIT # IT INTO A + L AND GO SEND IT.
013729,000179: 15,2112 NSNAP EQUALS 12D # NUMBER OF DP SNAPSHOT WORDS.
013730,000180: 15,2112 00014 DNSNAP ADRES NSNAP # NO. OF DP SNAPSHOT WORDS CONSTANT
013731,000181: 15,2113 00013 DNSNAP-1 ADRES NSNAP -1 # NO. OF DP SNAPSHOT WORDS -1 CONSTANT
013732,000182: 15,2114 00012 DNSNAP-2 ADRES NSNAP -2 # NO. OF DP SNAPSHOT WORDS -2 CONSTANT
013733,000183: 15,2115 02100 LSENDSNP ADRES SENDSNAP # LOC OF ROUTINE WHICH SENDS SNAPSHOT BUFF
013734,000184:
013735,000185:
013736,000186: # ........................................................................
013737,000187: 15,2116 00006 SENDDP EXTEND # ENTER WITH NO. DP WORDS REMAINING TO
013738,000188: 15,2117 23406 QXCH DNQ # BE SENT IN A. SAVE RETURN ADDRESS.
013739,000189: 15,2120 55402 TS TMINDEX # PLACE NO. OF DP WORDS TO BE SENT AFTER
013740,000190: 15,2121 67763 AD ONE # THIS ONE INTO TMINDEX. CALCULATE NEXT
013741,000191: 15,2122 40000 COM # LOCATION IN DOWNLIST AND SAVE
013742,000192: 15,2123 27400 ADS LDATALST # IT IN LDATALST.
013743,000193: 15,2124 32151 CAF LSENDDPA # SET UP DNTMGOTO SO PROGRAM CONTROL WILL
013744,000194: 15,2125 55401 TS DNTMGOTO # GO TO SENDDPA ON NEXT ENTRY TO DODOWNTM.
013745,000195: 15,2126 31402 CAE TMINDEX # PLACE NO. OF WORDS REMAINING TO BE SENT
013746,000196: 15,2127 55402 SENDDPB TS TMINDEX # INTO A. SAVE NO. DP WORDS TO BE SENT.
013747,000197: 15,2130 61400 AD LDATALST # CALCULATE NEXT DOWNLIST ENTRY.
013748,000198: 15,2131 50000 INDEX A
013749,000199: 15,2132 30000 CA 0 # PICK UP ECADR OF NEXT DOWNLIST ENTRY.
013750,000200: 15,2133 54003 TS EBANK # SET EBANK.
013751,000201: 15,2134 74564 MASK LOW8 # ISOLATE RELATIVE ADDRESS.
013752,000202: 15,2135 00006 EXTEND
013753,000203: 15,2136 50000 INDEX A # PICK UP DOUBLE PRECISION
013754,000204: 15,2137 31401 DCA 3400 # WORD INTO A + L. (DCA 3400 = DCA 1400)
013755,000205:
013756,000206: 15,2140 00006 DNTMEXIT EXTEND # GENERAL DOWN-TELEMETRY EXIT
013757,000207: 15,2141 01034 WRITE DNTM1 # TO SEND A + L TO CHANNELS 34 + 35
013758,000208: 15,2142 30001 CA L # RESPECTIVELY.
013759,000209:
013760,000210: 15,2143 00006 TMEXITL EXTEND # ALTERNATE DOWN TELEMETRY EXIT
013761,000211: 15,2144 01035 WRITE DNTM2 # TO SEND A TO CHANNEL 35.
013762,000212: 15,2145 15733 TCF RESUME # EXIT DOWN TELEMETRY PROG VIA RESUME.
013763,000213:
013764,000214: 15,2146 11402 SENDDPA CCS TMINDEX # ANY DP WORDS REMAINING TO BE SENT.
013765,000215: 15,2147 12127 TCF SENDDPB # YES--GO SEND THEM.
013766,000216: 15,2150 01406 TC DNQ # RETURN TO INSTR AFTER TC SENDDP.
013767,000217: 15,2151 02146 LSENDDPA ADRES SENDDPA # LOC OF ROUTINE WHICH SENDS DP WORDS.
013768,000218:
013769,000219:
013770,000220: # ........................................................................
013771,000221: 15,2152 00006 SENDCH EXTEND
Page 333 |
013773,000223: 15,2153 23406 QXCH DNQ # SAVE RETURN ADDRESS
013774,000224: 15,2154 32175 CAF LSENDCHA # SET UP DNTMGOTO SO PROG CONTROL WILL GO
013775,000225: 15,2155 55401 TS DNTMGOTO # TO SENDCHA ON NEXT ENTRY TO DODOWNTM.
013776,000226: 15,2156 36311 CAF THREE # PLACE NO. OF PAIRS OF CHANNELS TO BE
013777,000227: # SENT AFTER THIS PAIR INTO A.
013778,000228: 15,2157 55402 SENDCHB TS TMINDEX # SAVE NO. OF PAIRS OF CHANNELS REMAINING
013779,000229: 15,2160 00006 EXTEND # TO BE SENT INTO A. PICK UP CHANNEL
013780,000230: 15,2161 50000 INDEX A # ADDRESS FROM
013781,000231: 15,2162 52202 INDEX FIXLSTCL # NEXT ENTRY IN FIXLSTCL.
013782,000232: 15,2163 00000 READ 0 # PLACE CONTENTS OF THE
013783,000233: 15,2164 54001 TS L # CHANNEL INTO L.
013784,000234: 15,2165 00006 EXTEND # PICK UP NEXT CHANNEL
013785,000235: 15,2166 51402 INDEX TMINDEX # ADDRESS FROM NEXT ENTRY
013786,000236: 15,2167 52176 INDEX FIXLSTCA # IN FIXLSTCA.
013787,000237: 15,2170 00000 READ 0 # PLACE CONTENTS OF CHANNEL INTO A.
013788,000238: 15,2171 12140 TCF DNTMEXIT # NOW GO SEND A + L.
013789,000239: 15,2172 11402 SENDCHA CCS TMINDEX # ANY MORE CHANNEL PAIRS TO BE SENT......
013790,000240: 15,2173 12157 TCF SENDCHB # YES--GO SEND THEM.
013791,000241: 15,2174 01406 TC DNQ # NO--RETURN TO INSTR AFTER TC SENDCH.
013792,000242: 15,2175 02172 LSENDCHA ADRES SENDCHA # LOCATION OF ROUTINE WHICH SENDS CHANNELS
013793,000243: 15,2176 00032 FIXLSTCA OCT 32 # CHANNEL 32
013794,000244: 15,2177 00030 OCT 30 # CHANNEL 30
013795,000245: 15,2200 00013 OCT 13 # CHANNEL 13
013796,000246: 15,2201 00011 OCT 11 # CHANNEL 11
013797,000247: 15,2202 00033 FIXLSTCL OCT 33 # CHANNEL 33
013798,000248: 15,2203 00031 OCT 31 # CHANNEL 31
013799,000249: 15,2204 00014 OCT 14 # CHANNEL 14
013800,000250: 15,2205 00012 OCT 12 # CHANNEL 12
013801,000251:
013802,000252:
013803,000253: # ........................................................................
013804,000254: 15,2206 00006 SENDDSTB EXTEND
013805,000255: 15,2207 23406 QXCH DNQ # SAVE RETURN ADDRESS
013806,000256: 15,2210 32225 CAF LSENDDSA # SET UP DNTMGOTO SO PROGRAM CONTROL WILL
013807,000257: 15,2211 55401 TS DNTMGOTO # GO TO SENDDSA ON NEXT ENTRY TO DODOWNTM.
013808,000258: 15,2212 37766 CAF FIVE # PLACE NO. OF PAIRS OF DSPTAB WORDS REM
013809,000259: 15,2213 55402 SENDDSB TS TMINDEX # AFTER THIS PAIR INTO A. SAVE NO. REMAIN-
013810,000260: 15,2214 60000 DOUBLE # ING INTO TMINDEX. CALCULATE DECREMENTER
013811,000261: 15,2215 40000 COM # FOR NEXT PAIR OF WORDS(SP)
013812,000262: 15,2216 00006 EXTEND # IN DSPTAB.
013813,000263: 15,2217 50000 INDEX A # PICK UP PAIR OF DSPTAB WORDS(SP) AND
013814,000264: 15,2220 30326 DCA DSPTAB +10D # LEAVE THEM IN A + L.
013815,000265: 15,2221 12140 TCF DNTMEXIT # NOW GO SEND A + L.
013816,000266: 15,2222 11402 SENDDSA CCS TMINDEX # ANY WORDS LEFT IN DSPTAB TO BE SENT.....
013817,000267: 15,2223 12213 TCF SENDDSB # YES--GO SEND THEM
013818,000268: 15,2224 01406 TC DNQ # NO--RETURN TO INSTR AFTER TC SENDDSTB.
013819,000269: 15,2225 02222 LSENDDSA ADRES SENDDSA # LOC OF ROUTINE WHICH SENDS DISPLAY TABLE
013820,000270:
013821,000271:
013822,000272: # ........................................................................
Page 334 |
013824,000274: 15,2226 00006 SENDTIME EXTEND # SET DP DNTMGOTO SO PROGRAM CONTROL WILL
013825,000275: 15,2227 23401 QXCH DNTMGOTO # GO TO INSTRUCTION AFTER TC SENDTIME.
013826,000276: 15,2230 00006 EXTEND
013827,000277: 15,2231 30025 DCA TIME2 # PLACE TIME2 AND TIME1 INTO A AND L.
013828,000278: 15,2232 12140 TCF DNTMEXIT # NOW GO SEND A AND L.
013829,000279:
013830,000280:
013831,000281: # ........................................................................
013832,000282: 15,2233 00032 DNDP1-1 ADRES NDP1 -1 # NO. OF DP WORDS IN GROUP 1 LESS 1
013833,000283: 15,2234 00032 DNDP2-1 ADRES NDP2 -1 # NO. OF DP WORDS IN GROUP 2 LESS 1
013834,000284: 15,2235 00102 DNLINCR ADRES LINCR # RELATIVE LOC OF FIRST GROUP IN DOWNLIST.
013835,000285: # ........................................................................
013836,000286: # ************************************************************************
013837,000287: # CHANGE THE FOLLOWING 3 EQUALS CARDS WHEN MODIFYING THE STRUCTURE OF THE
013838,000288: # DOWNLISTS.
013839,000289: 15,2236 NDP1 EQUALS 27D # NUMBER OF DP WORDS (GROUP 1)
013840,000290: 15,2236 NDP2 EQUALS 27D # NUMBER OF DP WORDS (GROUP 2)
013841,000291: 15,2236 LINCR EQUALS 66D # LINCR = NDP1 + NDP2 + 12D
013842,000292: # ************************************************************************
013843,000293:
Page 335 |
013845,000295: # NOMINAL SUNBURST (AS206) 2 SECOND DOWNLIST
013846,000296: # AS OF DATE = 02FEB67
013847,000297:
013848,000298: # LAST ENTRY IN DOWNLIST WILL BE SENT FIRST, THEN LAST ENTRY - 1 ---
013849,000299: 15,2236 NOMDNLST EQUALS
013850,000300: 15,2236 15,2236 UPDNLIST EQUALS NOMDNLST # NOT USED IN 206.
013851,000301: # ---------------------DISPLAY TABLES------------------------------------
013852,000302: # DSPTAB +10D AND DSPTAB +11D
013853,000303: # DSPTAB +8D AND DSPTAB +9D
013854,000304: # DSPTAB +6 AND DSPTAB +7
013855,000305: # DSPTAB +4 AND DSPTAB +5
013856,000306: # DSPTAB +2 AND DSPTAB +3
013857,000307: # DSPTAB AND DSPTAB +1
013858,000308: # -----------------------CHANNELS----------------------------------------
013859,000309: # CHANNELS 32 AND 33
013860,000310: # CHANNELS 30 AND 31
013861,000311: # CHANNELS 13 AND 14
013862,000312: # CHANNELS 11 AND 12
013863,000313: # -------------DOUBLE PRECISION - ANY EBANK (GROUP 2)-------------------
013864,000314: 15,2236 00076 ECADR STATE +2 # (FLAGWRD2,DAPBOOLS) FLAGWORDS
013865,000315: 15,2237 00074 ECADR STATE # (STATE,FLAGWRD1) FLAGWORDS
013866,000316: 15,2240 03017 ECADR OMEGAR -1 # (GARBAGE,OMEGAR) ANGULAR RATES ABOUT THE
013867,000317: 15,2241 03015 ECADR OMEGAP # (OMEGAP,OMEGAQ) P,Q,R BODY AXES (DAP)
013868,000318: # SCALED AT 45 DEG/SEC.
013869,000319: 15,2242 00033 ECADR CDUY # (CDUY,CDUZ) ACTUAL CDU:S
013870,000320: 15,2243 00031 ECADR CDUX -1 # (GARBAGE, CDUX) ACTUAL CDU:S
013871,000321: 15,2244 02343 ECADR RD +4 # APS2 DESIRED RADIUS VECTOR IN STABLE
013872,000322: 15,2245 02341 ECADR RD +2 # MEMBER CO-ORDINATES.
013873,000323: 15,2246 02337 ECADR RD # SCALED METERS X 2(-25).
013874,000324: 15,2247 02327 ECADR VDVECT +4 # APS2,DPS1 DESIRED VELOCITY VECTOR IN
013875,000325: 15,2250 02325 ECADR VDVECT +2 # STABLE MEMBER CO-ORDINATES.
013876,000326: 15,2251 02323 ECADR VDVECT # SCALED M/CS X 2(-7).
013877,000327: 15,2252 02335 ECADR VGVECT +4 # APS2,DPS1 VELOCITY TO BE GAINED SCALED
013878,000328: 15,2253 02333 ECADR VGVECT +2 # M/CS X 2(-7). IN LOCAL VERTICAL (APS2)
013879,000329: 15,2254 02331 ECADR VGVECT # OR STABLE MEMBER (DPS1).
013880,000330: 15,2255 02345 ECADR TTGO # ESTIMATED TIME TO GO IN CS(APS2,DPS1,2).
013881,000331: 15,2256 00764 ECADR PHASENUM # (PHASENUM,1/PIPADT)PRESENT MISSION PHASE
013882,000332: # , IMU COMP TIME BASE OR DT IN C.S.
013883,000333: 15,2257 01166 ECADR MTIMER2 # (MTIMER2,MTIMER1) REGISTERS CONTAINING
013884,000334: 15,2260 01164 ECADR MTIMER4 # (MTIMER4,MTIMER3) DELTA T:S OF MP:S.
013885,000335: 15,2261 01172 ECADR MPHASE2 # (MPHASE2,MPHASE1) REGISTERS CONTAINING
013886,000336: 15,2262 01170 ECADR MPHASE4 # (MPHASE4,MPHASE3) MP:S TO BE CALLED.
013887,000337: 15,2263 02551 ECADR DELAREA # SCALED IN UNITS OF 2(7) PERCENT INCREASE
013888,000338: 15,2264 01143 ECADR LMPIN # (LMPIN,LMPOUT)
013889,000339: 15,2265 01141 ECADR LMPCMD +6 # OUTPUT TO LMP = REGISTERS
013890,000340: 15,2266 01137 ECADR LMPCMD +4 # CONTAINING THE
013891,000341: 15,2267 01135 ECADR LMPCMD +2 # LAST EIGHT LMP COMMANDS
013892,000342: 15,2270 01133 ECADR LMPCMD # TO BE SENT BY THE LGC.
013893,000343: # ----SNAPSHOT DP WORDS FROM EBANK E7 OR UNSWITCHABLE ERASABLE(GROUP 2)---
013894,000344: 15,2271 00033 ADRES CDUY # (CDUY,CDUZ)
Page 336 |
013896,000346: 15,2272 00033 ADRES CDUY # (CDUY,CDUZ)
013897,000347: 15,2273 01320 ADRES MASS # MASS SCALED IN UNITS OF 2(15) KGS.
013898,000348: 15,2274 00100 ADRES STATE +4 # (STATE +4,GARBAGE) LAMBERT FLAGS
013899,000349: 15,2275 00041 ADRES PIPAZ # (PIPAZ,GARBAGE) ACTUAL Z PIP COUNTS.
013900,000350: 15,2276 00037 ADRES PIPAX # (PIPAX,PIPAY) ACTUAL X,Y PIP COUNTS.
013901,000351: 15,2277 01364 ADRES ALMCADR +1 # (ALMCADR +1,ERCOUNT)ALM LOC BBCON,SLFCK
013902,000352: # FAIL COUNTER.
013903,000353: 15,2300 01362 ADRES FAILREG +2 # (FAILREG +2,ALMCADR)ALM CODE,ALM LOC Q.
013904,000354: 15,2301 01360 ADRES FAILREG # (FAILREG, +1)LAST AND PREV. ALARM CODES.
013905,000355: 15,2302 01567 ADRES COMPTORK +4 # E)GYROCOMPASS GYRO TORQUES IN VERTICAL,
013906,000356: 15,2303 01565 ADRES COMPTORK +2 # S)SOUTH, EAST SYSTEM,ERATE NOT INCLUDED.
013907,000357: 15,2304 01563 ADRES COMPTORK # V) 37777,37777 = (1 - 2(-28))REVS.
013908,000358: # ---------------------------LGC CLOCK------------------------------------
013909,000359: # TIME2 AND TIME1
013910,000360: # ----------------------DISPLAY TABLES------------------------------------
013911,000361: # DSPTAB +10D AND DSPTAB +11D
013912,000362: # DSPTAB +8D AND DSPTAB +9D
013913,000363: # DSPTAB +6 AND DSPTAB +7
013914,000364: # DSPTAB +4 AND DSPTAB +5
013915,000365: # DSPTAB +2 AND DSPTAB +3
013916,000366: # DSPTAB AND DSPTAB +1
013917,000367: # -----------------------CHANNELS-----------------------------------------
013918,000368: # CHANNELS 32 AND 33
013919,000369: # CHANNELS 30 AND 31
013920,000370: # CHANNELS 13 AND 14
013921,000371: # CHANNELS 11 AND 12
013922,000372: # -------------DOUBLE PRECISION - ANY EBANK (GROUP 1)--------------------
013923,000373: 15,2305 00076 ECADR STATE +2 # (FLAGWRD2,DAPBOOLS) FLAGWORDS
013924,000374: 15,2306 00074 ECADR STATE # (STATE,FLAGWRD1) FLAGWORDS
013925,000375: 15,2307 03017 ECADR OMEGAR -1 # (GARBAGE,OMEGAR) ANGULAR RATES ABOUT THE
013926,000376: 15,2310 03015 ECADR OMEGAP # (OMEGAP,OMEGAQ) P,Q,R BODY AXES (DAP)
013927,000377: # SCALED AT 45 DEG/SEC.
013928,000378: 15,2311 00033 ECADR CDUY # (CDUY,CDUZ) ACTUAL CDU:S
013929,000379: 15,2312 00031 ECADR CDUX -1 # (GARBAGE, CDUX) ACTUAL CDU:S
013930,000380: 15,2313 01356 ECADR REDOCTR # (REDOCTR,SFAIL)RESTART CTR,SLFCK FAIL Q.
013931,000381: 15,2314 02267 ECADR TIGN # TIME FOR ENGINE ON IN CS (MP'S 9,11,13).
013932,000382: 15,2315 03260 ECADR AOSQ # (AOSQ,AOSR) MOMENT OFFSET(Q,R)
013933,000383: # SCALED AT 90 DEG/SEC/SEC.
013934,000384: 15,2316 02570 ECADR FC # THRUST COMMAND SCALED 3 LBS X 2(-14).
013935,000385: 15,2317 01311 ECADR TEVENT # TIME OF GRR, LIFTOFF, ENGINE ON/OFF (CS)
013936,000386: 15,2320 00365 ECADR IMODES30 # (IMODES30,IMODES33) PGNCS FLAGWORDS
013937,000387: 15,2321 02313 ECADR STBUFF +12D # STBUFF = 14 REGISTERS
013938,000388: 15,2322 02311 ECADR STBUFF +10D # IN WHICH THE UPLINKED DATA
013939,000389: 15,2323 02307 ECADR STBUFF +8D # IS PLACED FOR GROUND
013940,000390: 15,2324 02305 ECADR STBUFF +6D # DISPLAY AND VERIFICATION
013941,000391: 15,2325 02303 ECADR STBUFF +4D # BEFORE PLACEMENT
013942,000392: 15,2326 02301 ECADR STBUFF +2D # IN THE APPROPRIATE
013943,000393: 15,2327 02277 ECADR STBUFF # ERASABLE LOCATIONS.
013944,000394: 15,2330 02315 ECADR STCOUNT # (STCOUNT,UPOLDMD)
013945,000395: 15,2331 02321 ECADR UPVERB # (UPVERB,COMPNUMB)
Page 337 |
013947,000397: 15,2332 03021 ECADR ALPHAR # (ALPHAR,GARBAGE)DIST, ACC, ABOUT R-AXIS
013948,000398: 15,2333 01143 ECADR LMPIN # (LMPIN,LMPOUT)
013949,000399: 15,2334 01141 ECADR LMPCMD +6 # OUTPUT TO LMP = REGISTERS
013950,000400: 15,2335 01137 ECADR LMPCMD +4 # CONTAINING THE
013951,000401: 15,2336 01135 ECADR LMPCMD +2 # LAST EIGHT LMP COMMANDS
013952,000402: 15,2337 01133 ECADR LMPCMD # TO BE SENT BY THE LGC.
013953,000403: # ----SNAPSHOT DP WORDS FROM EBANK E7 OR UNSWITCHABLE ERASABLE(GROUP 1)---
013954,000404: 15,2340 00407 ADRES DELVZ # THE CHANGE IN VELOCITY ALONG
013955,000405: 15,2341 00405 ADRES DELVY # EACH OF THE STABLE MEMBER AXES IN THE
013956,000406: 15,2342 00403 ADRES DELVX # 2 SEC INTERVAL PRECEEDING PIPTIME.
013957,000407: 15,2343 00767 ADRES CDUYD # (CDUYD,CDUZD) DESIRED CDU:S
013958,000408: 15,2344 00765 ADRES CDUXD -1 # (GARBAGE,CDUXD) DESIRED CDU:S
013959,000409: 15,2345 01326 ADRES STATIME # TIME FOR RN AND VN IN CENTISECONDS.
013960,000410: 15,2346 01022 ADRES VN +4 # AVE.G/ORBIT.INT. STATE VECTOR Z VEL
013961,000411: 15,2347 01020 ADRES VN +2 # AVE.G/ORBIT.INT. STATE VECTOR Y VEL
013962,000412: 15,2350 01016 ADRES VN # AVE.G/ORBIT.INT. STATE VECTOR X VEL
013963,000413: # VN IS SCALED METERS/CS X 2(-7).
013964,000414: 15,2351 01014 ADRES RN +4 # AVE.G/ORBIT.INT. STATE VECTOR Z POS
013965,000415: 15,2352 01012 ADRES RN +2 # AVE.G/ORBIT.INT. STATE VECTOR Y POS
013966,000416: 15,2353 01010 ADRES RN # AVE.G/ORBIT.INT. STATE VECTOR X POS
013967,000417: # RN IS SCALED METERS X 2(-24).
013968,000418: # --------------------------ID WORDS--------------------------------------
013969,000419: # I.D., SYNCH BITS
013970,000420: # --------START HERE AND READ BACK FOR CONTENTS OF DOWNLIST---------------
013971,000421:
Page 338 |
013973,000423: # SPECIAL DOWN-LINK PROGRAM TO SEND SAMPLES OF CDUY & Z, AND TO TURN THE DAP BACK ON.
013974,000424:
013975,000425: 15,2354 35337 DNCDUS CA LOW10 # MAKE THIS ID UNIQUE.
013976,000426: 15,2355 02033 TC SENDID +1 # SEND ID & EXIT.
013977,000427:
013978,000428: 15,2356 37755 CAF BIT7 # ENTER HERE THE SECOND TIME.
013979,000429: 15,2357 00006 EXTEND
013980,000430: 15,2360 05013 WOR 13 # SET WORD ORDER CODE =1
013981,000431: 15,2361 32424 CA LDNCDUGO
013982,000432: 15,2362 55401 TS DNTMGOTO # SET DNTMGOTO FOR NEXT CDUY,Z DOWN TM PAS
013983,000433: 15,2363 31404 CA DNCDUN # INITIALIZE DOWN CDUY,Z COUNTER
013984,000434: # START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
013985,000435:
013986,000436: 15,2364 13707 TCF 15INSRT # TERMINATE GIMBAL DRIVES, IF ANY.
013987,000437:
013988,000438: # **END CODING FOR MODULE 3 REMAKE, AUGUST 1967*****END CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
013989,000439:
013990,000440: 15,2365 37763 DNCDUSGO CA ONE # ENTER HERE THE THIRD TIME, & AFTER.
013991,000441: 15,2366 54061 +1 TS ITEMP1 # SET UP INDEX FOR CDU ERROR CHECK.
013992,000442: 15,2367 50000 INDEX A
013993,000443: 15,2370 30767 CA CDUYD # PICK UP CDUD FOR COMPARISON WITH CDU.
013994,000444: 15,2371 00006 EXTEND
013995,000445: 15,2372 50061 INDEX ITEMP1
013996,000446: 15,2373 20033 MSU CDUY # GET DIFFERENCE BETWEEN ACTUAL CDU & CDUD
013997,000447: 15,2374 00006 EXTEND
013998,000448: 15,2375 62377 BZMF +2 # GET NEG OF ABSOLUTE MAG OF DIFFERENCE
013999,000449: 15,2376 40000 COM
014000,000450: 15,2377 61405 AD CDULMIT # COMPARE DIFFERENCE WITH ALLOWED MAXIMUM.
014001,000451: 15,2400 00006 EXTEND
014002,000452: 15,2401 62413 BZMF DNCDUEND # IF ERROR IS TOO BIG, RESTORE DAP NOW.
014003,000453:
014004,000454: 15,2402 10061 CCS ITEMP1 # IS CHECK COMPLETE?
014005,000455: 15,2403 12366 TCF DNCDUSGO +1 # NO. GO CHECK CDUY.
014006,000456:
014007,000457: 15,2404 11403 CCS DNCDUCNT # YES. ARE WE THRU SENDING CDU'S?
014008,000458: 15,2405 12407 TCF +2 # NO.
014009,000459: 15,2406 12413 TCF DNCDUEND # YES.
014010,000460:
014011,000461: 15,2407 55403 TS DNCDUCNT
014012,000462: 15,2410 00006 FETCHCDU EXTEND
014013,000463: 15,2411 30034 DCA CDUY # PICK UP CDUY AND CDUZ
014014,000464: 15,2412 12140 TCF DNTMEXIT # GO SEND THEM
014015,000465:
014016,000466: 15,2413 31346 DNCDUEND CA OLDDVSEL
014017,000467: 15,2414 55310 TS DVSELECT
014018,000468:
014019,000469: 15,2415 40077 CS DAPBOOLS # RESTORE GODAPGO TO TURN DAP BACK ON.
014020,000470: 15,2416 77751 MASK GODAPGO
014021,000471: 15,2417 26077 ADS DAPBOOLS
014022,000472:
Page 339 |
014024,000474: 15,2420 32423 CA LDNFAZE1 # REESTABLISH THE NORMAL DOWNLIST.
014025,000475: 15,2421 55401 TS DNTMGOTO
014026,000476:
014027,000477: 15,2422 12410 TCF FETCHCDU # SEND THE FINAL CDU PAIR.
014028,000478:
014029,000479: 15,2423 02006 LDNFAZE1 ADRES DNPHASE1
014030,000480: 15,2424 02365 LDNCDUGO ADRES DNCDUSGO
End of include-file DOWN-TELEMETRY_PROGRAM.agc. Parent file is MAIN.agc