Apollo-11/Comanche055/TVCEXECUTIVE.agc

277 lines
7.7 KiB
Plaintext
Raw Normal View History

2016-07-07 08:47:26 +00:00
# Copyright: Public domain.
# Filename: TVCEXECUTIVE.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: 945-950
# Mod history: 2009-05-12 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
# 2009-05-20 RSB Corrections: CAE -> CAF in one place.
2016-12-28 16:11:25 +00:00
# 2009-05-21 RSB In 1SHOTCHK, a CAF SEVEN was corrected to
2016-07-07 08:47:26 +00:00
# CAF SIX.
#
# 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
2016-12-28 16:11:25 +00:00
# illegible, contact me at info@sandroid.org about getting access to the
2016-07-07 08:47:26 +00:00
# (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
2016-12-28 16:11:25 +00:00
# 2021113-051. 10:28 APR. 1, 1969
2016-07-07 08:47:26 +00:00
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 945
# PROGRAM NAME.... TVCEXECUTIVE, CONSISTING OF TVCEXEC, NEEDLEUP, VARGAINS
# 1SHOTCHK, REPCHEK, CG.CORR, COPYCYCLES, ETC.
2017-12-26 03:19:33 +00:00
# LOG SECTION...TVCEXECUTIVE SUBROUTINE...DAPCSM
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
2016-07-07 08:47:26 +00:00
# FUNCTIONAL DESCRIPTION....
2017-12-26 03:19:33 +00:00
#
2016-07-07 08:47:26 +00:00
# *A SELF-PERPETUATING WAITLIST TASK AT 1/2 SECOND INTERVALS WHICH:
2017-12-26 03:19:33 +00:00
# PREPARES THE ROLL DAP WITH OGA (CDUX)
2016-07-07 08:47:26 +00:00
# PREPARES THE ROLL FDAI NEEDLE (FLY-TO OGA ERROR)
# PREPARES THE ROLL PHASE PLANE OGAERR (FLY-FROM OGA ERROR)
# PREPARES THE TVC ROLLDAP TASK WAITLIST CALL (3 CS DELAY)
# UPDATES THE NEEDLES DISPLAY
2017-12-26 03:19:33 +00:00
# UPDATES VEHICLE MASS AND CALLS MASSPROP TO UPDATE INERTIA DATA
2016-07-07 08:47:26 +00:00
# UPDATES PITCH, YAW, AND ROLL DAP GAINS FROM MASSPROP DATA
# PERFORMS ONE-SHOT CORRECTION FOR TMC LOOP 0-3 SEC AFTER IGNITION
2017-12-26 03:19:33 +00:00
# PERFORMS REPETITIVE UPDATES FOR TMC LOOP AFTER THE ONE-SHOT CORR.
2016-07-07 08:47:26 +00:00
#
# CALLING SEQUENCE....
2017-12-26 03:19:33 +00:00
#
2016-07-07 08:47:26 +00:00
# *TVCEXEC CALLED AS A WAITLIST TASK, IN PARTICULAR BY TVCINIT4 AND BY
# ITSELF, BOTH AT 1/2 SECOND INTERVALS
#
# NORMAL EXIT MODE.... TASKOVER
#
# ALARM OR ABORT EXIT MODES.... NONE
#
# SUBROUTINES CALLED....NEEDLER, S40.15, MASSPROP, TASKOVER, IBNKCALL
#
# OTHER INTERFACES....
2017-12-26 03:19:33 +00:00
#
2016-07-07 08:47:26 +00:00
# *TVCRESTART PACKAGE FOR RESTARTS
# *PITCHDAP, YAWDAP FOR VARIABLE GAINS AND ENGINE TRIM ANGLES
# ERASABLE INITIALIZATION REQUIRED....
2017-12-26 03:19:33 +00:00
#
2016-07-07 08:47:26 +00:00
# *SEE TVCDAPON....TVCINIT4
2017-12-26 03:19:33 +00:00
# *VARK AND 1/CONACC (S40.15 OF TVCINITIALIZE)
2016-07-07 08:47:26 +00:00
# *PAD LOAD EREPFRAC
# *BITS 15,14 OF FLAGWRD6 (T5 BITS)
# *TVCEXPHS FOR RESTARTS
# *ENGINE-ON BIT (11.13) FOR RESTARTS
# *CDUX, OGAD
#
# OUTPUT....
2017-12-26 03:19:33 +00:00
#
# *ROLL DAP OGANOW, FDAI NEEDLE (AK), AND PHASE PLANE OGAERR
2016-07-07 08:47:26 +00:00
# *VARIABLE GAINS FOR PITCH/YAW AND ROLL TVC DAPS
# *SINGLE-SHOT AND REPETITIVE CORRECTIONS TO ENGINE TRIM ANGLES
# PACTOFF AND YACTOFF
#
# DEBRIS.... MUCH, BUT SHAREABLE WITH RCS/ENTRY, ALL IN EBANK6
# Page 946
BANK 16
SETLOC DAPROLL
BANK
EBANK= BZERO
COUNT* $$/TVCX
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
TVCEXEC CS FLAGWRD6 # CHECK FOR TERMINATION (BITS 15,14 READ
2017-12-26 03:19:33 +00:00
MASK OCT60000 # 10 FROM TVCDAPON TO RCSDAPON)
2016-07-07 08:47:26 +00:00
EXTEND
BZMF TVCEXFIN # TERMINATE
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAF .5SEC # W.L. CALL TO PERPETUATE TVCEXEC
TC WAITLIST
EBANK= BZERO
2CADR TVCEXEC
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
ROLLPREP CAE CDUX # UPDATE ROLL LADDERS (NO NEED TO RESTART-
2017-12-26 03:19:33 +00:00
XCH OGANOW # PROTECT, SINCE ROLL DAPS RE-START)
2016-07-07 08:47:26 +00:00
XCH OGAPAST
2016-12-28 16:11:25 +00:00
2016-07-08 10:45:31 +00:00
CAE OGAD # PREPARE ROLL FDAI NEEDLE WITH FLY-TO
2017-12-26 03:19:33 +00:00
EXTEND # ERROR (COMMAND - MEASURED)
2016-07-07 08:47:26 +00:00
MSU OGANOW
TS AK # FLY-TO OGA ERROR, SC.AT B-1 REVS
2016-12-28 16:11:25 +00:00
2017-12-26 03:19:33 +00:00
EXTEND # PREPARE ROLL DAP PHASE PLANE OGAERR
2016-12-28 16:11:25 +00:00
MP -BIT14
2016-07-07 08:47:26 +00:00
TS OGAERR # PHASE-PLANE (FLY-FROM) OGAERROR,
2017-12-26 03:19:33 +00:00
# SC.AT B+0 REVS
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAF THREE # SET UP ROLL DAP TASK (ALLOW SOME TIME)
TC WAITLIST
EBANK= BZERO
2CADR ROLLDAP
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
NEEDLEUP TC IBNKCALL # DO A NEEDLES UPDATE (RETURNS AFTER CADR)
2017-12-26 03:19:33 +00:00
CADR NEEDLER # (NEEDLES RESTARTS ITSELF)
2016-07-07 08:47:26 +00:00
VARGAINS CAF BIT13 # CHECK ENGINE-ON BIT TO INHIBIT VARIABLE
2017-12-26 03:19:33 +00:00
EXTEND # GAINS AND MASS IF ENGINE OFF
2016-07-07 08:47:26 +00:00
RAND DSALMOUT # CHANNEL 11
CCS A
2017-12-26 03:19:33 +00:00
TCF +4 # ON , SO OK TO UPDATE GAINS AND MASS
+5 CAF TWO # OFF, SO BYPASS MASS/GAIN UPDATES,
TS TVCEXPHS # ALSO ENTRY FROM CCS BELOW WITH
TCF 1SHOTCHK # VCNTR = -0 (V97 R40 ENGFAIL)
CCS VCNTR # TEST FOR GAIN OF UPDATE TIME
TCF +4 # NOT YET
2016-12-28 16:11:25 +00:00
# Page 947
2016-07-07 08:47:26 +00:00
TCF GAINCHNG # NOW
TCF +0 # NOT USED
2018-01-25 20:19:35 +00:00
TCF VARGAINS +5 # NO, LOTHRUST (S40.8 R40)
2016-12-28 16:11:25 +00:00
2018-01-25 20:19:35 +00:00
+4 TS VCNTRTMP # PROTECT VCNTR AND
2016-07-07 08:47:26 +00:00
CAE CSMMASS # CSMMASS DURING AN IMPULSIVE BURN
TS MASSTMP
TCF EXECCOPY
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
GAINCHNG TC IBNKCALL # UPDATE IXX, IAVG, IAVG/TLX
2018-01-25 20:19:35 +00:00
CADR FIXCW # MASSPROP ENTRY (ALREADY INITIALIZED)
2016-07-07 08:47:26 +00:00
TC IBNKCALL # UPDATE 1/CONACC, VARK
2018-01-25 20:19:35 +00:00
CADR S40.15 # (S40.15 IS IN TVCINITIALIZE)
2016-07-07 08:47:26 +00:00
CS TENMDOT # UPDATE MASS FOR NEXT 10 SEC. OF BURN
AD CSMMASS
TS MASSTMP # KG B+16
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAF NINETEEN # RESET THE VARIABLE-GAIN UPDATE COUNTER
TS VCNTRTMP
2018-01-25 20:19:35 +00:00
EXECCOPY INCR TVCEXPHS # RESTART-PROTECT THE COPYCYCLE (1)
2016-07-07 08:47:26 +00:00
CAE MASSTMP # CSMMASS KG B+16
TS CSMMASS
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAE VCNTRTMP # VCNTR
TS VCNTR
2018-01-25 20:19:35 +00:00
TS V97VCNTR # FOR ENGFAIL (R41) MASS UPDATES AT SPSOFF
2016-12-28 16:11:25 +00:00
2018-01-25 20:19:35 +00:00
INCR TVCEXPHS # COPYCYCLE OVER (2)
2016-12-28 16:11:25 +00:00
2018-01-25 20:19:35 +00:00
1SHOTCHK CCS CNTR # CHECK TIME FOR ONE-SHOT OR REPCORR
TCF +4 # NOT YET
TCF 1SHOTOK # NOW
TCF REPCHEK # ONE-SHOT OVER, ON TO REPCORR
TCF 1SHOTOK # NOW (ONE-SHOT ONLY, NO REPCORR)
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
+4 TS CNTRTMP # COUNT DOWN
2018-01-25 20:19:35 +00:00
CAF SIX # SET UP TVCEXPHS FOR ENTRY AT CNTRCOPY
2016-07-07 08:47:26 +00:00
TS TVCEXPHS
TCF CNTRCOPY
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
REPCHEK CAE REPFRAC # CHECK FOR REPETITIVE UPDATES
EXTEND
2018-01-25 20:19:35 +00:00
BZMF TVCEXFIN # NO, OVER-AND-OUT
TS TEMPDAP +1 # YES, SET UP CORRECTION FRACTION
2016-07-07 08:47:26 +00:00
CAF FOUR # SET UP TVCEXPHS FOR ENTRY AT CORSETUP
TS TVCEXPHS
TCF CORSETUP
2016-12-28 16:11:25 +00:00
# Page 948
2016-07-07 08:47:26 +00:00
1SHOTOK CAF BIT13 # CHECK ENGINE-ON BIT, NOT PERMITTING
2018-01-25 20:28:56 +00:00
EXTEND # ONE-SHOT DURING ENGINE-SHUTDOWN
2016-07-07 08:47:26 +00:00
RAND DSALMOUT
CCS A
2018-01-25 20:28:56 +00:00
TCF +2 # ONE-SHOT OK
TCF TVCEXFIN # NO, TERMINATE
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
INCR TVCEXPHS # (3)
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
# RSB 2009. The following instruction was previously "CAE FCORFRAC", but FCORFRAC
# is not in erasable memory as implied by the use of CAE. I've accordingly changed
# it to CAF instead to indicate fixed memory.
2018-01-25 20:28:56 +00:00
TEMPSET CAF FCORFRAC # SET UP CORRECTION FRACTION
2016-07-07 08:47:26 +00:00
TS TEMPDAP +1
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
INCR TVCEXPHS # ENTRY FROM REPCHECK AT NEXT LOCATION (4)
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CORSETUP CAE DAPDATR1 # CHECK FOR LEM-OFF/ON
MASK BIT13 # (NOTE, SHOWS LEM-OFF)
EXTEND
BZF +2 # LEM IS ON, PICK UP TEMPDAP+1
CAE TEMPDAP +1 # LEM IS OFF, PICK UP 2(TEMPDAP+1)
AD TEMPDAP +1
TS TEMPDAP # CG.CORR USES TEMPDAP
2016-12-28 16:11:25 +00:00
2018-01-25 20:28:56 +00:00
CAF NEGONE # SET UP FOR CNTR = -1 (ONE-SHOT DONE)
TS CNTRTMP # (COPYCYCLE AT .CNTRCOPY. )
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CG.CORR EXTEND # PITCH TMC LOOP
DCA PDELOFF
DXCH PACTTMP
EXTEND
DCS PDELOFF
DDOUBL
DDOUBL
DXCH TTMP1
EXTEND
DCA DELPBAR
DDOUBL
DDOUBL
DAS TTMP1
EXTEND
DCA TTMP1
EXTEND
MP TEMPDAP
DAS PACTTMP
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
EXTEND # YAW TMC LOOP
DCA YDELOFF
DXCH YACTTMP
EXTEND
DCS YDELOFF
DDOUBL
2016-12-28 16:11:25 +00:00
# Page 949
2016-07-07 08:47:26 +00:00
DDOUBL
DXCH TTMP1
EXTEND
DCA DELYBAR
DDOUBL
DDOUBL
DAS TTMP1
EXTEND
DCA TTMP1
EXTEND
MP TEMPDAP
DAS YACTTMP
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CORCOPY INCR TVCEXPHS # RESTART-PROTECT THE COPYCYCLE (5)
EXTEND # TRIM-ESTIMATES, AND
DCA PACTTMP
TS PACTOFF # TRIMS
DXCH PDELOFF
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
EXTEND
DCA YACTTMP
TS YACTOFF
DXCH YDELOFF
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
INCR TVCEXPHS # ENTRY FROM 1SHOTCHK AT NEXT LOCATION (6)
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CNTRCOPY CAE CNTRTMP # UPDATE CNTR (RESTARTS OK, FOLLOWS CPYCY)
TS CNTR
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
TVCEXFIN CAF ZERO # RESET TVCEXPHS
2016-12-28 16:11:25 +00:00
TS TVCEXPHS
2016-07-07 08:47:26 +00:00
TCF TASKOVER # TVCEXECUTIVE FINISHED
2016-12-28 16:11:25 +00:00
FCORFRAC OCT 10000 # ONE-SHOT CORRECTION FRACTION
2016-07-07 08:47:26 +00:00
# Page 950 (page is empty)