# Copyright: Public domain. # Filename: DOWN-TELEMETRY_PROGRAM.agc # Purpose: Part of the source code for Comanche, build 055. It # is part of the source code for the Command Module's # (CM) Apollo Guidance Computer (AGC), Apollo 11. # Assembler: yaYUL # Reference: pp. 1093-1102 # Contact: Ron Burkey # Website: http://www.ibiblio.org/apollo. # Mod history: 2009-05-08 RSB Adapted from Colossus249/ file of same name # and page images. Corrected various typos # in the transcription of program comments, # and these should be back-ported to # Colossus249. # # The contents of the "Comanche055" files, in general, are transcribed # from scanned documents. # # Assemble revision 055 of AGC program Comanche by NASA # 2021113-051. April 1, 1969. # # This AGC program shall also be referred to as Colossus 2A # # Prepared by # Massachusetts Institute of Technology # 75 Cambridge Parkway # Cambridge, Massachusetts # # under NASA contract NAS 9-4065. # # Refer directly to the online document mentioned above for further # information. Please report any errors to info@sandroid.org. # Page 1093 # PROGRAM NAME- DOWN TELEMETRY PROGRAM # MOD NO.- 0 TO COMPLETELY REWRITE THE DOWN TELEMETRY PROGRAM AND DOWNLINK ERASABLE DUMP PROGRAM FOR THE # PURPOSE OF SAVING APPROXIMATELY 150 WORDS OF CORE STORAGE. # THIS CHANGE REQUIRES AN ENTIRELY NEW METHOD OF SPECIFYING DOWNLINK LISTS. REFER TO DOWNLINK # LISTS LOG SECTION FOR MORE DETAILS. HOWEVER THIS CHANGES WILL NOT AFFECT THE GROUND PROCESSING # OF DOWN TELEMETRY DATA. # MOD BY- KILROY, SMITH, DEWITT # DATE- 02OCT67 # AUTHORS- KILROY, SMITH, DWWITT, DEWOLF, FAGIN # LOG SECTION- DOWN-TELEMETRY PROGRAM # FUNCTIONAL DESCRIPTION- THIS ROUTINE IS INITIATED BY TELEMETRY END # PULSE FROM THE DOWNLINK TELEMETRY CONVERTER. THIS PULSE OCCURS # AT 50 TIMES PER SEC(EVERY 20 MS) THEREFORE DODOWNTM IS # EXECUTED AT THESE RATES. THIS ROUTINE SELECTS THE APPROPRIATE # AGC DATA TO BE TRANSMITTED DOWNLINK AND LOADS IT INTO OUTPUT # CHANNELS 34 AND 35. THE INFORMATION IS THEN GATED OUT FROM THE # LGC IN SERIAL FASHION. # THIS PROGRAM IS CODED FOR A 2 SECOND DOWNLIST. SINCE DOWNRUPTS # OCCUR EVERY 20MS AND 2 AGC COMPUTER WORDS CAN BE PLACED IN # CHANNELS 34 AND 35 DURING EACH DOWNRUPT THE PROGRAM IS CAPABLE # OF SENDING 200 AGC WORDS EVERY 2 SECONDS. # CALLING SEQUENCE- NONE # PROGRAM IS ENTERED VIA TCF DODOWNTM WHICH IS EXECUTED AS A # RESULT OF A DOWNRUPT. CONTROL IS RETURNED VIA TCF RESUME WHICH # IN EFFECT IS A RESUME. # SUBROUTINES CALLED- NONE # NORMAL EXIT MODE- TCF RESUME # ALARM OR ABORT EXIT MODE- NONE # RESTART PROTECTION: # ON A FRESH START AND RESTART THE 'STARTSUB' SUBROUTINE WILL INITIALIZE THE DOWNLIST POINTER(ACTUALLY # DNTMGOTO) TO THE BEGINNING OF THE CURRENT DOWNLIST(I.E., CURRENT CONTENTS OF DNLSTADR). THIS HAS THE # EFFECT OF IGNORING THE REMAINDER OF THE DOWNLIST WHICH THE DOWN-TELEMETRY PROGRAM WAS WORKING ON WHEN # THE RESTART(OR FRESH START) OCCURRED AND RESUME DOWN TELEMETRY FROM THE BEGINNING OF THE CURRENT # DOWNLIST. # ALSO OF INTEREST IS THE FACT THAT ON A RESTART THE AGC WILL ZERO DOWNLINK CHANNELS 13, 34 AND 35. # DOWNLINK LIST SELECTION: # THE APPROPRIATE DOWNLINK LISTS ARE SELECTED BY THE FOLLOWING: # 1. FRESH START # 2. V37EXXE WHERE XX = THE MAJOR MODE BEING SELECTED. # 3. UPDATE PROGRAM(P27) # 4. NON-V37 SELECTABLE TYPE PROGRAMS(E.G. AGS INITIALIZATION(SUNDANCE,LUMINARY) AND P61-P62 # TRANSITION(COLOSSUS) ETC.). # DOWNLINK LIST RULES AND LIMITATIONS: # READ SECTION(S) WHICH FOLLOW 'DEBRIS' WRITEUP. # OUTPUT- EVERY 2 SECONDS 100 DOUBLE PRECISION WORDS(I.E. 200 LGC # COMPUTER WORDS) ARE TRANSMITTED VIA DOWNLINK. # ERASABLE INITIALIZATION REQUIRED- NONE # 'DNTMGOTO' AND 'DNLSTADR' ARE INITIALIZED BY THE FRESH START PROGRAM. # DEBRIS(ERASABLE LOCATIONS DESTROYED BY THIS PROGRAM)- # LDATALST,DNTMBUFF TO DNTMBUFF +21D,TMINDEX,DNQ. # Page 1094 # (No source on this page of the original assembly listing.) # Page 1095 # DODOWNTM IS ENTERED EVERY 20 MS BY AN INTERRUPT TRIGGERED BY THE # RECEIPT OF AN ENDPULSE FROM THE SPACECRAFT TELEMETRY PROGRAMMER. # # NOTES REGARDING DOWNLINK LISTS ASSOCIATED WITH THIS PROGRAM: # 1. DOWNLISTS. - DOWNLISTS MUST BE COMPILED IN THE SAME BANK AS THE # DOWN-TELEMETRY PROGRAM. THIS IS DONE FOR EASE OF CODING, FASTER # EXECUTION. # 2. EACH DOWNLINK LIST CONSISTS OF A CONTROL LIST AND A NUMBER OF # SUBLISTS. # 3. A SUBLIST REFERS TO A SNAPSHOT OR DATA COMMON TO THE SAME OR OTHER # DOWNLINK LISTS. ANY SUBLIST CONTAINING COMMON DATA NEEDS TO BE # CODED ONLY ONCE FOR THE APPLICABLE DOWNLINK LISTS. # 4. SNAPSHOT SUBLISTS REFER SPECIFICALLY TO HOMOGENOUS DATA WHICH MUST BE # SAVED IN A BUFFER DURING ONE DOWNRUPT. # 5. THE 1DNADR FOR THE 1ST WORD OF SNAPSHOT DATA IS FOUND AT THE END # OF EACH SNAPSHOT SUBLIST, SINCE THE PROGRAM CODING SENDS THIS DP WORD # IMMEDIATELY AFTER STORING THE OTHERS IN THE SNAPSHOT BUFFER. # 6. ALL LISTS ARE COMBINATIONS OF CODED ERASABLE ADDRESS CONSTANTS # CREATED FOR THE DOWNLIST PROGRAM. # A. 1DNADR 1-WORD DOWNLIST ADDRESS. # SAME AS ECADR, BUT USED WHEN THE WORD ADDRESSED IS THE LEFT # HALF OF A DOUBLE-PRECISION WORD FOR DOWN TELEMETRY. # B. 2DNADR - 6DNADR N-WORD DOWNLIST ADDRESS, N = 2 - 6. # SAME AS 1DNADR, BUT WITH THE 4 UNUSED BITS OF THE ECADR FORMAT # FILLED IN WITH 0001-0101. USED TO POINT TO A LIST OF N DOUBLE- # PRECISION WORDS, STORED CONSECUTIVELY, FOR DOWN TELEMETRY. # C. DNCHAN DOWNLIST CHANNEL ADDRESS. # SAME AS 1DNADR, BUT WITH PREFIX BITS 0111. USED TO POINT TO # A PAIR OF CHANNELS FOR DOWN TELEMETRY. # D. DNPTR DOWN TELEMETRY SUBLIST POINTER. # SAME AS CAF BUT TAGGES AS A CONSTANT. USED IN CONTROL LIST TO POINT TO A SUBLIST. # CAUTION--- A DNPTR CANNOT BE USED IN A SUBLIST. # 7. THE WORD ORDER CODE IS SET TO ZERO AT THE BEGINNING OF EACH DOWNLIST (I.E., CONTROL LIST) AND WHEN # A '1DNADR TIME2' IS DETECTED IN THE CONTROL LIST(ONLY). # 8. IN THE SNAPSHOT SUBLIST ONLY, THE DNADR'S CANNOT POINT TO THE FIRST WORD OF ANY EBANK. # # DOWNLINK LIST RESTRICTIONS: # (THE FOLLOWING POINTS MAY BE LISTED ELSEWHERE BUT ARE LISTED HERE SO IT IS CLEAR THAT THESE THINGS CANNOT BE # DONE) # # 1. SNAPSHOT DOWNLIST: # (A) CANNOT CONTAIN THE FOLLOWING ECADRS(I.E. 1DNADR'S): 0, 400, 1000, 1400, 2000, 2400, 3000, 3400. # (B) CAN CONTAIN ONLY 1DNADR'S # # 2. ALL DOWNLINKED DATA(EXCEPT CHANNELS) IS PICKED UP BY A