Apollo-11/Luminary099/LAMBERT_AIMPOINT_GUIDANCE.s
2016-07-11 22:41:57 -05:00

170 lines
4.1 KiB
ArmAsm

# Copyright: Public domain.
# Filename: LAMBERT_AIMPOINT_GUIDANCE.agc
# Purpose: Part of the source code for Luminary 1A build 099.
# It is part of the source code for the Lunar Module's (LM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 651-653
# Mod history: 2009-05-18 RSB Transcribed from Luminary 099
# page images.
# 2009-06-05 RSB Corrected 4 typos.
# 2009-06-07 RSB Fixed a typo.
#
# This source code has been transcribed or otherwise adapted from
# digitized images of a hardcopy from the MIT Museum. The digitization
# was performed by Paul Fjeld, and arranged for by Deborah Douglas of
# the Museum. Many thanks to both. The images (with suitable reduction
# in storage size and consequent reduction in image quality as well) are
# available online at www.ibiblio.org/apollo. If for some reason you
# find that the images are illegible, contact me at info@sandroid.org
# about getting access to the (much) higher-quality images which Paul
# actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 001 of AGC program LMY99 by NASA 2021112-61
# 16:27 JULY 14, 1969
# Page 651
# GENERAL LAMBERT AIMPOINT GUIDANCE **
# WRITTEN BY RAMA M AIYAWAR
# PROGRAM P-31 DESCRIPTION **
#
# 1. TO ACCEPT TARGETING PARAMETERS OBTAINED FROM A SOURCE EXTERNAL
# TO THE LEM AND COMPUTE THERE FROM THE REQUIRED-VELOCITY AND
# OTHER INITIAL CONDITIONS REQUIRED BY LM FOR DESIRED MANEUVER.
# THE TARGETING PARAMETERS ARE TIG (TIME OF IGNITION), TARGET
# VECTOR (RTARG), AND THE TIME FROM TIG UNTIL THE TARGET IS
# REACHED (DELLT4), DESIRED TIME OF FLIGHT FROM RINIT TO RTARG.
# ASSUMPTIONS **
#
# 1. THE TARGET PARAMETERS MAY HAVE BEEN LOADED PRIOR TO THE
# EXECUTION OF THIS PROGRAM.
# 2. THIS PROGRAM IS APPLICABLE IN EITHER EARTH OR LUNAR ORBIT.
# 3. THIS PROGRAM IS DESIGNED FOR ONE-MAN OPERATION, AND SHOULD
# BE SELECTED BY THE ASTRONAUT BY DSKY ENTRY V37 E31.
# SUBROUTINES USED **
#
# MANUPARM, TTG/N35, R02BOTH, MIDGIM, DISPMGA, FLAGDOWN, BANKCALL,
# GOTOPOOH, ENDOFJOB, PHASCHNG, GOFLASHR, GOFLASH.
#
# MANUPARM CALCULATES APOGEE, PERIGEE ALTITUDES AND DELTAV DESIRED
# FOR THE MANEUVER.
#
# TTG/N35 CLOCKTASK - UPDATES CLOCK.
#
# MIDGIM CALCULATES MIDDLE GIMBAL ANGLE FOR DISPLAY.
#
# R02BOTH IMU - STATUS CHECK ROUTINE.
# DISPLAYS USED IN P-31LM **
#
# V06N33 DISPLAY STORED TIG (IN HRS. MINS. SECS.)
# V06N42 DISPLAY APOGEE, PERIGEE, DELTAV.
# V16N35 DISPLAY TIME FROM TIG.
# V06N45 TIME FROM IGNITION AND MIDDLE GIMBAL ANGLE.
# ERASABLE INITIALIZATION REQUIRED **
#
# TIG TIME OF IGNITION DP (B+28) CS.
#
# DELLT4 DESIRED TIME OF FLIGHT DP (B+28) CS
# FROM RINIT TO RTARG.
#
# RTARG RADIUS VECTOR OF TARGET POSITION VECTOR
# RADIUS VECTOR SCALED TO (B+29)METERS IF EARTH ORBIT
# Page 652
# RADIUS VECTOR SCALED TO (B+27)METERS IF MOON ORBIT
# OUTPUT **
#
# HAPO APOGEE ALTITUDE
# HPER PERIGEE ALTITUDE
# VGDISP MAG. OF DELTAV FOR DISPLAY, SCALING B+7 M/CS EARTH
# MAG. OF DELTAV FOR DISPLAY, SCALING B+5 M/CS MOON
# MIDGIM MIDDLE GIMBAL ANGLE
# XDELVFLG RESETS XDELVFLG FOR LAMBERT VG COMPUTATIONS
# ALARMS OR ABORTS NONE **
# RESTARTS ARE VIA GROUP 4 **
SETLOC GLM
BANK
EBANK= SUBEXIT
COUNT* $$/P31
P31 TC P20FLGON
CAF V06N33 # T16
TC VNP00H
TC INTPRET
CLEAR DLOAD
UPDATFLG
TIG
STCALL TDEC1 # INTEGRATE STATE VECTORS TO TIG
LEMPREC
VLOAD SETPD
RATT
0D
STORE RTIG
STOVL RINIT
VATT
STORE VTIG
STODL VINIT
P30ZERO
PUSH PDDL # E4 AND NUMIT = 0
DELLT4
DAD SXA,1
TIG
RTX1
STORE TPASS4
SXA,2 CALL
RTX2
INITVEL
VLOAD PUSH
# Page 653
DELVEET3
STORE DELVSIN
ABVAL CLEAR
XDELVFLG
STCALL VGDISP
GET.LVC
VLOAD PDVL
RTIG
VIPRIME
CALL
PERIAPO1
CALL
SHIFTR1
CALL # LIMIT DISPLAY TO 9999.9 N. MI.
MAXCHK
STODL HPER
4D
CALL
SHIFTR1
CALL # LIMIT DISPLAY TO 9999.9 N. MI.
MAXCHK
STORE HAPO
EXIT
CAF V06N81 # DELVLVC
TC VNP00H
CAF V06N42 # HAPO, HPER, VGDISP
TC VNP00H
TC INTPRET
REVN1645 SET CALL # TRKMKCNT, TTOGO, +MGA
FINALFLG
VN1645
GOTO
REVN1645
# *** END OF LEMP30S .103 ***