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