Raw File
P12.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    P12.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.

## Sundance 292

                BANK    24
                SETLOC  P12
                BANK

                EBANK=  DVCNTR
                COUNT*  $$/P12

P12LM           TC      BANKCALL
                CADR    R02BOTH         # CHECK THE STATUS OF THE IMU.

                TC      UPFLAG
                ADRES   MUNFLAG

                TC      UPFLAG
                ADRES   FLP70

                TC      UPFLAG
                ADRES   SURFFLAG

                EXTEND
                DCA     TIG(AS)
                DXCH    TIG

                CAF     V06N33A
                TC      BANKCALL        # FLASH TIG
                CADR    GOFLASH
                TCF     GOTOPOOH
                TCF     +2              # PROCEED
                TCF     -5              # ENTER

                TC      INTPRET
                VLOAD   ABVAL
                        RLS
                SL3
                STORE   /LAND/
                SSP
                        QPRET
                        P12LMB

P12INIT         DLOAD                   # INITIALIZE ENGINE DATA.  USED FOR P12 AND
                        (1/DV)A         # P71.
                STORE   1/DV3
                STORE   1/DV2
                STODL   1/DV1
                        (AT)A
                STODL   AT
                        (TBUP)A
                STODL   TBUP
                        ATDECAY*
                STODL   TTO
                        APSVEX
                STORE   VE
COMMINIT        DLOAD   DAD             # INITIALIZE TARGET DATA. USED BY P12, P70
                        HINJECT         # AND P71 IF IT DOES NOT FOLLOW P70.
                        /LAND/
                STODL   RCO
                        HI6ZEROS
                STORE   TXO
                STORE   YCO
                STORE   RDOTD
                STODL   YDOTD
                        ABTVINJ2        # TENTATIVELY STORE LOW INJECTION VELOCITY
                STOVL   ZDOTD
                        V-OTHER
                VXV     MXV
                        R-OTHER
                        REFSMMAT
                UNIT
                STORE   QAXIS

                RVQ

P12LMB          DLOAD
                        (TGO)A          # SET TGO TO AN INITIAL NOMINAL VALUE.
                STODL   TGO
                        TIG
                STCALL  TDEC1
                        LEMPREC         # ROTATE THE STATE VECTORS TO THE
                VLOAD   MXV             # IGNITION TIME.
                        VATT
                        REFSMMAT
                VSL1
                STOVL   V1S             # COMPUTE V1S = VEL(TIG)*2(-7) M/CS.
                        RATT
                MXV     VSL6
                        REFSMMAT
                STCALL  R               # COMPUTE R = POS(TIG)*2(-24) M.
                        MUNGRAV         # COMPUTE GDT1/2(TIG)*2(-7)M/CS.
                VLOAD   UNIT
                        R
                STCALL  UNIT/R/         # COMPUTE UNIT/R/ FOR YCOMP.
                        YCOMP
                SR      DCOMP
                        5D
                STODL   XRANGE          # INITIALIZE XRANGE FOR NOUN 76.
                        (APO)
                STORE   APO             # INITIALIZE APO FOR NOUN 76.
                EXIT

                TC      PHASCHNG
                OCT     04024

NEWLOAD         CAF     V06N76          # FLASH CROSS-RANGE AND APOLUNE VALUES.
                TC      BANKCALL
                CADR    GOFLASH
                TCF     GOTOPOOH
                TCF     +2              # PROCEED
                TCF     NEWLOAD         # ENTER NEW DATA.

                CAF     P12ADRES
                TS      WHICH

                TC      INTPRET
                DLOAD   SL
                        XRANGE
                        5D
                DAD
                        Y
                STODL   YCO
                        APO             # RA = APO + /LAND/
                SL
                        5D
                DAD     PUSH            # RA*2(-24) IN MPAC AND PDL
                        /LAND/
                DMP     PDDL            # 2 RA MU*2(-62) IN PDL, LOAD RA
                        MUM(-37)
                DAD     DMP             # (RA+RP)*2(-24)
                        RCO             # RP(RA+RP)*2(-48)
                        RCO
                BDDV    SQRT            # 2 MU RA/RP(RA+RP)*2(-14)=ZDOTD(2)
                STADR
                STOVL   ZDOTD
                        UNIT/R/
                VXSC    VAD
                        28.5FPS
                        V1S
                STORE   V               # V(TIPOVER) = V(IGN) + 57FPS (UNIT/R/)
                SET     SETGO
                        FLPI
                        FLVR
                        ASCENT
P12RET          EXIT
                TC      PHASCHNG
                OCT     04024

                TC      DOWNFLAG
                ADRES   FLPI

                INHINT
                TC      IBNKCALL
                CADR    PFLITEDB
                RELINT

                TC      POSTJUMP
                CADR    BURNBABY


P12ADRES        REMADR  P12TABLE        # NOT IN SAME BANK.
28.5FPS         2DEC    .08685 B-6      # EXPECTED RDOT AT TIPOVER

MUM(-37)        2DEC*   4.9027780 E8 B-37*

(APO)           2DEC    55597.5 B-29    # 30 N.M. EXPRESSED IN METERS.
back to top