diff --git a/Comanche055/POWERED_FLIGHT_SUBROUTINES.agc b/Comanche055/POWERED_FLIGHT_SUBROUTINES.agc index 17bc407..3737473 100644 --- a/Comanche055/POWERED_FLIGHT_SUBROUTINES.agc +++ b/Comanche055/POWERED_FLIGHT_SUBROUTINES.agc @@ -37,22 +37,22 @@ EBANK= DEXDEX COUNT* $$/POWFL -# CDUTRIG, CDUTRIG1, CDUTRIG2, AND CD*GR*GS ALL COMPUTE THE SINES AND +# CDUTRIG, CDUTRIG1, CDUTRIG2, AND CD*GR*GS ALL COMPUTE THE SINES AND # COSINES OF THREE 2'S COMPLEMENT ANGLES AND PLACE THE RESULT, DOUBLE # PRECISION, IN THE SAME ORDER AS THE INPUTS, AT SINCDU AND COSCDU. AN -# ADDITIONAL OUTPUT IS THE 1'S COMPLENT ANGLES AT CDUSPOT. THESE -# ROUTINES GO OUT OF THEIR WAY TO LEAVE THE MPAC AREA AS THEY FIND IT. +# ADDITIONAL OUTPUT IS THE 1'S COMPLEMENT ANGLES AT CDUSPOT. THESE +# ROUTINES GO OUT OF THEIR WAY TO LEAVE THE MPAC AREA AS THEY FIND IT, # EXCEPT FOR THE GENERALLY UNIMPORTANT MPAC +2. THEY DIFFER ONLY IN # WHERE THEY GET THE ANGLES, AND IN METHOD OF CALLING. -# -# CDUTRIG (AND CDUTRIG1, WHICH CAN BE CALLED IN BASIC) COMPUTE THE + +# CDUTRIG (AND CDUTRIG1, WHICH CAN BE CALLED IN BASIC) COMPUTE THE # SINES AND COSINES FROM THE CURRENT CONTENTS OF THE CDU REGISTERS. # THE CONTENTS OF CDUTEMP, ETC., ARE NOT TOUCHED SO THAT THEY MAY # CONTINUE TO FORM A CONSISTENT SET WITH THE LATEST PIPA READINGS. -# -# CDUTRIG1 IS LIKE CDUTRIG EXCEPT THAT IT CAN BE CALLED IN BASIC. -# -# CD*TR*GS FINDS CDU VALUES IN CDUSPOT RATHER THAN IN CDUTEMP. THIS + +# CDUTRIG1 IS LIKE CDUTRIG EXCEPT THAT IT CAN BE CALLED IN BASIC. + +# CD*TR*GS FINDS CDU VALUES IN CDUSPOT RATHER THAN IN CDUTEMP. THIS # ALLOWS USERS TO MAKE TRANSFORMATIONS USING ARBITRARY ANGLES, OR REAL # ANGLES IN AN ORDER OTHER THAN X Y Z. A CALL TO THIS ROUTINE IS # NECESSARY IN PREPARATION FOR A CALL TO AX*SR*T IN EITHER OF ITS TWO @@ -62,8 +62,8 @@ # MORE THAN ONCE, PROVIDED THE ANGLES HAVE NOT CHANGED. NOTE THAT SINCE # IT CLOBBERS BUF2 (IN THE SINE AND COSINE ROUTINES) CD*TR*GS CANNOT BE # CALLED USING BANKCALL. SORRY. -# -# CD*TR*G IS LIKE CD*TR*GS EXCEPT THAT IT CAN BE CALLED IN + +# CD*TR*G IS LIKE CD*TR*GS EXCEPT THAT IT CAN BE CALLED IN # INTERPRETIVE. CDUTRIG EXIT @@ -118,10 +118,11 @@ TR*GL**P MASK SIX # MAKE IT EVEN AND SMALLER TC TEM2 # Page 1367 # ******************************************************************************************************* -# QUICTRIG, INTENDED FOR QUIDANCE CYCLE USE WHERE TIME IS CRITICAL, IS A MUCH FASTER VERSION OF CD*TR*GS. + +# QUICTRIG, INTENDED FOR GUIDANCE CYCLE USE WHERE TIME IS CRITICAL, IS A MUCH FASTER VERSION OF CD*TR*GS. # QUICTRIG COMPUTES AND STORES THE SINES AND COSINES OF THE 2'S COMPLEMENT ANGLES AT CDUSPOT, CDUSPOT +2, # AND CDUSPOT +4. UNLIKE CD*TR*GS, QUICTRIG DOES NOT LEAVE THE 1'S COMPLEMENT VERSIONS OF THE ANGLES IN -# CDUSPOT. QUICTRIG'S EXECUTION TIME IS 4.1 MS; THIS IS 10 TIMES AS FAST AS CD*TR*GS. QUICTRIG MAY BE +# CDUSPOT. QUICTRIG'S EXECUTION TIME IS 4.1 MS; THIS IS 10 TIMES AS FAST AS CD*TR*GS. QUICTRIG MAY BE # CALLED FROM INTERPRETIVE AS AN RTB OP-CODE, OR FROM BASIC VIA BANKCALL OR IBNKCALL. QUICTRIG INHINT # INHINT SINCE DAP USES THE SAME TEMPS @@ -151,10 +152,12 @@ QUICTRIG INHINT # INHINT SINCE DAP USES THE SAME TEMPS TC A # Page 1368 #**************************************************************************** -# THESE INTERFACE ROUTINES MAKE IT POSSIBLE TO CALL AX*SR*T, ETC., IN + + +# THESE INTERFACE ROUTINES MAKE IT POSSIBLE TO CALL AX*SR*T, ETC., IN # INTERPRETIVE. LATER, WHERE POSSIBLE, THEY WILL BE ELIMINATED. # -# NBSM WILL BE THE FIRST TO GO. IT SHOULD NOT BE USED. +# NBSM WILL BE THE FIRST TO GO. IT SHOULD NOT BE USED. NBSM STQ X2 @@ -168,20 +171,20 @@ NBSM STQ STCALL 32D # SINCE THERE'S NO STGOTO X2 -# THESE INTERFACE ROUTINES ARE PERMANENT. ALL RESTORE USER'S EBANK -# SETTING. ALL ARE STRICT INTERPRETIVE SUBROUTINES, CALLED USING "CALL", +# THESE INTERFACE ROUTINES ARE PERMANENT. ALL RESTORE USER'S EBANK +# SETTING. ALL ARE STRICT INTERPRETIVE SUBROUTINES, CALLED USING "CALL", # RETURNING VIA QPRET. ALL EXPECT AND RETURN THE VECTOR TO BE TRANSFOR- -# MED INTERPRETER-STYLE IN MPAC: COMPONENTS AT MPAC, MPAC +3, AND MPAC +5. -# -# TRG*SMNB AND TRG*NBSM BOTH EXPECT TO SEE THE 2'S COMPLEMENT ANGLES -# AT CDUSPOT (ORDER Y Z X, AT CDUSPOT, CDUSPOT +2, AND CDUSPOT +4. ODD +# MED INTERPRETER-STYLE IN MPAC; COMPONENTS AT MPAC, MPAC +3, AND MPAC +5. + +# TRG*SMNB AND TRG*NBSM BOTH EXPECT TO SEE THE 2'S COMPLEMENT ANGLES +# AT CDUSPOT (ORDER Y Z X, AT CDUSPOT, CDUSPOT +2, AND CDUSPOT +4; ODD # LOCATIONS NEED NOT BE ZEROED). TRG*NBSM DOES THE NB TO SM TRANSFOR- -# MATION: TRG*SMNB, VICE VERSA. -# -# CDU*NBSM DOES ITS TRANSFORMATION USING THE PRESENT CONTENTS OF +# MATION; TRG*SMNB, VICE VERSA. + +# CDU*NBSM DOES ITS TRANSFORMATION USING THE PRESENT CONTENTS OF # THE CDL COUNTERS. OTHERWISE IT IS LIKE TRG*NBSM. # -# CDU*SMNB IS THE COMPLEMENT OF CDU*NBSM. +# CDU*SMNB IS THE COMPLEMENT OF CDU*NBSM. CDU*SMNB EXIT TC CDUTRIGS @@ -209,11 +212,11 @@ C*MM*N3 TC MPACVBUF # FOR AX*SR*T CA THREE # SIGNAL FOR NB TO SM TRANSFORMATION TCF C*MM*N2 -# *NBSM* AND *SMNB* EXPECT TO SEE THE SINES AND COSINES (AT SINCDU +# *NBSM* AND *SMNB* EXPECT TO SEE THE SINES AND COSINES (AT SINCDU # AND COSCDU) RATHER THAN THE ANGLES THEMSELVES. OTHERWISE THEY ARE # LIKE TRG*NBSM AND TRG*SMNB. -# -# NOTE THAT JUST AS CD*TR*GS NEED BE CALLED ONLY ONCE FOR EACH SERIES + +# NOTE THAT JUST AS CD*TR*GS NEED BE CALLED ONLY ONCE FOR EACH SERIES # OF TRANSFORMATIONS USING THE SAME ANGLES, SO TOO ONLY ONE OF TRG*NBSM # AND TRG*SMNB NEED BE CALLED FOR EACH SERIES. FOR SUBSEQUENT TRANFOR- # MATIONS USE *NBSM* AND *SMNB*. @@ -224,25 +227,27 @@ C*MM*N3 TC MPACVBUF # FOR AX*SR*T *NBSM* EXIT TCF C*MM*N3 -# AX*SR*T COMBINES THE OLD SMNB AND NBSM. FOR THE NB TO SM +# AX*SR*T COMBINES THE OLD SMNB AND NBSM. FOR THE NB TO SM # TRANSFORMATION, ENTER WITH +3 IN A. FOR SM TO NB, ENTER WITH -3. # THE VECTOR TO BE TRANSFORMED ARRIVES, AND IS RETURNED, IN VBUF. # AX*SR*T EXPECTS TO FIND THE SINES AND COSINES OF THE ANGLES OF ROTATION # AT SINCDU AND COSCDU, IN THE ORDER Y Z X. A CALL TO CD*TR*GS, WITH # THE 2'S COMPLEMENT ANGLES (ORDER Y Z X) AT CDUSPOT, WILL TAKE CARE OF -# THIS. HERE IS A SAMPLE CALLING SEQUENCE:-- -# TC CDUTRIGS -# CS THREE # ("CA THREE" FOR NBSM) -# TC AX*SR*T +# THIS. HERE IS A SAMPLE CALLING SEQUENCE:- + +# TC CDUTRIGS +# CS THREE ("CA THREE" FOR NBSM) +# TC AX*SR*T + # THE CALL TO CD*TR*GS NEED NOT BE REPEATED, WHEN AX*SR*T IS CALLED MORE # THAN ONCE, UNLESS THE ANGLES HAVE CHANGED. -# -# AX*SR*T IS GUARANTEED SAFE ONLY FOR VECTORS OF MAGNITUDE LESS THAN + +# AX*SR*T IS GUARANTEED SAFE ONLY FOR VECTORS OF MAGNITUDE LESS THAN # UNITY. A LOOK AT THE CASE IN WHICH A VECTOR OF GREATER MAGNITUDE # HAPPENS TO LIE ALONG AN AXIS OF THE SYSTEM TO WHICH IT IS TO BE TRANS- # FORMED CONVINCES ONE THAT THIS IS A RESTRICTION WHICH MUST BE ACCEPTED. -AX*SR*T TS DEXDEX # WHERE IT BECOMES THE INDEX OF INDEXES. +AX*SR*T TS DEXDEX # WHERE IT BECOMES THE INDEX OF INDEXES EXTEND QXCH RTNSAVER @@ -294,6 +299,7 @@ LOOP1 DXCH MPAC INDEX DEX1 DXCH VBUF DXCH BUF # LOADING INDEX, STORING VECTOR COMPONENT + CCS A # 'CAUSE THAT'S WHERE THE INDEX NOW IS TCF LOOP2 @@ -307,8 +313,10 @@ TSTPOINT CCS DEXDEX # ONLY THE BRANCHING FUNCTION IS USED TCF R*TL**P TC RTNSAVER + SINESLOC ADRES SINCDU # FOR USE IN SETTING ADDRWD + INDEXI DEC 4 # ********** DON'T *********** DEC 2 # ********** TOUCH *********** DEC 0 # ********** THESE *********** @@ -318,9 +326,9 @@ INDEXI DEC 4 # ********** DON'T *********** # Page 1372 # THIS SUBROUTINE COMPUTES INCREMENTAL CHANGES IN CDU(GIMBAL) ANGLES FROM INCREMENTAL CHANGES ABOUT SM AXES. IT # REQUIRES SM INCREMENTS AS A DP VECTOR SCALED AT ONE REVOLUTION(DTHETASM,+2,+4). SIN,COS(CDUY,Z,X) ARE IN -# SINCDU,+2,+4 AND COSCDU,+2,+4 RESPECTIVELY, SCALED TO ONE HALF. CDU INCREMENTS ARE PLACED IN DCDU,+2,+4 SCALED TO +# SINCDU,+2,+4 AND COSCDU,+2,+4 RESPECTIVELY,SCALED TO ONE HALF. CDU INCREENTS ARE PLACED IN DCDU,+2,+4 SCALED TO # ONE REVOLUTION. -# + # * COS(IGA)SEC(MGA) 0 -SIN(IGA)SEC(MGA) * # * * # * -COS(IGA)TAN(MGA) 1 SIN(IGA)TAN(MGA) * @@ -361,4 +369,3 @@ SMCDURES DLOAD DMP SL1 STORE DCDU +4 RVQ -