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
IMU_PERFORMANCE_TESTS_4.agc
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: IMU_PERFORMANCE_TESTS_4.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. 395-402
## 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 395
# PROGRAM-IMU PERFORMANCE TESTS 4
# DATE-NOV 15, 1966
# BY-GEORGE SCHMIDT IL7-146 EXT 1126
# MOD NO-ZERO
#
# FUNCTIONAL DESCRIPTION
#
# THIS SECTION CONSISTS OF THE FILTER FOR THE GYRO DRIFT TESTS. NO COMPASS
# IS DONE IN LEM. FOR A DESCRIPTION OF THE FILTER SEE E-1973. THIS
# SECTION IS ENTERED FROM IMU 2. IT RETURNS THERE AT END OF TEST.
#
# EARTHR,OGC ZERO,ERTHRVSE
#
# NORMAL EXIT
#
# LENGTHOT GOES TO ZERO-RETURN TO IMU PERF TESTS 2 CONTROL
#
# ALARMS
#
# 1600 OVERFLOW IN DRIFT TEST
# 1601 BAD IMU MODING IN ANY ROUTINE THAT USES IMUSTALL
# OUTPUT
#
# FLASHING DISPLAY OF RESULTS - CONTROLLED IN IMU PERF TESTS 2
#
# DEBRIS
#
# ALL CENTRALS - ALL OF EBANK XSM
## Page 396
BANK 33
SETLOC IMU4
BANK
COUNT* $$/P07
EBANK= XSM
ESTIMS INHINT
CAE 1SECXT
TC TWIDDLE
EBANK= XSM
ADRES ALLOOP
CAF ZERO # ZERO THE PIPAS
TS PIPAX
TS PIPAY
TS PIPAZ
RELINT
CA 77DECML
TS ZERONDX
CA ALXXXZ
TC ZEROING
TC INTPRET
SLOAD
SCHZEROS
STOVL GCOMPSW -1
INTVAL +2
STOVL ALX1S
SCHZEROS
STORE DELVX
STORE GCOMP
SLOAD
TORQNDX
DCOMP BMN
VERTSKIP
CALL
ERTHRVSE
VERTSKIP EXIT
TC SLEEPIE +1
## Page 397
ALLOOP CA OVFLOWCK
EXTEND
BZF +2
TC TASKOVER
CCS ALTIM
CA A # SHOULD NEVER HIT THIS LOCATION
TS ALTIMS
CS A
TS ALTIM
CS ONE
AD GEOCOMPS
EXTEND
BZF +4
CA LENGTHOT
EXTEND
BZMF +5
CAE 1SECXT
TC TWIDDLE
EBANK= XSM
ADRES ALLOOP
CAF ZERO
XCH PIPAX
TS DELVX
CAF ZERO
XCH PIPAY
TS DELVY
CAF ZERO
XCH PIPAZ
TS DELVZ
SPECSTS CAF PRIO20
TC FINDVAC
EBANK= XSM
2CADR ALFLT # START THE JOB
TC TASKOVER
## Page 398
ALFLT CCS GEOCOMPS
TC +2
TC NORMLOP
TC BANKCALL
CADR 1/PIPA
NORMLOP TC INTPRET
DLOAD
INTVAL
STOVL S1
DELVX
VXM VSL1
XSM
DLOAD DCOMP
MPAC +3
STODL DPIPAY
MPAC +5
STORE DPIPAZ
SETPD AXT,1
0
8D
SLOAD DCOMP
GEOCOMPS
BMN
PERFERAS
ALCGKK SLOAD BMN
ALTIMS
ALFLT3
ALKCG AXT,2 LXA,1 # LOADS SLOPES AND TIME CONSTANTS AT RQST
12D
ALX1S
ALKCG2 DLOAD* INCR,1
ALFDK +144D,1
DEC -2
STORE ALDK +10D,2
TIX,2 SXA,1
ALKCG2
ALX1S
ALFLT3 AXT,1
8D
DELMLP DLOAD* DMP
DPIPAY +8D,1
PIPASC
SLR BDSU*
9D
INTY +8D,1
STORE INTY +8D,1
PDDL DMP*
VELSC
## Page 399
VLAUN +8D,1
SL2R
DSU STADR
STORE DELM +8D,1
STORE DELM +10D,1
TIX,1 AXT,2
DELMLP
4
ALILP DLOAD* DMPR*
ALK +4,2
ALDK +4,2
STORE ALK +4,2
TIX,2 AXT,2
ALILP
8D
ALKLP LXC,1 SXA,1
CMPX1
CMPX1
DLOAD* DMPR*
ALK +1,1
DELM +8D,2
DAD*
INTY +8D,2
STORE INTY +8D,2
DLOAD* DAD*
ALK +12D,2
ALDK +12D,2
STORE ALK +12D,2
DMPR* DAD*
DELM +8D,2
INTY +16D,2
STORE INTY +16D,2
DLOAD* DMP*
ALSK +1,1
DELM +8D,2
SL1R DAD*
VLAUN +8D,2
STORE VLAUN +8D,2
TIX,2 AXT,1
ALKLP
8D
LOOSE DLOAD* PDDL*
ACCWD +8D,1
VLAUN +8D,1
PDDL* VDEF
POSNV +8D,1
MXV VSL1
TRANSM1
## Page 400
DLOAD
MPAC
STORE POSNV +8D,1
DLOAD
MPAC +3
STORE VLAUN +8D,1
DLOAD
MPAC +5
STORE ACCWD +8D,1
TIX,1
LOOSE
AXT,2 AXT,1 # EVALUATE SINES AND COSINES
6
2
BOOP DLOAD* DMPR
ANGX +2,1
GEORGEJ
SR2R
PUSH SIN
SL3R XAD,1
X1
STORE 16D,2
DLOAD
COS
STORE 22D,2 # COSINES
TIX,2
BOOP
PERFERAS EXIT
CA EBANK7
TS EBANK
EBANK= ATIGINC
TC ATIGINC # GOTO ERASABLE TO CALCULATE ONLY TO RETN
# CAUTION
#
# THE ERASABLE PROGRAM THAT DOES THE CALCULATIONS MUST BE LOADED
# BEFORE ANY ATTEMPT IS MADE TO RUN THE IMU PERFORMANCE TEST
EBANK= AZIMUTH
CCS LENGTHOT
TC SLEEPIE
CCS TORQNDX
TCF +2
TC SETUPER1
CA CDUX
TS LOSVEC +1 # FOR TROUBLESHOOTING VD POSNS 2$4
## Page 401
SETUPER1 TC INTPRET
DLOAD PDDL # ANGLES FROM DRIFT TEST ONLY
ANGZ
ANGY
PDDL VDEF
ANGX
VCOMP VXSC
GEORGEJ
MXV VSR1
XSM
STORE OGC
EXIT
CA OGCPL
TC BANKCALL
CADR IMUPULSE
TC IMUSLLLG
GEOSTRT4 CCS TORQNDX # ONLY POSITIVE IF IN VERTICAL DRIFT TEST
TC VALMIS
TC INTPRET
CALL
ERTHRVSE
EXIT
TC TORQUE
SLEEPIE TS LENGTHOT # TEST NOT OVER-DECREMENT LENGTHOT
CCS TORQNDX # ARE WE DOING VERTDRIFT
TC EARTHR*
TC ENDOFJOB
SOMEERRR CA EBANK5
TS EBANK
CA ONE
TS OVFLOWCK # STOP ALLOOP FROM CALLING ITSELF
TC ALARM
OCT 1600
TC ENDTEST1
SOMERR2 CAF OCT1601
TC VARALARM
TC DOWNFLAG
ADRES IMUSE
TC ENDOFJOB
OCT1601 OCT 01601
DEC585 OCT 06200 # 3200 B+14 ORDER IS IMPORTANT
SCHZEROS 2DEC .00000000
## Page 402
2DEC .00000000
OCT 00000
ONEDPP OCT 00000 # ORDER IS IMPORTANT
OCT 00001
INTVAL OCT 4
OCT 2
DEC 144
DEC -1
SOUPLY 2DEC .93505870 # INITIAL GAINS FOR PIP OUTPUTS
2DEC .26266423 # INITIAL GAINS/4 FOR ERECTION ANGLES
77DECML DEC 77
ALXXXZ GENADR ALX1S -1
PIPASC 2DEC .13055869
VELSC 2DEC -.52223476 # 512/980.402
ALSK 2DEC .17329931 # SSWAY VEL GAIN X 980.402/4096
2DEC -.00835370 # SSWAY ACCEL GAIN X 980.402/4096
GEORGEJ 2DEC .63661977
GEORGEK 2DEC .59737013
Computing file changes ...