%!Laser Prep version 12.
% Decompiled with rekamr and then cleaned up and slightly modified
% for downloading over rs232 by Alan Crosswell, Columbia U.
% The main modification is to check to see if the "md" dictionary
% is already installed. This file takes about 25 seconds to run
% over a 9600 baud line (using TranScript). We make sure it is always
% installed in the printer the same way that "ehandler.ps" is done;
% an entry in crontab submits it once an hour. If it's not installed,
% then you will get an error complainging that md is an undefinedcommand.
%*** If you've changed your server loop password then edit the next line ***
0 % server loop password
%----------------------------------------------------------------------
% Check if the "md" dictionary is already installed.
/md where % stacks: [dict true] or [false]
{ %true: already installed -- nothing more to do
pop % pop the dict
pop % pop the password (not needed)
(\%\%[ Mac dictionary already installed... ]\%\%\n) print flush
stop % all done
}
{ %false: install it now but first check password (stack contains password)
serverdict begin
statusdict begin
dup % make a copy of the password
checkpassword % check password (eats it)
{ %true: you gave the right password
(\%\%[ Mac dictionary will be installed. ]\%\%\n) print flush
exitserver % exit server (eats copy of password)
}
{ %false: you gave the wrong password
(\%\%[ Bad password!!! ]\%\%\n) print flush
pop % pop extra copy of password
stop % all done
} ifelse
end %statusdict
} ifelse
/mfont 14 dict def
/wd 14 dict def
/mdef {mfont wcheck not{/mfont 14 dict def}if mfont begin xdf end} def
/dc {transform round .5 sub exch round .5 sub exch itransform} def
/cf{{1 index /FID ne {tmp 3 1 roll put}{pop pop}ifelse}forall}def
/mv{tmp /Encoding macvec put}def
/bf{
mfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding macvec def
/BuildChar
{
wd begin
/cr xdf
/fd xdf
fd /low get cr get 2 get -1 ne
{
fd begin
low cr get aload pop
sd
low cr 1 add get 0 get
sh
sw
end
/sw xdf
/sh xdf
sw div /clocn xdf
dup 0 ne {0 exch sh div neg dc xl}{pop}ifelse
exch sw div /coff xdf
exch sw div /cloc xdf
/bitw clocn cloc sub def
sw sh div 1 scale
sw div 0 coff 0 bitw coff add 1 setcachedevice
coff cloc sub 0 dc xl
cloc .5 sw div add 0 dc newpath moveto
bitw 0 ne
{0 1 rlineto bitw .5 sw div sub 0 rlineto 0 -1 rlineto
closepath clip
sw sh false [sw 0 0 sh neg 0 sh]{fd /hm get}imagemask}if
} if
end
} def
end
mfont definefont pop
} def
/wi{save exch /show{pop}def
stringwidth 3 -1 roll restore}def
/aps {0 get 124 eq}def
/apn {s30 cvs aps} def
/xc{s30 cvs dup}def
/xp{put cvn}def
/scs{xc 3 67 put dup 0 95 xp}def
/sos{xc 3 79 xp}def
/sbs{xc 1 66 xp}def
/sis{xc 2 73 xp}def
/sob{xc 2 79 xp}def
/sss{xc 4 83 xp}def
/dd{exch 1 index add 3 1 roll add exch} def
/smc{moveto dup show} def
/kwn{dup FontDirectory exch known{findfont exch pop}}def
/fb{/ps ps 1 add def}def
/mb
{dup sbs kwn
{
exch{pop}{bbc}{} mm
}ifelse
sfd
}def
/mo
{dup sos kwn
{
exch{pop}{boc}{} mm
}ifelse
sfd
}def
/ms
{dup sss kwn
{
exch{pop}{bsc}{} mm
}ifelse
sfd
}def
/ao
{dup sos kwn
{
exch dup ac pop
{scs findfont /df2 xdf}{aoc}{} mm
}ifelse
sfd
}def
/as
{dup sss kwn
{
exch dup ac pop
{scs findfont /df2 xdf}{asc}{} mm
}ifelse
sfd
}def
/ac
{
dup scs kwn
{exch /ofd exch findfont def
/tmp ofd maxlength 1 add dict def
ofd cf mv
tmp /PaintType 1 put
tmp definefont}ifelse
}def
/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} def
/bbc
{
/da .03 def
fd /df get setfont
gsave
cs wi exch da add exch
grestore
setcharwidth
cs 0 0 smc
da 0 smc
da da smc
0 da moveto show
} def
/boc
{
/da 1 ps div def
fd /df get setfont
gsave
cs wi
exch da add exch
grestore
setcharwidth
cs 0 0 smc
da 0 smc
da da smc
0 da smc
1 setgray
da 2. div dup moveto show
} def
/bsc
{
/da 1 ps div def
/ds .05 def %da dup .03 lt {pop .03}if def
/da2 da 2. div def
fd /df get setfont
gsave
cs wi
exch ds add da2 add exch
grestore
setcharwidth
cs ds da2 add .01 add 0 smc
0 ds da2 sub xl
0 0 smc
da 0 smc
da da smc
0 da smc
1 setgray
da 2. div dup moveto show
} def
/aoc
{
fd /df get setfont
gsave
cs wi
grestore
setcharwidth
1 setgray
cs 0 0 smc
fd /df2 get setfont
0 setgray
0 0 moveto show
}def
/asc
{
/da .05 def
fd /df get setfont
gsave
cs wi
exch da add exch
grestore
setcharwidth
cs da .01 add 0 smc
0 da xl
1 setgray
0 0 smc
0 setgray
fd /df2 get setfont
0 0 moveto show
}def
/mf{gsave
32 760 xl 1 -1 scale
1 1 pen
128 152 moveto
27.5 27.5 693.5 522.5 0 dorect
6 6 pen
63. 63. 657. 486. 0 dorect
48 fz F /|B---1Times fnt pop
(Manual Feed)show
118 275 moveto
14 fz F /|----1Times fnt pop
(document: )show
sk{statusdict /jobname get dup null ne{show}{pop}ifelse}if
118 362 moveto
(Manual Feed Instructions)show
127 398 moveto
(1. Wait until the yellow light on the front of your)show
145 416 moveto
(LaserWriter comes on steadily \(not flashing\).)show
127 458 moveto
(2. Insert your paper or envelope in the manual feed)show
145 478 moveto
(guide on the right side of the LaserWriter.)show
127 517 moveto
(3. Repeat steps 1 and 2 until your document is)show
145 537 moveto
(completed.)show
0 page
sk{statusdict /manualfeed true put 5 dly}if
grestore}def
/dly{
usertime exch 1000 mul add
{
dup usertime le{exit}if
}loop
pop
}def
/lsf {FontDirectory {pop dup apn{= flush}{pop}ifelse}forall /* = flush}def
/dl{gsave 0 setlinewidth 0 setgray}def
/T true def
/F false def
/6a 6 array def
/2a 2 array def
/5a 5 array def
/qs{3 -1 roll sub exch 3 -1 roll sub exch}def
/qa{3 -1 roll add exch 3 -1 roll add exch}def
%multiply point: pt factor qm newpt
/qm{3 -1 roll 1 index mul 3 1 roll mul}def
/qn{6a exch get mul}def
/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
}def
/qp{6 copy 12 -2 roll pop pop}def
/qc{qp qx curveto}def
/qi{{4 copy 2a astore aload pop qa .5 qm newpath moveto}{2 copy 6 -2 roll 2 qm qs 4 2 roll}ifelse}def
/qq{{qc 2a aload pop qx curveto}{4 copy qs qa qx curveto}ifelse}def
/pt{gsave currentpoint newpath moveto}def
/qf{gsave eofill grestore}def
/tr{currentgray currentscreen bs 5a astore pop /fillflag 1 def}def
/bc{/fillflag 0 def}def
/ec{
1 and 0 ne
{currentgray currentscreen bs 5a aload pop bd setscreen setgray 0 doop bd setscreen setgray}
{newpath}ifelse
}def
/bp{currentpoint newpath 2 copy moveto currentgray currentscreen bs 5a astore pop}def
/eu{
fillflag 0 ne
{
gsave currentgray currentscreen bs
5a aload pop bd setscreen setgray
4 ep
bd setscreen setgray
}if
fp{0 ep}{grestore newpath}ifelse
}def
/sm
{
dup 0 exch
{32 eq{1 add}if}forall
}
def
/ll
{
3 1 roll exch dup .0001 lt 1 index -.0001 gt and
{pop pop pop}
{sub dup 0 eq
{
pop show
}
{
1 index sm dup 0 eq 3 index 0 le or
{
pop length div
0 3 -1 roll ashow
}
{
10 mul exch length add div
dup 10 mul 0 32 4 -1 roll 0 6 -1 roll awidthshow
}ifelse
}ifelse
}ifelse
}def
/ss
{ /pft currentfont def sa aload pop pop /|----2Symbol 4 1 roll
{pop{as}}
{{{ao}}{{fnt}}ifelse}ifelse
exch pop exec exch pop
}def
/pf{pft dup setfont}def
/rs
{
sa 2 get
{
gsave
1 index 0
currentfont
dup /FontInfo known
{
/FontInfo get
dup /UnderlinePosition known
{
dup /UnderlinePosition get 1000 div ps mul
}
{
ps 10 div neg %15 makes line closer to text
}ifelse
exch
dup /UnderlineThickness known
{
/UnderlineThickness get 1000 div ps mul
}
{
pop
ps 15 div %20 makes slightly narrower line
}ifelse
}
{
pop
ps 10 div neg %15 makes line closer to text
ps 15 div %20 makes slightly narrower line
}ifelse
setlinewidth
0 setgray
currentpoint 3 -1 roll sub moveto
sa 4 get{gsave currentlinewidth 2. div dup rmoveto currentpoint xl 2 copy rlineto
stroke grestore}if
sa 3 get sa 4 get or 3 1 roll 2 index{gsave 1 setgray 2 copy rlineto stroke grestore}if
rlineto{strokepath 0 setlinewidth}if stroke
grestore
}if
tv
}
def