https://github.com/virtualagc/virtualagc
Revision 078c79d8734a9ed2860303a7c1662004284fe853 authored by Ron Burkey on 07 August 2022, 15:04:04 UTC, committed by Ron Burkey on 07 August 2022, 15:04:04 UTC
assembly listings from yaASM and yaLEMAP. Added some debugging messages
to 'make install'.  Tweaked debugging messages that VirtualAGC embeds in
'simulate'.  Verified buildability in Mint 21, 20, 19, 17, and verified
buildability using clang in Mint 17.
1 parent 6bb1acc
Raw File
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
Tip revision: 078c79d
AOSTASK_AND_AOSJOB.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    AOSTASK_AND_AOSJOB.agc
## Purpose:     A section of Luminary revision 173.
##              It is part of the reconstructed source code for the second
##              (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 178, as well as Luminary memo 167 (revision 1).
##              It has been adapted such that the resulting bugger words
##              exactly match those specified for Luminary 173 in NASA
##              drawing 2021152N, which gives relatively high confidence
##              that the reconstruction is correct.
## Reference:   pp. 1473-1494
## Assembler:   yaYUL
## Contact:     Ron Burkey <info@sandroid.org>.
## Website:     www.ibiblio.org/apollo/index.html
## Mod history: 2019-09-18 MAS  Created from Luminary 178.

## Page 1473
# PROGRAM NAME: 1/ACCS
# PROGRAM WRITTEN BY: BOB COVELLI AND MIKE HOUSTON
# LAST MODIFICATION: FEB.14,1969 BY G.KALAN

# PROGRAM DESCRIPTION:

#    1/ACCS PROVIDES THE INTERFACE BETWEEN THE GUIDANCE PROGRAMS AND THE DIGITAL AUTOPILOT. WHENEVER THERE IS A
# CHANGE IN THE MASS OF THE VEHICLE, IN THE DEADBAND SELECTED, IN THE VEHICLE CONFIGURATION (ASCENT-DESCENT-
# DOCKED), AND DURING A FRESH START OR A RESTART, 1/ACCS IS CALLED TO COMMUNICATE THE DATA CHANGES TO THE DAP.

#    THE INPUTS TO 1/ACCS ARE MASS, ACCELERATION (ABDELV), DEADBAND (DB), OFFSET ACCELERATIONS (AOSQ AND AOSR),
# STAGE VERIFY BIT (CHAN30,BIT2), DOCKED BIT (DAPBOOLS,BIT13), DRIFT BIT (DAPBOOLS,BIT8), USEQRJTS (DAPBOOLS,
# BIT14), AND SURFACE FLAG (FLAGWRD8,BIT8), AND CH5MASK.

#    1/ACCS COMPUTES THE JET ACCELERATIONS (1JACC, 1JACCQ, 1JACCR) AS FUNCTIONS OF MASS. 1JACCU AND 1JACCV ARE
# FORMED BY RESOLVING 1JACCQ NAD 1JACCR. IN THE DESCENT CASE, THE DESCENT ENGINE MOMENT ARM (L,PVT-CG) IS ALSO
# COMPUTED AS A FUNCTION OF MASS. THE RATE OF CHANGE OF ACCELERATION DUE TO ROTATION OF THE GIMBAL (ACCDOTQ,
# ACCDOTR) IS ALSO COMPUTED IN THE DESCENT CASE.

#    AFTER THE ABOVE COMPUTATIONS, THE PROGRAM 1/ACCONT COMPUTES THE RECIPROCAL  NET ACCELERATIONS ABOUT THE P, U,
# AND V AXES (2 JETS FOR P AXIS, BOTH 1 AND 2 JETS FOR U AND V AXES), AND THE RECIPROCAL COAST ACCELERATIONS ABOUT
# THE P, U, AND V AXES. THE ACCELERATION FUNCTIONS (ACCFCTZ1 AND ACCFCTZ5)ARE ALSO COMPUTED FOR THESE AXES. THE
# FIRE AND COAST DEADBANDS AND AXISDIST ARE COMPUTED FOR EACH AXIS. FLAT AND ZONE3LIM, THE WIDTH AND HEIGHT OF THE
# MINIMUM IMPULSE ZONE, ARE COMPUTED. 1/ACCONT ALSO SETS ACCSWU AND ACCSWV, WHICH INDICATE WHEN 1 JET ACCELERATION
# IS NOT SUFFICIENT TO PRODUCE MINIMUM ACCELERATION. AT THE COMPLETION OF 1/ACCS, THE ACCSOKAY BIT IS SET.


# SUBBOUTINES CALLED:

#          TIMEGMBL
#          MAKECADR
#          ROT45DEG

# CALLING SEQUENCE:

#                                                  TC     BANKCALL        (1/ACCS MUST BE CALL BY BANKCALL
#                                                  CADR   1/ACCS

# NORMAL EXIT: VIA BANKJUMP       ALARM AND ABORT EXIT MODES: NONE.

# INPUT/OUTPUT: SEE PROGRAM DESCRIPTION

# DEBRIS:

# ALL OF THE EXECUTIVE TEMPORARY REGISTERS, EXCEPT FIXLOC AND OVFIND, AND THE CORE SET AREA FROM MPAC TO BANKSET.

# RESTRICTIONS:

# 1/ACCS MUST BE CALLED BY BANKCALL
# EBANK IS SET TO 6, BUT NOT RESTORED.

## Page 1474
                BANK            21
                SETLOC          DAPS4
                BANK

                COUNT*          $$/DAPAO

                EBANK=          AOSQ

# ENTRY IS THROUGH 1/ACCJOB OR 1/ACCSET WHEN 1/ACCS IS TO BE DONE AS A SEPARATE NOVAC JOB.

# IT IS POSSIBLE FOR MORE THAN ONE OF THESE JOBS TO BE SET UP CONCURRENTLY.  HOWEVER, SINCE THERE IS NO CHECK OF
# NEWJOB, A SECOND MANIFESTATION CANNOT BE STARTED UNTIL THE FIRST IS COMPLETED.

1/ACCSET        CAF             ZERO                    # ENTRY FROM FRESH START/RESTART CODING.
                TS              AOSQ                    #   NULL THE OFFSET ESTIMATES FOR 1/ACCS.
                TS              AOSR
                TS              ALPHAQ                  #   NULL THE OFFSET ESTIMATES FOR DOWNLIST
                TS              ALPHAR

1/ACCJOB        TC              BANKCALL                # 1/ACCS ASSUMES ENTRY VIA BANKCALL.
                CADR            1/ACCS          +2      # SKIP EBANK SETTING.

                TC              ENDOFJOB

                BANK            20
                SETLOC          DAPS3
                BANK
                COUNT*          $$/DAPAO

