Raw File
LUNAR_LANDING_GUIDANCE_EQUATIONS.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    LUNAR_LANDING_GUIDANCE_EQUATIONS.agc
## Purpose:     A section of a reconstructed, mixed version of Sundance
##              It is part of the reconstructed source code for the Lunar
##              Module's (LM) Apollo Guidance Computer (AGC) for Apollo 9.
##              No original listings of this program are available;
##              instead, this file was created via disassembly of dumps
##              of various revisions of Sundance core rope modules.
## Assembler:   yaYUL
## Contact:     Ron Burkey <info@sandroid.org>.
## Website:     www.ibiblio.org/apollo/index.html
## Mod history: 2020-06-17 MAS  Created from Luminary 69.
##              2021-05-30 ABS  DEC -> DEC* for extended address fields.

## Sundance 292

                EBANK=          E2DPS

                COUNT*          $$/F2DPS

# ****************************************************************************************************************
# LUNAR LANDING FLIGHT SEQUENCE TABLES
# ****************************************************************************************************************

# FLIGHT SEQUENCE TABLES ARE ARRANGED BY PHASE.   THEY ARE REFERENCED USING AS AN INDEX THE REGISTER WCHPHASE:
#                                                  WCHPHASE  -1  --->  DISPLAY ROUTINES
#                                                  WCHPHASE  +0  --->  ROUTINE FOR STARTING NEW GUIDANCE PHASES
#                                                  WCHPHASE  +1  --->  GUIDANCE EQUATIONS
#                                                  WCHPHASE  +2  --->  WINDOW VECTOR COMPUTATIONS
#                                                  WCHPHASE  +3  --->  EXIT CRITERION
#                                                  WCHPHASE  +4  --->  POST GUIDANCE EQUATION COMPUTATIONS
#                                                  WCHPHASE  +5  --->  INDICES FOR REFERENCING TARGET PARAMETERS
#                                                  WCHPHASE  +6  --->  AUGMENT FOR TTF/8

# ***************************************************************************************************************

# IGNITION ALGORITHM:
                                                        # -1  NO DISPLAYS
IGNALG          TCF             TTFINCR                 # +0
                TCF             TTF/8CL                 # +1
                TCF             EXGSUB                  # +2
                DEC             0                       # +3
                TCF             CGCALC                  # +4
                OCT             0                       # +5
                DEC             108 E2 B-17             # +6


# BRAKING QUADRATIC:
                TCF             P63DISPS                # -1
BRAKQUAD        TCF             TTFINCR                 # +0
                TCF             TTF/8CL                 # +1
                TCF             EXBRAK                  # +2
                DEC             -20 E2 B-17             # +3
                TCF             CGCALC                  # +4
                OCT             0                       # +5
                DEC             0                       # +6

# BRAKING LINEAR:
                TCF             P63DISPS                # -1
BRAKLING        TCF             LINSET                  # +0
                TCF             LINGUID                 # +1
                TCF             EXBRAK                  # +2
                DEC             -2 E2 B-17              # +3
                TCF             RGVGCALC                # +4
                OCT             0                       # +5
                DEC             0                       # +6

# APPROACH QUADRATIC:
                TCF             P64DISPS                # -1
APPRQUAD        TCF             STARTP64                # +0
                TCF             TTF/8CL                 # +1
                TCF             EXNORM                  # +2
                DEC             -10 E2 B-17             # +3
                TCF             REDESIG                 # +4
                OCT             30                      # +5
                DEC             -158 E2 B-17            # +6

# APPROACH LINEAR:
                TCF             P64DISPS                # -1
APPRLING        TCF             LINSET                  # +0
                TCF             LINGUID                 # +1
                TCF             EXNORM                  # +2
                DEC             -2 E2 B-17              # +3
                TCF             RGVGCALC                # +4
                OCT             30                      # +5
                DEC             0                       # +6

# VERTICAL:
                TCF             VERTDISP                # -1
VERTICAL        TCF             P65START                # +0
                TCF             VERTGUID                # +1
                TCF             EXVERT                  # +2
                OCT             37777                   # +3
                TCF             RGVGCALC                # +4

# ****************************************************************************************************************
# ENTRY POINTS:   ?GUIDSUB FOR THE IGNITION ALGORITHM, LUNLAND FOR SERVOUT
# ****************************************************************************************************************

# IGNITION ALGORITHM ENTRY:  DELIVERS N PASSES OF QUADRATIC QUIDANCE

?GUIDSUB        EXIT
                CAF             ONE                     # N = 2
GUIDSUB         TS              NGUIDSUB
                TCF             GUILDRET


# NORMAL ENTRY:  CONTROL COMES HERE FROM SERVOUT

LUNLAND         TC              2PHSCHNG
                OCT             00035                   # GROUP 5:  RETAIN ONLY PIPA TASK
                OCT             05022                   # GROUP 2:  PROTECT GUIDANCE WITH PRIO 21
                OCT             21000                   #       JUST HIGHER THAN SERVICER'S PRIORITY

                TC              GUILDEN

# ****************************************************************************************************************
# INITIALIZATION FOR THIS PASS
# ****************************************************************************************************************

                COUNT*          $$/F2DPS

