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
KALCMANU_STEERING.agc
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: KALCMANU_STEERING.agc
## Purpose: A section of LUM69 revision 2.
## It is part of the reconstructed source code for the flown
## version of the flight software for the Lunar Module's (LM)
## Apollo Guidance Computer (AGC) for Apollo 10. The code has
## been recreated from a copy of Luminary revsion 069, using
## changes present in Luminary 099 which were described in
## Luminary memos 75 and 78. The code has been adapted such
## that the resulting bugger words exactly match those specified
## for LUM69 revision 2 in NASA drawing 2021152B, which gives
## relatively high confidence that the reconstruction is correct.
## Reference: pp. 378-382
## Assembler: yaYUL
## Contact: Ron Burkey <info@sandroid.org>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2019-07-27 MAS Created from Luminary 69.
## Page 378
# GENERATION OF STEERING COMMANDS FOR DIGITAL AUTOPILOT FREE FALL MANEUVERS
#
# NEW COMMANDS WILL BE GENERATED EVERY ONE SECOND DURING THE MANEUVER
EBANK= TTEMP
NEWDELHI TC BANKCALL # CHECK FOR AUTO STABILIZATION
CADR ISITAUTO # ONLY
CCS A
TCF NOGO -2
NEWANGL TC INTPRET
AXC,1 AXC,2
MIS # COMPUTE THE NEW MATRIX FROM S/C TO
KEL # STABLE MEMBER AXES
CALL
MXM3
VLOAD STADR
STOVL MIS +12D # CALCULATE NEW DESIRED CDU ANGLES
STADR
STOVL MIS +6D
STADR
STORE MIS
AXC,1 CALL
MIS
DCMTOCDU # PICK UP THE NEW CDU ANGLES FROM MATRIX
RTB
V1STO2S
STORE NCDU # NEW CDU ANGLES
BONCLR EXIT
CALCMAN2
MANUSTAT # TO START MANEUVER
CAF TWO # +0 OTHERWISE
INCRDCDU TS SPNDX
INDEX SPNDX
CA BCDU # INITIAL CDU ANGLES
EXTEND # OR PREVIOUS DESIRED CDU ANGLES
INDEX SPNDX
MSU NCDU
EXTEND
SETLOC KALCMON1
BANK
MP DT/TAU
CCS A # CONVERT TO 2S COMPLEMENT
AD ONE
TCF +2
COM
INDEX SPNDX
TS DELDCDU # ANGLE INCREMENTS TO BE ADDED TO
INDEX SPNDX # CDUXD, CDUYD, CDUZD EVERY TENTH SECOND
## Page 379
CA NCDU # BY LEM DAP
INDEX SPNDX
XCH BCDU
INDEX SPNDX
TS CDUXD
CCS SPNDX
TCF INCRDCDU # LOOP FOR THREE AXES
RELINT
# COMPARE PRESENT TIME WITH TIME TO TERMINATE MANEUVER
TMANUCHK TC TIMECHK
TCF CONTMANU
CAF ONE
MANUSTAL INHINT # END MAJOR PART OF MANEUVER WITHIN 1 SEC
TC WAITLIST # UNDER WAITLIST CALL TO MANUSTOP
EBANK= TTEMP
2CADR MANUSTOP
RELINT
TCF ENDOFJOB
TIMECHK EXTEND
DCS TIME2
DXCH TTEMP
EXTEND
DCA TM
DAS TTEMP
CCS TTEMP
TC Q
TCF +2
TCF 2NDRETRN
CCS TTEMP +1
TC Q
TCF MANUOFF
COM
MANUOFF AD ONESEK +1
EXTEND
BZMF 2NDRETRN
INCR Q
2NDRETRN INCR Q
TC Q
DT/TAU DEC .1
MANUSTAT EXIT # INITIALIZATION ROUTINE
EXTEND # FOR AUTOMATIC MANEUVERS
DCA TIME2
## Page 380
DAS TM # TM+T0 MANEUVER COMPLETION TIME
EXTEND
DCS ONESEK
DAS TM # (TM+T0)-1
INHINT
CAF TWO
RATEBIAS TS KSPNDX
DOUBLE
TS KDPNDX
INDEX A
CA BRATE
INDEX KSPNDX # STORE MANEUVER RATE IN
TS OMEGAPD # OMEGAPD, OMEGAQD, OMEGARD
EXTEND
BZMF +2 # COMPUTE ATTITUDE ERROR
COM # OFFSET = (WX)ABS(WX)/2AJX
EXTEND # WHERE AJX= 2-JET ACCELERATION
MP BIASCALE # = -1/16
EXTEND
INDEX KDPNDX
MP BRATE
EXTEND
INDEX KSPNDX
DV 1JACC # = AJX $ 90 DEG/SEC-SEC
INDEX KSPNDX
TS DELPEROR # $ 180 DEG
CCS KSPNDX
TCF RATEBIAS
CA TIME1
AD ONESEK +1
XCH NEXTIME
TCF INCRDCDU -1
ONESEK DEC 0
DEC 100
BIASCALE OCT 75777 # = -1/16
CONTMANU CS TIME1 # RESET FOR NEXT DCDU UPDATE
AD NEXTIME
CCS A
AD ONE
TCF MANUCALL
AD NEGMAX
COM
MANUCALL INHINT # CALL FOR NEXT UPDATE VIA WAITLIST
TC WAITLIST
EBANK= TTEMP
2CADR UPDTCALL
## Page 381
CAF ONESEK +1 # INCREMENT TIME FOR NEXT UPDATE
ADS NEXTIME
TCF ENDOFJOB
UPDTCALL CAF PRIO26 # SATELLITE PROGRAM TO CALL FOR UPDATE
TC FINDVAC # OF STEERING COMMANDS
EBANK= TTEMP
2CADR NEWDELHI
TC TASKOVER
## Page 382
# ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS
MANUSTOP CAF ZERO # ZERO MANEUVER RATES
TS DELDCDU2
TS OMEGARD
TS DELREROR
TS DELDCDU1
TS OMEGAQD
TS DELQEROR
CA CPSI # SET DESIRED GIMBAL ANGLES TO
TS CDUZD # DESIRED FINAL GIMBAL ANGLES
CA CTHETA
TS CDUYD
ENDROLL CA CPHI # NO FINAL YAW
TS CDUXD
CAF ZERO
TS OMEGAPD # I.E. MANEUVER DID NOT GO THRU
TS DELDCDU # GIMBAL LOCK ORIGINALLY
TS DELPEROR
GOODMANU CA ATTPRIO # RESTORE USERS PRIO
TS NEWPRIO
CA ZERO # ZERO ATTCADR
DXCH ATTCADR
TC SPVAC # RETURN TO USER
TC TASKOVER
Computing file changes ...