swh:1:snp:92f3f585b9ae79620ad8c41a332d6329b31fd381
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
INTEGRATION_INITIALIZATION.agc
### FILE="Main.annotation"
## Copyright:    Public domain.
## Filename:     INTEGRATION_INITIALIZATION.agc
## Purpose:      A module for revision 0 of BURST120 (Sunburst). It 
##               is part of the source code for the Lunar Module's
##               (LM) Apollo Guidance Computer (AGC) for Apollo 5.
## Assembler:    yaYUL
## Contact:      Ron Burkey <info@sandroid.org>.
## Website:      www.ibiblio.org/apollo/index.html
## Mod history:  2016-09-30 RSB  Created draft version.
##               2016-10-29 MAS  Transcribed.
##		 2016-10-31 RSB	 Typos.
##		 2016-12-06 RSB	 Comments proofed using octopus/ProoferComments,
##				 changes made.

## Page 766
# AVETOMID PERFORMS THE TRANSITION FROM A THRUSTING PHASE TO A COASTING PHASE.  THE ROUTINE INITIALIZES THE
# ORBITAL INTEGRATION PROGRAM AND RESCALES AND TRANSFORMS LEMS STATE VECTOR FROM THE STABLE MEMBER COORDINATE
# SYSTEM USED IN AVERAGEG TO THE REFERENCE SYSTEM USED IN ORBITAL INTEGRATION DURING COAST
# INPUT - LEM STATE VECTOR IN SM COORDINATE SYSTEM AND TIME
#    RN, POSITION IN METERS SCALED AT 2(+24)
#    VN, VELOCITY IN M/CSEC SCALED AT 2(+7)
#    PIPTIME, TIME IN CSEC CORRESPONDING TO RN, VN

# OUTPUT - LEM STATE VECTOR IN REF. COORDINATE SYSTEM AND TIME
#    RRECT AND RCV, POSITION IN KM SCALED AT 2(+14)
#    VRECT AND VCV, VELOCITY IN 1/SQRT(KM) SCALED AT 2(-6)
#    TET, TIME IN CSEC
#    P-MEMORY (REFRRECT TO REFRRECT + 42)

# AVETOMID CALLING SEQUENCE
#    L-2   EXTEND
#    L-1   DCA    (2CADR OF AVETOMID)
#    L     DXCH   Z
#          DELETE

# NORMAL EXIT
#    AT L+1 OF CALLING SEQUENCE

                BANK            07
                EBANK=          AMEMORY
AVETOMID        DXCH            AVMIDRTN
                TC              INTPRET
                CALL                                            # ORBITAL INTEGRATION INITIALIZATION
                                INITINT
                VLOAD
                                ZEROVEC
                STORE           TDELTAV                         # ZERO POS DEVIATIONS
                STORE           TNUV                            # ZERO VEL DEVIATIONS
                STORE           TC                              # ALSO CLEARS TET AND XKEP

SMTOREF         AXT,1           SSP                             # SET UP TIX LOOP FOR STATE VEC TRANSFORM
                                12D
                                S1
                                6
SMTOREF1        VLOAD*          VXSC*                           # TRANSFORM STATE FROM SM TO REF SYSTEM
                                RN              +12D,1
                                SCLRAVMD        +12D,1
                VXM             VSL2
                                REFSMMAT
                STORE           RRECT           +12D,1
                STORE           RCV             +12D,1

                TIX,1           EXIT
                                SMTOREF1
                EXTEND
## Page 767
                DCA             PIPTIME                         # SAVE PIPTIME
                DXCH            TET                             # PIPTIME UN TET

                TC              MOVETEMP                        # TRANSFER STATE AND INIT. DATA TO P-MEM
                DXCH            AVMIDRTN
                DXCH            Z