GUILDRET        INDEX           WCHPHASE
                CA              5
                TS              TARGTDEX
                COM
                INDEX           FIXLOC
                TS              X1

                EXTEND
                DCA             TPIP
                DXCH            TPIPOLD

                TC              FASTCHNG

                EXTEND
                DCA             PIPTIME
                DXCH            TPIP

                EXTEND
                DCA             TTF/8
                DXCH            TTF/8TMP

                CCS             FLPASS0
                TCF             TTFINCR

BRSPOT1         INDEX           WCHPHASE
                CA              6
                ADS             TTF/8TMP
                INDEX           WCHPHASE
                TCF             0

# ****************************************************************************************************************
# ROUTINES TO START NEW PHASES
# ****************************************************************************************************************

P65START        TC              NEWMODEX
                DEC             65
                CS              TWO
                TS              WCHVERT
                TC              DOWNFLAG                # PERMIT X-AXIS OVERRIDE
                CADR            XOVINFLG

                TCF             TTFINCR


STARTP64        TC              NEWMODEX
                DEC             64
                CA              BIT12                   # ENABLE RUPT10
                EXTEND
                WOR             CHAN13
                TC              DOWNFLAG                # INITIALIZE REDESIGNATION FLAG
                ADRES           REDFLAG
                TCF             TTFINCR

# ****************************************************************************************************************
# SET LINEAR GUIDANCE COEFFICIENTS
# ****************************************************************************************************************

LINSET          TC              INTPRET
                VLOAD           VSU*                    # -        -     -
                                ACG                     # JLING = (ACG - ADG)/TTF
                                ADG,1
                V/SC
                                TTF/8TMP                # TTF/8 NOT YET UPDATED
                STORE           JLING                   # JLING IS IN UMITS OF 2(-18) M/CS/CS/CS
                EXIT

#                                             (CONTINUE TO TTFINCR)

# ****************************************************************************************************************
# INCREMENT TTF/8, UPDATE LAND FOR LUNAR ROTATION, DO OTHER USEFUL THINGS
# ****************************************************************************************************************
#
#            TTFINCR COMPUTATIONS ARE AS FOLLOWS:-

#                      TTF/8 UPDATED FOR TIME SINCE LAST PASS:

#                                 TTF/8 = TTF/8 + (TPIP - TPIPOLD)/8

#                      LANDING SITE VECTOR UPDATED FOR LUNAR ROTATION:

#                                 -                  -      -                      -
#                                 LAND = /LAND/ UNIT(LAND - LAND(TPIP - TPIPOLD) * WM)

#                      SLANT RANGE TO LANDING SITE, FOR DISPLAY:

#                                                  -      -
#                                 RANGEDSP = ABVAL(LAND - R)

TTFINCR         TC              INTPRET
                DLOAD           DSU
                                TPIP
                                TPIPOLD
                SLR             PUSH                    # SHIFT SCALES DELTA TIME TO 2(17) CSECS
                                11D
                VXSC            VXV
                                LAND
                                WM
                BVSU            RTB
                                LAND
                                NORMUNIT
                VXSC            VSL1
                                /LAND/
                STORE           LANDTEMP
                VSU             ABVAL
                                R
                STORE           RANGEDSP
                VLOAD           VXV
                                R
                                WM
                VAD             VSR2                    # RESCALE TO UNITS OF 2(9) M/CS
                                V
                STODL           ANGTERM
                EXIT

                DXCH            MPAC
                DAS             TTF/8TMP                # NOW HAVE INCREMENTED TTF/8 IN TTF/8TMP

                TC              FASTCHNG

                EXTEND
                DCA             TTF/8TMP
                DXCH            TTF/8

                EXTEND
                DCA             LANDTEMP
                DXCH            LAND
                EXTEND
                DCA             LANDTEMP        +2
                DXCH            LAND            +2
                EXTEND
                DCA             LANDTEMP        +4
                DXCH            LAND            +4

                TC              TDISPSET

BRSPOT2         INDEX           WCHPHASE
                TCF             4

# ****************************************************************************************************************
# LANDING SITE PERTURBATION EQUATIONS
# ****************************************************************************************************************

REDESIG         TC              FASTCHNG
                CA              FLAGWRD6                # IS REDFLAG SET?
                MASK            REDFLBIT
                CCS             A
                TCF             +3
                TS              ELINCR1
                TS              AZINCR1

                CA              TREDES                  # YES:  HAS TREDES REACHED ZERO?
                EXTEND
                BZF             CGCALC                  # YES:  SKIP REDESIGNATION LOGIC

                INHINT
                CA              ELINCR1
                TS              ELINCR
                CA              AZINCR1
                TS              AZINCR
                TC              FASTCHNG

                CA              ZERO
                TS              ELINCR1
                TS              AZINCR1
                RELINT
                TS              ELINCR          +1
                TS              AZINCR          +1

                TC              INTPRET
                SETPD           VLOAD
                                0
                                LAND
                VSU             RTB                     #                 -      -
                                R                       # PUSH DOWN UNIT (LAND - R)
                                NORMUNIT
                MXV             VSL1
                                XNBPIP
                STODL           20D
                                20D
                DMP             BDSU
                                ELINCR
                                24D
                PDDL            VSR1
                                AZINCR
                DAD             PDDL
                                22D
                                24D
                DMP             DAD
                                ELINCR
                                20D
                VDEF            VXM
                                XNBPIP
                PUSH            DLOAD
                                0
                DSU
                                DEPRCRIT
                BMN             DLOAD
                                REDES1
                                DEPRCRIT
                STORE           0