1/ACCS          CA              EBANK6                  # ***** EBANK SET BUT NOT RESTORED *****
                TS              EBANK

                TC              MAKECADR                # SAVE RETURN SO THAT BUF2 MAY BE USED
                TS              ACCRETRN

# DETERMINE MASS OF THE LEM.
                CA              DAPBOOLS                # IS CSM DOCKED
                MASK            CSMDOCKD
                TS              DOCKTEMP                # STORE RECORD OF STATE IN TEMP (MPAC +3).
                CCS             A
                CS              CSMMASS                 #   DOCKED:  LEMMASS = MASS - CSMMASS
                AD              MASS                    #   LEM ALONE: LEMMASS = MASS
                TS              LEMMASS

# ON THE BASIS OF APSFLAG:
#     SET THE P-AXIS RATE COMMAND LIMIT FOR 2-JET/4-JET CONTROL
#     SET MPAC, WHICH INDICATES THE PROPER SET OF COEFFICIENTS FOR THE LEM-ALONE F(MASS) CALCULATIONS
#     ENSURE THAT THE LEM MASS VALUE IS WITHIN THE ACCEPTABLE RANGE

                INHINT
## Page 1475
                CAE             FLGWRD10                # DETERMINE WHETHER STAGED.
                MASK            APSFLBIT
                EXTEND
                BZF             DPSFLITE

                CS              POSMAX                  # ASCENT (OR ON LUNAR SURFACE)
                TS              -2JETLIM                # ALWAYS 2 JETS FOR P-AXIS RATE COMMAND
                CAF             OCT14                   # INITIALIZE INDEX AT 12.
                TS              MPAC
                CS              LEMMASS                 # CHECK IF MASS TOO HIGH.  CATCH STAGING.
                AD              HIASCENT
                EXTEND
                BZMF            MASSFIX
                CS              LEMMASS                 # CHECK IF MASS TOO LOW.  THIS LIMITS THE
                AD              LOASCENT                #   DECREMENTING BY MASSMON.
                EXTEND
                BZMF            F(MASS)

MASSFIX         ADS             LEMMASS                 # STORE THE VIOLATED LIMIT AS LEMMASS.
                ZL                                      #   ALSO CORRECT TOTAL MASS, ZEROING THE
                CCS             DOCKTEMP                #   LOW-ORDER WORD.
                CAE             CSMMASS                 #     DOCKED:  MASS = LEMMASS + CSMMASS
                AD              LEMMASS                 #     LEM ALONE:  MASS = LEMMASS
                DXCH            MASS
                TCF             F(MASS)

DPSFLITE        CS              BIT10                   # FOUR JETS FOR P-AXIS RATE COMMAND ERRORS
                TS              -2JETLIM                #   EXCEEDING 1.4 DEG/SEC  (SCALED AT 45)
                CAF             SIX                     # INITIALIZE INDEX AT 6.
                TS              MPAC
                CS              LEMMASS                 # CHECK IF MASS TOO HIGH.  SHOULD NEVER
                AD              HIDESCNT                #   OCCUR EXCEPT PERHAPS BEFORE THE PAD
                EXTEND                                  #   LOAD IS DONE.
                BZMF            MASSFIX
                CS              LEMMASS                 # CHECK IF MASS TOO LOW.  THIS LIMITS THE
                AD              LODESCNT                #   DECREMENTING BY MASSMON.
                AD              HIASCENT
                EXTEND
                BZMF            F(MASS)
                TCF             MASSFIX
# COMPUTATION OF FUNCTIONS OF MASS

F(MASS)         RELINT
                CCS             DOCKTEMP
                TCF             DOCKED                  # DOCKED: USE SEPERATE COMPUTATION.
                CA              TWO
STCTR           TS              MPAC            +1      # J=2,1,0 FOR 1JACCR,1JACCQ,1JACC

                CS              TWO
                ADS             MPAC                    # JX=10,8,6 OR 4,2,0 TO INDEX COEFS.

## Page 1476
STCTR1          CAE             LEMMASS
                INDEX           MPAC
                AD              INERCONC
                TS              MPAC            +2      # MASS + C
                EXTEND
                INDEX           MPAC
                DCA             INERCONA
                EXTEND
                DV              MPAC            +2
                INDEX           MPAC
                AD              INERCONB
                INDEX           MPAC            +1      # 1JACC(J)=A(JX)/(MASS+C(JX) + B(JX)
                TS              1JACC                   # 1JACC(-1)=L,PVT-CG  SCALED AT 8 FEET

                CCS             MPAC            +1
                TCF             STCTR
                TCF             COMMEQS
                TCF             LRESC

#   COEFFQ AND COEFFR ARE COMPUTED IN THIS SECTION. THEY ARE USED TO RESOLVE Q-R COMPONENTS INTO NON-ORTHOGONAL
# U AND V COMPONENTS (SEE ROT-TOUV SECTION).

COMMEQS         ZL
                CS              1JACCR
                AD              1JACCQ
                EXTEND
                BZMF            BIGIQ
                EXTEND                                  # EPSILON IS A MEASURE OF COUPLING AND IS
                DV              1JACCQ                  # DEFINED=1-IQ/IR FOR IR GREATER THAN IQ.
                TS              EPSILON                 # THE COMPUTED EXPRESSION IS EQUIVALENT
                AD              -EPSMAX
                EXTEND
                BZMF            GOODEPS1
                CS              -EPSMAX
                TS              EPSILON                 # EPSILON IS LIMITED TO A MAX. OF .42265
GOODEPS1        CA              EPSILON
                EXTEND
                MP              0.35356
                AD              .7071
                TS              COEFFR                  # IN THIS CASE WHERE IR IS GREATER THAN
                CS              POSMAX                  # IQ, COEFFQ=-.707(1+.5EPSILON)(1-EPSILON)
                AD              EPSILON                 # AND COEFFR=.707(1+.5EPSILON)
                EXTEND
                MP              COEFFR
                TS              COEFFQ
                TCF             JACCUV
BIGIQ           EXTEND                                  # EPSILON IS DEFINED AS 1-IR/IQ FOR IQ
                DV              1JACCR                  # GREATER THAN IR. -EPSILON IS COMPUTED
                TS              -EPSILON                # RATHER THAN EPSILON FOR CONVENIENCE
                CS              -EPSILON
## Page 1477
                AD              -EPSMAX
                EXTEND
                BZMF            GOODEPS2
                CA              -EPSMAX
                TS              -EPSILON                # EPSILON IS LIMITED TO A MAX. OF .42265
GOODEPS2        CA              -EPSILON
                EXTEND
                MP              0.35356
                AD              -.7071
                TS              COEFFQ                  # IN THIS CASE WHERE IQ IS GREATER THAN
                CS              -EPSILON                # IR, COEFFQ=-.707(1+.5EPSILON) AND
                AD              NEGMAX                  # COEFFR=.707(1+.5EPSILON)(1-EPSILON)
                EXTEND
                MP              COEFFQ
                TS              COEFFR
