%!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