REDES1          DLOAD           DSU
                                LAND
                                R
                DDV             VXSC
                                0
                VAD             UNIT
                                R
                VXSC            VSL1
                                /LAND/
                STORE           LANDTEMP
                VSU             RTB
                                R
                                NORMUNIT
                DOT             SL1
                                XNBPIP
                VCOMP           ASIN
                EXIT                                    # LOOKANGL WILL BE COMPUTED AT RGVGCALC

                CAF             360DEGS
                TC              SHORTMP

                CAF             BIT14
                TS              L
                CAF             ZERO
                DAS             MPAC
                DXCH            MPAC
                TC              ALSIGNAG
                TS              GEFF

                TC              FASTCHNG

                EXTEND
                DCA             LANDTEMP
                DXCH            LAND
                EXTEND
                DCA             LANDTEMP        +2
                DXCH            LAND            +2
                EXTEND
                DCA             LANDTEMP        +4
                DXCH            LAND            +4

# ***************************************************************************************************************
# ERECT GUIDANCE-STABLE MEMBER TRANSFORMATION MATRIX
# ***************************************************************************************************************

CGCALC          TC              INTPRET
                VLOAD           UNIT
                                LAND

                STOVL           CG                      # FIRST ROW
                                ANGTERM
                VXSC            VAD                     # REMEMBER THAT ANGTERM IS DOUBLE-SIZED
                                TTF/8
                                LAND
                VSU             RTB
                                R
                                NORMUNIT
                VXV             RTB
                                LAND
                                NORMUNIT
                STOVL           CG              +6      # SECOND ROW
                                CG
                VXV             VSL1
                                CG              +6
                STORE           CG              +14
                EXIT


# ****************************************************************************************************************
# COMPUTE STATE IN GUIDANCE COORDINATES
# ****************************************************************************************************************

#            RGVGCALC COMPUTATIONS ARE AS FOLLOWS:-

#                     VELOCITY RELATIVE TO THE SURFACE:

#                                 -         -   -   -
#                                 ANGTERM = V + R * WM

#                     STATE IN GUIDANCE COORDINATES:

#                                 -     *   -   -
#                                 RGU = CG (R - LAND)

#                                 -     *   -   -    -
#                                 VGU = CG (V - WM * R)

#                     HORIZONTAL VELOCITY FOR DISPLAY:

#                                 VHORIZ = 8 ABVAL (0, VG , VG )
#                                                        2    1

#                     DEPRESSION ANGLE FOR DISPLAY:

#                                                        -   -     -
#                                 LOOKANGL = ARCSIN(UNIT(R - LAND).XMBPIP)

RGVGCALC        TC              INTPRET                 # ENTER HERE TO RECOMPUTE RG AND VG
                VLOAD           VSU
                                R                       #           -   -
                                LAND                    # PUSH DOWN R - LAND
                MXV             VSL1
                                CG
                STOVL           RGU
                                ANGTERM
                MXV
                                CG                      # NO SHIFT SINCE ANGTERM IS DOUBLE SIZED
                STORE           VGU
                PDDL            VDEF                    # FORM (0,VG ,VG ) IN UNITS OF 2(10) M/CS
                                ZEROVECS                #           2   1
                ABVAL           SL3
                STODL           VHORIZ                  # VHORIZ FOR DISPLAY DURING P65, P66, P67
                EXIT

BRSPOT3         INDEX           WCHPHASE
                TCF             1

#****************************************************************************************************************
# LINEAR GUIDANCE EQUATION
#****************************************************************************************************************

LINGUID         TC              INTPRET
                VLOAD           VXSC                    # -     -     -
                                JLING                   # ACG = ADG + JLING TTF
                                TTF/8
                VAD*            GOTO
                                ADG,1
                                AFCCALC         +2

#****************************************************************************************************************
# TTF/4 COMPUTATION
#****************************************************************************************************************

TTF/8CL         EXTEND
                INDEX           TARGTDEX
                DCA             JDG2TTF                 # A(3) = 8 JDG  TO TABLTTF
                DXCH            TABLTTF         +6      #             2
                EXTEND
                INDEX           TARGTDEX
                DCA             ADG2TTF                 # A(2) = 6 ADG  TO TABLTTF
                DXCH            TABLTTF         +4      #             2
                EXTEND
                DCA             VGU             +4
                DXCH            MPAC
                CAF             3/4DP
                TC              SHORTMP
                EXTEND
                INDEX           TARGTDEX
                DCA             VDG2TTF
                DAS             MPAC
                DXCH            MPAC                    # A(1) = (6 VGU  + 18 VDG )/8 TO TABLTTF
                DXCH            TABLTTF         +2      #              2         2
                EXTEND
                DCS             RGU             +4
                DXCH            MPAC
                EXTEND
                INDEX           TARGTDEX
                DCA             RDG             +4
                DAS             MPAC
                CAF             3/8
                TC              SHORTMP
                DXCH            MPAC                    # A(0) = -24 (RGU  - RDG )/64 TO TABLTTF
                DXCH            TABLTTF                 #                2      2

                CA              BIT8
                TS              TABLTTF         +10     # FRACTIONAL PRECISION FOR TTF TO TABLE

                EXTEND
                DCA             TTF/8
                DXCH            MPAC                    # LOADS TTF/8 (INITIAL GUESS) INTO MPAC
                EXTEND
                DCA             TABLTTFL
                TC              ROOTPSRS                # YIELDS TTF/8 IN MPAC

                EXTEND
                DCA             MPAC                    # FETCH TTF/8 KEEPING IT IN MPAC
                DXCH            TTF/8                   # CORRECTED TTF/8

                TC              TDISPSET