JACCUV          CS              COEFFQ
                EXTEND
                MP              1JACCQ                  # 1JACCQ IS SCALED AT PI/4
                TS              1JACCU                  # 1JACCU USED AS TEMPORARY STORAGE
                CA              COEFFR
                EXTEND
                MP              1JACCR
                AD              1JACCU
                EXTEND
                MP              BIT14                   # SCALING CHANGED FROM PI/4 TO PI/2
                TS              1JACCU                  # SCALED AT PI/2 RADIANS/SEC(2)
                CCS             MPAC                    # COMPUTE L,PVT-CG IF IN DESCENT
                CAF             ZERO                    # ZERO SWITCHES AND GO TO 1/ACCONT IN
                TS              ALLOWGTS                #   ASCENT
                TCF             1/ACCONT -1

                CS              TWO
                TS              MPAC
                CS              ONE
                TS              MPAC +1
                TCF             STCTR1
# THIS SECTION COMPUTES THE RATE OF CHANGE OF ACCELERATION DUE TO THE ROTATION OF THE GIMBALS.  THE EQUATION IMPLE
# MENTED IN BOTH THE Y-X PLANE AND THE Z-X PLANE IS -- D(ALPHA)/DT = TL/I*D(DELTA)/DT, WHERE
#      T = ENGINE THRUST FORCE
#      L = PIVOT TO CG DISTANCE OF ENGINE
#      I = MOMENT OF INERTIA

LRESC           CAE             ABDELV                  # SCALED AT 2(13) CM/SEC(2)
                EXTEND
                MP              MASS                    # SCALED AT B+16 KGS
                TC              DVOVSUB                 # GET QUOTIENT WITH OVERFLOW PROTECTION
                ADRES           GFACTM

# MASS IS DIVIDED BY ACCELERATION OF GRAVITY IN ORDER TO MATCH THE UNITS OF IXX,IYY,IZZ, WHICH ARE SLUG-FT(2).
# THE RATIO OF ACCELERATION FROM PIPAS TO ACCELERATION OF GRAVITY IS THE SAME IN METRIC OR ENGINEERING UNITS, SO
## Page 1478
# THAT IS UNCONVERTED.  2.20462 CONVERTS KG. TO LB.  NOW T IS IN A SCALED AT 2(14).

                EXTEND
                MP              L,PVT-CG                # SCALED AT 8 FEET.
                INHINT
                TS              MPAC
                EXTEND
                MP              1JACCR
                TC              DVOVSUB                 # GET QUOTIENT WITH OVERFLOW PROTECTION
                ADRES           TORKJET1

                TS              ACCDOTR                 # SCALED AT PI/2(7)
                CA              MPAC
                EXTEND
                MP              1JACCQ
                TC              DVOVSUB                 # GET QUOTIENT WITH OVERFLOW PROTECTION
                ADRES           TORKJET1

SPSCONT         TS              ACCDOTQ                 # SCALED AT PI/2(7)
                EXTEND
                MP              DGBF                    # .3ACCDOTQ SCALED AT PI/2(8)
                TS              KQ
                CAE             ACCDOTR                 # .3ACCDOTR AT PI/2(8)
                EXTEND
                MP              DGBF
                TS              KRDAP
                EXTEND                                  # NOW COMPUTE QACCDOT, RACCDOT, THE SIGNED
                READ            CHAN12                  # JERK TERMS.  STORE CHANNEL 12. WITH GIM
                TS              MPAC            +1      # BAL DRIVE BITS 9 THROUGH 12.  SET LOOP
                CAF             BIT2                    # INDEX TO COMPUTE RACCDOT, THEN QACCDOT.
                TCF             LOOP3
                CAF             ZERO                    # ACCDOTQ AND ACCDOTR ARE NOT NEGATIVE,
LOOP3           TS              MPAC                    # BECAUSE THEY ARE MAGNITUDES
                CA              MPAC            +1
                INDEX           MPAC                    # MASK CHANNEL IMAGE FOR ANY GIMBAL MOTION
                MASK            GIMBLBTS
                EXTEND
                BZF             ZACCDOT                 # IF NONE, Q(R)ACCDOT IS ZERO.
                CA              MPAC            +1
                INDEX           MPAC                    # GIMBAL IS MOVING.  IS ROTATION POSITIVE.
                MASK            GIMBLBTS        +1
                EXTEND
                BZF             FRSTZERO                # IF NOT POSITIVE, BRANCH
                INDEX           MPAC                    # POSITIVE ROTATION, NEGATIVE Q(R)ACCDOT.
                CS              ACCDOTQ
                TCF             STACCDOT
FRSTZERO        INDEX           MPAC                    # NEGATIVE ROTATION, POSITIVE Q(R)ACCDOT.
                CA              ACCDOTQ
                TCF             STACCDOT
ZACCDOT         CAF             ZERO
## Page 1479
STACCDOT        INDEX           MPAC
                TS              QACCDOT                 # STORE Q(R)ACCDOT.
                CCS             MPAC
                TCF             LOOP3           -1      # NOW DO QACCDOT.
                CS              DAPBOOLS                # IS GIMBAL USABLE?
                MASK            USEQRJTS
                EXTEND
                BZF             DOWNGTS                 # NO. BE SURE THE GIMBAL SWITCHES ARE DOWN
                CS              T5ADR                   # YES.  IS THE DAP RUNNING?
                AD              PAXISADR
                EXTEND
                BZF             +2
                TCF             DOWNGTS                 # NO. BE SURE THE GIMBAL SWITCHES ARE DOWN
                CCS             INGTS                   # YES.  IS GTS IN CONTROL?
                TCF             DOCKTEST                # YES.  PROCEED WITH 1/ACCS.
                TC              IBNKCALL                # NO.  NULL OFFSET AND FIND ALLOWGTS
                CADR            TIMEGMBL

DOCKTEST        CCS             DOCKTEMP                # BYPASS 1/ACCONT WHEN DOCKED.
                TCF             1/ACCRET
                TCF             1/ACCONT

## Page 1480
# SUBROUTINE:  DVOVSUB

# AUTHOR:  C. WORK, MOD 0 12 JUNE 68