PIPEBANK        OCT             02400                           # EBANK 05
TESTLOOP        EXIT                                            # FOR DUMP.

                TC              INTPRET

                DLOAD           BOV
                                TDEC
                                +1                              # CLEAR OVERFLOW INDICATOR
                DSU             RTB
                                TET
                                SGNAGREE
                SL              DDV
                                11D
                                EARTHTAB        +9D
                STORE           DT/2
                BOV             ABS
                                GETMAXDT
                DSU             BMN
                                DT/2MIN
                                DECISION                        # INTEGRATION FINISHED-DECIDE WHERE TO GO
                DAD             DSU
                                DT/2MIN
                                DT/2MAX
                BMN
                                TIMESTEP
USEMAXDT        DLOAD           SIGN
                                DT/2MAX
                                DT/2
                STCALL          DT/2
                                TIMESTEP
GETMAXDT        RTB
                                SIGNMPAC
                STCALL          DT/2
                                USEMAXDT



SCALER          DEC             14
SCALDELT        DEC             4
SCALEDT         DEC             18
28SECS          2DEC            2800

270SECS         2DEC            27000

## Page 768
2SECS           2DEC            200

30SECS          2DEC            3000                            # USED ONLY FOR LOGIC IN IGN+28 * 206 ONLY

ZEROVEC         2DEC            0

                2DEC            0

                2DEC            0

# THE ORDER OF THE SIX FOLLOWING CONSTANTS CANNOT BE CHANGED

SCLRAVMD        2DEC            .512                            # METERS TO KM 1/2(1024/1000)

DT/2MIN         2DEC            .00003

SCLRMDAV        2DEC            1000            B-10            # KM TO METERS

SCLVAVMD        2DEC            .64876819                       # METERS/CSEC TO 1/SQR(KM)

DT/2MAX         2DEC            .65027077       B-1             # 270 SEC MAX TIME STEP

SCLVMDAV        2DEC            .7706913                        # 1/SQR(KM) TO METERS/CSEC

## Page 769
# STATEINT IS CALLED UP UNDER A JOB EVERY 539 SECONDS DURING A COASTING   PHASE BY THE MISSION SCHEDULING
# MAINTENANCE ROUTINE TO MAINTAIN THE LEMS STATE VECTOR WITHIN TWO INTEGRATION STEPS (540 SECONDS) OF THE CURRENT
# TIME (TIME2).  THE ROUTINE COMPARES TIME2 WITH TET (THAT TIME CORRESPONDING TO THE STATE VECTOR IN STORAGE).
# IF TET LAGS BY 270 SECONDS OR MORE, THE ORBITAL INTEGRATION PROGRAM IS  CALLED UP AND THE STATE IS UPDATED TO
# TIME2.  IF TET DOES NOT LAG, STATEINT IS TERMINATED BY ENDOFJOB.

# INPUT-STATEINT ASSUMES THAT THE COASTING IN PROGRESS WAS INITIALIZED BY
#    THE AVETOMID ROUTINE.

STATEINT        EXTEND
                DCA             TIME2                           # GET CURRENT TIME IN TDEC
                DXCH            TDEC
                TC              FLAG2UP                         # SET ORBITAL INTEGRATION FLAG
                OCT             100
                TC              MOVEPERM                        # BRING STATE FROM PMEMORY
                TC              INTPRET

                DLOAD           DSU                             # FORM TDEC-TET
                                TDEC
                                TET
                BMN             DSU                             # IS STATE LAGGING
                                NOINT                           # NO, TET GREATER THAN TDEC
                                270SECS
                BMN             SSP
                                NOINT                           # NO, TET GREATER THAN TDEC-270 SECS.
                                MEASMODE                        # BRING TO CURRENT TIME-SET MEASMODE (-1)
                DEC             -1
                CALL
                                INITINT                         # INITIALIZE BRANCH REGS
                GOTO
                                TESTLOOP                        # START INTEGRATION FROM TET TO TDEC
NOINT           EXIT                                            # TEMPORARY STATEINT EXIT
                TCF             INTOUT                          # NO INTEGRATION, TERMINATE THIS JOB

## Page 770
# MOVETEMP TRANSFERS RRECT TO RRECT +42 FROM A-MEMORY TO P-MEMORY

# CALLING SEQUENCE
#    L   TC   MOVETEMP

# NORMAL EXIT AT L+1

