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
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
Fixed a potential string-overflow bug in yaASM. Removed timestamps from
Tip revision: 078c79d
GROUND_TRACKING_DETERMINATION_PROGRAM_-_P21.agc
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: GROUND_TRACKING_DETERMINATION_PROGRAM_-_P21.agc
## Purpose: A section of Luminary revision 116.
## It is part of the source code for the Lunar Module's (LM)
## Apollo Guidance Computer (AGC) for Apollo 12.
## This file is intended to be a faithful transcription, except
## that the code format has been changed to conform to the
## requirements of the yaYUL assembler rather than the
## original YUL assembler.
## Reference: pp. 654-657
## Assembler: yaYUL
## Contact: Ron Burkey <info@sandroid.org>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2017-01-22 MAS Created from Luminary 99.
## 2017-02-12 NV Updated for Luminary 116.
## 2017-03-01 RSB Proofed comment text by diff vs Luminary 131
## but no errors found.
## Page 654
# GROUND TRACKING DETERMINATION PROGRAM P21
# PROGRAM DESCRIPTION
# MOD NO - 1
# MOD BY - N. M. NEVILLE
# FUNCTIONAL DECRIPTION -
# TO PROVIDE THE ASTRONAUT DETAILS OF THE LM OR CSM GROUND TRACK WITHOUT
# THE NEED FOR GROUND COMMUNICATION (REQUESTED BY DSKY).
# CALLING SEQUENCE -
# ASTRONAUT REQUEST THROUGH DSKY V37E21E
# SUBROUTINES CALLED -
# GOPERF4
# GOFLASH
# THISPREC
# OTHPREC
# LAT-LONG
# NORMAL EXIT MODES -
# ASTRONAUT REQUEST TROUGH DSKY TO TERMINATE PROGRAM V34E
# ALARM OR ABORT EXIT MODES -
# NONE
# OUTPUT -
# OCTAL DISPLAY OF OPTION CODE AND VEHICLE WHOSE GROUND TRACK IS TO BE
# COMPUTED
# OPTION CODE 00002
# THIS 00001
# OTHER 00002
# DECIMAL DISPLAY OF TIME TO BE INTEGRATED TO HOURS, MINUTES, SECONDS
# DECIMAL DISPLAY OF LAT,LONG,ALT
# ERASABLE INITIALIZATION REQUIRED
# AX0 2DEC 4.652459653 E-5 RADIANS %68-69 CONSTANTS"
# -AY0 2DEC 2.147535898 E-5 RADIANS
# AZ0 2DEC .7753206164 REVOLUTIONS
# FOR LUNAR ORBITS 504LM VECTOR IS NEEDED
# 504LM 2DEC -2.700340600 E-5 RADIANS
# 504LM _2 2DEC -7.514128400 E-4 RADIANS
# 504LM _4 2DEC _2.553198641 E-4 RADIANS
# NONE
# DEBRIS
## Page 655
# CENTRALS - A,Q,L
# OTHER - THOSE USED BY THE ABOVE LISTED SUBROUTINES
# SEE LEMPREC, LAT-LONG
SBANK= LOWSUPER # FOR LOW 2CADR'S.
BANK 33
SETLOC P20S
BANK
EBANK= P21TIME
COUNT* $$/P21
PROG21 CAF ONE
TS OPTION2 # ASSUMED VEHICLE IS LM, R2 = 00001
CAF BIT2 # OPTION 2
TC BANKCALL
CADR GOPERF4
TC GOTOPOOH # TERMINATE
TC +2 # PROCEED VALUE OF ASSUMED VEHICLE OK
TC -5 # R2 LOADED THROUGH DSKY
CAF ZERO # INITIAL TIME = PRESENT TIME
TS DSPTEM1
TS DSPTEM1 +1
P21PROG1 CAF V6N34 # LOAD DESIRED TIME OF LAT-LONG.
TC BANKCALL
CADR GOFLASH
TC GOTOPOOH # TERM
TC +2 # PROCEED VALUES OK
TC -5 # TIME LOADED THROUGH DSKY
TC INTPRET
DLOAD BZE
DSPTEM1
P21PRTM
P21PROG2 STCALL TDEC1 # INTEG TO TIME SPECIFIED IN TDEC1
INTSTALL
BON CLEAR
P21FLAG
P21CONT # ON --- RECYCLE USING BASE VECTOR
VINTFLAG # OFF -- 1ST PASS CALL BASE VECTOR
SLOAD SR1
OPTION2
BHIZ SET
+2 # ZERO -- THIS VEHICLE (LM)
VINTFLAG # ONE -- OTHER VEHICLE (CM)
CLEAR CLEAR
DIM0FLAG
INTYPFLG # PRECISION
CALL
INTEGRV # CALCULATE
GOTO # -AND
## Page 656
P21VSAVE # -SAVE BASE VECTOR
P21CONT VLOAD
P21BASER # RECYCLE -- INTEG FROM BASE VECTOR
STOVL RCV # --POS
P21BASEV
STODL VCV # --VEL
P21TIME
STORE TET # --TIME
CLEAR CLEAR
DIM0FLAG
MOONFLAG
SLOAD BZE
P21ORIG
+3 # ZERO = EARTH
SET # ---2 = MOON
MOONFLAG
+3 CALL
INTEGRVS
P21VSAVE DLOAD # SAVE CURRENT BASEVECTOR
TAT
STOVL P21TIME # --TIME
RATT1
STOVL P21BASER # --POS B-29 OR B-27
VATT1
STORE P21BASEV # --VEL B-07 OR B-05
ABVAL SL*
0,2
STOVL P21VEL # VEL/ FOR N91 DISP
RATT
UNIT DOT
VATT # U(R).V
DDV ASIN # U(R).U(V)
P21VEL
STORE P21GAM # SIN-1 U(R).U(V) , -90 TO &90
SXA,2 SLOAD
P21ORIG # 0 = EARTH
OPTION2
SR1 BHIZ
+3
GOTO
+4
+3 BON
SURFFLAG
P21DSP
+4 SET
P21FLAG
P21DSP CLEAR SLOAD # GENERATE DISPLAY DATA
LUNAFLAG
X2
BZE SET
## Page 657
+2 # 0 = EARTH
LUNAFLAG
VLOAD
RATT
STODL ALPHAV
TAT
CLEAR CALL
ERADFLAG
LAT-LONG
DMP # MPAC = ALT, METERS B-29
K.01
STORE P21ALT # ALT/100 FOR N91 DISP
EXIT
CAF V06N43 # DISPLAY LAT, LONG, ALT
TC BANKCALL # LAT, LONG = 1/2 REVS B0
CADR GOFLASH # ALT = KM B14
TC GOTOPOOH # TERM
TC GOTOPOOH
TC INTPRET # V32E RECYCLE
DLOAD DAD
P21TIME
600SEC # 600 SECONDS OR 10 MIN
STORE DSPTEM1
RTB
P21PROG1
P21PRTM RTB GOTO
LOADTIME
P21PROG2
600SEC 2DEC 60000 # 10 MIN
V06N43 VN 00643
V6N34 VN 00634
K.01 2DEC .01
Computing file changes ...