# PURPOSE:  THIS SUBROUTINE PROVIDES A SINGLE-PRECISION MACHINE LANGUAGE DIVISION OPERATION WHICH RETURNS
#           (1) THE QUOTIENT, IF THE DIVISION WAS NORMAL.
#           (2) NEGMAX, IF THE QUOTIENT WAS IMPROPER AND NEGATIVE.
#           (3) POSMAX, IF THE QUOTIENT WAS IMPROPER AND POSITIVE OR IF THERE WAS A ZERO DIVISOR.
#           THE CALLING PROGRAM IS PRESUMED TO BE A JOB IN THE F BANK WHICH CONTAINS DVOVSUB. E BANK MUST BE 6.
#           THE DIVISOR FOR THIS ROUTINE MAY BE IN EITHER FIXED OR ERASABLE STORAGE.  SIGN AGREEMENT IS
#           ASSUMED BETWEEN THE TWO HALVES OF THE DIVIDEND. (THIS IS CERTAIN IF THE A AND L REGISTERS ARE THE RE-
#           SULT OF A MULTIPLICATION OPERATION.)
# CALL SEQUENCE:
#                                         L        TC     DVOVSUB
#                                         L +1     ADRES  (DIVISOR)
#                                         L +2     RETURN HERE, WITH RESULT IN A,L

# INPUT:  DIVIDEND IN A,L (SIGN AGREEMENT ASSUMED), DIVISOR IN LOCATION DESIGNATED BY "ADRES".
#         DIVISOR MAY BE IN THE DVOVSUB FBANK,FIXED-FIXED FBANK,EBANK 6, OR UNSWITCHED ERASABLE.

# OUTPUT:  QUOTIENT AND REMAINDER, OR POSMAX (NEGMAX), WHICHEVER IS APPROPRIATE.

# DEBRIS:  SCRATCHX,SCRATCHY,SCRATCHZ,A,L  (NOTE:  SCRATCHX,Y,Z ARE EQUATED TO MPAC +4,+5, AND +6.)

# ABORTS OR ALARMS:  NONE

# EXITS:  TO THE CALL POINT + 2.

# SUBROUTINES CALLED:  NONE.

DVOVSUB         TS              SCRATCHY                # SAVE UPPER HALF OF DIVIDEND
                TS              SCRATCHX
                INDEX           Q                       # OBTAIN ADDRESS OF DIVISOR.
                CA              0
                INCR            Q                       # STEP Q FOR PROPER RETURN SEQUENCE.
                INDEX           A
                CA              0                       # PICK UP THE DIVISOR.
                EXTEND                                  # RETURN POSMAX FOR A ZERO DIVISOR.
                BZF             MAXPLUS

                TS              SCRATCHZ                # STORE DIVISOR.

                CCS             A                       # GET ABS(DIVISOR) IN THE A REGISTER.
                AD              BIT1
                TCF             ZEROPLUS
                AD              BIT1

ZEROPLUS        XCH             SCRATCHY                # STORE ABS(DIVISOR).  PICK UP TOP HALF OF
                EXTEND                                  # DIVIDEND.
                BZMF            GOODNEG                 # GET  -ABS(DIVIDEND)

## Page 1481
                CS              A

GOODNEG         AD              SCRATCHY                # ABS(DIVISOR) - ABS(DIVIDEND)
                EXTEND
                BZMF            MAKEMAX                 # BRANCH IF DIVISION IS NOT PROPER.

                CA              SCRATCHX                # RE-ESTABLISH THE DIVIDEND.
                EXTEND
                DV              SCRATCHZ                # QUOTIENT IN THE A, REMAINDER IN L.
                TC              Q                       # RETURN TO CALLER.

MAKEMAX         CCS             SCRATCHX                # DETERMINE THE SIGN OF THE QUOTIENT.
                CCS             SCRATCHZ                # SCRATCHX AND SCRATCHZ ARE NON-ZERO.
                TCF             MAXPLUS
                CCS             SCRATCHZ
                CAF             NEGMAX                  # +,- OR -,+
                TC              Q
MAXPLUS         CAF             POSMAX                  # -,- OR +,+
                TC              Q

# COEFFICIENTS FOR THE JET ACCELERATION CURVE FITS
# THE CURVE FITS ARE OF THE FORM -

#          1JACC = A/(MASS + C) + B

# A IS SCALED AT PI/4 RAD/SEC**2 B+16KG, B IS SCALED AT PI/4 RAD/SEC**2, AND C IS SCALED AT B +16 KG.

# THE CURVE FIT FOR L,PVT-CG IS OF THE SAME FORM, EXCEPT THAT A IS SCALED AT 8 FT B+16 KG, B IS SCALED AT 8 FT,
# AND C IS SCALED AT B+16 KG.

                2DEC            +.0410511917            # L       A  DESCENT


INERCONA        2DEC            +.0059347674            # 1JACCP  A  DESCENT

                2DEC            +.0014979264            # 1JACCQ  A  DESCENT

                2DEC            +.0010451889            # 1JACCR  A  DESCENT


                2DEC            +.0065443852            # 1JACCP  A  ASCENT

                2DEC            +.0035784354            # 1JACCQ  A  ASCENT

                2DEC            +.0056946631            # 1JACCR  A  ASCENT

                DEC             +.155044                # L       B  DESCENT
                DEC             -.025233                # L       C  DESCENT
## Page 1482
INERCONB        DEC             +.002989                # 1JACCP  B  DESCENT
INERCONC        DEC             +.008721                # 1JACCP  C  DESCENT
                DEC             +.018791                # 1JACCQ  B  DESCENT
                DEC             -.068163                # 1JACCQ  C  DESCENT
                DEC             +.021345                # 1JACCR  B  DESCENT
                DEC             -.066027                # 1JACCR  C  DESCENT

                DEC             +.000032                # 1JACCP  B  ASCENT
                DEC             -.006923                # 1JACCP  C  ASCENT
                DEC             +.162862                # 1JACCQ  B  ASCENT
                DEC             +.002588                # 1JACCQ  C  ASCENT
                DEC             +.009312                # 1JACCR  B  ASCENT
                DEC             -.023608                # 1JACCR  C  ASCENT

GIMBLBTS        OCTAL           01400
                OCTAL           01000
                OCTAL           06000
                OCTAL           04000
DGBF            DEC             0.6                     #  .3 SCALED AT 1/2
0.35356         DEC             0.35356                 # .70711 SCALED AT 2
GFACTM          OCT             337                     # 979.24/2.20462 AT B+15
.7071           DEC             .70711
-.7071          DEC             -.70711
-EPSMAX         DEC             -.42265
# CSM-DOCKED INERTIA COMPUTATIONS

## Note: The label DOCKED is indented by one character originally. yaYul does not recognize this as proper label.
DOCKED          CA              ONE                     # COEFTR = 1 FOR INERTIA COEFFICIENTS
SPSLOOP1        TS              COEFCTR                 #         = 7 FOR CG COEFFICIENTS
                CA              ONE                     # MASSCTR = 1 FOR CSM
                TS              MASSCTR                 #         = 0 FOR LEM

                INDEX           COEFCTR
                CA              COEFF -1                # COEFF -1 = C
                EXTEND
                MP              LEMMASS
                EXTEND
                MP              CSMMASS                 # LET X = CSMMASS AND Y = LEMMASS

                INDEX           COEFCTR
                AD              COEFF                   # COEFF = F
                TS              MPAC                    # MPAC = C X Y + F
                TCF             +4