MOVETEMP        EXTEND
                QXCH            PBODY                           # TEMP. HERE-PBODY INITIALIZED BEFORE INT
                CAF             FORTYTWO
MTEMPLUP        TS              DIFEQCNT                        # INITIALIZE INDEX
                INDEX           DIFEQCNT
                CA              RRECT                           # PICK UP RRECT TO RRECT +42 FROM A-MEMORY
                INDEX           DIFEQCNT
                TS              REFRRECT                        # STORE IN REFRRECT TO REFRRECT +42 IN P-M
                CCS             DIFEQCNT                        # IS TRANSFER COMPLETE
                TCF             MTEMPLUP                        # NO --- LOOP AGAIN.
                TC              PBODY

# MOVEPERM TRANSFERS REFRRECT TO REFRRECT +42 FROM PMEMORY TO A-MEMORY

MOVEPERM        EXTEND
                QXCH            PBODY                           # TEMP. HERE-PBODY INIT. BEFORE INTEGRATIO
                CAF             FORTYTWO
MPERMLUP        TS              DIFEQCNT
                INDEX           DIFEQCNT
                CA              REFRRECT
                INDEX           DIFEQCNT
                TS              RRECT
                CCS             DIFEQCNT
                TCF             MPERMLUP
                TC              PBODY

INITINT         SSP             SSP
                                PBODY                           # EARTHTAB INTO PBOAY
                                EARTHTAB
                                STEPEXIT                        # TESTLOOP INTO STEPEXIT
                                TESTLOOP
                CLEAR           CLEAR
                                MIDFLAG                         # ZERO ON 206
                                MOONFLAG                        # ZERO ON 206
                CLEAR           RVQ
                                WMATFLAG                        # W-MATRIX NOT USED ON 206

## Page 771
# MIDTOAVE PERFORMS THE STATE VECTOR TRANSITION FROM A COASTING PHASE
# USING THE ORBITAL INTEGRATION PROGRAMS TO A TRUSTING PHASE WHICH USES
# AVERAGEG INTEGRATION.  THE ROUTINE RESCALES AND TRANSFORMS THE STATE
# VECTOR AT TIGN-30, TIGN-2 AND TIGN FROM REFERENCE COORDINATES TO
# STABLE MEMBER COORDINATES AS DIRECTED BY THE DECISION ROUTINE

# INPUT-MIDTOAVE ASSUMES THAT THE COASTING INTEGRATION WAS INITIALIZED
#    BY THE AVETOMID ROUTINE,  STATE IN REF. COORD. IN PMEMORY.

#    RRECT, RCV-POSITION IN KM SCALED AT 2(+14)
#    VRECT, VCV- VELOCITY IN 1/SQRT(KM) SCALED AT 2(-6)
#    TET, TIME IN CSECS.

# OUTPUT-STATE IN STABLE MEMBER COORDINATES
# AT TIGN-30
#    RAVEGON, POSITION IN METERS SCALED IN 2(+24)
#    VAVEGON, VELOCITY IN METERS/CSEC SCALED AT 2(+7)

# AT TIGN-2
#    RIG-2SEC, POSITION IN METERS SCALED AT 2(+24)

# AT TIGN

#    RIGNTION, POSITION IN METERS SCALED AT 2(+24)
#    VIGNTION, VELOCITY IN METERS/CSEC SCALED AT 2(+7)

# CALLING SEQUENCE
#    (COMPUTE TDEC=TIME OF IGNITION-30 SECS.)
#    L-2   EXTEND
#    L-1   DCA    (2CADR OF MIDTOAVE)
#    L     DXCH   Z

# NORMAL EXIT
#    L+1 OF CALLING SEQUENCE

RVUPDATE        DXCH            AVMIDRTN
                CAF             BIT1                            # SET MEASMODE TO +1 TO INTEGRATE STATE
                TCF             MIDTOAVE        +2              # TO TDEC AND STORED IN RIGNTION ONLY

