1 * (PL$MV) REV 1.0 INCREMENTAL PLOTTER ROUTINES
5 * PL$MV (PL$MV,PL$RST,PL$LN,PL$X,PL$Y,PL$RMR)
7 * PLOTTER MOVEMENT ROUTINES
11 * 1.0 (2007-05-28) - INITIAL REVISION
13 * 1.1 (2007-11-08) - ADDED INTELLIGENT LINE DRAWING ROUTINE
15 * 1.2 (2007-12-15) - ADDED PL$X and PL$Y POSITION EXPORTS
16 * ADDED PL$RMR TRANSLATIION ROUTINE
18 * 1.3 (2007-12-19) - ADDED TRANSFORMATION MATRIX SUPPORT TO PL$MV.
19 * MATRIX PL$MAT IS NOW APPLIED BEFORE
20 * ANY MOVE INSTRUCTION.
30 * PROVIDE SIMPLE LIBRARY FUNCTIONS FOR INCREMENTAL PLOTTERS
41 * CALL PL$RST - SET VIRTUAL PLOT POSITION TO ZERO
43 * CALL PL$MV - MOVE TO POINT SPECIFIED
48 * CALL PL$LN - DRAW LINE AND LEAVE PEN DOWN
55 * CALL PL$RMR - MOVE ORIGIN RELATIVELY
60 * CALL PL$SCL - SCALE TRANSFORMATION
61 * DAC SCALE SCALE FACTOR, FLOAT
64 * CALL PL$IDN - RESET TRANSFORMATION MATRIX
66 ********************************************************************************
82 REL THIS IS A RELOCATABLE OBJECT
85 ********************************************************************************
87 LINE DAC 0 DRAW A LINE FROM NEAR STARTING POINT
107 IRS LINE TALLY RETURN ADDRESS
108 IRS LINE AGAIN FOR FORTRAN IV COMPATIBILITY
125 SPL SKIP IF SIGN PLUS
126 TCA TWO'S COMPLEMENT IF NEEDED
137 SPL SKIP IF SIGN PLUS
138 TCA TWO'S COMPLEMENT IF NEEDED
146 JMP D2BG D2 IS BIGGER!
149 D1BG LDA X2 DIFFERENCE 1 IS BIGGER, SO START AT POINT X2,Y2
159 D2BG LDA X1 DIFFERENCE 2 IS BIGGER, SO START AT POINT X1,Y1
168 WOKI LDA X TEST IF STARTING POINT IST CURRENT POSITION
180 MV1 CALL PL$PU MOVE TO THE STARTING POSITION
187 NM1 CALL PL$PD WE ARE AT BEGINNING OF LINE
193 JMP* LINE END OF THE LINE :-)
197 ********************************************************************************
199 **** MOVE PEN ROUTINE
201 RST DAC ** SET POINT ZERO
214 LDX MOVE GET PARAMETERS
221 STA MOVE CORRECT RETURN ADDRESS
223 CALL M$APLI APPLY TRANSFORMATION MATRIX TO POSITION
228 JST RMOV CALL INTO REAL MOVE SUBROUTINE
231 ****************************************
233 RMOV DAC ** REAL MOVE SUBROUTINE
246 STA DX NOW, DX IS POSITIVE!
267 STA DY NOW, DY IS POSITIVE!
280 JMP XGTY DX GREATER DY
281 YGTX NOP DY GREATER OR EQUAL DX
301 GTE LDA DL LONG DISTANCE
303 STA ERR INITIALIZE ERROR COUNTER
309 JMP FNSH END OF WORK - HOPE SO....
315 SMI SKIP IF NOT OVERFLOWN (MINUS)
316 JMP NDIA NO DIAG STEP
324 NDIA JST* STPL LONG DIR STEP ONLY
331 JMP* RMOV END OF THE ROUTINE
334 ********************************************************************************
337 IDEN DAC ** RESET TRANSFORMATION MATRIX
343 ********************************************************************************
369 ********************************************************************************
371 *** MOVE COORDINATE SYSTEM RELATIVELY
391 **********************
395 X DEC 0 PEN POSITION, X VALUE
396 Y DEC 0 PEN POSITION, Y VALUE
397 XN DEC 0 NEW PEN POSITION, X VALUE
398 YN DEC 0 NEW PEN POSITION, Y VALUE
399 DX DEC 0 X DIFFERENCE TO GO
400 DY DEC 0 Y DIFFERENCE TO GO
402 DL DEC 0 LONG DISTANCE NEGATIVE
403 DS DEC 0 SHORT DISTANCE NEGATIVE
404 STPL DAC ** ROUTINE TO LONG DISTANCE STEP
405 STPS DAC ** ROUTINE TO SHORT DISTANCE STEP
406 STPD DAC ** ROUTINE TO DIAGONAL STEP
407 ERR DEC 0 ERROR COUNTER
409 STPX DAC ** X STEP ROUTINE
410 STPY DAC ** Y STEP ROUTINE
411 DIYP DAC ** DIAGONAL X-DIR+UP STEP ROUTINE
412 DIYN DAC ** DIAGONAL X-DIR+DOWN STEP ROUTINE
414 X1 DEC 0 LINE START POINT, X
415 Y1 DEC 0 LINE START POINT, Y
416 X2 DEC 0 LINE END POINT, X
417 Y2 DEC 0 LINE END POINT, Y
419 XA DEC 0 REAL FIRST POINT X COORDINATE
420 YA DEC 0 REAL FIRST POINT Y COORDINATE
421 XB DEC 0 REAL SECOND POINT X COORDINATE
422 YB DEC 0 REAL SECOND POINT Y COORDINATE
423 D1 DEC 0 ORTHOGONAL WAY LENGTH FROM CURRENT POS TO P1
424 D2 DEC 0 ORTHOGONAL WAY LENGTH FROM CURRENT POS TO P2
426 **** GLUE IN THE MOVEMENT ROUTINES
437 ********************************************************************************
439 *** HERE THE TRANSFORMATION MATRIX, INITIALLY NO TRANSFORMATION, OLD PROGRAMS
440 *** DON'T HAVE TO CARE ABOUT THAT (HOPE SO)
451 ********************************************************************************