273 lines
9.7 KiB
ArmAsm
273 lines
9.7 KiB
ArmAsm
# Copyright: Public domain.
|
|
# Filename: TVCRESTARTS.agc
|
|
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
|
|
# It is part of the source code for the Command Module's (CM)
|
|
# Apollo Guidance Computer (AGC), for Apollo 11.
|
|
# Assembler: yaYUL
|
|
# Contact: Ron Burkey <info@sandroid.org>.
|
|
# Website: www.ibiblio.org/apollo.
|
|
# Pages: 956-960
|
|
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
|
|
# same name, using Comanche055 page images.
|
|
# 2009-05-20 RSB Corrections: TCF -> BZF in one place.
|
|
# 2009-05-21 RSB In PHSCHK2, CS TVCPHASE corrected to
|
|
# CCS TVCPHASE and CCS 4 corrected to CCS A.
|
|
# Page 924 corrected to 961. CORCOPY +2
|
|
# corrected to CORCOPY +1.
|
|
#
|
|
# This source code has been transcribed or otherwise adapted from digitized
|
|
# images of a hardcopy from the MIT Museum. The digitization was performed
|
|
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
|
|
# thanks to both. The images (with suitable reduction in storage size and
|
|
# consequent reduction in image quality as well) are available online at
|
|
# www.ibiblio.org/apollo. If for some reason you find that the images are
|
|
# illegible, contact me at info@sandroid.org about getting access to the
|
|
# (much) higher-quality images which Paul actually created.
|
|
#
|
|
# Notations on the hardcopy document read, in part:
|
|
#
|
|
# Assemble revision 055 of AGC program Comanche by NASA
|
|
# 2021113-051. 10:28 APR. 1, 1969
|
|
#
|
|
# This AGC program shall also be referred to as
|
|
# Colossus 2A
|
|
|
|
# Page 956
|
|
# NAME....TVCRESTART PACKAGE, CONSISTING OF REDOTVC, ENABL1, 2, CMDSOUT, PHSCHK2, ETC.
|
|
# LOG SECTION....TVCRESTARTS SUBROUTINE....DAPCSM
|
|
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
|
|
#
|
|
# FUNCTIONAL DESCRIPTION....
|
|
#
|
|
# *RESTART-PROCESS THE TVC DAPS, INCLUDING PITCHDAP, YAWDAP,
|
|
# TVCEXECUTIVE, ROLLDAP, TVCINIT4, TVCDAPON, AND CSM/.M V46 SWTCHOVR.
|
|
#
|
|
# *TVC RESTARTS DESERVE SPECIAL CONSIDERATION IN SEVERAL AREAS.
|
|
# RESTART DOWN-TIME IS IMPORTANT BECAUSE OF THE TRANSIENTS INTRODUCED
|
|
# BY THE THRUST VECTOR RETURN TO THE ACTUATOR MECHANICAL NULLS
|
|
# FOLLOWING TVC- AND OPTICS-ERROR-COUNTER-DISENABLES (CHANNEL 12).
|
|
# TVC USES A MIXTURE OF WAITLIST, T5, T6, AND JOB CALLS. THERE IS
|
|
# FILTER MEMORY (UP TO 6TH ORDER) TO BE PROTECTED IF WILD TRANSIENTS
|
|
# ARE TO BE AVOIDED. COUNTERS ARE INVOLVED FOR ONE-SHOT
|
|
# CORRECTIONS AND GAIN UPDATES. THE GIMBAL TRIM ESTIMATORS AND THE
|
|
# BODY AXIS ATTITUDE ERROR INTEGRATORS INVOLVE DIGITAL SUMMATION.
|
|
# DIGITAL DIFFERENTIATORS ARE INVOLVED IN THE BODY AXIS RATE ESTIMA-
|
|
# TIONS AND IN THE OUTPUTTING OF ACTUATOR COMMANDS. THERE IS AN
|
|
# OFFSET-TRACKER-FILTER TO PROTECT. ETC., ETC.
|
|
#
|
|
# *THOSE QUANTITIES WHICH MUST BE PROTECTED ARE STORED IN TEMPORARY
|
|
# REGISTERS AS THEY ARE COMPUTED, FOR UPDATING THE REAL REGISTERS
|
|
# DURING COPYCYCLES.
|
|
#
|
|
# *THE SEVERAL COPYCYCLES ARE EACH PROTECTED BY PHASE POINTS AT THEIR
|
|
# BEGINNING AND AT THEIR TERMINATION. THE PHASE POINTS ARE SIMPLY
|
|
# "INCR" INSTRUCTIONS, EITHER "INCR TVCEXPHS" FOR COPYCYCLES
|
|
# IN THE TVCEXECUTIVE, OR "INCR TVCPHASE" FOR THE PITCH AND YAW
|
|
# COPYCYCLES. INDEXING ON EACH OF THESE POINTERS THEN PERMITS A
|
|
# RETURN TO THE APPROPRIATE RESTART POINTS.
|
|
#
|
|
# *IF A RESTART OCCURS DURING EITHER COPYCYCLE, THAT COPYCYCLE IS
|
|
# COMPLETED. THEN THE NORMAL TVCINIT4....DAPINIT....PITCHDAP STARTUP
|
|
# SEQUENCE IS CALLED UPON TO GET THINGS GOING AGAIN.
|
|
#
|
|
# *TVC-ENABLE AND OPTICS-ERROR-COUNTER ENABLE MUST BE SET ASAP
|
|
# (ALLOWING FOR PROCEDURAL DELAYS). THEN THE ENGINES ARE COMMANDED
|
|
# TO THE P,YACTOFF TRIM VALUES. THE DAPS ARE THEN READY TO GO ON THE
|
|
# AIR, WITH THE REGULAR STARTUP SEQUENCE, EITHER AT MRCLEAN FOR A
|
|
# COMPLETE INITIALIZATION OR AT TVCINIT4 FOR A PARTIAL INITIALIZATION.
|
|
#
|
|
# *FOR RESTARTS PRIOR TO THE SETTING OF THE T5 BITS AT DOTVCON THE
|
|
# PRE40.6 SECTION OF S40.6 TAKES CARE OF RE-ESTABLISHING TRIMS.
|
|
#
|
|
# *IF A RESTART OCCURS DURING THE TVCEXEC....TVCEXFIN SEQUENCE THE
|
|
# COMPUTATIONS WILL BE COMPLETED, STARTING AT THE APPROPRIATE RESTART
|
|
# POINT, AFTER THE DAPS ARE READY TO GO ON THE AIR.
|
|
#
|
|
# *IF A RESTART OCCURS PRIOR TO TVCINIT4 (TVCPHAS = -1) E.G. DURING
|
|
# THE EARLY DAP INITIALIZATION PHASE, THE DAP STARTUP SEQUENCE IS
|
|
# ENTERED AT MRCLEAN FOR A FULL INITIALIZATION.
|
|
#
|
|
# *FOR RESTARTS DURING CSM/LM V46 SWITCH-VER, TVCPHASE IS SET TO -2.
|
|
# AND THE RESTART LOGIC GOES BACK TO REDO SWITCH-OVER (AFTER THE
|
|
# NORMAL DAP RESTART SEQUENCE IS FOLLOWED.)
|
|
#
|
|
# *RESTARTS ARE NOT CRITICAL TO THE ROLL DAP PERFORMANCES HENCE THE
|
|
# ROLL DAP IS MERELY RESTARTED.
|
|
#
|
|
# *RESTARTS DURING A STROKE TEST (STROKER IS NON-ZERO) WILL CAUSE THE
|
|
# Page 957
|
|
# STROKE TEST TO BE TERMINATED. A NEW V68 ENTRY WILL BE REQUIRED
|
|
# TO GET IT GOING AGAIN (NO AUTOMATIC RESTART).
|
|
#
|
|
# *REDOTVC IS REACHED FOLLOWING ANY RESTART WHICH FINDS THE T5 BITS
|
|
# (BITS 15,14 OF FLAGWRD6) SET FOR TVC. DOTVCON TVCPHASE = -1
|
|
# AND TVC EXPHS = 0 JUST BEFORE SETTING THESE BITS, JUST BEFORE
|
|
# MAKING THE T5 CALL TO TVCDAPON. ON A NORMAL SHUTDOWN DOTVCRCS
|
|
# CALLS RCSDAPON, WHICH RESETS THE T5 BIT FOR RCS
|
|
#
|
|
# CALLING SEQUENCE....T5, IN PARTICULAR BY ELRSKIP OF FRESH START/RESTART
|
|
#
|
|
# NORMAL EXIT MODES....RESUME, NOQRSM, POSTJUMP (TO TVCINIT4 OR MRCLEAN)
|
|
#
|
|
# ALARM OR ABORT EXIT MODES....NONE
|
|
#
|
|
# SUBROUTINES CALLED....
|
|
#
|
|
# *PCOPY+1, YCOPY+1 (PITCH AND YAW COPYCYCLES)
|
|
# *ENABLE1,2, CMDSOUT (RE-ESTABLISH ACTUATOR TRIMS)
|
|
# *MRCLEAN OR TVCINIT4 (TVCDAP INITIALIZATIONS)
|
|
# *SWITCHOVR +5 (CSM/LM V46 SWITCH-OVER)
|
|
# *EXRSTRT AND TVCEXECUTIVE PHASE POINTS 1 THRU 6
|
|
# *WAITLIST, IBNKCALL, POSTJUMP, ISWCALL
|
|
#
|
|
# OTHER INTERFACES....DOTVCON AND RCSDAPON (T5 BITS), ELRSKIP (CALLS IT)
|
|
#
|
|
# ERASABLE INITIALIZATION REQUIRED....
|
|
#
|
|
# *T5 BITS (1,0), TVCPHASE (-2,-1,0,1,2,3), TVCEXPHS (1 THRU 6)
|
|
# *TVC DAP VARIABLES
|
|
# *OPERATIONS PERFORMED BY REDOTVC ARE BASED ON THE ASSUMPTION THAT
|
|
# THE TVC DAPS ARE RUNNING NORMALLY
|
|
#
|
|
# OUTPUT....
|
|
#
|
|
# *PITCH AND YAW TVC DAP COPYCYCLES COMPLETED IF INTERRUPTED
|
|
# *TVCEXECUTIVE COMPLETED IF INTERRUPTED
|
|
# *STROKE TEST TERMINATED IF INTERRUPTED
|
|
# *CSM/LM V46 SWITCH-OVER REPEATED IF INTERRUPTED
|
|
# *ACTUATOR TRIMS RE-ESTABLISHED (ACTUATORS BACK ON THE AIR)
|
|
# *TVC DAP INITIALIZATION AS REQUIRED
|
|
# *ALL TVC DAP OPERATIONS ON THE AIR
|
|
#
|
|
# DEBRIS....TVC TEMPORARIES IN EBANK6
|
|
|
|
#Page 958
|
|
|
|
BANK 16
|
|
SETLOC DAPROLL
|
|
BANK
|
|
EBANK= TVCPHASE
|
|
COUNT* $$/RSRT
|
|
|
|
REDOTVC LXCH BANKRUPT # TVC RESTART PACKAGE
|
|
EXTEND
|
|
QXCH QRUPT # ("TCR" IN "FINCOPY")
|
|
|
|
EXECPHS CCS TVCEXPHS # CHECK TVCEXECUTIVE PHASE
|
|
TCF +2 # MUST RESTART TVCEXECUTIVE
|
|
TCF TVCDAPHS # NO NEED TO RESTART TVCEXECUTIVE
|
|
|
|
CAF NINE # 9CS DELAY TO FORCE EXRSTRT TO OCCUR
|
|
TC WAITLIST # BEFORE PITCHDAP, AFTER CMDSOUT
|
|
EBANK= TVCEXPHS
|
|
2CADR EXRSTRT
|
|
|
|
TVCDAPHS CS OCT37776 # CHECK BITS 15 AND 1 OF TVCPHASE TO SEE
|
|
MASK TVCPHASE # DAP RESTART LOCATION (-1,1,2,3)
|
|
CCS A
|
|
TCF FINCOPY # FINISH THE COPYCYCLE FIRST
|
|
TCF ENABL1 # JUST PREPARE THE OUTCOUNTERS AND GO
|
|
|
|
CS TVCPHASE # TEST FOR TVCPHASE = -2
|
|
MASK BIT2 # (THIS INDICATES RESTART OCCURRED
|
|
EXTEND # DURING CSM/LM V46 SWITCH-OVER)
|
|
BZF TRIM/CMD # NO. TVCPHASE = -1. RSTRT WAS IN TVCINIT
|
|
|
|
ENABL1 CAF BIT8 # TVC ENABLE, FOLLOWED BY 40 MS (MIN) WAIT
|
|
AD BIT11 # SET BIT FOR OPTICS-DAC-ENABLE ALSO
|
|
EXTEND # (ENABL1 ENTERED FROM TVCDAPHS / FINCOPY)
|
|
WOR CHAN12
|
|
CAF TVCADDR # WAIT, CALLING ENABL2 (BBCON THERE)
|
|
TS T5LOC
|
|
CAF TVCADDR +4 # 60 MS (TVCEXADR)
|
|
TS TIME5
|
|
|
|
TCF RESUME
|
|
|
|
ENABL2 LXCH BANKRUPT # CONTINUE PREPARATION OF OUTCOUNTERS
|
|
|
|
CAF BIT2 # OPTICS ERROR CNTR ENABLE, 4MS MIN WAIT
|
|
EXTEND
|
|
WOR CHAN12
|
|
# Page 959
|
|
CAF TVCADDR +2 # WAIT, CALLING CMDSOUT (BBCON THERE)
|
|
TS T5LOC
|
|
CAF OCT37776 # 20MS
|
|
TS TIME5
|
|
|
|
TCF NOQRSM
|
|
|
|
CMDSOUT LXCH BANKRUPT # CONTNUE PREPARATION OF OUTCOUNTERS
|
|
EXTEND
|
|
QXCH QRUPT
|
|
|
|
CS ZERO # MOST RECENT ACTUATOR COMMANDS
|
|
AD PCMD # (AVOID +0)
|
|
TS TVCPITCH
|
|
CS ZERO
|
|
AD YCMD
|
|
TS TVCYAW
|
|
|
|
CAF PRIO6 # RELEASE THE COUNTERS (BITS 11,12)
|
|
EXTEND
|
|
WOR CHAN14
|
|
|
|
PHSCHK2 CCS TVCPHASE # CHECK TVCPHASE AGAIN
|
|
TCF CHKSTRK
|
|
TCF CHKSTRK
|
|
CCS A # A CONTAINS THE DIMINISHED ABSOLUTE OF
|
|
TC +3 # TVCPHASE (-2 BECOMES +1. -1 BECOMES +0)
|
|
|
|
TC POSTJUMP # REPEAT TVC INITIALIZATION
|
|
CADR MRCLEAN # (DO NOT RETURN)
|
|
|
|
+3 TC IBNKCALL # REPEAT CSM/LM V46 SWITCH-OVER
|
|
CADR SWICHOVR +5 # (RETURN TO CHECK FOR STROKE TEST)
|
|
|
|
CHKSTRK CCS STROKER # CHECK FOR STROKE TEST IN PROGRESS
|
|
TCF TSTINITJ # YES, KILL IT
|
|
TCF +2 # NO, PROCEED
|
|
TCF TSTINITJ # YES, KILL IT
|
|
|
|
+4 TC POSTJUMP # IF POSITIVE OR ZERO, RESTART AT
|
|
CADR TVCINIT4 # TVCINIT4 (ZEROS TVCPHASE, AND
|
|
# CALLS TVC DAPS VIA DAPINIT)
|
|
FINCOPY INDEX TVCPHASE # PICK UP THE APPROPRIATE COPYCYCLE
|
|
CAF TVCCADR
|
|
TCR ISWCALL # RE-ENTER THE COPYCYCLE, RETURN AT END
|
|
TCF ENABL1 # NOW PREPARE THE OUTCOUNTERS
|
|
|
|
TRIM/CMD EXTEND # TVCDAPON INITIALIZATION NOT COMPLETED,
|
|
# Page 960
|
|
DCA PACTOFF # EG. P,YCMD MAY NOT BE SET. SET...
|
|
DXCH PCMD
|
|
TCF ENABL1 # NOW PREPARE THE OUTCOUNTERS
|
|
|
|
TSTINITJ CAF ZERO # DISABLE STROKE TEST (-0 SHOWS PRIOR V68)
|
|
TS STROKER # (+0 MEANS NEW V68 REQUIRED FOR STARTUP)
|
|
|
|
TCF CHKSTRK +4
|
|
|
|
EXRSTRT INDEX TVCEXPHS # TVCEXECUTIVE RESTARTS....GO TO
|
|
CAF TVCEXADR # APPROPRIATE RESTART POINT
|
|
INDEX A
|
|
TCF 0
|
|
|
|
# Page 961
|
|
# TVC RESTART TABLES.... ORDER IS REQUIRED. HI-ORDER WORDS ONLY, OF 2CADRS, SINCE BBCON IS ALREADY THERE.
|
|
|
|
TVCADDR = TVCCADR # TABLE OF CADRS, UNUSED LOCS FOR GENADRS
|
|
TVCCADR GENADR ENABL2 # (FOR T5 CALL, UNUSED TABLE LOC)
|
|
+1 CADR PCOPY +1 # PITCH COPYCYCLE
|
|
+2 GENADR CMDSOUT # (FOR T5 CALL, UNUSED TABLE LOC)
|
|
+3 CADR YCOPY +1 # YAW COPYCYCLE
|
|
TVCEXADR OCT 37772 # (UNUSED TABLE LOC, FILL WITH 60MS, T5)
|
|
+1 GENADR EXECCOPY +1 # TVCEXECUTIVE RESTART POINTS (ORDERED)
|
|
+2 GENADR 1SHOTCHK
|
|
+3 GENADR TEMPSET
|
|
+4 GENADR CORSETUP
|
|
+5 GENADR CORCOPY +1
|
|
+6 GENADR CNTRCOPY
|
|
|
|
|