#                                              (CONTINUE TO QUADGUID)

# ****************************************************************************************************************
# MAIN GUIDANCE EQUATION
# ****************************************************************************************************************

#                      AS PUBLISHED:-

#                                               -     -        -     -
#                                 -     -     6(VDG + VG)   12(RDG - RG)
#                                 ACG = ADG + ----------- + ------------
#                                                 TTF         (TTF)(TTF)

#                      AS HERE PROGRAMMED:-

#                                             -     -
#                                      3 (1/4(RDG - RG)   -     - )
#                                      - (------------- + VDG + VG)
#                                -     4 (    TTF/8               )   -
#                                ACG = ---------------------------- + ADG
#                                                 TTF/8

QUADGUID        TC              INTPRET
                VLOAD*          VSU
                                RDG,1
                                RGU
                V/SC            VSR2
                                TTF/8
                VAD*            VAD
                                VDG,1
                                VGU
                V/SC            VXSC
                                TTF/8
                                3/4DP
AFCCALC         VAD*
                                ADG,1                   # CURRENT TARGET ACCELERATION
                STORE           ACG
AFCCALC1        VXM             VSL1                    # VERTGUID COMES HERE
                                CG
                PDVL            V/SC
                                GDT/2
                                GSCALE
                BVSU            STADR
                STORE           UNFC/2                  # UNFC/2 NEED NOT BE UNITIZED
                ABVAL
AFCCALC2        STORE           /AFC/                   # MAGNITUDE OF AFC FOR THROTTLE
                EXIT
                TC              FASTCHNG

                INCR            FLPASS0                 # INCREMENT PASS COUNTER

#                                             (CONTINUE TO EXTLOGIC)

# ****************************************************************************************************************
# PREPARE TO EXIT
# ****************************************************************************************************************

# DECIDE (1) HOW TO EXIT, AND (2) WHETHER TO SWITCH PHASES

EXTLOGIC        INDEX           WCHPHASE
                CS              3
                AD              TTF/8
                EXTEND
                INDEX           WCHPHASE
                BZMF            2

                CA              WCHPHASE                # PREPARE FOR PHASE SWITCHING LOGIC
                TS              WCHPHOLD

                TC              FASTCHNG

                CA              WCHPHOLD
                AD              BIT4
                ZL                                      # +0
                DXCH            WCHPHASE                # ADVANCING WCHPHASE AND RESETTING FLPASS0
                INDEX           WCHPHOLD
                TCF             2

# ****************************************************************************************************************
# ROUTINES FOR EXITING FROM LANDING GUIDANCE

# ****************************************************************************************************************

# 1.        EXGSUB IS THE RETURN WHEN GUIDSUB IS CALLED BY THE IGNITION ALGORITHM.

# 2.        EXBRAK IN THE EXIT USED DURING THE BRAKING PHASE.   IN THIS CASE UNIT(R) IS THE WINDOW POINTING VECTOR.

# 3.        EXNORM IS THE EXIT USED AT OTHER TIMES DURING THE BURN.

#          (EXOVFLOW IS A SUBROUTINE OF EXBRAK AND EXNORM CALLED WHEN OVERFLOW OCCURRED ANYWHERE IN GUIDANCE.)

EXGSUB          CCS             NGUIDSUB
                TCF             GUIDSUB
                INCR            NIGNLOOP
                CS              BIT5
                AD              NIGNLOOP
                EXTEND
                BZMF            +3
                TC              ALARM
                OCT             01412

 +3             TC              INTPRET
                GOTO            
                                DDUMCALC

EXBRAK          TC              INTPRET
                VLOAD           GOTO
                                UNIT/R/
                                STEER?

EXNORM          TC              INTPRET
                VLOAD           VSU
                                LAND
                                R
                RTB
                                NORMUNIT
                STORE           20D                     # UNIT(LAND - R) IS TENTATIVE CHOICE
                VXV             DOT
                                XNBPIP
                                CG              +6
                STORE           18D                     # PROJ 1/8 REAL SIZE
                DSU             BMN
                                PROJMAX
                                +4
                VLOAD           GOTO
                                20D
                                STEER?
                DLOAD
                                18D
                DSU             BPL
                                PROJMIN
                                +4
                VLOAD           GOTO
                                CG              +12D
                                STEER?
                DLOAD           DSU
                                18D
                                PROJMAX
                VXSC            PDDL
                                CG              +12D
                                18D
                DSU             VXSC
                                PROJMIN
                                20D
                VSU
                V/SC
                                PROJDIV

