thecloud@dhw68k.cts.com (Ken McLeod) (11/25/88)
For those of you who have mind-numbing quantities of INITs whose icons march across the screen at boot time, and would like to see ALL the icons displayed in neat rows, I submit the following improvement on the INIT recently posted by David Phillip Oster. The following is an INIT file that will "wrap" icons displayed at startup if there are more than can fit across the screen. A new row is started ABOVE the first, and so on. To use the INIT, it must be in the System Folder, and must be renamed relative to your other INITs, so that it will run at some point BEFORE the icons hit the edge of the screen. Caveat: if run before John Lim's "Moire," or Tim Maroney's "Backdrop," those two INITs will crash. The temporary solution, until I either figure out why or someone on the net points it out, is to make sure Moire and Backdrop, if installed, load BEFORE "IconWrap." Otherwise, IconWrap appears to be "perfectly safe." Naturally, you use IconWrap at your own risk; I will not be responsible for any loss of data, etc. due to its use. This INIT is public domain, with one restriction: if you can improve on this code, you must post it to the net! :-) Bug reports are welcome! Please let me know if you find 'em... -ken thecloud@dhw68k.cts.com --------- begin file "IconWrap INIT"... cut here --------------- (This file must be converted with BinHex 4.0) :$Nj*BfpZ9h*KF#"*6NP8!%P15946D'p3!3!!!!!!!!!$$A,R!!!!!!%!!!!#dJ! !!G)!!!!l1@i!$J!#1@i!%J!'B#i`,!!#X'i!$Q`1-#i!$T!!E!!#$NC*BfpZ9h* KF#"*6NP853)!!!"*6NP88fK[8!!!!!!!!%P15946D'p3!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!Rl+fD!!!!!!!!!-0rr4J&M!X!!5`EJ!3E```,J!3N!"X!!3p32r d5QlrpQB'5Qlrp'F-,``r,[rf2blrp+LSF!%SAdjH6R8!!(RX!eJ!MNKYh!"1ZJ! 3@)p)EG`-6VS!"PL26R919[ri,``SEJ!))"4BJ#e!rrJ),3!"fcjR%NKZrr`[,[r i6VS"*P#25N!!!!(1B!i!!%P1593!!!!!!!!!!%(krqj1F8jaB!!!eQ%%!!!!!#* I6R8JAbm-6VVrm#K4+8J"[#PI!F!TA`(%19m"b#PI!FT+H!NZC`!!KM!i#5b`E!' kEd*`#$(!#5`ar"!a#5i'E2rB!EJJE!(+)Q`"bM!T!!D3!'J!!Ja!!#"Q'NSi#2* R&#"X!FT`#$&!!!)JE!(+F#Ja3!!')'`"bL*X!FS`+3!'N!"S!!)-3!!JCL*+1!M bCa`JE!(+-@`"Z!!%)'`"bM!S!!3'32rJ)'`"bM#!,b`"bMmX!FJ[,!(%)'`"Y%k 3!#mX!E`[,!(!+&mJAdl36PEr,NkkrbBLL#m-6VVr(LK4S5JY52rm3QHTG"!I5J" R#$mm!!UTb'"1,blrr+Q5,blrr%kk!&C)E[riU'i`,[q)88!j3!'i-#lrLJC!rq! j3!'k3UFr2+MX(c`!!8kk!$BJ(bP!!E4)H[l-2cbSl"mm!!&1ZJ!i+&p1ANjeF!! [#6(!!L"1GA!!B2BLAb"IS#P1q[rX)Pm5(c!I,`P+!@F%TdCJ!U0',dJ!"%je)Pm 5(c!I)&m[#8S"C`5Q4f!#SNG1G3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "!!!!!Y)!!!(5!!!!1`!'"M`'3!!!!"`!-J!!58j*9!!!!!S!!!!!8!!!!!!$VR! )5@0[EPGbBA$'aJ: --------- end file "IconWrap INIT" ----------------------------- --------- begin file "IconWrap.c.sit"... cut here -------------- (This file must be converted with BinHex 4.0) :$NPMEfjAFQ&`,Q-ZFfPd!&0*9#&6593K!!!!!!a`!!!!!)YD8dP8)3!"!!!-F(* -BA8"!!!!!!!!!!)##NPMEfjAFQ&`,Q01595He!!E"%`!#J!E2ei!!!!$!"Y&dJ! %%p`!'Y@b!!C"9!!E2ei$AJ%$!#3!!3!!!"V9c&4&@&4,38K-!3#IV9,@Rl+i3!! !!9`!!"+G!!!!R3!!#deC$PC!!!!!!!!!mcS!!!3)+0!#3B-"MIaEb,#K`iF3'bT )-ZD0QbYb`X"a-FD&!)*8LQ#KXL3)%LB$!8!!!)`JJ*!!)dZH6,QbTFZE1!0qDLA &@N!*R3)'i"+aU0'M5*-UAFUdU81#"!!B!2!aS!)!#3`dX4LQSMZK"!-J"$$@L&3 %&!`!)FJ"J0N!4DJ%%8*33K%M6UJ3p$#!hF+E"Jj`'E$ZEd!%8Jq!!5p80%L3!'6 -'cGAj)5"if)-#$0[j)"JNZB-'MTci*3T3fB)L"NZB-3B1*!!#TSdFd!NFC+%#JJ iBHL-39-QjC!!0h$b#%Q$%88+%(6HJ%MMKNiC1@2+`+%$)S`E-L"Q1Me6"LM0J@4 UdT&5CJa6Q!VEP$%UK`8)-@(QF!4ad'V9-AANb#P6&-380'rZV'`CPHDB0A2UY'% a8%`CL(1MKQ($KZJCYb"%c&dX!X60R$XaZJ"KXLUFZ($HU'9VaLV+S5Q$$K4a4b' FbRIclR@CaU#EP'(N[+Rc&+K3`fH)0JAKTX`G%,U2Ka(caNj91M5MaTeEG1$"URG SZS(-N5TTb(2'c+8,!NhDXaZh6jl*d3A*"&2ST'&-r!h6`)Ra(Jq+[%bEjXqGP&* fj2&d3NTZ#-A'394*9"a(("'@3%3[LFC6'XkaN8GIADeK98`Jh&&9ETkPa44cpJ' 9KPJK$$6%G(64SD&C)MBe4f"LIFK8'U9GTK02+CdfaQ*XV(8(6fJ-0i--H#`jd&a HJ4#%%d4!GJ94C13&3K01KG%JD[AYk-D&Lk@K4i3KMTLBBBi00#4MDjQK@aYfk6H E@A-)9H0rC2#i)A4938Q(H`N-e"T24QdRaSC,N!$Aa"K-P2%''6S-C%BCMH%4!KP Sh'%$$QZ%!1JB#pC""K#ecH&#(@1Ni3*(GB$`484IZ%AUEUGbkLQS$@PQ8"[[c8& (END4N8!--E`J3l)ii,$$@@QYeCC63f89aPNE%K''(@P!"F9*M+8""`K2#([83!Q NHfbb-Y$`3V-k*("'LMb&'0%DMTNP4Ke-0I&''SNj"C83BIa&KQlMLTF@'S5Ukh# kR8@Pd"a*[M%'A()%ZCf28TcKKVk(4959MjR0JHl$kJT*C(XZE*CG(Mp`jPpS#XQ aBCjXm*['36SJaeY6CT!!G6,+#IJ,F&8QJ%#``3Llei!+,c633%!JM%!8UDC@a31 ABb"44KKCCH`$#&!hB,8E@'F&!Jp6M&8&(%(3i!)D2NK04aiDC9@DX(+`bP38GG5 f"K%+(EG(ZP3$,MMKB4ahaS*SXC&5fHP+*4%FFQ!B8aPEh'"$&cZJZk!EMbRd90X FKCjZCPb1'pjiET5XHJ)[CNaKEXR0$N9-C'e(aKT(+*5(lV`IY4dEG!3Ia[$SlNj (lb#F)6cacaYr&KX&Vd%pp0Ra9-EXbTX""4d5!3T&4(5%hJF)L[r&q"fK0h"hhSF P`,IIm1QhHeKc*("i!P5,M9l'a"3ba14Dpr0+A+T#1I[K43j-3F2X+)Bq$[e&IIR ,brl#d)Bja+m-H1KG"Zq``3k#J)*hd0D`30!c'1!K"c)B3ZK!+%)K[1%04A*+!Ul 3"1NPJB!F58!,mB!$)mJJIU-l3`+H`)D1i14('0Q"`kJ@'U+3!-8hNCN-'bT$-L# 4,@S8K'!#-#B(+H5&B'U4SVUS4XBBJF!j%+c0BT!!Sk8hQ-%-DQ&+fF*)K`5d)3a i+!)CU+,'+DVJ)44LcemF-j65#!T-GLa0GkTLaa1+*ceIE%!5alLbXTa`@ab*QaU TCT3fd#`h0`Z+3Vb$Q"-1kbmY3)YDS'+(h%`ZDTX%9-IF%$SqqR&5hfX!9lb5!"@ 3!%&B`dbIe%DJ0k+8JAC2J%)@K0#5+6LK#Ne)J!Z$J)-L$-&Xc5b1CC!!i-dTB,- *3CM#%V5*KaM!B&RJ2)`c*e)%)e!"R9)i`NS5J!0$XN8L1&L"$'"J&Ki4acKd2-j TK1@P"R%NCQ9MTMb,3j!!)6c"#9G)!K'SJ)4d,@Q0Kc6S)dqcT#E*`#aT`9&9$*5 59P+V0Qf*D$LVNJ5,1Q%+8!M#%)U3!#iD`!#N3l%0EK*cX-CYakF[53-H-)8EX1J aDP-l*(41FjVG5'3ZF-"H8X45PeCf86-UBFU4k,1B+`+U!FIF5PHqNKX1MZ8S6HN 0S,Ec*MC!4M*Ifk*PRPLbcC3YULp*bj[Hq#qS1-%iAjd$#ZD!P*+a)+f1CH`BN[P BC+k9"A`U!fE6XSCGTU!"V&X)f56V@'-+5hE#A1YSN8*CdkV9+lem)&-b'lTG)N& J43,"(qI3@Bmpkkm`#FpL%Q#(`LEJX(G)V%mDX)H"T+80rN2AIjcM!MBNB,&`5-% +@"!%'"35T2C6CD$'%TIYJ1eJ0HQIZLMAKi'dM3j[LjY2T"J3qi&55M4JbhBBqKH 8pZBc6,&Up##hQ*3X45,#L9XaSjD!jdBA""$@,B#U#q(ZXU#ZF)f`KK'R![XkTcp d+'p6b)$H'cfXE"UHEKQUHpf-D*F&F`!P'43-hKKrq(&[L"aqLBEL#+ZBaGKpX5i pCNJ2"mTMYre[@m9#P[9',F86[N1,Xl[Gc$kX[MDZ5QB$'jDhbZ(%6rEaK+dEj1f Q0CP&cR*rSR4JSLei)1dGL%%AUam9KU%KI[&3#(S!!KLN),VTQM-+l6`h%)cYMi% FC"Rqh&bJLZJ%LCNA)rPM'0+8"P!JQ15cj*-MrTah1-8j6R)bUDj"(l$3I'C#2Hm CK(bZK,k(R%XHba-4-aeN@(Be#'qZf%!(jSA3L[33#2J-!K5SfTlie+F6eXB$%-6 J*eiBCcR2QFiPc'k-dc(M(G"BP4E`ZDBAaDP1Lc$+3dCbe[`T6JJ65ZT!P`B&m$l c@P[JJmaCK#NY!)'m[8,[)JAY*chiYNdcZP%NI2CK*NJD#RMS3b#5)3@-(PTp$k) KhDBh4%JDbSj+`p)+*8Sq40V35fh$!LG,[--#FmYf+,iKJf,k5Nr4%TIFi#@i8T@ !D5M6QBc9k`6XQ`lp2Ja68VhUC,pkD$qRYld[-Qak)V[9bJE"#P3bF)ebp0VY69I @%c$RH&Z@hr@Z#02cRA3Iq*X1!"Ii43R1dB1V+q(&CVJFIZLpKdFFU1FH#f4JUKl 9`P%qGGe3Vm[1R1HpJ8jm*U1fZAhYXJGPA(`Q[(f#3UGm,fPf@FmkeBK3KRfG)6j b3)%)Z!#(+j3"dL0L$Vq`@&I)D('[Q!'5#&,`@kJfH!l3EI3[U@[GRl1J"8'qFSF r3c%*pmN-D9M,cm%Xh5Mr-LZr$ll`%d$m*'dC,'jY-[26p@2V$[PM`(Iap+Z2(#6 MpTNmC[$Z9faG*MSapKMKlNr"LcQPN!!)LfTJV*XEQ2m[T`X&hI9REPCIVBGTH%8 CX!G&k[9Qh$GQR!3RC4&qf69qG9"mY4BF0'GAFa&LFQ"H*1Cr$,Kq,*CP-dB$d5G q48Cq*,KMqmGJ@FF9`L)bmN9l!#49BE!'0I&*cJ%9F@0TVT3pQ44R9#0JIb3FCX! EAV%cfp%#qFCbd6-@+B&K8(%35C&*$9"FhH*(B8!8bp9S58B'46)KFB%%UY-qJe- i#4!(C(!%N!$M36A)&R("&RG!9drd(CLQKJ1@B`9'DJ2"&@,4"SBK"pdeAqlP0R" $!i4iHlQ(,Pm`6!!L"emBKNA@A49L4DNK&"@iI5*SA3PJB9D&"(!QCfD!!N,!,d( K"MlKGP13!!Gc)!3E!3FSi%idb%C1N44f443-44m'p4m9@"AlBRLqNaIE36P-94@ kahQ[K!B`D&9*J3+I5([SJJ4-B$&Vi)aM#)hS3M9%35D0F5C`+"%i&MQhK#jdPc` +-BSQS)CXQ'1UBMlS!if9NfeR&#e0TijYk!+[NajpTAT2S5U&4hNJN!"[cL*GJ#4 )hX&R+'#2l)L2Pd3AqlJErHJ#5iG[(b%$f-KK3h%EZ'CAQ!B6-T%N$H4qLG9d6R! %Bd%&VK%%(jKH+'"4dN409'"0f'3@9("$E)#5#`'2ar9H1!Nh+hNM+)"FL@8@,MP 0eA4068#60YQ6&rQ'R1GjS#GkT2G$Z9JN81'4-d%Z5a!#XeGl8T-!FID'#A*3Dm% I[,%JIe%HjaF#T!D$iM@$kL-e$3$++!!!: --------- end file "IconWrap.c.sit" ---------------------------- -- ========== ....... ============================================= Ken McLeod :. .: felix!dhw68k!thecloud@ics.uci.edu ========== :::.. ..::: InterNet: thecloud@dhw68k.cts.com //// =============================================
jkjl@munnari.oz (John Lim) (11/27/88)
In article <15979@dhw68k.cts.com>, thecloud@dhw68k.cts.com (Ken McLeod) writes: > > For those of you who have mind-numbing quantities of INITs whose > icons march across the screen at boot time, and would like to > see ALL the icons displayed in neat rows, I submit the following > improvement on the INIT recently posted by David Phillip Oster. > > The following is an INIT file that will "wrap" icons displayed at > startup if there are more than can fit across the screen. A new > row is started ABOVE the first, and so on. To use the INIT, it > must be in the System Folder, and must be renamed relative to > your other INITs, so that it will run at some point BEFORE the > icons hit the edge of the screen. > > Caveat: if run before John Lim's "Moire," or Tim Maroney's "Backdrop," > those two INITs will crash. The temporary solution, until I either The crash is because I've been using an old version of ShowINIT that didnt do an InitGraf(). Here in Australia, it's pretty difficult to get source code for all these freebie things like ShowINIT. The original ShowINIT i got was in a resource and i had to reverse engineer it. That's why I never knew what version of ShowINIT i was using (until you forced me to disassemble it !). Guess it's time to upgrade to a newer ShowINIT. It still puzzle's me why InitGraf() is needed though, as it is initialized by INIT 31 also. Perhaps someone can explain... ps : a quick fix to moire is to replace PROC -4064 with a newer ShowINIT. This will be remedied in Moire 3.0 which is under development...
blm@cxsea.UUCP (Brian Matthews) (11/28/88)
John Lim (jkjl@munnari.oz) writes: |Guess it's time to upgrade to a newer ShowINIT. It still puzzle's me |why InitGraf() is needed though, as it is initialized by INIT 31 |also. Perhaps someone can explain... Actually INIT 31 only does an InitGraf on 64K ROM machines and Mac II's - not Plusses or SEs. The relevant code looks something like: tst Rom85 bpl.s not64k <lots of stuff for old ROMS, including _InitGraf> not64k <stuff for all machines, but no _InitGrafs> btst #$e, Rom85 ; Yes, #$e bne.s loadinits pea -4(A5) _InitGraf _InitPalettes loadinits <load inits> (This is from the 6.0.2 INIT 31 - your mileage may vary.) So _InitGraf is only called for 64K ROMS and Mac II's or higher. Anyone at Apple have any idea why? -- Brian L. Matthews blm@cxsea.UUCP ...{mnetor,uw-beaver!ssc-vax}!cxsea!blm +1 206 251 6811 Computer X Inc. - a division of Motorola New Enterprises
thecloud@dhw68k.cts.com (Ken McLeod) (11/28/88)
In article <2588@munnari.oz> jkjl@munnari.oz (John Lim) writes: > [the reason why IconWrap and Moire were in conflict]... It turns out there was a simple explanation for the apparent incompatibility between the IconWrap INIT and the Moire and Backdrop INITs...and, naturally, it was my fault. In the main() function, the call to InitGraf() must be bracketed with calls to save and restore A5! Otherwise, the "real" quickdraw globals are lost, and it was only due to the sheer coincidence of all my other INITs calling InitGraf() themselves that the IconWrap INIT worked. Due credit goes to John Lim for pointing this out (thanks, John). Some people have noted that the SUM inits, which don't follow the ShowINIT standard for startup icon display, get clobbered if a new row is needed, since they're drawn at a hard-coded location above the first row. While I haven't tried this, if IconWrap runs before the SUM inits AND the SUM inits run AFTER the second row has been started, their icons should be offset to the "third" row. If not, you can always change the LEFTMARGIN constant and recompile the source. Speaking of the source, it's very important to set the "System Heap" and "Locked" attributes in LSC's Project Type dialog, or else the INIT is almost certain to crash. Here, then, is the much-improved IconWrap (version 1.01). It's still not too long, although it now has its own icon to further crowd your startup screen! :-) Further revisions, if any, will go to comp.binaries.mac. --------- (This file must be converted with BinHex 4.0) :$8PMEfjAFQ&`)%P1593!58j*9&0SEe!K!!!!!!!!!!GK&P%!!!!!!3!!!!De!!! &Y3!!!+`!!!2"&'0SC@0VD@jR)%e',d4PBR9RCf9bC`)!!!"843e*BfpZ9h*KF#" *6NP8!J!!!%P15946D'p3)3!"D!$!!!"*6NP88fK[8#%!!@J!`!!!$#3!!!!!!!! !!!!!!!!!!*qbYQJ!!!!!!!!(B3!!L9!!!3!!!!!!!!!!!!!!!"3!!!!$`3j$FQ9 KG'PZCb"869"-Fdd#!!!!9%9B9&&&4$%"!!!!!!!!!!!!!LF!!!!!$RJ!!"!!!!! !!!'@!!!#!*m@PN'I&TBp!!!!!!9I!!!!!!!!!!!!!!!!!!)!!)P9!!J!!!!!!!! !!)P8!!%!!!(HB!i!!%P1593!!!!!!!!!!%(krqj1F8jaB!!!eQ%%!!!!!#*I6R8 JAbm-6VVrm#K4+8J"c#PI!G!TA`(819m"f#PI!GT+H!NZC`!!KM!i#5b`E!(+Ed* `#$(!#5`ar"!a#5i'E2rB!FJJE!(D)Q`"fM!T!!D3!'J!!Ja!!#"Q'NSi#2*R&#" X!GT`#$&!!!)JE!(DF#Ja3!!')'`"fL*X!GS`+3!'N!"S!!)-3!!JCL*+1!MbCa` JE!(D-@`"b!!%)'`"fM!S!!3'32rJ)'`"fM#!,b`"fMmX!GJ[,!(8)'`"a%k3!#m X!F`[,!(3+&mJAdl36PEr+NkkrbBLL#m-6VVr(LK4S5JY52rm3QHTG"!I5J"R#$m m!!UTb'"H,blrr+Q5,blrr%kk!'B[$8[ZrbSKc3N%5'lrq+KZ+PmKc3N%-#lrL&& !18!"b$!ZriS'32rJ18!"bN+R2cbSl"mm!!&1ZJ!f)"mT3!(%5(Vq[$mmU1`I2!! "6VS!1#KI6Pj1GA!!,`Na`!)J6R9`!'$f)PmJAk!T6[Vrl#*I%Km`(bm*5J&R"+G 'B!+M4Lp)!!41G5*I%Km`(b"I,`P+!@F%TNGJ!U*(6R8!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!@a19[lk,`LJ+5mA5'lrqNKZrra)E[lkUDJr,[rk2ccrrdk k!!SJAk!U6Pj1G8j@!!![#d+R,ca*3diM2bi!#UQJ)"pR)#"!S#NQ5#m32bi!#%k k!"3J5k!U,`LTSbCI6PiZRdjeB2C19[kX51Fr(#mi#34,l[rm)Fd*"%KZrrLSENK ZrUbSEc!i#5cM@!T!%#'`H!NZCaJ-Z&"KG@`+H'F)-I`!#!NXB!Baq!Tq#5a"l[k X-#J!$!4!!#K)3$!i#5`Y32mQ,8$r+JCZ!#$r,!CZ!#$r+LCZ!!TK0$!i#5`b,J! )DJ3b2!!Sd%%a`!NXieJ+3"!K-F!*,NKZrUbSI5(I#34-hcMm6PiJAeb26Y"*l[m B+)X'P!!!!)!jI!!%!!4#V!!'+A`!)!!J!!S[$%AZrUa)DJ!#5(S!,%KZrbBr2!! $3UHSl!58!!!!J#m-5'S!!NKk!"")E[mQ2c`!!8+RU1a1G3!!!!!!)!!J!!!!(&0 SEe!!!!!"5801)`!!!!!!J%C548B!!!!!!)!!!!!(58j*9!!!!!!!!3!rrrrm3!! !!S!!!!'2rrraN!!!!!Q3!!!!#C!!!!!*NIrrLC%!!)Q4!!#*N3!!LCI!!)Q6J!! *N3!!LC!!!!!*NlJ!LC+S!!Q6Z!#*N!!!!!Q6ZlZ*NUUULC1lZiQ3!!!!#Brrrr' !!!!"3!!!!Mrrrr`!!!!!!!!!!!!!!!!!!!!!!!!!!$rrrrarrrrqrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrprrrrq2rrrr!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!"!(rrrrk!!!!"[rrrrD!!!!@UUUJ&S!!!"DUU!!@ J!!!&UU!!"D!!!!@J!!!&SrrraD)!!%@L!!"&SJ!!4Dq!!%@R!!!&SJ!!4D!!!!@ Zi!"&UU!!"DlJ!%@J!!!&VZlZjDlZlZ@ZlZlPS!!!"Errrrf!!!!"rrrrrb!!!!3 rrrrmIrrrr[rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr2rrrr$rrrr`!!!!X+dPMEfjAFQ& `)$%Z-$%J+$%a,c)h,cJi+3fT-6Ni1#"LH5",,L"0BdaPEf3!!!%!!!!'Y3!!"E8 !!!#X!!1`dJAL!!!!(!#D!!4*6NP8!!%!+N*14%`!!!"#4P*&4J!!!%j6D'p3!!! !@NP$6L-!!3"Q!!!!!&!!!!!!!@jk!)!!#5!!!H)!!l#HGV[rr`!!!e)!!!!!!)$ rr`!!!h)!!!!!!!$rr`!!"B8!!l#DG4hrr`!!!hd!!!!!!)$rr`!!")%!!!!!#%P MEfjAFQ&`#&0SEhG*6NP8(b!: -- ========== ....... ============================================= Ken McLeod :. .: felix!dhw68k!thecloud@ics.uci.edu ========== :::.. ..::: InterNet: thecloud@dhw68k.cts.com //// =============================================