subroutine GRAPHL(ROW,LINE,MAXPXL,MAXCHR) C C 15-nov-79 this code still set several dots at end of line ! C 9-nov-79 modified to use TRILOG longer length C C ROW is input array of bits PDP-11 organized left to right C across a raster line. 16 pixels per word. C LINE is output of print control characters, 6 bits per byte C in the form required by PRINTRONIX & TRILOG printers C MAXPXL defines the number of input bits . C C BYTE ITMP BYTE LINE(221) !this is max line useable by TRILOG INTEGER ROW(83) !max bits for max TRILOG C C I=word index to input data C L=output byte index C M=input pixel(bit) index C LINE(1) = "44 !load $ suppress carriage return LINE(2) = "5 !use plot mode this line L=3 M=0 !initialize input pixel count C DO 5 I=1,MAXPXL/16,3 LINE(L)=ISHFT(ROW(I),-10) L=L+1 M=M+6 if(M .gt. MAXPXL)goto 4 LINE(L)=(ISHFT(ROW(I),-4) .AND. "77) L=L+1 M=M+6 if(M .gt. MAXPXL)goto 4 LINE(L)=(ISHFT(ROW(I),2) .AND. "74) X .OR. ISHFT(ROW(I+1),-14) L=L+1 M=M+6 if(M .gt. MAXPXL)goto 4 C LINE(L)=(ISHFT(ROW(I+1),-8) .AND. "77 ) L=L+1 M=M+6 if(M .gt. MAXPXL)goto 4 LINE(L)=(ISHFT(ROW(I+1),-2) .AND. "77 ) L=L+1 M=M+6 if(M .gt. MAXPXL)goto 4 LINE(L)=(ISHFT(ROW(I+1),4) .AND. "60) X .OR. ISHFT(ROW(I+2),-12) L=L+1 M=M+6 if(M .gt. MAXPXL)goto 4 LINE(L)=(ISHFT(ROW(I+2),-6) .AND. "77 ) L=L+1 M=M+6 if(M .gt. MAXPXL)goto 4 LINE(L)=(ROW(I+2) .AND. "77) L=L+1 M=M+6 if(M .gt. MAXPXL)goto 4 5 CONTINUE C 4 if(L .gt. 222)L=222 !maintain max buffer size MAXCHR = L-1 C do 90 i=3,MAXCHR C call code to order bits for PRINTRONIX / TRILOG not PDP-11 order LINE(I)=IREVRS(LINE(I)) C if(LINE(I) .lt. 32 )LINE(I) = LINE(I) .OR. "100 C keep all char values between 32-95 so RSX-11m doesnot reject 90 CONTINUE C return END