%!IBM Personal Pageprinter (4216) Adapter Program V1.0 %%DocumentFonts: Times-Roman %%Creator: Axiom %%CreationDate: today %%Pages: 1 %%processing (hard) limit: 250 pts or 500 values for the operand stack. %%EndComments %------------------------------- prologue -------------------------------% %-------------------------- support procedures --------------------------% %--------- first create user dictionary with 100 entries max ------------% % (number can be changed to accomodate definitions) % 100 dict begin %% using 100 entries in top level dictionary /FontHeight 12 def /inch { 72 mul } def % yVal and hVal are necessary because the Xwindow display origin % is at the upper left corner, while the postscript display % origin is at the lower left hand corner. /yVal %% get Y value -- make upper left corner origin { maxY sub abs } %% maxY is viewWindow height def /hVal %% get H value -- used for displaying title text { maxH sub abs } %% maxH is viewWindow height+titleWindow height def % loads in the font /loadFont { /Times-Roman findfont FontHeight scalefont setfont } def % draws a rectangle with input operand: % height % width % notice that this function does not "draw" or ink the rectangle. /drawRect { 1 index 1 add 0 rlineto %% draw first side 0 exch 1 add neg rlineto %% draw second side 1 add neg 0 rlineto %% draw third side closepath } %% draw fourth side def % create a rectangle with input operand in the view window: % y % x % height % width % notice that this function does not "draw" or ink the rectangle. /rectangle { yVal moveto %% set currentpoint for line drawRect } %% draws the rectangle def % These are global variables that every draw procedure uses % THe operand should be as follows: % viewWindow width % viewWindow height % title height /setDim { /maxX exch def %% width of display /maxY exch def %% height of display /titleH exch def %% height of title /maxH maxY titleH add def %% height of display + title } def %-------------------------- major procedures --------------------------% /title %% draws a rectangle around the title of picture { gsave newpath moveto %% lower left of title titleH 1 add 0 exch rlineto %% draw first side 1 add 0 rlineto %% draw second side 1 add neg 0 exch rlineto begin installGC stroke end %% draw third side grestore } def /drawFrame %% draw display frame { gsave newpath maxX maxY 0 0 rectangle begin installGC stroke end grestore } def % updates the foreground color of existing graphics-context dictionary: % foreground color % dictionary name /setForeground { /FGcolor exch put } def % updates the background color of existing graphics-context dictionary: % background color % dictionary name /setBackground { /BGcolor exch put } def % updates the line width, line style, cap style, join style of % existing graphics-context dictionary: % dictionary name % join style % cap style % line width /setLineAttributes { begin /JoinStyle exch def /CapStyle exch def /LineWidth exch def end } def % creates a graphics context dictionary with the following information: % /dictionary name % foreground color % background color % line width % cap style % join style % this creates different graphical contexts for different drawing functions. /makeDict { 5 dict 2 copy def begin pop %% with dict name on top of stack /FGcolor exch def %% define drawing attributes /BGcolor exch def %% not heavily used /LineWidth exch def /CapStyle exch def /JoinStyle exch def end } def % makes the current dictionary attributes effective % this function takes the values in the current dictionary to set the context % these are the values currently being used: foreground, cap, join, and width /installGC { FGcolor currentgray ne {FGcolor setgray} if %% foreground color CapStyle currentlinecap ne {CapStyle setlinecap} if %% cap style JoinStyle currentlinejoin ne {JoinStyle setlinejoin} if %% join style LineWidth currentlinewidth ne {LineWidth setlinewidth} if } %% line width def % operand stack configuration in order to use psDrawLine: % psDrawLine % y0 % x0 % y1 % x1 % graphics-context dictionary % this draws a line from (x0, y0) to (x1, y1). /psDrawLine { gsave newpath yVal moveto yVal lineto begin installGC stroke end grestore } def % operand stack configuration in order to use psFillArc: % psFillArc % y center of rectangle % x center of rectangle % angle2 % angle1 % width % height % y % x % graphics-context dictionary % this draws and fills an arc whose origin is at x, y, and whose width % and height specifies the rectangle which encases the arc. % Origin is at upper left corner of rectangle. % This function uses "scale" to make cricles and ellipses. /psFillArc { gsave newpath yVal moveto /sfactor 4 index 4 index div def 1 sfactor scale 6 5 roll %% x on top of stack 3 index 2 div add %% define x origin 6 5 roll %% y on top of stack 6 5 roll %% h on top of stack 2 div add yVal sfactor div %% define y origin 5 4 roll %% w on top of stack 2 div %% define radius 5 3 roll %% a1 a2 now on top 1 index add arcn %% draw clockwise arc begin installGC fill end %% fills with foreground color grestore } def %-------------------------- script --------------------------% % 1 inch 1 inch translate mark %% mark bottom of our stack 0 0 1 1072693248 0 /globalGC1 makeDict 0 0 1 1072693248 0 /globalGC2 makeDict 0 0 1 1072693248 0 /trashGC makeDict 0 0 1 1072693248 0 /globGC makeDict 0 0 1 1072693248 0 /anotherGC makeDict 0 0 1 1072693248 0 /graphGC makeDict 0 0 1 1072693248 0 /unitGC makeDict gsave % save graphics state for clipping path 24 259 256 setDim maxX maxY 0 0 rectangle clip % set clip path globalGC1 256 129 0 129 psDrawLine globalGC1 128 259 128 0 psDrawLine globalGC1 126 128 3 3 0 360 127 129 psFillArc globalGC1 127 129 127 129 psDrawLine globalGC1 126 128 3 3 0 360 127 129 psFillArc globalGC1 105 99 127 129 psDrawLine globalGC1 104 98 3 3 0 360 105 99 psFillArc globalGC1 83 71 105 99 psDrawLine globalGC1 82 70 3 3 0 360 83 71 psFillArc globalGC1 63 48 83 71 psDrawLine globalGC1 62 47 3 3 0 360 63 48 psFillArc globalGC1 46 29 63 48 psDrawLine globalGC1 45 28 3 3 0 360 46 29 psFillArc globalGC1 38 23 46 29 psDrawLine globalGC1 37 22 3 3 0 360 38 23 psFillArc globalGC1 32 18 38 23 psDrawLine globalGC1 31 17 3 3 0 360 32 18 psFillArc globalGC1 29 16 32 18 psDrawLine globalGC1 28 15 3 3 0 360 29 16 psFillArc globalGC1 26 15 29 16 psDrawLine globalGC1 25 14 3 3 0 360 26 15 psFillArc globalGC1 23 14 26 15 psDrawLine globalGC1 22 13 3 3 0 360 23 14 psFillArc globalGC1 21 14 23 14 psDrawLine globalGC1 20 13 3 3 0 360 21 14 psFillArc globalGC1 20 14 21 14 psDrawLine globalGC1 19 13 3 3 0 360 20 14 psFillArc globalGC1 19 14 20 14 psDrawLine globalGC1 18 13 3 3 0 360 19 14 psFillArc globalGC1 18 14 19 14 psDrawLine globalGC1 17 13 3 3 0 360 18 14 psFillArc globalGC1 17 15 18 14 psDrawLine globalGC1 16 14 3 3 0 360 17 15 psFillArc globalGC1 16 15 17 15 psDrawLine globalGC1 15 14 3 3 0 360 16 15 psFillArc globalGC1 16 16 16 15 psDrawLine globalGC1 15 15 3 3 0 360 16 16 psFillArc globalGC1 15 17 16 16 psDrawLine globalGC1 14 16 3 3 0 360 15 17 psFillArc globalGC1 15 18 15 17 psDrawLine globalGC1 14 17 3 3 0 360 15 18 psFillArc globalGC1 13 23 15 18 psDrawLine globalGC1 12 22 3 3 0 360 13 23 psFillArc globalGC1 12 29 13 23 psDrawLine globalGC1 11 28 3 3 0 360 12 29 psFillArc globalGC1 15 48 12 29 psDrawLine globalGC1 14 47 3 3 0 360 15 48 psFillArc globalGC1 21 71 15 48 psDrawLine globalGC1 20 70 3 3 0 360 21 71 psFillArc globalGC1 32 99 21 71 psDrawLine globalGC1 31 98 3 3 0 360 32 99 psFillArc globalGC1 46 129 32 99 psDrawLine globalGC1 45 128 3 3 0 360 46 129 psFillArc globalGC1 63 159 46 129 psDrawLine globalGC1 62 158 3 3 0 360 63 159 psFillArc globalGC1 83 187 63 159 psDrawLine globalGC1 82 186 3 3 0 360 83 187 psFillArc globalGC1 105 210 83 187 psDrawLine globalGC1 104 209 3 3 0 360 105 210 psFillArc globalGC1 127 229 105 210 psDrawLine globalGC1 126 228 3 3 0 360 127 229 psFillArc globalGC1 139 235 127 229 psDrawLine globalGC1 138 234 3 3 0 360 139 235 psFillArc globalGC1 150 240 139 235 psDrawLine globalGC1 149 239 3 3 0 360 150 240 psFillArc globalGC1 161 243 150 240 psDrawLine globalGC1 160 242 3 3 0 360 161 243 psFillArc globalGC1 172 244 161 243 psDrawLine globalGC1 171 243 3 3 0 360 172 244 psFillArc globalGC1 182 243 172 244 psDrawLine globalGC1 181 242 3 3 0 360 182 243 psFillArc globalGC1 192 240 182 243 psDrawLine globalGC1 191 239 3 3 0 360 192 240 psFillArc globalGC1 201 235 192 240 psDrawLine globalGC1 200 234 3 3 0 360 201 235 psFillArc globalGC1 209 229 201 235 psDrawLine globalGC1 208 228 3 3 0 360 209 229 psFillArc globalGC1 223 210 209 229 psDrawLine globalGC1 222 209 3 3 0 360 223 210 psFillArc globalGC1 234 187 223 210 psDrawLine globalGC1 233 186 3 3 0 360 234 187 psFillArc globalGC1 240 159 234 187 psDrawLine globalGC1 239 158 3 3 0 360 240 159 psFillArc globalGC1 243 129 240 159 psDrawLine globalGC1 242 128 3 3 0 360 243 129 psFillArc globalGC1 240 99 243 129 psDrawLine globalGC1 239 98 3 3 0 360 240 99 psFillArc globalGC1 234 71 240 99 psDrawLine globalGC1 233 70 3 3 0 360 234 71 psFillArc globalGC1 223 48 234 71 psDrawLine globalGC1 222 47 3 3 0 360 223 48 psFillArc globalGC1 217 38 223 48 psDrawLine globalGC1 216 37 3 3 0 360 217 38 psFillArc globalGC1 209 29 217 38 psDrawLine globalGC1 208 28 3 3 0 360 209 29 psFillArc globalGC1 201 23 209 29 psDrawLine globalGC1 200 22 3 3 0 360 201 23 psFillArc globalGC1 192 18 201 23 psDrawLine globalGC1 191 17 3 3 0 360 192 18 psFillArc globalGC1 182 15 192 18 psDrawLine globalGC1 181 14 3 3 0 360 182 15 psFillArc globalGC1 172 14 182 15 psDrawLine globalGC1 171 13 3 3 0 360 172 14 psFillArc globalGC1 161 15 172 14 psDrawLine globalGC1 160 14 3 3 0 360 161 15 psFillArc globalGC1 150 18 161 15 psDrawLine globalGC1 149 17 3 3 0 360 150 18 psFillArc globalGC1 128 29 150 18 psDrawLine globalGC1 127 28 3 3 0 360 128 29 psFillArc globalGC1 105 48 128 29 psDrawLine globalGC1 104 47 3 3 0 360 105 48 psFillArc globalGC1 83 71 105 48 psDrawLine globalGC1 82 70 3 3 0 360 83 71 psFillArc globalGC1 63 99 83 71 psDrawLine globalGC1 62 98 3 3 0 360 63 99 psFillArc globalGC1 46 129 63 99 psDrawLine globalGC1 45 128 3 3 0 360 46 129 psFillArc globalGC1 32 159 46 129 psDrawLine globalGC1 31 158 3 3 0 360 32 159 psFillArc globalGC1 21 187 32 159 psDrawLine globalGC1 20 186 3 3 0 360 21 187 psFillArc globalGC1 15 210 21 187 psDrawLine globalGC1 14 209 3 3 0 360 15 210 psFillArc globalGC1 13 220 15 210 psDrawLine globalGC1 12 219 3 3 0 360 13 220 psFillArc globalGC1 12 229 13 220 psDrawLine globalGC1 11 228 3 3 0 360 12 229 psFillArc globalGC1 13 235 12 229 psDrawLine globalGC1 12 234 3 3 0 360 13 235 psFillArc globalGC1 14 238 13 235 psDrawLine globalGC1 13 237 3 3 0 360 14 238 psFillArc globalGC1 15 240 14 238 psDrawLine globalGC1 14 239 3 3 0 360 15 240 psFillArc globalGC1 15 241 15 240 psDrawLine globalGC1 14 240 3 3 0 360 15 241 psFillArc globalGC1 16 242 15 241 psDrawLine globalGC1 15 241 3 3 0 360 16 242 psFillArc globalGC1 16 243 16 242 psDrawLine globalGC1 15 242 3 3 0 360 16 243 psFillArc globalGC1 17 243 16 243 psDrawLine globalGC1 16 242 3 3 0 360 17 243 psFillArc globalGC1 18 244 17 243 psDrawLine globalGC1 17 243 3 3 0 360 18 244 psFillArc globalGC1 19 244 18 244 psDrawLine globalGC1 18 243 3 3 0 360 19 244 psFillArc globalGC1 20 244 19 244 psDrawLine globalGC1 19 243 3 3 0 360 20 244 psFillArc globalGC1 21 244 20 244 psDrawLine globalGC1 20 243 3 3 0 360 21 244 psFillArc globalGC1 23 244 21 244 psDrawLine globalGC1 22 243 3 3 0 360 23 244 psFillArc globalGC1 26 243 23 244 psDrawLine globalGC1 25 242 3 3 0 360 26 243 psFillArc globalGC1 32 240 26 243 psDrawLine globalGC1 31 239 3 3 0 360 32 240 psFillArc globalGC1 46 229 32 240 psDrawLine globalGC1 45 228 3 3 0 360 46 229 psFillArc globalGC1 63 210 46 229 psDrawLine globalGC1 62 209 3 3 0 360 63 210 psFillArc globalGC1 83 187 63 210 psDrawLine globalGC1 82 186 3 3 0 360 83 187 psFillArc globalGC1 105 159 83 187 psDrawLine globalGC1 104 158 3 3 0 360 105 159 psFillArc globalGC1 127 129 105 159 psDrawLine globalGC1 126 128 3 3 0 360 127 129 psFillArc globalGC1 150 99 127 129 psDrawLine globalGC1 149 98 3 3 0 360 150 99 psFillArc globalGC1 172 71 150 99 psDrawLine globalGC1 171 70 3 3 0 360 172 71 psFillArc globalGC1 192 48 172 71 psDrawLine globalGC1 191 47 3 3 0 360 192 48 psFillArc globalGC1 209 29 192 48 psDrawLine globalGC1 208 28 3 3 0 360 209 29 psFillArc globalGC1 217 23 209 29 psDrawLine globalGC1 216 22 3 3 0 360 217 23 psFillArc globalGC1 223 18 217 23 psDrawLine globalGC1 222 17 3 3 0 360 223 18 psFillArc globalGC1 226 16 223 18 psDrawLine globalGC1 225 15 3 3 0 360 226 16 psFillArc globalGC1 229 15 226 16 psDrawLine globalGC1 228 14 3 3 0 360 229 15 psFillArc globalGC1 232 14 229 15 psDrawLine globalGC1 231 13 3 3 0 360 232 14 psFillArc globalGC1 234 14 232 14 psDrawLine globalGC1 233 13 3 3 0 360 234 14 psFillArc globalGC1 235 14 234 14 psDrawLine globalGC1 234 13 3 3 0 360 235 14 psFillArc globalGC1 236 14 235 14 psDrawLine globalGC1 235 13 3 3 0 360 236 14 psFillArc globalGC1 237 14 236 14 psDrawLine globalGC1 236 13 3 3 0 360 237 14 psFillArc globalGC1 238 15 237 14 psDrawLine globalGC1 237 14 3 3 0 360 238 15 psFillArc globalGC1 239 15 238 15 psDrawLine globalGC1 238 14 3 3 0 360 239 15 psFillArc globalGC1 239 16 239 15 psDrawLine globalGC1 238 15 3 3 0 360 239 16 psFillArc globalGC1 240 17 239 16 psDrawLine globalGC1 239 16 3 3 0 360 240 17 psFillArc globalGC1 240 18 240 17 psDrawLine globalGC1 239 17 3 3 0 360 240 18 psFillArc globalGC1 242 23 240 18 psDrawLine globalGC1 241 22 3 3 0 360 242 23 psFillArc globalGC1 243 29 242 23 psDrawLine globalGC1 242 28 3 3 0 360 243 29 psFillArc globalGC1 240 48 243 29 psDrawLine globalGC1 239 47 3 3 0 360 240 48 psFillArc globalGC1 234 71 240 48 psDrawLine globalGC1 233 70 3 3 0 360 234 71 psFillArc globalGC1 223 99 234 71 psDrawLine globalGC1 222 98 3 3 0 360 223 99 psFillArc globalGC1 209 129 223 99 psDrawLine globalGC1 208 128 3 3 0 360 209 129 psFillArc globalGC1 192 159 209 129 psDrawLine globalGC1 191 158 3 3 0 360 192 159 psFillArc globalGC1 172 187 192 159 psDrawLine globalGC1 171 186 3 3 0 360 172 187 psFillArc globalGC1 150 210 172 187 psDrawLine globalGC1 149 209 3 3 0 360 150 210 psFillArc globalGC1 128 229 150 210 psDrawLine globalGC1 127 228 3 3 0 360 128 229 psFillArc globalGC1 116 235 128 229 psDrawLine globalGC1 115 234 3 3 0 360 116 235 psFillArc globalGC1 105 240 116 235 psDrawLine globalGC1 104 239 3 3 0 360 105 240 psFillArc globalGC1 94 243 105 240 psDrawLine globalGC1 93 242 3 3 0 360 94 243 psFillArc globalGC1 83 244 94 243 psDrawLine globalGC1 82 243 3 3 0 360 83 244 psFillArc globalGC1 73 243 83 244 psDrawLine globalGC1 72 242 3 3 0 360 73 243 psFillArc globalGC1 63 240 73 243 psDrawLine globalGC1 62 239 3 3 0 360 63 240 psFillArc globalGC1 54 235 63 240 psDrawLine globalGC1 53 234 3 3 0 360 54 235 psFillArc globalGC1 46 229 54 235 psDrawLine globalGC1 45 228 3 3 0 360 46 229 psFillArc globalGC1 32 210 46 229 psDrawLine globalGC1 31 209 3 3 0 360 32 210 psFillArc globalGC1 21 187 32 210 psDrawLine globalGC1 20 186 3 3 0 360 21 187 psFillArc globalGC1 15 159 21 187 psDrawLine globalGC1 14 158 3 3 0 360 15 159 psFillArc globalGC1 12 129 15 159 psDrawLine globalGC1 11 128 3 3 0 360 12 129 psFillArc globalGC1 15 99 12 129 psDrawLine globalGC1 14 98 3 3 0 360 15 99 psFillArc globalGC1 21 71 15 99 psDrawLine globalGC1 20 70 3 3 0 360 21 71 psFillArc globalGC1 32 48 21 71 psDrawLine globalGC1 31 47 3 3 0 360 32 48 psFillArc globalGC1 38 38 32 48 psDrawLine globalGC1 37 37 3 3 0 360 38 38 psFillArc globalGC1 46 29 38 38 psDrawLine globalGC1 45 28 3 3 0 360 46 29 psFillArc globalGC1 54 23 46 29 psDrawLine globalGC1 53 22 3 3 0 360 54 23 psFillArc globalGC1 63 18 54 23 psDrawLine globalGC1 62 17 3 3 0 360 63 18 psFillArc globalGC1 73 15 63 18 psDrawLine globalGC1 72 14 3 3 0 360 73 15 psFillArc globalGC1 83 14 73 15 psDrawLine globalGC1 82 13 3 3 0 360 83 14 psFillArc globalGC1 94 15 83 14 psDrawLine globalGC1 93 14 3 3 0 360 94 15 psFillArc globalGC1 105 18 94 15 psDrawLine globalGC1 104 17 3 3 0 360 105 18 psFillArc globalGC1 127 29 105 18 psDrawLine globalGC1 126 28 3 3 0 360 127 29 psFillArc globalGC1 150 48 127 29 psDrawLine globalGC1 149 47 3 3 0 360 150 48 psFillArc globalGC1 172 71 150 48 psDrawLine globalGC1 171 70 3 3 0 360 172 71 psFillArc globalGC1 192 99 172 71 psDrawLine globalGC1 191 98 3 3 0 360 192 99 psFillArc globalGC1 209 129 192 99 psDrawLine globalGC1 208 128 3 3 0 360 209 129 psFillArc globalGC1 223 159 209 129 psDrawLine globalGC1 222 158 3 3 0 360 223 159 psFillArc globalGC1 234 187 223 159 psDrawLine globalGC1 233 186 3 3 0 360 234 187 psFillArc globalGC1 240 210 234 187 psDrawLine globalGC1 239 209 3 3 0 360 240 210 psFillArc globalGC1 242 220 240 210 psDrawLine globalGC1 241 219 3 3 0 360 242 220 psFillArc globalGC1 243 229 242 220 psDrawLine globalGC1 242 228 3 3 0 360 243 229 psFillArc globalGC1 242 235 243 229 psDrawLine globalGC1 241 234 3 3 0 360 242 235 psFillArc globalGC1 241 238 242 235 psDrawLine globalGC1 240 237 3 3 0 360 241 238 psFillArc globalGC1 240 240 241 238 psDrawLine globalGC1 239 239 3 3 0 360 240 240 psFillArc globalGC1 240 241 240 240 psDrawLine globalGC1 239 240 3 3 0 360 240 241 psFillArc globalGC1 239 242 240 241 psDrawLine globalGC1 238 241 3 3 0 360 239 242 psFillArc globalGC1 239 243 239 242 psDrawLine globalGC1 238 242 3 3 0 360 239 243 psFillArc globalGC1 238 243 239 243 psDrawLine globalGC1 237 242 3 3 0 360 238 243 psFillArc globalGC1 237 244 238 243 psDrawLine globalGC1 236 243 3 3 0 360 237 244 psFillArc globalGC1 236 244 237 244 psDrawLine globalGC1 235 243 3 3 0 360 236 244 psFillArc globalGC1 235 244 236 244 psDrawLine globalGC1 234 243 3 3 0 360 235 244 psFillArc globalGC1 234 244 235 244 psDrawLine globalGC1 233 243 3 3 0 360 234 244 psFillArc globalGC1 232 244 234 244 psDrawLine globalGC1 231 243 3 3 0 360 232 244 psFillArc globalGC1 229 243 232 244 psDrawLine globalGC1 228 242 3 3 0 360 229 243 psFillArc globalGC1 223 240 229 243 psDrawLine globalGC1 222 239 3 3 0 360 223 240 psFillArc globalGC1 209 229 223 240 psDrawLine globalGC1 208 228 3 3 0 360 209 229 psFillArc globalGC1 192 210 209 229 psDrawLine globalGC1 191 209 3 3 0 360 192 210 psFillArc globalGC1 172 187 192 210 psDrawLine globalGC1 171 186 3 3 0 360 172 187 psFillArc globalGC1 150 159 172 187 psDrawLine globalGC1 149 158 3 3 0 360 150 159 psFillArc globalGC1 128 129 150 159 psDrawLine globalGC1 127 128 3 3 0 360 128 129 psFillArc grestore % restore graphics state cleartomark %% clearing operand stack end %% pops mainDict from dictionary stack showpage %-------------------------- end --------------------------%