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
S-BAND_ANTENNA_FOR_LM.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    S-BAND_ANTENNA_FOR_LM.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. 494-497
## 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 494
# SUBROUTINE NAME: R05 - S-BAND ANTENNA FOR LM

# MOD0 BY T. JAMES
# MOD1 BY P. SHAKIR

# FUNCTIONAL DESCRIPTION

#     THE S-BAND ANTENNA ROUTINE, R05, COMPUTES AND DISPLAYS THE PITCH AND
# YAW ANTENNA GIMBAL ANGLES REQUIRED TO POINT THE LM STEERABLE ANTENNA
# TOWARD THE CENTER OF THE EARTH. THIS ROUTINE IS SELECTED BY THE ASTRO-
# NAUT VIA DSKY ENTRY DURING COASTING FLIGHT OR WHEN THE LM IS ON THE MOON
# SURFACE. THE EARTH OR MOON REFERENCE COORDINATE SYSTEM IS USED DEPENDING
# ON WHETHER THE LM IS ABOUT TO ENTER OR HAS ALREADY ENTERED THE MOON
# SPHERE OF INFLUENCE, RESPECTIVELY.  CAN BE CALLED ANY TIME EXCEPT WHEN
# ANOTHER EXTENDED VERB IS IN USE. DISPLAY IS MEANINGLESS WITH IMU OFF.

# TO CALL SUBROUTINE, ASTRONAUT KEYS IN V 64 E

# SUBROUTINES CALLED-

#     INTPRET
#     LOADTIME
#     LEMCONIC
#     LUNPOS
#     CDUTRIG
#     *SMNB*
#     BANKCALL
#     B5OFF
#     ENDOFJOB
#     BLANKET

# RETURNS WITH

#     PITCH ANGLE IN PITCHANG  REV. B0
#     YAW ANGLE IN YAWANG  REV. B0

# ERASABLES USED

#     PITCHANG
#     YAWANG
#     RLM
#     VAC AREA

                BANK            41
                SETLOC          SBAND
                BANK

                EBANK=          WHOCARES
                COUNT*          $$/R05
SBANDANT        TC              INTPRET
## Page 495
                SETPD           RTB
                                0D
                                LOADTIME                # PICK UP CURRENT TIME
                STCALL          TDEC1                   # ADVANCE INTEGRATION TO TIME IN TDEC1
                                LEMCONIC                # USING CONIC INTEGRATION
                SLOAD           BHIZ
                                X2                      # X2 =0 EARTH SPHERE, X2 =2 MOON SPHERE
                                CONV4
                VLOAD
                                RATT
                STODL           RLM
                                TAT
CONV3           CALL
                                LUNPOS                  # UNIT POSITION VECTOR FROM EARTH TO MOON
                VLOAD           VXSC
                                VMOON
                                REMDIST                 # MEAN DISTANCE FROM EARTH TO MOON
                VSL1            VAD
                                RLM
                GOTO
                                CONV5
CONV4           VLOAD
                                RATT                    # UE = -UNIT(RATT)  EARTH SPHERE
CONV5           SETPD           UNIT                    # UE = -UNIT((REM)(UEM) + RL)  MOON SPHERE
                                0D                      # SET PL POINTER TO 0
                VCOMP           CALL
                                CDUTRIG                 # COMPUTE SINES AND COSINES OF CDU ANGLES
                MXV             VSL1                    # TRANSFORM REF. COORDINATE SYSTEM TO
                                REFSMMAT                # STABLE MEMBER  B-1 X B-1 X B+1 = B-1
                PUSH            DLOAD                   # 8D
                                HI6ZEROS
                STORE           PITCHANG
                STOVL           YAWANG                  # ZERO OUT ANGLES
                CALL
                                *SMNB*
                STODL           RLM                     # PRE-MULTIPLY RLM BY (NBSA) MATRIX(B0)
                                RLM             +2
                PUSH            DSU
                                RLM
                DMP
                                1OVSQRT2
                STODL           RLM             +2
                DAD             DMP
                                RLM
                                1OVSQRT2
                STOVL           RLM                     # R  B-1
                                RLM
                UNIT            PDVL
                                RLM
                VPROJ           VSL2                    # PROJECTION OF R ONTO LM XZ PLANE
## Page 496
                                HIUNITY
                BVSU            BOV                     # CLEAR OVERFLOW INDICATOR IF ON
                                RLM
                                COVCNV
COVCNV          UNIT            BOV                     # EXIT ON OVERFLOW
                                SBANDEX
                PUSH            VXV                     # URP VECTOR  B-1
                                HIUNITZ
                VSL1            VCOMP                   # UZ X URP = -(URP X UZ)
                STORE           RLM                     # X VEC  B-1
                DOT             PDVL                    # SGN(X.UY) UNSCALED
                                HIUNITY
                                RLM
                ABVAL           SIGN
                ASIN                                    # ASIN((SGN(X.UY))ABV(X)) REV B0
                STOVL           PITCHANG
                                URP
                DOT             BPL
                                HIUNITZ
                                NOADJUST                # YES, -90 TO +90
                DLOAD           DSU
                                HIDPHALF
                                PITCHANG
                STORE           PITCHANG
NOADJUST        VLOAD           VXV
                                UR                      # Z = (UR X URP)
                                URP
                VSL1
                STODL           RLM                     # Z VEC  B-1
                                PITCHANG
                SIN             VXSC
                                HIUNITZ
                PDDL            COS
                                PITCHANG
                VXSC            VSU
                                HIUNITX                 # (UX COS ALPHA) - (UZ SIN ALPHA)
                DOT             PDVL                    # YAW.Z
                                RLM
                                RLM
                ABVAL           SIGN
                ASIN
                STORE           YAWANG
SBANDEX         EXIT
                CA              EXTVBACT
                MASK            BIT5                    # IS BIT5 STILL ON
                EXTEND
                BZF             ENDEXT                  # NO
                CAF             PRIO5
                TC              PRIOCHNG
                CAF             V06N51                  # DISPLAY ANGLES

## Page 497
                TC              BANKCALL
                CADR            GOMARKFR
                TC              B5OFF                   # TERMINATE
                TC              B5OFF                   # PROCEED
                TC              ENDOFJOB                # RECYCLE
                CAF             BIT3                    # IMMEDIATE RETURN
                TC              BLANKET                 # BLANK R3
                CAF             PRIO4
                TC              PRIOCHNG
                TC              SBANDANT                # YES, CONTINUE DISPLAYING ANGLES.
V06N51          VN              0651
1OVSQRT2        2DEC            .7071067815             # 1/SQRT(2)

UR              EQUALS          0D
URP             EQUALS          6D
                SBANK=          LOWSUPER
back to top