STEER?          STORE           UNWC/2
                BOFF            EXIT                    # IF STEERSW DOWN NO OUTPUTS
                                STEERSW
                                DISPEXIT        -1

EXVERT          CA              OVFIND                  # IF OVERFLOW ANYWHERE IN GUIDANCE
                EXTEND                                  #   DON'T CALL THROTTLE OR FINDCDUW
                BZF             +4

EXOVFLOW        TC              ALARM                   # SOUND THE ALARM NON-ABORTIVELY.
                OCT             01410

                TCF             DISPEXIT

GDUMP1          TC              THROTTLE
                TC              INTPRET
                CALL
                                FINDCDUW        -2
                EXIT

#                                                   (CONTINUE TO DISPEXIT)


# ****************************************************************************************************************
# GUIDANCE LOOP DISPLAYS
# ****************************************************************************************************************

DISPEXIT        EXTEND                                  # KILL GROUP 2:  DISPLAYS WILL BE
                DCA             NEG0                    #   RESTORED BY NEXT GUIDANCE CYCLE
                DXCH            -PHASE2

                CS              FLAGWRD8                # IF FLUNDISP SET, NO DISPLAY THIS PASS
                MASK            FLUNDBIT
                EXTEND
                BZF             ENDLLJOB                # TO PICK UP THE TAG

                INDEX           WCHPHASE
                TCF             0 -1

P63DISPS        CAF             V06N63
DISPCOMN        TC              BANKCALL
                CADR            GODSPR

ENDLLJOB        TCF             ENDOFJOB

P64DISPS        CS              FLAGWRD6                # NO:   IS REDFLAG SET?
                MASK            REDFLBIT
                EXTEND
                BZF             REDES-OK                # YES:  DO STATIC DISPLAY

                CAF             V06N64                  # OTHERWISE USE FLASHING DISPLAY
                TC              BANKCALL

                CADR            REFLASHR
                TCF             GOTOPOOH                # TERMINATE
                TCF             P64CEED                 # PROCEED    PERMIT REDESIGNATIONS
                TCF             P64DISPS                # RECYCLE

                TCF             ENDLLJOB                # TO PICK UP THE TAG

P64CEED         CAF             ZERO
                TS              ELINCR1
                TS              AZINCR1

                TC              UPFLAG                  # ENABLE REDESIGNATION LOGIC
                ADRES           REDFLAG

                TCF             ENDOFJOB

REDES-OK        CAF             V06N64
                TCF             DISPCOMN


VERTDISP        CAF             FOUR
                TC              BANKCALL
                CADR            ALTCHK
                TCF             VERTDSP2

                CAF             V06N60
                TC              BANKCALL
                CADR            REFLASHR
                TCF             GOTOPOOH
                TCF             LANDJUNK
                TCF             VERTDISP

                TCF             ENDLLJOB

VERTDSP2        CAF             V06N60
                TCF             DISPCOMN

# ****************************************************************************************************************
# GUIDANCE FOR VERTICAL DESCENT
# ****************************************************************************************************************

VERTGUID        CCS             WCHVERT
                TCF             DISPEXIT                # POSITIVE   P67, WHICH SKIPS ALL GUIDANCE
                TCF             P66VERT                 # +0

#          THE P65 GUIDANCE EQUATION IS AS FOLLOWS:-

#                           -         -
#                     -     VDGVERT - VGU	   -
#                     ACG = -------------  , WHERE VDGVERT = (-3FPS,0,0)
#                              TAUVERT

P65VERT         EXTEND                                  # NEGATIVE
                DCS             +3FPS
                DXCH            VDGVERT
                TC              INTPRET
                VLOAD           PDDL
                                ZEROVECS
                                VDGVERT
                VDEF            VSU                     # FORM (VDGVERT,0,0), LEAVING DP 0 IN PDL
                                VGU

                V/SC            GOTO
                                TAUVERT
                                AFCCALC1


#          THE R.O.D. EQUATION IS AS FOLLOWS:-

#                            (VDGVERTX - VGUX)/TAUVERT - GMOON
#                    /AFC/ = ---------------------------------
#                                      UNIT/R/ . XNB

P66VERT         XCH             RODCOUNT                # RESTART COULD CAUSE RODCOUNTS TO BE LOST
                EXTEND
                MP              +1FPS
                DAS             VDGVERT
                TC              FASTCHNG
                TC              INTPRET
                DLOAD           DSU
                                VDGVERT
                                VGU
                DDV             DSU
                                TAUROD
                                MOONG
                PDVL            DOT                     # HAVE ACC IN UNITS OF 2(-2) M/CS/CS
                                XNBPIP
                                UNIT/R/
                BDDV            STADR
                STORE           /AFC/
                BOVB            EXIT
                                EXOVFLOW
                TC              THROTTLE
                TCF             DISPEXIT


# ****************************************************************************************************************
# REDESIGNATOR TRAP
# ****************************************************************************************************************

                BANK            21
                SETLOC          F2DPS*21
                BANK

                COUNT*          $$/F2DPS

PITFALL         XCH             BANKRUPT
                EXTEND
                QXCH            QRUPT

                TC              CHECKMM         # IF NOT IN P64, NO REASON TO CONTINUE
                DEC             64

                TCF             RESUME

                EXTEND
                READ            CHAN31
                COM
                MASK            ALL4BITS
                TS              ELVIRA
                CAF             TWO
                TS              ZERLINA
                CAF             FIVE
                TC              TWIDDLE
                ADRES           REDESMON
                TCF             RESUME

