File BUFFPK.FT (FORTRAN source file)

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

      SUBROUTINE BUFFPK(NCHAR,IOUT)
      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
      DIMENSION ISEND(72),IDATA(72),IPATCH(8),IOUT(1)
      DATA MAXLEN,LENOUT,NODATA,ITRAIL/72,0,1,1/
C * DUMP THE BUFFER WHEN REQUESTED BY LEN=0
      IF(NCHAR .LE. 0)GO TO 10
C * DON'T DUMP THE BUFFER IF NEW STRING WILL FIT
      IF(NCHAR .LE. KOTLFT)GO TO 70
C * DETERMINE IF THERE IS DATA IN BUFFER
10    IF(NODATA .EQ. 1)GO TO 50
C * DETERMINE THE FORMAT THE USER WANTS BUFFER DUMPED IN
      GO TO (20,30,40),KUNIT
C * OUTPUT BUFFER FORMAT IS (GS),PLTCHRS,DATA,(US)
20    LENOUT=LENOUT+1
C * APPEND (US) TO END OF BUFFER
      IDATA(LENOUT)=31
      CALL ADEOUT(LENOUT,IDATA)
      CALL PLTCHR(KBEAMX,KBEAMY,IDATA)
C * RESTORE THE BEAM POSITION AT FIRST OF THE NEXT BUFFER
      IDATA(2)=IDATA(1)
      IDATA(1)=29
C * AND NOW THE MODE BEFORE THE OUTPUT WAS ASKED FOR
      LENOUT=6
      KEY=KKMODE+1
      IF(KEY .LT. 1)KEY=1
      IF(KEY .GT. 5)KEY=1
C * MODE IS A/N,VEC,PNT,INC,DSH
      GO TO (21, 22, 23, 24, 22),KEY
C * ENTER A/N MODE
21    IDATA(LENOUT)=31
      GO TO 50
C * ENTER VECTOR MODE
22    IDATA(LENOUT)=29
      IF(KMOVEF .NE. 1)LENOUT=LENOUT-1
      GO TO 50
C * ENTER POINT MODE
23    IF(KTERM .LT. 3)GO TO 22
      IDATA(LENOUT)=28
      LENOUT=LENOUT+1
      GO TO 22
C * ENTER INCREMENTAL PLOT MODE
24    IDATA(LENOUT)=30
C * RAISE OR LOWER PEN AS NEEDED
C * THE FOLLOWING 3 LINES ARE NOT NEEDED ON SOME PLOTTERS
      LENOUT=LENOUT+1
      IDATA(LENOUT)=80
      IF(KMOVEF .EQ. 1)IDATA(LENOUT)=32
      GO TO 50
C * OUTPUT BUFFER FORMAT IS (SYN),DATA,(ESC)

30 LENOUT=LENOUT+1 C * APPEND (ESC) TO END OF BUFFER IDATA(LENOUT)=27 CALL ADEOUT(LENOUT,IDATA) IDATA(1)=22 LENOUT=1 GO TO 50 C * OUTPUT BUFFER FORMAT IS DATA ONLY 40 CALL ADEOUT(LENOUT,IDATA) LENOUT=0 50 KOTLFT=MAXLEN-LENOUT-ITRAIL IF(LEN .LE. 0) GO TO 90 70 NODATA=0 LEN=NCHAR IF(LEN .GT. KOTLFT)LEN=KOTLFT DO 80 I=1,LEN LENOUT=LENOUT+1 80 IDATA(LENOUT)=IOUT(I) 90 KOTLFT=MAXLEN-LENOUT-ITRAIL 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