Proof R60_62 #247 (#386)

* Proof FIXED_FIXED_CONSTANT_POOL (#207)

* wip(p391/398): Proof R60_62 #247

* wip(p398/398: DONE): Proof R60_62 #247
This commit is contained in:
Glenn Dwiyatcita 2019-05-08 20:41:36 +02:00 committed by James Harris
parent 4f83a11ecb
commit e82746d732

View File

@ -37,7 +37,7 @@
COUNT 27/R60 COUNT 27/R60
# CONFORMS TO GSOP CHAPTER FOUR REVISION LOGIC 09 JAN 18, 1968 # CONFORMS TO GSOP CHAPTER FOUR REVISION LOGIC 09 JAN 18,1968
R60CSM TC MAKECADR R60CSM TC MAKECADR
TS TEMPR60 TS TEMPR60
@ -51,7 +51,7 @@ REDOMANN CAF BIT6
TC INTPRET TC INTPRET
CALL CALL
VECPOINT # TO COMPUTE FINAL ANGLES VECPOINT # TO COMPUTE FINAL ANGLES
STORE CPHI # STORE FINAL ANGLES -- CPHI, CTHETA, CPSI STORE CPHI # STORE FINAL ANGLES - CPHI,CTHETA,CPSI
EXIT EXIT
TOBALL CAF V06N18 TOBALL CAF V06N18
@ -59,7 +59,7 @@ TOBALL CAF V06N18
CADR GOPERF2R # DISPLAY PLEASE PERFORM AUTO MANEUVER CADR GOPERF2R # DISPLAY PLEASE PERFORM AUTO MANEUVER
TC R61TEST TC R61TEST
TC REDOMANC # PROCEED TC REDOMANC # PROCEED
TCF ENDMANU1 # ENTER I.E., FINISHED WITH R60 TCF ENDMANU1 # ENTER I.E. FINISHED WITH R60
TC CHKLINUS # TO CHECK FOR PRIORITY DISPLAYS TC CHKLINUS # TO CHECK FOR PRIORITY DISPLAYS
TC ENDOFJOB TC ENDOFJOB
@ -83,14 +83,14 @@ TOBALLC CAF PRIO30 # IS MODE AUTO AND CTL GNC
BZF +2 # AUTO, NON-FLASH N18 BZF +2 # AUTO, NON-FLASH N18
TCF TOBALL # NOT AUTO TCF TOBALL # NOT AUTO
CAF V06N18 # STATIC UP NON-FLASHING V06 N18 CAF V06N18 # SET UP NON-FLASHING V06 N18
TC BANKCALL TC BANKCALL
CADR GODSPR CADR GODSPR
TC CHKLINUS TC CHKLINUS
STARTMNV TC BANKCALL STARTMNV TC BANKCALL
CADR GOMANUR CADR GOMANUR
ENDMANUV TCF TOBALL # FINISHED MANEUVER. ENDMANUV TCF TOBALL # FINISHED MANEUVER
ENDMANU1 TC DOWNFLAG # RESET 3-AXIS FLAG ENDMANU1 TC DOWNFLAG # RESET 3-AXIS FLAG
ADRES 3AXISFLG # BIT 6 FLAG 5 ADRES 3AXISFLG # BIT 6 FLAG 5
@ -98,13 +98,13 @@ ENDMANU1 TC DOWNFLAG # RESET 3-AXIS FLAG
TC BANKJUMP TC BANKJUMP
CHKLINUS CS FLAGWRD4 CHKLINUS CS FLAGWRD4
MASK BIT12 # IS PRIORITY DISPLAY FLAG SET? MASK BIT12 # IS PRIORITY DISPLAY FLAG SET
CCS A CCS A
TC Q # NO -- EXIT TC Q # NO - EXIT
CA Q CA Q
TS MPAC +2 # SAVE RETURN TS MPAC +2 # SAVE RETURN
CS THREE # OBTAIN LOCATION FOR RESTART CS THREE # OBTAIN LOCATION FOR RESTART.
AD BUF2 # HOLD Q OF LAST DISPLAY AD BUF2 # HOLDS Q OF LAST DISPLAY
TS TBASE1 TS TBASE1
TC PHASCHNG TC PHASCHNG
@ -141,7 +141,7 @@ GOREDO20 TC PHASCHNG
R61TEST CA MODREG # ARE WE IN P00. IF YES THIS MUST BE R61TEST CA MODREG # ARE WE IN P00. IF YES THIS MUST BE
EXTEND # VERB49 OR VERB89 SO DO ENDEXT. EXTEND # VERB49 OR VERB89 SO DO ENDEXT.
BZF ENDMANU1 # RESET 3-AXIS & RETURN. USER DOES ENDEXT BZF ENDMANU1 # RESET 3-AXIS & RUTURN. USER DOES ENDEXT
CA FLAGWRD4 # ARE WE IN R61 (P20) CA FLAGWRD4 # ARE WE IN R61 (P20)
MASK BIT12 MASK BIT12
EXTEND EXTEND
@ -152,53 +152,52 @@ BIT14+7 OCT 20100
V06N18 VN 0618 V06N18 VN 0618
# Page 393 # Page 393
# PROGRAM DESCRIPTION -- VECPOINT # PROGRAM DESCRIPTION - VECPOINT
#
# THIS INTERPRETIVE SUBROUTINE MAY BE USED TO POINT A SPACECRAFT AXIS IN A DESIRED DIRECTION. THE AXIS
# THIS INTERPRETIVE SUBROUTINE MAY BE USED TO POINT A SPACECRAFT AXIS IN A DESIRED DIRECTION. THE AXIS
# TO BE POINTED MUST APPEAR AS A HALF UNIT DOUBLE PRECISION VECTOR IN SUCCESSIVE LOCATIONS OF ERASABLE MEMORY # TO BE POINTED MUST APPEAR AS A HALF UNIT DOUBLE PRECISION VECTOR IN SUCCESSIVE LOCATIONS OF ERASABLE MEMORY
# BEGINNING WITH THE LOCATION CALLED SCAXIS. THE COMPONENTS OF THIS VECTOR ARE GIVEN IN SPACECRAFT COORDINATES. # BEGINNING WITH THE LOCATION CALLED SCAXIS. THE COMPONENTS OF THIS VECTOR ARE GIVEN IN SPACECRAFT COORDINATES.
# THE DIRECTION IN WHICH THIS AXIS IS TO BE POINTED MUST APPEAR AS A HALF UNIT DOUBLE PRECISION VECTOR IN # THE DIRECTION IN WHICH THIS AXIS IS TO BE POINTED MUST APPEAR AS A HALF UNIT DOUBLE PRECISION VECTOR IN
# SUCCESSIVE LOCATIONS OF ERASABLE MEMORY BEGINNING WITH THE ADDRESS CALLED POINTVSM. THE COMPONENTS OF THIS # SUCCESSIVE LOCATIONS OF ERASABLE MEMORY BEGINNING WITH THE ADDRESS CALLED POINTVSM. THE COMPONENTS OF THIS
# VECTOR ARE GIVEN IN STABLE MEMBER COORDINATES. WITH THIS INFORMATION VECPOINT COMPUTES A SET OF THREE GIMBAL # VECTOR ARE GIVEN IN STABLE MEMBER COORDINATES. WITH THIS INFORMATION VECPOINT COMPUTES A SET OF THREE GIMBAL
# ANGLES (2'S COMPLEMENT) CORRESPONDING TO THE CROSS-PRODUCT ROTATION BETWEEN SCAXIS AND POINTVSM AND STORES THEM # ANGLES (2S COMPLEMENT) CORRESPONDING TO THE CROSS-PRODUCT ROTATION BETWEEN SCAXIS AND POINTVSM AND STORES THEM
# IN T(MPAC) BEFORE RETURNING TO THE CALLER. # IN T(MPAC) BEFORE RETURNING TO THE CALLER.
# # THIS ROTATION, HOWEVER, MAY BRING THE S/C INTO GIMBAL LOCK. WHEN POINTING A VECTOR IN THE Y-Z PLANE,
# THIS ROTATION, HOWEVER, MAY BRING THE S/C INTO GIMBAL LOCK. WHEN POINTING A VECTOR IN THE Y-Z PLANE, # THE TRANSPONDER AXIS, OR THE AOT FOR THE LEM, THE PROGRAM WILL CORRECT THIS PROBLEM BY ROTATING THE CROSS-
# THE TRANSPONDER AXIS, OR THE AOT FOR THE LEM, THE PROGRAM WILL CORRECT THIS PROGLEM BY ROTATING THE CROSS-
# PRODUCT ATTITUDE ABOUT POINTVSM BY A FIXED AMOUNT SUFFICIENT TO ROTATE THE DESIRED S/C ATTITUDE OUT OF GIMBAL # PRODUCT ATTITUDE ABOUT POINTVSM BY A FIXED AMOUNT SUFFICIENT TO ROTATE THE DESIRED S/C ATTITUDE OUT OF GIMBAL
# LOCK. IF THE AXIS TO BE POINTED IS MORE THAN 40.6 DEGREES BUT LESS THAN 60.5 DEG FROM THE +X (OR -X) AXIS, # LOCK. IF THE AXIS TO BE POINTED IS MORE THAN 40.6 DEGREES BUT LESS THAN 60.5 DEG FROM THE +X (OR-X) AXIS,
# THE ADDITIONAL ROTATION TO AVOID GIMBAL LOCK IS 35 DEGREES. IF THE AXIS IS MORE THAN 60.5 DEGREES FROM +X (OR -X) # THE ADDITIONAL ROTATION TO AVOID GIMBAL LOCK IS 35 DEGREES. IF THE AXIS IS MORE THAN 60.5 DEGREES FROM +X (OR -X)
# THE ADDITIONAL ROTATION IS 35 DEGREES. THE GIMBAL ANGLES CORRESPONDING TO THIS ATTITUDE ARE THEN COMPUTED AND # THE ADDITIONAL ROTATION IS 35 DEGREES. THE GIMBAL ANGLES CORRESPONDING TO THIS ATTITUDE ARE THEN COMPUTED AND
# STORED AS 2'S COMPLEMENT ANGLES N T(MPAC) BEFORE RETURNING TO THE CALLER. # STORED AS 2S COMPLIMENT ANGLES IN T(MPAC) BEFORE RETURNING TO THE CALLER.
# # WHEN POINTING THE X-AXIS, OR THE THRUST VECTOR, OR ANY VECTOR WITHIN 40.6 DEG OF THE X-AXIS, VECPOINT
# WHEN POINTING THE X-AXIS, OR THE THRUST VECTOR, OR ANY VECTOR WITHIN 40.6 DEG OF THE X-AXIS, VECPOINT
# CANNOT CORRECT FOR A CROSS-PRODUCT ROTATION INTO GIMBAL LOCK. IN THIS CASE A PLATFORM REALIGNMENT WOULD BE # CANNOT CORRECT FOR A CROSS-PRODUCT ROTATION INTO GIMBAL LOCK. IN THIS CASE A PLATFORM REALIGNMENT WOULD BE
# REQUIRED TO POINT THE VECTOR IN THE DESIRED DIRECTION. AT PRESENT NO INDICATION IS GIVEN FOR THIS SITUATION # REQUIRED TO POINT THE VECTOR IN THE DESIRED DIRECTION. AT PRESENT NO INDICATION IS GIVEN FOR THIS SITUATION
# EXCEPT THAT THE FINAL MIDDLE GIMBAL ANGLE IN MPAC +2 IS GREATER THAN 59 DEGREES. # EXCEPT THAT THE FINAL MIDDLE GIMBAL ANGLE IN MPAC +2 IS GREATER THAN 59 DEGREES.
#
# CALLING SEQUENCE # CALLING SEQUENCE -
# # 1) LOAD SCAXIS, POINTVSM
# 1) LOAD SCAXIS, POINTVSM # 2) CALL
# 2) CALL
# VECPOINT # VECPOINT
#
# RETURNS WITH # RETURNS WITH
#
# 1) DESIRED OUTER GIMBAL ANGLE IN MPAC # 1) DESIRED OUTER GIMBAL ANGLE IN MPAC
# 2) DESIRED INNER GIMBAL ANGLE IN MPAC +1 # 2) DESIRED INNER GIMBAL ANGLE IN MPAC +1
# 3) DESIRED MIDDLE GIMBAL ANGLE IN MPAC +2 # 3) DESIRED MIDDLE GIMBAL ANGLE IN MPAC +2
#
# ERASABLES USED --
# # ERASABLES USED -
# 1) SCAXIS 6
# 2) POINTVSM 6 # 1) SCAXIS 6
# 3) MIS 18 # 2) POINTVSM 6
# 4) DEL 18 # 3) MIS 18
# 5) COF 6 # 4) DEL 18
# 6) VECQTEMP 1 # 5) COF 6
# 7) ALL OF VAC AREA 43 # 6) VECQTEMP 1
# # 7) ALL OF VAC AREA 43
# TOTAL 99
# TOTAL 99
SETLOC VECPT SETLOC VECPT
BANK BANK
@ -217,7 +216,7 @@ VECLEAR AXC,2 RTB
CDUTODCM # S/C AXES TO STABLE MEMBER AXES (MIS) CDUTODCM # S/C AXES TO STABLE MEMBER AXES (MIS)
VLOAD VXM VLOAD VXM
POINTVSM # RESOLVE THE POINTING DIRECTION VF INTO POINTVSM # RESOLVE THE POINTING DIRECTION VF INTO
MIS # INITIAL S/C AXES (VF = POINTVSM) MIS # INITIAL S/C AXES ( VF = POINTVSM)
UNIT UNIT
STORE 28D STORE 28D
# PD 28 29 30 31 32 33 # PD 28 29 30 31 32 33
@ -230,11 +229,11 @@ VECLEAR AXC,2 RTB
DSU BMN # VECTOR, IF LESS DSU BMN # VECTOR, IF LESS
DPB-14 # THAN B-14 ASSUME DPB-14 # THAN B-14 ASSUME
PICKAXIS # UNIT OPERATION PICKAXIS # UNIT OPERATION
VLOAD DOT # INVALID. VLOAD DOT # INVALID.
SCAXIS SCAXIS
28D 28D
SL1 ARCCOS SL1 ARCCOS
COMPMATX CALL # NO COMPUTE THE TRANSFORMATION FROM COMPMATX CALL # NOW COMPUTE THE TRANSFORMATION FROM
DELCOMP # FINAL S/C AXES TO INITIAL S/C AXES MFI DELCOMP # FINAL S/C AXES TO INITIAL S/C AXES MFI
AXC,1 AXC,2 AXC,1 AXC,2
MIS # COMPUTE THE TRANSFORMATION FROM FINAL MIS # COMPUTE THE TRANSFORMATION FROM FINAL
@ -246,8 +245,8 @@ COMPMATX CALL # NO COMPUTE THE TRANSFORMATION FROM
6 # MFS6 = SIN(CPSI) $2 6 # MFS6 = SIN(CPSI) $2
DSU BMN DSU BMN
SINGIMLC # = SIN(59 DEGS) $2 SINGIMLC # = SIN(59 DEGS) $2
FINDGIMB # /CPSI/ LESS THAN 59 DEGS. FINDGIMB # /CPSI/ LESS THAN 59 DEGS
# I.E., DESIRED ATTITUDE NOT IN GIMBAL LOCK # I.E. DESIRED ATTITUDE NOT IN GIMBAL LOCK
DLOAD ABS # CHECK TO SEE IF WE ARE POINTING DLOAD ABS # CHECK TO SEE IF WE ARE POINTING
SCAXIS # THE THRUST AXIS SCAXIS # THE THRUST AXIS
@ -268,8 +267,8 @@ COMPMATX CALL # NO COMPUTE THE TRANSFORMATION FROM
IGSAMEX VXV BMN # FIND THE SHORTEST WAY OF ROTATING THE IGSAMEX VXV BMN # FIND THE SHORTEST WAY OF ROTATING THE
SCAXIS # S/C OUT OF GIMBAL LOCK BY A ROTATION SCAXIS # S/C OUT OF GIMBAL LOCK BY A ROTATION
U=SCAXIS # ABOUT +- SCAXIS, I.E., IF (IG (SGN MFS3) U=SCAXIS # ABOUT +- SCAXIS, I.E. IF (IG (SGN MFS3)
# X SCAXIS . XF) LESS THAN Q, U = SCAXIS # X SCAXIS . XF) LESS THAN 0, U = SCAXIS
# OTHERWISE U = -SCAXIS. # OTHERWISE U = -SCAXIS.
VLOAD VCOMP VLOAD VCOMP
@ -289,7 +288,7 @@ CHEKAXIS DLOAD ABS
COMPMFSN # IN THIS CASE ROTATE 35 DEGS TO GET OUT COMPMFSN # IN THIS CASE ROTATE 35 DEGS TO GET OUT
# OF GIMBAL LOCK (VECANG2 $360) # OF GIMBAL LOCK (VECANG2 $360)
PICKANG1 DLOAD PICKANG1 DLOAD
VECANG1 # = 50 DEGS. $360 VECANG1 # = 50 DEGS $360
COMPMFSN CALL COMPMFSN CALL
DELCOMP # COMPUTE THE ROTATION ABOUT SCAXIS TO DELCOMP # COMPUTE THE ROTATION ABOUT SCAXIS TO
AXC,1 AXC,2 # BRING MFS OUT OF GIMBAL LOCK AXC,1 AXC,2 # BRING MFS OUT OF GIMBAL LOCK
@ -303,13 +302,13 @@ FINDGIMB AXC,1 CALL
0 # EXTRACT THE COMMANDED CDU ANGLES FROM 0 # EXTRACT THE COMMANDED CDU ANGLES FROM
DCMTOCDU # THIS MATRIX DCMTOCDU # THIS MATRIX
RTB SETPD RTB SETPD
V1STO2S # CONVERT TO 2'S COMPLEMENT V1STO2S # CONVERT TO 2:S COMPLEMENT
# Page 396 # Page 396
0 0
GOTO GOTO
VECQTEMP # RETURN TO CALLER VECQTEMP # RETURN TO CALLER
PICKAXIS VLOAD DOT # IF VF X VI = 0, FIND VF, VI PICKAXIS VLOAD DOT # IF VF X VI = 0, FIND VF . VI
28D 28D
SCAXIS SCAXIS
BMN TLOAD BMN TLOAD
@ -320,10 +319,10 @@ PICKAXIS VLOAD DOT # IF VF X VI = 0, FIND VF, VI
ROT180 VLOAD VXV # IF VF, VI ANTI-PARALLEL, 180 DEG ROTATION ROT180 VLOAD VXV # IF VF, VI ANTI-PARALLEL, 180 DEG ROTATION
MIS +6 # IS REQUIRED. Y STABLE MEMBER AXIS IN MIS +6 # IS REQUIRED. Y STABLE MEMBER AXIS IN
HIUNITX # INITIAL S/C AXES. HIUNITX # INITIAL S/C AXIS.
UNIT VXV # FIND Y(SM) X X(I) UNIT VXV # FIND Y(SM) X X(I)
SCAXIS # FIND UNIT(VI X UNIT(Y(SM) X X(I))) SCAXIS # FIND UNIT(VI X UNIT(Y(SM) X X(I)))
UNIT BOV # I.E., PICK A VECTOR IN THE PLANE OF X(I), UNIT BOV # I.E. PICK A VECTOR IN THE PLANE OF X(I),
PICKX # Y(SM) PERPENDICULAR TO VI PICKX # Y(SM) PERPENDICULAR TO VI
STODL COF STODL COF
36D # CHECK MAGNITUDE 36D # CHECK MAGNITUDE
@ -343,18 +342,18 @@ PICKX VLOAD GOTO # PICK THE XAXIS IN THIS CASE
SETLOC MANUVER1 SETLOC MANUVER1
BANK BANK
SINGIMLC 2DEC .4285836003 # = SIN(59) $2 SINGIMLC 2DEC .4285836003 # =SIN(59) $2
SINVEC1 2DEC .3796356537 # = SIN(49.4) $2 SINVEC1 2DEC .3796356537 # =SIN(49.4) $2
SINVEC2 2DEC .2462117800 # = SIN(29.5) $2 SINVEC2 2DEC .2462117800 # =SIN(29.5) $2
VECANG1 2DEC .1388888889 # = 50 DEGREES $360 VECANG1 2DEC .1388888889 # = 50 DEGREES $360
VECANG2 2DEC .09722222222 # = 35 DEGREES $360 VECANG2 2DEC .09722222222 # = 35 DEGREES $360
1BITDP OCT 0 # KEEP THIS BEFORE DPB(-14) ******** 1BITDP OCT 0 # KEEP THIS BEFORE DPB(-14) *********
DPB-14 OCT 00001 DPB-14 OCT 00001
# Page 397 # Page 397
OCT 00000 OCT 00000
@ -377,11 +376,10 @@ R62DISP CAF V06N22 # DISPLAY COMMAND ICDUS CPHI, CTHETA, CPHI
TCF R62DISP # ENTER TCF R62DISP # ENTER
# ASTRONAUT MAY LOAD NEW ICDUS AT THIS # ASTRONAUT MAY LOAD NEW ICDUS AT THIS
# POINT. # POINT
GOMOVE TC UPFLAG # SET FOR 3-AXIS MANEUVER GOMOVE TC UPFLAG # SET 3-AXIS FLAG
ADRES 3AXISFLG ADRES 3AXISFLG # BIT 6 FLAG 5
TC BANKCALL TC BANKCALL
CADR R60CSM CADR R60CSM
TCF ENDEXT TCF ENDEXT