## Sundance 302

# REDESIGNATION MONITOR (INITIATED BY PITFALL)


PREMON1         TS              ZERLINA
PREMON2         CAF             SEVEN
                TC              VARDELAY
REDESMON        EXTEND
                READ            31
                COM
                MASK            ALL4BITS
                XCH             ELVIRA
                TS              L
                CCS             ELVIRA                  # DO ANY BITS APPEAR THIS PASS?
                TCF             PREMON2                 #   Y: CONTINUE MONITOR

                CCS             L                       #   N: ANY LAST PASS?
                TCF             COUNT'EM                #      Y: COUNT 'EM, RESET RUPT, TERMINATE
                CCS             ZERLINA                 #      N: HAS ZERLINA REACHED ZERO YET?
                TCF             PREMON1                 #         N: DIMINISH ZERLINA, CONTINUE
RESETRPT        CAF             BIT12                   #         Y: RESET RUPT, TERMINATE
                EXTEND
                WOR             CHAN13
                TCF             TASKOVER

COUNT'EM        CA              L
                MASK            -AZBIT
                CCS             A
-AZ             CS              AZEACH
                ADS             AZINCR1
                CA              L
                MASK            +AZBIT
                CCS             A
+AZ             CA              AZEACH
                ADS             AZINCR1
                CA              L

                MASK            -ELBIT
                CCS             A
-EL             CS              ELEACH
                ADS             ELINCR1
                CA              L
                MASK            +ELBIT
                CCS             A
+EL             CA              ELEACH
                ADS             ELINCR1
                TCF             RESETRPT


# THESE EQUIVALENCIES ARE BASED ON GSOP CHAPTER 4, REVISION 16 OF P64LM

+ELBIT          =               BIT2                    # -PITCH


-ELBIT          =               BIT1                    # +PITCH


+AZBIT          =               BIT5


-AZBIT          =               BIT6

ALL4BITS        OCT             00063


AZEACH          DEC             .03491                  # 2 DEGREES


ELEACH          DEC             .00873                  # 1/2 DEGREE


# ****************************************************************************************************************
# R.O.D. TRAP
# ************************************************************************

                BANK            21
                SETLOC          RODTRAP
                BANK
                COUNT*          $$/F2DPS                # ****************************************

DESCBITS        MASK            BIT7                    # COME HERE FROM MARKRUPT CODING WITH BIT
                CCS             A                       #   7 OR 6 OF CHANNEL 16 IN A: BIT 7 MEANS
                CS              TWO                     #   - RATE INCREMENT, BIT 6 + INCREMENT
                AD              ONE
                ADS             RODCOUNT

                TCF             RESUME                  # TRAP IS RESET WHEN SWITCH IS RELEASED

## Sundance 292


                BANK            31
                SETLOC          F2DPS*31
                BANK

                COUNT*          $$/F2DPS

# ****************************************************************************************************************
# DOUBLE PRECISION ROOT FINDER SUBROUTINE (BY ALLAN KLUMPP)
# ****************************************************************************************************************

#                                                         N        N-1
#          ROOTPSRS FINDS ONE ROOT OF THE POWER SERIES A X  + A   X    + ... + A X + A
#                                                       N      N-1              1     0

# USING NEWTON'S METHOD STARTING WITH AN INITIAL GUESS FOR THE ROOT.  THE ENTERING DATA MUST BE AS FOLLOWS:

#                                         A        SP     LOC-3            ADRES FOR REFERENCING PWR COF TABL
#                                         L        SP     N-1              N IS THE DEGREE OF THE POWER SERIES
#                                         MPAC     DP     X                INITIAL GUESS FOR ROOT

#                                         LOC-2N   DP     A(0)
#                                                  ...
#                                         LOC      DP     A(N)
#                                         LOC+2    SP     PRECROOT         PREC RQD OF ROOT (AS FRACT OF 1ST GUESS)

# THE DP RESULT IS LEFT IN MPAC UPON EXIT, AND A SP COUNT OF THE ITERATIONS TO CONVERGENCE IS LEFT IN MPAC+2.
# RETURN IS NORMALLY TO LOC(TC ROOTPSRS)+3.   IF ROOTPSRS FAILS TO CONVERGE IN 32 PASSES, RETURN IS TO LOC+1 AND
# OUTPUTS ARE NOT TO BE TRUSTED.

#          PRECAUTION: ROOTPSRS MAKES NO CHECKS FOR OVERFLOW OR FOR IMPROPER USAGE. IMPROPER USAGE COULD
# PRECLUDE CONVERGENCE OR REQUIRE EXCESSIVE ITERATIONS. AS A SPECIFIC EXAMPLE, ROOTPSRS FORMS A DERIVATIVE
# COEFFICIENT TABLE BY MULTIPLYING EACH A(I) BY I, WHERE I RANGES FROM 1 TO N. IF AN ELEMENT OF THE DERIVATIVE
# COEFFICIENT TABLE = 1 OR > 1 IN MAGNITUDE, ONLY THE EXCESS IS RETAINED. ROOTPSRS MAY CONVERGE ON THE CORRECT
# ROOT NONETHELESS, BUT IT MAY TAKE AN EXCESSIVE NUMBER OF ITERATIONS. THEREFORE THE USER SHOULD RECOGNIZE:

