### FILE="Main.annotation" ## Copyright: Public domain. ## Filename: DOWN-TELEMETRY_PROGRAM.agc ## Purpose: Part of the source code for Colossus build 237. ## This is for the Command Module's (CM) Apollo Guidance ## Computer (AGC), for Apollo 8. ## Assembler: yaYUL ## Contact: Onno Hommes ## Website: www.ibiblio.org/apollo/index.html ## Page Scans: www.ibiblio.org/apollo/ScansForConversion/Colossus237/ ## Mod history: 2010-05-22 OH Adapted from corresponding Colossus 249 file. ## 2010-12-04 JL Remove Colossus 249 header comments. Change to double-has page numbers. ## 2011-02-12 JL Minor fixes. ## 2017-01-01 RSB Proofed comment text using octopus/ProoferComments, ## and fixed errors found. ## 2017-01-08 RSB Fixed comment errors detected in cross-diff vs ## Colossus 249. ## 2017-03-15 RSB Comment-text fixes identified in 5-way ## side-by-side diff of Luminary 69/99/116/131/210. ## Page 1060 # 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 CHANGE WILL NOT AFFECT THE GROUND PROCESSING # OF DOWN TELEMETRY DATA. # MOD BY- KILROY, SMITH, DEWITT # DATE- 02OCT67 # AUTHORS- KILROY, SMITH, DEWITT, 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 20 MS 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 1061 ## Empty page. ## Page 1062 # 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 TAGGED 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