home *** CD-ROM | disk | FTP | other *** search
- From: tin@szebra.szebra.uucp (Tin Le)
- Newsgroups: alt.sources
- Subject: ST-0X SCSI driver for 386/ix v1.0 pt 1/6
- Message-ID: <1990Sep17.062747.25439@szebra.uucp>
- Date: 17 Sep 90 06:27:47 GMT
-
- Pardon me if I did this wrong, but this is my first source release
- to alt.sources (actually to any news group). This is the Seagate
- ST-0x SCSI driver I promised. Below is part of the README file.
-
- README
- ------
-
- SCSI driver for Seagate ST-02 Host Adapter for Interactive
- 386/ix v2.0.2. Usage rights are release into the public
- domain. You may use and distribute this package, but you
- may not charge for it.
-
- This is a modified version of the ST-01 driver by Tatu Ylonen.
- His driver was for Microport UNIX v3.00e, I adapted it for
- 386/ix, fixed some problems (changed char to unsigned char),
- optimized things a little bit more.
-
- The difference between the ST-01 and ST-02 is that the ST-02
- also include floppy ctlr (both 5 1/4" and 3 1/2"). Since Tatu
- wrote his driver, Seagate apparently changed the revision of
- the ST-0X boards. They now uses 16K BIOS instead of 8K.
- Luckily, the hardware addresses seemed to have been kept the
- same (anyone who knows how I can get more technical information
- on these boards, please let me know - email to tin@szebra.uucp
- or uunet!claris!szebra!tin).
-
- Here is a recap of the featurres and drawbacks of the boards:
-
- Advantages:
-
- - will work with most SCSI disks
- - no limit on disk or partition size
- - each physical driver can have up to 15 partitions
- - support multiple drives (up to 7) on a single ctrlr
- - transfer rate faster than MFM disk
- - the ST-02 (ST-01) will work in the system along with
- other controller you have (ST506 or RLL).
- - driver is free and complete SCSI subsystem can be put
- together at low cost
- - you have source code!
-
- Disadvantages:
-
- - does not use DMA
- - character devices not supported (no raw I/O)
- - you can not boot from SCSI disk
- - lots of data movement at each interrupt, which can
- lead to contention with the serial ports
-
-
- #!/bin/sh
- # This is a shell archive (produced by shar 3.49)
- # To extract the files from this archive, save it to a file, remove
- # everything above the "!/bin/sh" line above, and type "sh file_name".
- #
- # made 09/17/1990 06:15 UTC by tin@szebra.uucp
- # Source directory /tmp/st02
- #
- # existing files will NOT be overwritten unless -c is specified
- #
- # This is part 1 of a multipart archive
- # do not concatenate these parts, unpack them in order with /bin/sh
- #
- # This shar contains:
- # length mode name
- # ------ ---------- ------------------------------------------
- # 28207 -rw-r--r-- Driver.uu
- # 496 -rwxr-xr-x Makedev
- # 10877 -rw-r--r-- README
- # 7169 -rw-r--r-- README.2
- # 260 -rw-r--r-- config
- # 1975 -rwxr-xr-x install
- # 673 -rw-r--r-- makefile
- # 36 -rw-r--r-- mdevice
- # 36 -rw-r--r-- node.d
- # 43689 -rw-r--r-- scsi.c
- # 3587 -rw-r--r-- scsi.h
- # 805 -rw-r--r-- scsiasm.s
- # 6168 -rw-r--r-- scsipart.c
- # 56557 -rw-r--r-- scsipart.uu
- # 31 -rw-r--r-- sdevice.d
- # 2319 -rw-r--r-- td.c
- # 50381 -rw-r--r-- td.uu
- #
- if test -r _shar_seq_.tmp; then
- echo 'Must unpack archives in sequence!'
- echo Please unpack part `cat _shar_seq_.tmp` next
- exit 1
- fi
- # ============= Driver.uu ==============
- if test -f 'Driver.uu' -a X"$1" != X"-c"; then
- echo 'x - skipping Driver.uu (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Driver.uu (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Driver.uu' &&
- begin 755 Driver.o
- M3 $$ &Y-]"9R1P 9P !P $+ 0 P!\ *@0 - "0
- M $ +G1E>'0 #0 T , ? #0 !#, #V 0 ( "YD
- M871A D ! ) 0 "H$ D" *!& %0 $ N8G-S
- M #@10 X$4 " +F-O;6UE;G0
- M ,P! X,0 ( %6+[(/L"%=H@ E .@?____
- M6:&4 $ Q@#A,]+K Y"00H'Z$"< 'SWH90 0 #& & STNL$D)"00H'Z(*$'
- M 'SW,__K$9"0D&G'% $ ,: J % !'N 0 [^'SI7\G#D)!5B^R#[ Q7
- M5E,S]C/;ZRV0:"@*0 #HLO[__UDS_^L"D$>!_X"6F !\]T;K$*&4 $ Q@#@
- M,\!;7E_)PY"AE ! ,8 8*$$ Q@" H90 0 #& # S_^L0H90 0 /M@"I
- M@ '4M1X'_X),$ 'SHH90 0 #& &"#_@)\-VBF"4 Z$7^__]9N ( !;
- M7E_)PY"0,_:A! (M-"+H! T^(($*&4 $ Q@#J,__K&9#HX_[__T;K
- M@*&4 $ #[8 J0$ !U(4>!_Z"& 0!\Z*&4 $ Q@!@@_L"?#>X 0 %M>
- M7\G#D&E%"!0! #&@*@!0 !:44(% $ ("XX ! !U>J&4 $ Q@#H,__K
- M+Y"00S/_ZP20D)!'@?\@3@ ?/?I#O___Y"0H90 0 /M@ E'@ #T:
- M=#A'@?] #0, ?./_=0AHX@E .AR_?__@\0(:44(% $ ,: X ! &AE !
- M ,8 X#/ 6UY?R<.0D*$$ Q@# H90 0 /M@"I 0 ^%E?[__^ET_O__
- M58OL4%=64XMU"&G&% $ (J8= % .D2 0 D#/)ZQ"AE ! ^V *D0
- M=1%!@?F@A@$ ?.CI*P$ )"0D*&4 $ #[8 J0X /A14! "$VW0AOP$
- M "A! &G6% $ (N2: % (H2B!#IGP )"0:<84 0 B[AL 4 @?\
- M! ?@6_ 0 &G&% $ #NXV ! 'X,:<84 0 B[C8 $ :<84 0 @+B$
- M 4 '1&@?\ ! =@6_ 0 %=H) 5 &G&% $ /^P: % .A2_/__@\0,
- M/?____]U"#/ 6UY?R<.05V@D!4 Z*<< "#Q CK%5=IQA0! #_L&@!0 #H
- MD!P (/$"&G&% $ "FX; % &G&% $ &X: % &G&% $ (.X; % /
- MC]S^___K)I"0H00 #& SR>L0H90 0 /M@"I$ '4)08'YH \ 'SH
- MH90 0 /M@ E'@ #T0 =,BX 0 %M>7\G#D)!5B^Q05U93BW4(LP%I
- MQA0! #&@(0!0 Z1L! "0D#/)ZQ"AE ! ^V *D0 =1%!@?F@A@$
- M?.CI,P$ )"0D*&4 $ #[8 )0X ]! ^%& $ (3;="2_ 0 &G&
- M% $ (N : % (L5! (H2B!#IH0 )"0D)!IQA0! "+N&P!0 "!_P $
- M !^!;\ ! :<84 0 .[C8 $ ?@QIQA0! "+N-@ 0 !IQA0! " N(0!
- M0 =$:!_P $ !V!;\ ! 5V@D!4 Z!X; "#Q A7:<84 0 _[!H 4
- M:"0%0 #HL/K__X/$##W_____=1\SP%M>7\G#D)"05VG&% $ /^P: % .C>
- M&@ @\0(:<84 0 *;AL 4 :<84 0 ;AH 4 :<84 0 @[AL 4 ^/
- MU/[__^LFD)"A! ^V #/)ZQ"AE ! ^V *D0 =0E!@?F@#P ?.BA
- ME ! ^V "4> /10 !TR+@! 6UY?R<.0D%6+[%!75E.+70@S]NE(
- M @ D)"04^C*_/__687 #X4U @ 4VAU"D Z.;Y__^#Q BX! %M>7\G#
- MD%/H*O[__UF%P ^%#0( %-HG I .B^^?__@\0(N 0 !;7E_)PY"A!
- M &G3% $ (N*< % /^"< % (H1B!#IU $ )"0D)!IPQ0! "+%00 "*
- M$HB0=0% .FW 0 D)"0H00 #& BAE ! ,8 X.F? 0 D)"0H00 /
- MMCB!Y_\ "+QX7 =&0] @ ^$G0 #T# #X3* /00 /A L!
- M ]!P ^$7 $ #T( #X11 0 /8 /A$8! #WQX /A3H!
- M !74VC""D Z.KX__^#Q SI)@$ )"0:<,4 0 QH"H 4 *&4 $ Q@!@
- M:<,4 0 BH!U 4 A,!U$VH 4^AG!P @\0(,\!;7E_)PY"X! %M>7\G#
- MD)!IPQ0! !ITQ0! "+DF@!0 ")D(@!0 !IPQ0! !ITQ0! "+DFP!0 ")
- MD(P!0 #IJP )"0D&G#% $ &G3% $ (N2B % (F0: % &G#% $ &G3
- M% $ (N2C % (F0; % &G#% $ &G3% $ (N2D % (F0< % .M>D)!I
- MPQ0! #&@*@!0 :<,4 0 QX!\ 4 0 *&4 $ Q@!@N 8 !;7E_)
- MPY"AE ! ^V %!H] I .C5]___@\0(ZQ0]#@ '?AA<!\W?\DA2P)0 "0
- MD$:!_D!"#P!\&VG#% $ (.X> % !T#+@# 6UY?R<.0D*&4 $ #[8
- MJ0$ !U)5-H40I .A^]___@\0(:<,4 0 QH"H 4 +@$ 6UY?R<.A
- ME ! ^V *D0 =)FAE ! ^V "4. Z7/___^0D)!5B^R#[ A75HMU
- M"*&4 $ Q@ @,__K99"AE ! ^V "4E /20 !U3Z$$ B@"(1?L/
- MML"I@ '44#[9%^U!H&PM .CQ]O__@\0(ZR> 9?M_#[9%^XO.N@$ #3
- MXB/"=3</MD7[4&A("T Z,CV__^#Q A'@?\ "3T ?)2AE ! ,8 8%9H@0M
- M .BI]O__@\0(,\!>7\G#H90 0 #& *0S_^L0H90 0 /M@"I( '0)1X'_
- M0 T# 'SH,__K$*&4 $ #[8 J0$ !T"4>!_T - P!\Z*&4 $ Q@#@:<84
- M 0 QH"H 4 ;@! 7E_)PY"058OL4%=6BW4(:<84 0 :=84 0 :<X4
- M 0 BXF4 4 B8J( 4 B8AH 4 :<84 0 :=84 0 :<X4 0 BXF8 4
- MB8J, 4 B8AL 4 :<84 0 :=84 0 :<X4 0 BXF< 4 B8J0 4 B8AP
- M 4 ZPV0:<84 0 _XB 4 5NCJ]O__68OXA?]T!XO'7E_)PY!6Z([[__]9
- MB_B#_P8/A:H !IQA0! " N(4!0 =!-6Z$'^__]9A<!UU.FS D)"0
- M:<84 0 @[BD 4 '09:<84 0 QX!\ 4 0 +@& 7E_)PVG&% $
- M ,> ? % $ !H&@$ &G&% $ (V J % %#H)?7__X/$"#T! =1=I
- MQA0! #&@*D!0 N 0 !>7\G#D&G&% $ ("XJ % /A4G____K*Y"0
- MD(7_= J#_P%T!8/_ G4:A?\/A"?___]75NB# P @\0(Z1C___^0D)!HM M
- M .BZ]/__66G&% $ (.X@ % $/C][^__^#_P-T!8/_ G4%Z&?U__]IQA0!
- M #&@*@!0 H90 0 #& &!75N@O P @\0(B\=>7\G#D)!5B^Q05U:+?0CH
- M8O3__XOP:<<4 0 @+BI 4 '1?@WTL '1*5NA%]/__6;@% 7E_)PY"0
- MD%;H,O3__UEJ&FG'% $ (V J0% %#H'?3__X/$"#T! =0NX! %Y?
- MR<.0D.@#]/__B_!IQQ0! " N*D!0 =;IIQQ0! "+51")D)0!0 !IQQ0!
- M "+512)D)@!0 !IQQ0! "+50R)D)P!0 !IQQ0! "*52"(D'0!0 !IQQ0!
- M #&@'4!0 !@WT8 '0'BT480.L#D#/ :=<4 0 B8)X 4 :<<4 0 QX!\
- M 4 &G'% $ (M5'(F0@ % &G'% $ (I5)(B0A % &G'% $ (I5
- M*(B0A0% &G'% $ (M5+(F0I % &G'% $ ,: J0% %6Z"_S__]95^CH
- M_/__65Y?R<.0D)!5B^R#[!1I10@4 0 BXC8 $ A<EU!;D @ BT44 \%(
- MF??YB47P]T48 0 '0'N"@ #K!;@J B$7VQD7W (M%#,'X&(A%^(M%
- M#,'X$(A%^8M%#,'X"(A%^HI%#(A%^\9%_ "+1?#!^ B(1?V*1?"(1?[&1?\
- M_W4@_W4<BT48)1 !0:@!J VH%_W44_W40C47V4/]U".@-_O__@\0HR<-5
- MB^Q05U:+?0R+=0AIQA0! "-@-@ 0 ")1?Q7:@#_-_]W&/]W'(M'(,'@"9F+
- M3?SW.6G6% $ (V2Z ! ^_3Q2!X0\ #!,I05N@&____@\0<7E_)PY"0
- MD%6+[%=6Z!+R__^+\(-]# !T+HM%#(MX#(7_=3%I10@4 0 BU4,.9"@ 4
- M=!]I10@4 0 B[B@ 4 ZQ"0D)!I10@4 0 B[B@ 4 @WT, '1@:44(% $
- M (N H % #E%#'43:44(% $ (M5#(M2#(F0H % (M%#(-X$ !T#(M $(M5
- M#(M2#(E0#(M%#(-X# !T#(M #(M5#(M2$(E0$(M%#,= # #'0!
- MA?]T#%?_=0CHY/[__X/$"%;H4_'__UE>7\G#D)!5B^Q75NA"\?__B_AI10@4
- M 0 QH"I 4 &E%"!0! #&@*@!0 :44(% $ ,> ? % !I10@4
- M 0 B["D 4 A?9T#H-]# !T+($.! .LD:44(% $ ("XA0% !U%&E%
- M"!0! "-@*@!0 !0Z-'P__]95O]U".BK_O__@\0(A?9T!U;HNO#__UE7Z+/P
- M__]97E_)PY"058OL4%=64Z&4 $ #[8 J2 !T"L=%_ #K&Y!;7E_)
- MPY"0D*&4 $ #[8 J00 !U%?]%_+@@3@ .47\?.1;7E_)PY"0D*$$
- M#[8X@>?_ ]\> =197:-H+0 #H/_#__X/$"%M>7\G#D)"0@>=_____
- M,]OK%9"0B\NX 0 -/@#[; B]<CT'4&0X/["'SH@_L(?12+R[@! T^ /
- MML#WT(O7(]!T%U=3: 4,0 #HZ^___X/$#%M>7\G#D)"0@_L$?!=J!%-H- Q
- M .C.[___@\0,6UY?R<.0D.B_[___B_!IPQ0! " N*@!0 =0]IPQ0! "
- MN*D!0 =3=IPQ0! /OH"I 4 4&G#% $ ^^@*@!0 !04VAF#$ Z'CO
- M__^#Q!!6Z&_O__]96UY?R<.0:<,4 0 @+B% 4 '0=4VBI#$ Z$[O__^#
- MQ A6Z$7O__]96UY?R<.0D)"AE ! ,8 Y,=%_ #K%9"0D*&4 $ #[8
- MJ2 !T,?]%_(%]_"!. !\Y:&4 $ Q@!@4VC7#$ Z/KN__^#Q A6Z/'N
- M__]96UY?R<.0D)#'1?P ZQ60D)"AE ! ^V *D! =3'_1?R!??P@
- M3@ ?.6AE ! ,8 8%-H'0U .BN[O__@\0(5NBE[O__65M>7\G#D)"0H90
- M0 #& .!IPQ0! #&@*@!0 !:<,4 0 QX!\ 4 ,8%* E %6Z&KN
- M__]9:<,4 0 @[BD 4 '0.4^A ]/__Z90 "0D)!IPQ0! "-@*@!0 !0
- MZ#KN__]9Q@4H"4 %M>7\G#D&G#% $ ,: J % "%_W3B@_\&=-UIPQ0!
- M "#N( !0 ?@J#_P)T!8/_ 74E5VAM#4 Z/+M__^#Q BAE ! ,8 8%=3
- MZ)3\__^#Q CKHI"0D&G#% $ /^(@ % &B;#4 Z,+M__]94^A[]___68OX
- MZXJ0D%6+[%=64^BI[?__B]B /2@)0 #X4F 0 ,_;I%@$ )"0D&G&% $
- M ("XJ0% /A/\ !IQA0! " N*@!0 #X7L :<84 0 @[A\ 4
- M ^$V0 &G&% $ (.X> % /A,8 !IQA0! " N(4!0 = GIL@
- M )"0D)!IQA0! #_@'P!0 !IQA0! !IUA0! "+DG@!0 YD'P!0 /C(0
- M !IQA0! #'@'P!0 :<84 0 @[BD 4 '4C5FBY#4 Z-CL__^#
- MQ AIQA0! "-@*@!0 !0Z,/L__]9ZT*_ P (7_=#F#_P9U NLR:<84 0
- M@[B 4 '0*@_\"= 6#_P%U0U=6:/<-0 #HB^S__X/$#%=6Z#7[__^#Q A&
- M@_X$#XSD_O__:@IJ &A,$@ Z&;L__^#Q Q3Z%WL__]96UY?R<.0D)!IQA0!
- M #_B( !0 !75F@N#D Z#SL__^#Q Q6Z//U__]9B_CI</___Y"0D%6+[%=6
- MBWT(BW4,ZPN0D)"+QT>*%D:($( ^ '7SQ@< 7E_)PU6+[(/L"(-]$!)^!\=%
- M$!( #&1?H#QD7[ ,9%_ #&1?T BD40B$7^QD7_ &H _W44:@!J 6H#:@+_
- M=1#_=0R-1?I0_W4(Z$CW__^#Q"C)PY"0D%6+[(/L",9%^@#&1?L QD7\ ,9%
- M_0#&1?X QD7_ &H :@%J &H!:@%J 6H :@"-1?I0_W4(Z ;W__^#Q"C)PY!5
- MB^R#[ B#?1 D?@?'11 D QD7Z$L9%^P#&1?P QD7] (I%$(A%_L9%_P!J
- M /]U%&H :@%J VB6 _W40_W4,C47Z4/]U".BQ]O__@\0HR<-5B^R#[ R#
- M?1 (?@?'11 ( QD7V)<9%]P#&1?@ QD7Y ,9%^@#&1?L QD7\ ,9%_0#&
- M1?X QD7_ &H _W44:@!J 6H":)8 #_=1#_=0R-1?90_W4(Z$_V__^#Q"B%
- MP'0$,\#)P[@! R<.058OL@^QX5U93BUT(:<,4 0 QX#8 $ &G#
- M% $ ,: J0% !IPQ0! #&@*@!0 :<,4 0 QX#D $ &G#% $
- M ,: X ! !3Z*/^__]9B_"%]G1H@_X$= 6#_@5U>U-H80Y .@WZO__@\0(
- MQT6, .LBD)"0BT6,N:"& 0"9]_F%TG4-4^AC_O__68OPA?9T#/]%C(%]
- MC("6F !\V(7V=!A3:($.0 #H\>G__X/$"#/ 6UY?R<.0D)!J 6IDC4644%/H
- MTOW__X/$$(OP@_X!= 6#_@)U!S/ 6UY?R<.%]G084VB>#D Z+'I__^#Q @S
- MP%M>7\G#D)"0:@%J9(U%E%!3Z";^__^#Q!"+\(7V=!53:,D.0 #H@NG__X/$
- M"#/ 6UY?R<.*192$P'054VCI#D Z&;I__^#Q @SP%M>7\G##[9%F(U !HU5
- ME /"Q@ C46<4&G#% $ (V F ! %#H#_W__X/$"&H!:F2-19104^@*_O__
- M@\00A<!U.VG#% $ ,> W ! !IPQ0! #'@-@ 0 @ N " ")
- M1?A3:!4/0 #H[.C__X/$".MID)"0:<,4 0 #[95FL'B" ^V39L#T8F0V !
- M (E5^(%]^ $ !^%F@ ! _W7X4V@Z#T Z*SH__^#Q!!IPQ0! /ME64
- MP>(8#[9-E<'A$ /1#[9-EL'A" /1#[9-EP/1B9#< $ :<,4 0 C8"8 $
- M4&G#% $ /^PV ! &G#% $ &G3% $ (N W ! ^O@M@ 0 "-@ " "Y
- M 0 )GW^5!3:&X/0 #H,NC__X/$%&H :@%J 6IDC4644&H 4^C[]/__@\0<
- MB_"%]G064VB:#T Z ?H__^#Q @SP%M>7\G#D(U%E(OX,_;IG@ )"0D) /
- MM@?!X! /ME<!P>(( \(/ME<" \*)19 /MD<#P> 0#[97!,'B" /"#[97!0/"
- MB46,@WV0 '4&_T60_TV,:<,4 0 C8#H $ B]:+39")#-!IPQ0! "-@.@
- M0 "+38R)3- $A?9U"VC)#T Z'KG__]9BT6,#Z]%^(V ( +D ! F??Y
- M4&C5#T Z%GG__^#Q A&@\<&@_X/?3N /P /A5C___^ ?P$ #X5.____@'\"
- M ^%1/___X!_ P /A3K___^ ?P0 #X4P____@'\% ^%)O___X7V= MHW ]
- M .@$Y___66G#% $ (FPY ! &G#% $ ,> 8 % !IPQ0! !ITQ0!
- M "+DMP 0 ")D&0!0 "X 0 %M>7\G#D%6+[%=HXP] &C>#T Z+'F__^#
- MQ B#/9 0 =1AJ 6C+ :@%J >B5YO__@\00HY 0 "#/9 0 =0AH
- M/!! .MKD*&0 $ C8 "@ HY0 0 "AD ! (V P *,$ Q@4D"4
- M #/_ZR*0:<<4 0 QX"D 4 &G'% $ ,> H % !'@_\$?-HS
- M_^L*D)!7Z'+[__]91X/_!'SS:'400 #H#>;__UE?R<.058OL@^P,5U93#[]%
- M""7_ P?@$B_@/OW4(@>8/ @#TD"4 '4:Z-GE__^+V.@>^/__4^C,
- MY?__6<8%) E &X! #OX?2BX#P #OP="9IQQ0! "#N-@ 0 =!!I
- MQQ0! "+@.0 0 [\'P'Q@7I$ !EM>7\G#D)"058OLR<.0D)!5B^R#[!A7
- M5E.+?0@/OT<4)?\ #!^ 2)1?P/OT<4)0\ ")1?B#??P$#XVE :47\
- M% $ (.XV ! /A)$ !I1?P4 0 C8#8 $ B47HBT<8,]*+3>CW,872
- M=7.#??@/=2=I1?P4 0 C8#8 $ B47HBT<@P> )F8M-Z/<YB_#I*@$ )"0
- MD)!I1?P4 0 C8#8 $ B47HBT<@P> )F8M-Z/<YB_!I1?P4 0 BX#D $
- M.47X?19I1?P4 0 C8#H $ BU7X.W30!'X:@0\$ BT<8B4<H5^B4Y/__
- M65M>7\G#D)!I1?P4 0 C8#H $ BU7X.W30!'42BT<8B4<H5^AJY/__65M>
- M7\G#:47\% $ (V V ! (E%Z&E%_!0! "+5Q@#D-@ 0 !*B\(STHM-Z/<Q
- MB47TB\8#1?1I5?P4 0 C9+H $ BTWX.T3*!'X\:47\% $ (V Z ! (M5
- M^(T4U0 #PHM !"O&B47T:47\% $ (M5] ^OD-@ 0 "+1Q@KPHE'*.L'
- MQT<H &E%_!0! "-@.@ 0 "+5?@#--#HP>/__XE%\&E%_!0! "-@* !
- M0 ")1>PSV^MCD)!I1?P4 0 C8#8 $ B47HBT7LBP"+0"#!X F9BTWH]SEI
- M5?P4 0 C9+H $ BTWX P3*._!]'(E?$(M%[(L B7@0BT7LBP")1PR+1>R)
- M..LCD)"+1>R+&(L C4 ,B47LBT7L@S@ =9>).,='# ")7Q!I1?P4 0
- M@+BI 4 '4,5_]U_.BB\/__@\0(_W7PZ _C__]96UY?R<.058OL:@'_=0AH
- MZ 1 &B$&@ Z/'B__^#Q!#)PU6+[&H _W4(:.@$0 !HA!H .C5XO__@\00
- MR<-5B^R#[!A75E.+?0R+=1"+70B%_W\%OP " !65U-H=Q! .BHXO__@\00
- MQD7V%<9%]P#&1?@ QD7Y ,9%^@S&1?L QD7J ,9%ZP#&1>P QD7M",9%[@#&
- M1>\ QD7P ,9%\0#&1?( B\?!^! E_P (A%\XO'P?@()?\ "(1?2+QR7_
- M B$7U:@!J &H :@%J FH%:@R-1>I0C47V4%/HN>W__X/$*(7 = Y3:+(0
- M0 #H%^+__X/$",9%]@3&1?< QD7X (O&P?@()?\ "(1?F+QB7_ B$7Z
- MQD7[ &H :@!J &H!:@!J &H :@"-1?904^AC[?__@\0HA<!T%&CS$$ Z,+A
- M__]9,\!;7E_)PY"0: H10 #HKN'__UFX 0 %M>7\G#D)"058OL9J'J$
- M9H7 = [&!>D0 !,\#)PY"0D+@! R<.058OL@^P,5U93BT4()?\ #!
- M^ 2+^(MU"('F#P ,8%Z1 "#_Q!]$X/^#W0@:<<4 0 .[#D $ ?!+&
- M!>D0 6N $ !;7E_)PY"+10Q(#XPJ 0 /04 /AQ\! "%P ^,%P$
- M /\DA6@)0 "#_@]U'VG'% $ /^PW ! /]U$.COX/__@\0(Z2 ! "0D)!I
- MQQ0! "-@.@ 0 #_=/ $_W40Z,S@__^#Q CI_0 )"0D)!IQQ0! "-@)@
- M0 "+V.G4 D&:AZA &:%P'0+Q@7I$ 3/ ZP>X 0 .OWA< /A,
- M #_=1#H?^#__UEIUQ0! ")@M@ 0 #II@ )!FH>H0 !FA<!T"\8%Z1
- M $SP.L'N $ #K]X7 #X2 _W40Z#_@__]94&G'% $ /^PV ! %?H
- M6_W__X/$#(7 =0?&!>D0 %5^AK]?__6>M-:<<4 0 _[#8 $ _W40Z #@
- M__^#Q CK-)"0D,8%Z1 !;K*)"0D ^V U#_=1#HX-___X/$"$/_11" .P!U
- MZ&H _W40Z,K?__^#Q @SP%M>7\G#58OL:"(10 #HL]___UDSP,G#D)!5B^Q6
- M5P:,V([ BWT(BTT,BS4$ _/.D!U]>7<-5B^Q65P:,V([ BW4(BTT,BST$
- M _/.D!U]>7<,
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M
- M & 8" & @ !@( H!@ & @ !@( 8" 4 8
- M !@( "0!@ & @ '0& 8" J 8 /@> ! 'P E!\ %0? #C'P
- M[!\ '-C<VDZ('-E;F1I;F<@:&%R9"!R97-E="!T;R!S8W-I(&)U<PH <V-S
- M:3H@87)B:71R871I;VX@=&EM96]U=" M('-O;65O;F4@:7,@<VET=&EN9R!O
- M;B!T:&4@8G5S/PH <V-S:3H@=&EM96]U="!I9&5N=&EF>2!M<V<@;W5T("T@
- M9')I=F4@)60@9&]E<R!N;W0@<W5P<&]R="!M97-S86=E<S\* '-C<VDZ(&%F
- M=&5R('-U8V-E<W-F=6P@87)B:71R871E("%35$)360H <V-S:2!D;WAF97)N
- M;W-L965P.B A4U1"4UD@=6YI=" E9 H <V-S:3H@9&%T86]U="!R971U<FYE
- M9"!E<G)O<CL@=6YI=#TE9 H <V-S:3H@9&%T86EN(')E='5R;F5D(&5R<F]R
- M.R!U;FET/25D"@!S8W-I.B!U;FMN;W=N(&UE<W-A9V4@<F5C96EV960@9G)O
- M;2!D<FEV92 E9#H@)7@* '-C<VDZ('5N97AP96-T960@8G5S('-T871E.B!S
- M=&%T=7,])7@* '-C<VDZ('!O;&QE9"!R97-E;&5C=&EO;B!W87,@;F]T(&9O
- M<B!M93H@)7@* '-C<VDZ(')E<V5L96-T:6YG("AP;VQL960I('5N:70@;W1H
- M97(@=&AA;B!E>'!E8W1E9#H@)7@* '-C<VDZ('1I;65O=70@<&]L;&5D('=A
- M:70@9F]R(')E<V5L96-T:6]N(&9R;VT@)60* '-C<VDZ('-T87)T<V-S:3H@
- M<F5T<GEI;F<@;W(@9F%I;&EN9PH <V-S:3H@:6YT<B!I9VYO<F5D("AN;W0@
- M;7D@861D<BD[(&%D9'(])7@* '-C<VDZ(&EN='(@:6=N;W)E9" H:6YV86QI
- M9"!I9"D[('5N:70])60@83TE> H <V-S:3H@:6YT<B!I9VYO<F5D("AU;FET
- M("5D(#X](%-#4TE-05A$4DE615,@)60I"@!S8W-I.B!I;G1R(&EG;F]R960@
- M*&EN=&5R;F%L('-T871E*3H@=6YI=#TE9"!C;VYN96-T960])60@8G5S>3TE
- M9 H <V-S:3H@:6YT<B!I9VYO<F5D("AX9F5R(&ES('!O;&QE9"D[('5N:70]
- M)60* '-C<VDZ(&EN='(@:6=N;W)E9" H=&EM96]U="!W86ET:6YG(&9O<B!3
- M14P@=&\@8F4@<F5L96%S960I.R!U;FET/25D"@!S8W-I.B!I;G1R(&EG;F]R
- M960@*'1I;65O=70@=V%I=&EN9R!F;W(@0E-9(&%F=&5R(%-%3"!T;R!B92!R
- M96QE87-E9"D[('5N:70])60* '-C<VDZ(&EN='(Z(&-M9"!F86EL960@*"5D
- M*3L@<F5T=7)N:6YG(&5R<F]R"@!S8W-I.B!I;G1R.B!R971R>6EN9R!C;VUM
- M86YD"@!S8W-I.B!L;V-A;"!I;G1R(&1R:79E;B!X9F5R('=O:V5N('5P(&)Y
- M('1I;65R('1I8VL[('5N:70])60* '-C<VDZ(&)L;V-K('AF97(@9F%I;',@
- M:6X@=&EM97(@=&EC:SL@=6YI=#TE9"P@97)R/25D"@!S8W-I.B!X9F5R(')E
- M=')I960@:6X@=&EM97(@=&EC:SL@=6YI=#TE9"P@97)R/25D"@!786ET:6YG
- M(&9O<B!U;FET("5D('!O=V5R=7 N+BX* %!O=V5R=7 @=&EM96]U="!O;B!D
- M<FEV92 E9 H <V-S:2!D<FEV92 E9"!I<R!N;W0@<F5S<&]N9&EN9R!P<F]P
- M97)L>2X* '-C<VD@9')I=F4@)60Z(&EN<75I<GD@9F%I;&5D+@H <V-S:2!D
- M<FEV92 E9"!I<R!O;B!A(&1I<F5C="!A8V-E<W,@9&5V:6-E"@!S8W-I(&1R
- M:79E("5D.B!C86YN;W0@<F5A9"!C87!A8VET>0H <V-S:2!D<FEV92 E9#H@
- M8FQO8VMS:7IE/25D($)325I%/25D(&YO="!S=7!P;W)T960* '-C<VD@9')I
- M=F4@)60Z("5L9$U"("@E9"!B>71E('-E8W1O<G,I.B E<PH <V-S:2!D<FEV
- M92 E9#H@8V]U;&0@;F]T(')E860@<&%R=&ET:6]N('1A8FQE"@!P87)T:71I
- M;VYS.@ @)6QD34( "@ *)7,* %-#4TD@9&ES:R!D<FEV97(@5C$N,2 @0V]P
- M>7)I9VAT("AC*2 Y+C8N,3DX."!4871U(%EL?&YE;@H)0V]P>7)I9VAT("AC
- M*2 X+C@N,3DY,"!4:6X@3&4 <V-S:2!D<FEV97(@97)R;W(Z(&-O=6QD(&YO
- M="!S<'1A;&QO8R!C;VYT<F]L;&5R(&UE;6]R>0H "@!S8W-I.B!F;W)M871T
- M:6YG('5N:70@)60@=VET:"!B;&]C:W-I>F4])60L(&EN=&5R;&5A=F4])60*
- M '-C<VDZ('=A<FYI;F<Z(&UO9&4@<V5L96-T(&-O;6UA;F0@<F5T=7)N960@
- M97)R;W(@9G)O;2!D<FEV92 E9 H <V-S:3H@9F]R;6%T(&9A:6QU<F4N"@!S
- M8W-I.B!F;W)M870@8V]M<&QE=&4N"@!S8W-I<')I;G0@8V%L;&5D.@H
- M0"@C*69C;G1L+F@),BXS("T@.#@O,#4O,C< 0"@C*69C;G1L+F@),BXS("T@
- M.#@O,#4O,C< 0"@C*7-Y<VUA8W)O<RYH"3(N,R M(#@X+S U+S(W $ H(RET
- M>7!E<RYH"3(N,R M(#@X+S U+S(W $ H(REP87)A;2YH"3(N,R M(#@X+S U
- M+S(W $ H(RES-7!A<F%M+F@),BXS("T@.#@O,#4O,C< 0"@C*7-I9VYA;"YH
- M"3(N,R M(#@X+S U+S(W $ H(REE<G)N;RYH"3(N,R M(#@X+S U+S(W $ H
- M(RED:7(N: DR+C,@+2 X."\P-2\R-P! *",I<S5D:7(N: DR+C,@+2 X."\P
- M-2\R-P! *",I9FEL92YH"3(N,R M(#@X+S U+S(W $ H(REU<V5R+F@),BXT
- M("T@.#@O,#@O,3@ 0"@C*6)U9BYH"3(N-" M(#@X+S X+S$R $ H(REI;V)U
- M9BYH"3(N,R M(#@X+S U+S(W $ H(REI;6UU+F@),BXS("T@.#@O,#4O,C<
- M0"@C*7)E9VEO;BYH"3(N,R M(#@X+S U+S(W $ H(REP<F]C+F@),BXS("T@
- M.#@O,#4O,C< -@ ! !@#= 5@ !0 XP $ & /H !
- M !@ @ 0 0 8 10$ $ & $H! !6 % !A 0 0 8
- M<0$ $ & 'D! !5 !@"! 0 0 8 C0$ $ & *4! !
- M !@"R 0 0 8 MP$ %8 4 ,L! !5 !@#< 0 0 8
- MZ0$ #X 4 /$! ! !@ ) @ 0 8 *0( $ & #<" !
- M !@ _ @ 0 8 7@( #X 4 &4" ! !@"% @ 0 8
- MB@( %8 4 )H" ! !@"@ @ 0 8 L0( %4 & +D" !
- M !@#' @ /@ !0 S ( #X 4 .(" ! !@#G @ /@ !0
- M\0( $ & D# ^ % 1 P 0 8 'P, #X 4 "T# !5
- M !@ Y P 0 8 0@, #X 4 % # ! !@!I P 0 8
- M=P, $ & (,# ! !@"9 P 0 8 I0, $ & *H# !7
- M % #" P 0 8 QP, %@ 4 -D# ! !@#> P 6 !0
- M[0, $ & /D# ! !@ %! 0 8 # 0 #X 4 !4$ !5
- M !@ A! 0 8 .00 $ & &P$ ! !@!R! /@ !0
- M?00 $ & )4$ ^ % "=! 0 8 L 0 #X 4 ,4$ !
- M !@#+! 50 8 U 0 #X 4 .0$ ! !@#]! 0 8
- M"P4 $ & !<% ! !@ M!0 0 8 ,@4 %D 4 $(% !
- M !@!'!0 0 8 3 4 %H 4 &T% ! !@!R!0 60 !0
- M@04 $ & (T% ! !@"9!0 0 8 H 4 #X 4 *D% !5
- M !@"U!0 0 8 S04 $ & /D% ^ % "!@ /@ !0
- M"P8 #X 4 !$& ! !@ 6!@ 5@ !0 *@8 #X 4 #,& ^
- M % Y!@ 0 8 /@8 %8 4 %$& !5 !@!=!@ 0 8
- M8P8 $ & &P& ^ % !\!@ 50 8 A 8 $ & (D& ^
- M % "1!@ 50 8 F08 $ & *$& ^ % "I!@ 50 8
- MPP8 #X 4 ,X& ^ % #9!@ /@ !0 Y 8 #X 4 .\& ^
- M % #Z!@ /@ !0 !@< #X 4 T' ! !@ 2!P 5@ !0
- M&@< #X 4 "@' ! !@ N!P 0 8 /0< $ & $D' ^
- M % !R!P 0 8 > < $ & (H' ! !@"0!P 0 8
- ME0< #X 4 *H' ! !@"P!P 0 8 P@< $ & ,@' !
- M !@#:!P 0 8 X < $ & / ' ! !@#]!P 0 8
- M!@@ $ & !D( ! !@ B" 0 8 )P@ %8 4 #X( !
- M !@!5" 0 8 :0@ $ & 'D( ! !@!^" 5@ !0
- MC0@ $ & )T( ! !@"L" 0 8 N0@ #X 4 ,P( !
- M !@#9" 0 8 [0@ %4 & 8) ! !@ +"0 5@ !0
- M+PD $ & #0) !6 % !%"0 0 8 3@D $ & %,) !6
- M % !A"0 0 8 ;0D $ & (D) ! !@"A"0 0 8
- ML D $ & -T) ! !@#C"0 0 8 Z0D $ & $* !
- M !@ '"@ 0 8 #0H $ & "4* ! !@ K"@ 0 8
- M,0H $ & $ * ! !@!&"@ /@ !0 6@H #X 4 &8* ^
- M % !R"@ 0 8 >PH #X 4 (4* ^ % "4"@ 0 8
- MHPH $ & +P* ! !@#1"@ 0 8 UPH %L 4 .T* !
- M !@ $"P 0 8 "PL #X 4 "8+ ^ % M"P /@ !0
- M-0L #X 4 #T+ ! !@!""P 5@ !0 3PL $ & %8+ ^
- M % !E"P /@ !0 <0L $ & '<+ ! !@"!"P /@ !0
- MF@L %P 4 *@+ ! !@"W"P 70 !0 R@L %T 4 -D+ !
- M !@#?"P 6P !0 ^0L %P 4 <, ! !@ 9# 0 8
- M* P $ & #<, ! !@! 0 8 4@P $ & &X, !
- M !@!Z# 0 8 C0P $ & )P, ! !@"K# 0 8
- MN@P $ & ,8, ! !@#-# 70 !0 U P #X 4 .\, !
- M !@!_#0 /@ !0 G T $ & ,(- ! !@#6#0 /@ !0
- MZ@T %P 4 P. ! !@ ;#@ 0 8 +0X $ & $ . !
- M !@!8#@ 0 8 H X #X 4 *D. != % "Z#@ 7 !0
- MR0X $ & -<. ! !@#E#@ 0 8 ]@X $ & !4/ !
- M !@ E#P 0 8 *P\ %X 4 #4/ ^ % !"#P 7P !0
- M20\ %T 4 %P/ ! !@!]#P 0 8 H0\ %4 & +@/ !
- M !@"]#P 5@ !0 #! $ & !$0 !6 % I$ 0 8
- M+A %8 4 #T0 !< % !+$ 0 8 6A $ & &H0 !
- M !@!X$ 0 8 ?Q $ & (00 !6 % "-$ 70 !0
- MH! $ & *D0 ! !@"N$ 5@ !0 MQ %T 4 ,40 !
- M !@#9$ 0 8 ]! $ & /T0 ! !@ "$0 5@ !0
- M"Q$ %T 4 "41 ! !@! $0 0 8 21$ $ & $X1 !6
- M % !7$0 70 !0 91$ $ & '01 ! !@"!$0 0 8
- MBQ$ $ & )(1 != % "?$0 0 8 J!$ #X 4 *T1 ^
- M % "\$0 0 8 PA$ %X 4 ,D1 ! !@#<$0 0 8
- M\A$ $ & 42 ! !@ *$@ 5@ !0 $A( $ & !P2 ^
- M % P$@ 0 8 -1( $ & #H2 !6 % !!$@ /@ !0
- M4Q( %P 4 %L2 ! !@!B$@ /@ !0 :1( #X 4 '@2 !
- M !@!_$@ /@ !0 BQ( $ & )(2 ^ % ">$@ 0 8
- MI1( #X 4 +$2 ! !@"X$@ /@ !0 Q!( $ & ,P2 ^
- M % #<$@ 0 8 [A( $ & /02 ! !@#Z$@ /@ !0
- M!A, $ & !83 ! !@ ?$P 0 8 )!, %8 4 #,3 !
- M !@ Y$P 7@ !0 6!, $ & &P3 ! !@!Q$P 5@ !0
- M>Q, #X 4 (@3 ^ % "1$P /@ 8 EA, & 4 )\3 !=
- M % "T$P 0 8 NQ, $ & , 3 !6 % #)$P /@ !0
- MT1, #X 4 $04 ^ % "&% /@ !0 VQ0 #X 4 #T5 ^
- M % !H%0 0 8 >!4 $ & (45 ! !@"2%0 0 8
- MHA4 $ & *D5 ^ % # %0 0 8 Q14 %8 4 .D5 ^
- M % &%@ 0 8 "Q8 %8 4 "86 ^ % !&%@ 0 8
- M2Q8 %8 4 &86 ^ % !U%@ 0 8 >A8 %8 4 )$6 !
- M !@"6%@ 5@ !0 OQ8 $ & ,46 ^ % #6%@ /@ !0
- MZ18 $ & /D6 ! !@ +%P 0 8 $!< %8 4 #$7 !
- M !@!+%P 0 8 4!< %8 4 'X7 ! !@"*%P 0 8
- MEQ< $ & *D7 ! !@"P%P 0 8 Q1< $ & ,H7 !6
- M % #A%P /@ !0 \!< $ & /47 !6 % ,& /@ !0
- M61@ $ & &T8 ! !@!]& 0 8 @A@ %8 4 )X8 !
- M !@"C& 5@ !0 N!@ #X 4 ,(8 ^ % #,& /@ !0
- MUA@ #X 4 . 8 ^ % #J& /@ !0 \Q@ $ & /@8 !6
- M % %&0 0 8 $1D $ & "<9 ! !@ M&0 0 8
- M01D $ & $89 ! !@!+&0 5@ !0 5!D $ & &<9 !A
- M % !O&0 0 8 =1D $ & 'T9 ! !@"%&0 0 8
- MD!D $ & )49 ! !@"@&0 50 8 IAD $ & +@9 !
- M !@#(&0 0 8 WAD #X 4 .H9 ! !@#O&0 5@ !0
- M&QH $ & ",: !< % J&@ /@ !0 ,!H %T 4 #<: !
- M !@!6&@ 0 8 91H $ & &\: !B !@"Q&@ /@ !0
- MOAH $ & ,4: ^ % #2&@ 0 8 ]AH $ & P; ^
- M % =&P 0 8 .QL $ & $T; ! !@!H&P 7P !0
- M?1L $ & )(; !? % "E&P 0 8 N!L $ & -<; !
- M !@#M&P 0 8 $AP $ & # < ! !@ [' 7 !0
- M2QP $ & &$< ! !@""' 0 8 UAP $ & .(< ^
- M % #M' 70 !0 1T $ & 8= ^ !@ +'0 8P !0
- M'1T $ & "(= ^ !@ G'0 8P !0 3QT $ & %0= !6
- M % #3'0 /@ !0 X!T $ & .4= !6 % I'@ /@ !0
- M-1X $ & #H> !6 % !)'@ 0 8 3AX %8 4 &4> !B
- M !@!P'@ 8@ 8 I1X &( & +P> ! !@#$'@ 8@ 8
- MVAX #X 4 .4> ^ % #M'@ /@ !0 ]!X $ & 4? !
- M !@ -'P 9 !0 %1\ #X 4 "0? ! !@ P'P 9 !0
- M.!\ #X 4 $@? ! !@!/'P /@ !0 5A\ &( & &$? !B
- M !@!U'P /@ !0 ?1\ &4 4 (H? ! !@"/'P /@ !0
- MEA\ &( & *$? !B !@"U'P /@ !0 O1\ &4 4 ,L? !
- M !@#1'P /@ !0 WA\ &( & .4? ^ % #T'P 0 8
- M_!\ &0 4 H@ !B !@ <( 9@ !0 ,B &8 4 $0@ !
- M !@!)( 5@ !0 9B %4 & (0@ !5 !@ L"4 /@ 8
- M, E #X & #0)0 ^ !@ X"4 /@ 8 / E #X & $ )0 ^
- M !@!$"4 /@ 8 2 E #X & $P)0 ^ !@!0"4 /@ 8
- M5 E #X & %@)0 ^ !@!<"4 /@ 8 8 E #X & &0)0 ^
- M !@!H"4 /@ 8 ; E #X & ' )0 ^ !@!T"4 /@ 8
- M> E #X & 'P)0 ^ !@ N9FEL90 $T #^_P 9P%S8W-I+F,
- M ! - ! " P$ 9 $
- M $0 #0! ! "0 P$ G $ & !D871A;W5T
- M - " ! "0 P$ B $ ( !D871A:6X %@$ ! "0
- M P$ E $ * &P .P% ! "0 P$ U (
- M , *0 , ( ! "0 P$ $ .
- M /0 , ) ! "0 P$ T $ 0 1P
- M ) + ! "0 P$ 4 $ 2 !D;W)W . , ! "0
- M P$ J 4 40 (@- ! " P$ 7
- M 6 7P .0- ! " P$ T 8
- M ;P +0. ! " P$ H : !S8W-I:6YT
- M<E0/ ! " @$ ^ ( < !S8W-I=&EC:TP2 ! "
- M @$ C $ > !S=')C<'D -@3 ! " P$ )
- M @ >P /P3 ! "0 P$ 5 B
- M B % 4 ! "0 P$ 0 D D@
- M ) 4 ! "0 P$ 5 F G .04 ! "0
- M P$ < H J0 %05 ! "0 P$ Z ,
- M J !S8W-I:6YI=#P9 ! " @$ O L
- M !S8W-I;W!E;O@9 ! " @$ A N LP
- M 'P: ! " @$ " P O0 (0: ! "
- M @$ = ( R !S8W-I<F5A9/@< ! " @$ '
- M T R@ !0= ! " @$ ' V
- M U # = ! "0 P$ , $ X !C:&MS=7!E
- M<F > ! "0 P$ ) Z Y (0> ! "0
- M @$ O $ \ [@ $ @ ! "0 @$ %
- M ^ N=&5X= - ! P&$'P ] $>
- M N9&%T80 ) 0 " P&H$ %0 N8G-S
- M #@10 # P$ N8V]M;65N= $
- M P', 0 !B87-E861D<I 0 " P!C;61P;W)T
- M )0 0 " P!D )@ 0 " P!S8W-I8G5F .@$0 "
- M P!R87=I;V)U9B0%0 " P ^ "0)0 " P P$
- M "@)0 " P N9FEL90 %4 #^_P 9P%S8W-I87-M+G,
- M N=&5X= %0@ ! P$\ @ N9&%T80
- M #@10 " P$ N8G-S #@10 #
- M P$ $ $ 0 @!P<FEN=&8
- M @!C;W!Y:6X @ '0$ '(@ !
- M @ * $ %0@ ! @!C;W!Y;W5T @!S;&5E<
- M @!S<&PV @!S<&QX
- M @!W86ME=7 @!I;V1O;F4 @!T:6UE;W5T
- M @!S<'1A;&QO8P @!U
- M @!P:'ES:6\ @!S=7=O<F0 @!F=7=O<F0
- M @!S=6)Y=&4 @ T 0 <F5S971S8W-I8G5S
- M &%R8FET<F%T90!D;WAF97)N;W-L965P '!O;&QE9'=A:71R96-O;FYE8W0
- M<W1A<G1S8W-I &1O<V-S:6-M9 !S=&%R=&)U9F9E<FEO '-T87)T<&5N9&EN
- M9W)E<0!M87)K;F]T8G5S>0!R97%U97-T<V5N<V4 =&5S=')E861Y &1O:6YQ
- M=6ER>0!R96%D8V%P86-I='D :6YI=&1R:79E '-C<VEC;&]S90!S8W-I<W1R
- M871E9WD <V-S:7=R:71E &9O<FUA='-C<VED<FEV90!S8W-I:6]C=&P <V-S
- M:7!R:6YT '1I;65O=71I;F< :6YT<G-E<G9I8V5D '-C<VED871A<&]R= !S
- 696YD=&]S8W-I &=E=&9R;VUS8W-I '-E
- X
- end
- SHAR_EOF
- chmod 0644 Driver.uu ||
- echo 'restore of Driver.uu failed'
- Wc_c="`wc -c < 'Driver.uu'`"
- test 28207 -eq "$Wc_c" ||
- echo 'Driver.uu: original size 28207, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= Makedev ==============
- if test -f 'Makedev' -a X"$1" != X"-c"; then
- echo 'x - skipping Makedev (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Makedev (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Makedev' &&
- #!/bin/sh
- # Makedev for ST-0X driver
- #
- # 9/16/90 Tin Le
- X
- if test ! `who am i | cut -f1 -d' '` = "root" ; then
- X echo "You must be root to do this!"
- X exit 1
- fi
- X
- echo "Making device nodes for ST-0X driver..."
- mknod /dev/rscsi0s c 9 15
- mknod /dev/scsi0s b 9 15
- mknod /dev/scsi0s0 b 9 0
- mknod /dev/scsi0s0 b 9 1
- mknod /dev/scsi0s0 b 9 2
- mknod /dev/scsi0s0 b 9 3
- X
- echo "Created 4 nodes for 4 partitions, you can create more as needed."
- echo "You will probably need to format your disk, run scsipart."
- X
- SHAR_EOF
- chmod 0755 Makedev ||
- echo 'restore of Makedev failed'
- Wc_c="`wc -c < 'Makedev'`"
- test 496 -eq "$Wc_c" ||
- echo 'Makedev: original size 496, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= README ==============
- if test -f 'README' -a X"$1" != X"-c"; then
- echo 'x - skipping README (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting README (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README' &&
- Readme for ST-01 SCSI driver for microport unix system V
- X
- X
- Copyright (c) 13.6.1989 Tatu Ylonen
- Copyright (c) 16.9.1990 Tin Le
- X
- X
- I hereby allow use and distribution of this device driver, provided
- that no charge is asked for it.
- X
- X
- This is an SCSI device driver for Microport Unix System V/386 with
- Seagate ST-01 SCSI adaptor. (This probably works with other 386 unix
- as well, but has not been tested).
- X
- This driver offers the following features
- X - can use almost any scsi disks
- X - no limit on disk or partition size
- X - each physical drive can partitioned in upto 15 partitions
- X - supports multiple drives (up to 7) on a single controller
- X - transfer rate four to six times that of the standard MFM disk
- X driver supplied by microport
- X
- The following drawbacks are known
- X - does not use dma, as the controller does not support dma
- X - character devices (raw io) do not work
- X - this is a disk driver only. SCSI tapes have not been tested.
- X - you cannot boot from the scsi drive (I do not have boot source
- X code)
- X - lots of data movement is done at interrupt time (although this
- X tries to enable higher priority interrupts, like the serial ports)
- X
- I have used this for about an year with a Priam 738 (337 megabytes
- formatted, 20 ms) drive. Others have used this with Seagate ST227N
- drives (64 megabytes). I have had no problems with the driver (I have
- never (after the initial creation of the driver) had a panic that I
- could have associated with the driver (and only a couple of panics
- altogether)). The drive has been partitioned to three partitions:
- 10MB, 20MB and 307 MB. (I have never had any problems with large
- partitions). I archieved the best performance when using 1024 byte
- sectors on the disk. The ST227N drive had some problems with 1024
- byte sectors (the machine rebooting randomly during heavy disk
- accesses); I have never had these problems with the Priam disk, and
- the Seagate drives appear to work ok with 512 byte sectors.
- X
- The driver works with Dosmerge without any problems.
- X
- X
- INSTALLATION
- X
- (Assuming you have installed the st01 adaptor).
- (BTW, I removed the bios rom on the controller. It does not work with
- all drives. Also, the machine boots faster. This driver does not
- need the rom and will wait for the drives to become ready if needed)
- X
- 1. Create the directory /etc/atconf/modules/scsi, and copy all files to
- X that directory.
- X
- 2. Check the config file for correct parameters (major device number,
- X interrupt number). Major device number and the interrupt number
- X should both be exclusively used for the scsi driver. (I have heard
- X that some optional driver conflicts with the default major number
- X here, 9)
- X
- 3. Type make.
- X
- 4. Add the line 'scsi,' in your system file (usually
- X /etc/atconf/systems/system.std). Remember to back up your old system
- X file first. Type mkunix (being logged in as root).
- X
- 5. Back up your old /unix (move to, say, /unix.old, so that you can
- X boot it if something goes wrong).
- X
- 6. Bring the system down (init 0).
- X
- 7. Connect the scsi drive(s). You will need the appropriate cables.
- X Remember to have terminators in the last drive (if you have only
- X one drive, you need to do nothing, as the terminators are probably
- X connected by default).
- X
- 8. Reboot. While booting, you should see a copyright message from the
- X driver, and a message identifying the manufacturer of the drive.
- X The message contains drive number and a manufacturer-specified text
- X (usually drive model). If the drive has been partitioned, the
- X sizes of the partitions will also be shown.
- X
- X If you get repeated messages "someone is sitting on the bus,
- X sending hard reset to scsi bus" (or something like that), it
- X probably means that the drive is not powered on (or that something
- X else is wrong with the connections).
- X
- X If you get scsi timeouts when trying to use the disk (at a later
- X time, after formatting), it probably means that the interrupt
- X number is not set correctly. Check config file and jumpers on the
- X card.
- X
- 9. Create device i-nodes for the scsi disk.
- X I have the following i-nodes. Here 9 is the major device number
- X (must match that in config file). The minor device contains the
- X partition number in the lower four bits, and disk number in the
- X upper four bits. Partition number 15 is reserved (contains the
- X entire disk, including the partition table).
- X
- X The devices /dev/rscsi<drive>s and /dev/scsi<drive>s are mandatory.
- X In addition, you can create as many i-nodes for partitions as you
- X wish.
- X
- X Here is a list of scsi-related i-nodes on my system.
- X
- crw------- 1 root sys 9, 15 Apr 22 03:13 /dev/rscsi0s
- brw------- 1 root sys 9, 15 Jan 14 06:01 /dev/scsi0s
- brw------- 1 root sys 9, 0 Jun 13 18:08 /dev/scsi0s0
- brw------- 1 root sys 9, 1 Jun 13 18:08 /dev/scsi0s1
- brw------- 1 root sys 9, 2 Jun 13 18:08 /dev/scsi0s2
- X
- 10. Run scsipart. The program asks for drive number. Enter 0 (or the
- X number of your drive). When the program asks whether to format,
- X answer yes, and confirm. Formatting the Priam 337 megabyte disk
- X takes about half an hour. In that time the driver does not print
- X anything.
- X
- X You cannot specify your own defects. The scsi drive will
- X automatically use all manufacturer-supplied defects, plus those
- X found during formatting. (The scsi interface supports automatic
- X remapping of bad blocks even after formatting, but the driver does
- X not support this.)
- X
- X When formatting is complete, the number of available disk sectors
- X is printed.
- X
- X You can now define the partitions. Note that partitions are
- X defined in sectors, while filesystems for mkfs are specified in
- X 1024 byte blocks. Thus, if you have 512 byte sectors, the lengths
- X of partitions should be twice the number of blocks. The block 0
- X contains the partition table and cannot be used. Otherwise, you
- X can freely create the partitions as you wish. The first partition
- X in the table is number 0, the second number 1 and so on.
- X
- X The partitions become valid when you exit scsipart.
- X
- X I recommend that you try with several different interleave values
- X for optimal performance. I got acceptable performance with 1024
- X byte sectors (use them if they work) and interleave 9 (sic). That
- X was with an early version; the data transfer routines have been
- X optimized quite a bit since then (see the assembler hacks).
- X
- 11. Create file systems on the partitions. See mkfs(1M). Remeber to
- X give the correct block size. Specify that mkfs leave no
- X interleave (so it is easier to specify the interleave when
- X formatting).
- X
- 12. Add the partitions to /etc/fstab. My fstab looks like
- X
- /dev/scsi0s0 /tmp
- /dev/scsi0s1 /u2
- /dev/scsi0s2 /u
- X
- 13. Reboot. The partitions should now get mounted and the system be
- ready for use. (Check /etc/rc2.d if they do not get mounted). You
- can label the file systems (see labelfs(1M) if you don't want to see
- the messages from mount.
- X
- X
- You can use the file systems just like any other file systems. All
- normal utilities work (except of course things like mkpart etc). Fsck
- and others work ok.
- X
- ----------------
- X
- I can give only very limited support to anyone using this. However,
- I can be reached as
- X
- X ylo@hupu.hut.fi
- X
- or my normal mail
- X
- X Tatu Ylonen
- X Tunnelitie 14 c 13
- X 00320 HELSINKI
- X Finland
- X
- X Tel. +358-0-573290
- X
- Path: szebra!claris!apple!usc!zaphod.mps.ohio-state.edu!tut.cis.ohio-state.edu!pt.cs.cmu.edu!dsl.pitt.edu!pitt!cs.pitt.edu!km
- XFrom: km@cs.pitt.edu
- Newsgroups: comp.unix.i386
- Subject: ST01 driver board notes
- Message-ID: <7487@pitt.UUCP>
- Date: 1 May 90 19:15:02 GMT
- Sender: news@pitt.UUCP
- Reply-To: km@cs.pitt.edu ()
- Organization: Univ. of Pittsburgh Computer Science
- Lines: 74
- X
- X
- ----------
- X
- Here is a picture of the card.
- X
- X +--------------------------------------------+
- X I :::::::::::::::::::::::::::::::::::: I +--
- X I (50-pin scsi connector) I I
- X I +----I
- X I +----I
- X I +----+ +--+ I I (mounting bracket)
- X I I I +-----+ I I I I
- X I I I I I I I I I
- X I I I I I I I I I
- X I +----+ +-----+ +--+ I I
- X I I I
- X I E F A B I I
- X I .. .. . +----I
- X I . .. . (0ws) +----I
- X I G C D I I
- X +-+ (intr en. jumpers) (bios addr j.) +---+ I
- X I IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII I I
- X +--------------------------------------+ I
- X (edge connector) I
- X
- Memory address
- X
- no jumpers installed CA000H (default setting)
- pins C-D shorted C8000H
- SHAR_EOF
- true || echo 'restore of README failed'
- fi
- echo 'End of part 1'
- echo 'File README is continued in part 2'
- echo 2 > _shar_seq_.tmp
- exit 0
- --
- +-----------------------------------------------------------------
- Station Zebra ....!{claris,zorch}!szebra!tin
- Sunnyvale, CA (408) 739-1520 24hrs Telebit+ 300-19200bps
- Pub *NIX, Usenet and mail (no fee)
-