Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site ucbvax.BERKELEY.EDU Path: utzoo!linus!decvax!bellcore!ulysses!ucbvax!laser-lovers From: laser-lovers@ucbvax.UUCP Newsgroups: mod.computers.laser-printers Subject: New LaserWriter(s) PostScript Language Update (2 of 2) Message-ID: <8602190059.AA09994@adobe.UUCP> Date: Tue, 18-Feb-86 19:59:00 EST Article-I.D.: adobe.8602190059.AA09994 Posted: Tue Feb 18 19:59:00 1986 Date-Received: Wed, 26-Feb-86 06:22:47 EST Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 4265 Approved: laser-lovers@washington.arpa Here is a PostScript print file for the second half of the new Apple LaserWriter and LaserWriter Plus PostScript Language Update documentation. It is a complete PostScript print file for the last 11 pages. %!PS-Adobe-1.0 %%Title: lwrev2.mss %%DocumentFonts: (atend) %%Creator: Ed Taft and Scribe 4(1400)-4 %%CreationDate: 8 December 1985 12:33 %%Pages: (atend) %%EndComments /pica{12 mul}def/inch{72 mul}def/mtx matrix def /pagewidth 7.375 inch def/pagelength 9.25 inch def %/pagegrid{0 0 moveto pagewidth 0 lineto pagewidth pagelength lineto % 0 pagelength lineto 0 0 lineto closepath 0 setlinewidth stroke}def /shtm 9 def /shtl 12 def /pagegrid{gsave 0 setlinecap .25 setlinewidth newpath 0 shtm neg moveto 0 shtl neg rlineto stroke shtm neg 0 moveto shtl neg 0 rlineto stroke pagewidth shtm add 0 moveto shtl 0 rlineto stroke pagewidth shtm neg moveto 0 shtl neg rlineto stroke 0 pagelength shtm add moveto 0 shtl rlineto stroke shtm neg pagelength moveto shtl neg 0 rlineto stroke pagewidth shtm add pagelength moveto shtl 0 rlineto stroke pagewidth pagelength shtm add moveto 0 shtl rlineto stroke grestore } def /PSLogod 20 dict def%PostScriptLogo /Helvetica findfont{1 index/FID ne{PSLogod 3 1 roll put}{pop pop}ifelse}forall PSLogod/FontMatrix[0.001 0 0 0.000916667 0 0]put PSLogod/FontName/PSLogo put/PSLogo PSLogod definefont pop /BOT{pop gsave currentpoint translate -90 rotate SSZ -.7 mul 0 moveto(^)show grestore(^)stringwidth rmoveto}def % chapter box/fountain /fstr 128 13 sub string def 128 1 255 13 sub{fstr exch dup 255 div 180 mul cos neg 2 div .5 add 255 mul cvi exch 128 sub exch put}for /fountain{/ury exch def/urx exch def/lly exch def/llx exch def gsave urx ury translate 180 rotate urx llx sub ury lly sub scale 128 13 sub 10 8[-128 13 add 0 0 10 128 13 sub 0]{fstr}image grestore}def %%%%%%%%%%%%%%%%%%%%%%%John's Figure Stuff %16 Sept 85 /figdict 100 dict def figdict begin /scl .2157 def %scale of page /rscl 1 scl div def % inverse scale /hfpt .5 rscl mul def /flpt rscl def /qtpt .25 rscl mul def /dsh {qtpt setlinewidth [2 rscl mul dup ] 0 setdash}def /fntsz 8 rscl mul def /fntoff fntsz .75 mul 2 div def /hv /Helvetica findfont fntsz scalefont def /hvs /Helvetica findfont fntsz .75 mul scalefont def /sym /Symbol findfont fntsz scalefont def /syms /Symbol findfont fntsz .75 mul scalefont def /arrow {/ye exch def /xe exch def /yb exch def /xb exch def /xd xe xb sub def /yd ye yb sub def /mg xd dup mul yd dup mul add sqrt def /ang yd xd atan def gsave xb yb translate ang rotate 2 rscl mul 0 moveto mg 2 rscl mul sub 0 lineto qtpt setlinewidth stroke mg 0 moveto -4 rscl mul 2 rscl mul rlineto 0 -4 rscl mul rlineto closepath fill grestore }def /2arrow {/ye exch def /xe exch def /yb exch def /xb exch def /xd xe xb sub def /yd ye yb sub def /mg xd dup mul yd dup mul add sqrt def /ang yd xd atan def gsave xb yb translate ang rotate 2 rscl mul 0 moveto mg 2 rscl mul sub 0 lineto qtpt setlinewidth stroke 0 0 moveto 4 rscl mul 2 rscl mul lineto 0 -4 rscl mul rlineto closepath fill mg 0 moveto -4 rscl mul 2 rscl mul rlineto 0 -4 rscl mul rlineto closepath fill grestore }def /inch {72 mul}def /angshow {gsave /prc exch def /rd exch def /eang exch def /bang exch def /ys exch def /xs exch def /ad 180 rd 3.14159 mul div .75 mul def newpath xs ys rd bang eang ad sub arc qtpt setlinewidth stroke gsave xs ys translate eang rotate rd 0 translate flpt neg flpt 3 mul neg moveto flpt 2 mul 0 rlineto 0 0 lineto closepath fill grestore hv setfont /mang bang eang add 2 div def /prc load xs mang cos rd mul 2 rscl mul sub add ys mang sin rd mul 4 rscl mul sub add rtext grestore }def /dotrad 1.5 rscl mul def /dot {gsave translate dotrad 0 moveto 0 0 dotrad 0 359 arc closepath fill grestore }def /shw {show}def /subscript {gsave hvs setfont subbck suboff rmoveto show currentpoint suboff neg add exch subbck neg add exch grestore moveto}def /subbck -.5 rscl mul def /suboff -4 rscl mul def /rtext {gsave translate /prc exch def $ct begin 0 0 moveto prc currentpoint end /ty exch def /tx exch def 0 0 moveto tx neg 0 rmoveto prc grestore }def /ctext {gsave translate /prc exch def $ct begin 0 0 moveto prc currentpoint end /ty exch def /tx exch def 0 0 moveto tx 2 div neg 0 rmoveto prc grestore }def /wbox {gsave /ury exch def /urx exch def /lly exch def /llx exch def llx lly moveto llx ury lineto urx ury lineto urx lly lineto closepath 1 setgray fill grestore}def /cwtext {gsave translate /prc exch def $ct begin 0 0 moveto prc currentpoint end /ty exch def /tx exch def tx 2 div neg fntsz neg .25 mul tx 2 div fntsz wbox 0 0 moveto tx 2 div neg 0 rmoveto prc grestore }def /ltext {gsave translate /prc exch def 0 0 moveto prc grestore }def /$ct 10 dict def $ct /show {stringwidth rmoveto} put end %end figdict %%%%%%%%%%%%%%%%%%%%%%%END John's Stuff /reencsmalldict 12 dict def /ReEncodeSmall % oldname newname vector {reencsmalldict begin /newcodesandnames exch def /newfontname exch def /basefontname exch def FontDirectory newfontname known {/ReEncodeSmall errordict /fontalreadydefined get exec} if /basefontdict basefontname findfont def /newfont basefontdict maxlength dict def basefontdict {exch dup /FID ne {dup /Encoding eq {exch dup length array copy newfont 3 1 roll put} {exch newfont 3 1 roll put}ifelse}{pop pop}ifelse}forall newfont /FontName newfontname put newcodesandnames aload pop newcodesandnames length 2 idiv{newfont /Encoding get 3 1 roll put}repeat newfontname newfont definefont pop end}def /univers[ 0/Aacute 1/aacute 2/Acircumflex 3/acircumflex 4/Adieresis 5/adieresis 6/Agrave 7/agrave 8/Aring 9/aring 10/Atilde 11/atilde 12/Ccedilla 13/ccedilla 14/Eacute 15/eacute 16/Ecircumflex 17/ecircumflex 18/Edieresis 19/edieresis 20/Egrave 21/egrave 22/Iacute 23/iacute 24/Icircumflex 25/icircumflex 26/Idieresis 27/idieresis 28/Igrave 29/igrave 30/Ntilde 31/ntilde 128/Oacute 129/oacute 130/Ocircumflex 131/ocircumflex 132/Odieresis 133/odieresis 134/Ograve 135/ograve 136/Otilde 137/otilde 138/Scaron 139/scaron 140/Uacute 141/uacute 142/Ucircumflex 143/ucircumflex 144/Udieresis 145/udieresis 146/Ugrave 147/ugrave 148/Ydieresis 149/ydieresis 150/Zcaron 151/zcaron ]def /tspecial[ 1/Aacute 2/Acircumflex 3/Adieresis 4/Agrave 5/Aring 6/Atilde 7/Ccedilla 8/Eacute 9/Ecircumflex 10/Edieresis 11/Egrave 12/Iacute 13/Icircumflex 14/Idieresis 15/Igrave 16/Ntilde 17/Oacute 18/Ocircumflex 19/Odieresis 20/Ograve 21/Otilde 22/Scaron 23/Uacute 24/Ucircumflex 25/Udieresis 26/Ugrave 27/Ydieresis 28/Zcaron 129/aacute 130/acircumflex 131/adieresis 132/agrave 133/aring 134/atilde 135/ccedilla 136/eacute 137/ecircumflex 138/edieresis 139/egrave 140/iacute 141/icircumflex 142/idieresis 143/igrave 144/ntilde 145/oacute 146/ocircumflex 147/odieresis 148/ograve 149/otilde 150/scaron 151/uacute 152/ucircumflex 153/udieresis 154/ugrave 155/ydieresis 156/zcaron ] def /Times-Roman /Times-Special tspecial ReEncodeSmall %%%%%%%%%%%%%%%%%%%%%%% % mostly standard stuff /BS{/SV save def 40 40 translate}def/ES{pagegrid showpage SV restore}def /SC{setrgbcolor}def/SLT 0 def/WFT/Courier def/SSZ 10 def /RST{100 div}def/CVTXY{RST pagelength sub abs exch RST exch}def /RDF{WFT findfont SLT 0 eq{SSZ scalefont} {[SSZ 0 SLT sin SLT cos div SSZ mul SSZ 0 0]makefont}ifelse setfont}def /SI{/SLT exch def RDF}def/SF{/WFT exch def RDF}def/SS{/SSZ exch def RDF}def /MT{CVTXY moveto}def/XM{RST currentpoint exch pop moveto}def /UL{gsave newpath CVTXY transform round exch round exch itransform moveto RST dup 2 div round 0 exch rmoveto setlinewidth RST 0 rlineto stroke grestore}def /PB{/PV save def/showpage{}def /ypos exch def /xpos exch def /sval exch def xpos 4985 le {/xpos 4500 def}{xpos 6120 le {/xpos 5400 def}if}ifelse xpos ypos CVTXY translate % gsave 0 setlinewidth newpath % -1 0 moveto 1 0 lineto 0 -1 moveto 0 1 lineto stroke grestore }def/PE{PV restore}def /MSS{SSW RST 0 rmoveto}def/SNS{SSW add/SSW exch def MSS}def/SH{show}def /MX{/SSW exch def SH MSS}def/M2{SH MSS MSS}def/M{SH MSS}def /M+{SH 1 SNS}def/M-{SH -1 SNS}def % statusdict /prefeed true put %%EndProlog %%Page: 11 13 BS 0 SI 11 SS /Times-Bold SF 19791 6155 MT (showpage)SH /Times-Roman SF 24650 XM (is) 275 MX(logically) M(equivalent) M(to) M(the) M(sequence:)SH 10 SS /Helvetica SF 22023 8381 MT (copypage) 320 MX(erasepage) M(initgraphics)SH 11 SS /Times-Roman SF 19799 10633 MT (However,) 374 MX(use) M(of)SH /Times-Bold SF 27607 XM (copypage)SH /Times-Roman SF 32380 XM (for) M-(printing) M(pages) M(can) M(degrade) M(page)SH 19799 11930 MT (throughput) 606 MX(significantly) M+(\050a) M(second) M(or) M(more) M(per) M(page) M(on) M(the)SH 19799 13227 MT (LaserWriter) 532 MX(and) M(substantially) M(more) M(on) M(certain) M(other) M-(printers\051.)SH 19799 14524 MT (One) 387 MX(reason) M(for) M(this) M(is) M(that)SH /Times-Bold SF 32079 XM (showpage)SH /Times-Roman SF 37050 XM (performs) M(the) M(printing) M(and)SH 19799 15821 MT (the) 355 MX(erasing) M(in) M(parallel) M(whereas) M-(the)SH /Times-Bold SF 35547 XM (copypage) M(erasepage)SH /Times-Roman SF 45297 XM (method)SH 19799 17118 MT (performs) 275 MX(them) M(serially;) M(there) M(are) M(other) M(reasons) M(as) M(well.)SH /Times-Bold SF 19791 19313 MT (copypage)SH /Times-Roman SF 24859 XM (should) 668 MX(also) M(not) M(be) M(used) M+(to) M(defeat) M(the) M(automatic)SH 9 SS 32004 20247 MT (5)SH 11 SS /Times-Bold SF 19799 20610 MT (initgraphics)SH /Times-Roman SF 25826 XM (of)SH /Times-Bold SF 27145 XM (showpage)SH /Times-Roman SF (.)SH 32857 XM (That) 403 MX(is,) M(to) M(print) M(and) M(erase) M(the) M(cur-)SH 19799 21907 MT (rent) 318 MX(page) M-(but) M(leave) M(the) M(graphics) M(state) M(unchanged,) M(you) M(should)SH /Times-Italic SF 47191 XM (not)SH /Times-Roman SF 19799 23204 MT (say:)SH 10 SS /Helvetica SF 22023 25430 MT (copypage) 320 MX(erasepage)SH 11 SS /Times-Roman SF 19799 27682 MT (Instead) 275 MX(you) M(should) M(say:)SH 10 SS /Helvetica SF 22023 29908 MT (gsave) 320 MX(showpage) M(grestore)SH 11 SS /Times-Roman SF 19791 32160 MT (Please) 303 MX(also) M(note) M(that) M(the) M(correct) M(way) M(to) M(print) M(multiple) M(copies) M(of) M(a)SH 19799 33457 MT (page) 353 MX(is) M(to) M-(associate) M(the) M(desired) M(number) M(of) M(copies) M(with) M(the) M(name)SH /Times-Bold SF 19799 34754 MT (#copies)SH /Times-Roman SF 24074 XM (prior) 853 MX(to) M(invoking)SH /Times-Bold SF 33540 XM (showpage)SH /Times-Roman SF (,) M+(as) M(discussed) M(under)SH /Times-Bold SF 19799 36051 MT (showpage)SH /Times-Roman SF 24739 XM (in) 356 MX(the)SH /Times-Italic SF 27651 XM (P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 33329 XM (Language) M-(Reference) M(Manual)SH /Times-Roman SF (.) M(The)SH /Times-Bold SF 19799 37348 MT (#copies)SH /Times-Roman SF 23747 XM (convention) 526 MX(now) M(applies) M(uniformly) M(to) M(both)SH /Times-Bold SF 44013 XM (showpage)SH /Times-Roman SF 19799 38645 MT (and)SH /Times-Bold SF 21662 XM (copypage)SH /Times-Roman SF (,) 275 MX(whereas) M(formerly) M(it) M(applied) M(only) M(to)SH /Times-Bold SF 42374 XM (showpage)SH /Times-Roman SF (.)SH /Helvetica SF 19791 41842 MT (Other)SH /Helvetica-Bold SF 22895 XM (statusdict)SH /Helvetica SF 28443 XM (changes)SH /Times-Roman SF 19791 43794 MT (The)SH /Times-Bold SF 22036 XM (prefeed)SH /Times-Roman SF 26113 XM (boolean) 535 MX(in)SH /Times-Bold SF 31521 XM (statusdict)SH /Times-Roman SF 36578 XM (has) M-(been) M(eliminated.) M(This)SH 19799 45091 MT (boolean) 519 MX(provided) M(programmer) M(control) M(over) M(paper) M+(pre-feeding.)SH 19799 46388 MT (The) 462 MX(printing) M(overlap) M(strategy) M(in) M(the) M(new) M-(LaserWriter) M(software)SH 19799 47685 MT (\050described) 454 MX(above\051) M(makes) M(explicit) M(pre-feeding) M(unnecessary.) M(If) M+(a)SH 19799 48982 MT (P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 25663 XM (program) 390 MX(defines)SH /Times-Bold SF 33344 XM (prefeed)SH /Times-Roman SF (,) M-(it) M(will) M(have) M(no) M(effect) M(on)SH 19799 50279 MT (printing) 275 MX(in) M(the) M(new) M(LaserWriter.)SH 19791 52474 MT (The)SH /Times-Bold SF 21870 XM (product)SH /Times-Roman SF 25967 XM (string) 369 MX(in)SH /Times-Bold SF 30067 XM (statusdict)SH /Times-Roman SF 34958 XM (was) M(formerly) M+(used) M(both) M(as) M(the)SH 19799 53771 MT (default) 541 MX(value) M(of)SH /Times-Bold SF 27773 XM (printername)SH /Times-Roman SF 34239 XM (and) M-(as) M(the)SH /Times-Italic SF 39707 XM (type)SH /Times-Roman SF 42079 XM (portion) M(of) M(the)SH 19799 55068 MT (LaserWriter's) 314 MX(AppleTalk) M(name.) M(These) M(uses) M+(have) M(been) M(separated:)SH 7 SS 19799 57437 MT (5)SH 9 SS 20149 57764 MT (Unfortunately,) 348 MX(the) M(current)SH /Times-Italic SF 30118 XM (P)SH 7 SS (OST)SH 9 SS (S)SH 7 SS (CRIPT)SH 9 SS 34655 XM (Language) M(Tutorial) M(and) M(Cookbook)SH /Times-Roman SF 47597 XM (in-)SH 19799 58662 MT (cludes) 225 MX(an) M(example) M(that) M(uses) M(this) M(technique.)SH 8 SS /Helvetica SF 32730 63450 MT (3) 583 MX(IMPLEMENTATION) 256 MX(CHANGES)SH 10 SS 47485 XM (11)SH ES %%Page: 12 14 BS 0 SI 11 SS /Times-Roman SF 18899 6155 MT (the) 485 MX(AppleTalk)SH /Times-Italic SF 25917 XM (type)SH /Times-Roman SF 28234 XM (is) M(now) M(determined) M(from) M-(a) M(new)SH /Times-Bold SF 43175 XM (statusdict)SH /Times-Roman SF 18899 7452 MT (entry) 292 MX(named)SH /Times-Bold SF 24675 XM (appletalktype)SH /Times-Roman SF (.) M(The) M(default) M(value) M(of) M(this) M+(entry) M(is) M(the)SH 18899 8749 MT (string) 567 MX(`)SH 10 SS /Helvetica SF (LaserWriter)SH 11 SS /Times-Roman SF (',) M(independent) M(of) M(the) M+(value) M(of)SH /Times-Bold SF 42485 XM (product)SH /Times-Roman SF 46781 XM (or)SH 9 SS 25100 9683 MT (6)SH 11 SS /Times-Bold SF 18899 10046 MT (printername)SH /Times-Roman SF (.)SH 12 SS /Helvetica SF 11692 13914 MT (4) 875 MX(P)SH /PSLogo SF (OST)SH /Helvetica SF (S)SH /PSLogo SF (CRIPT)SH /Helvetica SF 21284 XM (LANGUAGE) 384 MX(CHANGES)SH 11 SS /Times-Roman SF 18891 16465 MT (Several) 443 MX(additions) M(have) M(been) M(made) M-(to) M(the) M(standard) M(P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 18899 17762 MT (language.) 335 MX(These) M(additions) M(are) M+(upward-compatible) M(and) M(do) M(not) M(af-)SH 18899 19059 MT (fect) 568 MX(the) M(function) M(of) M-(any) M(existing) M(P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 40991 XM (programs.) M(The)SH 18899 20356 MT (changes) 378 MX(are) M(included) M(in) M(the) M(new) M(LaserWriter,) M(LaserWriter) M(Plus,)SH 18899 21653 MT (and) 494 MX(other) M(P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 29703 XM (printers;) M(they) M(will) M(be) M(documented) M(in) M(a)SH 18899 22950 MT (future) 275 MX(edition) M(of) M(the)SH /Times-Italic SF 27941 XM (P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 33538 XM (Language) M(Reference) M(Manual)SH /Times-Roman SF (.)SH 18891 25145 MT (In) 424 MX(general,) M(P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 30064 XM (programs) M(that) M(are) M(intended) M(to) M(be) M+(com-)SH 18899 26442 MT (patible) 347 MX(with) M(all) M(P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 31811 XM (printers) M(should) M(not) M-(make) M(use) M(of) M(the)SH 18899 27739 MT (new) 320 MX(features.) M(However,) M(it) M(is) M(possible) M(for) M+(a) M(program) M(to) M(determine)SH 18899 29036 MT (whether) 375 MX(or) M(not) M(the) M(new) M(features) M(are) M(present) M(and) M-(to) M(invoke) M(them)SH 18899 30333 MT (conditionally.) 365 MX(The) M(descriptions) M(below) M(suggest) M(how) M(to) M(determine)SH 18899 31630 MT (whether) 275 MX(a) M(particular) M(feature) M(is) M(present) M(or) M(absent.)SH /Helvetica SF 18891 34827 MT (Packed) 352 MX(arrays)SH /Times-Roman SF 18891 36779 MT (P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 24998 XM (procedures) 633 MX(are) M-(represented) M(as) M(executable) M(arrays)SH 18899 38076 MT (which,) 329 MX(until) M(now,) M+(have) M(been) M(stored) M(in) M(the) M(same) M(fashion) M(as) M(literal)SH 18899 39373 MT (data) 850 MX(arrays.) M(This) M-(representation,) M(while) M(offering) M(maximum)SH 18899 40670 MT (flexibility,) 424 MX(is) M(very) M(costly) M(in) M(space) M(\0508) M(bytes) M(per) M(element\051.) M(Large)SH 18899 41967 MT (P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 24796 XM (programs,) M-(such) M(as) M-(the) M(built-in) M(server) M(program) M(and)SH 18899 43264 MT (downloaded) 275 MX(preambles,) M(consume) M(considerable) M(amounts) M(of) M(VM.)SH 18891 45459 MT (Since) 408 MX(most) M(programs) M(do) M(not) M(require) M(the) M(ability) M(to) M(be) M+(treated) M(as)SH 18899 46756 MT (data) 389 MX(but) M(only) M(the) M(ability) M(to) M-(be) M(executed,) M(a) M(more) M(compact) M(repre-)SH 18899 48053 MT (sentation) 697 MX(has) M(been) M(introduced:) M(the)SH /Times-Italic SF 36252 XM (packed) M+(array)SH /Times-Roman SF (.) M(Programs)SH 18899 49350 MT (represented) 615 MX(as) M(packed) M(arrays) M(are) M-(typically) M(50) M(to) M(75) M(percent)SH 18899 50647 MT (smaller) 275 MX(than) M(the) M(same) M(programs) M(represented) M(as) M(ordinary) M(arrays.)SH 18891 52842 MT (A) 287 MX(packed) M(array) M(object) M(has) M(a) M(type) M(different) M(from) M(an) M(ordinary) M+(array)SH 18899 54139 MT (object) 806 MX(\050`)SH 10 SS /Helvetica SF (packedarraytype)SH 11 SS /Times-Roman SF (') M(versus) M(`)SH 10 SS /Helvetica SF (arraytype)SH 11 SS /Times-Roman SF ('\051;) M(but) M(in) M(most)SH 18899 55436 MT (respects) 405 MX(it) M(behaves) M(the) M(same) M(as) M+(an) M(ordinary) M(array.) M(You) M(can) M(ex-)SH 7 SS 18899 57437 MT (6)SH 9 SS 19249 57764 MT (The) 442 MX(reason) M(for) M(this) M(is) M(that) M(the) M-(Macintosh) M(Print) M(Manager) M(assumes) M(that) M(all)SH 18899 58662 MT (P)SH 7 SS (OST)SH 9 SS (S)SH 7 SS (CRIPT)SH 9 SS 23430 XM (printers) 225 MX(are) M(of) M(type) M(`LaserWriter'.)SH 10 SS /Helvetica SF 4500 63450 MT (12)SH 8 SS 8012 XM (Update) 256 MX(for) M(LaserWriter) M(and) M(LaserWriter) M(Plus) M(\050revision) M(2\051)SH ES %%Page: 13 15 BS 0 SI 11 SS /Times-Roman SF 19799 6155 MT (ecute) 480 MX(a) M(packed) M(array;) M(you) M(can) M(extract) M(elements) M(\050using)SH /Times-Bold SF 45432 XM (get)SH /Times-Roman SF (\051) M-(or)SH 19799 7452 MT (subarrays) 710 MX(\050using)SH /Times-Bold SF 28183 XM (getinterval)SH /Times-Roman SF (\051;) M(you) M+(can) M(enumerate) M(it) M(\050using)SH /Times-Bold SF 19799 8749 MT (forall)SH /Times-Roman SF (\051;) 687 MX(and) M(so) M(forth.) M(Individual) M(elements) M-(extracted) M(from) M(a)SH 19799 10046 MT (packed) 420 MX(array) M(are) M(ordinary) M(P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 37813 XM (objects;) M+(a) M(subarray) M(of) M(a)SH 19799 11343 MT (packed) 275 MX(array) M(is) M(also) M(a) M(packed) M(array.)SH 19791 13538 MT (The) M(differences) M(between) M(packed) M(arrays) M(and) M(ordinary) M(arrays) M(are:)SH /Symbol SF 21418 15815 MT (\267)SH /Times-Roman SF 22199 XM (Packed) 556 MX(arrays) M-(are) M(always) M(read-only:) M(you) M(can't) M(use)SH /Times-Bold SF 46732 XM (put)SH /Times-Roman SF (,)SH /Times-Bold SF 22199 17012 MT (putinterval)SH /Times-Roman SF (,) 275 MX(etc.,) M(to) M(store) M(into) M(one.)SH /Symbol SF 21418 18808 MT (\267)SH /Times-Roman SF 22199 XM (Packed) 404 MX(arrays) M(are) M(created) M(differently) M(from) M(ordinary) M(arrays)SH 22199 20005 MT (\050see) 275 MX(below\051.)SH /Symbol SF 21418 21801 MT (\267)SH /Times-Roman SF 22199 XM (Accessing) 294 MX(arbitrary) M(elements) M(of) M(a) M(packed) M-(array) M(can) M(be) M(quite)SH 22199 22998 MT (slow;) 450 MX(however,) M(accessing) M(the) M(elements) M+(sequentially) M(\050as) M(is)SH 22199 24195 MT (done) 646 MX(by) M(the) M(P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 34839 XM (interpreter) M-(and) M(by) M(the)SH /Times-Bold SF 46031 XM (forall)SH /Times-Roman SF 22199 25392 MT (operator\051) 406 MX(is) M(approximately) M(as) M(efficient) M(as) M(accessing) M+(an) M(or-)SH 22199 26589 MT (dinary) 275 MX(array.)SH /Symbol SF 21418 28385 MT (\267)SH /Times-Roman SF 22199 XM (The)SH /Times-Bold SF 24204 XM (copy)SH /Times-Roman SF 26699 XM (operator) 295 MX(cannot) M(copy) M-(into) M(a) M(packed) M(array) M(\050since) M(it)SH 22199 29582 MT (is) 419 MX(read-only\051;) M(however,) M(it) M+(can) M(copy) M(the) M(value) M(of) M(a) M(packed)SH 22199 30779 MT (array) 503 MX(to) M(an) M(ordinary) M(array) M(of) M(at) M-(least) M(the) M(packed) M(array's)SH 22199 31976 MT (length.)SH 19791 34171 MT (There) 318 MX(are) M(two) M(ways) M(in) M(which) M+(packed) M(arrays) M(come) M(into) M(existence.)SH 19799 35468 MT (The) 469 MX(first) M(and) M(more) M(common) M(way) M(is) M(for) M(the) M(P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 46335 XM (input)SH 19799 36765 MT (scanner) 386 MX(to) M(create) M(packed) M(arrays) M(automatically) M(for) M(all) M(executable)SH 19799 38062 MT (arrays) 401 MX(that) M(it) M-(reads.) M(That) M(is,) M(whenever) M(the) M(scanner) M(encounters) M(a)SH 19799 39359 MT (`)SH 10 SS /Helvetica SF ({)SH 11 SS /Times-Roman SF (') 363 MX(while) M(reading) M(a) M(file) M(or) M+(string,) M(it) M(accumulates) M(all) M(tokens) M(up) M(to)SH 19799 40656 MT (the) 306 MX(matching) M(`)SH 10 SS /Helvetica SF (})SH 11 SS /Times-Roman SF (') M(and) M(turns) M-(them) M(into) M(a) M(packed) M(array) M(instead) M(of) M(an)SH 19799 41953 MT (ordinary) 275 MX(array.)SH 19791 44148 MT (The) 277 MX(choice) M+(of) M(array) M(type) M(is) M(controlled) M(by) M(a) M(mode) M(setting,) M(manipu-)SH 19799 45445 MT (lated) 632 MX(by) M(the) M(new) M-(operators)SH /Times-Bold SF 33463 XM (setpacking)SH /Times-Roman SF 39106 XM (and)SH /Times-Bold SF 41325 XM (currentpacking)SH /Times-Roman SF 19799 46742 MT (\050described) 360 MX(at) M(the) M+(end) M(of) M(this) M(section\051.) M(If) M(the) M(array) M(packing) M(mode)SH 19799 48039 MT (is)SH /Times-Italic SF 20842 XM (true)SH /Times-Roman SF (,) 308 MX(P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 28979 XM (procedures) M(encountered) M(subsequently) M(by) M(the)SH 19799 49336 MT (scanner) 635 MX(are) M(created) M(as) M(packed) M(arrays;) M+(if) M(the) M(mode) M(is)SH /Times-Italic SF 46244 XM (false)SH /Times-Roman SF (,)SH 19799 50633 MT (procedures) 442 MX(are) M(created) M(as) M(ordinary) M(arrays.) M(The) M-(default) M(value) M(is)SH /Times-Italic SF 19799 51930 MT (false)SH /Times-Roman SF 22185 XM (\050i.e.,) 308 MX(create) M(ordinary) M(arrays\051,) M+(for) M(compatibility) M(with) M(existing)SH 19799 53227 MT (programs.)SH 19791 55422 MT (The) 304 MX(other) M(way) M(to) M(create) M(a) M-(packed) M(array) M(is) M(to) M(build) M(it) M(explicitly) M(by)SH 19799 56719 MT (invoking) 332 MX(the)SH /Times-Bold SF 25719 XM (packedarray)SH /Times-Roman SF 32039 XM (operator) M(with) M(a) M(list) M(of) M(operands) M(to) M(be)SH 19799 58016 MT (incorporated) 275 MX(into) M(a) M(new) M(packed) M(array.)SH 8 SS /Helvetica SF 30026 63450 MT (4) 583 MX(P)SH /PSLogo SF (OST)SH /Helvetica SF (S)SH /PSLogo SF (CRIPT)SH /Helvetica SF 36424 XM (LANGUAGE) 256 MX(CHANGES)SH 10 SS 47485 XM (13)SH ES %%Page: 14 16 BS 0 SI 11 SS /Helvetica SF 18891 6202 MT (Immediately) 352 MX(evaluated) M(names)SH /Times-Roman SF 18891 8154 MT (The) 315 MX(language) M(syntax) M-(has) M(been) M(extended) M(to) M(include) M(a) M(new) M(kind) M(of)SH 18899 9451 MT (name) 339 MX(token,) M(the)SH /Times-Italic SF 26361 XM (immediately) M(evaluated) M+(name)SH /Times-Roman SF (.) M(When) M(the) M(scanner)SH 18899 10748 MT (encounters) 384 MX(the) M(token) M(`//)SH /Times-Italic SF (name)SH /Times-Roman SF (') M-(\050a) M(name) M(preceded) M(by) M(two) M(slashes)SH 18899 12045 MT (with) 304 MX(no) M(intervening) M(spaces\051,) M(it) M(immediately) M(looks) M(up) M+(the) M(name) M(in)SH 18899 13342 MT (the) 278 MX(context) M(of) M(the) M(current) M-(dictionary) M(stack) M(and) M(substitutes) M(the) M(cor-)SH 18899 14639 MT (responding) 524 MX(value) M(for) M(the) M(name.) M(If) M(the) M(name) M+(is) M(not) M(found,) M(an)SH /Times-Bold SF 18899 15936 MT (undefined)SH /Times-Roman SF 23882 XM (error) 275 MX(occurs.)SH 18891 18131 MT (The) M+(substitution) M-(occurs)SH /Times-Italic SF 29433 XM (immediately)SH /Times-Roman SF (,) M(regardless) M(of) M(whether) M(or) M(not)SH 18899 19428 MT (the) 362 MX(token) M(appears) M(inside) M(an) M(executable) M(array) M+(delimited) M(by) M(`)SH 10 SS /Helvetica SF ({...})SH 11 SS /Times-Roman SF ('.)SH 18899 20725 MT (Note) 319 MX(that) M(this) M-(process) M(is) M(a) M(substitution) M(and) M(not) M(an) M(execution;) M(that)SH 18899 22022 MT (is,) 371 MX(the) M(name's) M(value) M(is) M(not) M(executed) M(but) M+(rather) M(is) M(substituted) M(for)SH 18899 23319 MT (the) 387 MX(name) M(itself,) M(just) M-(as) M(if) M(the)SH /Times-Bold SF 32327 XM (load)SH /Times-Roman SF 34731 XM (operator) M(had) M(been) M(applied) M(to)SH 18899 24616 MT (the) 410 MX(name.) M(This) M(action) M(is) M(related) M(to) M+(the) M(action) M(performed) M(by) M(the)SH /Times-Bold SF 18899 25913 MT (bind)SH /Times-Roman SF 22001 XM (operator) 960 MX(\050see) M(the)SH /Times-Italic SF 31659 XM (P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 37941 XM (Language) M(Reference)SH 18899 27210 MT (Manual)SH /Times-Roman SF (\051;) 300 MX(but) M(whereas)SH /Times-Bold SF 28901 XM (bind)SH /Times-Roman SF 31343 XM (performs) M(substitution) M(only) M(for) M(names)SH 18899 28507 MT (whose) 306 MX(values) M(are) M(operators,) M(each) M(occurrence) M(of) M(the) M(`//)SH /Times-Italic SF (name)SH /Times-Roman SF (') M-(syn-)SH 18899 29804 MT (tax) 393 MX(is) M(replaced) M+(by) M(the) M(value) M(associated) M(with)SH /Times-Italic SF 39153 XM (name)SH /Times-Roman SF 41929 XM (regardless) M(of)SH 18899 31101 MT (the) 275 MX(value's) M(type.) M(The) M(following) M(examples) M(illustrate) M(this:)SH 10 SS /Helvetica SF 21123 33327 MT (/a) 320 MX(3) M(def)SH 21123 34524 MT (/b) M({\050test\051) M(print}) M(def)SH 21123 35721 MT (//a)SH /Symbol SF 22555 XM (\336)SH /Helvetica SF 23862 XM (3)SH 21123 36918 MT (//b)SH /Symbol SF 22555 XM (\336)SH /Helvetica SF 23862 XM ({\050test\051) M(print})SH 21123 38115 MT ({//a) M(//b) M(a) M(/b})SH /Symbol SF 26685 XM (\336)SH /Helvetica SF 27992 XM ({3) M({\050test\051) M(print}) M(a) M(/b})SH 11 SS /Times-Roman SF 18891 40367 MT (The) 350 MX(purpose) M(of) M(using) M-(immediately) M(evaluated) M(names) M(is) M(similar) M(to)SH 18899 41664 MT (that) 340 MX(of) M(using) M(the)SH /Times-Bold SF 26554 XM (bind)SH /Times-Roman SF 29037 XM (operator:) M+(to) M(cause) M(names) M(in) M(procedures) M(to)SH 18899 42961 MT (become) 321 MX(`tightly) M(bound') M(to) M(their) M-(values.) M(However,) M(a) M(word) M(of) M(cau-)SH 18899 44258 MT (tion) 560 MX(is) M(in) M(order:) M(indiscriminate) M(use) M(of) M(immediately) M(evaluated)SH 18899 45555 MT (names) 499 MX(may) M(change) M(the) M(semantics) M(of) M(a) M-(program.) M(In) M(particular,)SH 18899 46852 MT (recall) 508 MX(that) M(when) M(the) M(interpreter) M(encounters) M(a) M(procedure) M(object)SH /Times-Italic SF 18899 48149 MT (directly)SH /Times-Roman SF 22739 XM (it) 480 MX(simply) M(pushes) M-(it) M(on) M(the) M(operand) M(stack;) M(but) M(when) M(it)SH 18899 49446 MT (encounters) 471 MX(a) M(procedure) M(object)SH /Times-Italic SF 33119 XM (indirectly)SH /Times-Roman SF 37806 XM (by) M(looking) M+(up) M(an) M(ex-)SH 18899 50743 MT (ecutable) 410 MX(name) M(it) M(executes) M-(the) M(procedure) M(\050see) M(section) M(3.6) M(of) M(the)SH /Times-Italic SF 18899 52040 MT (P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 24567 XM (Language) 346 MX(Reference) M(Manual)SH /Times-Roman SF (\051.) M+(Therefore,) M(execution)SH 18899 53337 MT (of) 275 MX(the) M(program) M(fragments:)SH 10 SS /Helvetica SF 21123 55563 MT ({...) 320 MX(b) M(...})SH 21123 56760 MT ({...) M(//b) M(...})SH 4500 63450 MT (14)SH 8 SS 8012 XM (Update) 256 MX(for) M(LaserWriter) M(and) M(LaserWriter) M(Plus) M(\050revision) M(2\051)SH ES %%Page: 15 17 BS 0 SI 11 SS /Times-Roman SF 19799 6155 MT (may) 289 MX(have) M(different) M(effects) M(if) M(the) M(value) M(of) M(the) M(name) M(`)SH 10 SS /Helvetica SF (b)SH 11 SS /Times-Roman SF (') M-(is) M(a) M(proce-)SH 19799 7452 MT (dure.)SH 19791 9647 MT (The) 472 MX(immediately) M(evaluated) M(name) M(facility) M(is) M(present) M(in) M(all) M(ver-)SH 19799 10944 MT (sions) 690 MX(of) M(the) M(P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 32555 XM (interpreter) M(since) M-(version) M(25.0) M(\050as)SH 19799 12241 MT (reported) 407 MX(by) M(the)SH /Times-Bold SF 27128 XM (version)SH /Times-Roman SF 30957 XM (operator\051.) M(Earlier) M(versions) M(of) M(the) M(inter-)SH 19799 13538 MT (preter) 283 MX(will) M(scan) M(`//)SH /Times-Italic SF (name)SH /Times-Roman SF (') M(as) M(two) M(distinct) M(tokens:) M-(`/',) M(a) M(literal) M(name)SH 19799 14835 MT (with) 500 MX(no) M(text) M+(at) M(all,) M(and) M(`/)SH /Times-Italic SF (name)SH /Times-Roman SF (',) M(a) M(literal) M(name) M(whose) M(text) M(is)SH /Times-Italic SF 19799 16132 MT (name)SH /Times-Roman SF (.)SH /Helvetica SF 19791 19329 MT (Font) 352 MX(cache) M(operation)SH /Times-Roman SF 19791 21281 MT (Operation) 490 MX(of) M(the) M(font) M-(cache) M(has) M(changed) M(somewhat.) M(Formerly)SH 19799 22578 MT (there) 424 MX(was) M(a) M(single) M(limit) M(on) M(the) M+(number) M(of) M(bytes) M(occupied) M(by) M(a)SH 19799 23875 MT (character) 359 MX(in) M(the) M(cache;) M(a) M(character) M(larger) M-(than) M(that) M(would) M(not) M(be)SH 19799 25172 MT (cached.) 341 MX(Now) M(there) M+(are) M(two) M(cache) M(thresholds,) M(a) M(lower) M(and) M(an) M(up-)SH 19799 26469 MT (per) 276 MX(one.) M(If) M(a) M-(character) M(is) M(larger) M(than) M(the) M(upper) M(threshold) M(\050as) M(deter-)SH 19799 27766 MT (mined) 351 MX(by) M+(the) M(bounding) M(box) M(specified) M(to)SH /Times-Bold SF 38088 XM (setcachedevice)SH /Times-Roman SF (\051,) M(it) M(will)SH 19799 29063 MT (not) 390 MX(be) M(cached;) M(otherwise) M(it) M(will) M(be.) M(If) M(it) M(is) M(cached) M-(and) M(is) M(larger)SH 19799 30360 MT (than) 322 MX(the) M(lower) M(threshold,) M+(it) M(will) M(be)SH /Times-Italic SF 35530 XM (compressed)SH /Times-Roman SF (;) M(otherwise) M(it) M(will)SH 19799 31657 MT (be) 275 MX(stored) M(as) M(a) M(full) M(pixel) M(array.)SH 19791 33852 MT (The) 722 MX(two) M(thresholds) M(are) M(manipulated) M(by) M(the) M(new) M(operators)SH /Times-Bold SF 19799 35149 MT (setcacheparams)SH /Times-Roman SF 27899 XM (and)SH /Times-Bold SF 30135 XM (currentcacheparams)SH /Times-Roman SF (,) 649 MX(described) M(below.)SH 19799 36446 MT (The) 534 MX(old) M(operators,) M(principally)SH /Times-Bold SF 34184 XM (cachestatus)SH /Times-Roman SF 40093 XM (and)SH /Times-Bold SF 42214 XM (setcachelimit)SH /Times-Roman SF (,)SH 19799 37743 MT (remain) 329 MX(valid.) M(It) M(is) M(a) M(rare) M+(P)SH 9 SS (OST)SH 11 SS (S)SH 9 SS (CRIPT)SH 11 SS 36709 XM (program) M(that) M(needs) M(to) M(deal)SH 19799 39040 MT (with) 275 MX(these) M(operators.)SH 19791 41235 MT (Compressed) 562 MX(characters) M(consume) M(much) M(less) M(space) M(in) M-(the) M(font)SH 19799 42532 MT (cache) 366 MX(than) M(full) M(pixel) M(arrays) M(\050by) M(factors) M(of) M+(up) M(to) M(40\051,) M(but) M(require)SH 19799 43829 MT (more) 864 MX(computation) M(to) M-(reconstitute) M(when) M(they) M(are) M(needed.)SH 19799 45126 MT (Reconstituting) 326 MX(a) M(compressed) M(character) M(is) M(still) M(substantially) M(faster)SH 19799 46423 MT (than) 436 MX(re-executing) M(the) M(original) M(character) M(description.) M(In) M-(systems)SH 19799 47720 MT (printing) 945 MX(at) M(300) M+(pixels) M(per) M(inch) M(or) M(less) M(\050including) M(the)SH 19799 49017 MT (LaserWriter\051,) 313 MX(the) M-(default) M(lower) M(threshold) M(is) M(set) M(so) M(that) M(characters)SH 19799 50314 MT (up) 353 MX(to) M(about) M(20) M(points) M(are) M(stored) M(as) M(full) M+(pixel) M(arrays) M(while) M(larger)SH 19799 51611 MT (ones) 394 MX(are) M(stored) M-(in) M(compressed) M(form.) M(This) M(causes) M(ordinary) M(body)SH 19799 52908 MT (text) 387 MX(to) M(be) M+(cached) M(using) M(the) M(time-efficient) M(full) M(pixel) M(array) M(repre-)SH 19799 54205 MT (sentation) 588 MX(but) M-(large) M(characters) M(to) M(be) M(cached) M(using) M(the) M(space-)SH 19799 55502 MT (efficient) 275 MX(compressed) M(representation.)SH 8 SS /Helvetica SF 30026 63450 MT (4) 583 MX(P)SH /PSLogo SF (OST)SH /Helvetica SF (S)SH /PSLogo SF (CRIPT)SH /Helvetica SF 36424 XM (LANGUAGE) 256 MX(CHANGES)SH 10 SS 47485 XM (15)SH ES %%Page: 16 18 BS 0 SI 11 SS /Helvetica SF 18891 6202 MT (Operators)SH 10 SS /Helvetica-Bold SF 12475 9525 MT (setpacking)SH 9 SS /Helvetica SF 18899 XM (bool)SH /Helvetica-Bold SF 21175 XM (setpacking)SH /Helvetica SF 26451 XM (\261)SH 10 SS /Times-Roman SF 18899 11408 MT (sets) 302 MX(the) M+(array) M(packing) M(mode) M(to) M(the) M(specified) M(boolean) M(value.) M(This) M(deter-)SH 18899 12605 MT (mines) 621 MX(the) M(type) M-(of) M(executable) M(arrays) M(subsequently) M(created) M(by) M(the)SH 18899 13802 MT (P)SH 8 SS (OST)SH 10 SS (S)SH 8 SS (CRIPT)SH 10 SS 24068 XM (scanner.) 277 MX(The) M(value)SH /Times-Italic SF 31924 XM (true)SH /Times-Roman SF 33812 XM (selects) M(packed) M+(arrays;)SH /Times-Italic SF 42864 XM (false)SH /Times-Roman SF 45031 XM (selects)SH 18899 14999 MT (ordinary) 250 MX(arrays.)SH 18899 16994 MT (The) 311 MX(packing) M(mode) M(affects) M(only) M(the) M(creation) M(of) M-(procedures) M(by) M(the) M(scan-)SH 18899 18191 MT (ner) 427 MX(when) M(it) M(encounters) M(program) M(text) M+(bracketed) M(by) M(`)SH 9 SS /Helvetica SF ({)SH 10 SS /Times-Roman SF (') M(and) M(`)SH 9 SS /Helvetica SF (})SH 10 SS /Times-Roman SF (') M(during)SH 18899 19388 MT (interpretation) 314 MX(of) M(an) M(executable) M(file) M(or) M(string) M(object) M-(or) M(during) M(execution)SH 18899 20585 MT (of) 286 MX(the)SH /Times-Bold SF 21526 XM (token)SH /Times-Roman SF 24201 XM (operator.) M(It) M(does) M(not) M(affect) M(the) M(creation) M+(of) M(literal) M(arrays) M(by)SH 18899 21782 MT (the) 250 MX(`)SH 9 SS /Helvetica SF ([)SH 10 SS /Times-Roman SF (') M(and) M(`)SH 9 SS /Helvetica SF (])SH 10 SS /Times-Roman SF (') M(operators) M(or) M(by) M(the)SH /Times-Bold SF 32173 XM (array)SH /Times-Roman SF 34811 XM (operator.)SH 18899 23777 MT (The) 306 MX(array) M(packing) M(mode) M-(persists) M(until) M(overridden) M(by) M(another) M(execution)SH 18899 24974 MT (of)SH /Times-Bold SF 19982 XM (setpacking)SH /Times-Roman SF 24788 XM (or) 250 MX(until) M(undone) M(by) M(a)SH /Times-Bold SF 33093 XM (restore)SH /Times-Roman SF (.)SH 8 SS /Helvetica SF 18899 26927 MT (EXAMPLE)SH 9 SS (:)SH 21299 28025 MT (systemdict) 288 MX(/setpacking) M(known)SH 22163 29123 MT ({/savepacking) M(currentpacking) M(def)SH 22451 30221 MT (true) M(setpacking)SH 22163 31319 MT (}) M(if)SH 21299 33515 MT (...) M(arbitrary) M(procedure) M(definitions) M(...)SH 21299 35711 MT (systemdict) M(/setpacking) M(known) M({savepacking) M(setpacking}) M(if)SH 10 SS /Times-Roman SF 18899 37594 MT (If) 344 MX(the) M(packed) M(array) M(facility) M+(is) M(available,) M(the) M(procedures) M(represented) M(by)SH 18899 38791 MT (`arbitrary) 428 MX(procedure) M(definitions') M(are) M-(defined) M(as) M(packed) M(arrays;) M(other-)SH 18899 39988 MT (wise) 429 MX(they) M(are) M(defined) M(as) M(ordinary) M(arrays.) M(This) M(example) M+(is) M(careful) M(to)SH 18899 41185 MT (preserve) 250 MX(the) M(array) M(packing) M(mode) M(in) M(effect) M(before) M(its) M(execution.)SH 8 SS /Helvetica SF 18899 43068 MT (ERRORS)SH 10 SS /Times-Roman SF (:)SH /Times-Bold SF 18899 44265 MT (stackunderflow,) M(typecheck)SH /Helvetica-Bold SF 10475 47588 MT (currentpacking)SH 9 SS /Helvetica SF 18899 XM (\261)SH /Helvetica-Bold SF 19975 XM (currentpacking)SH /Helvetica SF 27051 XM (bool)SH 10 SS /Times-Roman SF 18899 49471 MT (returns) M(the) M(array) M(packing) M(mode) M(currently) M(in) M(effect.)SH 8 SS /Helvetica SF 18899 51354 MT (STANDARD) 256 MX(VALUE)SH 10 SS /Times-Roman SF (:) 686 MX(false)SH 8 SS /Helvetica SF 18899 53237 MT (ERRORS)SH 10 SS /Times-Roman SF (:)SH /Times-Bold SF 18899 54434 MT (stackoverflow)SH /Helvetica SF 4500 63450 MT (16)SH 8 SS 8012 XM (Update) 256 MX(for) M(LaserWriter) M(and) M(LaserWriter) M(Plus) M(\050revision) M(2\051)SH ES %%Page: 17 19 BS 0 SI 10 SS /Helvetica-Bold SF 12707 6129 MT (packedarray)SH 9 SS /Helvetica SF 19799 XM (any)SH 21926 XM (...) 288 MX(any)SH 25864 XM (n)SH /Helvetica-Bold SF 26940 XM (packedarray)SH /Helvetica SF 32816 XM (packedarray)SH 7 SS 21249 6461 MT (0)SH 24414 XM (n)SH /Symbol SF (-)SH /Helvetica SF (1)SH 10 SS /Times-Roman SF 19799 8012 MT (creates) 391 MX(a) M(packed) M(array) M(object) M-(of) M(length)SH /Times-Italic SF 36416 XM (n)SH /Times-Roman SF 37306 XM (containing) M(the) M(objects)SH /Times-Italic SF 46753 XM (any)SH 8 SS /Times-Roman SF 48197 8357 MT (0)SH 10 SS 19799 9218 MT (through)SH /Times-Italic SF 23518 XM (any)SH /Times-Roman SF 26809 XM (as) 608 MX(elements.)SH /Times-Bold SF 32663 XM (packedarray)SH /Times-Roman SF 38716 XM (first) M+(removes) M(the) M(non-)SH 8 SS /Times-Italic SF 24962 9563 MT (n)SH /Symbol SF (-)SH /Times-Roman SF (1)SH 10 SS 19799 10424 MT (negative) 288 MX(integer)SH /Times-Italic SF 26540 XM (n)SH /Times-Roman SF 27328 XM (from) M(the) M(operand) M(stack.) M(It) M(then) M-(removes) M(that) M(number)SH 19799 11621 MT (of) 411 MX(objects) M(from) M(the) M(operand) M(stack,) M(creates) M(a) M(packed) M+(array) M(containing)SH 19799 12818 MT (those) 284 MX(objects) M-(as) M(elements,) M(and) M(finally) M(pushes) M(the) M(resulting) M(packed) M(array)SH 19799 14015 MT (object) 250 MX(on) M(the) M(operand) M(stack.)SH 19799 16010 MT (The) 304 MX(resulting) M(object) M(has) M(a) M(type) M(of) M(`)SH 9 SS /Helvetica SF (packedarraytype)SH 10 SS /Times-Roman SF (',) M(a) M(literal) M+(attribute,)SH 19799 17207 MT (and) 366 MX(read-only) M(access.) M(In) M(all) M(other) M(respects,) M(its) M(behavior) M(is) M(identical) M(to)SH 19799 18404 MT (that) 250 MX(of) M(an) M(ordinary) M(array) M(object.)SH 8 SS /Helvetica SF 19799 20287 MT (STANDARD) 256 MX(VALUE)SH 10 SS /Times-Roman SF (:) 686 MX(false)SH 8 SS /Helvetica SF 19799 22170 MT (ERRORS)SH 10 SS /Times-Roman SF (:)SH /Times-Bold SF 19799 23367 MT (rangecheck,) 250 MX(stackunderflow,) M(typecheck,) M(VMerror)SH 8 SS /Helvetica SF 30026 63450 MT (4) 583 MX(P)SH /PSLogo SF (OST)SH /Helvetica SF (S)SH /PSLogo SF (CRIPT)SH /Helvetica SF 36424 XM (LANGUAGE) 256 MX(CHANGES)SH 10 SS 47485 XM (17)SH ES %%Page: 18 20 BS 0 SI 10 SS /Helvetica-Bold SF 9862 6129 MT (setcacheparams)SH 9 SS /Helvetica SF 18899 XM (mark) 288 MX(lower) M(upper)SH /Helvetica-Bold SF 26501 XM (setcacheparams)SH /Helvetica SF 34127 XM (\261)SH 10 SS /Times-Roman SF 18899 8012 MT (sets) 475 MX(cache) M(parameters) M(as) M(specified) M(by) M(the) M(integer) M(objects) M(above) M(the)SH 18899 9209 MT (topmost) 414 MX(mark) M(on) M(the) M(stack,) M(then) M(removes) M(all) M(operands) M(and) M-(the) M(mark)SH 18899 10406 MT (object) 250 MX(as) M(if) M(by)SH /Times-Bold SF 24787 XM (cleartomark)SH /Times-Roman SF (.)SH 8 SS 37905 12056 MT (7)SH 10 SS 18899 12401 MT (The) 461 MX(number) M(of) M-(cache) M(parameters) M(is) M(variable.)SH 38765 XM (If) M(more) M(operands) M(are)SH 18899 13598 MT (supplied) 481 MX(to)SH /Times-Bold SF 24028 XM (setcacheparams)SH /Times-Roman SF 31285 XM (than) M(are) M(needed,) M(the) M(topmost) M+(ones) M(are)SH 18899 14795 MT (used) 309 MX(and) M(the) M-(remainder) M(ignored;) M(if) M(fewer) M(are) M(supplied) M(than) M(are) M(needed,)SH /Times-Bold SF 18899 15992 MT (setcacheparams)SH /Times-Roman SF 25942 XM (implicitly) 267 MX(inserts) M(default) M(values) M(between) M(the) M(mark) M(and)SH 18899 17189 MT (the) 250 MX(first) M(supplied) M(operand.)SH 18899 19184 MT (The)SH /Times-Italic SF 20824 XM (upper)SH /Times-Roman SF 23526 XM (operand) 369 MX(specifies) M(the) M(maximum) M(number) M(of) M(bytes) M(that) M(may)SH 18899 20381 MT (be) M+(occupied) M(by) M(the) M(pixel) M(array) M+(of) M(a) M(single) M(cached) M(character,) M(as) M(deter-)SH 18899 21578 MT (mined) 320 MX(from) M(the) M-(information) M(presented) M(by) M(the)SH /Times-Bold SF 37576 XM (setcachedevice)SH /Times-Roman SF 44115 XM (operator.)SH 18899 22775 MT (This) 326 MX(is) M(the) M(same) M(parameter) M(as) M(is) M(set) M(by)SH /Times-Bold SF 35164 XM (setcachelimit)SH /Times-Roman SF (;) M+(see) M(the) M(descrip-)SH 18899 23972 MT (tion) 250 MX(of) M(that) M(operator) M(in) M(the)SH /Times-Italic SF 29620 XM (P)SH 8 SS (OST)SH 10 SS (S)SH 8 SS (CRIPT)SH 10 SS 34627 XM (Language) M(Reference) M(Manual)SH /Times-Roman SF (.)SH 18899 25967 MT (The)SH /Times-Italic SF 20995 XM (lower)SH /Times-Roman SF 23813 XM (operand) 540 MX(specifies) M(the) M(threshold) M(at) M(which) M(characters) M(are)SH 18899 27164 MT (stored) 621 MX(in) M(compressed) M(form) M(rather) M(than) M(as) M(full) M(pixel) M(arrays.) M(If) M+(a)SH 18899 28361 MT (character's) 373 MX(pixel) M(array) M-(requires) M(more) M(than)SH /Times-Italic SF 36571 XM (lower)SH /Times-Roman SF 39221 XM (bytes) M(to) M(represent,) M(it)SH 18899 29558 MT (will) 280 MX(be) M(compressed) M(in) M(the) M(cache) M(and) M+(reconstituted) M(from) M(the) M(compressed)SH 18899 30755 MT (representation) 250 MX(each) M(time) M(it) M(is) M(needed.)SH 18899 32750 MT (Setting)SH /Times-Italic SF 22017 XM (lower)SH /Times-Roman SF 24578 XM (to) 283 MX(zero) M(forces) M(all) M(characters) M(to) M(be) M(compressed,) M(permitting)SH 18899 33947 MT (more) 372 MX(characters) M(to) M(be) M+(stored) M(in) M(the) M(cache) M(but) M(increasing) M(the) M(work) M(re-)SH 18899 35144 MT (quired) 351 MX(to) M-(print) M(them.) M(Setting)SH /Times-Italic SF 30956 XM (lower)SH /Times-Roman SF 33584 XM (to) M(a) M(value) M(greater) M(than) M(or) M(equal) M(to)SH /Times-Italic SF 18899 36341 MT (upper)SH /Times-Roman SF 21482 XM (disables) 250 MX(compression) M(altogether.)SH 8 SS /Helvetica SF 18899 38224 MT (ERRORS)SH 10 SS /Times-Roman SF (:)SH /Times-Bold SF 18899 39421 MT (rangecheck,) M(unmatchedmark)SH /Helvetica-Bold SF 7862 42744 MT (currentcacheparams)SH 9 SS /Helvetica SF 18899 XM (\261)SH /Helvetica-Bold SF 19975 XM (currentcacheparams)SH /Helvetica SF 29401 XM (mark) 288 MX(lower) M(upper)SH 10 SS /Times-Roman SF 18899 44627 MT (pushes) 330 MX(a) M(mark) M+(object) M(followed) M(by) M(the) M(current) M(cache) M(parameters) M(on) M(the)SH 18899 45824 MT (operand) 439 MX(stack.) M(The) M(number) M(of) M-(cache) M(parameters) M(returned) M(is) M(variable)SH 18899 47021 MT (\050see)SH /Times-Bold SF 20759 XM (setcacheparams)SH /Times-Roman SF (\051.)SH 8 SS /Helvetica SF 18899 48904 MT (STANDARD) 256 MX(VALUE)SH 10 SS /Times-Roman SF (:) 686 MX(mark) 250 MX(1250) M(12500)SH 8 SS /Helvetica SF 18899 50787 MT (ERRORS)SH 10 SS /Times-Roman SF (:)SH /Times-Bold SF 18899 51984 MT (stackoverflow)SH 7 SS /Times-Roman SF 18899 57437 MT (7)SH 9 SS 19249 57764 MT (In) 307 MX(future) M(versions) M(of) M(the) M+(P)SH 7 SS (OST)SH 9 SS (S)SH 7 SS (CRIPT)SH 9 SS 33149 XM (interpreter) M(there) M(may) M(be) M(more) M(than) M(two)SH 18899 58662 MT (cache) 225 MX(parameters) M(defined.)SH 10 SS /Helvetica SF 4500 63450 MT (18)SH 8 SS 8012 XM (Update) 256 MX(for) M(LaserWriter) M(and) M(LaserWriter) M(Plus) M(\050revision) M(2\051)SH ES %%Page: 19 21 BS 0 SI 1 SS 0 5400 5405 PB %! % contents box/fountain gsave 0 -3 pica translate 0 0 36 pica 3 pica fountain 1 setlinewidth -.25 0 moveto 36 pica .5 add 0 rlineto stroke -.25 3 pica moveto 36 pica .5 add 0 rlineto stroke .5 setlinewidth 0 -.5 moveto 0 3 pica 1 add rlineto stroke 36 pica -.5 moveto 0 3 pica 1 add rlineto stroke grestore PE 24 SS /Helvetica SF 41528 8229 MT (Index)SH 9 SS /Times-Bold SF 6600 14985 MT (#copies)SH /Times-Roman SF 10075 XM (11)SH /Times-Bold SF 28198 XM (forall)SH /Times-Roman SF 30973 XM (13)SH 6600 17279 MT (//) 225 MX(immediately) M(evaluated) M(name) M(syntax) 675 MX(14)SH /Times-Bold SF 28198 XM (get)SH /Times-Roman SF 30023 XM (12)SH 6600 18426 MT ([]) 225 MX(array) M(syntax) 675 MX(16)SH /Times-Bold SF 28198 XM (getinterval)SH /Times-Roman SF 33023 XM (13)SH 6600 19573 MT ({}) 225 MX(procedure) M(syntax) 675 MX(13,) 225 MX(16)SH 28198 20720 MT (IBM) M(PC) 675 MX(4)SH /Times-Bold SF 6600 21867 MT (a4)SH /Times-Roman SF 8175 XM (5)SH 28198 XM (Idle-time) 225 MX(scan) M(conversion) 675 MX(6)SH /Times-Bold SF 6600 23014 MT (a4small)SH /Times-Roman SF 10225 XM (5,) 225 MX(6)SH /Times-Bold SF 28198 XM (image)SH /Times-Roman SF 31173 XM (10)SH 6600 24161 MT (AppleTalk) 675 MX(8,) 225 MX(9,) M(11)SH 28198 XM (Immediately) M(evaluated) M(name) 675 MX(14)SH /Times-Bold SF 6600 25308 MT (appletalktype)SH /Times-Roman SF 12525 XM (12)SH /Times-Bold SF 28198 XM (initgraphics)SH /Times-Roman SF 33473 XM (11)SH /Times-Bold SF 6600 26455 MT (array)SH /Times-Roman SF 9425 XM (16)SH /Times-Bold SF 28198 XM (ioerror)SH /Times-Roman SF 31623 XM (3,) 225 MX(4)SH 6600 27602 MT (Array) 675 MX(12,) 225 MX(16)SH /Times-Bold SF 28198 28749 MT (legal)SH /Times-Roman SF 30673 XM (5,) M(6)SH /Times-Bold SF 6600 29896 MT (b5)SH /Times-Roman SF 8225 XM (5,) M(6)SH /Times-Bold SF 28198 XM (letter)SH /Times-Roman SF 30923 XM (5)SH 6600 31043 MT (Baud) M(rate) 675 MX(2)SH /Times-Bold SF 28198 XM (lettersmall)SH /Times-Roman SF 32973 XM (5,) 225 MX(6)SH /Times-Bold SF 6600 32190 MT (bind)SH /Times-Roman SF 9025 XM (14)SH /Times-Bold SF 28198 XM (load)SH /Times-Roman SF 30523 XM (14)SH /Times-Bold SF 6600 33337 MT (BuildChar)SH /Times-Roman SF 11375 XM (8)SH /Times-Bold SF 28198 34484 MT (manualfeed)SH /Times-Roman SF 33373 XM (8)SH 6600 35631 MT (Cache)SH 8284 36778 MT (See) 675 MX(Font) 225 MX(cache)SH 28198 XM (Name) 675 MX(14)SH /Times-Bold SF 6600 37925 MT (cachestatus)SH /Times-Roman SF 11675 XM (15)SH /Times-Bold SF 28198 XM (note)SH /Times-Roman SF 30523 XM (5,) 225 MX(6)SH /Times-Bold SF 6600 39072 MT (cleartomark)SH /Times-Roman SF 12025 XM (17)SH 6600 40219 MT (Communication) 675 MX(2)SH 28198 XM (Output) 225 MX(operator) 675 MX(10)SH 6600 41366 MT (Compressed) 225 MX(character) 675 MX(15,) 225 MX(17)SH /Times-Bold SF 6600 42513 MT (copy)SH /Times-Roman SF 9075 XM (13)SH 28198 XM (Packed) M(array) 675 MX(10,) 225 MX(12,) M(16)SH /Times-Bold SF 6600 43660 MT (copypage)SH /Times-Roman SF 10875 XM (10,) M(11)SH /Times-Bold SF 28198 XM (packedarray)SH /Times-Roman SF 33773 XM (13,)SH /Times-Bold SF 35123 XM (17)SH 6600 44807 MT (currentcacheparams)SH /Times-Roman SF 15225 XM (15,)SH /Times-Bold SF 16575 XM (18)SH /Times-Roman SF 28198 XM (Page) M(types) 675 MX(5)SH /Times-Bold SF 6600 45954 MT (currentpacking)SH /Times-Roman SF 13225 XM (13,)SH /Times-Bold SF 14575 XM (16)SH 28198 XM (pagetype)SH /Times-Roman SF 32323 XM (6)SH 28198 47101 MT (P)SH 7 SS (OST)SH 9 SS (S)SH 7 SS (CRIPT)SH 9 SS 32729 XM (language) 225 MX(changes) 675 MX(12)SH 6600 48248 MT (Data) 225 MX(Terminal) M(Ready) M(\050DTR\051) M(signal) 675 MX(4)SH 28198 XM (P)SH 7 SS (OST)SH 9 SS (S)SH 7 SS (CRIPT)SH 9 SS 32729 XM (scanner) M(13)SH 6600 49395 MT (Diablo) 225 MX(630) M(emulation) 675 MX(5)SH /Times-Bold SF 28198 XM (prefeed)SH /Times-Roman SF 31773 XM (11)SH 7 SS 6600 50542 MT (DTR)SH 9 SS 8225 XM (flow) 225 MX(control) 675 MX(2,) 225 MX(3,) M(4)SH /Times-Bold SF 28198 XM (printername)SH /Times-Roman SF 33723 XM (11)SH 28198 51689 MT (Procedure) 675 MX(12,) 225 MX(16)SH 6600 52836 MT (Encoding) M(vector) 675 MX(7)SH /Times-Bold SF 28198 XM (product)SH /Times-Roman SF 31923 XM (1,) 225 MX(11)SH /Times-Bold SF 6600 53983 MT (erasepage)SH /Times-Roman SF 11075 XM (11)SH /Times-Bold SF 28198 XM (put)SH /Times-Roman SF 30173 XM (13)SH 6600 55130 MT (Executable) M(array) 675 MX(12)SH /Times-Bold SF 28198 XM (putinterval)SH /Times-Roman SF 33173 XM (13)SH 6600 56277 MT (Execution) 225 MX(time) 675 MX(9)SH /Times-Bold SF 28198 57424 MT (readline)SH /Times-Roman SF 32023 XM (8)SH 6600 58571 MT (Font) M(6)SH /Times-Bold SF 28198 XM (revision)SH /Times-Roman SF 31923 XM (1)SH 6600 59718 MT (Font) 225 MX(cache) 675 MX(9,) 225 MX(15,) M(17)SH 28198 XM (RS-232) 675 MX(4)SH /Times-Bold SF 6600 60865 MT (FontDirectory)SH /Times-Roman SF 12775 XM (1)SH 10 SS /Helvetica SF 47485 63450 MT (19)SH ES %%Page: 20 22 BS 0 SI 9 SS /Times-Roman SF 5700 6017 MT (Scanner) 675 MX(13)SH 5700 7164 MT (Serial) 225 MX(I/O) 675 MX(2)SH /Times-Bold SF 5700 8311 MT (setcachedevice)SH /Times-Roman SF 11975 XM (15,) 225 MX(17)SH /Times-Bold SF 5700 9458 MT (setcachelimit)SH /Times-Roman SF 11375 XM (15,) M(17)SH /Times-Bold SF 5700 10605 MT (setcacheparams)SH /Times-Roman SF 12475 XM (15,)SH /Times-Bold SF 13825 XM (18)SH 5700 11752 MT (setidlefonts)SH /Times-Roman SF 10725 XM (7)SH /Times-Bold SF 5700 12899 MT (setpacking)SH /Times-Roman SF 10475 XM (13,)SH /Times-Bold SF 11825 XM (16)SH 5700 14046 MT (setsccbatch)SH /Times-Roman SF 10725 XM (3,) M(5)SH /Times-Bold SF 5700 15193 MT (setsccinteractive)SH /Times-Roman SF 12675 XM (3,) M(5)SH /Times-Bold SF 5700 16340 MT (showpage)SH /Times-Roman SF 10125 XM (9,) M(10,) M(11)SH /Times-Bold SF 5700 17487 MT (StandardEncoding)SH /Times-Roman SF 13625 XM (7)SH /Times-Bold SF 5700 18634 MT (statusdict)SH /Times-Roman SF 10075 XM (1,) M(6,) M(11)SH /Times-Bold SF 5700 19781 MT (systemdict)SH /Times-Roman SF 10425 XM (1)SH /Times-Bold SF 5700 22075 MT (token)SH /Times-Roman SF 8525 XM (16)SH /Times-Bold SF 5700 24369 MT (undefined)SH /Times-Roman SF 10225 XM (14)SH /Times-Bold SF 5700 25516 MT (UniqueID)SH /Times-Roman SF 10175 XM (9)SH /Times-Bold SF 5700 26663 MT (usertime)SH /Times-Roman SF 9725 XM (9)SH /Times-Bold SF 5700 28957 MT (version)SH /Times-Roman SF 9175 XM (1,) M(15)SH 5700 30104 MT (Virtual) M(memory) 675 MX(10,) 225 MX(12)SH 7 SS 5700 32398 MT (XON)SH 9 SS (/)SH 7 SS (XOFF)SH 9 SS 9478 XM (flow) M(control) 675 MX(2,) 225 MX(3)SH 10 SS /Helvetica SF 4500 63450 MT (20)SH 8 SS 8012 XM (INDEX)SH ES %%Page: iii 23 BS 0 SI 1 SS 0 5400 5405 PB %! % contents box/fountain gsave 0 -3 pica translate 0 0 36 pica 3 pica fountain 1 setlinewidth -.25 0 moveto 36 pica .5 add 0 rlineto stroke -.25 3 pica moveto 36 pica .5 add 0 rlineto stroke .5 setlinewidth 0 -.5 moveto 0 3 pica 1 add rlineto stroke 36 pica -.5 moveto 0 3 pica 1 add rlineto stroke grestore PE 24 SS /Helvetica SF 37794 8229 MT (Contents)SH 9 SS 19799 15024 MT (1)SH 21894 XM (Introduction)SH 8 SS 27250 XM (1)SH 9 SS 19799 16221 MT (2)SH 21894 XM (LaserWriter) 288 MX(Functional) M(Changes)SH 8 SS 35526 XM (2)SH 9 SS 19799 17418 MT (3)SH 21894 XM (Implementation) M(Changes)SH 8 SS 32588 XM (8)SH 9 SS 19799 18615 MT (4)SH 21894 XM (P)SH /PSLogo SF (OST)SH /Helvetica SF (S)SH /PSLogo SF (CRIPT)SH /Helvetica SF 27932 XM (Language) M(Changes)SH 8 SS 36476 XM (12)SH 9 SS 19799 22264 MT (INDEX)SH 8 SS 23205 XM (19)SH 10 SS 47931 63450 MT (iii)SH ES %%Trailer %%Pages: 23 %%DocumentFonts: Times-Roman Helvetica-Bold Times-Bold Symbol Helvetica Times-Italic PSLogo Helvetica