P76.agc
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: P76.agc
## Purpose: A section of Luminary revision 210.
## It is part of the source code for the Lunar Module's (LM)
## Apollo Guidance Computer (AGC) for Apollo 15-17.
## 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. 711-714
## Assembler: yaYUL
## Contact: Ron Burkey <info@sandroid.org>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2016-11-17 JL Created from Luminary131 version.
## 2016-12-01 RSB Completed.
## 2016-12-01 HG Add missing instructions for INTADR, UPDATADR
## fix operand GOTOPOOH -> GOTOP00H
## 2016-12-07 HG 'unfix' and revert P00 -> POO
## 2016-12-11 HG Fix operand -5 -> -6
## 2016-12-25 RSB Comment-text proofed using ProoferComments
## and corrected errors found.
## Page 711
# 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
P76ER77 CA MODREG
MASK BIT1
TS OPTFLAG # OPTFLAG = 0 CM (P76)
TC UPFLAG # = 1 LM (P77)
ADRES TRACKFLG
TC INTPRET
VLOAD
DELVLVC
STORE DELVOV
EXIT
CAF V06N3376
TC BANKCALL # AND WAIT FOR KEYBOARD ACTION.
CADR GOFLASH
TCF ENDP76
TC +2 # PROCEED
TC -5 # STORE DATA AND REPEAT FLASHING
TC PHASCHNG
OCT 04024
INDEX OPTFLAG
CAF V06N84 # FLASH V06 N84 (OR N81), LAST DELTV,
## Page 712
TC BANKCALL # AND WAIT FOR KEYBOARD ACTION.
CADR GOFLASH
TCF ENDP76
TC +2
TC -6 # STORE DATA & REPEAT FLASHING DSP
TC INTPRET # RETURN TO INTERPRETIVE CODE
DLOAD SET
TIG
NODOFLAG
STORE TDEC1
CCALL
OPTFLAG
INTADR
COMPMAT VLOAD UNIT
RATT
VCOMP # U(-R)
STORE 24D # U(-R) TO 24D
VXV UNIT # U(-R) X V = U(V X R)
VATT
STORE 18D
VXV UNIT # U(V X R) X U(-R) = U((R X V) X R)
24D
STORE 12D
SLOAD BHIZ
OPTFLAG
+4
VLOAD
DELVLVC # FROM CM
STORE DELVOV
VLOAD
DELVOV # FROM LM
DVTRANS 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
## Page 713
CLEAR DLOAD
INTYPFLG
TETTHIS
INTOTHIS STCALL TDEC1
INTEGRVS
CALL
INTSTALL
VLOAD
RATT1
STORE RRECT
STODL RCV
TAT
STOVL TET
VATT1
CALL
MINIRECT
EXIT
TC PHASCHNG
OCT 04024
TC INTPRET
SET CCALL
REINTFLG
OPTFLAG
UPDATADR
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 0681
V06N3376 NV 0633
INTADR CADR OTHPREC
CADR THISPREC
UPDATADR CADR ATOPOTH
CADR ATOPTHIS
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
## Page 714
## This page is completely blank in the original assembly-listing hardcopy.