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
P76.agc
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: P76.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. 703-705
## 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 703
# 1) PROGRAM NAME - TARGET DELTA V PROGRAM (P76).
# 2) FUNCTIONAL DESCRIPTION - UPON ENTRY BY ASTRONAUT ACTION, P76 FLASHES DSKY REQUESTS TO THE ASTRONAUT
# TO PROVIDE VIA DSKY (1) THE DELTA V TO BE APPLIED TO THE OTHER VEHICLE STATE VECTOR AND (2) THE
# TIME (TIG) AT WHICH THE OTHER VEHICLE VELOCITY WAS CHANGED BY EXECUTION OF A THRUSTING MANEUVER. THE
# OTHER VEHICLE STATE VECTOR IS INTEGRATED TO TIG AND UPDATED BY THE ADDITION OF DELTA V (DELTA V HAVING
# BEEN TRANSFORMED FROM LV TO REF COSYS). USING INTEGRVS, THE PROGRAM THEN INTEGRATES THE OTHER
# VEHICLE STATE VECTOR TO THE STATE VECTOR OF THIS VEHICLE, THUS INSURING THAT THE W-MATRIX AND BOTH VEHICLE
# STATES CORRESPOND TO THE SAME TIME.
# 3) ERASABLE INITIALIZATION REQUIRED - NONE.
# 4) CALLING SEQUENCES AND EXIT MODES - CALLED BY ASTRONAUT REQUEST THRU DSKY V 37 E 76 E.
# EXITS BY TCF ENDOFJOB.
# 5) OUTPUT - OTHER VEHICLE STATE VECTOR INTEGRATED TO TIG AND INCREMENTED BY DELTA V IN REF COSYS.
# THE PUSHLIST CONTAINS THE MATRIX BY WHICH THE INPUT DELTA V MUST BE POST-MULTIPLIED TO CONVERT FROM LV
# TO REF COSYS.
# 6) DEBRIS - OTHER VEHICLE STATE VECTOR.
# 7) SUBROUTINES CALLED - BANKCALL,GOXDSPF,CSMPREC (OR LEMPREC),ATOPCSM (OR ATOPLEM),INTSTALL,INTWAKE, PHASCHNG
# INTPRET, INTEGRVS, AND MINIRECT.
# 8) FLAG USE - MOONFLAG,CMOONFLAG,INTYPFLG,RASFLAG, AND MARKCTR.
BANK 30
SETLOC P76LOC
BANK
COUNT* $$/P76
EBANK= TIG
P76 TC UPFLAG
ADRES TRACKFLG
TC INTPRET
VLOAD
DELVLVC
STORE DELVOV
EXIT
CAF V06N84 +1 # FLASH VERB 06 NOUN 33, DISPLAY LAST TIG,
TC BANKCALL # AND WAIT FOR KEYBOARD ACTION.
CADR GOFLASH
TCF ENDP76
TC +2 # PROCEED
TC -5 # STORE DATA AND REPEAT FLASHING
CAF V06N84 # FLASH LAST DELTA V,
TC BANKCALL # AND WAIT FOR KEYBOARD ACTION.
CADR GOFLASH
TCF ENDP76
TC +2
TC -5
TC INTPRET # RETURN TO INTERPRETIVE CODE
## Page 704
DLOAD SET
TIG
NODOFLAG
STCALL TDEC1 # SET TDEC1=TIG FOR ORBITAL INTEGRATION
OTHPREC
COMPMAT VLOAD UNIT
RATT
VCOMP # U(-R)
STORE 24D # U(-R) TO 24D
VXV UNIT # U(-R)XV = U(VXR)
VATT
STORE 18D
VXV UNIT # U(VXR)XU(-R) = U((RXV)XR)
24D
STOVL 12D
DELVOV
VXM VSL1 # V(MPAC)=DELTA V IN REFCOSYS
12D
VAD
VATT
STORE 6 # V(PD6)=VATT + DELTA V
CALL # PREVENT WOULD-BE USER OF ORBITAL
INTSTALL # INTEG FROM INTERFERING WITH UPDATING
CALL
P76SUB1
VLOAD VSR*
6
0,2
STOVL VCV
RATT
VSR*
0,2
STODL RCV
TIG
STORE TET
CLEAR DLOAD
INTYPFLG
TETTHIS
INTOTHIS STCALL TDEC1
INTEGRVS
CALL
INTSTALL
VLOAD
RATT1
STORE RRECT
STODL RCV
TAT
STOVL TET
VATT1
CALL
## Page 705
MINIRECT
EXIT
TC PHASCHNG
OCT 04024
TC INTPRET
SET CALL
REINTFLG
ATOPOTH
CALL
INTWAKE0
OUT CLEAR EXIT # ALLOW V37. NO NEED TO CLEAR NODOFLAG AT
NODOFLAG # ENDP76 SINCE FLAG NOT SET WHEN DISPLAY
# RESPONSES TRANSFER THERE FROM P76+.
ENDP76 CAF ZERO
TS MARKCTR # CLEAR RR TRACKING MARK COUNTER
TCF GOTOPOOH
V06N84 NV 0684
NV 0633
P76SUB1 AXT,2 SET
2
MOONFLAG # SET MEANS MOON IS SPHERE OF INFLUENCE.
BON AXT,2
CMOONFLG # SET MEANS PERM CM STATE IN LUNAR SPHERE.
QPRET
0
CLEAR RVQ
MOONFLAG
Computing file changes ...