# 1. USER'S RESPONSIBILITY TO ASSURE THAT I X A(I) < 1 IN MAGNITUDE FOR ALL I.

# 2. USER'S RESPONSIBILITY TO ASSURE OVERFLOW WILL NOT OCCUR IN EVALUATING EITHER THE RESIDUAL OR THE DERIVATIVE
#    POWER SERIES.   THIS OVERFLOW WOULD BE PRODUCED BY SUBROUTINE POWRSERS, CALLED BY ROOTPSRS, AND MIGHT NOT
#    PRECLUDE EVENTUAL CONVERGENCE.

# 3. AT PRESENT, ERASABLE LOCATIONS ARE RESERVED ONLY FOR N UP TO 5.  AN N IN EXCESS OF 5 WILL PRODUCE CHAOS.
#    ALL ERASABLES USED BY ROOTPSRS ARE UNSWITCHED LOCATED IN THE REGION FROM MPAC-33 OCT TO MPAC+7.

# 4. THE ITERATION COUNT RETURNED IN MPAC+2 MAY BE USED TO DETECT ABNORMAL PERFORMANCE.

#                                                                         STORE ENTERING DATA, INITLIZE ERASABLES

ROOTPSRS        EXTEND
                QXCH            RETROOT                 # RETURN ADRES
                TS              PWRPTR                  # PWR TABL POINTER
                DXCH            MPAC            +3      # PWR TABL ADRES, N-1
                CA              DERTABLL
                TS              DERPTR                  # DER TABL POINTER
                TS              MPAC            +5      # DER TABL ADRES
                CCS             MPAC            +4      # NO POWER SERIES OF DEGREE 1 OR LESS
                TS              MPAC            +6      # N-2
                CA              ZERO                    # MODE USED AS ITERATION COUNTER. MODE
                TS              MODE                    # MUST BE POS SO ABS WON'T COMP MPAC+3 ETC

                                                        # COMPUTE CRITERION TO STOP ITERATING

                EXTEND
                DCA             MPAC                    # FETCH ROOT GUESS, KEEPING IT IN MPAC
                DXCH            ROOTPS                  # AND IN ROOTPS
                INDEX           MPAC            +3      # PWR TABL ADRES
                CA              5                       # PRECROOT TO A
                TC              SHORTMP                 # YIELDS DP PRODUCT IN MPAC
                TC              USPRCADR
                CADR            ABS                     # YIELDS ABVAL OF CRITERION ON DX IN MPAC
                DXCH            MPAC
                DXCH            DXCRIT                  # CRITERION

                                                        # SET UP DER COF TABL

                EXTEND
                INDEX           PWRPTR
                DCA             3
                DXCH            MPAC                    # A(N) TO MPAC

                CA              MPAC            +4      # N-1 TO A

DERCLOOP        TS              PWRCNT                  # LOOP COUNTER
                AD              ONE
                TC              DMPNSUB                 # YIELDS DERCOF = I X A(I) IN MPAC
                EXTEND
                INDEX           PWRPTR
                DCA             1
                DXCH            MPAC                    # A(I-1) TO MPAC, FETCHING DERCOF
                INDEX           DERPTR
                DXCH            3                       # DERCOF TO DER TABL
                CS              TWO
                ADS             PWRPTR                  # DECREMENT PWR POINTER
                CS              TWO
                ADS             DERPTR                  # DECREMENT DER POINTER
                CCS             PWRCNT
                TCF             DERCLOOP


                                                        # CONVERGE ON ROOT

ROOTLOOP        EXTEND
                DCA             ROOTPS                  # FETCH CURRENT ROOT
                DXCH            MPAC                    # LEAVE IN MPAC
                EXTEND
                DCA             MPAC            +5      # LOAD A, L WITH DER TABL ADRES, N-2
                TC              POWRSERS                # YIELDS DERIVATIVE IN MPAC

                EXTEND
                DCA             ROOTPS
                DXCH            MPAC                    # CURRENT ROOT TO MPAC, FETCHING DERIVTIVE
                DXCH            BUF                     # LEAVE DERIVATIVE IN BUF AS DIVISOR
                EXTEND
                DCA             MPAC            +3      # LOAD A, L WITH PWR TABL ADRES, N-1
                TC              POWRSERS                # YIELDS RESIDUAL IN MPAC

                TC              USPRCADR
                CADR            DDV/BDDV                # YIELDS -DX IN MPAC

                EXTEND
                DCS             MPAC                    # FETCH DX, LEAVING -DX IN MPAC
                DAS             ROOTPS                  # CORRECTED ROOT NOW IN ROOTPS

                TC              USPRCADR
                CADR            ABS                     # YIELDS ABS(DX) IN MPAC
                EXTEND
                DCS             DXCRIT
                DAS             MPAC                    # ABS(DX)-ABS(DXCRIT) IN MPAC

                INCR            MODE                    # INCREMENT ITERATION COUNTER

                CCS             MPAC                    # TEST HI ORDER DX
                TCF             ROOTLOOP
                TCF             TESTLODX
                TCF             ROOTSTOR
