SUBROUTINE DASHSA(X,Y,L) COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 1 TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 2 TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(8),KPAD2, 3 KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 4 KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 5 KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 6 KINLFT,KOTLFT,KUNIT CALL LVLCHT XOLD=TIMAGX YOLD=TIMAGY KEY=KEYCON IF(KEYCON .LT. 1)KEY=5 IF(KEYCON .GT. 4)KEY=4 C * LINEAR LOG POLAR USER ERROR GO TO (100, 100, 200, 400, 100),KEY C * ERROR LINEAR LOG 100 CALL DASHA(X,Y,L) XOLD=X YOLD=Y RETURN C * POLAR 200 DX=X-XOLD DY=Y-YOLD YSTEP=SIGN(5.0/TRFACY,DY) IF(ABS(DY*.75) .LT. ABS(YSTEP)) GO TO 100 FRAC=DX/DY NSEG=(DY/YSTEP)+.9999 YOUT=YOLD 300 IF(NSEG .LT. 2) GO TO 100 YOUT=YOUT+YSTEP XOUT=XOLD+(YOUT-YOLD)*FRAC CALL DASHA(XOUT,YOUT,L) NSEG=NSEG-1 GO TO 300 C * USER SEGMENTATION 400 CONTINUE CALL USDASH(X,Y,L) GO TO 100 END