Raw File
R31.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    R31.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  Aligned IAW to field boundary.

## Sundance 306

                BANK    34
                SETLOC  R31
                BANK

                COUNT*  $$/R31

DISPN5X         CA      FLAGWRD9        # TEST R31FLAG (IN SUNDANCE R31FLAG WILL
                MASK    BIT4            #     ALWAYS BE SET AS R34 DOES NOT EXIST)
                EXTEND
                BZF     +3
                CAF     V06N54          # R31    USE NOUN 54
                TC      +2
                CAF     V06N53          # R34    USE NOUN 53
                TC      BANKCALL
                CADR    GOMARKFR
                TC      B5OFF
                TC      B5OFF
                TC      ENDOFJOB

                CAF     PRIO4
                TC      PRIOCHNG
                CAF     .5SEC
                TC      BANKCALL
                CADR    DELAYJOB

V83             TC      INTPRET
                CALL
                        REDOEXTP
                GOTO
                        COMPDISP                        
V83CALL         TC      INTPRET
                CALL
                        STATEXTP        # EXTRAPOLATE STATE VECTORS
COMPDISP        VLOAD   VSU
                        RATT
                        RONE
                PUSH    ABVAL           # RATT-RONE TO 0D               PD = 6
                STORE   RANGE           # METERS B-29
                NORM    VLOAD
                        X1              # RATT-RONE                     PD = 0
                VSL*    UNIT
                        0,1
                PDVL    VSU             # UNIT(LOS) TO 0D              PD = 6
                        VATT
                        VONE
                DOT                     # (VATT-VONE).UNIT(LOS)        PD = 0
                SL1
                STCALL  RRATE           # RANGE RATE M/CS B-7
                        CDUTRIG         # TO INITIALIZE FOR *NBSM*
R34ANG          VLOAD   UNIT
                        RONE
                PDVL                    # UR TO 0D                    PD= 6
                        THISAXIS        # UNITX FOR CM, UNITZ FOR LM
                BON     VLOAD           # CHK R31FLAG. ON=R31 THETA, OFF=R34 PHI
                        R31FLAG
                        +2              #     R31-THETA
                        THISAXIS
                CALL    
                        *NBSM*
                VXM     PUSH            # UXORZ TO 6D                  PD=12D
                        REFSMMAT
                VPROJ   VSL2
                        0D
                BVSU    UNIT
                        6D
                PDVL    VXV             # UP/2 TO 12D                  PD=18D
                        RONE
                        VONE
                UNIT    VXV
                        RONE
                DOT     PDVL            # SIGN TO 12D, UP/2 TO MPAC    PD=18D
                        12D
                VSL1    DOT             # UP.UXORZ
                        6D
                SIGN    SL1
                        12D
                ACOS
                STOVL   RTHETA
                        RONE
                DOT     BPL
                        6D
                        +5
                DLOAD   BDSU            # IF UXORZ.R NEG, RTHETA = 1 - RTHETA
                        RTHETA
                        DPPOSMAX
                STORE   RTHETA          # RTHETA BETWEEN 0 AND 1 REV.
                EXIT
                CAF     BIT5            # HAVE WE BEEN ANSWERED
                MASK    EXTVBACT
                EXTEND
                BZF     ENDEXT          # YES, DIE

                TC      UNK7766
                TC      BANKCALL
                CADR    MARKBRAN

                TCF     DISPN5X
V06N54          VN      0654
V06N53          VN      0653
                
# THE STATEXTP SUBROUTINE DOES A PRECISION EXTRAPOLATION OF BOTH VEHICLES
# STATE VECTORS TO PRESENT TIME AND SAVES THEM AS BASE VECTORS.
# IF SERVICER IS OFF ---
#                 THIS VEHICLES BASE VECTOR IS CONIC EXTRAPOLATED TO
#                 PRESENT TIME AND SAVED AS RONE, VONE.
#                 THE OTHER VEHICLES BASE VECTOR IS CONIC EXTRAPOLATED
#                 TO THE SAME TIME, THE OUTPUT BEING LEFT IN RATT, VATT.
# IF SERVICER IS ON ---
#                 RONE, VONE ARE SET EQUAL TO RN, VN AND THE OTHER
#                 VEHICLES STATE VECTOR IS PREC. EXTRAPOLATED TO PIPTIME.

STATEXTP        STQ     RTB
                        STATEXIT
                        LOADTIME
                STCALL  TDEC1
                        OTHPREC         # GET BASE VECTORS
                VLOAD
                        RATT1
                STOVL   BASEOTP         # OTHER POS.
                        VATT1
                STODL   BASEOTV         # OTHER VEL.
                        TAT
                STORE   BASETIME
                STCALL  TDEC1
                        THISPREC
                VLOAD
                        RATT1
                STOVL   BASETHP         # THIS POS.
                        VATT1
                STORE   BASETHV         # THIS VEL
HAVEBASE        BON     RTB
                        V37FLAG
                        GETRVN          # IF AVG ON ,GET RN ETC.
                        LOADTIME
                STCALL  TDEC1           # BEGIN SET UP FOR CONIC EXTRAP. FOR THIS.
                        INTSTALL
                VLOAD   CLEAR
                        BASETHP
                        MOONFLAG
                STOVL   RCV
                        BASETHV
                STODL   VCV
                        BASETIME
                BOF     SET             # GET APPROPRIATE MOONFLAG SETTING
                        MOONTHIS
                        +2
                        MOONFLAG
                SET
                        INTYPFLG        # CONIC EXTRAP.
                STCALL  TET
                        INTEGRVS        # INTEGRATION --- AT LAST---
OTHCONIC        VLOAD
                        RATT
                STOVL   RONE
                        VATT
                STCALL  VONE            # GET SET FOR CONIC EXTRAP.,OTHER.
                        INTSTALL
                SET     DLOAD
                        INTYPFLG
                        TAT
OTHINT          STORE   TDEC1
                VLOAD   CLEAR
                        BASEOTP
                        MOONFLAG
                STOVL   RCV
                        BASEOTV
                STODL   VCV
                        BASETIME
                BOF     SET
                        MOONTHIS
                        +2
                        MOONFLAG
                STCALL  TET
                        INTEGRVS
                GOTO
                        STATEXIT        # THIS VEHICLES POS.,VEL. IN PUSHLIST.
GETRVN          VLOAD
                        RN
                STOVL   RONE
                        VN
                STODL   VONE
                        PIPTIME
                CALL
                        INTSTALL
                CLEAR   GOTO
                        INTYPFLG        # PREC EXTRAP FOR OTHER
                        OTHINT
REDOEXTP        STQ     GOTO
                        STATEXIT
                        HAVEBASE

back to top