Reorganized files to separate Luminary099 source code from Comanche055 source code
This commit is contained in:
503
Comanche055/MEASUREMENT_INCORPORATION.s
Normal file
503
Comanche055/MEASUREMENT_INCORPORATION.s
Normal file
@ -0,0 +1,503 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: MEASUREMENT_INCORPORATION.agc
|
||||
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
|
||||
# It is part of the source code for the Command Module's (CM)
|
||||
# Apollo Guidance Computer (AGC), for Apollo 11.
|
||||
# Assembler: yaYUL
|
||||
# Contact: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1252-1261
|
||||
# Mod history: 2009-05-14 RSB Adapted from the Colossus249/ file of the
|
||||
# same name, using Comanche055 page images.
|
||||
#
|
||||
# This source code has been transcribed or otherwise adapted from digitized
|
||||
# images of a hardcopy from the MIT Museum. The digitization was performed
|
||||
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
|
||||
# thanks to both. The images (with suitable reduction in storage size and
|
||||
# consequent reduction in image quality as well) are available online at
|
||||
# www.ibiblio.org/apollo. If for some reason you find that the images are
|
||||
# illegible, contact me at info@sandroid.org about getting access to the
|
||||
# (much) higher-quality images which Paul actually created.
|
||||
#
|
||||
# Notations on the hardcopy document read, in part:
|
||||
#
|
||||
# Assemble revision 055 of AGC program Comanche by NASA
|
||||
# 2021113-051. 10:28 APR. 1, 1969
|
||||
#
|
||||
# This AGC program shall also be referred to as
|
||||
# Colossus 2A
|
||||
|
||||
# Page 1252
|
||||
# INCORP1 -- PERFORMS THE SIX DIMENSIONAL STATE VECTOR DEVIATION FOR POSITION
|
||||
# AND VELOCITY OR THE NINE-DIMENSIONAL DEVIATION OF POSITION, VELOCITY, AND
|
||||
# RADAR OR LANDMARK BIAS. THE OUTPUT OF THE BVECTOR ROUTINE ALONG WITH THE
|
||||
# ERROR TRANSITION MATRIX (W) ARE USED AS INPUT TO THE ROUTINE. THE DEVIATION
|
||||
# IS OBTAINED BY COMPUTING AN ESTIMATED TRACKING MEASUREMENT FROM THE
|
||||
# CURRENT STATE VECTOR AND COMPARING IT WITH AN ACTUAL TRACKING MEASUREMENT
|
||||
# AND APPLYING A STATISTICAL WEIGHTING VECTOR.
|
||||
#
|
||||
# INPUT
|
||||
# DMENFLG = 0 (6-DIMENSIONAL BVECTOR), =1 (9-DIMENSIONAL)
|
||||
# W = ERROR TRANSITION MATRIX 6X6 OR 9X9
|
||||
# VARIANCE = VARIANCE (SCALAR)
|
||||
# DELTAQ = MEASURED DEVIATION (SCALAR)
|
||||
# BVECTOR = 6 OR 9 DIMENSIONAL BVECTOR
|
||||
#
|
||||
# OUTPUT
|
||||
# DELTAX = STATE VECTOR DEVIATIONS 6 OR 9 DIMENSIONAL
|
||||
# ZI = VECTOR USED FOR THE INCORPORATION 6 OR 9 DIMENSIONAL
|
||||
# GAMMA = SCALAR
|
||||
# OMEGA = OMEGA WEIGHTING VECTOR 6 OR 9 DIMENSIONAL
|
||||
#
|
||||
# CALLING SEQUENCE
|
||||
# L CALL INCORP1
|
||||
#
|
||||
# NORMAL EXIT
|
||||
# L+1 OF CALLING SEQUENCE
|
||||
|
||||
BANK 37
|
||||
SETLOC MEASINC
|
||||
BANK
|
||||
|
||||
COUNT* $$/INCOR
|
||||
|
||||
EBANK= W
|
||||
|
||||
INCORP1 STQ
|
||||
EGRESS
|
||||
AXT,1 SSP
|
||||
54D
|
||||
S1
|
||||
18D # IX1 = 54 S1= 18
|
||||
AXT,2 SSP
|
||||
18D
|
||||
S2
|
||||
6 # IX2 = 18 S2=6
|
||||
Z123 VLOAD MXV*
|
||||
BVECTOR # BVECTOR (0)
|
||||
W +54D,1
|
||||
STORE ZI +18D,2
|
||||
VLOAD
|
||||
BVECTOR +6 # BVECTOR (1)
|
||||
# Page 1253
|
||||
MXV* VAD*
|
||||
W +108D,1
|
||||
ZI +18D,2
|
||||
STORE ZI +18D,2
|
||||
VLOAD
|
||||
BVECTOR +12D # BVECTOR (2)
|
||||
MXV* VAD*
|
||||
W +162D,1
|
||||
ZI +18D,2 # B(0)*W+B(1)*(W+54)+B(2)*(W+108) FIRST PASS
|
||||
STORE ZI +18D,2 # ZI THEN Z2 THEN Z3
|
||||
TIX,1
|
||||
INCOR1
|
||||
INCOR1 TIX,2 BON
|
||||
Z123 # LOOP FOR Z1,Z2,Z3
|
||||
DMENFLG
|
||||
INCOR1A
|
||||
VLOAD
|
||||
ZEROVECS
|
||||
STORE ZI +12D
|
||||
INCOR1A SETPD VLOAD
|
||||
0
|
||||
ZI
|
||||
VSQ RTB
|
||||
TPMODE
|
||||
PDVL VSQ
|
||||
ZI +6
|
||||
RTB TAD
|
||||
TPMODE
|
||||
PDVL VSQ
|
||||
ZI +12D
|
||||
RTB TAD
|
||||
TPMODE
|
||||
TAD AXT,2
|
||||
VARIANCE
|
||||
0
|
||||
STORE TRIPA # ZI*2 + Z2*2 + Z3*2 + VARIANCE
|
||||
TLOAD BOV
|
||||
VARIANCE # CLEAR OVFIND
|
||||
+1
|
||||
STORE TEMPVAR # TEMP STORAGE FOR VARIANCE
|
||||
BZE
|
||||
INCOR1C
|
||||
INCOR1B SL2 BOV
|
||||
INCOR1C
|
||||
STORE TEMPVAR
|
||||
INCR,2 GOTO
|
||||
DEC 1
|
||||
INCOR1B
|
||||
INCOR1C TLOAD ROUND
|
||||
TRIPA
|
||||
# Page 1254
|
||||
DMP SQRT
|
||||
TEMPVAR
|
||||
SL* TAD
|
||||
0,2
|
||||
TRIPA
|
||||
NORM INCR,2
|
||||
X2
|
||||
DEC -2
|
||||
SXA,2 AXT,2
|
||||
NORMGAM # NORMALIZATION COUNT -2 FOR GAMMA
|
||||
162D
|
||||
BDDV SETPD
|
||||
DP1/4TH
|
||||
0
|
||||
STORE GAMMA
|
||||
TLOAD NORM
|
||||
TRIPA
|
||||
X1
|
||||
DLOAD PDDL # PD 0-1 = NORM (A)
|
||||
MPAC
|
||||
DELTAQ
|
||||
NORM
|
||||
S1
|
||||
XSU,1 SR1
|
||||
S1
|
||||
DDV PUSH # PD 0-1 = DELTAQ/A
|
||||
GOTO
|
||||
NEWZCOMP
|
||||
-3 SSP
|
||||
S2
|
||||
54D
|
||||
INCOR2 VLOAD VXM* # COMPUT OMEGA1,2,3
|
||||
ZI
|
||||
W +162D,2
|
||||
PUSH VLOAD
|
||||
ZI +6
|
||||
VXM* VAD
|
||||
W +180D,2
|
||||
PUSH VLOAD
|
||||
ZI +12D
|
||||
VXM* VAD
|
||||
W +198D,2
|
||||
PUSH TIX,2 # PD 2-7=OMEGA1, 8-13=OMEGA2, 14-19=OMEGA3
|
||||
INCOR2
|
||||
VLOAD STADR
|
||||
STORE OMEGA +12D
|
||||
VLOAD STADR
|
||||
STORE OMEGA +6
|
||||
VLOAD STADR
|
||||
STORE OMEGA
|
||||
# Page 1255
|
||||
BON VLOAD
|
||||
DMENFLG
|
||||
INCOR2AB
|
||||
ZEROVECS
|
||||
STORE OMEGA +12D
|
||||
INCOR2AB AXT,2 SSP
|
||||
18D
|
||||
S2
|
||||
6
|
||||
INCOR3 VLOAD*
|
||||
OMEGA +18D,2
|
||||
VXSC VSL*
|
||||
0 # DELTAQ/A
|
||||
0,1
|
||||
STORE DELTAX +18D,2
|
||||
TIX,2 VLOAD
|
||||
INCOR3
|
||||
DELTAX +6
|
||||
VSL3
|
||||
STORE DELTAX +6
|
||||
GOTO
|
||||
EGRESS
|
||||
|
||||
# Page 1256
|
||||
# INCORP2 -- INCORPORATES THE COMPUTED STATE VECTOR DEVIATIONS INTO THE
|
||||
# ESTIMATED STATE VECTOR. THE STATE VECTOR UPDATED MAY BE FOR EITHER THE
|
||||
# LEM OR THE CSM. DETERMINED BY FLAG VEHUPFLG. (ZERO = LEM) (1 = CSM)
|
||||
#
|
||||
# INPUT
|
||||
# PERMANENT STATE VECTOR FOR EITHER THE LEM OR CSM
|
||||
# VEHUPFLG = UPDATE VEHICLE C=LEM 1=CSM
|
||||
# W = ERROR TRANSITION MATRIX
|
||||
# DELTAX = COMPUTED STATE VECTOR DEVIATIONS
|
||||
# DMENFLG = SIZE OF W MATRIX (ZERO=6X6) (1=9X9)
|
||||
# GAMMA = SCALAR FOR INCORPORATION
|
||||
# ZI = VECTOR USED IN INCORPORATION
|
||||
# OMEGA = WEIGHTING VECTOR
|
||||
#
|
||||
# OUTPUT
|
||||
# UPDATED PERMANENT STATE VECTOR
|
||||
#
|
||||
# CALLING SEQUENCE
|
||||
# L CALL INCORP2
|
||||
#
|
||||
# NORMAL EXIT
|
||||
# L+1 OF CALLING SEQUENCE
|
||||
#
|
||||
|
||||
SETLOC MEASINC1
|
||||
BANK
|
||||
|
||||
COUNT* $$/INCOR
|
||||
|
||||
INCORP2 STQ CALL
|
||||
EGRESS
|
||||
INTSTALL
|
||||
VLOAD VXSC # CALC. GAMMA*OMEGA1,2,3
|
||||
OMEGA
|
||||
GAMMA
|
||||
STOVL OMEGAM1
|
||||
OMEGA +6
|
||||
VXSC
|
||||
GAMMA
|
||||
STOVL OMEGAM2
|
||||
OMEGA +12D
|
||||
VXSC
|
||||
GAMMA
|
||||
STORE OMEGAM3
|
||||
EXIT
|
||||
CAF 54DD # INITIAL IX 1 SETTING FOR W MATRIX
|
||||
TS WIXA
|
||||
TS WIXB
|
||||
CAF ZERO
|
||||
TS ZIXA # INITIAL IX 2 SETTING FOR Z COMPONENT
|
||||
TS ZIXB
|
||||
FAZA TC PHASCHNG
|
||||
# Page 1257
|
||||
OCT 04022
|
||||
TC UPFLAG
|
||||
ADRES REINTFLG
|
||||
FAZA1 CA WIXB # START FIRST PHASE OF INCORP2
|
||||
TS WIXA # TO UPDATE 6 OR 9 DIM. W MATRIX IN TEMP
|
||||
CA ZIXB
|
||||
TS ZIXA
|
||||
TC INTPRET
|
||||
LXA,1 LXA,2
|
||||
WIXA
|
||||
ZIXA
|
||||
SSP DLOAD*
|
||||
S1
|
||||
6
|
||||
ZI,2
|
||||
DCOMP NORM # CALC UPPER 3X9 PARTITION OF W MATRIX
|
||||
S2
|
||||
VXSC XCHX,2
|
||||
OMEGAM1
|
||||
S2
|
||||
LXC,2 XAD,2
|
||||
X2
|
||||
NORMGAM
|
||||
VSL* XCHX,2
|
||||
0,2
|
||||
S2
|
||||
VAD*
|
||||
W +54D,1
|
||||
STORE HOLDW
|
||||
DLOAD* DCOMP # CALC MIDDLE 3X9 PARTITION OF W MATRIX
|
||||
ZI,2
|
||||
NORM VXSC
|
||||
S2
|
||||
OMEGAM2
|
||||
XCHX,2 LXC,2
|
||||
S2
|
||||
X2
|
||||
XAD,2 VSL*
|
||||
NORMGAM
|
||||
0,2
|
||||
XCHX,2 VAD*
|
||||
S2
|
||||
W +108D,1
|
||||
STORE HOLDW +6
|
||||
BOFF
|
||||
DMENFLG # BRANCH IF 6 DIMENSIONAL
|
||||
FAZB
|
||||
DLOAD* DCOMP # CALC LOWER 3X9 PARTITION OF W MATRIX
|
||||
ZI,2
|
||||
NORM VXSC
|
||||
# Page 1258
|
||||
S2
|
||||
OMEGAM3
|
||||
XCHX,2 LXC,2
|
||||
S2
|
||||
X2
|
||||
XAD,2 VSL*
|
||||
NORMGAM
|
||||
0,2
|
||||
XCHX,2 VAD*
|
||||
S2
|
||||
W +162D,1
|
||||
STORE HOLDW +12D
|
||||
FAZB CALL
|
||||
GRP2PC
|
||||
EXIT
|
||||
FAZB1 CA WIXA # START 2ND PHASE OF INCORP2 TO TRANSFER
|
||||
AD 6DD # TEMP REG TO PERM W MATRIX
|
||||
TS WIXB
|
||||
CA ZIXA
|
||||
AD MINUS2
|
||||
TS ZIXB
|
||||
TC INTPRET
|
||||
LXA,1 SSP
|
||||
WIXA
|
||||
S1
|
||||
6
|
||||
VLOAD
|
||||
HOLDW
|
||||
STORE W +54D,1
|
||||
VLOAD
|
||||
HOLDW +6
|
||||
STORE W +108D,1
|
||||
BOFF VLOAD
|
||||
DMENFLG
|
||||
FAZB5
|
||||
HOLDW +12D
|
||||
STORE W +162D,1
|
||||
FAZB2 TIX,1 GOTO
|
||||
+2
|
||||
FAZC # DONE WITH W MATRIX. UPDATE STATE VECTOR
|
||||
RTB
|
||||
FAZA
|
||||
FAZB5 SLOAD DAD
|
||||
ZIXB
|
||||
12DD
|
||||
BHIZ GOTO
|
||||
FAZC
|
||||
FAZB2
|
||||
FAZC CALL
|
||||
GRP2PC
|
||||
# Page 1259
|
||||
VLOAD VAD # START 3RD PHASE OF INCORP2
|
||||
X789 # 7TH, 8TH, 9TH COMPONENTN OF STATE VECTOR
|
||||
DELTAX +12D # INCORPORATION FOR X789
|
||||
STORE TX789
|
||||
BON RTB
|
||||
VEHUPFLG
|
||||
DOCSM
|
||||
MOVEPLEM
|
||||
FAZAB BOVB AXT,2
|
||||
TCDANZIG
|
||||
0
|
||||
BOFF AXT,2
|
||||
MOONTHIS
|
||||
+2
|
||||
2
|
||||
VLOAD VSR*
|
||||
DELTAX # B27 IF MOON ORBIT, B29 IF EARTH
|
||||
0 -7,2
|
||||
VAD BOV
|
||||
TDELTAV
|
||||
FAZAB1
|
||||
STOVL TDELTAV
|
||||
DELTAX +6 # B5 IF MOON ORBIT, B7 IF EARTH
|
||||
VSR* VAD
|
||||
0 -4,2
|
||||
TNUV
|
||||
BOV
|
||||
FAZAB2
|
||||
STCALL TNUV
|
||||
FAZAB3
|
||||
FAZAB1 VLOAD VAD
|
||||
RCV
|
||||
DELTAX
|
||||
STORE RCV
|
||||
FAZAB2 VLOAD VAD
|
||||
VCV
|
||||
DELTAX +6
|
||||
STORE VCV
|
||||
SXA,2 CALL
|
||||
PBODY
|
||||
RECTIFY
|
||||
FAZAB3 CALL
|
||||
GRP2PC
|
||||
BON RTB
|
||||
VEHUPFLG
|
||||
DOCSM1
|
||||
MOVEALEM
|
||||
CALL
|
||||
SVDWN2 # STORE DOWNLINK STATE VECTOR
|
||||
FAZAB4 CALL
|
||||
# Page 1260
|
||||
GRP2PC # PHASE CHANGE
|
||||
BOFF VLOAD
|
||||
DMENFLG
|
||||
FAZAB5 # 6 DIMENSIONAL
|
||||
TX789 # 9 DIMENSIONAL
|
||||
STORE X789
|
||||
FAZAB5 LXA,1 SXA,1
|
||||
EGRESS
|
||||
QPRET
|
||||
EXIT
|
||||
TC POSTJUMP # EXIT
|
||||
CADR INTWAKE
|
||||
DOCSM RTB GOTO
|
||||
MOVEPCSM
|
||||
FAZAB
|
||||
DOCSM1 RTB CALL
|
||||
MOVEACSM
|
||||
SVDWN1 # STORE DOWNLINK STATE VECTOR
|
||||
GOTO
|
||||
FAZAB4
|
||||
ZEROD = ZEROVECS
|
||||
54DD DEC 54
|
||||
6DD DEC -6
|
||||
12DD DEC 12
|
||||
SETLOC MEASINC2
|
||||
BANK
|
||||
COUNT* $$/INCOR
|
||||
|
||||
NEWZCOMP VLOAD ABVAL
|
||||
ZI
|
||||
STOVL NORMZI
|
||||
ZI +6
|
||||
ABVAL PUSH
|
||||
DSU BMN
|
||||
NORMZI
|
||||
+3
|
||||
DLOAD STADR
|
||||
STORE NORMZI
|
||||
VLOAD ABVAL
|
||||
ZI +12D
|
||||
PUSH DSU
|
||||
NORMZI
|
||||
BMN DLOAD
|
||||
NEWZCMP1
|
||||
STADR
|
||||
STCALL NORMZI # LARGEST ABVAL
|
||||
NEWZCMP1
|
||||
|
||||
SETLOC MEASINC3
|
||||
BANK
|
||||
|
||||
# Page 1261
|
||||
NEWZCMP1 DLOAD SXA,1
|
||||
NORMZI
|
||||
NORMZI # SAVE X1
|
||||
NORM INCR,1
|
||||
X1
|
||||
DEC 2
|
||||
VLOAD VSL*
|
||||
ZI
|
||||
0,1
|
||||
STOVL ZI
|
||||
ZI +6
|
||||
VSL*
|
||||
0,1
|
||||
STOVL ZI +6
|
||||
ZI +12D
|
||||
VSL* SXA,1
|
||||
0,1
|
||||
NORMZI +1 # SAVE SHIFT
|
||||
STORE ZI +12D
|
||||
LXA,1 XSU,1
|
||||
NORMGAM
|
||||
NORMZI +1
|
||||
XSU,1
|
||||
NORMZI +1
|
||||
SXA,1 LXC,1
|
||||
NORMGAM
|
||||
NORMZI +1
|
||||
XAD,1 SETPD
|
||||
NORMZI
|
||||
2D
|
||||
GOTO
|
||||
INCOR2 -3
|
||||
NORMZI = 36D
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user