swh:1:snp:92f3f585b9ae79620ad8c41a332d6329b31fd381
Tip revision: 078c79d8734a9ed2860303a7c1662004284fe853 authored by Ron Burkey on 07 August 2022, 15:04:04 UTC
Fixed a potential string-overflow bug in yaASM. Removed timestamps from
Fixed a potential string-overflow bug in yaASM. Removed timestamps from
Tip revision: 078c79d
DOWN-TELEMETRY_PROGRAM.agc
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: DOWN_TELEMETRY_PROGRAM.agc
## Purpose: A module for revision 0 of BURST120 (Sunburst). It
## is part of the source code for the Lunar Module's
## (LM) Apollo Guidance Computer (AGC) for Apollo 5.
## Assembler: yaYUL
## Contact: Ron Burkey <info@sandroid.org>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2016-09-30 RSB Created draft version.
## 2016-10-21 RSB Transcribed.
## 2016-10-30 MAS Corrected NOMDNLIST->NOMDNLST.
## 2016-10-31 RSB Typos.
## 2016-11-01 RSB More typos.
## 2016-12-05 RSB Comment-proofing pass with octopus/ProoferComments completed;
## changes made.
## Page 329
# PROGRAM NAME- DOWN TELEMETRY PROGRAM
# MOD NO.- 2
# MOD BY- KILROY
# DATE- 21NOV66
# LOG SECTION- DOWN TELEMETRY PROGRAM
# ASSEMBLY- REV 12 OF SUNBURST
# 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
# LGC 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 LGC COMPUTER WORDS CAN BE PLACED IN
# CHANNELS 34 AND 35 DURING EACH DOWNRUPT THE PROGRAM IS CAPABLE
# OF SENDING 200 LGC 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- NONE.
# EXCEPT THAT WHEN A RESTART DOES OCCUR :STARTSUB: WILL
# INITIALIZE THE DOWNLIST POINTER TO THE BEGINNING OF THE NOMINAL
# DOWNLIST. THIS HAS THE EFFECT OF IGNORING THE REMAINDER OF THE
# DOWNLIST WHICH THE DOWN-TELEMETRY PROGRAM WAS WORKING ON WHEN
# THE RESTART OCCURRED.
# OUTPUT- EVERY 2 SECONDS 100 DOUBLE PRECISION WORDS(I.E. 200 LGC
# COMPUTER WORDS) ARE TRANSMITTED VIA DOWNLINK.
# ERASABLE INITIALIZATION REQUIRED- NONE
# DNTMGOTO,DNLSTADR AND EBANK ARE INITIALIZED IN STARTSUB(FRESH
# START AND RESTART)
# DEBRIS (ERASABLE LOCATIONS DESTROYED BY THIS PROGRAM)-
# LDATALST,ITEMP1,ITEMP2,DNTMBUFF TO DNTMBUFF + 21D,TMINDEX,DNQ
BANK 15
EBANK= DNTMBUFF
ERASZERO EQUALS 7
DMYECADR EQUALS ERASZERO # USE DMYECADR TO GENERATE A DUMMY ECADR
DMYADRES EQUALS ERASZERO # USE DMYADRES TO GENERATE A DUMMY ADRES
UNKNOWN EQUALS ERASZERO # USE UNKNOWN WHEN THE MNEMONIC IS UNKNOWN
SPARE EQUALS ERASZERO # USE SPARE TO INDICATE AVAILABLE SPACE
LOWIDCOD OCT 00437
## Page 330
# DODOWNTM IS ENTERED EVERY 20 MS BY AN INTERRUPT TRIGGERED BY THE
# RECEIPT OF AN ENDPULSE FROM THE SPACECRAFT TELEMETRY PROGRAMMER.
# THE ORGANIZATION OF THE PROGRAM IS AS FOLLOWS......
# 1. A MAIN PROGRAM(DODOWNTM) WHICH CONTROLS A SERIES OF SUBROUTINES.
# 2. SUBROUTINES(SENDID,SENDSNAP ETC.) WHICH ARE DESIGNED TO HANDLE
# SPECIFIC PORTIONS OF THE DOWNLIST.
# 3. :EQUALS: CARDS(NDP1, NDP2, LINCR) WHICH DEFINE NO. OF ITEMS IN THE
# PORTIONS OF THE DOWNLISTS.
# 4. DOWNLISTS. - DOWNLISTS MUST BE COMPILED IN THE SAME BANK AS THE
# DOWN-TELEMETRY PROGRAM. THIS IS DONE FOR EASE OF CODING, FASTER
# EXECUTION AND TO INSURE THAT THE DOWNLIST ID:S(FIRST WORD OF EACH
# 2 SEC DOWNLIST.) ARE UNIQUE. THE LOCATION OF THE AGS DOWNLIST MUST BE
# 2001 OF THE FBANK IN WHICH THE DOWN-TELEMETRY PROGRAM RESIDES.
# (I.E. AGSLIST = XX,2001). THIS WILL MAKE THE ID WORD FO RTHE AGS
# DOWNLINK DATA = 00001.
DODOWNTM TS BANKRUPT
EXTEND
QXCH QRUPT
INDEX DNTMGOTO # GO TO APPROPRIATE
TCF 0 # TELEMETRY PHASE
DNPHASE1 TC SENDID # SEND ID WORD(S)
CAF BIT7 # SET WORD ORDER
EXTEND # BACK TO 1 FOR
WOR 13 # REMAINDER OF CYCLE
CA DNLINCR # CALCULATE ADDRESS OF
ADS LDATALST # SNAPSHOT WORDS TO BE SENT (GROUP 1)
TC SNAPSHOT # SAVE AND SEND SNAPSHOT WORDS (GROUP 1)
CA DNDP1-1 # PLACE NO. OF DP WORDS IN GROUP 1 INTO A
TC SENDDP # SEND DOUBLE PRECISION WORDS (GROUP 1)
TC SENDCH # SEND CHANNELS 11-14 AND 31-33
TC SENDDSTB # SEND DISPLAY TABLES
TC SENDTIME # SEND TIME1 AND TIME2
CS DNSNAP # CALCULATE ADDRESS OF
ADS LDATALST # SNAPSHOT WORDS TO BE SENT(GROUP 2)
TC SNAPSHOT # SAVE AND SEND SNAPSHOT WORDS (GROUP 2)
CA DNDP2-1 # PLACE NO. OF DP WORDS IN GROUP 2
TC SENDDP # SEND DOUBLE PRECISION WORDS(GROUP 2)
TC SENDCH # SEND CHANNELS 11-14 AND 31-33
TC SENDDSTB # SEND DISPLAY TABLE
TCF DNPHASE1 # GO BACK AND START OVER
# ........................................................................
SENDID CA DNLSTADR # INITIALIZE DOWNLIST ADDRESS AS SELECTED
TS LDATALST # BY A MISSION OR TEST PROGRAM
CS BIT7 # SET WORD
EXTEND # ORDER BIT 7 IN
## Page 331
WAND 13 # CHANNEL 13 TO 0
EXTEND # SET UP DNTMGOTO SO NEXT ENTRY TO
QXCH DNTMGOTO # DODOWNTM WILL TRANSFER CONTROL TO
# THE INSTRUCTION AFTER TC SENDID.
CAF LOWIDCOD # PLACE SPECIAL ID CODE INTO L
TS L
CA LDATALST # ISOLATE RELATIVE LOC OF DOWNLIST IN THIS
MASK LOW10 # FIXED BANK. RESULT = 0000 - 1777. NO
# CONFLICT OF DUPLICATE ID WORDS CAN OCCUR
TCF DNTMEXIT # SEND LIST ID WORD AND SPECIAL ID CODE
# ........................................................................
SNAPSHOT EXTEND
QXCH DNQ # SAVE RETURN ADDRESS
CAF ZERO # INITIALIZE THE
TS ITEMP1 # DNTMBUFF INCREMENTER(ITEMP1) TO ZERO.
CAF DNSNAP-2 # INITIALIZE LOOP COUNTER(ITEMP2) TO
SNAPLOOP TS ITEMP2 # TOTAL NO. OF SNAPSHOT DP WORDS LESS 2.
AD LDATALST # CALCULATE ADDRESS OF NEXT
EXTEND # ENTRY IN DOWNLIST.
INDEX A # PICK UP THE DOUBLE PRECISION WORD FROM
INDEX 0 # THE NEXT ENTRY
DCA 0 # IN THE DOWNLIST.
INDEX ITEMP1 # AND SAVE IT IN THE NEXT AVAILABLE LOC
DXCH DNTMBUFF # IN DNTMBUFF SNAPSHOT BUFFER.
CAF TWO # INCREMENT DNTMBUFF INCREMENTER(ITEMP1)
ADS ITEMP1 # BY 2.
CCS ITEMP2 # HAVE ALL SNAPSHOT DP WORDS BEEN SAVED...
TCF SNAPLOOP # NO--GO BACK AND CONTINUE SAVING THEM
CAF DNSNAP-1 # YES--PLACE NO. OF DP WORDS REMAINING
TS TMINDEX # TO BE SENT INTO TMINDEX.
CAF LSENDSNP # SET UP DNTMGOTO SO PROGRAM CONTROL WILL
TS DNTMGOTO # BE TRANSFERRED TO SENDSNAP ON NEXT
# ENTRY TO DODOWNTM.
EXTEND # PICK UP FIRST DP SNAPSHOT WORD
INDEX LDATALST # AND PLACE IT IN A + L.
INDEX NSNAP -1 # (((THIS ADDITIONAL CODING ALTHOUGH A BIT
DCA 0 # SUPERFLUOUS IS JUSTIFIED BECAUSE IT
# SAVES 2 WORDS OF ERASABLE STORAGE)))
TCF DNTMEXIT # GO SEND FIRST SNAPSHOT DP ENTRY.
SENDSNAP CCS TMINDEX # ANY SNAPSHOT WORDS LEFT IN BUFFER
TCF +2 # YES--GO PROCESS THEM
TC DNQ # NO--RETURN TO INSTRUCTION AFTER
# TC SNAPSHOT.
## Page 332
TS TMINDEX # SAVE COUNT OF SNAPSHOT WORDS REMAINING
DOUBLE # CALCULATE DECREMENTER
COM # FOR NEXT DP WORD IN
EXTEND # BUFFER.
INDEX A
DCA DNTMBUFF +20D # TAKE NEXT DP WORD OUT OF BUFFER, PLACE
TCF DNTMEXIT # IT INTO A + L AND GO SEND IT.
NSNAP EQUALS 12D # NUMBER OF DP SNAPSHOT WORDS.
DNSNAP ADRES NSNAP # NO. OF DP SNAPSHOT WORDS CONSTANT
DNSNAP-1 ADRES NSNAP -1 # NO. OF DP SNAPSHOT WORDS -1 CONSTANT
DNSNAP-2 ADRES NSNAP -2 # NO. OF DP SNAPSHOT WORDS -2 CONSTANT
LSENDSNP ADRES SENDSNAP # LOC OF ROUTINE WHICH SENDS SNAPSHOT BUFF
# ........................................................................
SENDDP EXTEND # ENTER WITH NO. DP WORDS REMAINING TO
QXCH DNQ # BE SENT IN A. SAVE RETURN ADDRESS.
TS TMINDEX # PLACE NO. OF DP WORDS TO BE SENT AFTER
AD ONE # THIS ONE INTO TMINDEX. CALCULATE NEXT
COM # LOCATION IN DOWNLIST AND SAVE
ADS LDATALST # IT IN LDATALST.
CAF LSENDDPA # SET UP DNTMGOTO SO PROGRAM CONTROL WILL
TS DNTMGOTO # GO TO SENDDPA ON NEXT ENTRY TO DODOWNTM.
CAE TMINDEX # PLACE NO. OF WORDS REMAINING TO BE SENT
SENDDPB TS TMINDEX # INTO A. SAVE NO. DP WORDS TO BE SENT.
AD LDATALST # CALCULATE NEXT DOWNLIST ENTRY.
INDEX A
CA 0 # PICK UP ECADR OF NEXT DOWNLIST ENTRY.
TS EBANK # SET EBANK.
MASK LOW8 # ISOLATE RELATIVE ADDRESS.
EXTEND
INDEX A # PICK UP DOUBLE PRECISION
DCA 3400 # WORD INTO A + L. (DCA 3400 = DCA 1400)
DNTMEXIT EXTEND # GENERAL DOWN-TELEMETRY EXIT
WRITE DNTM1 # TO SEND A + L TO CHANNELS 34 + 35
CA L # RESPECTIVELY.
TMEXITL EXTEND # ALTERNATE DOWN TELEMETRY EXIT
WRITE DNTM2 # TO SEND A TO CHANNEL 35.
TCF RESUME # EXIT DOWN TELEMETRY PROG VIA RESUME.
SENDDPA CCS TMINDEX # ANY DP WORDS REMAINING TO BE SENT.
TCF SENDDPB # YES--GO SEND THEM.
TC DNQ # RETURN TO INSTR AFTER TC SENDDP.
LSENDDPA ADRES SENDDPA # LOC OF ROUTINE WHICH SENDS DP WORDS.
# ........................................................................
SENDCH EXTEND
## Page 333
QXCH DNQ # SAVE RETURN ADDRESS
CAF LSENDCHA # SET UP DNTMGOTO SO PROG CONTROL WILL GO
TS DNTMGOTO # TO SENDCHA ON NEXT ENTRY TO DODOWNTM.
CAF THREE # PLACE NO. OF PAIRS OF CHANNELS TO BE
# SENT AFTER THIS PAIR INTO A.
SENDCHB TS TMINDEX # SAVE NO. OF PAIRS OF CHANNELS REMAINING
EXTEND # TO BE SENT INTO A. PICK UP CHANNEL
INDEX A # ADDRESS FROM
INDEX FIXLSTCL # NEXT ENTRY IN FIXLSTCL.
READ 0 # PLACE CONTENTS OF THE
TS L # CHANNEL INTO L.
EXTEND # PICK UP NEXT CHANNEL
INDEX TMINDEX # ADDRESS FROM NEXT ENTRY
INDEX FIXLSTCA # IN FIXLSTCA.
READ 0 # PLACE CONTENTS OF CHANNEL INTO A.
TCF DNTMEXIT # NOW GO SEND A + L.
SENDCHA CCS TMINDEX # ANY MORE CHANNEL PAIRS TO BE SENT......
TCF SENDCHB # YES--GO SEND THEM.
TC DNQ # NO--RETURN TO INSTR AFTER TC SENDCH.
LSENDCHA ADRES SENDCHA # LOCATION OF ROUTINE WHICH SENDS CHANNELS
FIXLSTCA OCT 32 # CHANNEL 32
OCT 30 # CHANNEL 30
OCT 13 # CHANNEL 13
OCT 11 # CHANNEL 11
FIXLSTCL OCT 33 # CHANNEL 33
OCT 31 # CHANNEL 31
OCT 14 # CHANNEL 14
OCT 12 # CHANNEL 12
# ........................................................................
SENDDSTB EXTEND
QXCH DNQ # SAVE RETURN ADDRESS
CAF LSENDDSA # SET UP DNTMGOTO SO PROGRAM CONTROL WILL
TS DNTMGOTO # GO TO SENDDSA ON NEXT ENTRY TO DODOWNTM.
CAF FIVE # PLACE NO. OF PAIRS OF DSPTAB WORDS REM
SENDDSB TS TMINDEX # AFTER THIS PAIR INTO A. SAVE NO. REMAIN-
DOUBLE # ING INTO TMINDEX. CALCULATE DECREMENTER
COM # FOR NEXT PAIR OF WORDS(SP)
EXTEND # IN DSPTAB.
INDEX A # PICK UP PAIR OF DSPTAB WORDS(SP) AND
DCA DSPTAB +10D # LEAVE THEM IN A + L.
TCF DNTMEXIT # NOW GO SEND A + L.
SENDDSA CCS TMINDEX # ANY WORDS LEFT IN DSPTAB TO BE SENT.....
TCF SENDDSB # YES--GO SEND THEM
TC DNQ # NO--RETURN TO INSTR AFTER TC SENDDSTB.
LSENDDSA ADRES SENDDSA # LOC OF ROUTINE WHICH SENDS DISPLAY TABLE
# ........................................................................
## Page 334
SENDTIME EXTEND # SET DP DNTMGOTO SO PROGRAM CONTROL WILL
QXCH DNTMGOTO # GO TO INSTRUCTION AFTER TC SENDTIME.
EXTEND
DCA TIME2 # PLACE TIME2 AND TIME1 INTO A AND L.
TCF DNTMEXIT # NOW GO SEND A AND L.
# ........................................................................
DNDP1-1 ADRES NDP1 -1 # NO. OF DP WORDS IN GROUP 1 LESS 1
DNDP2-1 ADRES NDP2 -1 # NO. OF DP WORDS IN GROUP 2 LESS 1
DNLINCR ADRES LINCR # RELATIVE LOC OF FIRST GROUP IN DOWNLIST.
# ........................................................................
# ************************************************************************
# CHANGE THE FOLLOWING 3 EQUALS CARDS WHEN MODIFYING THE STRUCTURE OF THE
# DOWNLISTS.
NDP1 EQUALS 27D # NUMBER OF DP WORDS (GROUP 1)
NDP2 EQUALS 27D # NUMBER OF DP WORDS (GROUP 2)
LINCR EQUALS 66D # LINCR = NDP1 + NDP2 + 12D
# ************************************************************************
## Page 335
# NOMINAL SUNBURST (AS206) 2 SECOND DOWNLIST
# AS OF DATE = 02FEB67
# LAST ENTRY IN DOWNLIST WILL BE SENT FIRST, THEN LAST ENTRY - 1 ---
NOMDNLST EQUALS
UPDNLIST EQUALS NOMDNLST # NOT USED IN 206.
# ---------------------DISPLAY TABLES------------------------------------
# DSPTAB +10D AND DSPTAB +11D
# DSPTAB +8D AND DSPTAB +9D
# DSPTAB +6 AND DSPTAB +7
# DSPTAB +4 AND DSPTAB +5
# DSPTAB +2 AND DSPTAB +3
# DSPTAB AND DSPTAB +1
# -----------------------CHANNELS----------------------------------------
# CHANNELS 32 AND 33
# CHANNELS 30 AND 31
# CHANNELS 13 AND 14
# CHANNELS 11 AND 12
# -------------DOUBLE PRECISION - ANY EBANK (GROUP 2)-------------------
ECADR STATE +2 # (FLAGWRD2,DAPBOOLS) FLAGWORDS
ECADR STATE # (STATE,FLAGWRD1) FLAGWORDS
ECADR OMEGAR -1 # (GARBAGE,OMEGAR) ANGULAR RATES ABOUT THE
ECADR OMEGAP # (OMEGAP,OMEGAQ) P,Q,R BODY AXES (DAP)
# SCALED AT 45 DEG/SEC.
ECADR CDUY # (CDUY,CDUZ) ACTUAL CDU:S
ECADR CDUX -1 # (GARBAGE, CDUX) ACTUAL CDU:S
ECADR RD +4 # APS2 DESIRED RADIUS VECTOR IN STABLE
ECADR RD +2 # MEMBER CO-ORDINATES.
ECADR RD # SCALED METERS X 2(-25).
ECADR VDVECT +4 # APS2,DPS1 DESIRED VELOCITY VECTOR IN
ECADR VDVECT +2 # STABLE MEMBER CO-ORDINATES.
ECADR VDVECT # SCALED M/CS X 2(-7).
ECADR VGVECT +4 # APS2,DPS1 VELOCITY TO BE GAINED SCALED
ECADR VGVECT +2 # M/CS X 2(-7). IN LOCAL VERTICAL (APS2)
ECADR VGVECT # OR STABLE MEMBER (DPS1).
ECADR TTGO # ESTIMATED TIME TO GO IN CS(APS2,DPS1,2).
ECADR PHASENUM # (PHASENUM,1/PIPADT)PRESENT MISSION PHASE
# , IMU COMP TIME BASE OR DT IN C.S.
ECADR MTIMER2 # (MTIMER2,MTIMER1) REGISTERS CONTAINING
ECADR MTIMER4 # (MTIMER4,MTIMER3) DELTA T:S OF MP:S.
ECADR MPHASE2 # (MPHASE2,MPHASE1) REGISTERS CONTAINING
ECADR MPHASE4 # (MPHASE4,MPHASE3) MP:S TO BE CALLED.
ECADR DELAREA # SCALED IN UNITS OF 2(7) PERCENT INCREASE
ECADR LMPIN # (LMPIN,LMPOUT)
ECADR LMPCMD +6 # OUTPUT TO LMP = REGISTERS
ECADR LMPCMD +4 # CONTAINING THE
ECADR LMPCMD +2 # LAST EIGHT LMP COMMANDS
ECADR LMPCMD # TO BE SENT BY THE LGC.
# ----SNAPSHOT DP WORDS FROM EBANK E7 OR UNSWITCHABLE ERASABLE(GROUP 2)---
ADRES CDUY # (CDUY,CDUZ)
## Page 336
ADRES CDUY # (CDUY,CDUZ)
ADRES MASS # MASS SCALED IN UNITS OF 2(15) KGS.
ADRES STATE +4 # (STATE +4,GARBAGE) LAMBERT FLAGS
ADRES PIPAZ # (PIPAZ,GARBAGE) ACTUAL Z PIP COUNTS.
ADRES PIPAX # (PIPAX,PIPAY) ACTUAL X,Y PIP COUNTS.
ADRES ALMCADR +1 # (ALMCADR +1,ERCOUNT)ALM LOC BBCON,SLFCK
# FAIL COUNTER.
ADRES FAILREG +2 # (FAILREG +2,ALMCADR)ALM CODE,ALM LOC Q.
ADRES FAILREG # (FAILREG, +1)LAST AND PREV. ALARM CODES.
ADRES COMPTORK +4 # E)GYROCOMPASS GYRO TORQUES IN VERTICAL,
ADRES COMPTORK +2 # S)SOUTH, EAST SYSTEM,ERATE NOT INCLUDED.
ADRES COMPTORK # V) 37777,37777 = (1 - 2(-28))REVS.
# ---------------------------LGC CLOCK------------------------------------
# TIME2 AND TIME1
# ----------------------DISPLAY TABLES------------------------------------
# DSPTAB +10D AND DSPTAB +11D
# DSPTAB +8D AND DSPTAB +9D
# DSPTAB +6 AND DSPTAB +7
# DSPTAB +4 AND DSPTAB +5
# DSPTAB +2 AND DSPTAB +3
# DSPTAB AND DSPTAB +1
# -----------------------CHANNELS-----------------------------------------
# CHANNELS 32 AND 33
# CHANNELS 30 AND 31
# CHANNELS 13 AND 14
# CHANNELS 11 AND 12
# -------------DOUBLE PRECISION - ANY EBANK (GROUP 1)--------------------
ECADR STATE +2 # (FLAGWRD2,DAPBOOLS) FLAGWORDS
ECADR STATE # (STATE,FLAGWRD1) FLAGWORDS
ECADR OMEGAR -1 # (GARBAGE,OMEGAR) ANGULAR RATES ABOUT THE
ECADR OMEGAP # (OMEGAP,OMEGAQ) P,Q,R BODY AXES (DAP)
# SCALED AT 45 DEG/SEC.
ECADR CDUY # (CDUY,CDUZ) ACTUAL CDU:S
ECADR CDUX -1 # (GARBAGE, CDUX) ACTUAL CDU:S
ECADR REDOCTR # (REDOCTR,SFAIL)RESTART CTR,SLFCK FAIL Q.
ECADR TIGN # TIME FOR ENGINE ON IN CS (MP'S 9,11,13).
ECADR AOSQ # (AOSQ,AOSR) MOMENT OFFSET(Q,R)
# SCALED AT 90 DEG/SEC/SEC.
ECADR FC # THRUST COMMAND SCALED 3 LBS X 2(-14).
ECADR TEVENT # TIME OF GRR, LIFTOFF, ENGINE ON/OFF (CS)
ECADR IMODES30 # (IMODES30,IMODES33) PGNCS FLAGWORDS
ECADR STBUFF +12D # STBUFF = 14 REGISTERS
ECADR STBUFF +10D # IN WHICH THE UPLINKED DATA
ECADR STBUFF +8D # IS PLACED FOR GROUND
ECADR STBUFF +6D # DISPLAY AND VERIFICATION
ECADR STBUFF +4D # BEFORE PLACEMENT
ECADR STBUFF +2D # IN THE APPROPRIATE
ECADR STBUFF # ERASABLE LOCATIONS.
ECADR STCOUNT # (STCOUNT,UPOLDMD)
ECADR UPVERB # (UPVERB,COMPNUMB)
## Page 337
ECADR ALPHAR # (ALPHAR,GARBAGE)DIST, ACC, ABOUT R-AXIS
ECADR LMPIN # (LMPIN,LMPOUT)
ECADR LMPCMD +6 # OUTPUT TO LMP = REGISTERS
ECADR LMPCMD +4 # CONTAINING THE
ECADR LMPCMD +2 # LAST EIGHT LMP COMMANDS
ECADR LMPCMD # TO BE SENT BY THE LGC.
# ----SNAPSHOT DP WORDS FROM EBANK E7 OR UNSWITCHABLE ERASABLE(GROUP 1)---
ADRES DELVZ # THE CHANGE IN VELOCITY ALONG
ADRES DELVY # EACH OF THE STABLE MEMBER AXES IN THE
ADRES DELVX # 2 SEC INTERVAL PRECEEDING PIPTIME.
ADRES CDUYD # (CDUYD,CDUZD) DESIRED CDU:S
ADRES CDUXD -1 # (GARBAGE,CDUXD) DESIRED CDU:S
ADRES STATIME # TIME FOR RN AND VN IN CENTISECONDS.
ADRES VN +4 # AVE.G/ORBIT.INT. STATE VECTOR Z VEL
ADRES VN +2 # AVE.G/ORBIT.INT. STATE VECTOR Y VEL
ADRES VN # AVE.G/ORBIT.INT. STATE VECTOR X VEL
# VN IS SCALED METERS/CS X 2(-7).
ADRES RN +4 # AVE.G/ORBIT.INT. STATE VECTOR Z POS
ADRES RN +2 # AVE.G/ORBIT.INT. STATE VECTOR Y POS
ADRES RN # AVE.G/ORBIT.INT. STATE VECTOR X POS
# RN IS SCALED METERS X 2(-24).
# --------------------------ID WORDS--------------------------------------
# I.D., SYNCH BITS
# --------START HERE AND READ BACK FOR CONTENTS OF DOWNLIST---------------
## Page 338
# SPECIAL DOWN-LINK PROGRAM TO SEND SAMPLES OF CDUY & Z, AND TO TURN THE DAP BACK ON.
DNCDUS CA LOW10 # MAKE THIS ID UNIQUE.
TC SENDID +1 # SEND ID & EXIT.
CAF BIT7 # ENTER HERE THE SECOND TIME.
EXTEND
WOR 13 # SET WORD ORDER CODE =1
CA LDNCDUGO
TS DNTMGOTO # SET DNTMGOTO FOR NEXT CDUY,Z DOWN TM PAS
CA DNCDUN # INITIALIZE DOWN CDUY,Z COUNTER
# START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
TCF 15INSRT # TERMINATE GIMBAL DRIVES, IF ANY.
# **END CODING FOR MODULE 3 REMAKE, AUGUST 1967*****END CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
DNCDUSGO CA ONE # ENTER HERE THE THIRD TIME, & AFTER.
+1 TS ITEMP1 # SET UP INDEX FOR CDU ERROR CHECK.
INDEX A
CA CDUYD # PICK UP CDUD FOR COMPARISON WITH CDU.
EXTEND
INDEX ITEMP1
MSU CDUY # GET DIFFERENCE BETWEEN ACTUAL CDU & CDUD
EXTEND
BZMF +2 # GET NEG OF ABSOLUTE MAG OF DIFFERENCE
COM
AD CDULMIT # COMPARE DIFFERENCE WITH ALLOWED MAXIMUM.
EXTEND
BZMF DNCDUEND # IF ERROR IS TOO BIG, RESTORE DAP NOW.
CCS ITEMP1 # IS CHECK COMPLETE?
TCF DNCDUSGO +1 # NO. GO CHECK CDUY.
CCS DNCDUCNT # YES. ARE WE THRU SENDING CDU'S?
TCF +2 # NO.
TCF DNCDUEND # YES.
TS DNCDUCNT
FETCHCDU EXTEND
DCA CDUY # PICK UP CDUY AND CDUZ
TCF DNTMEXIT # GO SEND THEM
DNCDUEND CA OLDDVSEL
TS DVSELECT
CS DAPBOOLS # RESTORE GODAPGO TO TURN DAP BACK ON.
MASK GODAPGO
ADS DAPBOOLS
## Page 339
CA LDNFAZE1 # REESTABLISH THE NORMAL DOWNLIST.
TS DNTMGOTO
TCF FETCHCDU # SEND THE FINAL CDU PAIR.
LDNFAZE1 ADRES DNPHASE1
LDNCDUGO ADRES DNCDUSGO