%!PS-Adobe-2.0 %% %%BeginProcSet "IWEM" %% %% Version 1.6 Copyright(c)1986-1992 Apple Computer, Inc. %% %% This Version 1.6A contains mods to make work when Prepended to %% ImageWriter Print-to-Disk Files for conversion to .PDF %% %% INSTRUCTIONS FOR USE: %% 1. At end of this IWEM file Add _WBJ_ to start emulator for this Job %% 2. THEN Paste ImageWriter print file after the _WBJ_. %% %% NOTE: doMouseText command is & - ASCII 38 / HEX $26 %% %% /Ver(ImageWriter Emulator Version 1.6)def/IWEmDict where{pop IWEmDict/Version known{IWEmDict begin Version end/Version exch def Ver Version le{Version print( already loaded.)print<0d>print flush stop}if}if}if newpath %% 40 40 moveto %% 40 750 lineto %% 580 750 lineto %% 580 40 lineto %% 40 40 lineto %% closepath %% .25 setlinewidth %% stroke(Downloading )print Ver print<0d>print flush %% /Courier findfont 12 scalefont setfont %% Begin ExitServer %% serverdict begin statusdict begin %% 0 checkpassword{dostartpage{160 400 moveto Ver show( installed.)show 160 380 moveto(Copyright(c)1986-1992 Apple Computer, Inc.)show showpage}if 0 exitserver}{100 400 moveto(Bad Password cannot load ImageWriter Emulator!!!)show showpage stop}ifelse /bdf{bind def}bind def /xdf{exch def}bdf /IWEmDict 150 dict def /_WBJ_{IWEmDict begin letter save makefonts 1 1 scale printfile restore end}bdf IWEmDict begin/Version(ImageWriter Emulator Version 1.6)def/inch{72 mul}bdf /PersonalLen{10.63 inch}bdf /NormalLen{10.75 inch}bdf /Personal?{statusdict begin product end(Personal)search{pop pop pop true}{pop false}ifelse}bdf /ImageLen{Personal?{PersonalLen}{NormalLen}ifelse}bdf /charsize{Personal?{11.5}{11.7}ifelse}bdf/USA 0 def/Italy 1 def/Denmark 2 def/England 3 def/Germany 4 def/Sweden 5 def/France 6 def/Spain 7 def /defaultcountry USA def /country defaultcountry def/BuildCharDict 20 dict def /MouseFont 20 dict def MouseFont begin/FontType 3 def/FontMatrix[1 0 0 1 0 0]def/FontBBox[0 0 1 1]def/Encoding 256 array def 0 1 255{Encoding exch/.notdef put}for /closedApple/openApple/arrow/hourGlass/check1/check2/invcrArrow /menubar/leftArrow/elipsis/downArrow/upArrow/overScore/crArrow /solidRect/lScrollArrow/rScrollArrow/dScrollArrow/uScrollArrow /midScore/lLeftCorner/rightArrow/grayRect1/grayRect2/lFolder /rFolder/rBar/diamond/horLines/cross/button/lBar Encoding 64 32 getinterval astore pop /CharacterDefs 33 dict def CharacterDefs/.notdef{}put CharacterDefs/closedApple{8 8 true[8 0 0 -8 0 8]{<08 10 6c fe fc fc 7e 6c>}imagemask}put CharacterDefs/openApple{8 8 true[8 0 0 -8 0 8]{<08 10 6c 82 84 84 52 6c>}imagemask}put CharacterDefs/arrow{8 8 true[8 0 0 -8 0 8]{<00 00 40 60 70 78 6c 42>}imagemask}put CharacterDefs/hourGlass{8 8 true[8 0 0 -8 0 8]{}imagemask}put CharacterDefs/check1{8 8 true[8 0 0 -8 0 8]{<00 02 04 88 50 20 20 00>}imagemask}put CharacterDefs/check2{8 8 true[8 0 0 -8 0 8]{<00 02 04 88 50 20 20 00>}imagemask}put CharacterDefs/invcrArrow{8 8 true[8 0 0 -8 0 8]{<02 02 02 22 62 fe 60 20>}imagemask}put CharacterDefs/menubar{8 8 true[8 0 0 -8 0 8]{}imagemask}put CharacterDefs/leftArrow{8 8 true[8 0 0 -8 0 8]{<10 20 40 ff 40 20 10 00>}imagemask}put CharacterDefs/elipsis{8 8 true[8 0 0 -8 0 8]{<00 00 00 00 00 00 00 54>}imagemask}put CharacterDefs/downArrow{8 8 true[8 0 0 -8 0 8]{<10 10 10 10 92 54 38 10>}imagemask}put CharacterDefs/upArrow{8 8 true[8 0 0 -8 0 8]{<10 38 54 92 10 10 10 10>}imagemask}put CharacterDefs/overScore{8 8 true[8 0 0 -8 0 8]{}imagemask}put CharacterDefs/crArrow{8 8 true[8 0 0 -8 0 8]{<02 02 02 22 62 fe 60 20>}imagemask}put CharacterDefs/solidRect{8 8 true[8 0 0 -8 0 8]{}imagemask}put CharacterDefs/lScrollArrow{8 8 true[8 0 0 -8 0 8]{}imagemask}put CharacterDefs/rScrollArrow{8 8 true[8 0 0 -8 0 8]{<93 18 1c fe 1c 18 10 ef>}imagemask}put CharacterDefs/dScrollArrow{8 8 true[8 0 0 -8 0 8]{<81 89 08 7f 3e 1c 89 81>}imagemask}put CharacterDefs/uScrollArrow{8 8 true[8 0 0 -8 0 8]{<81 89 1c 3e 7f 08 89 81>}imagemask}put CharacterDefs/midScore{8 8 true[8 0 0 -8 0 8]{<00 00 00 ff 00 00 00 00>}imagemask}put CharacterDefs/lLeftCorner{8 8 true[8 0 0 -8 0 8]{<80 80 80 80 80 80 80 ff>}imagemask}put CharacterDefs/rightArrow{8 8 true[8 0 0 -8 0 8]{<10 08 04 fe 04 08 10 00>}imagemask}put CharacterDefs/grayRect1{8 8 true[8 0 0 -8 0 8]{<55 aa 55 aa 55 aa 55 aa>}imagemask}put CharacterDefs/grayRect2{8 8 true[8 0 0 -8 0 8]{<55 aa 55 aa 55 aa 55 aa>}imagemask}put CharacterDefs/lFolder{8 8 true[8 0 0 -8 0 8]{<00 1f 21 20 20 20 3f 00>}imagemask}put CharacterDefs/rFolder{8 8 true[8 0 0 -8 0 8]{<00 00 f8 04 04 04 fc 00>}imagemask}put CharacterDefs/rBar{8 8 true[8 0 0 -8 0 8]{<01 01 01 01 01 01 01 01>}imagemask}put CharacterDefs/diamond{8 8 true[8 0 0 -8 0 8]{<10 38 7c fe 7c 38 10 00>}imagemask}put CharacterDefs/horLines{8 8 true[8 0 0 -8 0 8]{}imagemask}put CharacterDefs/cross{8 8 true[8 0 0 -8 0 8]{<28 28 ee 00 ee 28 28 00>}imagemask}put CharacterDefs/button{8 8 true[8 0 0 -8 0 8]{}imagemask}put CharacterDefs/lBar{8 8 true[8 0 0 -8 0 8]{<80 80 80 80 80 80 80 80>}imagemask}put /BuildChar{BuildCharDict begin/char xdf/fontdict xdf/charname fontdict/Encoding get char get def/charproc fontdict/CharacterDefs get charname get def 1 0 0 0 1 1 setcachedevice gsave charproc grestore end}bdf end /Inverse[0 128 64 192 32 160 96 224 16 144 80 208 48 176 112 240 8 136 72 200 40 168 104 232 24 152 88 216 56 184 120 248 4 132 68 196 36 164 100 228 20 148 84 212 52 180 116 244 12 140 76 204 44 172 108 236 28 156 92 220 60 188 124 252 2 130 66 194 34 162 98 226 18 146 82 210 50 178 114 242 10 138 74 202 42 170 106 234 26 154 90 218 58 186 122 250 6 134 70 198 38 166 102 230 22 150 86 214 54 182 118 246 14 142 78 206 46 174 110 238 30 158 94 222 62 190 126 254 1 129 65 193 33 161 97 225 17 145 81 209 49 177 113 241 9 137 73 201 41 169 105 233 25 153 89 217 57 185 121 249 5 133 69 197 37 165 101 229 21 149 85 213 53 181 117 245 13 141 77 205 45 173 109 237 29 157 93 221 61 189 125 253 3 131 67 195 35 163 99 227 19 147 83 211 51 179 115 243 11 139 75 203 43 171 107 235 27 155 91 219 59 187 123 251 7 135 71 199 39 167 103 231 23 151 87 215 55 183 119 247 15 143 79 207 47 175 111 239 31 159 95 223 63 191 127 255]def /mirror{Inverse exch get}bdf /BuildCharDict 20 dict def /GrafFont 20 dict def GrafFont begin/FontType 3 def/FontMatrix[1 0 0 1 0 0]def/FontBBox[0 0 1 8]def/Encoding[/char0/char1/char2/char3/char4/char5/char6/char7 /char8/char9/char10/char11/char12/char13/char14/char15 /char16/char17/char18/char19/char20/char21/char22/char23 /char24/char25/char26/char27/char28/char29/char30/char31 /char32/char33/char34/char35/char36/char37/char38/char39 /char40/char41/char42/char43/char44/char45/char46/char47 /char48/char49/char50/char51/char52/char53/char54/char55 /char56/char57/char58/char59/char60/char61/char62/char63 /char64/char65/char66/char67/char68/char69/char70/char71 /char72/char73/char74/char75/char76/char77/char78/char79 /char80/char81/char82/char83/char84/char85/char86/char87 /char88/char89/char90/char91/char92/char93/char94/char95 /char96/char97/char98/char99/char100/char101/char102/char103 /char104/char105/char106/char107/char108/char109/char110/char111 /char112/char113/char114/char115/char116/char117/char118/char119 /char120/char121/char122/char123/char124/char125/char126/char127 /char128/char129/char130/char131/char132/char133/char134/char135 /char136/char137/char138/char139/char140/char141/char142/char143 /char144/char145/char146/char147/char148/char149/char150/char151 /char152/char153/char154/char155/char156/char157/char158/char159 /char160/char161/char162/char163/char164/char165/char166/char167 /char168/char169/char170/char171/char172/char173/char174/char175 /char176/char177/char178/char179/char180/char181/char182/char183 /char184/char185/char186/char187/char188/char189/char190/char191 /char192/char193/char194/char195/char196/char197/char198/char199 /char200/char201/char202/char203/char204/char205/char206/char207 /char208/char209/char210/char211/char212/char213/char214/char215 /char216/char217/char218/char219/char220/char221/char222/char223 /char224/char225/char226/char227/char228/char229/char230/char231 /char232/char233/char234/char235/char236/char237/char238/char239 /char240/char241/char242/char243/char244/char245/char246/char247 /char248/char249/char250/char251/char252/char253/char254/char255]def /String1 1 string def /CharProc{0 1 translate 0 0 moveto -90 rotate String1 0 3 -1 roll mirror put 8 1 true[8 0 0 -1 0 1]{String1}imagemask}bdf /BuildChar{BuildCharDict begin .2 1 scale .75 0 0 0 1 1 setcachedevice gsave exch begin CharProc end grestore end}bdf end/strokewidth 40 def /halfsw strokewidth 2 div round cvi def /overshoot 15 def /capheight 563 halfsw sub def /capover capheight overshoot add def /baseline halfsw def /bover baseline overshoot sub def /xheight 417 halfsw sub def /xover xheight overshoot add def /ascend 604 halfsw sub def /aover ascend overshoot add def /descend -187 halfsw add def /ExpandFont{exch dup length dict begin{1 index/FID eq{pop pop}{def}ifelse}forall currentdict/UniqueID known{/UniqueID UniqueID 16#800000 xor def}if CharStrings length add dict begin CharStrings{def}forall currentdict end/CharStrings xdf currentdict end}bdf /Max{2 copy lt{exch}if pop}bdf /Min{2 copy gt{exch}if pop}bdf /courierdefs{}bdf /UpdateBBox{5 -1 roll begin 3 -1 2{/FontBBox load exch get Max 4 1 roll}for 1 -1 0{/FontBBox load exch get Min 4 1 roll}for 4 array astore/FontBBox xdf end}bdf /Courier findfont 2 ExpandFont begin CharStrings begin /AE{pop 600 0 0 -251 600 700 setcachedevice /strokewidth 40 store /halfsw strokewidth 2 div round cvi store /overshoot 15 store /capheight 563 halfsw sub store /capover capheight overshoot add store /baseline halfsw store /bover baseline overshoot sub store /xheight 417 halfsw sub store /xover xheight overshoot add store /ascend 604 halfsw sub store /aover ascend overshoot add store /descend -187 halfsw add store newpath 30 baseline moveto 150 baseline lineto 90 baseline moveto 235 capheight lineto 550 403 moveto 550 capheight lineto 140 capheight lineto 320 capheight moveto 320 baseline lineto 240 baseline moveto 570 baseline lineto 570 140 lineto 165 208 moveto 320 208 lineto 320 292 moveto 440 292 lineto 440 347 moveto 440 237 lineto 1 setlinecap strokewidth 2 div setlinewidth stroke}bdf /ae{pop 600 0 0 -251 600 700 setcachedevice /strokewidth 40 store /halfsw strokewidth 2 div round cvi store /overshoot 15 store /capheight 563 halfsw sub store /capover capheight overshoot add store /baseline halfsw store /bover baseline overshoot sub store /xheight 417 halfsw sub store /xover xheight overshoot add store /ascend 604 halfsw sub store /aover ascend overshoot add store /descend -187 halfsw add store newpath 300 217 moveto 270 229 230 238 185 238 curveto 130 238 30 192 30 160 curveto 30 bover 38 add 100 bover 165 bover curveto 210 bover 255 bover 38 add 300 104 curveto 300 baseline moveto 300 308 lineto 300 364 250 xover 200 xover curveto 165 xover 130 xheight 90 379 curveto 560 67 moveto 516 bover 28 add 473 bover 430 bover curveto 360 bover 300 102 300 219 curveto 300 xover 100 sub 360 xover 430 xover curveto 500 xover 560 xover 100 sub 560 219 curveto 300 219 lineto 1 setlinecap strokewidth 2 div setlinewidth stroke}bdf end currentdict 0 -251 600 700 UpdateBBox/Encoding Encoding 256 array copy def Encoding 140/AE put Encoding 143/ae put currentdict end /Courier-E exch definefont pop /Courier-Bold findfont 2 ExpandFont begin CharStrings begin /AE{pop 600 0 0 -251 600 700 setcachedevice /strokewidth 100 store /halfsw strokewidth 2 div round cvi store /overshoot 15 store /capheight 583 halfsw sub store /capover capheight overshoot add store /baseline halfsw store /bover baseline overshoot sub store /xheight 437 halfsw sub store /xover xheight overshoot add store /ascend 624 halfsw sub store /aover ascend overshoot add store /descend -207 halfsw add store newpath 30 baseline moveto 150 baseline lineto 90 baseline moveto 235 capheight lineto 550 403 moveto 550 capheight lineto 140 capheight lineto 320 capheight moveto 320 baseline lineto 240 baseline moveto 570 baseline lineto 570 140 lineto 165 208 moveto 320 208 lineto 320 292 moveto 440 292 lineto 440 347 moveto 440 237 lineto 1 setlinecap 75 setlinewidth stroke}bdf /ae{pop 600 0 0 -251 600 700 setcachedevice /strokewidth 100 store /halfsw strokewidth 2 div round cvi store /overshoot 15 store /capheight 583 halfsw sub store /capover capheight overshoot add store /baseline halfsw store /bover baseline overshoot sub store /xheight 437 halfsw sub store /xover xheight overshoot add store /ascend 624 halfsw sub store /aover ascend overshoot add store /descend -207 halfsw add store newpath 300 217 moveto 270 229 230 238 185 238 curveto 130 238 30 192 30 160 curveto 30 bover 38 add 100 bover 165 bover curveto 210 bover 255 bover 38 add 300 104 curveto 300 baseline moveto 300 308 lineto 300 364 250 xover 200 xover curveto 165 xover 130 xheight 90 379 curveto 560 67 moveto 516 bover 28 add 473 bover 430 bover curveto 360 bover 300 102 300 219 curveto 300 xover 100 sub 360 xover 430 xover curveto 500 xover 560 xover 100 sub 560 219 curveto 300 219 lineto 1 setlinecap 75 setlinewidth stroke}bdf end currentdict 0 -251 600 700 UpdateBBox/Encoding Encoding 256 array copy def Encoding 140/AE put Encoding 143/ae put currentdict end /Courier-Bold-E exch definefont pop/reencsmalldict 5 dict def /ReEncodeSmall{reencsmalldict begin/newcodesandnames xdf/newfontname xdf/basefontname xdf/basefontdict basefontname findfont def/newfont basefontdict maxlength dict def basefontdict{exch dup/FID ne{dup/Encoding eq{exch dup length array copy newfont 3 1 roll put}{exch newfont 3 1 roll put}ifelse}{pop pop}ifelse}forall newfont/FontName newfontname put newcodesandnames aload pop newcodesandnames length 2 idiv{newfont/Encoding get 3 1 roll put}repeat newfontname newfont definefont pop end}bdf /CourierVectors[129/sterling 130/section 132/ring 133/ccedilla 134/eacute 135/ugrave 136/agrave 137/ograve 138/egrave 139/igrave 141/Oslash 142/Aring 144/oslash 145/aring 146/Adieresis 147/Odieresis 148/Udieresis 149/adieresis 150/odieresis 151/udieresis 152/germandbls 153/agrave 154/ugrave 155/dieresis 156/exclamdown 157/Ntilde 158/questiondown 159/ntilde]def /TimesVectors[129/sterling 130/section 132/ring 133/ccedilla 134/eacute 135/ugrave 136/agrave 137/ograve 138/egrave 139/igrave 140/AE 141/Oslash 142/Aring 143/ae 144/oslash 145/aring 146/Adieresis 147/Odieresis 148/Udieresis 149/adieresis 150/odieresis 151/udieresis 152/germandbls 153/agrave 154/ugrave 155/dieresis 156/exclamdown 157/Ntilde 158/questiondown 159/ntilde]def /makefonts{/Courier-Bold-E/My-Courier-Bold CourierVectors ReEncodeSmall/Courier-E/My-Courier CourierVectors ReEncodeSmall/Times-Roman/My-Times-Roman TimesVectors ReEncodeSmall/Times-Bold/My-Times-Bold TimesVectors ReEncodeSmall/MouseText MouseFont definefont pop/theGrafFont GrafFont definefont pop}bdf /BoldFont{/My-Courier-Bold findfont}bdf /RomanFont{/My-Courier findfont}bdf /PropRoman{/My-Times-Roman findfont}bdf /PropBold{/My-Times-Bold findfont}bdf/xst{exch store}bdf /oursave{/ourstate save def/CRonly? xst/autoLF? xst/fonttype xst/subflag xst/newcountry? xst/charct xst/debug? xst/hidig xst/lowdig xst/bitmask xst/slash0? xst/LM xst/dotspace xst/CR+LF? xst/open? xst/double? xst/prop? xst/graf? xst/lf? xst tabs astore pop/TopOfPage xst/LnHt xst/dpi xst/bold? xst/plain? xst/underline? xst}bdf /ourrestore{underline? plain? bold? dpi LnHt TopOfPage tabs aload pop lf? graf? prop? double? open? CR+LF? dotspace LM slash0? bitmask lowdig hidig debug? charct newcountry? subflag fonttype autoLF? CRonly? ourstate restore}bdf /printfile{initjob CmdDict begin initpage{currentfile read{/NewPage? false store graf? not debug? not and{bitmask and}if printchar}{NewPage? not CleanPage? not and{showpage ourstate restore}if exit}ifelse}loop popCmdStack end}bdf /tabs 33 array def/tabindex 0 def/current_tab 0 def /reset_tabs{0 1 32{tabs exch 999 put}for/tabindex 0 store/current_tab 0 store}bdf /InitVariables{/underline? false def/plain? true def/bold? false def/dpi 96 def/LnHt charsize store/TopOfPage{ImageLen}store/linect 8 def reset_tabs/lf? true def/graf? false def/prop? false def/double? false def/open? false def/CR+LF? true def/dotspace 0 def/LM 18 store/slash0? false def/bitmask 127 def/LastString( )def/hexstring(0123456789ABCDEF)def/lowdig 0 def/hidig 0 def/debug? false def/str( )def/charct 1 def/NewPage? false def/CleanPage? false def/newcountry? false def/subflag false def/fonttype 0 def/autoLF? true def/CRonly? false def}bdf %% %% NOTE: CR+LF and autoLF? were false in stock version %% /ResetPrinter{/underline? false store/plain? true store/bold? false store/dpi 96 store/LnHt charsize store/TopOfPage{ImageLen}store reset_tabs/lf? true store/graf? false store/prop? false store/double? false store/open? false store/CR+LF? true store/dotspace 0 store/LM 18 store/slash0? false store/bitmask 127 store/lowdig 0 store/hidig 0 store/debug? false store/charct 1 store/NewPage? false store/CleanPage? false store/newcountry? false store/subflag false store/fonttype 0 store/autoLF? true store/CRonly? false store}bdf %% %% NOTE: CR+LF and autoLF? were false in stock version %% %% NOTE: This was defined to strip bits /strip{bitmask and}bdf %% /getchar{currentfile read pop strip}bdf /initjob{InitVariables/CmdDictBase countdictstack 1 add def}bdf /initpage{/ourstate save def doFont LM TopOfPage moveto}bdf /printchar{debug?{dup hexout}{dup cmd? graf? not and{doCmd}{/CleanPage? false store emit}ifelse}ifelse}bdf /hexout{dup 15 and hexstring exch get/lowdig exch store 240 and 16 idiv hexstring exch get/hidig exch store str 0 hidig put str show str 0 lowdig put str show( )show/charct charct 1 add store charct 25 eq{/charct 1 store CR CR+LF? not{LF}if}if}bdf /cmd?{currentdict exch known}bdf /doCmd{load exec}bdf /swapUSA{mark 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 129 -1 roll 127 exch sub index 129 1 roll cleartomark}bdf /swapItaly{mark 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 129 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 130 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 132 133 134 94 95 135 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 136 137 138 139 127 129 -1 roll 127 exch sub index 129 1 roll cleartomark}bdf /swapDenmark{mark 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 140 141 142 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 143 144 145 126 127 129 -1 roll 127 exch sub index 129 1 roll cleartomark}bdf /swapEngland{mark 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 129 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 129 -1 roll 127 exch sub index 129 1 roll cleartomark}bdf /swapGermany{mark 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 130 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 146 147 148 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 149 150 151 152 127 129 -1 roll 127 exch sub index 129 1 roll cleartomark}bdf /swapSweden{mark 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 146 147 142 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 149 150 145 126 127 129 -1 roll 127 exch sub index 129 1 roll cleartomark}bdf /swapFrance{mark 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 129 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 153 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 132 133 130 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 134 154 138 155 127 129 -1 roll 127 exch sub index 129 1 roll cleartomark}bdf /swapSpain{mark 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 129 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 130 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 156 157 158 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 132 159 133 126 127 129 -1 roll 127 exch sub index 129 1 roll cleartomark}bdf /swapchar{mark/swapSpain/swapFrance/swapSweden/swapGermany/swapEngland/swapDenmark/swapItaly/swapUSA country index counttomark 1 add 1 roll cleartomark cvx exec}bdf /RMtest{dup str xdf str stringwidth pop currentpoint pop add RM gt{CR}if}bdf /emit{graf? not{swapchar}if( )dup 0 4 -1 roll put dup RMtest show prop?{currentpoint exch dotspace add exch moveto}if underline?{dup doUnderline}if dup(0)eq{prop? not{slash0?{dup doslsh0}if}if}if/LastString exch store}bdf /doslsh0{stringwidth pop currentpoint 3 1 roll exch sub exch moveto(/)show}bdf /printable?{dup 0 get 32 ge}bdf /doUnderline{printable?{stringwidth pop dup currentpoint 3 sub 3 1 roll exch sub exch gsave 0 setlinewidth newpath moveto 0 rlineto stroke grestore}{pop}ifelse}bdf /CmdError{popCmdStack emit}bdf /popCmdStack{countdictstack CmdDictBase sub{end}repeat}bdf /NUL{}bdf /CR{/current_tab 0 store LM currentpoint exch pop moveto CR+LF?{LF}if}bdf /LF{CRonly? not{linect MaxLineCt LnHt sub ge{FF}{autoLF?{/current_tab 0 store LM currentpoint exch pop moveto}if/linect linect LnHt lf?{add}{sub}ifelse store currentpoint LnHt lf?{sub}{add}ifelse moveto}ifelse}if}bdf /FF{CRonly? not{showpage ourrestore oursave doFont LM TopOfPage moveto/linect 8 store/current_tab 0 store/NewPage? true store/CleanPage? true store}if}bdf /BS{LastString stringwidth pop currentpoint 3 1 roll exch sub exch moveto}bdf/LM 18 def/RM 594 def/LnHt charsize def/TopOfPage{ImageLen}def/MaxLineCt TopOfPage def /HT{HTDict begin tabs current_tab get dup 999 lt{1 sub(n)stringwidth pop mul LM add currentpoint exch pop moveto/current_tab current_tab 1 add store}{pop}ifelse end}bdf/CmdDict 30 dict def CmdDict begin 0{graf?{0 emit}{NUL}ifelse}bdf 8{graf?{8 emit}{BS}ifelse}bdf 9{graf?{9 emit}{HT}ifelse}bdf 10{graf?{10 emit}{LF}ifelse}bdf 12{graf?{12 emit}{FF}ifelse}bdf 13{graf?{13 emit}{CR}ifelse}bdf 27{graf?{27 emit}{ESC}ifelse}bdf 14{graf?{14 emit}{/double? true store changeFontWidth}ifelse}bdf 15{graf?{15 emit}{/double? false store changeFontWidth}ifelse}bdf %% %% Duplicate definitions added here for testing %% /doMouseText{/fonttype 1 store dpi prop?{160 eq{12}{10}ifelse}{8 div 72 exch div}ifelse/MouseText findfont exch double?{2 mul}if 0 0 8 0 0 matrix astore makefont setfont}bdf /gf{/fonttype 2 store dpi 8 div 72 exch div .828125 mul/theGrafFont findfont exch double?{2 mul}if 0 0 8 0 0 matrix astore makefont setfont}bdf %% %% Duplicate definitions added here for testing %% /changeFontWidth{fonttype 0 eq{doFont}{fonttype 1 eq{doMouseText}{gf}ifelse}ifelse}bdf /printfile /Elite{/prop? true store/dpi 160 store doFont}bdf /Pica{/prop? true store/dpi 144 store doFont}bdf /doFont{/fonttype 0 store dpi prop?{160 eq{10}{12}ifelse bold?{PropBold}{PropRoman}ifelse}{8 div 72 exch div 1.65 mul bold?{BoldFont}{RomanFont}ifelse}ifelse exch double?{2 mul}if 0 0 charsize 0 0 matrix astore makefont setfont}bdf /string4 4 string def /get4{string4 dup 0 getchar put dup 1 getchar put dup 2 getchar put dup 3 getchar put}bdf /inverse{255 exch sub}bdf /string3 3 string def /get3{string3 dup 0 getchar put dup 1 getchar put dup 2 getchar put}bdf /HTDict 20 dict def HTDict begin /add_a_tab{tabs tabindex 3 -1 roll put/tabindex tabindex 1 add store}bdf /get_tabs{{get3 cvi add_a_tab getchar 46 eq{exit}if}loop}bdf /swap?{2 copy gt{exch true}{false}ifelse}bdf /if_sort?{2 copy 2 copy 1 add get 3 1 roll get exch swap?{4 1 roll 3 1 roll 2 copy 5 -1 roll put 1 add 3 -1 roll put true}{pop pop pop pop false}ifelse}bdf /sort_once{false 0 1 31{tabs exch if_sort?{pop true exit}if}for}bdf /sort_tabs{sort_once{sort_tabs}if/current_tab 0 store{tabs current_tab get 999 eq{exit}{/current_tab current_tab 1 add store}ifelse}loop}bdf /set_up_tabs{reset_tabs get_tabs sort_tabs/current_tab 0 store}bdf /remove_a_tab{0{dup tabs exch get 2 index eq{tabs exch 999 put exit}{1 add}ifelse}loop}bdf /remove_tabs{{get3 cvi remove_a_tab getchar 46 eq{exit}if}loop sort_tabs/current_tab 0 store}bdf end /EscDict 100 dict def /ESC{EscDict begin}bdf EscDict begin /subscript{currentpoint LnHt 6 div sub moveto/subflag true store}bdf /superscript{currentpoint LnHt 6 div add moveto/subflag false store}bdf /de-sub{currentpoint LnHt 6 div subflag{add}{sub}ifelse moveto}bdf /emit{CmdError}bdf /hDot{get4 cvi dpi div 72 mul LM add currentpoint exch pop moveto}bdf /ignore{{currentfile read{pop}if}repeat popCmdStack}bdf /aStr 1 string def /replicate{get3 cvi getchar dup 32 ge{aStr 0 3 -1 roll put{aStr show}repeat}{dup cmd?{{doCmd}repeat}{pop pop}ifelse}ifelse}bdf /doMouseText{/fonttype 1 store dpi prop?{160 eq{12}{10}ifelse}{8 div 72 exch div}ifelse/MouseText findfont exch double?{2 mul}if 0 0 8 0 0 matrix astore makefont setfont}bdf /gf{/fonttype 2 store dpi 8 div 72 exch div .828125 mul/theGrafFont findfont exch double?{2 mul}if 0 0 8 0 0 matrix astore makefont setfont}bdf /gprint{/graf? true store gf{currentfile read pop printchar 1 sub dup 0 eq{pop exit}if}loop/graf? false store doFont}bdf /g4{get4 cvi gprint}bdf /g3*8{get3 cvi 8 mul gprint}bdf /repeatGraphic{/graf? true store get4 cvi gsave gf aStr 0 currentfile read pop put{aStr show}repeat grestore/graf? false store doFont}bdf /dps{pop}bdf /string2 2 string def /get2{string2 dup 0 getchar put dup 1 getchar put}bdf /aChar 1 string def /FixCR+LF{aChar dup 0 getchar put cvi 1 eq{/CR+LF? true store}{/CR+LF? false store}ifelse}bdf /SetMargin{get3 cvi dpi prop?{160 eq{80}{72}ifelse}if 8 div 72 exch div mul 18 add/LM exch store}bdf /ChangeSwitch{currentfile read pop dup 128 and 128 eq{open?{/CR+LF? false store}{/CR+LF? true store}ifelse}if dup 64 and 64 eq{open?{/CRonly? true store}{/CRonly? false store}ifelse}if dup 32 and 32 eq{open?{/bitmask 255 store}{/bitmask 127 store}ifelse}if dup 4 and 4 eq{open?{/country country 3 and store}{/country country 4 or store}ifelse/newcountry? true store}if dup 2 and 2 eq{open?{/country country 5 and store}{/country country 2 or store}ifelse/newcountry? true store}if 1 and 1 eq{open?{/country country 6 and store}{/country country 1 or store}ifelse/newcountry? true store}if currentfile read pop 1 and 1 eq{open?{/slash0? false store}{/slash0? true store}ifelse}if newcountry?{doFont/newcountry? false store}if}bdf /changeLnHt{get2 cvi 2 div/LnHt exch store}bdf /makedotspace{aChar dup 0 getchar put cvi dpi 72 exch div mul/dotspace exch store}bdf %% doMouseText is & - ASCII 38 / HEX $26 /movedot{dpi 72 exch div mul 0 rmoveto}bdf 33{/bold? true store doFont popCmdStack}bdf 34{/bold? false store doFont popCmdStack}bdf 36{doFont popCmdStack}bdf 38{doMouseText popCmdStack}bdf 39{0 ignore}bdf 40{HTDict begin set_up_tabs end popCmdStack}bdf 41{HTDict begin remove_tabs end popCmdStack}bdf 42{0 ignore}bdf 43{0 ignore}bdf 45{0 ignore}bdf 48{HTDict begin reset_tabs end popCmdStack}bdf 49{1 movedot popCmdStack}bdf 50{2 movedot popCmdStack}bdf 51{3 movedot popCmdStack}bdf 52{4 movedot popCmdStack}bdf 53{5 movedot popCmdStack}bdf 54{6 movedot popCmdStack}bdf 60{0 ignore}bdf 62{0 ignore}bdf 63{0 ignore}bdf 65{/LnHt charsize store popCmdStack}bdf 66{/LnHt 9 store popCmdStack}bdf 68{/open? false store ChangeSwitch popCmdStack}bdf 69{/dpi 96 store/prop? false store doFont popCmdStack}bdf 70{hDot popCmdStack}bdf 71{g4 popCmdStack}bdf 72{4 ignore}bdf 73{0 ignore}bdf 75{1 ignore}bdf 76{SetMargin popCmdStack}bdf 77{0 ignore}bdf 78{/dpi 80 store/prop? false store doFont popCmdStack}bdf 79{0 ignore}bdf 80{Elite popCmdStack}bdf 81{/dpi 136 store/prop? false store doFont popCmdStack}bdf 82{replicate popCmdStack}bdf 83{g4 popCmdStack}bdf 84{changeLnHt popCmdStack}bdf 86{repeatGraphic popCmdStack}bdf 87{0 ignore}bdf 88{/underline? true store popCmdStack}bdf 89{/underline? false store popCmdStack}bdf 90{/open? true store ChangeSwitch popCmdStack}bdf 97{1 ignore}bdf 99{ResetPrinter popCmdStack}bdf 101{/dpi 107.2 store/prop? false store doFont popCmdStack}bdf 102{/lf? true store popCmdStack}bdf 103{g3*8 popCmdStack}bdf 108{/autoLF? getchar 48 sub 0 eq store popCmdStack}bdf 109{0 ignore}bdf 110{/dpi 72 store/prop? false store doFont popCmdStack}bdf 111{0 ignore}bdf 112{Pica popCmdStack}bdf 113{/dpi 120 store/prop? false store doFont popCmdStack}bdf 114{/lf? false store popCmdStack}bdf 115{makedotspace popCmdStack}bdf 117{HTDict begin get3 add_a_tab sort_tabs popCmdStack}bdf 118{0 ignore}bdf 119{0 ignore}bdf 120{superscript popCmdStack}bdf 121{subscript popCmdStack}bdf 122{de-sub popCmdStack}bdf end end end %%End ExitServer %%EndProcSet %% %% This is the END of the IWEM file %% %% Add _WBJ_ to start emulator for this Job %% %% THEN Paste ImageWriter print file after the _WBJ_ %% _WBJ_ <NAfAfBf EF0096!DISPLAYING LOCKED MACRO SETS IN THE UM/ULTRA COMPILERS" EF0096!======================================================" EF0096Here are the locations in the TO.**Compiler code to check for locked EF0096sets, and what to do to bypass the checking code. EF0096But first, here is some random MouseText for ImageWriter Printers: EF0096&ÄÆÁÓÄÆÊÁËÓÌÄÊÆÄÓÆÅÉ×ÒÕÐÏ×ÑÅÒ33ÄÆÍ ÖÖÖÖÁÓÄÆÊËÁÓÄÆÊ;ÁÓ EF0096Now, let's get back to the subject. EF0096!AW3.0/Ultra 3.1" EF0096!================" EF0096NOTE: Single Lock Byte at $EC00, not $EF10/$EF6F. EF0096If high bit of charcter is SET ($80-FF), macro is LOCKED. Note that this EF0096is opposite the behavior for the Ultra 4+ compiler. EF0096Change $47C2(memory)/$2DC(disk) from $10/BPL to $80/BRA.. EF0096This will force a branch around the lockout routine and will display the EF0096locked macro set. EF0096NOTE: Some (UM 2?) Macro sets appear to use Single Lock Byte at $EB00, EF0096not $EC00. So, MAY also need to change $8C99(memory)/$1F99(disk) from EF0096$10/BPL to $80/BRA. Compiler 3.1 appears to have code for both types, EF0096although it appears the $EC00 check for high bit is sufficient. EF0096------------------------------------------------------------ EF0096For Ultra 4.0 - Ultra 4.4, each Macro set when loaded has a PAIR of lock EF0096bytes at: EF0096$EF10 EF0096$EF6F EF0096By placing a $00 in $EF10 and saving the macro set, an unmodified EF0096compiler will not be able to de-compile and display it. EF0096!AW3.0/UM4.0" EF0096!============" EF0096To bypass lock checking code: EF0096Change $291A(memory)/$081A(disk) from $0D to $08 EF0096Change $2922(memory)/$0822(disk) from $05 to $00 EF0096!AW5.1/UM4.4" EF0096!============" EF0096To bypass lock checking code: EF0096Change $2928(memory)/$0828(disk) from $0D to $08 EF0096Change $2930(memory)/$0830(disk) from $05 to $00 EF0096To locate in other versions, just do a memory search for $EF10 and look EF0096for similar check code with it and $EF6F. There is also some in the EF0096Ultra Debugger, BTW. <NAfAfN