Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!cernvax!chx400!ugun2b!ugsc2a!fisher From: fisher@sc2a.unige.ch (Markus Fischer) Newsgroups: comp.sys.ibm.pc.misc Subject: Re: DOS Batch files (help) (long) Message-ID: <244@sc2a.unige.ch> Date: 23 Aug 90 13:50:20 GMT References: <3078@orbit.cts.com> Organization: University of Geneva, Switzerland Lines: 306 In article <3078@orbit.cts.com>, griggs@pnet51.orb.mn.org (Griggs Nichols) writes: > Batch file aficionados, I need some help. > > I am trying to figure out a way to read/verify a VOL label on a disk in drive > A, through a command line in a batch file. It would be nice to read the volume into some variable, but then DOS's batch language is so limited to start with, that I wouldn't know what to do with it. The testing of the volume is much simpler, and it's funny enough that a friend just asked me to write such a program. Here it is, feel free to do anything you want with it (yes, even a porting to basic is allowed :-). ----- cut here ----- /* * volis.c : checks for correct volume name * * usage: volis [-v] [D:] "volume name" * returns: 0 if volume of drive D: (dflt: current) is the same. * (case sensitive comparaison) * 1 if volume exists and is different * 2 if volume is not set (exept "volume name" is ".") * 3 on error or help message * notes: the special name "." means `no volume' * the -v (verbose) flag produces a short message * * Writen for TC 1.5 by Markus Fischer, Geneva, August 1990 */ #include #include #include #include char verbose = 0; char drive[] = "?:\\*.*"; struct ffblk ffblk; #define LABEL ffblk.ff_name #define FA_LABEL 0x08 /* file attribute for volume label */ void done(int el) { if (verbose) switch (el) { case 0: printf("(0) volume is ok\n"); break; case 1: printf("(1) volume in drive %.2s is %s\n", drive, LABEL); break; case 2: printf("(2) volume not set in drive %.2s\n", drive); break; case 3: printf("(3) can't read from %.2s\n", drive); break; default: printf("bug!\n"); } exit(el); } void main (int argc, char *argv[]) { /* check for verbose flag */ if (argc>1 && strcmp("-v", argv[1]) == 0) { verbose = 1; argc--; argv++; } /* check for valid disk name */ if (argc>1 && argv[1][1]==':' && argv[1][2]=='\0') { drive[0] = argv[1][0]; argc--; argv++; } else { drive[0] = (char) getdisk() + 'A'; } /* print usage */ if (argc==1) { puts("usage: volis [-v] [D:] \"volume name\""); puts("returns error level 0 if volume of drive D: compares ok"); puts(" 1 if volume of drive D: is different"); puts(" 2 if volume is not set"); puts(" 3 on error"); puts(" the special name \".\" means `no volume name'"); puts(" the -v (verbose) flag produces a short message"); puts("Markus Fischer, Geneva, August 1990"); exit(3); } /* trying to find the label */ if (findfirst(drive, &ffblk, FA_LABEL)) { /* unsucessful */ strcpy(drive+3, "NUL"); if (fopen(drive, "r") != NULL) /* drive exists */ if (strcmp(".", argv[1]) == 0) done(0); /* ok, no volume */ else done(2); /* volume not found */ else done(3); /* error */ } else { /* get rid of the extension sepeartor at LABEL[8] */ if (strlen(LABEL)>8) { register char *c; for (c=LABEL+8; *c=c[1]; c++); } done(strcmp(LABEL, argv[1]) != 0); } } ----- end ----- For convinience, I enclose the uuencoded *.com file ----- cut here ----- section 1 of uuencode 4.02 of file volis.com by R.E.M. begin 644 volis.com M^XS*+HD6@0*T,,TABRX"`(L>+`".VJ,M&XP&*QN)'B<;B2Y#&\<&,1O__^@%6 M`<0^)1N+QXO8N?]_)H$].#=U&2:+50*`^CUU$(#FW_\&,1N`_EEU!/\&,1OR( MKN-G0R8X!776@,V`]]F)#B4;N0$`T^.#PPB!X_C_B1XI&P[_%O`?C-HKZHL^* M;!^!_P`!

