https://github.com/virtualagc/virtualagc
Revision 62edbcc8c6021789df156749d71229308ba4313a authored by Ronald Burkey on 08 August 2021, 00:25:00 UTC, committed by GitHub on 08 August 2021, 00:25:00 UTC
yaAGCb1: Fixed a few errors identified by SELF-CHECK
Tip revision: 62edbcc8c6021789df156749d71229308ba4313a authored by Ronald Burkey on 08 August 2021, 00:25:00 UTC
Merge pull request #1149 from virtualagc/yagcb1_fixes
Merge pull request #1149 from virtualagc/yagcb1_fixes
Tip revision: 62edbcc
THROTTLE_CONTROL_ROUTINES.agc
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: THROTTLE_CONTROL_ROUTINES.agc
## Purpose: A section of Luminary revision 163.
## It is part of the reconstructed source code for the first
## (unflown) release of the flight software for the Lunar
## Module's (LM) Apollo Guidance Computer (AGC) for Apollo 14.
## The code has been recreated from a reconstructed copy of
## Luminary 173, as well as Luminary memos 157 amd 158.
## It has been adapted such that the resulting bugger words
## exactly match those specified for Luminary 163 in NASA
## drawing 2021152N, which gives relatively high confidence
## that the reconstruction is correct.
## Reference: pp. 779-783
## Assembler: yaYUL
## Contact: Ron Burkey <info@sandroid.org>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2019-08-21 MAS Created from Luminary 173.
## Page 789
BANK 31
SETLOC FTHROT
BANK
EBANK= PIF
COUNT* $$/THROT
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# HERE FC, DESIRED THRUST, AND FP, PRESENT THRUST, UNWEIGHTED, ARE COMPUTED.
THROTTLE CA ABDELV # COMPUTE PRESENT ACCELERATION IN UNITS OF
EXTEND # 2(-4) M/CS/CS, SAVING SERVICER TROUBLE
MP /AF/CNST
+3 EXTEND
QXCH RTNHOLD
AFDUMP TC MASSMULT
DXCH FP # FP = PRESENT THRUST
EXTEND
DCA /AFC/
TC MASSMULT
INHINT # PREVENT A DOWNRUPT
TS FC # FC = THRUST DESIRED BY GUIDANCE
DXCH FCODD # FCODD = WHAT IT IS GOING TO GET
EXTEND
DCA PIPTIME
DXCH GTCTIME # DOWNLINK TIME AGREEMENT
RELINT
# COMPUTE DESIRED THRUST FOR DISPLAY AS A PERCENTAGE OF 10,500 POUNDS
CAF 4FMAXNOM # MOVE 4FMAXNOM TO ERASABLE FOR DV BELOW
TS Q
CA FC
MASK OCT17777 # FOR SAFETY
EXTEND
DV Q
EXTEND
MP 4SECS
TS THRDISP # FOR DISPLAY IN N92
# IF IT HAS BEEN LESS THAN 3 SECONDS SINCE THE LAST THROTTLING, AUGMENT FP USING THE FWEIGHT CALCULATED THEN.
CS TTHROT # THIS CODING ASSUMES A FLATOUT WITHIN
## Page 790
AD TIME1 # 80 SECONDS BEFORE FIRST THROTTLE CALL
MASK POSMAX
COM
AD 3SECS
EXTEND
BZMF WHERETO # BRANCH IF (TIME1-TTHROT +1) > 3 SECONDS
EXTEND
DCA FWEIGHT
DAS FP
# THIS LOGIC DETERMINES THE THROTTLING IN THE REGION 10% - 94%. THE MANUAL THROTTLE, NOMINALLY SET AT
# MINIMUM BY ASTRONAUT OR MISSION CONTROL PROGRAMS, PROVIDES THE LOWER BOUND. A STOP IN THE THROTTLE HARDWARE
# PROVIDES THE UPPER.
WHERETO CA EBANK5 # INITIALIZE L*WCR*T AND H*GHCR*T FROM
TS EBANK # PAD LOADED ERASABLES IN W-MATRIX
EBANK= LOWCRIT
EXTEND
DCA LOWCRIT
DXCH L*WCR*T
CA EBANK7
TS EBANK
EBANK= PIF
CS ZERO # INITIALIZE PIFPSET
TS PIFPSET
CS H*GHCR*T
AD FCOLD
EXTEND
BZMF LOWFCOLD # BRANCH IF FCOLD < OR = HIGHCRIT
CS L*WCR*T
AD FCODD
EXTEND
BZMF FCOMPSET # BRANCH IF FC < OR = LOWCRIT
CA FP # SEE NOTE 1
TCF FLATOUT1
FCOMPSET CS FMAXODD # SEE NOTE 2
AD FP
TCF FLATOUT2
LOWFCOLD CS H*GHCR*T
AD FCODD
EXTEND
BZMF DOPIF # BRANCH IF FC < OR = HIGHCRIT
CA FMAXPOS # NO: THROTTLE-UP
FLATOUT1 DXCH FCODD
CA FEXTRA
## Page 791
FLATOUT2 TS PIFPSET
# NOTE 1 FC IS SET EQUAL TO FP SO PIF WILL BE ZERO. THIS IS DESIRABLE
# AS THERE IS ACTUALLY NO THROTTLE CHANGE.
# NOTE 2 HERE, SINCE WE ARE ABOUT TO RETURN TO THE THROTTLEABLE REGION
# (BELOW 55%) THE QUANTITY -(FMAXODD - FP) IS COMPUTED AND PUT
# INTO PIFPSET TO COMPENSATE FOR THE DIFFERENCE BETWEEN THE
# NUMBER OF BITS CORRESPONDING TO FULL THROTTLE (FMAXODD) AND THE
# NUMBER CORRESPONDING TO ACTUAL THRUST (FP). THUS THE TOTAL
# THROTTLE COMMAND PIF = FC - FP -(FMAXODD - FP) = FC - FMAXODD.
DOPIF TC FASTCHNG
EXTEND
DCA FCODD
TS FCOLD
DXCH PIF
EXTEND
DCS FP
DAS PIF # PIF = FC - FP, NEVER EQUALS +0
DOIT CA PIF
AD PIFPSET # ADD IN PIFPSET, WITHOUT CHANGING PIF
TS PSEUDO55
TS THRUST
CAF BIT4
EXTEND
WOR CHAN14
CA TIME1
TS TTHROT
# SINCE /AF/ IS NOT AN INSTANTANEOUS ACCELERATION, BUT RATHER AN "AVERAGE" OF THE ACCELERATION LEVELS DURING
# THE PRECEEDING PIPA INTERVAL, AND SINCE FP IS COMPUTED DIRECTLY FROM /AF/, FP IN ORDER TO CORRESPOND TO THE
# ACTUAL THRUST LEVEL AT THE END OF THE INTERVAL MUST BE WEIGHTED BY
# PIF(PPROCESS + TL) PIF /PIF/
# FWEIGHT = ------------------ + -------------
# PGUID 2 PGUID FRATE
# WHERE PPROCESS IS THE TIME BETWEEN PIPA READING AND THE START OF THROTTLING, PGUID IS THE GUIDANCE PERIOD, AND
# FRATE IS THE THROTTLING RATE (32 UNITS PER CENTISECOND). PGUID IS EITHER 1 OR 2 SECONDS. THE "TL" IN THE
# FIRST TERM REPRESENTS THE ENGINE'S RESPONSE LAG. HERE FWEIGHT IS COMPUTED FOR USE NEXT PASS.
CA THISTPIP +1 # INITIALIZE FWEIGHT COMP AS IF FOR P66
TS BUF
CS MODREG # ARE WE IN FACT IN P66?
AD DEC66
EXTEND
## Page 792
BZF FWCOMP # YES
CA PIPTIME +1 # NO: INITIALIZE FOR TWO SECOND PERIOD
TS BUF
CAF 4SECS
TCF FWCOMP +1
FWCOMP CAF 2SECS
+1 TS Q
EXTEND
MP BIT6
LXCH BUF +1
CS BUF # TIME OF LAST PIPA READING.
AD TIME1
AD THROTLAG # COMPENSATE FOR ENGINE RESPONSE LAG
MASK LOW8 # MAKE SURE SMALL AND POSITIVE
ZL
EXTEND
DV Q
EXTEND
MP PIF
DOUBLE
DXCH FWEIGHT
CCS PIF
AD ONE
TCF +2
AD ONE
EXTEND
MP PIF
EXTEND
DV BUF +1
ZL
DAS FWEIGHT
THDUMP TC RTNHOLD
# FLATOUT THROTTLES UP THE DESCENT ENGINE, AND IS CALLED AS A BASIC SUBROUTINE.
FLATOUT CAF BIT13 # 4096 PULSES
WHATOUT TS PIFPSET # USE PIFPSET SO FWEIGHT WILL BE ZERO
CS ZERO
TS FCOLD
TS PIF
EXTEND
QXCH RTNHOLD
TCF DOIT
## Page 793
# MASSMULT SCALES ACCELERATION, ARRIVING IN A AND L IN UNITS OF 2(-4) M/CS/CS, TO FORCE IN PULSE UNITS.
MASSMULT EXTEND
QXCH BUF
DXCH MPAC
TC DMP
ADRES MASS
TC DMP # LEAVES PROPERLY SCALED FORCE IM MPAC
ADRES SCALEFAC
TC TPAGREE
CA MPAC
EXTEND
BZF +3
CAF POSMAX
TC BUF
DXCH MPAC +1
TC BUF
# CONSTANTS:-
FEXTRA = BIT13 # FEXT +5.13309020 E+4
/AF/CNST DEC .13107
OCT17777 OCT 17777
4FMAXNOM DEC 14908 # EQUIVALENT TO 10,500 LBS.
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Computing file changes ...