X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=lib%2Fhachti%2Fsrc%2Fmatrix.asm;h=812fd23adcc4bfa378baa701728f35ee92f9b496;hb=8eb8811723f247b223acf77c00171318fb1db645;hp=09087938d51385cf9db644fe652aba7de7ac268b;hpb=ce1f6adb7e2647dc3b56fe7473a469b528afdbd7;p=h316.git diff --git a/lib/hachti/src/matrix.asm b/lib/hachti/src/matrix.asm index 0908793..812fd23 100644 --- a/lib/hachti/src/matrix.asm +++ b/lib/hachti/src/matrix.asm @@ -144,7 +144,7 @@ * JST M$ROT * DAC MATRIX MATRIX TO MODIFY * DAC ANGLE RADIANT ANGLE -* +* DAC 0 FOR FORTRAN IV COMPATIBILITY * * M$SCLE: SCALE MATRIX * @@ -154,6 +154,7 @@ * 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 *