* JST M$ROT
* DAC MATRIX MATRIX TO MODIFY
* DAC ANGLE RADIANT ANGLE
-*
+* DAC 0 FOR FORTRAN IV COMPATIBILITY
*
* M$SCLE: SCALE MATRIX
*
* JST M$SCLE
* DAC MATRIX MATRIX TO MODIFY
* DAC SCALE SCALE FACTOR
+* DAC 0 FOR FORTRAN IV COMPATIBILITY
*
*
********************************************************************************
STA SX
STA SY
IRS SCLE TALLY RETURN ADDRESS
+ IRS SCLE AGAIN
*
CALL L$22
SM11 DAC 0
********************************************************************************
*
*
-**** ROTATE MATRIX
+**** ADD ROTATION TO MATRIX
+*
+*
+* M = M * MROT
+*
+* | M11 M12 | | COS(X) -SIN(X)|
+* = | | * | |
+* | M21 M22 | | SIN( X) COS(X)|
*
-* THIS ROUTINE IS NOT YET FINISHED!
+* | M11*COS(X)+M12*SIN(X) M12*COS(X)-M11*SIN(X) |
+* = | |
+* | M21*COS(X)+M22*SIN(X) M22*COS(X)-M21*SIN(X) |
+*
+* CALL:
+* JST ROT
+* DAC MATRIX
+* DAC ANGLE
+* DAC 0 DON'T FORGET!
*
****************************************
*
ROT DAC ** ENTRY
- IRS ROT TALLY RETURN ADDRESS
- JMP* ROT EXIT
+*
+ LDA* ROT GET MATRIX POINTER
+ STA R111 M11, FIRST COPY
+ STA R211 M11, SECOND COPY
+ STA R311 M11, THIRD COPY
+ ADD =2
+ STA R112
+ STA R212
+ STA R312
+ STA R412
+ ADD =2
+ STA R121
+ STA R221
+ STA R321
+ ADD =2
+ STA R122
+ STA R222
+ STA R322
+ IRS ROT
+ LDA* ROT
+ STA RA1
+ STA RA2
+ IRS ROT
+ IRS ROT
+*
+*
+**** M11 CALCULATION
+*
+ CALL SIN FLOATING POINT SINE
+RA1 DAC ** POINTER TO ANGLE
+ CALL H$22 SAVE TO TMP1
+ DAC TMP1
+* CALL L$22
+* DAC TMP1
+ CALL M$22 MULTIPLY
+R112 DAC ** M12
+ CALL H$22 STORE TO TMP3
+ DAC TMP3
+*
+*************************************
+*
+ CALL COS FLOATING POINT COSINE
+RA2 DAC ** POINTER TO ANGLE
+ CALL H$22 SAVE TO TMP2
+ DAC TMP2
+ CALL M$22 MULTIPLY
+R111 DAC ** M11
+ CALL A$22 ADD TMP3
+ DAC TMP3
+ CALL H$22 SAVE NEW M11 TO TMP3
+ DAC TMP3
+*
+*
+* M12 CALCULATION
+*
+* M12 = M12*COS(X)-M11*SIN(X)
+*
+*
+ CALL L$22 LOAD SINE
+ DAC TMP1
+ CALL M$22 MULTIPLY
+R211 DAC ** M11
+ CALL H$22 STORE TO TMP4
+ DAC TMP4
+ CALL L$22 LOAD COSINE
+ DAC TMP2
+ CALL M$22 MULTIPLY
+R212 DAC **
+*
+ CALL S$22 SUBSTRACT !!
+ DAC TMP4
+*
+ CALL H$22 SAVE TO NEW M12
+R312 DAC **
+*
+ CALL L$22 LOAD NEW M11 FROM TMP3
+ DAC TMP3
+ CALL H$22 AND SAVE TO NEW M11
+R311 DAC **
*
*
+* ******************************************
+*
+* M21 CALCULATION
+*
+* M21*COS(X)+M22*SIN(X)
+*
+* M22*SIN(X) -> TMP3
+* M21*COS(X) - TMP3
+*
+*
+*
+ CALL L$22 LOAD SINE
+ DAC TMP1
+ CALL M$22 MULTIPLY
+R122 DAC ** M22
+ CALL H$22 STORE TO TMP3
+ DAC TMP3
+ CALL L$22 LOAD COSINE
+ DAC TMP2
+ CALL M$22 MULTIPLY
+R121 DAC ** M11
+ CALL A$22 ADD TMP3
+ DAC TMP3
+ CALL H$22 SAVE NEW M21 TO TMP3
+ DAC TMP3
+*
+* M22 CALCULATION
+*
+* M22*COS(X)-M21*SIN(X)
+*
+*
+* JMP NN
+ CALL L$22 LOAD SINE
+ DAC TMP1
+ CALL M$22 MULTIPLY
+R221 DAC ** M21
+ CALL H$22 STORE TO TMP4
+ DAC TMP4
+ CALL L$22 LOAD COSINE
+ DAC TMP2
+ CALL M$22 MULTIPLY
+R222 DAC **
+ CALL S$22 SUBSTRACT
+ DAC TMP4
+ CALL H$22 SAVE TO NEW M22
+R322 DAC **
+ CALL L$22 LOAD NEW M21 FROM TMP3
+ DAC TMP3
+ CALL H$22 AND SAVE TO NEW M21
+R321 DAC **
+*
+*
+ JMP* ROT RETURN.
+*
+R412 DAC **
+*
********************************************************************************
*
*
*
APII DAC **
*
- LDA* APII
- STA MP11
- ADD =2
- STA MP12
- ADD =2
- STA MP21
- ADD =2
- STA MP22
- IRS APII
-*
- LDA* APII
- STA XP1
- STA XP2
- IRS APII
- LDA* APII
- STA YP1
- STA YP2
- IRS APII
- IRS APII
+ LDA* APII POINTER TO MATRIX
+ STA MP11 STORE M11
+ ADD =2 ADD 2
+ STA MP12 STORE M12
+ ADD =2 ADD 2
+ STA MP21 STORE M21
+ ADD =2 ADD 2
+ STA MP22 STORE M22
+ IRS APII JUMP TO NEXT ARGUMENT (X)
+*
+ LDA* APII LOAD X VALUE
+ STA XP1 STORE TO X-POINTER
+ STA XP2 STORE TO X-POINTER
+ IRS APII JUMP TO NEXT ARGUMENT (Y)
+ LDA* APII LOAD Y VALUE
+ STA YP1 STORE TO Y-POINTER
+ STA YP2 STORE TO Y-POINTER
+ IRS APII CORRECT RETURN ADDRESS
+ IRS APII FOR FORTRANIV COMPATIBILITY
JST APL CALL REAL ROUTINE
JMP* APII
*
CALL M$22 MULTIPLY FLOAT*FLOAT
MP11 DAC 0
CALL H$22 STORE FLOAT
- DAC TMP
+ DAC TMP1
CALL FLOAT
YP1 DAC 0
CALL M$22
MP12 DAC 0
CALL A$22
- DAC TMP
+ DAC TMP1
JST RND ROUND AND CONVERT TO INTEGER
STA PA21 STORE NEW X VALUE INTO TEMPORARY LOCATION
****
CALL M$22
MP21 DAC 0
CALL H$22
- DAC TMP
+ DAC TMP1
*
CALL FLOAT
YP2 DAC 0
CALL M$22
MP22 DAC 0
CALL A$22
- DAC TMP
+ DAC TMP1
JST RND NOW INTEGER IN AC
STA* YP1 STORE NEW Y VALUE
*
*
**** VARIABLES
*
-TMP BSS '10 SOME SPACE
+TMP1 BSS '2 TEMPORARY 2-WORD VARIABLE
+TMP2 BSS '2 " " "
+TMP3 BSS '2 " " "
+TMP4 BSS '2 " " "
*
*
********************************************************************************