%!PS-Adobe-2.0 %%Title: POSTSCRIPT.PS %%Creator: PostScript ImageStream Driver by Matt Heffron of Beckman Instruments %%CreationDate: 9-Feb-88 14:19:16 %%For: Matt Heffron %%EndComments /s /show load def /mto /moveto load def /ellipsedict 9 dict def ellipsedict /mtrx matrix put /ellipse { ellipsedict begin /endangle exch def /startangle exch def /orientation exch def /minorrad exch def /majorrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y translate orientation rotate majorrad minorrad scale 0 0 1 startangle endangle arc savematrix setmatrix end } bind def /concatprocs {/proc2 exch cvlit def /proc1 exch cvlit def /newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx } bind def /resmatrix matrix def /findresolution {72 0 resmatrix defaultmatrix dtransform /yres exch def /xres exch def xres dup mul yres dup mul add sqrt } bind def /thebitimage {/maskp exch def /bihgt exch def /biwid exch def /strbuf biwid 8 div ceiling cvi string def {1 exch sub} currenttransfer concatprocs settransfer biwid bihgt maskp { false } { 1 } ifelse [biwid 0 0 bihgt 0 0] { currentfile strbuf readhexstring pop } maskp { imagemask } { image } ifelse } bind def /setuserscreendict 22 dict def setuserscreendict begin /tempctm matrix def /temprot matrix def /tempscale matrix def end /setuserscreen {setuserscreendict begin /spotfunction exch def /screenangle exch def /cellsize exch def /m tempctm currentmatrix def /rm screenangle temprot rotate def /sm cellsize dup tempscale scale def sm rm m m concatmatrix m concatmatrix pop 1 0 m dtransform /y1 exch def /x1 exch def /veclength x1 dup mul y1 dup mul add sqrt def /frequency findresolution veclength div def /newscreenangle y1 x1 atan def m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt { { neg } /spotfunction load concatprocs /spotfunction exch def } if frequency newscreenangle /spotfunction load setscreen end } bind def /setpatterndict 18 dict def setpatterndict begin /bitison {/ybit exch def /xbit exch def /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def /mask 1 7 xbit 8 mod sub bitshift def bytevalue mask and 0 ne } bind def end /bitpatternspotfunction {setpatterndict begin /y exch def /x exch def /xindex x 1 add 2 div bpside mul cvi def /yindex y 1 add 2 div bpside mul cvi def xindex yindex bitison {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse end } bind def /setpattern {setpatterndict begin /cellsz exch def /angle exch def /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def cellsz angle /bitpatternspotfunction load setuserscreen {} settransfer offbits offbits onbits add div setgray end } bind def %%EndProlog %%BeginSetup clippath pathbbox /ymax exch def /xmax exch def /ymin exch def /xmin exch def /imagesizefactor 1.0 def %%EndSetup /Courier findfont 800 scalefont setfont %%BeginPageSetup xmin -5 add ymin 0 add translate 0.01 imagesizefactor mul 0.01 imagesizefactor mul scale %%EndPageSetup /savepage save def newpath 0.0 0.0 mto 57100.0 0 rlineto 0 78624.0 rlineto -57100 0 rlineto closepath clip newpath /Courier findfont 800 scalefont setfont 0 77940 mto initclip newpath 0 0 moveto 57100 0 rlineto 0 78624 rlineto -57100 0 rlineto closepath clip newpath 7200 73200 mto /Helvetica findfont 2400 scalefont setfont (XEROX) show 15603 73200 mto /Helvetica findfont 600 scalefont setfont 46410 73200 mto 46410 73200 mto /Helvetica findfont 1000 scalefont setfont (POSTSCRIPT) show 52800 73200 mto 7200 72470 mto gsave newpath 200 setlinewidth 0 setlinecap 7200 72570 mto 52800 72570 lineto stroke grestore 52800 72570 mto 52800 72470 mto 52800 72470 mto 21000 71599 mto gsave newpath 400 setlinewidth 0 setlinecap 21000 71799 mto 38400 71799 lineto stroke grestore 38400 71799 mto 38400 71599 mto 38400 71599 mto 21000 71099 mto gsave newpath 100 setlinewidth 0 setlinecap 21000 71149 mto 38400 71149 lineto stroke grestore 38400 71149 mto 38400 71099 mto 38400 71099 mto 25867 68971 mto /Helvetica-Bold findfont 1200 scalefont setfont (POSTSCRIPT) show 33533 68971 mto 21000 67606 mto gsave newpath 100 setlinewidth 0 setlinecap 21000 67656 mto 38400 67656 lineto stroke grestore 38400 67656 mto 38400 67606 mto 38400 67606 mto 21000 66806 mto gsave newpath 400 setlinewidth 0 setlinecap 21000 67006 mto 38400 67006 lineto stroke grestore 38400 67006 mto 38400 66806 mto 38400 66806 mto 17990 63766 mto /Helvetica findfont 1000 scalefont setfont (By: Matt Heffron \(BEC.HEFFRON@ECLA.USC.EDU\)) show 42009 63766 mto 7200 61105 mto /Helvetica-Bold findfont 1000 scalefont setfont (INTRODUCTION) show 14866 61105 mto /Helvetica findfont 1000 scalefont setfont 14866 61105 mto 7200 58444 mto (The PostScript package defines a set of imageops for printers which understand the PostScript page) 81.00001 0 32 4 -1 roll widthshow 52800 58444 mto 7200 56883 mto (description language by Adobe. At Beckman we have successfully used TEdit, Sketch, and) 390.76923 0 32 4 -1 roll widthshow 52799 56883 mto 7200 55322 mto (HARDCOPYW to an Apple LaserWriter and an AST TurboLaser PS. \(Actually, the PostScript) 322.7692 0 32 4 -1 roll widthshow 52799 55322 mto 7200 53761 mto (imagestream output was directed to a file, which was then moved to a PC which actually) 438.93338 0 32 4 -1 roll widthshow 52799 53761 mto 7200 52200 mto (communicated with the laser printer.\) The PostScript imagestream driver installs itself when it is) 191.0 0 32 4 -1 roll widthshow 52800 52200 mto 7200 50639 mto (loaded. All symbols in the PostScript driver are located in the INTERLISP: package.) show 44438 50639 mto 7200 47978 mto /Helvetica-Bold findfont 1000 scalefont setfont (VARIABLES) show 12978 47978 mto 7200 45317 mto /Helvetica findfont 1000 scalefont setfont (POSTSCRIPT.FONT.ALIST) show 19647 45317 mto /Helvetica findfont 1000 scalefont setfont 47242 45317 mto 47242 45317 mto /Helvetica findfont 1000 scalefont setfont ([InitVariable]) show 52800 45317 mto 7200 42656 mto (POSTSCRIPT.FONT.ALIST is an ALIST mapping Xerox Lisp font names intothe root names of) 307.8333 0 32 4 -1 roll widthshow 52799 42656 mto 7200 41095 mto (PostScript font files. It is also used for font family coercions. The default value should be acceptable) 56.833324 0 32 4 -1 roll widthshow 52799 41095 mto 7200 39534 mto (for any of the fonts which are built into the Apple Laserwriter.) show 34046 39534 mto 7200 36873 mto (POSTSCRIPTFONTDIRECTORIES) show 23146 36873 mto /Helvetica findfont 1000 scalefont setfont 47242 36873 mto 47242 36873 mto /Helvetica findfont 1000 scalefont setfont ([InitVariable]) show 52800 36873 mto 7200 34212 mto (POSTSCRIPTFONTDIRECTORIES is the list of directories where the PostScript .PSCFONT font files) 58.54545 0 32 4 -1 roll widthshow 52799 34212 mto 7200 32651 mto (can be found. The default value is: \("{DSK}<LISPFILES>FONTS>PSC>"\).) show 40427 32651 mto 7200 29990 mto (\\POSTSCRIPT.SHORTEDGE.SHIFT) show 23647 29990 mto /Helvetica findfont 1000 scalefont setfont 47242 29990 mto 47242 29990 mto /Helvetica findfont 1000 scalefont setfont ([InitVariable]) show 52800 29990 mto 7200 27329 mto (\\POSTSCRIPT.SHORTEDGE.SHIFT is the distance \(in points\) to shift the image perpendicular to the) 67.166664 0 32 4 -1 roll widthshow 52799 27329 mto 7200 25768 mto (short edge of the paper. A positive value gives a shift upward in portrait mode, and to the right in) 140.0 0 32 4 -1 roll widthshow 52800 25768 mto 7200 24207 mto (landscape mode. The default value is: 0.) show 25432 24207 mto 7200 21546 mto (\\POSTSCRIPT.LONGEDGE.SHIFT) show 22981 21546 mto /Helvetica findfont 1000 scalefont setfont 47242 21546 mto 47242 21546 mto /Helvetica findfont 1000 scalefont setfont ([InitVariable]) show 52800 21546 mto 7200 18885 mto (\\POSTSCRIPT.LONGEDGE.SHIFT is the corresponding variable for shifts perpendicular to the long) 141.7 0 32 4 -1 roll widthshow 52799 18885 mto 7200 17324 mto (edge of the paper. A positive value here gives a shift to the right in portrait mode and downward in) 101.09999 0 32 4 -1 roll widthshow 52799 17324 mto 7200 15763 mto (landscape mode. The default value is: 0.) show 25432 15763 mto 7200 13102 mto (\\POSTSCRIPT.SHORTEDGE.PTS) show 22703 13102 mto /Helvetica findfont 1000 scalefont setfont 47242 13102 mto 47242 13102 mto /Helvetica findfont 1000 scalefont setfont ([InitVariable]) show 52800 13102 mto savepage restore showpage %%BeginPageSetup xmin -5 add ymin 0 add translate 0.01 imagesizefactor mul 0.01 imagesizefactor mul scale %%EndPageSetup /savepage save def newpath 0 0 mto 57100 0 rlineto 0 78624 rlineto -57100 0 rlineto closepath clip newpath /Helvetica findfont 1000 scalefont setfont 0 77684 mto initclip newpath 0 0 moveto 57100 0 rlineto 0 78624 rlineto -57100 0 rlineto closepath clip newpath 30322 5021 mto (2) show 30878 5021 mto 7200 73200 mto /Helvetica findfont 2400 scalefont setfont (XEROX) show 15603 73200 mto /Helvetica findfont 600 scalefont setfont 46410 73200 mto 46410 73200 mto /Helvetica findfont 1000 scalefont setfont (POSTSCRIPT) show 52800 73200 mto 7200 72470 mto gsave newpath 200 setlinewidth 0 setlinecap 7200 72570 mto 52800 72570 lineto stroke grestore 52800 72570 mto 52800 72470 mto 52800 72470 mto 7200 71059 mto (\\POSTSCRIPT.SHORTEDGE.PTS indicates the printable region of the page \(in points\) along the short) 16.000013 0 32 4 -1 roll widthshow 52800 71059 mto 7200 69498 mto (edge of the paper. It should be adjusted to allow for any shifts of the image \(see above\). The default) 43.238094 0 32 4 -1 roll widthshow 52799 69498 mto 7200 67937 mto (value is: 576 \(= 8 inches\).) show 18622 67937 mto 7200 65276 mto (\\POSTSCRIPT.LONGEDGE.PTS) show 22037 65276 mto /Helvetica findfont 1000 scalefont setfont 47242 65276 mto 47242 65276 mto /Helvetica findfont 1000 scalefont setfont ([InitVariable]) show 52800 65276 mto 7200 62615 mto (\\POSTSCRIPT.LONGEDGE.PTS indicates the printable region of the page \(in points\) along the long) 99.25001 0 32 4 -1 roll widthshow 52800 62615 mto 7200 61054 mto (edge of the paper. It should be adjusted to allow for any shifts of the image \(see above\). The default) 43.238094 0 32 4 -1 roll widthshow 52799 61054 mto 7200 59493 mto (value is: 786.24 \(= 10.92 inches\).) show 21958 59493 mto 7200 56832 mto (\\POSTSCRIPT.MAX.WILD.FONTSIZE) show 24314 56832 mto /Helvetica findfont 1000 scalefont setfont 47242 56832 mto 47242 56832 mto /Helvetica findfont 1000 scalefont setfont ([InitVariable]) show 52800 56832 mto 7200 54171 mto (\\POSTSCRIPT.MAX.WILD.FONTSIZE indicates the maximum point size that should be returned from) 64.100006 0 32 4 -1 roll widthshow 52799 54171 mto 7200 52610 mto (FONTSAVAILABLE when the SIZE argument is wild \(i.e. *\). All integer pointsizes from 1 to) 353.80002 0 32 4 -1 roll widthshow 52799 52610 mto 7200 51049 mto (\\POSTSCRIPT.MAX.WILD.FONTSIZE will be indicated as available. The default value is: 72.) show 48659 51049 mto 7200 48388 mto (POSTSCRIPT.PREFER.LANDSCAPE) show 24259 48388 mto /Helvetica findfont 1000 scalefont setfont 47242 48388 mto 47242 48388 mto /Helvetica findfont 1000 scalefont setfont ([InitVariable]) show 52800 48388 mto 7200 45727 mto (POSTSCRIPT.PREFER.LANDSCAPE indicates if the OPENIMAGESTREAM method should default) 178.85713 0 32 4 -1 roll widthshow 52799 45727 mto 7200 44166 mto (the orientation of output files to LANDSCAPE. The default value is: NIL.) show 39105 44166 mto 7200 41505 mto (POSTSCRIPT.TEXTFILE.LANDSCAPE) show 24871 41505 mto /Helvetica findfont 1000 scalefont setfont 47242 41505 mto 47242 41505 mto /Helvetica findfont 1000 scalefont setfont ([InitVariable]) show 52800 41505 mto 7200 38844 mto (POSTSCRIPT.TEXTFILE.LANDSCAPE indicates if the printing of TEXT files \(e.g. LISTFILES, ...\)) 252.9 0 32 4 -1 roll widthshow 52799 38844 mto 7200 37283 mto (should force the orientation of output files to LANDSCAPE. The default value is: T.) show 43885 37283 mto 7200 34622 mto (POSTSCRIPT.BITMAP.SCALE) show 21148 34622 mto /Helvetica findfont 1000 scalefont setfont 47242 34622 mto 47242 34622 mto /Helvetica findfont 1000 scalefont setfont ([InitVariable]) show 52800 34622 mto 7200 31961 mto (POSTSCRIPT.BITMAP.SCALE specifies an independent scale factor for display of bitmap images) 219.40001 0 32 4 -1 roll widthshow 52799 31961 mto 7200 30400 mto (\(e.g. window hardcopies\). Values less than 1 will reduce the image size. \(I.e. a value of 0.5 will give a) 29.049988 0 32 4 -1 roll widthshow 52799 30400 mto 7200 28839 mto (half size bitmap image.\) The position of the scaled bitmap will still have the SAME lower-left corner) 102.999985 0 32 4 -1 roll widthshow 52800 28839 mto 7200 27278 mto (\(i.e. the scaled bitmap is not centered in the region of the full size bitmap image\). The default value is:) 20.600004 0 32 4 -1 roll widthshow 52799 27278 mto 7200 25717 mto (1.) show 8034 25717 mto 28833 23656 mto /Helvetica-Bold findfont 1000 scalefont setfont (HINT) show 31166 23656 mto /Helvetica findfont 1000 scalefont setfont 31166 23656 mto 10800 21595 mto (Setting POSTSCRIPT.BITMAP.SCALE to 0.96, instead of 1, will give cleaner BITMAP) 38.50001 0 32 4 -1 roll widthshow 49200 21595 mto 10800 20034 mto (images on a 300 dpi printer. \(This corrects for the 72 ppi imagestream ) 58.529408 0 32 4 -1 roll widthshow 43076 20034 mto /Helvetica-Oblique findfont 1000 scalefont setfont (vs) 58.529408 0 32 4 -1 roll widthshow 44076 20034 mto /Helvetica findfont 1000 scalefont setfont (. the 75 dpi) 58.529408 0 32 4 -1 roll widthshow 49199 20034 mto 10800 18473 mto (printer, using 4x4 device dots per bitmap pixel.\) Also, values of 0.24, 0.48 and 0.72,) 80.93333 0 32 4 -1 roll widthshow 49199 18473 mto 10800 16912 mto (instead of 0.25, 0.5 and 0.75, will also give cleaner images for reduced size output. In) 23.750011 0 32 4 -1 roll widthshow 49200 16912 mto 10800 15351 mto (general, use integer multiples of 0.24 for a 300 dpi printer.) show 36424 15351 mto 7200 12690 mto (POSTSCRIPT.TEXTURE.SCALE) show 22092 12690 mto /Helvetica findfont 1000 scalefont setfont 47242 12690 mto 47242 12690 mto /Helvetica findfont 1000 scalefont setfont ([InitVariable]) show 52800 12690 mto 7200 10029 mto (POSTSCRIPT.TEXTURE.SCALE specifies an independent scale for the display of bitmap textures.) 174.9 0 32 4 -1 roll widthshow 52799 10029 mto 7200 8468 mto (The value represents the number of device space units per texture unit \(bitmap bit\). The default value) 50.06249 0 32 4 -1 roll widthshow 52800 8468 mto savepage restore showpage %%BeginPageSetup xmin -5 add ymin 0 add translate 0.01 imagesizefactor mul 0.01 imagesizefactor mul scale %%EndPageSetup /savepage save def newpath 0 0 mto 57100 0 rlineto 0 78624 rlineto -57100 0 rlineto closepath clip newpath /Helvetica findfont 1000 scalefont setfont 0 77684 mto initclip newpath 0 0 moveto 57100 0 rlineto 0 78624 rlineto -57100 0 rlineto closepath clip newpath 30322 5021 mto (3) show 30878 5021 mto 7200 73200 mto /Helvetica findfont 2400 scalefont setfont (XEROX) show 15603 73200 mto /Helvetica findfont 600 scalefont setfont 46410 73200 mto 46410 73200 mto /Helvetica findfont 1000 scalefont setfont (POSTSCRIPT) show 52800 73200 mto 7200 72470 mto gsave newpath 200 setlinewidth 0 setlinecap 7200 72570 mto 52800 72570 lineto stroke grestore 52800 72570 mto 52800 72470 mto 52800 72470 mto 7200 71059 mto (is 4, which represents each bit of the texture as a 4x4 block, so that textures are approximately the) 115.5 0 32 4 -1 roll widthshow 52800 71059 mto 7200 69498 mto (same resolution as on the screen \(for 300 dpi output devices, such as the Apple Laserwriter\). ) show 48886 69498 mto 7200 66837 mto (The PostScript package extends the allowed representations of a texture, beyond 16-bit FIXP and) 181.15385 0 32 4 -1 roll widthshow 52799 66837 mto 7200 65276 mto (16x16 bitmap, to ANY square bitmap. \(If the bitmap is not square, its longer edge is truncated from the) 4.1052732 0 32 4 -1 roll widthshow 52799 65276 mto 7200 63715 mto (top or right to make it square.\) Use this feature with caution, as large bitmap textures, or sizes other) 71.52632 0 32 4 -1 roll widthshow 52799 63715 mto 7200 62154 mto (than multiples of 16 bits square, require large amounts of storage in the PostScript interpreter \(in the) 81.37499 0 32 4 -1 roll widthshow 52800 62154 mto 7200 60593 mto (printer controller\), and can cause limitcheck errors when actually printing.) show 39544 60593 mto 7200 57932 mto (Anywhere that a texture or color can be used on an imagestream or in the specification of a BRUSH,) 66.166664 0 32 4 -1 roll widthshow 52799 57932 mto 7200 56371 mto (you can instead give a FLOATP between 0.0 and 1.0 \(inclusive\) to represent a PostScript halftone gray) 1.3749862 0 32 4 -1 roll widthshow 52800 56371 mto 7200 54810 mto (shade. \(0.0 is black and 1.0 is white. Specifically, the value sets the brightness of the shade.\) The) 84.45 0 32 4 -1 roll widthshow 52799 54810 mto 7200 53249 mto (value you specify will not be range checked, and will be passed directly through to the PostScript) 178.62498 0 32 4 -1 roll widthshow 52800 53249 mto 7200 51688 mto (setgray operator. \(E.g. you can pass 0.33 as the color to DRAWLINE to get a dark gray line with) 153.36842 0 32 4 -1 roll widthshow 52799 51688 mto 7200 50127 mto (approximately 67% of the pixels in the line black.\)) show 29098 50127 mto 7200 47466 mto /Helvetica-Bold findfont 1000 scalefont setfont (MISCELLANEOUS) show 15867 47466 mto 7200 44805 mto /Helvetica findfont 1000 scalefont setfont (The SCALE of a PostScript imagestream is 100. This is to allow enough resolution in the width) 210.70587 0 32 4 -1 roll widthshow 52799 44805 mto 7200 43244 mto (information for fonts to enable TEdit to correctly fill and justify text.) show 36379 43244 mto 7200 40583 mto (The first time any PostScript imagestream is created \(even if only to hardcopy a bitmap or window\) the) 21.235302 0 32 4 -1 roll widthshow 52799 40583 mto 7200 39022 mto (DEFAULTFONT is instantiated \(unless a FONTS option was given to the OPENIMAGESTREAM, in) 132.16666 0 32 4 -1 roll widthshow 52799 39022 mto 7200 37461 mto (which case the initial font for the imagestream will be set to that font, or to the CAR if a list\).) show 47495 37461 mto 7200 34800 mto (The PostScript imagestream method for FILLPOLYGON uses the global variable FILL.WRULE as the) 62.41665 0 32 4 -1 roll widthshow 52799 34800 mto 7200 33239 mto (default value for the WINDINGNUMBER argument. \(This is the same variable which is used by the) 109.5 0 32 4 -1 roll widthshow 52800 33239 mto 7200 31678 mto (DISPLAY imagestream method for FILLPOLYGON.\)) show 30375 31678 mto 7200 29017 mto (The PostScript imagestream methods for OPENIMAGESTREAM and SEND.FILE.TO.PRINTER) 457.0 0 32 4 -1 roll widthshow 52800 29017 mto 7200 27456 mto (\(OPENPOSTSCRIPTSTREAM and POSTSCRIPT.SEND, respectively\), support an) 1751.4 0 32 4 -1 roll widthshow 52799 27456 mto 7200 25895 mto (IMAGESIZEFACTOR option to change the overall size of the printed image. The) 812.5834 0 32 4 -1 roll widthshow 52799 25895 mto 7200 24334 mto (IMAGESIZEFACTOR re-sizing affects the entire printed output \(specifically, it superimposes its effects) 37.999992 0 32 4 -1 roll widthshow 52800 24334 mto 7200 22773 mto (upon those of POSTSCRIPT.BITMAP.SCALE and POSTSCRIPT.TEXTURE.SCALE\). Values greater) 66.0 0 32 4 -1 roll widthshow 52800 22773 mto 7200 21212 mto (than 1 enlarge the printed image, and values less than 1 reduce it. \(Specifying an) 627.60004 0 32 4 -1 roll widthshow 52799 21212 mto 7200 19651 mto (IMAGESIZEFACTOR of 0 will cause a divide by zero error!\) ) show 34152 19651 mto 7200 16990 mto (The PostScript package is contained in the files: POSTSCRIPT.LCOM & PS-SEND.LCOM, with the) 136.66667 0 32 4 -1 roll widthshow 52799 16990 mto 7200 15429 mto (source in the files: POSTSCRIPT & PS-SEND. The module PS-SEND.LCOM is required and will be) 60.937504 0 32 4 -1 roll widthshow 52800 15429 mto 7200 13868 mto (loaded automatically when POSTSCRIPT.LCOM is loaded. It contains the function which is called by) 57.428555 0 32 4 -1 roll widthshow 52799 13868 mto 7200 12307 mto (SEND.FILE.TO.PRINTER to actually transmit the file to the printer. It is, by its nature, quite site) 213.5625 0 32 4 -1 roll widthshow 52800 12307 mto 7200 10746 mto (specific, so it is in a separate file to make modifying it for any site relatively simple. System record) 118.52633 0 32 4 -1 roll widthshow 52799 10746 mto 7200 9185 mto (declarations required to compile POSTSCRIPT can be found in EXPORTS.ALL. ) show 42826 9185 mto savepage restore showpage %%BeginPageSetup xmin -5 add ymin 0 add translate 0.01 imagesizefactor mul 0.01 imagesizefactor mul scale %%EndPageSetup /savepage save def newpath 0 0 mto 57100 0 rlineto 0 78624 rlineto -57100 0 rlineto closepath clip newpath /Helvetica findfont 1000 scalefont setfont 0 77684 mto initclip newpath 0 0 moveto 57100 0 rlineto 0 78624 rlineto -57100 0 rlineto closepath clip newpath 30322 5021 mto (4) show 30878 5021 mto 7200 73200 mto /Helvetica findfont 2400 scalefont setfont (XEROX) show 15603 73200 mto /Helvetica findfont 600 scalefont setfont 46410 73200 mto 46410 73200 mto /Helvetica findfont 1000 scalefont setfont (POSTSCRIPT) show 52800 73200 mto 7200 72470 mto gsave newpath 200 setlinewidth 0 setlinecap 7200 72570 mto 52800 72570 lineto stroke grestore 52800 72570 mto 52800 72470 mto 52800 72470 mto 7200 71059 mto (I'm pretty sure that the output generated by the PostScript imageops fully conforms to the Adobe) 168.06252 0 32 4 -1 roll widthshow 52800 71059 mto 7200 69498 mto (Systems Document Structuring Conventions, Version 2.0, January 31, 1987.) show 40993 69498 mto /Helvetica-Bold findfont 1000 scalefont setfont 40993 69498 mto 7200 66837 mto (Including Other PostScript Operations) show 25426 66837 mto 7200 64176 mto /Helvetica findfont 1000 scalefont setfont (If you wish to insert your own specific PostScript operations into a PostScript imagestream, you can do) 15.499995 0 32 4 -1 roll widthshow 52800 64176 mto 7200 62615 mto (so with either POSTSCRIPT.OUTSTR or POSTSCRIPT.PUTCOMMAND.) show 39816 62615 mto 7200 59954 mto (\(POSTSCRIPT.OUTSTR ) show 18868 59954 mto /Helvetica-Oblique findfont 1000 scalefont setfont (STREAM STRING) show 27091 59954 mto /Helvetica findfont 1000 scalefont setfont (\)) show 27424 59954 mto /Helvetica findfont 1000 scalefont setfont 48409 59954 mto 48409 59954 mto /Helvetica findfont 1000 scalefont setfont ([Function]) show 52800 59954 mto 7200 57293 mto (POSTSCRIPT.OUTSTR outputs a string or value to the imagestream. ) 164.7143 0 32 4 -1 roll widthshow 40247 57293 mto /Helvetica-Oblique findfont 1000 scalefont setfont (STREAM) 164.7143 0 32 4 -1 roll widthshow 44414 57293 mto /Helvetica findfont 1000 scalefont setfont ( must be an open) 164.7143 0 32 4 -1 roll widthshow 52799 57293 mto 7200 55732 mto (PostScript imagestream. ) 77.42856 0 32 4 -1 roll widthshow 18880 55732 mto /Helvetica-Oblique findfont 1000 scalefont setfont (STRING) 77.42856 0 32 4 -1 roll widthshow 22658 55732 mto /Helvetica findfont 1000 scalefont setfont ( is the value to output \(STRINGP and LITATOM are most efficient,) 77.42856 0 32 4 -1 roll widthshow 52799 55732 mto 7200 54171 mto (but any value can be output \(its PRIN1 pname is used\)\).) show 32045 54171 mto 7200 51510 mto (\(POSTSCRIPT.PUTCOMMAND ) show 22034 51510 mto /Helvetica-Oblique findfont 1000 scalefont setfont (STREAM STRING) show 30257 51510 mto 30257 51310 mto (1) show 30813 51510 mto ( ... STRING) show 35981 51510 mto 35981 51310 mto (n) show 36537 51510 mto /Helvetica findfont 1000 scalefont setfont (\)) show 36870 51510 mto /Helvetica findfont 1000 scalefont setfont 43629 51510 mto 43629 51510 mto /Helvetica findfont 1000 scalefont setfont ([NoSpread Function]) show 52800 51510 mto 7200 48649 mto (POSTSCRIPT.PUTCOMMAND is more general for sequences of commands and values. It calls) 238.75 0 32 4 -1 roll widthshow 52800 48649 mto 7200 47088 mto (POSTSCRIPT.OUTSTR repeatedly to output each of the ) show 32600 47088 mto /Helvetica-Oblique findfont 1000 scalefont setfont (STRING) show 36378 47088 mto 36378 46888 mto (i) show 36600 47088 mto /Helvetica findfont 1000 scalefont setfont ( arguments to ) show 42992 47088 mto /Helvetica-Oblique findfont 1000 scalefont setfont (STREAM) show 47159 47088 mto /Helvetica findfont 1000 scalefont setfont (.) show 47437 47088 mto 7200 44227 mto (\(\\POSTSCRIPT.OUTCHARFN ) show 21312 44227 mto /Helvetica-Oblique findfont 1000 scalefont setfont (STREAM CHAR) show 28590 44227 mto /Helvetica findfont 1000 scalefont setfont (\)) show 28923 44227 mto /Helvetica findfont 1000 scalefont setfont 48409 44227 mto 48409 44227 mto /Helvetica findfont 1000 scalefont setfont ([Function]) show 52800 44227 mto 7200 41566 mto (\\POSTSCRIPT.OUTCHARFN is used to output the characters forming the text of a PostScript string) 113.30768 0 32 4 -1 roll widthshow 52799 41566 mto 7200 40005 mto (\(e.g. the argument to a show or charpath operator\). ) 64.06249 0 32 4 -1 roll widthshow 31075 40005 mto /Helvetica-Oblique findfont 1000 scalefont setfont (STREAM) 64.06249 0 32 4 -1 roll widthshow 35242 40005 mto /Helvetica findfont 1000 scalefont setfont ( is the open PostScript imagestream to) 64.06249 0 32 4 -1 roll widthshow 52800 40005 mto 7200 38444 mto (output to, and ) 18.894743 0 32 4 -1 roll widthshow 13650 38444 mto /Helvetica-Oblique findfont 1000 scalefont setfont (CHAR) 18.894743 0 32 4 -1 roll widthshow 16483 38444 mto /Helvetica findfont 1000 scalefont setfont ( is the CHARCODE of the character to output. The ) 18.894743 0 32 4 -1 roll widthshow 39590 38444 mto /Helvetica-Bold findfont 1000 scalefont setfont (/) 18.894743 0 32 4 -1 roll widthshow 39868 38444 mto /Helvetica findfont 1000 scalefont setfont ( \(slash\), ) 18.894743 0 32 4 -1 roll widthshow 43740 38444 mto /Helvetica-Bold findfont 1000 scalefont setfont (\() 18.894743 0 32 4 -1 roll widthshow 44073 38444 mto /Helvetica findfont 1000 scalefont setfont ( and ) 18.894743 0 32 4 -1 roll widthshow 46335 38444 mto /Helvetica-Bold findfont 1000 scalefont setfont (\)) 18.894743 0 32 4 -1 roll widthshow 46668 38444 mto /Helvetica findfont 1000 scalefont setfont ( \(parenthesis\)) 18.894743 0 32 4 -1 roll widthshow 52799 38444 mto 7200 36883 mto (characters will be quoted with) 30.882341 0 32 4 -1 roll widthshow 20439 36883 mto /Helvetica-Bold findfont 1000 scalefont setfont ( /) 30.882341 0 32 4 -1 roll widthshow 21026 36883 mto /Helvetica findfont 1000 scalefont setfont (, and characters with ASCII values less than 32 \(space\) or greater than) 30.882341 0 32 4 -1 roll widthshow 52799 36883 mto 7200 35322 mto (126 \(tilde\) will be output as ) 36.687508 0 32 4 -1 roll widthshow 19593 35322 mto /Helvetica-Bold findfont 1000 scalefont setfont (/nnn) 36.687508 0 32 4 -1 roll widthshow 21704 35322 mto /Helvetica findfont 1000 scalefont setfont ( \(in octal\). \\POSTSCRIPT.OUTCHARFN will output the ) 36.687508 0 32 4 -1 roll widthshow 46836 35322 mto /Helvetica-Bold findfont 1000 scalefont setfont (\() 36.687508 0 32 4 -1 roll widthshow 47169 35322 mto /Helvetica findfont 1000 scalefont setfont ( character to) 36.687508 0 32 4 -1 roll widthshow 52800 35322 mto 7200 33761 mto (open the string if necessary. It is important to use POSTSCRIPT.CLOSESTRING to output the ) 232.07143 0 32 4 -1 roll widthshow 52466 33761 mto /Helvetica-Bold findfont 1000 scalefont setfont (\)) 232.07143 0 32 4 -1 roll widthshow 52799 33761 mto /Helvetica findfont 1000 scalefont setfont 52799 33761 mto 7200 32200 mto (character to close the string, because it also clears the stream state flag that indicates that a string is in) 4.1579 0 32 4 -1 roll widthshow 52799 32200 mto 7200 30639 mto (progress \(otherwise, the next POSTSCRIPT.PUTCOMMAND would output the commands to close the) 2.4166815 0 32 4 -1 roll widthshow 52799 30639 mto 7200 29078 mto (string and show it\).) show 15592 29078 mto 7200 26417 mto /Helvetica-Bold findfont 1000 scalefont setfont (Warning) show 11200 26417 mto 7200 23756 mto /Helvetica findfont 1000 scalefont setfont (Do not attempt to create a PostScript font larger than about 600 points, as much of Interlisp's font) 154.88237 0 32 4 -1 roll widthshow 52799 23756 mto 7200 22195 mto (information is stored in SMALLP integers, and too large a font would overflow the font's height, or the) 56.88234 0 32 4 -1 roll widthshow 52799 22195 mto 7200 20634 mto (width for any of the wider characters. \(I know that 600 points is a rediculously large limit \(about 8.3) 100.78947 0 32 4 -1 roll widthshow 52799 20634 mto 7200 19073 mto (inches\), but I thought I'd better mention it, or someone might try it!\)) show 36658 19073 mto 7200 16412 mto /Helvetica-Bold findfont 1000 scalefont setfont (Known Problems/Limitations) show 20980 16412 mto 7200 13751 mto /Helvetica findfont 1000 scalefont setfont (The output generated for a PostScript imagestream is rather brute force. It isn't particularly careful to) 60.624992 0 32 4 -1 roll widthshow 52800 13751 mto 7200 12190 mto (generate the smallest output file for a given sequence of operations. Specifically, it often generates) 112.533325 0 32 4 -1 roll widthshow 52799 12190 mto 7200 10629 mto (extra end-of-lines between PostScript operator sequences \(this has no effect on the printed output,) 151.23079 0 32 4 -1 roll widthshow 52799 10629 mto 7200 9068 mto (only on the file size\).) show 16315 9068 mto savepage restore showpage %%BeginPageSetup xmin -5 add ymin 0 add translate 0.01 imagesizefactor mul 0.01 imagesizefactor mul scale %%EndPageSetup /savepage save def newpath 0 0 mto 57100 0 rlineto 0 78624 rlineto -57100 0 rlineto closepath clip newpath /Helvetica findfont 1000 scalefont setfont 0 77684 mto initclip newpath 0 0 moveto 57100 0 rlineto 0 78624 rlineto -57100 0 rlineto closepath clip newpath 30322 5021 mto (5) show 30878 5021 mto 7200 73200 mto /Helvetica findfont 2400 scalefont setfont (XEROX) show 15603 73200 mto /Helvetica findfont 600 scalefont setfont 46410 73200 mto 46410 73200 mto /Helvetica findfont 1000 scalefont setfont (POSTSCRIPT) show 52800 73200 mto 7200 72470 mto gsave newpath 200 setlinewidth 0 setlinecap 7200 72570 mto 52800 72570 lineto stroke grestore 52800 72570 mto 52800 72470 mto 52800 72470 mto 7200 71059 mto (Using BITMAPs or Functions as BRUSH arguments to the curve drawing functions is not supported,) 101.142845 0 32 4 -1 roll widthshow 52799 71059 mto 7200 69498 mto (nor is using a non-ROUND BRUSH with DRAWCIRCLE or DRAWELLIPSE.) show 40762 69498 mto 7200 66837 mto (There is no support for NS character sets other than 0, and there is no translation of the character) 134.00002 0 32 4 -1 roll widthshow 52800 66837 mto 7200 65276 mto (code values from NS encoding to PostScript encoding.) show 31378 65276 mto 7200 62615 mto (There is no support for color.) show 19983 62615 mto 7200 59954 mto (\\POSTSCRIPT.OUTCHARFN is pretty wimpy in its handling of TAB characters. It just outputs 8) 228.42859 0 32 4 -1 roll widthshow 52799 59954 mto 7200 58393 mto (SPACEs for the TAB.) show 16704 58393 mto 7200 55732 mto (I haven't yet documented how to build the .PSCFONT files for any new fonts that become available, I'll) 21.000006 0 32 4 -1 roll widthshow 52800 55732 mto 7200 54171 mto (do that eventually.) show 15316 54171 mto savepage restore showpage %%Trailer