*** empty log message ***
[h316.git] / lib / hachti / src / matrix.asm
index 09087938d51385cf9db644fe652aba7de7ac268b..812fd23adcc4bfa378baa701728f35ee92f9b496 100644 (file)
 *               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 
 * 
 *                
 ********************************************************************************
@@ -346,6 +347,7 @@ SCLE        DAC     **      SCALE MATRIX
        STA     SX
        STA     SY
        IRS     SCLE    TALLY RETURN ADDRESS
+       IRS     SCLE    AGAIN
 *
        CALL    L$22
 SM11   DAC     0
@@ -393,34 +395,45 @@ ROT       DAC     **      ENTRY
        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
 * 
 * 
-       CALL    SINX1   FLOATING POINT SINE
+**** M11 CALCULATION
+* 
+       CALL    SIN     FLOATING POINT SINE
 RA1    DAC     **      POINTER TO ANGLE
-       LDA     ='77
-       HLT
        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    COSX1   FLOATING POINT COSINE
-RA2    DAC     **      POINTER TO ANGLE
+* 
+*************************************
+* 
+       CALL    COS     FLOATING POINT COSINE
+RA2    DAC     **      POINTER TO ANGLE        
        CALL    H$22    SAVE TO TMP2
        DAC     TMP2
        CALL    M$22    MULTIPLY
@@ -430,58 +443,90 @@ R111      DAC     **      M11
        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
-R212   DAC     **      M12
+R211   DAC     **      M11
        CALL    H$22    STORE TO TMP4
        DAC     TMP4
        CALL    L$22    LOAD COSINE
+       DAC     TMP2
        CALL    M$22    MULTIPLY
-R211   DAC     **
-       CALL    S$22    SUBSTRACT
+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
+*
+       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     **      M12
+R122   DAC     **      M22
        CALL    H$22    STORE TO TMP3
        DAC     TMP3
-       CALL    H$22    LOAD COSINE
+       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 M11 TO 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
-R222   DAC     **      M12
+R221   DAC     **      M21
        CALL    H$22    STORE TO TMP4
        DAC     TMP4
        CALL    L$22    LOAD COSINE
+       DAC     TMP2
        CALL    M$22    MULTIPLY
-R221   DAC     **
+R222   DAC     **
        CALL    S$22    SUBSTRACT
        DAC     TMP4
-       CALL    H$22    SAVE TO NEW M12
+       CALL    H$22    SAVE TO NEW M22
 R322   DAC     **
-       CALL    L$22    LOAD NEW M11 FROM TMP3
-       CALL    H$22    AND SAVE TO NEW M11
+       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     **
 *  
 ********************************************************************************
 *
@@ -502,25 +547,25 @@ R321      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
 *