|
|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: P T U
Length: 20369 (0x4f91)
Types: TextFile
Notes: UNIX file
Names: »PostScript.in«
└─⟦bee8f15db⟧ Bits:30004169/disk2.imd Uniplex II+ V.6 release 1.0 (dansk)
└─⟦bee8f15db⟧ UNIX Filesystem
└─⟦this⟧ »up/new/usr/UAP/filters/PostScript.in«
%!PS-Adobe-1.0
%%Title: Uniplex Document Interface
%%CreationDate: 1 jul 1987
%%Creator: Graham Beint, Paul Mahoney, Colin Maclean - Redwood International
%%For: Uniplex Office Automation - Text and Graphics
%%EndComments
% Dictionaries
/WPdict 150 dict def
/GPdict 150 dict def
% Units
/dpi 300 def
/pt {} def
/in { 72 mul pt } bind def
/mm { 25.4 div in } bind def
/dots { dpi div in } bind def
% Utilities
% any array index Put -
/Put { 3 -1 roll put } bind def
% int string cvcs -
/cvcs { dup 0 4 -1 roll put } bind def
% Constants
/newline (\n) def
/space ( ) def
/buff 80 string def
/cbuf 1 string def
/A4 { 210 mm 297 mm } bind def
/A5 { 149 mm 210 mm } bind def
/US { 8.5 in 11 in } bind def
/filofax { 3.75 in 6.75 in } bind def % filofax (R) is a registered trademark
/UShalf { 5.5 in 8.5 in } bind def
/USlegal { 8.5 in 11 in } bind def
/letter { US } bind def
/note { UShalf } bind def
/legal { USlegal } bind def
/wallet { filofax } bind def
% Variables
/Globals 20 array def
/Face { Globals 0 } def % Index of typeface in use
/Style { Globals 1 } def % Index of typestyle in use
/Size { Globals 2 } def % Index of typesize in use
/Char_W { Globals 3 } def % Active space width increment
/Line_H { Globals 4 } def % Active line height
/Ulin_W { Globals 5 } def % Weight of underlines
/Ulin_H { Globals 6 } def % Height of underlines
/Ulin_N { Globals 7 } def % Number of underlines
/Page_W { Globals 8 } def % Page width
/Page_H { Globals 9 } def % Page height
/Marg_T { Globals 10 } def % Margin at Top
/Marg_L { Globals 11 } def % Margin at Bottom
/Graf_N { Globals 12 } def % Graphics pattern number
/Shades { Globals 13 } def % Shaded text flag
/Landscape { Globals 14 } def % Landscape flag
/SAVE { /VMsave save def } def
/RESTORE
{
Globals aload /#copies #copies VMsave restore def astore
} def
/Filldict 12 dict def
Filldict begin
/Msave matrix def
/Mdots 1 dup matrix scale def
/Mbits matrix def
/Fbits 32 def
/Fvars 5 array def
/Farg { Fvars 0 } def
/Fx0 { Fvars 1 } def
/Fy0 { Fvars 2 } def
/Fx1 { Fvars 3 } def
/Fy1 { Fvars 4 } def
/Fmap [ 0 1 2 3 4 5 6 7 0 9 10 11 12 13 14 9 10 14 ] def
/Fpats
[
% none
{ <00> }
% solid
{ <ff> }
% horizontal
{ <000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff> }
% +45
{ <003f803f007f007f00fe00fe01fc01fc03f803f807f007f00fe00fe01fc01fc03f803f807f007f00fe00fe00fc01fc01f803f803f007f007e00fe00fc01fc01f003f803f007f007f00fe00fe01fc01fc03f803f807f007f00fe00fe01fc01fc03f803f807f007f00fe00fe00fc01fc01f803f803f007f007e00fe00fc01fc01f> }
% vertical
{ <f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000> }
% +135
{ <7f007f003f803f801fc01fc00fe00fe007f007f003f803f801fc01fc00fe00fe007f007f803f803fc01fc01fe00fe00ff007f007f803f803fc01fc01fe00fe007f007f003f803f801fc01fc00fe00fe007f007f003f803f801fc01fc00fe00fe007f007f803f803fc01fc01fe00fe00ff007f007f803f803fc01fc01fe00fe00> }
% +grid
{ <f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000fffffffffffffffffffffffffffffffff000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000ffffffffffffffffffffffffffffffff> }
% xgrid
{ <ff3fff3f3fff3fff1ffe1ffe0ffc0ffc07f807f807f807f80ffc0ffc1ffe1ffe3fff3fffff3fff3ffe1ffe1ffc0ffc0ff807f807f807f807fc0ffc0ffe1ffe1fff3fff3f3fff3fff1ffe1ffe0ffc0ffc07f807f807f807f80ffc0ffc1ffe1ffe3fff3fffff3fff3ffe1ffe1ffc0ffc0ff807f807f807f807fc0ffc0ffe1ffe1f> }
% hollow
{ <00> }
% brick
{ <fffffffffffffffffffffffffffffffff0000000f0000000f0000000f0000000f0000000f0000000f0000000f0000000f0000000f0000000f0000000f0000000ffffffffffffffffffffffffffffffff0000f0000000f0000000f0000000f0000000f0000000f0000000f0000000f0000000f0000000f0000000f0000000f000> }
% scales
{ <000f3ff0000f0ff8000f03fc000f00fc001f007e001f003e003e001f007e001f00fc000f03fc000f0ff8000f3ff0000fffc0000fff00000fff00000fffc0000f3ff0000f0ff8000f03fc000f00fc000f007e001f003e001f001f003e001f007e000f00fc000f03fc000f0ff8000f3ff0000fffc0000fff00000fff00000fffc0> }
% weave
{ <fc03e003f801f001f001f801e003fc03c007fe07800fff0f001fff9f003ffffe007ffffc00fffff801fffff003ffffe007ffffc00f9fff801f0fff003e07fe007c03fc00f801f800f800f801fc007c03fe003e07ff001f0fff800f9fffc007ffffe003fffff001fffff800fffffc007ffffe003fff9f001fff0f800ffe07c007> }
% chess
{ <ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00000000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff> }
% lozenge
{ <000180000003c0000007e000000ff000001ff800003ffc00007ffe0000ffff0001ffff8003ffffc007ffffe00ffffff01ffffff83ffffffc7ffffffefffffffe7ffffffe3ffffffc1ffffff80ffffff007ffffe003ffffc001ffff8000ffff00007ffe00003ffc00001ff800000ff0000007e0000003c0000001800000000000> }
% frieze
{ <000000000000000000000000000000000fffffff0fffffff0fffffff0fffffff0f00000f0f00000f0f00000f0f00000f0f0fff0f0f0fff0f0f0fff0f0f0fff0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0fff0f0f0fff0f0f0fff0f0f0fff0f0f00000f0f00000f0f00000f0f00000f0fffffff0fffffff0fffffff0fffffff0f> }
] def
end
/Fill
{
Filldict begin
Fmap length mod dup 8 eq { pop 0 } if
Farg Put
Farg get 2 ge
{
gsave clip Msave currentmatrix
gsave 1 setgray fill grestore % Opaque fills
Mdots setmatrix
Farg get Fpats length ge { 90 rotate } if % Rotated patterns
Landscape get { 90 rotate } if
pathbbox % Enclosing rectangle
3 index 2 index gt { 4 2 roll } if
2 index 1 index gt { 3 1 roll exch } if
Fbits div ceiling cvi Fbits mul Fy1 Put % Ensure integral tiles
Fbits div ceiling cvi Fbits mul Fx1 Put
Fbits div 0.9 sub cvi Fbits mul Fy0 Put
Fbits div 0.9 sub cvi Fbits mul Fx0 Put
Fx0 get Fy0 get translate
Fbits Fy1 get Fy0 get sub true Mbits
Fpats Fmap Farg get get get
Fx1 get Fx0 get sub
Fbits div ceiling cvi
{ 5 copy imagemask Fbits 0 translate } repeat 5 { pop } repeat
setmatrix grestore
}
{
Farg get 1 eq { fill } if
} ifelse
end
} bind def
/Founts
[
[ /Symbol /Symbol /Symbol /Symbol ]
[ /Courier-BoldOblique /Courier /Courier-Bold /Courier-Oblique ]
[ /Times-BoldItalic /Times-Roman /Times-Bold /Times-Italic ]
[ /Helvetica-BoldOblique /Helvetica /Helvetica-Bold /Helvetica-Oblique ]
] def
/SYMBOL 0 def
/COURIER 1 def
/TIMES 2 def
/HELVETICA 3 def
/BoldItalic 0 def
/Roman 1 def
/Bold 2 def
/Italic 3 def
/ColourArray
[
[1 1 1] % white
[1 0 0] % red
[1 1 0] % yellow
[0 1 0] % green
[0 1 1] % cyan
[0 0 1] % blue
[1 0 1] % magenta
[0 0 0] % black
[1 1 1] % white
] def
% Procedures
% Founts
/Setfount { exch Founts exch get exch get findfont } def
% ================ Uniplex WP Support =============================
WPdict begin
/Selfount
{
Face get Style get
Setfount Size get scalefont setfont
} bind def
/Selital
{
Face get Style get
dup Roman eq { pop Italic } { dup Bold eq { pop BoldItalic } if } ifelse
Setfount Size get scalefont setfont
} bind def
/Selspace
{
Char_W space stringwidth pop put
} bind def
% Painting
/Box { moveto 3 { lineto } repeat closepath } bind def
/Quad { 4 copy 5 -2 roll exch } bind def
/Shade { setgray currentpoint fill moveto } bind def
% Text
/Stringshow
{
Char_W get space stringwidth pop sub 0 32 4 -1 roll widthshow
} bind def
/Textshow
{
0 Shades get lt
{
currentpoint 2 index 1 Shades get le
{
% 1 <= Shades
0 setgray
0.4 0 rmoveto 2 Shades get le
{
% 2 <= Shades
Shades get 2 sub setgray
}
{
% 1 <= Shades < 2
Shades get 1 sub setgray
currentpoint 2 index 0.3 0 rmoveto Stringshow moveto
1 setgray
} ifelse
Stringshow
}
{
% 0 < Shades < 1
0 setgray
gsave currentpoint newpath moveto Stringshow
2 copy currentpoint Size get
dup -4 div dup 6 -1 roll add 5 1 roll 3 -1 roll add 2 1 roll
add newpath Quad Box
Shades get Shade grestore
} ifelse
newpath moveto
} if
0 setgray Stringshow
} bind def
/Secpost (\n#postscript:) def
/Secends (\n\)\)\n\f) def
/Sechigh (\nHIGHT= ) def
/Secwide (\nOTHER= ) def
/Secnumb (\nDIGIT= ) def
/Secsize (\nSIZES= ) def
/Seccheq (=) def
/Secstar (*) def
/Seccomm (,) def
/Fpad
{
1 index length sub { space print } repeat print
} bind def
/Fval
{
cbuf cvcs stringwidth pop % Character width
1 in div 12000 mul % From points to 1/12000 in
ceiling cvi buff cvs
} bind def
/Frow
{
Secsize 4
{
print dup buff cvs 4 Fpad Seccheq print dup Fval 4 Fpad 1 add Seccomm
} repeat pop
} bind def
/FCAP
{
mark
Secstar
newline print 40 { dup print } repeat
newline print dup print space print
Founts Face get get Style get get buff cvs print space print
Size get buff cvs print
newline print 40 { dup print } repeat
pop newline print
Secpost print
Sechigh print Size get 72 div 48 mul ceiling cvi buff cvs 4 Fpad
Secwide print 0 Fval 4 Fpad
Secnumb print 48 Fval 4 Fpad
32 4 127 { Frow pop } for
160 4 255 { Frow pop } for
Secends print
cleartomark
} bind def
% Interface
/SETF { Size Put Style Put Face Put Selfount Selspace } bind def
/TE
{
dup type /stringtype eq
{
dup length 0 ne
{
0 setgray Ulin_N get 0 eq
{
Textshow
}
{
currentlinewidth exch Ulin_W get setlinewidth
currentpoint 3 -1 roll
Textshow currentpoint 4 2 roll Ulin_N get dup
{
5 copy neg Ulin_H get mul dup 5 -1 roll add 4 1 roll add
newpath moveto lineto stroke 1 sub
} repeat
3
{
pop
} repeat
moveto
setlinewidth
} ifelse
}
{
pop
} ifelse
} if
} bind def
/Supscale [ 1 0 0 0.75 0 3 ] def
/Subscale [ 1 0 0 0.75 0 -1 ] def
/SUPS { TE currentfont Supscale makefont setfont } def
/SUPE { TE Selfount } bind def
/SUBS { TE currentfont Subscale makefont setfont } def
/SUBE { TE Selfount } bind def
/SHB { exch TE Shades Put } bind def
/SHE { 0 SHB } bind def
/X { dpi div in } bind def
/Y { dpi div in neg } bind def
/U { dpi div in exch TE 0 exch rmoveto } bind def
/H { dpi div in exch TE Char_W Put } bind def
/V { dpi div in exch TE neg Line_H Put } bind def
/P { TE currentpoint } bind def
/M { TE moveto } bind def
/G { TE currentpoint newpath moveto } bind def
/E { currentpoint 2 copy
2 { exch 5 -1 roll add } repeat Quad Box } bind def
/N { Graf_N Put } bind def
/F { Graf_N get Fill } bind def
/S { 10 dup Graf_N get sub exch div Shade } bind def
/B { 0 Shade } bind def
/UOFF { TE Ulin_N 0 put } bind def
/ULIN { TE Ulin_N 1 put } bind def
/UDBL { TE Ulin_N 2 put } bind def
/Newpage
{
Selfount
Landscape get { 90 rotate 0 Page_H get neg translate } if
Marg_L get Page_H get US exch pop sub translate % Assume US for graphics
0 US exch pop Marg_T get sub moveto
} def
/PAGE
{
SAVE
Newpage
} def
/FF
{
TE
RESTORE
showpage
} def
/R { TE 0 currentpoint exch pop moveto } bind def
/L { TE 0 Line_H get rmoveto } bind def
/TIME10R { TE TIMES Roman 10 SETF } bind def
/TIME10B { TE TIMES Bold 10 SETF } bind def
/TIME10I { TE TIMES Italic 10 SETF } bind def
/TIME08R { TE TIMES Roman 8 SETF } bind def
/HELV14B { TE HELVETICA Bold 14 SETF } bind def
/HELV10R { TE HELVETICA Roman 10 SETF } bind def
/HELV08R { TE HELVETICA Roman 8 SETF } bind def
/COUR12R { TE COURIER Roman 12 SETF } bind def
/COUR08R { TE COURIER Roman 8 SETF } bind def
/NORMAL { TIME10R } bind def
/BOLD { TIME10B } bind def
/ITALIC { TIME10I } bind def
/SMALL { TIME08R } bind def
/LARGE { HELV14B } bind def
/PS-NORMAL { HELV10R } bind def
/PS-SMALL { HELV08R } bind def
/FX-NORMAL { COUR12R } bind def
/FX-SMALL { COUR08R } bind def
end
% Uniplex Graphics Support ==========================
GPdict begin
/CTM matrix def
% local LaserWriter path procedures =================
% x y w h rectpath -
/rectpath
{
CTM currentmatrix 5 1 roll
4 2 roll translate
exch 2 copy 0 0 0 0 8 1 roll
moveto lineto lineto lineto
closepath
setmatrix
} def
% [x1 y1 .... xn yn] polypath -
/polypath
{
/co_ords exch def % save the co_ords array
co_ords length 0 gt % check length > 0
{
co_ords length 2 mod 0 gt % check length is even
{ (%%[ Error: odd number of co-ords : polypath ]%%) print }
{
co_ords length 1 sub -1 0
{ co_ords exch get } for % => yn xn .. y1 x1
2 copy exch moveto % move to first co_ord
co_ords length 2 idiv % calculate number of points to go
{ exch lineto } repeat
} ifelse
} if
} def
% [x1 y1 .... xn yn] markpath -
/markpath
{
/co_ords exch def % save the co_ords array
co_ords length 0 gt % check length > 0
{
co_ords length 2 mod 0 gt % check length is even
{ (%%[ Error: odd number of co-ords : markpath ]%%) print }
{
co_ords length 1 sub -1 0
{ co_ords exch get } for % => yn xn .. y1 x1
2 copy exch moveto % move to first co_ord
co_ords length 2 idiv % calculate number of points to go
{ exch moveto MarkIt } repeat % move to point and place mark
} ifelse
} if
} def
% ====================== Short Utility Routines ============================
% - FillPath -
/FillPath { CFillPattern Fill } def
% - MarkIt -
/MarkIt
{
CMarkSize 0 ne
{
gsave
CLineWidth 2 SetLineWidth % poke current line width
currentpoint translate % make mark point the origin
1 setlinecap % round ends shows points!
CMarkSize dup scale
newpath CMarkStyle % this is the proc to draw mark
1 CMarkSize div dup scale
stroke
SetLineWidth % restore line width from stack
grestore
} if
} def
% ==================== RGIP/Postscript Declarations =======================
/DashArray
[] % solid
[] % solid
[8 4] % dash
[1 3] % dot
[3 2 1 2] % dash dot
[4 4] % dash dash
[3 2 1 2 1 2] % dash dot dot
[1 2 3 2 3 2] % dot dash dash
[1 2] % dot dot
9 array astore def
/MarkArray
[
{ -2 -3 moveto 2 -3 lineto -2 3 lineto 2 3 lineto closepath } % vert bow
{ 0 0 1 0 360 arc } % point
{ -3 0 moveto 3 0 lineto 0 -3 moveto 0 3 lineto } % plus
{ 3 { -3 0 moveto 3 0 lineto 60 rotate } repeat } % star
{ -3 -3 moveto 3 -3 lineto 3 3 lineto -3 3 lineto closepath } % square
{ 45 rotate -3 0 moveto 3 0 lineto 0 -3 moveto 0 3 lineto } % multiply
{ 0 -4 moveto 3 0 lineto 0 4 lineto -3 0 lineto closepath } % diamond
{ -3 -2 moveto -3 2 lineto 3 -2 lineto 3 2 lineto closepath } % horz bow
] def
% /CTextVector 0 def
% /CFillPattern 0 def
% /CLineWidth 1 def
% /CLineStyle 0 def
% /CFontFace 1 def
% /CFontType 0 def
% /CFontSize 1 def
% /CMarkStyle {} def
% /Background 0 def /Foreground 7 def
% /CColour 7 def
% /Vport_x 0.5 def % viewport x co-ord
% /Vport_y 0.5 def % viewport y co-ord
% /Vport_w 7.0 def % viewport width
% /Vport_h 7.0 def % viewport height
/SWin_minx 0 def % window min x
/SWin_maxx 10000 def % window max x
/SWin_miny 0 def % window min y
/SWin_maxy 10000 def % window max y
% ====================== RGIP/Postscript commands ==========================
% x y w h EraseArea -
/EraseArea
{
newpath gsave rectpath ColourArray Background get aload pop setrgbcolor fill
grestore
} def
% - EraseViewport -
/EraseViewport
{
newpath gsave clippath ColourArray Background get aload pop setrgbcolor fill
grestore
} def
% (string) TLength
/TLength { length CFontSize 300 mul 7 12 div mul mul } bind def
% (string) TScale
/TScale { dup TLength 1 index stringwidth pop sub exch length div 0 } bind def
% x y hjust (string) TextAbs -
/TextAbs
{
4 2 roll % => hjust (string) x y
moveto % => hjust (string)
dup TLength 2 div % => hjust (string) width/2
3 -1 roll % => (string) width/2 hjust
gsave
CTextVector rotate
3 {
2 copy 0 gt
{neg 0 rmoveto 1 sub}
{pop} ifelse
} repeat pop pop
dup TScale 3 -1 roll ashow
grestore
} def
% angle TextBaseline -
/TextBaseline { cvi 360 mod /CTextVector exch def } def
% num SetLineStyle -
/SetLineStyle
{
9 mod abs /CLineStyle exch def
[ DashArray CLineStyle get { CLineWidth 3 mul mul abs } forall ]
0 setdash
} def
% w SetLineWidth -
/SetLineWidth { dup /CLineWidth exch def 3 mul abs setlinewidth } def
% face type size SetFontStyle -
/SetFontStyle
{
abs /CFontSize exch def
Founts 0 get length mod abs /CFontType exch def
Founts length mod abs /CFontFace exch def
CFontFace CFontType Setfount CFontSize 300 mul scalefont setfont
} def
% num SetColour -
/SetColour
{
9 mod abs dup /CColour exch def ColourArray exch get aload pop setrgbcolor
} def
% num SetMarkStyle -
/SetMarkStyle
{
MarkArray length mod abs MarkArray exch get /CMarkStyle exch def
} def
% size SetMarkSize -
/SetMarkSize { dup 0 ne { 1 add 150 mul } if 8 div /CMarkSize exch def } def
% sx sy ex ey lw lstyle lcolour LINE -
/LINE
{
SetColour SetLineStyle SetLineWidth
4 2 roll newpath moveto lineto currentpoint stroke moveto
} def
% x y w h lw lstyle lcolour fstyle fcolour BOX -
/BOX
{
9 -4 roll newpath rectpath SetColour gsave Fill grestore
SetColour SetLineStyle dup SetLineWidth 0 gt { stroke } if
} def
% x y msize mstyle mcolour MARK -
/MARK { SetColour SetMarkStyle SetMarkSize moveto MarkIt } def
% cx cy rad s_ang sweep lw lstyle lcolour fstyle fcolour SEGMENT -
/SEGMENT
{
10 5 roll 2 copy pop add newpath 4 index 4 index moveto
arc closepath SetColour gsave Fill grestore
SetColour SetLineStyle dup SetLineWidth 0 gt { stroke } if
} def
% cx cy rad s_ang sweep lw lstyle lcolour fstyle fcolour ARC -
/ARC
{
10 5 roll 2 copy pop add newpath
arc SetColour gsave closepath Fill grestore
SetColour SetLineStyle dup SetLineWidth 0 gt { stroke } if
} def
% [x1 y1 ... xn yn] lw lstyle lcolour fstyle fcolour POLY -
/POLY
{
6 5 roll newpath
polypath SetColour gsave closepath Fill grestore
SetColour SetLineStyle dup SetLineWidth 0 gt { stroke } if
} def
% x y hjust rot (string) face type size colour TEXT -
/TEXT { SetColour SetFontStyle exch TextBaseline TextAbs } def
% x y w h SetViewport -
/SetViewport
{
/Vport_h exch def
/Vport_w exch def
/Vport_y exch def
/Vport_x exch def
grestoreall
1 in dup scale % convert to inches scale
newpath Vport_x Vport_y Vport_w Vport_h rectpath clip newpath
Vport_x Vport_y translate
Vport_w SWin_maxx SWin_minx sub div % x scale
Vport_h SWin_maxy SWin_miny sub div % y scale
scale
SWin_minx neg SWin_miny neg translate
} def
% x_min y_min x_max y_max SetWindow -
/SetWindow
{
/SWin_maxy exch def
/SWin_maxx exch def
/SWin_miny exch def
/SWin_minx exch def
Vport_x Vport_y Vport_w Vport_h SetViewport
} def
% -- Initialise -
/Initialise
{
grestoreall
% set default graphics state
0.5 0.5 7.0 7.0 SetViewport
0 0 10000 10000 SetWindow
0 0 1 SetFontStyle
0 TextBaseline
1 SetLineWidth
7 SetColour
0 SetLineStyle
} def
Initialise
end
/OPEN { end save GPdict begin } bind def
/CLOSE { end restore WPdict begin } bind def
% - Open -
/Open { OPEN } bind def
% -- Close -
/Close { CLOSE showpage } bind def
/GB
{
TE gsave OPEN
/Open {} def /Initialise {} def /Close {} def
} bind def
/GE { CLOSE grestore } bind def
/DEINIT { clear end } bind def
/INIT
{
erasepage initgraphics mark
WPdict begin
Face TIMES put
Style Roman put
Size 10 put
Char_W 0 put
Line_H -12 put
Ulin_W 0.25 put
Ulin_H 1 put
Ulin_N 0 put
Page_W US
Page_H Put put
Marg_T 0.5 in put
Marg_L 0.3 in put
Shades 0 put
Landscape false put
userdict /PAPER known
{
PAPER
Landscape Put
Marg_T Put Marg_L Put
Landscape get { exch } if
Page_H Put Page_W Put
} if
} def
%%EndProlog
INIT