SPSLOOP2        TS              MASSCTR                 # LOOP TWICE THROUGH HERE TO OBTAIN
                EXTEND                                  # MPAC = MPAC + (A X +D)X + (B Y +E)Y
                DIM             COEFCTR                 #                LOOP #1     LOOP #2
                INDEX           COEFCTR
                CA              COEFF           +2      # COEFF +2 = A OR B
                EXTEND
## Page 1483
                INDEX           MASSCTR
                MP              LEMMASS
                INDEX           COEFCTR
                AD              COEFF           +4      # COEFF +4 = E OR D
                EXTEND
                INDEX           MASSCTR
                MP              LEMMASS
                ADS             MPAC

                CCS             MASSCTR
                TCF             SPSLOOP2
                CCS             COEFCTR                 # IF COEFCTR IS POS , EXIT FROM LOOP WITH
                TCF             +7                      # CG X DELDOT = MPAC X 4 PI RAD-CM/SEC
TORQCONS        2DEC            0.51443         B-14    # CORRESPONDS TO 500 LB-FT

                CA              MPAC
                TS              MPAC            +1      # INERTIA = (MPAC +1) X 2(38) KG-CM(2)
                CA              SEVEN
                TCF             SPSLOOP1

                CA              1JACCCON                # 1JACC=1JACCCON/MASS
                ZL
                TC              DVOVSUB
                ADRES           MASS
                TS              1JACC                   # SCALED AT PI/4

                CA              POSMAX                  # SET INVERSE JET ACCELERATIONS TO POSMAX,
                TS              1/ANETP                 # WHICH CORRESPONDS TO ACCEL. OF 1.4 D/SS.
                TS              1/ANET2         +1
                TS              1/ANET2         +2
                TS              1/ANET2         +17D
                TS              1/ANET2         +18D
                EXTEND
                DCA             TORQCONS
                EXTEND
                DV              MPAC            +1
                INHINT
                TS              1JACCQ                  # SCALED AT PI/4
                TS              1JACCR

                CA              -.7071
                TS              COEFFQ                  # COEFFQ AND COEFFR ARE CHOSEN TO MAKE U-
                CA              .7071                   # AND V-AXES ORTHOGONAL FOR DOCKED CASE
                TS              COEFFR
                CA              MASS                    # SCALED AT 2(16) KG
                EXTEND
                MP              MPAC                    # SCALED AT 4 PI RAD-CM/SEC
                EXTEND
                MP              ABDELV                  # SCALED AT 2(13) CM/SEC(2)
                TC              DVOVSUB                 # GET QUOTIENT WITH OVERFLOW PROTECTION
## Page 1484
                ADRES           MPAC +1

                TS              ACCDOTR
                TCF             SPSCONT                 # CONTINUE K, KSQ CALCULATIONS

1JACCCON        OCT             00167                   # SCALED AT PI/4X2(16) RAD/SEC(2)-KG

#                                                                                      2    2
#                                          COEFFICIENTS FOR CURVE FIT OF THE FORM Z=A X +B Y +C X Y +D X +E Y +F

COEFF           DEC             .19518                  # C  COEFFICIENT OF INERTIA
                DEC             -.00529                 # F              ''
                DEC             -.17670                 # B              ''
                DEC             -.03709                 # A              ''
                DEC             .06974                  # E              ''
                DEC             .02569                  # D              ''

                DEC             .20096                  # C  COEFFICIENT OF CG
                DEC             .13564                  # F       ''
                DEC             .75704                  # B       ''
                DEC             -.37142                 # A       ''
                DEC             -.63117                 # E       ''
                DEC             .41179                  # D       ''

# ASSIGNMENT OF TEMPORARIES FOR 1/ACCS (EXCLUDING 1/ACCONT)

#                                         MPAC, MPAC +1, MPAC +2 USED EXPLICITLY
COEFCTR         EQUALS          MPAC            +4
MASSCTR         EQUALS          MPAC            +5
SCRATCHX        EQUALS          MPAC            +4      # SCRATCH AREA FOR DVOVSUB ROUTINE.
SCRATCHY        EQUALS          SCRATCHX        +1
SCRATCHZ        EQUALS          SCRATCHX        +2

DOCKTEMP        EQUALS          MPAC            +3      # RECORD OF CSMDOCKED BIT OF DAPBOOLS
EPSILON         EQUALS          MPAC            +1
-EPSILON        EQUALS          EPSILON
-.1875          DEC             -.18750

## Page 1485
                BANK            20
                SETLOC          DAPS3
                BANK

                EBANK=          AOSQ

                COUNT*          $$/DAPAO

 -1             TS              INGTS                   # ZERO  INGTS IN ASCENT
1/ACCONT        CA              DB                      # INITIALIZE DBVAL1,2,3
                EXTEND
                MP              BIT13
                TS              L                       # 0.25 DB
                AD              A
                TS              DBVAL3                  # 0.50 DB
                CS              DBVAL1
                AD              L
                TS              DBVAL2                  # -.75 DB

GETAOSUV        INHINT
                CAE             AOSR                    # COMPUTE AOSU AND AOSV BY ROTATING
                TS              L                       #      AOSQ AND AOSR.
                CAE             AOSQ
                TC              IBNKCALL
                CADR            ROT-TOUV
                DXCH            AOSU

                RELINT
                CA              DAPBOOLS
                MASK            DRIFTBIT                # ZERO DURING ULLAGE AND POWERED FLIGHT.
                CCS             A                       # IF DRIFTING FLIGHT,
                CA              ONE                     #      SET DRIFTER TO 1
                TS              DRIFTER                 # SAVE TO TEST FOR DRIFTING FLIGHT LATER
                AD              ALLOWGTS                # NON-ZERO IF DRIFT OR GTS NEAR
                CCS             A
                CA              FLATVAL                 # DRIFTING FLIGHT, STORE .8 IN FLAT
                TS              FLATEMP                 # IN POWERED FLIGHT, STORE ZERO IN FLAT
                EXTEND
                BZF             DOPAXIS                 # IF POWERED AND NO GTS, START P AXIS,
                CCS             DRIFTER                 # OTHERWISE SET ZONE3LIM
                CA              ZONE3MAX                # 17.5 MS , SCALED AT 4 SECONDS.
                TS              Z3TEM

DOPAXIS         CA              1JACC                   # 1JACC AT PI/4 = 2JACC AT PI/2 =
                                                        # ANET AT PI/2 = ANET/ACOAST AT 2(6).
                AD              BIT9                    # 1 + ANET/ACOAST AT 2(6)
                TS              FUNTEM

                CA              1JACC
