Return to BSD News archive
Newsgroups: comp.unix.bsd Path: sserve!manuel!munnari.oz.au!sgiblab!darwin.sura.net!europa.asd.contel.com!uunet!mcsun!sunic!aun.uninett.no!barsoom!barsoom!tih From: tih@barsoom.nhh.no (Tom Ivar Helbekkmo) Subject: PATCHES: Multiple WD drives and the config program. Message-ID: <tih.712580920@barsoom> Sender: news@barsoom.nhh.no (USENET News System) Organization: Norwegian School of Economics Date: Fri, 31 Jul 1992 11:08:40 GMT Lines: 240 There's been a bit of discussion, and some suggested patches, for the problem of having more than one disk drive with the MFM/RLL winchester driver. Having studied it a bit, I've come to the conclusion that changes are needed in both the wd and fd drivers, as well as in the config program. I've modified config to output specifics about the individual wd and fd drives to the ioconf.c file, and also modified wd.c and fd.c to take advantage of this. Specifically, this: controller isa0 controller wd0 at isa? port "IO_WD1" bio irq 14 vector wdintr disk wd0 at wd0 drive 0 disk wd1 at wd0 drive 1 would cause NWD to be defined as 3, which is wrong; there is one controller and two drives. Further, only the first drive would be attached in the driver. Actually, drive 1 would work fine, but wd1b couldn't be swapped to, since it wasn't properly attached at boot. Part of the trouble is, of course, that the same name is used for the controller and the drives. With my changes, the following works very well for me: controller isa0 controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr disk wd0 at wdc0 drive 0 disk wd1 at wdc0 drive 1 This way, I get NWD = 2, and NWDC = 1, which makes sense. With the modifications I've made to config, details about the two wd drives are put in ioconf.c along with the specs for wdc0, and my modified wd.c makes use of this info. Thus, I *believe* the following should also work great: controller isa0 controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr disk wd0 at wdc0 drive 0 disk wd1 at wdc1 drive 1 disk wd2 at wdc1 drive 0 disk wd3 at wdc0 drive 1 Note that I've changed the sequence of the different drives here, which is one of the features my version permits. Note also that I have no idea what IRQ the second controller should have, so I just put 15 in there to have a complete example... :-) I've done the modifications in parallell for the fd driver, but that driver will *not* work with more than one controller and two drives, since I haven't changed the bits that are hard-coded to think that only one floppy controller exists. Note also that this is a first approximation. As I get to know these drivers better, I expect to do quite a bit more work with them. There's also a need for more sanity checking; for instance, the current scheme demands, without enforcing it, that if drive 2 is defined, then drives 1 and 0 must also be defined, and so forth. I also haven't looked into the consequences of using question marks for the unit numbers in the names -- I suspect something bad would happen! :-) Patches follow below as a compressed and uuencoded tar file. I'd really like to see something like this become official -- maybe not in the exact way I've done it here, as I freely admit to not knowing much about how the autoconfig stuff works yet, but still. Also, it would be great if someone other than myself could test this, especially with two hard disk controllers and the various combinations of disks that can be added to them. I *may* be able to get hold of a second controller sometime soon, and *if* I do, I'll be testing that setup myself, of course! :-) As I said, this works fine for me -- it may very well totally mess up the hard disks of any other machine but mine, so read before using! :-) Whoops -- file names in the tar file are without paths. Anyway, it's /usr/src/usr.sbin/config/mkioconf.c, and the other patches all go in the /sys/i386/isa directory. The CONFIG.SAMPLE file is the one currently being used on my machine. -tih begin 644 drivepatch.tar.Z M'YV0+EX &$BPH,&#"!,J7,BPH4.$("+>J%$#!("((&C$H&$1(P@9'"]Z' DC M8@T9,VS(B"%#)4>),6K,N%CCH<V;.'/J!%!G#ITP<B("H),&S4Z%/L.8,7.T MJ=.G4*-*G?K0#!D78US "4-GC%&J8,%BM$$C)$:-9C&"[#@2A(T8,V281*F2 M90P;)4'$@'&CY44880,++MCS9U"+1+]*3;ITL./'D".#54$9A%6L+IY(.0(C M1@(J:.J 4%*'#8@9)3?JH#%#QUZ].7+(4-"BMN6K8Q(8D9-F=.G3,?3*T '# M!G&Y,6+/ILR\N7,5"IB#J!
T<()HKB#@BC9LQ;.J0*0-"1)H9.&R\2#,G MS NK<LJ<<8%&Q'80W;^''U_^?/KU[:TW1AWTV<>==^")1YYYZ*G'GGMR=%4@ M;?C5X<9X9H#@A!%$4#@"AMZ1MR$1']UWWX=EF!&B;D14X4025* P1PH)H""C M#S[,D((),:1P(HANE,$B%5E 482,--HXHPDW^%A;"]-55X,-(#S90G3/90F= M='OEP$(,=V7'W'TO:&GFF6BFJ:::+]SG'1VWP2''&V*4@4(*+-S&U4]>W9FG M55_048<<;KRQU)T[F!@""#[)4<<8="3PX!=D\&9'&4%956D:EP;5 PA[*+!H M E;)26<9?Y*Q9QA>Y2F"52*P<%\?B49$)G1/ZL77EQM5^>2M:P8K[+!LNND& MG*7.6:>?>M+!)QK, BHHH8::@:BBC-+A**22MD>II9C>-L:FG8+P::BC)GMJ MJJNV6IY58\0Z:ZT@W(JEFO?J-<,-7^9 I7816=4NM./9X6-$C3X*YZ0%IS$& M>2H43"^Z($AZK*1YHE%IHJ-:.$<:9P1)QFUTL. 3#'F.D0<;]-Y'*AF4ML$J M&F&X82X(!;?@0QHP5QI'RQ&]#.>G$8[A'0I24#'$%QPF,<4215!!11$I<%RQ MQIZ" $/+4"90)@A>E3'&&I:]$509,UO&QAMPP)$'SN!FUV;79I@- @J]?;HU M"+WQH"&'._"]P@HI@.JRURKP/0<(=*"!*7EA@&!A&G3\(+>H%4N:H8U6P6F" MUGB8 4/A/7R:]! <4O&%$T\X037F"<0^QAO'>E='&2TOVIU5*8)0*!UYE$$' M[(@S6@8;8B\,IPIMCOIRH(,6Z@;>51].1!%,!)$%"GO!X'WU02?P1AUT? $O M"J[?,$031'PA11%#!,%$U<5+(788;*0AAAQ<D6>$A9!* ^TNY[SQE>]\::B> M\ZZ7O>UU[WM6(][7:I:'QGGG#""(SQS@0#LR7)" F3.@^<@P!O0507WL^\(4 MBN"$%28!?)D[V<V\,\(2PE!V*YNA&VIXK?"E87,R_!P,\$"&T1TN ;.KG1MN MQS7\E.%"/Z10[+X6O#GDJ6:% B!Y*'>YKFGN;B' FI,REP YO<E:(H ;I\JP M.!%4SXO'FT,9I!@[,QX+C:YZ8^;L2 <TEH ,.BA/GA*8*"@=[H=W0T'G0"#$ MT(W.7*936NJ^P)(F%(YBL2LC;^Z( A'$P 4R:((;K99)0$V.#EM(0Q=< #PX MD.=3,:!7[/IPR,TID@R> YWH2!=)U!%!=1NA@24-YSQ-GK&3GRR+*!5(1E.Z M@7*I7&4K7ZDU62: EK9RWB)YP(-/T8"4SYM6H0Y%2.)A[6:QA!TVZS6JKTU! M>(SCGQOF8(9PT>$-T_'>&L0 A\4Q#W8&%,,MQ[ ">-&!#2P8'2FE%;UJH4"A MLS)11-Y$&]O I0;]*HF5[B,P9\T,!04[6+:VM3!O->QAV9'8?2CF$8^!3&0D MR],I4T4N5-WFE%;S2,(@I;@P4*H,=G 8Q*Q"OC"((:<8<6G(RC"RDZ5L94 ; M":#((#.OU.QF.=M9S^3P,XE*%9<W*]K13L<T(C@-:E*C&E(C<DJL E5G//L" M3C'G$42BH*T^^-2(AN"C4<5'G*2D*T;XB$8=C%*P ;/;+8LJAAEZ2PP"_(D8 M:A@XHDH6KEM=8U!"H+?*DH&Q@[LD[(CZS*'=]+):E6MI26E7TG(QKW\C0E\K MYI$D$F6)N!LM&6IZ,\L:%;-?F,,8/L:S'12O)Q^TX.+J%I3&D8>W2VQ#G8(R M0.>"C7;:>@,;D!>4?XZJM;N-6^GT,ML$>&2;W<R(+%WV-?8PSG'Q 4'D3FDY M[U;,KK?,Y1!W"4D0G&Z2K'.=:$?E$<)V$@1;*)0:+S6'+AR6P!CY:_1(N4[= M0H]:T],4N&[(0.UQSWL0=)D(SY>^];7O??&;GW&_9K\QX$]__*.#_P!(E ': M5WSDXZ&&U\C,!'1X>Z@!<8]'3$(3HK!]*VQA$5ZXXL11T()NP* &.0C%*%\N M:#+\% W/=T.5F4;+.^2R+.T:1- 54:3FQ8AM;9=;6P4-OXML)'_'^]]?4C*4 M Z;M8#?9QP-OX8^!_&0H'4S3#9/RO# [Y19<2P=IYL&5Z)3E.K_(.;#*^9%T MEJ2=@SE,3!:8SVA$,*#UX@)E$OHV->TQHE4+348[&M*==5F%1Q70@1:4A =- M*/W<"4]MU8R>]L1G#?3)3W^V*9L58RBU#K7C2S'3(^NL\$2/I0#)6/O:V,ZV MMK?-[6X[AF% %2I]M,(5KWA[,&,I"ULRTBN11&0M[A[)6UYRDI2L9"4:B0A+ M-#(3K9W[WSQ)RF&&4A2J,(8I $^XPA4N'7 ']6'CU@QG/+.;WI#&-#,(#E]T M@![BI$8Y%862P\6-!MWPQC<8UW@..#Z<&50D.;*Y5YKR90-^W: D ,!K;Q: M!CS(F% C55A/?_KP+9H4J)+] F3?L(4N#/+H=DBZL_+0]*?[M&!)#Q(JG4X\ MAV>]-&QH>B%M4W,6W-Q7M9D7SWV.*9OMM*17#S=*O6Y4I0NPZD/'>MVGCG>Z M3U;K5>\ZU+^^W;X_-K)UOP,)#>_3I2<=7F*O]L(G?Y VK$& 230#9K;2%<50 M'BKI3@N[1?\1TNL[!A.1RW3H<N^]W$#?*ZGY7SZ?[<( 12B),?A/&D/[WOL^ M,-*Q/.9II_FL2+PSGPD-RD_S<8ZWA@:OA_EL<B7\-V0>*R:W^&\RKBOBK+PX ML(EYL&@. XR^12XYWQT(FA"$(2 A":[[0A(:=!^K=O=C7.TA._G6H"\,WPW6 M,ENA$C3Q<0;L\7-!QU,G!3%D =YH@)MX(#9X09P($L%>(#A\B:2(P8^Y09Y M,@=L$ :7(DM&D 1,4 398085&')N47XL\!;!L5$'DB'LYW[P5P3R1W\187_9 M@7]QH'^8XQ\VX'_61WQW8CAM<8$^$2YOAS-RQX 2"(%12('TXA%*B( :6 << M^ 4>R"@A.(+WX1$E>((IN(+C)QTV@!HOZ')B0ADLJ!)>DH94(H-MD3A&D 9R MX!,@P$?O9721XQV4DP8OI@=<(4!NIRT*,RAL%(8>\4]M069E\$3^UQZBM0+W M=2S&(XF*-P8?&(EA1D*)8HD)($>:2$(W0XJ?. 8WLS4NXS(J"&J*)($B4"9< MX :'%32O>$PJZ"K9 0).$P1.6'1S4(N'=8:5018X\((4T8;0$3YI%A$-J#,P MXP9AT 8V%8T^,(W5>(UP((VL1@<W=$V'DXN<M(OE48M-.')S-WAUMW1-=S-[ M0(P]1BH&9HXBP 68\S4U%1220B=A($>2PE48X3,C(3/AY1%M\#%Z4%?'<AB2 M4UIR(X_6Q%QWTX!8)5F!8Y&<54TX P=8U8W9R(4]!XY(2$81^)'>F$1N8$V4 MAHV)!I'C%0554 13 )\P <@<)+C51(W^88T$(?+2(>QXQ$NR87;F"=%28W6 MB)0@^9*4<T.31HY]9H_HB(@\I8Y^2'1)YXY= (\2.5KU*(OZ""[\*$ <")!X M& <#*9 (&08'B1$)F08+B1%OXI!MQ3Q?B8N*99&?@DM&E9$>N9%[PY<=Z8U! MXG.B%30(Z9%]V91?H)*R5%>;4Y1M%9,S69,WF9.,J3<VR0<RAR8T-R4O^!;, M^(:B:0-IB'97$CXZ^2E4\ 2K4P184 68B9,A4 8_&(&&>93]T1YNA&9(A%UL M%IETN3FW^8-%*3-SL :NLG2_>5U*Q$0*((J2>3>X"5*.J90V)0*;^)RH^ 6; M.#BAJ&<3M3G7F92\^2HDY)V>6$/BZ3+5B9W>R$$1 IQ2:2WVN >,5 )SL(]Y M @(E@ ,N@ -6%"N%&9+:R93S:3;@2)P1$4=S9(R)@YHV\((WP!$Y-TOC&):N M @.U2"MY62_A<Y^QZ"KI"'5"E7=(MW? \X[G\I7:Q*'GF(^)LX_WY8]HR99P MHY9M^981$9=S.6W:DE00B9>V&(X4B9T7^9<="0*""9@HB: CF9@FR9@'"C.0 M>41V19DP^2DR29.=J9G]Q9.>F2NHF8PW]WI"&94R*@(>Z@8@>J0M(XJ06(IC M4(GD:1EM6I4DI:)%-W2.EWB+UY4O*J?3F:<D:H]CJ5DW>I9"DI9KR:-PZ9:5 M@I *R9!#RE80N6 0\P)?29T8D:2$Z9='U:1/VJ2-:9A3:CB@^J-66I19VJI\ M,YF.69E>>IEAVII:TYF'&CNZ^IJQ.9NUZ:37J9L(FI[=F0(^(HK!&9VY):N) M*HOZ:0+\Z9\1$: #6J!Y8JS:N)2:N:#U.9[/J*>P:(\ 6@,N4 -6!* R0 ;_ M.02@4P+EAP5Y4@(UX*X@8 4HP)]_A"?7VJ[UVJXZQP+$*"O,JE-IB0+<ZG]< MY:\+ZS/;ZI@&62D&FSF+Z8U :E,+FZ#?&I(S=:7?J* AF6KB"FV]>EYM^J9Q M>EBB2$N6V*MUFHIX.J[1ZBI\*G18":B(-UF01ZB@\JF(VJ:+6B[]Z*@!*:D$ MV:.5"I>72I<-2:1<Q*D1::C0NI>OBI&FVEFH"K*'29*A(JLZ";*QFJ=;6JM= M"@)?.JRZ2J:]F@"_"INN(ZQA>IP*FYWI"2^_V;9KAELE&ZIM.JW52I;_B:T$ MR@(&NK&\N;#TV: GZ[?E*HOGFJ[K6@( &Q'P.D3R6@/T>J[XJJ_\2@;^RJ[X M2KDCTP<$:XL5.Y08X8-UZXUIZ;".";$="S,3*P>I.ZX+F[$1NYO>NK ?RZ64 M([*9Y6Q]&Q$N&[2/VZ$?N@- *XXOBXMM>J)Q]Z=^%R@MZK/Q:*CI(K0U2I:- M^H^/JJ-).ZD^FI--*Z1V6:2>:JAZ&11*VI=8JY%:.ZK9N:H#F*=A"ZNTLY+P M69P5:;9<9)E@FIEKRZL2ZA;I\8(Y, .E.:(IN[RU&*(;FKSE(;U$EZ+5"WC8 M"Z.94[,SNBA#&RY%"[Y'&ZD%2:D.:;YRB:GIRT5&>HL=;+5+6JKRRY'TJZJ( M69*9E+^.F:7.6+;>:*MHBZL$O)F[VI.Y<@/)878R4!%"Z<%N"L%N$*()X(K1 M:Y5P=\'K.+U9)SPN^K/:FVS<RZEEB:/AB[0Z^J,H;*DK[+29^I NO+XP3"HR M#+],6L.#^:KUF\/WB[MZG)+[ZZ"S^K]!?+9IFZM&S+8'?',8I<3H-R8.3,%1 M#*?,.\7L*Z(=?,5]FK,9#'9?G+T/ELF2C(\@W+V,.L(YBL:2JL;E"Z0L#+7+ M(\=(6L<X$[^!.;]_+*5\?$0\#,ANP+\_3*N%',"W.L X6<!(;!LWL"]FQQJJ M:<62K+*53,70K(NR:,$+Z*>$%W8;',;T*,DA7,9&"ZG0F,8YN<9,V\;H"\M3 M.\>B>K5W?,LVG,O3:+_]ZZI1BJ6!?,^#+)\>:\A$?,R);,!KDB\W@!=FIQ*E MF<0Y4!TWD ,<08<>@0)V\ 8\4S@;!(N8(@=B4 =FX"HE, -D8*#1!4-6*#S1 M8YURP-$>#4/'*WD[H7B;5VZ>]WN@%Q%D(7IHL6ZEQ]-C0:%S86]VT1?ZQA>H M.7LV#1FV-W"Y-Q4'E]10'=4Y(1TR;7R;@7R@(1H7QWQZ00.K 0.ND0/A-WVV M4=79MWS<MQ<Z( ,KIV[2]YEGDB\L(0-?PM8-S#<7HWCCT=%G0"\C\$0>9 ;8 M\G;=<G7>J]?>>RZPHWBF4B=YHG@#XRJ*)R_&&U45S3,@H'A+30<R@L4XPQYD MHP)O9%$R0-<L(=9T^"8)H-=EP-=^#=A1A&R$S3"'34(VJMBCPMC*8E.0[5'N MPIWK*2N5[567/3*:+7"<W80>M)S943T'O!'5$1,5D7-]G(4PB3-V ))Q-5=8 MYMG+'=J?Q5J8N(FY<U^;@U<:<@6R=3@21B@/!4.P@U^?=3.(O49SL 6GU 6\ MI#5Y%COS_2GUS6#X75H^V]E]^MW-S<OXLS:J*"-R60:&8N!"]]W^V@1?,#5- M 5Y8N&L<P5! "/S^%G2N ;?>#/<73'25C&;B%5U,.)?L+A8E=W 99;@.W90 M MU?8@-._"L1<;^8"L>F108RGEHGKE/>#=HI50=KA==PLHF/'5YK].1SM2A& MOLDHBE(JH-D8B2WQB5=ZI=Y\Y3+M/3T0A6SGI5A:;E2.U7@["YZ@F-F?A5IQ M9:.GFN9B$%K$9-YW8^<S;L9.VI=#'E<T+D?E55O"R;>+_5G7S>=$OEKQO3F: M#9&PY03J7>AJ=NC2F=M0?BGT'>>_E5K"15QDT&22\S%6IEQETUR.([71-5T@ M4%VK;EMSLEWA<F./GDC_#><U==^13CGZ/:;]392B >";SD9;T.N-=C,2KH!( M+MJ'(S/;97UWHY 0;BW*#=H5?N%%D.$;OCI/X.$@?F@8(09Z@"EO %)U\($/ M'N$14P?**N[0V.+92.*5J>O@(FFM�KWI?R3@8D#N. KMTP,^BY]=Q]\24X M@*&0C,DU4MR%XQT"%9Z*]P4;;3:[ECA8D/&+XH@54VL2CZ4'9;L@ .94P 1? M0 -"$.ZP,^9WTR/E72@+J .N&!]V\EG=CN%0T&,!;NSYO8H6B-) ]][TDN)E M$H:)$P2^C08@@#9>(;6(Q$%S\#%B@#PNP((Q@ .FG0-JRN,5XS(4;=&@B]<1 M3T(K,/$5+P<7#P(9CP4;?VP=3SYC3U 3#REL(/(D;_(HK_*+ CM[*YU!@UB^ M\P8QGTE?0SML\#;: C)G@"F+,T *)NO:Q5UYD@3OY1VA[?:D0O/H?O/;GO.D MM/.\KNB^[O-B#O0V(_2,:+R'>M+BU/+58XE$WXP1<?1)O_1IPUM/_P91KS]4 M#]=F(M<XP"_),=T+W]O/LNQ9G,T1D]TB5=V86.]"+O#?2$K7SMSMWNF[/N"^ M7MZ:@P**M_A=$?)W55I(Z>[ WN.'A(EID"=37S-K8$T\. 9<8QLRX#TL4-H1 MS?7&_U'8_(0IQ?PK)?4Q.2 7XZ3?E!L)&FCG23E'1^56EV?+65G.TQT5P%?] MP)N2$X" SZYXN?1&!,*<7S%]J&_O-<"(8&!$@&%A)H O2=FY-6=WWD#2(6]P MCK$ %SJGM>P<GL,D=H71"3H_MY&B7Y]S5)9N!V&ZW*+IZIT.=$IT@+5 .M$' M)R9=I8,=ALY9?;YBU^ED(*@;+FF@N!P74X=!4!U%LB[0I0Y(EW !Z\@#Y*-U MW:5Y5(Q<!_J.'1/L A'DNUB+[R<\Z)X<\'[%KOSMMT>BPW[<^@,![<\-O#]^ M%O\$F>_3$OFB_GF)E8 =,E0F*8$E(%ZDC' T:8P))Q$!/F".K9.O$3;&1JK# M:^,!#^RATB!'ELN<: .VK^G5%!<PR.0$&WDB)2.#E $85S/(0.I;<-:G?\@7 M0"A %@=O@7J!J+K@D^"5V=" PU!Z=R -;!= 2!YZ E,!A&\C/KBES[:<0E"= M, TW1L3-NQ+W*4Y< AASW,.EF8A<@1*241.+05Q/=9% 6"0"(J&!NE.";-)\ MFF.""5D6BEMZ;$".L*H\50)%#1DX-3L/*O4J]I(X.B'9H$C>(12.PGS(1BS# M*4R%2F\5MD(- @OS1'R@A1?BGN%"%R-C=N'2\85Q QC6&)MQ3_A&++P#QK#I M)<-E6"=*W3,4 ]$0;8R,[V8-CP<(20#:T-]Q0WNW1D@=_I"&9.!MU(DG@C-H M!^00 V_@4EP12%$'%MS;L"\F*PF!0)<746R%5$L(0Z!UE* CX *F0!#(<"?H M*NZ$T+-N=EJ\@3=M02\LL]>S>H1::0,_NB+U(#6Q"!:6&NXI.$YM]R <NL@7 MZ>((4 C 0, >(#,BR#,B0/7S -P &.Z +< !I XWQ#0!&!: JHHQ#!*Q M@T&D!_LP!N! '<B,0L@^\ Q8&#NH0!* O&#"B@ HF"-](!13 M(#B0 3U$ M RIC&, #SC /)8"[0!G9QDB< ['C!E$!%K AIH "\(V&"#@F !&0%3-<$% = MK,$^($?:H1Q%@-* E^@.4*!YWCR9(!]4 "9!V1DQ@8A!OJ3"/B&;\ %OCJ; MH7A*PARX V' (PV0]BA?+@2<DXUBL)^LQ_M(&<\@=REL, \8I=9]Q\W$0Q( M %RAIU@.&"<"D@!L4F\Q((TL';XAD'K%I8 4=D/QU"4%\-UB1WM$D$V.A)0$ MWA(@.^1J(P.>(4$:2*D5 _KC@(Q\F.)EC($#F2 ?Q()D4.7!09:5",D+AZ% MHA($22Y<R'N2*3Q(0^*0H"UV6 4:B2Q$I-0JD4GR9:3()CDC621E7$!U9$:" M2 6YAW!D@X1-2T ($($T,G4HI%H*#D/2;BQ&/L,AGU#LH$!X@$ER20:I(YT M%, ":012P040D":# IS<D%@R.+6!*3DGO:2.;(X\LDQ"*H[0)Z]+&P"4;E)0 MRH M:2.[9(3(D;"I.7I'Q@$\S.1IX)/)PV[,CD=Y)-ODG[H#9: DU,CV<",O MY1 ),KX#GNC)DB! K!$J'")C8$9Z#[ZA^U88#D@.0C)4!@54N2$50#\I ^+A M#;0 ++DVV(:QE"/)<EFZ2>$!7YXELB0#RA)+@J $,!N.9;1DEF_@#%C+;^DF MX0#PV(TV@#)Z2VPI+8O.*(*/;2,,+#XY,"[9)9:T S!O%LI+3%$OLZ6;+!A; M85Y2QK\8&*O=9.R+"#-A*LR%R3 ;IL-\F! S8DK,B4DQ*Z;%O)@8,V-JS(W) ?,3NFQ_R8(#-DBLR123)+ILD\F2@S9:K,E<DR6^;*!$DQ end -- Tom Ivar Helbekkmo, NHH, Bergen, Norway. Telephone: +47-5-959205 Postmaster for domain nhh.no. Internet mail: tih@barsoom.nhh.no