TESTLODX        CCS             MPAC            +1      # TEST LO ORDER DX
                TCF             ROOTLOOP
                TCF             ROOTSTOR
                TCF             ROOTSTOR
ROOTSTOR        DXCH            ROOTPS
                DXCH            MPAC
                CA              MODE
                TS              MPAC            +2      # STORE SP ITERATION COUNT IN MPAC+2
                TC              RETROOT


DERTABLL        ADRES           DERCOFN         -3

# ****************************************************************************************************************
# TRASHY LITTLE SUBROUTINES
# ****************************************************************************************************************

TDISPSET        CA              TTF/8
                EXTEND
                MP              TSCALINV
                DXCH            TTFDISP

                CA              TTF/8
                EXTEND
                MP              SCTTFDSP
                TS              L
                AD              99+LINT
                EXTEND
                BZMF            +11
                CS              L
                AD              -LINT
                EXTEND
                BZMF            +3
                TS              TREDES
                TC              Q

                CA              ZERO
                TCF             -3

                CA              99+LINT
                TCF             -10


# ****************************************************************************************************************
# SPECIALIZED "PHASCHNG" SUBROUTINE
# ****************************************************************************************************************

                EBANK=          PHSNAME2
FASTCHNG        CA              EBANK3                  # SPECIALIZED 'PHASCHNG' ROUTINE
                XCH             EBANK
                DXCH            L
                TS              PHSNAME2
                LXCH            EBANK

                EBANK=          E2DPS
                TC              A


# ****************************************************************************************************************
# PARAMETER TABLE INDIRECT ADDRESSES
# ****************************************************************************************************************

RDG             =               RBRFG
VDG             =               VBRFG
ADG             =               ABRFG
VDG2TTF         =               VBRFG*
ADG2TTF         =               ABRFG*
JDG2TTF         =               JBRFG*

# ****************************************************************************************************************
# LUNAR LANDING CONSTANTS
# ***************************************************************************************************************

#          LUNAR LANDING TARGET PARAMETERS
#
ABRFG           2DEC*           -3.43285501     E-5 B+4*
                2DEC*           +0.00000000     E+0 B+4*
                2DEC*           -2.74418853     E-4 B+4*

RBRFG           2DEC*           +3.12375000     E+3 B-24*
                2DEC*           +0.00000000     E+0 B-24*
                2DEC*           -1.07834375     E+4 B-24*

VBRFG           2DEC*           -4.92340088     E-1 B-10*
                2DEC*           +0.00000000     E+0 B-10*
                2DEC*           +1.80714798     E+0 B-10*

VBRFG*          2DEC*           +4.06608200     E+0 B-10*
ABRFG*          2DEC*           -1.64651359     E-3 B+4*
JBRFG*          2DEC*           -2.69203326     E-8 B+18*

AAPFG           2DEC*           +1.52399999     E-6 B+4*
                2DEC*           +0.00000000     E+0 B+4*
                2DEC*           -1.98119999     E-5 B+4*

RAPFG           2DEC*           +2.35092239     E+1 B-24*
                2DEC*           +0.00000000     E+0 B-24*
                2DEC*           -5.28319999     E-1 B-24*

VAPFG           2DEC*           -9.44879999     E-3 B-10*
                2DEC*           +0.00000000     E+0 B-10*
                2DEC*           +3.96239999     E-3 B-10*

VAPFG*          2DEC*           +8.91539999     E-3 B-10*
AAPFG*          2DEC*           -1.18871999     E-4 B+04*
JAPFG*          2DEC*           +8.37250411     E-8 B+18*

TABLTTFL        ADRES           TABLTTF         +3      # ADDRESS FOR REFERENCING TTF TABLE
                DEC             2                       # DEGREE - ONE


TSCALINV        =               BIT4


99+LINT         DEC             +119


-LINT           DEC             -20


SCTTFDSP        DEC             .08                     # RESCALES FROM 2(-17) CS TO WHOLE SECONDS


360DEGS         DEC             +360


TAUVERT         2DEC            600             B-14


TAUROD          2DEC            300             B-12


GSCALE          2DEC            100             B-11


3/8             DEC             .375000000


2/3DP           2DEC            .666666667


3/4DP           2DEC            .750000000


WMREF           2DEC            0.0
                2DEC*           .26616994890062991 E-7 B+18* # RAD/CS.
                2DEC            0.0


MOONG           2DEC            -1.6226         E-4 B2


+1FPS           DEC             .3048           E-2 B+4


+3FPS           2DEC            +0.9144         E-2 B-10


+5FPS           2DEC            +1.524          E-2 B-10


DEPRCRIT        2DEC            -.02            B-2     # DEPRESSION ANGLE CRITERION


PROJMAX         2DEC            .42262          B-3     # SIN(25')/8 TO COMPARE WITH PROJ


PROJMIN         2DEC            .25882          B-3     # SIN(15')/8 TO COMPARE WITH PROJ


PROJDIV         2DEC            .1638           B-3


V06N63          VN              0663                    # P63

V06N64          VN              0664                    # P64

V06N60          VN              0660                    # P65, P66, P67

# ****************************************************************************************************************
# ****************************************************************************************************************
back to top