## Page 1486
                TC              INVERT
                INHINT                                  # P AXIS DATA MUST BE CONSISTENT
                TS              1/ANETP                 # SCALED AT 2(7)/PI.
                TS              1/ANETP         +1

                CS              BIT9                    # -1 AT 2(6)
                EXTEND
                MP              1/ANETP                 # -1/ANET AT 2(13)/PI
                EXTEND
                DV              FUNTEM                  # -1/(ANET + ANET**2/ACOAST) AT 2(7)/PI
                TS              PACCFUN
                TS              PACCFUN         +1

                CA              1/.03                   # NO AOS FOR P AXIS, ACOAST = AMIN
                TS              1/ACOSTP
                TS              1/ACOSTP        +1
                RELINT


                ZL
                CCS             DRIFTER
                DXCH            AOSU                    # ZERO AOSU,V IF IN DRIFT, JUST TO BE SURE

UAXIS           CA              ZERO                    # DO U AXIS COMPUTATIONS
                TS              UV                      # ZERO FOR U AXIS, ONE FOR V AXIS.

BOTHAXES        TS              SIGNAOS                 # CODING COMMON TO U,V AXES
                INDEX           UV
                CCS             AOSU                    # PICK UP ABS(AOSU OR AOSV)
                AD              ONE                     # RESTORE TO PROPER VALUE
                TCF             +3                      # AND LEAVE SIGNAOS AT ZERO
                AD              ONE                     # NEGATIVE, RESTORE TO PROPER VALUE
                INCR            SIGNAOS                 # AND SET SIGNAOS TO ONE TO SHOW AOS NEG
                TS              ABSAOS                  # SAVE ABS(AOS)
                CS              SIGNAOS
                TS              -SIGNAOS                # USED AS AN INDEX

                CA              DBVAL1                  # SET DB1, DB2 TO DBVAL1 (= DB)
                TS              DBB1
                TS              DBB2

                CA              ABSAOS                  # TEST MAGNITUDE OF ABS(AOS)
                AD              -.03R/S2
                EXTEND
                BZMF            NOTMUCH                 # ABS(AOS) LESS THAN AMIN
BIGAOS          CCS             FLATEMP                 # AGS(AOS) GREATER THAN AMIN
                TCF             SKIPDB1                 # I DRIFT OR GTS, DO NOT COMPUTE DB

                CA              DBVAL1
                INDEX           -SIGNAOS
## Page 1487
                ADS             DBB2                    # DB2(1) = 2 DB
                INDEX           SIGNAOS
                TS              DBB4                    # DB4(3) = 1 DB
                CA              -.1875                  # -.1875 PI/2 RAD/SEC(2) SCALED AT PI/2
                AD              ABSAOS                  # ABSAOS IS SCALED AT PI/2
                EXTEND
                BZMF            +3
                CS              DBVAL3                  # -.5 DB
                TCF             DBONE
                CS              ABSAOS
                DOUBLE
                DOUBLE
                AD              BIT14
                DOUBLE                                  # 1-8 ABSAOS. (8 IS 16/PI SCALED AT 2/PI)
                EXTEND
                MP              DB
DBONE           INDEX           SIGNAOS                 # DB1(2)=(1-8 ABSAOS) DB.  IF ABSAOS IS
                TS              DBB1                    # GREATER THAN .1875 THEN DB1(2)=-.5 DB
                CA              DBVAL2
                INDEX           -SIGNAOS
                TS              DBB3                    # DB3(4) = -.75 DB

SKIPDB1         CA              ABSAOS                  # ABS(AOS) GREATER THAN AMIN, SO IT IS
                EXTEND
                MP              BIT12
                AD              ABSAOS                  # (9/8) ABSAOS.
                TC              INVERT                  # ALL RIGHT TO DIVIDE
                INDEX           -SIGNAOS
                TS              1/ACOSTT        +1      # 1/ACOASTPOS(NEG) = 1/ABS(AOS)
                CA              1/.03
                INDEX           SIGNAOS
                TS              1/ACOSTT                # 1/ACOASTNEG(POS) = 1/AMIN

                CA              ABSAOS
                AD              1JACCU
                AD              1JACCU                  # 2 JACC + ABS(AOS)
                AD              BIT9                    # MAXIMUM VALUE IN COMPUTATIONS
                TS              A                       # TEST FOR OVERFLOW
                TCF             SKIPDB2                 # NO OVERFLOW,  DO NORMAL COMPUTATION

                CA              ABSAOS                  # RESCALE TO PI TO PREVENT OVERFLOW
                EXTEND
                MP              BIT14
                AD              1JACCU                  # 1 JACC AT PI/2 = 2JACC AT PI
                TS              ANET                    # ANETPOS(NEG) MAX SCALED AT PI  =
                                                        # ANETPOS(NEG) MAX/ACOASTNEG(POS) AT 2(7)
                AD              BIT8                    # 1 + ANETPOS/ACOASTNEG AT 2(7)
                XCH             ANET                    # SAVE IN ANET, WHILE PICKING UP ANET
                TC              INVERT
                EXTEND
## Page 1488
                MP              BIT14                   # SCALE 1/ANET AT 2(7)/PI
                TS              1/ANET

                CA              ACCHERE                 # SET UP RETURN FROM COMPUTATION ROUTINE
                TS              ARET
                CS              BIT8                    # -1 AT 2(7)
                TCF             DOACCFUN                # FINISH ACCFUN COMPUTATION

ACCHERE         TCF             ACCTHERE


NOTMUCH         TS              L                       # ABS(AOS) LESS THAN AMIN, SAVE IN L
                CA              1/.03                   # ACOASTPOS,NEG = AMIN
                TS              1/ACOSTT
                TS              1/ACOSTT        +1

                CCS             FLATEMP
                TCF             SKIPDB2                 # DO NOT COMPUTE DB IF DRIFT OR GTS

                CA              .023R/S2                # .0228 RAD/SEC(2)
                AD              L                       # L=ABS(AOS)-AMIN=ABS(AOS)-.0245RAD/SEC(2)
                EXTEND                                  # RESULT IS ABS(AOS)-.0017 RAD/SEC(2)
                BZMF            NOAOS                   # ABS(AOS) LESS THAN .0017 RAD/SEC(2)
SOMEAOS         CA              DBVAL3                  # .0017 RAD/SEC(2) LT ABS(AOS) LT AMIN
                INDEX           -SIGNAOS
                TS              DBB3                    # DB3(4) = DB/2
                AD              A
                INDEX           SIGNAOS
                TS              DBB4                    # DB4(3) = DB
                TCF             SKIPDB2

NOAOS           CA              DBVAL1
                TS              DBB3                    # DB3,4 = DB
                TS              DBB4

