home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 1 / 1827 < prev    next >
Internet Message Format  |  1990-12-28  |  43KB

  1. From: tin@szebra.szebra.uucp (Tin Le)
  2. Newsgroups: alt.sources
  3. Subject: ST-0X SCSI driver for 386/ix v1.0 pt 1/6
  4. Message-ID: <1990Sep17.062747.25439@szebra.uucp>
  5. Date: 17 Sep 90 06:27:47 GMT
  6.  
  7. Pardon me if I did this wrong, but this is my first source release
  8. to alt.sources (actually to any news group).  This is the Seagate
  9. ST-0x SCSI driver I promised.  Below is part of the README file.
  10.  
  11. README
  12. ------
  13.  
  14.     SCSI driver for Seagate ST-02 Host Adapter for Interactive
  15.     386/ix v2.0.2.  Usage rights are release into the public
  16.     domain.  You may use and distribute this package, but you
  17.     may not charge for it.
  18.  
  19.     This is a modified version of the ST-01 driver by Tatu Ylonen.
  20.     His driver was for Microport UNIX v3.00e, I adapted it for
  21.     386/ix, fixed some problems (changed char to unsigned char),
  22.     optimized things a little bit more.
  23.  
  24.     The difference between the ST-01 and ST-02 is that the ST-02
  25.     also include floppy ctlr (both 5 1/4" and 3 1/2").  Since Tatu
  26.     wrote his driver, Seagate apparently changed the revision of
  27.     the ST-0X boards.  They now uses 16K BIOS instead of 8K.
  28.     Luckily, the hardware addresses seemed to have been kept the
  29.     same (anyone who knows how I can get more technical information
  30.     on these boards, please let me know - email to tin@szebra.uucp
  31.     or uunet!claris!szebra!tin).
  32.  
  33.     Here is a recap of the featurres and drawbacks of the boards:
  34.  
  35.     Advantages:
  36.  
  37.     - will work with most SCSI disks
  38.     - no limit on disk or partition size
  39.     - each physical driver can have up to 15 partitions
  40.     - support multiple drives (up to 7) on a single ctrlr
  41.     - transfer rate faster than MFM disk
  42.     - the ST-02 (ST-01) will work in the system along with
  43.     other controller you have (ST506 or RLL).
  44.     - driver is free and complete SCSI subsystem can be put
  45.     together at low cost
  46.     - you have source code!
  47.  
  48.     Disadvantages:
  49.  
  50.     - does not use DMA
  51.     - character devices not supported (no raw I/O)
  52.     - you can not boot from SCSI disk
  53.     - lots of data movement at each interrupt, which can
  54.     lead to contention with the serial ports
  55.  
  56.  
  57. #!/bin/sh
  58. # This is a shell archive (produced by shar 3.49)
  59. # To extract the files from this archive, save it to a file, remove
  60. # everything above the "!/bin/sh" line above, and type "sh file_name".
  61. #
  62. # made 09/17/1990 06:15 UTC by tin@szebra.uucp
  63. # Source directory /tmp/st02
  64. #
  65. # existing files will NOT be overwritten unless -c is specified
  66. #
  67. # This is part 1 of a multipart archive                                    
  68. # do not concatenate these parts, unpack them in order with /bin/sh        
  69. #
  70. # This shar contains:
  71. # length  mode       name
  72. # ------ ---------- ------------------------------------------
  73. #  28207 -rw-r--r-- Driver.uu
  74. #    496 -rwxr-xr-x Makedev
  75. #  10877 -rw-r--r-- README
  76. #   7169 -rw-r--r-- README.2
  77. #    260 -rw-r--r-- config
  78. #   1975 -rwxr-xr-x install
  79. #    673 -rw-r--r-- makefile
  80. #     36 -rw-r--r-- mdevice
  81. #     36 -rw-r--r-- node.d
  82. #  43689 -rw-r--r-- scsi.c
  83. #   3587 -rw-r--r-- scsi.h
  84. #    805 -rw-r--r-- scsiasm.s
  85. #   6168 -rw-r--r-- scsipart.c
  86. #  56557 -rw-r--r-- scsipart.uu
  87. #     31 -rw-r--r-- sdevice.d
  88. #   2319 -rw-r--r-- td.c
  89. #  50381 -rw-r--r-- td.uu
  90. #
  91. if test -r _shar_seq_.tmp; then
  92.     echo 'Must unpack archives in sequence!'
  93.     echo Please unpack part `cat _shar_seq_.tmp` next
  94.     exit 1
  95. fi
  96. # ============= Driver.uu ==============
  97. if test -f 'Driver.uu' -a X"$1" != X"-c"; then
  98.     echo 'x - skipping Driver.uu (File already exists)'
  99.     rm -f _shar_wnt_.tmp
  100. else
  101. > _shar_wnt_.tmp
  102. echo 'x - extracting Driver.uu (Text)'
  103. sed 's/^X//' << 'SHAR_EOF' > 'Driver.uu' &&
  104. begin 755 Driver.o
  105. M3 $$ &Y-]"9R1P  9P   !P   $+ 0  P!\  *@0             -    "0
  106. M $  +G1E>'0   #0    T    , ?  #0    !#,       #V 0  (    "YD
  107. M871A    D !  )  0 "H$   D"   *!&        %0   $     N8G-S    
  108. M #@10  X$4                            "     +F-O;6UE;G0     
  109. M     ,P!   X,0                    (  %6+[(/L"%=H@ E  .@?____
  110. M6:&4 $  Q@#A,]+K Y"00H'Z$"<  'SWH90 0 #& & STNL$D)"00H'Z(*$'
  111. M 'SW,__K$9"0D&G'% $  ,: J %   !'N 0    [^'SI7\G#D)!5B^R#[ Q7
  112. M5E,S]C/;ZRV0:"@*0 #HLO[__UDS_^L"D$>!_X"6F !\]T;K$*&4 $  Q@#@
  113. M,\!;7E_)PY"AE !  ,8 8*$$    Q@" H90 0 #& # S_^L0H90 0  /M@"I
  114. M@    '4M1X'_X),$ 'SHH90 0 #& &"#_@)\-VBF"4  Z$7^__]9N (   !;
  115. M7E_)PY"0,_:A!    (M-"+H!    T^(($*&4 $  Q@#J,__K&9#HX_[__T;K
  116. M@*&4 $  #[8 J0$   !U(4>!_Z"& 0!\Z*&4 $  Q@!@@_L"?#>X 0   %M>
  117. M7\G#D&E%"!0!  #&@*@!0  !:44(% $  ("XX !   !U>J&4 $  Q@#H,__K
  118. M+Y"00S/_ZP20D)!'@?\@3@  ?/?I#O___Y"0H90 0  /M@ E'@   #T:    
  119. M=#A'@?] #0, ?./_=0AHX@E  .AR_?__@\0(:44(% $  ,: X !   &AE ! 
  120. M ,8 X#/ 6UY?R<.0D*$$    Q@# H90 0  /M@"I 0    ^%E?[__^ET_O__
  121. M58OL4%=64XMU"&G&% $  (J8= %  .D2 0  D#/)ZQ"AE !   ^V *D0    
  122. M=1%!@?F@A@$ ?.CI*P$  )"0D*&4 $  #[8 J0X    /A14!  "$VW0AOP$ 
  123. M  "A!    &G6% $  (N2: %  (H2B!#IGP   )"0:<84 0  B[AL 4  @?\ 
  124. M!   ?@6_  0  &G&% $  #NXV !  'X,:<84 0  B[C8 $  :<84 0  @+B$
  125. M 4   '1&@?\ !   =@6_  0  %=H) 5  &G&% $  /^P: %  .A2_/__@\0,
  126. M/?____]U"#/ 6UY?R<.05V@D!4  Z*<<  "#Q CK%5=IQA0!  #_L&@!0 #H
  127. MD!P  (/$"&G&% $  "FX; %  &G&% $   &X: %  &G&% $  (.X; %    /
  128. MC]S^___K)I"0H00   #&   SR>L0H90 0  /M@"I$    '4)08'YH \  'SH
  129. MH90 0  /M@ E'@   #T0    =,BX 0   %M>7\G#D)!5B^Q05U93BW4(LP%I
  130. MQA0!  #&@(0!0   Z1L!  "0D#/)ZQ"AE !   ^V *D0    =1%!@?F@A@$ 
  131. M?.CI,P$  )"0D*&4 $  #[8 )0X    ]!     ^%& $  (3;="2_ 0   &G&
  132. M% $  (N : %  (L5!    (H2B!#IH0   )"0D)!IQA0!  "+N&P!0 "!_P $
  133. M  !^!;\ !   :<84 0  .[C8 $  ?@QIQA0!  "+N-@ 0 !IQA0!  " N(0!
  134. M0   =$:!_P $  !V!;\ !   5V@D!4  Z!X;  "#Q A7:<84 0  _[!H 4  
  135. M:"0%0 #HL/K__X/$##W_____=1\SP%M>7\G#D)"05VG&% $  /^P: %  .C>
  136. M&@  @\0(:<84 0  *;AL 4  :<84 0   ;AH 4  :<84 0  @[AL 4    ^/
  137. MU/[__^LFD)"A!     ^V #/)ZQ"AE !   ^V *D0    =0E!@?F@#P  ?.BA
  138. ME !   ^V "4>    /10   !TR+@!    6UY?R<.0D%6+[%!75E.+70@S]NE(
  139. M @  D)"04^C*_/__687 #X4U @  4VAU"D  Z.;Y__^#Q BX!    %M>7\G#
  140. MD%/H*O[__UF%P ^%#0(  %-HG I  .B^^?__@\0(N 0   !;7E_)PY"A!   
  141. M &G3% $  (N*< %  /^"< %  (H1B!#IU $  )"0D)!IPQ0!  "+%00   "*
  142. M$HB0=0%  .FW 0  D)"0H00   #&  BAE !  ,8 X.F? 0  D)"0H00    /
  143. MMCB!Y_\   "+QX7 =&0] @    ^$G0   #T#    #X3*    /00    /A L!
  144. M   ]!P    ^$7 $  #T(    #X11 0  /8     /A$8!  #WQX     /A3H!
  145. M  !74VC""D  Z.KX__^#Q SI)@$  )"0:<,4 0  QH"H 4   *&4 $  Q@!@
  146. M:<,4 0  BH!U 4  A,!U$VH 4^AG!P  @\0(,\!;7E_)PY"X!    %M>7\G#
  147. MD)!IPQ0!  !ITQ0!  "+DF@!0 ")D(@!0 !IPQ0!  !ITQ0!  "+DFP!0 ")
  148. MD(P!0 #IJP   )"0D&G#% $  &G3% $  (N2B %  (F0: %  &G#% $  &G3
  149. M% $  (N2C %  (F0; %  &G#% $  &G3% $  (N2D %  (F0< %  .M>D)!I
  150. MPQ0!  #&@*@!0   :<,4 0  QX!\ 4   0   *&4 $  Q@!@N 8   !;7E_)
  151. MPY"AE !   ^V %!H] I  .C5]___@\0(ZQ0]#@   '?AA<!\W?\DA2P)0 "0
  152. MD$:!_D!"#P!\&VG#% $  (.X> %   !T#+@#    6UY?R<.0D*&4 $  #[8 
  153. MJ0$   !U)5-H40I  .A^]___@\0(:<,4 0  QH"H 4   +@$    6UY?R<.A
  154. ME !   ^V *D0    =)FAE !   ^V "4.    Z7/___^0D)!5B^R#[ A75HMU
  155. M"*&4 $  Q@ @,__K99"AE !   ^V "4E    /20   !U3Z$$    B@"(1?L/
  156. MML"I@    '44#[9%^U!H&PM  .CQ]O__@\0(ZR> 9?M_#[9%^XO.N@$   #3
  157. MXB/"=3</MD7[4&A("T  Z,CV__^#Q A'@?\ "3T ?)2AE !  ,8 8%9H@0M 
  158. M .BI]O__@\0(,\!>7\G#H90 0 #& *0S_^L0H90 0  /M@"I(    '0)1X'_
  159. M0 T# 'SH,__K$*&4 $  #[8 J0$   !T"4>!_T - P!\Z*&4 $  Q@#@:<84
  160. M 0  QH"H 4   ;@!    7E_)PY"058OL4%=6BW4(:<84 0  :=84 0  :<X4
  161. M 0  BXF4 4  B8J( 4  B8AH 4  :<84 0  :=84 0  :<X4 0  BXF8 4  
  162. MB8J, 4  B8AL 4  :<84 0  :=84 0  :<X4 0  BXF< 4  B8J0 4  B8AP
  163. M 4  ZPV0:<84 0  _XB  4  5NCJ]O__68OXA?]T!XO'7E_)PY!6Z([[__]9
  164. MB_B#_P8/A:H   !IQA0!  " N(4!0   =!-6Z$'^__]9A<!UU.FS    D)"0
  165. M:<84 0  @[BD 4   '09:<84 0  QX!\ 4   0   +@&    7E_)PVG&% $ 
  166. M ,> ? %   $   !H&@$  &G&% $  (V J %  %#H)?7__X/$"#T!    =1=I
  167. MQA0!  #&@*D!0   N 0   !>7\G#D&G&% $  ("XJ %    /A4G____K*Y"0
  168. MD(7_= J#_P%T!8/_ G4:A?\/A"?___]75NB# P  @\0(Z1C___^0D)!HM M 
  169. M .BZ]/__66G&% $  (.X@ %   $/C][^__^#_P-T!8/_ G4%Z&?U__]IQA0!
  170. M  #&@*@!0   H90 0 #& &!75N@O P  @\0(B\=>7\G#D)!5B^Q05U:+?0CH
  171. M8O3__XOP:<<4 0  @+BI 4   '1?@WTL '1*5NA%]/__6;@%    7E_)PY"0
  172. MD%;H,O3__UEJ&FG'% $  (V J0%  %#H'?3__X/$"#T!    =0NX!    %Y?
  173. MR<.0D.@#]/__B_!IQQ0!  " N*D!0   =;IIQQ0!  "+51")D)0!0 !IQQ0!
  174. M  "+512)D)@!0 !IQQ0!  "+50R)D)P!0 !IQQ0!  "*52"(D'0!0 !IQQ0!
  175. M  #&@'4!0  !@WT8 '0'BT480.L#D#/ :=<4 0  B8)X 4  :<<4 0  QX!\
  176. M 4       &G'% $  (M5'(F0@ %  &G'% $  (I5)(B0A %  &G'% $  (I5
  177. M*(B0A0%  &G'% $  (M5+(F0I %  &G'% $  ,: J0%   %6Z"_S__]95^CH
  178. M_/__65Y?R<.0D)!5B^R#[!1I10@4 0  BXC8 $  A<EU!;D  @  BT44 \%(
  179. MF??YB47P]T48 0   '0'N"@   #K!;@J    B$7VQD7W (M%#,'X&(A%^(M%
  180. M#,'X$(A%^8M%#,'X"(A%^HI%#(A%^\9%_ "+1?#!^ B(1?V*1?"(1?[&1?\ 
  181. M_W4@_W4<BT48)1    !0:@!J VH%_W44_W40C47V4/]U".@-_O__@\0HR<-5
  182. MB^Q05U:+?0R+=0AIQA0!  "-@-@ 0 ")1?Q7:@#_-_]W&/]W'(M'(,'@"9F+
  183. M3?SW.6G6% $  (V2Z !   ^_3Q2!X0\    #!,I05N@&____@\0<7E_)PY"0
  184. MD%6+[%=6Z!+R__^+\(-]# !T+HM%#(MX#(7_=3%I10@4 0  BU4,.9"@ 4  
  185. M=!]I10@4 0  B[B@ 4  ZQ"0D)!I10@4 0  B[B@ 4  @WT, '1@:44(% $ 
  186. M (N H %  #E%#'43:44(% $  (M5#(M2#(F0H %  (M%#(-X$ !T#(M $(M5
  187. M#(M2#(E0#(M%#(-X# !T#(M #(M5#(M2$(E0$(M%#,= #     #'0!      
  188. MA?]T#%?_=0CHY/[__X/$"%;H4_'__UE>7\G#D)!5B^Q75NA"\?__B_AI10@4
  189. M 0  QH"I 4   &E%"!0!  #&@*@!0   :44(% $  ,> ? %       !I10@4
  190. M 0  B["D 4  A?9T#H-]# !T+($.!    .LD:44(% $  ("XA0%   !U%&E%
  191. M"!0!  "-@*@!0 !0Z-'P__]95O]U".BK_O__@\0(A?9T!U;HNO#__UE7Z+/P
  192. M__]97E_)PY"058OL4%=64Z&4 $  #[8 J2    !T"L=%_     #K&Y!;7E_)
  193. MPY"0D*&4 $  #[8 J00   !U%?]%_+@@3@  .47\?.1;7E_)PY"0D*$$    
  194. M#[8X@>?_    ]\>     =197:-H+0 #H/_#__X/$"%M>7\G#D)"0@>=_____
  195. M,]OK%9"0B\NX 0   -/@#[; B]<CT'4&0X/["'SH@_L(?12+R[@!    T^ /
  196. MML#WT(O7(]!T%U=3: 4,0 #HZ^___X/$#%M>7\G#D)"0@_L$?!=J!%-H- Q 
  197. M .C.[___@\0,6UY?R<.0D.B_[___B_!IPQ0!  " N*@!0   =0]IPQ0!  " 
  198. MN*D!0   =3=IPQ0!   /OH"I 4  4&G#% $   ^^@*@!0 !04VAF#$  Z'CO
  199. M__^#Q!!6Z&_O__]96UY?R<.0:<,4 0  @+B% 4   '0=4VBI#$  Z$[O__^#
  200. MQ A6Z$7O__]96UY?R<.0D)"AE !  ,8 Y,=%_     #K%9"0D*&4 $  #[8 
  201. MJ2    !T,?]%_(%]_"!.  !\Y:&4 $  Q@!@4VC7#$  Z/KN__^#Q A6Z/'N
  202. M__]96UY?R<.0D)#'1?P     ZQ60D)"AE !   ^V *D!    =3'_1?R!??P@
  203. M3@  ?.6AE !  ,8 8%-H'0U  .BN[O__@\0(5NBE[O__65M>7\G#D)"0H90 
  204. M0 #& .!IPQ0!  #&@*@!0  !:<,4 0  QX!\ 4       ,8%* E   %6Z&KN
  205. M__]9:<,4 0  @[BD 4   '0.4^A ]/__Z90   "0D)!IPQ0!  "-@*@!0 !0
  206. MZ#KN__]9Q@4H"4   %M>7\G#D&G#% $  ,: J %   "%_W3B@_\&=-UIPQ0!
  207. M  "#N( !0   ?@J#_P)T!8/_ 74E5VAM#4  Z/+M__^#Q BAE !  ,8 8%=3
  208. MZ)3\__^#Q CKHI"0D&G#% $  /^(@ %  &B;#4  Z,+M__]94^A[]___68OX
  209. MZXJ0D%6+[%=64^BI[?__B]B /2@)0   #X4F 0  ,_;I%@$  )"0D&G&% $ 
  210. M ("XJ0%    /A/\   !IQA0!  " N*@!0   #X7L    :<84 0  @[A\ 4  
  211. M  ^$V0   &G&% $  (.X> %    /A,8   !IQA0!  " N(4!0   = GIL@  
  212. M )"0D)!IQA0!  #_@'P!0 !IQA0!  !IUA0!  "+DG@!0  YD'P!0  /C(0 
  213. M  !IQA0!  #'@'P!0       :<84 0  @[BD 4   '4C5FBY#4  Z-CL__^#
  214. MQ AIQA0!  "-@*@!0 !0Z,/L__]9ZT*_ P   (7_=#F#_P9U NLR:<84 0  
  215. M@[B  4   '0*@_\"= 6#_P%U0U=6:/<-0 #HB^S__X/$#%=6Z#7[__^#Q A&
  216. M@_X$#XSD_O__:@IJ &A,$@  Z&;L__^#Q Q3Z%WL__]96UY?R<.0D)!IQA0!
  217. M  #_B( !0 !75F@N#D  Z#SL__^#Q Q6Z//U__]9B_CI</___Y"0D%6+[%=6
  218. MBWT(BW4,ZPN0D)"+QT>*%D:($( ^ '7SQ@< 7E_)PU6+[(/L"(-]$!)^!\=%
  219. M$!(   #&1?H#QD7[ ,9%_ #&1?T BD40B$7^QD7_ &H _W44:@!J 6H#:@+_
  220. M=1#_=0R-1?I0_W4(Z$CW__^#Q"C)PY"0D%6+[(/L",9%^@#&1?L QD7\ ,9%
  221. M_0#&1?X QD7_ &H :@%J &H!:@%J 6H :@"-1?I0_W4(Z ;W__^#Q"C)PY!5
  222. MB^R#[ B#?1 D?@?'11 D    QD7Z$L9%^P#&1?P QD7] (I%$(A%_L9%_P!J
  223. M /]U%&H :@%J VB6    _W40_W4,C47Z4/]U".BQ]O__@\0HR<-5B^R#[ R#
  224. M?1 (?@?'11 (    QD7V)<9%]P#&1?@ QD7Y ,9%^@#&1?L QD7\ ,9%_0#&
  225. M1?X QD7_ &H _W44:@!J 6H":)8   #_=1#_=0R-1?90_W4(Z$_V__^#Q"B%
  226. MP'0$,\#)P[@!    R<.058OL@^QX5U93BUT(:<,4 0  QX#8 $       &G#
  227. M% $  ,: J0%   !IPQ0!  #&@*@!0   :<,4 0  QX#D $       &G#% $ 
  228. M ,: X !   !3Z*/^__]9B_"%]G1H@_X$= 6#_@5U>U-H80Y  .@WZO__@\0(
  229. MQT6,     .LBD)"0BT6,N:"& 0"9]_F%TG4-4^AC_O__68OPA?9T#/]%C(%]
  230. MC("6F !\V(7V=!A3:($.0 #H\>G__X/$"#/ 6UY?R<.0D)!J 6IDC4644%/H
  231. MTOW__X/$$(OP@_X!= 6#_@)U!S/ 6UY?R<.%]G084VB>#D  Z+'I__^#Q @S
  232. MP%M>7\G#D)"0:@%J9(U%E%!3Z";^__^#Q!"+\(7V=!53:,D.0 #H@NG__X/$
  233. M"#/ 6UY?R<.*192$P'054VCI#D  Z&;I__^#Q @SP%M>7\G##[9%F(U !HU5
  234. ME /"Q@  C46<4&G#% $  (V F !  %#H#_W__X/$"&H!:F2-19104^@*_O__
  235. M@\00A<!U.VG#% $  ,> W !       !IPQ0!  #'@-@ 0    @  N  "  ")
  236. M1?A3:!4/0 #H[.C__X/$".MID)"0:<,4 0  #[95FL'B" ^V39L#T8F0V ! 
  237. M (E5^(%]^  $  !^%F@ !   _W7X4V@Z#T  Z*SH__^#Q!!IPQ0!   /ME64
  238. MP>(8#[9-E<'A$ /1#[9-EL'A" /1#[9-EP/1B9#< $  :<,4 0  C8"8 $  
  239. M4&G#% $  /^PV !  &G#% $  &G3% $  (N W !   ^O@M@ 0 "-@   " "Y
  240. M   0 )GW^5!3:&X/0 #H,NC__X/$%&H :@%J 6IDC4644&H 4^C[]/__@\0<
  241. MB_"%]G064VB:#T  Z ?H__^#Q @SP%M>7\G#D(U%E(OX,_;IG@   )"0D) /
  242. MM@?!X! /ME<!P>(( \(/ME<" \*)19 /MD<#P> 0#[97!,'B" /"#[97!0/"
  243. MB46,@WV0 '4&_T60_TV,:<,4 0  C8#H $  B]:+39")#-!IPQ0!  "-@.@ 
  244. M0 "+38R)3- $A?9U"VC)#T  Z'KG__]9BT6,#Z]%^(V    ( +D  !  F??Y
  245. M4&C5#T  Z%GG__^#Q A&@\<&@_X/?3N /P /A5C___^ ?P$ #X5.____@'\"
  246. M  ^%1/___X!_ P /A3K___^ ?P0 #X4P____@'\%  ^%)O___X7V= MHW ] 
  247. M .@$Y___66G#% $  (FPY !  &G#% $  ,> 8 %       !IPQ0!  !ITQ0!
  248. M  "+DMP 0 ")D&0!0 "X 0   %M>7\G#D%6+[%=HXP]  &C>#T  Z+'F__^#
  249. MQ B#/9  0   =1AJ 6C+    :@%J >B5YO__@\00HY  0 "#/9  0   =0AH
  250. M/!!  .MKD*&0 $  C8  "@  HY0 0 "AD !  (V   P  *,$    Q@4D"4  
  251. M #/_ZR*0:<<4 0  QX"D 4       &G'% $  ,> H %       !'@_\$?-HS
  252. M_^L*D)!7Z'+[__]91X/_!'SS:'400 #H#>;__UE?R<.058OL@^P,5U93#[]%
  253. M""7_    P?@$B_@/OW4(@>8/    @#TD"4   '4:Z-GE__^+V.@>^/__4^C,
  254. MY?__6<8%) E   &X!    #OX?2BX#P   #OP="9IQQ0!  "#N-@ 0   =!!I
  255. MQQ0!  "+@.0 0  [\'P'Q@7I$   !EM>7\G#D)"058OLR<.0D)!5B^R#[!A7
  256. M5E.+?0@/OT<4)?\   #!^ 2)1?P/OT<4)0\   ")1?B#??P$#XVE    :47\
  257. M% $  (.XV !    /A)$   !I1?P4 0  C8#8 $  B47HBT<8,]*+3>CW,872
  258. M=7.#??@/=2=I1?P4 0  C8#8 $  B47HBT<@P> )F8M-Z/<YB_#I*@$  )"0
  259. MD)!I1?P4 0  C8#8 $  B47HBT<@P> )F8M-Z/<YB_!I1?P4 0  BX#D $  
  260. M.47X?19I1?P4 0  C8#H $  BU7X.W30!'X:@0\$    BT<8B4<H5^B4Y/__
  261. M65M>7\G#D)!I1?P4 0  C8#H $  BU7X.W30!'42BT<8B4<H5^AJY/__65M>
  262. M7\G#:47\% $  (V V !  (E%Z&E%_!0!  "+5Q@#D-@ 0 !*B\(STHM-Z/<Q
  263. MB47TB\8#1?1I5?P4 0  C9+H $  BTWX.T3*!'X\:47\% $  (V Z !  (M5
  264. M^(T4U0     #PHM !"O&B47T:47\% $  (M5] ^OD-@ 0 "+1Q@KPHE'*.L'
  265. MQT<H     &E%_!0!  "-@.@ 0 "+5?@#--#HP>/__XE%\&E%_!0!  "-@* !
  266. M0 ")1>PSV^MCD)!I1?P4 0  C8#8 $  B47HBT7LBP"+0"#!X F9BTWH]SEI
  267. M5?P4 0  C9+H $  BTWX P3*._!]'(E?$(M%[(L B7@0BT7LBP")1PR+1>R)
  268. M..LCD)"+1>R+&(L C4 ,B47LBT7L@S@ =9>).,='#     ")7Q!I1?P4 0  
  269. M@+BI 4   '4,5_]U_.BB\/__@\0(_W7PZ _C__]96UY?R<.058OL:@'_=0AH
  270. MZ 1  &B$&@  Z/'B__^#Q!#)PU6+[&H _W4(:.@$0 !HA!H  .C5XO__@\00
  271. MR<-5B^R#[!A75E.+?0R+=1"+70B%_W\%OP "  !65U-H=Q!  .BHXO__@\00
  272. MQD7V%<9%]P#&1?@ QD7Y ,9%^@S&1?L QD7J ,9%ZP#&1>P QD7M",9%[@#&
  273. M1>\ QD7P ,9%\0#&1?( B\?!^! E_P   (A%\XO'P?@()?\   "(1?2+QR7_
  274. M    B$7U:@!J &H :@%J FH%:@R-1>I0C47V4%/HN>W__X/$*(7 = Y3:+(0
  275. M0 #H%^+__X/$",9%]@3&1?< QD7X (O&P?@()?\   "(1?F+QB7_    B$7Z
  276. MQD7[ &H :@!J &H!:@!J &H :@"-1?904^AC[?__@\0HA<!T%&CS$$  Z,+A
  277. M__]9,\!;7E_)PY"0: H10 #HKN'__UFX 0   %M>7\G#D)"058OL9J'J$   
  278. M9H7 = [&!>D0   !,\#)PY"0D+@!    R<.058OL@^P,5U93BT4()?\   #!
  279. M^ 2+^(MU"('F#P   ,8%Z1    "#_Q!]$X/^#W0@:<<4 0  .[#D $  ?!+&
  280. M!>D0   6N $   !;7E_)PY"+10Q(#XPJ 0  /04    /AQ\!  "%P ^,%P$ 
  281. M /\DA6@)0 "#_@]U'VG'% $  /^PW !  /]U$.COX/__@\0(Z2 !  "0D)!I
  282. MQQ0!  "-@.@ 0 #_=/ $_W40Z,S@__^#Q CI_0   )"0D)!IQQ0!  "-@)@ 
  283. M0 "+V.G4    D&:AZA   &:%P'0+Q@7I$    3/ ZP>X 0   .OWA< /A,  
  284. M  #_=1#H?^#__UEIUQ0!  ")@M@ 0 #II@   )!FH>H0  !FA<!T"\8%Z1  
  285. M  $SP.L'N $   #K]X7 #X2     _W40Z#_@__]94&G'% $  /^PV !  %?H
  286. M6_W__X/$#(7 =0?&!>D0   %5^AK]?__6>M-:<<4 0  _[#8 $  _W40Z #@
  287. M__^#Q CK-)"0D,8%Z1   !;K*)"0D ^V U#_=1#HX-___X/$"$/_11" .P!U
  288. MZ&H _W40Z,K?__^#Q @SP%M>7\G#58OL:"(10 #HL]___UDSP,G#D)!5B^Q6
  289. M5P:,V([ BWT(BTT,BS4$    _/.D!U]>7<-5B^Q65P:,V([ BW4(BTT,BST$
  290. M    _/.D!U]>7<,                                             
  291. M                                                            
  292. M                                                            
  293. M                                                            
  294. M                                                            
  295. M                                                            
  296. M                                                            
  297. M                                                            
  298. M                                                            
  299. M                                                            
  300. M                                                            
  301. M                                                            
  302. M                                                            
  303. M                                                            
  304. M                                                            
  305. M                                                            
  306. M                                                            
  307. M                                                            
  308. M                                                            
  309. M                                                            
  310. M                                                            
  311. M                                                            
  312. M                                                            
  313. M                                                            
  314. M                                                            
  315. M                                                            
  316. M                                                            
  317. M                                                            
  318. M                                                            
  319. M                                                            
  320. M                                                            
  321. M                                                            
  322. M                                                            
  323. M                                                            
  324. M                                                            
  325. M                                                            
  326. M                                                            
  327. M                                                            
  328. M                                                            
  329. M                                                            
  330. M                                                            
  331. M                                                            
  332. M                                                            
  333. M                                                            
  334. M                                                            
  335. M                                                            
  336. M                                                            
  337. M                                                            
  338. M                                                            
  339. M               &   8"   & @  !@(   H!@  & @  !@(   8"   4 8 
  340. M !@(  "0!@  & @  '0&   8"   J 8  /@>  ! 'P  E!\  %0?  #C'P  
  341. M[!\  '-C<VDZ('-E;F1I;F<@:&%R9"!R97-E="!T;R!S8W-I(&)U<PH <V-S
  342. M:3H@87)B:71R871I;VX@=&EM96]U=" M('-O;65O;F4@:7,@<VET=&EN9R!O
  343. M;B!T:&4@8G5S/PH <V-S:3H@=&EM96]U="!I9&5N=&EF>2!M<V<@;W5T("T@
  344. M9')I=F4@)60@9&]E<R!N;W0@<W5P<&]R="!M97-S86=E<S\* '-C<VDZ(&%F
  345. M=&5R('-U8V-E<W-F=6P@87)B:71R871E("%35$)360H <V-S:2!D;WAF97)N
  346. M;W-L965P.B A4U1"4UD@=6YI=" E9 H <V-S:3H@9&%T86]U="!R971U<FYE
  347. M9"!E<G)O<CL@=6YI=#TE9 H <V-S:3H@9&%T86EN(')E='5R;F5D(&5R<F]R
  348. M.R!U;FET/25D"@!S8W-I.B!U;FMN;W=N(&UE<W-A9V4@<F5C96EV960@9G)O
  349. M;2!D<FEV92 E9#H@)7@* '-C<VDZ('5N97AP96-T960@8G5S('-T871E.B!S
  350. M=&%T=7,])7@* '-C<VDZ('!O;&QE9"!R97-E;&5C=&EO;B!W87,@;F]T(&9O
  351. M<B!M93H@)7@* '-C<VDZ(')E<V5L96-T:6YG("AP;VQL960I('5N:70@;W1H
  352. M97(@=&AA;B!E>'!E8W1E9#H@)7@* '-C<VDZ('1I;65O=70@<&]L;&5D('=A
  353. M:70@9F]R(')E<V5L96-T:6]N(&9R;VT@)60* '-C<VDZ('-T87)T<V-S:3H@
  354. M<F5T<GEI;F<@;W(@9F%I;&EN9PH <V-S:3H@:6YT<B!I9VYO<F5D("AN;W0@
  355. M;7D@861D<BD[(&%D9'(])7@* '-C<VDZ(&EN='(@:6=N;W)E9" H:6YV86QI
  356. M9"!I9"D[('5N:70])60@83TE> H <V-S:3H@:6YT<B!I9VYO<F5D("AU;FET
  357. M("5D(#X](%-#4TE-05A$4DE615,@)60I"@!S8W-I.B!I;G1R(&EG;F]R960@
  358. M*&EN=&5R;F%L('-T871E*3H@=6YI=#TE9"!C;VYN96-T960])60@8G5S>3TE
  359. M9 H <V-S:3H@:6YT<B!I9VYO<F5D("AX9F5R(&ES('!O;&QE9"D[('5N:70]
  360. M)60* '-C<VDZ(&EN='(@:6=N;W)E9" H=&EM96]U="!W86ET:6YG(&9O<B!3
  361. M14P@=&\@8F4@<F5L96%S960I.R!U;FET/25D"@!S8W-I.B!I;G1R(&EG;F]R
  362. M960@*'1I;65O=70@=V%I=&EN9R!F;W(@0E-9(&%F=&5R(%-%3"!T;R!B92!R
  363. M96QE87-E9"D[('5N:70])60* '-C<VDZ(&EN='(Z(&-M9"!F86EL960@*"5D
  364. M*3L@<F5T=7)N:6YG(&5R<F]R"@!S8W-I.B!I;G1R.B!R971R>6EN9R!C;VUM
  365. M86YD"@!S8W-I.B!L;V-A;"!I;G1R(&1R:79E;B!X9F5R('=O:V5N('5P(&)Y
  366. M('1I;65R('1I8VL[('5N:70])60* '-C<VDZ(&)L;V-K('AF97(@9F%I;',@
  367. M:6X@=&EM97(@=&EC:SL@=6YI=#TE9"P@97)R/25D"@!S8W-I.B!X9F5R(')E
  368. M=')I960@:6X@=&EM97(@=&EC:SL@=6YI=#TE9"P@97)R/25D"@!786ET:6YG
  369. M(&9O<B!U;FET("5D('!O=V5R=7 N+BX* %!O=V5R=7 @=&EM96]U="!O;B!D
  370. M<FEV92 E9 H <V-S:2!D<FEV92 E9"!I<R!N;W0@<F5S<&]N9&EN9R!P<F]P
  371. M97)L>2X* '-C<VD@9')I=F4@)60Z(&EN<75I<GD@9F%I;&5D+@H <V-S:2!D
  372. M<FEV92 E9"!I<R!O;B!A(&1I<F5C="!A8V-E<W,@9&5V:6-E"@!S8W-I(&1R
  373. M:79E("5D.B!C86YN;W0@<F5A9"!C87!A8VET>0H <V-S:2!D<FEV92 E9#H@
  374. M8FQO8VMS:7IE/25D($)325I%/25D(&YO="!S=7!P;W)T960* '-C<VD@9')I
  375. M=F4@)60Z("5L9$U"("@E9"!B>71E('-E8W1O<G,I.B E<PH <V-S:2!D<FEV
  376. M92 E9#H@8V]U;&0@;F]T(')E860@<&%R=&ET:6]N('1A8FQE"@!P87)T:71I
  377. M;VYS.@ @)6QD34( "@ *)7,* %-#4TD@9&ES:R!D<FEV97(@5C$N,2 @0V]P
  378. M>7)I9VAT("AC*2 Y+C8N,3DX."!4871U(%EL?&YE;@H)0V]P>7)I9VAT("AC
  379. M*2 X+C@N,3DY,"!4:6X@3&4 <V-S:2!D<FEV97(@97)R;W(Z(&-O=6QD(&YO
  380. M="!S<'1A;&QO8R!C;VYT<F]L;&5R(&UE;6]R>0H "@!S8W-I.B!F;W)M871T
  381. M:6YG('5N:70@)60@=VET:"!B;&]C:W-I>F4])60L(&EN=&5R;&5A=F4])60*
  382. M '-C<VDZ('=A<FYI;F<Z(&UO9&4@<V5L96-T(&-O;6UA;F0@<F5T=7)N960@
  383. M97)R;W(@9G)O;2!D<FEV92 E9 H <V-S:3H@9F]R;6%T(&9A:6QU<F4N"@!S
  384. M8W-I.B!F;W)M870@8V]M<&QE=&4N"@!S8W-I<')I;G0@8V%L;&5D.@H     
  385. M0"@C*69C;G1L+F@),BXS("T@.#@O,#4O,C< 0"@C*69C;G1L+F@),BXS("T@
  386. M.#@O,#4O,C< 0"@C*7-Y<VUA8W)O<RYH"3(N,R M(#@X+S U+S(W $ H(RET
  387. M>7!E<RYH"3(N,R M(#@X+S U+S(W $ H(REP87)A;2YH"3(N,R M(#@X+S U
  388. M+S(W $ H(RES-7!A<F%M+F@),BXS("T@.#@O,#4O,C< 0"@C*7-I9VYA;"YH
  389. 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
  390. M(RED:7(N: DR+C,@+2 X."\P-2\R-P! *",I<S5D:7(N: DR+C,@+2 X."\P
  391. M-2\R-P! *",I9FEL92YH"3(N,R M(#@X+S U+S(W $ H(REU<V5R+F@),BXT
  392. M("T@.#@O,#@O,3@ 0"@C*6)U9BYH"3(N-" M(#@X+S X+S$R $ H(REI;V)U
  393. M9BYH"3(N,R M(#@X+S U+S(W $ H(REI;6UU+F@),BXS("T@.#@O,#4O,C< 
  394. M0"@C*7)E9VEO;BYH"3(N,R M(#@X+S U+S(W $ H(REP<F]C+F@),BXS("T@
  395. M.#@O,#4O,C<  -@   !     !@#=    5@   !0 XP   $     & /H   ! 
  396. M    !@ @ 0  0     8 10$  $     & $H!  !6    % !A 0  0     8 
  397. M<0$  $     & 'D!  !5    !@"! 0  0     8 C0$  $     & *4!  ! 
  398. M    !@"R 0  0     8 MP$  %8    4 ,L!  !5    !@#< 0  0     8 
  399. MZ0$  #X    4 /$!  !     !@ ) @  0     8 *0(  $     & #<"  ! 
  400. M    !@ _ @  0     8 7@(  #X    4 &4"  !     !@"% @  0     8 
  401. MB@(  %8    4 )H"  !     !@"@ @  0     8 L0(  %4    & +D"  ! 
  402. M    !@#' @  /@   !0 S (  #X    4 .("  !     !@#G @  /@   !0 
  403. M\0(  $     &  D#   ^    %  1 P  0     8 'P,  #X    4 "T#  !5
  404. M    !@ Y P  0     8 0@,  #X    4 % #  !     !@!I P  0     8 
  405. M=P,  $     & (,#  !     !@"9 P  0     8 I0,  $     & *H#  !7
  406. M    % #" P  0     8 QP,  %@    4 -D#  !     !@#> P  6    !0 
  407. M[0,  $     & /D#  !     !@ %!   0     8 # 0  #X    4 !4$  !5
  408. M    !@ A!   0     8 .00  $     & &P$  !     !@!R!   /@   !0 
  409. M?00  $     & )4$   ^    % "=!   0     8 L 0  #X    4 ,4$  ! 
  410. M    !@#+!   50    8 U 0  #X    4 .0$  !     !@#]!   0     8 
  411. M"P4  $     & !<%  !     !@ M!0  0     8 ,@4  %D    4 $(%  ! 
  412. M    !@!'!0  0     8 3 4  %H    4 &T%  !     !@!R!0  60   !0 
  413. M@04  $     & (T%  !     !@"9!0  0     8 H 4  #X    4 *D%  !5
  414. M    !@"U!0  0     8 S04  $     & /D%   ^    %  "!@  /@   !0 
  415. M"P8  #X    4 !$&  !     !@ 6!@  5@   !0 *@8  #X    4 #,&   ^
  416. M    %  Y!@  0     8 /@8  %8    4 %$&  !5    !@!=!@  0     8 
  417. M8P8  $     & &P&   ^    % !\!@  50    8 A 8  $     & (D&   ^
  418. M    % "1!@  50    8 F08  $     & *$&   ^    % "I!@  50    8 
  419. MPP8  #X    4 ,X&   ^    % #9!@  /@   !0 Y 8  #X    4 .\&   ^
  420. M    % #Z!@  /@   !0 !@<  #X    4  T'  !     !@ 2!P  5@   !0 
  421. M&@<  #X    4 "@'  !     !@ N!P  0     8 /0<  $     & $D'   ^
  422. M    % !R!P  0     8 > <  $     & (H'  !     !@"0!P  0     8 
  423. ME0<  #X    4 *H'  !     !@"P!P  0     8 P@<  $     & ,@'  ! 
  424. M    !@#:!P  0     8 X <  $     & / '  !     !@#]!P  0     8 
  425. M!@@  $     & !D(  !     !@ B"   0     8 )P@  %8    4 #X(  ! 
  426. M    !@!5"   0     8 :0@  $     & 'D(  !     !@!^"   5@   !0 
  427. MC0@  $     & )T(  !     !@"L"   0     8 N0@  #X    4 ,P(  ! 
  428. M    !@#9"   0     8 [0@  %4    &  8)  !     !@ +"0  5@   !0 
  429. M+PD  $     & #0)  !6    % !%"0  0     8 3@D  $     & %,)  !6
  430. M    % !A"0  0     8 ;0D  $     & (D)  !     !@"A"0  0     8 
  431. ML D  $     & -T)  !     !@#C"0  0     8 Z0D  $     &  $*  ! 
  432. M    !@ '"@  0     8 #0H  $     & "4*  !     !@ K"@  0     8 
  433. M,0H  $     & $ *  !     !@!&"@  /@   !0 6@H  #X    4 &8*   ^
  434. M    % !R"@  0     8 >PH  #X    4 (4*   ^    % "4"@  0     8 
  435. MHPH  $     & +P*  !     !@#1"@  0     8 UPH  %L    4 .T*  ! 
  436. M    !@ $"P  0     8 "PL  #X    4 "8+   ^    %  M"P  /@   !0 
  437. M-0L  #X    4 #T+  !     !@!""P  5@   !0 3PL  $     & %8+   ^
  438. M    % !E"P  /@   !0 <0L  $     & '<+  !     !@"!"P  /@   !0 
  439. MF@L  %P    4 *@+  !     !@"W"P  70   !0 R@L  %T    4 -D+  ! 
  440. M    !@#?"P  6P   !0 ^0L  %P    4  <,  !     !@ 9#   0     8 
  441. M* P  $     & #<,  !     !@!&#   0     8 4@P  $     & &X,  ! 
  442. M    !@!Z#   0     8 C0P  $     & )P,  !     !@"K#   0     8 
  443. MN@P  $     & ,8,  !     !@#-#   70   !0 U P  #X    4 .\,  ! 
  444. M    !@!_#0  /@   !0 G T  $     & ,(-  !     !@#6#0  /@   !0 
  445. MZ@T  %P    4  P.  !     !@ ;#@  0     8 +0X  $     & $ .  ! 
  446. M    !@!8#@  0     8 H X  #X    4 *D.  !=    % "Z#@  7    !0 
  447. MR0X  $     & -<.  !     !@#E#@  0     8 ]@X  $     & !4/  ! 
  448. M    !@ E#P  0     8 *P\  %X    4 #4/   ^    % !"#P  7P   !0 
  449. M20\  %T    4 %P/  !     !@!]#P  0     8 H0\  %4    & +@/  ! 
  450. M    !@"]#P  5@   !0 #!   $     & !$0  !6    %  I$   0     8 
  451. M+A   %8    4 #T0  !<    % !+$   0     8 6A   $     & &H0  ! 
  452. M    !@!X$   0     8 ?Q   $     & (00  !6    % "-$   70   !0 
  453. MH!   $     & *D0  !     !@"N$   5@   !0 MQ   %T    4 ,40  ! 
  454. M    !@#9$   0     8 ]!   $     & /T0  !     !@ "$0  5@   !0 
  455. M"Q$  %T    4 "41  !     !@! $0  0     8 21$  $     & $X1  !6
  456. M    % !7$0  70   !0 91$  $     & '01  !     !@"!$0  0     8 
  457. MBQ$  $     & )(1  !=    % "?$0  0     8 J!$  #X    4 *T1   ^
  458. M    % "\$0  0     8 PA$  %X    4 ,D1  !     !@#<$0  0     8 
  459. M\A$  $     &  42  !     !@ *$@  5@   !0 $A(  $     & !P2   ^
  460. M    %  P$@  0     8 -1(  $     & #H2  !6    % !!$@  /@   !0 
  461. M4Q(  %P    4 %L2  !     !@!B$@  /@   !0 :1(  #X    4 '@2  ! 
  462. M    !@!_$@  /@   !0 BQ(  $     & )(2   ^    % ">$@  0     8 
  463. MI1(  #X    4 +$2  !     !@"X$@  /@   !0 Q!(  $     & ,P2   ^
  464. M    % #<$@  0     8 [A(  $     & /02  !     !@#Z$@  /@   !0 
  465. M!A,  $     & !83  !     !@ ?$P  0     8 )!,  %8    4 #,3  ! 
  466. M    !@ Y$P  7@   !0 6!,  $     & &P3  !     !@!Q$P  5@   !0 
  467. M>Q,  #X    4 (@3   ^    % "1$P  /@    8 EA,  &     4 )\3  !=
  468. M    % "T$P  0     8 NQ,  $     & , 3  !6    % #)$P  /@   !0 
  469. MT1,  #X    4 $04   ^    % "&%   /@   !0 VQ0  #X    4 #T5   ^
  470. M    % !H%0  0     8 >!4  $     & (45  !     !@"2%0  0     8 
  471. MHA4  $     & *D5   ^    % # %0  0     8 Q14  %8    4 .D5   ^
  472. M    %  &%@  0     8 "Q8  %8    4 "86   ^    % !&%@  0     8 
  473. M2Q8  %8    4 &86   ^    % !U%@  0     8 >A8  %8    4 )$6  ! 
  474. M    !@"6%@  5@   !0 OQ8  $     & ,46   ^    % #6%@  /@   !0 
  475. MZ18  $     & /D6  !     !@ +%P  0     8 $!<  %8    4 #$7  ! 
  476. M    !@!+%P  0     8 4!<  %8    4 'X7  !     !@"*%P  0     8 
  477. MEQ<  $     & *D7  !     !@"P%P  0     8 Q1<  $     & ,H7  !6
  478. M    % #A%P  /@   !0 \!<  $     & /47  !6    %  ,&   /@   !0 
  479. M61@  $     & &T8  !     !@!]&   0     8 @A@  %8    4 )X8  ! 
  480. M    !@"C&   5@   !0 N!@  #X    4 ,(8   ^    % #,&   /@   !0 
  481. MUA@  #X    4 . 8   ^    % #J&   /@   !0 \Q@  $     & /@8  !6
  482. M    %  %&0  0     8 $1D  $     & "<9  !     !@ M&0  0     8 
  483. M01D  $     & $89  !     !@!+&0  5@   !0 5!D  $     & &<9  !A
  484. M    % !O&0  0     8 =1D  $     & 'T9  !     !@"%&0  0     8 
  485. MD!D  $     & )49  !     !@"@&0  50    8 IAD  $     & +@9  ! 
  486. M    !@#(&0  0     8 WAD  #X    4 .H9  !     !@#O&0  5@   !0 
  487. M&QH  $     & ",:  !<    %  J&@  /@   !0 ,!H  %T    4 #<:  ! 
  488. M    !@!6&@  0     8 91H  $     & &\:  !B    !@"Q&@  /@   !0 
  489. MOAH  $     & ,4:   ^    % #2&@  0     8 ]AH  $     &  P;   ^
  490. M    %  =&P  0     8 .QL  $     & $T;  !     !@!H&P  7P   !0 
  491. M?1L  $     & )(;  !?    % "E&P  0     8 N!L  $     & -<;  ! 
  492. M    !@#M&P  0     8 $AP  $     & # <  !     !@ ['   7    !0 
  493. M2QP  $     & &$<  !     !@""'   0     8 UAP  $     & .(<   ^
  494. M    % #M'   70   !0  1T  $     &  8=   ^    !@ +'0  8P   !0 
  495. M'1T  $     & "(=   ^    !@ G'0  8P   !0 3QT  $     & %0=  !6
  496. M    % #3'0  /@   !0 X!T  $     & .4=  !6    %  I'@  /@   !0 
  497. M-1X  $     & #H>  !6    % !)'@  0     8 3AX  %8    4 &4>  !B
  498. M    !@!P'@  8@    8 I1X  &(    & +P>  !     !@#$'@  8@    8 
  499. MVAX  #X    4 .4>   ^    % #M'@  /@   !0 ]!X  $     &  4?  ! 
  500. M    !@ -'P  9    !0 %1\  #X    4 "0?  !     !@ P'P  9    !0 
  501. M.!\  #X    4 $@?  !     !@!/'P  /@   !0 5A\  &(    & &$?  !B
  502. M    !@!U'P  /@   !0 ?1\  &4    4 (H?  !     !@"/'P  /@   !0 
  503. MEA\  &(    & *$?  !B    !@"U'P  /@   !0 O1\  &4    4 ,L?  ! 
  504. M    !@#1'P  /@   !0 WA\  &(    & .4?   ^    % #T'P  0     8 
  505. M_!\  &0    4  H@  !B    !@ <(   9@   !0 ,B   &8    4 $0@  ! 
  506. M    !@!)(   5@   !0 9B   %4    & (0@  !5    !@ L"4  /@    8 
  507. M, E  #X    & #0)0  ^    !@ X"4  /@    8 / E  #X    & $ )0  ^
  508. M    !@!$"4  /@    8 2 E  #X    & $P)0  ^    !@!0"4  /@    8 
  509. M5 E  #X    & %@)0  ^    !@!<"4  /@    8 8 E  #X    & &0)0  ^
  510. M    !@!H"4  /@    8 ; E  #X    & ' )0  ^    !@!T"4  /@    8 
  511. M> E  #X    & 'P)0  ^    !@ N9FEL90   $T   #^_P  9P%S8W-I+F, 
  512. M                    !    -     ! "   P$     9          $    
  513. M        $0   #0!   ! "0  P$     G $        &      !D871A;W5T
  514. M - "   ! "0  P$     B $        (      !D871A:6X  %@$   ! "0 
  515. M P$     E $        *            &P   .P%   ! "0  P$     U ( 
  516. M       ,            *0   , (   ! "0  P$       $        .    
  517. M        /0   , )   ! "0  P$     T $        0            1P  
  518. M ) +   ! "0  P$     4 $        2      !D;W)W     . ,   ! "0 
  519. M P$     J          4            40   (@-   ! "   P$     7   
  520. M       6            7P   .0-   ! "   P$     T          8    
  521. M        ;P   +0.   ! "   P$     H          :      !S8W-I:6YT
  522. M<E0/   ! "   @$     ^ (        <      !S8W-I=&EC:TP2   ! "  
  523. M @$     C $        >      !S=')C<'D  -@3   ! "   P$     )   
  524. M       @            >P   /P3   ! "0  P$     5          B    
  525. M        B    % 4   ! "0  P$     0          D            D@  
  526. M ) 4   ! "0  P$     5          F            G    .04   ! "0 
  527. M P$     <          H            J0   %05   ! "0  P$     Z , 
  528. M       J      !S8W-I:6YI=#P9   ! "   @$     O          L    
  529. M  !S8W-I;W!E;O@9   ! "   @$     A          N            LP  
  530. M 'P:   ! "   @$     "          P            O0   (0:   ! "  
  531. M @$     = (        R      !S8W-I<F5A9/@<   ! "   @$     '   
  532. M       T            R@   !0=   ! "   @$     '          V    
  533. M        U    # =   ! "0  P$     , $        X      !C:&MS=7!E
  534. M<F >   ! "0  P$     )          Z            Y    (0>   ! "0 
  535. M @$     O $        \            [@   $ @   ! "0  @$     %   
  536. M       ^       N=&5X=    -     !     P&$'P  ] $>            
  537. M   N9&%T80   )  0  "     P&H$   %0                 N8G-S    
  538. M #@10  #     P$                        N8V]M;65N=      $    
  539. M P', 0                    !B87-E861D<I  0  "     P!C;61P;W)T
  540. M )0 0  "     P!D         )@ 0  "     P!S8W-I8G5F .@$0  "    
  541. M P!R87=I;V)U9B0%0  "     P      ^    "0)0  "     P       P$ 
  542. M "@)0  "     P N9FEL90   %4   #^_P  9P%S8W-I87-M+G,         
  543. M   N=&5X=    %0@   !     P$\     @                 N9&%T80  
  544. M #@10  "     P$                        N8G-S     #@10  #    
  545. M P$                             $ $   0          @!P<FEN=&8 
  546. M             @!C;W!Y:6X              @      '0$  '(@   !    
  547. M @      * $  %0@   !     @!C;W!Y;W5T             @!S;&5E<   
  548. M             @!S<&PV                 @!S<&QX                
  549. M @!W86ME=7               @!I;V1O;F4              @!T:6UE;W5T
  550. M             @!S<'1A;&QO8P           @!U                    
  551. M @!P:'ES:6\              @!S=7=O<F0              @!F=7=O<F0 
  552. M             @!S=6)Y=&4              @ T 0  <F5S971S8W-I8G5S
  553. M &%R8FET<F%T90!D;WAF97)N;W-L965P '!O;&QE9'=A:71R96-O;FYE8W0 
  554. M<W1A<G1S8W-I &1O<V-S:6-M9 !S=&%R=&)U9F9E<FEO '-T87)T<&5N9&EN
  555. M9W)E<0!M87)K;F]T8G5S>0!R97%U97-T<V5N<V4 =&5S=')E861Y &1O:6YQ
  556. M=6ER>0!R96%D8V%P86-I='D :6YI=&1R:79E '-C<VEC;&]S90!S8W-I<W1R
  557. M871E9WD <V-S:7=R:71E &9O<FUA='-C<VED<FEV90!S8W-I:6]C=&P <V-S
  558. M:7!R:6YT '1I;65O=71I;F< :6YT<G-E<G9I8V5D '-C<VED871A<&]R= !S
  559. 696YD=&]S8W-I &=E=&9R;VUS8W-I '-E
  560. end
  561. SHAR_EOF
  562. chmod 0644 Driver.uu ||
  563. echo 'restore of Driver.uu failed'
  564. Wc_c="`wc -c < 'Driver.uu'`"
  565. test 28207 -eq "$Wc_c" ||
  566.     echo 'Driver.uu: original size 28207, current size' "$Wc_c"
  567. rm -f _shar_wnt_.tmp
  568. fi
  569. # ============= Makedev ==============
  570. if test -f 'Makedev' -a X"$1" != X"-c"; then
  571.     echo 'x - skipping Makedev (File already exists)'
  572.     rm -f _shar_wnt_.tmp
  573. else
  574. > _shar_wnt_.tmp
  575. echo 'x - extracting Makedev (Text)'
  576. sed 's/^X//' << 'SHAR_EOF' > 'Makedev' &&
  577. #!/bin/sh
  578. # Makedev for ST-0X driver
  579. #
  580. # 9/16/90 Tin Le
  581. X
  582. if test ! `who am i | cut -f1 -d' '` = "root" ; then
  583. X    echo "You must be root to do this!"
  584. X    exit 1
  585. fi
  586. X
  587. echo "Making device nodes for ST-0X driver..."
  588. mknod /dev/rscsi0s c 9 15
  589. mknod /dev/scsi0s b 9 15
  590. mknod /dev/scsi0s0 b 9 0
  591. mknod /dev/scsi0s0 b 9 1
  592. mknod /dev/scsi0s0 b 9 2
  593. mknod /dev/scsi0s0 b 9 3
  594. X
  595. echo "Created 4 nodes for 4 partitions, you can create more as needed."
  596. echo "You will probably need to format your disk, run scsipart."
  597. X
  598. SHAR_EOF
  599. chmod 0755 Makedev ||
  600. echo 'restore of Makedev failed'
  601. Wc_c="`wc -c < 'Makedev'`"
  602. test 496 -eq "$Wc_c" ||
  603.     echo 'Makedev: original size 496, current size' "$Wc_c"
  604. rm -f _shar_wnt_.tmp
  605. fi
  606. # ============= README ==============
  607. if test -f 'README' -a X"$1" != X"-c"; then
  608.     echo 'x - skipping README (File already exists)'
  609.     rm -f _shar_wnt_.tmp
  610. else
  611. > _shar_wnt_.tmp
  612. echo 'x - extracting README (Text)'
  613. sed 's/^X//' << 'SHAR_EOF' > 'README' &&
  614. Readme for ST-01 SCSI driver for microport unix system V
  615. X
  616. X
  617. Copyright (c) 13.6.1989 Tatu Ylonen
  618. Copyright (c) 16.9.1990 Tin Le
  619. X
  620. X
  621. I hereby allow use and distribution of this device driver, provided
  622. that no charge is asked for it.
  623. X
  624. X
  625. This is an SCSI device driver for Microport Unix System V/386 with
  626. Seagate ST-01 SCSI adaptor.  (This probably works with other 386 unix
  627. as well, but has not been tested).
  628. X
  629. This driver offers the following features
  630. X  - can use almost any scsi disks
  631. X  - no limit on disk or partition size
  632. X  - each physical drive can partitioned in upto 15 partitions
  633. X  - supports multiple drives (up to 7) on a single controller
  634. X  - transfer rate four to six times that of the standard MFM disk
  635. X    driver supplied by microport
  636. X
  637. The following drawbacks are known
  638. X  - does not use dma, as the controller does not support dma
  639. X  - character devices (raw io) do not work
  640. X  - this is a disk driver only.  SCSI tapes have not been tested.
  641. X  - you cannot boot from the scsi drive (I do not have boot source
  642. X    code)
  643. X  - lots of data movement is done at interrupt time (although this
  644. X    tries to enable higher priority interrupts, like the serial ports)
  645. X
  646. I have used this for about an year with a Priam 738 (337 megabytes
  647. formatted, 20 ms) drive.  Others have used this with Seagate ST227N
  648. drives (64 megabytes).  I have had no problems with the driver (I have
  649. never (after the initial creation of the driver) had a panic that I
  650. could have associated with the driver (and only a couple of panics
  651. altogether)).  The drive has been partitioned to three partitions:
  652. 10MB, 20MB and 307 MB.  (I have never had any problems with large
  653. partitions).  I archieved the best performance when using 1024 byte
  654. sectors on the disk.  The ST227N drive had some problems with 1024
  655. byte sectors (the machine rebooting randomly during heavy disk
  656. accesses); I have never had these problems with the Priam disk, and
  657. the Seagate drives appear to work ok with 512 byte sectors.
  658. X
  659. The driver works with Dosmerge without any problems.
  660. X
  661. X
  662. INSTALLATION
  663. X
  664. (Assuming you have installed the st01 adaptor).
  665. (BTW, I removed the bios rom on the controller.  It does not work with
  666. all drives.  Also, the machine boots faster.  This driver does not
  667. need the rom and will wait for the drives to become ready if needed)
  668. X
  669. 1. Create the directory /etc/atconf/modules/scsi, and copy all files to
  670. X   that directory.
  671. X
  672. 2. Check the config file for correct parameters (major device number,
  673. X   interrupt number).  Major device number and the interrupt number
  674. X   should both be exclusively used for the scsi driver.  (I have heard
  675. X   that some optional driver conflicts with the default major number
  676. X   here, 9)
  677. X
  678. 3. Type make.
  679. X
  680. 4. Add the line 'scsi,' in your system file (usually
  681. X   /etc/atconf/systems/system.std).  Remember to back up your old system
  682. X   file first.  Type mkunix (being logged in as root).
  683. X
  684. 5. Back up your old /unix (move to, say, /unix.old, so that you can
  685. X   boot it if something goes wrong).
  686. X
  687. 6. Bring the system down (init 0).
  688. X
  689. 7. Connect the scsi drive(s).  You will need the appropriate cables.
  690. X   Remember to have terminators in the last drive (if you have only
  691. X   one drive, you need to do nothing, as the terminators are probably
  692. X   connected by default).
  693. X
  694. 8. Reboot.  While booting, you should see a copyright message from the
  695. X   driver, and a message identifying the manufacturer of the drive.
  696. X   The message contains drive number and a manufacturer-specified text
  697. X   (usually drive model).  If the drive has been partitioned, the
  698. X   sizes of the partitions will also be shown.
  699. X
  700. X   If you get repeated messages "someone is sitting on the bus,
  701. X   sending hard reset to scsi bus" (or something like that), it
  702. X   probably means that the drive is not powered on (or that something
  703. X   else is wrong with the connections).
  704. X
  705. X   If you get scsi timeouts when trying to use the disk (at a later
  706. X   time, after formatting), it probably means that the interrupt
  707. X   number is not set correctly.  Check config file and jumpers on the
  708. X   card.
  709. X
  710. 9. Create device i-nodes for the scsi disk.
  711. X   I have the following i-nodes.  Here 9 is the major device number
  712. X   (must match that in config file).  The minor device contains the
  713. X   partition number in the lower four bits, and disk number in the
  714. X   upper four bits.  Partition number 15 is reserved (contains the
  715. X   entire disk, including the partition table).
  716. X
  717. X   The devices /dev/rscsi<drive>s and /dev/scsi<drive>s are mandatory.
  718. X   In addition, you can create as many i-nodes for partitions as you
  719. X   wish.
  720. X
  721. X   Here is a list of scsi-related i-nodes on my system.
  722. X   
  723. crw-------   1 root     sys        9, 15 Apr 22 03:13 /dev/rscsi0s
  724. brw-------   1 root     sys        9, 15 Jan 14 06:01 /dev/scsi0s
  725. brw-------   1 root     sys        9,  0 Jun 13 18:08 /dev/scsi0s0
  726. brw-------   1 root     sys        9,  1 Jun 13 18:08 /dev/scsi0s1
  727. brw-------   1 root     sys        9,  2 Jun 13 18:08 /dev/scsi0s2
  728. X
  729. 10. Run scsipart.  The program asks for drive number.  Enter 0 (or the
  730. X    number of your drive).  When the program asks whether to format,
  731. X    answer yes, and confirm.  Formatting the Priam 337 megabyte disk
  732. X    takes about half an hour.  In that time the driver does not print
  733. X    anything.
  734. X
  735. X    You cannot specify your own defects.  The scsi drive will
  736. X    automatically use all manufacturer-supplied defects, plus those
  737. X    found during formatting.  (The scsi interface supports automatic
  738. X    remapping of bad blocks even after formatting, but the driver does
  739. X    not support this.)
  740. X
  741. X    When formatting is complete, the number of available disk sectors
  742. X    is printed.
  743. X
  744. X    You can now define the partitions.  Note that partitions are
  745. X    defined in sectors, while filesystems for mkfs are specified in
  746. X    1024 byte blocks.  Thus, if you have 512 byte sectors, the lengths
  747. X    of partitions should be twice the number of blocks.  The block 0
  748. X    contains the partition table and cannot be used.  Otherwise, you
  749. X    can freely create the partitions as you wish.  The first partition
  750. X    in the table is number 0, the second number 1 and so on.
  751. X
  752. X    The partitions become valid when you exit scsipart.
  753. X
  754. X    I recommend that you try with several different interleave values
  755. X    for optimal performance.  I got acceptable performance with 1024
  756. X    byte sectors (use them if they work) and interleave 9 (sic).  That
  757. X    was with an early version; the data transfer routines have been
  758. X    optimized quite a bit since then (see the assembler hacks).
  759. X
  760. 11. Create file systems on the partitions.  See mkfs(1M).  Remeber to
  761. X    give the correct block size.  Specify that mkfs leave no
  762. X    interleave (so it is easier to specify the interleave when
  763. X    formatting).
  764. X
  765. 12. Add the partitions to /etc/fstab.  My fstab looks like
  766. X
  767. /dev/scsi0s0 /tmp
  768. /dev/scsi0s1 /u2
  769. /dev/scsi0s2 /u
  770. X
  771. 13.  Reboot.  The partitions should now get mounted and the system be
  772. ready for use.  (Check /etc/rc2.d if they do not get mounted).  You
  773. can label the file systems (see labelfs(1M) if you don't want to see
  774. the messages from mount.
  775. X
  776. X
  777. You can use the file systems just like any other file systems.  All
  778. normal utilities work (except of course things like mkpart etc).  Fsck
  779. and others work ok.
  780. X
  781. ----------------
  782. X
  783. I can give only very limited support to anyone using this.  However,
  784. I can be reached as
  785. X
  786. X   ylo@hupu.hut.fi
  787. X
  788. or my normal mail
  789. X
  790. X  Tatu Ylonen
  791. X  Tunnelitie 14 c 13
  792. X  00320 HELSINKI
  793. X  Finland
  794. X
  795. X  Tel. +358-0-573290
  796. X
  797. 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
  798. XFrom: km@cs.pitt.edu
  799. Newsgroups: comp.unix.i386
  800. Subject: ST01 driver board notes
  801. Message-ID: <7487@pitt.UUCP>
  802. Date: 1 May 90 19:15:02 GMT
  803. Sender: news@pitt.UUCP
  804. Reply-To: km@cs.pitt.edu ()
  805. Organization: Univ. of Pittsburgh Computer Science
  806. Lines: 74
  807. X
  808. X
  809. ----------
  810. X
  811. Here is a picture of the card.
  812. X
  813. X  +--------------------------------------------+
  814. X  I   ::::::::::::::::::::::::::::::::::::     I +--
  815. X  I     (50-pin scsi connector)                I I
  816. X  I                                         +----I
  817. X  I                                         +----I
  818. X  I   +----+                 +--+              I I  (mounting bracket)
  819. X  I   I    I    +-----+      I  I              I I
  820. X  I   I    I    I     I      I  I              I I
  821. X  I   I    I    I     I      I  I              I I
  822. X  I   +----+    +-----+      +--+              I I
  823. X  I                                            I I
  824. X  I      E  F           A  B                   I I
  825. X  I       ..             ..    .            +----I
  826. X  I        .             ..    . (0ws)      +----I
  827. X  I         G           C  D                   I I
  828. X  +-+  (intr en. jumpers) (bios addr j.)   +---+ I
  829. X    I IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII I     I
  830. X    +--------------------------------------+     I
  831. X             (edge connector)                    I
  832. X
  833. Memory address
  834. X
  835. no jumpers installed       CA000H  (default setting)
  836. pins C-D shorted           C8000H
  837. SHAR_EOF
  838. true || echo 'restore of README failed'
  839. fi
  840. echo 'End of  part 1'
  841. echo 'File README is continued in part 2'
  842. echo 2 > _shar_seq_.tmp
  843. exit 0
  844. -- 
  845. +-----------------------------------------------------------------
  846.  Station Zebra     ....!{claris,zorch}!szebra!tin
  847.  Sunnyvale, CA      (408) 739-1520  24hrs Telebit+ 300-19200bps
  848.                     Pub *NIX, Usenet and mail (no fee)
  849.