File CLIPT.FT (FORTRAN source file)

Directory of image this file is from
This file as a plain text file

      SUBROUTINE CLIPT(BUFIN,OUTBF)
      DIMENSION  BUFIN(1),OUTBF(1)
      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
      GSTAX=BUFIN(1)
      GSTAY=BUFIN(2)
      GENDX=BUFIN(3)
      GENDY=BUFIN(4)
      IF(GSTAX.GE.TMINVX)GO TO 10
      IF(GENDX.GE.TMINVX)GO TO 20
      GO TO 110
10    IF(GSTAX.LE.TMAXVX)GO TO 20
      IF(GENDX.LE.TMAXVX)GO TO 20
      GO TO 110
20    IF(GSTAY.GE.TMINVY)GO TO 21
      IF(GENDY.GE.TMINVY)GO TO 30
      GO TO 110
21    IF(GSTAY.LE.TMAXVY)GO TO 30
      IF(GENDY.LE.TMAXVY)GO TO 30
      GO TO 110
30    IF(GSTAX.NE.GENDX)GO TO 31
      DSTAX=GSTAX
      DENDX=GSTAX
      CALL PARCLT(GSTAY,GENDY,TMINVY,TMAXVY,DSTAY,DENDY)
      GO TO 120
31    IF(GSTAY.NE.GENDY)GO TO 40
      DSTAY=GSTAY
      DENDY=GSTAY
      CALL PARCLT(GSTAX,GENDX,TMINVX,TMAXVX,DSTAX,DENDX)
      GO TO 120
40    A=GENDX-GSTAX
      B=GENDY-GSTAY
      IF(GSTAX.LT.TMINVX)GO TO 41
      IF(GSTAX.LE.TMAXVX)GO TO 43
      Q=TMAXVX
      GO TO 42
43    IF(GSTAY.GT.TMAXVY)GO TO 140
      IF(GSTAY.LT.TMINVY)GO TO 44
      DSTAX=GSTAX
      DSTAY=GSTAY
      GO TO 150
41    Q=TMINVX
42    DSTAY=GSTAY+((Q-GSTAX)*B/A)
      IF(DSTAY.GT.TMAXVY)GO TO 140
      IF(DSTAY.LT.TMINVY)GO TO 44
      DSTAX=Q
      GO TO 150
44    R=TMINVY
      GO TO 45
140   R=TMAXVY

45 DSTAX=GSTAX+((R-GSTAY)*A/B) IF(DSTAX.GT.TMAXVX)GO TO 110 IF(DSTAX.LT.TMINVX)GO TO 110 DSTAY=R 150 IF(GENDX.LT.TMINVX)GO TO 50 IF(GENDX.GT.TMAXVX)GO TO 51 IF(GENDY.GT.TMAXVY)GO TO 160 IF(GENDY.LT.TMINVY)GO TO 52 DENDX=GENDX DENDY=GENDY GO TO 120 51 Q=TMAXVX GO TO 53 50 Q=TMINVX 53 DENDY=GSTAY+((Q-GSTAX)*B/A) IF(DENDY.GT.TMAXVY)GO TO 160 IF(DENDY.LT.TMINVY)GO TO 52 DENDX=Q GO TO 120 52 R=TMINVY GO TO 60 160 R=TMAXVY 60 DENDX=GSTAX+((R-GSTAY)*A/B) DENDY=R 120 OUTBF(1)=DSTAX OUTBF(2)=DSTAY OUTBF(3)=DENDX OUTBF(4)=DENDY KGNFLG=0 GO TO 70 C * SET FLAG IF LINE OUTSIDE WINDOW 110 KGNFLG=1 70 RETURN END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search