X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=lib%2Fhachti%2Fsrc%2Fpl%24mv.asm;h=af939176692672853a7ea950dfefec85976ff003;hb=8eb8811723f247b223acf77c00171318fb1db645;hp=9d4f338823d5f118fb7e6c63711f5a6c479ce684;hpb=8fac3a64e23edb8f2cd4cdc28631d603075de709;p=h316.git diff --git a/lib/hachti/src/pl$mv.asm b/lib/hachti/src/pl$mv.asm index 9d4f338..af93917 100644 --- a/lib/hachti/src/pl$mv.asm +++ b/lib/hachti/src/pl$mv.asm @@ -74,6 +74,7 @@ SUBR PL$Y,Y SUBR PL$MAT,MTRX SUBR PL$SCL,SCLE + SUBR PL$ROT,ROT SUBR PL$IDN,IDEN * * @@ -85,64 +86,59 @@ * LINE DAC 0 DRAW A LINE FROM NEAR STARTING POINT LDA* LINE X1 - STA X1P - IRS LINE + STA X1 + LDA* X1 + STA X1 + IRS LINE LDA* LINE Y1 - STA Y1P + STA Y1 + LDA* Y1 + STA Y1 IRS LINE LDA* LINE X2 - STA X2P + STA X2 + LDA* X2 + STA X2 IRS LINE LDA* LINE Y2 - STA Y2P + STA Y2 + LDA* Y2 + STA Y2 IRS LINE TALLY RETURN ADDRESS - NOP IRS LINE AGAIN FOR FORTRAN IV COMPATIBILITY - NOP -* - NOP - NOP - NOP -* - CALL M$APII +* +* + CALL M$APLI DAC MTRX -* JMP Y2P+2 -X2P DAC 0 -Y2P DAC 0 + DAC X1 DAC 0 -* - NOP - NOP - NOP -* - CALL M$APII +* + CALL M$APLI DAC MTRX -X1P DAC 0 -Y1P DAC 0 + DAC X2 DAC 0 - NOP - NOP - NOP * +* +* LDA X - SUB* X1P + SUB X1 SPL SKIP IF SIGN PLUS TCA TWO'S COMPLEMENT IF NEEDED STA D1 LDA Y - SUB* Y1P + SUB Y1 SPL TCA ADD D1 STA D1 * LDA X - SUB* X2P + SUB X2 SPL SKIP IF SIGN PLUS TCA TWO'S COMPLEMENT IF NEEDED STA D2 LDA Y - SUB* Y2P + SUB Y2 SPL TCA ADD D2 @@ -150,23 +146,23 @@ Y1P DAC 0 JMP D2BG D2 IS BIGGER! NOP * -D1BG LDA* X2P DIFFERENCE 1 IS BIGGER, SO START AT POINT X2,Y2 +D1BG LDA X2 DIFFERENCE 1 IS BIGGER, SO START AT POINT X2,Y2 STA XA - LDA* Y2P + LDA Y2 STA YA - LDA* X1P + LDA X1 STA XB - LDA* Y1P + LDA Y1 STA YB JMP WOKI WORK! * -D2BG LDA* X1P DIFFERENCE 2 IS BIGGER, SO START AT POINT X1,Y1 +D2BG LDA X1 DIFFERENCE 2 IS BIGGER, SO START AT POINT X1,Y1 STA XA - LDA* Y1P + LDA Y1 STA YA - LDA* X2P + LDA X2 STA XB - LDA* Y2P + LDA Y2 STA YB * WOKI LDA X TEST IF STARTING POINT IST CURRENT POSITION @@ -196,21 +192,12 @@ NM1 CALL PL$PD WE ARE AT BEGINNING OF LINE JST RMOV REAL MOVE JMP* LINE END OF THE LINE :-) * -* -*X1P DAC 0 ARGUMENT POINER TO X1 -*Y1P DAC 0 ARGUMENT POINER TO Y1 -*X2P DAC 0 ARGUMENT POINER TO X2 -*Y2P DAC 0 ARGUMENT POINER TO Y2 -XA DEC 0 REAL FIRST POINT X COORDINATE -YA DEC 0 REAL FIRST POINT Y COORDINATE -XB DEC 0 REAL SECOND POINT X COORDINATE -YB DEC 0 REAL SECOND POINT Y COORDINATE -D1 DEC 0 ORTHOGONAL WAY LENGTH FROM CURRENT POS TO P1 -D2 DEC 0 ORTHOGONAL WAY LENGTH FROM CURRENT POS TO P2 * * ******************************************************************************** * +**** MOVE PEN ROUTINE +* RST DAC ** SET POINT ZERO CRA STA Y @@ -362,9 +349,21 @@ SCLE DAC ** CALL M$SCLE DAC MTRX FCTR DAC 0 - NOP - NOP - JMP* SCLE + DAC 0 + JMP* SCLE +* +* +* +* +ROT DAC ** + LDA* ROT + STA FCR2 + IRS ROT + CALL M$ROT + DAC MTRX +FCR2 DAC 0 + DAC 0 + JMP* ROT * * ******************************************************************************** @@ -411,9 +410,21 @@ STPX DAC ** X STEP ROUTINE STPY DAC ** Y STEP ROUTINE DIYP DAC ** DIAGONAL X-DIR+UP STEP ROUTINE DIYN DAC ** DIAGONAL X-DIR+DOWN STEP ROUTINE -TMP DAC ** UNIVERSAL POINTER * -* GLUE IN THE MOVEMENT +X1 DEC 0 LINE START POINT, X +Y1 DEC 0 LINE START POINT, Y +X2 DEC 0 LINE END POINT, X +Y2 DEC 0 LINE END POINT, Y +* +XA DEC 0 REAL FIRST POINT X COORDINATE +YA DEC 0 REAL FIRST POINT Y COORDINATE +XB DEC 0 REAL SECOND POINT X COORDINATE +YB DEC 0 REAL SECOND POINT Y COORDINATE +D1 DEC 0 ORTHOGONAL WAY LENGTH FROM CURRENT POS TO P1 +D2 DEC 0 ORTHOGONAL WAY LENGTH FROM CURRENT POS TO P2 +* +**** GLUE IN THE MOVEMENT ROUTINES +* MU XAC PL$U MD XAC PL$D ML XAC PL$L