SKIPDB2         CA              ABSAOS                  # ANETPOS(NEG) MAX = 2 JACC + ABS(AOS)
                AD              1JACCU
                AD              1JACCU
                TS              ANET                    # CONNOT OVERFLOW HERE
CL1/NET+        TC              DO1/NET+                # COMPUTE 1/ANET, ACCFUN

ACCTHERE        INDEX           -SIGNAOS
                TS              Z5TEM           +2      # STORE ACCFUN IN TEMPORARY BUFFER
                CA              1/ANET
                INDEX           -SIGNAOS
                TS              1/ATEM2         +2      # STORE 1/ANET IN TEMPORARY BUFFER

                CA              ABSAOS                  # SEE IF OVERFLOW IN MIN CASE
                AD              1JACCU
                AD              BIT9                    # MAXIMUM POSSIBLE VALUE
## Page 1489
                TS              A                       # OVERFLOW POSSIBLE BUT REMOTE
                TCF             +2
                CA              POSMAX                  # IF OVERFLOW, TRUNCATE TO PI/2
                AD              -.03R/S2                # RESTORE TO CORRECT VALUE
                TS              ANET
                TC              DO1/NET+                # COMPUTE 1/ANET, ACCFUN

                INDEX           -SIGNAOS                # STORE MIN VALUES JUST AS MAX VALUES
                TS              Z5TEM
                CA              1/ANET
                INDEX           -SIGNAOS
                TS              1/ATEM2


                CS              ABSAOS                  # NOW DO NEG(POS) CASES
                AD              1JACCU
                AD              1JACCU                  # ANETNEG(POS) MAX
                TC              1/ANET-                 # COMPUTE 1/ANET, ACCFUN, AND ACCSW
                INDEX           SIGNAOS                 # STORE NEG(POS) VALUES JUST AS POS(NEG)
                TS              Z1TEM           +2
                TS              L                       # SAVE IN L FOR POSSIBLE FUTURE USE
                CA              1/ANET
                INDEX           SIGNAOS
                TS              1/ATEM1         +2
                CS              ABSAOS
                AD              1JACCU                  # 1/ANETNEG(POS) MIN
                TS              ANET
                AD              -.03R/S2                # TEST FOR AMIN
                EXTEND                                  # IF ANET LESS THAN AMIN, STORE MAX JET
                BZMF            FIXMIN                  # VALUES FOR MIN JETS AND SET ACCSW

                TC              1/NETMIN                # OTHERWISE DO MIN JET COMPUTATIONS
STMIN-          INDEX           SIGNAOS                 # STORE VALUES
                TS              Z1TEM
                CA              1/ANET
                INDEX           SIGNAOS
                TS              1/ATEM1


                INDEX           UV
                CA              +UMASK
                MASK            CH5MASK                 # TEST FOR +U (+V) JET FAILURES
                EXTEND
                BZF             FAIL-
                CA              1/ATEM2                 # REPLACE FUNCTION VALUES DEPENDING ON THE
                TS              1/ATEM2         +2      # FAILED JET PAIR WITH CORRESPONDING ONE-
                CA              Z5TEM                   # JET (OR AMIN) FUNCTION VALUES
                TS              Z5TEM           +2
FAIL-           INDEX           UV
                CA              -UMASK
## Page 1490
                MASK            CH5MASK                 # TEST FOR -U (-V) JET FAILURES
                EXTEND
                BZF             DBFUN
                CA              1/ATEM1                 # REPLACE FUNCTION VALUES DEPENDING ON THE
                TS              1/ATEM1         +2      # FAILED JET PAIR WITH CORRESPONDING ONE-
                CA              Z1TEM                   # JET (OR AMIN) FUNCTION VALUES
                TS              Z1TEM           +2


DBFUN           CS              DBB3                    # COMPUTE AXISDIST
                AD              DBB1
                AD              FLATEMP
                TS              AXDSTEM
                CS              DBB4
                AD              DBB2
                AD              FLATEMP
                TS              AXDSTEM         +1

                INHINT
                CCS             UV                      # TEST FOR U OR V AXIS
                TCF             STORV                   # V AXIS   STORE V VALUES

                CA              ACCSW                   # U AXIS   STORE U VALUES
                TS              ACCSWU

                CA              NINE                    # TRANSFER 10 WORDS VIA GENTRAN
                TC              GENTRAN         +1
                ADRES           1/ATEM1                 # TEMPORARY BUFFER
                ADRES           1/ANET1                 # THE REAL PLACE

                RELINT
                DXCH            DBB1                    # SAVE U DBS FOR LATER STORING
                DXCH            UDB1
                DXCH            DBB4
                DXCH            UDB4

                DXCH            AXDSTEM
                DXCH            UAXDIST

                CA              ONE                     # NOW DO V AXIS
                TS              UV
                CA              ZERO
                TCF             BOTHAXES                # AND DO IT AGAIN


STORV           CA              ACCSW                   # STORE V AXIS VALUES
                TS              ACCSWV
                CA              NINE
                TC              GENTRAN         +1
                ADRES           1/ATEM1                 # TEMPORARY BUFFER
## Page 1491
                ADRES           1/ANET1         +16D    # THE REAL PLACE

                                                        # NOW STORE DEADBANDS FOR ALL AXES
                DXCH            FLATEMP                 # FLAT AND ZONE3LIM
                DXCH            FLAT

                CA              DBVAL1                  # COMPUTE P AXIS DEADBANDS
                TS              PDB1
                TS              PDB2
                AD              FLAT
                TS              PDB3
                TS              PDB4
                CA              ZERO
                TS              PAXDIST
                TS              PAXDIST         +1

                CCS             FLAT
                TCF             DRFDB                   # DRIFT OR GTS - COMPUTE DBS

                DXCH            UDB1                    # STORE U DEADBANDS
                DXCH            FIREDB                  # CANNOT USE GENTRAN BECAUSE OF RELINT
                DXCH            UDB4
                DXCH            COASTDB
                DXCH            UAXDIST
                DXCH            AXISDIST
                DXCH            DBB1                    # STORE V AXIS DEADBANDS
                DXCH            FIREDB          +16D    # COULD USE GENTRAN IF DESIRED
                DXCH            DBB4
                DXCH            COASTDB         +16D
                DXCH            AXDSTEM
                DXCH            AXISDIST        +16D

                TCF             1/ACCRET        +1      # ALL DONE
DRFDB           CA              DBVAL1                  # DRIFT DEADBANDS
                TS              FIREDB
                TS              FIREDB          +1
                TS              FIREDB          +16D
                TS              FIREDB          +17D
                AD              FLAT
                TS              COASTDB
                TS              COASTDB         +1
                TS              COASTDB         +16D
                TS              COASTDB         +17D
                CA              ZERO
                TS              AXISDIST
                TS              AXISDIST        +1
                TS              AXISDIST        +16D
                TS              AXISDIST        +17D

