1 | % Start of ps630.pro -- prolog for Diablo 630 translator |
---|
2 | % Copyright (c) 1985,1987 Adobe Systems Incorporated. All Rights Reserved. |
---|
3 | % GOVERNMENT END USERS: See Notice file in TranScript library directory |
---|
4 | % -- probably /usr/lib/ps/Notice |
---|
5 | % RCS: $Header: /afs/dev.mit.edu/source/repository/third/transcript/lib/ps630.pro,v 1.1.1.1 1996-10-07 20:25:31 ghudson Exp $ |
---|
6 | /maxtabs 159 def |
---|
7 | /htabs maxtabs 1 add array def |
---|
8 | /JA 514 array def |
---|
9 | /MRESET {/MR 1020 def /ML 18 def}def% paperright paperleft |
---|
10 | /MRS {currentpoint pop add /MR exch def}def |
---|
11 | /MLS {/ML currentpoint pop def}def |
---|
12 | /NM 1 def |
---|
13 | /BM 2 def |
---|
14 | /SM 4 def |
---|
15 | /UM 8 def |
---|
16 | /SBM 16 def |
---|
17 | /SPM 32 def |
---|
18 | /CR{VU ML exch moveto}def |
---|
19 | /LF{VU currentpoint pop exch moveto}def |
---|
20 | /M/moveto load def |
---|
21 | /R {0 rmoveto} def |
---|
22 | /PGI{.6 setlinewidth}def |
---|
23 | /PG{currentpoint pop showpage PGI}def |
---|
24 | /HU{.6 mul}def |
---|
25 | /VU{1.5 mul}def |
---|
26 | /SP{gsave exec grestore 1 0 rmoveto exec -1 0 rmoveto}def |
---|
27 | /UP{currentpoint /y exch def /x exch def |
---|
28 | grestore gsave currentpoint 3 sub newpath moveto x y 3 |
---|
29 | sub lineto stroke grestore x y moveto} def |
---|
30 | /SETM{dup NM and 0 ne {NFT setfont}if |
---|
31 | BM and 0 ne {BFT setfont}if |
---|
32 | }def |
---|
33 | /GETW{/W 0 def /NC 0 def 0 2 SARR length 1 sub dup |
---|
34 | /nelts exch def |
---|
35 | {dup SARR exch get SETM 1 add SARR exch get |
---|
36 | dup length NC add /NC exch def incr 0 ne |
---|
37 | {dup length incr mul W add /W exch def}if |
---|
38 | stringwidth pop W add /W exch def}for |
---|
39 | W}def |
---|
40 | /JUMS{dup SARR exch get dup /mode exch def SETM |
---|
41 | mode SBM and 0 ne{0 PSVMI2 neg rmoveto}if |
---|
42 | mode SPM and 0 ne{0 PSVMI2 rmoveto}if |
---|
43 | mode UM and 0 ne dup{gsave}if exch}def |
---|
44 | /JU{/incr exch def /nspaces exch def |
---|
45 | GETW MR currentpoint pop sub exch sub /bs exch def |
---|
46 | ( ) stringwidth pop incr add .5 mul dup nspaces mul bs abs gt |
---|
47 | {pop /incsp bs nspaces div def} |
---|
48 | {bs 0 lt {neg} if |
---|
49 | /incsp exch def bs nspaces incsp mul sub NC 1 sub dup 0 eq{pop 1}if div |
---|
50 | dup abs 4.2 le |
---|
51 | {incr add /incr exch def} {pop /incsp 0 def} ifelse |
---|
52 | }ifelse |
---|
53 | 0 2 nelts |
---|
54 | {JUMS 1 add incsp 0 32 incr 0 6 -1 roll SARR exch get mode SM and 0 ne |
---|
55 | {{awidthshow} 7 copy SP}{awidthshow}ifelse{UP} if} for |
---|
56 | }def |
---|
57 | /S{/incr 0 def CTEST mode SM and 0 ne{{show} 2 copy SP}{show}ifelse{UP}if}def |
---|
58 | /GSH {gsave show grestore}def |
---|
59 | /CTEST{/str exch def dup /mode exch def |
---|
60 | UM and 0 ne dup {gsave} if mode SETM str}def |
---|
61 | /AS{/incr exch def CTEST |
---|
62 | incr exch 0 exch mode SM and 0 ne{{ashow} 4 copy SP}{ashow}ifelse{UP}if}def |
---|
63 | /CTABALL{htabs /tabs exch def 0 1 maxtabs{tabs exch 999999 put}for}def |
---|
64 | /STAB{currentpoint pop htabs |
---|
65 | /tabs exch def round /tabloc exch def tabs dup maxtabs get 999999 eq |
---|
66 | {tabloc TF dup dup tabs exch get tabloc ne |
---|
67 | {1 add maxtabs exch 1 neg exch{tabs exch dup tabs exch 1 sub get put}for |
---|
68 | tabloc put}{pop pop pop}ifelse}{pop}ifelse}def |
---|
69 | /CTAB{currentpoint pop htabs |
---|
70 | /tabs exch def round dup/tabloc exch def TF dup tabs exch get tabloc eq |
---|
71 | {1 maxtabs 1 sub{tabs exch 2 copy 1 add get put}for |
---|
72 | tabs maxtabs 999999 put}{pop}ifelse}def |
---|
73 | /DOTAB{currentpoint exch true htabs |
---|
74 | /tabs exch def /sr exch def 1 add TF dup maxtabs le |
---|
75 | {tabs exch get dup 999999 ne |
---|
76 | {sr{exch moveto}{3 -1 roll sub neg moveto}ifelse}{CL}ifelse |
---|
77 | }{CL}ifelse}def |
---|
78 | /CL{pop pop sr not{pop}if}def |
---|
79 | /TF{/val exch def maxtabs 1 add 0 1 maxtabs |
---|
80 | {dup tabs exch get val ge {exch pop exit}{pop}ifelse}for}def |
---|
81 | /AC{/incr exch def GETW neg MR add ML add 2 div currentpoint exch pop moveto |
---|
82 | 0 2 nelts{JUMS 1 add SARR exch get incr exch 0 exch mode SM and 0 ne |
---|
83 | {{ashow}4 copy SP}{ashow}ifelse{UP}if}for}def |
---|
84 | /SJA{counttomark JA exch 0 exch getinterval astore exch pop /SARR exch def}def |
---|
85 | /RMV{/incr exch def dup dup stringwidth pop PSHMI sub |
---|
86 | exch length 1 sub incr mul add neg 0 rmoveto gsave}def |
---|
87 | /RMVBK{grestore PSHMI incr add neg 0 rmoveto}def |
---|
88 | |
---|