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
R63.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    R63.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. 343-346
## 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 343
# SUBROUTINE NAME:    V89CALL
# MOD NO:  0                      DATE: 9 JAN 1968
# MOD BY:  DIGITAL DEVEL GROUP    LOG SECTION: R63

# FUNCTIONAL DESCRIPTION:

# CALLED BY VERB 89 ENTER DURING P00. PRIO 10 USED.  CALCULATES AND
# DISPLAYS FINAL FDAI BALL ANGLES TO POINT LM +X OR +Z AXIS AT CSM.

# 1. KEY IN V 89 E ONLY IF IN PROG 00. IF NOT IN P00, OPERATOR ERROR AND
# EXIT R63, OTHERWISE CONTINUE.

# 2. IF IN P00, DO IMU STATUS CHECK ROUTINE (R02BOTH). IF IMU ON AND ITS
# ORIENTATION KNOWN TO LGC, CONTINUE.

# 3. FLASH DISPLAY V 04 N 06.  R2 INDICATES WHICH SPACECRAFT AXIS IS TO
# BE POINTED AT CSM.  INITIAL CHOICE IS PREFERRED (+Z) AXIS (R2=1).
# ASTRONAUT CAN CHANGE TO (+X) AXIS (R2 NOT = 1) BY V 22 E 2 E.  CONTINUE
# AFTER KEYING IN PROCEED.

# 4. BOTH VEHICLE STATE VECTORS UPDATED BY CONIC EQS.

# 5. HALF MAGNITUDE UNIT LOS VECTOR (IN STABLE MEMBER COORDINATES) AND
# HALF MAGNITUDE UNIT SPACECRAFT AXIS VECTOR (IN BODY COORDINATES)
# PREPARED FOR VECPOINT.

# 6. GIMBAL ANGLES FROM VECPOINT TRANSFORMED INTO FDAI BALL ANGLES BY
# BALLANGS. FLASH DISPLAY V 06 N 18 AND AWAIT RESPONSE.

# 7. RECYCLE - RETURN TO STEP 4.
#    TERMINATE - EXIT R63.
#    PROCEED - RESET 3AXISFLG AND CALL R60LEM FOR ATTITUDE MANEUVER.


# CALLING SEQUENCE:  V 89 E.
#
# SUBROUTINES CALLED:  CHKPOOH, R02BOTH, GOXDSPF, CSMCONIC, LEMCONIC,
#                      VECPOINT, BALLANGS, R60LEM.

# NORMAL EXIT MODES:  TC ENDEXT

# ALARMS:  1. OPERATOR ERROR IF NOT IN P00.
#          2. PROGRAM ALARM IF IMU IS OFF.
#          3. PROGRAM ALARM IF IMU ORIENTATION IS UNKNOWN.

# OUTPUT:  NONE

# ERASABLE INITIALIZATION REQUIRED:  NONE

# DEBRIS:  OPTION1, +1, TDEC1, POINTVSM, SCAXIS, CPHI, CTHETA, CPSI,

## Page 344
#          3AXISFLG.

                EBANK=          RONE
                BANK            32
                SETLOC          BAWLANGS
                BANK


                COUNT*          $$/R63
V89CALL         TC              BANKCALL                # IMU STATUS CHECK. RETURNS IF ORIENTATION
                CADR            R02BOTH                 # KNOWN. ALARMS IF NOT.
                CAF             THREE                   # ALLOW ASTRONAUT TO SELECT DESIRED
                TS              OPTIONX                 # TRACKING ATTITUDE AXIS.
                CAF             ONE
                TS              OPTIONX         +1
                CAF             VB04N12                 # V 04 N 12
                TC              BANKCALL
                CADR            GOFLASH
                TC              ENDEXT                  # TERMINATE
                TC              +2                      # PROCEED
                TC              -5                      # DATA IN. OPTION1+1 = 1 FOR Z AXIS
V89RECL         TC              INTPRET                 #                   = 2 FOR X AXIS
                RTB             DAD
                                LOADTIME                # READ PRESENT TIME
                                DP1MIN
                STORE           TSTART82                # SAVE TIME FOR LEMCONIC CALL
                STCALL          TDEC1                   # STORE TIME FOR CSMCONIC CALL
                                CSMCONIC                # CSM STATE VECTOR UPDATE
                VLOAD                                   # CSMCONIC LEFT R VECTOR IN RATT
                                RATT
                STODL           RONE                    # SAVE FOR LINE OF SIGHT (LOS) COMPUTATION
                                TSTART82
                STCALL          TDEC1                   # STORE TIME FOR LEMCONIC CALL
                                LEMCONIC                # LEM STATE VECTOR UPDATE
                VLOAD           VSU                     # CSM POSITION - LEM POSITION = LOS
                                RONE                    # LOS VECTOR LEFT IN MPAC
                                RATT
                MXV             RTB                     # (REFSMMAT X LOS). TRANSFORMS LOS FROM
                                REFSMMAT                # REFERENCE COORD TO STAB MEMB COORD.
                                NORMUNIT
                STORE           POINTVSM                # STORE LOS FOR VECPOINT CALL
                EXIT
                CS              OPTIONX         +1      # 1 FOR Z AXIS. 2 FOR X AXIS.
                AD              ONE
                EXTEND
                BZF             ALINEZ
ALINEX          TC              INTPRET                 # X AXIS ALIGNMENT
                VLOAD
                                UNITX                   # READ (.5, 0, 0)

## Page 345
V89CALL1        STCALL          SCAXIS                  # STORE SELECTED ALIGNMENT AXIS
                                VECPOINT                # PUTS DESIRED GIM ANG (OG,IG,MG) IN TMPAC
                STORE           CPHI                    # STORE GIMBAL ANGLES FOR BALLANGS CALL.
                EXIT
                TC              BANKCALL
                CADR            BALLANGS                # PUTS DESIRED BALL ANGLES IN FDAIX,Y,Z
                CAF             VB06N18                 # V 06 N 18
                TC              BANKCALL                # NOUN 18 REFERS TO FDAIX,Y,Z
                CADR            GOFLASH
                TC              ENDEXT                  # TERMINATE
                TC              +2                      # PROCEED
                TC              V89RECL                 # RECYCLE
                TC              DOWNFLAG                # RESET 3 AXIS FLAG
                ADRES           3AXISFLG                # RESET BIT6 FLAG WORD 5
                TC              BANKCALL                # PERFORMS LEM MANEUVER TO ALIGN SELECTED
                CADR            R60LEM                  # SPACECRAFT AXIS TO CSM.
                TCF             ENDEXT                  # TERMINATE R63


ALINEZ          TC              INTPRET                 # Z AXIS ALIGNMENT
                VLOAD           GOTO
                                UNITZ                   # READ (0, 0, .5)
                                V89CALL1


VB04N12         VN              412
VB06N18         VN              0618

## Page 346
DP1MIN          2DEC            6000
back to top