home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / p / pep13b.zip / PEP.PRO < prev    next >
Text File  |  1992-10-26  |  7KB  |  101 lines

  1. /ss save def /d0 1000 dict def d0 begin 1 setlinecap 1 setlinejoin
  2. newpath /pm matrix def /pcov false def /ppov false def /mfon
  3. 0 def /ocol 0 def /fibs false def /so {/cpov ppov def /ccov pcov
  4. def translate cpov {2 copy pm identmatrix scale currentlinewidth
  5. dup 3 -1 roll idtransform add 2 div dup dup setlinewidth 7 -1
  6. roll add 6 1 roll 5 -1 roll add 4 1 roll} if scale scar exch
  7. get exec cpov not {ppen [] 0 setdash} if ccov {/tcol gcol def
  8. /ocol gcol def} {/tcol 0 def /gcol 0 def 0 setgray} ifelse reset}
  9. def /scar [{pop pop} {exch pop 0 translate 90 rotate} {translate
  10. 180 rotate} {pop 0 exch translate 270 rotate} {pop pop [0 1 1
  11. 0 0 0] concat} {[1 0 0 -1 0 0] concat 0 exch neg translate pop}
  12. {[0 -1 -1 0 0 0] concat neg exch neg exch translate} {pop [-1
  13. 0 0 1 0 0] concat neg 0 translate}] def /wind {newpath moveto
  14. dup 0 exch l2 exch 0 l2 neg 0 exch l2 clip newpath} def /dod
  15. {3 1 roll def def} def /fix {256 div} def /ov0 {ccov not {/pcov
  16. false def} if cpov not {/ppov false def} if} def /ov1 {/pcov
  17. true def cpov not {/ppov false def} if} def /ov2 {ccov not {/pcov
  18. false def} if /ppov true def} def /ov3 {/pcov true def /ppov
  19. true def} def /pen {cpov {pop} {setlinewidth} ifelse} def /ppen
  20. {cpov not {.18 .18 pm defaultmatrix dtransform idtransform abs
  21. exch abs 2 copy ge {exch} if pop setlinewidth} if} def /dashD
  22. 2 dict def /dash {dashD begin /off exch def /on exch def cpov
  23. not {on 0 eq {[] 0 setdash} {[on off] 0 setdash} ifelse} if end}
  24. def /gc0 {ccov {ocol} {0} ifelse gc} def /gc1 {1 gc} def /gc
  25. {dup /gcol exch def setgray} def /tc0 {/tcol ccov {ocol} {0}
  26. ifelse def} def /tc1 {/tcol 1 def} def /ts {/bsiz exch def /ysiz
  27. exch def /xsiz exch def} def /ta {/vall exch def /hall exch def}
  28. def /tj {/tjus exch def} def /tr {/trot exch def} def /saves
  29. {gsave gcol tcol ocol bpat dfon xsiz ysiz bsiz tjus trot mfon
  30. vall hall cpov ppov ccov pcov fibs 18 array astore} def /rests
  31. {aload pop /fibs exch def /pcov exch def /ccov exch def /ppov
  32. exch def /cpov exch def /hall exch def /vall exch def /mfon exch
  33. def /trot exch def /tjus exch def /bsiz exch def /ysiz exch def
  34. /xsiz exch def /dfon exch def /bpat exch def /ocol exch def /tcol
  35. exch def /gcol exch def grestore} def /reset {/trot 0 def /vall
  36. 0 def /hall 0 def /tjus 0 def /bpat 0 def /dfon 0 def /xsiz 0
  37. def /ysiz 0 def /bsiz 0 def} def /m1 {moveto} def /m2 {currentlinewidth
  38. 2 div dup 3 1 roll add 3 1 roll add exch moveto} def /l2 {rlineto}
  39. def /curD 20 dict def /qvh {curD begin /y4 exch def /x4 exch
  40. def 0 .556 y4 mul .444 x4 mul y4 x4 y4 rcurveto end} def /qhv
  41. {curD begin /y4 exch def /x4 exch def .556 x4 mul 0 x4 .444 y4
  42. mul x4 y4 rcurveto end} def /gen {curD begin /vert exch def /esl
  43. exch def /ssl exch def /y3 exch def /x3 exch def /rect y3 x3
  44. div def ssl 0 eq {} {vert {/sS 1 ssl ftan div rect mul def} {/sS
  45. ssl ftan rect mul def} ifelse} ifelse esl 0 eq {} {vert {/eS
  46. esl ftan rect mul def} {/eS 1 esl ftan div rect mul def} ifelse}
  47. ifelse vert {ssl 0 eq {/x0 0 def /y0 y3 eS x3 mul sub def} {esl
  48. 0 eq {/x0 y3 sS div def /y0 y3 def} {/x0 eS x3 mul y3 sub eS
  49. sS sub div def /y0 x0 sS mul def} ifelse} ifelse} {ssl 0 eq {/x0
  50. eS x3 mul y3 sub eS div def /y0 0 def} {esl 0 eq {/x0 x3 def
  51. /y0 sS x3 mul def} {/x0 eS x3 mul y3 sub eS sS sub div def /y0
  52. x0 sS mul def} ifelse} ifelse} ifelse /x1 x0 .556 mul def /y1
  53. y0 .556 mul def /x2 x0 5 mul x3 4 mul add 9 div def /y2 y0 5
  54. mul y3 4 mul add 9 div def x1 y1 x2 y2 x3 y3 rcurveto end} def
  55. /ftan {.1765 mul dup sin exch cos div} def /sol {fibs {newpath}
  56. {eofill} ifelse /fibs true def} def /pat {/cors exch def /dens
  57. exch def 1 gcol eq {sol} {0 cors ne {cors 45 {dup mul exch dup
  58. mul add 1 exch sub} setscreen} if dens setgray sol 0 setgray}
  59. ifelse} def /fontD 10 dict def /textD 10 dict def /FONTS [ /Times-Roman
  60. /Times-Italic /Times-Bold /Times-BoldItalic /Helvetica /Helvetica-Oblique
  61. /Helvetica-Bold /Helvetica-BoldOblique /Bookman-Light /Bookman-LightItalic
  62. /Bookman-Demi /Bookman-DemiItalic /Palatino-Roman /Palatino-Italic
  63. /Palatino-Bold /Palatino-BoldItalic /AvantGarde-Book /AvantGarde-BookOblique
  64. /AvantGarde-Demi /AvantGarde-DemiOblique /ZapfChancery-MediumItalic
  65. /Symbol ] def /gfon {fontD begin /rot exch def findfont /fon
  66. exch def matrix scale tart rot get matrix concatmatrix fon exch
  67. makefont end} def /tart [[1 0 0 -1 0 0] [0 1 1 0 0 0] [-1 0 0
  68. 1 0 0] [0 -1 -1 0 0 0] [0 1 -1 0 0 0] [1 0 0 1 0 0] [0 -1 1 0
  69. 0 0] [-1 0 0 -1 0 0]] def /font {/dfon exch def /mfon xsiz ysiz
  70. FONTS dfon get trot gfon def} def /text {tcol setgray textD begin
  71. /str exch def /plen exch def /box exch def /y4 exch def /x4 exch
  72. def mfon setfont /stln str stringwidth add abs def /xOff /esp
  73. stln plen box just dod /yOff /xOff xOff box tall dod xOff yOff
  74. rtex y4 add exch x4 add exch moveto esp 0 eq {str show} {/chan
  75. str length def chan 1 gt { esp chan 1 sub div 0 rtex str ashow}
  76. {str show} ifelse} ifelse end gcol setgray} def /mtexD 20 dict
  77. def /mtex {tcol setgray mtexD begin /stan exch def /parts stan
  78. array def /fonts stan array def /colt stan array def stan 1 sub
  79. -1 0 {/ind exch def colt exch ind exch put /fnum exch def fonts
  80. ind xsiz ysiz FONTS fnum get trot gfon put parts exch ind exch
  81. put} for /plen exch def /box exch def /y4 exch def /x4 exch def
  82. /chan 0 0 1 stan 1 sub {parts exch get length add} for def /stln
  83. 0 0 1 stan 1 sub {/ind exch def fonts ind get setfont parts ind
  84. get stringwidth add abs add} for def /xOff /esp stln plen box
  85. just dod /yOff /xOff xOff box tall dod xOff yOff rtex y4 add
  86. exch x4 add exch moveto esp 0 eq {shot} { chan 1 gt { esp chan
  87. 1 sub div 0 rtex ashot} {shot} ifelse} ifelse end gcol setgray}
  88. def /shot {0 1 parts length 1 sub {/ind exch def fonts ind get
  89. setfont asc parts ind get show} for} def /ashot {/y4 exch def
  90. /x4 exch def 0 1 parts length 1 sub {/ind exch def fonts ind
  91. get setfont asc x4 y4 parts ind get ashow} for} def /asc {colt
  92. ind get dup 1 ne ccov and {pop ocol} if setgray} def /justD 10
  93. dict def /just {justD begin /boxS exch def /pepL exch def /strL
  94. exch def jtab tjus get exec end} def /jtab [ {0 boxS strL sub
  95. 2 div} {0 0} {0 boxS strL sub} {boxS strL sub 0} {pepL strL sub
  96. boxS pepL sub 2 div} {pepL strL sub 0} {pepL strL sub boxS pepL
  97. sub} {boxS strL sub 0}] def /tall {allht hall get exec allvt
  98. vall get exec} def /allht [ {pop} {2 div sub} {sub}] def /allvt
  99. [ {bsiz} {bsiz ysiz 2 div sub} {bsiz ysiz sub} {0}] def /rtex
  100. {cart trot get exec} def /cart [{} {neg exch} {neg exch neg exch}
  101. {exch neg} {exch} {neg} {neg exch neg} {exch neg exch}] def