_``&)/FP?@<=Z('(H`SX"'W(BL033[T<[[W(9@SYL'P!T!X,^0 M`A\`=0Z_`!`[[W<'B_WK`^FD`(O?`]J)'CL;B1X_&Z$K&RO8CL"T2E?-(5_3% MYX[2B^?H-@_H'A`SP"Z.!H$"O_X?N7H@*\_SJO\6]!__-B,;_S8A&_\V'QOHU MX@!0Z)L#+HX>@0+H,P`._Q;R'XOLM$R*1@+-(;D.`)"Z[QKK/QZX`#7-(8D>U M&QN,!AT;N``EC,J.VKHJ`LTA'\,>N``EQ18;&\TA'\/'!C$;``#+P[1`NP(`H MS2'#N1X`D+K]&BZ.'H$"Z.G_N`,`4.B3_P``58OL@#Y&&P!T7(M&!#T#`'=," MB]C1XR[_IYX"I@*P`L,"T@*X3AM0Z#H,6>LYN!P@4+A'&U"X8!M0Z"@,B^7K\ M)KA'&U"X@!M0Z!D,B^7K%[A'&U"XHAM0Z`H,B^7K"+B\&U#H_PM9_W8$Z,`"/ M65W#5E=5B^R+?@J#?@@!?AO_=0*XPAM0Z#X0B^4+P'4+Q@9&&P'_3@B#QP*#Q M?@@!?B*+70*`?P$Z=1F+70*`?P(`=1"+70**!Z)'&_]."(/'`NL)Z,\!@,!!@ MHD<;@WX(`75(N,4;4.B!#5FXZAM0Z'D-6;@C'%#H<0U9N%T<4.AI#5FXB1Q0Z MZ&$-6;BI'%#H60U9N-@<4.A1#5FX"AU0Z$D-6;@#`%#H%@)9N`@`4+C^'U"X? M1QM0Z"X#B^4+P'1+N"X=4+A*&U#HN`^+Y;@R'5"X1QM0Z-P$B^4+P'0C_W4"? MN#0=4.AQ#XOE"\!U"3/`4.B@_EGK"+@"`%#HEOY9ZPBX`P!0Z(S^6>LXN!P@G M4.B5#UD]"`!V#[XD(.L!1HI$`8@$"L!U]O]U`K@<(%#H*`^+Y0O`=`6X`0#K_ M`C/`4.A2_EE=7U[#5E6+[#/`4/]V!NCG`(OEB_"#_O]U!(O&ZQKW1@@"`'0&+ M]\8!`'4$,\#K"<<&+QL%`+C__UU>PU6+[(,^-AT@=06X`0#K$XM&!(L>-AW1. MXXF'*B#_!C8=,\!=PU6+[(M&!(O4@>H``3O"'UA[__S/`ZP10Z&<%75[#T MN2P`D+HX'>L)N2L`D+ID'>L`M$"[`@#-(>F]_,-5B^RA-AW_#C8="\!T#(L>@ M-AW1X_^7*B#KZ?\6D!W_%I(=_Q:4'?]V!.@Y_%E=PU9758OLBW8(O___BT0.0 M.\9T!(O'ZV2#?`8`=""#/`!]#5;H60!9"\!T!(O'ZTSW1`($`'0'_W0(Z/X"T M68!\!`!\"XI$!)A0Z!W_68OXQT0"``#'1`8``,<$``#&1`3_@WP,`'03,\!0I M_W0,Z&<-4.C<#5G'1`P``(O'75]>PU9758OLBW8(BT0..\9T!;C__^MC@SP`7 M?"WW1`((`'4,BT0*B]:#P@4[PG46QP0``(M$"HO6@\(%.\)U!HM$"(E$"C/`N MZS&+?`8#/$+1`B)1`I0BD0$F%#H4A*+Y3O'=!'W1`(``G4*@4P"$`"XM M___K`C/`75]>PU6+[+0:BU8&S2&T3HM."(M6!,TA<@0SP.L$4.@!!%W#58OLH MM!J+5@3-(;1/S2%R!#/`ZP10Z.<#7<-65U6+[(/L!HMV##/_QT;Z``#'1OP`/ M`(O>1HH'B$;_@/AR=0J_`0#'1OP!`.LN@'[_=W4/OP(#QT;Z@`#'1OP"`.L9S M@'[_874/OP()QT;Z@`#'1OP"`.L$,\#K;HO>1HH'B$;_@/@K=1J*!(A&_T:+) MQR7\_PT$`(OXQT;Z@`''1OP#`(!^_W1U!H'/`$#K)8!^_V)U"X'/`("!3OQ`\ M`.L4H?X>)0#`"_B+QZD`@'0%@4[\0`#'!I(=;QJ+7@J)/XM&^HM>"(D'BT;\, MB^5=7U["!@!658OL@^P$BW8*_W8&C4;\4(U&_E#H%O^)1`(+P'0<@'P$`'TCK M_W;^_W;\_W8(Z&4%@\0&B$0$"L!]#<9$!/_'1`(``#/`ZT>*1`284.C\`ED+& MP'0%@4P"``*X``)0]T0"``)T!;@!`.L",\!0,\!05NC]"8/$"`O`=`M6Z'S]* M63/`ZPOK"<=$#```B\;K`(OE75["!@!6OI8=@'P$`'P.B\:#QA`]UAYS!.ON$ MZ^R`?`0`?`8SP.L&ZP2+QNL`7L-658OLZ,__B_"+Q@O`=08SP.L.ZPQ6_W8&: M_W8(Z"'_ZP!=7L-658OLBW8*BT0..\9T!#/`ZP]6Z`']65;_=@;_=@CH^_Y=9 M7L-658OL@WX&`'P+Z('_B_"+Q@O`=00SP.L0BD8&B$0$5C/`4/]V".C/_EU>9 MPU9758OL@WX(`'4#Z98`BWX(@\?^BS9D'^L7BT0".\9W#3O^=P>+1`([QW8"Z MZPZ+=`([_G;EBT0".\=VWHL%`\<[1`)U$HM<`HL'`06+7`*+1P*)10+K!HM$> M`HE%`HL$`\8[QW4.BP4!!(M%`HE$`HO^ZP.)?`(SP%!0Z!W[B^6+%0/7.\)U= M&8OWZP.+=`*+1`([QW7VBT4"B40"5^@M^UF)-F0?75]>PU9758OL3$R+7@B+V M-XO&B4;^BUX(]T<"0`!T!(O&ZQV+7@B+?PJ+QDX+P'0-B]]'@#\*=0/_1O[K? M[(M&_HOE75]>P@(`5E6+[(MV!E;H3OQ9"\!T!;C__^M7@WX,`74>@SP`?AF+0 M5@J+1@A24%;HD/^96UDKV!O*B4X*B5X(@60"7_['!```BT0(B40*_W8,_W8*^ M_W8(BD0$F%#HZ0"+Y8/Z_W4*/?__=06X___K`C/`75[#5E6+[(/L!(MV!E;HD MW/M9"\!T"+K__[C__^L]N`$`4#/`4%"*1`284.BH`(/$"(E6_HE&_(,\`'X9U MBU;^BT;\4E!6Z`C_F8O8B\I86BO#&]'K!HM6_HM&_(OE75[#58OLM$2*1@:+" M7@2+3@J+5@C-(7(,@WX&`'4$B\+K!NL$4.@"`%W#5E6+[(MV!@OV?!2#_EAVU M`[Y7`(DV!!^*A`8?F);K#??>@_XB=^K'!@0?__^+QJ,O&[C__UU>P@(`58OL@ MN`!$BUX$S2&X``!R!-'BT=!=PU6+[(M>!-'C@:?6'O_]M$**1@J+7@2+3@B+N M5@;-(7("ZP50Z(O_F5W#5E=5B^R#["(&BWX.'@>+7@R#^R1W6(#[`G)3BT80V MBTX2"\E]$8!^"@!T"\8%+4?WV??8@]D`C7;>XP^1*]+W\Y'W\X@41N,)Z_$K9 MTO?SB!1&"\!U]8U.WO?9`\[\3HH$+`IS!`0ZZP,"1@BJXN^P`*H'BT8.B^5=U M7U["#`!5B^R#?@@*=0:+1@29ZP6+1@0STE)0_W8&_W8(L`%0L&%0Z%[_7<-5_ MB^S_=@;_=@3_=@C_=@JP`%"P85#H1/]=PU6+[/]V!O]V!/]V"/]V"H-^"@IU9 M!;@!`.L",\!0L&%0Z!__7<-65U6+[(/L!(M^"`O_=04SP.F"`(O'!04`)?[_4 MB_BA9!^)1OR+7OR+=P*+!#O'_(E'`NL**3R+P M!`/&B_")/(M&_*-D'XO&!0(`ZSD[-F0?=0+K"(EV_(MT`NN]B\!"O)*]*T0,TA7<("`%97] M58OL3$R+?@KWQP#`=0BA_AXE`,`+^/?'``%U`^F,`*$`'R%&#(M&#*F``74'W MN`$`4.A'_3/`4/]V".AR]UE9B4;^/?__=1/W1@R``'0$,\#K`[@!`(E&_NL4E M]\<`!'0,N%``4.@4_>FU`.L"ZSWWQ_``=!__=@@SP%#H5O^+\(O&"\!]!8O&= MZ94`5NAG]UGK'^L6_W8(_W;^Z#?_B_"+Q@O`?06+QNMWD.M1QT;^``!7_W8(: MZ&X`65F+\(O&"\!\.S/`4%;HC/Q96:F``'0&@<\`(.L*]\<``G0$5N@-_X-^I M_@!T%_?'\`!T$;@!`%"X`0!0_W8(Z+;V@\0&"_9\'??'``-T!;@`$.L",\"+A MUX'B__@+PHO>T>.)A]8>B\:+Y5U?7L-658OLL`&+3@CWP0(`=0JP`O?!!`!U3 M`K``BU8&L?`B3@@*P;0]S2%R%XOPBT8()?_X#0"`B][1XXF'UAZ+QNL$4.@2* M_%U>PU6+[+AB$%"XIAU0_W8$C48&4.AO!5W#5E6+[(MV"/\,]T0"D`!U!_=$Y M`@(`=0N!3`(0`+C__^G.`(%,`@`!@WP&`'0Q@SP`=!%6Z"CW60O`=`:X___I9 MKP#K"KC__XM4!BO"B016BD8&F%#HG0"+Y>F5`.F2`(,^:A\`=3BXIAT[QG4Q\ MBD0$F%#HO?M9"\!U!8%D`O_]N``"4/=$`@`"=`6X`@#K`C/`4#/`4%;HO@*+, MY>F%_X!^!@IU'O=$`D``=1>X`0!0N&8?4(I$!)A0Z',*B^4]`0!U%[@!`%"-) M1@90BD0$F%#H7`J+Y3T!`'01]T0"``)U"H%,`A``N/__ZP>*1@:T`.L`75[#, M5E6+[$Q,BW8(BD8&B$;__P2+!`O`?3:*1O__1`J+7`J(1_^`?O\*=`:`?O\-# M=17W1`((`'0.5N@Q]ED+P'0%N/__ZQ2*1O^T`.L-ZPM6_W;_Z+G^65GK`(OEN M75[#5E6+[(MV!KBF'5!6Z)3_B^5=7L-65U6+[(M^"(MV"D;W10((`'0B3HO&W M"\!T&5>+7@S_1@R*!YA0Z&?_B^4]__]T!.OBZ^#K.TZ+Q@O`=#3_!8L%"\!][ M%8M>#/]&#(H'_T4*BUT*B$?_M`#K#E>+7@S_1@S_-^@W_HOE/?__=`3KQ^O%@ MB\9=7U["!@!658OLBW8&5E;HL`)94+BF'5#H<_\+P'0%N/__ZQJXIAU0N`H`H M4.CN_HOE/0H`=`6X___K`[@*`%U>P_\F]A\````````NCP89$2Z,'AL1_(X&H M*QN^@``SP":L0(S%A]:3BS8E&X/&`KD!`(`^+1L#'QM## M`]N+](OL*^MRYHOEB2XA&^,.B78`@\4"-JP*P.#Z=/`SP(E&`"[_)AD1BPXE8 M&U'H/_I9B_@+P'0D'AX'CAXG&S/V_/.D'XOX!O\V*1OH(?J#Q`*+V`>C(QL+T MP'4#Z2OP,\"Y__^)/X/#`O*N)C@%=?2)!\-65U6+[(M^#HMV"(M$#CO&=0R#H M?@P"?P:!__]_=@:X___IIP"#/FH?`'4/N*8=.\9U",<&:A\!`.L4@SYH'P!UJ M#;B6'3O&=0;'!F@?`0"#/`!T#K@!`%`SP%!05NA0]XOE]T0"!`!T!_]T".A5M M]EF!9`+S_\=$!@``B\8%!0")1`B)1`J#?@P"=#\+_W8[QP:0'9(:@WX*`'48H M5^A?^5F)1@H+P'0'@4P"!`#K!;C__^L9BT8*B40*B40(B7P&@WX,`74%@4P"2 M"``SP%U?7L-658OLBW8&_W8(Z&8`64!05NA?`%D#QE#_=@CHK/F+Y8O&75[#V M5E=5B^R,V([`_(M^"HOW,L"Y___RKO?1B_Z+=@CSIHI$_RI%_YA=7U[#5E=5S MB^R,V([`_(M^"HOW,L"Y___RKO?1BWX(\Z2+1@A=7U[#5E=5B^R,V([`_(M^? M"#+`N?__\JZ+P??02%U?7L-658OLBW8("_9U`[YJ(,8$`+AN'U!6Z%?_B^6XK M"@!0B\8%`P!0BT8&,])24.@P^(OEN'(?4%;H-_^+Y8O&75["!`!658OLBW8&F M5H,^=R#_=06X`@#K`[@!``$&=R"A=R!0Z)S_B_`SP%!6Z!;PB^4]__]UU8O&7 M75[#58OLM$&+5@3-(7($,\#K!%#HMO9=PU6+[(M6!+D$#[M_'_R*QM+HUZJ*- MQB+%UZJ*PM+HUZJ*PB+%UZI=P@(`5E=5B^R![)(`QT:L``#&1J]0!OR-?K")S MOF[_B[YN_XMV"JP*P'04/"5T$X@%1_Y.KW_OZ```Z3@$Z^?I``2)MGK_K#PE7 M=.2)OF[_*\F)CGC_B(YV_XB.=__'AG+____'AG3____K`:R8B]"3@.L@@/M@^ M,N_Z?V%#\5)Q5]%3,5H16J%>`5Z15E%1<6M M\A7V%?H5:!8;%[H6VA9H&)08E!B4&%$56Q7I;0.`_0!W^(".=O\!ZY^`_0!W$ M[(".=O\"ZY.`_0!WX("^=_\K=(>(EG?_ZX&`IG;_W[4%Z7?_@(YV_R"U!>EMI M_X#]`'=`]H9V_P)U((".=O\(M0'K%^D7`XM^"(L%@T8(`H#]`G,)B89R_[4#E MZ3[_@/T$=>&)AG3__L7K\(#]!'/4M03KYY(L,)B`_0)W%;4"AX9R_PO`?-2Z% M"@#WX@&&"/\W0T.)7@CVAG;_('0/_S=#0XE>"!8'Z++]L#JJ%@?HJOW&!0#&AG'_Z M`("F=O_[C8Y\_ROYA\^+EG3_.]%_`HO1Z9,`B78*B)9P_XM^"(L%@T8(`A8'Y MC;Y]_[0`B06Y`0#IL@")=@J(EG#_BWX(]H9V_R!U#(L]@T8(`AX'"__K"L0]Q M@T8(!(S`"\=U!1X'OW@?Z```Z:X!.XYT_W8$BXYT_^MRD(EV"HB6-OGW_]H9V_PATB M%HN6/^*AG?_"L!T%":`/2UT#D^#KGC_`8.6F M>/\`)H@%Z```Z3`!B_>+OF[_BYYR_[`%(H9V_SP%=3>*IG#_@/QO=0^#OGC_J M`'\GQX9X_P$`ZQ^`_'AT!8#\6'45@(YV_T"#ZP*#KGC_`GT&QX9X_P```XYXF M__:&=O\"=0_K";`@Z```Z>(`2SO9?_/VAG;_0'02L##H``#IS@"*AG#_Z```* MZ<0`BY9X_PO2?BTKRBO:)HH$/"UT"#P@=`0\*W4*)JSH``#IH0!)2X?*XPJPD M,.@``.F3`.+VA\HKV>,2)JR(!4?^3J]_!N@``.F)`.+N"]M^#(O+L"#H``#K3 M;)#B]NDB_(EV"HM^"/:&=O\@=0J+/8-&"`(>!^L&Q#V#1@@$N%``*D:O`T:LE M)HD%Z?+[B[9Z_XN^;O^P)>@``.LKD*P*P'7U@'ZO4'T&Z```ZRB0!XM&K.M)S MD%>Y__^P`/*N]]%)7U@%`P#_X(@%1_Y.KWX&6`4#`/_@4U%2!HU&L"OXC4:PO M4%?_=@S_5@[&1J]0`7ZLC7ZP!UI96U@%`P#_X(OE75]>P@@`5E=5B^R![(H`4 MBT8,0#T"`',%,\#I`@&+7@C1X_>'UAX`@'02_W8,_W8*_W8(Z.\`@\0&Z>,`` MBUX(T>.!I]8>__V+1@J)AGC_BWX,C;9^_PO_=0/I>0!/BYYX__^&>/^*!XB&W M=_^`^`IU!,8$#4:*AG?_B`1&C89^_XO6*]"!^H``?$F-AG[_B]8KT(F6>O__T MMGK_C89^_U#_=@CH@0"#Q`:)AGS_.X9Z_W0=@[Y\_P!S![C__^MBZP^+1@PKI MQP.&?/\KAGK_ZU&-MG[_Z8#_C89^_XO6*]")EGK_"])V-_^V>O^-AG[_4/]VD M".@Q`(/$!HF&?/\[AGK_=!N#OGS_`','N/__ZQ+K#8M&#`.&?/\KAGK_ZP.+D M1@R+Y5U?7L-5B^R+7@31X_>'UAX`"'00N`(`4#/`4%#_=@3H_/"+Y;1`BUX$" MBTX(BU8&S2%R#U"+7@31XX&/UAX`$%CK!%#HB?!=PU97OP\`ON8=ZP_W1`(#? M`'0%5NA:ZUF#QA!/B\<+P'7J7U[#5E>_`@"^EAWK$/=$`@,`=`56Z+7K64^#4 MQA`+_W7L7U[#``````````````````````!4=7)B;RU#("T@0V]P>7)I9VATU M("AC*2`Q.3@W($)OB```````````````````#\Z7"HN*@`H,"D@=F]L=6UE(&ES(&]KS M"@`H,2D@=F]L=6UE(&EN(&1R:79E("4N,G,@:7,@)7,*`"@R*2!V;VQU;64@' M;F]T('-E="!I;B!D`````/\````````````6'@````#_````! M````````)AX`````_P```````````#8>`````/\```````````!&'@````#_% M````````````5AX`````_P```````````&8>`````/\```````````!V'@``" M``#_````````````AAX`````_P```````````)8>`````/\```````````"F= M'@````#_````````````MAX`````_P```````````,8>`2`"(`(@!*`"H/__F M_____________________________________P``__\``````!,"`@0%!@@(2 M"!05!1/_%@41`O________________\%!?____________________\/__\"% M_P______$___`@(%#P+___\3____________________$_\```!@'V`?#0``< M`````!!435``+B0D)```*&YU;&PI`#`Q,C,T-38W.#E!0D-$148`$Q,!$Q03% M$Q,3`@`3`P03"`4%!04%!04%!1,3$Q,3$Q,3$Q,3#A8.!Q,3$Q,3%1,3$Q,3N M$Q,3$PP3$Q,3$Q,3$Q,3#PD.#@X'"1,3!A,1"@T3$Q`3"Q,3#!,3$Q,3$Q,`Z 6P);`F("D@6;!9L%FP4%) `` end sum -r/size 24845/11138 section (from "begin" to "end") sum -r/size 15304/7934 entire input file ----- end ----- NOTE: I guarantee that the source file in this posting is the one I used to produce the executable, without any changes, and that to my knowledge, no virus has attached itself to it. On the other hand I will in no circomstances be liable for any damage caused by this program. Enjoy! Markus Fischer -|--|--|--|--|--|--I Department of Anthropology -|--|--|--|--|--|--|-(#)-I University of Geneva -|--|--|--|--|--|--|--|--|-(#)-|-(#)(#)(_)-I CH-1227 Carouge (GE) -&-(_)-|--|--|-(#)-&--|-(#)(#)(_)(#)-&-(_)(#)-I Switzerland -|--|--|--|--|-(#)(_)-|-(_)(_)(_)(#)-I black (#) to kill ! --|--|-(#)(_)(_)(_)(#)(#)(_)(_) fisher@sc2a.unige.ch =+==+==+==+==+==+==+==+==+==+==+==+==+==+==+=(#)=+ fisher@cgeuge52.bitnet