brian@ut-sally.UUCP (Brian H. Powell) (07/13/87)
[paintps.shar update for LaserWriter 4.0] Here's the update to make maclaser (part of paintps.shar that was posted to comp.sources.mac recently) work with the latest LaserWriter software. --- # This is a shell archive. Remove anything before this line, # then unpack it by saving it in a file and typing "sh file". # # Wrapped by on Fri Jun 5 16:17:53 CDT 1987 # Contents: README.UPDATE laser-prep-65.pro macfilter.csh maclaser.1 echo x - README.UPDATE sed 's/^@//' > "README.UPDATE" <<'@//E*O*F README.UPDATE//' This set of files updates "maclaser" (part of the paintps.shar package) so that it supports the version 4.0 LaserWriter driver. This LaserWriter driver was distributed with System 4.1 and Finder 5.5. I've included a new man page for maclaser which replaces the old one. I've also included a new macfilter.csh file which recognizes output from the new LaserWriter driver. And of course, I've also included the new modified Laserprep, which should be called laser-prep-65.pro. Thank you for your support. Brian H. Powell UUCP: {ihnp4,seismo,ctvax}!ut-sally!brian ARPA: brian@sally.UTEXAS.EDU _Work_ _Not Work_ Department of Computer Sciences P.O. Box 5899 Taylor Hall 2.124 Austin, TX 78763-5899 The University of Texas at Austin (512) 346-0835 Austin, TX 78712-1188 (512) 471-9536 @//E*O*F README.UPDATE// chmod u=rw,g=r,o=r README.UPDATE echo x - laser-prep-65.pro sed 's/^@//' > "laser-prep-65.pro" <<'@//E*O*F laser-prep-65.pro//' %! %%Title: "Laser Prep -- The Apple PostScript Dictionary (md)" %%Creator: Apple Software Engineering %%CreationDate: Thursday, March 19, 1987 %{appledict version #65 % (c) CopyRight Apple Computer, Inc. 1984,1985,1986,1987 All Rights Reserved. %%EndComments %%BeginProcSet: "(AppleDict md)" 65 0 systemdict/currentpacking known{currentpacking true setpacking}if /LW{save statusdict/product get(LaserWriter)anchorsearch exch pop{length 0 eq{1}{2}ifelse}{0}ifelse exch restore}bind def /LW+{LW 2 eq}bind def /ok{systemdict/statusdict known dup{LW 0 gt and}if}bind def %ok{statusdict begin 9 sccinteractive 3 ne exch 0 ne or{9 0 3 setsccinteractive}if end}if /md 250 dict def md begin /av 65 def /T true def /F false def /mtx matrix def /s75 75 string def /s8 8 string def /s1 ( ) def /pxs 1 def /pys 1 def 1 0 mtx defaultmatrix dtransform exch atan/pa exch def /nlw .24 def /ppr [-32 -29.52 762 582.48] def /pgs 1 def/por true def /xb 500 array def /so true def /fillflag false def /pnm 1 def /fmv true def /sfl false def /ma 0 def /invertflag false def /xflip false def /yflip false def /noflips true def /scaleby96 false def /fNote true def /fBitStretch true def /fg (Rvd\001\001\000\000\177) def /bdf{bind def}bind def /xdf{exch def}bdf /xl{neg exch neg translate}bdf /fp{pnsh 0 ne pnsv 0 ne and}bdf /nop{}bdf/lnop[/nop load]cvx bdf /vrb[ {fp{gsave 1 setlinewidth pnsh pnsv scale stroke grestore}if newpath}bind /eofill load dup /newpath load 2 index dup {clip newpath}bind {}bind dup 2 copy ]def currentscreen/spf xdf/rot xdf/freq xdf /doop{vrb exch get exec}bdf /psu{/fNote xdf /fBitStretch xdf /scaleby96 xdf /yflip xdf /xflip xdf /invertflag xdf xflip yflip or{/noflips false def}if /pgs xdf 2 index .72 mul exch div/pys xdf div .72 mul/pxs xdf ppr astore pop/por xdf sn and/so xdf}bdf /txpose{fNote{smalls}{bigs}ifelse pgs get exec pxs pys scale ppr aload pop por {noflips {pop exch neg exch translate pop 1 -1 scale}if xflip yflip and {pop exch neg exch translate 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg translate}if xflip yflip not and {pop exch neg exch translate pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 translate}if yflip xflip not and {ppr 1 get neg ppr 0 get neg translate}if} {noflips{translate pop pop 270 rotate 1 -1 scale}if xflip yflip and {translate pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg translate}if xflip yflip not and{translate pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 translate}if yflip xflip not and {translate pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 exch translate}if}ifelse %statusdict begin waittimeout 300 lt{/waittimeout 300 def}if end scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy translate .96 dup scale neg exch neg exch translate}if}bdf /fr{3 index 3 index xl ppr aload pop 3 -1 roll 2 mul add 3 1 roll exch 2 mul add 6 2 roll 3 -1 roll sub 3 1 roll exch sub 3 1 roll exch 3 -1 roll div 3 1 roll div exch scale}bdf /lws{show}bdf /tv{show pop pop}bdf /obl{{0.212557 mul}{pop 0}ifelse}bdf /sfd{ps fg 5 -1 roll get mul 100 div 0 ps 5 -1 roll obl ps neg 0 0 6a astore makefont setfont}bdf /fnt{findfont sfd}bdf /bt{sa 3 1 roll 3 index and put}bdf /sa(\000\000\000\000\000\000\000\000\000\000)def /fs{0 1 bt 1 2 bt 2 4 bt 3 8 bt 4 16 bt 5 32 bt 6 64 bt 7 128 bt sa exch 8 exch put}bdf /mx1 matrix def /mx2 matrix def /mx3 matrix def /bu{currentpoint currentgray currentlinewidth currentlinecap currentlinejoin currentdash exch aload length fg 5 sfl{1}{0}ifelse put pnsv pnsh 2t aload pop 3a aload pop mx2 aload pop mx1 aload pop mtx currentmatrix aload pop mx3 aload pop ps pm restore /ps xdf mx3 astore pop}bdf /bn{/pm save def mx3 setmatrix newpath 0 0 moveto ct dup 39 get 0 exch getinterval cvx exec mtx astore setmatrix mx1 astore pop mx2 astore pop 3a astore pop 2t astore pop/pnsh xdf/pnsv xdf gw /sfl fg 5 get 0 ne def array astore exch setdash setlinejoin setlinecap setlinewidth setgray moveto}bdf /fc{save vmstatus exch sub 50000 lt {(%%[|0|]%%)=print flush}if pop restore}bdf /tc{32768 div add 3 1 roll 32768 div add 2t astore pop}bdf /3a [0 0 0] def /2t 2 array def /tp{3a astore pop}bdf /tt{mx2 currentmatrix pop currentpoint 2 copy 2t aload pop qa 2 copy translate 3a aload pop exch dup 0 eq {pop}{1 eq{-1 1}{1 -1}ifelse scale}ifelse rotate pop neg exch neg exch translate moveto}bdf /te{mx2 setmatrix}bdf /th{3 -1 roll div 3 1 roll exch div 2 copy mx1 scale pop scale/sfl true def}bdf /tu{1 1 mx1 itransform scale/sfl false def}bdf /ts{1 1 mx1 transform scale/sfl true def}bdf /fz{/ps xdf}bdf /dv{dup 0 ne{div}{pop}ifelse}bdf /pop4{pop pop pop pop}bdf /it{sfl{mx1 itransform}if}bdf /gm{exch it moveto}bdf/rm{it rmoveto}bdf /lm{currentpoint sfl{mx1 transform}if exch pop sub 0 exch it rmoveto}bdf /fm{statusdict/manualfeed known}bdf /se{statusdict exch/manualfeed exch put}bdf /mf{dup/ma exch def 0 gt{fm se/t1 5 st ok ma 1 gt and{/t2 0 st/t3 0 st statusdict/manualfeedtimeout 3600 put }if}if}bdf /jn{/statusdict where exch pop{statusdict exch /jobname exch put}if}bdf /pen{pnm mul/pnsh xdf pnm mul/pnsv xdf pnsh setlinewidth}bdf /min{2 copy gt{exch}if pop}bdf /max{2 copy lt{exch}if pop}bdf /dh{fg 6 1 put array astore exch pop exch pop exch setdash}bdf /ih[currentdash]def /rh{fg 6 0 put ih aload pop setdash}bdf /dl{gsave nlw pys div setlinewidth 0 setgray}bdf /dlin{exch currentpoint currentlinewidth 2 div dup translate newpath moveto lineto currentpoint stroke grestore moveto}bdf /lin{fg 6 get 0 ne{exch lineto currentpoint 0 doop moveto} {exch currentpoint/pnlv xdf/pnlh xdf gsave newpath /@1 xdf/@2 xdf fp{pnlh @2 lt{pnlv @1 ge {pnlh pnlv moveto @2 @1 lineto pnsh 0 rlineto 0 pnsv rlineto pnlh pnsh add pnlv pnsv add lineto pnsh neg 0 rlineto} {pnlh pnlv moveto pnsh 0 rlineto @2 pnsh add @1 lineto 0 pnsv rlineto pnsh neg 0 rlineto pnlh pnlv pnsv add lineto}ifelse}{pnlv @1 gt {@2 @1 moveto pnsh 0 rlineto pnlh pnsh add pnlv lineto 0 pnsv rlineto pnsh neg 0 rlineto @2 @1 pnsv add lineto}{pnlh pnlv moveto pnsh 0 rlineto 0 pnsv rlineto @2 pnsh add @1 pnsv add lineto pnsh neg 0 rlineto 0 pnsv neg rlineto}ifelse}ifelse closepath fill}if @2 @1 grestore moveto}ifelse}bdf /gw{/pnm fg 3 get fg 4 get div def}bdf /lw{fg exch 4 exch put fg exch 3 exch put gw pnsv pnsh pen}bdf /barc{/@1 xdf/@2 xdf/@3 xdf/@4 xdf/@5 xdf /@6 xdf/@7 xdf/@8 xdf gsave @@5 @7 add 2 div @6 @8 add 2 div translate newpath 0 0 moveto @@5 @7 sub @6 @8 sub mtx currentmatrix pop scale @1{newpath}if 0 0 0.5 @4 @3 arc @4 @3 sub abs 360 ge{closepath}if mtx setmatrix @2 doop grestore}bdf /ar{dup 0 eq barc}bdf /ov{0 exch 360 exch true barc}bdf /rc{/@t xdf currentpoint 6 2 roll newpath 4 copy 4 2 roll exch moveto 6 -1 roll lineto lineto lineto closepath @t doop moveto}bdf /mup{dup pnsh 2 div le exch pnsv 2 div le or}bdf /rr{/@1 xdf 2. div/@2 xdf 2. div/@3 xdf /@4 xdf/@5 xdf/@6 xdf/@7 xdf @@7 @5 eq @6 @4 eq @2 mup or or{@7 @6 @5 @4 @1 rc} {@4 @6 sub 2. div dup @2 lt{/@2 xdf}{pop}ifelse @@5 @7 sub 2. div dup @2 lt{/@2 xdf}{pop}ifelse @@1 0 eq{/@2 @2 pnsh 2 div 2 copy gt{sub def}{0 pop4}ifelse}if currentpoint newpath @@4 @6 add 2. div @7 moveto @@4 @7 @4 @5 @2 arcto pop4 @@4 @5 @6 @5 @2 arcto pop4 @@6 @5 @6 @7 @2 arcto pop4 @@6 @7 @4 @7 @2 arcto pop4 closepath @1 doop moveto}ifelse}bdf /pr{gsave newpath/pl{exch moveto/pl{exch lineto}def}def}bdf /pl{exch lineto}bdf /ep{dup 0 eq{{moveto}{exch lin}{}{(%%[|1|]%%)= flush}pathforall pop grestore}{doop grestore}ifelse currentpoint newpath moveto}bdf /gr{64. div setgray}bdf /pat{s8 copy pop 9.375 pa por not{90 add}if{1 add 4 mul cvi s8 exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}setscreen gr}bdf /sg{freq rot/spf load setscreen gr}bdf /dc{transform round .5 sub exch round .5 sub exch itransform}bdf /sn{userdict/smooth4 known}bdf /x8{3 bitshift}bdf /x4{2 bitshift}bdf /d4{-2 bitshift}bdf /d8{-3 bitshift}bdf /rb{15 add -4 bitshift 1 bitshift}bdf /db{/@7 save def/@1 xdf/@2 xdf/@3 xdf/@4 xdf/@5 xdf/@6 @5 @3 4 add mul def dc translate scale/xdbit 1 1 idtransform abs/ydbit exch def abs def {0 0 1 ydbit add 1 10 rc clip}if @@1 0 eq @1 4 eq or{1 setgray ydbit 0 1 ydbit add 1 2 rc}if @@1 3 eq @1 7 eq or{1}{0}ifelse setgray /@9 @1 0 eq @1 1 eq @1 3 eq or or invertflag xor def/@13 @6 def @@2 fBitStretch or {/@10 @4 x4 def /@11 @3 x4 def /@12 @10 rb def /@13 @12 @11 mul def /@15 1 1 dtransform abs/calcY 1 index def round cvi/@14 exch def abs/calcX 1 index def round cvi scaleby96 not{1 add}if def/@16 @15 rb def /@17 @16 @14 mul def}if sn @13 60000 lt and @2 fBitStretch or and{mtx currentmatrix dup 1 get exch 2 get 0. eq exch 0. eq and @17 60000 lt and fBitStretch and {@16 3 bitshift @14 @9 [calcX 0 0 calcY 0 0]{@17 string @13 string currentfile @6 string readhexstring pop 1 index @4 @3 @5 @12 @2 smooth4 @@10 @11 @12 dup string 5 index @15 @14 @16 dup string stretch}imagemask} {@12 x8 @11 @9 [@10 0 0 @11 0 0]{@13 string currentfile @6 string readhexstring pop 1 index @4 @3 @5 @12 @2 smooth4} imagemask}ifelse}{@5 3 bitshift @3 4 add @9 [@4 0 0 @3 0 2] {currentfile @6 string readhexstring pop}imagemask}ifelse @@7 restore}bdf /wd 16 dict def /mfont 14 dict def /mdf{mfont wcheck not{/mfont 14 dict def}if mfont begin xdf end}bdf /cf{{1 index/FID ne{def}{pop pop}ifelse}forall}bdf /rf{/@1 exch def/@2 exch def FontDirectory @2 known{cleartomark pop}{findfont dup begin dup length @1 add dict begin cf {/Encoding macvec def}{Encoding dup length array copy/Encoding exch def counttomark 2 idiv{Encoding 3 1 roll put}repeat}ifelse pop exec currentdict end end @2 exch definefont pop}ifelse}bdf /bmbc{exch begin wd begin /cr xdf save CharTable cr 6 mul 6 getinterval{}forall /bitheight xdf/bitwidth xdf @.96 div/width xdf Gkernmax add/XOffset xdf Gdescent add/YOffset xdf/rowbytes xdf rowbytes 255 eq{0 0 0 0 0 0 setcachedevice} {Gnormsize dup scale width 0 XOffset YOffset bitwidth XOffset add bitheight YOffset add setcachedevice rowbytes 0 ne{ XOffset YOffset translate newpath 0 0 moveto bitwidth bitheight scale sn{ /xSmt bitwidth x4 def /ySmt bitheight x4 def /rSmt xSmt rb def rSmt x8 ySmt true [xSmt 0 0 ySmt neg 0 ySmt] {rSmt ySmt mul string CharData cr get 1 index bitwidth bitheight rowbytes rSmt so smooth4} }{rowbytes 3 bitshift bitheight 4 add true [bitwidth 0 0 bitheight neg 0 bitheight 2 add] {CharData cr get} }ifelse imagemask }if }ifelse restore end end }bdf /bb{.96 exch div/Gnormsize mdf 2 index /Gkernmax mdf 1 index/Gdescent mdf 3 index div 4 1 roll 2 index div 1. 5 2 roll exch div 4 1 roll 4 array astore/FontBBox mdf }bdf /cdf{mfont/CharData get 3 1 roll put}bdf /bf{ mfont begin /FontType 3 def /FontMatrix [1 0 0 1 0 0] def /Encoding macvec def /BuildChar/bmbc load def end mfont definefont pop }bdf /wi LW 1 eq{{gsave 0 0 0 0 0 0 0 0 moveto lineto lineto lineto closepath clip stringwidth grestore}bind}{/stringwidth load}ifelse def /aps{0 get 124 eq}bdf /xc{s75 cvs dup}bdf /xp{put cvn}bdf /scs{xc 3 67 put dup 0 95 xp}bdf /sos{xc 3 79 xp}bdf /sbs{xc 1 66 xp}bdf /sis{xc 2 73 xp}bdf /sob{xc 2 79 xp}bdf /sss{xc 4 83 xp}bdf /dd{exch 1 index add 3 1 roll add exch}bdf /smc{moveto dup lws}bdf /kwn{FontDirectory 1 index known{findfont exch pop}}bdf /gl{1 currentgray sub setgray}bdf /mm{/mfont 10 dict def mfont begin /FontMatrix [1 0 0 1 0 0] def /FontType 3 def /Encoding macvec def /df 4 index findfont def /FontBBox [0 0 1 1] def /xda xdf/mbc xdf /BuildChar{wd begin/cr xdf/fd xdf/cs s1 dup 0 cr put def fd/mbc get exec end}def exec end mfont definefont}bdf /ac{dup scs kwn{exch findfont dup length 1 add dict begin cf fmv{/Encoding macvec def}if /StrokeWidth nlw 1000 mul pys div ps div dup 12 lt{pop 12}if def /PaintType 2 def currentdict /UniqueID known {/UniqueID UniqueID 16#A80000 xor def}if currentdict end definefont}ifelse}bdf /mb{dup sbs kwn{exch{pop}{bbc}{}mm}ifelse sfd}bdf /mo{dup sos kwn{exch{pop}{boc}{}mm}ifelse sfd}bdf /ms{dup sss kwn{exch{pop}{bsc}{}mm}ifelse sfd}bdf /ou{dup sos kwn{exch dup ac pop{scs findfont /df2 xdf}{aoc}{}mm}ifelse sfd}bdf /su{dup sss kwn{exch dup ac pop{scs findfont /df2 xdf}{asc}{}mm}ifelse sfd}bdf /ao{/fmv true def ou}bdf/as{/fmv true def su}bdf /vo{/fmv false def ou}bdf/vs{/fmv false def su}bdf /bbc{/da .03 def fd/df get setfont gsave cs wi 1 index 0 ne{exch da add exch}if grestore setcharwidth cs 0 0 smc da 0 smc da da smc 0 da moveto lws}bdf /boc{/da 1 ps div def fd/df get setfont gsave cs wi 1 index 0 ne{exch da add exch}if grestore setcharwidth cs 0 0 smc da 0 smc da da smc 0 da smc gl da 2. div dup moveto lws}bdf /bsc{/da 1 ps div def /ds .05 def/da2 da 2. div def fd/df get setfont gsave cs wi 1 index 0 ne{exch ds add da2 add exch}if grestore setcharwidth cs ds da2 add .01 add 0 smc 0 ds da2 sub translate 0 0 smc da 0 smc da da smc 0 da smc gl da 2. div dup moveto lws}bdf /aoc{fd/df get setfont gsave cs wi grestore setcharwidth gl cs 0 0 smc fd/df2 get setfont gl 0 0 moveto lws}bdf /asc{/da .05 def fd/df get setfont gsave cs wi 1 index 0 ne{exch da add exch}if grestore setcharwidth cs da .01 add 0 smc 0 da translate gl 0 0 smc gl fd /df2 get setfont 0 0 moveto lws}bdf /st{1000 mul usertime add dup 2147483647 gt{2147483647 sub}if def}bdf /the{usertime sub dup 0 lt exch -2147483648 gt and}bdf /6a 6 array def /2a 2 array def /3q 3 array def /qs{3 -1 roll sub exch 3 -1 roll sub exch}bdf /qa{3 -1 roll add exch 3 -1 roll add exch}bdf /qm{3 -1 roll 1 index mul 3 1 roll mul}bdf /qn{6a exch get mul}bdf /qA .166667 def/qB .833333 def/qC .5 def /qx{6a astore pop qA 0 qn qB 2 qn add qA 1 qn qB 3 qn add qB 2 qn qA 4 qn add qB 3 qn qA 5 qn add qC 2 qn qC 4 qn add qC 3 qn qC 5 qn add}bdf /qp{6 copy 12 -2 roll pop pop}bdf /qc{exch qp qx curveto}bdf /qi{{exch 4 copy 2a astore aload pop qa .5 qm newpath moveto} {exch 2 copy 6 -2 roll 2 qm qs 4 2 roll}ifelse}bdf /qq{{qc 2a aload pop qx curveto}{exch 4 copy qs qa qx curveto}ifelse}bdf /pt{currentpoint newpath moveto}bdf /qf{/fillflag true def}bdf /ec{1 and 0 ne{0 doop}if grestore currentpoint newpath moveto/fillflag false def}bdf /eu{currentpoint fp{0 ep}{grestore newpath}ifelse moveto/fillflag false def}bdf /bp{currentpoint newpath 2 copy moveto}bdf /ef{gsave fillflag{gsave eofill grestore}if}bdf /sm{0 exch{@1 eq{1 add}if}forall}bdf /lshow{4 1 roll exch/@1 exch def {1 index wi pop sub 1 index sm dv 0 @1 4 -1 roll widthshow} {1 index wi pop sub 1 index dup sm 10 mul exch length 1 sub add dv dup 10. mul 0 @1 4 -1 roll 0 6 -1 roll awidthshow}ifelse}bdf /setTxMode{sa 9 2 index put 3 eq{1}{0}ifelse setgray}bdf /SwToSym{{}mark false/Symbol/|______Symbol 0 rf 0 sa 6 get 0 ne{pop 1} {sa 7 get 0 eq{pop 2}if}ifelse sa 1 get 0 ne/|______Symbol sa 4 get 0 ne{vs}{sa 3 get 0 ne{vo}{fnt}ifelse}ifelse}bdf /mc{0 3 1 roll transform neg exch pop}bdf /ul{dup 0 ne sa 2 get 0 ne and{gsave 0 0 /UnderlinePosition kif{mc}{ps -10 div}ifelse/UnderlineThickness kif{mc} {ps 15 div}ifelse abs setlinewidth neg rmoveto sa 4 get 0 ne{gsave currentlinewidth 2. div dup rmoveto currentpoint newpath moveto 2 copy rlineto stroke grestore}if sa 3 get sa 4 get or 0 ne{gsave gl 2 copy rlineto stroke grestore rlineto strokepath nlw pys div setlinewidth}{rlineto}ifelse stroke grestore}{pop}ifelse}bdf /sgt{2 copy known{get true}{pop pop false}ifelse}bdf /kif{currentfont dup/FontMatrix get exch/FontInfo sgt{true} {currentfont/df sgt {dup/FontInfo sgt{3 1 roll/FontMatrix get mtx concatmatrix exch true} {pop pop pop false} ifelse}{pop pop false}ifelse}ifelse{3 -1 roll sgt{exch true} {pop false}ifelse}{false}ifelse}bdf /blank/Times-Roman findfont/CharStrings get/space get def /macvec 256 array def /NUL/SOH/STX/ETX/EOT/ENQ/ACK/BEL/BS/HT/LF/VT/FF/CR/SO/SI /DLE/DC1/DC2/DC3/DC4/NAK/SYN/ETB/CAN/EM/SUB/ESC/FS/GS/RS/US macvec 0 32 getinterval astore pop macvec 32/Times-Roman findfont/Encoding get 32 96 getinterval putinterval macvec dup 39/quotesingle put 96/grave put /Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis/Udieresis/aacute /agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave /ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute /ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis /dagger/degree/cent/sterling/section/bullet/paragraph/germandbls /registered/copyright/trademark/acute/dieresis/notequal/AE/Oslash /infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff/summation /product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash /questiondown/exclamdown/logicalnot/radical/florin/approxequal/Delta /guillemotleft /guillemotright/ellipsis/blank/Agrave/Atilde/Otilde/OE/oe /endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide/lozenge /ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright/fi/fl /daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand /Acircumflex/Ecircumflex/Aacute /Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave/Oacute/Ocircumflex /apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde /macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron macvec 128 128 getinterval astore pop {}mark true/Courier/|______Courier 0 rf {/Metrics 21 dict begin/zero 600 def/one 600 def/two 600 def/three 600 def /four 600 def/five 600 def/six 600 def/seven 600 def/eight 600 def /nine 600 def/comma 600 def/period 600 def/dollar 600 def /numbersign 600 def/percent 600 def/plus 600 def/hyphen 600 def /E 600 def/parenleft 600 def/parenright 600 def/space 600 def currentdict end def currentdict/UniqueID known{/UniqueID 16#800000 def}if /FontBBox FontBBox 4 array astore def}mark true/Helvetica/|______Seattle 1 rf /oldsettransfer/settransfer load 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}def /settransfer{currenttransfer concatprocs oldsettransfer}def /PaintBlack{{1 exch sub}settransfer gsave newpath clippath 1 setgray fill grestore}def /od{(Rvd\001\001\000\000\177) fg copy pop txpose 1 0 mtx defaultmatrix dtransform exch atan/pa exch def newpath clippath mark {transform{itransform moveto}}{transform{itransform lineto}} {6 -2 roll transform 6 -2 roll transform 6 -2 roll transform {itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}} {{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}bdf /cd{}bdf /op{/sfl false def/pm save def}bdf /cp{not{userdict/#copies 0 put}if ma 0 gt{{t1 the{exit}if}loop}if{copypage} {showpage}ifelse pm restore}bdf /px{0 3 1 roll tp tt}bdf /psb{/us save def}bdf /pse{us restore}bdf /ct 40 string def /nc{currentpoint initclip newpath gc{dup type dup/arraytype eq exch /packedarraytype eq or{exec}if} forall clip newpath moveto}bdf /kp{ct 0 2 index length 2 index 39 2 index put getinterval copy cvx exec mx3 currentmatrix pop}bdf end LW 1 eq userdict/a4small known not and{/a4small [[300 72 div 0 0 -300 72 div -120 3381] 280 3255 {statusdict/jobstate (printing) put 0 setblink margins exch 196 add exch 304 add 8 div round cvi frametoroket statusdict/jobstate (busy) put 1 setblink} /framedevice load 60 45{dup mul exch dup mul add 1.0 exch sub}/setscreen load {}/settransfer load/initgraphics load/erasepage load]cvx statusdict begin bind end readonly def}if md begin/bigs[lnop lnop/legal load userdict/a4 known{/a4 load}{lnop}ifelse lnop lnop lnop lnop lnop]def /smalls[lnop userdict/note known{/note load}{dup}ifelse lnop userdict /a4small known{/a4small load}{lnop}ifelse 2 index lnop lnop lnop lnop ]def end systemdict/currentpacking known{setpacking}if currentfile ok userdict/stretch known not and{eexec}{flushfile}ifelse 373A767D4B7FD94FE5903B7014B1B8D3BED02632C855D56F458B118ACF3AF73F C4EF5E81F5749042B5F9CF1016D093B75F250B7D8280B2EACE05A37037F7BDF6 E12226D7D4E2DF2C52FAFD5FD40FE72A0D3AC4BD485D8369D4C87636E920D1DA F222D92155A9CB1667E715F0B82799B37CC8F5B32B74B39CF494536DC39C7EF0 4A7BCB29E2CEC79073CADCCFB23B4AA1363F876F5121B618071B7B4EB1E5DE75 FAA2368A3E5DB2B198623AFE92AE9484270FE7F57A850E88C0D3EEA156611C91 D8E480D4370B025CCA6929A2BF40AD3D01B2CB7EE6DFB46E12A830542337F781 9B67F9765210F76DB06F34DA5B13A11759305C582E16D2B854939F6D9121F2A4 F285282F5DCD3D15896D121E3D6F5BE79E087451BB0ED233CDBEF090D3B4AC2D C34B97E70C61D95FB072B8C12D2ABD843520949A39DCF99E2C1AA8FBCD025E47 E0A82A8D96E75BAF40F52AD402495BBD4DE0F356C8B14E764874E639C9F045A0 D1908EC6456EB6C5B8A6F826192F767EF2C55A21C58F5F9CC1F59247B55F2387 828C7FE89D5E7D8484D1BC86CB6673BDBE4FE17DD9BDE95224FE645136F41330 BF155A4DDE1B0A32233BF471CE58FBC660DC7E641B0A0D30018454E2191C414A 3011FF3FED1C0D88FE1FF9F75DCC456D097947226FBEC92509146D3A4CFFC047 1B31C53222ED9DD88566F60F6C0D705AD79DACF53B070026F083ED28B5CF757A AA0A169F6F320A75E9D2ED50ABD939AF85B6346C2ADB25D168F10508E1516D19 4C635E6B187FADEA0829DBF0390C0F003F0265E215BC96CA3CC13D4A8E01570B E193CA75A620728CD275ACF1986EFFB3A13419FE55EA7C4467B7E7EEDC1FC29C 9F8C46A557D2CCDB914EF7B93E7530D555DFC2398AFC68CAD991F062EF85BAA1 884EC166C7C5DF8543666D8C41BE267D706BD1588F1F662F705CAE4D29DC38EF 66BFAA89470D8A099B6F1B4587F7B024412276106FCD3EB5AE17A5D1DF178199 2DC40EA0A992F706F701304CEA9D9073E7A74F1E687D81C3E5841D31CF86855B AAAD9B5D30317C75150A857C6B114735315CDD1AEF36C26BBB0645499406DEE2 F24B3B1C72FEC97C7BA31AA2CDAB25418BB1DC4C7E4757F1D625087B0FD0300C 03A65F2A72CE734925735277E034CDCF599129679F70CC8B66E03878851DB750 41F275E1E5761F3EC753BE1359CA364A22047AE4886217F9259FE19FF5B116E8 019B98B143114B313E8BEF87EC949D85C82E0812E6F50525E73890AF362CC8EE 8A85F4197E6AC18638EF12E56A808D439AF1BFD363F140314BF4E534485C42F1 856688CC35288E8D770120A420FB9F1FCF8AE8BD6D6156CC23E6C51119FE4DE1 B68C9DF3487E9974BF9ED31F8D3CE93FF101867319F2FF492D5D398B4F09A66F 2F55BCAB34B99173B7EE89039D00DD21A7B3A52E9F028F8301B5FC12D409412E 064513BC579AAC498F577EA8ECD1FE3E42DC3CC320786C7B00194FEDF344402C 33FC492D4BA86992B01683F440220FFE756BC88A94223D316078D69D33560E8E AB76B24CB7AA4320CF435593D76F624324ABE00B5587A4F283C725EA24567133 F25F472B5E2E4474DDB5A16AC5F2DF32350395D3E3892FE361F4D5C9A610C654 C9227614FBBAFF3356A90A2266E00F66234061075491571A65616211257F1600 00000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark currentfile ok userdict/smooth4 known not and{eexec}{flushfile}ifelse F94E00EE41A71C59E5CAEED1EDBCF23D1DBA1EE99B9BB356492923BD8B1BA83A 87CEB0E07377A31FD6241E814681118E17DC7CACE570399506E6E441B871B604 3831BD03EFC11DBBD8001EE2FF8CFBD485065D455A2E15AC36F1A84AD8789FA6 461199C7CD14CB9FD64D4B06452B7FC0A8FC263F70F1CCB893295D4DE70ADAB7 71C0F84396FA98C60B11DA02ABA157298DF0A23621853BEF167443A985ADC09B EFFD51CB4D29179E2B34609EF38A49DA61F4BFC256A3DE0732D7D29754A19485 7B9C9E9971227AA1DD0611FBB10E44E5FF66C062D9C24ED3290529330BC31782 5E876929582DB0E39B9FC5EFD20CC1D4F94920EB9C534D0DA90DE70D25BC7287 319CF28602B3F46633C242CAFC8905E960317E3C2FA20AB8DB06ADBAF292FC7B A2CA14EE65DF28B99CC11666B70AD33E8E1D57D63D4B89ECC615AE5747C1CA75 2C833D8D6DE54CD4A0350B44310555CE3BD2C615ADD27B634CDB350AF3A432CE 78AACD2909A5B586F666CD87919A36DB1CBE86B3CE281DFD01CD7E1B8A18A4B4 15CECBFF79A5C4390A15EA77D14D6BE12BAB5A8268C3F286D0590060647CABED 674443CD258F11415E866AB330A251691B61F2422A61AFE59B6B4FBDCF85ED9B A0F8E483C034089E6877FF5923698D3A0DC0EED6B9CFD32DF0839BC4EA5F6D1F CB6DD0920391E57E84745131D02D100179F4E0A68EC0A5FF6680A6F463D038B0 4AF63FFA13D743B995A26A743C26D387209023C91DE43DF047A16F328AC9DDC0 8573B38BE9EA341EA16C78EC32F3A1B36B90D95A50610F4D050EC1C33497F3F3 A81A1B4C8BEF0BA84EE2FAA32DC112DAC490AF53E1749C4A0D866CAF7B893E52 383B0D38065C333FB122B700D7246F7EE87D942AE3DB5C1DD77E9E76C80CC5AD 63D28DFED0E229CE604673F78CD47F258FDF5BF3A3EAEC5C9BC8E482D8DBA9D2 68A35DA8C095A690679ED2123E8B8F5E4826FA3B199EAA5D482D4B6AA86572E3 87CECEB7149C8947F41D6339328A748A17F8C4AD3B0555F1E409450BA0C564F1 F488BB5096EB003568D4D5EF6489897E27409547D0EE4487D30184793B0F27BD 265A64BDB3EA6761569DA955620C612E718677B77D6D81B999C6298877AFE0D1 D6F6F358377A8BD2402F669C64B972B3A065EF7DD4BDEFFFE17E63DB8898FA6E 69166B710AAD6BA2EA9AF61E4B8C8701638D4D6E4DFFFC192AEF6BC027095C4C 72D748979675BA29FAF61E75343E14E61034602E5A79CD2519796ED6A9CC4EDE A46A9B59D4A807E786B5EE46F25B0360BC8E7C12D723122CDEEF247C9776F4C9 9C8EBED6828AA19744B5ADF0D07D95D98B3072372388D41B0FAB1CCE27751706 79575ECDCA13B22A17FE9C6605C3445F58F1A829512DAB6C528F83580C8AA53C 35D605F626F5AD0B7FC1EA87D69A835E3F53A1F450FB0AF42A5772F89D92A50D 10F15BDBDA409F50C0B8AB93FE8A16D029DD8BB5C480D1466735ED4D9CAF637E 5ECD6C2ECB6BF3B3EFBEE7AB936D2C568E3009D156B87CACB1FB3A48A70BC91B 2EC35CC9147FFB1A524E2B2F2E4E2C1B12F1C1C63768BB95CD62FEC01CBA79B9 FA282DD4DF49990F27FF8EE4E2DDE2F0ACD83BC9D4BE0090192C7A799967EC4D C2D63C0835E22D4C4B366D7FDCF3A05A4B53DF780F986EF25C79B665D5C00EFF 7F17C0BB6D544F9D83A7FDAC47D9C5683A656011374253C918FF6EA64749DD97 1B2300DD5320033E01EC591F6318CCE94CE2B81C04322EC52B624E50643B5239 1CCD2AB56396A2AD8E2D3CA61B80D9D4CC363B2DF7863526958CDF3497E36648 406C317E58EC563E7C26149A2A3C643ADFB39A8DD92974C6D2A2A9D7B71CDF3F EBBF32BB02E7B45CF53AAEAD5E963A4AA4AF9A149A08A4EC303D5F2369977E93 F54897EEAD31B06C5845D63F49D65F8E5573962241A57CCD717CE6CA8C784A11 192943616EA059B51BC38429E18D0121FCBB6FBD5D909B0D89E616C66DEF6A0F 165A7030BD911A1B120468329CBB006C8D37720E531CF31E878CB4AAAC137633 675C3D546F5162487AB35F470C042BDEB945E0F2532BF92AA6FD53434440221E CD3533A7AA89900CB19EFE2CD872DF8B7969AF0D3B72BF31DC5DD69CA6460966 F61AB17CB507964098DBA3AF122EEC3128A9BAFE1034493F372B36BD1351205E 9043A67C544402D8BCE24358C8A5CE33867A00794CF7097D59C88279A11EE9C8 54E7E7AAE881F9828C569D208F5F33375F59E9A3818CFA38AAD0CBFBA32F9F44 A8BB79DE4C40E3886457C16DA4A27953AA1E99472E35F2323F0BAA5E37DC28CB A46FEFB73B190016055ADD4D27615D748499A0E1C4B8C7EC339C1C4D95A813A8 5918A8D01EEB485DDCDCEA6EA3F2C2A9D85C139CD90CCB352634F9AFE836BCAC 0C274E352BA2071B5269D5DE4CCDE3FF990CBA974980C7332AE1545A9C60D5D1 459D3AE95C1AC065733AF14FADB440A110DD539563B8D850CD0704C52F3F7CCC B53630D776560CBD22D8FF08F5B354487A171AEC15F5F54DE9CAB668BCAC573E 788D92762EF63E76087005F4AC2D02E0CAC173C11BE62ACE5DC4D3374F2F9746 C9981E125FF9AB8CAE76D13039E2C54DFD708E028A619EA1ED78E6B46F06DF0D 0B74BBEDD8C190C7C0CEBDE8F7A4888CC36575313478DD2CFE392E9BB7B24169 55D44B7024A3BA43FBF37293B386D64746D7748895411D243FAEC50638F2AA33 337D7FA018ADDAC5835A0DDFAE99AD6299DFB4CA6872C59853E3AC12FC9E3D26 629C5B49CF844C87B3C4BFBE3074E3A1CE6984758C20C661084381CD6B4582D8 4F19C0000B5FC0DCB42B567E396031601C095D7016283EBE5F13CD8A3A374A74 DDBBABD36081149F8BC242085F2F7297CC97FD3B8BAD206D8AC9707A39ECCC79 63B522E08DA391A1EF12DD4D746DBDDDCC0834F88160CF189A9645567CEC2F02 3A571AF0DFD15DB85B744C28C000DF53B05F8F210841F6E87A04F20C777B7C0B E6182BE2E90226E5301A12532A745F2FAAA81637CF11B78CD2B99A4D18B862D6 C5DBD31793FB16A2D9AAD376D4484D75AA833D0068B1D34DB74E3302480854E3 B5484D8A47E39A89A2FA927BC3641EA7F8E004FDE4C2F08D40D99F1ACB47CAF6 887629BF6DFE12968D297596D28CE0CF148B12E7DCB49FB94F5ADBD214C3A6CE 1E249831BA9EB8A189F2CE1ABE39A7B537253E369A508A2AF2ADB9463F9B56BB BFF31D535FF997F537C6675C196E7ECBD493F652FA7CC6D9C1CA3379BFDB5AF7 513C6E834054494296B91A6EE800114363D5D5D0759F41B4DECB653B9DE3E945 83579EF549ED5F3FAFB12661ABC0C57A332406517ED3454EDED34B386C60F78D C976266E0EAF54FC245FB0E3EFC8016236436B599C1C97A8C5E0AC8F78361618 73C71F01ED9CC25C236420F41FD8277993D3959205912FA0927B59E3DAE7377D 82079447D6E41EE5AEC0DFFF79AF8F4ED47F17EE708FEA45877860D56F8CBCE6 5A061E8E1CA4A5FBAF0E13429A7F0ADB6F178FA449F46CC539BBC0107E3A53B1 C362A04B20E6D721E7E6E1E4976A11DDC98C7614D22B53DFBB6DAE533AC9BE88 2021A735C30DAA4A44AED09F49A390E8CFF59BD9C30667AF21B03EC5CEBD5C2C 3AA2769E8D714191A48E7DDF50B13D1560E82EFB65FCE601AE9E8C351FBA1DED 80B7351314E7F9F9A784BFE3759B7E322A84E7B51F9DC5F5D9C8050CD79B27C0 A4B0DD68A3C27A948AD6858E35B960D2DEA838C479CAEA83B1A912174ACB2100 E55E7A14892D7A9B3711FF0B20065C1995B49E1F23464A92DD140642E3A7B197 3849E64D1A3CF600000000000000000000000000000000000000000000000000 00000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndProcSet %%EOF @//E*O*F laser-prep-65.pro// chmod u=rw,g=r,o=r laser-prep-65.pro echo x - macfilter.csh sed 's/^@//' > "macfilter.csh" <<'@//E*O*F macfilter.csh//' #!/bin/csh -f # macfilter # Filter for Macintosh-generated PostScript code. # By Ron Hitchens & Brian Powell # hitchens@sally.utexas.edu brian@sally.utexas.edu # hitchens@ut-sally.UUCP brian@ut-sally.UUCP # # Modification History # BHP March, 1987 Extracted from psfilter.csh and updated to # support the 3.1 and 3.3 LW drivers. # BHP May, 1987 Updated to support the 4.0 LW driver. # # This filter prepends the necessary LaserPrep file to the Mac file, then # sends it through a filter to escape 8-bit characters (otherwise lost by the # UNIX printer driver.) This version supports the Macintosh LaserWriter driver # versions 1.1 (LaserPrep version 12), 3.1 (LaserPrep version 40), 3.3 # (LaserPrep version 49), and 4.0 (LaserPrep version 65). # The difference between the four versions is deduced by looking at the # first line of the input to this script. The first line from the 1.1 driver # consists entirely of "md begin". The first line from the 3.1 driver consists # of "%!PS-Adobe-1.0". The first line from the 3.3 driver consists of # "%!PS-Adobe-1.2". The first line from the 4.0 driver consists of # "%!PS-Adobe-2.0". This script fgreps for those strings in the first line of # the input file and prepends the corresponding LaserPrep version. # NOTE: Other versions of the LaserWriter driver (most notably version 3.0) # produce output that is not easily distinguishable from output from Laser- # Writer driver 3.1. For this reason, this filter cannot provide warnings # about incorrect input. In general, the different versions are incompatible, # and correct output from anything other than PostScript from the Macintosh # LaserWriter drivers 1.1, 3.1, 3.3, and 4.0 cannot be expected. set prepdir=/usr/local/lib/allfonts/postscript # dir where the prep files live cat > /tmp/mac$$ # save stdin so we can look at it # search the first line of stdin for "Adobe-1.0", "Adobe-1.2" and "Adobe-2.0". # The variable stat1 is true if "Adobe-1.0" isn't found, the variable stat2 # is true if "Adobe-1.2" isn't found, and stat3 is true if "Adobe-2.0" isn't # found. head -1 /tmp/mac$$ | fgrep -s Adobe-1.0 >& /dev/null set stat1=$status head -1 /tmp/mac$$ | fgrep -s Adobe-1.2 >& /dev/null set stat2=$status head -1 /tmp/mac$$ | fgrep -s Adobe-2.0 >& /dev/null set stat3=$status if ( ! $stat1 ) then set prep=laser-prep-40.pro # found "Adobe-1.0"; use version 40 else if ( ! $stat2 ) then set prep=laser-prep-49.pro # found "Adobe-1.2"; use version 49 else if ( ! $stat3 ) then set prep=laser-prep-65.pro # found "Adobe-2.0"; use version 65 else set prep=laser-prep-12.pro # not found; assume version 12 endif # Concatenate the prep and the Mac job. The combined Postscript is then # piped thru a filter to escape any chars with the high bit set. (The more # recent drivers are better about not generating those sorts of characters, # but we might as well go ahead and do it.) The final result goes down our # stdout which is usually being piped into the printer driver (psif or pscomm) cat $prepdir/$prep /tmp/mac$$ | /usr/local/lib/ps8 set result=$status # save the result for our exit code rm -f /tmp/mac$$ # make sure rm runs silently exit $result # that's all @//E*O*F macfilter.csh// chmod u=rwx,g=rx,o=rx macfilter.csh echo x - maclaser.1 sed 's/^@//' > "maclaser.1" <<'@//E*O*F maclaser.1//' @.TH MACLASER local "5 June 1987" @.UC 4 @.SH NAME maclaser - Spool Macintosh PostScript files to the LaserWriter printers @.SH SYNOPSIS @.B maclaser [ @.BI \-P<printer> ] file @.SH DESCRIPTION @.I Maclaser is a program which spools Macintosh-generated PostScript files to any of the LaserWriters. It defines function definitions that the Macintosh PostScript file uses. @.PP The -P option is used to specify the output device. If the option is omitted, the default LaserWriter (-Plw) is used. @.PP For MacPaint pictures, PostScript files may be generated using paintps (local) or using the method described below. @.PP For other output, you must (currently) use the procedure described below to get the Macintosh to create the PostScript file. @.SH GENERATING\ MACINTOSH\ POSTSCRIPT\ FILES This section describes how to generate PostScript files on the Macintosh for uploading and eventual printing. Most programs need at least 200K of memory to produce PostScript. (In other words, 128K Mac owners can give up now.) @.PP Make sure the LaserWriter printer driver file is installed on your system disk. You may use the "Chooser" desk accessory to select the LaserWriter driver. You may have to turn on AppleTalk first. "Chooser" will give you instructions. @.PP Use the Page Setup menu item to specify whether you want the LaserWriter to substitute its built-in fonts for the Macintosh fonts, whether you want smoothing, and so forth. @.PP Open the document with the required application and choose the "Print..." menu item. In most applications (such as MacWrite) a dialog box will appear. Answer the questions and click OK. After you click OK, hold down the command key (cloverleaf) and hold down the "f" key. When a box appears saying "Creating PostScript File", you may release the cmd-F keys. If instead a box appears saying "Looking for LaserWriter", you did not press cmd-F at the right time. @.PP NOTE: MacPaint is slightly different. "Print Draft" prints without smoothing, and "Print Final" prints with smoothing. Also, no dialog box appears when you choose "Print ..", so hold down cmd-F right after you choose one of the print commands. @.PP A file called PostScript will appear on your disk. This file is a plain text file readable by MacWrite and most other editors and word processors. This file is often extremely large (> 100K), so you might make sure you have lots of room on the disk before creating it. You will not be warned if you run out of space. @.PP Now upload the PostScript file to your favorite UNIX machine. Several file transfer programs exist. For instance, using MacTerminal connected to a UNIX machine, you can give the UNIX command @.PP % macget -u @.PP Then choose "Send File" in MacTerminal and select PostScript. This will leave a file in your current UNIX directory called "PostScript.text". @.PP Another common file transfer program is Kermit. While running MacKermit, issue the UNIX command @.PP % kermit -x @.PP Then choose "Send File" in MacKermit and select PostScript. When it finishes, choose "Finish". This should leave a file in your current UNIX directory called "postscript". @.PP Now you may finally give UNIX the command: @.PP % maclaser PostScript.text @.PP to print the file "PostScript.text" on the default LaserWriter. @.SH COMPATIBILITY I try to support as many versions of the Macintosh LaserWriter driver as possible. The current version of maclaser supports version 1.1 (distributed with Finder 4.1), version 3.1 (with Finder 5.3), version 3.3 (with Finder 5.4) and version 4.0 (with Finder 5.5). @.SH BUGS Certain characters in the Zapf Dingbats font don't print correctly when using the 3.1 LaserWriter driver. I probably won't ever fix this bug since it works in the newer version of the driver. (And we don't use Dingbats much anyway.) @.SH FILES /usr/local/lib/allfonts/postscript/laser-prep-12.pro @.br LaserPrep version 12, for LaserWriter version 1.1 @.PP /usr/local/lib/allfonts/postscript/laser-prep-40.pro @.br LaserPrep version 40, for LaserWriter version 3.1 @.PP /usr/local/lib/allfonts/postscript/laser-prep-49.pro @.br LaserPrep version 49, for LaserWriter version 3.3 @.PP /usr/local/lib/allfonts/postscript/laser-prep-65.pro @.br LaserPrep version 65, for LaserWriter version 4.0 @.SH SEE\ ALSO paintps(local), macget(local), kermit(1C), lpr(1), printers(4L) @//E*O*F maclaser.1// chmod u=r,g=r,o=r maclaser.1 exit 0 ---