%!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 127 259 127 0 psDrawLine globalGC1 213 243 3 3 0 360 214 244 psFillArc globalGC1 214 244 214 244 psDrawLine globalGC1 213 243 3 3 0 360 214 244 psFillArc globalGC1 214 213 214 244 psDrawLine globalGC1 213 212 3 3 0 360 214 213 psFillArc globalGC1 214 192 214 213 psDrawLine globalGC1 213 191 3 3 0 360 214 192 psFillArc globalGC1 214 171 214 192 psDrawLine globalGC1 213 170 3 3 0 360 214 171 psFillArc globalGC1 214 160 214 171 psDrawLine globalGC1 213 159 3 3 0 360 214 160 psFillArc globalGC1 214 150 214 160 psDrawLine globalGC1 213 149 3 3 0 360 214 150 psFillArc globalGC1 214 145 214 150 psDrawLine globalGC1 213 144 3 3 0 360 214 145 psFillArc globalGC1 215 139 214 145 psDrawLine globalGC1 214 138 3 3 0 360 215 139 psFillArc globalGC1 215 137 215 139 psDrawLine globalGC1 214 136 3 3 0 360 215 137 psFillArc globalGC1 216 134 215 137 psDrawLine globalGC1 215 133 3 3 0 360 216 134 psFillArc globalGC1 216 133 216 134 psDrawLine globalGC1 215 132 3 3 0 360 216 133 psFillArc globalGC1 217 132 216 133 psDrawLine globalGC1 216 131 3 3 0 360 217 132 psFillArc globalGC1 219 131 217 132 psDrawLine globalGC1 218 130 3 3 0 360 219 131 psFillArc globalGC1 221 130 219 131 psDrawLine globalGC1 220 129 3 3 0 360 221 130 psFillArc globalGC1 223 130 221 130 psDrawLine globalGC1 222 129 3 3 0 360 223 130 psFillArc globalGC1 228 129 223 130 psDrawLine globalGC1 227 128 3 3 0 360 228 129 psFillArc globalGC1 233 129 228 129 psDrawLine globalGC1 232 128 3 3 0 360 233 129 psFillArc globalGC1 238 129 233 129 psDrawLine globalGC1 237 128 3 3 0 360 238 129 psFillArc globalGC1 243 129 238 129 psDrawLine globalGC1 242 128 3 3 0 360 243 129 psFillArc globalGC1 155 243 3 3 0 360 156 244 psFillArc globalGC1 156 244 156 244 psDrawLine globalGC1 155 243 3 3 0 360 156 244 psFillArc globalGC1 156 213 156 244 psDrawLine globalGC1 155 212 3 3 0 360 156 213 psFillArc globalGC1 156 192 156 213 psDrawLine globalGC1 155 191 3 3 0 360 156 192 psFillArc globalGC1 157 171 156 192 psDrawLine globalGC1 156 170 3 3 0 360 157 171 psFillArc globalGC1 157 160 157 171 psDrawLine globalGC1 156 159 3 3 0 360 157 160 psFillArc globalGC1 157 150 157 160 psDrawLine globalGC1 156 149 3 3 0 360 157 150 psFillArc globalGC1 157 145 157 150 psDrawLine globalGC1 156 144 3 3 0 360 157 145 psFillArc globalGC1 157 139 157 145 psDrawLine globalGC1 156 138 3 3 0 360 157 139 psFillArc globalGC1 157 137 157 139 psDrawLine globalGC1 156 136 3 3 0 360 157 137 psFillArc globalGC1 158 134 157 137 psDrawLine globalGC1 157 133 3 3 0 360 158 134 psFillArc globalGC1 159 133 158 134 psDrawLine globalGC1 158 132 3 3 0 360 159 133 psFillArc globalGC1 160 132 159 133 psDrawLine globalGC1 159 131 3 3 0 360 160 132 psFillArc globalGC1 161 131 160 132 psDrawLine globalGC1 160 130 3 3 0 360 161 131 psFillArc globalGC1 163 130 161 131 psDrawLine globalGC1 162 129 3 3 0 360 163 130 psFillArc globalGC1 166 130 163 130 psDrawLine globalGC1 165 129 3 3 0 360 166 130 psFillArc globalGC1 171 129 166 130 psDrawLine globalGC1 170 128 3 3 0 360 171 129 psFillArc globalGC1 175 129 171 129 psDrawLine globalGC1 174 128 3 3 0 360 175 129 psFillArc globalGC1 180 129 175 129 psDrawLine globalGC1 179 128 3 3 0 360 180 129 psFillArc globalGC1 185 129 180 129 psDrawLine globalGC1 184 128 3 3 0 360 185 129 psFillArc globalGC1 190 129 185 129 psDrawLine globalGC1 189 128 3 3 0 360 190 129 psFillArc globalGC1 195 129 190 129 psDrawLine globalGC1 194 128 3 3 0 360 195 129 psFillArc globalGC1 199 128 195 129 psDrawLine globalGC1 198 127 3 3 0 360 199 128 psFillArc globalGC1 204 128 199 128 psDrawLine globalGC1 203 127 3 3 0 360 204 128 psFillArc globalGC1 207 128 204 128 psDrawLine globalGC1 206 127 3 3 0 360 207 128 psFillArc globalGC1 209 127 207 128 psDrawLine globalGC1 208 126 3 3 0 360 209 127 psFillArc globalGC1 210 126 209 127 psDrawLine globalGC1 209 125 3 3 0 360 210 126 psFillArc globalGC1 211 125 210 126 psDrawLine globalGC1 210 124 3 3 0 360 211 125 psFillArc globalGC1 212 124 211 125 psDrawLine globalGC1 211 123 3 3 0 360 212 124 psFillArc globalGC1 213 121 212 124 psDrawLine globalGC1 212 120 3 3 0 360 213 121 psFillArc globalGC1 213 119 213 121 psDrawLine globalGC1 212 118 3 3 0 360 213 119 psFillArc globalGC1 213 113 213 119 psDrawLine globalGC1 212 112 3 3 0 360 213 113 psFillArc globalGC1 213 108 213 113 psDrawLine globalGC1 212 107 3 3 0 360 213 108 psFillArc globalGC1 214 98 213 108 psDrawLine globalGC1 213 97 3 3 0 360 214 98 psFillArc globalGC1 214 87 214 98 psDrawLine globalGC1 213 86 3 3 0 360 214 87 psFillArc globalGC1 214 66 214 87 psDrawLine globalGC1 213 65 3 3 0 360 214 66 psFillArc globalGC1 214 45 214 66 psDrawLine globalGC1 213 44 3 3 0 360 214 45 psFillArc globalGC1 214 14 214 45 psDrawLine globalGC1 213 13 3 3 0 360 214 14 psFillArc globalGC1 98 243 3 3 0 360 99 244 psFillArc globalGC1 99 244 99 244 psDrawLine globalGC1 98 243 3 3 0 360 99 244 psFillArc globalGC1 99 213 99 244 psDrawLine globalGC1 98 212 3 3 0 360 99 213 psFillArc globalGC1 99 192 99 213 psDrawLine globalGC1 98 191 3 3 0 360 99 192 psFillArc globalGC1 99 171 99 192 psDrawLine globalGC1 98 170 3 3 0 360 99 171 psFillArc globalGC1 99 160 99 171 psDrawLine globalGC1 98 159 3 3 0 360 99 160 psFillArc globalGC1 99 150 99 160 psDrawLine globalGC1 98 149 3 3 0 360 99 150 psFillArc globalGC1 99 145 99 150 psDrawLine globalGC1 98 144 3 3 0 360 99 145 psFillArc globalGC1 100 139 99 145 psDrawLine globalGC1 99 138 3 3 0 360 100 139 psFillArc globalGC1 100 137 100 139 psDrawLine globalGC1 99 136 3 3 0 360 100 137 psFillArc globalGC1 101 134 100 137 psDrawLine globalGC1 100 133 3 3 0 360 101 134 psFillArc globalGC1 101 133 101 134 psDrawLine globalGC1 100 132 3 3 0 360 101 133 psFillArc globalGC1 102 132 101 133 psDrawLine globalGC1 101 131 3 3 0 360 102 132 psFillArc globalGC1 104 131 102 132 psDrawLine globalGC1 103 130 3 3 0 360 104 131 psFillArc globalGC1 106 130 104 131 psDrawLine globalGC1 105 129 3 3 0 360 106 130 psFillArc globalGC1 108 130 106 130 psDrawLine globalGC1 107 129 3 3 0 360 108 130 psFillArc globalGC1 113 129 108 130 psDrawLine globalGC1 112 128 3 3 0 360 113 129 psFillArc globalGC1 118 129 113 129 psDrawLine globalGC1 117 128 3 3 0 360 118 129 psFillArc globalGC1 123 129 118 129 psDrawLine globalGC1 122 128 3 3 0 360 123 129 psFillArc globalGC1 127 129 123 129 psDrawLine globalGC1 126 128 3 3 0 360 127 129 psFillArc globalGC1 132 129 127 129 psDrawLine globalGC1 131 128 3 3 0 360 132 129 psFillArc globalGC1 137 129 132 129 psDrawLine globalGC1 136 128 3 3 0 360 137 129 psFillArc globalGC1 142 128 137 129 psDrawLine globalGC1 141 127 3 3 0 360 142 128 psFillArc globalGC1 147 128 142 128 psDrawLine globalGC1 146 127 3 3 0 360 147 128 psFillArc globalGC1 149 128 147 128 psDrawLine globalGC1 148 127 3 3 0 360 149 128 psFillArc globalGC1 151 127 149 128 psDrawLine globalGC1 150 126 3 3 0 360 151 127 psFillArc globalGC1 153 126 151 127 psDrawLine globalGC1 152 125 3 3 0 360 153 126 psFillArc globalGC1 154 125 153 126 psDrawLine globalGC1 153 124 3 3 0 360 154 125 psFillArc globalGC1 154 124 154 125 psDrawLine globalGC1 153 123 3 3 0 360 154 124 psFillArc globalGC1 155 121 154 124 psDrawLine globalGC1 154 120 3 3 0 360 155 121 psFillArc globalGC1 155 119 155 121 psDrawLine globalGC1 154 118 3 3 0 360 155 119 psFillArc globalGC1 156 113 155 119 psDrawLine globalGC1 155 112 3 3 0 360 156 113 psFillArc globalGC1 156 108 156 113 psDrawLine globalGC1 155 107 3 3 0 360 156 108 psFillArc globalGC1 156 98 156 108 psDrawLine globalGC1 155 97 3 3 0 360 156 98 psFillArc globalGC1 156 87 156 98 psDrawLine globalGC1 155 86 3 3 0 360 156 87 psFillArc globalGC1 156 66 156 87 psDrawLine globalGC1 155 65 3 3 0 360 156 66 psFillArc globalGC1 156 45 156 66 psDrawLine globalGC1 155 44 3 3 0 360 156 45 psFillArc globalGC1 156 14 156 45 psDrawLine globalGC1 155 13 3 3 0 360 156 14 psFillArc globalGC1 40 243 3 3 0 360 41 244 psFillArc globalGC1 41 244 41 244 psDrawLine globalGC1 40 243 3 3 0 360 41 244 psFillArc globalGC1 41 213 41 244 psDrawLine globalGC1 40 212 3 3 0 360 41 213 psFillArc globalGC1 41 192 41 213 psDrawLine globalGC1 40 191 3 3 0 360 41 192 psFillArc globalGC1 41 171 41 192 psDrawLine globalGC1 40 170 3 3 0 360 41 171 psFillArc globalGC1 41 160 41 171 psDrawLine globalGC1 40 159 3 3 0 360 41 160 psFillArc globalGC1 42 150 41 160 psDrawLine globalGC1 41 149 3 3 0 360 42 150 psFillArc globalGC1 42 145 42 150 psDrawLine globalGC1 41 144 3 3 0 360 42 145 psFillArc globalGC1 42 139 42 145 psDrawLine globalGC1 41 138 3 3 0 360 42 139 psFillArc globalGC1 42 137 42 139 psDrawLine globalGC1 41 136 3 3 0 360 42 137 psFillArc globalGC1 43 134 42 137 psDrawLine globalGC1 42 133 3 3 0 360 43 134 psFillArc globalGC1 44 133 43 134 psDrawLine globalGC1 43 132 3 3 0 360 44 133 psFillArc globalGC1 45 132 44 133 psDrawLine globalGC1 44 131 3 3 0 360 45 132 psFillArc globalGC1 46 131 45 132 psDrawLine globalGC1 45 130 3 3 0 360 46 131 psFillArc globalGC1 48 130 46 131 psDrawLine globalGC1 47 129 3 3 0 360 48 130 psFillArc globalGC1 51 130 48 130 psDrawLine globalGC1 50 129 3 3 0 360 51 130 psFillArc globalGC1 56 129 51 130 psDrawLine globalGC1 55 128 3 3 0 360 56 129 psFillArc globalGC1 60 129 56 129 psDrawLine globalGC1 59 128 3 3 0 360 60 129 psFillArc globalGC1 65 129 60 129 psDrawLine globalGC1 64 128 3 3 0 360 65 129 psFillArc globalGC1 70 129 65 129 psDrawLine globalGC1 69 128 3 3 0 360 70 129 psFillArc globalGC1 75 129 70 129 psDrawLine globalGC1 74 128 3 3 0 360 75 129 psFillArc globalGC1 80 129 75 129 psDrawLine globalGC1 79 128 3 3 0 360 80 129 psFillArc globalGC1 84 128 80 129 psDrawLine globalGC1 83 127 3 3 0 360 84 128 psFillArc globalGC1 89 128 84 128 psDrawLine globalGC1 88 127 3 3 0 360 89 128 psFillArc globalGC1 92 128 89 128 psDrawLine globalGC1 91 127 3 3 0 360 92 128 psFillArc globalGC1 94 127 92 128 psDrawLine globalGC1 93 126 3 3 0 360 94 127 psFillArc globalGC1 95 126 94 127 psDrawLine globalGC1 94 125 3 3 0 360 95 126 psFillArc globalGC1 96 125 95 126 psDrawLine globalGC1 95 124 3 3 0 360 96 125 psFillArc globalGC1 97 124 96 125 psDrawLine globalGC1 96 123 3 3 0 360 97 124 psFillArc globalGC1 97 121 97 124 psDrawLine globalGC1 96 120 3 3 0 360 97 121 psFillArc globalGC1 98 119 97 121 psDrawLine globalGC1 97 118 3 3 0 360 98 119 psFillArc globalGC1 98 113 98 119 psDrawLine globalGC1 97 112 3 3 0 360 98 113 psFillArc globalGC1 98 108 98 113 psDrawLine globalGC1 97 107 3 3 0 360 98 108 psFillArc globalGC1 98 98 98 108 psDrawLine globalGC1 97 97 3 3 0 360 98 98 psFillArc globalGC1 98 87 98 98 psDrawLine globalGC1 97 86 3 3 0 360 98 87 psFillArc globalGC1 99 66 98 87 psDrawLine globalGC1 98 65 3 3 0 360 99 66 psFillArc globalGC1 99 45 99 66 psDrawLine globalGC1 98 44 3 3 0 360 99 45 psFillArc globalGC1 99 14 99 45 psDrawLine globalGC1 98 13 3 3 0 360 99 14 psFillArc globalGC1 11 128 3 3 0 360 12 129 psFillArc globalGC1 12 129 12 129 psDrawLine globalGC1 11 128 3 3 0 360 12 129 psFillArc globalGC1 17 129 12 129 psDrawLine globalGC1 16 128 3 3 0 360 17 129 psFillArc globalGC1 22 129 17 129 psDrawLine globalGC1 21 128 3 3 0 360 22 129 psFillArc globalGC1 27 128 22 129 psDrawLine globalGC1 26 127 3 3 0 360 27 128 psFillArc globalGC1 32 128 27 128 psDrawLine globalGC1 31 127 3 3 0 360 32 128 psFillArc globalGC1 34 128 32 128 psDrawLine globalGC1 33 127 3 3 0 360 34 128 psFillArc globalGC1 36 127 34 128 psDrawLine globalGC1 35 126 3 3 0 360 36 127 psFillArc globalGC1 38 126 36 127 psDrawLine globalGC1 37 125 3 3 0 360 38 126 psFillArc globalGC1 39 125 38 126 psDrawLine globalGC1 38 124 3 3 0 360 39 125 psFillArc globalGC1 39 124 39 125 psDrawLine globalGC1 38 123 3 3 0 360 39 124 psFillArc globalGC1 40 121 39 124 psDrawLine globalGC1 39 120 3 3 0 360 40 121 psFillArc globalGC1 40 119 40 121 psDrawLine globalGC1 39 118 3 3 0 360 40 119 psFillArc globalGC1 41 113 40 119 psDrawLine globalGC1 40 112 3 3 0 360 41 113 psFillArc globalGC1 41 108 41 113 psDrawLine globalGC1 40 107 3 3 0 360 41 108 psFillArc globalGC1 41 98 41 108 psDrawLine globalGC1 40 97 3 3 0 360 41 98 psFillArc globalGC1 41 87 41 98 psDrawLine globalGC1 40 86 3 3 0 360 41 87 psFillArc globalGC1 41 66 41 87 psDrawLine globalGC1 40 65 3 3 0 360 41 66 psFillArc globalGC1 41 45 41 66 psDrawLine globalGC1 40 44 3 3 0 360 41 45 psFillArc globalGC1 41 14 41 45 psDrawLine globalGC1 40 13 3 3 0 360 41 14 psFillArc grestore % restore graphics state cleartomark %% clearing operand stack end %% pops mainDict from dictionary stack showpage %-------------------------- end --------------------------%