1/ACCRET        INHINT
## Page 1492
                CS              DAPBOOLS                # SET BIT TO INDICATE DATA GOOD.
                MASK            ACCSOKAY
                ADS             DAPBOOLS
                RELINT
                CA              ACCRETRN
                TC              BANKJUMP                # RETURN TO CALLER

INVERT          TS              HOLD                    # ROUTINE TO INVERT   -INPUT AT PI/2
                CA              BIT9                    # 1 AT 2(6)
                ZL                                      # ZERO L FOR ACCURACY AND TO PREVENT OVFLO
                EXTEND
                DV              HOLD
                TC              Q                       # RESULT AT 2(7)/PI


DOWNGTS         CAF             ZERO                    # ZERO SWITCHES WHEN USEQRJTS BIT IS UP
                TS              ALLOWGTS                #   OR DAP IS OFF.
                TS              INGTS
                TCF             DOCKTEST

1/ANET-         ZL
                LXCH            ACCSW                   # ZERO ACCSW
                TS              ANET                    # SAVE ANET
                AD              -.03R/S2                # TEST FOR MIN VALUE
                EXTEND
                BZMF            NETNEG                  # ANET LESS THAN AMIN, SO FAKE IT
1/NETMIN        CA              ANET
                EXTEND
                INDEX           -SIGNAOS
                MP              1/ACOSTT +1             # ANETNEG(POS)/ACOASTPOS(NEG) AT 2(6)

#                                                              THE FOLLOWING CODING IS VALID FOR BOTH POS OR NEG
#                                                                      VALUES OF AOS

DO1/NET+        AD              BIT9                    # 1 + ANET/ACOAST AT 2(6)
                XCH             ANET                    # SAVE AND PICK UP ANET
                EXTEND
                QXCH            ARET                    # SAVE RETURN
                TC              INVERT
                TS              1/ANET                  # 1/ANET AT 2(7)/PI
                CS              BIT9                    # -1 AT 2(6)
DOACCFUN        EXTEND
                MP              1/ANET                  # -1/ANET AT 2(13)/PI
                EXTEND
                DV              ANET                    # ACCFUN AT 2(7)/PI
                TC              ARET                    # RETURN

NETNEG          CS              -.03R/S2                # ANET LESS THAN AMIN - SET EQUAL TO AMIN
                TS              ANET
                TCF             1/NETMIN +1             # CONTINUE AS IF NOTHING HAPPENED

## Page 1493
FIXMIN          CCS             SIGNAOS
                CA              TWO                     # IF AOS NEG, ACCSW = +1
                AD              NEGONE                  # IF AOS POS, ACCSW = -1
                TS              ACCSW
                AD              UV                      # IF ACCSW = +1, TEST FOR +U (+V) JET FAIL
                INDEX           A                       # IF ACCSW = -1, TEST FOR -U (-V) JET FAIL
                CA              -UMASK          +1
                MASK            CH5MASK
                EXTEND
                BZF             +4
                CS              -.03R/S2                # JET FAILURE - CANNOT USE 2-JET VALUES
                TS              ANET                    # ANET = AMIN
                TCF             STMIN-          -1      # CALCULATE FUNCTIONS USING AMIN
                CA              L                       # L HAS ACCFUN
                TCF             STMIN-                  # STORE MAX VALUES FOR MIN JETS


#                                          ERASABLE ASSIGNMENTS FOR 1/ACCONT

1/ANETP         EQUALS          BLOCKTOP        +2
1/ACOSTP        EQUALS          BLOCKTOP        +4
PACCFUN         EQUALS          BLOCKTOP        +8D
PDB1            EQUALS          BLOCKTOP        +10D
PDB2            EQUALS          BLOCKTOP        +11D
PDB4            EQUALS          BLOCKTOP        +12D
PDB3            EQUALS          BLOCKTOP        +13D
PAXDIST         EQUALS          BLOCKTOP        +14D

ACCSW           EQUALS          VBUF                    # EXECUTIVE TEMPORARIES
                                                        # CANNOT DO CCS     NEWJOB DURING 1/ACCS
1/ATEM1         EQUALS          ACCSW           +1      # TEMP BUFFER FOR U AND V AXES
1/ATEM2         EQUALS          1/ATEM1         +1
1/ACOSTT        EQUALS          1/ATEM1         +4
Z1TEM           EQUALS          1/ATEM1         +6
Z5TEM           EQUALS          1/ATEM1         +7

UDB1            EQUALS          1/ATEM1         +10D    # UAXIS DEADBAND BUFFER
UDB2            EQUALS          1/ATEM1         +11D
UDB4            EQUALS          1/ATEM1         +12D
UDB3            EQUALS          1/ATEM1         +13D
UAXDIST         EQUALS          1/ATEM1         +14D

DBB1            EQUALS          1/ATEM1         +16D    # TEMP DEADBAND BUFFER, ALSO V AXIS
DBB2            EQUALS          1/ATEM1         +17D
DBB4            EQUALS          1/ATEM1         +18D
DBB3            EQUALS          1/ATEM1         +19D
AXDSTEM         EQUALS          1/ATEM1         +20D

FLATEMP         EQUALS          1/ATEM1         +22D
Z3TEM           EQUALS          1/ATEM1         +23D    # MUST FOLLOW FLATEMP

## Page 1494
DBVAL1          EQUALS          DB
DBVAL2          EQUALS          INTB15+
DBVAL3          EQUALS          INTB15+         +1

DRIFTER         EQUALS          INTB15+         +2

UV              EQUALS          MPAC
ANET            EQUALS          MPAC            +3
FUNTEM          EQUALS          MPAC            +3
1/ANET          EQUALS          MPAC            +4
ARET            EQUALS          MPAC            +5
ABSAOS          EQUALS          MPAC            +6
SIGNAOS         EQUALS          MPAC            +7
-SIGNAOS        EQUALS          MPAC            +8D
HOLD            EQUALS          MPAC            +9D
ACCRETRN        EQUALS          FIXLOC          -1


ZONE3MAX        DEC             .004375                 # 17.5 MS (35 MS FOR 1 JET) AT 4 SECONDS
FLATVAL         DEC             .01778                  # .8 AT PI/4 RAD
-.03R/S2        OCT             77377                   #  -PI/2(7) AT PI/2

.023R/S2        OCT             00356                   # .0228 RAD/SEC(2) AT PI/2
1/.03           EQUALS          POSMAX                  #  2(7)/PI AT 2(7)/PI

PAXISADR        GENADR          PAXIS


                                                        # THE FOLLOWING 4 CONSTANTS ARE JET
                                                        # FAILURE MASKS AND ARE INDEXED
-UMASK          OCT             00110                   # -U
                OCT             00022                   # -V
+UMASK          OCT             00204                   # +U
                OCT             00041                   # +V

back to top