%! % Name of file: Tech Musings 152 energy k of n shuffle %%%%%%%%%%%% IGNORE THIS FOR THIS FILE % VERY IMPORTANT FILE SPECIFIC NOTE: The file pix148-3.jpg is % required to run this program. Place their correct locations here using double % reverse slashes when one is intended... % /pixfilename1 (C:\\Medocs\\Muse\\Muse 147\\pix147-1.jpg)def /pixfilename3 (C:\\Medocs\\Muse\\Muse 148\\pix148-3.jpg)def %%%%%%%%%%%%% % IMPORTANT NOTE: The file gonzo.ps is required to run % this program. Uncomment ONE of the following two lines: (C:\\windows\\desktop\\gonzo\\gonzo.ps) run % use internal gonzo % (A:\\gonzo.ps) run % use external gonzo % GONZO20A Guru Gonzo PostScript power tools (Interim release) % Includes gonzo justification and layout utilities. % Copyright c 1990,1996 by Don Lancaster and Synergetics, Box 809, % Thatcher Arizona, 5552 (928) 428-4073 don@tinaja.com support % via http://www.tinaja.com All commercial rights and all electronic % media rights **FULLY** reserved. Reposting is expressly forbidden. % statusdict begin % statusdict /setduplexmode known {true setduplexmode} if end % systemdict /setstrokeadjust known {true setstrokeadjust} if /mastergray {0.92} def % sets overall light grade shade %%%%%%%%%%%%%%%%% % Here's some needed routines not yet in GUTILITY.PTL or GONZO13A.PTL %............... % roundbox draws a box path with rounded corners and locks you to the % lower lefthand box corner using this format ... % -xpos- -ypos- -yheight- -cornerrad- roundbox /roundbox {gsave /rad exch def /bt exch def /br exch def /bb exch def /bl exch def bl bb translate rad mark br 2 div 0 0 0 0 bt br bt br 0 br 2 div 0] roundpath} def % vrule gives a fixed vertical rule, inputting xpos ystart yend linewidth /vrule {gsave newpath setlinewidth 2 index 4 2 roll moveto exch lineto 0 setgray stroke grestore} def % hrule gives a fixed horizontal rule, inputting ypos xstart xend linewidth /hrule {gsave newpath setlinewidth 1 index 4 2 roll moveto lineto 0 setgray stroke grestore} def % mergestr is a tool useful for page numbers; evenutally it will go % into the nuisance dictionary /mergestr {2 copy length exch length add string dup dup 4 3 roll 4 index length exch putinterval 3 1 roll exch 0 exch putinterval} def % this is a repeat of the GONZO13B callout width proc ... gonzo begin /endtheline {/curwide txtwide roomleft sub def justx cvx exec oktoprint {printline} if} bind def /cw {save /snapc1 exch def /oktoadvance false def /oktoprint false def /linestring linestring2 def /justx (justL) def 3 1 roll /ypos exch def /xpos exch def stringgonzo curwide snapc1 restore} def end %%%%% Module to insert eight pdf menu options .... % Place after |x but before last showpage % work out an HTML like PDF response /button { makeurlx % make box shaped url gsave blue % settint xpos ypos 0.9 sub translate 0.1 dup scale 0 0 mt 28 pu 28 pr 28 pd closepath 0.85 setgray fill 0 0 mt 0 28 pu 4 -4 rlineto 20 pd 20 pr 4 -4 rlineto closepath 0.6 setgray fill 0 28 mt 28 pr 28 pd -4 4 rlineto 20 pu 20 pl closepath 0.75 setgray fill 8 8 mt 12 pu 13 -6 rlineto closepath 0.33 setgray fill grestore xpos ypos mt } def %%%%%%%%%%% links menu directory %%%%%%%%%%%% % This code locks pdfmark commands out of a PostScript printer. /pdfmark where {pop}{userdict /pdfmark /cleartomark load put} ifelse % /surl "start url" marks the beginning of a text sequence to be urled. % It also paints the text blue... /surl {mark /blue cvx 0.33 /setgray cvx % change text to blue /currentpoint cvx % remember box start /urly /exch cvx /store cvx /urlx /exch cvx /store cvx ] cvx % complete deferred command printlist exch 3 index exch put % stuff into gonzo printlist exch 1 add exch % increment gonzo list count } def % /eurl "end url" unmarks the end of a text sequence and sets up % the pdfmark needed to define the Acrobat web link. /eurl {mark % start deferred proc exch % position url string /black cvx 0 /setgray cvx % turn blue marker off /makeurl cvx % defer call of url builder ] cvx % complete deferred proc printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } def % /makeurl generates the pdfmark, receiving a {(urlstring) makeurl}. % Note that it is not called until formatted printlist time... /urlover 0.2 def % fraction of hot area over bounds /makeurl { /cururlname exch store % save the url string mark % start pdfmark currentfont /ScaleMatrix get 3 get /fsize exch store % guess height /Rect [ urlx fsize urlover mul sub % set box left x urly fsize urlover mul sub % set box left y currentpoint exch fsize urlover mul add exch fsize add ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def % /makeurlx generates the box specific pdfmark, receiving % a {(urlstring) makeurl}. % Note that it is not called until formatted printlist time... /makeurlx { /cururlnamex exch store % save the url string mark % start pdfmark /Rect [ xpos % set box left x ypos 0.9 sub % set box left y xpos 2.8 add % box right x ypos 0.9 sub 2.8 add % box right y ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def % text link specific data /ebay01 {(http://cgi6.ebay.com/aw-cgi/eBayISAPI.dll?ViewListedItems&userid=abeja) eurl} def /syncat01 {(http://www.tinaja.com/glib/syncat01.pdf) eurl} def /ismm01 {(http://www.tinaja.com/ismm01.asp) eurl} def /amlink01 {(http://www.tinaja.com/amlink01.asp) eurl} def /tinaja01 {(http://www.tinaja.com/tinaja01.asp) eurl} def /info01 {(http://www.tinaja.com/info01.asp) eurl} def /barg01 {(http://www.tinaja.com/barg01.asp) eurl} def /advt01 {(http://www.tinaja.com/advt01.asp) eurl} def /maildon {(mailto:don@.tinaja.com) eurl} def % button link specific data /ebay01x {(http://cgi6.ebay.com/aw-cgi/eBayISAPI.dll?ViewListedItems&userid=abeja) button} def /syncat01x {(http://www.tinaja.com/glib/syncat01.pdf) button} def /ismm01x {(http://www.tinaja.com/ismm01.asp) button} def /amlink01x {(http://www.tinaja.com/amlink01.asp) button} def /tinaja01x {(http://www.tinaja.com/tinaja01.asp) button} def /info01x {(http://www.tinaja.com/info01.asp) button} def /barg01x {(http://www.tinaja.com/barg01.asp) button} def /advt01x {(http://www.tinaja.com/advt01.asp) button} def /maildonx {(mailto:don@.tinaja.com) button} def % %%%%%%%%%%%%%%%% end links directory %%%%%%%%%%%%%%%%%%%%%%%%%%%% /menu8 {gsave translate save /dosnap exch def /ybot -9999 def /ylimit -9999 def font3 font0 0 0 10 setgrid % 50 50 showgrid /cstretch 0.015 def /sstretch 0.015 def /font0 /Revue 1.2 gonzofont /font1 /StoneSans-Bold 1.3 gonzofont /font3 /Helvetica-Bold 3 gonzofont /kern 0.1 def 0 0 50 22.5 1 roundbox % clip gsave aqua 0.33 setgray fill % gsave % 0 27 mt 3 pu 50 pr 3 pd closepath 0.33 setgray fill % grestore % 0.33 setgray stroke white font3 /cstretch 0.1 def 25 20.5 (|0PLEASE |j|jCLICK |j|jHERE |j|jTO\274 ) cc /cstretch 0.015 def 0.5 2.2 49 17.3 0.8 roundbox 0.75 setgray fill % /yinc 3.5 def black font1 2.3 13.5 (|/ebay01x |1 View our |/surl ebay auctions|/ebay01 ) cl 2.3 10 (|/ismm01x |1 Start your |/surl tech venture|/ismm01 ) cl 2.3 6.5 (|/advt01x |1 Sponsor a display |/surl banner|/advt01 ) cl 2.3 3 (|/info01x |1 Find |/surl research|/info01 solutions) cl 25 13.5 (|/maildonx |1 Send Don Lancaster |/surl email|/maildon ) cl 25 10 (|/barg01x |1 Pick up surplus |/surl bargains|/barg01 ) cl 25 6.5 (|/tinaja01x |1 Find out what a |/surl tinaja|/tinaja01 is) cl 25 3 (|/amlink01x |1 View recommended |/surl books|/amlink01 ) cl grestore dosnap restore} def % 57 348 menu8 %%%%%%%%%%%% end pdfmenu8 %%%%%%%%%%%% gonzo begin % This is the core keystone code routine. It works by taking an average % of the first two and last two string lengths to determine the keystone % slope, increment, and starting width. It then checks the length of % each line and extends the starting width as needed so everything fits. /keyproc {/kadj exch def /msg exch def /yy1 exch def /xx1 exch def mark {msg (\n) search {exch pop exch /msg exch def dup length 0 le {pop} if}{dup length 0 le {pop} if exit} ifelse} loop ] /karray exch def 0 0 karray 0 get cw 0 0 karray 1 get cw add 2 div dup 0 0 karray dup length 1 sub get cw 0 0 karray dup length 2 sub get cw add 2 div sub neg karray length 1 sub div dup /kinc exch def 2 div sub /kstart exch def /txtwide 10000 def 0 0 1 karray length 1 sub {/kpn exch def 0 0 karray kpn get cw kstart kinc kpn mul add sub 2 copy lt {exch} if pop} for kstart add 1.01 mul dup /kstart exch def /txtwide exch def /justifylastline true def 0 1 karray length 1 sub { /posn exch def yy1 xx1 kstart kadj exch posn karray exch get cf /txtwide txtwide kinc add def /xx1 xx1 kinc kadj def /yy1 yy1 yinc sub def} for} def % these are the three keystone routines. Use xpos ypos true (msg strings) % cck, etc. true for keystone; false for ordinary justify. /cck {save /keysnap exch def exch {{2 div sub} keyproc} {cc} ifelse keysnap restore} def % callout centered keystone /clk {save /keysnap exch def exch {{pop} keyproc} {cl} ifelse keysnap restore} def % callout left keystone /crk {save /keysnap exch def exch {{sub} keyproc} {cr} ifelse keysnap restore} def % callout right keystone end % close gonzo dictionary %%%%%% doembeddedproc executes |/name installdoembeddedproc links it /doembeddedproc {mark 50 {stringmode {getstringchar}{currentfile read} ifelse not {exit} if dup dup dup 32 eq exch 13 eq or exch 10 eq or {pop exit} if} repeat counttomark dup string /pstr1 exch def 1 sub -1 0 {pstr1 3 1 roll exch put} for pstr1 exch pop cvx exec} def /installdoembeddedproc {gonzo begin commands (/) 0 get {doembeddedproc} put end} def installdoembeddedproc %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% your gonzo code goes here. The usual way of starting it is with %% gonzo begin %% ps.util.1 begin %% printerror %% nuisance begin %% Additional use details appear in the POSTSCRIPT BEGINNER STUFF %% package from SYNERGETICS. %%%%%%%%%%%%%%%%%% COLORIZER MOD %%%%%%%%%%%%% %%%%%%%%%%%%%%%% % COLORIZING BLACK AND WHITE POSTSCRIPT MODULE % ===================================== /tintmat [ {dup 0.11 ge {0.11 sub 0.89 div dup 1 setrgbcolor} % 0 blue {0.11 div 0 exch 0 exch setrgbcolor} ifelse} {dup 0.3 ge {0.3 sub 0.7 div 1 exch dup setrgbcolor} % 1 red {0.3 div 0 0 setrgbcolor} ifelse} {dup 0.59 ge {0.59 sub 0.41 div dup 1 exch setrgbcolor} % 2 green {0.59 div 0 exch 0 setrgbcolor} ifelse} {dup 0.7 ge {0.7 sub 0.3 div 1 1 setrgbcolor} % 3 turquoise {0.7 div 0 exch dup setrgbcolor} ifelse} {dup 0.41 ge {0.41 sub 0.59 div 1 exch 1 setrgbcolor} % 4 magenta {0.41 div dup 0 exch setrgbcolor} ifelse} {dup 0.89 ge {0.89 sub 0.11 div 1 exch 1 exch setrgbcolor} % 5 yellow {0.89 div dup 0 setrgbcolor} ifelse} {dup 0.842 ge {dup .7 mul .59 sub .11 div 1 exch setrgbcolor} % 6 lime {0.89 div dup 1.1233 div exch 1.1233 mul 0 setrgbcolor} ifelse} {dup 0.731 ge {1 exch dup .41 mul .30 sub .11 div setrgbcolor} % 7 beige {0.856 div dup 1.155 mul exch 1.55 div 0 setrgbcolor} ifelse} ] def /tint 7 def /setgray {tintmat tint get cvx exec} bind def %%%%%%%%%%%%%%% %%%%%%%%%%%%%% COMPACT VERSION OF COLORIZER II %%%%%%%%%%%%%%%%%%%%%% /settint {dup /currenttint exch store 5.999 mul dup floor cvi /&cbar exch store dup floor sub /&cwt exch store [ {/setgray [ /dup cvx 0.3 &cwt 0.59 mul add /ge cvx [1 /exch cvx &cwt 0.59 mul 0.30 add /sub cvx 1 &cwt sub 0.59 mul 0.11 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx /exch cvx ] cvx [ &cwt 0.59 mul 0.3 add /div cvx /dup cvx &cwt /mul cvx 0] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 1 &cwt sub 0.3 mul add /ge cvx [1 &cwt sub 0.3 mul 0.59 add /sub cvx &cwt 0.3 mul 0.11 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx /exch cvx 1 /exch cvx] cvx [1 &cwt sub 0.3 mul 0.59 add /div cvx /dup cvx 1 &cwt sub /mul cvx /exch cvx 0] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 &cwt 0.11 mul add /ge cvx [&cwt 0.11 mul 0.59 add /sub cvx 1 &cwt sub 0.11 mul 0.30 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx 1 /exch cvx] cvx [0 /exch cvx &cwt 0.11 mul 0.59 add /div cvx /dup cvx &cwt /mul cvx] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 1 &cwt sub mul 0.11 add /ge cvx [1 &cwt sub 0.59 mul 0.11 add /sub cvx &cwt 0.59 mul 0.30 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx 1] cvx [0 /exch cvx 1 &cwt sub 0.59 mul 0.11 add /div cvx /dup cvx 1 &cwt sub /mul cvx /exch cvx] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.11 &cwt 0.30 mul add /ge cvx[&cwt 0.30 mul 0.11 add /sub cvx 1 &cwt sub 0.30 mul 0.59 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx /exch cvx 1] cvx [ &cwt 0.30 mul 0.11 add /div cvx /dup cvx &cwt /mul cvx /exch cvx 0 /exch cvx ] cvx /ifelse cvx /setrgbcolor cvx ] cvx /def cvx} {/setgray [ /dup cvx 0.30 1 &cwt sub 0.11 mul add /ge cvx[ 1 /exch cvx 1 &cwt sub 0.11 mul 0.30 add /sub cvx &cwt 0.11 mul 0.59 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx ] cvx [ 1 &cwt sub 0.11 mul 0.30 add /div cvx /dup cvx 1 &cwt sub /mul cvx 0 /exch cvx] cvx /ifelse cvx /setrgbcolor cvx ] cvx /def cvx} ] &cbar get exec exec} bind def /beige {0.10 settint} def % examples of convenience operators /aqua {0.52 settint} def /blue {0.67 settint} def /lime {0.44 settint} def /red {0 settint} def /green {0.33 settint} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % aqua % normal for blat %! % X E % Z % MUSE.116.Y gonzo begin ps.util.1 begin printerror nuisance begin longjob statusdict begin % statusdict /setduplexmode known {true setduplexmode} if end systemdict /setstrokeadjust known {true setstrokeadjust} if /mastergray {0.96} def % sets overall light grade shade %%%%%%%%%%%%%%%%% % Here's some needed routines not yet in GUTILITY.PTL or GONZO13A.PTL %............... % roundbox draws a box path with rounded corners and locks you to the % lower lefthand box corner using this format ... % -xpos- -ypos- -yheight- -cornerrad- roundbox /roundbox {gsave /rad exch def /bt exch def /br exch def /bb exch def /bl exch def bl bb translate rad mark br 2 div 0 0 0 0 bt br bt br 0 br 2 div 0] roundpath} def % vrule gives a fixed vertical rule, inputting xpos ystart yend linewidth /vrule {gsave newpath setlinewidth 2 index 4 2 roll moveto exch lineto 0 setgray stroke grestore} def % hrule gives a fixed horizontal rule, inputting ypos xstart xend linewidth /hrule {gsave newpath setlinewidth 1 index 4 2 roll moveto lineto 0 setgray stroke grestore} def % mergestr is a tool useful for page numbers; evenutally it will go % into the nuisance dictionary /mergestr {2 copy length exch length add string dup dup 4 3 roll 4 index length exch putinterval 3 1 roll exch 0 exch putinterval} def % this is a repeat of the GONZO13B callout width proc ... gonzo begin /endtheline {/curwide txtwide roomleft sub def justx cvx exec oktoprint {printline} if} bind def /cw {save /snapc1 exch def /oktoadvance false def /oktoprint false def /linestring linestring2 def /justx (justL) def 3 1 roll /ypos exch def /xpos exch def stringgonzo curwide snapc1 restore} def end gonzo begin % This is the core keystone code routine. It works by taking an average % of the first two and last two string lengths to determine the keystone % slope, increment, and starting width. It then checks the length of % each line and extends the starting width as needed so everything fits. /keyproc {/kadj exch def /msg exch def /yy1 exch def /xx1 exch def mark {msg (\n) search {exch pop exch /msg exch def dup length 0 le {pop} if}{dup length 0 le {pop} if exit} ifelse} loop ] /karray exch def 0 0 karray 0 get cw 0 0 karray 1 get cw add 2 div dup 0 0 karray dup length 1 sub get cw 0 0 karray dup length 2 sub get cw add 2 div sub neg karray length 1 sub div dup /kinc exch def 2 div sub /kstart exch def /txtwide 10000 def 0 0 1 karray length 1 sub {/kpn exch def 0 0 karray kpn get cw kstart kinc kpn mul add sub 2 copy lt {exch} if pop} for kstart add 1.01 mul dup /kstart exch def /txtwide exch def /justifylastline true def 0 1 karray length 1 sub { /posn exch def yy1 xx1 kstart kadj exch posn karray exch get cf /txtwide txtwide kinc add def /xx1 xx1 kinc kadj def /yy1 yy1 yinc sub def} for} def % these are the three keystone routines. Use xpos ypos true (msg strings) % cck, etc. true for keystone; false for ordinary justify. /cck {save /keysnap exch def exch {{2 div sub} keyproc} {cc} ifelse keysnap restore} def % callout centered keystone /clk {save /keysnap exch def exch {{pop} keyproc} {cl} ifelse keysnap restore} def % callout left keystone /crk {save /keysnap exch def exch {{sub} keyproc} {cr} ifelse keysnap restore} def % callout right keystone end % close gonzo dictionary %%%%%% doembeddedproc executes |/name installdoembeddedproc links it /doembeddedproc {mark 50 {stringmode {getstringchar}{currentfile read} ifelse not {exit} if dup dup dup 32 eq exch 13 eq or exch 10 eq or {pop exit} if} repeat counttomark dup string /pstr1 exch def 1 sub -1 0 {pstr1 3 1 roll exch put} for pstr1 exch pop cvx exec} def /installdoembeddedproc {gonzo begin commands (/) 0 get {doembeddedproc} put end} def installdoembeddedproc %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % HACK III TEMPLATE % This default gonzo page making template is a useful starting point for % creating your own custom templates. It allows multiple page documents % with full picture insertions and total text control. % Note that any template MUST have an internal proc named templatestartup % and that your template MUST NOT call gonzofont before run time. 300 dict /muse3 exch def muse3 begin %&&&&&& /templatefonts { % Remember: all fonts MUST defer till run time! %% /font0 /Times-Bold [54 0 0 54.1 0 -32] gonzofont /font1 /Times-Roman [9.75 0 0 9.75 0 0] gonzofont /font2 /Times-Italic [9.75 0 0 9.75 0 0] gonzofont /font3 /Times-Bold [9.75 0 0 9.77 0 -6] gonzofont /font4 /Times-Roman [9 0 0 9 0 0] gonzofont /font5 /Times-Italic [9 0 0 9 0 0] gonzofont /font6 /Times-Bold [9 0 0 9 0 0] gonzofont /font7 /Helvetica [9 0 0 9 0 0] gonzofont /font8 /Helvetica [8 0 0 8 0 0] gonzofont /font9 /Helvetica-Bold [9 0 0 9.1 0 4] gonzofont /font- /ZapfDingbats [9 0 0 9 0 0] gonzofont /font= /Symbol [9 0 0 9.1 0 0] gonzofont /font0 /StoneSans-Bold [45 0 0 40.1 0 -23] gonzofont % temp "I" /font1 /StoneSerif 8.38 gonzofont /font2 /StoneSerif [ 7.95 0 1.10 8.38 0 0 ] gonzofont /font3 /StoneSans-Bold [9.25 0 0 9.25 0 -7] gonzofont % old /font4 /StoneSerif 8.15 gonzofont /font5 /StoneSerif [ 8.12 0 1.1 8.12 0 0 ] gonzofont /font6 /StoneSerif-Bold [7.5 0 1.1 7.5 0 0] gonzofont % try bolder italics } def % normallisting is used by the GURU figures for long text ... /normallisting { /txtwide bw 10 sub def /ybot -99999 def /font0 /Helvetica-Bold 12 gonzofont /font1 /Helvetica 8.5 gonzofont /font2 /Helvetica-Oblique 8.5 gonzofont /font3 /Helvetica-Bold 8.5 gonzofont /font4 /Courier 8.5 gonzofont /ypos bt 20 sub def /xpos bl 20 add def /yinc 10 def /pmnorm 60 def /amacro {(Lhy) stringmacro} def /bmacro {(1py) stringmacro} def /cmacro {(3z) stringmacro} def} def % denselisting is used by GURU figures for tighter text /denselisting{/bc br bl sub 2 div bl add def /txtwide bw 10 sub def /ybot -99999 def /font0 /Helvetica-Bold 10 gonzofont /font1 /Helvetica 7 gonzofont /font2 /Helvetica-Oblique 7 gonzofont /font3 /Helvetica-Bold 7 gonzofont /font4 /Courier 7 gonzofont /ypos bt 10 sub def /xpos bl 6 add def /yinc 8 def /amacro {(hy) stringmacro} def /emacro {/yparendadj yinc 2 div def} def} def % values used by gonzo justify ... /cstretch 0.1 def % minimum character kerning /sstretch -0.2 def % minimum space kerning /dropcount 4 def % number of lines drop cap drops /lastlinestretch 0.06 def % open last paragraph line slightly /pm 10 def % use paragraph indents /yinc 10.5 def % line spacing /ypara 0 def % extra interparagraph spacing /pagenum 1 def % These macros handle an initial drop cap and low center subheads ... /amacro {(zyL0) stringmacro /ypos ypos ypara add def} def % start drop cap /bmacro {(iFy1) stringmacro /ypos ypos ypara add def} def % finish drop cap /cmacro {staytint1 (znyC3) stringmacro /ypos ypos ypara 2 mul add def} def % centered title /dmacro {black (pF1) stringmacro /ypos ypos ypara 2 mul add def} def % normal text after centered title % reference values for internal doc control that become calculated % array values. Note that it is best to work in fixed yinc heights % to prevent alignment problems under figures. Note that it is nearly % always best to AVOID FIXED VALUES IN DOCMATRIX. /txw 155 def % width of normal text columns /cmb 60 def % column bottom position /cmt cmb 60 yinc mul add def % page is 60 normal text lines high /cml 60 def % first column left margin /cms 170 def % spacing of normal columns /cm# 3 def % number of normal columns /cm1 cml def % c1 starts at left margin /cm2 cml cms add def % c2 in middle /cm3 cml cms 2 mul add def % c3 to right /cmw cms txw sub def % white space between columns /hdw cms 2 mul txw add def % normal header/footer width /hdc cm1 hdw 2 div add def % normal header/footer center /hdr cm1 hdw add def % normal header/footer right /hdl cm1 def % normal header left /fdp 14 def % amount of footer drop below cml /bh1 yinc 6 mul def % 8 vlines reserved for title & blurb /stdfigrad 0.1 def % radius of standard figure box /1colwide txw def % width of single column figure /2colwide txw cms add def % width of double column figure /3colwide txw cms 2 mul add def % width of triple column figure /f1h yinc 19 mul def % height of figure one /f2h yinc 24 mul def % height of figure two /f3h yinc 51 mul def % height of figure three /f4h yinc 43 mul def % height of figure four /f5h yinc 31 mul def % height of figure five /f6h yinc 35 mul def % height of figure six /s1h yinc 25 mul def % height of custom sidebar /s2h yinc 33 mul def % height of n/n sidebar /s3h yinc 29 mul def % height of third aux sidebar /a1h yinc 66 mul def % height of synergetics ad /h1h yinc 14 mul def % height of optional help box /tfa {yinc 1.5 mul add} def % upper figure position adjust % warning: second true must stay that way; must use blank namek /fig1 {cm2 cmb 1 sub 2colwide f1h true % 2 sub adjust for gray top true /f1name /figure1 stdmusefig} def % link /fig2 {cm1 cmt f2h sub yinc add 3 add 2colwide f2h true true /f2name /figure2 stdmusefig} def % link /fig3 {cm2 cmt f3h sub yinc add 3 add 2colwide f3h true % note no box if false true /f3name /figure3 stdmusefig} def % link /fig4 {cm1 cmt f4h sub yinc add 3 add 2colwide f4h true true /f4name /figure4 stdmusefig} def % link /fig5 {cm1 cmt f5h sub yinc add 3 add 2colwide f5h true true /f5name /figure5 stdmusefig} def % link /fig6 {cm2 cmb 3 sub yinc add 4 add 2colwide f6h true true /f5name /figure6 stdmusefig} def % link /ad1 {cm3 cmb 1colwide f5h false true /ad1name /ad1copy stdmusefig} def % link /side1 {cm1 cmb -4 sub % special 2colwide s1h true true /s1name /sidebar1 grayfig2} def % link /side3 {cm1 cmt s3h sub yinc add 3colwide s3h true true /s3name /sidebar3 grayfig2} def % link % /side1 {cm1 cmt s1h sub yinc add % special for url % 2colwide s1h true true /s1name /sidebar1 grayfig2} def % link /side2 {cm1 cmt s2h sub yinc add 2colwide s2h true true /s2name /sidebar2 grayfig2} def % link /help {cm2 % cmt 16 yinc mul sub cmb 4 sub 1colwide h1h true false /helpname /hackhelp graymusefig} def % this is a "standard" figure border for HACK3. It has rounded edges, % a bottom single line title, and links to the actual figure art... /narrowfig 0 def % narrowing option /stdmusefig { /jsave justx 4 get def save /stdsnap exch def grayfig {0 3 translate} if % shift /colcheck {} def /figproc exch def cvx /figname exch def /showtitle exch def /showborder exch def /figheight exch def narrowfig sub /figwidth exch def -10 add translate /linestring linestring2 def /pmrun 0 def /txtwide figwidth 2 sub def /font1 /Helvetica 9 gonzofont /yinc 10 def /oktoprint false def /oktoadvance true def /xpos 0 def /ypos 0 def figname stringgonzo /titadjust ypos neg def /oktoprint true def /bw figwidth def /bt figheight def /bl 0 def /bb 0 def /bc figwidth 2 div def /xpos 20 def /ypos bt 20 sub def showtitle {0 narrowfig 2 div add titadjust figname cf} if showtitle not {/titadjust 0 def} if % no suppression if no title showborder {1 narrowfig 2 div add titadjust 12 add figwidth 2 sub figheight titadjust sub 10 sub stdfigrad roundbox 0.5 setlinewidth grayfig {gsave % LaserWriterG {0.90}{0.95}ifelse setgray grayshade setgray fill grestore [2.5 0 1.5 1] superstroke } {stroke} ifelse} if /linestring linestring2 def % needed to run interference /cstretch 0.01 def /sstretch 0.01 def /pmrun 0 def /colcheck {} def 3 1 roll translate dup scale % adjust figure position mark figproc cvx exec cleartomark stdsnap restore justx 4 jsave put } def % temporary stdmusefig with clip for pix and no outline /stdmusefigwc { /jsave justx 4 get def save /stdsnap exch def grayfig {0 3 translate} if % shift /colcheck {} def /figproc exch def cvx /figname exch def /showtitle exch def /showborder exch def /figheight exch def narrowfig sub /figwidth exch def exch narrowfig 2 div add exch -10 add translate /linestring linestring2 def /pmrun 0 def /txtwide figwidth 2 sub def /font1 /Helvetica 9 gonzofont /yinc 10 def /oktoprint false def /oktoadvance true def /xpos 0 def /ypos 0 def figname stringgonzo /titadjust ypos neg def /oktoprint true def /bw figwidth def /bt figheight def /bl 0 def /bb 0 def /bc figwidth 2 div def /xpos 20 def /ypos bt 20 sub def showtitle {0 narrowfig 2 div add titadjust figname cf} if showtitle not {/titadjust 0 def} if % no suppression if no title showborder {1 titadjust 12 add figwidth 2 sub figheight titadjust sub 10 sub stdfigrad roundbox 0.5 setlinewidth gsave % tempclip % temp delete any outline or fill % {{ grayfig {gsave % LaserWriterG {0.90}{0.95}ifelse setgray grayshade setgray fill grestore [2.5 0 1.5 1] superstroke } {white stroke black} ifelse} if % temp white % }} pop /linestring linestring2 def % needed to run interference /cstretch 0.01 def /sstretch 0.01 def /pmrun 0 def /colcheck {} def grestore clip % temp for photos 3 1 roll translate dup scale % adjust figure position mark figproc cvx exec cleartomark stdsnap restore justx 4 jsave put } def /grayfig false def % show stdmusefig with gray background default /graymusefig {/grayfig true def stdmusefig /grayfig false def} def %%%% % has a title box /grayfig2rad 0.01 def /showboxgrays true def /grayfig2 { /jsave justx 4 get def save /stdsnap exch def /colcheck {} def /figproc exch def cvx /figname exch def /showtitle exch def /showborder exch def /figheight exch def /figwidth exch def exch narrowfig 2 div add exch % set left position translate /figwidth figwidth narrowfig sub store showborder {1 2 figwidth 2 sub %%% narrowfig 2 div add figheight 5 sub grayfig2rad roundbox 0.4 figheight 28 sub moveto figwidth 1.8 sub 0 rlineto gsave showboxgrays {mastergray setgray}{1 setgray} ifelse fill grestore gsave newpath 0 figheight 5 sub moveto figwidth 1.8 sub 0 rlineto 0 -23 rlineto figwidth 1.8 sub neg 0 rlineto closepath grayshade dup 1 ne {0.15 sub pop 0.33} if setgray fill grestore [2 0 1 1] superstroke } if /font7 /Helvetica-Bold 9 0.7 add gonzofont showtitle {black white % 0.25 setgray figwidth 2 div figheight 20 sub 0.5 sub font7 figname cc black} if /bw figwidth def /bt figheight def /bl 0 def /bb 0 def /bc figwidth 2 div def /xpos 20 def /ypos bt 20 sub def /cstretch 0 def /sstretch 0 def /lastlinestretch 0 def /pmrun 0 def /ypara 0 def /linestring linestring2 def 3 1 roll translate dup dup /csf exch def scale mark figproc cvx exec cleartomark stdsnap restore justx 4 jsave put } def %%% % Here is the master document control matrix. It is manual in this example % Note that the result of internal calcs are ORDINARY NUMBERS. Note also % that you make room for figures by adding or subtracting only where and % as needed. /docmatrix [ [ { } {/narrowfig 0 store } ] % initial document files [ [{titleblock} % xpos ypos scale name {rightfooter} {/narrowfig 30 store 0 0 0.9 fig1} ] % page one figures and control [ cm1 cmt bh1 sub cmb {txw}] % column1 xpos ypos ylimit txtwide [ cm2 cmt bh1 sub cmb f1h add {txw} ] % column2 [ cm3 cmt bh1 sub cmb f1h add {txw} ] % column3 ] [ [{leftfooter} {leftheader} {/narrowfig 72 store} {0 0 0.9 fig2} % {/narrowfig 72 store} % {0 0 0.9 fig3} {/narrowfig 0 store} {15 0 0.85 side1} % {0 0 0.9 fig4} % {0 -6 1 help} % temp help box ] % page two figures and control [ cm1 cmt f2h sub cmb s1h add yinc add {txw}] % column1 xpos ypos ylimit txtwide [ cm2 cmt f2h sub cmb s1h add yinc add {txw}] % column2 xpos ypos ylimit txtwide [ cm3 cmt cmb {txw} ] % column3 xpos ypos ylimit txtwide ] [ [ {rightfooter} {rightheader} {/narrowfig 0 store} {0 0 0.9 fig3} {/narrowfig 0 store} % { 0 0 0.9 fig4} % {0 -6 1 help} % temp help box {/narrowfig 0 store} % {0 0 0.9 fig5} ] % page three figures and control [ cm1 cmt cmb {txw}] % column1 ship [ cm2 cmt f3h sub cmb {txw}] % commented for full figure 4 [ cm3 cmt f3h sub cmb {txw} ] % ] [ [{leftfooter} {leftheader} % { 0 0 0.9 fig4} {/namestretch 4 def} {/narrowfig 0 store} % {15 0 0.85 side1} {/narrowfig 0 store} {0 0 0.9 fig4} {/narrowfig 0 store} % {15 0 0.85 side3} % {0 -6 1 help} % temp help box ] % page four figures and control %[ cm1 cmt s1h sub cmb {txw}] % special yinc no caption % [ cm1 cmt s1h sub cmb {txw}] % % [ cm2 cmt s1h sub cmb h1h add {txw}] % [ cm2 cmt s1h sub cmb h1h add {txw}] [ cm1 cmt f4h sub cmb {txw}] % special [ cm2 cmt f4h sub cmb {txw} ] [ cm3 cmt cmb {txw}] % for three wide ] [ [{rightfooter} {rightheader} % {0 0 1 ad1} % was -33 positioning bug {/namestretch 1.8 def} {15 0 0.85 side2} % {0 0 0.9 fig5} {/narrowfig 0 store} {0 -6 1 help} % temp help box ] % [ cm1 cmt cmb txw] % page five figures and control [ cm1 cmt s2h sub cmb {txw}] % column1 xpos ypos ylimit txtwide [ cm2 cmt s2h sub cmb h1h add {txw}] % column2 xpos ypos ylimit txtwide [ cm3 cmt cmb {txw}] % column3 xpos ypos ylimit txtwide ad was here ] /adj {yinc 30 mul add} def % preferred is 23 [ [{leftfooter} {leftheader} ] % page six figures and control [ cm1 cmt cmb adj txw] % column1 xpos ypos ylimit txtwide [ cm2 cmt cmb adj txw] [ cm3 cmt cmb txw] ] /adj {0 yinc mul add } def [ [{rightfooter} {rightheader} ] % page seven figures and control [ cm1 cmt cmb adj txw] % column1 xpos ypos ylimit txtwide [ cm2 cmt cmb adj txw] [ cm3 cmt cmb adj txw] ] % change [ {quit} ] to [ {exitproc} ] [[{}] [cm1 cmt cmb txw]] % possible blank page ? [[{}] [cm2 cmt cmb txw]] % possible blank page ? [[{}] [cm3 cmt cmb txw]] % possible blank page ? % leave [ {quit} ] at end of page setup file [ {exitproc} ] % final document wrapup % NOTE: will not execute with short copy! ] def /nextpage { showpage adjustpage /pagenum pagenum 1 add def docpage numpages lt { /docpage docpage 1 add def docmatrix docpage get /curpage exch def curpage length 1 sub /numpgcol exch def curpage 0 get {cvx exec} forall /curcol 1 def nextcol} {docmatrix curpage 1 add get {cvx exec} forall } ifelse } def % modified nextcol allows pages without text and deferred xpos calcs. /nextcol { numpgcol 0 gt { curpage curcol get aload pop exec /txtwide exch def exec /ylimit exch def exec /ypos exch def exec /xpos exch def /curcol curcol 1 add def}{ nextpage} ifelse} def /colcheck { ypos ylimit 1 sub le { curcol numpgcol gt {nextpage} {nextcol} ifelse} if } def /templatestartup { templatefonts font1 /gonzojust true def /rslashok true def docmatrix length /numpages exch def /docpage 1 def docmatrix 0 get {cvx exec} forall % do initial document files docmatrix docpage get /curpage exch def curpage length 1 sub /numpgcol exch def curpage 0 get {cvx exec} forall % do initial page files /curcol 1 def nextcol } def % titleblock, headers and footers /titleblock {save /blurbsnap exch def /colcheck {} def /cstretch 0.2 def sstretch 1 def cml cmt bh1 sub 15 add translate /blurbboxwide 180 def /blurbboxhigh 80 def 1 setlinecap bestgray 3 23 mt hdw 15 sub blurbboxwide sub 3 sub 23 lineto hdw 3 sub 23 moveto -10 0 rlineto [6 0.3 4.5 .85] superstroke % changed to brown hdw blurbboxwide sub 15 sub 0 blurbboxwide blurbboxhigh 5 roundbox gsave grayshade setgray fill grestore % temp expt [4 0.3 2.5 .85] superstroke 0.85 setgray 4.5 setlinewidth -5 23 mt 3 r blurbboxwide 1 add 23 mt 3 r stroke grestore 0.3 setgray /font0 /Palatino-Bold 30 gonzofont /font1 /Palatino-Bold 10 gonzofont 0.2 setgray /font2 /Palatino-Bold 12 gonzofont font2 4 62 7 add author cl font0 3 34 4 add titlename cl font2 4 7 titledate cl 0.15 setgray /yinc 12 def hdw font1 105 sub 60 dokeystone titleblurb cck blurbsnap restore} def /leftheader {save /blurbsnap exch def /colcheck {} def cml cmt 16 add translate gsave mastergray setgray 0 8 mt 16 setlinewidth hdw r grestore % color fill? 0 0 hdw 1.2 hrule 0 16 hdw 0.5 hrule /cstretch 0.2 def /sstretch 1 def /font2 /Palatino-Bold 11 gonzofont 0 4.5 leftheading cl blurbsnap restore} def /rightheader {save /blurbsnap exch def /colcheck {} def cml cmt 16 add translate gsave mastergray setgray 0 8 mt 16 setlinewidth hdw r grestore % color fill? 0 0 hdw 1.2 hrule 0 16 hdw 0.5 hrule /cstretch 0.2 def /sstretch 1 def /font2 /Palatino-Bold 11 gonzofont hdw 4.5 rightheading cr blurbsnap restore} def /leftfooter { save /blurbsnap exch def /colcheck {} def cml cmb 13 sub translate /txtwide 1000 store /font3 /Helvetica 4.5 gonzofont font3 hdw -6 (Copyright c 2001 by Don Lancaster and Synergetics (928) 428-4073 www.tinaja.com \ All commercial rights and all electronic media rights fully reserved. Reposting expressly forbidden.) cr 0 0 hdw 0.8 hrule gsave 25 0 translate -18 -7 36 14 2 roundbox gsave mastergray setgray fill grestore 0.5 setlinewidth stroke /font2 /Palatino-Bold 11 gonzofont /cstretch 0.4 def 16 2 add 0.2 setgray 3.5 columnum ( ) cvs (.) mergestr colpagenum ( ) cvs mergestr cc blurbsnap restore /colpagenum colpagenum 1 add def } def % adjusted for 100 - was -16 -7 32 14 /rightfooter {save /blurbsnap exch def /colcheck {} def cml cmb 13 sub translate /txtwide 1000 store /font3 /Helvetica 4.5 gonzofont font3 0 -6 (Copyright c 2001 by Don Lancaster and Synergetics (928) 428-4073 www.tinaja.com \ All commercial rights and all electronic media rights fully reserved. Reposting expressly forbidden.) cl 0 0 hdw 0.8 hrule gsave hdw 25 sub 0 translate -18 -7 36 14 2 roundbox gsave mastergray setgray fill grestore 0.5 setlinewidth stroke /cstretch 0.4 def /font2 /Palatino-Bold 11 gonzofont 16 2 add 3.5 0.2 setgray columnum ( ) cvs (.) mergestr colpagenum ( ) cvs mergestr cc blurbsnap restore /colpagenum colpagenum 1 add def} def end % guru3 template %% TEMP BYPASSES %%% /adjustpage {} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % INCLUDED FILES AND PROCS /dokeystone false def /titleblurb (Pitfalls of shuffling Driving |jlots |jof |jLED's Energy |jawareness |jbasics Some n-connectedness math VB |jASP |jbanner |jrotation |jcode ) def /author (Don Lancaster's) def /titlename (T|k|kech M|k|kusings) def /titledate (August, 2001 |j) def /leftheading ( Tech Musings) def /rightheading titledate def /columnum 152 def /colpagenum 1 def %%%%%%%%%%%%% COMMON HEADER %%%%%%%%%%%%%%%%% % graybox utilities /grayfill {gsave bl bb translate /doublestroke true def 0 0 moveto 0 bh lineto bw bh lineto bw 0 lineto closepath mastergray setgray fill grestore} def /whitebox {gsave /wh exch def /ww exch def translate 0 0 mt 0 wh rlineto ww 0 rlineto 0 wh neg rlineto closepath gsave white fill grestore line1 stroke} def % keeps state! /doublestroke true def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % /grayshade 0.92 def /grayshade1 {grayshade} def /setgray1 { dup grayshade 1 eq { 0.5 gt {pop 1}{pop 0} ifelse } {pop} ifelse setgray } def /usecolor true def % special for figure /grayfig1 0.92 def % experimental box clipper to improve photos /clipinset 4 def % use -0.7 to repel boarders /cwidth {figwidth 2 sub} def /cheight { figheight titadjust sub 10 sub} def /clipthebox { 0 0 mt cheight 0.9 div dup pu cwidth 0.9 div pr pd closepath closepath clip gsave aqua 0.7 setgray1 fill grestore % tempcheck } def /figure1 { % name of textfile: muse.fig.152.1 energy densities % ............................ save /snap1 exch def electronics begin 22 -1 translate % position in box -85 -26 12 setgrid % 30 30 showgrid /cstretch 0.02 def /sstretch 0.0 def /kern 0.1 def /yinc 1.1 def /font0 /Helvetica-Bold [1 0 0 1 0 -0.2] gonzofont /font1 /Helvetica 0.85 gonzofont /font4 /Helvetica 0.7 gonzofont /font3 /Helvetica-Bold 0.70 gonzofont /font2 /Helvetica-Oblique 0.75 gonzofont /font5 /Helvetica-Bold [2 0 0 1.4 0 0] gonzofont /font6 /Helvetica [2 0 0 1.4 0 0] gonzofont /font7 /Helvetica [0.6 0 0 0.6 0 -.3] gonzofont /font8 /Symbol 0.9 gonzofont /font6 /Symbol 0.75 gonzofont /tabs [8 14 ] def aqua 7 3.5 mt 14 pu 19 pr 14 pd closepath grayshade setgray fill 16 3.5 mt 14 pu 14.5 pr 14 pd closepath grayshade dup 1 ne {0.15 sub} if setgray fill black font1 10 16 (Gasoline |t9000 Wh/l |t13,500 Wh/Kg LNG |t7216 Wh/l |t12,100 Wh/Kg Propane |t6600 Wh/l |t13,900 Wh/Kg Ethanol |t6100 WH/l |t7,850 Wh/Kg Liquid H2 |t2600 Wh/l |t39,000 Wh/Kg |h Lithium |t250 Wh/l |t350 Wh/Kg Flywheel |t210 Wh/l |t120 Wh/Kg Liquid N2 |t65 Wh/l |t55 Wh/Kg Lead Acid |t40 Wh/l |t25 Wh/Kg Compr Air |t17 Wh/l |t34 Wh/Kg Hydrogen |t2.7 Wh/l |t39,000 Wh/Kg) cl end ypos snap1 restore /ypos exch def } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /figure2imagehold { % name of textfile: muse fig 143.2 thermoelectrics of materials % ............................ % figure 2 % save /snap2 exch def %%%%%%%%%%%%%%%%%%% 8 15 translate % position on box electronics begin /DeviceRGB setcolorspace % pick color model 3 -6 translate % set page position 579 407 scale % magnify unit square 0.5 dup scale % /infilename (C:\\windows\\desktop\\barro\\barro.jpg)def % filename % /pixfilename2 (C:\\Medocs\\Muse\\Muse 142\\pix143-2.jpg)def /infilename pixfilename2 def % note DOUBLE SLASHES in PS String! /infile infilename (r) file def % establish input read file /Data {infile /DCTDecode filter} def % define a data source << % start image dicationary /ImageType 1 % always one /Width 579 % JPEG width in pixels /Height 407 % JPEG height in pixels /ImageMatrix [579 0 0 -407 0 407 ] % see comments below /DataSource Data % proc to get filtered JPEG /BitsPerComponent 8 % color resolution /Decode [0 1 0 1 0 1] % per red book 4.10 >> image % call the image operator end ypos snap2 restore /ypos exch def } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /figure2 { % name of textfile: muse fig f152-2 n-connectedness string art % ............................ % save /snap2 exch def %%%%%%%%%%%%%%%%%%% -7 -28 translate % position on box electronics begin bestgray 0 0 10 setgrid % 33 35 showgrid /cstretch 0.02 def /sstretch 0.0 def /kern 0.1 def /yinc 1.0 def /red {0 settint} def /blue {0.67 settint} def /purple {0.75 settint} def /font0 /Helvetica-Bold [1.2 0 0 1 0 -0.2] gonzofont /font0 /helvetica-bold [1 0 0 0.8 0 0 ] gonzofont /font1 /Helvetica 0.75 gonzofont /font4 /Helvetica 0.6 gonzofont /font3 /Helvetica-Bold 0.75 gonzofont /font2 /Helvetica-Oblique 0.75 gonzofont /font5 /Helvetica-Bold 1.1 gonzofont /font6 /Helvetica [2 0 0 1.4 0 0] gonzofont /font7 /Helvetica-Oblique 0.75 gonzofont /font8 /Symbol 0.75 gonzofont /font9 /Helvetica [.6 0 0 .6 -.15 .4] gonzofont /font- /Helvetica-Bold [0.4 0 0 0.55 0 0] gonzofont /kern 0.15 def /tabs [16.5] def /txtwide 29 def font1 /tabs [17.5] def font1 /yinc 0.9 def line1 /points [ [1 0 ] [.866 0.5 ] [0.5 .866] [0 1] [-0.5 .866] [-.866 0.5 ] [-1 0] [-.866 -0.5 ] [-0.5 -.866] [0 -1] [0.5 -.866] [.866 -0.5 ] [1 0] [.866 0.5 ] [0.5 .866] [0 1] [-0.5 .866] [-.866 0.5 ] [-1 0] [-.866 -0.5 ] [-0.5 -.866] [0 -1] [0.5 -.866] [.866 -0.5 ] [1 0] ] def /radius 10 def 15 15 translate %% outer ring 0 1 12 {/posn exch store points posn get aload pop radius mul exch radius mul exch moveto points posn 1 add get aload pop radius mul exch radius mul exch lineto 1 0 0 setrgbcolor line2 stroke } for 0 1 12 {/posn exch store points posn get aload pop radius mul exch radius mul exch moveto points posn 2 add get aload pop radius mul exch radius mul exch lineto 1 0.5 0 setrgbcolor line2 stroke } for 0 1 12 {/posn exch store points posn get aload pop radius mul exch radius mul exch moveto points posn 3 add get aload pop radius mul exch radius mul exch lineto 0 1 0 setrgbcolor line2 stroke } for 0 1 12 {/posn exch store points posn get aload pop radius mul exch radius mul exch moveto points posn 4 add get aload pop radius mul exch radius mul exch lineto 0 0.75 0.75 setrgbcolor line2 stroke } for 0 1 12 {/posn exch store points posn get aload pop radius mul exch radius mul exch moveto points posn 5 add get aload pop radius mul exch radius mul exch lineto 0 0 1 setrgbcolor line2 stroke } for 0 1 6 {/posn exch store points posn get aload pop radius mul exch radius mul exch moveto points posn 6 add get aload pop radius mul exch radius mul exch lineto 1 0 1 setrgbcolor line2 stroke } for %% dots go last 0 1 12 {/posn exch store points posn get aload pop radius mul exch radius mul exch moveto gsave currentpoint 0.6 0 360 arc gsave 0.65 dup dup setrgbcolor fill grestore grestore } for end ypos snap2 restore /ypos exch def } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /figure3 { % name of textfile: muse fig f151-3 56 LED port % ............................ % save /snapxx exch def %%%%%%%%%%%%%%%%%%% 6 4 translate % position on box electronics begin bestgray 0 0 10 setgrid % 33 55 showgrid /cstretch 0.02 def /sstretch 0.0 def /kern 0.1 def /yinc 1.0 def /red {0 settint} def /blue {0.67 settint} def /purple {0.75 settint} def /font0 /Helvetica-Bold [1.2 0 0 1 0 -0.2] gonzofont /font0 /helvetica-bold [1 0 0 0.8 0 0 ] gonzofont /font1 /Helvetica 0.75 gonzofont /font4 /Helvetica 0.6 gonzofont /font3 /Helvetica-Bold 0.75 gonzofont /font2 /Helvetica-Oblique 0.75 gonzofont /font5 /Helvetica-Bold 1.1 gonzofont /font6 /Helvetica [2 0 0 1.4 0 0] gonzofont /font7 /Helvetica-Oblique 0.75 gonzofont /font8 /Symbol 0.75 gonzofont /font9 /Helvetica [.6 0 0 .6 -.15 .4] gonzofont /font- /Helvetica-Bold [0.4 0 0 0.55 0 0] gonzofont /kern 0.15 def /tabs [16.5] def /txtwide 29 def font1 /tabs [17.5] def font1 /yinc 0.9 def line1 /rdiode { diode} def /ldiode {gsave translate 180 rotate 0 0 rdiode grestore} def /ledr { mt currentpoint circ3r ldiode } def /ledl { mt currentpoint circ3g ldiode } def /circ3r {gsave currentpoint newpath 0.8 0 360 arc gsave 0 settint 0.65 setgray 1 0.45 0.45 setrgbcolor fill grestore line2 stroke grestore} def %for led /circ3g {gsave currentpoint newpath 0.8 0 360 arc gsave 0.33 settint 0.75 setgray 0.2 1 0.2 setrgbcolor fill grestore line2 stroke grestore} def %for led line1 [{ 13 21 mt 18 d circ1 13 5. vresistor } 1.5 7 ] xrpt 23.5 7 mt 4 d circ1 23.5 5 vresistor 14.5 21 mt 9 u % extensions 16 21 mt 16.5 u 17.5 21 mt 22.5 u 19 21 mt 27 u 20.5 21 mt 30 u 22 21 mt 31.5 u [{ 8 7 mt 18 rx} 0.5 7 ] yrpt % first seven led % main intersection 14.5 10 mt dot 16 9.5 mt dot 17.5 9 mt dot 19 8.5 mt dot 20.5 8 mt dot 22 7.5 mt dot 23.5 7 mt dot 23 52.5 mt 21 lx 1.5 d dot % one group 23 52.5 mt 10 rx 1.5 d dot 21.5 49.5 mt 19 lx 3 d dot % two group 21.5 49.5 mt 11 rx 3 d dot 21.5 51 mt 19.5 lx 3 d dot % two group 21.5 51 mt 11.5 rx 3 d dot 19 45 mt 16 lx 4.5 d dot % three group 19 45 mt 13 rx 4.5 d dot 19 46.5 mt 16.5 lx 4.5 d dot 19 46.5 mt 13.5 rx 4.5 d dot 19 48 mt 17 lx 4.5 d dot 19 48 mt 14 rx 4.5 d dot 17.5 39 mt 14 lx 6 d dot % four group 17.5 39 mt 14 rx 6 d dot 17.5 40.5 mt 14.5 lx 6 d dot 17.5 40.5 mt 14.5 rx 6 d dot 17.5 42 mt 15 lx 6 d dot 17.5 42 mt 15 rx 6 d dot 17.5 43.5 mt 15.5 lx 6 d dot 17.5 43.5 mt 15.5 rx 6 d dot 16 31.5 mt 12 lx 7.5 d dot % five group 16 31.5 mt 15 rx 7.5 d dot 16 33 mt 12.5 lx 7.5 d dot 16 33 mt 15.5 rx 7.5 d dot 16 34.5 mt 13 lx 7.5 d dot 16 34.5 mt 16 rx 7.5 d dot 16 36 mt 13.5 lx 7.5 d dot 16 36 mt 16.5 rx 7.5 d dot 16 37.5 mt 14 lx 7.5 d dot 16 37.5 mt 17 rx 7.5 d dot 14.5 22.5 mt 10 lx 9 d dot % six group 14.5 22.5 mt 16 rx 9 d dot 14.5 24 mt 10.5 lx 9 d dot 14.5 24 mt 16.5 rx 9 d dot 14.5 25.5 mt 11 lx 9 d dot 14.5 25.5 mt 17 rx 9 d dot 14.5 27 mt 11.5 lx 9 d dot 14.5 27 mt 17.5 rx 9 d dot 14.5 28.5 mt 12 lx 9 d dot 14.5 28.5 mt 18 rx 9 d dot 14.5 30 mt 12.5 lx 9 d dot 14.5 30 mt 18.5 rx 9 d dot 13 12 mt 8 lx 2 d 5 r % seven group 13 12 mt 17 rx 2 d 5 l 13 13.5 mt 8.5 lx 4 d 8 r 13 13.5 mt 17.5 rx 4 d 8 l 13 15 mt 9 lx 6 d 8 r 13 15 mt 18 rx 6 d 8 l 13 16.5 mt 9.5 lx 8 d 8 r 13 16.5 mt 18.5 rx 8 d 8 l 13 18 mt 10 lx 10 d 8 r 13 18 mt 19 rx 10 d 10.5 l 13 19.5 mt 10.5 lx 12 d 8 r 13 19.5 mt 19.5 rx 12 d 10.5 l 13 21 mt 11 lx 14 d 8 r 13 21 mt 20 rx 14 d 10.5 l % dots [{13 12 mt dot} 1.5 7]yrpt [{14.5 22.5 mt dot} 1.5 6]yrpt [{16 31.5 mt dot} 1.5 5]yrpt [{17.5 39 mt dot} 1.5 4]yrpt [{19 45 mt dot} 1.5 3]yrpt 20.5 49.5 mt dot 20.5 51 mt dot 22 52.5 mt dot % repairs first group 4.5 13.5 mt dot 4 15 mt dot 3.5 16.5 mt dot 3 18 mt dot 2.5 19.5 mt dot 2 21 mt dot 4 15 9 add mt dot 3.5 16.5 9 add mt dot 3 18 9 add mt dot 2.5 19.5 9 add mt dot 2 21 9 add mt dot 3.5 16.5 16.5 add mt dot 3 18 16.5 add mt dot 2.5 19.5 16.5 add mt dot 2 21 16.5 add mt dot 3 18 22.5 add mt dot 2.5 19.5 22.5 add mt dot 2 21 22.5 add mt dot 2.5 19.5 27 add mt dot 2 21 27 add mt dot 2 21 30 add mt dot 30.5 13.5 mt dot 31 15 mt dot 31.5 16.5 mt dot 32 18 mt dot 32.5 19.5 mt dot 33 21 mt dot 31 15 9 add mt dot 31.5 16.5 9 add mt dot 32 18 9 add mt dot 32.5 19.5 9 add mt dot 33 21 9 add mt dot 31.5 16.5 16.5 add mt dot 32 18 16.5 add mt dot 32.5 19.5 16.5 add mt dot 33 21 16.5 add mt dot 32 18 22.5 add mt dot 32.5 19.5 22.5 add mt dot 33 21 22.5 add mt dot 32.5 19.5 27 add mt dot 33 21 27 add mt dot 33 21 30 add mt dot % leds [{8 12 ledl} 3 14 ] yrpt [{10.5 13.5 ledl} 3 14 ] yrpt [{27 12 ledr} 3 14 ] yrpt [{24.5 13.5 ledr} 3 14 ] yrpt font3 18.25 1.5 (microcompuer I/O port) cc end ypos snapxx restore /ypos exch def } def %%%%%%%%%%%%%%%%%%%%% % name of textfile: muse fig 152.4 banner rot % ............................ % figure 4 % /figure4 { save /snap4 exch def %%%%%%%%%%%%%%%%%%% 0 0 translate % position on box electronics begin bestgray aqua 1 0.97 dup scale 0 0 10 setgrid % 50 50 showgrid /cstretch 0.02 def /sstretch 0.0 def /kern 0.1 def /yinc 1.0 def /font0 /Helvetica-Bold [1.2 0 0 1 0 -0.2] gonzofont /font1 /Helvetica 0.75 gonzofont /font4 /Helvetica 0.6 gonzofont /font3 /Helvetica-Bold 0.75 gonzofont /font2 /Helvetica-Oblique 0.75 gonzofont /font5 /Helvetica-Bold 1.1 gonzofont /font6 /Helvetica [2 0 0 1.4 0 0] gonzofont /font7 /Helvetica-Oblique 0.75 gonzofont /font8 /Symbol 0.75 gonzofont /font9 /Helvetica [.6 0 0 .6 -.15 .4] gonzofont /kern 0.15 def /tabs [20] def /txtwide 32.5 def font1 /tabs [4] def font1 /yinc 0.9 def 2 47.2 (|/aqua |/staytint1 |3% VISUAL BASIC .ASP MULTI-SLOT BANNER ROTATOR % ================================================= |h % Copyright c 2001 by Don Lancaster & Synergetics, Box 809, Thatcher, AZ, 85552 % (928) 428-4073 Email: |/surl don@tinaja.com|/maildon |/tinton1a Website: |/surl http://www.tinaja.com|/tinaja % Consulting services available per |/surl http://www.tinaja.com/info01.html|/info01 |h % All commercial rights and all electronic media rights fully reserved. % Linking welcome. Reposting expressly forbidden. Version 1.6 |h % These Visual Basic code fragments show you how to have multiple banners appear % in several slots on a web page, autorotating without any repeats. Each end % user sees a new banner grouping every time they reload or refresh. One easily % changed master data base handles dozens or hundreds of individual web pages. |h % You can |/surl Click Here|1|/tinaja |/tinton1a |3for a demo. Use your refresh repeatedly. |h |3% First, create a data base file of banner advertiser info having array strings for url, % text, and image. Such as |/surl This Example|/banndatax |/tinton1a Typical entries might be\274 |h|/beige |/staytint1 |tblnk(3) = "http://www.thirdadvt.com" |tbimg(3) = "thirdadvt.gif" |tbalt(3) = "Third Advertiser Text Blurb." |h|/aqua |/staytint1 % This textfile gets stored at a reachable place on the ISP's site. Next, create a % typical .HTML page renamed as a .ASP file, using default Visual Basic. Near the % beginning of the body, add\274 |h|/beige |/staytint1 |t<% ' banner rotation module |tbannslots = 8 ' must be equal or less than a(n) |tdim a(8) a(0) = "a" a(1) = "b" a(2) = "c" a(3) = "d" |ta(4) = "e" a(5) = "f" a(6) = "g" a(7) = "h" x = "z" |h |t<% |h |tRandomize For i = bannslots - 1 to 1 Step -1 j = Int(Rnd* (i + 1)) |tx = a(j) a(j) = a(i) a(i) = x Next |h |tpattern = a(0) & a(1) & a(2) & a(3) & a(4) & a(5) & a(6) & a(7) & a(8) %> |h|/aqua |/staytint1 % This code defines eight letters in an array. It then loads the banner data. It % then creates an eight character string having the eight letters randomly shuffled. |h % Later on your page, you create a banner image location in the usual way, most % often as a table entry that includes this code\274 |h|/beige |/staytint1 |t<%kk = (InStr(pattern, "a"))%> |t |t<%=balt(kk)%> |h|/aqua |/staytint1 % This says to find the |/tinton1b numeric position|/tintoff |/tinton1a of letter "a" in the string. The image url for % bink(position) is combined with the src and alt text for the desired url. |h % You repeat the process with <%kk = (InStr(pattern, "b"))%> for the second banner % slot, continuing as needed to complete the page. % More examples in |3|/surl BOUNCY.PDF|1|/bouncy . |/tinton1a Some \ |/surl |3ASP Books|/amlink01 |/tinton1a are found |3|/surl here|/amlink01 |/tinton1a \ . |3|/tinton1a % For |/surl InfoPack|1|/info01 |/tinton1a consulting: |/surl |3don@tinaja.com|/maildon ) cl end ypos snap4 restore /ypos exch def } def /figure5 {} def { /figure1 {} def % temp hunt for duplicate variables /figure2 {} def /figure3 {} def /figure4 {} def /figure5 {} def } pop %%%%%% %%%%%%%%%%%%%%%%%%% /namestretch 0 def /sidebar1 { 8 -3 translate 1 dup scale % adjust to fit /title( )def /font0 /Helvetica [10 0 0 8.5 0 0] gonzofont /font1 /Helvetica [9 0 0 9 0 0] gonzofont /font2 /Helvetica-Bold [9 0 0 9 0 0 ] gonzofont /txtwide 156 def /yinc 11 def % RSNUMBER /Zmacro {gsave /Helvetica-Narrow-Bold findfont [7.5 0 0 7.5 0 0] makefont setfont xpos ypos moveto charstretch 0(CIRCLE ) ashow charstretch 0 RSnumber( ) cvs ashow ( ON FREE INFORMATION CARD) show /RSnumber RSnumber 1 add def /ypos ypos yinc 0.7 mul sub def grestore} def /Ymacro {/ypos ypos yinc 0.7 mul sub def} def % temporary stretch /Zmacro {(h) stringmacro /ypos ypos namestretch sub def } def /ypos0 bt 3 sub def /yinc 17 def /xpos bl def /xpos0 xpos def /pm 0 def /sstretch 0.1 def /cstretch 0.2 def /ypos bt 20 sub def /ypos 400 def /txtwide bw def /colcheck {} def /ytopoflist bt 50 sub csf div def xpos txtwide 2 div add 0 add ytopoflist 18 add % Set name below!!!! ( ) cc % for gray2 /ypos ytopoflist def /columnspacing 158 def /yinc 10 def /xpos0 bl 35 add def /xpos xpos0 def /amacro {/yhold ypos def /ypos ytopoflist def /xpos xpos columnspacing add def /ypos ypos yinc add def} def % temporary for 4 wide /columnspacing 132 def % xpos 18 sub ypos % (|L|2AMX|1 % 11995 Forestgate Dr % Dallas TX 75243 % (800) 222-0193 % |Z {{xpos 18 sub ypos (|L|2Abbeon Cal|1 123 Gray Ave Santa Barbara CA 93101 (805) 966-0810 |Z |2Veeder Root|1 125 Powder Forest Dr Simsbury CT 06070 (860) 651-2700 |Z ) cl }} pop % temp for url list {{ /font3 /Helvetica-BoldOblique 9.5 gonzofont font3 /yinc 13 1 sub def /yposhh ypos def /amacro {/xpos xpos 284 add store /ypos yposhh 50 add store} def /bmacro {/yinc yinc 2.12 add store} def % 0.9 dup scale % TEMP COMPRESS xpos -26 add ypos % 50 add (|3Battery Reference Book|1 |1( Thomas Crompton ) |3Battery Technology Handbook|1 |1( H.A. Kiehne ) |3Electric Hybrid Vehicles ... BatteryTechnology |1( SAE ) |3Electric Vehicle Battery Systems |1( Sandeep Dhameja ) |3Electrochemical Cell Design |1( Ralph White ) |3Electrochemical Power Sources |1( M. Barak ) |3Electrochemical Supercapacitors |1( B. E. Conway ) |3Electrochemistry of Novel Materials |1( Jacek Lipkowski ) |3Fuel Cell Systems |1( Leo Blomen ) |3Handbook of Batteries |1( David Linden ) |3Handbook of Battery Materials |1( Jurgen Besenhard ) |3Hydrogen & Metal Hydride Batteries |1( P. D. Bennett ) |3Lithium-Ion Batteries |1( Masataka Wakihara ) |3Lithium Polymer Batteries |1( J. Broadhead ) |3Modern Batteries: Intro to Electrochemical... |1( C. Vincent ) |3New Materials for Batteries and Fuel Cells |1( D. Doughty ) |3Practical Photovoltaics |1( Richard J. Komp ) |3RVer's Guide to Solar Battery Charging |1( Noel Kirkby ) |1For more book details, see |/surl |3www.tinaja.com/amlink01.html|/amlink01 ) cl }} pop %lockout %% special for combined list /cstretch 0.02 10 mul def /sstretch 0.0 10 mul def /kern 0.1 10 mul def /yinc 1.1 10 mul def /font0 /Helvetica-Bold [1.2 0 0 1 0 -0.2] gonzofont /font1 /Helvetica 0.75 10 mul gonzofont /font4 /Helvetica 0.7 10 mul gonzofont /font3 /Helvetica-Bold 0.75 10 mul gonzofont /font2 /Helvetica-Oblique 0.75 10 mul gonzofont /font5 /Helvetica-Bold 0.85 10 mul gonzofont /font6 /Helvetica [2 0 0 1.4 0 0] gonzofont /font7 /Helvetica-Oblique 0.75 gonzofont /font8 /Symbol 0.75 gonzofont font1 /yinc 0.9 10 mul def /kern 0.1 10 mul def %%%%%%%%%%%%%% /emacro {/yhold ypos def} def /fmacro {/ypos yhold def /xpos xpos 13.5 10 mul add def} def /cmacro {/xpos xpos 13.5 10 mul sub def} def /tabs [4 10 mul -2 10 mul] def /txtwide 33 5 add 10 mul def % 3.5 56.5 % {{ % bypass /cmacro {/yposhhh ypos def} def /dmacro {/ypos yposhhh def /xpos xpos 120 add store} def /switchfonts { /font0 /Helvetica [10 0 0 8.5 0 0] gonzofont /font1 /Helvetica [9 0 0 9 0 0] gonzofont /font2 /Helvetica-BoldOblique [9 0 0 9 0 0 ] gonzofont } def /shiftin {24 0 translate} def % position first column nn xpos -40 add ypos 13.8 add /font1 /Helvetica [10 0 0 10 0 0] gonzofont % larger for short list /font3 /Helvetica-BoldOblique [10 0 0 10 0 0 ] gonzofont /font4 /Helvetica [8.5 0 0 8.5 0 0] gonzofont % larger for short list /font5 /Helvetica [8.5 0 0 8.5 0 0] gonzofont % larger for short list (|h |1Kenneth J. Wark, |3|/surl Advanced Thermodynamics for Engineers|1|/book1 |h |1D. M. Rowe, |3|/surl CRC Handbook of Thermoelectrics|1|/book2 |h |1Ivo Kolin, |3|/surl Evolution of the Heat Engine|1|/book3 |h |1Richard Feynman, |3|/surl Feynman Lectures on Physics: Kinetics and Heat|1|/book4 |h |1Frank P. Incropera, |3|/surl Fundamentals of Heat and Mass Transfer|1|/book5 |h |1John F. Sandfort, |3|/surl Heat Engines|1|/book6 |h |1B. Sunden, |3|/surl Heat Transfer in Gas Turbines|1|/book7 |h |1J. M. Smith, |3|/surl Introduction to Chemical Engineering Thermodynamics|1|/book8 |h |1James R. Senft, |3|/surl Introduction to Stirling Engines|1|/book9 |h |1David R. Gaskell, |3|/surl Introduction to Thermodynamics of Materials|1|/book10 |h |1Z. Warhaft, |3|/surl Introduction to Thermal-Fluid Engineering|1|/book11 |h |1D. Kondepudi, |3|/surl Modern Thermodynamics : From Heat Engines\274 |1|/book12 |h |1P. W. Atkins, |3|/surl The Second Law |1|/book13 |h |1G. Walker, |3|/surl The Stirling Alternative : Power Systems, \274 |1|/book14 |h |1Herbert B. Callen, |3|/surl Thermodynamics and Thermostatistics \274 |1|/book15 |h |1H. C. Van Ness, |3|/surl Understanding Thermodynamics \274 |1|/book16 |h |1Christian Von Baeyer , |3|/surl Warmth Disperses and Time Passes \274 |1|/book17 |4For more book details, \ see |/surl |3www.tinaja.com/amlink01.html|/amlink01 )cl % }} % end bypass } def % /sidebar1 {} def % temp lockout %%%% /sidebar2 { 8 -3 translate 1 dup scale % adjust to fit /title ( ) def /font0 /Helvetica [10 0 0 8.5 0 0] gonzofont /font1 /Helvetica [9 0 0 9 0 0] gonzofont /font2 /Helvetica-Bold [9 0 0 9 0 0 ] gonzofont /txtwide 156 def /yinc 11 def /Ymacro {/ypos ypos yinc 0.7 mul sub def} def /Zmacro {(h) stringmacro} def /ypos0 bt 3 sub def /yinc 17 def /xpos bl def /xpos0 xpos def /pm 0 def /sstretch 0.1 def /cstretch 0.2 def /ypos bt 20 sub def /txtwide bw def /colcheck {} def /ytopoflist bt 50 sub csf div def xpos txtwide 2 div add 0 add ytopoflist 18 add % (|2|CNAMES AND NUMBERS) cc ( ) cc % for new graybox /ypos ytopoflist def /columnspacing 158 def /yinc 10 def /xpos0 bl 35 add def /xpos xpos0 def /amacro {/yhold ypos def /ypos ytopoflist def /xpos xpos columnspacing add def /ypos ypos yinc add def} def /downtwo {/ypos ypos 2 sub def} def % temporary stretch /Zmacro {(h) stringmacro /ypos ypos namestretch sub def } def % temporary for 4 wide % /columnspacing 140 def % /xpos xpos 15 sub def xpos ypos (|L|2Bell Jar|1 35 Windsor Dr Amherst NH 03031 (603) 429-0948 |/surl |2www.tiac.net/users/shansen|/belljar |Z |2Binding Finishing & Distribution|1 PO Box 1226 Voorhees NJ 08043 (856) 770-0283 |/surl |2www.BFDonline.com|1|/bfd |Z |2e-Drive|1 7355 E Orchard Rd Ste 100 Englewood CO 80111 (800) 803-9488 |/surl |2www.e-driveonline.com|1|/edrive |Z |2Home Power|1 PO Box 520 Ashland OR 97520 (916) 475-3179 |/surl |2www.homepower.com|1|/homepower |Z |2ISD|1 2841 Junction Ave #204 San Jose CA 95134 (408) 428-1400 |/surl |2www.isd.com|1|/isd |Z |2LSI/CSI|1 1235 Walt Whitman Rd Melville NY 11747 (516) 271-0400 |/surl |2www.lsicis.com|1|/lsicsi |Z |a |2Microchip Technology|1 2355 W Chandler Blvd Chandler AZ 85224 (480) 786-7200 |/surl |2www.microchip.com|1|/microchip |Z |2Midwest Products|1 400 S Indiana St Hobart IN 46342 (800) 348-3497 |/surl |2www.midwestproducts.com|1|/midwest |Z |2Print On Demand Business|1 445 Broad Hollow Rd Melville NY 11747 (800) 308-6397 |/surl |2www.podb.com|/podb |Z |2Snaptron|1 2468 E 9th St Loveland CO 80537 (970) 663-2820 |/surl |2www.snaptron.com|1|/snaptron |Z |2Synergetics|1 Box 809 Thatcher AZ 85552 (914) 428-4073 |/surl |2www.tinaja.com|1|/tinaja |Z |2Ulrich's Dictionary|1 121 Chanlon Rd New Providence NJ 07974 (908) 771-7714 |/surl |2www.ulrichsweb.com|1|/ulrichs |Z ) cl } def /sidebar3 { 8 -3 translate 1 dup scale % adjust to fit /title ( ) def /font0 /Helvetica [10 0 0 8.5 0 0] gonzofont /font1 /Helvetica [9 0 0 9 0 0] gonzofont /font2 /Helvetica-Bold [9 0 0 9 0 0 ] gonzofont /txtwide 156 def /yinc 11 def /Ymacro {/ypos ypos yinc 0.7 mul sub def} def /Zmacro {(h) stringmacro} def /ypos0 bt 3 sub def /yinc 17 def /xpos bl def /xpos0 xpos def /pm 0 def /sstretch 0.1 def /cstretch 0.2 def /ypos bt 20 sub def /txtwide bw def /colcheck {} def /ytopoflist bt 50 sub csf div def xpos txtwide 2 div add 0 add ytopoflist 18 add % (|2|SOME RFID RESOURCES) cc ( ) cc % for new graybox /ypos ytopoflist def /columnspacing 158 def /yinc 10 def /xpos0 bl 35 add def /xpos xpos0 def /amacro {/yhold ypos def /ypos ytopoflist def /xpos xpos columnspacing add def /ypos ypos yinc add def} def /downtwo {/ypos ypos 2 sub def} def % temporary stretch /Zmacro {(h) stringmacro /ypos ypos namestretch sub def } def % temporary for 4 wide /columnspacing 140 def /xpos xpos 15 sub 12 sub def xpos ypos (|L|2A.I.M.|1 634 Alpha Drive Pittsburgh PA 15238 (412) 963-8588 |/surl |2www.aimglobal.org|1|/aim |Z |2Brady|1 PO Box 2999 Milwaukee WI 53201 (800) 368-3374 |/surl |2www.bradyrfid.com|1|/brady |Z |2Checkpoint Systems|1 101 Wolf Drive Thorofare, NJ 08086 (800) 257 5540 |/surl |2checkpointsystems.com|1|/checkpoint |Z |2Destron Fearing|1 490 Villaume Avenue South St Paul MN 55075 (651)455-1621 |/surl |2www.destron-fearing.com|1|/destron |Z |2Gemplus|1 3 Lagoon Dr Ste 300 Redwood City CA 94065 (650) 654-2900 |/surl |2www.gemplus.com|1|/gemplus |Z |a |2Holtek Holmate|1 48531 Warm Spring Blvd, Suite 413, Fremont, CA 94539 (510)252-9880 |/surl |2www.holmate.com|1|/holmate |Z |2ID Micro|1 1019 Pacific Ave 13th Fl Tacoma WA 98402 877.395.1479 |/surl |2www.idmicro.com|1|/idmicro |Z |2Indala|1 5201 Topllview Drive Rolling Meadows, IL 60080 (410)-712-6480 |/surl |2motorola.com/smartcard|1|/indala |Z |2Intersoft|1 205 Research Park Dr Tullahoma TN 37388 (931)454-2305 |/surl |2www.intersoft-us.com|/intersoft |Z |2Intermec|1 6001 36th Avenue West Everett, WA 98203-9280 (425) 348-2600 |/surl |2home.intermec.com|/intermec |Z |a |2Korteks|1 2227 Johns View Way San Diego CA 91977 (619) 303-5700 |/surl |2www.korteks.com|1|/korteks |Z |2Microchip Technology|1 2355 W Chandler Blvd Chandler AZ 85224 (480) 786-7200 |/surl |2www.microchip.com|1|/microchip |Z |2Micron Duratracker|1 625 Stratford, Ste 1000 Meridian ID 83642 (800)642-7678 |/surl |2www.micron.com|1|/micron |Z |2Minec|1 PO Box 7278 SE-187 14 Taby Sweden 46-8-630 92 92 |/surl |2www.minec.com|/minec |Z |2RFID Inc|1 3538 Peoria St #505 Aurora CO 80010 (303) 366-1234 |/surl |2www.rfidinc.com|1|/rfidinc |Z |a |2Synergetics|1 Box 809 Thatcher AZ 85552 (914) 428-4073 |/surl |2www.tinaja.com|1|/tinaja |Z |2Tagmaster|1 Electrum 410 SE-164 40 Kista Sweeden 46-8-6321950 |/surl |2www.tagmaster.com|1|/tagmaster |Z |2Telsor|1 PO Box 4423 Englewood CO 80155 303 622 8877 |/surl |2www.telsor.com|1|/telsor |Z |2Trovan|1 Electronic Identification (804) 565-1288 |/surl |2rfidnews.com|1|/rfidnews |/surl |2www.trovan.com|1|/trovan |Z |2Y-Tex|1 PO Box 1450 Cody WY 82414 (307)587-5516 |/surl |2http://www.y-tex.com|1|/ytex |Z ) cl } def % temphelp /hackhelp { % nt: hack.help % .. /sstretch 0 def /cstretch 0.1 def /font0 /Helvetica-Bold [8.5 0 0 8 0 0] gonzofont /font1 /Helvetica [8.5 0 0 8 0 0] gonzofont /font2 /Helvetica-Bold [8.5 0 0 8 0 0 ] gonzofont /font7 /Helvetica-Oblique [8.5 0 0 8 0 0] gonzofont /yinc 9.5 def /font2 {font1} def bc bt 15 sub (|0NEED HELP?) cc bl 14 add bt 30 sub (|1Phone or email all your US |2Tech Musings|1 questions to: |h Don Lancaster |2Synergetics|1 Box 809 Thatcher, AZ, 85552 (928) 428-4073 |h US email:|j |7don@tinaja.com|1 Web page:|j|j |7www.tinaja.com|1 ) cl } def %%% /f1name (Fig. 1 \261 SOME ENERGY DENSITY comparisons.) def /f2name (Fig. 2 \261 WHEN YOU TRY TO CONNECT n objects together, you'll find \ that (n)|j*|j(n+1)|j/|j2 paths are needed.)def /f3name (Fig. 3 \261 56 LEDS can be driven from one microcomputer \ port by using this n-connectedness trick. No external decoding is needed!) def /f4name (Fig. 4 \261 VISUAL BASIC .ASP CODE for a custom banner rotator.) def /f5name (Fig. 5 \261 JAVASCRIPT CODE to generate bouncy buttons.) def /ad1name ( ) def % dummy /s1name (SOME THERMODYNAMICS BOOKS)def /s2name (NAMES AND NUMBERS) def /s3name (SOME RFID RESOURCES) def /helpname (TEMPCHECK) def /Zmacro {/ypos ypos 1 add def 0 setlinewidth xpos ypos moveto txtwide 0 rlineto stroke /ypos ypos -2 add def} def % hair rule /reprogray {bestgray} def bestgray black /header {} def /setstrokeadjust where {pop /setstrokeadjust true def} if muse3 begin /cstretch 0.2 def /sstretch -0.3 def /showthegrid false def /LaserWriterG false def /boxdraw {bl bb bw bh brad roundbox blw setlinewidth stroke grestore } def /br {bl bw add} def /bb 0 def % picojust patch18 gonzo begin /swallow {/lopspaces lopspaces 1 add def printlist plistlength 1 sub get dup 1 get dup 2 ge {1 sub} if 1 exch put} bind def end /rdiode {gsave 180 rotate diode grestore} def % patch /grayshade 0.899 def % for compatibility /showcolors false def % temp for figure one cieF % BBBBBB % name of textfile: muse.149a broadband transformers etc % .... % X E % Z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This is needed to improve post picojustufication... gonzo begin /swallow {/lopspaces lopspaces 1 add def printlist plistlength 1 sub get dup 1 get dup 2 ge {1 sub} if 1 exch put} bind def end /wanttousepicojustify true def % this globally turns picojust on or off %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wanttousepicojustify false 40 array dictstack {/^picoset known or} forall not and { % FILL JUSTIFICATION IMPROVER version 6.3 June 3, 1994. c 1994 by % Don Lancaster & Synergetics (602) 428-4073. [support on GEnie PSRT] % Personal use premitted; All commercial & media rights fully reserved. % Install this where it will redefine all print time uses of % the -awidthshow- operator. Use picojust true or false to control. /picoflag true def % selective availability switch /picofract 0.35 def % percentage of excess space to be internalized /picothresh 0.03 def % percentage increment per font change /^picoset true def % job multiple def lockout /picojust {/picoflag exch store} def % use for local turn on or off /awidthshow {1 index 4 index 6 index add add 32 eq not picoflag not or {//awidthshow}{/^msg exch store pop /^cst exch store pop pop /^sst exch store /^cct ^msg length store /^rwd ^msg stringwidth pop store /^sct 0 ^msg {( ) search {pop pop exch 1 add exch}{pop exit} ifelse} loop store /^jwd ^cct ^cst mul ^sct ^sst mul add store /^saj ^jwd dup ^rwd add dup 0 eq {pop 0.0001} if div picothresh div floor picothresh mul picofract 1.33 mul mul 1 add store gsave ^saj 1 scale /^rft 1 ^saj 1 sub ^rwd mul ^jwd dup 0 eq {pop 0.0001} if div sub ^saj div store ^sst ^rft mul 0 32 ^cst ^rft mul 0 ^msg //awidthshow 1 ^saj div 1 scale grestore ^jwd ^rwd add 0 rmoveto} ifelse} bind def } if %%%%%%%%%%%%% SYNERGETICS AD %%%%%%%%%%%%%%%%%% %! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /ad1copy { save /adsave exch store green staytint % IMPORTANT: Comment or remove the next line to get the ad up to EN page size! % Do this **ONLY** if you are extracting the ad for EN layout! % 1.03 1.09 scale xpos 23 sub ypos 283 sub 31 add 3 add (ad processing at ) == 2 copy == pop pop 0 0 % temp translate 0.95 0.915 scale %%%% This code puts in the reader service number %%%% /showreaderservicenumber true def % now a catalog /readerservicenumber 146 def /squashad true def /showadgrays true def squashad {1 0.80 scale} if /height 693 114 add 60 add def % stretched twice /width1 165 def /bc width1 2 div def % huh /sidethk 4 def /botheight 54 def /topheight 33 def /outrad 10 def /inrad 5 def /pm 0 def /pmnorm 0 def %%%%%%%%%%%%%% KEYSTONE STUFF %%%%%%%%%%%%%%%%%%%%%%% % this is a repeat of the GONZO13B callout width proc ... gonzo begin /endtheline {/curwide txtwide roomleft sub def justx cvx exec oktoprint {printline} if} bind def /cw {save /snapc1 exch def /oktoadvance false def /oktoprint false def /linestring linestring2 def /justx (justL) def 3 1 roll /ypos exch def /xpos exch def stringgonzo curwide snapc1 restore} def end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This is a subtle correction to the gonzo fill justify that makes % txtwide slightly more precise ... gonzo begin /reallyjustF {swallowandhang roomleft cstretch add numchars 1 sub numspaces spacecharratio mul add dup 0 eq {pop 0.001} if div dup cstretch add /cfix exch def spacecharratio mul sstretch add /sfix exch def /xfix 0 def /yfix 0 def} bind def % unconditional justF end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % KEYSTONE STUFF STARTS HERE gonzo begin % This is the core keystone code routine. It works by taking an average % of the first two and last two string lengths to determine the keystone % slope, increment, and starting width. It then checks the length of % each line and extends the starting width as needed so everything fits. /keyproc {/kadj exch def /msg2 exch def /yy1 exch def /xx1 exch def mark {msg2 (\n) search {exch pop exch /msg2 exch def dup length 0 le {pop} if}{dup length 0 le {pop} if exit} ifelse} loop ] /karray exch def 0 0 karray 0 get cw 0 0 karray 1 get cw add 2 div dup 0 0 karray dup length 1 sub get cw 0 0 karray dup length 2 sub get cw add 2 div sub neg karray length 1 sub div dup /kinc exch def 2 div sub /kstart exch def /txtwide 10000 def 0 0 1 karray length 1 sub {/kpn exch def 0 0 karray kpn get cw kstart kinc kpn mul add sub 2 copy lt {exch} if pop} for kstart add 1.01 mul dup /kstart exch def /txtwide exch def /justifylastline true def 0 1 karray length 1 sub { /posn exch def yy1 xx1 kstart kadj exch posn karray exch get cf /txtwide txtwide kinc add def /xx1 xx1 kinc kadj def /yy1 yy1 yinc sub def} for} def % these are the three keystone routines. Use xpos ypos true (msg strings) % cck, etc. true for keystone; false for ordinary justify. /cck {save /keysnap exch def exch {{2 div sub} keyproc} {cc} ifelse keysnap restore} def % callout centered keystone /clk {save /keysnap exch def exch {{pop} keyproc} {cl} ifelse keysnap restore} def % callout left keystone /crk {save /keysnap exch def exch {{sub} keyproc} {cr} ifelse keysnap restore} def % callout right keystone end % close gonzo dictionary %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % outside box 0 0 width1 height 5 roundbox showadgrays {0.3}{0} ifelse setgray1 % for brown border fill % inside box sidethk botheight width1 sidethk 2 mul sub height topheight sub botheight sub inrad roundbox showadgrays {0.96 setgray}{white} ifelse fill black % shade for web /cstretch 0.7 def /sstretch 1.2 def /font1 /Revue 10 gonzofont /font3 /Revue 9 gonzofont /font4 /Revue [9 0 0 9.05 0 1] gonzofont /font9 /Helvetica-Bold 6.5 gonzofont /font2 /Revue 14 gonzofont font1 % adjust center /bc bc sidethk 2 div add def % top lettering white bc bt 22 add (|1new from) cc bc bt 6 add (|2DON LANCASTER) cc bc -17 (|2SYNERGETICS) cc /yinc 10 def bc -28 (|3B|1ox |3809-EN|1 |1Thatcher, |3AZ 85552 |4(|3924|4)|3 428-4073|1) cc /cstretch 0.1 def /sstretch 0.1 def /font5 /Helvetica-Narrow 8 gonzofont /font6 /Helvetica-Narrow-Bold 10 gonzofont /font7 /Helvetica 6 gonzofont /font8 /Helvetica-Narrow-Bold 8 gonzofont /font: /Helvetica-Bold [5 0 0 4.95 0 6] gonzofont % uneven for distillery /font- /Helvetica-Narrow-Oblique 8 gonzofont black 3 3 (|7FREE US VOICE HELPLINE) cl br 3 sub 3 (|7VISA|j/|jMC) cr /xpos 4 def /txtwide br 8 sub def /yinc 8.5 def /ypos bt 15.5 sub def /amacro {/ypos ypos 2 add def} def /cmacro {/ypos ypos 1 add def} def /kern 0.5 def /bw width1 sidethk 2 mul sub def % obtuse code avoids the arcto bug /bmacro { gsave showadgrays {0.3}{0} ifelse setgray % for brown border 0 ypos translate 0 0 mt 5 [-0.5 30 -0.5 3 bw 1 add 3 bw 1 add 30 ] roundpath 0 -31 rlineto bw 1 add neg 0 rlineto closepath fill newpath 0 0 mt 5 [-0.5 -30 -0.5 -3 bw 1 add -3 bw 1 add -30 ] roundpath 0 31 rlineto bw 1 add neg 0 rlineto closepath fill grestore } def /Umacro {ypos} def xpos ypos (|C|6A|kCTIVE|j|j FILTER|j|j COOKBOOK |h|a |C|6RESEARCH|j|j INFOPACKS |h|F|a |5Don's instant use other oneash-and-carry flat rate consulting. Ask any reasonable technical \ question to get a detailed analysis and report. See |/tinton www.tinaja.com/info01|/info01 \ for specifics. \ |8$79.00|5 |b |a |h |F|5The sixteenth|k (!|j)|k printing of Don's bible on analog op-amp lowpass, bandpass, and highpass active filters. De-mystified instant designs. |8 $28.50|1 |b |a |h |C|6CMOS|j|j AND|j|j TTL|j|j COOKBOOKS |h|a |F|5Millions of copies in print worldwide. |8THE|5 two books for digital integrated circuit fundamentals. About as hands-on as you can get. |8$28.50 |5each.|1 |b |a |h |C|6INCREDIBLE|j|j SECRET |h|c MONEY|j|j MACHINE|j|j II |5|h|F|a Updated 2nd edition of Don's classic on setting up your own technical or craft venture. |8$18.50|1 |b |a |h |C|6LANCASTER|j|j CLASSICS|j|j LIBRARY |5|h|a|F Don's best early stuff at a bargain price. Includes the CMOS Cookbook, The TTL Cookbook, Active Filter Cookbook, PostScript video, Case Against Patents, Incredible Secret Money Machine II, and \ Hardware \ Hacker II reprints. |8$119.50|1 |b |a |h |C|6L|kOTS|j|j OF|j|j OTHER|j|j GOODIES |5|h|a) stringgonzo %%%%%%%%%%%%%%%%%%%%%%%% % (A) WIDTH CALCULATIONS 2.20.91 % A new curwide variable lets you calculate the gonzo string % width independent of printing it. Handy for menu justify, etc.. % Use has to be bracketed with /oktoprint false def /oktoadvance % false def --- stuff --- and then true. Works with any justify mode. % make this change to main code so lengths can be extracted. Note that % roomleft gets flushed at line end. gonzo begin /endtheline {/curwide txtwide roomleft sub def justx cvx exec oktoprint {printline} if} bind def % calloutwidth calculates only the width of the string, returning it % to the top of the stack. For consistency with other callouts, use % 0 0 (string) cw. This INCLUDES all stretching and font changes! /cw {save /snapc1 exch def /oktoadvance false def /oktoprint false def /linestring linestring2 def /justx (justL) def 3 1 roll /ypos exch def /xpos exch def stringgonzo curwide snapc1 restore} def end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (B) MENU JUSTIFY 2.20.91 % The cm routine takes a leading string and a trailing string seperated % by a delimiter and places a row of CONSTANT WIDTH, PRECISELY SPACED, % VERTICALLY ALIGNED and WHOLE dots (or whatever) between the two. It % is based on putting down the dots first and ERASING only whole dots % that are not wanted. /menudots (. ) def /menufont {font5} def /mdoteht 3 def /menudelim ( ) def /cropleadingspaces true def % drawmdots draws a line of menu dots, using plain old show /drawmdots { gsave menufont xxm yym moveto txtwide menudots stringwidth pop dup /mdot1 exch def div floor cvi {menudots show} repeat grestore } def % spchomp takes a string and conditionally removes all leading spaces, % returning the truncated string /spchomp {cropleadingspaces {dup 0 exch {32 eq {1 add}{exit} ifelse } forall} if exch dup length 2 index sub 3 -1 roll exch getinterval} def % mlineproc takes the mline string and processes it into a leading string, % the dot row, and a trailing string. Unused dots are erased with logic % to insure whole dots only. Null strings are ignored. /mlineproc {mline length 0 gt {drawmdots mline menudelim search {/lmstr exch def pop spchomp /rmstr exch def } if gsave showadgrays {0.96}{1}ifelse setgray % for web color xxm yym moveto mdoteht setlinewidth 0 0 lmstr cw mdot1 div ceiling mdot1 mul 0 rlineto stroke xxm txtwide mdot1 div floor mdot1 mul add yym moveto 0 0 rmstr cw mdot1 div ceiling mdot1 mul neg 0 rlineto stroke grestore xxm yym lmstr cl xxm txtwide add yym rmstr cr /yym yym yinc sub def} if} def % mj menujustify accepts tabbed string pairs and converts them into % dotted menu listings.. /cm {gsave /msg exch def /yym exch def /xxm exch def { msg (\n) search {/mline exch def pop /msg exch def mlineproc} {/mline exch def mlineproc exit } ifelse} loop grestore} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % /txtwide 170 def % textwidth /txtwide txtwide 8 sub def /yinc 8 def xpos 4 add ypos 0 sub (Ask the Guru I or II or III $24.50 Hardware Hacker II, III or IV $24.50 Tech Musings V or VI $24.50 Micro Cookbook I $19.50 PostScript Beginner Stuff $29.50 PostScript Show and Tell $29.50 Intro to PostScript Video $29.50 PostScript Reference II $34.50 PostScript Tutorial/Cookbook $22.50 PostScript by Example $32.50 Understanding PS Programming $29.50 PostScript: A Visual Approach $22.50 PostScript Program Design $24.50 Thinking in PostScript $22.50 LaserWriter Reference $19.50 Type 1 Font Format $16.50 Acrobat Reference $24.50 Whole works (all PostScript) $380.00 Technical Insider Secrets |9|kFREE|j|j|j|5 ) cm /txtwide txtwide 8 add def xpos ypos (|F |h|c|c|c |b |a |h |C|6BOOK-ON-DEMAND|j|j PUB|j|j KIT |h|F|a |5Ongoing details on Book-on-demand publishing, a new method of producing books only when and as ordered. Reprints, sources, samples. |8$39.50|5 |b |a |h |C|6THE|j|j C|kASE|j|j A|kGAINST|j|j P|kA|kTENTS |h|F|a |5For most individuals, patents are virtually certain to end up as a net loss of sanity, energy, time, and money. \ This reprint set shows you Don's tested and proven real-world alternatives. |828.50|5 |b |a |h |C|6BLATANT|j|j OPPORTUNIST|j|j I |h|F|a |5The reprints from all Don's Midnight Engineering columns. Includes a broad range of real world, proven coverage on small scale technical startup ventures. Stuff you can use right now. \ |8$24.50|5 |b |a |h |C|6RESOURCE|j|j BIN|j|j I |h|F|a |5A complete collection of all Don's Nuts & Volts columns to date, including a new index and his master names and numbers list. |8$24.50|5 |b |a |h |C|6FREE|j|j SAMPLES |h|F|a |5Check Don's Guru's Lair at |-http://www.tinaja.com|5 for interactive catalogs and online samples \ of Don's unique products. Searchable reprints and reference resouces, too. Tech help, hot links to cool sites, consultants. |jemail:|j|- don@tinaja.com|1 ) stringgonzo showreaderservicenumber { /sstretch 0.25 def /cstretch 0.20 def /font1 /Helvetica-Bold [6 0 0 8 0 0 ] gonzofont bc 0 sub botheight neg 10 sub 2 sub %(Write in ) readerservicenumber ( ) cvs mergestr %( on Reader Service Card.) mergestr cc (FREE catalog: http://www.tinaja.com) cc } if adsave restore } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /figure5xx { % name of textfile: muse.fig.106.5 induction heating schematic % ............................ % figure or text starts here ////////////////////////////////////// save /snap5xx exch def %%%%%%%%%%%%%%%%%%% electronics begin end ypos snap5xx restore /ypos exch def } def %%%%% MUSE PATCHES %%%%% % Version 8.0 Jan 11, 1997 % Insert just before "Name of textfile" on "Z" page. muse3 begin %%%%%%%%%%%%%%%% New colorizer patches %%%%%%%%%%%%%%%%%% /boxgrays 0.899 def /grayshade boxgrays def /mastergray boxgrays def /staytint {0.33 setgray} def /staytint1 {0.25 setgray} def /showadgrays true def /red {0 settint} def /Zmacro {staytint /ypos ypos 2 add def 72 300 div setlinewidth xpos ypos moveto txtwide 0 rlineto stroke /ypos ypos -2 add def tintoff} def % hair rule /amacro {(zy0) stringmacro /ypos ypos ypara add def 0.33 setgray } def % start drop cap /bmacro {(iFy1) stringmacro /ypos ypos ypara add def black} def % finish drop cap % Gonzo character colorizer /blueon {mark /blue cvx 0.33 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /blueoff {mark /beige cvx 0 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton {mark 0.33 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1 {mark 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1b {mark beige cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1a {mark /aqua cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1p {mark /burple cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1r {mark /red cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1b {mark /beige cvx % try for beige after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tintoff {mark 0 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def %%%%%%%%%%%%%% COMPACT VERSION OF COLORIZER II %%%%%%%%%%%%%%%%%%%%%% /settint {dup /currenttint exch store 5.999 mul dup floor cvi /&cbar exch store dup floor sub /&cwt exch store [ {/setgray [ /dup cvx 0.3 &cwt 0.59 mul add /ge cvx [1 /exch cvx &cwt 0.59 mul 0.30 add /sub cvx 1 &cwt sub 0.59 mul 0.11 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx /exch cvx ] cvx [ &cwt 0.59 mul 0.3 add /div cvx /dup cvx &cwt /mul cvx 0] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 1 &cwt sub 0.3 mul add /ge cvx [1 &cwt sub 0.3 mul 0.59 add /sub cvx &cwt 0.3 mul 0.11 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx /exch cvx 1 /exch cvx] cvx [1 &cwt sub 0.3 mul 0.59 add /div cvx /dup cvx 1 &cwt sub /mul cvx /exch cvx 0] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 &cwt 0.11 mul add /ge cvx [&cwt 0.11 mul 0.59 add /sub cvx 1 &cwt sub 0.11 mul 0.30 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx 1 /exch cvx] cvx [0 /exch cvx &cwt 0.11 mul 0.59 add /div cvx /dup cvx &cwt /mul cvx] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 1 &cwt sub mul 0.11 add /ge cvx [1 &cwt sub 0.59 mul 0.11 add /sub cvx &cwt 0.59 mul 0.30 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx 1] cvx [0 /exch cvx 1 &cwt sub 0.59 mul 0.11 add /div cvx /dup cvx 1 &cwt sub /mul cvx /exch cvx] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.11 &cwt 0.30 mul add /ge cvx[&cwt 0.30 mul 0.11 add /sub cvx 1 &cwt sub 0.30 mul 0.59 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx /exch cvx 1] cvx [ &cwt 0.30 mul 0.11 add /div cvx /dup cvx &cwt /mul cvx /exch cvx 0 /exch cvx ] cvx /ifelse cvx /setrgbcolor cvx ] cvx /def cvx} {/setgray [ /dup cvx 0.30 1 &cwt sub 0.11 mul add /ge cvx[ 1 /exch cvx 1 &cwt sub 0.11 mul 0.30 add /sub cvx &cwt 0.11 mul 0.59 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx ] cvx [ 1 &cwt sub 0.11 mul 0.30 add /div cvx /dup cvx 1 &cwt sub /mul cvx 0 /exch cvx] cvx /ifelse cvx /setrgbcolor cvx ] cvx /def cvx} ] &cbar get exec exec} bind def /beige {0.10 settint} def % examples of convenience operators /aqua {0.52 settint} def /blue {0.67 settint} def /lime {0.44 settint} def /burple {0.75 settint} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% beige %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % //// REVISED PROC ///// electronics begin % dipdraw - draws a dip integrated circuit. (old code to be improved) % Enter with currentpoint set to pin 1 and scale % set so that 1.0 = distance between pins. Then % do a numpins-(name)-(hipins)-(lopins) dipdraw % Pin callouts preceeded by / will be complemented. % main dipdraw entry: /dipdraw { save /dipsnap exch def /hipins exch def /lopins exch def /chipname exch def /numpins exch def mark 0 0 0 0 0 0 0 0 0 0 0 0 % temp patch /howlong {numpins 2 div cvi 1 add} def /howhigh {4 numpins 36 ge {1 add} if} def /stub {howhigh 1.4 sub 2 div} def % internal service subs start here: /pinproc {numpins 2 div cvi{newpath 0 cpos 0.37 0 360 arc gsave 1 setgray fill grestore 0.067 setlinewidth stroke pin# 5 string cvs dup stringwidth pop 2 div neg cpos 0.2 sub moveto show 1 0 translate /pin# pin# dir add def} repeat } def /stretchprint { dup stringwidth pop 2 div neg exch length 1 sub stretch mul 2 div sub 0 moveto callout (/) anchorsearch true eq {currentpoint exch stretch add exch moveto pop dup /callout exch def stringwidth pop callout length 1 sub stretch mul add /barwide exch def 0.033 setlinewidth gsave currentpoint 0.55 add moveto barwide 0 rlineto stroke grestore} if stretch 0 callout ashow pop} def /pincallouts{0 vpos translate {workstring ( ) search true eq {/callout exch def pop /workstring exch def callout stretchprint 1 0 translate}{dup /callout exch def stretchprint exit } ifelse}loop} def % actual dipdraw process starts here: % ........ the outline: gsave 1 setlinecap 1 setlinejoin currentpoint translate newpath -1 howhigh 2 div 0.7 -90 90 arc 0 stub rlineto howlong 0 rlineto 0 howhigh neg rlineto howlong neg 0 rlineto closepath gsave grayshade setgray fill grestore grayshade dup 1 ne {0.33}{0} ifelse setgray 0.36 setlinewidth stroke newpath -.55 .45 0.15 0 360 arc fill black % ........ pin circles and numbers: /Helvetica-Bold findfont [0.4 0 0 0.55 0 0] makefont setfont gsave /pin# 1 def /dir 1 def /cpos 0 def pinproc grestore gsave /pin# numpins def /dir -1 def /cpos howhigh def pinproc grestore % pin callouts: /Helvetica findfont [0.35 0 0 0.6 0 0] makefont setfont /stretch 0.033 def gsave /workstring hipins def /vpos 0.6 def pincallouts grestore gsave /workstring lopins def /vpos howhigh 1.05 sub def pincallouts grestore % device number: grayshade 1 ne {0.33}{0} ifelse setgray /Helvetica-Bold findfont [1.4 0 0 1 0 0] makefont setfont /stretch 0.05 def gsave numpins 2 div 1 sub 2 div howhigh 2 div 0.33 sub translate chipname dup /callout exch def stretchprint grestore black % end cleanup: grestore grestore cleartomark dipsnap restore} def end % get out of electronics? % titleblock, headers and footers /titleblock {save /blurbsnap exch def /colcheck {} def /cstretch 0.2 def sstretch 1 def cml cmt bh1 sub 15 add translate /blurbboxwide 180 def /blurbboxhigh 80 def 1 setlinecap bestgray 3 23 mt hdw 15 sub blurbboxwide sub 3 sub 23 lineto hdw 3 sub 23 moveto -10 0 rlineto [6 0.33 4.5 .85] superstroke hdw blurbboxwide sub 15 sub 0 blurbboxwide blurbboxhigh 5 roundbox gsave grayshade setgray fill grestore % temp expt [4 0.33 2.5 .85] superstroke 0.85 setgray 4.5 setlinewidth -5 23 mt 3 r blurbboxwide 1 add 23 mt 3 r stroke grestore 0.33 setgray /font0 /Palatino-Bold 30 gonzofont /font1 /Palatino-Bold 10 gonzofont /font2 /Palatino-Bold 12 gonzofont font2 4 62 7 add author cl 0.33 setgray font0 3 34 4 add titlename cl font2 4 7 titledate cl 0.20 setgray /yinc 12 def hdw font1 105 sub 60 dokeystone titleblurb cck blurbsnap restore} def /hrule1 {gsave newpath setlinewidth 1 index 4 2 roll moveto lineto stroke grestore} def /leftheader {save /blurbsnap exch def /colcheck {} def cml cmt 16 add translate 0.25 setgray gsave mastergray setgray 0 8 mt 16 setlinewidth hdw r grestore % color fill? 0 0 hdw 1.2 hrule1 0 16 hdw 0.5 hrule1 /cstretch 0.2 def /sstretch 1 def /font2 /Palatino-Bold 11 gonzofont 8 4.5 leftheading cl blurbsnap restore} def /rightheader {save /blurbsnap exch def /colcheck {} def cml cmt 16 add translate 0.25 setgray gsave mastergray setgray 0 8 mt 16 setlinewidth hdw r grestore % color fill? 0 0 hdw 1.2 hrule1 0 16 hdw 0.5 hrule1 /cstretch 0.2 def /sstretch 1 def /font2 /Palatino-Bold 11 gonzofont hdw 8 sub 4.5 rightheading cr blurbsnap restore} def /hrule1 {gsave newpath setlinewidth 1 index 4 2 roll moveto lineto stroke grestore} def /leftfooter { save /blurbsnap exch def /colcheck {} def 0.25 setgray cml cmb 13 sub translate /txtwide 1000 store /font3 /Helvetica 4.5 gonzofont font3 hdw -6 (Copyright c 2001 by Don Lancaster and Synergetics (928) 428-4073 www.tinaja.com \ All commercial rights and all electronic media rights fully reserved. \ Reposting is expressly forbidden.) cr 0 0 hdw 0.8 hrule1 gsave 25 0 translate -18 -7 36 14 2 roundbox gsave mastergray setgray fill grestore 0.5 setlinewidth stroke /font2 /Palatino-Bold 11 gonzofont /cstretch 0.4 def 16 2 add 3.5 columnum ( ) cvs (.) mergestr colpagenum ( ) cvs mergestr cc blurbsnap restore /colpagenum colpagenum 1 add def } def % adjusted for 100 - was -16 -7 32 14 /rightfooter {save /blurbsnap exch def /colcheck {} def cml cmb 13 sub translate /txtwide 1000 store /font3 /Helvetica 4.5 gonzofont font3 0.25 setgray 0 -6 (Copyright c 2001 by Don Lancaster and Synergetics (928) 428-4073 www.tinaja.com \ All commercial rights and all electronic media rights fully reserved. \ Reposting is expressly forbidden.) cl 0 0 hdw 0.8 hrule1 gsave hdw 25 sub 0 translate -18 -7 36 14 2 roundbox gsave mastergray setgray fill grestore 0.5 setlinewidth stroke /cstretch 0.4 def /font2 /Palatino-Bold 11 gonzofont 16 2 add 3.5 columnum ( ) cvs (.) mergestr colpagenum ( ) cvs mergestr cc blurbsnap restore /colpagenum colpagenum 1 add def} def /hackhelp { % nt: hack.help % .. /sstretch 0 def /cstretch 0.1 def /font0 /Helvetica-Bold [8.5 0 0 8 0 0] gonzofont /font1 /Helvetica [8.5 0 0 8 0 0] gonzofont /font2 /Helvetica-Bold [8.5 0 0 8 0 0 ] gonzofont /font7 /Helvetica-Oblique [8.5 0 0 8 0 0] gonzofont /yinc 9.5 def /font2 {font1} def 0 grayshade 1 ne {pop 0.25} if setgray bc bt 15 sub (|0NEED HELP?) cc bl 14 add bt 30 sub (|1Phone or email all your US |2Tech Musings|1 questions to: |h Don Lancaster |2Synergetics|1 Box 809-EN Thatcher, AZ, 85552 (928) 428-4073 |h US email:|j |7|/surl don@tinaja.com|1|/maildon Web page:|j|j |7|/surl www.tinaja.com|1|/tinaja ) cl } def /ad1 {cm3 cmb 1colwide f5h false true /ad1name /ad1copy stdmusefig} def % link /ad1name ( ) def /h1h yinc 14 mul def % height of optional help box end % muse3 template %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /showreaderservicenumber false def /showadgrays true def /ad1copy { save /adsave exch store 0 8 translate % adjusts position on page was -127 % IMPORTANT: Comment or remove the next line to get the ad up to EN page size! % Do this **ONLY** if you are extracting the ad for EN layout! % 1.03 1.09 scale green staytint xpos 23 sub ypos 283 sub 22 add (ad processing at ) == 2 copy == == pop pop 0 0 % temp translate % this one? 0.95 0.915 scale %%%% This code puts in the reader service number %%%% /readerservicenumber 146 def /squashad true def squashad {1 0.80 scale} if /height 693 114 add 60 add def % stretched twice /width1 165 def /sidethk 4 def /botheight 54 def /topheight 33 def /outrad 10 def /inrad 5 def /pm 0 def /pmnorm 0 def %%%%%%%%%%%%%% KEYSTONE STUFF %%%%%%%%%%%%%%%%%%%%%%% % this is a repeat of the GONZO13B callout width proc ... gonzo begin /endtheline {/curwide txtwide roomleft sub def justx cvx exec oktoprint {printline} if} bind def /cw {save /snapc1 exch def /oktoadvance false def /oktoprint false def /linestring linestring2 def /justx (justL) def 3 1 roll /ypos exch def /xpos exch def stringgonzo curwide snapc1 restore} def end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This is a subtle correction to the gonzo fill justify that makes % txtwide slightly more precise ... gonzo begin /reallyjustF {swallowandhang roomleft cstretch add numchars 1 sub numspaces spacecharratio mul add dup 0 eq {pop 0.001} if div dup cstretch add /cfix exch def spacecharratio mul sstretch add /sfix exch def /xfix 0 def /yfix 0 def} bind def % unconditional justF end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % KEYSTONE STUFF STARTS HERE gonzo begin % This is the core keystone code routine. It works by taking an average % of the first two and last two string lengths to determine the keystone % slope, increment, and starting width. It then checks the length of % each line and extends the starting width as needed so everything fits. /keyproc {/kadj exch def /msg2 exch def /yy1 exch def /xx1 exch def mark {msg2 (\n) search {exch pop exch /msg2 exch def dup length 0 le {pop} if}{dup length 0 le {pop} if exit} ifelse} loop ] /karray exch def 0 0 karray 0 get cw 0 0 karray 1 get cw add 2 div dup 0 0 karray dup length 1 sub get cw 0 0 karray dup length 2 sub get cw add 2 div sub neg karray length 1 sub div dup /kinc exch def 2 div sub /kstart exch def /txtwide 10000 def 0 0 1 karray length 1 sub {/kpn exch def 0 0 karray kpn get cw kstart kinc kpn mul add sub 2 copy lt {exch} if pop} for kstart add 1.01 mul dup /kstart exch def /txtwide exch def /justifylastline true def 0 1 karray length 1 sub { /posn exch def yy1 xx1 kstart kadj exch posn karray exch get cf /txtwide txtwide kinc add def /xx1 xx1 kinc kadj def /yy1 yy1 yinc sub def} for} def % these are the three keystone routines. Use xpos ypos true (msg strings) % cck, etc. true for keystone; false for ordinary justify. /cck {save /keysnap exch def exch {{2 div sub} keyproc} {cc} ifelse keysnap restore} def % callout centered keystone /clk {save /keysnap exch def exch {{pop} keyproc} {cl} ifelse keysnap restore} def % callout left keystone /crk {save /keysnap exch def exch {{sub} keyproc} {cr} ifelse keysnap restore} def % callout right keystone end % close gonzo dictionary %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % outside box 0 0 width1 height 5 roundbox showadgrays {0.3}{0} ifelse setgray % for brown border fill % inside box sidethk botheight width1 sidethk 2 mul sub height topheight sub botheight sub inrad roundbox showadgrays {grayshade setgray}{white} ifelse fill black % shade for web /cstretch 0.7 def /sstretch 1.2 def /font1 /Revue 10 gonzofont /font3 /Revue 9 gonzofont /font4 /Revue [9 0 0 9.05 0 1] gonzofont /font9 /Helvetica-Bold 6.5 gonzofont /font2 /Revue 14 gonzofont font1 % adjust center /bc bc sidethk 2 div add def % top lettering white bc bt 22 add (|1new from) cc bc bt 6 add (|2DON LANCASTER) cc bc -17 (|2SYNERGETICS) cc /yinc 10 def bc -28 (|3B|1ox |3809-EN|1 |1Thatcher, |3AZ 85552 |4(|3924|4)|3 428-4073|1) cc /cstretch 0.1 def /sstretch 0.1 def /font5 /Helvetica-Narrow 8 gonzofont /font6 /Helvetica-Narrow-Bold 10 gonzofont /font7 /Helvetica 6 gonzofont /font8 /Helvetica-Narrow-Bold 8 gonzofont /font: /Helvetica-Bold [5 0 0 4.95 0 6] gonzofont % uneven for distillery /font- /Helvetica-Narrow-Oblique 8 gonzofont black 3 3 (|7FREE US VOICE HELPLINE) cl br 3 sub 3 (|7VISA|j/|jMC) cr /xpos 4 def /txtwide br 8 sub def /yinc 8.5 def /ypos bt 15.5 sub def /amacro {/ypos ypos 2 add def} def /cmacro {/ypos ypos 1 add def} def /kern 0.5 def /bw width1 sidethk 2 mul sub def % obtuse code avoids the arcto bug /bmacro { gsave showadgrays {0.3}{0} ifelse setgray % for brown border -0.45 ypos translate 0 0 mt 5 [-0.5 30 -0.5 3 bw 1 add 3 bw 1 add 30 ] roundpath 0 -31 rlineto bw 1 add neg 0 rlineto closepath fill newpath 0 0 mt 5 [-0.5 -30 -0.5 -3 bw 1 add -3 bw 1 add -30 ] roundpath 0 31 rlineto bw 1 add neg 0 rlineto closepath fill grestore } def /Umacro {ypos} def xpos ypos (|/tinton1 |C|6A|kCTIVE|j|j FILTER|j|j COOKBOOK |h|a |F|5The sixteenth|k (!|j)|k printing of Don's bible on analog op-amp lowpass, bandpass, and highpass active filters. De-mystified instant designs. |8 $28.50|1 |b |a |h |/tinton1 |C|6RESEARCH|j|j INFOPACKS |h|F|a |5Don's instant cash-and-carry flat rate consulting service. Ask any reasonable technical \ question for a detailed analysis and complete report. See |/surl www.tinaja.com|j/|jinfo01|/info01g \ for specifics. \ |8$79.00|5 |b |a |h |C|/tinton1 |6CMOS|j|j AND|j|j TTL|j|j COOKBOOKS |h|a |F|5Millions of copies in print worldwide. |8THE|5 two books for digital integrated circuit fundamentals. About as hands-on as you can get. |8$28.50 |5each.|1 |b |a |h |/tinton1 |C|6INCREDIBLE|j|j SECRET |h|c |/tinton1 MONEY|j|j MACHINE|j|j II |5|h|F|a Updated 2nd edition of Don's classic on setting up your own technical or craft venture. |8$18.50|1 |b |a |h |/tinton1 |C|6LANCASTER|j|j CLASSICS|j|j LIBRARY |5|h|a|F Don's best early stuff at a bargain price. Includes the CMOS Cookbook, The TTL Cookbook, Active Filter Cookbook, PostScript video, Case Against Patents, Incredible Secret Money Machine II, and \ Hardware \ Hacker II reprints. |8$119.50|1 |b |a |h |/tinton1 |C|6L|kOTS|j|j OF|j|j OTHER|j|j GOODIES |5|h|a) stringgonzo %%%%%%%%%%%%%%%%%%%%%%%% % (A) WIDTH CALCULATIONS 2.20.91 % A new curwide variable lets you calculate the gonzo string % width independent of printing it. Handy for menu justify, etc.. % Use has to be bracketed with /oktoprint false def /oktoadvance % false def --- stuff --- and then true. Works with any justify mode. % make this change to main code so lengths can be extracted. Note that % roomleft gets flushed at line end. gonzo begin /endtheline {/curwide txtwide roomleft sub def justx cvx exec oktoprint {printline} if} bind def % calloutwidth calculates only the width of the string, returning it % to the top of the stack. For consistency with other callouts, use % 0 0 (string) cw. This INCLUDES all stretching and font changes! /cw {save /snapc1 exch def /oktoadvance false def /oktoprint false def /linestring linestring2 def /justx (justL) def 3 1 roll /ypos exch def /xpos exch def stringgonzo curwide snapc1 restore} def end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (B) MENU JUSTIFY 2.20.91 % The cm routine takes a leading string and a trailing string seperated % by a delimiter and places a row of CONSTANT WIDTH, PRECISELY SPACED, % VERTICALLY ALIGNED and WHOLE dots (or whatever) between the two. It % is based on putting down the dots first and ERASING only whole dots % that are not wanted. /menudots (. ) def /menufont {font5} def /mdoteht 3 def /menudelim ( ) def /cropleadingspaces true def % drawmdots draws a line of menu dots, using plain old show /drawmdots { gsave menufont xxm yym moveto txtwide menudots stringwidth pop dup /mdot1 exch def div floor cvi {menudots show} repeat grestore } def % spchomp takes a string and conditionally removes all leading spaces, % returning the truncated string /spchomp {cropleadingspaces {dup 0 exch {32 eq {1 add}{exit} ifelse } forall} if exch dup length 2 index sub 3 -1 roll exch getinterval} def % mlineproc takes the mline string and processes it into a leading string, % the dot row, and a trailing string. Unused dots are erased with logic % to insure whole dots only. Null strings are ignored. /mlineproc {mline length 0 gt {drawmdots mline menudelim search {/lmstr exch def pop spchomp /rmstr exch def } if gsave showadgrays {grayshade}{1}ifelse setgray % for web color xxm yym moveto mdoteht setlinewidth 0 0 lmstr cw mdot1 div ceiling mdot1 mul 0 rlineto stroke xxm txtwide mdot1 div floor mdot1 mul add yym moveto 0 0 rmstr cw mdot1 div ceiling mdot1 mul neg 0 rlineto stroke grestore xxm yym lmstr cl xxm txtwide add yym rmstr cr /yym yym yinc sub def} if} def % mj menujustify accepts tabbed string pairs and converts them into % dotted menu listings.. /cm {gsave /msg exch def /yym exch def /xxm exch def { msg (\n) search {/mline exch def pop /msg exch def mlineproc} {/mline exch def mlineproc exit } ifelse} loop grestore} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % /txtwide 170 def % textwidth /txtwide txtwide 8 sub def /yinc 8 def xpos 4 add ypos 0 sub (Tech Musings V or VI $24.50 Ask the Guru I or II or III $24.50 Hardware Hacker II, III or IV $24.50 Micro Cookbook I $19.50 PostScript Beginner Stuff $29.50 PostScript Show and Tell $29.50 PostScript Video & secrets $29.50 PostScript Reference II $34.50 PostScript Tutorial/Cookbook $22.50 PostScript by Example $32.50 Understanding PS Programming $29.50 PostScript: A Visual Approach $22.50 PostScript Program Design $24.50 Thinking in PostScript $22.50 LaserWriter Reference $19.50 Type 1 Font Format $16.50 Acrobat Reference $24.50 Whole works (all PostScript) $380.00 Technical Insider Secrets |9|kFREE|j|j|j|5 ) cm /txtwide txtwide 8 add def xpos ypos (|F |h|c|c|c |b |a |h |/tinton1 |C|6BOOK-ON-DEMAND|j|j PUB|j|j KIT |h|F|a |5Ongoing details on Book-on-demand publishing, a new method \ of producing books only when and as ordered. Reprints, \ sources, samples. |8$39.50|5 |b |a |h |/tinton1 |C|6THE|j|j C|kASE|j|j A|kGAINST|j|j P|kA|kTENTS |h|F|a |5For most individuals, patents are virtually certain to result in a net loss of sanity, energy, time, and money. \ This reprint set shows you Don's tested and proven real-world alternatives. |828.50|5 |b |a |h |/tinton1 |C|6BLATANT|j|j OPPORTUNIST|j|j I |h|F|a |5The reprints from all Don's Midnight Engineering columns. Includes a broad range of real world, proven coverage on small scale technical startup ventures. Stuff you can use right now. |8$24.50|5 |b |a |h |/tinton1 |C|6RESOURCE|j|j BIN|j|j I |h|F|a |5A complete collection of all Don's Nuts & Volts columns to date, including a new index and his master names and numbers list. |8$24.50|5 |b |a |h |/tinton1 |C|6FREE|j|j SAMPLES |h|F|a |5Check Don's Guru's Lair at |-|/surl http://www.tinaja.com|5|/tinaja for interactive \ catalogs and online samples \ of Don's unique products. Searchable reprints and reference resouces, too. Tech help, hot links to cool sites, consultants. |jemail:|j|- |/surl don@tinaja.com|1|/maildon ) stringgonzo showreaderservicenumber { /sstretch 0.25 def /cstretch 0.20 def /font1 /Helvetica-Bold [6 0 0 8 0 0 ]gonzofont bc 0 sub botheight neg 10 sub 2 sub % (Write in ) readerservicenumber ( ) cvs mergestr % ( on Reader Service Card.) mergestr cc (FREE catalog: http://www.tinaja.com (do NOT provide RS number!!) ) cc } if adsave restore } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %%% ADDITIONAL ELECTRONICS PATCHES %%%% electronics begin /npn {gsave newpath exch 0.2 sub exch translate -.1 0 1.2 0 360 arc gsave grayshade dup 1 ne {0.15 sub} if setgray fill grestore line2 stroke -0.2 0 translate line3 -.3 -.7 moveto 1.4 u line1 -.3 0 mt 1.3 l -.2 .4 mt 0.6 0.4 rlineto 1.2 u newpath -.2 -0.4 mt 0.6 -0.4 rlineto 1.2 d newpath 0.4 -0.75 mt -.2 .3 rlineto -.2 -.3 rlineto closepath fill grestore} def /npnl {gsave translate -1 1 scale 0 0 npn grestore} def /pnp {gsave newpath exch 0.2 sub exch translate -.1 0 1.2 0 360 arc gsave grayshade dup 1 ne {0.15 sub} if setgray fill grestore line2 stroke -0.2 0 translate line3 -.3 -.7 moveto 1.4 u line1 -.3 0 mt 1.3 l -.2 .4 mt 0.6 0.4 rlineto 1.2 u newpath -.2 -0.4 mt 0.6 -0.4 rlineto 1.2 d newpath -.2 .4 mt .3 .4 rlineto .1 -.3 rlineto closepath fill grestore} def /pnpl {gsave translate -1 1 scale 0 0 pnp grestore} def /circ3 {gsave currentpoint newpath 0.8 0 360 arc gsave grayshade dup 1 ne {0.15 sub} if pop 1 % try white setgray fill grestore black line1 stroke grestore} def % end % electronics % %%%ZZZZ%%%%%%%%%%%%%% URL PATCHES %%%%%%%%%%%%%%%%%%%%%%%%%%%% % patch definitions... % dictionary method << %% these are urls only... /ebay {(http://cgi6.ebay.com/aw-cgi/eBayISAPI.dll?ViewListedItems&userid=abeja) eurl} def /reviewed (http://www.tinaja.com/books/bkreview.asp) /tek (http://www.reprise.com/host/tektronix/home) /inkpot (http://inkpot.com/news/usstate.html) /freenrg (http://groups.yahoo.com/group/FE-OU-FraudVictims/messages/1) /heath (http://www.circuitarchive.co.uk/heath.htm) /beaty (http://www.escribe.com/science/freenrg) /keely (http://www.escribe.com/science/keelynet) /ulrichs (http://www.ulrichsweb.com/ulrichsweb) /nrel (http://www.nrel.gov) /nrelh2 (http://www.eren.doe.gov/hydrogen/pdfs/27079.pdf) /belljar (http://www.tiac.net/users/shansen/belljar) /bfd (http://www.BFDonline.com) /edrive (http://www.e-driveonline.com) /homepower (http://www.homepower.com) /isd (http://www.isd.com) /lascar (http://www.lascarelectronics.com) /lsicsi (http://www.lsicis.com) /microchip (http://www.microchip.com) /midwest (http://www.midwestproducts.com) /podb (http://www.podb.com) /snaptron (http://www.snaptron.com) /ti (http://www.ti.com) /databs (http://www.crhc.uiuc.edu/~dburke/databookshelf.html) /banndatax (http://www.tinaja.com/banners/banndatax.txt) /delvies (http://www.delviesplastics.com) /iasco (http://www.iasco-tesco.com) /abbeon (http://www.abbeon1.com) /usplastics (http://www.usplastic.com) /small (http://www.smallparts.com) /gibbs (http://www.compusmart.ab.ca/plambeck/che/p102/p02051.htm) /exergy (http://www.ecen.com/eee9/ecoterme.htm) /stuart (http://www.stuartenergy.com) /radioshack (http://www.radioshack.com) /manchester (http://www.its.bldrdoc.gov/fs-1037/dir-011/_1616.htm) /reedsol (http://www.4i2i.com/reed_solomon_codes.htm) /radioworld (http://www.rwonline.com) /precision (http://www.precisionnav.com) /active1 (http://www.amazon.com/obidos/ISBN%3D075062986X/donlancastersgurA/002-2002949-8012011) /h2news (news://sci.energy.hydrogen) /barro (http://www.tinaja.com/barro.jpg) /barrox (http://www.tinaja.com/barrox.jpg) % |1Kenneth J. Wark, |3|/surl Advanced Thermodynamics for Engineers|1|/book1 % |1D. M. Rowe, |3|/surl CRC Handbook of Thermoelectrics|1|/book2 % |1Ivo Kolin, |3|/surl Evolution of the Heat Engine|1|/book3 % |1Richard Feynman, |3|/surl Feynman Lectures on Physics: Kinetics and Heat|1|/book4 % |1Frank P. Incropera, |3|/surl Fundamentals of Heat and Mass Transfer|1|/book5 % |1John F. Sandfort, |3|/surl Heat Engines|1|/book6 % |1B. Sunden, |3|/surl Heat Transfer in Gas Turbines|1|/book7 % |1J. M. Smith, |3|/surl Introduction to Chemical Engineering Thermodynamics|1|/book8 % |1James R. Senft, |3|/surl Introduction to Stirling Engines|1|/book9 % |1David R. Gaskell, |3|/surl Introduction to Thermodynamics of Materials|1|/book10 % |1Z. Warhaft, |3|/surl Introduction to Thermal-Fluid Engineering|1|/book11 % |1D. Kondepudi, |3|/surl Modern Thermodynamics : From Heat Engines\274 |1|/book12 % |1P. W. Atkins, |3|/surl The Second Law |1|/book13 % |1G. Walker, |3|/surl The Stirling Alternative : Power Systems, \274 |1|/book14 % |1Herbert B. Callen, |3|/surl Thermodynamics and Thermostatistics \274 |1|/book15 % |1H. C. Van Ness, |3|/surl Understanding Thermodynamics \274 |1|/book16 % |1Christian Von Baeyer , |3|/surl Warmth Disperses and Time Passes \274 |1|/book17 /book1 (http://www.amazon.com/exec/obidos/ISBN=0070682925/donlancastersgurA) /book2 (http://www.amazon.com/exec/obidos/ISBN=0849301467/donlancastersgurA) /book3 (http://www.amazon.com/exec/obidos/ISBN=0965245527/donlancastersgurA) /book4 (http://www.amazon.com/exec/obidos/ISBN=0738201642/donlancastersgurA) /book5 (http://www.amazon.com/exec/obidos/ISBN=0471390801/donlancastersgurA) /book6 (http://www.amazon.com/exec/obidos/ISBN=0313207844/donlancastersgurA) /book7 (http://www.amazon.com/exec/obidos/ISBN=1853126667/donlancastersgurA) /book8 (http://www.amazon.com/exec/obidos/ISBN=0072402962/donlancastersgurA) /book9 (http://www.amazon.com/exec/obidos/ISBN=0965245500/donlancastersgurA) /book10 (http://www.amazon.com/exec/obidos/ISBN=1560324325/donlancastersgurA) /book11 (http://www.amazon.com/exec/obidos/ISBN=0521581001/donlancastersgurA) /book12 (http://www.amazon.com/exec/obidos/ISBN=0471973947/donlancastersgurA) /book13 (http://www.amazon.com/exec/obidos/ISBN=0716760061/donlancastersgurA) /book14 (http://www.amazon.com/exec/obidos/ISBN=2881246001/donlancastersgurA) /book15 (http://www.amazon.com/exec/obidos/ISBN=0471862568/donlancastersgurA) /book16 (http://www.amazon.com/exec/obidos/ISBN=0486632776/donlancastersgurA) /book17 (http://www.amazon.com/exec/obidos/ISBN=0375753729/donlancastersgurA) /pdfbut (http://www.searchpdf.adobe.com) /hotbot (http://www.hotbot.com) /google (http://www.google.com) /intro (http://www.ednmag.com/ednmag/reg/2000/08172000/17hiw.htm) /bogus (http://people.qualcomm.com/karn/papers/vmsk/index.html) /vmsk (http://www.vmsk.org) /castleen (http://www.castleen.com) /gydebook (http://hazmat.dot.gov/gydebook.htm) /publist (http://www.publish.com) /oxbridge (http://www.mediafinder.com) /science (http://www.sciencemag.org) /aim (http://www.aimglobal.org) /brady (http://www.bradyrfid.com) /checkpoint (http://www.checkpointsystems.com) /destron (http://www.destron-fearing.com) /gemplus (www.gemplus.com) /holtek (http://www.holmate.com) /holmate (http://www.holmate.com) /idmicro (http://www.idmicro.com) /indala (http://www.motorola.com/smartcard) /intersoft (http://www.intersoft-us.com) /intermec (http://home.intermec.com) /korteks (http://www.korteks.com) /micron (http://www.micron.com) /minec (http://www.minec.com) /rfidinc (http://www.rfidinc.com) /tagmaster (http://www.tagmaster.com) /telsor (http://www.telsor.com) /rfidnews (http://rfidnews.com) /trovan (http://www.trovan.com) /ytex (http://www.y-tex.com) /ng1 (news:///sci.techniques.testing.nondestructive) /ng01 (news:///sci.sci.electronics.design) /ng02 (news:///3alt.ham-radio.vhf-uhf) /adobe (http://www.adobe.com) /edn (http://www.ednmag.com) /nettest (http://www.gnnettest.com) /kindt (http://www.kindt-collins.com) /super (http://www.supercircuits.com) /supertex (http://www.supertex.com) /ti (http://www.ti.com) /tfcb (http://www.tfcbooks.com) /holtek (http://www.holtek.com) /rprox (http://www.rwprox.com/WWW.html) /rfidnews (http://www.rfidnews.com) /touch (http://www.repair.org) /bytes (http://www.adobe.com/support/downloads/5c16.htm) /amidon (http://www.bytemark.com/amidon) /ieee (http://www.ieee.org) /minicircuits (http://www.minicircuits.com) /mws (http://www.mwswire.com) /trlx (http://.prime net.com/~ctrask/trlxfmr.html) /adobepi (http://www.adobe.com/adobe/svg) /w3org (http://www.w3.org) /drhtml (http://www2.imagiware.com/RxHTML) /data (http://www.chrc.uiuc.edu/~dburke/databookshelf.html) /arnold (http://www.arnoldeng.com) /fairrite (http://www.fair-rite.com) /infineon (http://www.infineon.com) /kawat (http://www.elitemagnetics.com) /mmg (http://www.mmgna.com) /tdk (http://www.component.tdk.com) /chips (http://www.chipcenter.com) /allied (http://wwwwww.allied.avnet.com) /batmag (http://www.infowebcom.com/battery) /desnews (http://www.designnews.com) /digikey (http://www.digikey.com) /edn (http://www.ednmag.com) /eetimes (http://www.cmp.com) /ecn (http://www.cahners.com) /eldesign (http://www.penton.com) /elproducts (http://electronicproducts.com) /grainger (http://www.grainger.com) /machdesign (http://www.machinedesign.com) /mcmaster (http://www.mcmaster.com) /m&c(http://www.mac-med.com) /mouser (http://www.mouser.com) /newark (http://www.newark.com) /partsx (http://www.partsexpress.com) /pcim (http://www.pcim.com) /rfdesign (http://www.intertec.com) /sensors (http://www.sensormag.com) /adhesive (http://www.adhesivesmag.com) /scisurp (http://www.sciplus.com) /belljar (http://www.tiac.net/users/shansen/belljar) /burr (http://www.burr-brown.com) /candh (http://aaaim.com/CandH/index.htm) /carroll (http://www.carrolltouch.com) /ccell (http://www.circuitcellar.com) /ecg (http://www.ecgproducts.com) /fair (http://www.fairradio.com) /fuelcell (http://www.elsevier.com) /hittite (http://www.hittite.com) /interlink (http://www.interlinkelec.com) /jameco (http://www.jameco.com) /marlin (http://www.mpja.com) /luke (http://lukesys@nrc.com) /microchip (http://www.microchip.com) /nature (http://www.nature.com) /science (http://www.sciencemag.com) /nte (http://www.nteinc.com) /rochester (http://www.rocelec.com) /seiko (http://www.seiko-usa-ecd.com) /sunset (http://www.sunsetsilicon.com) /smallparts (http://www.smallparts.com) /stm (http://www.st.com) /think3 (http://www.think3.com) /expedite (http://www.expediters.com) /webconx (http://.webconx.com/fuelcell.htm) /ndt (http://www.ndt.org) >> {mark exch /eurl cvx ] cvx def} forall /uniscan {(http://www.uniscan.co.uk/pr02.htm) eurl} def /bath {(http://www.bath.ac.uk/~chsacf/solartron/electro/html/int.htm) eurl} def /intermarket {(http://www.intermarket.net/~don/dschlamp.html) eurl} def /tno {(http://www.tno.nl/instit/kribc/ca-den_helder/caeis.html) eurl} def /isea {(http://www.rwth-aachen.de/isea/Ww/texte/abstract/ka_vrla.html) eurl} def /minerva {(http://minerva.acc.virginia.edu/~cese/taylor/eisshort.html) eurl} def /questlink {(http://www.questlink.com) eurl} def /mailnasa {(mailto:corrosion@ksc.nasa.gov) eurl} def /homepower {(http://www.homepower.com) eurl} def /transtronics {(http://www.transtronics.com) eurl} def /maildon {(mailto:don@tinaja.com) eurl } def /tinaja {(http://www.tinaja.com) eurl } def /consult {(http://www.tinaja.com/consul01.html) eurl} def /netscape {(http://www.netscape.com) eurl } def /adobe {(http://www.adobe.com) eurl } def /aerp {(http://www.aa.washington.edu/AERP/CRYOCAR/CryoCar.htm) eurl } def /jdisk {(http://www2.hawaii.edu/suremath/jdisk1.html) eurl } def /billb {(http://www.eskimo.com/~billb/freenrg/n-mach.html) eurl } def /cool {(http://www.mtsc.unt.edu/CooLN2Car.html) eurl} def /hack73 {(http://www.tinaja.com/glib/hack73.pdf) eurl} def /hacklib {(http://www.tinaja.com/hack01.html) eurl} def /magic {(http://www.tinaja.com/magsin01.html) eurl} def /fourier {(http://www.tinaja.com/psutils/fourier.ps) eurl} def /zeroharm {(http://www.tinaja.com/psutils/zeroharm.ps) eurl} def /sincat210 {(http://www.tinaja.com/sn210cat.ps) eurl} def % power method... /setglib {mark (http://www.tinaja.com/glib/) 2 index 20 string cvs mergestr (.pdf) mergestr /eurl cvx ] cvx def} def /sethtml {mark (http://www.tinaja.com/) 2 index 20 string cvs mergestr (.asp) mergestr /eurl cvx ] cvx def} def /setweb {mark (http://www.) 2 index 20 string cvs mergestr (.com) mergestr /eurl cvx ] cvx def} def /magicsin {/msinprop} def /parallax {/parallaxinc} def [ /when2pat /msinprop /magicsin /nuts08 /gramtram /muse112 /muse113 /hack64 /hack86 /ratholes /hack52 /postflut /emergop4 /resbn67 /stepsynt /resbn50 /muse128 /ratholes /resbn73 /elesimp /dontsick /muse117 /bannyear /muse104 /trimode /hack64 /emergop3 /muse125 /syncat01 /muse90 /muse142 /muse147 /muse148 /muse138 /bannyear /bashpseu /hack82 /muse151 /hack 64 /hack86 /bustpat /resbn66 /bouncy ] {setglib} forall [ /magsn01 /patnt01 /ismm01 /ismm01 /libry01 /resbn01 /blat01 /advt01 /barg01 /amlink01 /muse01 /bod01 /scweb01 /tinaja01 /synlib01 /info01 /picup01 /webwb01 /golly01 /santa01 /synlib01 /acrob01 /consul01 /h2gas01 /post01 /eeweb01 /hack01 /weblib01 /pseudo01 /info01 /beewb01 ] {sethtml} forall [ /parallaxinc /lindsay /bh /amazon /hotbot /discoverypark /keelynet /homepower /epri /rmi /mgfx /newtek /maxim-ic /tinaja /digital.altavista ] {setweb} forall /papers {(http://cfarx1.harvard.edu/rx_lab) eurl} def /mmt {(http://maisel.as.arizona.edu:8080) eurl} def /nrao {(http://info.aoc.nrao.edu) eurl} def /eskimo {(http://www.eskimo.com/~billb) eurl} def /lindsay {(http://www.keynet.net/~lindsay) eurl } def /adams {(http://www.adams1.com/pub/russadam) eurl} def /aha {(http://www.ahasoft.com/complink.htm) eurl} def /wavelet {(http://www.waveloe.org/wavelet/links.html) eurl} def /drms {(http://www.drms.dla.mil) eurl} def /billb {(http://www.eskimo.com/~billb) eurl} def /info01g {(http://www.tinaja.com/info01.html) eurlg} def %%%%%% % This code locks pdfmark commands out of a PostScript printer. /pdfmark where {pop}{userdict /pdfmark /cleartomark load put} ifelse % /surl "start url" marks the beginning of a text sequence to be urled. % It also paints the text blue... /surl {mark /blue cvx 0.33 /setgray cvx % change text to blue /currentpoint cvx % remember box start /urly /exch cvx /store cvx /urlx /exch cvx /store cvx ] cvx % complete deferred command printlist exch 3 index exch put % stuff into gonzo printlist exch 1 add exch % increment gonzo list count } def % /eurl "end url" unmarks the end of a text sequence and sets up % the pdfmark needed to define the Acrobat web link. /eurl {mark % start deferred proc exch % position url string /beige cvx 0 /setgray cvx % turn blue marker off /makeurl cvx % defer call of url builder ] cvx % complete deferred proc printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } def /eurlg {mark % special green for ad % start deferred proc exch % position url string /green cvx 0 /setgray cvx % turn blue marker off /makeurl cvx % defer call of url builder ] cvx % complete deferred proc printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } def % /makeurl generates the pdfmark, receiving a {(urlstring) makeurl}. % Note that it is not called until formatted printlist time... /urlover 0.2 def % fraction of hot area over bounds /makeurl { /cururlname exch store % save the url string mark % start pdfmark currentfont /ScaleMatrix get 3 get /fsize exch store % guess height /Rect [ urlx fsize urlover mul sub % set box left x urly fsize urlover mul sub % set box left y currentpoint exch fsize urlover mul add exch fsize add ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def %%%%%%% END MUSE PATCHES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% muse3 starttemplate /sstretch -0 def % try even looser /kern 0.5 def /dropindent 25 def % adjust for width of drop cap /sstretch 0 def % looser still /font0 /Times-Bold [52 0 0 54.1 0 -32] gonzofont % normal /font0 /Times-Bold [60 0 0 54.1 0 -32] gonzofont % wider e /font: /Times-Roman [6.5 0 0 6.5 0.5 3.5 ] gonzofont % squared /font9 /Times-Roman [6 0 0 6.0 0.5 4] gonzofont % squared subscript %/font9 /Symbol 9 gonzofont % delta /kern 0.5 def % Command Summary: % |0 - small caps font |1 - normal text font |2 - italic text font % |3 - bold text font |4 - caps text font |6 - header font % |F - fill justify |L - left justify |z - zero indent % |p - normal indent |y - negative linefeed |8 - header font % |g - start gonzo |x - stop gonzo |a - start drop cap % |b - main body text |c - start sub header |d - end sub header % |o - complement char /sstretch 0 def % /font9 /Symbol [9 0 0 0 0 0] gonzofont % delta /kern 0.5 def /font; /Times-Roman [7 0 0 7.01 0 3] gonzofont % square root symbol and gonzo box autoposition linker /topstrlist {mark 3 1 roll {/roomleft exch roomleft exch sub def printlist exch 3 index exch put exch 1 add exch} /exec cvx ] cvx def} def /boxit{ gsave line1 currentpoint translate -1 -3 mt 10.5 pu 50.5 pr 10.5 pd closepath line1 stroke grestore} 0 topstrlist /sqrtsymbol {gsave currentpoint translate line1 3 3 moveto 2 -5 rlineto 4 12 rlineto 32 0 rlineto stroke grestore} 0 topstrlist % TEXT STARTS HERE /tabs [60] def /hhhxx {/ypos ypos 5 add store} def % wierd patch % tracking insets /integralinset {save /mat2snap exch store /cmb -9999 store % lock out column advance /ylimit -9999 store gsave xpos 10 add ypos translate /font6 /Times-Roman [8.5 0 0 8.5 0 4] gonzofont /font7 /Times-Italic [8 0 0 8 0 4] gonzofont /font8 /Times-Roman [6 0 0 6 0 6] gonzofont /font9 /Symbol [22 0 3 22 0 -7] gonzofont 38 0 (|9\362 |k|k|k|k|k|k|2e|j|j|6a|7x|j|82|2dx) cl grestore mat2snap restore % /ypos ypos yinc 7 mul sub def % make room } def %%%%%%% /font9 /Helvetica [7 0 0 7 0.2 2.5] gonzofont % superscript? /font: /Helvetica [7 0 0 7 0 -2] gonzofont % subscript? /setsymbolnow {/font= /Symbol 9 gonzofont} def /led { mt currentpoint circ3 ddiode } def /circ3 {gsave currentpoint newpath 0.8 0 360 arc line2 stroke grestore} def %for led startgonzo |a I |b sure find perverse joy when I watch all those |/surl |6Bill Beaty|1|/beaty and |/surl |6Keelynet|1|/keely denizens showing off their utter cluelessness of even the most basic \ scientific principles.|p So, I guess it may be a good time to review a few\274 |c Energy|j Fundamentals |d Let us briefly look at a few of the topics you will need to understand to intelligently \ evaluate new alternate energy claims\274|z |h |/tinton1p |6energy and power|j\320|1|/tintoff |/beige Uh, for starters, |/tinton1b |6energy|1|/tintoff is the |/beige |/tinton1b |6ability|1|/tintoff to do work, and |/tinton1b |6power|1|/tintoff equals the |/tinton1b |6time rate|1|/tintoff of \ doing work. So, energy is "how much?" and power is "how fast?".|p One unit of energy is the |/tinton1 |6BTU|1|/tintoff , or |/tinton1b \ |/tinton1b |6British Thermal Unit|1|/tintoff . Which equals the amount of energy needed to raise the \ temp of one pound of water one degree Farenheit. Roughly \ the energy in one kitchen match. An alternate unit of energy is the |/tinton1b |6Joule|1|/tintoff . A Joule equals the heat energy provided by one Ampere of current routed to a one Ohm resistor from a one volt dc source for one second. A Joule also \ happens to equal |4.000948|1 |4BTU's|1. Or |40.73756|1 foot pounds. One unit of power is the |/tinton1b |6Watt|1|/tintoff . Or an energy \ time rate of |/tinton1b |6one Joule per |/tinton1b second|1|/tintoff . A watt also \ equals one amp of current across one dc volt.|p A second power unit would be the |/tinton1b |6horsepower|1|/tintoff . One \ horsepower equals |4745.7 watts|1, |4745.7|1 Joules per second, or |40.707|1 BTU's per second, or |4550|1 \ foot pounds per second. Going back to energy units, a |/tinton1b |6watt |/tinton1 second|1 |/tintoff of energy equals \ a Joule. One |/tinton1b |6watt hour|1|/tintoff is |43600|1 Joules. One hundred watt hours of energy are easily visualized as a larger \ light bulb or running up stairs for an full hour. Or eight minutes of microwave cooking. Or \ |420,000|1 hours of pv solar calculator use. |h|z |/tinton1p |6sources, carriers, sinks|j\320|1|/tintoff I'll define an energy |/tinton1b |6source|1|/tintoff as any substance or \ process that is capable of delivering |/tinton1b |6net|1|/tintoff |4BTU|1's or Joules of |/tinton1b |6useful|1|/tintoff energy to the on-the-books economy.|p Gasoline is an energy source since it takes \ something like the energy in one quart of old gasoline to produce and \ deliver a gallon of new gasoline. An energy |/tinton1 |6carrier|1|/tintoff is any substance or process \ that has to be "filled" with old energy before it can be "emptied". Examples include batteries, terrestrial hydrogen, or flywheels. The \ filling and emptying process is |/tinton1 |6always|1|/tintoff lossy. So, more initial energy \ input is |/tinton1 |6always|1|/tintoff needed than you can ever hope to get back. An energy carrier can not \ ever in any manner be called "nonpolluting", since it assumes the \ characteristics of the original net energy sources. And \ then wastes a fraction of them. An |/tinton1 |6energy sink|1|/tintoff is any substance or process which consumes \ significantly more old energy than it is capable of delivering new. Corn ethanol under American Farm economy conditions is an energy sink \ because it takes the energy in three gallons of gasoline to produce one new gallon of ethanol. Ethanol today is neither renewable or sustainable. Photovoltaic Solar is still an energy sink because |/tinton1r |6not one net watt hour |/tinton1r of \ pv solar energy has ever gotten |/tinton1r generated|1|/tintoff . While the latest of panels sometimes \ are able to return more than their energy used to \ build them, they cannot yet amortize most fully burdened total solar systems.|/beige Silicon pv cells today have a big efficiency problem: They only accept one \ exact energy level. Anything less or any excess gets rejected as waste \ heat. Solar-to-electric is more likely to end up using |4MEMS|1 antennas \ or dye molecules. Or similar broadband efficient conversion methods. Solar pv breakeven can be expected around eight years or so after its \ fully burdened cost drops under ten cents per kilowatt hour. Depending upon the figures used and how decomm plays out, nuclear energy ends up \ somewhere between a staggering energy sink and a minor net source \ that clearly was not worth the mind-numbing hassle.|z |/tinton1p |6energy density|j\320|1|/tintoff If energy delivery is to get evaluated or compared, you will need a \ measurement scheme.|p Two obvious questions to ask are "how much does it weigh?" \ and "How much room does it take up?" Answers to either of these can be \ a measure of |/tinton1b |6energy density|1|/tintoff .|p A |/tinton1 |6gravimetric|1|/tintoff energy density unit that makes for the easiest \ comparison would seem to be in |/tinton1 |6Watt hours per |/tinton1 kilogram|1|/tintoff or Wh/Kg. A |/tinton1 |6volumetric|1|/tintoff energy density unit is |/tinton1b |6Watt hours \ per liter|1|/tintoff or |4Wh/l|1. Figure one shows us approximate energy densities for a few popular \ energy sources, carriers, and sinks. Gasoline is a useful standard for comparison \ at |49000|1 |4Wh/l|1 and |413,000|1 Wh/Kg. The best of today's batteries are only \ beginning to approach |/tinton1 |6five |/tinton1 percent|1|/tintoff of these values. While |4STP|1 hydrogen ironically is both the "best" \ at |439,000|1 Wh/kg and the "worst" at an utterly pitiful |42.7|1 Wh/l. Watt hours per liter do tend to be a lot more significant for earthbound apps, while \ Watt hours per kilogram become crucial for deep space. See our |/surl |6Hydrogen|1|/h2gas01 library page.|z |h |/tinton1p |6thermodynamics|j\320|1|/tintoff It is very easy to convert other energy forms into heat. But only a fraction \ of heat energy is normally convertible back into other forms of energy. The study \ of this raw deal is called |/tinton1b |6thermodynamics|1.|p Nearly every physical or biological system ends up \ thermodynamically limited in one way or another.|p The three main thermo "laws" are |4(1) You can't win. |4(2)|1 You \ can't break even, and |4(3) You can't even get out of the game. \ No exceptions to these have |/tinton1b |6ever|1|/tintoff been found|p Two key thermodynamic concepts are |/tinton1b |6Carnot's Law|1|/tintoff and |/tinton1b |6reversibility|1|/tintoff . Carnot's \ Law places an inherent efficiency limit to conversion of \ heat to any other energy type. |/tinton1r |6You always |/tinton1 have to waste a lot of \ heat if you |/tinton1 try to convert a little|1|/tintoff . The highest possible efficiency you can have \ would be in a |/tinton1b |6Carnot Cycle|1|/tintoff that gets limited by your temperature \ difference between input and output. Ferinstance, an auto engine will be about 35% efficient, while the best of \ utility power plants are approacing a 60% efficiency. Most low temp heat \ recovery schemes appear doomed to failure because of their unavoidably low efficiency limits. A |/tinton1b |6reversible|1|/tintoff process is one that is produces \ zero low grade waste heat. Regardless of the direction in which it is run. Examples include |/tinton1b |6adiabatic|1|/tintoff ones which neither add nor \ remove heat, or |/tinton1 |6isothermal|1|/tintoff ones that occur at \ constant temperature. Reversible processes are essential for \ energy efficiency. The bladeless |/surl |6Tesla Turbine|1|/muse128 is one example of a system that \ |/tinton1 |6demands|1|/tintoff irreversibility to work at all. And is thus inherently inefficient. All of those |/surl |6Peltier|1|/ratholes thermoelectric modules are also irreversible due to their \ ludicrous inefficiency. More on thermodynamics can be found in |/surl |6HACK64.PDF|1|/hack64 |z |h |/tinton1p |6engineering economics|j\320|1|j|/tintoff There are many \ costs associated with an energy delivery system. The \ feedstock price is obviously a factor. But, more often than not, \ your true delivery costs are dominated by your |/tinton1b |6delivery \ system |/tinton1 price|1|/tintoff and its infrastructure, the |/tinton1b |6time |/tinton1b value of the money|1|/tintoff used to \ finance the delivery system, and all the |/tinton1b |6labor|1|/tintoff you will need to service \ and maintain the delivery system.|p Plus external costs such as \ health or environmental issues. Or future decomm expenses. \ Further confused by any taxes or subsidies. In the final analysis, it is only the |/tinton1b |6totally burdened system level costs|1|/tintoff that really \ should matter. We looked at this way on back in |/surl |6HACK86.PDF|1|/hack86 .|p It is sometimes convenient to view "dollars" as being so many "gallons of gasoline". You do personally vote for this definition every time you \ make a withdrawal from the |4ATM|1 pump at your nearby |2Texaco|1 bank. Those fully burdened costs of any energy system could get looked at as the diversion (or "waste") of gallons of \ gasoline from other uses. Thus, today oil is at least six times more "free" than solar pv energy is. Especially when you include costs of storage batteries, fancy wiring, and synchronous inverters.|z |h |/tinton1p |6entropy and exergy|j\320|1|/tintoff |6|/tinton1b Entropy|1|/tintoff is a crucial thermodynamic property that tells us \ that, when left to their own devices, systems tend to go to hell in a handbasket. Or more precisely, \ will often increase their amount of chaos or disorder. Because of entropy, it is exceedingly unlikely that your pool balls will rerack or the dishes will end up washing themselves.|p Not all kilowatt hours are equally useful. |/tinton1b |6Exergy|1|/tintoff is one measure of the |/tinton1b |6value|1|/tintoff of recoverable energy in any given form. Thus, electricity may be worth ten cents a kilowatt hour and gasoline \ only three. The reason being that it is easier and more efficient to convert electricity to other \ forms. While |/tinton1b |6conservation of energy|1|/tintoff tells \ us that energy can not normally get created or destroyed, the \ twin exergy and entropy factors |/tinton1b |6guarantee|1|/tintoff \ that |/tinton1r |6all energy degrades in time.|1|/tintoff Usually into irrecoverable low grade heat. We recently looked into exergy in |/surl |6MUSE151.PDF|1|/muse151 .|z |h |/tinton1p |6energy efficiency|j\320|1|/tintoff The |/tinton1b |6efficiency|1|/tintoff of any system is the ratio of how much \ you get back compared to how much you put in. For all closed \ systems, the efficiency will |/tinton1b |6always|1|/tintoff end up \ being less than |41.0|1 or |4100|1 percent.|p But it is real easy to \ make big time mistakes when measuring efficiency. For instance, \ there could be multiple energy inputs. Such as electricity and heat \ in any heat pump. Or hydrogen electrolysis that can be \ |/tinton1b |6exothermic|1|/tintoff , |/tinton1b \ |6endothermic|1|/tintoff , or |/tinton1 |6thermoneutral|1|/tintoff . Efficiency measurements may also conveniently forget that much of the |/tinton1b |6life cycle costs|1|/tintoff \ are in the labor and equipment amortization. Efficiency measurements must not ignore exergy. \ Hydrogen electrolysis \ manages to convert ten cent kilowatt hours into kilowatt \ hours worth only a fraction of a cent. |/tinton1r |6Electrolysis energy from on-grid \ |/tinton1 electricity makes zero economic or |/tinton1 thermodynamic sense.|1|/tintoff It is often enormously difficult to measure power in a nonlinear system with strange waveforms. Especially if any mechanical or low delta-T heat energy is involved. |/tinton1r |6Virtually all \ typical low budget |/tinton1 power measurements are flat out |/tinton1 wrong!|1|/tintoff \ The usual problems are not appreciating the difference between average \ and rms measurements. Or not understanding |/tinton1b |6crest factors|1|/tintoff . Or realizing how nasty low delta-T heat measurements can get. Only recently have low cost chips gotten developed for \ accurate power measurement. Some of the perils and pitfalls that are \ involved are in |/surl |6MUSE112.PDF|1|/muse112 , in |/surl |6MUSE113.PDF|1|/muse113 , \ |/surl |6MUSE125.PDF|1|/muse125 , or others in our |/surl |6Tech Musings|1|/muse01 library. |/surl |6Home Power|1|/homepower is a useful but overly optimistic resource for energy info. Also see our |/surl |6Its a Gas|1|/h2gas01 library page or our custom |/surl |6InfoPack|1|/info01 services. |c N|j|j-|j|jConnectedness |d Sometimes one math concept can end up with many uses. One example might be \ called the |/tinton1b |6N|j-|jconnectedness|1|/tintoff problem. Which asks us "How many \ different paths are possible between n different objects? Figure two gives an example where we see the |466|1 possible paths between \ |412|1 objects. Play with several values of n for a while, and you'll see that \ the generalized formula is (|j|1n|92|1|j+|jn|j)|j/|j2. Or (n)*(n+1)/2. The connections start \ off slow, but end up building nearly at the square of n. String art anyone? One use would be in peer-to-peer networks. But n-connectedness also \ explains why adding surprisingly few people to a group may dramatically change the dynamics \ and create lots of new problems. It might be interesting to build a real time n-connectedness map of a website \ where the |/tinton1 |6thickness|1|/tintoff of your connections revealed the popularity of each page access and the |/tinton1 |6color|1|/tintoff the \ from-to direction. Revealing all of your site strengths and weaknesses. We may save this for later. Those |/surl |6Microchip Technology|1|/microchip folks have developed a unique |/surl |6elegantly|/elesimp |/surl simple|1|/elesimp \ use for n-connectedness. One that involves\274 |c Interfacing |jLED |jDisplays |d How many light bulbs does it take to change a microcomputer port? If you are \ building something using a moving message ad display, or just want to use \ lots \ of LED's, this can get to be a very real question. A typical micro port line has three states: A high impedance for inputs, a logic low output, or a logic high output. A |4LED|1 will only \ light when a current limited voltage of just over two volts is applied. Note that two \ or more series |4LED|1's will not light if they are in parallel with \ a single lit |4LED|1. Because their \ combined thresholds are too high. Note also that a |4LED|1 will withstand five volts of reverse voltage. Thus, a |4LED|1 will |/tinton1 |6not|1|/tintoff light when it is reverse biased or if its \ voltage is too low. Figure three shows us a unique n-connectedness setup that lets you control an \ amazing |456 LED|1's from a single 8-bit port. Any particular |4LED|1 is lit \ when one terminal is set to logic zero and the other to logic one. \ All other port lines are made inputs. Yes, there's all sorts of sneak paths of two or more lamps. But, as we've just seen, they can \ not light because of the combined thresholds or the reversed polarities. To light several |4LED|1's at once, you have your software scan the needed \ outputs at a rapid rate. The bulbs will get dimmer as their \ duty cycle drops. External tri-state drivers can be added for more brightness. Note that only one |4LED|1 can be lit at a time, or sneak paths will result. Also note that you get two |4LED|1's per path, one \ for each direction. Certain |4LED|1's will actually be more efficient at \ higher current levels. Four times the current for one fourth the \ time may actually end up brighter than normal. Check your |/surl |6LED Data|/databs |/surl Sheets|1|/databs to be sure. Normally, some current limiting is needed with |4LED|1's that is \ provided with appropriate resistors. Only eight are needed as shown. But often port characteristics and port "on" times can get \ matched to the |4LED|1 in use to safely current limit to an attractive brightness \ level. The actual resistor values vary with your use. Typical \ values might be in the range of |427|1 Ohms or so. Set by \ the brightness and duty cycle. The brightness for many bulbs lit will depend on the allowable \ duty cycle. Some sort of protection in the form of a capacitively coupled \ driver or whatever might be a good idea. Something to prevent the port lines ever getting "stuck" with one always on and badly overloaded |4LED|1. The problems are greatly eased by using those new superbright |4LED|1's. You could control |4132 LED|1's with |412|1 port \ lines and |4240|1 with |416|1. As the n-connectedness math tells us. Additional sourcecode and design assistance \ can get found in ap notes on their |/surl |6Microchip Web Site|1|/microchip or \ by way of my |/surl |6InfoPack|1|/info01 service. |c Shuffling |jRight |jAlong |d I needed to shuffle eight positions for our upcoming banner rotator, so I thought we'd review a pair of those |/tinton1 |6shuffling options|1|/tintoff we looked at in my \ |/surl |6Apple Assembly Cookbook|1|/amlink01 . |/tinton1 |6Shuffling \ with replacemet|1|/tintoff means you put the number \ back after you use it. Such as in one roll of a \ die. This is easily handled by most any random or pseudorandom number generator per \ the details in my |/surl |6CMOS|/amlink01 |/surl Cookbook|1|/amlink01 . |/tinton1 |6Shuffling without replacement|1 says that once you've used a number, it gets \ removed from your pool of future available numbers. Such as one card dealt from a deck. It turns out there is a subtle flaw in the "obvious" shuffling algorithm of "exchange each card at random with itself or any other". Consider three cards. There could only \ be |/tinton1 |6six|1|/tintoff shuffling outcomes |4(|jABC, ACB, \ BAC, BCA, CAB, CBA|j)|1, but there are |/tinton1 |6twenty-seven|1|/tintoff possible results of any of three \ cards swapped with itself or the two others. It is not possible to arrange |427|1 whole objects into |46|1 equal sized piles. Which says that some of your outcomes will be \ more likely than the others. This bias does become quite small as n increases, but it still is an obvious no-no for a true shuffle. Instead, use this algorithm\274 |h|L|6|/staytint1 To shuffle n items, replace all items with themselves or any other item |/tinton1r lower|/tinton1b in the deck, chosen at random. |h|1|F|/black By swapping only equal or lower cards, you \ eliminate the favoritism and end up giving \ equal odds to all outcomes. The details vary with your choice of language and device. \ Basically you start a countdown loop that picks \ a random number |/tinton1 |6equal or less than|1|/tintoff your current card. Since few languages \ include a swap command, you copy the swapper \ to a temp location, move the swappee to \ your original swapper location, and finally move temp \ into swapee. A Visual Basic example is shown as part of upcoming figure four. |c Banner Ad Rotation |d How can you make unique images show up in different \ places on a web page? Such that each and every user views \ a different display every time they return or refresh? The trick is to go to |4.ASP|1 or |/tinton1b |6Active |/tinton1 Server Pages|1|/tintoff \ that might let your |4ISP|1 dynamically generate new pages "on the fly" \ when and as needed. I have recently covered some |4.ASP|1 tricks in |/surl |6BOUNCY.PDF|1|/bouncy and have got a handy list of |4.ASP|1 titles on our \ |/surl |6Book|/amlink01 |/surl Access|1|/amlink01 page. An |4.ASP|1 file usually includes both |4HTML|1 code and \ scripts. When called, the |4.ASP|1 file dynamically generates \ a final delivered web page by following the script commands. I wanted some features that were different than a stock banner rotator could \ deliver. I wanted to have eight slots per page which would fill with \ different ad banners. With no repeats and fresh delivery each time. \ And with |/tinton1 |6one|1|/tintoff data file that automatically updated \ hundreds of site pages. Figure four shows some details. You can view a demo on our |/surl |6Guru's|/tinaja |/surl Lair|1|/tinaja home page \ just by hitting your refresh button several times. Basically (literally since I used VB), you set up an |/tinton1 |6abcdefgh|1|/tintoff string. You then randomly shuffle this string to build \ a new string with all the letters rearranged. Such as |/tinton1 |6hbfecgdag|1|/tintoff We then find out what position ad "a" is supposed to be in, and then put it there. The process repeats for ads \ "b" thru "h" autorotating all of the ads into appropriate slots. Note that |4.ASP|1 pages have to be tested "live", because only your |4ISP|1 normally has the code to use them to generate the desired output. The file delivered to your end user is |/tinton1 |6not|1|/tintoff the \ original |4.ASP|1 file! A simple "View Source" won't hack it. More on banner possibilities are in |/surl |6BANNYEAR.PDF|1|/bannyear and |/surl |6advt01.asp|1|/advt01 . |c Thermodynamics |jBooks |d I have gathered some of the better thermodynamics titles together for you as this month's \ book reference. These also can be picked up on our |/surl |6Book Access|1|/amlink01 page. \ A reminder that you can support the |/surl |6Guru's Lair|1|/tinaja at no cost to \ yourself by buying |/tinton1 |6all|1|/tintoff of your books through this link. My favorite popular thermo book remains Sandforth's |/tinton1 |6Heat Engines|1|/tintoff See if you can't find it as the ancient |2Doubleday Science Series|1 paperback. |c New |jTech|j Lit |d From |/surl |6ISD|1|/isd , a nice |4CD ROM|1 on \ their line of speech recording chips. Free snap dome switch samples are offered by |/surl |6Snaptron|1|/snaptron , while micro cut quality woods are sold by the folks at |/surl |6Midwest Products|1|/midwest . A few assorted web links: Access to |/surl |6Ulrichts Periodicals Dictionary|1|/ulrichs is now at last online. Superb coverage of older Tektronix oscilloscopes is clickable at the |/surl |6Tektronix Resource|/tek |/surl |6Site|1|/tek . One of the site webmasters is \ Stan Griffiths, who is the author of |/surl |6Oscilloscopes: Restoring a Classic|1|/reviewed . Some Heathkit schematics are up at |/surl |6Circuit Archive|1|/heath , and a \ linked list of major newspapers is at |/surl |6Inkpot|1|/inkpot . This |/surl |6Free Energy Fraud|1|/freenrg forum traffic seems light. \ And is mostly the sameold sameold from the usual suspects. A key problem with manic pursuit of \ anything is that you may become what you attack. Finally, the |/surl |6NREL|1|/nrel has \ posted a rather well done |/surl |6Hydrogen Energy Economics|1|/nrelh2 paper . Trade journals for this month include Steve Hansen's labor-of-love |/surl |6Bell Jar|1|/belljar on homebrew high vacuum . Plus |/surl |6e-drive|1|/edrive on electric vehicles, and |/surl |6binding finishing & distribution|1|/bfd and |/surl |6Print-on-Deamand business|1|/podb . A reminder that many outstanding |/surl |6Surplus Bargains|1|/barg01 can be found |/surl |6here|1|/barg01 , and are offered on |/surl |6eBay|1|/ebay as well. For all the fundamentals of active filter circuits, |kdo be \ sure to check out my |/tinton1 |6Active Filter Cookbok|1|/tintoff . Find it at \ |/surl |6www.tinaja.com/amlink01.asp|1|/amlink01 And a final reminder about our cash-and-carry \ |1InfoPack|1 consulting at \ |/surl |6www.tinaja.com/info01.asp|1|/info01 . Let's hear from you. There are lots of new possibilities here.|/tinton1 |-F|1 |x 57 348 208 sub % 282 sub menu8 showpage ( bumped to make room for bogus Tesla titles and the new |2Feedline|1 newsletter are \ newly available from |/surl |2Twenty First Century Books|1|/tfcb .) ( future shuffling algorithm, error, and banner rotation example energy fundamentals wh/l wh/kg net versus gross exergy ) pop ( As usual, most mentioned items can be found in our \ clickthroughs, |2Names & Numbers|1 or |2Wideband Transformer \ Resources|1 sidebars. Check here before \ you email |/surl |2don@tinaja.com|1|/maildon or you use our no-charge \ |4US|1 technical helpline shown in the nearby box. Let's hear from you. ) pop