MIDTOAVE        DXCH            AVMIDRTN
                CA              NEG0
                TS              MEASMODE                        # SET MEASMODE (-0) TO INTEGRATE TO IG-30
                TC              FLAG2UP                         # SET ORBITAL INTEGRATION FLAG
                OCT             100
                TC              MOVEPERM                        # BRING STATE FROM PMEMORY
                TC              INTPRET
                CALL                                            # INITIALIZE ORBITAL INTEGRATION REGS
                                INITINT
                GOTO
                                TESTLOOP                        # GO TO ORBITAL INTEGRATION

## Page 772
# THE DECISION ROUTINE DETERMINES THE ACTION TO BE TAKEN AFTER ORBITAL
# INTEGRATION HAS UPDATED THE STATE VECTOR TO THE TIME INDICATED
# BY TDEC.  THE ACTION TAKEN IS BASED ON THE CONTENTS OF MEASMODE,

# C(MEASMODE)=(-0), STATE INTEGRATED (REF. COORD.) TO TIGN-30, SET
#             MEASMODE=(+0), SET TDEC=TIGN-2SECS.
# C(MEASMODE)=(+0), POSITION VECTOR INTEGRATED TO TIGN-2, SET MEASMODE=,+1
#             SET TDEC=TIGN
# C(MEASMODE)=(+1), STATE INTEGRATED TO TIGN, TRANSFORM STATE FROM REF TO
#             SM COORD. SYSTEM AND RETURN TO MISSION PROGRAM
# C(MEASMODE)=(-1), STATE INTEGRATED TO TDEC DURING COAST PHASE, TERMINATE
#             STATEINT JOB INITIATED BY MISSION SCHEDULING PACKAGE

DECISION        EXIT
                CCS             MEASMODE
                TCF             +3                              # STATE IN REF  COOR AT IGN
                TCF             +2                              # STATE IN REF COORD AT IGN-2
                TCF             COASTINT                        # COAST INTEGRATION STEP COMPLETE
                TC              INTPRET
                CALL
                                RECTIFY                         # RECTIFY AT IGN-30,IGN-2,IGN

                EXIT
                CCS             MEASMODE
                TCF             REFTOSM                         # STATE AT TIGN-FINISH UP MIDTOAVE
                TCF             IGN-2SEC                        # POS AT TIGN-2, DO TIGN NEXT
FORTYTWO        DEC             41
                TCF             AVEGON                          # STATE AT TIGN-30, DO TIGN-2 NEXT

AVEGON          TC              INTPRET
                AXT,1           SSP                             # SET LOOP
                                12D
                                S1
                                6
SPECPLS1        VLOAD*          VXSC*
                                RRECT           +12D,1
                                SCLRMDAV        +12D,1          #   REF TO SM SCALE FACTOR
                MXV             VSL1
                                REFSMMAT
                STORE           RAVEGON         +12D,1
                TIX,1           DLOAD
                                SPECPLS1
                                TDEC                            # TDEC NOW=TIGN-30
                STORE           PIPTIME                         # SAVE TIGN-30 IN PIPTIME FOR AVERAGEG
                STORE           TAVEGON                         # TIME TIG-30 FOR DWNLINK IN NORMLIZE
                DAD
                                28SECS                          # TDEC + 28SECS
                STORE           TDEC                            # TDEC SET TIGN-2
                SSP             GOTO
                                MEASMODE                        # SET MEASMODE=(+0)
## Page 773
                                0
                                TESTLOOP                        # GO INTEGRATE STATE TO IGN-2

IGN-2SEC        TC              INTPRET
                VLOAD           VXSC                            # TRANSFORM POS AT IGN-2 FROM REF TO SM
                                RRECT
                                SCLRMDAV
                MXV             VSL1
                                REFSMMAT
                STODL           RIG-2SEC                        # POS IN SM COORD. AT IGN-2
                                TDEC
                BONCLR          DAD
                                INTEGRSW                        # IF SET, FINAL TESTLOOP GIVES IGN+28 STAT
                                IGN+28                          # INSTEAD OF IGN STATE - FOR MP 4 ONLY.
                                2SECS
