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
DAP_INTERFACE_SUBROUTINES.agc
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: DAP_INTERFACE_SUBROUTINES.agc
## Purpose: A section of Sunburst revision 37, or Shepatin revision 0.
## It is part of an early development version of the software
## for Apollo Guidance Computer (AGC) on the unmanned Lunar
## Module (LM) flight Apollo 5. Sunburst 37 was the program
## upon which Don Eyles's offline development program Shepatin
## was based; the listing herein transcribed was actually for
## the equivalent revision 0 of Shepatin.
## This file is intended to be a faithful transcription, except
## that the code format has been changed to conform to the
## requirements of the yaYUL assembler rather than the
## original YUL assembler.
## Reference: pp. 453-459
## Assembler: yaYUL
## Contact: Ron Burkey <info@sandroid.org>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2017-05-24 MAS Created from Sunburst 120.
## 2017-05-30 HG Transcribed
## 2017-06-15 HG Fix operand XCH -> TS
## 2017-06-22 RSB Proofed comment text with
## octopus/ProoferComments.
## Page 453
BANK 16
EBANK= DT
# MOD 0 DATE 11/15/66 BY GEORGE W. CHERRY
# FUNCTIONAL DESCRIPTION
# HEREIN ARE A COLLECTION OF SUBROUTINES WHICH ALLOW MISSION CONTROL PROGRAMS TO CONTROL THE MODE
# AND INTERFACE WITH THE DAP.
# CALLING SEQUENCES
# IN INTERRUPT OR WITH INTERRUPT INHIBITED
# TC IBNKCALL
# FCADR ROUTINE
# IN A JOB WITHOUT INTERRUPT INHIBITED
# INHINT
# TC IBNKCALL
# FCADR ROUTINE
# RELINT
# OUTPUT
# SEE INDIVIDUAL ROUTINES BELOW
# DEBRIS
# A,L, AND SOMETIMES MDUETEMP
## Page 454
# DAPBOOLS BITS AND NAMES
OURRCBIT EQUALS BIT1 # INTERNAL DAP RATE COMMAND ACTIVITY FLAG
TRYGIMBL EQUALS BIT2 # DESCENT TRIM GIMBAL CONTROL SYSTEM FLAG
# STILL AVAILABLE BIT3
ACC4OR2X EQUALS BIT4 # 2 OR 4 JET X-TRANSLATION MODE FLAG
AORBSYST EQUALS BIT5 # P-AXIS ROTATION JET SYSTEM (A OR B) FLAG
ULLAGER EQUALS BIT6 # INTERNAL ULLAGE REQUEST FLAG
DBSELECT EQUALS BIT7 # DAP DEADBAND SELECT FLAG
APSGOING EQUALS BIT8 # ASCENT PROPULSION SYSTEM BURN FLAG
VIZPHASE EQUALS BIT9 # DESCENT VISIBILITY PHASE FLAG
PULSES EQUALS BIT10 # MINIMUM IMPULSE RHC MODE FLAG
GODAPGO EQUALS BIT11 # DAP ENABLING FLAG
# STILL AVAILABLE BIT12
# STILL AVAILABLE BIT13
AUTORHLD EQUALS BIT14 # AUTOMATIC MODE RATE HOLD FLAG
SPSBACUP EQUALS BIT15 # SPS BACKUP DAP FLAG
SETMINDB CAF EBANK6
TS L
LXCH EBANK
CAF NARROWDB
TS DB
CS DBSELECT
MASK DAPBOOLS
TS DAPBOOLS
LXCH EBANK
TC Q
SETMAXDB CAF EBANK6
TS L
LXCH EBANK
CAF WIDEDB
TS DB
CS DAPBOOLS
MASK DBSELECT
ADS DAPBOOLS
LXCH EBANK
TC Q
ULLAGE CS DAPBOOLS
MASK ULLAGER
ADS DAPBOOLS
## Page 455
TC Q
NOULLAGE CS ULLAGER
MASK DAPBOOLS
TS DAPBOOLS
TC Q
HOLDRATE CAF EBANK6
XCH EBANK
TS MDUETEMP
CS DAPBOOLS
MASK AUTORHLD
ADS DAPBOOLS
EXTEND
DCA OMEGAP
DXCH OMEGAPD
CAE OMEGAR
TS OMEGARD
COMNEXIT EXTEND
DCA CDUY
DXCH CDUYD
CAE CDUX
TS CDUXD
CAE MDUETEMP
TS EBANK
TC Q
STOPRATE CAF EBANK6
XCH EBANK
TS MDUETEMP
CS AUTORHLD
MASK DAPBOOLS
TS DAPBOOLS
CAF ZERO
TS OMEGAPD
TS OMEGAQD
TS OMEGARD
TS DELCDUX
TS DELCDUY
TS DELCDUZ
TCF COMNEXIT
SETRATE EQUALS HOLDRATE
NARROWDB DEC 0.00167 # 0.3 DEGREES SCALED AT PI RADIANS
WIDEDB DEC 0.02778 # 5.0 DEGREES SCALED AT PI RADIANS
## Page 456
# SUBROUTINE NAME: 1. UPCOAST MOD. NO. 1 DATE: DECEMBER 4, 1966
# 2. ALLCOAST
# 3. WCHANGE
# AUTHOR: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
# "UPCOAST" SETS UP DAP VARIABLES TO THEIR ASCENT-COAST VALUES.
# GROUNDRULE: IT MUST BE CALLED AS SOON AS ASCENT COAST IS DETECTED.
# "ALLCOAST" SETS UP MANY DAP VARIABLES FOR "STARTDAP" IN "DAPIDLER".
# GROUNDRULE: DESCOAST IS CALLED AS SOON AS DESCENT COAST IS DETECTED.
# "WCHANGE" SETS UP THE VARIABLE FOR "WCHANGER" AS A STORAGE SAVING DEVICE.
# CALLING SEQUENCE: (SAME AS ABOVE.)
# SUBROUTINES CALLED: NONE.
# ZERO: AOSQ,AOSR,AOSU,AOSV,AOSQTERM,AOSRTERM,ALL NUS.
# SET URGRATQ AND URGRATR TO POSMAX.
# OUTPUT: WFORP (1-K) MINIMPDB APSGOING/DAPBOOLS
# WFORQR (1-K)/8 DBMINIMP
# DEBRIS: A,L.
# ***** WARNING. ***** EBANK MUST BE SET TO 6.
BANK 20
EBANK= WFORP
DESCOAST INHINT # (MISSION ENTRY)
ALLCOAST CS TRYGIMBL # SINCE THE DESCENT ENGINE IS OFF, LM DAP
MASK DAPBOOLS # USE OF TRIM GIMBAL CONTROL SYSTEM IS
AD TRYGIMBL # CLEARLY IMPOSSIBLE.
TS DAPBOOLS
CAF 0.3DEGDB # SET BOTH MINIMUM IMPULSE DEADBANDS TO
TCF MINIMSTO # 0.3 DEGREES SCALED AT PI RADIANS.
UPCOAST INHINT # STOP INTERRUPTS FROM WREAKING HAVOC.
CS APSGOING # TURN OFF APS BURN BIT IN DAPBOOLS SINCE
MASK DAPBOOLS # LEM IS STAGED FOR ASCENT, BUT THE ASCENT
TS DAPBOOLS # ENGINE IS NOT ON.
## Page 457
CAF 0.00444 # IN ASCENT COAST, SET BOTH MINIMUM
MINIMSTO TS MINIMPDB # IMPULSE DEADBANDS TO 0.08 DEGREES
TS DBMINIMP # SCALED AT PI RADIANS.
CAF POSMAX # SET URGENCY FUNCTION CORRECTION RATIOS
TS URGRATQ # TO ALMOST 1 BEFORE BEING SET IN AOSJOB.
TS URGRATR # SCALED AT 1.
CAF 13DEC # ZERO THE FOLLOWING DAP ERASABLES:
CLEARASC TS KCOEFCTR # AOSQ AOSQTERM NJ+Q NJ+U
CAF ZERO # AOSR AOSRTERM NJ-Q NJ-U
INDEX KCOEFCTR # AOSU NJ+R NJ+V
TS AOSQ # AOSV NJ-R NJ-V
CCS KCOEFCTR
TCF CLEARASC
WCHANGE CAF 0.3125 # K = 0.5
TS WFORP # WFORP = WFORQR = K/DT = K/.1 = 10K = 5
TS WFORQR # SCALED AT 16 PER SECOND.
EXTEND # K = 0.5 IMPLIES (1-K) = 0.5:
DCA (1-K)S # (1-K) = 0.5 SINCE SCALED AT 1.
DXCH (1-K) # (1-K)/8 = 0.0625 SINCE SCALED AT 8.
# *** NOTE THAT STARTDAP RESETS WFORP,WFORQR,(1-K),(1-K)/8. ***
RELINT # LET INTERRUPTS LOOSE.
TC Q # RETURN
0.3DEGDB DEC 0.00167
13DEC DEC 13
## Page 458
ASCDAP INHINT # (MISSION ENTRY)
CAF APSGOING # CHECK AOSTASK BIT OF DAPBOOLS
MASK DAPBOOLS # IF 0, SET BIT AND INITIATE WAITLIST TASK
CCS A # IF 1, THEN TASK LOOP ALREADY BEGUN
TCF ASCDAP1 # END OF ASCENT DAP
CAF APSGOING # SET BIT TO INDICATE AOSTASK SET UP AND
ADS DAPBOOLS # ASCENT LOGIC. BIT CLEARLY NOT SET YET.
CS DB # MODIFY THE TJETLAW FOR ASCENT:
TS MINIMPDB # (IN ONE EQUATION DELETE MINIMPDB AND
CAF ZERO # SHIFT THE SWITCHING CURVE TO THE ORIGIN)
TS DBMINIMP # MINIMPDB = -DB, DBMINIMP = 0
TS SUMRATEQ # INITIALIZES SUMS OF JET RATES.
TS SUMRATER
TS KCOEFCTR # INITIALIZE APS BURN TIMER.
CAE OMEGAQ # CREATE OLD OMEGAQ
TS OLDWFORQ
CAE OMEGAR # CREATE OLD OMEGAR
TS OLDWFORR
# ***** EVENTUALLY, USE 2SECWLT4 FROMM FIXED-FIXED AND NEW NAME. *****
CAF 2SECSDAP # SET UP AOSTASK TO BEGIN IN 2 SECONDS
TC WAITLIST # IT THEN SETS UP A LOOP ON WAITLIST FOR
EBANK= AOSQ
2CADR AOSTASK # 2 SECOND INTERVALS AND CHECKS FOR THE
# REF 1 20,2145 40006 0 SHUTDOWN CONDITION IN BIT8 OF DAPBOOLS
# ****************************************************************************************************************
# REMOVE THIS AND THE TASKS WHEN THE INERTIA ESTIMATOR WORKS.
CAF ONE # *** SPECIAL DAP CHECKOUT SEQUENCE ***
TC WAITLIST # THESE THREE CALLS TO WAITLIST BEGIN A
EBANK= IXX
2CADR IXXTASK # COMPLICATED PROCEDURE TO DECREMENT THE
CAF ONE # INERTIA MATRIX DIAGONAL ELEMENTS (EACH
TC WAITLIST # SCALED AT 2(+18) SLUG FEET(2) ) BY ONE
EBANK= IYY
2CADR IYYTASK # BIT AS SOON AS APPROPRIATE BY A NOMINAL
CAF ONE # LINEAR APPROXIMATION TO INERTIAL CHANGE.
TC WAITLIST
EBANK= IZZ
2CADR IZZTASK # *** NOT TO BE USED IN MISSIONS ***
## Page 459
# ****************************************************************************************************************
DESDCAP INHINT # (MISSION ENTRY)
CAF DBAUTO # SINCE ENGINE IS ON:
TS DB # SET DEADBAND TO 1.0 DEGREES
ASCDAP1 RELINT # LET INTERRUPTS LOOSE.
TC Q # RETURN.
DBAUTO DEC 0.00556 # 1 DEGREE DEADBAND SCALED AT PI RADIANS