TDECSTOR        STORE           TDEC
                SSP             GOTO
                                MEASMODE                        # SET MEASMODE=(+1)
                                1
                                TESTLOOP                        # GO INTEGRATE STATE TO IGN OR IGN+28

IGN+28          DAD             GOTO
                                30SECS                          # FOR MP4.  REMOVE AFTER FLIGHT 206.
                                TDECSTOR

REFTOSM         TC              FLAG2DWN                        # REMOVE ORBITAL INTEGRATION GLAG
                OCT             100
                TC              INTPRET
                AXT,1           SSP                             # SET UP TIX LOOP
                                12D                             # 12 IN X1
                                S1                              # 6 IN S1
                                6
REFTOSM1        VLOAD*          VXSC*                           # TRANSFORM STATE AT TIGN FROM REF TO SM
                                RRECT           +12D,1
                                SCLRMDAV        +12D,1          # REF TO SM SCALE FACTOR
                MXV             VSL1
                                REFSMMAT
                STORE           RIGNTION        +12D,1          #   STATE AT TIGN IN SM COORDINATES
                TIX,1           EXIT
                                REFTOSM1
                EXTEND                                          # PLAY SAFE WITH BASIC********************
                DCA             TET                             # ****************************************
                DXCH            TIGNTION                        # STATE TIME FOR DOWNLINK IN VPATCHER
                DXCH            AVMIDRTN
                DXCH            Z
# THE COASTINT ROUTINE TERMINATES THE ORBITAL INTEGRATION JOB SET BY
# MISSION SCHEDULING ROUTINE EVERY 539 SECONDS DURING COASTING PHASES.
# THE ROUTINE TRANSFERS THE STATE VECTOR AND ALL OTHER ORBITAL INTEGRATION
# QUANTITIES TO P-MEMORY.  IT FORMS A TOTAL STATE VECTOR AND TRANSFORMS IT
# TO STABLE MEMBER COORDINATES AND STORES IT WITH TIME IN RN, VN AND
## Page 774
# STATIME FOR DOWNLINK.  THE ROUTINE THEN REMOVES THE INTEGRATION FLAG
# TO ALLOW GROUND UPDATE OF THE STATE VECTOR AND DOES ENDOFJOB.

COASTINT        TC              PHASCHNG
                OCT             05021
                OCT             05000

                TC              MOVETEMP

UPDATINT        TC              PHASCHNG
                OCT             05021
                OCT             05000

                TC              INTPRET
                VLOAD           VSR8                            # FORM TOTAL STATE VECTOR
                                DELTAV
                VSR2            VAD
                                REFRCV
                STOVL           RRECT
                                NUV
                VSR8            VAD
                                REFVCV
                STORE           VRECT                           # TOTAL VEL. VECTOR

                AXT,1           SSP                             # SET TIX LOOP TO TRANSFORM STATE TO SM
                                12D
                                S1
                                6
TRANTOSM        VLOAD*          VXSC*                           # TRANSFORM STATE AND RE-STORE IN RRECT
                                RRECT           +12D,1
                                SCLRMDAV        +12D,1
                MXV             VSL1
                                REFSMMAT
                STORE           RRECT           +12D,1          # STATE IN SM SYSTEM
                TIX,1
                                TRANTOSM
                EXIT

                INHINT                                          # INHIBIT INTERUPT TO STORE STATE IN RN
                CAF             ELEVEN                          # INITIALIZE INDEX TO DEC 11
STATORN         TS              RUPTREG1
                INDEX           RUPTREG1
                CA              RRECT                           # PICK RRECT + NEXT 11 REGS
                INDEX           RUPTREG1
                TS              RN                              # JAM IN RN TO RN+11 FOR DOWNLINK
                CCS             RUPTREG1
                TCF             STATORN
                EXTEND
                DCA             TE                              # GET STATE TIME
                DXCH            STATIME

## Page 775
                RELINT                                          # STATE AND TIME IN DOWNLINK REGS

INTOUT          TC              FLAG2DWN                        # REMOVE ORBITAL INTEGRATION FLAG
                OCT             100

                TC              PHASCHNG
                OCT             00001

                TC              ENDOFJOB
back to top