O"| E|MG>|ry39|t| ||&||||P|R|I|K| &| |HI|K|R|P|rr }u  t}_3^DXXXGHH |2I|K|PRQ:rذTYZXr |.|$|I|K|p t);|s6|ˆO|36|%|M|ôM| 6O|ʆ$|6%| Non-System disk or disk error Replace and press any key when ready IO SYSMSDOS SYSU@`  @`! #@%`')+-/1 3@5`79;=?A C@E`GIKMOQ S@U`WY[]_a c@e`gikmoq s@u`wy{} @` @ ` @ ` @ ` @ ` ǀ @ ` ׀ ٠  @` @`!Aa !Aa!!#A%a')+-/1!3A5a79;=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagikmoq!sAuawy{}!Aa/Aa!Oa!Aa!Aaǁɡ!Aaׁ!Aa!Aa " B b  !"!B!b!!!!!"!""#B"%b"'")"+"-"/#1"#3B#5b#7#9#;#=#?$A"$CB$Eb$G$I$K$M$O%Q"%SB%Ub%W%Y%[%]%_a"&cB&eb&g&i&k&m&o'q"'sB'ub'w'y'{'}'("(B(b((((()")B)b)))))*"*B*b****+"+B+b+++++,",B,b,ǂ,ɢ,,,-"-b-ׂ-٢---.".B.b...../"/B/b/////0#0C0c00 0 0 01#1C1c111112!#2#C2%c2'2)2+2-2/31#33C35c37393;3=3?4A#4CC4Ec4G4I4K4M4O5Q#5SC5Uc5W5Y5[5]5_6a#6cC6ec6g6ik6m6o7q#7sC7uc7w7y7{7}78O8c888889#9C9c99999:#:C:c:::::;#;C;c;;;;;<##>C>c>>>>>C?????$@D@d@@ @ @ @A$ADAdAAAAAB!$B#DB%dB'B)B+B-B/C1$C3DC5dC7C9C;C=C?DA$DCDDEdDGDIDKDMDOEQ$ESDEUdEWEYE[E]E_Fa$FcDFedFgFiFkFmFoGq$GsDGudGwGyG{G}GH$HDHdHHHHHI$IDIdIIIIJDJdJJJJJK$KDKdKKKKKL$LDLdLDŽLɤLLLM$MDMdMׄM٤MMMN$NDNdNNNNNO$ODOdOOOOOP%PEPePP P P PQ%QEQoQQQQR!%R#ER%eRR)R+R-R/S13ES5eS7S9S;S=S?TA%TCETEeTGTITTMTOUQ%USEUUeUWUYUU]U_a%VcEVeeVViVkmVoWq%WsEWoWwWyW}WX%XEXeXXXXXY%YEYeYYYYYZ%ZEZeZZZZZ[%[E[e[[[[[\%\E\e\Dž\ɥ\\\]%]E]e]ׅ]٥]]]^%^e^^^_%_E_e_____`&`F`f`` ` ` `a&aFafaaaaab!&b#Fb%fb'b)b+b-b/c1&c3Fc57c9c /dCFdEfdGdIdKdMdOeQ&eSFeUfeWeYe[e]e_fa&fcFfeffgfifkfmfogq&gsFgufgwgyg{g}gh&hFhfhhhhhi&iFifiiiiij&jFjfjj /kFkfkkkkkl&lFlfldžlɦlllm&mFmfm׆m٦mmmn&nFnfnnnnno&oFofooop'pGpgpp p p pq'qGqgqqqqqr!'r#Gr%gr'r)r+r-r/s1's3Gs5gs7sss=tA'tCGtEgtGtItKtMtOuQ'uSGuUguWuYu[u]u_va'vcGvegvgvivkvmvowq'wsGwugwwwyw{w}wx'xOxgxxxxxy'yGyyyyyz'zGzgzzzzz{'{G{g{{{{{|'|g|LJ|ɧ|||}'}G}ׇ}٧}}~'~G~g~~~~~'Gg(Hh Ȁ (Hhȁ!#H%h')+Ȃ-/1(35h79;?A(CHEhGIKȄMOQ(SHUhWY[ȅ]_a(cHehgikȆmoq(sHuhwy{ȇ}HhȈ舏(Ohȉ艟(HhȊ芯(Hhȋ苿/HɨȌ(o٨ȍ(Hh爎騎Ȏ(Hhȏ)Ii ɐ  )Iiɑ !)#I%i'+ɒ-/ 1)3I5i79;ɓ=? A)CIEiGIKɔMO Q)OUY[ɕ]_ a)cIeigikɖmo q)sIuiwy{ɗ )Iiɘ)Iiə陟 )Iiɚ隯 )Iiɛ雿 )IiljɩϜ )Ii׉٩ɝ )Ii牞驞ɞ )Iiɟ *Jj ʠ  *Jjʡ !*#J%j')+ʢ-/ 1O5j79;ʣ=A*CJGIKʤMO Q*SJUjWY[ʥ]_ a*cJejgikʦmo q*sJujwy{ʧ} *Jjʨꨏ *Jjʩ꩟ *Ojʪꪯ *Jjʫ꫿ *Jjʬ *Jj׊٪ʭ *Jj犮骮ʮ *Jjʯ@`  @`! #@%`')+-/1 3@5`79;=?A C@E`GIKMOQ S@U`WY[]_a c@e`gikmoq s@u`wy{} @` @ ` @ ` @ ` @ ` ǀ @ ` ׀ ٠  @` @`!Aa !Aa!!#A%a')+-/1!3A5a79;=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagikmoq!sAuawy{}!Aa/Aa!Oa!Aa!Aaǁɡ!Aaׁ!Aa!Aa " B b  !"!B!b!!!!!"!""#B"%b"'")"+"-"/#1"#3B#5b#7#9#;#=#?$A"$CB$Eb$G$I$K$M$O%Q"%SB%Ub%W%Y%[%]%_a"&cB&eb&g&i&k&m&o'q"'sB'ub'w'y'{'}'("(B(b((((()")B)b)))))*"*B*b****+"+B+b+++++,",B,b,ǂ,ɢ,,,-"-b-ׂ-٢---.".B.b...../"/B/b/////0#0C0c00 0 0 01#1C1c111112!#2#C2%c2'2)2+2-2/31#33C35c37393;3=3?4A#4CC4Ec4G4I4K4M4O5Q#5SC5Uc5W5Y5[5]5_6a#6cC6ec6g6ik6m6o7q#7sC7uc7w7y7{7}78O8c888889#9C9c99999:#:C:c:::::;#;C;c;;;;;<##>C>c>>>>>C?????$@D@d@@ @ @ @A$ADAdAAAAAB!$B#DB%dB'B)B+B-B/C1$C3DC5dC7C9C;C=C?DA$DCDDEdDGDIDKDMDOEQ$ESDEUdEWEYE[E]E_Fa$FcDFedFgFiFkFmFoGq$GsDGudGwGyG{G}GH$HDHdHHHHHI$IDIdIIIIJDJdJJJJJK$KDKdKKKKKL$LDLdLDŽLɤLLLM$MDMdMׄM٤MMMN$NDNdNNNNNO$ODOdOOOOOP%PEPePP P P PQ%QEQoQQQQR!%R#ER%eRR)R+R-R/S13ES5eS7S9S;S=S?TA%TCETEeTGTITTMTOUQ%USEUUeUWUYUU]U_a%VcEVeeVViVkmVoWq%WsEWoWwWyW}WX%XEXeXXXXXY%YEYeYYYYYZ%ZEZeZZZZZ[%[E[e[[[[[\%\E\e\Dž\ɥ\\\]%]E]e]ׅ]٥]]]^%^e^^^_%_E_e_____`&`F`f`` ` ` `a&aFafaaaaab!&b#Fb%fb'b)b+b-b/c1&c3Fc57c9c /dCFdEfdGdIdKdMdOeQ&eSFeUfeWeYe[e]e_fa&fcFfeffgfifkfmfogq&gsFgufgwgyg{g}gh&hFhfhhhhhi&iFifiiiiij&jFjfjj /kFkfkkkkkl&lFlfldžlɦlllm&mFmfm׆m٦mmmn&nFnfnnnnno&oFofooop'pGpgpp p p pq'qGqgqqqqqr!'r#Gr%gr'r)r+r-r/s1's3Gs5gs7sss=tA'tCGtEgtGtItKtMtOuQ'uSGuUguWuYu[u]u_va'vcGvegvgvivkvmvowq'wsGwugwwwyw{w}wx'xOxgxxxxxy'yGyyyyyz'zGzgzzzzz{'{G{g{{{{{|'|g|LJ|ɧ|||}'}G}ׇ}٧}}~'~G~g~~~~~'Gg(Hh Ȁ (Hhȁ!#H%h')+Ȃ-/1(35h79;?A(CHEhGIKȄMOQ(SHUhWY[ȅ]_a(cHehgikȆmoq(sHuhwy{ȇ}HhȈ舏(Ohȉ艟(HhȊ芯(Hhȋ苿/HɨȌ(o٨ȍ(Hh爎騎Ȏ(Hhȏ)Ii ɐ  )Iiɑ !)#I%i'+ɒ-/ 1)3I5i79;ɓ=? A)CIEiGIKɔMO Q)OUY[ɕ]_ a)cIeigikɖmo q)sIuiwy{ɗ )Iiɘ)Iiə陟 )Iiɚ隯 )Iiɛ雿 )IiljɩϜ )Ii׉٩ɝ )Ii牞驞ɞ )Iiɟ *Jj ʠ  *Jjʡ !*#J%j')+ʢ-/ 1O5j79;ʣ=A*CJGIKʤMO Q*SJUjWY[ʥ]_ a*cJejgikʦmo q*sJujwy{ʧ} *Jjʨꨏ *Jjʩ꩟ *Ojzʪꪯ *Jjʫ꫿ *Jjʬ *Jj׊٪ʭ *Jj犮骮ʮ *JjʯV150 ( Q!)RELEASE TXT !)README TXT Y% m SETUP EXE R'(yNETRTS INF P(^OEMSETNTINF `N'hWINME  Q!)NETWARE  Q!) PKTDRV  )Q!)NDIS2  +Q!)MSLANMANDOS :Q!)<MSLANMANOS2 BQ!)WFW311  HQ!)WIN95  KQ!)>WIN98  NQ!)WINNT  SQ!)WIN2000  YQ!)SCO  `Q!)LINUX  oQ!) FREEBSD  sQ!)> UNIXWARE7  yQ!) d*M * K* * 32-BIT PCI FAST ETHERNET ADAPTER * * K* * SOFTWARE DRIVER RELEASE DISKETTE * * K* * V1.50 09-01-2000 * * K* *M -D Files and Subdirectories Description -D RELEASE.TXT This file. Presents a summary of the contents of your Driver Diskette. README.TXT It includes instructions & Troubleshooting Guide for adapter installation. SETUP.EXE Setup and diagnostics program. NETRTS.INF Windows 95 driver installation information file. OEMSETNT.INF Windows NT 3.51 and NT 4.0 driver installation information file. \WINME Subdirectory for Windows ME \NETWARE Subdirectory for Novell NetWare ODI Drivers \312NLM  Subdirectory for Novell Server 3.12 MSM, NBI modules \410NLM Subdirectory for Novell Server 4.10 MSM, NBI modules \DOSODI Subdirectory for Novell NetWare DOS/ODI driver \OS2ODI Subdirectory for Novell NetWare OS2/ODI driver \PKTDRV Subdirectory for Packet Driver \NDIS2 Subdirectory containing programs and installation instructions for using the NDIS/2 driver under the following programs: * Microsoft Windows for Workgroups * SUN PC-NFS * IBM LAN Server * Microsoft LAN Manager * Microsoft Network Client 3.0 * ARTISOFT LANtastic * Banyan VINES * DEC PATHWORKS \MSLANMAN.DOS Subdirectory for DOS NDIS drivers for Microsoft LAN Manager; the text file for instructions to install the driver is in the directory \NDIS2. (LANMAN.TXT) \MSLANMAN.OS2 Subdirectory for OS2 NDIS drivers for Microsoft LAN Manager; the text file for instructions to install the driver is in the directory \NDIS2. (LANMAN.TXT) \WFW311 Subdirectory for NDIS/3 driver for Windows for Workgroups 3.11. \WIN95 Subdirectory for NDIS/3 driver for Microsoft Windows 95 and Windows 95 OSR2 \WIN98 Subdirectory for NDIS/5 driver for Microsoft Windows 98 on x86 platform. \WINNT Subdirectory for NDIS/4 driver for Windows NT 4.0 on x86 platform. \NT351 Subdirectory for NDIS/3 driver for Windows NT 3.51 on x86 platform. \WIN2000 Subdirectory for Windows 2000 \SCO \3.X Subdirectory for SCO Unix 3.2.4 driver. \5.X Subdirectory for SCO Unix 5.0 driver. \LINUX Subdirectory for LINUX driver. \FREEBSD Subdirectory for FREEBSD driver. \UNIXWARE.7 Subdirectory for SCO UNIXWARE 7 driver. -D *** All trademarks or brand names mentioned are trademarks or registered trademarks of their respective companies. *M * K* * 32-BIT PCI FAST ETHERNET ADAPTER * * TROUBLESHOOTING DOCUMENT * * K* *M How to Config Your PCI adapter = 1. Go to the PCI configuration item in BIOS setup. 2. Follow the following steps to configure the PCI slot: a) You should know which slot your adapter is plugged into. Look for the physical location of the slot on your PCI motherboard. b) Set "this device" to "Enable". c) Set "this item" to "Master". The PCI adapter MUST be installed in an expansion slot that supports "Bus Master" mode. Refer to your system documentation to determine which slots support Bus Mastering. d) Some BIOS Setups allow you to select which interrupt line you can use. In our case, select "INT A" for "this item". e) Select an IRQ of your choice, and make sure it does not conflict with existing IRQs in use. d) Select the "Trigger method" by which the IRQ is assigned or routed to the PCI slot. Choose the "level-trigger" option. Multiple PCI adapters can share the same PCI interrupt and all must use INTA with level-trigger mode. 3. Run the diagnostic program found in the driver diskette. If a problem arises during the installation, contact your dealer for support. Conflict with Microsoft EMM386 = The PCI adapters can only function with the EMM386.EXE memory manager program version 4.49 or later. You can verify its version number by entering EMM386 at the DOS Prompt. Do not specify the "highscan" option with the EMM386.exe statement in your config.sys file or your system will hang. If you run MEMMAKER and select Custom Setup, do not specify "Aggressively scan upper memory", or it will automatically insert the HIGHSCAN flag into the EMM386 command line. This parameter cannot be manually removed once it's installed, doing so will cause the extended memory manager to malfunction.  to initialize the network function. - All trademarks or brand names mentioned are properties of their respective companies. MZyO! R!PKLITE Copr. 1990-92 PKWARE Inc. All Rights Reserved| n*o+ ;r ! Not enough memory$- -%P#3WDːS9ڌ͋€ƋNN++؎Ŏu38ABHMSghirJts33JtJtӀs(JtӅtJtӀr JtӀ w}. 3ۃt*Jtr#JtJtJuӀs./V+^uJuӀrJuӀrJuӁ뻀JuӀrJuӀ wE.tZȀԙuPqtvQ6nezO=2C{|)-L&:& 8, {WD`VW#\Og$V98{2Wc0% Mu>vh@ Gt"Tɓ>݁@ʓ(<6Mκ- \Xo9ru%I-74L[|6$|rO, ]|U#8P 6V[&x&Rl.Pl-_U}UΕFs]H uS4 ȭ9)Q71~e}X#QOgU}sJU-^z9=u >55DٹJ!Ls?ľ3 >EL vȉD#VFϊ. $=-LŞ[<RYN^W4 j8RjUm22G3`3"3T3333􆵤@g[P q\VBЩд'Ԝ6s s8S6&RQ:t~|Ÿ@]M1]@Tp tXO CeCDC1ª%|=Ku(BvUp:~]]C]]x']d]]S]oC=jC'pCu"p<%{u =?1H:}&3X ϓ( > t.!2JKLȌNP|h@zpzkp9ԲC .@.@H )uVa[jN9G^,+ I.jvqj=Yv|p8 É==rqөrAXOX= aD=R&jҡ9n `>b lO"ܨq@\&? : rf!ty%&F't3FAi#a~Q$ KM(8,oqTc.` 8,% ѿ]SqwMWi>DJ&$yЙ+H#=CtۭInA>N9h " 2H ȚR$fn#26/9 )@SH8.n. +gn"m M5iSH B\7fLlK]D}KIT=*LlnTU+`" :uc)cAzu:,uN ,B[ D2S/ļޠk !ޘcDH `$h]6,/9)3@S8hNRҕ3hVhޛ$5DHJ%B$Q%3g߃bNBi vie$ B 2h(S QZ8Z.+G*(zt@z: 0`H M $f6/9)>C@;8ftrZft@vf Mu5i SPҸC N#3*eߴIlgj?$rUC o1~$ֺ, vYJL->_>`*ザH֌@$(eg/9)@8du0)et$d>ҟ5iS PC^& G R*nKGt GZR>X(7; ^`B`>] 5sS_cCds/g]8 @Y$?Y>:@<:=,*de,rIMQ?"V"#(9XH bkRX$&``ς/9)}f@8_Vв'`_)5g)S=T8 %R D-E3Pʾ;:)s:DUFbU%e %OP6-n? MZC`"Ds>UdU[Ҥtf]%hMdLb~$Z x>#˪.b)#ґ!lB6LʡmY nH |tyRnZXNH\$ZbX6d/9)V@V8ZtXb]=ZhfZ455S>N1r7nWz#nT=>6b|>0.3Wi2 z%QM#`{Y$h0!:[BFQe,JtZ,-Li. <P(ZHZs%2IbMI鈈Ga*F~ XH "kRH$W]6,/9)g@N!8WuRWtDVWhZ .D[_nɬM Uu~Z#W5iY0LRH<#U 2Vp'dX5F^Hb$>im<\0^"j6R<"X3IނZjߤUbdNtlTʎ%TH \T$jUuT166/9)T@NT82U:T]@kUW:UFtI5SaL*dXFAP|Fjp/S=?ƉFVB >55eeIٹݨǽhľc*4)U.Eƚ"8fo4y!.d1xAν)= &v1 .VLPWƻ KB|ᴷI#"X+]G B)=$FU%Q S:_"TEx[*.t=V.v¤,JV&!޺I>RL-u:.x>y>Hd>M $,R>/9)L>@)>8QN>6-RQ)>5mS~H>tN.3Z"Mw~hl! S ʷRN.\ Nw2Cv.d:H<S7~7l΃ MκEdP&cB&: &&HK &&$P&< /9)&@&8O&tPO4@&=WiD8bt a~ 0Kda7jI$M)gGV# eN @ȃ/IAzKh`DP5GʸPJŶ.RסGYf4W P۬o}=ȊPy(uPMi.4J[P7:p KH &$n MxJxDYha9[grljIjIj~Jjҕ5 MLNb6I^K$AiaF玀VFFˈ' *+Si""  C tu3 ݂ d ~ G$~%; 9zN 0zON?/t% %t-u ,AV >S^ @Um^Jy4"C} p=Tt=tu j]9}*'Beu\grqbK+#IO #FlGWJ.7Z ]q{rF Foms~ r9e̸ljYt?T- zͲ5hV葻hZ/~cutfS) \t'`Wy(WH g9"M%')'' hQhNB%|JX=.ôN;Ru(pDRp&("(z(ja=ұ:i=='S'%S %%1AJv:J.лj*Mt'`NT=:#d @'~*%%ހ.Yt 0nSF'VpMtrO%\*f) lB\sQäՖd*F^<_UT<HUNLoUUTUU>m]_(4Bu1^1o1$D4(u=, T։Vظk z  츋 RC BT2]y9 P#u sZ v Rt}{*չ?b'JEUmU}8F0<"/Lo6 )ڎ} z/+ݖɲ 9C|c&9s<afx;fO*)Z<ƙ?)ԦTN;g N PTH9s\ \.}0{ w yޢySaF S)#B&tvD)v!,Jb7*$_N^&Ġ}T U~M~b"# nNܢR,uld Esઓ]Q$ b$t26% @Uvy@i''TwS* f> S)aS*a[af.,.Un3 qnZuB 'XzeqzUiMMxt'~?te6f.V"*FMA6vP".x Vu36%M lRwW 0*)(]X)y7F,%KB]OUD--20313UN34S4@4!444O4v44S4^4.4c4H^4m)R440T22%2|2S2H$һS-*-Xw-*--J-+P>(>w͘G%%]wU]b](uD3P3R3i3aJXD4@P4d45uup'J'[\$̅u5 $WBtjBBԞ6EEZEj7,CGF24uFAtHҦ't؟u: X]UXXsœ^díRl{0u9T0iS+Z~kPZk6k$huhrhh_ЁRh[h_hLh5tŘeqtQ(H((o!OO:OPK/:wS%SN)S,S4Zk4]u[p[*~\E \0\~YxIY Xu33ױX)X Xy>XARX/'UdUouv'Ҧ'o9vu7%߆K\Z\cqi\^.PVzϊ=3>\dG%xc(Ro0(t(گ z'[pzpSN*E[;!VnNV$ yoNWSrjE^nro#]oU"M]ɍLmXH''/3p{3op_opNZp2mfpRa( ]TV\Z`#'8l:`,(lR5(*Fs$bl+z)'TPZl8cu%Ʀ&R؅Rt/lUhykM36q5&JhdLjFu׾{wn vB~ Bp# ^S !Pt+k^`+I6V~iw;F~-^HN:r it3. 3s@73:;hoFDSh+fIa u ||IFg:W@"E庑:'Zwoo " YYT,xWE9av-D" >09cQFC ݐSS*" nz=!K=MB=StpBfobztH mL};87؂eCte"d!!:7Ddd #WH=sd[@J9^`iEtWg8cD͋Nvَ&4ŋ4t|H t$BbBI4BUGB4ߞƳU@ZGNcE Q dL 4:Ia""ިC Q]y~d)%b#`Rt4`"}Fm 0D2<:04i=I躄SdSvp# )'%0Y x=D8 %kd%%Et6^>A Lܡ !*15#J3:JkHos_DactJJF]J`ۇIJcJoEXok&:6\aԝtQW\l:2]h[2tih[/tee"[I(ZǦԋOZMԗSXTSèiRz 84YjY+hY2hN:hY/heXhŤ(XK~#)#--e-F. _.'>'Xu.ҟ4WN. Y4W.4W?.*N4WW.92%WCv;;oFQDuQV9E:=HbHVNB|B:JV EEV/ $FFU; 'N:'Uu BVUEUN:ZiFTy'' \/ .\ G8*;2"orFTH(7(J5DZ>2B2bj2ZMI(S8!55`m;i& DXU)DDSNl(f(-(/I°AZ{06Q]tT]']zC9:FFRFF=NFޛFFF5%IIRR !ӑ;*XQEg;OAtOTO#PP[Q#PФvSQe٠Nj;Z&NAU:%[DSM.H6\ogq(RS(m[ԪITp_7ּsMK=%H= w.hggg@h h2hHhZhlh~hh.334IhshLaR&T8V x3=r26"p N^  G|F\P5x2=T͍7sX0wj:D;4bjr?GSDMSMd洊 I\>#7Ni2鱦z铪FVA !*hU nw~yX .d.AOB(v 8,HTo+# %hr),=0 jnl:>l/  k$@S,6/9)@8]8~8K.nJjNt0єt=HSDP球~iek5D̘TQ$^N&dMn n$ҹ- #yPWȅRQsj'"_F}N`@QO>FF?ىNxVS ҋNh6 t6"\˸@J 6266$\'6B 6J6Fkc kbO.\KN\L)pT~rѸ3Vb\ J-5:6^ 66CxK/ 4Mf eI6G:k 6y^66I6mS 6C6`s(V܊G4zPBIr' aH8h0&)F5 @F AT y%:^I62!#G64 B~.F0!ϭD:W>o > !P>M&#RR;T;V^ZX)zZzO\VыX,NJ. ({@+JJ.! ! F=Yu$T`jþbu_[H ־$6Y/9)Ϭ@8t+& M59Rک& 1(I*$VˎGTU^8J)7))A"QOM/iq9n")$)# 6x*v* EuI113ː `"V9]$'etY+WVFu(204dJ֨ǨWi P10툅*ZTݠڔ"68ǸU*!M &8&`PRw9sLGK41IKD/3 3ҜF &^^&N,t+=@E`6̱Vt~,4\~s]Gn >K@# ;{՘LJp"h#JG:<)<0(o=;wsGV&/Wͳ';oP7Y!a$$S$$wAHw%{I%:/%$IASKA9O &+b+@+ hINuX6}3G컋FXx@xe;Zs2Sk$&_ߣPVa驁Vt" \ ͻP+D}1 %@ @xEbW({l-lt*T  TXObu PxI~H}Gt tuO 1rJ1:ٿj PٹHiPs*dW1Β3sufa}?EBľ~.D.tѝ :.h!B\HuaBr=בAuI$S鑰NG+64dc.wR\wz&zBzf@znzvz~z BSKT}T$9dҖHXH ֤$Hu1.6/9)@R;8Ej JNWc:zTb 5SҢAuOjr<U)\FRq%RU~8+Ox>ۇ\ r6'*JB8SL9ԧ&At-EBRhVn)DF FD=;֎ fEL T|XaGi/1u!J'*!FG;~ ilVcsf m&Z~@+Uh85AVOF w"bh3bj3 $ pRgPG vҁ ~}>']c?\,:2)؉^NEMD_Vف:zQ5|bENEV{ G(*q{K0^0Z<$S l[lSccӗZ L 7 40J?&?uFuBtG ~$ݐ']{~{ozٮ`~?[l`Dt9B|z`BzB8Ic!Y7%?2.b#v#٬#vƃc\<;u];244O"|55w 5 BvYjjIEu 0%=u>87IGuА,t $wiK*I0ԹJJŹda@2P;k *~;UsRPsd+a&U~M"4Y\J7MQ".b҄07 ̧@ jJ 1#OnP W]X W?ӨsatP9lq$.A $}F2p~|U>pG1(I III@>'P>r 9R }S8";WKnO(&:uL89@ҫ@%"=N6N&(=nZyJ;~ڬ@=K0DP=Mbt mFJ:0MppGYaN瀁.U.`.u.[o 3(!EZ_QVX2"ۨuRt65>ܮ$<t"<t(+3>'  ' f {0 YD%DI6=6A2GuTOT T;եT1T'TQ/=3V  PPfZ fƒff=.7[+U( ((M8#-+ b/+Q={2YMSH X7 > 9z < uy3uq;= ug  ]&  S 7 I 8au@y 4 u7 63</L}L% `u G@46 YjD 衏U+nKD@tq or]]˰h??[ ? bfRfP/rf3Ks EffEE fXfZP@&{XsROdKJZI`fŒ f>0f¸ h^'h''T''YJ''$'p'''r'2'W'('x'''' '',Ҽ'''q'@'''0'Qff3Y+f^ Qf Y!0U6p .wÃ;6rv0V+"nc_f^+!ξ=CCd9xUtƃfrxv@']-N u2 e\MhȽI>ΚWp{+ x \>gLv 1@'1GeR $MKMFM7 7ž77q#77@tbՏuT33 0u3t/p\3!< u %%Ί%6 =tҠ?{ d &{v`fhs>s <QPaXY8yt1Q#BxfSyU[vX>ض p8۷2) v3T@1t tR{0C% @=t=O&05k18 !ݓ $I ͤ  o h QSFˀSP Xr3ZN(%X[Y k*L w>wzwU.p.n a3&Q٠'?8Yr7626P8{X$!]A.?vLK o"ty+;Vf](Bdzz`A͋=H sT*ʕJΥRTM * Q:5G5rؕ3RLf)d#H+'Ӏ$I. a.p$+ ` |, A\#| tJIG.z@t'72)p]8u9^ ؠڈGx<TE.;+ y3/ы:/=le4:."} #j7T7r'.;'5u 5=j55MtvVݪR۠k԰7۠ݔN5{tQSPܧS0Mt[SO%Iхn5uJwVB3 [X@XXxP$P :]H EXƓ7PSMN`DgoFg?@4D_HHN'`%: sSP)5Н9ȿ7 %)*,l +IJ&R!h+Gpe )XxjY8ѽZ@R5PX;r;rZPd` 07a$X0"10 XPSQRLUVW6ΫIP校@"L H t,P Xtc>4a(QU (W bQ* 1tc0u$p5 5 x  x | C78 ';tb%$h $<`<8c@6nFu53T$D>wiw4Y%+;x>x)x^UJ > N {  ^]^ [ CXI_^]ZY[< w0Cz7ι2QB< .9^Cm> o1846u4?M/i? ?&w?Lmr 11jYN/y4/y//G\/;^ЉmDBOi2@%WV.DWPP'Xù 38.'- 0&I.>߀& ^_:uy/yPQ+YX EĎGĸ %!>δ +/M>?f S 309Q pYG}`$`FX$pI69I? Im`{-=yIKTA7;T ߔ{ P A t  ( Q:  C @x $3Kd mP6PGS-ZV9,S>M liPA`X t tW  y>7ş/ 5iVzqqmr}6t_YxeitbN8w ;_;.zu'\BB5 8 [EBL%5%AFkA@9Y"v`³6?ȉYI  :9u}ȠS}; ;}Uw;_;;BY;BB BD;{I/ INI9$F;Y;Ř;/2D]) J%_%% Ppym -.<t?pPs t#=hkD(ӭpnyM,b.ʧp8N.IWQϥJ)f7 |^̍2 3& 45h679t:a^r 0Ρh E ! >ĩ2[AGz 5!EČ GȎNJ@̊<]] h&R ZZ)"\Z5 &TTΊeY%yZ[(N  3J ZT ƹ 6۳ h~ ̧H*KuUtS>eJ,0)$9ZZtA9Xx4pQY39=&0u)EaGG-كue09t mo\q;u s' g]](dr##\ E,|ud qv^t5$ O92BECuaJCYYt7ܐ+rp]떵u<$t &F TQRVZc`8 ؋\r D& n3!339*8P'6-X@ItZtPRuPu9 s["m3k6;&:u FGAv +xGv'k<4uXl ,0k G 0Ã0v]m'@u{fPfS4;vf[fX\4VގPfv-TR.f(bY;`xfs ׃qa˃Qx 7ك,f ɩ Q 0=*a P X=u5=9u,!T  f~2HfY  ? ~ X F)#j!ZM%IF^ .>14U5^C] v(܃ <69VxF^KtO O7\WUbZ=cXܳ/\'ٴ;Rt]Q+L'ˉ)55Np@ȉ ][xCMqF-m5W,1?c>@ۊ ۿT@q|* ? ' 'o> _;1E1814yP6tI|әPC]ހ(%r$89z uψQ&Ca.n 0X<s3P˿6+`rUׁ~fs 'P`o L76\ƱH X\Z\66gP &T\a+۴JD\l޹+`j0ѐl8 fuXPH; .`9\\h%)&6,‹3s b»xn))>3&=t4 t\t `u!@]\,Ar v ªxD10r t*@Ky+Ôv u=3vVW .\Q ux޿m>F=d@RO[FIp tX Pu ~3Fcu W%@7p8\S;s EX0t즀WVBظ~G @@xD uV=ށ\]F aD *a|etb\PNQ[`F8V~-\t!F!=d!NàPvvs<(PsD^z_]!`V u3{3PCM 3O %j y4^( P>~ AF0gf,7 n W" ˫ ̪@Q(b? ?i<BEE>DF Fu>? I)\]@t^&G]@=^3O uIu Nt9+cDn~-tu8;uG .t d 8L V7nTTD+ ÐMnPRˈlƋ~!~(u#Ltb/@\t\0 V3B`2Ut!^ˏv\\\K,\)"3BuGG>\1̋ѿ0< t< tokG{N\X<"t$<\tBؼ3A ӋHѨu91+^1'1:11`\GB+ģ\\6?6W;6C|_u6!}f7׽!Ӟb^'0;\0s" z/.4*!׻44R44>AG.\fp,ÌFa3\ t&> OFߋǀ@$F `RP\VϋB_I36;t\uQVW  0_^Yt ^?G0 @O木ؾݭ;t@t A"$D.@i -!I(_p%´@|"6r'js 3PXLp.s&.D \\">\r <"s r<v\ט\ÐȊ"Z~Fp f tcFv u!t`rPSR&Z[X+tF, tT8`x G 0uuЁH@ lfuN@y@fgV#L 0F }5Z`Fp=.t߈G\ +C.E_E ^aGJ[: u^!$!^$ ^L'XUD oHNCW!!<rS2`[[ t<Ȏ* ft,3: r m#7f  Gp{őB"Tt'ϒ{ ^FFv l& } ^, "02 k;Uk34D (41C1 l"  ++ }WQ Ȳ Pw|NxXt k 0@JY_Pvt5v&I ' t‹ Ø}Sa&? &GQRS[ZYuNW$ _ta3 CW  u`n30<9vFmNY+G)Lg\F2DIV&caI_6"v;5@}v^Ω V^N;\r >ƋdkUD##[ή B3ɋы<t|i@F V3 ft8? q_a'p=vJ ܺ=(s52< t ;t&y suKp<^_RmV>+Q\Yr;\^8:oQ] %aaHy -ۜ kL(N' uOD-D;rX A(=YZ+r ;X`r RQT` . S!QP_Q;[ Y pBt[[|Zˣ'^ /vYV]] Rg  Gr!j.UE\ 1>`tOF tH~ B*K ` FV y(p36I$$u sV! =F%J$2aoF;L ~H c au@u` ~$ Ǵ=su N鿀-%=09'!((^ ?ha5dse-ctU`F3iei0 Icab[ wrYgc n=o;o-oyourYbod.v}A}P8v3*.cif7Nvoph vlyZԈmake}s>Re2b us:1udDa3w&m iumryyty[Ag%xbe29 9( Now,#9,sys:myHllufaulIo M 2o5li.9PZCZkna&Cf8d pL I;O-Fc -aN&mos veRosolvy;w~ ~<^ m.U "hRa2  MAbWnL?amestCsailw taknow 1s?.NƷ c.HF iIfi#mF`#H3p[n uqs./C m&EEPROM(9346A [06) ?Gra bad-!n!yJIR Otca@b6crly,P8xgooyu/6N-f-n{aF@ p;3R|͢.W^`^SdcxH=8\Ftk?pl8aW 5w4rpT@agae.iIf4C Xs3QxMUcycchGnQOf}al;CuQ^Gupp4t.szQT19,tB)!4xc>Z>lDevvStœ 1 .t;mש238/rgXmG en&wdnmod-be3ُchsxxT,P t. peU@butt}A TX(gsM^#/}y.2/۱}%bh2(gic >fNrarL۶S STa$eJ@!;*.Y4.d /is|L-|: -&-N5-V@YL e/G*0N:V AYbbI? a&YesaNo9̥@5k8HeHRSPACPE BARrzXb jd eDN>2UKIR;Q#gnbyKUeF*Y CV'\EMM386.EXEdUi>v4)93whikykF}BIOS.krU0F'gh2'ex-uLoz:.=D((ODI,NS)813B9.e&Dp.<HSunload* ,%i.6=%WҊ鱮bEv!4hu.bh2n7NWspabil]$(it 7 {{3: :d x kqIF)cer^,Dld hC =lf {^:oU䭚9fcl-kQ,Y&oosj!$uK"uMu$uH RbetJQ.[pi37oZ e/de@wircum-\taƫMs.ELrfi#a/uċ]L$VIEW*U00RRENTONFIG ,1ATI m''nC2mpYy)hows=figura)dop}r- ogeb8P\H vHifޝ8w1x,n1tYn7! k!1 f(tt NȺ.<3xit.j61gS9bsoG)mztt rov^Z[?=JʤT2niu>t$Acify:pa'ffe<;)@pY4de!E@iNQ7ID,zM#u!#X5'sFC,B)B#Kz sFC[!˥I/OCPL$rENth5IqRUN DIAGbNOSTIC @x I܊ OPzR`i?5,g& t CcpGP3BOARDYR2f !c.MTjTNEITWORKVonPSe!Hk omm~VK)"a6taiB/ohk1oM(,EXIT g 2v%4\DŐhM$opPb5sE R<ɒ;>,F:H(10/0)3Jq-(H5V/)fn]]eelNN3Nri!\c CSMA/CDZQBl.wxvxfa 5Bo ;=d &ure`8-w.٨]9T q`skl]^^ MtdUL% X؜{Cr%*.lyTTvq I6|Met! :׶ftHmO7D('7Y-ENAB2LEK/Ir8ƴ~1g#Iic$V^ZRTL.3E802.3XXϱZimdŽco2%IAaTPATUSE$.zCeask.8%V--aJ@?d,ݬ4UD1-D3Dtm<.Ŗ&)8ge4PME#b}?Dxv&y0no$,relºW ċZWWdo]4p9oc> MW‚fZ0E-nCtɱyKLyeCnfrecq.:&42v0L l/^LDA pf%.ouWͫb7. ALXmbr4Ni!4qUf g[,S57hh ,o/l,.n&Y. ~WOLnw %dr2\L ,( Y| # *QhsXMvu&Z,J -B-%1XDG(ltoir.k~7E[v\Raε]-$\, .;^Ky/]aI4J=dw'G2i_"2%&5ye9!d׃ 9ON9ra2 DIni+ri"2Kqoe2+ R po .dL-T;jm!90s"%suc3 -ys,}ky ifiݖv%a;reU r8s %Ԇfo) TBTrK,6tĹ! #LnWvn;(..ir<./;6&ް).nO*f due"|n-;kQs.X_;k jIf8J2wos'$!qu`.ve6. K?o51]ܰyt(nAjUjH ,|`uא Mmef"d.=aAfꂬɞ9@,kqAzϬƼոVPiSluIdufEts&Kd@d.Ss MusRZ1Uo rs2SSC{5&_ɡ3L2FpQn#*quS _<4ns&gAl]XLKf jVD2^SwJ})C{ 9!]v94$#gʻ/PcEHzpi_!է=vUwo(SrioCT%ptyMtČc CǢ)DPww7i.̵$sl% V\on#lc${=&:e-;odN].">"_"CRCH.'A$vMgnY*)")Xn3rvVܵ ;L>ri].sBq WDwrgt!:Ac յ&Li>f*O!FMV~f1VXfSUe?ɴ,B!does5O6tؕ0.JWQm})%4) 0iiPCSPACE BARux.#nwR+|vsۓ^L5%7bɪҸ և{7.TPO*6R*S[;Kv= CνTsY&Y'Z,ELr23 Ѳ+\0Lt31B: q9!okP3:ize:lal)nmjo)vgt' TQ0l\v{`8. m>\w,Z=R_Pw>Rv..Aame,y3 oZ|kNhoose]>ev^.Aڟ,-c"%2NѸas6.j\zS:!-Hks.In_2_)j "n3e9ھc|JWs[dm : ɓy086$*}=ډ]Gؔud>Ԭ0VSb흍.P+8װ@CaJVleƒS CNY{w+.nE#7: I. ٷЁ"mI%& kd!:!%g Ad5Dú/Sl!Numb(b=:+Z8PNMi TypeaFmPCISߊx.-_ H, goDЕ. .; FHxtrol$tሡPlugv&x P^KR:ݍU-Dox,yyfupdcr\er ?)08es"No"(Cݓȷpecf4g$V B C]z9V fFFcO !t){47SNE7Z*F\"=zծsWaKoRamJ<?GB_ ;IC^I;TWOn][":C]]IdLL75dg:QSun-T~brary ;qopySh(c) 1a992, Micsofrp12/93( 45678#1332333 Hel1x$7!%HOTKEYM0;S0Q="1EFKEsKSS}Accep ^?WFC0cEn쏅d֥ & n.5 <#<( NotTCv".tT^)&(\bITEMaC=q}k źeY{Y.vdյk:k1kzA5J_mu,.`Wg>g2gRU$DIAGNOS^CSre Zyޓоz ^].kr3r3;zAVEbTO LEۣA's!(鼊nu0Vu4u)LOADuFHwa\avMlյu+u5uEXreIoigcamr<RCmN+tˑKeGFo*fL$S2&$SBOOTZP@Xub}zkX0 - &N)Xgw*-Lq=JAa$gemapqil{qC%U!nk-YPMuEc bQ' \g,LA,p!v:l-ga j7ʹ԰ v.}*.$.8,0 j\s.(k/-/$K®.+/3\-]~C-^4ɖ.s`ri 1beP̹atY6Uh@CIMhisa#tFr)Magic vx.FcSHf" _lp^..5)]5%ڢko?[Hr Ma.sT#.29%09jp(9wfy!.07'5B.QZBU ?C}z 8\z TɊC,v.M< 2z|e|+ KJʓ Gd؎ $#xv!rn[wJnPfYy'X^vio;+\1獄DEd֎P&5ߚu:lt) ^-L=tun{hys5gL$ʎzBO$!ARDà"[Q ==Ԍ= c \d7o>䖮٭d=o`SC l?E*]3!(;P BI[3$.OA֍.AMS "vx a"BtO^cU)nspalok]*sw`)L%eDwlrEWpN| fN44!c=ܙm{7 c.luDvi7d|bU@ fwYQeis[bYz1 .Ed-<- -m>**ĿC{=ʥ>ENc]f6w@]PDOSWawhCzyͶwWM Ԡ"5]1adap@!K-TY+A+nĭV/q5.01Ew[Qv'Y'm)`'nNNoR  DlϤ@W:\hRh Kc#ElmM WS 8s.?sEّUDrmXr g'{K+w~V & xpw*K(*o-By] 16r32J_64S128"(*t2}hkD/ 5z10,2 PHalfS S 'ZpY9nUTPDMTII NBAU}B0~E%g9IF}AsiPU{tyS\&-v 3Jϥ)zWu O!+U`r "CȚ=egڥC?M z66d+E&(>߿Bn9(#0Es M0Ae  H ΖPLow IKG7P",P2G NegwY!Hgd"C *}.( }b*LSTx@], R ?A_?s:){!69·\NwayŌYf87!7ns9cҪ"seCe[ E\U H't܈ng\t<-"{{ND}}5- STEpުM %01X yS- BxGLQV[`{ejoty~\Kc>mVRB8139-_BFoOO7Z}  ,  tI qhj O@??  >D5W? Uv@l//r )9O7>px;1 M\<0:ؓmF NFGPwfp nxd4u(:vNF *NxuO ) Jd  jt:  ku z 2_L= l  8; | ]E r EE(} #`!uL4 $ T V&< ',$>T v ^)^  *a CS & 6,t@uHt 4 -z* B 0 P R2@ ^ 4  l5zz 7`> jQ>>z<;z2^  :>?|< XB W *F Q #OO#p#I :dnZ pѡ[fԈ^')zl r.Gى sE J{NLRHRdo?2'E< dx| N 4   2 {O%9B=LFCTz<#  tÞ HPl;+ .2ɵ7 Y,4;j{^3ʹ>1سXU>{|„ֈ^x Zx# /rIfF34 pp$68&p%h#uAp__dl^'>-гh*|M~ ~눦(JUֈox~&J/822ZTjdL#duTA\T\2N=p}pL 6c zp070۩x>2|)? :2r|p{e^0&0t(e|@"6K">|~ -; d`d~{d~`~\d(#63#d@Ȟ`d^`d>`>d`ԩdd'7d$^$d`Zt|!z|x2`~6@oGr 'Y^2's 1WͬI(0*֌p&,%Qʃ#-+dSdOOdLdlw:d+ )yE j4.jh|T> f% {ASSpFAILRegi[}ő03d "LoܭopbSx"Cd_1_u com%!z[(aLOG)rea`Ssucc,sfGTy!6k) The avKa3pa e: /?p : Shth D#.T$eadapanqoutpfoNJT.yoѯ -- t- 0p:No6.sys!aoex`:ec.bat!u @wtcPp MAw H 063=233345673389AB3Cz0EFʳm1pff1ff1f1F$%4X4 mKLMbpsz ^%B Ha7Boot ; Kilo-BytesV"t326i-2G>25=~-y|' (zi)},; o~hrܷAs- pctUT'C00FU( Half[ v:MIIvpVUI aˍ6 41 (DY`NO!!m!t0P&:H7;w¸rols<0i?XDISA$TBLE,N/ A8ctiv'&High*PÏPulsrNeg [9,, inx0corr/ vide<6mod!qFou GCannSOpeW`dCloĐa n-akww'F o?ra# r i zIOBؤASE E(c4B#aaIRQ}f#!om&ZfZ}(Wtc(.F4I %D:.,:HI4HVw_C_FILE_IN\bFO=e#\Z\\    $+8 #=*^RT/]f noW LE50P80PXy0A~WP׷t-`x ppx"Iq)(n)`ú9V8&(F  H˒J< ? ߐ :hb ά - H4y NX8Unknown$ Pass.u̱nt FY B6$7Vd$)H/$ACPI2ingF.3'~nN $c x, lx.+H$?N9 t@4Vxzv#BUU +! W #Eg݃L0 )"C9C;= %Search fnRe@sponder.D$&In atoۋP&m8? Tx/ Wmt OK.$INITIATOR$RESaPONDE sEADiRE$MMX0ICROSOFT2N E38*Y6$$%$D`$/$\$|k$*1"r dCPuexuN( ]$ RTL9 MagiGcXcket@|$*+>8aR6 {x1 ov.(a3ig9di\ by 3Q !9!fKeuspHe\a.ronm<. run-ti6E2Exa-poqfp rt?/\xdA/1tJC +ssigkQ^ ))RB OP4PˌÌ\HCGH H+s*+ڋT ¬NF$BJNRV8<DH26>B~,08<x|&*26rv $,048lptx&*.26:>Bfjnrvz~  $ ` d     Z ^     T X \        " N R V Z ^ b    H L P T ` qBFJNRV<@|6:vzdfhjlnprtvxz|~„ĄƄȄʄ̄΄ |v2 b!!!!!!!n*)ZWINME TXT Pp$)]b;*M ;* NETRTS.INF ;*M [Version] LayoutFile=layout.inf Signature="$CHICAGO$" Class=Net ClassGUID={4d36e972-e325-11ce-bfc1-08002be10318} Provider=%V_MS% [Manufacturer] %V_Generic%=Generic [Generic] %rtl8139.DeviceDesc%=rtl8139.ndi,PCI\VEN_10EC&DEV_8139 [rtl8139.ndi] AddReg=rtl8139.ndi.reg,notoncbs.ndi.reg,rtl8139.pci.reg,pci139.ndi.reg,pci139.pcires.reg CopyFiles=net139.inf.CopyFiles,net139.ndis3.CopyFiles ;;*L ;; *RTL8139 ;;*L [rtl8139.ndi.reg] HKR,NDI\Params\DuplexMode,flag,1,30,00,00,00 HKR,Ndi\params\DuplexMode,ParamDesc,0,"Link Speed/Duplex Mode" HKR,Ndi\params\DuplexMode,type,0,enum HKR,Ndi\params\DuplexMode,default,0,1 ;HKR,Ndi\params\DuplexMode\enum,0,0,"Default" HKR,Ndi\params\DuplexMode\enum,1,0,"Auto Mode " HKR,Ndi\params\DuplexMode\enum,2,0,"10Half Mode" HKR,Ndi\params\DuplexMode\enum,3,0,"10Full Mode" HKR,Ndi\params\DuplexMode\enum,4,0,"100Half Mode" HKR,Ndi\params\DuplexMode\enum,5,0,"100Full Mode" HKR,Ndi\Params\EarlyTxThreshold,ParamDesc,0,"Early Tx Threshold" HKR,Ndi\Params\EarlyTxThreshold,Type,0,"int" HKR,Ndi\Params\EarlyTxThreshold,Default,0,"38" HKR,Ndi\Params\EarlyTxThreshold,Flag,1,20,00,00,00 HKR,Ndi\Params\EarlyTxThreshold,Min,0,"0 HKR,Ndi\Params\EarlyTxThreshold,Max,0,"63" HKR,Ndi\Params\EarlyTxThreshold,Step,0,"1" HKR,Ndi\Params\EarlyTxThreshold,Base,0,"10" HKR,NDI\Params\NetworkAddress,flag,1,30,00,00,00 HKR,Ndi\params\NetworkAddress,ParamDesc,0,"Network Address" HKR,Ndi\params\NetworkAddress,type,0,edit HKR,Ndi\params\NetworkAddress,default,0,"0 " HKR,Ndi\params\NetworkAddress,LimitText,0,12 HKR,Ndi\params\NetworkAddress,UpperCase,0,1 HKR,Ndi\params\NetworkAddress,Optional,0,1 [rtl8139.pci.reg] HKR,Ndi,DeviceID,0,"PCI\VEN_10EC&DEV_8139" [notoncbs.ndi.reg] HKR,,ChipOnCardbus,,0 ;;*L ;; ;;*L [pci139.ndi.reg] ; key,subkey,valuname,type,value HKR,,DriverDesc,,"32-Bit PCI Fast Ethernet Adapter" HKR,,DevLoader,,*ndis HKR,,DeviceVxDs,,rtl8139.sys HKR,,EnumPropPages,,netdi.dll,EnumPropPages ; NDIS Info HKR,NDIS,MajorNdisVersion,1,03 HKR,NDIS,MinorNdisVersion,1,0a HKR,NDIS,LogDriverName,,"RTL8139" ; Interfaces HKR,Ndi\Interfaces,DefLower,,"ethernet" HKR,Ndi\Interfaces,LowerRange,,"ethernet" HKR,Ndi\Interfaces,DefUpper,,"ndis3" HKR,Ndi\Interfaces,UpperRange,,"ndis3" HKR,,MediaType,,1 ; Install sections ;;*L ;; PCI common parameters ;;*L [pci139.pcires.reg] ;;params HKR,,AdapterType,,5 HKR,,BusType,,5 ;; Resources HKR,,InterruptNumber,1,04,00,00,00 HKR,,IOBaseAddress,1,02,00,00,00 HKR,,MemoryBaseAddress,1,01,00,00,00 HKR,NDI\params\InterruptNumber,resc,1,04,00,00,00 HKR,Ndi\params\interruptNumber,ParamDesc,0,"Interrupt Level" HKR,NDI\params\InterruptNumber,flag,1,20,00,00,00 HKR,NDI\params\IOBaseAddress,resc,1,02,00,00,00 HKR,NDI\params\IOBaseAddress,ParamDesc,0,"I/O Base Address" HKR,NDI\params\IOBaseAddress,flag,1,20,00,00,00 ;;*L ;; Drivers ;;*L ;; Install NDIS3 [net139.ndis3.CopyFiles] rtl8139.sys [net139.inf.CopyFiles] netrts.inf [rtl8139.DelFiles] drvidx.bin,,,1 drvdata.bin,,,1 ;;*L ;; Destination Directories ;;*L [DestinationDirs] DefaultDestDir =11 ; LDID_SYS net139.ndis3.CopyFiles =11 net139.inf.CopyFiles =17 ; INF rtl8139.DelFiles =17 [SourceDisksNames] 52="32-Bit PCI Fast Ethernet Adapter Driver Diskette","",0 [SourceDisksFiles] rtl8139.sys =52,WIN95,rtl8139.sys,12345 netrts.inf =52,,1234 ;;*L ;; Localizable Strings ;;*L [strings] ;;Provider V_MS="Microsoft" ;;Manufacturers V_Generic="Generic" ;;PCI Devices rtl8139.DeviceDesc="32-Bit PCI Fast Ethernet Adapter" C JNOPSTUVWXYZ[\]^_abcdt  vwxyz|~ ;*L ;* OEMSETUP.INF ;*L [Identification] OptionType = NetAdapter [PlatformsSupported] PCI [Options] RTL8139 [FileConstants] UtilityInf = "UTILITY.INF" subroutineinf = "SUBROUTN.INF" SoftwareType = "driver" Exit_Code = 0 ;;;1997,06,10 NetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\RTL8139.SYS" NetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\RTL8139.SYS" IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll" Manufacturer = "Generic" ProductMajorVersion = "03" ProductMinorVersion = "74" ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion) ProductSoftwareName = "RTL8139" ProductSoftwareImagePath = "%SystemRoot%\System32\drivers\RTL8139.SYS" NetRuleSoftwareType = "RTL8139Sys ndisDriver RTL8139Driver" NetRuleSoftwareUse = $(SoftwareType) NetRuleSoftwareBindForm = """RTL8139Sys"" yes no container" NetRuleSoftwareClass = {"RTL8139Driver basic"} NetRuleSoftwareBindable = {"RTL8139Driver RTL8139Adapter non exclusive 100"} ProductHardwareName = "RTL8139" NetRuleHardwareBindForm = " yes yes container" ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion" ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters" VersionKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion" FunctionTitle = "32-Bit PCI Fast Ethernet Adapter Setup" ProductSoftwareDescription = "32-Bit PCI Fast Ethernet Adapter Driver" ProductSoftwareTitle = "32-Bit PCI Fast Ethernet Adapter Driver" ProductHardwareRTL8139Title = "32-Bit PCI Fast Ethernet Adapter" ProductHardwareRTL8139Description = "32-Bit PCI Fast Ethernet Adapter" NetRuleHardwareRTL8139Type = "RTL8139 RTL8139Adapter" NetRuleHardwareRTL8139Class = {"RTL8139Adapter basic"} AdapterRTL8139Type = 5 ;; PCI board RTL8139CFID = 2168000748 ;; 0x813910EC [GeneralConstants] from = "" to = "" ExitCodeOk = 0 ExitCodeCancel = 1 ExitCodeFatal = 2 KeyNull = "" MAXIMUM_ALLOWED = 33554432 RegistryErrorIndex = NO_ERROR KeyProduct = "" KeyParameters = "" TRUE = 1 FALSE = 0 NoTitle = 0 ExitState = "Active" OldVersionExisted = $(FALSE) DriverPath = $(!STF_NTPATH)\drivers NT350VersionConstant = "3.50" NT310VersionConstant = "3.10" [date] Now = {} ? $(!LIBHANDLE) GetSystemDate ; ; The [Identify] section is the first section executed by Setup. It ; returns information to Setup about the type of drivers that can ; be installed by this .INF file (in our case, network drivers). ; [Identify] read-syms Identification set Status = STATUS_SUCCESSFUL set Identifier = $(OptionType) set Media = #("Source Media Descriptions", 1, 1) Return $(Status) $(Identifier) $(Media) ; ; If the [Identify] section indicates that the .INF file supports ; the appropriate type of driver, Setup calls the [ReturnOptions] ; section. Setup passes a single parameter to this section, ; indicating the language to be used for dialog strings. This ; section returns information to the Setup program, listing the ; names of any drivers which can be installed by this .INF file. ; It also returns the text strings for each driver to be used in ; the dialog box asking the user to select the driver to install. ; [ReturnOptions] ; ; Initialize variables to failure state. ; set Status = STATUS_FAILED set OptionList = {} set OptionTextList = {} ; ; See if our language list supports the language specified. ; If a second parameter was passed in, see if it is a supported ; platform. ; set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) ifstr(i) $($1) == "" goto returnoptions endif set PlatformList = ^(PlatformsSup!ported, 1) Ifcontains(i) $($1) in $(PlatformList) goto returnoptions else set Status = STATUS_NOTSUPPORTED goto finish_ReturnOptions endif else set Status = STATUS_NOLANGUAGE goto finish_ReturnOptions endif ; ; If we get here, we are successful, so return the option list. ; returnoptions = + set OptionList = ^(Options, 1) set OptionTextList = ^(OptionsText$($0), 1) set Status = STATUS_SUCCESSFUL ; ; Exit from this section. ; finish_ReturnOptions = + Return $(Status) $(OptionList) $(OptionTextList) ; ; If the [ReturnOptions] section returns successfully, indicating ; the language is supported, Setup displays a dialog box from which ; the user can select a driver to install. Setup then calls the ; [InstallOption] section, with the following parameters: ; ; Language to use ; OptionID to install ; SourceDirectory ; AddCopy (yes/no) ; DoCopy (yes/no) ; DoConfig (yes/no) ; ; ScrDir seems to always be A:\, even when you later install from ; the oemnad#.inf which is copied to the system32 directory. ; ; AddCopy and DoCopy are valid only when NTN_InstallMode = install. ; AddCopy is yes if the files should be added to the copy list. ; DoCopy is yes if CopyFilesInCopyList should be called. ; ; DoConfig is not used for network cards. ; ; This .INF file is automatically copied to the SYSTEM32 directory, ; by WinNT, and renamed so as to have a unique name. ; [InstallOption] ;;; ;;; Change "Set !G:DebugOutputControl=0" to 1 in NCAPSHEL.INF for debug support. ;;; ;;; set !G:DebugOutputControl=1 ;; Debug output {1=turned on, 0= turned off} ; ; Read input parameters. ; set Option = $($1) set SrcDir = $($2) set AddCopy = $($3) set DoCopy = $($4) set DoConfig = $($5) ; ; Check if specified language is supported. ; set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) NOT-IN $(LanguageList) Return STATUS_NOLANGUAGE endif ; ; Set up local variables and constant values. ; set-subst LF = "\n" read-syms GeneralConstants read-syms FileConstants ; set NetRuleSoftwareBindable = $($R1) read-syms DialogConstants$(!STF_LANGUAGE) ifstr(i) $(!NTN_Origination) == "NCPA" set Continue = "OK" endif read-syms FileConstants$(!STF_LANGUAGE) ;; read-syms FileDependentDlg$(!STF_LANGUAGE) ;; SetHelpFile $(!STF_WINDOWSSYSPATH)"\"$(OptionHelpFile) $(MinHelpId) $(MaxHelpId) detect date set-title $(Function$(Option)Title) set to = Begin set from = Begin set CommonStatus = STATUS_SUCCESSFUL EndWait ;; ; ;; ; Problem was discovered using unattend.txt files for automatic ;; ; installation. It was found that $2 passed into this section does ;; ; not have an appropriate value when using unattend.txt. It was ;; ; found that during manual AND unattended installations, the variable ;; ; STF_SRCDIR_OVERRIDE did contain an appropriate value. ;; ; ;; ifstr(i) $(!STF_SRCDIR_OVERRIDE) != "" ;; set SrcDir = $(!STF_SRCDIR_OVERRIDE) ;; endif Begin = + ;; ;; Get the Version of Windows NT we are installing on. This will allow us to use the ;; PCI Support that will be included in NT v3.51 ;; set CurrentVersionValue = "" OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows Nt\CurrentVersion" $(!REG_KEY_READ) KeyNt Ifstr(i) $(KeyNt) != "" GetRegValue $(KeyNt) "CurrentVersion" CurrentVersionValue Debug-Output "$(InfFile) $(Option): WinNT CurrentVersion ="$(CurrentVersionValue) CloseRegKey $(KeyNt) Endif ifstr(i) (*($(CurrentVersionValue),4)) == $(NT310VersionConstant) ;; NT v3.10 not supported! Debug-Output "$(InfFile) $(Option): Configureadapter" set Error = "Windows NT v3.10 is not support by this product" goto fatal endif ; set ActivateDetection = FALSE ; ; NTN_InstallMode ; install - this is a primary or original installation, it ; may be an upgrade ; deinstall - this product and its binaries are to be removed ; from the disk ; configure - this product is to be (re-) configured ; bind - this product's relationships to other products ; have changed and should be reviewed. ; Ifstr(i) $(!NTN_InstallMode) == deinstall set StartLabel = removeadapter else-Ifstr(i) $(!NTN_InstallMode) == Update set StartLabel = UpgradeSoftware else-Ifstr(i) $(!NTN_InstallMode) == bind set StartLabel = bindingadapter else-Ifstr(i) $(!NTN_InstallMode) == configure Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase) Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) set from = end set to = end goto nonfatalinfo else set StartLabel = configureadapter endif else set StartLabel = installadapter set OEM_ABANDON_OPTIONS = {} set OEM_ABANDON_SOFTWARE = FALSE set OEM_ABANDON_ON = TRUE endif ;; ; ;; ; HARDWARE_PUT_IN_REGISTRY gets set to true once the hardware ;; ; component is installed. That way if we get an error we know ;; ; to uninstall it. HWList has the path to the hardware that ;; ; is needed by RemoveHardwareComponent. ;; ; ;; ; SOFTWARE_PUT_IN_REGISTRY gets set to true once the software ;; ; component is installed. ;; ; ;; set HARDWARE_PUT_IN_REGISTRY = $(FALSE) ;; set HWList = "" ;; set SOFTWARE_PUT_IN_REGISTRY = $(FALSE) Debug-Output "$(InfFile) $(Option): =2" Debug-Output "$(InfFile) $(Option): STF_CWDIR is: "$(!STF_CWDIR) Debug-Output "$(InfFile) $(Option): STF_SRCDIR is: "$(!STF_SRCDIR) Debug-Output "$(InfFile) $(Option): STF_LANGUAGE is: "$(!STF_LANGUAGE) Debug-Output "$(InfFile) $(Option): Option is: "$(Option) Debug-Output "$(InfFile) $(Option): !STF_NCN_InstallMode is:"$(!NTN_InstallMode) Debug-Output "$(InfFile) $(Option): !STF_NCDETECT is: "$(!STF_NCDETECT) Debug-Output "$(InfFile) $(Option): !STF_NCOPTION is: "$(!STF_NCOPTION) Debug-Output "$(InfFile) $(Option): !STF_NCDETCARD is: "$(!STF_NCDETCARD) Debug-Output "$(InfFile) $(Option): !STF_NCDETINFO is: "$(!STF_NCDETINFO) Debug-Output "$(InfFile) $(Option): !STF_GUI_UNATTENDED is: "$(!STF_GUI_UNATTENDED) Debug-Output "$(InfFile) $(Option): !STF_BusType is $(!STF_BUSTYPE)" ;; Primary Bus Debug-Output "$(InfFile) $(Option): !STF_BusTypeList is $(!STF_BUSTYPELIST)" ;; All Buses Debug-Output "$(InfFile) $(Option): =2" Set EtherID = "" Set NetworkAddress = "0 " set from = $(fatal) set to = $(fatal) goto $(StartLabel) ;-H ; InstallMode = install ; Came here straight from figuring out which platform we are on. ; Option, SrcDir, AddCopy, DoCopy, and DoConfig are valid. ; installadapter = + OpenRegKey $(!REG_H_LOCAL) "" $(VersionKeyName) $(MAXIMUM_ALLOWED) KeyVersion GetRegValue $(KeyVersion),"CurrentVersion",VersionStruct CloseRegKey $(KeyVersion) Set NTVersion = *($(VersionStruct),4) Ifstr(i) $(NTVersion) == "3.51" set Source_Directory = "WINNT\NT351" else set Source_Directory = "WINNT" endif install "Install-Hlp" Debug-Output "$(InfFile) $(Option): Installadapter" ; ; Get open handle KeyProduct. ; Returns an empty string if key does not exist. ; ; NTN_RegBase appears empty on the installation of the first card. ; KeyProduct will be KeyNull on the installation of the first card. ; OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) CloseRegKey $(KeyProduct) ifstr(i) !(NTN_RegBase) == $(ProductKeyName) ; Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+ ; $(ProductVersion) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error: cannot get an error string." goto ShellCodeError endif goto end else ; Shell $(UtilityInf), CardExistedDlg ; ifint $($ShellCode) != $(!SHELL_CODE_OK) ; Debug-Output "ShellCode error: cannot get an error string." ; goto ShellCodeError ; endif ; ifstr(i) $($R1) != "OK" ; set CommonStatus = STATUS_USERCANCEL ; goto end ; endif set OldVersionExisted = $(TRUE) endif Endif Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO Ifint $($ShellCode) != $(!SHELL_CODE_OK) Goto ShellCodeError Else-Ifstr(i) $($R0) == STATUS_FAILED Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) Goto fatal Else-Ifstr(i) $($R0) == STATUS_USERCANCEL Goto successful Endif ; Set SrcDir = $($R1) ; Set SrcDir = "A:\DRIVER" ; Goto adapteroptions Goto installproduct configureadapter = + Debug-Output "$(InfFile) $(Option): Configureadapter" Ifstr(i) $(KeyProduct) == $(KeyNull) OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) == $(KeyNull) Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE Goto fatalregistry Endif Endif Shell $(UtilityInf) FindService, $(KeyProduct) Ifint $($ShellCode) != $(!SHELL_CODE_OK) Goto ShellCodeError Endif Ifstr(i) $($R0) != NO_ERROR Goto fatalregistry endif set KeyParameters = $($R2) CloseRegKey $($R1) Ifstr $(KeyParameters) == $(KeyNull) set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE goto fatalregistry endif set OldVersionExisted = $(TRUE) set ValueName = "" set ValueData = "" set ValueStr = "" set ValueList = {} EnumRegValue $(KeyParameters) ValueList ForListDo $(ValueList) set ValueItem = $($) set ValueName = *($(ValueItem),1) set ValueData = *($(ValueItem),4) Ifstr(i) $(ValueName) == "DuplexMode" set DuplexModeIndex = $(ValueData) else-ifstr(i) $(ValueName) == "EtherID" set EtherID = $(ValueData) else-ifstr(i) $(ValueName) == "NetworkAddress" set NetworkAddress = $(ValueData) else-ifstr(i) $(ValueName) == "EarlyTxThreshold" ;luke add3 show preseting vlue set EarlyTxThreshold = $(ValueData) endif EndForListDo set DuplexModeValue = *($(DuplexModeList), ~($(DuplexModeValues),$(DuplexModeIndex))) ifstr(i) $(DuplexModeValue) == "" set DuplexModeValue = *($(DuplexModeList), 1) endif ;;; set Error = "Cannot configure the software component" ;;; goto fatal adapteroptions = + Debug-Output "$(InfFile) $(Option): Adapteroptions" set from = adapteroptions read-syms FileDependentDlg$(!STF_LANGUAGE) ;SetHelpFile $(!STF_WINDOWSSYSPATH)"\"$(OptionHelpFile) $(MinHelpId) $(MaxHelpId) $(Help$(Option)Id) SetHelpFile $(!STF_WINDOWSSYSPATH)"\"rtsnthlp.hlp 10 20 10 ui start "InputDlg" ; ifstr(i) $(DLGEVENT) == "CONTINUE" ; set DuplexModeIndex = $(Combo1Out) ; ui pop 1 ; else-ifstr(i) $(DLGEVENT) == "BACK" ; set CommonStatus = STATUS_USERCANCEL ; ui pop 1 ; goto end ; else ; ui pop 1 ; goto end ; endif ifstr(i) $(DLGEVENT) == "CONTINUE" set DuplexModeIndex = $(Combo1Out) ui pop 1 else-ifstr(i) $(DLGEVENT) == "BACK" set CommonStatus = STATUS_USERCANCEL ui pop 1 goto end else ui pop 1 goto end endif set DuplexModeValue = *($(DuplexModeValues), ~($(DuplexModeList),$(DuplexModeIndex))) ; set EtherID = "" ; ;Ether ID;+ ; read-syms NetworkAddressDlg$(!STF_LANGUAGE) ; ui start "InputDlg" ; ifstr(i) $(DLGEVENT) == "CONTINUE" ; ;;set EtherID = $(EditTextOut) ; set NetworkAddress = $(EditTextOut) ; ui pop 1 ; else-ifstr(i) $(DLGEVENT) == "EXIT" ; ui pop 1 ; else ; ui pop 1 ; goto end ; endif ; ; set EarlyTxThreshold = "38" ; ;Ether ID;+ ; read-syms EarlyTxThresholdDlg$(!STF_LANGUAGE) ; ui start "InputDlg" ; ifstr(i) $(DLGEVENT) == "CONTINUE" ; set EarlyTxThreshold = $(EditTextOut) ; ui pop 1 ; else-ifstr(i) $(DLGEVENT) == "EXIT" ; ui pop 1 ; else ; ui pop 1 ; goto end ; endif ifstr(i) $(!NTN_InstallMode) == configure goto updateparameters endif ;; ifstr(i) $(!NTN_InstallMode) == configure ;; goto updateparameters ;; endif installproduct =+ Debug-Output "$(InfFile) $(Option): installproduct" StartWait set AdapterList = $($R1) ifint $(OldVersionExisted) == $(FALSE) Ifstr(i) $(DoCopy) == "YES" Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO ifint $($ShellCode) != $(!SHELL_CODE_OK) Goto ShellCodeError Else-Ifstr(i) $($R0) == STATUS_FAILED Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) Goto fatal Else-Ifstr(i) $($R0) == STATUS_USERCANCEL Goto successful Endif Set SrcDir = $($R1) Endif install "Install-Option" ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) goto fatal endif endif ; ; Check to see if the Product Software key exists already in the system service keys ; before we try to add the software component. ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ProductHardwareName) $(!REG_KEY_READ) KeyNt CloseRegKey $(KeyNt) Ifstr(i) $(KeyNt) == "" Debug-Output "$(InfFile) $(Option): AddSoftwareComponent" Debug-Output "$(InfFile) $(Option): --> $(Manufacturer)" Debug-Output "$(InfFile) $(Option): --> $(ProductSoftwareName)" Debug-Output "$(InfFile) $(Option): --> $(ProductSoftwareTitle)" Debug-Output "$(InfFile) $(Option): --> $(STF_CONTEXTINFNAME)" Debug-Output "$(InfFile) $(Option): --> $(ProductSoftwareImagePath)" Debug-Output "$(InfFile) $(Option): --> $(NetEventDLL)" Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), + $(ProductSoftwareName), + $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), + $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+ $(NetEventDLL) Set OEM_ABANDON_SOFTWARE = TRUE ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR" EndWait CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) CloseRegKey $($R4) CloseRegKey $($R5) goto fatalregistry endif Set SoftProductKey = $($R1) Set SoftNetRuleKey = $($R2) Set SoftServiceKey = $($R3) Set SoftParameterKey = $($R4) Set SoftLinkageKey = $($R5) set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+ {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+ {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+ {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR" EndWait CloseRegKey $(SoftProductKey) CloseRegKey $(SoftNetRuleKey) CloseRegKey $(SoftServiceKey) CloseRegKey $(SoftParameterKey) CloseRegKey $(SoftLinkageKey) goto fatalregistry endif set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+ {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, + {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, + {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}} Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set RegistryErrorIndex = $($R0) CloseRegKey $(SoftProductKey) CloseRegKey $(SoftNetRuleKey) CloseRegKey $(SoftServiceKey) CloseRegKey $(SoftParameterKey) CloseRegKey $(SoftLinkageKey) Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR" EndWait goto fatalregistry endif endif ;; Does Services\RTL8139 exist? set NTDetected = $(FALSE) Debug-Output "$(InfFile) $(Option): About to look for RTL8139 PCI Cards" ;; ;; we must be installing a PCI card. ;; ;; Note: If we are are on WinNT v3.51 and above, we have PCI detection support ;; and are able to setup the adapter without user intervention. Otherwise, we can ;; only do one card at a time. ;; set TargetVersion = *($(CurrentVersionValue),4) Debug-Output "$(InfFile) $(Option): Current Version:"$(TargetVersion) ifstr $(TargetVersion) == $(NT350VersionConstant) ;; We need to ask on v3.50 Debug-Output "Running on WindowsNT 3.50" set Version350 = $(TRUE) else Debug-Output "Running on WindowsNT 3.51" set Version350 = $(FALSE) endif ifint $(Version350) == $(TRUE) Debug-Output "Running on WindowsNT v3.50, Not using PCI Detection!!!" ifstr $(!STF_GUI_UNATTENDED) == "YES" Debug-Output "$(InfFile) $(Option): Running in GUI unattended mode" ifstr(i) $(!AutoNetInterfaceType) != "" set BusInterfaceType = $(!AutoNetInterfaceType) else set BusInterfaceType = 5 endif ifstr(i) $(!AutoNetBusNumber) != "" set BusNumber = $(!AutoNetBusNumber) else set BusNumber = 0 endif set NTDetected = $(FALSE) set AdapterList = $(Option) ;; 1 Item to install Debug-Output "$(InfFile) $(Option): BusInterfaceType = $(BusInterfaceType)" Debug-Output "$(InfFile) $(Option): BusNumber = $(BusNumber)" else Debug-Output "$(InfFile) $(Option): Running 3.50 Bus Dialog" set BusInterfaceType = 5 set BusNumber = 0 set NTDetected = $(FALSE) Shell $(UtilityInf),GetBusTypeDialog,$(ProductHardware$(Option)Description) $(BusInterfaceType) $(BusNumber) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error." goto ShellCodeError endif set BusInterfaceType = $($R1) set BusNumber = $($R2) set AdapterList = $(Option) ;; 1 Item to install Debug-Output "$(InfFile) $(Option): BusInterfaceType = $(BusInterfaceType)" Debug-Output "$(InfFile) $(Option): BusNumber = $(BusNumber)" endif else Debug-Output "$(InfFile) $(Option): Running 3.51 using PCI Dectection" ;; ;; v3.51 has PCI detection code built in. ;; ;;set BusInterfaceType = 5 ;;set BusNumber = 0 ;; Shell $(UtilityInf),GetBusTypeDialog,$(ProductHardware$(Option)Description) $(BusInterfaceType) $(BusNumber) set NTDetected = $(TRUE) set VendorID = 4332 ;; 0x10EC is Vendor ID set DeviceID = 33081 ;; 0x8139 is Device ID ;;set-div CFID = $($(Option)CFID) 1 Debug-Output "$(InfFile) $(Option): VendorID = $(VendorID)" Debug-Output "$(InfFile) $(Option): DeviceID = $(DeviceID)" ;;Shell $(UtilityInf), GetPCIInformation, $(VendorID) $(CFID) Shell $(UtilityInf), GetPCIInformation, $(VendorID) $(DeviceID) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ifstr(i) $($R0) == {} set Error = $(CANNOT_FIND_ANY_CARD) set CommonStatus = USER_CANCEL set from = end goto nonfatal endif set AdapterList = $($R0) endif ;;; NT v3.50 endif ;;; Looking for PCI cards in Option. ; "AdapterList" has the list of currently installed adatpers in the system! ; Debug-Output "$(InfFile) $(Option): Adapterlist = $(AdatperList)" ForListDo $(AdapterList) Set InstallCard = "YES" ifint $(NTDetected) == $(TRUE) set DetectedBusNum = *($($),1) set DetectedSlotNum = *($($),2) Debug-Output "$(InfFile) $(Option): DetectedBusNumber = $(DetectedBusNum)" Debug-Output "$(InfFile) $(Option): DetectedSlotNum = $(DetectedSlotNum)" Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(DetectedBusNum), + $(DetectedSlotNum), $(ProductHardware$(Option)Description), $(ProductHardwareName) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ifstr $($R0) != "NO_ERROR" set Error = $($R0) goto fatal endif ifstr(i) $($R1) == "YES" set InstallCard = "NO" ;; Don't want to re-install, it's there already endif endif ;; ;; Are we installing the card? ;; ifstr(i) $(InstallCard) == "NO" Debug-Output "$(InfFile) $(Option): Card Already at $(DetectedBusNum):$(DetectedSlotNum) already installed!" set Error = "An adapter at $(DetectedBusNum):$(DetectedSlotNum) is already installed!" Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif else Debug-Output "$(InfFile) $(Option): Installing Card at $(DetectedBusNum):$(DetectedSlotNum)!" Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName) ifint $($R4) != -1 Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4)) endif ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR" EndWait CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) goto fatalregistry endif set EarlyTxThreshold = 38 set DuplexModeValue = *($(DuplexModeValues), ~($(DuplexModeList),$(DuplexModeIndex))) ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" ; luke add1 unattend Debug-Output "$(InfFile) $(Option): Running in GUI unattended mode" ifstr(i) $(!AutoNetInterfaceType) != "" set BusInterfaceType = $(!AutoNetInterfaceType) else set BusInterfaceType = 5 endif ifstr(i) $(!AutoNetBusNumber) != "" set BusNumber = $(!AutoNetBusNumber) else set BusNumber = 0 endif goto skiplaa1 endif read-syms FileDependentDlg$(!STF_LANGUAGE) ;SetHelpFile $(!STF_WINDOWSSYSPATH)"\"$(OptionHelpFile) $(MinHelpId) $(MaxHelpId) $(Help$(Option)Id) SetHelpFile $(!STF_WINDOWSSYSPATH)"\"rtsnthlp.hlp 10 20 10 ui start "InputDlg" ifstr(i) $(DLGEVENT) == "CONTINUE" set DuplexModeIndex = $(Combo1Out) ui pop 1 else-ifstr(i) $(DLGEVENT) == "BACK" set CommonStatus = STATUS_USERCANCEL ui pop 1 goto end else ui pop 1 goto end endif set DuplexModeValue = *($(DuplexModeValues), ~($(DuplexModeList),$(DuplexModeIndex))) ; set EtherID = "" ; ;Ether ID;+ ; read-syms NetworkAddressDlg$(!STF_LANGUAGE) ; ui start "InputDlg" ; ifstr(i) $(DLGEVENT) == "CONTINUE" ; ;;set EtherID = $(EditTextOut) ; set NetworkAddress = $(EditTextOut) ; ui pop 1 ; else-ifstr(i) $(DLGEVENT) == "EXIT" ; ui pop 1 ; else ; ui pop 1 ; goto end ; endif ; ; read-syms EarlyTxThresholdDlg$(!STF_LANGUAGE) ; ui start "InputDlg" ; ifstr(i) $(DLGEVENT) == "CONTINUE" ; set EarlyTxThreshold = $(EditTextOut) ; ui pop 1 ; else-ifstr(i) $(DLGEVENT) == "EXIT" ; ui pop 1 ; else ; ui pop 1 ; goto end ; endif skiplaa1 =+ Set HardNetCardKey = $($R1) Set HardNetRuleKey = $($R2) Set HardParameterKey = $($R3) set AdapterNumber = $($R4) set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+ {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+ {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $(HardNetCardKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ; ; PCI ; set BusTypeNum = 5 set BusMaster = "YES" set Bus = "PCI" ifstr(i) $(Option) == "RTL8139" set CardType = 2 else set CardType = 0 endif ;; ;; If we used the OS to dected the card, then we already know bus and slot information. ;; ifint $(NTDetected) == $(TRUE) set BusNumber = $(DetectedBusNum) set SlotNum = $(DetectedSlotNum) set BusInterfaceType = $(BusTypeNum) ; ; Note: we need to record SlotNumber too so that we can use the ; "IsNetCardAlreadyInstalled" routine ; Set NewValueList = {+ {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+ {Slot,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)}+ } Debug-Output "$(InfFile) $(Option): Set HardwareParameterKey = $(NewValueList)" Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif Set NewValueList = { {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)} } Debug-Output "$(InfFile) $(Option): Set HardwareParameterKey = $(NewValueList)" Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif else Set NewValueList = {+ {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+ } Debug-Output "$(InfFile) $(Option): Set HardwareParameterKey = $(NewValueList)" Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif endif Set NewValueList = {+ {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+ {CardType,$(NoTitle),$(!REG_VT_DWORD),$(CardType)},+ {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+ {AdapterCFID,$(NoTitle),$(!REG_VT_DWORD),$($(Option)CFID)},+ } Debug-Output "$(InfFile) $(Option): Set HardwareParameterKey = $(NewValueList)" Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set NewValueList = {{DuplexMode, $(NoTitle),$(!REG_VT_DWORD),$(DuplexModeValue)},+ {TxMaxDMABurst, $(NoTitle),$(!REG_VT_DWORD),6},+ {RxMaxDMABurst, $(NoTitle),$(!REG_VT_DWORD),6},+ {EarlyRxThreshold,$(NoTitle),$(!REG_VT_DWORD),2},+ {TxInterFrameGap, $(NoTitle),$(!REG_VT_DWORD),3},+ {DelayTime, $(NoTitle),$(!REG_VT_DWORD),120},+ {NetworkAddress, $(NoTitle),$(!REG_VT_SZ), $(NetworkAddress)},+ {EarlyTxThreshold,$(NoTitle),$(!REG_VT_DWORD),$(EarlyTxThreshold)}} Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList) ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" ; luke add2 Input parameter Shell $(UtilityInf),AddDefaultNetCardParameters,$(HardParameterKey) endif ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set TempProdName = "$(ProductHardwareName)$(AdapterNumber)" set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm) set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardware$(Option)Type)},+ {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, + {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardware$(Option)Class)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}} Debug-Output "$(InfFile) $(Option): HardwareRuleKey = $(NewValueList)" Shell $(UtilityInf), AddValueList, $(HardNetRuleKey), $(NewValueList) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif CloseRegKey $(HardNetCardKey) CloseRegKey $(HardNetRuleKey) CloseRegKey $(HardParameterKey) endif EndForListDo EndWait goto successful updateparameters =+ Debug-Output "$(InfFile) $(Option): Updateparameters" set HardParameterKey = $($R3) set NewValueList = {{DuplexMode,$(NoTitle),$(!REG_VT_DWORD),$(DuplexModeValue)},+ {TxMaxDMABurst, $(NoTitle),$(!REG_VT_DWORD),6},+ {RxMaxDMABurst, $(NoTitle),$(!REG_VT_DWORD),6},+ {EarlyRxThreshold,$(NoTitle),$(!REG_VT_DWORD),2},+ {TxInterFrameGap, $(NoTitle),$(!REG_VT_DWORD),3},+ {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)},+ {EarlyTxThreshold,$(NoTitle),$(!REG_VT_DWORD),$(EarlyTxThreshold)}} Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList) ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" ; luke add2 Input parameter Shell $(UtilityInf),AddDefaultNetCardParameters,$(HardParameterKey) endif ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif CloseRegKey $(KeyParameters) goto successful bindingadapter =+ Debug-Output "$(InfFile) $(Option): bindingadapter" set Error = "Binding: Sorry, not yet implemented." goto fatal removeadapter = + Debug-Output "$(InfFile) $(Option): removeadapter" Debug-Output "$(InfFile) $(Option): -> $(ProductKeyName), $(!NTN_RegBase)" Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase) Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif else Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(ProductSoftwareName), $(!NTN_RegBase) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif endif goto end UpgradeSoftware = + Debug-Output "$(InfFile) $(Option): UpdateSoftware" OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "ShellCode error" goto ShellCodeError endif set !UG_Filename = $($R0) install "Install-Update" ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCES S goto fatal endif SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)} SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)} CloseRegKey $(KeyProduct) else goto fatalregistry endif goto end successful = + Debug-Output "$(InfFile) $(Option): Successful" goto end abandon = + Debug-Output "$(InfFile) $(Option): Abandon" ForListDo $(OEM_ABANDON_OPTIONS) Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(ProductSoftwareName), $($) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif EndForListDo Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), FALSE ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR goto fatalregistry endif endif goto end warning = + Debug-Output "$(InfFile) $(Option): warning" Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ifstr(i) $($R1) == "OK" goto $(to) else-ifstr(i) $($R1) == "CANCEL" goto $(from) else goto "end" endif nonfatalinfo = + Debug-Output "$(InfFile) $(Option): nonfatalinfo" Set CommonStatus = STATUS_USERCANCEL Set Severity = STATUS goto nonfatalmsg nonfatal = + Debug-Output "$(InfFile) $(Option): nonfatal" Set Severity = NONFATAL goto nonfatalmsg nonfatalmsg = + Debug-Output "$(InfFile) $(Option): nonfatalmsg" ifstr(i) $(Error) == "" Set Severity = NONFATAL Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) endif Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ifstr(i) $($R1) == "OK" goto $(from) else ; goto "end" goto "RemoveAdapter" endif fatalregistry = + Debug-Output "$(InfFile) $(Option): fatalregistry" Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) goto fatal fatal = + Debug-Output "$(InfFile) $(Option): fatal" ifstr(i) $(Error) == "" Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) endif Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif goto setfailed ShellCodeError = + Debug-Output "$(InfFile) $(Option): ShellCodeError" set DlgType = "MessageBox" set STF_MB_TITLE = $(ShellCodeErrorTitle) set STF_MB_TEXT = $(ShellCodeErrorText) set STF_MB_TYPE = 1 set STF_MB_ICON = 3 set STF_MB_DEF = 1 ui start "Error Message" goto setfailed setfailed = + Debug-Output "$(InfFile) $(Option): Setfailed" set CommonStatus = STATUS_FAILED ifstr(i) $(OEM_ABANDON_ON) == TRUE set OEM_ABANDON_ON = FALSE goto abandon endif goto end end = + goto term term = + Return $(CommonStatus) [Install-Option] set STF_VITAL = "" ifstr(i) $(AddCopy) == "YES" AddSectionFilesToCopyList Files-$(Option) $(SrcDir)$(Source_Directory) $(!STF_WINDOWSSYSPATH)\drivers endif ifstr(i) $(DoCopy) == "YES" set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList endif Exit [Install-Hlp] set STF_VITAL = "" AddSectionFilesToCopyList Files-Hlp $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH) set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList Exit [Install-Update] set STF_VITAL = "" set STF_OVERWRITE = "VERIFYSOURCEOLDER" Ifstr(i) $(NTVersion) == "3.51" set Source_Directory = "WINNT\NT351" else set Source_Directory = "WINNT" endif AddSectionFilesToCopyList Files-Hlp $(SrcDir)WINNT $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Inf $(SrcDir)$(Source_Directory) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-$(Option) $(SrcDir)$(Source_Directory) $(!STF_WINDOWSSYSPATH)\drivers set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList exit [Source Media Descriptions] 1 = "32-Bit PCI Fast Ethernet Adapter Driver Diskette" ; from disk a:\ or b:\ [ProductType] STF_PRODUCT = Winnt STF_PLATFORM = I386 [Files-Inf] 1, oemsetup.inf, SIZE=1000, RENAME=$(!UG_Filename) [Files-Hlp] 1, RTSNTHLP.HLP , SIZE=10 ; ; Driver files ; [Files-RTL8139] 1,RTL8139.SYS , SIZE=50 [LanguagesSupported] ENG [OptionsTextENG] RTL8139 = "32-Bit PCI Fast Ethernet Adapter" [FileConstantsENG] ProCaption = "Windows NT Setup" ProCancel = "Cancel" ProCancelMsg = "Windows NT Networking is not correctly installed. "+ "Are you sure you want to cancel copying files?" ProCancelCap = "Network Setup Message" ProText1 = "Copying:" ProText2 = "To:" DuplexModeList = ^(DuplexModeDlg, 1) DuplexModeValues = ^(DuplexModeDlg, 2) NoList = ^(NoChoices, 1) NoValues = ^(NoChoices, 2) ShellCodeErrorTitle = "Error: "$(Function$(Option)Title) ShellCodeErrorText = "Shell Code Error." CANNOT_FIND_ANY_CARD = "Network card is not present in the system" [DialogConstantsENG] Help = "&Help" Exit = "Cancel" OK = "OK" HelpContext = "" Continue = "Continue" Cancel = "Cancel" [FileDependentDlgENG] DlgText = "Choose the proper Duplex Mode from the list."$(!LF)+ " " Combo1Label = " Duplex Mode " DlgTemplate = "ADAP_PROTO_COMBO" DlgType = "Combination" ;Caption = $(Function$(Option)Title) Caption = "Duplex mode " Combo1List = $(DuplexModeList) Combo1Out = $(DuplexModeValue) ComboListItemsIn = {Combo1List} ComboListItemsOut = {Combo1Out} EditTextLim = "" CBOptionsGreyed = {} ;MinHelpId = 10 ;MaxHelpId = 1130 ;HelpContext = $(Help$(Option)Id) HelpContext = 10 [DuplexModeDlg] ; DuplexMode_0 = "(0) DEFAULT ", 0 DuplexMode_1 = "(1) AUTO ", 1 DuplexMode_2 = "(2) 10 Half Duplex", 2 DuplexMode_3 = "(3) 10 Full Duplex", 3 DuplexMode_4 = "(4) 100 Half Duplex", 4 DuplexMode_5 = "(5) 100 Full Duplex", 5 [NetworkAddressDlgENG] Caption = "Input Network Address" DlgText = "Please input Network Address: "$(!LF)+ "For example:"$(!LF)+ " Ethernet ID: 000102A3B4C5"$(!LF)$(!LF)+ "(This option is only required when you need to use"+ "some networking applications which need software"+ "programmable Network Address)" Edit1Label = "&Network Address :" Continue = "&OK" Exit = "&Skip" Help = "&Help" DlgType = "Edit" DlgTemplate = "QUERY_COMPUTER_NAME" EditTextLim = 17 EditTextIn = $(NetworkAddress) EditFocus = "ALL" [EarlyTxThresholdDlgENG] Caption = "Input Tx Early Threshold" DlgText = "Please input Early Tx Threshold: "$(!LF)+ "The value range from 0 to 3f in heximal" Edit1Label = "&EarlyTxThreshold:" Continue = "&OK" Exit = "&Skip" Help = "&Help" DlgType = "Edit" DlgTemplate = "QUERY_COMPUTER_NAME" EditTextLim = 2 EditTextIn = $(EarlyTxThreshold) EditFocus = "ALL"  .  Q!)..  Q!)NETRTS5 INF x)* RTL8139 SYS )ZWINME TXT Pp$) b;*M ;* NETRTS5.INF ;*M [version] Signature = "$Chicago$" Compatible = 1 Class = Net ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} Provider = %Generic% !;; for WHQL certified ;CatalogFile = netrts5.cat ;; for WHQL certified DriverVer = 10/01/2000,5.378.0804.2000 [Mkanufacturer] %Generic% = Generic [ControlFlags] ExcludeFromSelect = PCI\VEN_10EC&DEV_8139, \ PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC [Generic] %RTL8139.DeviceDesc% = RTL8139.ndi, PCI\VEN_10EC&DEV_8139 %RTL8139.DeviceDesc% = RTL8139.ndi, PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC ;;*L ;; Windows 9x ;;*L [rtl8139.ndi] DriverVer = 8/04/2000,378 AddReg = rtl8139.id.reg, RTL8139.common.reg, RTL8139.win.reg, RTL8139.oncbs.reg CopyFiles = RTL8139.CopyFiles98 ;;*L ;; NT 5.0 ;;*L [RTL8139.ndi.NT] AddReg = RTL8139.common.reg, RTL8139.reg, RTL8139.oncbs.reg Characteristics = 0x84 BusType = 5 CopyFiles = RTL8139.CopyFiles [RTL8139.ndi.NT.Services] AddService = rtl8139, 2, rtsnt.Service, RTL8139.EventLog [RTL8139.CopyFiles] RTL8139.sys,,,2 [RTL8139.CopyFiles98] RTL8139.sys,,,2 ;;-L ;; RTL8139 Parameters ;;-L ;;*L ;; Windows 9x parameters ;;*L [rtl8139.id.reg] HKR, Ndi, DeviceID, 0, "PCI\VEN_10EC&DEV_8139" HKR, Ndi\Install, , 0, rtsnt.install HKR, NDI\Params\DuplexMode, flag, 1, 30, 00, 00, 00 HKR, Ndi\Params\EarlyTxThreshold, flag, 1, 20, 00, 00, 00 HKR, NDI\Params\NetworkAddress, flag, 1, 30, 00, 00, 00 HKR, NDI\Params\WakeUpFrame, flag, 1, 30, 00, 00, 00 [RTL8139.win.reg] ;; key,subkey,valuname,type,value HKR, , DriverDesc, 0, "32-Bit PCI Fast Ethernet Adapter" HKR, , DevLoader, 0, *ndis HKR, , DeviceVxDs, 0, rtl8139.sys HKR, , EnumPropPages, 0, netdi.dll, EnumPropPages ;;params HKR, , MediaType, 0, 1 HKR, , AdapterType, 0, 5 HKR, , BusType, 0, 5 ;; NDIS Info HKR, NDIS, MajorNdisVersion, 1, 03 HKR, NDIS, MinorNdisVersion, 1, 0a HKR, NDIS, LogDriverName, 0, "RTL8139" ;; Interfaces HKR, Ndi\Interfaces, DefLower, , "ethernet" HKR, Ndi\Interfaces, LowerRange, , "ethernet" HKR, Ndi\Interfaces, DefUpper, , "ndis3" HKR, Ndi\Interfaces, UpperRange, , "ndis3" ;; Install sections ;HKR, Ndi\Install, ndis3, 0, "rtl139.ndis5" ;;*L ;; RTL8139 common parameters ;;*L [RTL8139.oncbs.reg] HKR,,ChipOnCardbus,,"0" [RTL8139.common.reg] HKR, Ndi\params\DuplexMode, ParamDesc, 0, %DuplexMode% HKR, Ndi\params\DuplexMode, type, 0, "enum" HKR, Ndi\params\DuplexMode, default, 0, "1" HKR, Ndi\params\DuplexMode\enum, 1, 0, %dmAutoMode% HKR, Ndi\params\DuplexMode\enum, 2, 0, %dm10HalfMode% HKR, Ndi\params\DuplexMode\enum, 3, 0, %dm10FullMode% HKR, Ndi\params\DuplexMode\enum, 4, 0, %dm100HalfMode% HKR, Ndi\params\DuplexMode\enum, 5, 0, %dm100FullMode% HKR,Ndi\Params\EarlyTxThreshold, ParamDesc, 0, %EarlyTxThreshold% HKR,Ndi\Params\EarlyTxThreshold, Type, 0, "int" HKR,Ndi\Params\EarlyTxThreshold, Default, 0, "38" HKR,Ndi\Params\EarlyTxThreshold, Min, 0, "0" HKR,Ndi\Params\EarlyTxThreshold, Max, 0, "63" HKR,Ndi\Params\EarlyTxThreshold, Step, 0, "1" HKR,Ndi\Params\EarlyTxThreshold, Base, 0, "10" HKR,Ndi\params\NetworkAddress, ParamDesc, 0, %NetworkAddress% HKR,Ndi\params\NetworkAddress, type, 0, "edit" HKR,Ndi\params\NetworkAddress, default, 0, "0 " HKR,Ndi\params\NetworkAddress, LimitText, 0, "12" HKR,Ndi\params\NetworkAddress, UpperCase, 0, "1" HKR,Ndi\params\NetworkAddress, Optional, 0, "1" HKR, Ndi\params\WakeUpFrame, ParamDesc, 0, "WakeUp Frame" HKR, Ndi\params\WakeUpFrame, default, 0, "0" HKR, Ndi\params\WakeUpFrame, type, 0, "enum" HKR, Ndi\params\WakeUpFrame\enum, "0", 0, "Enable" HKR, Ndi\params\WakeUpFrame\enum, "1", 0, "Disable" HKR, Ndi\params\PME, ParamDesc, 0, "APM Mode WakeUp" HKR, Ndi\params\PME, default, 0, "1" HKR, Ndi\params\PME, type, 0, "enum" HKR, Ndi\params\PME\enum, "0", 0, "Enable" HKR, Ndi\params\PME\enum, "1", 0, "Disable" HKR, Ndi\params\EnableLDPS, ParamDesc, 0, "Link Down Power Saving" HKR, Ndi\params\EnableLDPS, default, 0, "0" HKR, Ndi\params\EnableLDPS, type, 0, "enum" HKR, Ndi\params\EnableLDPS\enum, "0", 0, "Disable" HKR, Ndi\params\EnableLDPS\enum, "1", 0, "Enable" ;;*L ;; NT 5.0 parameters ;;*L [RTL8139.reg] HKR, Ndi\Interfaces, UpperRange, 0, "ndis5" HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" HKR, Ndi, Service, 0, "RTL8139" [rtsnt.Service] DisplayName = %RTL8139.Service.DispName% ServiceType = 1 ; %SERVICE_KERNEL_DRIVER% StartType = 3 ; %SERVICE_DEMAND_START% ErrorControl = 1 ; %SERVICE_ERROR_NORMAL% ServiceBinary = %12%\RTL8139.SYS LoadOrderGroup = NDIS [RTL8139.EventLog] Addreg = RTL8139.AddEventLog.reg [RTL8139.AddEventLog.reg] HKR, , EventMessageFile, 0x00020, "%%SystemRoot%%\System32\netevent.dll" HKR, , TypesSupported, 0x00010001, 7 ;;*L ;; Destination Directory ;;*L [DestinationDirs] RTL8139.CopyFiles = 12 RTL8139.CopyFiles98 = 11 DefaultDestDir = 11 ; LDID_SYS ;;*L ;; Source Files ;;*L [SourceDisksNames] 1=%DISKNAME%,,, [SourceDisksFiles] rtl8139.sys = 1 ;netrts5.cat = 1 ;;*L ;; Strings ;;*L [Strings] Generic = "Generic" ;;Source disk name DISKNAME = "32-Bit PCI Fast Ethernet Driver Diskette" NetworkAddress = "Network Address" EarlyTxThreshold = "Early Tx Threshold" DuplexMode = "Link Speed/Duplex Mode" dmAutoMode = "Auto Mode" dm10HalfMode = "10 Half Mode" dm10FullMode = "10 Full Mode" dm100HalfMode = "100 Half Mode" dm100FullMode = "100 Full Mode" RTL8139.DeviceDesc = "32-Bit PCI Fast Ethernet Adapter" RTL8139.Service.DispName = "32-Bit PCI Fast Ethernet Adapter NT Driver" " DRIVER_16_PATH="novell\nwclient\" DSK_NOVELL4="Novell NetWare Client-32 LAN driver disk" ; RTL Devices *rtl8139.DeviceDesc="32-Bit PCI Fast Ethernet Adapter for Novell Netware Client 32" ; Context help ODIMLID_HELP="The ODI driver enables you to use either 16-Bit or 32-Bit networking components." ǵǺǷǸǹɻǼǽǾǿMZ@# !L!This program cannot be run in DOS mode. $)­GGGFGTGAGRMGRichGPEL99  BD:T˺ D<JPX:T,:.text946 h.rdata::@H.data<<@PAGE>> `INITDD .rsrcJJ@B.relocPP@B0#D$h_fǀ@P:fuE E ƆNf_t;Vf$Cf PF>P:EE  E E ^[] USVuWe Stt4V t tFj@P:$Vt,F>P:f_t&Ë$Cf PF>P:E ;ue } r;uVƆ_^[]Vt$W= :^F7PרuxHVf%Xf\POVt8} ^tp^F7Pרt{_^̋D$f\u"tX@w@r L2S\$UVXwmPWT);vt+͋ȃ󤋃DM_;ȋwыPuVRQRjQQSdƃ^LLL)fPC8P:PPTL);ʉr t+0L^H]3[UMUS]XVPWx;v;sE +ƒ}}QM$:E}ut E@EEPEPu :3vZU+;UvU}uU˃)Ut*;EuEEtMQMQP :3}w}u(:+}E 83_^[SVt$ WFP:tu(,mm:F Pt F$PFP_^[SVt$ WFP:tu(,mm:F$Pt F$PFP_^[SVt$ WFP:tu(,mm:F(Pt F$PFP_^[SVt$ WFP:tu(,mm:F,Pt F$PFP_^[UQSVuWEj=p:Pj Ev(6ׅu Ejl:Pjv(6Ӆt݊Ej$ EEPjv(N,6ׅtEjPjPv(6Ӆt}uIEjePjTv(6ׅtEjPjUv(6ӅqEjMPjUv(6ׅVEjPjUv(6Ӆ?<uM<ueEjPjUv(6%?_^[MAXMULTICASTEnvironmentSlotNumberEarlyTxThresholdChipOnCardbusDuplexModeWIN98APMTxMaxDMABurstRxMaxDMABurstEarlyRxThresholdTxInterFrameGapLinkUpWakeUpFramePMEEnableLDPSUWjYfEjfMXED u fEfEfEf|fvEfEPEPE` fEEx fE fE"EА fMfEE fEE fEfEE fMfEE fMfEE fE fE"E4 fEfE EX fE fEEx fDž~E fEfEE fDžtDžx :E3;SVEWP5|:uEPEP9}]u E@EjPEuPEP9}u E@C(EWPEuPEP9}u E@CEWPEuPEP9}u/ExuEMjPjUƃs(Sp:ƃEWPEuPEP9}uExu ƃƃ|WPEuPEP9}uExu ƃƃEWPEuPEP9}uExuƃ9xuƃuEPEPEPx:}u9}uu{Hf5|:3EWPEuPEP֍EWPEuC$8PEP9}u%E8@;C$vK$9C$sC$EWPEuPEP9}u E@C { EWPEuC4PEP9}uE@;C4vK4EWPEuC0PEP9}uE@C09C4vC49{ t{86EWPEuC8@PEP9}uE@ ;C8vK8EWPEuC<PEP9}uE@;CP:f=t8Vt2FXP :P$E u- @;tTSSPQP|9 t:jV 0 @;t!SSPQP|9 tSV VFW=:>Pר t%FtPfF>j P:V2_^[]UE $UEDEHELEPET|EXqE\fE`[EdPEhEEl:Ep/Et$ExE|EE] "-8CSVt$ *kjt3UWD$.ǃSPVP6kGL$u_]Vt SPQ^[Vt$VV3V3V $(,048`djƆkƆlmnQ ^Vt$ VƆnưhV:^Vt$ 3ɋQQPV4^U$EM 3SEVWj;ȉUUU[ucO$(E<UuuEEE|E@XP :$%`D@BTEKEPF?E3E'EuHNPO@PM8;jR[EujExEVtU3ɁP @MED]E;w}tetOIt>It-Itt"EpN>E8>E40E$"E EpH}jfu t6t EEMPeEuF;|8~(t;u*jXɉEEȉM$UUU]ȉ]$ÉEju[U-E,E(E0 E@E;]vEE}ˋȋEEE_^[,;FFNZr-Cf- Q UM S33VWwFtmtAt/t BuuVMEƆ'uxEu uPEM3#uuV=p:j[9u8uE SPjUv(] 6׋t tuuE Se PjUv(69uƆEM33Mj3^u\Euэtʃ<$uP^3Z}u'M w UD@FjY9Mt M-EfPtMQ<;u MU M_^[]Vt$W=:<$Vt FTh$PR<&tN@f@ tN@f@(tN@f@!tN@f@VTh$V_3^Vt$VVTh$V:3^UlEEhPEPEuP:}tPUvGVEHIt&ItIu/u$Hu uuHuHuJu^3 ̋D$|x4jhP0:SVt$ Wx4SWjhP6:u 8<@ D(H0L8P@THXP\X``dhhplxpt|k"   (08@ H$P(X,`0h4p8x<@3_^[Vt$FCP :f$|<@tA<`t4P:F@0PV~_^[UVuWFP :$EFuNj=:P׋Fj7P_^]Vt$V ujjjh6\:2V ^UVuWF7P :E=:$PF7P׋Fu7P׋Fv@DP:tdžLP@T_^]W3҃9T$ v4SVD$j Xً3t HuB;T$r^[_%jt$T$ ȃL$  UQVuW34@v7 @S؍NtEPE PWE M0404Ku[_^UVuWFP :$EFuNj=:P׋Fj7P_2^]Vt$F`P:fh^̋D$p@@DP:2Vt$W=:FjP׋Fj P_2^SVt$ 33W3ɍ48@ r838@ rF=:RP׋FS P_^2[U} VWsWu=:S3ۋFSpP׃~u } uE E F|PuhCr[0}5:j GpP֋GhxxP֋GhC8˃|P_^] SUVWj]UW:t$FtP t;HtMHHtDu8UjV"UWFtPf=ptUjVUWjUjV_^][UjUUSVt$ W=:Ftu2jh+FtPtFhtP:V/4:Vh<*6PӃ~u'FUbP׋FfPf]t f%f=tP_^]UVuWfKFtuVF=:bPu,VFhbP:hV:bFjPרuUFHt%HtHtHt Hu ! 3 EPFbP:V{jjV}_^]̋D$Hv*t!tt u(hh jA j!h@fP:Vt$ FXP :uFj >P:V;p2p psj2V:VdžP @^Vt$ WtFj >P:VIFdP: t"ƆW`hV:`j2P:2^Vt$VFWbhPƆV:`j2V:^UVu W=:FdP׋FjP׋=:u?FHt%HtHtHt Hu ! 3 E PFbP׋Fj >P_^]D$j23YvVj2:Nu^UQVuWV;E <EudSEj=l:PjPv(6Ep:tE je PjTv(6ӍEjPjUv(6׍EjMPjUv(6VV[F=:PhP׋FYP : EFuYP׋FjPP_^USVuW} :ee hM ŌMEG ljEFPPӋFZP :$EFuZPӋFjPPӋGHUM< Cu| AtʃuE B;ЉUrf| t_BjY+ȋE D8ʱ*ʋUȋE L8u;Gs d9A;OrGH;Gsd8@OW Ge e ejHZ;ʉUU}si;ЊD:E u L: JM E }u$FMu EP:e e EUGBUH;r} uFMu EP:W @Uvj@ZUMeE v{}ME "} u EE e tOEMUL E$x2Š2ŠU ‹UEz9}t2Ȋx2ʋU ȈME9UrFuEPӋEMD PFEPӊ<s0FP:r_^[UVuWFjP:rFP :$EFuP:_^]QQSUVt$Wj[jFP:KuF=:PhP׋F :YP$߈D$Ft$YP׋FjPP׋FP$D$Ft$P׋D$ $<u5FhPP׋FYP D$Ft$YP׋FjPP׋D$ $<uX0D$D$ D$D$ 0D$FP:D$ D$L$u܋FP D$Ft$P_^][YYD$ǀUS39]VWvf}u uEu#p wj6WHDHDC;]rE HD_^[] D$``uT$dT$dV1V ^p̋L$`t);ddu "` P `pVt$WW$:t$VkW(:V _^ Vt$`tkvVuPV߀lv,m:ntV-m$lmu^USVuWl}^TVh$S:jt6Ht$HtHu:fh+fh@fh fhftOjPljklP @ju<KV_^2[]US]VWPE$:u EtFEEt[~uO~3;E EEt(EPEPW:EWE :E?Eu؋EFFE FEFE}ujVSu(:8n$k6E 4EDE 8EHE <ELh E @EPKE DET.E HEXE LE\`E PE dE TE$hE XE(lE \E,pE `Ef0tE dEL4xE hE28|E lE<E pEE5 :PEPuփ}t}uE8EPEPW}օuMu}ȃEEE0ut1= :EPEPV׃}u6utEPEPVuu(:jP:lv,m:ntSbm$lmu_^[A3^3{33333 4)4F4c444444̋D$m$7DHLPTX\ |`nd`hRlDp 6t$(x(|, 0mt!ItIt Iu(Ph Ph> PhPhZTP:6666 77-7;7I7W7e7s77777FEEEEE F^FpFDFFFFFFG2GJG^GpGGGGGGH"H@H^HxHHHHHHI"IBI`IxIII 99T99U99FYRealtek rtl8139A WOL ndis5 driver POWERM Realtek 8139-series PCI NIC 6w       <USV339uWvM91t @;Er;Eu rM hRTLmSEPh:;P}3uEMǀ@ EEǀDu5t E(Q$QHQHQHQHQp(u7;t[uO;uMEjjVP0d:u0EVjjHQQ0TP`:;t&EVh0\: VSuX:hMWqA1PT:hj jPE0P:E3($RQ0,PL:uuuJu\uuuHuEjh0\: uEj@7P:E(,0H:E0D:EHQWQ0@:ETP<:jSuX:2uEhhP08:EPh0P4:3_^[]QQSUVt$WVV=:- :ukFPՋ:D$FPӉD$FPӻD$FPՀ|$u|$u |$uP:FhPP׋FZPՈD$<ud$<uL$Ft$ZP׋FYPՈD$<uL$<ud$Ft$YP׋FjPPVV-_^][YYVt$W=:v׈FNFOFPFQFP׋28VHFRNSu78VIu28VJu-8VKu(8VLu#8VMuVNFLVHVOVIVPVJVQVKNM_^bU`S3SE u uP0:E Mj`QP<<E]EE"EEEE>EBE]ÈE1EԀEZE0]܉]]]]]]],:[%D 0 H`J<<4VS_VERSION_INFOz$? StringFileInfox040904B0RCompanyNameRealtek Semiconductor Corporation RFileDescriptionNDIS 5.0 driver @FileVersion5.378.0804.2000: InternalNameRTL8139.SYS rLegalCopyright1994-1999, Realtek Semiconductor Corp. All Rights Reserved.B OriginalFilenameRTL8139.SYS RProductNameRealtek RTL8139(A/B/C/8130) Based Fast Ethernet Adapter DProductVersion5.378.0804.2000DVarFileInfo$Translation h`424]44515]5577718E8j888 9N9|9993:Z:< ==-=>=K=^=o=========>>b?|?11222%3J3U3g3u333?4h44U5Y5]5a5e5i5m5q5u5y5}55555567-7~77(:,:0:4:8:<:@:D:H:L:P:T:X:\:`:d:h:l:p:t:x:|:4;f>>>>>??01(111222!3=35a55566)6k6o6s6w6{6666666666666777777788 8 88888!8%8)8-81858D>>??-?L?k???@L010<0M0Z0f0z0000000O11*24%4+494@4G4N4U4\4c4j4t4{44444objfre\i386\RTL8139.sys"" B Ә87pZ!Zqq> q q" " Ӿ _$ IhҀ|Жj-" Ӏ^y!~(xe'  Cb  ӌ"@"5#or#K#+#Z D$B҆$$$)$]H% %f&8''(K)l)s)><*zҶ*!* Ӥ+ x.X.400z Ӑ0=0:14<1_1 |2/ Ӭ6> Ө@z"B}DNB109C:\NTDDK\src\network\ndis\378\objfre\i386\RTL8139.pdbot number that corresponds to the physical expansion slot where the board installed." $RTSSRV_5 = "802.2" $RTSSRV_6 = "ethernet_802.2" $RTSSRV_7 = "802.3" $RTSSRV_8 = "ethernet_802.3" $RTSSRV_9 = "SNAP" $RTSSRV_10 = "ethernet_snap" $RTSSRV_11 = "ethernet II" $RTSSRV_12 = "ethernet_II" $RTSSRV_13 = "Node Address" $RTSSRV_14 = "MediumType Select" $RTSSRV_15 = "Support mediumtype keyword : AUTO, 100FULL, 100HALF, 10FULL, 10HALF" *M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * Installation Note for Windows ME * * K* *M Microsoft had put the RTL8139A/B/C chip driver in the Windows ME system. Please plug 32-Bit PCI Fast Ethernet Adapter into PCI slot. After Windows ME starts up, it can recognize this adapter automatically. Otherwise, you can also use the driver of diskette. The procedures : 1. Open System Properties. To do this, you can : Right click on the "My Computer" icon on your desktop, then select "Properties" or Double click on the "System" icon in Control Panel. 2. Select the "Device Manager" tab. 3. Double click "Network adapters". 4. Select the "Realtek RTL8139(A) PCI Fast Ethernet Adapter" device. 5. Click "Properties". 6. Select the "Driver" tab. 7. Click "Update Driver...". 8. Click "Next" in the "Update Device Driver Wizard" dialog box. 9. Insert the Adapter Driver Diskette in your floppy drive. 10. Select "Automatic search for a better driver (Recommanded)". 11. Click the "Next>" button in the "Update Device Driver Wizard" dialog box. Windows will start to search and copy the driver. 12. When Windows prompts with "32-Bit PCI Fast Ethernet Adapter" in the "Update Device Driver Wizard" dialog box, click the "Finish" botton. 13. Remove the card's driver diskette from your floppy drive. 14. Restart your computer to initialize the network function. - All trademarks or brand names mentioned are properties of their respective companies. .  Q!) ..  Q!)RTSSRV LAN T(ODIRTL INF L$~f%RTSSRV LDI XY&#README TXT q&.5312NLM  Q!)410NLM  Q!)DOSODI  Q!)OS2ODI  $Q!)NetWare Loadable Module RTSSRV.LAN3/32-Bit PCI Fast Ethernet Adapter Driver   LONGVeRsIoN#CoPyRiGhT=F FMeSsAgEst3G t+Q/YIuG,VSfFfQ#ff#3.=t IuFYIuˁ[^Ë3ȊȈË,fDž t 1fDžd` dff+`tt+Pd/xx+hP?8P)P;| PYC=;DžPDž|ƅ= F;DžP Dž|!ƅuDžPDž|ƅU=ƅ5"ƅDžPDž|ƅƅ t+=$øODž$f f}tŲEtղuUhղ ] 33fHff@f=fDfBf/ Ջ‰DOwfWDf_fUW/_ rK3fWf_frMuKMt=K t3 ɬWf_tIfWf_frăMuW_^]fBPf@fHfHfHDž 3&UW/_K3aDž\+ƅѰ$ff? ƅѰ E=$ft$ff3ۋffGOwf% ƅAӉߋV;K3)Džft u^U]3fFff%f˰f˰f-;tHu Hu/Ͱ9ͰSDžͰ1$ffCͲxƅ  Wi fJPl\ffPpf;H} fJs3fff/(f fJNfPfff%`<fXfCffEjDž"ղUhq?]Oɲ]W(dffP$f ffXfffpffpffQ@Yxfafpf=#f=$f=%f=&'f!ff fffff$f fdffdffQ23Yff%pf 3ff`ַhQ2 YڷQ2 Y޷Q2 YQ2 Ydff%pf 3ffuh8Q2 Y` fxfC8Q2] YfS`C9ˋhQ2/ YC9Q2 Y9Q2 Y9fS`C9ˋhQ2 YC9Q2 Y9Q2 Y9wf`C9ˋhQ2{ YC9Q2i Y9Q2W Y9 ` fxfC8~ƅѰ3Ë$ffƅѰ3Ë ffҰƅҰ$ff?3øƅҰ f?f=3{Ѳf3f3EE (3  ffu p(3,\f 1$ff f?f3fHfJfDž˰3PX Ë<Hfȋ@숅fQ8@Q@m Y=|rfC"}{{t|ذmܰfm8ذoܰfofYfHċ<@8 3S=&=ڶ[ڶŹ[Sfض=tSVR%\5صZV~PSQRT^NT^N^N^N ZY[X\`=\fض^[1[f=ض f`fCbSfCf \5ص; FF < Wx f t ftWfWdfR. 3fFb \=ص;W fZ3fڀ=[Í[Í,[Í[USVW+=Pr%5=v\5r?SPs[STf[SX;9;8A[=ڶ5}=\"55صFfCb@ 3fCbW_=PnXO f fCdذHܰHH HHHHH H$H(H,H0H4 H6H7H8H:H< H>$H@(HD,HH0HL4HP8HQ<HR@HTDHXHHYLHZPH[TH\XH`\Hp`HtdH^lHbpH|hHftHjxƅƅ؋@숅EPRQ(ذ„3fYZXE? f3fTƅ{u@u9V^u+K3fFb \=ص; 3f ffCJ f fO׺33ҾfKb33fKdfSfffJ3ɾKx(%=`(ַC9ڷC9޷99SdffQ2Yff%pf 3ۋf`ַhQ2~YڷQ2lY޷Q2ZYQ2HYdff%pf 3ffih8Q2Y` fxfC8Q2YfS`C9ˋhQ2YC9Q2Y9Q2Y9fGC9ˋhQ2fYC9Q2TY9Q2BY9wf`C9ˋhQ2YC9Q2Y9Q2Y9 ` fxfC8[$ff f?ffPffCJfX3_^[]PX _^[]PR( PffQ*P-Y\ff P(%ZXPSR0+;rZ[XËpfff`f=!#f= 'f=+f=/fDž%fDžfDž fDžpffQ@RYtff=?f=If=Sf=]f=gdff3gfffBfff.fAfff!ffffdffxfpffQ@lYfpf=Yf=#f=$f=%f=&_f!fTf fIff>ff3pff!ffQ@Y ff=fQHff f8pffOG < tOG t0C11..8Multiple boards found. Please specify the board to load the driver on: ȷз100FULL100HALF10FULL10HALFAUTOC9C999 BThe cable might be disconnected on the board. The board's DMA did not complete the write. 2The board cannot be found. 6The board did not respond to the initialization command. 3Board RAM failed the memory test. The board must be placed in a 16-bit slot. This board is configured as an NE1000. PThe board could not be configured. [The hardware configuration conflicts. 2No PCI board found in machine! Driver failed to locate PCI bus! Faild to find PCI BIOS PCI BIOS failed to initialize NIC CBIO reg! PCI board disapeared... PCI BIOS assigned adapter an illegal interrupt number The medium type specified in the command line is not supported. The Cable may be disconnected to your board. LineSpeed=%3x M Hardware setting: Slot %1d, I/O ports %4xh to %4xh, Interrupt %1xh BusNo=%2x, DeviceNo=%2x Driver is attached to board %d. WARNING: If you are adding another frame type for a previously loaded board, you need to specify the frame type from the command-line. Fullduplex environment, Halfduplex environment, @@|@r@f@B@2@@@@w@V@K@,@B@.@@@~@i@]@T@@@|@d@@@@@@@@@@y@W@Q@@@z@`@U@H@B@5@/@ @@@@@@@@@@@p@S@M@:@4@@@@@@@@@@@@@u@o@\@O@@@9@(@@@@q@f@_@O@( @ @ @ @hR@840߶۶Դxtphd`D<84$MSMScanBusInfo(@MSMSetHardwareInterrupt)@MSMScheduleIntTimeCallBack=@MSMReturnDriverResourcesw@MSMRegisterMLID0@MSMRegisterHardwareOptions@MSMPrintStringFatal@MSMPrintString k@@[@1@@@@@@MSMParseDriverParameters@MSMParseCustomKeywordsZ@MSMGetMicroTimer@@ @ @MSMDriverRemove@MSMWrtConfigSpace8 @@@MSMRdConfigSpace16@@@MSMRdConfigSpace8?@@@@MSMGetPhysical@@@@p@MSMSearchAdapter@GetCurrentTime@@1@Q@EtherTSMUpdateMulticast @EtherTSMRegisterHSM@EtherTSMGetRCB@EtherTSMGetNextSendV@@EtherTSMFastSendComplete@EtherTSMFastRcvCompletej@ETHERTSM7147 ROMO(]"@SW8019 ROM ~>&SW7149 ROMO($%SW7145 ROMO(zA&@SW8029 ROM&~>&SW8139 ROM $%DIPKT COM @YcDIPKT21COM uYv{;*L ;* ODIRTL.INF ;*L [version] InfVersion=00.01.00 signature=$CHICAGO$ Class=Net provider=%V_N% ;*L ; Manufacturer Section ;*L [Manufacturer] %V_Generic%=Generic ;**2 ; Manufacturer Name Section ;*L [Generic] %*rtl8139.DeviceDesc%=*rtl8139.Ndi, PCI\VEN_10EC&DEV_8139 ; RTL8139 ;*L ; INF INSTALL SECTION ;*L ;*L ; RTL8139 (C, DOS ODI) ;*L [*rtl8139.Ndi] AddReg=*rtl8139.Ndi.reg, rts8139.Ndi.reg, ODI.Common.CFG.reg ;*L ; .REG (Device IDs) ;*L [*rtl8139.Ndi.reg] HKR,Ndi,DeviceID,,"PCI\VEN_10EC&DEV_8139" ;*L ; .REG Common Settings for all RTL drivers ;*L [rts8139.Ndi.reg] ; key,subkey,valuname,type,value HKR,,DevLoader,,*odiload HKR,,EnumPropPages,,"netdi.dll,EnumPropPages" ; Ndi section HKR,Ndi,NdiInstaller,,"odipage.dll,odiNdiproc" ; Interfaces HKR,Ndi\Interfaces,DefUpper,,"odinsup,NovellODI32" HKR,Ndi\Interfaces,UpperRange,,"odinsup,NovellODI32" HKR,Ndi\Interfaces,DefLower,,"ethernet" HKR,Ndi\Interfaces,LowerRange,,"ethernet" ; Install section HKR,Ndi\Install,"16 Bit",,"rts8139.ODI16.Install" HKR,Ndi\Install,"32 Bit",,"rts8139.ODI32.Install" ; Remove section HKR,Ndi\Remove,"16 Bit",,"rts8139.ODI16.Remove" ; ODI 16 Bit info HKR,"ODI\16 Bit",ModulePath,,"%24%%DRIVER_32_PATH%" HKR,"ODI\16 Bit",Modules,,"LSLC32.NLM,PC32MLID.LAN" HKR,"ODI\16 Bit",DriverPath,,"%24%%DRIVER_16_PATH%" HKR,"ODI\16 Bit",NetcfgPath,,"%24%%DRIVER_16_PATH%" HKR,"ODI\16 Bit",NetcfgFileName,,"Net.cfg" HKR,"ODI\16 Bit",FileName,,"rtsodi.com" HKR,"ODI\16 Bit",LinkDriver,,"rtsodi" ; ODI 32 Bit Info HKR,"ODI\32 Bit",ModulePath,,"%24%%DRIVER_32_PATH%" HKR,"ODI\32 Bit",Modules,,"LSLC32.NLM,CMSM.NLM,ETHERTSM.NLM" HKR,"ODI\32 Bit",DriverPath,,"%24%%DRIVER_32_PATH%" HKR,"ODI\32 Bit",FileName,,"rtssrv.lan" ;*L ; Install Section ;*L [rts8139.ODI16.Install] CopyFiles=rts8139.ODI16.CopyFiles UpdateAutoBat=rts8139.ODI16.autobat [rts8139.ODI32.Install] CopyFiles=rts8139.ODI32.CopyFiles UpdateAutoBat=rts8139.ODI32.autobat [rts8139.ODI16.autobat] CmdDelete=LSL CmdDelete=N16ODI CmdDelete=NESL CmdDelete=rtsodi ; 11.11.96 CmdDelete=ODIHLP CmdAdd=LSL.COM, "-c=%24%%DRIVER_16_PATH%NET.CFG" CmdAdd=N16ODI.COM CmdAdd=NESL.COM CmdAdd=rtsodi.COM [rts8139.ODI32.autobat] CmdDelete=LSL CmdDelete=N16ODI CmdDelete=NESL CmdDelete=rtssrv ; 11.11.96 CmdDelete=ODIHLP ;*L ; Remove Section ;*L [rts8139.ODI16.Remove] UpdateAutoBat=rts8139.ODI16.AutoBatRemove [rts8139.ODI16.AutoBatRemove] CmdDelete=LSL CmdDelete=N16ODI CmdDelete=NESL CmdDelete=rtsODI ; 11.11.96 ;*L ; general Ethernet Frame-Type params ;*L [ODI.Common.CFG.reg] ; First Logical Board HKR,Ndi\params\Frame1,ParamDesc,,"1. Frame Type" HKR,Ndi\params\Frame1,default,,1 HKR,Ndi\params\Frame1,type,,enum HKR,Ndi\params\Frame1,optional,,0 HKR,Ndi\params\Frame1\enum,1,,"Ethernet_802.2" HKR,Ndi\params\Frame1\enum,2,,"Ethernet_SNAP" HKR,Ndi\params\Frame1\enum,3,,"Ethernet_II" HKR,Ndi\params\Frame1\enum,4,,"Ethernet_802.3" ; Second Logical Board HKR,Ndi\params\Frame2,ParamDesc,,"2. Frame Type" HKR,Ndi\params\Frame2,default,,2 HKR,Ndi\params\Frame2,type,,enum HKR,Ndi\params\Frame2,optional,,0 HKR,Ndi\params\Frame2\enum,1,,"Ethernet_802.2" HKR,Ndi\params\Frame2\enum,2,,"Ethernet_SNAP" HKR,Ndi\params\Frame2\enum,3,,"Ethernet_II" HKR,Ndi\params\Frame2\enum,4,,"Ethernet_802.3" HKR,Ndi\params\Frame2\enum,5,,"Not used" ; Third Logical Board HKR,Ndi\params\Frame3,ParamDesc,,"3. Frame Type" HKR,Ndi\params\Frame3,default,,3 HKR,Ndi\params\Frame3,type,,enum HKR,Ndi\params\Frame3,optional,,0 HKR,Ndi\params\Frame3\enum,1,,"Ethernet_802.2" HKR,Ndi\params\Frame3\enum,2,,"Ethernet_SNAP" HKR,Ndi\params\Frame3\enum,3,,"Ethernet_II" HKR,Ndi\params\Frame3\enum,4,,"Ethernet_802.3" HKR,Ndi\params\Frame3\enum,5,,"Not used" ; Fourth Logical Board HKR,Ndi\params\Frame4,ParamDesc,,"4. Frame Type" HKR,Ndi\params\Frame4,default,,4 HKR,Ndi\params\Frame4,type,,enum HKR,Ndi\params\Frame4,optional,,0 HKR,Ndi\params\Frame4\enum,1,,"Ethernet_802.2" HKR,Ndi\params\Frame4\enum,2,,"Ethernet_SNAP" HKR,Ndi\params\Frame4\enum,3,,"Ethernet_II" HKR,Ndi\params\Frame4\enum,4,,"Ethernet_802.3" HKR,Ndi\params\Frame4\enum,5,,"Not used" ; Node Address Override HKR,Ndi\params\"Node Address",ParamDesc,,"Node Address Override" HKR,Ndi\params\"Node Address",type,,edit HKR,Ndi\params\"Node Address",LimitText,,18 HKR,Ndi\params\"Node Address",UpperCase,,1 HKR,Ndi\params\"Node Address",default,,"" HKR,Ndi\params\"Node Address",flag,1,20,00,00,00 HKR,Ndi\params\"Node Address",optional,,1 ; Force Parameter HKR,Ndi\params\"MEDIUM",ParamDesc,,"Force Medium" HKR,Ndi\params\"MEDIUM",default,,1 HKR,Ndi\params\"MEDIUM",type,,enum HKR,Ndi\params\"MEDIUM",optional,,0 HKR,Ndi\params\"MEDIUM"\enum,1,,"Auto" HKR,Ndi\params\"MEDIUM"\enum,2,,"100FULL" HKR,Ndi\params\"MEDIUM"\enum,3,,"100HALF" HKR,Ndi\params\"MEDIUM"\enum,4,,"10FULL" HKR,Ndi\params\"MEDIUM"\enum,5,,"10HALF" ; Bus Name ;HKR,Ndi\params\"BUS",ParamDesc,,"Bus Name" ;HKR,Ndi\params\"BUS",type,,edit ;HKR,Ndi\params\"BUS",LimitText,,32 ;HKR,Ndi\params\"BUS",UpperCase,,1 ;HKR,Ndi\params\"BUS",default,,"" ;HKR,Ndi\params\"BUS",optional,,1 ; Board Number ;HKR,Ndi\params\"BOARD",ParamDesc,,"ISA Board Number" ; 11.11.96 ;HKR,Ndi\params\"BOARD",type,,int ; 11.11.96 ;HKR,Ndi\params\"BOARD",default,,1 ; 11.11.96 ;HKR,Ndi\params\"BOARD",min,,1 ; 11.11.96 ;HKR,Ndi\params\"BOARD",max,,4 ; 11.11.96 ;HKR,Ndi\params\"BOARD",step,,1 ; 11.11.96 ;HKR,Ndi\params\"BOARD",optional,,1 ; 11.11.96 ;HKR,NDI\params\"BOARD",flag,1,20,00,00,00 ; 11.11.96 ; PCI Slot # ;-% HKR,Ndi\params\"SLOT",ParamDesc,,"PCI Slot Number" HKR,Ndi\params\"SLOT",default,,1 HKR,Ndi\params\"SLOT",type,,int HKR,Ndi\params\"SLOT",min,,1 HKR,Ndi\params\"SLOT",max,,65535 HKR,Ndi\params\"SLOT",step,,1 HKR,Ndi\params\"SLOT",optional,,1 HKR,Ndi\params\"SLOT",HIN,,## HKR,Ndi\params\"SLOT",flag,1,20,00,00,00 ; Help section HKR,Ndi,HelpText,,%ODIMLID_HELP% ;*L ; File to be copied ;*L [rts8139.ODI32.CopyFiles] rtssrv.LAN,,,5 [rts8139.ODI16.CopyFiles] rtsodi.com,,,5 LSL.com,,,5 N16ODI.COM,,,5 NESL.COM,,,5 ;LSL.msg,,,5 ;NESL.msg,,,5 ;*L ; Source Disk Names & Source Disk Files ;*L [SourceDisksNames] 42=%DSK_NOVELL4%,"",0004 [SourceDisksFiles] pnpsrv.lan =42 pnpodi.com =42 pcisrv.lan =42 pciodi.com =42 rtssrv.lan =42 rtsodi.com =42 LSL.com =42 N16ODI.COM =42 NESL.COM =42 ;*L ; Destination Directories ;*L [DestinatioNdirs] DefaultDestDir =11 ; LDID_SYS rts8139.ODI32.CopyFiles =24,novell\client32 rts8139.ODI16.CopyFiles =24,novell\nwclient ;*L ; Localizable Strings ;*L [strings] ; Provider V_N=" Novell" ; Manufacturers V_Generic="" ;Paths to drivers DRIVER_32_PATH="novell\client32\" DRIVER_16_PATH="novell\nwclient\" DSK_NOVELL4="Novell NetWare Client-32 LAN driver disk" ; RTL Devices *rtl8139.DeviceDesc="32-Bit PCI Fast Ethernet Adapter for Novell Netware Client 32" ; Context help ODIMLID_HELP="The ODI driver enables you to use either 16-Bit or 32-Bit networking components." ";*L ; K* ; Novell NetWare Server Driver Description File for RTSSRV.LAN * ; K* ;*L VER: 1.00 SYN: 1.00 DR RTSSRV { DES: $RTSSRV_1 HELP: $RTSSRV_2 PAR: 2.00 PROD: 'PCI.10EC.8139.10EC.8139.10' ;@# SPROD: '32-Bit PCI Fast Ethernet Adapter Driver ' ;@# ALIAS: RTSSRV.LAN ;@# CLIENT: RTSSRV.LAN FILE: RTSSRV.LAN TIME: 15 PR SLOT { DES: $RTSSRV_3 HELP: $RTSSRV_4 TYP: DEC VAL: 1-65535 DEF: UND OUT: 'SLOT=%s' } FR FrameSelect { CD: $RTSSRV_5 CH: $RTSSRV_6 CD: $RTSSRV_7 CH: $RTSSRV_8 CD: $RTSSRV_9 CH: $RTSSRV_10 CD: $RTSSRV_11 CH: $RTSSRV_12 DEF: 1,2,3,4 } PR NODE OPT { DES: $RTSSRV_13 TYP: HEX VAL: 1-F E DEF: UND OUT: 'NODE=%s' } PR MEDIUMTYPE OPT { DES: $RTSSRV_14 HELP: $RTSSRV_15 TYP: STR VAL: AUTO , 100FULL, 100HALF, 10FULL, 10HALF DEF: UND OUT: 'MEDIUMTYPE=%s' } } DLANG: 4 ;English $RTSSRV_1 = "32-Bit PCI Fast Ethernet Adapter Driver" $RTSSRV_2 = "This driver supports PCI bus devices" $RTSSRV_3 = "Slot" $RTSSRV_4 = "Select the slot number that corresponds to the physical expansion slot where the board is installed." $RTSSRV_5 = "802.2" $RTSSRV_6 = "ethernet_802.2" $RTSSRV_7 = "802.3" $RTSSRV_8 = "ethernet_802.3" $RTSSRV_9 = "SNAP" $RTSSRV_10 = "ethernet_snap" $RTSSRV_11 = "ethernet II" $RTSSRV_12 = "ethernet_II" $RTSSRV_13 = "Node Address" $RTSSRV_14 = "MediumType Select" $RTSSRV_15 = "Support mediumtype keyword : AUTO, 100FULL, 100HALF, 10FULL, 10HALF" LANG: 6 ;French $RTSSRV_1 = "32-Bit PCI Fast Ethernet Adapter Driver" $RTSSRV_2 = "This driver supports PCI bus devices" $RTSSRV_3 = "Slot" $RTSSRV_4 = "Select the slot number that corresponds to the physical expansion slot where the board is installed." $RTSSRV_5 = "802.2" $RTSSRV_6 = "ethernet_802.2" $RTSSRV_7 = "802.3" $RTSSRV_8 = "ethernet_802.3" $RTSSRV_9 = "SNAP" $RTSSRV_10 = "ethernet_snap" $RTSSRV_11 = "ethernet II" $RTSSRV_12 = "ethernet_II" $RTSSRV_13 = "Node Address" $RTSSRV_14 = "MediumType Select" $RTSSRV_15 = "Support mediumtype keyword : AUTO, 100FULL, 100HALF, 10FULL, 10HALF" LANG: 7 ;German $RTSSRV_1 = "32-Bit PCI Fast Ethernet Adapter Driver" $RTSSRV_2 = "This driver supports PCI bus devices" $RTSSRV_3 = "Slot" $RTSSRV_4 = "Select the slot number that corresponds to the physical expansion slot where the board is installed." $RTSSRV_5 = "802.2" $RTSSRV_6 = "ethernet_802.2" $RTSSRV_7 = "802.3" $RTSSRV_8 = "ethernet_802.3" $RTSSRV_9 = "SNAP" $RTSSRV_10 = "ethernet_snap" $RTSSRV_11 = "ethernet II" $RTSSRV_12 = "ethernet_II" $RTSSRV_13 = "Node Address" $RTSSRV_14 = "MediumType Select" $RTSSRV_15 = "Support mediumtype keyword : AUTO, 100FULL, 100HALF, 10FULL, 10HALF" LANG: 8 ;Italian $RTSSRV_1 = "32-Bit PCI Fast Ethernet Adapter Driver" $RTSSRV_2 = "This driver supports PCI bus devices" $RTSSRV_3 = "Slot" $RTSSRV_4 = "Select the slot number that corresponds to the physical expansion slot where the board is installed." $RTSSRV_5 = "802.2" $RTSSRV_6 = "ethernet_802.2" $RTSSRV_7 = "802.3" $RTSSRV_8 = "ethernet_802.3" $RTSSRV_9 = "SNAP" $RTSSRV_10 = "ethernet_snap" $RTSSRV_11 = "ethernet II" $RTSSRV_12 = "ethernet_II" $RTSSRV_13 = "Node Address" $RTSSRV_14 = "MediumType Select" $RTSSRV_15 = "Support mediumtype keyword : AUTO, 100FULL, 100HALF, 10FULL, 10HALF" LANG: 14 ;Spanish $RTSSRV_1 = "32-Bit PCI Fast Ethernet Adapter Driver" $RTSSRV_2 = "This driver supports PCI bus devices" $RTSSRV_3 = "Slot" $RTSSRV_4 = "Select the slot number that corresponds to the physical expansion slot where the board installed." $RTSSRV_5 = "802.2" $RTSSRV_6 = "ethernet_802.2" $RTSSRV_7 = "802.3" $RTSSRV_8 = "ethernet_802.3" $RTSSRV_9 = "SNAP" $RTSSRV_10 = "ethernet_snap" $RTSSRV_11 = "ethernet II" $RTSSRV_12 = "ethernet_II" $RTSSRV_13 = "Node Address" $RTSSRV_14 = "MediumType Select" $RTSSRV_15 = "Support mediumtype keyword : AUTO, 100FULL, 100HALF, 10FULL, 10HALF" LANG: 12 ;Portuquese $RTSSRV_1 = "32-Bit PCI Fast Ethernet Adapter Driver" $RTSSRV_2 = "This driver supports PCI bus devices" $RTSSRV_3 = "Slot" $RTSSRV_4 = "Select the slot number that corresponds to the physical expansion slot where the board installed." $RTSSRV_5 = "802.2" $RTSSRV_6 = "ethernet_802.2" $RTSSRV_7 = "802.3" $RTSSRV_8 = "ethernet_802.3" $RTSSRV_9 = "SNAP" $RTSSRV_10 = "ethernet_snap" $RTSSRV_11 = "ethernet II" $RTSSRV_12 = "ethernet_II" $RTSSRV_13 = "Node Address" $RTSSRV_14 = "MediumType Select" $RTSSRV_15 = "Support mediumtype keyword : AUTO, 100FULL, 100HALF, 10FULL, 10HALF" LANG: 9 ;Japanese $RTSSRV_1 = "32-Bit PCI Fast Ethernet Adapter Driver" $RTSSRV_2 = "This driver supports PCI bus devices" $RTSSRV_3 = "Slot" $RTSSRV_4 = "Select the slot number that corresponds to the physical expansion slot where the board installed." $RTSSRV_5 = "802.2" $RTSSRV_6 = "ethernet_802.2" $RTSSRV_7 = "802.3" $RTSSRV_8 = "ethernet_802.3" $RTSSRV_9 = "SNAP" $RTSSRV_10 = "ethernet_snap" $RTSSRV_11 = "ethernet II" $RTSSRV_12 = "ethernet_II" $RTSSRV_13 = "Node Address" $RTSSRV_14 = "MediumType Select" $RTSSRV_15 = "Support mediumtype keyword : AUTO, 100FULL, 100HALF, 10FULL, 10HALF" LANG: 10 ;Korean $RTSSRV_1 = "32-Bit PCI Fast Ethernet Adapter Driver" $RTSSRV_2 = "This driver supports PCI bus devices" $RTSSRV_3 = "Slot" $RTSSRV_4 = "Select the slot number that corresponds to the physical expansion slot where the board installed." $RTSSRV_5 = "802.2" $RTSSRV_6 = "ethernet_802.2" $RTSSRV_7 = "802.3" $RTSSRV_8 = "ethernet_802.3" $RTSSRV_9 = "SNAP" $RTSSRV_10 = "ethernet_snap" $RTSSRV_11 = "ethernet II" $RTSSRV_12 = "ethernet_II" $RTSSRV_13 = "Node Address" $RTSSRV_14 = "MediumType Select" $RTSSRV_15 = "Support mediumtype keyword : AUTO, 100FULL, 100HALF, 10FULL, 10HALF" LANG: 1 ;Chinese (Simplified) $RTSSRV_1 = "32-Bit PCI Fast Ethernet Adapter Driver" $RTSSRV_2 = "This driver supports PCI bus devices" $RTSSRV_3 = "Slot" $RTSSRV_4 = "Select the slot number that corresponds to the physical expansion slot where the board installed." $RTSSRV_5 = "802.2" $RTSSRV_6 = "ethernet_802.2" $RTSSRV_7 = "802.3" $RTSSRV_8 = "ethernet_802.3" $RTSSRV_9 = "SNAP" $RTSSRV_10 = "ethernet_snap" $RTSSRV_11 = "ethernet II" $RTSSRV_12 = "ethernet_II" $RTSSRV_13 = "Node Address" $RTSSRV_14 = "MediumType Select" $RTSSRV_15 = "Support mediumtype keyword : AUTO, 100FULL, 100HALF, 10FULL, 10HALF" LANG: 16 ;Chinese (Traditional) $RTSSRV_1 = "32-Bit PCI Fast Ethernet Adapter Driver" $RTSSRV_2 = "This driver supports PCI bus devices" $RTSSRV_3 = "Slot" $RTSSRV_4 = "Select the slot number that corresponds to the physical expansion slot where the board installed." $RTSSRV_5 = "802.2" $RTSSRV_6 = "ethernet_802.2" $RTSSRV_7 = "802.3" $RTSSRV_8 = "ethernet_802.3" $RTSSRV_9 = "SNAP" $RTSSRV_10 = "ethernet_snap" $RTSSRV_11 = "ethernet II" $RTSSRV_12 = "ethernet_II" $RTSSRV_13 = "Node Address" $RTSSRV_14 = "MediumType Select" $RTSSRV_15 = "Support mediumtype keyword : AUTO, 100FULL, 100HALF, 10FULL, 10HALF" LANG: 13 ;Russian $RTSSRV_1 = "32-Bit PCI Fast Ethernet Adapter Driver" $RTSSRV_2 = "This driver supports PCI bus devices" $RTSSRV_3 = "Slot" $RTSSRV_4 = "Select the slot number that corresponds to the physical expansion slot where the board installed." $RTSSRV_5 = "802.2" $RTSSRV_6 = "ethernet_802.2" $RTSSRV_7 = "802.3" $RTSSRV_8 = "ethernet_802.3" $RTSSRV_9 = "SNAP" $RTSSRV_10 = "ethernet_snap" $RTSSRV_11 = "ethernet II" $RTSSRV_12 = "ethernet_II" $RTSSRV_13 = "Node Address" $RTSSRV_14 = "MediumType Select" $RTSSRV_15 = "Support mediumtype keyword : AUTO, 100FULL, 100HALF, 10FULL, 10HALF" T*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * Netware Server ODI Driver Installation Overview * * K* *M Contents of the file: = A) Driver Installation for Netware Server 4.11, 5.0 B) Driver Installation for Netware Server 3.12, 4.10 C) Driver Installation for DOS32 D) Driver Installation for Microsoft Windows 3.x E) Driver Installation for Microsoft Windows 95 OSR2 F) Driver Custom Keywords A) Driver Installation for Netware Server 4.11, 5.0 =0 1. On the server console, execute the INSTALL.NLM program: LOAD INSTALL <- If you use NetWare 4.11 LOAD NWCONFIG <- If you use Netware 5 2. Choose "Driver Options (load/unload ...)" and press . 3. Choose "Configure network drivers" and press . 4. Choose "Select a driver" and press . 5. Press the key to install the driver which is not on the list. 6. Press to specify a different path (A:\NETWARE) and press . 7. The RTSSRV.LAN should appear on the selection list. Press to choose it. 8. You can "Select/Modify driver parameters and protocols", and then "Save parameters and load driver". 9. You can add the LOAD and BIND command lines to the AUTOEXEC.NCF file so that the LAN driver will be loaded automatically while the server is starting up. B) Driver Installation for Netware Server 3.12, 4.10 =1 B.1 Driver Installation for NetWare Server 3.12 1. Insert Driver Diskette in your PC's floppy drive (A: or B:). 2. Change to the NetWare Server directory (for example: CD\SERVER.312) 3. Copy the following files from Driver Diskette to the NetWare Server directory. \NETWARE\312NLM\NBI31X.NLM \NETWARE\312NLM\MSM31X.NLM \NETWARE\312NLM\ETHERTSM.NLM \NETWARE\RTSSRV.LAN 4. Sample AUTOEXEC.NCF for NetWare Server 3.12 AUTOEXEC.NCF = LOAD C:NBI31X LOAD C:MSM31X LOAD C:ETHERTSM LOAD C:RTSSRV FRAME=ETHERNET_802.2 NAME=E_8022 LOAD C:RTSSRV FRAME=ETHERNET_802.3 NAME=E_8023 LOAD C:RTSSRV FRAME=ETHERNET_II NAME=E_II LOAD C:RTSSRV FRAME=ETHERNET_SNAP NAME=E_SNAP BIND IPX E_8022 NET=10 BIND IPX E_8023 NET=20 BIND IPX E_II NET=30 BIND IPX E_SNAP NET=40 B.2 Driver Installation for NetWare Server 4.10 1. Insert Driver Diskette in your PC's floppy drive (A: or B:). 2. Change to the NetWare Server directory (for example: CD\NWSERVER) 3. Copy the following files from Driver Diskette to the NetWare Server directory. \NETWARE\410NLM\NBI.NLM \NETWARE\410NLM\MSM.NLM \NETWARE\410NLM\ETHERTSM.NLM \NETWARE\RTSSRV.LAN 4. Sample AUTOEXEC.NCF for NetWare Server 4.10 AUTOEXEC.NCF (one board) = LOAD C:NBI LOAD C:MSM LOAD C:ETHERTSM LOAD C:RTSSRV FRAME=ETHERNET_802.2 NAME=E_8022 LOAD C:RTSSRV FRAME=ETHERNET_802.3 NAME=E_8023 LOAD C:RTSSRV FRAME=ETHERNET_II NAME=E_II LOAD C:RTSSRV FRAME=ETHERNET_SNAP NAME=E_SNAP BIND IPX E_8022 NET=10 BIND IPX E_8023 NET=20 BIND IPX E_II NET=30 BIND IPX E_SNAP NET=40 AUTOEXEC.NCF (two boards) = LOAD C:NBI LOAD C:MSM LOAD C:ETHERTSM LOAD C:RTSSRV SLOT=3 FRAME=ETHERNET_802.2 NAME=E_8022_1 LOAD C:RTSSRV SLOT=3 FRAME=ETHERNET_802.3 NAME=E_8023_1 LOAD C:RTSSRV SLOT=3 FRAME=ETHERNET_II NAME=E_II_1 LOAD C:RTSSRV SLOT=3 FRAME=ETHERNET_SNAP NAME=E_SNAP_1 LOAD C:RTSSRV SLOT=4 FRAME=ETHERNET_802.2 NAME=E_8022_2 LOAD C:RTSSRV SLOT=4 FRAME=ETHERNET_802.3 NAME=E_8023_2 LOAD C:RTSSRV SLOT=4 FRAME=ETHERNET_II NAME=E_II_2 LOAD C:RTSSRV SLOT=4 FRAME=ETHERNET_SNAP NAME=E_SNAP_2 BIND IPX E_8022_1 NET=10 BIND IPX E_8023_1 NET=20 BIND IPX E_II_1 NET=30 BIND IPX E_SNAP_1 NET=40 BIND IPX E_8022_2 NET=50 BIND IPX E_8023_2 NET=60 BIND IPX E_II_2 NET=70 BIND IPX E_SNAP_2 NET=80 C) Driver Installation for DOS32 = 1. If you have completed installed the Netware Client 32 for DOS, all you have to do is to modify STARTNET.BAT. Please see the sample STARTNET.BAT below the installation instructions. 2. In DOS environment, run "INSTALL" from Netware 4.11 CD root directory. Follow the installation steps of Novell NetWare Client 32. - When "Select the type of installation desired" window appears, select "Client Installation". - When "Select Client to be installed" window appears, select "NetWare Client 32 for DOS and Windows 3.1x" - When the product manual appears, mark the "Netware Client 32 for DOS" item, then press . 3. In "32-Bit Network Board Drivers" window, select "USER SPECIFIED 32 BIT DRIVER". 4. Insert 32-Bit PCI Fast Ethernet Driver Diskette into your floppy diskette drive, then specify the driver path like A:\NETWARE. 5. Select "32-Bit PCI Fast Ethernet Adapter Driver", then press . 6. Refer to Content F) and set the correct driver parameters to comply with your network environment, then press to continue. 7. Following instructions to complete the Client32 for DOS software installation. 8. Reboot your machine. Sample STARTNET.BAT for DOS32. = SET NWLANGUAGE=ENGLISH C:\NOVELL\CLIENT32\NIOS.EXE LOAD C:\NOVELL\CLIENT32\LSLC32.NLM LOAD C:\NOVELL\CLIENT32\CMSM.NLM LOAD C:\NOVELL\CLIENT32\ETHERTSM.NLM LOAD C:\NOVELL\CLIENT32\RTSSRV.LAN FRAME=ETHERNET_802.2 LOAD C:\NOVELL\CLIENT32\RTSSRV.LAN FRAME=ETHERNET_802.3 LOAD C:\NOVELL\CLIENT32\RTSSRV.LAN FRAME=ETHERNET_II LOAD C:\NOVELL\CLIENT32\RTSSRV.LAN FRAME=ETHERNET_SNAP LOAD C:\NOVELL\CLIENT32\IPX.NLM LOAD C:\NOVELL\CLIENT32\CLIENT32.NLM D) Driver Installation for Microsoft Windows 3.x =- Please refer to Content B), in step 2, mark "NetWare Client 32 for DOS" and "NetWare Client 32 for Windows", then following step 3..8 to complete the installation. E) Driver Installation for Microsoft Windows 95 OSR2 =1 If you have installed the Microsoft Client in your Windows 95 system, you should remove the adapter object and NDIS3 driver of the 32-Bit PCI Fast Eternet Adapter from the Windows 95 system and delete C:\WINDOWS\INF\NETRTS.INF file. Install Novell NetWare Client 32 for Windows 95 OSR2 -4 1. Plug 32-Bit PCI adapter into one of the Master PCI slots of your PC. 2. Turn the PC power ON and then boot from Windows 95. 3. Windows 95 will prompt "PCI Ethernet Controller" in "New Hardware Found" dialog box. Please click on "Cancel" and do not install driver now. 4. In WIN95 environment, run "SETUP.EXE" in the Netware 4.11 CD named \PRODUCTS\WIN95\IBM_ENU directory. Follow the installation steps of Novell NetWare Client 32. 5. In "Select Device" window, please select "[detected net drivers]" and click on "OK" button to follow the installation steps of Client 32. (Please do not click "Have Disk..." to install adapter driver now.) 6. After following the instructions to complete the Client32 for WIN95 software installation, reboot your machine. Install Driver After Novell NetWare Client 32 for Windows 95 is Installed -I 1. Make sure Novell NetWare Client 32 is installed OK and then instal!@l 32-Bit PCI Fast Ethernet Adapter Driver again. When the PC is powered on, Windows 95 will prompt "PCI Ethernet Controller" in "New Hardware Found" dialog box. (If your adapter is not detected by Windows 95, refer to TroubleShooting below.) 2. Remove the 32-Bit PCI adapter Driver Diskette in your floppy drive. Click on "Next" button and do not let WIN95 search adapter driver. 3. Insert the 32-Bit PCI adapter Driver Diskette in your floppy drive. Click "Other Locations" and type "A:\NETWARE", then click "OK" button. The message "32-Bit PCI Fast Ethernet Adapter for Novell Netware Client 32" will appear. 4. After the "Finish" button is clicked, Windows starts to copy files from Windows 95 CD-ROM to your hard disk. When the "Copying Files" dialogue shows up to request the directory for the "RTSSRV.LAN" file, type "A:\NETWARE" and click on the "OK" button. 5. Follow the screen's prompt to insert "NetWare Client 32 for Windows 95" disk and click the OK button in the "Insert Disk" dialog box. 6. Otherwise enter the full pathname (ex. D:\PRODUCTS\WIN95\IBM_ENU) of the "NetWare Client 32 for Windows95" installation files in the "Copying Files." dialog box, then click the OK button. 7. Follow the screen's prompt to insert the "Windows 95 CD-ROM" and click the OK button in the "Insert Disk" dialog box. 8. Otherwise enter the full pathname of the "Windows 95 CD-ROM" installation files in the "Copying Files..." dialog box, then click the OK button. 9. Windows 95 will copy the driver (RTSSRV.LAN) from A:\NETWARE to C:\NOVELL\CLIENT32 directory. 10. Remove the 32-Bit PCI adapter Driver Diskette from your floppy drive. 11. Restart your computer to initialize the network function. NOTE: - C:\NOVELL is the directory where your Novell Client 32 files are located. - C:\WINDOWS is the directory where your Windows 95 O.S. is located. - Do not remove "Novell ODINSUP" from the Network control panel. Removing Novell ODINSUP also removes NetWare Client 32 for Windows 95 if there is only one adapter in use. TroubleShooting in Windows 95 - If your adapter is not detected by Windows 95 "New Hardware Found", your adapter may be already REGISTERED. Therefore, you have to remove the REGISTERED before you install adapter driver again. Method: 1. Click "Network" icon in the "Control Panel" box to make sure your adapter driver not installed. If your adapter driver was installed, remove it. 2. Select "Start" button (left-down corner) and select "Run" item. Type REGEDIT, the registry edidor utility , then click "OK" button to execute it. 3. In the Registry Editor dialogue, double-click "HKEY_LOCAL_MACHINE" item, double-click "Enum", then double-click PCI item. Select the "VEN_10EC&DEV_8139", then delete it. Close Register Editor dialogue. 4. Reboot Windows 95 again to carefully follow the installtion procedures above again. F) Driver Custom Keywords = SLOT: If you want to install mutiple LAN adapters in a server, you have to use the keyword, SLOT, to let driver locate the right adapter. For example: LOAD RTSSRV SLOT=1 FRAME=Ethernet_802.2 NAME=Lan_1 BIND IPX TO Lan_1 NET=2001 LOAD RTSSRV SLOT=2 FRAME=Ethernet_802.2 NAME=Lan_2 BIND IPX TO Lan_2 NET=2002 MEDIUMTYPE: The keyword "MEDIUMTYPE" is provided for specifying adapter's speed and duplex mode. There are five medium values: AUTO, 10HALF, 10FULL, 100HALF, 100FULL. MEDIUMTYPE=AUTO ;operate on auto negotiation mode MEDIUMTYPE=10HALF ;operate on 10M/HalfDuplex mode MEDIUMTYPE=10FULL ;operate on 10M/Fullduplex mode MEDIUMTYPE=100HALF ;operate on 100M/HalfDuplex mode MEDIUMTYPE=100FULL ;operate on 100M/Fullduplex mode For example: LOAD RTSSRV SLOT=1 MEDIUMTYPE=100HALF FRAME=Ethernet_802.2 NAME=LAN_A BIND IPX TO LAN_A NET=11 - All trademarks or brand names mentioned are properties of their respective companies. WrtConfigSpace32)@]@RdConfigSpace8)@Y@RdConfigSpace16)@Y@RdConfigSpace32)@Y@GetCardConfigInfo)@U@ SearchAdapterN*@\@GetCurrentTime u@@@@@.  Q!)..  Q!) ETHERTSMNLM z#2MSM31X NLM # NBI31X NLM IPQ#`bNetWare Loadable Module ETHERTSM.NLM$Q&n2c2)D-*%.2$ (Novell Ethernet Topology Specific Module LONG ETHERTSM.NLMVeRsIoN#= CoPyRiGhT=?(C) Copyright 1990 - 1997, by Novell, Inc. All rights reserved.MeSsAgEsn2 n2n2W==s = @`0 LLE(tE}BfC"t$={Nr PtC(%MXPY E3֋MXu}>6CFfC fF"fC"(HFF4 F4FIu< t<@33Í{ fK"HC({(vC(+CC,{uHC0tHCCCCCCCCC C C!C!Ctc5CuK5fK"Pu tEU@SH\[]EEeXhPQhtS[$h[u tEU@SH\[]EEe94$'< Dž<Dž4YXp`E{o8;LW  tFЋ8 3V<8A 󥉅8<<^YG3ÉfWfG4H`teEu\<tSO~G3fOu?IwO4fCXf%f=t Du<4`3Ë<fVL;88ft9uf9WtIuI S]؃DtDxfCXf%f=u<4`[Áw#:KLvKLAEu33øøfC" x H ɹ 3IuGIt?tGIu33H?tGFvDC$΋QxY <4`D3 t= thu*h tlu l3 t Džh t9hu-Džh t9lu Džl3 th`a`^ HC}f}EF0Gw0w>fC" LSC!fC"}3D$t$aø D$t$a3 D$t$a CACSRtnCTCB, [!^k@@\HEfC`}MtVS3E[^}EF0Gw0w>fC"uUhZlc]Etu UhZlt ME@H\EEEufC`u}MxԃVS3E[^fC" tJUhZl_JGGdGKNIF0;=F=?GdOO3ɋT4*ThT8TlA;r߃PI_J3ËG4GVWN0v4h_^sCNH;fWdP_J3ˍWhN,<+393A;r֋@H\_JE}US[]E ËG4G~0wGG4GhF,GlGdNj^0V4 t2JJKu_Jw03ËUEƹ z4r0r>KNF0;=_=+3ɋT4ThT8TlA;rߍw43VWȍv4h_^8CNH;+Wdw43Ë@H\E}E Ã~0wۋGGhF,GlGdS^0V4 t2JJKu[w43ËF,f~~s;C(G wJ@$=<s<f~ G~sFGfFfGBfW$G3Ë@M@H\$;lu9EU] ËF,f~~s;C(G w@$=<s<f~ G~sFGfFfGfFfG$G3ËF,f~~s;C(G EЃ=<s<f~ G~sFGFGfW$~uF G&G3ËNG$fG$G =<vыG ;C(G AGǍv+&3ËF,f~~s;C(G wЃ=<s<f~ G~s/FGfFfGfW$F G&FG*G3clib.imp end @@H\HwN H<B~=NHLl}7v0~0G0Fl@@빋~0OAC@@@ libfile ads]fC"tv ^N,f~~s K~tHfC"ucE M-E^ u MMefC"u3hE Dž@Džxt|V$<u3DHf=;f|J] fC`3FfFF!+C;K(F DD<Dt ;CF D<F |<f|@F 3 Ë];K(v ttVt<^h]3F$Ë@t@8Vt<^h3F$Ë@t@ Vt<*^hN3F$ÃtVt<r^hu#3F$^t]؃hu3F$ËV$3Ƀ|rDDHf=w2f|Jt)DJ%=tDLtDLtID<G|+6GGC$fGFG FGth<F43ȉOGG뷉t|<OF ăt f=;f~] VfC`H+CDt:փDt u f~ 4>fCXS4>f~F f=]w]f~t]f~u ~u] tÁt]ÃrkF f=w_;v trGf~t,VtFt Ft+y tËV$DHf=w9f|Jt)DJ%=tDLtDLtK+ˉN,#n osname='N t|~,tt]fC"t<V4+ЍDt$ _^[]øKWVQ3Q5Y^_3USVWl$t$|$$\$ 3_^[]USVWl$t$_^[]USVWD$$ȃ%p l$t$L$ |$(3Ɲ_^[]USVWl$t$_^[]USVWD$$ȃ%p l$t$L$ _^[]USVWl$t$*_^[]ødUSVWD$$ȃ%p l$t$L$ Ë\$(\$, 3_^[]USVWD$$ȃ%p l$t$L$ |$(3Ɲ_^[]USVWl$t$x_^[]USVWD$$ȃ%p l$t$L$ /_^[]USVW3t$F0%-x؋~4~8V^ã#ˋ2=F4GF0GF8G wFGG0LJ#lvLsvss;sK󤍻wG0G4>G8wCGGfG>C,< 3z_GG GGl$#]fCBC<#2#(PCLPCHP #WCP_^[]USVWl$t$~_^[]USVWl$_^[]UmԋuF#uFZF fF$jF(nF,rFLu  K Iuu$},ff#fI]USVW|$t$|$_^[]XXptxhm51cG* 77  0 d ETHERNET_802.3 ETHERNET_IIETHERNET_802.2 ETHERNET_SNAP  a@IUnable to allocate memory. OThe MLID did not initialize MSMTxFreeCount. ~The group bit in the node address override was cleared. The local bit in the node address override was set. ETHERTSM-NW-125: The TSM's version number does not match the version of MSM.NLM. ODI_SPEC_VERSION: 3.31MEDIA = v3.61 (971208)  $(,048<@DHLPTx|@@"@(@,@k@f@o@s@y@}@ @ @Mn @@@/@@(@8@T@S@X@i@n@s@x@~@@@ @U!!@!@=#@MSMPhysicalEqualsLogicalJ MSMGetPhysList@ @MSMGetPhysical@+@MSMGetPhysicalAddressOfECB ]@~@@@"@n@@@@GetNLMVersionInfoa@LSLFastRcvEvent@@l@LSLFastSendComplete J@@@@ @1 @% @B @ @@LSLHoldRcvEventJ@N@@LSLSendCompletem@@"@OutputToScreen@MSMAlloc@H@:@MSMAllocateRCBR@@@@T@MSMBitSwapTableMSMCanonicalModeMSMControlStackFilterQ@MSMEnqueueSend@@@@@MSMFastRcvEventBelow16@@g@MSMFileServerMajorVersionNumberMSMFileServerMinorVersionNumberMSMFree@@MSMGetTSMIFLevel9@MSMGetVersionNumber)@MSMHoldRcvEventBelow16@S@@MSMPrintStringWarning@%@MSMRegisterTSM@1@MSMReturnRcvECB@[@B@@CACSAdapterTempPtr!H!!"""V# CACSAlloc!@CACSCHSMAdapterDataSize &!h!!"\#CACSDriverRegistered #CACSDriverTable"CACSFree"@CACSFindMessagesi#@CACSPrintError"@ CACSRtnCTCB@#@ CACSGetCTCB@CACSGetNumberCustomCounters @!EtherTSMBuildTransmitControlBlock EtherTSMCancelPrioritySendEtherTSMGetConfigInfoEtherTSMFastRcvCompleteEtherTSMFastRcvCompleteStatuspEtherTSMFastProcessGetRCBEtherTSMFastSendComplete EtherTSMGetASMHSMIFLevelEtherTSMGetNextSendGEtherTSMGetRCBEtherTSMProcessGetRCBEtherTSMRcvCompleteEtherTSMRcvCompleteStatusEtherTSMRegisterHSMEtherTSMSendComplete'EtherTSMUpdateMulticastZ"CEtherTSMBuildTransmitControlBlockCEtherTSMCancelPrioritySend CEtherTSMFastProcessGetRCB#CEtherTSMFastRcvCompletecCEtherTSMFastRcvCompleteStatus}CEtherTSMFastSendCompleteCEtherTSMGetHSMIFLevelCEtherTSMGetRCBCEtherTSMProcessGetRCB CEtherTSMRcvComplete] CEtherTSMRcvCompleteStatusw CEtherTSMRegisterHSM CEtherTSMSendComplete#CEtherTSMUpdateMulticast#CEtherTSMGetConfigInfo$ MSM|MSM31XBAGF SMP_BagSMP APIs to not be marshalledSMPD#XNetWare Loadable ModuleMSM.NLM78+{ocW+ q0#Novell Generic Media Support Module  LONGVeRsIoN#G CoPyRiGhT=?(c) Copyright 1990 - 1997, by Novell, Inc. All rights reserved.MeSsAgEsgEJ:@~gd~~~~P~US\$ ['k=E t =# .Nt}c`3aE=,U.]t`MaM[] QU.]Y u tヽt=t`UR u'Z]}t%+=[raZ]aaIzpUSVWD$\$ذT$R_^[]P=XÍE tANuD$g ufK`C$ uÃt `MaPSU][Xt}`3EapE;Iu;]E tUIuC\PX t USP[]CUR aZ]}PP=X ufK`C$ uЋ9ut+=[rꋅ@PXQpYË=øh tiM='5d󥍵=h󥋅P~ ~X- u Pefc`USVWD$QRЋ- .]  f9P$ IumZY_^[]øZY_^[]USVWD$QR- G] PQW_g YXIuыm뼃XZY_^[]øZY_^[]USVWt$D$QRЋ- =xHGW.%_g t$mЋ‹]f;C&uEZY_^[]øZY_^[]USVWQRT$D$ 8(D$$]+؋*- :]  f9Pb Iumы\$ +\$$ ZY_^[]D$ ZY_^[]`]3D$  ta`Q]ع`Y &M F=FF 1/3D$ a3#Í33Ã|u @3hS|E tfJ`NuM tM='5d󥍵=h󥋅P~ ~XU- 9Am P]3Ћ9ut+=[rꋅ@PXuPE tfb`IueЋ9ut+=[rꋅ@PXU]Z u uÃM t`='5d󥍵=h󥋅P~~X- u P ~A~~wø%]؃>})3EUX] MUX] t$,]؜D})3EUT] MPÝUT]P=u=Ë-UEh}Q3E]d]Etu Ult M uu]- j}mU}H3E\]Etu Ult ME] ^ fCX>fFĀ1$<'fC` E0uM]U}uE M܁E \]Etu UltE M3ø u.]M܁E E3] ]M \]PEtu Ul]X ËM(MV]}tU YEME P]Etu UlE .M3] Ãtu럋MtuUSVW= fMSfM5b =lD$XSRy8PZ[<5 < 59*= 5|H LSLu LENH.t?܍ tB5z t4 uB5zt u5|5j\3+ȉ `=xu=| = 3ALRT=xtALRI5ht$ 5 XhPLPRht$ 5 PPh  5c `hEVNTht$ 5 <Th/jjjP 5 hh1jjj5T 5 lhU1jjj5T 5 pD$ 3= = D$< ( D 3+5#[XPX3=L .5(5,5 d$ 5 L 3P _^[]Ë+G _^[]Ë- ^9MuP='5d󥍵=h~~X]럋mË- M@=~{Um] t[$ t QU]YIu]]ظ@ t_,S?Um] t]C\QPXYIu]xUm] t[$ t QU3]YIu]]ظ@ t_,S?Um] t]C\QPXYIu]]؃tUSVDž^[]t/PL t PX=t! t;u]Cx~PXwHu5=uPhCB165v8vF=W5 5 <5=u=tk -m t 9tN@4 5 K5N,v4Pv0v( 5  5 5߉=5C|CCfCLCh5{4uFlC4{VuCV CW=\3@+=\Ot75X WY t +G5\fK`C({w { wCNCN=wCN5=d P 3V[X Í==GGXG\=35=<  %=tG u 4 r uYM ub3? uW32 v$wt u uUS  []E9-'3 Ë= u(5XhB 5 3=A5v >׋5\=>>@t3F> t>t ~.u@ .CFGjj@PhhhP u@,h@Wj5=u5jj 5?D? t? u G3 =P  =u5XPd$ tÜ5<jPd$ tPu0Pd$ tÜ0jPd$ t-P8u ÜСH=u&R5@5D5d$ Z tHHI0PjR ÜPVW_^VW_^PQRPZYf~t=it ËFQRVZY+ t wUEPEPQ]U]##UEPQ]] ø WRQYZ_ u=t ︂ UEPQ]] ø UEPQ]] ø UEPEPEPE0P]MUu] =t ︂ RPSQYZ3RPSQYZ3RPSQYZ3PSQY[XPSQY[XPSQY[XQhhhh h 5  $=ffOfG fGfGhh=u 5 P5 XY WRPVSQY Z#H=(=$= = #UЃ EPEPSRQEPu##uU}EPWRZM#]#RUQEPEPS Y}# ;M]Z#ËCfC ffCJfC(EȋEu uV!X á tPd@dlCECESUˍCٍsӋ4][ 53 DfS$USC5pC@5tƍ[]}uMM3Ë QRVhN5X^ZYQRVhY5X^ZYRQf>s63fP׋Ƌ=l>h 5XV5X RQ3~Asff~uMI$QPP5jjjj j0Ë8u!P<F4XHt3F$Ë@@ ÃPu3F$;Es3F$Ë}t.l t$lfF~ F<F43F$Ëf~llF fFf~t֋~ G$F$G(F(N4#+΃N,vȃw G4+ƉF4llfGf~t֋~ G$F$G(F(N4+΃N,vȃw G4+ƉF4llfGPQ5=tu 5=Su 5= 4u 5=uB t=<=u> uF t,< t(5jhjhh -D=jhjhh -jhjhh x5ff9r^F9rLfFf9w=F9w%53]NF tG=t*33F> t<0r<9w ,0Ȭ<0r<9v33ËPC\Pd$=5 $`-Sd u SxuSl 5h {bE؍pbtm  f9ukC\苅CffC fC&ffCJEȉC(u؋CۋCl\Cr\9 P `d@0d 5 5 5Xdx=dp4H0 ͉AXv t6K8V؋R8R8ZuVWqz _^uԋVf;B&fB&f@f=Ff@v t6K8V؋R8R8ZuVWqz _^uԋVf;B&f@뼉uo䉅fC&kC\]؋5dv󥁽s+3@5h=t<0 48<mF++C(-<E5dvv8vF5p)󤉽Cl\Cr\3P ùI t ;uAG䍅+7d@VgX ÍPC\Pd$Kl \Kr \ÍC\PXÍ5 d=,{x{yd@T\ njfSxf]d@T\ >3d  u0555d$ 5 Ȁ{xXQjC`% PDQPCx= u=u =u EPd$Y 5 ue{yVjC`%@PDQPCy= u=u =u EPd$ 5 u3ËVsX US5 d@PX [$=u*55 5d$ 5 t*$3[]Í5F VX []US5 d@LT tP0=u*5(5,5d$ 5 t0P3[]VnX []Í5: d@\d t-3V/X RZUSVW- tEM]3ɸ؝_^[]øø  uÐ 3St M E[USVW 5h5l5ph ( =t ( D =t4 PXD ohf_^[]USVW- t:]fC``t(t}E}3m uƝ_^[]USVW- t3]fC``t!tEH MMm u͝_^[]+á! t! +UEPSQYfUҋ]##UEPEPRZM]]##RWPSQY Z#=#Ü`Etu Ul]aÃPu{rvtI=t@8tR3Vt G<F43F$6uމG_^3P338u >A;u뮋몋@@333 t 6^ÃdtEte3ø ÃdtEuM3ø WVQ3Q5T Y^_ÅzVWQH|t\;tXffffffGFfffPS\[X uY_^øEttt uøøÅtu牭 $,L Dž 4PVt$SUn^Vv$fFVV ^F ][^EeQRWVUSQR t C\PXZYIu[USs t{bQfY[IuٍUSQR tPC\Pd$=ZYIu[^_ZYZY[^_ZY#nF#F #3S7[@F3FF=[=PD =u75(5,5 d$ trD SVU4 PX]^[Eu[( =u455 5 d$ t"(  V^Eu  #t,}F=t =t} t97t?3ø ø Ë- u}qu tF6u tRF;F}63F~f]SUF][=uEtu Ul]]t54 V^Ë- m}^u tF6u tIF;F}63F~]SUF][Etu Ul]밋m닍 t.BLQRSB,PZY u@@3ø#S t9#u4@ t!;tQRB,PZY3[#ø#t~ tW=q8 _V34$fFF ЃQRWV8lu:^XN\V`~h$FdVv_^[]USVWD$_^[]USVWD$@ 0_^[]USVWl$UmԋE@\E|]}# 3_^[]USVWl$D$b_^[]USVWD$_^[]USVWL$_^[]USVW|$t$|$_^[]USVW_^[]USVWt$ +fEfE3EfE} "3U]fM  u ut$f_^[]USVW\$|$ +fEfE 3Ef]E U]#u#uu "3 _^[]USVW1_^[]USVWD$_^[]USVWL$t$|$ p|$_^[]USVW_^[]øøUSVW3ۋӋL$|$#I7L$0(=$= = _^[]USVWl$D$t$_^[]USVW\$=_^[]USVWD$8_^[]USVW=D$PP _^[]USVW=D$PP_^[]USVW=D$PP_^[]USVW=D$PP_^[]USVW=D$\$L$PSQP$ _^[]USVW=!D$ \$L$T$PSQRP(_^[]USVWD$PD$t$L$ T$$#u=r =wq-=9=5=1=-=)=%(B!| uz_^[]USVWL$|$t$ P_^[]USVW--uF<4F@8FD<\$=$P@PSXM=|$/-K8=lPjԉU]+]U RRQ #::GÉG YZzGEzGE B# zGE$XLPRC$ZXPP@P}XwX= 3ۉ3ۉ_^[]USVWl$#t$nu },f#Q#tE(fvV2v#FG"u^ 2GGl$mԍ}luLl$\$ 93%GC$D$_^[]USVWl$\$T$_^[]USVWl$_^[]USVW##P@PX3_^[]USVWt$R_^[]USVWl$t$Q_^[]USVWl$t$_^[]USVW_^[]USVWl$\$UmԋEHTMt]3_^[]USVWl$_^[]US#VWD$@-0@ 0_^[]USVWL$|$t$ _^[]USVWl$\$h_^[]USVWl$\$_^[]USVWl$_^[]USVWl$L$_^[]USVWl$\$t$_^[]øøPQRV33ҋ^ZYXøUSVWl$u6vF_^[]USVWl$݋D$s:r*wFOu6v~s:wr#FOfCC_^[]Íu6VD_^[]USVWl$E_^[]`I K][$ u]ԃ}jU]Ea3Ë][$Wa `]ԃ MU]][$!aUSVWQR3-E-E -\ E - E -$EEfEfCBWEfE!S<R=sVvN^vH<@IuUS4= =5 F # 5\ F # 5F # 5v> VS3Si3ҍkmm5$v>'QR|GVWHZY# B;uค7|{EdudX]_SQRWVUmԋ8]#^3M#QXQPY#U](%UmԉEdEh]I 3^_ZY[SQW33ҋN~#t%#t!?u_#tKBC;u @#t_Y[# UmUtHUm3VSUm][^SUmU|][WQVSUmԋ8#C$FPSUm][= =3!=GUԅC$=3jQSU][Y= #Ujjj  B(P3B(BPP3BPBhP3BhBdB03B0r4B4#QR~6WZYr8B8#RV6V^Z`U tC$=3ajQSU][Y= =XXX3XXXRQVSUmUx][ = BQSUm][= ËEԋ#SU][= ESUm][= VSUm][= =3Um]PUm]mԋUfR`f  %3@mPUm]mԋUfR`f  %3@mQY}ԍ t SVWU$X 11T$hu  %#\$xuĀ]_^[0҈#05#fSB|)fu0ۈ#11ɉL@uL$tL$dD$lt$dD$xx8WC8PBugS10 tFS9rS 9s-D$l1T$hfC& #9v\$lD$hE\$lL$dt$tFL$dt$t T$t;PF=#h! )Q/D$x@Bj$PVWRS0*u2jjSj$QĀ]_^[ËD$xHBD$|.1OrfGvPD$XPm@D$TPV.xt6RV-1GxPD$XP1@D$TPV-yt6QV-1GyPD$XP?D$TPV-zt6RV-1GzPD$XP?D$TPVc-{t6QVH-1G{PD$XP}?D$TPV'-<QV -1fGbPD$XP>D$TPV,WV,|$pC|$p9PRV,=1ۃt9vVj D$XPWVtR Q#uСtRD$XP,<tD$TP =Vj_D$xHBD$xT$xjBRD$DPU |$xt\v\D$xjfT$|@RUD$HPBR LQT$xB<ЊrCpCD$`Ā]_^[ÐSVt$ T$1#ӅtSV0Ƀ #tu0=#^[ËxYYYYYYYYY ZY%ZZZYYYZZB[B[[-[SVWU$$D$hjP$CPj|$  D$Hf=%.$XD$!D$!D$!D$!yD$!lD$!bD$!XD$!ND$"DD$ ":D$"0D$$"&D$4"D$<"D$H"D$P"$P$P$P$PD$Peƅugf|$u/$R$Q$V$WD$P.$Q$V$W$PD$PUD$!xD$f=g%.$Y1S fEf9sMfC fEfC1{ fEj9s6fC fEj,1K fEp9sfC fEp1S fEv9sfC fEvjPD$SCD$ P ]_^[Í@/\[[[[[[[[[[[[[[[\[SVWU\$|$l$fC1f=%.$l[CP&T$$RL$$QUWsVƃ]_^[Ë[]D$ 0D$$0]_^[fsf r*v@frft,If@:ff"SKQ{t$$VD$$PUWSRƋC{W>]_^[Ës;s s;ss;s t$$VD$$PUWSRƊ'8]_^[ËD$$PT$$RUWKQoƋ/t[]_^[ËCED$ D$$1]_^[ËD$$PT$$RUWKQƃ]_^[þ]_^[ÐSVWUt$,T$(-R\XD$t35D$ W\$,S5 $QSJ5D$PSh)6 D$ 0҈)D$0T$ L$()؋T$)9~  $QS5WS4D$ O| ]_^[PSh)6 D$0)D$4L$ )t|$u ]_^[À;%t ]_^[1CP\$C<$t US4ÊuB;%t ]_^[1CPC #t US3Êstct[t ]_^[À;[u`QS2ÊCCr1]_^[Ë a!a6aMadayaaaacacb6ba cbSVWUl$ T$0R\$0SL$0Qt$0VUC$t $fEHf=%.$t`\$E Cx$]_^[Ë\$E Cy$]_^[Ë\$fE fCd$]_^[Ë\$fE fCh$]_^[Ë\$E Cz$]_^[Ë\$E C{$]_^[Ë\$E Cl$]_^[Ë\$E Cr$]_^[Ë\$fE fCb$]_^[Ë\$fE f$]_^[Ë\$fE fCZ$]_^[ËE $#$]_^[ËD$PU$]_^[1e|$]S0v!WSdRj\$,SE)}11Bt2WPF0uPWhVj|$,WIF ;pr|$u?UF4jD$ UP1 D$ƀ$]_^[ËE #$]_^[ÐSVWU$$$1ҋX$$t#$E@$j%P/u0$$$f@0$f=@r!f=f=tf=0f= xP$$P1fBPfB0$ %P$$RP )Q=WV nP$h UPR$1fBPfB0$ %P$QBP=)W-UVu($$@$@B P1f$$P1fBPfB0$ %P$PRR )Q=W$hU)PRt1ɋ$$@ q$$@ UP1f$$P1fBPfB0$ %P$WBP-)UPV;$$$@$t t8t7$PS.$ P$WS< 8$VD$P-%$\$PƉڊ%u@LPB(C%t8u닄$011lP$$$H$$PD$TPV ;${$UV,UV-Ƌ$Ӱ%݈D$PM%u@LPB(C%t8u0lP$R+$hD $G9P$Ĵ]_^[ËSVWU \Xpx|$tD$80$<1f=rvf=r&vf= tf=uL$t$ T$|$T$ RY/L$(f=#u]˅tW|$ WS4,ǃÅtAD$ P +UW5+t?u;\$(t1CPU*uut =#(D$8=#th|)@Bu]jD$ PQVWl$8U$|)HBt$ytYu#0Ɉ #=#u+|)@Bu =#u|$4Wl$DU+|$,jPD$DPT$ $@EM1vꋬ$m|z@9r>w)VRS&$@ 0䈤$1Q$PEUD$TP'D$PP$RQ$PWR$Q9끋$@@P4ǃƅu!$PWĘ]_^[Ë$@/1v$mTW@9rNQD$P&$FB 1|$x$1f$PEP ubURD$TP&D$PP$QR$Q$EBBT$xB$T$xG9uD$xvFPD$P&*0>$tnUS%xPS$g$@@PƒƅuWPĘ]_^[Ë$@ 1v$m|z@>9rnUD$P%$FB 1D$|D$t1f$PEP: uTURD$TP%D$PP$Q4R$QEGD$t@D$tD$|@D$|9{D$tvFPD$P%"0투$t nUS% PS #$R!$@R$Qy$W$UaRUL$Hf= Q%.$lS$j$%PD$ P$1U$P$P$RhX"'$D$lS$j$%PD$ P$1R$P$Q$Wh`"$D$lS$j$%PD$ P$1W$P$U$Phh"$D$lbS$j$%PD$ P$P1$P$R$Qhp"=$D$l>w#D$l|$lj$<$RS1jf$PD$ P$1U$P$P$R$QŃ$0ɉD$l #fr!!frf pffT$pRS؃9L$pQPHusS HD$h;s)lUSX $D$hB Ƅ$NQS0 $WUVUĘ]_^[Ë1v7$$PRSBt$E$9r;.$$h jSD$h>t!1vD$h;Bt E9r;.s Ƅ$*1f$PD$lP #t$T$l-#$ShD$dtvD$d;Bt E9r;.s Ƅ$1f$PD$hPV #tƄ$D$lk%#$WS^D$d>t!1vD$d;Bt E9r;.s Ƅ$1f$PD$hP #t$T$l5#$$WjVjĘ]_^[Ë$WjVjzD$lĘ]_^[Ð-yzeyzyzySVWUl$$h0ۉT$lƉD$d$QV@$PV RV $0$u;)t1CPW\u룉]_^[Ë~ˁׁSVWUl$D$ 1H$D$$5Ƌ6|)P8RN8QT$f f.$1UFx91Fy;Ewp1MfFd9aZ1UfFh9uOK1Fz;EuC?1MF{9u51E;Flu+'E;Fru!1UfFb9u1f;Euߋ $C $ ;X]_^[ËSVWU`\$tD$PD$PPD$\PD$\PD$hPSfsfCCuT$PRL$\Q|$\Wl$hUSfs`]_^[Í@SD$@@P1ۣ)h#%#1[D$%$%ËD$%$%ËD$%$%ËD$%$%ËD$%$%ËD$%$%ËD$%$%ËD$%$%ËD$%$W%ËD$%$%ËD$%$ %ËD$%Í@D$S\$S%tC[É[ÐS\$StC [É[ÐSVD$ T$ƉÊ @uH@BXu^[ËSD$$PT$R\$S# 1ɉ $[ËSD$`P:t ZX1[ÀH[SVWU\$Sƃ0r/ArFar"fw9O +rvG-t>C uVmtC띋kM1k]_^[Ë{CO{]_^[ÀKC uЋJu1]_^[Ësk Fsk JC t tC t1KA3KN3u s]_^[SƃXrvLbrv xt@Bt{ uC 1{ u1;u1C  k ;uC Ju1]_^[ËsS FsS ts xЅu C $9S x K xɃkEkH%tWSVt0'Vus VRt7WK 9rK듸{]_^[Í@SVW\$|$c$^u1Ӊ $hD$W4%P1C ]t-u$C1ҊSC]t:u14-u%1ɊK]t1C9}$C48@VF9}$:뻉؃_^[ÐSVWU$1ҋ$$|$$$݋$$< r< vL< rvF<%qt,$xPt39t $$|9$#$xP<P't $|$Cw$$x$CC<[r\"D$WD$ PKu]_^[SD$T$ t t :u x@Bu:%H[Í@SD$Ɋ @u)H[Í@SD$\$ 1Ҋ9t Š @u1[ËSVt$ L$&t%1Ȅu P@t:u8uSCuۉ)^[ËS\$L$ 08u P@8t:u:0t[É؊C8u1[SVD$ t$11Ҋ9uɊ @u^[SVt$ L$&t%1Ȅu P@t:u8tSCuۉ)^[ËSVW\$t$؉t?t9;t2Ê+@8u$ljZB9@8uuuG_^[É8u1_^[ËSD$T$ @BXu[ËSVD$ \$T$BJv @ CHul1Ja@XSVWU\$3V11u3V`tsC+r v-uEsCVt)1 k 0)C;Wuuމ]_^[ÐSVWt$1ۊSu!StF1ۊSt<1&Wt0W*7F>Wpuʉ_^[Í@SVWU|$\$م}۽ 1ډ0ډFÅ߅}F-W7P1~ :@1ɊHF $ KH $JK9|]_^[SVU t$D$ 1ۉƒT$L$S ~L$7L$ىӊT$1L$0L$ىӍL$ wVVH1ۉD$~(l$B1HJC $HMJ $l$H9|܃ ]^[ÐST$BX@tArZw݀ ([ÐST$BX@tarzw݀ ( SVWU|$t\$ u1%ku>= s5=t P莣t>T$ ]_^[Ã=t @BGNR ALRT1 i. LSLControlStackFilterALRTIORSINTPMLIDECBS2TIMRGAESPaCB16CNMT{@ `P0pH(hX8xD$dT4t L,l\<|B"bR2r J*jZ:zF&fV6vN.n^>~A!aQ1q I)iY9yE%eU5u M-m]=}C#cS3s K+k[;{G'gW7wO/o_?;0..9A..F0..9 F7 6 GThe matching virtual adapter could not be found. HA resource tag is unavailable. IUnable to allocate memory. JThe hardware interrupt cannot be set. [The hardware configuration conflicts. KThe MLID cannot be registered with the LSL. LThe polling procedure cannot be added. MThe event notification routine cannot be registered. NThe firmware file cannot be read. OLAN/WAN driver was written for a NetWare version prior to 4.11 and may not work properly. Contact your adapter vendor for an updated driver. PUnable to register a new physical adapter. TUnable to allocate memory below the 16 Megabyte boundary. VThe driver parameter block is incorrect. WThe media parameter block is too small. YCannot schedule interrupt time call back before MSMRegisterMLID. \Cannot schedule AES without an HSM routine. ]Cannot schedule interrupt time call back without an HSM routine. ^Cannot set hardware interrupt without an HSM routine. _Cannot add polling without an HSM routine. `Require BUS= parameter to load LAN driver bFailed to obtain SMP Mutex due to low memory, driver load aborted MSM31X-NW-023: You can only load MSM31X on a NetWare v3.11 or v.3.12 Server. MSM31X-NW-025: You cannot load MSM31X on a NetWare v3.10 Server. MSM31X-NW-026: On a NetWare v3.11 server, you must load LSLENH.NLM before you load MSM31X.NLM. MSM31X-NW-099: Error initializing CMSM functions. The MSM is unable to parse a required custom keyword. WARNING: FATAL: -NW-%03d: -NW-%03d-Adapter %x-Board %x:    Alloc Memory Hardware Options Hardware ISR MLID Board ECB Buffers Timer Call-Backs AES Call-Backs Polling Procedure Cache Below 16 Meg Non Movable CacheMSM Event NotificationMSM Alloc MemoryMSM Polling ProcedureMSM = v3.71 (971202)= ''`( MSMPUnable to allocate memory. QDriver Custom Counter Strings are too long for available memory. Node number is invalid and was ignored NWCACS,! Q6!Q\ F!Q >!UB!QFRAME=%sNODE=%sMSBLSBFDMODEOFF KMKLK@LMM6N[NNNK KNDriver Reset FailureFRAMEINT=%XINT1=%XPORT=%XPORT1=%XDMA=%XDMA1=%XMEM=%XMEM1=%XSLOT=%UCHANNEL=%URETRIES=%UBUFFERS16=%UBELOW16NODE=%16sBUS=%sNAME=%sINT0PORT0DMA0MEM0ODI Command Resource TagMSM: Unable to get command resource tag REMOVENETWORKINTERFACEADAPTER??? Unknown Command ??? RESETSHUTDOWNSROUTENo Such Board , No Such Adapter This function is not supported by this driver. Bad Parameter Operation Failed No Such Driver e eeeR ( H    !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~MeSsAgEsService SuspendService ResumeService/Status ChangeSuspend RequestMLID ShutdownMLID Card RemovalMLID Not In RangeMLID Hardware FailureMLID Cable DisconnectMLID Media Access DeniedMLID ResetMLID Card Insertion CompleteMLID In RangeMLID Cable ReconnectMLID Access Point ChangeMLID Speed ChangeMLID Config Table ChangeMLID DeRegister Resource ChangeMLID ReRegister Hardware Options ChangeI@B@;@4@@͞@@w@E@#@@@t@`@R@@@@М@@@@@r@^@@@@@@@t@\@L@<@$@@@@@@J@6@&@@@@ޙ@ƙ@@@@@@@i@X@R@M@H4@+@@@@k<@V<@<<@%<@<@ <@<@;@;@;@ ` \ ($ L@ӗ@̗@ė@@@@@o@܏؏ԏЏ̏ȏď|xtplhd`\XTPLHD@<840,($  ܎؎ԎЎ̎ȎĎxtplhd`\XTPL@@@r@^@J@6@"@@@@ɂ@Â@@#@zI@8@ @n@~}@n}@|@|@o|@M|@+|@|@ |{{{{{{{{{{@8{@z@gz@y@y@y@\y@)yx@x@tx@w@Rw@/w@vvvvvvvmv@Iv@u@u@Zu@6u@s@#s@ s@r@or@ r@qq@q@p@co@9n@m@*m@l@l@Bl@,l(l$l lllll llllk@j@rj@i@;i@h@h@h@h@h@h@xh@fh@^h@Fh@g@Xg@e@e@e@d@d@pd@id@d@d@9c@c@b@b@b@Zb@b@a``````````````|`x`t`F`@^@^@^@4^@ ^@ ^@]@[[[[[[[[[[[[[[|[x[t[p[l[Z!Z@Z@ Z@Z@Y@Y@Y@Y@Y@Y@Y@Y@Y@Y@Y@|Y@tYYYY YYYYXXXXXXXXXXXXXXXXX@X@X@W@W@W@gW@TW@(W@V@V@V@{V@?V@V@U@U@HU@U@T@T@RT@T@S@S@S@BS@R@R@R@RR@3R@ R@Q@Q@Q@uQ@VQ@QQ@HQ@Q@P@P@P@P@P@P@SP@O@O@O@O@O@lO@;@;@;@;@;@;@;@;@;@s;@m;@b;@;;@9@9@9@9@9@9@t9@g9@Z9@D9@>9@99@-9@9@9@8`87@7@H7@:7@7@6@6@56@/6@6@6@6@6@5@5@5@5@5@5@f4P4@3@3@j3@2@2@{2@1@1@]1@ 1@0@0@0@0@0@0@00@0@~0@/@/@/@/@/@/@/@/@h/@a/@P/@J/@D/@7/@%/@ /@/@.@.@.@.@.@.@.@.@v.@R.@I.@.@-@-@-@-@-@-@-@-@M-@.-@,@,@,@,@,@,@x,@n,@O,@E,@7,@(,@,@+@+@T+@N+@:+@%+@+@+@+@*@*@*@*@>*@)@)@)@)@)@)@)@)@)@)@q)@h)@])@A)@5)@&)@(@{(@q(@_(@D(@'@'@'@'@'@{'@c'@T'@<'@0'@'@'@'@&@&@&@&@&@&@&@i&@a&@R&@M&@3&@(&@&@ &@%@%@%@%@%@$%@%@%@%@%@%@c%@]%@F%@@%@2%@+%@%@%@ %@$@$@$@$@$@$@$@$@$@q$@U$@G$@8$@&$@$@#@#@#@#@#@#@#@#@#@x#@f#@`#@Y#@G#@A#@8#@&#@ #@#@!@h!@@3@%@@@@@@@@@@r@@@@@@@w@W@@ @@@@@@@@k@c@X@G@A@;@.@@@@@@@@@@@@@@v@je@Z@C>@3@@@@@@@@@@@@@@x@m@d@^@T@E@;@#@@ @ @ @ @ @ @W @N @A @2 @ @ @0 @) @ @ @ @@#@@ @@@@@@@@@@]v@@|@(@@@@@@@@HD@<840,($  @  D8, iea]YUx3-LSLServiceEventsE@GetUniqueIdentifierParametersx@@2@GetNBIConfiguration?@GetInstanceNumberMapping?@1@k@GetInstanceNumber?@1@;@IOConfigurationListO~A~CSetB @NY@CMovBU[@FX@X@ CVSemaphore@ CPSemaphore,@GetRealModeWorkSpace@DoRealModeInterruptl@UnRegisterEventNotification0@0@0@UnRegisterConsoleCommandn@SetInputToOutputCursorPositionO{@q%@$@ScheduleSleepAESProcessEvent@7@5@x4@z/@ @h @ScheduleInterruptTimeCallBack7@=6@.@@@ ScanBusInfoE@o@ RingTheBell%@%%@RemovePollingProcedure0@RegisterHardwareOptions7@25@,@P(@RegisterForEventNotification@{@O@ParseDriverParameters$@RegisterConsoleCommand]@OutputToScreenO@@K@)@@@d@@>@{@F{@&@l%@K%@$@!@!@ @ @OpenFileUsingSearchPath@ NBIRequestV?@>@MapDataOffsetToAbsoluteAddressm@@@MapAbsoluteAddressToDataOffset4@L@LSLUnBindThenDeRegisterMLID@8@LSLReturnRcvECB8@8@3@8"@"@ "@LSLRegisterMLIDRTag6 @LSLHoldRcvEventI"@LSLGetSizedRcvECBRTag8@2@!@LSLGetMaximumPacketSizeS@LSLFastRcvEvent"@LSLDeRegisterMLID>@LSLAddProtocolID{ @KillMe-@@@ INWDOSClose@InputFromKeyboard{@%@$@GetSystemMemoryMapB@GetNestedInterruptLevel8@4@10@!0@@@GetCurrentTime >@)@@@9@$@S@>@4@@ SearchAdapterE@@GetCardConfigInfo>@@RdConfigSpace32B@@RdConfigSpace16B@@RdConfigSpace8B@@WrtConfigSpace32F@@WrtConfigSpace16F@@WrtConfigSpace8F@@ GetBusInfoy>@@ GetBusType>@:@ GetBusTag>@$b@@GetBusSpecificInfo>@@ GetBusName~>@@Free <@<@$@@@*@@@@@EnableInputCursorX{@v%@$@DoEndOfInterrupt @ @} @DisableInputCursor{@&@P%@DeRegisterHardwareOptions >8@4@,@@ @@@h@@ConvertStringToUnsignedLong'@&@&@W&@ CloseFile@CFindResourceTagu@Q@CancelSleepAESProcessEventL@0@p@N@CancelInterruptTimeCallBackM@0@,@AllocateResourceTag #@"6@5@U/@.@-@@@@L@(@@@Allocv<@\<@x@,@@&@AddPollingProcedureRTag@InternalPublicListExternalPublicList SetHardwareInterruptj.@ .@ LoadedList QueueSystemAlertw!@FreeNonMovableCacheMemory@FreeBufferBelow16Meg@FileServerMinorVersionNumber FileServerMajorVersionNumber EnableHardwareInterrupt% @Y @DisableHardwareInterrupt @K @ClearHardwareInterrupt@@CRescheduleLastS0@*0@@$@AllocNonMovableCacheMemory@AllocBufferBelow16Meg@L@GetHighResolutionTimer WriteFile^ ,NESL_MLID_ReRegister_Hardware_Options_ChangeT)$NESL_MLID_DeRegister_Resource_Change4)NESL_MLID_Config_Table_Change)NESL_MLID_Speed_Change )NESL_MLID_Access_Point_Change(NESL_MLID_Cable_Reconnect(NESL_MLID_In_Range(!NESL_MLID_Card_Insertion_Complete(NESL_MLID_Reset(NESL_MLID_Media_Access_Denied(NESL_MLID_Cable_Disconnectv(NESL_MLID_HW_Failure`(NESL_MLID_Out_RangeN(NESL_MLID_Card_Removal<(NESL_MLID_ShutDown.(NESL_Suspend_Request(NESL_ServiceStatus_Change(NESL_Service_Resume'NESL_Service_Suspend'CACSGetNumberCustomCountersHK CACSGetCTCB_J CACSRtnCTCBJCACSPrintError&GCACSNumberFrames@GCACSFindMessagesPCACSFree<CACSDriverTableP!CACSDriverRegisteredCACSCHSMAdapterDataSize CACSAllocR<CACSAdapterTempPtr MapBusMemory G FreeBusMemoryGCMSMYieldWithDelayFCMSMWritePhysicalMemory}FCMSMWrtConfigSpace32FCMSMWrtConfigSpace16FCMSMWrtConfigSpace8FCMSMUpdateConfigTablesFCMSMTCBPhysToLogFrags_FCMSMSuspendPollingLFCMSMShutdownMLIDFCMSMSetHardwareInterruptECMSMServiceEventsECMSMSearchAdapterECMSMScheduleAESECMSMScanBusInfoE CMSMReturnRCBECMSMReturnMultipleRCBsECMSMReturnDriverResourcesTECMSMResumePollingAE CMSMResetMLIDFCMSMReRegisterHardwareOptionsFCMSMRegisterResource&ECMSMRegisterMLID8DCMSMRegisterHardwareOptionsBCMSMReadPhysicalMemoryBCMSMRdConfigSpace32BCMSMRdConfigSpace16BCMSMRdConfigSpace8BCMSMPrintStringBCMSMParseSingleParameter<CMSMParseDriverParameters@OCMSMNESLRegisterProduceraACMSMNESLRegisterConsumer3ACMSMNESLProduceMLIDEventACMSMNESLProduceEventACMSMNESLDeRegisterProducerACMSMNESLDeRegisterConsumer@CMSMInitParser CMSMInitAlloc@CMSMIncrCounter@CMSMHardwareFailure|@!CMSMGetUniqueIdentifierParametersw@CMSMGetUniqueIdentifier?CMSMGetSlotName? CMSMGetSlot?CMSMGetPollSupportLevel?CMSMGetPhysList?CMSMGetPhysical?CMSMGetNBIConfiguration?CMSMGetMicroTimer?CMSMGetInstanceNumberMapping?CMSMGetInstanceNumber?CMSMGetHINNameFromHIN)?CMSMGetHINFromHINName>CMSMGetCurrentTime>CMSMGetConfigInfo>CMSMGetCardConfigInfo>CMSMGetBusType> CMSMGetBusTag>CMSMGetBusSpecificInfo>CMSMGetBusName}>CMSMGetBusInfox>CMSMGetAlignmente> CMSMFreePagesR>CMSMFree;>CMSMEnableHardwareInterrupt=CMSMEnablePolling=CMSMECBPhysToLogFrags=CMSMDriverRemove=CMSMDisableHardwareInterrupt=CMSMDeRegisterResource=CMSMControlComplete= CMSMCancelAESq=CMSMAllocateRCB==CMSMAllocPages<CMSMAllocateMultipleRCBs = CMSMAlloc<CMSMAddToCounter<PhysicalToLogical\MSMYieldWithDelay 0MSMWrtConfigSpace32MSMWrtConfigSpace16MSMWrtConfigSpace8MSMWritePhysicalMemory+MSMUpdateConfigTablest3MSMSuspendPolling+3MSMSMPActvFlagpMSMShutdownMLIDMSMSetHardwareInterrupt,MSMSearchAdapterMSMScheduleTimere5MSMScheduleIntTimeCallBack.MSMScheduleAESCallBack/MSMScanBusInfoVMSMReturnRcvECB"MSMReturnMultipleRCBs2MSMReturnDriverResourcesMSMResumePolling 3 MSMResetMLIDMSMReRegisterHardwareOptions4MSMRegisterTSMGMSMRegisterResource7MSMRegisterSharedMemory,MSMRegisterODINEB8MSMRegisterMLIDMSMRegisterHardwareOptionsB(MSMReadPhysicalMemory$MSMReadEISAConfigMSMRdConfigSpace32MSMRdConfigSpace16MSMRdConfigSpace8MSMPrintStringWarning MSMPrintStringFatal MSMPrintString MSMPhysicalPageSize|MSMPhysicalEqualsLogicalMSMParseDriverParameters#MSMParseCustomKeywordsMSMNESLRegisterProducer :MSMNESLRegisterConsumer9MSMNESLProduceMLIDEvent$:MSMNESLProduceEvent3:MSMNESLDeRegisterProducer:MSMNESLDeRegisterConsumer:MSMModuleHandle MSMIOCTLJumpTableMSMInterrupt2ProcedureCallMSMInterruptProcedureCall MSMInitFree MSMInitAlloc MSMHoldRcvEventBelow16@"MSMHoldRcvEvent@"MSMHardwareFailure9MSMGetVersionNumber0 MSMGetUniqueIdentifierParameters2MSMGetUniqueIdentifierYMSMGetTSMIFLevel0MSMGetPollSupportLevel1MSMGetPhysListA:MSMGetPhysicalAddressOfECBJMSMGetPhysical<MSMGetMicroTimer/ MSMGetLogical2MSMGetInstanceNumberMapping1MSMGetInstanceNumber1MSMGetHINNameFromHIN;MSMGetHINFromHINName;MSMGetCardConfigInfoMSMGetConfigFromHINBMSMGetConfigFromAdapterName MSMGetConfigFromLogicalBoardNamen"MSMGetConfigFromLogicalBoardNumber MSMGetBusType. MSMGetBusTagMSMGetBusSpecificInfo MSMGetBusName MSMGetBusInfoMSMGetConfigInfoL3MSMGetAlignmentw MSMFreePagesMSMFreeMSM#'FileServerMinorVersionNumberMSMFileServerMajorVersionNumberMSMFastRcvEventBelow16"MSMFastRcvEvent"MSMEnqueueSend MSMEnablePolling/MSMDriverSendCallMSMDriverRemoveMSMDriverControlShimpMSMDriverControlCallMSMDeRegisterSharedMemory,MSMDeRegisterResource8MSMDeRegisterODINEB9MSMControlStackFilterMSMCanonicalModeMSMCancelTimerf6MSMCallBackProcedureMSMBitSwapTableMSMASCIIToDWord(MSMAllocateRCB! MSMAllocPagesMSMAllocateMultipleRCBsi2MSMAllocbMSMAlertWarning! MSMAlertFatal$!MSMAESProcedure LogicalToPhysical`MSMMPKActvFlagt NBI|NBI31XNetWare Message File: NWCACS 1.06, Tran v1.0 7DXn3N]r)@k@yQaw.=:Cd   " ' / 6 ; C K V a n x  6 C N e j o     ; v   ( 1 z   * @ V o z  DDDF~<<< BAD MESSAGE >>>Total Tx Packet CountTotal Rx Packet CountNo ECB Available CountPacket Tx Too Big CountPacket Tx Too Small CountPacket Rx Overflow CountPacket Rx Too Big CountPacket Rx Too Small CountPacket Tx Misc Error CountPacket Rx Misc Error CountRetry Tx CountChecksum Error CountHardware Tx Mismatch CountTotal Rx OK Byte CountTotal Tx OK Byte CountTotal Group Addr Tx CountTotal Group Addr Rx CountAdapter Reset CountAdapter Opr Time StampTx Queue DepthCMSM Init Alloc MemoryCMSM-NW-072: A resource tag is unavailableFATAL: Unable to reset MLID. Unloading module %s. CMSM Event NotificationCMSM Polling RoutineCMSM-NW-76: The polling procedure cannot be added.CMSM-NW-77: The event notification routine cannot be registered.%s-NW-%03d: Cannot add polling without an HSM routine. %s MLID Board%s-NW-%03d: A resource tag is unavailable. %s-NW-%03d: The MLID cannot be registered with the LSL. IPX%s-NW-%03d: Unable to allocate memory. %s-NW-%03d: The media parameter block is too small. %s Alloc Memory%s Cache Below 16 Meg%s Hardware Options%s-NW-%03d: The firmware file cannot be read. %s-NW-%03d: The hardware configuration conflicts. %s-NW-%03d: The matching virtual adapter could not be found. %s ECB Buffers%s-NW-%03d: Cannot set hardware interrupt without an HSM routine. %s Hardware ISR%s-NW-%03d: The hardware interrupt cannot be set. %s Timer Call-Backs%s AES Call-BacksABEND, ECB Linear Address with no Physical Address, address not locked down. %.8s-NW-%.8s-NW-Adapter %x-Board %x: %s%.8s-NW-Adapter %x-Board %x: %d:%s . using I/O ports to and , Memory , Interrupt , DMA Channel SLOT Select Board To Load : 10INT=%XINT1=%XPORT=%XPORT0PORT1=%XDMA=%XDMA0DMA1=%XMEM=%XMEM0MEM1=%XSLOT=%UCHANNEL=%URETRIES=%UBUFFERS16=%UBUFFERS16BELOW16NODE=%16sNODEBUS=%sNAME=%sINT0 =]Board name is too long and was truncated: %s Board name %s is already in use and was ignored. Missing the value for keyword '%s'. -+012345678901234567890123456789ABCDEFabcdef ..~YyNnDo you want to load another frame type for a previously loaded board? : n Enter the value for : Supported values are : . , Enter Value for between - %sCommand Line Parameter Prompt for %s%s-NW-%03d: The specified node address override is invalidA Keyword was out of range or a required parameter is missing. FRAMEEvent registration with NESL failed. LSBODI_CSPEC_VERSION: 1.11Error parsing for driver parameter. MeSsAgEsCoPyRiGhT=(c) Copyright 1996, 1997, by Novell, Inc. All rights reserved.LaNgUaGe= English (English)ODI Command Resource TagService ResumeMSM: Unable to get command resource tag Suspend RequestMLID ShutdownMLID Card RemovalMLID Not In RangeMLID Hardware FailureMLID Cable DisconnectMLID Media Access DeniedMLID ResetMLID Card Insertion CompleteMLID In RangeMLID Cable ReconnectMLID Access Point ChangeMLID Speed ChangeMLID Config Table ChangeMLID DeRegister Resource ChangeMLID ReRegister Hardware Options ChangeVeRsIoN=1.01 Novell Media Support Module message file.Service SuspendService/Status Change.=:CdNetWare Loadable ModuleNBI.NLMjjkq}%(hF,)NetWare Bus Interface  LONGVeRsIoN#A CoPyRiGhT=1Copyright 1997 Novell, Inc. All rights reserved.MeSsAgEst=tÃ=tu1SVt$\$hALRThD$PD$  uh VhCNMThDt$ =uhWhTIMRht$ uh론=ru< s    =v hKu= s h 6Qt Jt=u - ;d:#t:uC;dt;Du @;lt;Lu *;rt;Ru ;pt;Pu C듃= u;Tt hJk^It@aa=t =Ifu1tu Px t hi=|th'=t'=u= uh[hV<$th[V=u<$u =|t5j6S1 ^[y a== jhh=uQ= uHjhh u$S-jhhd=Y= Ljhh^ f %.S-^jh^h == jh^h Ny8Pu‰ S8u)1ۋP5‹(u[ST$11@ B˃rT$ @ B˃r؃?[SVWt$\$|$SV;pu;Xu \$1_^[Ë@u_^[S\$D$ ڃ?@$tP9u T$1[Ë@u[ST$ CfZ"f;X u7Z;Xu/fZPf;Xu%xtX[ { uS P1ɉB[Ëu[SD$PD$Pt$t$ D$u [@D$f@D$T$PD$T$PD$T$fP"|$t1ҋD$P$D$@FD$@JD$Pt$ t D$@D$=uD$h1ED$J;Hu%@;Bw-D$u D$ D$t K;HuӋuuD$$D$P$D$xufx"uD$xD$fx"t P to…D$f@"fB D$f@PfBD$@BD$@BD$BP= u  1[Í@")07>t$ƒ|$w/D$.$ 1tPD$ hP SD$ T$Wf;CuOftf;S uDftf{v"C APsht$fC [sht$ [Ëu[SVt$ t$ \$ ËD$f;D$uf|$uD$PD$PSK ^[f='v;,;s u%CAPhhT$,RC^[Ëu^[D$kdT$9|'d9} dPhhS^[St$\$kdD$ 9|d9}D$PhT$R [S\$ f|$tD$PhhSSt$S\$ SD$ P\$ S\$ St$ [SVW${>ts>C>PC*PC(PCPC"PsCPPW{tHCxu?P5xWƃulWPD$PC p{RtPCRPCPC"PP5xWƃtWPD$P 1s>_^[SD$T$ \$ H$?fXPX[SVWUT$B$t1j"kdD$'Ed1$O@$t/X9vX9r ;$s9vfXf;Z"uD$fX"f;Z"u@$ufx(tGufz"tfz"tfz(tB$u =tA!w |$uJ"B"@kdF9sމQRȃ]_^[Ã,D$0f$,D$ D$4fD$D$D$8D$fD$D$PD$ D$$T$.;u5@$( u&<fYfY <$_^[Ãt$ t$ t$ t$ D$Pt$$t$$3…uPD$PD$0D$0$‰ЃÃ|$t=tt$t$øÃ=tt$t$øÃ|$t=tt$t$øÃ=tt$t$t$t$øËD$uxBusTtËT$@ 1SVWU|$l$uE1]_^[WpVs W u 1]]_^[Ëu޸]_^[ËD$uxBusTtËT$@1SL$r6t15";PuL$ L$T$@ 1uBrи[Ã=u[= t6u 8t :t$ .%SV$ $#rv/rKv4t;Br=vt4*# 11tC5ju7@BusTp X=u$<$C1ۉ؃^[S Pu[Ã|$$wD$$Pt$ h 1SVt$Pt$u<$r v%<$t G<$t,? w ,(w(0w01tPt$S 1A68@S \$ D$Pt$;PD$Pt$ t$ t  [Ã|$w]D$.$!|$u܋$@"I|$uʋ$@"$@C.|$u$@%$@%׸ [1 [d>>XSVt$\$Pt$h<$$.$|$t |$uF|$uڋ%xu @f1 ku`=t5= t P ߃= t P S5jSÅt jSPj [S\$t^{,t s,{0t s0{6t s6{:t s:{>t s>S[S5jÅt jPj [S\$t{t sS[S5jÅt jPj [S\$t{t sS[S5jÅt jPj [S\$t{t sS[ËT$  9u1ËuSVW|$t$uF0(щ9u0t@u_^[SVWU$0}:Ƅ$}v:uAPWWhuu8+uND$ \$ D$  D$  )$ Pjuuu $ $PS$PXvS$P$P Ƅg$1Gu Ƅ$H$fx(u @$tXN0$ Pj$ppu $t$PS+$PpvƄ$`$tV$Ƅ4.PƄ4Xڃ%s uƄKJH9}V$P$P $xFuxJt-$P$P$pJpF$tB$P5XSE:uSP$P 1]_^[ËD$xu=҉P x ҉@1SVt$,=,u0,=0tD1ۉPD$P5,6u&,=,u ,CuŸ \$,1^[S|%<{:t4{,tC,$PsuCPs:t$h$ u{%[S\$SD$D$ {$D$PD$PC*P {4"nD$x,t@,$PD$ p<$t D$x:uC1[ÍD$PD$ p:t$9# u fC*f;D$tD$ [SVWU\$0C D$CD$D$PD$Pt$ t$D$$ DžuD$@$:fCD$Pkt$ {o<$f|$t9tXtS1FD$PD$PWUuۋD$fx"uhFxJ@$uf@"D$k{hL$D$ID$fx(u4@$u.@$ufx*u!D$:HOuhxf|$uf@"D$D$D$|$u|$t!Pt$ itC1|$u"|$uD$PD$ PtCЃ|$uCjD$Pt$ t$]uD$PD$Pt$ t$Zt C놋D$xu@C tfK$fH(C t D$fK&fH*C t D$S(PNC t D$S)POtD$hFtD$xJ{t D$K H$t$Džut$6ǃ|$t D$f@fC*1{]_^[SVWUp$GG=DŽ$`$PP$\P$LP$lP*$4P$H$4$HDŽ$\P$XPh$LP$xP$XP$tP#a$Xu D$@t$Xu<$u|$t<$u|$tP$lP$H$PGt G$XH$HP$@P$H$P\$ $HT$ fX($HfP*$Hf@($,Pj$PppuY$0%$HŠD$CN$HD$CO$H:PNu :POv$HH$G_$XP$H$X=4Ƅ$l411E[$LxuE$,Pj$Tppu"$0%9u"v9sƋ$L$L$Lu5$Lxu#fx(ufx*u@$ u@O9u$L$L$Lu$@P$HPPh$H$P$LP$@P$H$PuU$Lf@($Lf@*$LH$$L$lPN$LXO$L$l@C9O.1 &$Lxufx"u P?$L$L$Lu$L)$Lfx(p$@$u f;p*0$L;$H$H;p$,Pj$Pppy$0!‹$L:POu_P$HPF$LP$HPJ$Hf;x"u1$LfP"$HfP"$HÈXR$Hx$H$H$H$L$L$L$L@$x,t @,$8"$8P$Pp~$L<$Lx:tb$dP$Pp:$@ u=$HP$@P$lP: t$dP$P$L$L$LfDŽ$,fDŽ$11$Lh$u x$~$L@F$$L@J$$L@$ $L@$$Lf@"f$$P$ $$;$u$L$L;$LHC4M1p]_^[S \$D$PD$PCP t C&D$PD$PD$ppkt C1.;D$u$u ;D$u‹u΋D$1ҋ';D$uuT$@@B ‹@uՋ$1ҋ&;D$uu$@@B ‹@u֋D$xt0@1ҋ@";D$uu P@ B@ B ‹@ ut$C1 [S\$D$PD$PC P u C[ÍD$PD$PCP^ t C$1ҋ&;D$uu$@@B ‹@ufC 0$?$D$fS fPD$H$$D$P$D$C1[S\$PD$PCP t C$@C $@CC1[S\$PD$Ps st C$f@CfC1[ST$Bfzu%=tf@BfB fB1[áfXf;Zu 8t ϋu1[Ë+,,,SVWU$t$8PD$PF P t FD$ FD$F4D$FTD$D$TD$D$ FD$d$|$ w9D$.a+$l$,"$l$0$l$: $l$ >;t3Ux|$ } ~ ~~,5Wu FWPU D$ D$|$ )F@t $TXBFt $XXFF t $\XJF t$f`fX"F t $bXF t$fffX*Ft $f^fX(Ft $^X$F1$]_^[Ð----SVWUPD$PD$4@ P tD$,@1D$,D$ D$,4D$D$,TD$D$,1T1D$w5.M-$t$ ,"$t$0$t$: $t$>;t3@PV3 E|$\$,@BT$@FX$@J\$f@"f`$f@(fC$f@*ff$@$C$@bC1؃]_^[SVWU |$ PD$PGP~ t G$1[6 SF@Ë$@49|$+p6G P@5D$ PŅu GP$f{4t VPs6 t$VG P $X6h6$f@4t SG1 ]_^[SVWUl$\$ !Ɖ$Sjt$$U"uu!9vՋ$9wSjt$$U"]_^[SVWU0D$D$ =8t\$Dff\$H8sD$$D$(\$( É\$|$$t Sj$!D$PjSj!D$D$ ÉD$D$,Pjt$j!uD$,u 9v΋D$9pUjt$jn!u[D$ E|$ |j1۽މ44ŀ00C@|:D$uD$D$$|$$~t$j |$ u@W@t |$ t=t wa|$ u!D$|$ D$ xCr,k|$tD$(|$(Rt$j |$$tD$Df8D$(\$HH=810]_^[SVWUDl$XD$8PD$@PEP t E=f} D$8fx4xpp1D$@PD$D$@u C|!D$@$D$@D$41+sD$,D$@PD$tp>C PCC1[SVW|$w G)C$t!s>VufCGfGu1_^[S\$su-C@tPC PC1[C1[C1[SVW|$w Gt t #{tsVu _Gju_S\$D$PD$PCP t CD$@CC 1[S\$s/u]C{ u){t#C@tf@CfCC 1[ËC@P;S u x t@ ˋ@ u1[C1[S\$su*Cf@ fC Cf@fCC@CC1[C1[ST$ B(fX f;Z ufXf;ZuX;Zu BBu[Ð7778 888#8+838;8C8K8S8[8c8k8v88888S\$C=\tfCH\f=.$M7SS^SS3SSSTSS@S$S]SSnSSSJSuSjS;_SyTSI\[SVWUH=$$@PhDŽ$D1PjWh@$T$T` D$"@xD$"tq115UtZʉPʋPxʉP$DP   4t F|G2J$D$D3H]_^[ËT$ ;Pr ;PwËuSVW|$Pt$<$r9<$v3<$u-?hdj t$ 5 =tu @ƀCƀ# r5t11.x1\ :Dt@9|9u BC t9|DtT$f$fT$ fDf1_^[SVWUt$l$ ;puEuxÉDžu  PVpDC=u PVu>4$5pVÃu EVPt$ _}1*SVWU $ $$DŽ$x@$P$PU$ PÉƅu $fC $fCCPUk!= u  Pjj$PPv$P%P5xWÃuWPD$P ^ 1 ]_^[SVWU$$S;PufS(f;PufS*f;P uf@u؅4Džu !SPfS(fPfS*f@fP =u    1f{(u5fC*f=r vf=t^fUN G@f{(u9fC*f=rvf=vf=tfu  &+u3Vh3h<D$ Pt$V5hUÃuUPV _1Ā]_^[S\$C PC PCPRC C 1[S\$|$ t hPhS5ht$ uJ<$t;u [É@8t 8 t8 u@8t 8 t8 t)h1[SD$1҅u[k 0@ڀ8u[SVW=dBj$PhD %1P$j C;t; vu-;[u̍$9whNSCu뤀;[C;t ; v;=u$8rPǀ$tC;t ; v;=tC;t ; v;.utCC;t; w:8 SPR $d1_^[SVW|$t$=dut?`3sWu!sVufC \$f1_^[Ëuɸ_^[SV5jÃu^[jPj t$ puS^[5VCtVPt$ t$pt5VCu sVPt$ D$fC ``1^[SV`/3{t s{t sSu͉`d^[SVWU j$PhDDŽ$ $`1{{th]D$PssC PhnD$PPƍ$PVD$PW$$u1;$t DŽ$t1VO$$t$$ ]_^[USVWt$6L$D$\$ f t\$$\$3\$(;_^[]USVWL$UEPQ]] uEú=t =r=t =u|$|$3_^[]ø =t@=t=t=t=t  USVWL$\$t$D$ T$$|$(_^[]Ã=tUSVWUEPL$$ Q] tD$8u)d g   g=@=d )d =PQ Y yf3WM_T=w Wa_ߋȈ h t03ɺTfj=BA: e rܡ~ =e NTg 3ۊBf fD$$L$ t$(@v@|$0`g  e =uP3D$$=Pu3ۊf fD$0(L$@X= -= t= }-sm݋L$ t$(|$0=tEP3D$$f(D$((E= tD$$f(--D$0(D$AX=d g  mf t= u< P PJ=u 3@B = a g ӋD$$L$ t$(|$0 g  =uP3D$$3ۻfD$0(D$ȋ@X]_^[]f h h h h h 5 ot$6F;`%= 3 f3= GfG% fG fGfGh h =aumf u= z5 D$$0D$0D$ Ff0D$,(NދL$ t$(%|$0 5 PJCA= I#  3Ë߹3T ߃t@=t3QR3ɋ8:B$:BA: h r۸ZY33Tp tf3ۻm l SMURVW_^Z]u(fFffGT;v#e 3[˃uʀl 3l Ã=HH=8h $Ph;Xs9tV^uH3$fGf_ fff4f_fG/fGfG h h f f=t"f tHG Gt HHUSVW=@ @=8= ufqufPCt@@GO fӻ ׈G׈Gux< utP5h OW3_W_ = =w  G G@_^[]USVW=D^D=8G= u#h h h h h 5   5 3f = ffGfWfOfGh h =f 5 fFf=CSuqDG3fFGfV ׈G׈G fV׈G׈G3fN 5QY t G ^ 5 D_^[]USVW+L$ t w_^[]USVW=t=KL$\$D$5xf=uf^F5x=WVG^_G_^[]USVW=t=KL$\$D$5xf =uf^F5x=WVG^_G_^[]USVW=t=KL$\$D$5xf =uf^F5x=WVG^_G_^[]øUSVW=t=PL$\$D$T$ 5xf =uf^FFV5x=WV_^[]USVW=t=QL$\$D$T$ 5xf =uf^FFfV5x=WV_^[]USVW=t=IL$\$D$T$ 5xf =uf^FV5x=WV_^[]øUP`U]EaX]USVWQRff`؋=ra2fj 2 fEffEf3ZY_^[]USVWRff3Z_^[]USVWREfE f3Z_^[]USVWREfUPaaaX} 3Z_^[]É5 = 5x==u ^NV F FWV^__OW w USVW33ɋEf؋EȋE~_^[]fU% EfF% % СHI0PjR ÜPUEPQ]] ø UEPQѽ]] ø VWh h h h h 5  = 3  5 -ffNfV=GffGfWfO fGfGh[hG_=u3[* u&]5 ʃP5 X^ f5f=((WV=u$ff^fNfVffF ffF fFff_fOfWfw f X É5=((WV=u$^NV FFF$=_OW wX ÜSQRUVW`3aPSQRVW_^ZY[X2P!Y_^]ZY[ ørff`; ؋- =ra2fj 2 ffff_f_@333ffWFCrf3fWfDobLF33ffWFCrfDob \+ˉL>|fGE33ۃF`pv3ffWFCrf3fWfDobLF3ffWFCrfDob\+ˉL>|fGE33ۃFr`33ۋffWFffWf\ovf|ov fGtEFprp3ffW숄/FffW숄//fEFtrt3fԋfW숄//fEFvrθ0ffW$G=uM=uD1ffWt f0fffW$Gߍ{ `J ؋< =rfPaaaXfS taMfPaaaXfS린fPaaaXfSCff+U ݋3փ>=uRWSQYZD=;rRWSQ.YZfD=;r;tRWSQYZD=G+ˊѸ@WQh h h h h 5 Y=GffO fG  fGfGh[hG=%\ 5 5 P5 X_@+Y斺WfB_f?u+ڋ΋+΃Qh h h h h Y5 QW = 3_Y ffCCCfC `=GGfG fG fG fG fGfGh[hG=a<fm-affCCCC `=GG!fG fGfGh[hG=afma`sVSC=GGfGfofGh[hG[^s=abfmS`svPaaaXPaaaXFG=GGfGfofGh[hGa`f=GGfwfGh[hG=afmtU=[uEf%t?`=GGfG%fGh[hG=aubfmt f΋3`=GGfGfGfGh[hGaP5 Xø벸ÜSQUZ7]ZPQVW_^YX u$Rf hQWRWZ u [ Ã=u&`UEPP]=aESff`؋ =ra2fj 2 ]tފ=Mðffff`؋=ra`q؋c=rfPaaaXf tafPaaaXfu?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcISAMCAEISAPCMCIAPCIVL  $: /j@^f@J@J@I@I@LI@@>@V>@6>@1>@)>@ >@>@>@ >@=@=@=@=@=@=@=@=@=@<@<@<@<@y<@p<@;@p;@j;@c;@];@T;@;@:@:@:@:@:@:@q:@e:@^:@J:@.:@9@9@9@:9@8@8@8@77@7@777777777}7y7u7q7m7i7e7a7]7Y7U7Q7M77@5@$5@4@3@3@3@62@12@1@20@&0@0@/@-Y-U-Q-M-m,@+m+i+e+a+<+@ +@+@c*@N*@*@)@-)@)@(@(@(@(@(@(@_'@R&@4%@$@$@$@"@"@"@x @@@n@T@K@E@1@@@ @@@@@w@@@8@@@ @@@@@@@@@@@u@:1-)%!@@@c@E@?@&@@@@@@@@@@@h@=@7@0@#@@@@@@@@g@&@@@@@@@x@g@W@F@@@@@@@@@@@@@@@@@@|@c@[@S@J@E@-@(@#@ @@@@@@@@@k@a@W@M@C@9@(@@@@ @ @Z @O @ @ @ @ @ @ @ @= @8 @$ @@@l@Q@?@8@1@*@#@@@@@@=@(@@@@@@@@@L@ @@@@@@b@Z@B@5@"@@@@@@@@@}@s@j@_@G@:@@@@@@@@@@@@@i@U@EA@8@$ @@ @@@@@@@@k@b@O@,@$@@@@@@@@@@@@@@@@g@^@Q@?@@@@GetNestedInterruptLevelQ@P@-P@O@CO@N@ INWsprintf B@B@D>@ 4@ @ @ @G @@@Y@ INWDOSWrite C@ INWDOSRead>@CStriCmpA@@@?@5@?5@DOSOpenWithAccess?@DOSCreateWithAttributesrB@ DelayMyself @GetHardwareBusType`M9L+@ CVSemaphore ec@Lc@}^@Z@Z@T@N@I@QI@ CPSemaphoreb@[@yZ@T@M@H@GetRealModeWorkSpaceb@[@kZ@S@M@H@DoRealModeInterruptc@m^@^@]@]@ ]@\@7\@Z@U@xT@M@K@ I@ RingTheBell@OutputToScreen@@m@MapAbsoluteAddressToDataOffset d@c@c@?K@'K@ INWDOSClose_C@@@ImportPublicSymbol@ICmpB8@Free1B@(B@B@A@oA@i/@-,@y@p@,@#@@@@@x@g@V@E@@@@2@P @CStrLenB@A@^A@M>@<@;@m4@.@.@ .@<,@n@@@@ @ @ @ @@@CStrCpy5@4@4@CSetBRA@R@@@'@CMovBA@A@w>@<@;@L/@9/@.@,@@@@@h@ @ @'@CCmpB@@@AllocateResourceTag@@V@AllocuN@L@A@A@7A@_>@<@;@@9@/@s,@@?@@@@@ @ @GetMaxNumberOfRemoteConnections(@FreeConnectionTasksGetHighResolutionTimerf WriteFile=SEnable/@DisableN@@@S@ConvertStringToUnsignedLong U ZInternalPublicListmFreeNonMovableCacheMemorysS@FileServerMinorVersionNumberFileServerMajorVersionNumberCRescheduleLast `@_@b_@/Y@>V@Q@7@0@/@AllocNonMovableCacheMemorygS@Wrt64djWrt32YjWrt16MjWrt8BjUnMaskBusInterruptfSlow-jSet64'jSet32jSet16iSet8iRd64iRd32iRd16iRd8i OutBuff64i OutBuff32i OutBuff16iOutBuff8~iOut64xiOut32niOut16ciOut8Yi MovToBus64?i MovToBus32'i MovToBus16i MovToBus8h MovFromBus64h MovFromBus32h MovFromBus16h MovFromBus8h MovFastToBusohMovFastFromBusKhMaskBusInterruptfInBuff64EhInBuff32/hInBuff16hInBuff8hIn64gIn32gIn16gIn8g DMAStatusgDMAStartf DMACleanupfWrtConfigSpace64~QWrtConfigSpace32QWrtConfigSpace16PWrtConfigSpace8P SearchAdapterC ScanCardInfoRdConfigSpace64PRdConfigSpace32ORdConfigSpace165ORdConfigSpace8NGetUniqueIdentifierParameters5GetUniqueIdentifierGetNBIConfigurationKGetInstanceNumberMapping GetInstanceNumber GetCardConfigInfowDGetBusSpecificInfor GetBusInfoC GetAlignmentN ScanBusInfo GetBusType GetBusTage GetBusName= NBIRequest7NBIGetSlotFromBusTagUniqueIDV NBIGetBusTagUniqueIDFromSlot8 ^*'TEST1  M0'GIGIBIT  wZ' UE1216  ['UE3722  *o'9VERTEX ROM \q'4SW7148 ROM O(K8139C  1lQ(`d.  Q!)..  Q!) NBI NLM ;PQ#OMSM NLM C]$H*ETHERTSMNLM z$j.bNetWare Loadable ModuleNBI.NLMhmj ̑̑{݇&B̑g~NetWare Bus Interface  LONGVeRsIoN#A CoPyRiGhT=1Copyright 1997 Novell, Inc. All rights reserved.MeSsAgEs̑W=tt \ @t.Nat=͒P )24,x!)*8 Q`:vcHN6 BvEm&"VbF&iG'U_q [)sA J[n)ƪ:v֋.oݲp"%^ n^MDgԀ {/MJ4q.ys)Ϭ+r`{g'#jJrewZ擼fEҠB}<3r{|G׌.kxlX+u+UOݚ{5- =w]]55&?j[2%%׺O$`A"x0 .ؐ!>a%Š!5C/ !*OEvh1ӆ3]ؒEIH4>p -(ÌRxq1dYA"N'j;h$ydZo(?8H[\u fU4WLܙNJ 3ʟ.\ol^vbS#U $yx{ fuH8]Zڰ9c;㾡6ӢYfX+I/o|rncU6+05)ǍιWJT'Gs>&+Ak1&;Y,3gy)_g,geYX+ JY9>eɋ.KyFxpWmNJLm'[`Z*QSz%wTM&'|~!~c1Rk-~-B$ݛ uP~,q27懲l!ʨ*H /npw/KL>SJ^gJ!<$C%@"SrR}%KGbI=xtKNkn)rffy+BRV4ymK`EZ#R}u-^h|:Ӓ* j\h^kћM)׫\'ա%_s .uɪ \GQ;Tp;ٓ6I M4km60mϖB|H~oa17M6c0ToDIfEQ*^ ai6aS!Ig#5fY#5fQbJ%ywfGƇu!YeQx¾vF)߅EfJ\<Y$&:`0#a9Ѽ[2DćD'P Ӫg؆1:L. BCs\#M[Mg}f/'h\~i[]n֡0.OI/qÉ$e9d5@5Xq?4ӧ<'6@O6>!{5Gc{KUr&̘]V䖗쫓j Nq&JT84UDϔq|M`ωj&\\⽱پyP opO~5A[77"hݺ5 M+T8ZYuf$UWbȪ%cԼ6-ۍB9tl/͋g$dL-^׶&I Vo7%w'R57{sR~̎E-Wa0[,C30kN^<-pH^n8]G-x p Tɔ/ ["'-s\r]1HP;\Ԋ9I_ǔDK/_$vWzY>a~PoޱQ*(vϣ, nɖeSF1./:%G}TF&;MX=40xIliG_zd1Yh>.3sh:;޵f;4Ea>}VLdJLۏsLy*b9!|5sPe L]:9}lDܲYUG@lGSaG󡥞U㻽M+G scr8N"Inɴ[Ekq,Ϡ}Sᨑ!r2zGWhE -?)-2&E`|Ҹu&IqA$;l7oB/QNe|d@tWfeK@Nub9>uߞuŨRno V7״R~LKI*RaaR 44oTo1J3^4 v0vQs+tz\u°)Wo00M;.S [ 7Suo*}SoK 1=Dՙa<#TMH"<\&5ByzԑK'CsfQ2ӂ-x'+47ʢ/qy%3fQ)A_=e۴XK4 4D֏rc+Jw~V!b(dc %L#c\JBR5xMZ3*C gE]0<q"KαEV^j597q"(wB;l!L("! ˼)$ IɤwD[&a{W rL?6?1`̰:]#Vc*:[2h]Lev+t]`n~\`B{.rɶ䕜+.}h6Je 0S](Lm3vad_5҈u>fey,YR00g;Ki Y ɩ3CluZ` bi_ܠPVLvƇ\n( (5˓ >aEe k:CR˗\oR-5\Q]K/O.;M%ZyC32ԟ[MDD&T#MD!٨╇ r)c3s=3?s|t g"$ݥ.TRMSt"񮒶N\gTO~H^\86?5H'jS 85uKrjŬt״W]6iɩ\~Sp[ܕ:UV W(|  ee'5Ap(Ap%9qHǤ05ӓu!M븲W@kntjJE՜ذ` / s.սr"{}o3әۿ)x|:`_[aE3g4?SX ,[=AZ7d:&7m2|5>Ӛ^ tK>ʰBD y % z m0c(&C]gVt9V;ۻ!|kչ|Df#"Dvz"iDym?џfik+f5~߬`9շfios6O[?8i%KzqB!X;N!sfp+`W.7bx:wթxe9?+4E&]_s8$Īߕ vD-$s I>di'Czn1thr㽹p]`Υbq 9{`c/NK=;+[Bvyu t8oHTrc]K) $U ?f 'b|2sJ!;}t(Fy rIb>[C#wܐD3-tɱKW$bOq$l5=.,X -M MÍ Ɩ s DQ'4}^kA'5rǪIzŃj7g2fկ{mrc$oiĔdnnqgTXMa莰&̳r"m=#צ.ը< W<[㳀!6 tÕ1¤~z^:<;Fj"Gz'Q{`ώ[xp/]&J(>29׼K!Uߖ&S+.A&Nzs8( gAT|V̸В}-/b׮wj+WcuJK] p}&&K}֦WL|߷ĜW[?uT=EOr\iO "sHI1ծv?U޾ƪrF:6Or >)/׶{AǛn΀,oE KM>Y̛Uw"UOLŪϑWlnhq]qa]Z}boZqf\@8+AfEz3^Pun_#G #y.6,͝ҩ]nN@':W?p6V8,SK˾S*0^v?ʎcsT>a,P9&U\x ޼v>B-n1ǻASū.bk6!%?NC[u]&o%^'"x!ۢ7<-nV#@xL>BC%v)ȵDzGjztsWs=}1[T|1~̬ldt)矎Fh l2o:y!}-a66_/Lqƨawlyԗ|1Վ=E9l$MwN!:!F*'z _q5~&Sԗ`&ưtjY2k|͢d +n̯ +':,b)N͉Zy݅h$oHj׾0yq}.ug]t)gk~Y[i1:m1S7:Jm>DJ*L&R#j 6Iy9&C\б;- u@i yjrC@n^Ƙe'kCL@˰}~FSkP\ s] r:չ!>-oA3{(R<0 WdI-͆vzP{̞k3{s3~E_A/qws5-ғSMrWgvhJ=ozoF!Y5u2jusR[FNng2Ju&Bnwv8G\ӽ%܊wNT"ytqwrz,{zUCj%8 DTco{ˡ| {S!)uINN93%[r-]9 YtJe1IcF,1j(^ Ҕ )YvR^5%,K/:s9X:y{'l<.Udd*9i.+iHnڑQ|}u{rdsn]έ +ܺGꅻ<(lI'Kjtvk$X41_O41kIŌ-Kbfw6<2Y3e3Is;|FTiyZe!c/=жPdTɗ;Wg[W_z3rΌ)fN9͓\lT2˗K0AtxN9K\2;6[4_N$7+k<^<3ʏ,9wʂiv?CeῚU-k: ~wV9Ό O*9^ת.VC"o'P?q?|:e2jݘO]bln"z &$ X YMP {|f*gDN"Zgx!lkQ_>g{϶FU&jxFr73\H_ՏѪ:riy>jc'?m\ľ;[ϗ=9y%a+9W?ӼY2Ejz2z@?Sn5+D K'??4evN̸ד]:M@{󾵱M"3~JJGL-I6L_ݠ^~~zZwLt hV"e3T))2|TT_GѤ[5 ;?_XQرcsf{c ;l<2IotPތUY4Q/HXBV+^K-&C##[elT"xE/M=NP<%X{=y!k^<um6f~~ԃeۧycASj+ĨImͮwgњS4ϔh^m,cVN_A;ٸ'Cd8>d̞p|PLK{0JFȴ#—Ly#g-sp]&L-PiS[&wL`f3\MehSݽ9b/x('+R5Kfq,?iEʞ{޷[38mOu_m=§~`Z٩ggPO26B_<]0Ŏ*?J?;ČN>)]o7of!YXrǪR}(;~e~pwF'DO}By2 e:}vu1~`(($//ɍ?<'H|hdp=jw f(uWlo^>Œ❉W}/&|$•.Cf[|@G[nTkdC'#S }n/r>my8 B3CxBٟ!l < * ,p ,/ 1*+lĈ cOqۚT>/8~ȎU{r} >no[d;S1GRa1qB1|Al_ G>uI1/ĥ !a>q0-k's4f1a3BU bxk m6jŰժZx:.`1N/!Vo2Yb՚v38Fn~$`]A:ok4Z0MSƸS.XL͏Uq- ?ul&^-|}1ӜעyiO̗~Z$/=R&'򤡞{zdJqNpu-7OI=ɺԚ?]=>kE- AP;ǨEv 92CR'F0@1Oת7lYU (kX}Mw;$oAyM[-N"yŪ2qSN5/= K_u/}"s$U#Iմ/_uV]/6_T,y"љ[XՏvF:K )75b7XZ%4<$RtT*i'xWd>s1uD&9# ϪT;N:}U%yK ͝)M8cJt8]f3l$_.WG7j]$ŭ革K/a/*7Waԝ|_ڢK/ѡdu\Cx]&Dvn*ɛћv#meOx7S^~tƦQ=6j%L͵h%vjZ^mC6bukk}zkW>U_*^xOEx| JԳۏo rʃhqm%^Z؛L/UWoQI6=i*ym?TvHdzJ|#UVN Š5#)/~ϪYcۦb8|M#&7hu N:6j gSo>i۬K-3 1_tg8몢͜j0c\JwlQ/P[eiA^4טR"k.f]baI𿂗Xc^42;r: zAs7BFhw}v\:91s̃y7NlD<hU|LVԷkt;oUQ@ J.sOX];1]q\1~*K+,Z;:t'[kqRVs8+Yߓź v\]q!@XJ Sce#n ~PF:eVR~M.CR-.64]<Ia|m eQ:V}L'xʠͻ)m4bտӸYR`%5YP@KS.g./ceoMl f J( [ɑ"K7pٜfm, OQ9%aMgw@W3\8𦄥z3bw Eo60lmHN_S4ؐ*`ss<~eۧ +^%b;/3aۥJ7*VԜc]Y~lJ@Q7Rzɂ4%DY^y=#Z{mȏ< iagl-I}ł Aߍns]F[j j龜uќ)۔~q7p:ipWh6;fV#7r -NS/[{(tʟ4Wl2lև"2.w(L;GJ}O\?f}o]W(ՅcrRzLۓTxK0rr_z_IWX3]s~Q^ݫIdhgI_X '+<ÕҎEm;M9ݴ5[.eA|=.F ؛0Lt #zlQN5_&ͺO ]z%/V}fcjyz!)|b  BQEY6)]TE^[ ^4MIgdQy!rf4ҔzVv<2ښ<.qrvl'Ĵaeك;b u)(4au?=u+A7q.Mbv9=8}%CÏaM2=,DD)7>#N*|O˚K+Rt?ocoKS_+Rߍ7]~PXJ5,:.j7훷Ɍ1H.]}0v)VKjz&6ڽjZ -zDmŨ'^ۖp&ڙl96ȿ[(I]4gf Wb\]ls kMX *.Nrf(a[Ƣ#-Fyf[LR,[+ƺز̭ϧnLWy5 = k4waܵ%⦍r ΀(})~xR\OV.jYHhZIph?oWnrω6>Db6jJɰ҆P!šj$hO9N"xߟDXׇQloME3:7c:ՋRC Ztf;zH`e"=MbOZsͻWGȒc 9Ld}LQChs’k< _h'dy꩙(xih329YZU~o+.o=9vidLi8 c| Dw3K23lUOmfPpb`e"u&|ЁLdbKLA׽tS~;'PMQ.IK<;f{xK^yT%ךǃGI>ޘKӱ@'5źp-)uc$K4{|~߾?BUOF}8_F}"tszl26<\NBU'?lc=0!o7R~=EM {6*d=".V#p]RW ch\<]w%IN&vpHtk_z2_c=ӧ+UGרGo`dC7np'ܮ^c˔v~xh1rDޥ ?ctdqeixtʖ6VvdJ]q>hJ`̬SB-ӿ+&'֍uV:ȜM󇷫J\m==֥ṟ?$;ϞM3|·< O{G-^"u&wM=iC719G6fsaiI 㹌t̥0>d?6-|:=wsjǹF7Aao?6 +95'vq.'qlNS'U8[|~A693\UƦPP$n~ۿ<9u{, V} +i24d%>ҞPZkkcX.uvUscyUwdDH!ޥ_:n/]JftItHE/tއp ϯ=- kڧ55wx02} N1n 3>Kw봇 ճw d'A5CStֻs,ם4gQ(1xyx/OyuS+5P^z6CRS}I[}MI}~ʡx˴'e6G&.R2ma^~[qDG.N)3+3ڿQᦡ+ҿʻt:qSt1fVQ ~5JQ%_ Mt9v9M}_haڄuk{S['kjS޶qɩkͅHKx/C#\&,+lbfn|uM`qqج㧽s"'2?*73LPng]Ffr>12Q>yY2{R3 ENLwC?ΩcK_.$n66spֲݴ [ʶ{L[ʶ{,7窼;7q.حG>[u,~Z) 2S{5&/qLK;oZwf*"{qudy^Ribה|"Zu״T^2. EqWC<_£yl?}ON Ab[=Ujb|1|0BЭѽ.D.eGz+5F?U)łcT>cgo\6|- EMGƺzdJe̜/mJl!U^DِlKhRZZYd9Q[ԝݫ66rJ)7Rtyʻ^]r[K }[-c L%o[_f9׿bWuMNg/*M,/z?#kڱe[t-ƽ}h,)M$rcտ r[ 2zyaXw7ߡ;jv|R ggkx0HzXf47Oq@ω,)7ƥ&:AOU#$]Z+y1:|$MS>?FF8w[{qg&x(5.ydXl2Uca{-"bN5k1b=s* k45_Cżyy+bȹv>;FZZp*6_Cm=oOqakCuvVR-V,W߭B(nDD-E6wV߭- +ncxyxp^ZYMvgK_mxyy`^=Fb-Q[ŚŤ("[]>>Y\ }f6y*vk w+Ty+|dIV˸߿-|PB/.U)Ħnv, /)u詆yŻzZp]hkMT!O׏hz k7;7PxO֍h&8kysAİx,Ce2hEcH_p`~FLyYf{@\x?)σHql=(+pnkVrӜ/nZ7|pLO wU,ܲڛϞ~mM+gN 'A*,˴no-00BY.hФ!8 9\LJ&&!CHC0BIj!B(1CBBj@x;A@xg!!J׷c=y|&ҤN9ABudh!-? } |ʚӕ9Z-?$Vv@`5' L`;+8avgϻ3{>#*Ƕ:\wo7%0l L[}>֧6=qW1F%gף"!TA8u OaEmA%BxwJ!P!wS_n Mo@xL!/ B8* 0 Bn+ | !O!0 B ,a6! @XtM!l IA~Fs \/!^8. |/ ΟGOCBx=Bx8@]BB}A!£^p3A8 Bx{B &AXO0Ÿ!l0 ! e.>7%;{!l> 3K!“&CB %Avp: l# B=}fC! ?>7AG!* 샐(/8/@ @/Ca7OAX! aB ¢Y! V@J L=u!<?"ށ0j ̇B#9mJ C!W_p/z@0I^ B3~A7O@B}@8aƒ eWBBB?OC! -eQ |a{ABov@C{C5 |^A i6AZBx6-coC?@ >!@xp@h W! ›.pk!C耐 aQyC@P7 \σP6^yC|X«~a~s x \niG! BB]@@x` [B(VCH@>& A8a asV6B'A>?A ,eB8 !l0πAـI?vI߇p9YA%Ba2}B(BX f !CBq90 xgs!tB3VA(p >zC!!py 7= i@xn&7~Uށp~B6Cp\>N!!s'n${RaUCB &A5Pa]pA7V , .Bx e 'ބ?6A0T}&JAx^p;!pby p7A5!|UwC;5 CA(m_@ !̂B MBABc ,p1K!Ax=]@pB%! pe6B6@x ̂p. ̇Ÿ!<@?Bxᣰ,xABr80Ax,X!< J'| oBuA6wAx;$CKp!a {?p @V ʥu7!<!< -o0B ,p !L0Be0{N@HChn Aa)oC ?B!p 9BB¢&X ."77A?I! wA灸 +5C Ÿ !a(z a@Q [! / aw׬'o]k֯_['vy ߛQv0o$蛌B8Y~9>ʬ/eUB8xel -m XzbM.r,hẂ/@ʝcۈZ;~D[댿S[ MyC=n?Ix]s+Zo;n+ D.DN;ӥdw6}sPɠЎ%Zkk ߆yC<)l:yn&H_.lO:9_KᰭjM_速m:LW 6@!DG.WFS 4=ur;a+VDK ѐxb~ܟ~r_T~+`um~DL[w3/ˇBp|EnJN =pryşZ1oS[96B\OitҸPxB%0t\r· 7 sP a !t+bw*SlmqY}#ם0JRp4a_#> {aYjPM[z=`k=3M={w*ˋD8C0~k ϣxKw@` £ .z~կʦz麙: V q.a?ceX7 pa]+ҍ3,)&U-Pcw6?w!\#G%8[;M#o[}6 kۼM+lhP+h| ˔BxN2=VۮkXx yz641X 2~Bl+bWbF>r:Ƒw_h;ӗ2_ohI ۭuވ|**6$f/ y:åMiΐ8cn/}˷*74h.ERtXXg/&?&:f%Ѿr &3y9cv csi]ǟRt̾"b7H*q_ztIc%8zf%A_"'2,;v x&(⊸cR2(`[ݏ1itƲ{`^&/h_0lI+&Z@ʬ!Kt4WԷć(lfʒ/Q+6(RYJb}kæu[QqSH9hՂLc\\쭺oA}߅oM\p_V;wd7?Rz^-Ai_+9JWFAdx?lWj[T@,7yX빁+ Hź**F%*ح[[?5@%NetWare Loadable ModuleMSM.NLMB'bWRH*B+Novell Multi-Processor Media Support Module LONGMSM.NLMVeRsIoN#QCoPyRiGhT=?Copyright (c) 1990 - 1998, by Novell, Inc. All rights reserved.MeSsAgEsbV))W. . . 4 : @ . . . "P #US\$ ['k=XE t =N# .E@-S][$[t}`3Ea=oPU.]ZQ t D`U]Etu Ulat`MaM][$([] QU.]Y u tヽt=O`UR u'Z]}t(+=[raZ]awasiUSVWD$\$ذT$R_^[]P=XÍE tANuD$D$  ufK`C$ uÃt `MaS][$([PSU][XS][$[t}`3EaSVhd^[pE;Iu;]E tUIuC\PX t USP[](#UR LZ]};P=X ufK`C$ uЋ9ut+=[rꋅ@PXQpYË=øh tiM='5d󥍵=h󥋅P> > X- u Pefc`USVWD$QRЋ- .]  f9P$ IumZY_^[]øZY_^[]USVWD$QR- G] PQW_g YXIuыm뼃XZY_^[]øZY_^[]USVWt$D$QRЋ- =xHGW.%_g t$mЋ‹]f;C&uEZY_^[]øZY_^[]USVWQRT$D$ 8(D$$]+؋*- :]  f9Pb Iumы\$ +\$$ ZY_^[]D$ ZY_^[]`]3D$  ta`Q]ع`Y &M FFF C3D$ a3#Í33Ã|u @3h|E tfJ`NuM tM][$(='5d󥍵=h󥋅P> > XU- 9Am P]3Ћ9ut+=[rꋅ@PXuPE tfb`IueЋ9ut+=[rꋅ@PXU]Z u uÃM t`='5d󥍵=h󥋅P> s> X- u P0 - 1998, by~A~~wøes = ]عI]S[$ [ u惽K})3EUX] M][$(UX]][$(on nt$,IU][$  uH} 3EU]T]M][$(PË]؝UT]][$(P =u=Ë-tSU=ht ;hEIx][$  u}C3E]d]Etu UlUt M][$(][ B%-=hu }mSU=ht ;ht][I][$  u}Z3E\]Etu Ult M][$([EP][$(][4c, ^ fCX>fFĀ1$<'fC` E0uDžM C]UIr][$ t   uჽ}E M܁E UM܁]\]Etu Ul=ht}t r8tʃtE M][$ t(3ø uCME EM܁]][$ t(3]}u][$ t( Ë][$ t( Ãt% u:M܁E UM܁]E]3]}u Ý ]M][$ t( \]PEtu Ul]][$ t(X tlose, ]U][$ t} EME U]]Etu Ul=ht}t r6tE ZM][$ t(3]][$ t( ]t VKMtuMLID, USVWl$UI][$ t   u}eE MQ Y\]Etu UlM][$ t(_^[]3ø u3EMQ Y]][$ t(_^[]3]}u][$ t(_^[]ø u"MQ YE]_^[]3]}u_^[]]M][$ t(_^[] edure, USVWl$U][$ t} REMQ Y]Etu UlM][$ t(_^[]3]][$ t(_^[]]USVW=fMSfM5" =,D$X 3+ȉ  jjjjjh h t$0   $ @ht$ht$ht$ht$ t= R= Eht$ht$ ht$  h,t$ (hHt$ Dhht$ dht$ ht$ bht$ t+ht$ t Pht$ ht$ ht$ ht$ l h(t$$ Vh8t$4 8hHt$D Dtp3plht$ ht$ h@t$ <h`t$ \h$t$ l ht$h #t~h|t$  xY Ghxt$th\t$Xht$= u5= s,ht$ht$= =u$=pu= | = 3xALRT=ptALRI| 5|ht$ 5] ; h EhPLPRht$ 5]  Ph  5#hEVNTht$ 5]  h4BjjjP 5N( hCjjj5  5Nm, hCjjj5  5NA0 D$ 3=  = D$<   =hw5 5 5 d$ 5]   PX5 5 5 d$ 5]   395#[XPX3= .5 5 5 d$ 5]  3 _^[]Ë+X _^[]Ë- 9uP='5d󥍵=hmE tfK`=htu t^$ t(> > X]UmMË- rM@=> {Um] t[$ t QU]YIu]]ظ@ t_,S?Um] t]C\QPXYIu]xUm] t[$ t QU3]YIu]]ظ@ t_,S?Um] t]C\QPXYIu]]؃tUSVDž^[]t/P t PX=t! t;u=hSh[ihUm] t2S[$ td[ t QPYQ( YIu]=hth t 4E t E t I t ;uAG䍅+ E t;=`t C\PX t P(A U t. -m t 9t6 = 5  ] `]Cx~PXwHu5 =uPhCB165v8vF=XW5 5]  =tk -m t 9tN@4 5 5N,v4Pv0v( 5Y 5 A5߉=5󤡴 C|CCfCLChjjjjjh h 5 CV CW(C4P 3P5 =\3@+=\Ot75 WY t +G5\fK`C(ǃ{w { wCNCN=wCN5=d  3VX Í==GGXG\=35 =<  %  = tG u  $r uY ub3?ZuW32 v$wtu 2uUS  []E9-'3 Ë= u(5 hB 5  3= A5v >׋5\= >>@t3F> t>t ~.u@ .CFGjj @Ph h h P u@,h@Wj5 = u5 jj 5 ?D? t? u G3 Ã=pt==  =u'U333P+Z#t@P]=  =u5 Pd$ t j5 jjP tÃ=pt,Pu#33PG+Z#t@PPu0Pd$ t fj0jjPf tÃ=ptxuS-PXK+[-P8u Ã=pt 3ɺ*Ü j5 jjPÃ=pt *ÜPjQWVjQWVPQRPZYf~t=)(t ËFQRVZY+ t wUEPEPQ]U]##UEPQ]] ø WRQYZ_ u=t ︂ UEPQ]] ø UEPQ]] ø UEPEPEPE0P]MUu] =t ︂ RPSQYZ3RPSQYZ3RPSQYZ3PSQY[XPSQY[XPSQY[XSU][WRPVSQY Z#H=(=$= = #UЃ EPEPSRQEPu##uU}EPWRZM#]#RUQEPEPS Y}# ;M]Z#ËCfC ffCJfC(EȋEu:?u3=ht'=  = r{ s 53VX á tP d@dlCECESU˃=h(fA"f%f fA"f%f fI"CٍsӋ4][ 5 fS$=htWVS}$h=Pu;t ;u3D u\;u(޾ [^USC5pC@5tƍ[]}uMM3[X5d QRVh5X^ZYQRVh5X^ZYRQf>s63fP׋Ƌ=,>h5XV5XÜ-hrd-hrd=h=l!QRZY## xtlxptfSU=tM SsdC kj r  -hr   ][5hl 5h[RQ3~Asff|~uMI$QPdjhl Ü`-hr5h=tA SsC kdj  K 5haË8u<F4Ht3F$Ë@@ ÃPu3F$;Es3F$Ë}t.l t$lfF~ F<F43F$Ëf~llF fFhof~t֋~ FGG$F$G(F(N4+΃N,vȃw G4+ƉF4llfG@f~t֋~ FGG$F$G(F(N4+΃N,vȃw G4+ƉF4llfGPQ5 =tu 5 =Su 5 = 4u 5 =uB t=<=u> uF t,< t(5 jhjh h  - D=jhjh h  - jhjh h  x5 ff9 r^F9 rLfFf9 w=F9 w% ࣹ ࣻ 5 3]NF tG=t*33F> t<0r<9w ,0Ȭ<0r<9v33ËPC\Pd$=5 B 6=`-Sd u SxuSl 5( {bE؍pbtm  f9ukC\苅CffC fC&ffCJEȉC(u؋Cd  `d@0d+ 5 "5 5Xdx=dp4H0 ͉AXv t6K8V؋R8R8ZuVWqz _^uԋVf;B&fB&f@f=Ff@v t6K8V؋R8R8ZuVWqz _^uԋVf;B&f@뼉uo䉅fC&kC\]؋5dv󥁽s+3@5h󥡨 =t 0 4 8 F++C(-<E5dvv8vF50)󤉽B  ùI t ;uAG䍅+Id@V'X ÍPC\Pd$ÍC\PXÍ5d=,{x{yd@T\ sjfSxfbd@T\ C3d ! u05 5 5d$ 5]  Ȁ= w/= s&fC``tfCx<tuM<tuM=lP=hQfKbf  wSb f6S [u LS[df [uf=*S3j N [YfC"ftfu+Ҁ{xvCxQRQ3hC`%  PDPRPCx ƉEP\d$ ZY 5 b=tE܀{yBCy8Q3hC`%@ PDPRPCy ƉEP\d$ 5 =E{x?QjC`% PDQPCxEPtd$Y 5 {ytjC`%@PDQPCyEPtd$ 5 775$QKbf #ffuY fC"ftfu3E{xFQREPQWC`%  PUPCxhZY5 {E{yeEPQWC`%@ PUPCyh5 (S[dT[uff 3ËVLX [Y5)j uQSj [Y5 QRPS[+==uWSW+ҋu_[_[f{bSW[dt_[)3=S@#fv P@X@P3XiPG"@ut㍏% D$<  : t̓PYX[3$ t3ZY Ë9[5 US5{d@PX [ =u*5 5 5d$ 5] t* 3[]Í5V,X []US5Kd@LT tP =u*5 5 5d$ 5] t P3[]VX []Í5d@\d tz=hR=uI =u(hPLPRh5 d$ 5] t. VSh [^-3VX RZUSVW- tEM]3ɸ؝_^[]øø @w wv uÐ MSt M][$(][$ E[USVWc5( 5, 50 =h h  =t   =t PX nN _^[]USVW- tQ]fC``t?t6SU1][=u][$E}u3m u_^[]USVW- tT]fC``tBt9SU][=u!EHuM][$(Mm u_^[]+á th u  (UEPSQYfUҋ]##UEPEPRZM]]##RWPSQY Z#=#SVU]K# EuVERUEPEPhEPEPEPZ#]ʾ@}0uG $uG<<< < 댍w]%=I %;G^)M]}X 3PQREXZYX]^[#Ü`Etu Ul]ajDž=YE tDZ$ t^A;u몃룋@@333 t 6^ÃdtEte3ø ÃdtEuM3ø WVQ3Q5 Y^_ÅVWQH|t\;tXffff$ffGFfffPS\[X u-r535Y_^øEttt uøøÅtu牭 $, Dž PIPVt$SUn^Vv$fFVV ^F ][^EeQRWVUSQR t C\PXZYIu[USs t{bQfY[IuٍUSQR tPC\Pd$==ZYIu՜-r5 +3V5[^_ZYZY[^_ZY#nF#F #3S7[@F3FF=[=P =u75 5 5 d$ tr SVU PX]^[Eu[ =u45 5 5 d$ t"  V^Eu  #t,}F=t =t} t97t?3ø ø Ë- u}I][$  uSt}3Eug tF6u tPF;F}63F~%]SUF][=gu.EtuUl]t M[(]5 V^Ü- }I][$  u僽t}y3Eu tF6u tGF;F}63F~9]SUF][EtuUl]벃t M][$(m- t. BLQRSB,PZY u@@3ø#S ti#ud@ tQ;tQRB,PZYVRW-Or5Ss3s5O_Z^3[#ø#t~ tW=VN _V3^4$fFF ЃQRWV8lu:^XN\V`~h$FdVv_^[]cs=+55 5S`=* 5k= a`= 5kaÜSV=t P蓶X-r]؉P5km5X^ t33=u[3V V} V V URWVF RWV -r3Csu5353۸ Àu -r35ÃSU3҃ 3ۉMMDEtAމEE%E+EE;Er$s`EMD BC;]rM ][3EE Yt2E;Ets%EM׉LBM EMEM+MM눋M ][3PTVY#3WS3#ÜSQRU#u:3#u=;ts8 #t0# SPJ#t jjjjjj]S]SUjQP]S40#X3]ZY[ Ü#u#u;ts PP$USVWtT$jjjjQRЃX_^[]D$D$@D$,\$0 LQSP\Y]\ X#H3USVWX=t7_^[]QR5 PZYUSVW \$PS_^[]=v QRPZYUSVWt$_^[]USVW\$L$ =_^[]USVWl$D$_^[]USVWD$\_^[]USVWl$t$T$ ƋT$ T$ #:_^[]USVWl$t$o3\$;_^[]USVWl$t$_^[]USVWl$D$L$mԍ _^[]USVWl$T$t$_^[]USVWD$_^[]USVWD$@ _^[]USVWl$UmԋE@\E|]]#3P_^[]USVWl$D$_^[]USVWD$<_^[]USVWL$_^[]USVW|$t$)|$_^[]USVW_^[]USVWt$ +fEfE3EfE} "3U]fM  u ut$f_^[]USVW\$|$ +fEfE 3Ef]E U]#u#uu "3 _^[]USVWp_^[]USVWD$+_^[]USVWL$t$|$ 6|$_^[]USVW__^[]øøUSVW3ۋӋL$|$#I7L$G(=$= = _^[]USVWl$D$t$B_^[]USVW\$=_^[]USVWD$_^[]USVW=cD$PcP _^[]USVW=cD$PcP_^[]USVW=cD$PcP_^[]USVW=cD$PcP_^[]USVW=cD$\$L$PSQcP$ _^[]USVW=c!D$ \$L$T$PSQRcP(_^[]USVWD$PD$t$L$ T$$#u=r =wq-=9=5=1=-=)=%((!b [m_^[]USVWL$|$t$ _^[]USVW-5-TuF<4F@8FD<\$=$5PT@PXXRH=|$/-TK8=lPjԉU]+]U RRQ #::GÉG YZzGEzGE B# zGE$XLPRC$<ZXP5PT@PX|X=3ۉP3ۉ5_^[]USVWl$#t$nu }, f#Q#tE(fvV2v#FG"u^ 2GGl$mԍ}luLl$\$ 43P%C$<D$_^[]USVWl$\$T$,_^[]USVWl$B_^[]USVWP#谾5#PT@PX35_^[]USVWt$_^[]USVWl$t$_^[]USVWl$t$a_^[]USVW_^[]USVWl$\$UmԋEHTMt]3P_^[]USVWl$X_^[]USVWD$@-0@ _^[]USVWL$|$t$ <_^[]USVWl$\$_^[]USVWl$\$0_^[]USVWl$y_^[]USVWl$L$舨_^[]USVWl$\$t$_^[]øøPQRV33ҋ^ZYXøUSVWl$u6vF_^[]USVWl$݋D$s:r*wFOu6v~s:wr#FOfCC _^[]Íu6VD_^[]USVWl$E_^[]`I K][$J u]ԃ}jU]Ea3Ë][$a `]ԃ MU]][$aUSVWQR3- E-tE -E -DE -EEfEfCBWEfE!S<R=sVvN^vH<@IuUSZ= =5DF # 5F # 5tF # 5 v> VS,3Si3ҍkmm5v>'QR|GVWJZY# B;uค7|{ 늋D$xP8RO8QEuW10W9stFW9zD$l<1T$hfG&= 9YL$lD$hEL$lD== h8&S0ujD$x@Bu`j$PLVWR @Q:+ D$xHBt$|y(> 0Ɉ = hL \$|SÃt h D$|PÃt h!\$|SÃt h!D$|PÃt h!\$|S_Ã$11D$dt#WD$|P4ÉD$d?Fu݃1t$d=> D$x@B9?hbÅ LWPD1v|$tt$t44OGPD$XP9FD$TPS2LRS2N8QS2LRS2fNbfSf~dtvLRS21fFdPD$XPFFD$TPSp2LQS[211fVdfFfPD$XPFD$TPS12f~htvLRS21fFhPD$XPED$TPS1LQS111fVhfFjPD$XPED$TPS1~ltpLRS1NlQD$XPPED$TPSz1LRSe11NlfFpPD$XPED$TPS>1~rtpLRS#1NrQD$XPDD$TPS1LRS01NrfFvPD$XPDD$TPS0~xt6LRS01FxPD$XPbDD$TPS0~yt6LQSq01FyPD$XP&DD$TPSP0~zt6LRS501FzPD$XPCD$TPS0~{t6LQS/1F{PD$XPCD$TPS/LVS/t$tGt$t9LWS/5L1j D$XPVLS$tR @Q &u,LtRD$XPk@tD$TPFADžt9wSjD$xHBD$xT$xjBRD$DPS, |$xt,\v\D$xjfT$|@RSD$HPBR L,QT$xB<ЊrCpCD$dĀ]_^[jLjQj$SĀ]_^[ÀYjLjVj$Ws؁Ā]_^[jLjRj$QD؁Ā]_^[ÃjLjVj$W ؁Ā]_^[à jLjRj$Q؁Ā]_^[Ã|$dLQSF-1fFbPD$XPj@D$TPS$-LG@SVt$ T$1@ ӅtSV0Ƀ @ tu0=@ ^[Ëoppppppppqpo*q7qpqqEpwqZpZpqqSVWU$$D$hjP$CPj|$  D$Hf=w%$nD$@$P$P$P$PD$P;ƅu;f|$N$R$Q$V$WD$P4 D$!t.D$f=w!%$@o1S fEf9sfC fEfjPD$SCD$ P ]_^[D$H)D$PD$XD$dD$lD$tD$|D$D$D$D$D$D$D$D$s$Q$V$W$PD$PU1{ fEj9fC fEj1K fEp9fC fEp1S fEv9fC fEv@HrrrrrrrrrrrrrrrrrrSVWU\$|$l$fC1f=%$qfsf ffCED$ D$$1]_^[C tjjCP D$$PT$$RUWKQ[Ɖ]_^[ËCED$ 0D$$0]_^[ËT$$RL$$QUWsVƉ]_^[vefsMf@C;C C;CC;C t$$VD$$PUWSR86]_^[fjjCP jjCP L$$Qt$$VUWkUoƋCjjCPx ]_^[Ët$$VD$$PUWSRƋ}]_^[SVWUt$,T$(-LR\XD$t7D$ WL$,Q8\$(Ë$PS7D$PSh&9 D$ 0ҋL$ &D$0ˋT$(&؋L$)9~ ]_^[Ë$PS8WSy7D$ O}PShX&8 D$0X&D$4X&|$ t|$t;%u1CP\$C%t US7Ê;%]_^[w x 0Ɉ = => u%@Bu =@ J|$,[1 ]_^[w L$f=w T$f= |$D$ P,UW-u.;\$(1CPU,?t=? L$ Qo,US3-jPS\$HS- t$8<,$UD$DP -\$@À;111fD$<9; $QSE,΀Yt$4V|$DW8-1 ]_^[jPl$DUD$l$t}1f$PGP uTWRD$TP(D$PP$Q<LR$Q GCD$t@D$tE9rD$tGFPD$P'T$|R'$D$|@cSPJČ]_^[1?LQ$UGWD$TP&D$PPUkLRUVkU$P?9r$@@P.ƒƅ$@1v$\Z@9r@^SD$P&$FB 1l$p}1f$PGP uTWRD$TP%D$PP$QhLR$QLGCD$p@D$pE9rD$pvIVRD$PL%L$|QW"D$|@t$|VPvČ]_^[0$t nU$룉P$Wa#0투$t~W$UP$S1#$P$j$%PD$ P$1R$P$Q$Sht$$Q$j%PD$ P$1S$P$W$Uh*$$W$j%PD$ P$1U$P$P$Rh>? wD$P"D$dvD$d;B<;>GƄ$fwD$R2"D$hhvD$h;BJ;>UƄ$Xf N$W|"D$h.1vD$h;BX;>cƄ$NQUG!|$|WjVjČ]_^[Ë.1vEP$Rgu ;>$$x G9rG91f$PD$hPl H tƄ$D$x7%? $#G91f$PD$lP H t$T$x5? $G91f$PD$lP H t$T$xw-? $cUj|VjqČ]_^[Í@y6nSVWUp$$$h0T$ld$pÃ0҉D$d$$Hf=wK%$V$j$%PD$ PD$tPj$R$Qh$D$h|$hk$0<|$lTV1jf$PD$ PD$tPj$R$Q$P$0D$h-? frV9? 끡LQS $PS[ LRSF $0$V$j$%PD$ PL$tQj$S$PhV$j$%PD$ P\$tSj$P$RhfwV9sR? f V]9s5? 9T$dRjD$hp]_^[9w9wٍ@jjT$ R ÐSVWU]u$ULRQS SS} W%Pj1VfE(PPMQSơL WRS St ]_^[É]_^[Í@TTnʓD$T$Jf$%R`RP*Ë%1ɊJ`QfRfRP  Ë%1ɊJ`QfRjRP Ë%R`RP^S%1ɊJ`QZlSP/ [Ë%1ɊJ`QJrQP P1Í@SVWU|$l$U|$;UXMJ  )1҅v ѳL BL9rᐉ1҃ s0(0r]9wX0f YF@B rЊ%PT$R1]_^[ÀLhd1m8Ar Fw7jSO8LQSjWDf]_^[nST$D$L$\$ tt9s9v[1[9v[ÐD$<:D$|SVW|$t$ta1fC P1fCPVW~tCt|$u _^[1fCP1fC PVWLt CtՀ|$t΋u1_^[SVW|$ht$1fCPSRVWtCt|$u _^[1fCPKQVWt CtՀ|$t΋u1_^[ÐStY1CP1D$ PtC t|$ u[1CP1D$ Pt C@tڀ|$ tӋu1[ËL$tt1fP9su1StY1CP1D$ P7tCt|$ u[1CP1D$ P t Ctڀ|$ tӋu1[SVWU=L\$\tu]_^[ËL$QSnƃÅtl$UMWVwu&;\$t1CPW>uu]_^[À>tu]_^[þؘ3RsϙSVWUl$D$ 1H$D$;X~$5<Ƌ6u $C $ա%P8RN8QEuۋT$f wf$1UFx9uߋ $C $1Fy;Euߋ $C $s1MfFd9uߋ $C $U1UfFh9cߋ $C $31Fz;EDߋ $C $1MF{9#ߋ $C $E;Flߋ $C $E;Frߋ $C $1UfFb9ߋ $C $1f;Eߋ $C $t]_^[SVU`\$pD$\D$\PD$\PD$\PD$\PSfsfCt fs`]^[WT$`RL$`Q|$`Wl$`US_fs`]^[ËD$@@1PD &%< 1D$U"$%ËD$U"$%ËD$U"$%ËD$U"$%ËD$U"$%ËD$U"$%ËD$U"$%ËD$U"$%ËD$U"$W%ËD$U"$%ËD$U"$ %ËD$%Í@D$ËT$U"$%tBÉËT$U"$%tB ÐSVD$ T$Ɖ@uH@BXu^[ËSD$$PT$RL$Q1 $[ËD$`P:t JH1ÀHÍ@؞؞؞؞؞؞؞؞؞SVWU\$Sƃ+;w-$HsN1s]_^[Ë{CO{]_^[C uԊU"$%tC릀KC uHtKC A KC 넋S uL1kEkHt/SFU"10K 9]Ks]_^[ÃtC usF;sO;u {]_^[SƃXsBuS{ d1w$Ĝ]_^[$|F$v<[sD$WD$ PKu]_^[PD$ PL$ A\$0L$ 9GT$(D$]_^[SD$T$ t t :u x@Bu:%H[Í@SD$Š@u)H[Í@SD$L$ 1Ҋ9t Š@u1[ËSVt$ \$&t#3؄t:tP@u8uQAu݉)^[SL$\$ 08t:tP@8u:0u ȊA8u1[É[ËSVD$ t$11Ҋ9uŠ@u^[SVt$ \$&t#3؄t:tP@u8tQAu݉)^[SVWL$t$ȉt8t29t+9@8uljZB9@8uut8u1_^[ÍG_^[ËSD$T$ @BXu[ËSVD$ L$T$BJv @AXu(1J@HSVD$ 1ҊU"1ɀ1u.U"t@1Ҋ+s7U"t711ɊU"t%k 0)@w@1Ҋ-uF1^[Åt^[ډ^[ÐL$1U" u'U"tA1芀U"$%tS11U"、t5U"t0AϊU"t 7[Í@SVWU|$L$΅s 1ۉʉ؃0ʉC߅}C-Wp1ۅ~" >@1ҊPC$IP$NQ9|]_^[SVU t$D$ 1ۉƒT$L$S jL$0L$ىӍL$ wV:H1ۉD$~,0l$@1JHC $JMH $l$J9|܍@ ]^[ÊL$7L$ىӊT$1떐ST$BX@tArZw݀ ([ÐST$BX@tarzw݀ (SVWU|$tVL$ tN% ^uB= s9=\t) Pt8T$ ]_^[1Ճ=\t ҡ@~A!aQ1q I)iY9yE%eU5u M-m]=}C#cS3s K+k[;{G'gW7wO/o_?;0..9A..F0..9 L K GThe matching virtual adapter could not be found. HA resource tag is unavailable. IUnable to allocate memory. JThe hardware interrupt cannot be set. [The hardware configuration conflicts. KThe MLID cannot be registered with the LSL. LThe polling procedure cannot be added. MThe event notification routine cannot be registered. NThe firmware file cannot be read. OLAN/WAN driver was written for a NetWare version prior to 4.11 and may not work properly. Contact your adapter vendor for an updated driver. PUnable to register a new physical adapter. TUnable to allocate memory below the 16 Megabyte boundary. VThe driver parameter block is incorrect. WThe media parameter block is too small. YCannot schedule interrupt time call back before MSMRegisterMLID. \Cannot schedule AES without an HSM routine. ]Cannot schedule interrupt time call back without an HSM routine. ^Cannot set hardware interrupt without an HSM routine. _Cannot add polling without an HSM routine. `Require BUS= parameter to load LAN driver bFailed to obtain SMP Mutex due to low memory, driver load aborted cError initializing CMSM functions. The MSM is unable to parse a required custom keyword. WARNING: FATAL: -NW-%03d: -NW-%03d-Adapter %x-Board %x:    Alloc Memory Hardware Options Hardware ISR MLID Board ECB Buffers Timer Call-Backs AES Call-Backs Polling Procedure Cache Below 16 Meg Non Movable CacheMSM Event NotificationMSM Alloc MemoryMSM Polling Procedurei$i$$ MSM$$% $$% $$% PUnable to allocate memory. QDriver Custom Counter Strings are too long for available memory. Node number is invalid and was ignored <NWCACS``h  Ƞoption osname='FlashTek (stack calling convention)' libpath t%WATCOM%\lib386\dos libfile cstrtx3s option stack=4k,align=4k,internalrelocs lib lx ^ x32svoption osname='FlashTek Virtual Memory (stacDibpath %WATCOM%\lib386 libpath %WATCOM%\lib386\dos libfile cstrtx3s option stackocs library x32vb.lib format os2 lx ^ win386p(option osnamFRAME=%sNODE=%sMSBLSBFDMODEOFF acbEbbbdAdydddda a eDriver Reset FailureFRAMEINT=%XINT1=%XPORT=%XPORT1=%XDMA=%XDMA1=%XMEM=%XMEM1=%XSLOT=%UCHANNEL=%URETRIES=%UBUFFERS16=%UBELOW16NODE=%16sBUS=%sNAME=%sINT0PORT0DMA0MEM0ODI Command Resource TagMSM: Unable to get command resource tag REMOVENETWORKINTERFACEADAPTER??? Unknown Command ??? RESETSHUTDOWNSROUTENo Such Board , No Such Adapter This function is not supported by this driver. Bad Parameter Operation Failed No Such Driver e eeeR ( H    !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~MeSsAgEsService SuspendService ResumeService/Status ChangeSuspend RequestMLID ShutdownMLID Card RemovalMLID Not In RangeMLID Hardware FailureMLID Cable DisconnectMLID Media Access DeniedMLID ResetMLID Card Insertion CompleteMLID In RangeMLID Cable ReconnectMLID Access Point ChangeMLID Speed ChangeMLID Config Table ChangeMLID DeRegister Resource ChangeMLID ReRegister Hardware Options Change048<@DHLPTX\`dhlptx|ĨȨ̨?@w@ͩ@@@@+@z@@@@ʮ@@@@Ȱ@а@@@ @@a@&@,@:@D@X]@b@h@y@@@@@@Ʋ@ֲ@@@@+@;@K@_@@@γ@@)@7@O@_@o@@@@@@ @@c@w@@@@@յ@@@ @I@W@k@@@#@S@y@ŷ@޷@@/@6@E@TX\`dhlptx|ĜȜ̜МԜ؜ܜ  $(,04V@ߝ@%@>@@H@`@A@ $(,048<@DHLalptx|ħȧ̧Чԧاܧ  $(,(~@d~@l~@~~@~@~@~@~@~@~@@@ڀ@@@.@ $(,048<@DHL[@Ƀ@@I@l@@i@@@,@b@e@@ߊ@)@=@@@>@b@@@ u@@G@O@r@я@@@@ِ@e@@Ց@@@@ђ@ $(,0PV@p@@@͓@@@@@ $(,048<@Dg@y@@{@@@@@Κ@@@ @@2@F@Z@n@@@HLPi@"j@Sj@j@j@k@Jk@k@k@k@!l@4l@Ll@Zl@ll@Pm@m@m@m@8n@un@n@n@n@n@nooo ooooo o$o(o,o0o4o8o7@7@7@68@H8@N8@V8@a8@l8@w8@8@8@8@8@8@8@)9@9@9@9@9@9@9@9@:@2:@7:@]:@:@:@:@:@:@:@;@;@;@$;@S;@`;@s;@;@;@;@;@3<@8<@k<@y<@<@<@<@<@<@<@=@ =@K=@X=@=@=@=@=@>>H>@M>@S>@^>@>>@>@>@>@>@>@?@$?@e?@?@?@@@@@@@@@@@@@@@@@@@@@A@ A@B+@U+@^+@y+@+@+@+@+@,@ ,,@%,@5,@=,C,@S,@e,@o,@,@,@,@,@,@,@,@,@ -@-@(-@8-@A-@K-@X-@g-@-@-@-@-@-@-@-@-@-@-@-@-@ .@#.@M.@R.@W.@^.@x.@.@.@.@.@.@.@.@.@.@.@|0@0@0@0@0@0@0@0@0@0@0@0@'1@41@A1@G1@M1@T1@Z1@y1@1@1@1@1@1@1@1@2@2@2@;2@A2@O2@X2@p2@y2@2@2@2@2@2@2@2@2@2@2@3@3@3@93@B3@H3@Z3@a3@q3@w3@3@3@3@3@3@3@4@4@4@2@>@F@U@b@j@r@z@@@@@@@@@@@ @ @ @" @. @4 @F @X @} @ @ @ @ @ @ @ @ @ !@!@%!@>!@b!@h!@z!@!@!@!@!@!@!@!@!@!@!@"@"@"@2"@J"@\"@k"@q"@}"@"@"@"@"@"@"@"@"@#@#@8#@w#@}#@#@#@#@#@#@#@#@#@#@#@ $@$@$@*$@=$@q$@$@$@$@$@$@$@%@%@&%@,%@o%@{%@%@%@%@%@%@%@%@&@&@&@R&@_&@h&@&@&@?'@'@'@'@(@( (@+@+@+@++@@@@@@@@ @@@#@4@9@J@O@`@e@k@t@|@@@@@@@@@@@@@ @@$@/@4@F@Z@e@k{@@@@@@@@@@@)@2@:@M@]@c@m@w@@@@@@@@@@@@@@@@+@1@7@H@S@[@@@@@@@ @@@9@G@U@@@@@@@'@W@p@@@@@@@@@,@6@C@Q@\@u@@@@@@@@ @$@ @j @ @ @ @ @ @J @e @k @ @l @ @ @@#@5@W@o@@@@9@D@P@v@@@"@>@\@{@@@!@E@P@c@@@@@'@Q@@@@@@@@@ @@$@)@:@?@D@I@S@Y@b@s@x@@@@@@@@@@@ @@+@0@I@N@g@l@@@@@@@@@@@@@!@.@?@L@]@j@{@@@@@@@@@@@@@@@!@&@?@D@]@b@{@@@@@-3xNRVZ^b (Dd<\xXt  s37;[{  $(,048<@DH@;@N@@@@T@_@m@@@@@@@@D@P@[@i@}@@@@@@@@@k @ @ @ @\ @ @ @ @ @ @ ScanCardInfo{E@AllocateMappedPages&@''@'@CYieldWithDelay@@B@B@DeAllocateMappedPagesx'@'@GetFileServerMajorVersionNumber@GetFileServerMinorVersionNumber@ GetNLMNames"@GetNLMVersionInfo2@"@GetServerPhysicalOffset@GetSuperHighResolutionTimer-B@ImportPublicSymbol!k@@@@@@@9@W@u@@@@@@7@U@s@@@@/@M@k@@@@@,@B@X@@@ NetWareAlerti.@ReadEISAConfig)@ReadPhysicalMemory'@WritePhysicalMemory'@LSLControlStackFilterG @GetNumberOfLANsN@AddPollingProcedureRTagp@Alloc#@$@n&@&@QR@|S@S@AllocateResourceTag@O@@@@<@ @!@:@@@PA@A@J@K@2@CancelInterruptTimeCallBacki@JC@^c@CancelSleepAESProcessEvent@@lC@7c@CFindResourceTag9 @] @ CloseFile%@ConvertStringToUnsignedLong3@(4@V4@4@DeRegisterHardwareOptions V@@@"@F@@*:@I@M#@DisableInputCursor2@3@@EnableInputCursor.2@2@@Free i@9@@H@o'@L+@1@R@S@S@ GetBusName(@U@GetBusSpecificInfo(@U@ GetBusTag(@U@tx@ GetBusType(@U@ GetBusInfoX(@U@WrtConfigSpace8i)@]@WrtConfigSpace16z)@]@WrtConfigSpace32)@]@RdConfigSpace8)@Y@RdConfigSpace16)@Y@RdConfigSpace32)@Y@GetCardConfigInfo)@U@ SearchAdapterN*@\@GetCurrentTime u@@@@@@3@H@)7@U@GetNestedInterruptLevel~@@v-@B@B@H@M@GetSystemMemoryMap*!@InputFromKeyboard^2@'3@ʒ@ INWDOSClose%@KillMe@@@LSLAddProtocolIDt,@LSLDeRegisterMLID{@LSLFastRcvEvent0@LSLGetMaximumPacketSizeE#@LSLGetSizedRcvECBRTag.@jG@~N@LSLHoldRcvEvent/@LSLRegisterMLIDRTag+@LSLReturnRcvECBi/@w/@/@G@N@N@LSLUnBindThenDeRegisterMLID@@MapAbsoluteAddressToDataOffset'@MapDataOffsetToAbsoluteAddress(@-(@ NBIRequestV@qV@OpenFileUsingSearchPath%@OutputToScreen,@,@-@-@$2@2@2@|3@@@N@@i@@@)@Ϸ@@@<@K@RegisterConsoleCommandm@ParseDriverParametersn1@RegisterForEventNotification@@@RegisterHardwareOptions5@:@J@M@RemovePollingProcedure0C@ RingTheBell2@T3@ ScanBusInfo/)@\@ScheduleInterruptTimeCallBack @ @@@@7K@|M@ScheduleSleepAESProcessEventi @ @@uA@CI@J@L@SetInputToOutputCursorPosition)2@2@@UnRegisterConsoleCommand~@UnRegisterEventNotificationB@ C@C@CMovBl@m@mp@CSetBo@@IOConfigurationList'GetInstanceNumberm*@D@V@GetInstanceNumberMapping*@D@V@GetNBIConfigurationV@GetUniqueIdentifierParametersD@W@LSLServiceEvents ]@MSMMPKActvFlaglLogicalToPhysical MSMAESProcedure MSMAlertFatal2-MSMAlertWarning-MSMAlloc&MSMAllocateMultipleRCBsF MSMAllocPages'MSMAllocateRCB.MSMASCIIToDWordh5MSMBitSwapTable MSMCallBackProcedureP MSMCancelTimer`KMSMCanonicalModeMSMControlStackFilterF MSMDeRegisterODINEBQOMSMDeRegisterResourceMMSMDeRegisterSharedMemory%:MSMDriverControlCallMSMDriverControlShimMSMDriverRemove}MSMDriverSendCallMSMEnablePollingAMSMEnqueueSend MSMFastRcvEvent0MSMFastRcvEventBelow160MSMFileServerMajorVersionNumber MSMFileServerMinorVersionNumber MSMFree=' MSMFreePages'MSMGetAlignment7(MSMGetConfigInfoG MSMGetBusInfoH( MSMGetBusNameu(MSMGetBusSpecificInfo( MSMGetBusTag( MSMGetBusType("MSMGetConfigFromLogicalBoardNumber MSMGetConfigFromLogicalBoardNameMSMGetConfigFromAdapterName|MSMGetConfigFromHINMSMGetCardConfigInfo)MSMGetHINFromHINNameQMSMGetHINNameFromHINRMSMGetInstanceNumberDMSMGetInstanceNumberMappingD MSMGetLogical'MSMGetMicroTimer)BMSMGetPhysical'MSMGetPhysicalAddressOfECB (MSMGetPhysList"QMSMGetPollSupportLevel`DMSMGetTSMIFLevelhBMSMGetUniqueIdentifier* MSMGetUniqueIdentifierParametersDMSMGetVersionNumbernBMSMHardwareFailureOMSMHoldRcvEvent/MSMHoldRcvEventBelow16/ MSMInitAlloc& MSMInitFree='MSMInterruptProcedureCallMSMInterrupt2ProcedureCallMSMIOCTLJumpTableMSMModuleHandle MSMNESLDeRegisterConsumeroPMSMNESLDeRegisterProducerPMSMNESLProduceEventPMSMNESLProduceMLIDEventPMSMNESLRegisterConsumercPMSMNESLRegisterProducer{PMSMParseCustomKeywords#MSMParseDriverParametersx0MSMPhysicalEqualsLogicalxMSMPhysicalPageSizetMSMPrintString,MSMPrintStringFatal,MSMPrintStringWarning,MSMRdConfigSpace8)MSMRdConfigSpace16)MSMRdConfigSpace32)MSMReadEISAConfig)MSMReadPhysicalMemory'MSMRegisterHardwareOptions5MSMRegisterMLID*MSMRegisterODINEBNMSMRegisterSharedMemory:MSMRegisterResourceMMSMRegisterTSM/MSMReRegisterHardwareOptionsH MSMResetMLIDqMSMResumePollingGMSMReturnDriverResources7MSMReturnMultipleRCBsGMSMReturnRcvECBo/MSMScanBusInfo)MSMScheduleAESCallBackAMSMScheduleIntTimeCallBack@MSMScheduleTimer_JMSMSearchAdapter3*MSMSetHardwareInterrupt0:MSMShutdownMLIDMSMSMPActvFlaghMSMSuspendPollingGMSMUpdateConfigTablesHMSMWritePhysicalMemory'MSMWrtConfigSpace8d)MSMWrtConfigSpace16u)MSMWrtConfigSpace32)MSMYieldWithDelayBPhysicalToLogical CMSMAddToCounterS CMSMAllocTCMSMAllocateMultipleRCBs*TCMSMAllocPagesTCMSMAllocateRCB]T CMSMCancelAESTCMSMControlCompleteTCMSMDeRegisterResourceTCMSMDisableHardwareInterruptUCMSMDriverRemoveTCMSMECBPhysToLogFragsUCMSMEnablePollingUCMSMEnableHardwareInterruptUCMSMFreeVU CMSMFreePagesmUCMSMGetAlignmentUCMSMGetBusInfoUCMSMGetBusNameUCMSMGetBusSpecificInfoU CMSMGetBusTagUCMSMGetBusTypeUCMSMGetCardConfigInfoUCMSMGetConfigInfoUCMSMGetCurrentTimeUCMSMGetHINFromHINNameUCMSMGetHINNameFromHINDVCMSMGetInstanceNumberVCMSMGetInstanceNumberMappingVCMSMGetMicroTimerVCMSMGetNBIConfigurationVCMSMGetPhysicalVCMSMGetPhysListVCMSMGetPollSupportLevelV CMSMGetSlotWCMSMGetSlotName WCMSMGetUniqueIdentifierW!CMSMGetUniqueIdentifierParametersWCMSMHardwareFailureWCMSMIncrCounterW CMSMInitAllocWCMSMInitParserlCMSMNESLDeRegisterConsumerWCMSMNESLDeRegisterProducer XCMSMNESLProduceEventXCMSMNESLProduceMLIDEventXCMSMNESLRegisterConsumerNXCMSMNESLRegisterProducer|XCMSMParseDriverParameterseCMSMParseSingleParameterCMSMPrintStringYCMSMRdConfigSpace8YCMSMRdConfigSpace16YCMSMRdConfigSpace32YCMSMReadPhysicalMemoryYCMSMRegisterHardwareOptionsYCMSMRegisterMLIDS[CMSMRegisterResourceA\CMSMReRegisterHardwareOptions^ CMSMResetMLID]CMSMResumePolling\\CMSMReturnDriverResourceso\CMSMReturnMultipleRCBs\ CMSMReturnRCB\CMSMScanBusInfo\CMSMScheduleAES\CMSMSearchAdapter\CMSMServiceEvents]CMSMSetHardwareInterrupt]CMSMShutdownMLID]CMSMSuspendPollingg]CMSMTCBPhysToLogFragsz]CMSMUpdateConfigTables]CMSMWrtConfigSpace8]CMSMWrtConfigSpace16]CMSMWrtConfigSpace32]CMSMWritePhysicalMemory]CMSMYieldWithDelay] FreeBusMemory0^ MapBusMemory6^CACSAdapterTempPtr5 CACSAllocrSCACSCHSMAdapterDataSizeTCACSDriverRegisteredPCACSDriverTableCACSFreeSCACSFindMessagesCACSNumberFramesV^CACSPrintError<^CACSGetNumberCustomCountersaNESL_Service_Suspendi$NESL_Service_Resumey$NESL_ServiceStatus_Change$NESL_Suspend_Request$NESL_MLID_ShutDown$NESL_MLID_Card_Removal$NESL_MLID_Out_Range$NESL_MLID_HW_Failure$NESL_MLID_Cable_Disconnect$NESL_MLID_Media_Access_Denied %NESL_MLID_Reset%%!NESL_MLID_Card_Insertion_Complete0%NESL_MLID_In_RangeM%NESL_MLID_Cable_Reconnect[%NESL_MLID_Access_Point_Changep%NESL_MLID_Speed_Change%NESL_MLID_Config_Table_Change%$NESL_MLID_DeRegister_Resource_Change%,NESL_MLID_ReRegister_Hardware_Options_Change% NBI|NBI31XNetWare Message File: MSM.nlm 1.06, Tran v1.0 6<Pf|+FUj!8c8qIYo&5y2;\    ' . 3 ; C N Y f p x  . ; F ] b g   3 n ) x   ( > T m x Z<<< BAD MESSAGE >>>Total Tx Packet CountTotal Rx Packet CountNo ECB Available CountPacket Tx Too Big CountPacket Tx Too Small CountPacket Rx Overflow CountPacket Rx Too Big CountPacket Rx Too Small CountPacket Tx Misc Error CountPacket Rx Misc Error CountRetry Tx CountChecksum Error CountHardware Tx Mismatch CountTotal Rx OK Byte CountTotal Tx OK Byte CountTotal Group Addr Tx CountTotal Group Addr Rx CountAdapter Reset CountAdapter Opr Time StampTx Queue DepthCMSM Init Alloc MemoryCMSM-NW-072: A resource tag is unavailableFATAL: Unable to reset MLID. Unloading module %s. CMSM Event NotificationCMSM Polling RoutineCMSM-NW-76: The polling procedure cannot be added.CMSM-NW-77: The event notification routine cannot be registered.%s-NW-%03d: Cannot add polling without an HSM routine. %s MLID Board%s-NW-%03d: A resource tag is unavailable. %s-NW-%03d: The MLID cannot be registered with the LSL. IPX%s-NW-%03d: Unable to allocate memory. %s-NW-%03d: The media parameter block is too small. %s Alloc Memory%s Cache Below 16 Meg%s Hardware Options%s-NW-%03d: The firmware file cannot be read. %s-NW-%03d: The hardware configuration conflicts. %s-NW-%03d: The matching virtual adapter could not be found. %s# ECB Buffers%s-NW-%03d: Cannot set hardware interrupt without an HSM routine. %s Hardware ISR%s-NW-%03d: The hardware interrupt cannot be set. %s Timer Call-Backs%s AES Call-BacksABEND, ECB Linear Address with no Physical Address, address not locked down. %.8s-NW-%.8s-NW-Adapter %x-Board %x: %s%.8s-NW-Adapter %x-Board %x: %d:%s . using I/O ports to and , Memory , Interrupt , DMA Channel SLOT Select Board To Load : 10INT=%XINT1=%XPORT=%XPORT0PORT1=%XDMA=%XDMA0DMA1=%XMEM=%XMEM0MEM1=%XSLOT=%UCHANNEL=%URETRIES=%UBUFFERS16=%UBUFFERS16BELOW16NODE=%16sNODEBUS=%sNAME=%sINT0 =]Board name is too long and was truncated: %s Board name %s is already in use and was ignored. Missing the value for keyword '%s'. -+012345678901234567890123456789ABCDEFabcdef ..~YyNnDo you want to load another frame type for a previously loaded board? : n Enter the value for : Supported values are : . , Enter Value for between - %sCommand Line Parameter Prompt for %s%s-NW-%03d: The specified node address override is invalidA Keyword was out of range or a required parameter is missing. FRAMEEvent registration with NESL failed. LSBODI_CSPEC_VERSION: 1.11Error parsing for driver parameter. MeSsAgEsCoPyRiGhT=(c) Copyright 1996, 1997, 1998, by Novell, Inc. All rights reserved.LaNgUaGe= English (English)ODI Command Resource TagService ResumeMSM: Unable to get command resource tag Suspend RequestMLID ShutdownMLID Card RemovalMLID Not In RangeMLID Hardware FailureMLID Cable DisconnectMLID Media Access DeniedMLID ResetMLID Card Insertion CompleteMLID In RangeMLID Cable ReconnectMLID Access Point ChangeMLID Speed ChangeMLID Config Table ChangeMLID DeRegister Resource Change%s: The driver parameter block is too small or out of date. MLID ReRegister Hardware Options ChangeVeRsIoN=1.05 Novell Media Support Module message file.Service SuspendService/Status ChangeBAGF SMP_Bag MT Safe NLM(SMPDree i@9@@H@o'@L+@1@R@S@S@ GetBusName(@U@GetBusSpecificInfo(@U@ GetBusTag(@U@tx@ GetBusType(@U@ GetBusInfoX(@U@WrtConfigSpace8i)@]@WrtConfigSpace16z)@]@WrtConfigSpace32)@]@RdConfigSpace8)@Y@RdConfigSpace16)@Y@RdConfigSpace32)@Y@GetCardConfigInfo)@U@ SearchAdapterN*@\@GetCurrentTime u@@@@@NetWare Loadable Module ETHERTSM.NLM!"U.J.t%<d&#*.L (Novell Ethernet Topology Specific Module LONG ETHERTSM.NLMVeRsIoN#ECoPyRiGhT=?(C) Copyright 1990 - 1998, by Novell, Inc. All rights reserved.MeSsAgEsU. U.U.W@`0 LLE(tE} RfC"t7={Nr PtK(% MXPY E3֋MXu}>6CF&fC fF*fC"(HF FD FDFIu< t<@33Í} fK"HC({(vC(+CC,{uHC0tHCCCCCCCCC C C!C!Ctc5CuK5fK"Pu tEU@SH\[]EEeXhPQhtS[$h[u tEU@SH\[]EEe94$'< Dž<Dž4YXp`E{o8;LW  tFЋ8 3V<8A 󥉅8<<^YG3ÉfWfG4H`teEu\<tSO~G3fOu?IwO4fCXf%f=t Du<4`3Ë<fVL;88ft9uf9WtIuI S]؃DtDxfCXf%f=u<4`[Áw#:KLvKLAEu33øøfC" x H ɹ 3IuGIt?tGIu33H?tGFvDC$΋QxY <4`D3 t= thu*h tlu l3 t Džh t9hu-Džh t9lu Džl3 th`a`^ HJ}m}EF0Gw0wFfC" PSL$C!fC"}[3D$t$aø D$t$a3 D$t$aÍ==s = [!^k@@\HEfC`}MtVS3E[^}EF0Gw0wFfC"uUh}lc]Etu Uh}lt ME@H\EEEufC`u}MxԃVS3E[^fC" JUh}l_RGGlGKNIF0;=F=?GlOO3ɋT4*TpT8TtA;r߃PI_R3ËG~t=NHLluVEu^v0~0G0Fl@@뽋~0OAM@@J]fC"tv ^N,f~~s K~tH;CF D<F |<|f|@oF 3 Ë];K(v t'Et@@8 +t@@ tr +xF,F8D<xF4.3Vt<DD^N,N8DG8wCGGfG>C,| 3z_GG GGl$#]fCBC<#2#(PCLPCHP #WCP_^[]USVWl$t$Umԃ8u]~_^[]USVWl$_^[]UmԋuF#uFZF fF$jF(nF,rFLu  K Iuu$},ff#fI]USVW|$t$|$_^[]XXptxhPF xg 77  y ETHERNET_802.3 ETHERNET_IIETHERNET_802.2 ETHERNET_SNAP  `IUnable to allocate memory. OThe MLID did not initialize MSMTxFreeCount. ~The group bit in the node address override was cleared. The local bit in the node address override was set. ETHERTSM-NW-125: The TSM's version number does not match the version of MSM.NLM. ODI_SPEC_VERSION: 3.31  $(,048<@DHLPTx|6@I@R@V@\@`@@@@@@@@p6{@@@@@@@@@U@@"@@MSMPhysicalEqualsLogicalTm MSMGetPhysList@> @MSMGetPhysical@@MSMGetPhysicalAddressOfECBJ@~@~@GetNLMVersionInfo@LSLFastRcvEventu@@H@LSLFastSendComplete -@z@@@6 @x @n @ @@@f@LSLHoldRcvEvent@@H@LSLSendComplete@@@OutputToScreen@MSMAlloc@+@@MSMAllocateRCB@@@@@MSMBitSwapTableMSMCanonicalModeMSMControlStackFilter4@MSMEnqueueSend@@@@@MSMFastRcvEventBelow16@@C@MSMFileServerMajorVersionNumberMSMFileServerMinorVersionNumberMSMFree@b@MSMGetTSMIFLevela@MSMGetVersionNumberQ@MSMHoldRcvEventBelow16@@C@MSMPrintStringWarning@@MSMRegisterTSM@@MSMReturnRcvECB@CACSAdapterTempPtrn*+7G CACSAlloc\@CACSCHSMAdapterDataSize!8MCACSDriverRegistered CACSDriverTablejCACSFree0@CACSFindMessages@CACSPrintError&@CACSGetNumberCustomCountersJ@!EtherTSMBuildTransmitControlBlockEtherTSMCancelPrioritySendEtherTSMGetConfigInfoEtherTSMFastRcvCompleterEtherTSMFastRcvCompleteStatus`EtherTSMFastProcessGetRCBEtherTSMFastSendComplete@ EtherTSMGetASMHSMIFLevelEtherTSMGetNextSendEtherTSMGetRCBEtherTSMProcessGetRCBEtherTSMRcvCompleterEtherTSMRcvCompleteStatus`EtherTSMRegisterHSMEtherTSMSendCompleteEtherTSMUpdateMulticast="CEtherTSMBuildTransmitControlBlockCEtherTSMCancelPrioritySendYCEtherTSMFastProcessGetRCBrCEtherTSMFastRcvCompleteCEtherTSMFastRcvCompleteStatusCEtherTSMFastSendCompleteCEtherTSMGetHSMIFLevel(CEtherTSMGetRCB.CEtherTSMProcessGetRCBxCEtherTSMRcvCompleteCEtherTSMRcvCompleteStatusCEtherTSMRegisterHSMCEtherTSMSendCompleteCEtherTSMUpdateMulticast CEtherTSMGetConfigInfo MSM|MSM31XBAGF SMP_Bag MT Safe NLM(SMPDtuv{xyz|}~.  Q!)..  Q!) RTSODI COM (pRTSODI INS xu$NET CFG 5R&GDOSODI TXT $ZV%&BR$ 100FULL100HALF10FULL10HALFAUTO /t t u!PaaaX$!t r&hp h!d&fԈ&gPaaaXP"tX"3>b:&^&E`À>udPaaaX f3>b^PSQRWVUȎػV~>u] .V^_ZY[Xπ>#t>uukҜU=w+us^] X䓊jz3þpٳSQYQY[QtZ}>D D w VY uI!33S}&ۋxeZuY>D D 39\swۋxMDu{+ø: t=;t5QSۋxM$V[KuYQ}Y u=+>u 6+ø96u9u&|Ar &|~wa{jt&D=r$t :fw&&&D&D>6&5&E6 t&&D&DVڀ&àiPaaaX8#uÀt xMZuËtxD$SV[uàf t j&&rKtJۋ6zz8󤋿z:%?e" E"e"߀u3.Zø ˉ66 6.0U&l>NS.x>~[Ku] ETHERNET_IIETHERNET_802.2ETHERNET_802.3 ETHERNET_SNAP0t#@3]˸ P&D&\ X UȎu#x΋w V‚]. .V3# 6t, 땃xz>t 6t,V# > t#x&&M u& 3Ë6 uË6E,DD &]3&E&}w+D &E*D;t@$ȃu ktzt>u ÿL&rHw;w=r>u&\tDtEp]D&Dtz{@Msƀ& s. &@]LO&|u+&dE &DE &DED'4 O7E tEm&M u+PEP&DEP&DEP&D EPVuW&D&D&D&D3&L,\.&W&l &T*&LMt +;r)&l*X(*|~3à Ëŋ+Ht" u&D&D&D &DN+Mt>" u7&D/& &w(+&l *+&D*;r&l*&&D uVø&tYt(v}t É]UEcE&tu Mt3ø3v&&\&Tvg}t9Uu 9]u9u3à 3ۋtv]s#i tx<wq$` tgNRrvۋxE(3ɋu$++E*}<uHE,}uыV^ uN Service SuspendService ResumeService/Status ChangeMLID ShutdownMLID Reset*Realtek RTL8139(A/B/C)/8130 Ethernet RTSODIW( $$*@ C9C999  $(,04678:<>@DHLPQRTXYZ[\`pt^b|fj~~~~ @tttt& 8TxAbortTimeOutDMAWouldNotCompleteReinitializeNIC RxBufferErrorHardwareDriverMLID   :  = fPf~f~f~|t ~~f&f~f&EffXVQ~~Q#к#3, t FY΁3ЋȀW~. ._Y^Ë3 $4  >f8ffQf2 fY4f ffxffC8f @fQfԐ fY u3 uDVWT _ fPf~f%f ~Qf3Y~f%f fff~f~ffXk>~u">u >ht Ü.^~3 u$>u >ht Ü.^& >hu uc u u?~av et>~t.l>lr luuˋu$  t  딋u6~Ȏ؋\6~t~u\of~"%ttĴ)uZ tO~Ќ؍\.?O ;r+fss uό؎Ȏ؋Z6~D%~~-;6~r@6~XU&Ȏ؋ = stЋ u6~~+Ƌ6~\v7u\ u\\ ;s(t 9݃ S讄[ ~У~6~؋Í\.?O;r+S~~RPtp uU =v-;s\;~v8+~QV^fss>~u ~t.Y+~XZ[6~(W~XZ[~XZ[V^+fss +؎Ȏ؋ tuu6~ą6~ f2t fh;~u>#t f-W狕L‹T_u fCr#뼃>u?~~襁u ~~u'׋fCr#s6>t|<u<fQf@fYBuA<=t=t=t=t!  (uBu^dfPf~f~fXfP^ f~f~fXff%f ~f66fQf28fY%p ؃4fff~>ffQf2fYf~ffQf2fYf~ffQf2fYf~ffQf2fY6%p ؃>f8ffQf2fY4f ffxffC8ffQf2pfYu\f4ffC9ˋ>ffQf2DfYfC9ffQf2/fYf9ffQf2fYf9fu\f4ffC9ˋ>ffQf2fYfC9ffQf2fYf9ffQf2fYf9ff4ffC9ˋ>ffQf2fYfC9ffQf2qfYf9ffQf2\fYf9f#4f ffxffC8f dC@@fP.6ffu.4fft .6fX.>#t. t&D..V.~.>~r.>~tUV}u~3 V^]~3~㉏~鋿DdȎ\ދL fssSW&5_&O&wfssu،Ȏ؎^fPdfhffX~>~r.~~~ ?~|fPt.~@~~ f3fff3ff~f~f $ ~fo~o $ Uڀ]#~f~Dž~f3fffh??~~fXfRfP2rf3Ksf3EffEfE fXfZfXfZ2P@&{ uXsPR3KZXfUfPf3tfX\fTTzr:f`ffffffffffXf]fPfSRffff+f;rZf[fXDMAINTIRQMEMPORTPS/2 SLOTSLOTNODE ADDRESSPROTOCOLFRAMEENVELOPE TYPELOOK AHEAD SIZELSBMSBFDMODEOFFNESLBUS IDETHERIDDEVICENOBUSNOSPEEDMEDIUMLINKSUP$NESL_EVENTSThe LSL is not loaded.The LSL has no more room for a board using Frame Could not find driver to unload. A TSR is loaded above the driver. The adapter did not initialize. did not load. You need another driver section in the NET.CFG file in order to load the LAN driver again. A NET.CFG is required to load the driver again. The following configuration file entry was ignored: The driver has been successfully removed. The driver does not support frame . The protocol keyword has been ignored. The protocol keyword must have a frame type. Entry ignored. The driver could not register Protocol ID for protocol stack for frame type The frame type is already activated for frame The node address was incorrectly specified in NET.CFG. An invalid keyword was specified in NET.CFG on line The frame type specified in the NET.CFG is not supported. An invalid node address is specified in NET.CFG. The driver modified the incorrect address bits. This driver requires LSL version 2.11 or higher.The driver did not load.A missing or invalid value was specified on line %The medium type specified in the NET.CFG is not supported. This version of driver does not support SPEED keyword, Please use MEDIUM keyword. Driver registered as a NESL Suspend Class producer. !Driver registered as a NESL Resume Class producer. "Driver registered as a NESL Service Change Class producer. #The driver requires the NetWare Event Service Layer (NESL). $NetWare Event Service Layer (NESL) is Loaded. Available command line options: -Installs the LAN driver S -Shows resident LAN drivers in memory U -Unloads resident LAN driver from memory ? -Displays this help screen The following LAN drivers are loaded in memory: v is loaded at Segment h. Invalid parameter. -DOS-Slot IRQ Port DMA Mem Node Address L M, LSB Mode, MSB ModeMax Frame bytesLine Speed Mbps KbpsBus ID Board , Frame Unknown.. : ,  The HSM's version of the statistics table is not supported.The HSM's version of the configuration table is not supported.The HSM forgot to set the MSMTxFreeCount variable during DriverInit.The HSM forgot to set the MSMLookAheadSegment variable during DriverInit.The HSM has set the MSMTxFreeCount too High.The HSM returned an invalid return code.This driver must run on a 386 processor or better.MSM = v2.10 (960401) ېIPX [Ƒӑ    `ee+.33$L7aky s p Ԛ>2u>3 uܺ>puҀ>qu˸/5!&?t&tP/<Xt u.u\^`\`u;u`&| r&| s~NY2>t'., tI!>!p1!Β JB L!PSQRWVZ~\P/<Xtu "uZ\= ^_ZY[XL>>tt>ru t L!6zDDLZuu;jttEu_3RKZ=rtߛRpKZR Z úH 3Ż`u16lnŻl3&9L&u&|26J utE=u3PSQRUWVz=u\3u&Gr&#Gt@u&G\ t  2&Grvw%T<˾;Tt 3۸zȣS\[t`VzE$]&m&ȉE0E4E8}@tEBA;u 髃3À>uuu<#t<;t t< t0< t,˾ˀd Hu>ur>!ru<#t<;t륋3ۋķtGMu t#3ۋЋyt Mu zкxz귻d=!rr3 SQR&~rwB?!ra t]<"t@<'t;u rt&tiu Q3Yux >tu u3úJB L! t8< t4< t0<#t,<;t(xx"hͿxxA uxx PVW< t< t<;u2 u_^Xu t t P t< t< t<=t3N Xu_<#uuU<t<uM7uEfWhuTu5Wj3Ãtru"<#uxu<t<uCju =w3úΖ xxXuր<#u,u<t<uăuW^6uuW`3&u3Br>RG"t LtMtֿU]zuÿV" uwvw㓍xъ2<tJ'uEIu@<t;ˋWV? G^_t Ju FGvú>vux 3xIPX\˃t+;t%u3ɋ? GV^t Juʕ;Gus>SP>t vxvg"^gu&⑹Dt7tO"@g"^G6DG6t@.,;t&9t׌;u3ɻlK?B?9?]WzW2BLFL!3Ɋ+33Ҭ< t< tztL!PSRz tkz&W.Bb&GPP2`X2< sP3KXGuҙ\񺆚3z{|}Z[Xؾ&D &D>&D &DDHPF@JHL3RT=u7ؾ&D &D>&D &D&D &DEISAuԃffXff5fPfffXf3fQffuN+&>juA&>hnu8n&=u*&}]0&=tG;r&} u&}Pu= =CSu tr ufPCI uMEDIA = v2.10 (960401) Ethernet7  7 H P O &v U3<>PMu>z]$u<*ˉP˃tu;@ˈ+;XH U(+ЉU*U,uM,Hˋ+<ۈjWVM"e"⏡PˣRˣTˣ\Vˣ$@ Ë 6á##@ta>MuU׆׆IuLT=t= t =t=u*tt& 4 HSM_SPEC_VERSION: 4.00VeRsIoN=32-Bit PCI Fast Ethernet Adapter MLID v3.61 (000626) GLINK DRIVER RTSODI ?There is no RTL8139(A/B/C)/8130 Fast Ethernet PCI/CardBus card found !! `The driver does not support the selected BUS ID. Make sure the NET.CFG file contains a valid parameter for the BUS ID keyword. )The hardware configuration conflicts. Failed to lock system memory. This is not on a PCI system. RMore than 4 RTL8139(A/B/C)/8130 ethernet cards found. Driver will support only 4 cards. Warning: The cable may be disconnected from your board! Found Card : EtherID=,IO=,IRQ= on -bit slot. ,BUSNO=,DEVICENO=Fullduplex environment, Halfduplex environment, Please specify which card the driver attach (1-):Driver is attached to card . It is configurated as: g$#]t4~,Qfft~„f3fYff%f=`u&f~C9f~C9f~9f~9WTg_z##=u~fm~m 0B66fQf2蔻fY%p ؃f4ff~>ffQf2afYf~ffQf2NfYf~ffQf2;fYf~ffQf2(fY6%p ؃>f8ffQf2fY4f ffxffC8ffQf2̺fYu\f4ffC9ˋ>ffQf2蠺fYfC9ffQf2苺fYf9ffQf2vfYf9fu\f4ffC9ˋ>ffQf2?fYfC9ffQf2*fYf9ffQf2fYf9ff4ffC9ˋ>ffQf2fYfC9ffQf2͹fYf9ffQf2踹fYf9f#4f ffxffC8fDL V=9 Ë3ff f~fhfffQf*P:fY2t fhff%f$?ôZtTÿ}W 'ο_f9tf9tf8EES3ljEÉE[W T T<_ W_MQW._MYэ}fmm%΀>%v8}͊%2>'s '>%w&, úu$3ɿ}ͺQ)΀1 U%E?*)< v0EEMEr0YA:%y>%t$&}>&u>&u &b&λ)1SM}͊&2}tf~f~f~Ev.v23ɾ}:%s%t QY}QYtAӈ&3ɿ}:%s 9Eu 9EtAވ&ú%Ί2,0<|:Ȣ&!uË<u`>uB=!t= t=t=t u<fQf@ֵfY@=t-=t?=tQ=tc=tu6^dfPf~f~fXP^dfPf~f~fX7A^ fPf~f~fX!^ fPf~f~fX6Bt<fQf@ fYp<=t==t=t=t=tC!< 5.'<ufQf@蠴fY>vXurH(u^dfPf~f~fX^ fPf~f~fX<XЩureQƌڱŠʀºff%f Y5(c930  `$CEN1208  a$EN1660  d$wHT80232  i$\UE0091  l$KVT86100  n$MXIC  v$EN1207B  |$WUE1211  $UE1219  $7 UE1207C  ${!EN1207E  $4"InS_StArT RTSODI.COM 1.0 ^32-Bit PCI Fast Ethernet Adapter,RTSODI.COM,0P0 ?This is the DOSODI driver for the 32-Bit PCI Fast Ethernet Adapter. !0P0(MEDIUM) Optional Medium type AUTO 10HALF 10FULL 100HALF 100FULL *0IEMAP0(FRAME) Frame Type @Ethernet_802.2 Ethernet_802.3 Ethernet_II Ethernet_SNAP $0IEMAP0(NODE ADDRESS) Optional Adapter Node Address 020 FEF $0IEMAP0(ETHERID) Designate Adapter Among Adapters (By node address) 020 FEF $0P0(BUSNO) Specify Adapter's BUS Number (in decimal) 00 99 $0P0(DEVICENO) Specify Adapter's DEVICE Number (in decimal) 00 99 InS_EnD  "z%BAL981 ASM (|y%i]?"EN2220  ](uSIS900  p%(\ADM  s%iS900 ASM ={%]gp OEM1207CROM %oOSW  (1UE1207E  Z7%VVSMC8034  Q(JUSB  Z%QpFIX34 ASM k&\;*K ;* Sample NET.CFG file for 32-Bit PCI Fast Ethernet ODI driver -- RTSODI * ;*K Link Driver RTSODI FRAME Ethernet_802.2 FRAME Ethernet_802.3 FRAME Ethernet_II FRAME Ethernet_SNAP ; PROTOCOL IPX E0 Ethernet_802.2 ; PROTOCOL IPX 0 Ethernet_802.3 ; PROTOCOL IPX 8137 Ethernet_II ; PROTOCOL IPX 8137 Ethernet_SNAP ; NODE ADDRESS 02AABB123456 ;Overwrite Node Address ; ODI Driver Custom Keywords ;- ; Specify adapter's medium which identifys adapter's speed and duplex mode. ; There are five medium values: AUTO, 10HALF, 10FULL, 100HALF, 100FULL. ; MEDIUM AUTO ;operate on auto negotiation mode ; MEDIUM 10HALF ;operate on 10M/HalfDuplex mode ; MEDIUM 10FULL ;operate on 10M/Fullduplex mode ; MEDIUM 100HALF ;operate on 100M/HalfDuplex mode ; MEDIUM 100FULL ;operate on 100M/Fullduplex mode ; Use the following two methods to specify the selected adapter ; when using two or more cards in a machine. (for Multiple Cards) ;-@ ; (1) Use the PCI Bus Number and the PCI Device Number ; (You can get these numbers from the "View Current Configuration" ; of the Setup program (SETUP.EXE).) ; BUSNO 0 ; DEVICENO 10 ; ; (2) Use the> Node Address ; ETHERID 0E8123456 NetWare DOS Requester FIRST NETWORK DRIVE = F NETWARE PROTOCOL = NDS BIND MAX IPG = 0 ; If you know the name of your preferred server, remove the ; semi-colon below and enter the preferred server name after ; the equal sign. ;preferred server =  ROMO($%SW7145 ROMO(zA&@SW8029 ROM&~>&SW8139 ROM $%DIPKT COM @YcDIPKT21COM uYv{*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * ODI Driver for DOS Workstation * * K* *M Installation: = Driver Installation with existing Netware client programs: -: A) Using NETX.EXE: If there are Netware client programs such as LSL.COM, IPXODI, and NETX.EXE in your system already, you can use the following procedures to setup your system. 1. Copy the A:\NETWARE\DOSODI\RTSODI.COM file to the Netware client directory which contains NET.CFG, LSL.COM, IPXODI.COM, and NETX.EXE files. 2. Update the NET.CFG file. You can refer to the NET.CFG sample. 3. Make sure to add LASTDRIVE=E in your CONFIG.SYS file if your want the first network drive to be F. 4. Enter the following commands to connect to your Novell server: LSL RTSODI IPXODI NETX F: LOGIN B) Using VLM.EXE: If there are Netware client programs such as: LSL.COM, IPXODI, and VLM.EXE in your system already, you can use the following procedures to setup your system. 1. Copy the A:\NETWARE\DOSODI\RTSODI.COM file to the Netware client directory which contains NET.CFG, LSL.COM, IPXODI.COM, and VLM.EXE with related *.VLM files. 2. Update the NET.CFG file. You can refer to the NET.CFG sample. 3. Make sure to add LASTDRIVE=Z in your CONFIG.SYS file. 4. Enter the following commands to connect to your Novell server: LSL RTSODI IPXODI VLM F: LOGIN NOTE: - Multiple LAN Adapters in a system: If you want to install mutiple LAN adapter in your system, you have to use "BUSNO" and "DEVICENO" keyword in NET.CFG to select which adapter to use with your netware client.(or you can use "EtherID") You can use the diagnostic program (A:\SETUP.EXE) under DOS prompt to show all the Ethernet addresses of your adapters. Configuration Files: = File Name: NET.CFG - Sample of configuration file: - . . . Link Driver RTSODI FRAME Ethernet_802.2 FRAME Ethernet_802.3 FRAME Ethernet_II FRAME Ethernet_SNAP ODI Driver Custom Keywords - Specify adapter's medium which identifys adapter's speed and duplex mode. There are five medium values: AUTO, 10HALF, 10FULL, 100HALF, 100FULL. MEDIUM AUTO ;operate on auto negotiation mode MEDIUM 10HALF ;operate on 10M/HalfDuplex mode MEDIUM 10FULL ;operate on 10M/Fullduplex mode MEDIUM 100HALF ;operate on 100M/HalfDuplex mode MEDIUM 100FULL ;operate on 100M/Fullduplex mode Use the following two methods to specify the selected adapter when using two or more cards in a machine. (for Multiple Cards) -? (1) Use the PCI Bus Number and the PCI Device Number (You can get these numbers from the "View Current Configuration" of the Setup program (SETUP.EXE).) BUSNO 0 DEVICENO 10 (2) Use the Node Address ETHERID 0E8123456 - All trademarks or brand names mentioned are properties of their respective companies. !h " , ./1A<PQE[IJKLuYTaZ\Ǘ]^_ustvwxyz{|}~ǀLJ ǐLjɒǡDZ`^ȢǣǤǧǫǬǭǮǯdzǴǵǺǷǸǹɻǼǽǾǿ.  $Q!)..  $Q!) RTSOS2 SYS $4NET CFG m&nOS2ODI TXT n& bMZ8@# !L!This program cannot be run in DOS mode. $NEL  *@XXbj  A |4@ 4r@ rRTSOS2 DOSCALLSMSGNLSNWCONFIG&PCI (10/100M) Fast Ethernet LAN DriverRTSOS2$ jLp53 n 2A@b 8|8j ETHERNET_IIETHERNET_802.2ETHERNET_802.3 ETHERNET_SNAPRTSOS2UnderrunErrorCountExcessCollisionsCount OverrunCountReceiveErrorCountPagingErrorCountTransmitTimedOutCountReinitializeNICCountGotNextBuffer0CountNIC Overflow Paging Error Count:Network NIC failed to stop for Reset, Driver De-Registeredtest $Force 100M ! sw"}$!HardwareDriverMLID        @@ /  @$$HardwareDriverMLID   u     @@ /  @OwSwWw[w_wcwgwkwowMSM = v2.1 (940513)MSM.MSGwLINKSUP$IPXIPXIPXIPXIPXIPXIPXIPXIPXIPXIPXIPXIPXIPXIPXIPXIPXIPXIPXIP#XIPXIPXIPXIPXIPXIPXIPXIPXIPXIPXIPXIPX xT]fnv100FULL100HALF10FULL10HALFAUTO06<BHNTZ`flrx~L    IPXNET.CFG))!!)//#)~)2/v mNot Used, Slot 1 KLMLSBMSBLSB ModeMSB Mode -OS/2-FATAL: WARNING: $MEDIA = v1.14 (940531) 77# 3 w }C @ `P0pH(hX8xD$dT4t L,l\<|B"bR2r J*jZ:zF&fV6vN.n^>~A!aQ1q I)iY9yE%eU5u M-m]=}C#cS3s K+k[;{G'gW7wO/o_?hUi+PB| ," ^ $bTF f%! J X$\ "X0(N \8 "@zR $V W!"!`` D_#L>h a"@pZ S&u[&G&O.U sE>hwP>>Q8~>N;tЋYX ] X] ˸ 3u3Ì؎S 7[3U. >n&>umP< >>>YQUS .[. >Nr]t rX u >, $]3X $] >uU. >n&>uJ>tU. >Nr]tkr(USC .[]>>>6]3] Áw#>8ы }u&9TDw&TD3ø SU o&>>>v>N tIƎ&&L>F>N t&PQ&D$YXӋŃ>F>^&D$][QUV. >n&>>8>N>v&LZ^]YQUV. >n&>>8>N>v&dZ^]YUS. >n&>8>NQ>F$Y[]fmfoS G&GsuGZ u_r2|3Ҳ [[S _r2 [S$[S$[S $[S$[Ë> E" t.}&}tE  E t E I+ø95uG9Uu@+EEEE ֋> }&ϸ}u5E tEE+U8 }m&FH&&DM5E&7&G]3Ã>u:PS G$" 6؎6$[X u U3Q]W> }&2_ W> }&2䊅 _W> }&2䊅 _ tƇT&D $E .UuxS]u>U: ]> $]S _&ۋ Gt`>tX>8 tl&NH7O&&LO uÃ_>W|_u [3[ S GW > }&}t] 6t,&D$[ 4> }&> E  E U> E(;sNj> E U"> M &t@&&#D&#D@tSEStzD}&0=}tgqt)[Nj}&M&9LuFM&9Lu= &9 u6   &D =v-Ruu+&D > M } u;w=rU&D=ta&|u=tbu &D &D$<tfAM]> M }tL> E8U8> M 0u˹# u&D &D &D xV> E u-SQR$ZY[tW> EU u*^4 u3ƃ}t E %u6  _4 uXV|4^&D,&D0&|.&l2&l*&L:&L&L<&L&L>&L. &L &L &L&T&L t+> E tE %=t6 +6 t  3 Ã4>  S.> }&}tE &D$[S&D$[ø&tS GZ [tÜ>0~c u^3>Fø&tS GZ [tÜ>0~bu!M~}u >F 3Ý SU. >n&>} t B>0t.][&D$ &D8 };t%&L*M t,uEE؎oE>  &|tW=tr=tH=uEE&L*M -}E E&dE&DE&DEEE&L*M &D}E AEE&L*M A-}E |SQVW3&\ˍt+A}}&G_^Y]E&L*ˉM -}E [6&D uEE&L*M -}E &DEE&D&DE&DE GEGEG E _Et,ue &&}.e .>e .e @.>e &!&EafP?Vi3ˋ{   q>i{up퀿Xiuu܍V7u!V6  V6띍V7uaibh@$Ȍ؎h󥋇haih;ci+ci΍ cifaih ihhV%62i4i^;ci@W&M2h&}.;+1V;ci Ƈ|i+ci^+f|iƇ|i f_ .ķ2i ai@ci2eiWifi V7fPVDf3fffffXƇXigzz i`[i>i=inWU‹U_iURPSG i)i!fPifi_iffXƇii>i[XZC>iyViZV@kVtPV> X>TunVbVbfQf@mfYVj>TVb====! V> VtFfQf2fY%p أe VpfffC9V|ffQf2fYfC9ffQf2fYf9ffQf2fYf9fVt%p ؃V|f8ffQf2lfYVpf ffxffC8ffQf2>fYfVpffC9ˍV|ffQf2fYfC9ffQf2fYf9ffQf2fYf9f=XfVpffC9ˍV|ffQf2fYfC9ffQf2fYf9ffQf2fYf9fXfVpffC9ˍV|ffQf2]fYfC9ffQf2HfYf9ffQf23fYf9ffVpffC9ˍV|ffQf2fYfC9ffQf2fYf9ffQf2fYf9f%Vpf ffxffC8f"fQf2fYVt%p ;e  V> 9aiiË?VT@=!= ==TTTTVbfQf@~fYT=VfT=====A !VtVjVbfQf@fYhTVb=;====<!5 .' VbfQf@fY  $(,048<> t >Uvu]> $˲/ >UPuu]> $0 ˽> t >U^u=]> $˲/ >U8u]> $0 ˽> t >Uu]> $˲/ >Uu]> $0 ˽> t >U\u]> $˲/ >U|6u[]> $0 SQ3۹ >MZY[o&G &G"&G&GS(2u2u uI t>r>t6hh6|Phjj tJ=;tE>s/P꺽qhhP6|Phjj t=;t >|t]RtZ|ۋ |G&6W$\\G6D\ GED\ G6EDG<P؎>- X,2v؋‰ hsZPS6. [XhsgZ Ȋ2>WVQY^_Rt:ZuEvF\tR~hZ[ ~~ uAu|募 |'>~t>|t![6|N&G&G2 3[2 3&G&GÌَȎ3& ٹ &2 3Ë|ۋ  S勇[ urhh jhS u[$&|切.>>Ë|ۋ G$G( t;wЉW(3ú Ë|ۋ  S勇[6u;hh jhS u$ |.>>3ú .|ۋ G$$<r,Ȋ2>WQ$Y_ 3.َH>|@|ۋ W< ug[WQRَ=tu}$ZY_126>|@DVWQH;tY_^H3˻);tt>َ$jjjh+jPhhh*Ƈ+3Ë|ۋ 6G0G4G8L<t>kD3ÜjjjhjdRhh# j6hBUPFPUjjjjjBjj[[] SUPSujjUjhSPX] Ã] û庴ᄄ\:3jjjSjPRhh⚊ 6hSV6^UVW؋6| 6^&O&?u LtDuDtLuL"_^]UVW^!؋6| 6^&Ou &?u LrDsDrLs_^]UVW!؋6| 6^&|f=t|l&G&GE&G=tE_^]UVW!؋6| 6^&|^=t|b&G&G=tE_^]'"VW6| 6dR_^UVWc"؋6| 6^&dRLRD\_^]UVW"~&=߹&IG<t.t|}P،ŽڎX = w/N3;r%<9v,,0;r<9v,,0 Ī$2_^]UVW"~&u&u &5&u&}߹3O>|@H+= w7،ŽڎN3;r%<9v,,0;r<9v,,0 Ī$2^f#؋>|@H}G#&GF<t+-&$_:QW72 AF_Yt>|@HH_^]UVW2$~&=J7QW73ɊL_Yt7T_^]UVW$~&=QW72 AF_Yt?|ۋ >u6GvD"t6~&}& t#&E=SBu&=Lu&=Mu_^]$VW6|6tL_^˻72RPhFVI!Z3Í>EEEEE E 2Ë|ۋ R|@HPpTp\tG\-TPiGrPG"tTG"@tTKh32ȰSQTp6|G>P@j>|> >E"tTD %=tTY[3PSQRVWTPiQIQNjڃIӃBBBӰ >Y 2NjRrr1PrTr],Z lCYA;wx_^ZY[XþDŽLDŽLDŽLDŽL$DŽL8hLQhjdRhh:!j6hᚙ P=tG؎ and XPSQRWV 0G=u+O=tȊ$%FO^_ZY[XPQVW؎$< v0 v0Ī_^YXPSQW $< v0Ã}_Y[XPWVQDB$;D1$*D $$ 2Y^_X< ~70PSQWV..|ۋ >w2 F+y3QW^Y&^_Y[XQV6^YQV 6^YÜWQVjjjhjdRhh<)َ^Y>E^uGEVu?ENu7EFu/}:u)N. >Gj6WK)_N>G<0r<9w2<0r<9vafQfRfPf f f%fYfPff f fEfff< f ffXfZfYWVfPfSfQfRfRfQfPff3f fQكff f fQك f fPf ffQكffPf fP f f=upf=9ugfX:>&PX;*>wۋ޿>>>=fZfYfXfZffY\fXfY:fYf3 ffXfYfYfYfYfXfYfZfZfYf[fX^_PSWRQQكQكḀ R=u=9uz%R>s$PX;u@>wZ>> E6>=Z3  ZXY5Y3 ZYYYZ_[X  ؎|ۋ826VWd L _^A:u6| 6S#E#E=uD 6|4% tX= uSt$G"t ~@u @G"t ecG"St׆׫Iu[Bt$G"t -+u G"t G"u>*._0O"@[6>|=. tIQ|ۋ G%G6|劄(5. YQ(/Y3 `.3ɋ|ۋ <r.6I|VWQ6vY_^&eZgZo(r3Ɋ6D=t=t=t = uz|&m(&U*&],T&U6&E<&U$|&U&&E"u&V4&E&ED&E D^&e"&e"V4}QY^ItQa ø '>>PSQRWPQ|㋟ 2п|h¿hYXA@;r_ZY[X>iHi6m|hIMax Frame %1 bytes, Line Speed %2 %3bps, Node Address %4 %5 IBoard %1, Frame %2 %3 IAdapter %1%2 %3 'E021: Could not add MLID Protocol ID. ?E022: Could not allocate memory. Virtual board did not load. I ?I32-Bit PCI Fast Ethernet Adapter MLID v1.00 (980422)  QI N IBoard %2: E001: The LSL is not loaded. I "IInt %1, Port %2, DMA %3, Mem %4 "E050: The board cannot be found. E <E056: This interrupt is already used and cannot be shared. 2E223: The board must be placed in a 16-bit slot. )E051: Board RAM failed the memory test. I I I I I I I I I I >IInvalid Node Override, Group Address bit was set now reset. DIInvalid Node Override, Local Administrated bit was reset now set. I I I I I I I I %tgqt)[Nj}&M&9LuFM&9Lu= &9 u6   &D =v-Ruu+&D > M } u;w=rU&D=ta&|u=tbu &D &D$<tfAM]> M }tL> E8U8> M 0u˹# u&D &D &D xV> E u-SQR$ZY[tW> EU u*^4 u3ƃ}t;-L ; Network Configuration File for NOVELL OS2/ODI Client driver ;-L LINK DRIVER RTSOS2 Frame Ethernet_802.2 Frame Ethernet_802.3 Frame Ethernet_II Frame Ethernet_SNAP *M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * ODI Driver for OS/2 Workstation * * K* *M Installation: = Before you install the ODI OS/2 client driver, make sure that the adapter is properly installed. Similarly, make sure that your NetWare Requester for OS/2 is properly installed. Please refer to "Novell NetWare Requester for OS/2" documentation for a detailed Requester and Utilities installation guide. 1. Copy the driver RTSOS2.SYS into the NETWARE directory, the Novell NetWare Requester for OS/2 subdirectory, from A:\NETWARE\OS2ODI if you insert the driver diskette into the drive A:. 2. Add 'DEVICE=C:\NETWARE\RTSOS2.SYS' or replace the old ODI driver with RTSOS2.SYS in the CONFIG.SYS file. For example, DEVICE=C:\NETWARE\LSL.SYS ; NetWare OS/2 Requester supported DEVICE=C:\NETWARE\DDAEMON.SYS ; NetWare OS/2 Requester supported DEVICE=C:\NETWARE\RTSOS2.SYS ; ODI OS/2 Client Driver DEVICE=C:\NETWARE\IPX.SYS ; NetWare OS/2 Requester supported 3. Use a text editor to create the file NET.CFG in the C:\NETWARE directory. There is a text editor named E.EXE to use under OS/2 full screen. To edit the two files above, at the OS/2 prompt, type: E C:\CONFIG.SYS or E C:\NETWARE\NET.CFG 4. Shutdown and reboot your system to get service of network. Configuration Files: = You can use the following parameters in NET.CFG to customize the RTSOS2 ODI OS/2 client driver. File Name: NET.CFG - Sample of configuration file: - . . . Link Driver RTSOS2 FRAME Ethernet_802.2 FRAME Ethernet_802.3 FRAME Ethernet_II FRAME Ethernet_SNAP - All trademarks or brand names mentioned are properties of their respective companies. .  )Q!)..  )Q!)RTSPKT COM @I(0PACKET TXT lh(PK# btJ?GX!Zn0!ALPKT DRVRPSQRVWUrr>t]_^ZY[XrCPSQRVWUˎۋft2w!r ]_^ZY[Xϋv N^^V sFtö À~uL~Hr~8s^?t GF }F F F F ^FF;t-u#N ;sۋ t ögFË3һ u$=w!8@^vQY@öö Ì^F@&8F ^Fööööû}C t8Fu~t 9FuԀ~ t~ uʃ~ wH?t3F:Gu6F~N ;O rO w u u Ã>u8r t@FG FG ؎^vN &O &w FG^ö ufPfSfQ^.u :fYf[fXÁ| 7uPD@$D XfYfXt0Ft&5&M....,ö tT t(;u;u&} tm%<r`!>t %!!<rPaaaX%!I!ö;prpN ö w9N :w/^vȎ؋N r2N ö ö þr>ûH8ru ÌNFûH8rË^Hr8s ?uöô5 tS<r`!% !>t&5!*,%!.....> t .. fPfRȎ؉&мfSfQfVfWfU< ` X栰b ެf]f_f^fYf[&fZfX. .> u. .>&E. &E. . .6 .6 t"!<r, PaaaXú!ȀrPaaaX$PaaaX""PaaaXt2 u&=u#&7u&=7u&8H?t2G G t( u uO w$8Wu W_t8rÉQnYr= >tVQwY^t3øP[tS.P.[t[[&E &E.6. 6u.>. .6| D.>..>&u .6.&M&e&EtWP&]X=t_<$$$$ BCannot find physical chip. $PCS mode.wait.$MII mode.$Line Speed 10 Mbps $Line Speed 100 Mbps $Force speed $9346 => Full Duplex $9346 => Half Duplex $Full Duplex $Half Duplex $ The card reset fail !! $Press any key to continue ... $`2 6RTSPKT 0QfVf> u f^Yfs fs ff^YQf.> ufsY.>Huf&.H<fRfP/rf3Ksf3EffEfE fXfZfXfZP@&{ uXsPR3KZXSPEED $ Plink_change $ Qvb fSQR.׬Hffff;vZYf[C9C9C9C9C9C9C9C99˃9999˃9992222222222222222fPfRfPf.׬pffXf..׬|ff.f..׬|ff.:rf.ί.׬|ff.^Yf..׬|ffZfX.׬> u..׬> .*u.׬./u .׬:u .׬(u .׬u .׬PaXff./u .Ƈ34u .Ƈ3$u .Ƈ3u .Ƈ3af@ot fQfY..*./.>/u./t+f@t.A.C.׬@fff.>ٮuaaaaaaaa3. taӷ.+.3.׬`uvIuKu.Q.S`Q.+u.3y@u.3e,u.3Qu.3=RY|t.=. Q6.=.Q+u .77.>+u .9&.>+u .;.>+u .=.׬.+.>+u.׬.Ƈ3U.>+u.׬.Ƈ3:.>+u.׬.Ƈ3.>+u.׬.Ƈ3Bfff f.*.+.>+u.+.=. Quö .=.A.Q ö fuC.Q.Sf@t.A.C;T\f@t+TL%TFCf/tf t.=.?ftf%f$2.A.CË׬׬fo׬f%ffP׬7 PaX׬8($TfPfV5fPfV+fPfVfPfV fPfVfPfX׬DPaXffXfPꮠ t$f׬PaXf׬ PaXf#׬PaXff׬ PaXfffX.׬7PaX׬>PaX׬PaX u .P׬>PaX%?u9 P׬t׬tf2׬t%p=u =u =0u =p~fPSf2H׬t%p=ptVf8׬|ff2f ׬pffx׬xffC8ˋ׬|ff2[fXE<׬> ׬pf f׬xfxf׬|fC8f׬> ut׬bu.׬bfU]fUT׬>PaX ׬ju,u" t@t X$u!׬>%׬7t׬7tf$tTff$r@fP$&9$r )$fXfPfQfYfXb WEG׬DffP׬7$PaXPQaYX׬>($׬7 PaX׬DfXf׬8PaXffPaXut׬>PaX׬7tf$tTff$v@fP$&9$r )$fXfPfQfYfXb WEG׬DffP׬7$PaXPQaYX׬>($׬7 PaX׬DfXf׬8PaXff u!׬>PaX *u׬/u ׬7u ׬&u ׬u ׬PaXfft}/u Ƈ31u Ƈ3"u Ƈ3u Ƈ3`f@ot fQfY.*/>/u/t($f@tAC׬@fff׬@>8t>7F>u.>.&>׬tu׬pt ׬t>t>?t׬X؀$:>hti׬X؀$:t+A׬P ׬R$׬P$?'A׬P ׬R @׬P$?׬P ׬R@׬P$?>u.>.&>>t>?t׬X؀$:>Wti׬X؀$:t+A׬P ׬R$׬P$?'A׬P ׬R @׬P$?׬P ׬R@׬P$?3o$׬X؀$:uzl9'?[>u.>?.&>1>t>?t>tE׬X؀$:؀$:׬P ׬Q $׬X؀$:t؀$:t׬P ׬Q $l׬Q $K׬X$:t"׬Q $?׬P$??׬P$?a`P`tl׬f׬f׬XuJ׬jt1׬bfUfU׬>PaX ׬b aË׬f׬XuJ׬jt1׬bfUtfUk׬>PaX ׬b!a`td׬f!׬XuJ׬jt1׬bfUfU׬>PaX ׬baË׬fA׬XuJ׬jt1׬bfUfU׬>PaX ׬ba`׬Z .!k.>. 3. عrٹ3PX<t 0&0.0>01u׬R@t! ׬ZS 5. عrٹ[>2traúB !a2Ë׬P ׬Q $׬P$?PQR׬Z  3. ؋ùrٹ33۰PX ZYXQRP׬Z  5. عrٹ[rZYPR ..1t]xt 78׬R@u9 ; =AA9!;!=ZXRP׬PP׬R$׬PXXZ>@t>7t,u׬X$ ׬X ׬7ȎؿȎؿMȎؿ]ȎؿmȎؿ}`[afP׬P @$f2׬P$?׬R@׬7u  !fXË׬^<u?fUgfU^u$׬X$f ?A׬X  ׬X f ?׬X$f*P ׬Q@ t@tp׬P ׬Q $fUfU׬Q $fU׬X$:t)׬Q $׬P$? !?׬P$? !?@@7>?t/uW3&&ߋ׬cu5 u @  u u~ t>?t3U}O@t>?t\.:(>8u f@q׬X؀$:u ??`>7uEfU3f*P*׬X2èt!9?׬bf@׬X؀$:t?tf׬X؀$:t+A׬P ׬R$׬P$?'A׬P ׬R @׬P$?>?u׬bt AA>?u ! !>Au 쫴 ! !׬t׬tf2׬t%p=u =u =0u =p׬@ff%f=`ufPSf2m׬t%p=ptVf8׬|ff2Cf ׬pffx׬xffC8ˋ׬|ff2 D[fX78.׬pf f׬xfxf׬|fC8ff3 ff`Ȏؿ`sf $(f׬0ffċ&׬8f3$fQUfM@ȎؿMsf3dfaef]@Ȏؿ]sf3fqufm@Ȏؿmsf3ff}@Ȏؿ}s+/3456f$7fY׬ ffd9fi׬$ff;fy׬(ff䤣=f׬,f׬7 ׬@ff׬DfffIf׬>PaXrC;<r`2䣘RP׬PP׬R ׬PXXZ׬ [-m media_type] [bus_no device_no] $Packet driver for 32-Bit PCI Fast Ethernet Adapter, Version 3.21  $ PInterrupt number is $I/O port is $[C* Fail to find PCI device ! * $There are $ network cards on your main board : $Card $. IRQ= $ I/O= $ NodeID= $ SlotNo= $Please select a Card No.(1-$): $fP96S[ 6׬T Tu  .6׬f6ff퉄<6E99u 66S[ 6׬T Tu  .6׬f6ff퉄<6-86fI6S[ 6׬T Tu  .6׬f6ff퉄<6΃>uδ !L!|:t;r|׬׬>uϴ !0δ!.0"ϴ !Hϴ !6NσN1Nϴ!Vk^PV^׬XV`ϴ !6)^F96uvϴ !Nϴ!ϴ !!<0v,0;wҋN׬׬׬fff!rfX׬ !0xUFË u0y3؋ ו'0#''ñ0PX$'@':tPR ! !ZXPRд!ZXÖ ԁw -i -- Force driver to report itself as IEEE 802.3 instead of Ethernet II. -d -- Delayed initialization. Used for diskless booting -n -- NetWare conversion. Converts 802.3 packets into 8137 packets -w -- Windows hack, obsoleted by winpkt -p -- Promiscuous mode disable -u -- Uninstall media_type :: auto = Auto_negotiation 10half = Force 10M/HalfDuplex 10full = Force 10M/FullDuplex 100half = Force 100M/HalfDuplex 100full = Force 100M/FullDuplex If no media type is specified, hardware setting is used $ / $ P *** Packet driver failed to initialize the board *** $EISAprepare_restart_nway $restart_nway $100full $100half $10full $10half $nway-complete $nway-not-complete $System: $[345]86 processor$286 processor$186 processor$8088/8086 processor$, Microchannel bus$, EISA bus$, PCI bus$, Two 8259s$Packet driver software interrupt is $My Ethernet address is $My ARCnet address is $ Error: there is already a packet driver (you may uninstall it using -u) at $ Error: there is no packet driver at $ Error: no packet driver found between 0x60 and 0x80 $ Error: there are two packets drivers (specify the desired one after -u). $ Error: should be between 0 and 15 inclusive$ Warning: the hard disk on an XT usually uses IRQ 5. Use a different interrupt $ Error: this driver doesn't implement both IEEE 802.3 and Ethernet II $Uninstall completed$clt test $3ƺؿL!ʹ !nԁ>} u Դ ! L!ʹ !ִ !# !¿?׹u`Ӵr u &s&>u3 @*&gtwt wv &g& !t) TX;uX pPXpt&< ts<-umF v} +u } <-u uG`ru>u(>v۠ڢ>uNstŋڊѹڜڴڜsڜ tڴ ! PC[Xr:[t#;Cu ʹ !nԺ Դ ! L!{{9< usCu>w @u77 >v>u@ؠu t ٴ ! @t>u t  U:{t[uCss foڎ¿w fm9;yu 8;yu9;yF[uC<ss foڎ¿w fmw|sr״ !׀>u׀>u ׀> uش ! u -؀>`u8ش ! @tBش !NS0>}t>} usش !r>}uش !r 5!%!I,!>!u >t; s ԃ1! !״ ! L:w!PKT DRVR Error: should be 0x60->0x66, 0x68->0x6f, or 0x78->0x7e 0x67 is the EMS interrupt, and 0x70 through 0x77 are used by second 8259$>`r>gt>pr>xr>~vô5!߹ ý  rL2;sF u33۬pWIN95 TXT &?b*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * Packet Driver for DOS Workstation * * K* *M Installation: = Packet Driver Installation: - 1. Copy the Packet driver to your harddisk, suppose you copy it to C:\PKTDRV directory. EX: copy a:\pktdrv\rtspkt.com c:\pktdrv\rtspkt.com 2. Add the following line to C:\AUTOEXEC.BAT C:\PKTDRV\RTSPKT 0x60 Notes: - 1. Load the packet driver using the software interrupt and any optional switches if required. Usage: RTSPKT [options] [-m media type] [bus_no device_no] Example: RTSPKT -i 0x7e The only required parameter is the software interrupt. A packet driver needs to have a software interrupt assigned to it for other programs to access it. The recommended interrupt 0x7e. If you need any of the options listed below, place them before the software interrupt on the command line. -i - Force driver to report itself as 802.3 instead of Ethernet II. -d - Delayed initialization. Used for diskless booting -n - NetWare conversion. Converts 802.3 packets into 8137 packets -w - Windows hack, obsoleted by winpkt -p - Promiscuous mode disable -u - Uninstall media_type :: auto = Auto_negotiation 10half = Force 10M/HalfDuplex 10full = Force 10M/FullDuplex 100half = Force 100M/HalfDuplex 100full = Force 100M/FullDuplex If no media type is specified, hardware setting is used 2. Media type can be used to force the card to work on specific speed and duplex mode. If no media type if specified, then driver will read hardware configuration from EEPROM on the card. The hardware configuration can be modified by running 'SETUP.EXE' on driver disk. 3. Type command,C:\RTSPKT 0x60, the screen will appear following message: System: [345]86 processor, PCI bus, Two 8259s Packet driver software interrupt is 0x60 Interrupt number is 0x9 I/O port is 0x6100 My Ethernet address is 00:10:B5:29:29:AD 4. Installing Multiple LAN Adapters: If there are multiple network cards on the main board. the user run RTSPKT 0x60 directly, then the screen will display : There are 2 network cards on your main board : Card 1. IRQ= 0x9 I/O= 0x6100 NodeID= 00:10:B5:29:29:AD Card 2. IRQ= 0xA I/O= 0x6000 NodeID= 00:10:B5:29:29:64 Please select a Card No.(1-2): 1 System: [345]86 processor, PCI bus, Two 8259s Packet driver software interrupt is 0x60 Interrupt number is 0x9 I/O port is 0x6100 My Ethernet address is 00:10:B5:29:29:AD 5. Installing multiple drivers: If you want to install multiple cards each connecting to different network, you have to install the driver multiple times, each with different packet interrupt number. Then modify 'ioaddr' variable in 'config.tel' to specify the packet inetrrupt you will use. G_.`abefghlsm tvw@ .  +Q!)..  +Q!)NDIS TXT U6&PCNFS TXT V6&'LANSVR TXT U6&2X1LANMAN TXT U6&KwWFW TXT V6&[_LANTASTITXT U6&` BANYAN TXT U6&g8PATHWORKTXT U6&lMSCLIENTTXT U6&uDOS  3Q!)zOS2  7Q!)d*M * K* * 32-Bit PCI Fast Ethernet Adapter NDIS/2 Driver * * K* *M The drivers you need are in the directories MSLANMAN.DOS, MSLANMAN.OS2 and NDIS. The NDIS drivers contained in these subdirectories are used with 3Com 3+Open, Microsoft OS/2 LAN Manager OEM distribution Release 2.x, and other compatible OEM versions of LAN Manager. The driver can also used with IBM LAN Server 3.0, 4.0, Banyan VINES, ARTISOFT LANtastic 5.0, 6.0, Microsoft Windows for Workgroups v3.1, DEC PATHWORKS, Sun PC-NFS etc. The drivers named RTSND conform to the Network Driver Interface Specification (NDIS) defined by Microsoft/3Com. Included in MSLANMAN.DOS, and NDIS2 subdirectories are the following files: \MSLANMAN.DOS\DRIVERS\ETHERNET\RTL8139 RTSND.DOS The DOS NDIS MAC driver PROTOCOL.INI A sample section of PROTOCOL.INI file \MSLANMAN.DOS\DRIVERS\NIF\ RTL8139.NIF Network Information File Included in MSLANMAN.OS2, and NDIS subdirectories are the following files: \MSLANMAN.OS2\DRIVERS\ETHERNET\RTL8139 RTSND.OS2 The OS2 NDIS MAC driver PROTOCOL.INI A sample section of PROTOCOL.INI file \MSLANMAN.OS2\DRIVERS\NIF\ RTL8139.NIF Network Information File \NDIS2 NDIS.TXT This readme file WFW31.TXT The Installation guide for Windows for Workgroups v3.1 LANMAN.TXT The Installation guide for LAN Manager LANSVR.TXT The Installation guide for Lan Server BANYAN.TXT The Installation guide for Banyan VINES LANTASTI.TXT The Installation guide for ARTISOFT LANtastic 5.0, 6.0 PATHWORK.TXT The Installation guide for DEC PATHWORKS PCNFS.TXT The Installation guide for Sun PC-NFS \NDIS2\DOS RTL8139.NIF Network Information File for IBM Lan Support Program RTSND.DOS The DOS NDIS/2 MAC driver OEMSETUP.INF Network Information File for Windows for Workgroups v3.1 PROTOCOL.INI A sample section of PROTOCOL.INI file \NDIS2\OS2 RTL8139.NIF Network Information File for IBM LAN Server 3.0, 4.0 RTSND.OS2 The OS2 NDIS/2 MAC driver PROTOCOL.INI A sample section of PROTOCOL.INI file Sample PROTOCOL.INI Files and Parameters -( [RTL8139_NIF] DriverName = RTSND$ MEDIUM=_AUTO ;Specify adapter's medium which identifys ;adapter's speed and duplex mode. ; MEDIUM=_AUTO operate on auto negotiation mode ; MEDIUM=_10HALF operate on 10M/HalfDuplex mode ; MEDIUM=_10FULL operate on 10M/Fullduplex mode ; MEDIUM=_100HALF operate on 100M/HalfDuplex mode ; MEDIUM=_100FULL operate on 100M/Fullduplex mode ;Multiple adapters keyword "EtherID" or "BusNo" & "DeviceNo" ;EtherID=@00123456789A ;The keyword "EtherID" is used to desinate a adapter's ;ethernet address when multiple adapters exist. ;BusNo=0 ;The keyword "BusNo" & "DeviceNo" are used together ;DeviceNo=10 ;to desinate a adapter when multiple adapters exist. There are several parameters included in the RTL8139_NIF section of the PROTOCOL.INI file. However, the only parameter that you should specify is the "drivername." If you change other parameter settings, such as the _100FULL, make sure that it matches the hardware setting. Otherwise, the adapter may fail. If you don't specify these settings, the NDIS/2 driver will automatically detect them. ter NT Driver" .'+:4 ;=WCH O UVfXYZ[_]^abcdeohmq7rstuvwxy{|}~ I*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * NDIS/2 Driver for SUN PC-NFS * * K* *M The driver named RTSND contained in the directory \NDIS2 conform to the Network Driver Interface Specification (NDIS) defined by Microsoft/3Com. NDIS/2 Driver Installation on SUN PC-NFS =( 1. Edit the CONFIG.SYS file to include the following command line, and reboot the PC: Device=c:\dos\ansi.sys 2. Insert the PC-NFS Installation diskette into the PC's floppy drive. Type the following from DOS and press to bring up the PC-NFS installation screen: INSTALL  3. Follow screen prompts to configure your screen display. For example, press  to choose mono display, or press to choose color display, or press  to cancel the installation. 4. When the "Install the Basic PC-NFS files" window appears on screen, select "Install Full PC-NFS" from the choice list. 5. "Specify the target PC-NFS installation directory," by typing the appropriate path in the field provided. For example, C:\NFS. Then press  to continue. 6. Carefully read and respond to each prompt that appears on screen, indicating the suitable selections for your system. 7. When you reach the prompt that reads, "Configure an Ethernet network connection," choose "Ethernet" from the choice list. Then press to confirm your choice. 8. Choose the network adapter you will use. Select "NDIS" from the list shown onscreen. Then press to confirm your choice. 9. Follow screen instructions to complete the process. You will be prompted to insert some PC-NFS distribution diskettes. And during the process, files from the diskettes will be copied into your hard disk drive. 10. When prompted to update your AUTOEXEC.BAT and CONFIG.SYS files, press "Y". 11. Your system will prompt you when the installation process is complete. It will display the following message, "PC-NFS installation is complete." 12. The system will create two subdirectories in the destination drive, namely, \LANMAN and \NFS. 13. Create the NETWORK.BAT, DRIVES.BAT and HOSTS files. Specify the PC name, IP address, server name and server IP address in these files. See the section on Sample Configuration Files for examples. 14. Copy the NETWORK.BAT, DRIVES.BAT and HOSTS files into the \NFS directory of your server. 15. Copy the RTSND.DOS file from the \NDIS2\DOS of your driver diskette to the newly created subdirectory (\LANMAN) on your destination drive. 16. Edit the CONFIG.SYS file using a text editor. Add the following command line before the NFS_NDIS driver specification: DEVICE=C:\LANMAN\RTSND.DOS 17. Edit the PROTOCOL.INI file in the \LANMAN directory, replacing the following: a. Replace the section name [your-mac-module] with [RTSND_NIF] b. Replace the command line "drivername = YOURMAC$" with "drivername = RTSND$" c. Replace the command line "bindings = YOUR-MAC-MODULE" with "bindings = RTSND_NIF" d. Assign the media type and line speed as used in sample PROTOCOL.INI file. 18. Reboot your computer. Then start the application you need. For example: a. Run NFSCONF.EXE to configure the system, such as mounting a virtual drive E: b. Run TELNET.EXE to do terminal emulation Sample Configuration Files - 1. NETWORK.BAT REM stc* is a sample PC-NFS workstation name REM test1 is a sample PC-NFS server address NET START RDR stc* NET PCNFSD test1 NET NAME stc* 2. DRIVES.BAT REM specify connections to remote directory NET USE l:test1:/usr2/down NET USE k:test1:/mnt 3. HOSTS REM specify gateway address 192.72.24.201 REM specify workstation's IP address 192.72.24.102 stc REM specify server's IP address 192.72.24.202 test1 4. CONFIG.SYS Device=c:\dos\himem.sys shell=c:\command.com /P /E:526 dos=high, UMB rem -pcnfs install Device=c:\dos\ansi.sys DEVICE=C:\NFS\PCNFS.SYS /m DEVICE=C:\NFS\SOCKDRV.SYS REM Specify PROTOCOL.INI directory DEVICE=C:\LANMAN\PROTMAN.SYS /i:C:\LANMAN REM NDIS driver name device=C:\LANMAN\RTSND.DOS DEVICE=C:\LANMAN\NFS-NDIS.SYS FILES=50 BUFFERS=50 LASTDRIVE=v STACKS=9,256 5. PROTOCOL.INI file at the \LANMAN directory [protocol manager] drivername = PROTMAN$ [RTSND_NIF] drivername = RTSND$ [NFS-NDIS] drivername = NFSLINK$ bindings = RTSND_NIF 6. AUTOEXEC.BAT ... SET TZ=PST8 SET path=C:\;C:\NFS;C:\LANMAN SET NFSDRIVE=D REM Add the following line to bind NDIS driver C:lanman\netbind PRT * REM Execute application you need, e.g. NFSRUN NFSNET INIT NFSRUN - All trademarks or brand names mentioned are properties of their respective companies. K*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * NDIS/2 Driver for LAN Server * * K* *M The driver named RTSND contained in the directory \NDIS2 conform to the Network Driver Interface Specification (NDIS) defined by Microsoft/3Com. Content of the file: = A) DOS LAN Requester Installation for LSP V1.30 to V1.37 B) LAN Server 4.0 DOS Client Installation C) OS/2 LAN Server 3.0 Installation D) OS/2 LAN Server 4.0 Installation E) OS/2 LAN Server 4.0 Installation (Multiple LAN Adapters) A) DOS LAN Requester Installation for LSP V1.30 to V1.37 =6 1. Insert the IBM LAN Support Program (LSP) Version 1.30 (or 1.31 to 1.37) Diskette into your floppy drive (drive A: or B:). 2. Type the following at your DOS prompt and press : A:>dxmaid 3. The screen will display the IBM logo. Press twice until "Environment Information" appears onscreen. 4. Respond to the screen prompts, specifying the following values for each field: Use the to toggle between choices: Configuration for this computer? Yes Use existing configuration information? Yes Do you have adapter option diskettes? Yes Are you configuring for two adapters? No Do you need 802.2 interface support? No Type changes as needed to the drive and directory information below: Source for LSP A:\ Target for new configuration C:\lsp 5. Make sure that the values given above are correct. Press to store your choices. 6. Insert the Driver Diskette in your source drive. Specify the path and press to proceed. Examples: A:\NDIS2\DOS or B:\NDIS2\DOS 7. Upon pressing the necessary drives from the Driver Diskette are copied onto you target directory in the hard disk. 8. Follow screen instructions to complete the process. Simply pressing  for each screen display will select the default options. Press  three times, until you reach the display prompting you to insert the LSP diskette. 9. Insert the LSP diskette as prompted. Press to acknowledge completion of the action. 10. A screen showing the current configuration detected will be displayed. It should show the PCI Fast Ethernet Adapter and the protocols already selected (i.e., "IBM IEEE 802.2" and "IBM OS/2 NETBIOS"). 11. Press to save the new configuration. This completes the LSP installation. *< * NOTE: 1* * :* * You should have defined in your CONFIG.SYS a * * minimum of 20 files, i.e., FILES=20, to run the * * software properly. Change t!he FILES line using * * a text editor if needed. * * :* * If installing LSP for the first time, you should * * complete the installation by typing install and * * following the instructions on the screen. * *< 12. Use a text editor to edit the CONFIG.SYS file. Specify at least 20 files in the FILES= line. Modify it to the following: FILES=20 13. Save the configuration and reset your computer. 14. Insert the DOS LAN Requester Install Diskette into your floppy drive. 15. Type the following and press : INSTALL 16. The IBM logo will again appear on the screen. Press to move on to the next screen. 17. Follow screen instructions, pressing to move from screen-to- screen until you are prompted to indicate the pathname of the DOS LAN Requester directory. TIP: After the IBM logo appears on the screen, press twice to reach this screen. 18. Specify the pathname for the DOS LAN Requester directory (C:\DOSLAN is the default). Then press to continue. 19. The program will ask you for the services that you require. 20. Highlight the appropriate option. Select either "Send messages" or "Send, View, Edit, and Log message" option. TIP: Normally, second option "Send, View, Edit and Log message" is selected. 21. Specify the PC's ID and domain ID. The domain ID is the domain server ID; it should be the same for all workstations on the network. 22. Follow screen prompts to complete the installation. B) LAN Server 4.0 DOS Client Installation =' 1. Under the DOS environment, change the directory to the LAN Server DOS Client subdirectory; that is, enter the following command CD \NET Note: \NET is the default directory name of the LAN Server 4.0 DOS Client. Note: Before installing the LAN driver, you should install the IBM LAN Server DOS Client first. 2. Type INSTALL and press to enter the DOS LAN installation program. 3. When the "Install for DOS LAN Services" screen appears, highlight "the listed options are correct" choice and press . 4. On the second screen, you will see the following information: Machine ID, User name, Domain name, ... and Network card information. Highlight the "Network card: No network card was selected" choice and press . 5. Select the first choice from the following two selections "Add driver for network card", "Driver configuration is correct". 6. Select "Network card not shown in list below ..." from a listing of network adapters on the next screen. 7. Insert the PCI Fast Ethernet driver diskette into drive A: and specify the path of driver installation file (OEMSETUP.INF) by typing A:\NDIS2\DOS and press . 8. Highlight "32-Bit PCI Fast Ethernet Adapter" and press . 9. If necessary, choose "Edit settings for network card driver", otherwise choose "Driver configuration is correct". Note: Please see NDIS.TXT for the parameter settings. 10. Highlight "The listed options are correct" and press on the next screen. 11. Then, the Installation Program will ask you to insert the DOS LAN Services Disk 1. Be careful, do not follow the screen instruction here, that is, you should not insert the DOS LAN Services Disk. All you have to do is press and wait for installation to complete. 12. Remove the diskette from driver A: and press to restart the machine. C) OS/2 LAN Server 3.0 Installation =! 1. Copy RTSND.OS2 and RTSND.NIF files from your Driver diskette (A:\NDIS2\OS2) to C:\IBMCOM\MACS. 2. Click the OS/2 LAN Service icon. 3. Select "Installation and configuration." The IBM logo should appear on the screen. 4. Click . 5. Select and press . 6. Select "Install or Configure this Workstation." 7. Select server type, adding a server or domain controller. The "install or remove" selections should appear. 8. Select "Configure a component." 9. Click the "Configure" button. 10. Select "Configure workstation." 11. Select "32-Bit PCI Fast Ethernet Adapter" when prompted to identify your Network Adapter, Then click the button. 12. Select "802.2" from the list and click the button. 13. Select IBM NETBIOS from the list and click the button. 14. Select to confirm all selections. 15. Follow screen instructions to complete the process, selecting to accept default selections. 16. Continue pressing until your screen prompts you to backup the old CONFIG.SYS and AUTOEXEC.BAT and create a new CONFIG.SYS and AUTOEXEC.BAT. Also select to confirm this. 17. Installation is complete now. Reset your PC by turning it off and on. D) OS/2 LAN Server 4.0 Installation =! 1. In OS2 desktop, click the MPTS (Multi-Protocol Transport Service) icon. The IBM logo should appear on screen. 2. Click the button. 3. Click the button. 4. Select the "LAN adapters and protocols" item, then click the button. 5. Click the button. 6. Insert the PCI Fast Ethernet Adapter driver diskette into a specified drive (A: or B:), then enter the driver path like A:\NDIS2\OS2 or B:\NDIS2\OS2 and click the button 7. Select "32-Bit PCI Fast Ethernet Adapter" from the Network Adapters list when prompted to identify you Network Adapter. Then click the button. 8. Select "IBM 802.2" from the Protocols list and click the button. 9. Select "IBM OS2 NETBIOS" from the Protocols list and click the button. 10. Select "IBM Netware Requester Support" from the Protocols list and click the button if you need to log onto the NETWARE server. 11. Select to confirm all selections. 12. Click the button in the Configure window. 13. Click the button in the MPTS window. 14. Click the button, then your screen will prompt you to backup the old CONFIG.SYS and AUTOEXEC.BAT, and create a new CONFIG.SYS and AUTOEXEC.BAT. Also select to confirm this. 15. Installation is complete now. Reset your PC by turning it off and on. E) OS/2 LAN Server 4.0 Installation (Multiple LAN Adapters) =9 For multiple adapters installation, you must do as follows: a. configure b. configure a. Configure - 1. From the OS/2 desktop, click . 2. In the LAN Services windows, click . 3. click when the IBM logo appears. 4. In the "Basic or Advanced Installation/Configuration" dialog box, click . 5. Select "Install or configure this workstation" in the "Installation Tasks" dialog box, and click . 6. Select Server Type (like, Domain controller) then click . 7. Select "Configure a component" from the "Installation and Configuration" dialog box, and click . 8. Select "LAN Services Adapters" from the "Configure" dialog box, and click . 9. Select the LAN adapters to be used by LAN Services (for 2 adapters, select Adapter 0, Adapter 1 ) and click . 10. Assign the NETBIOS Resources like Sessions, Commands & Names (you can use the default value) and click for different adapters. 11. Click from the "Configure" dialog box. 12. Select "Apply the changes" and click from the "Installation and Configuration" dialog box. 13. Follow screen instructions to complete the installation. 14. Shut down and reboot the machine. b. Configure - If you have more than one adapter, you need to configure each of them for different adapters by clicking in the "Configure" windows. You can desinate a adapter's etherid(ex. @0010B5123456) in "Network Adapter Address" or BusNo & DeviceNo in "Bus Number" and "Device Number". - All trademarks or brand names mentioned are properties of their respective companies. )ߓSMC  5[(tSMC1244 ZIP h((h(BSMC1244 DDI ױ(R\PCI-TXB DDI s)6|NETRTSNT  (Ӡ*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * NDIS/2 Driver for Microsoft LAN MANAGER * * K* *M The driver named RTSND in the MSLANMAN.DOS and MSLANMAN.OS2 directories conforms to the Network Driver Interface Specification (NDIS) 2.0.1 as defined by Microsoft/3Com. NDIS/2 Driver Installation on LAN Manager v2.0 =. 1. Type "Setup" in the LAN Manager directory and press Enter. 2. Choose "Import Network Drivers..." in the "Action" field. Press to continue. 3. Insert your Driver Diskette into either drive A: or B:. Then press to see the list of Imported Network Drivers appear on the screen. 4. Press the Bar to select the appropriate Network Adapter (i.e. "32-Bit PCI Fast Ethernet Adapter"), then press to confirm your choice. 5. Follow screen instructions to complete the process, until the Network Driver appears on the screen. 6. Identify your Network Adapter if asked. For example, select "32-Bit PCI Fast Ethernet Adapter" 7. Select the and the options. Then select to confirm your choices. The Workstation's primary parameters should appear on the screen. 8. Respond to all prompts issued on the screen to complete the process. Select to confirm a choice. 9. Save all selections. Choose "Save" from the "Action Menu" 10. Press to exit. NDIS/2 Driver Installation on LAN Manager v2.1 =. 1. Type "lmsetup" in the LAN Manager directory and press . The Microsoft LAN Manager Setup screen should appear. 2. Choose "Network Drivers..." in the "Configuration" field. Press  to confirm your choice. 3. Choose and press to display a list of Network Adapter Drivers. 4. Choose and press . 5. Insert the Driver Diskette into drive A: or B: of your PC. Indicate the drive location of the diskette and select to proceed. 6. Select the appropriate Network Adapter Driver from the list. For example, select "32-Bit PCI Fast Ethernet Adapter" Select to confirm your choice. 7. Select an appropriate protocol. Use the bar to highlight your choice. 8. Select to confirm your choice. A Configuration Complete message should appear on the screen. 9. Save the configuration. Select . 10. Press to exit. NDIS/2 Driver Installation on LAN Manager v2.2 =. 1. Type setup in the LAN Manager directory and press . The Microsoft LAN Manager Setup screen should appear. 2. Choose "Network Drivers" from the "Configuration" field. Press to confirm your choice. 3. Choose and press to display a list of Network Adapter Drivers. 4. Choose and press . 5. Insert the Driver Diskette into drive A: or B: of your PC. Indicate the drive location of the diskette and select to proceed. 6. Select the appropriate Network Adapter Driver from the list. For example, select "32-Bit PCI Fast Ethernet Adapter" Select to confirm your choice. 7. Select an appropriate protocol. Use the to highlight your choice. If you have chosen the TCP/IP protocol, you will be prompted to key-in the IP address, the subnet mask, and the default gateway (router). By the default, the workstation number of NetBios session is set to 6. Please consult Microsoft LAN Manager Installation Manual for more details, or check the online help. 8. Select to confirm your choice. A Configuration Complete messages should appear on the screen. 9. Save the configuration. Select . 10. Press to exit. If you are installing the LAN Manager for the first time, you will be prompted to key-in the default user name and domain of the workstation, as well as to answer the questions concerning Windows environment and memory management. Just follow the instructions on the screen. Sample Configuration Files = LAN Manager 2.0 CONFIG.SYS File LASTDRIVE=Z BUFFERS = 35 FILES = 35 SHELL=C:\DOS50\COMMAND.COM C:\DOS50 /p /E:1024 DEVICE=C:\HIMEM.SYS DEVICE=C:\DOS\SETVER.EXE DOS=HIGH,UMB DEVICE=C:\LANMAN.DOS\DRIVERS\PROTMAN\PROTMAN.DOS /i:C:\LANMAN.DOS DEVICE=C:\LANMAN.DOS\DRIVERS\ETHERNET\RTL8139\RTSND.DOS DEVICE=C:\LANMAN.DOS\DRIVERS\PROTOCOL\NETBEUI\NETBEUI.DOS PROTOCOL.INI File [PROTOCOL MANAGER] DRIVERNAME = PROTMAN$ [NETBEUI_XIF] Drivername = netbeui$ BINDINGS = "RTSND_NIF" [RTSND_NIF] ;-F ; Sample Protocol.ini file for NDIS/2 driver ;-F DriverName = RTSND$ ;-F ; End of this sample file AUTOEXEC.BAT File @echo off PROMPT $P$G PATH=c:\PE2;C:\DOS;C:\NC; REM = LANMAN 2.0 === DO NOT MODIFY BETWEEN THESE LINES SET PATH=C:\LANMAN.DOS\NETPROG;%PATH% C:\LANMAN.DOS\DRIVERS\PROTMAN\NETBIND NET START WORKSTATION REM = LANMAN 2.0 === DO NOT MODIFY BETWEEN THESE LINES LAN Manager 2.1 or LAN Manager 2.2 CONFIG.SYS File LASTDRIVE=Z BUFFERS = 35 FILES = 35 SHELL=C:\DOS\COMMAND.COM C:\DOS /p /E:1024 DEVICE=C:\HIMEM.SYS REM DEVICE=C:\LANMAN.DOS\DRIVERS\DOSUTILS\EMM386.EXE NoEMS ;;delete this DEVICE=C:\DOS62\SETVER.EXE !;;line DOS=HIGH,UMB DEVICE=C:\LANMAN.DOS\DRIVERS\PROTMAN\PROTMAN.DOS /i:C:\LANMAN.DOS DEVICE=C:\LANMAN.DOS\DRIVERS\ETHERNET\RTL8139\RTSND.DOS PROTOCOL.INI File [PROTMAN] DRIVERNAME = PROTMAN$ DYNAMIC = YES PRIORITY = NETBEUI [NETBEUI_XIF] Drivername = netbeui$ SESSIONS = 6 NCBS = 12 BINDINGS = "RTSND_NIF" LANABASE = 0 [RTSND_NIF] ;-F ; Sample Protocol.ini file for NDIS/2 driver ;-F DriverName = RTSND$ ;-F ; End of this sample file AUTOEXEC.BAT File @echo off PROMPT $P$G PATH=c:\PE2;C:\DOS;C:\NC; @REM = LANMAN 2.1 === DO NOT MODIFY BETWEEN THESE LINES @REM=== LANMAN 2.1 === SET PATH=C:\LANMAN.DOS\NETPROG;%PATH% NET START WORKSTATION LOAD NETBEUI @REM = LANMAN 2.1 === DO NOT MODIFY BETWEEN THESE LINES @REM === LANMAN 2.1 === - All trademarks or brand names mentioned are properties of their respective companies. x&z,SW0091 ROM l{&ʼTEST  ^*'TEST1  M0'GIGIBIT  wZ' UE1216  ['UE3722  *o'9VERTEX ROM \q'4SW7148 ROM O(K8139C  1lQ(`d*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * NDIS/2 Driver for Windows for WorkGroup 3.1 * * K* *M The driver named RTSND contained in the directory \NDIS2 conform to the Network Driver Interface Specification (NDIS) defined by Microsoft/3Com. NDIS/2 Driver Installation for Windows for Workgroup 3.1 =8 1. Start the Windows for Workgroup 3.1. 2. Click the "Control Panel" icon in the Program Manager Window. 3. Click the "Network" icon in the Network Window. 4. When the "Network Settings" dialog box appears, select "Adapters" button. 5. Select "Add" icon from the "Network Adapters" dialog box. 6. Select "Unlisted or Updated Network Adapter". 7. When the "Install Driver" window appears, insert the distribution diskette into drive A:, type "A:\NDIS2\DOS" and press . 8. Press to select "32-Bit PCI Fast Ethernet Adapter". 9. Click "Setup..." to popup the setup window. 10. Click "Advanced..." if you want to modify the advanced features. Please refer to the next section for the description of the keywords. 11. Close each windows and restart the computer. Configuration Files: = There are two ways to modify the configuration: a. Follow step 10/11 in the previous section. b. Modify PROTOCOL.INI in your WFW31 directory directly. File Name: PROTOCOL.INI - Sample of configuration file: - ... [RTSND] drivername=RTSND$ ... - All trademarks or brand names mentioned are properties of their respective companies. ings" button from the "Network" dialog box. 10. Click the "Close" button in the "Network" dialog box. 11. Remove the Driver Diskette from your floppy drive. 12. Restart your computer to initialize the network function. - All trademarks or brand names mentioned are properties of their respective companies. (XSVC220TXDDI((aTFC3200 TXT ({x(-*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * NDIS/2 Driver for LANTASTIC 5.0/6.0 * * K* *M The driver named RTSND contained in the directory \NDIS2 conform to the Network Driver Interface Specification (NDIS) defined by Microsoft/3Com. A) NDIS/2 Driver Installation for LANtastic 5.0 =, LANtastic 5.0 can support the following driver: NDIS driver Using the NDIS driver: - Under NDIS, use the "RTSND.DOS" driver for the PCI Fast Ethernet adapter. Users can use the "RTSND.DOS" driver to replace AEXNDIS.DOS which is the NDIS driver offered by ARTISOFT. Example - CONFIG.SYS DEVICE=C:\LANTASTI\PROTMAN.DOS /I:C:\LANTASTI DEVICE=C:\LANTASTI\RTSND.DOS Example - AUTOEXEC.BAT / STARTNET.BAT C:\LANTASTI\AI-NDIS BIND_TO=RTSND_NIF C:\LANTASTI\AILANBIO C:\LANTASTI\REDIR MachineName Example - PROTOCOL.INI [PROTMAN] DRIVERNAME = PROTMAN$ DYNAMIC = YES [RTSND_NIF] DRIVERNAME = RTSND$ Comments: If you are using PROTMAN.DOS V1.x, you must use the NO_BIND option on the AI-NDIS command line in the STARTNET.BAT, and you need to run NETBIND.EXE V1.x before AILANBIO.EXE. B) NDIS/2 Driver Installation for LANtastic 6.0 =, LANtastic 6.0 can support the following driver: NDIS driver Using the NDIS driver: - To install the NDIS driver "RTSND.DOS", users can use the LANtastic 6.0 install program, and select "NDIS support for network adapters", then insert the PCI Fast Ethernet driver diskette, and type the path "A:\NDIS2\DOS". The install program will search for "RTSND.DOS" and "PROTOCOL.INI" and copy these two files to the target directory. If you have already installed LANtastic 6.0 and need to install the PCI Fast Ethernet Adapter, just replace AEXNDIS.DOS with the NDIS driver "RTSND.DOS" in CONFIG.SYS Example - CONFIG.SYS DEVICE=C:\LANTASTI\PROTMAN.DOS /I:C:\LANTASTI DEVICE=C:\LANTASTI\RTSND.DOS Example - AUTOEXEC.BAT / STARTNET.BAT @echo = Begin LANtastic configuration = SET LAN_CFG=C:\LANTASTI PATH C:\LANTASTI;%PATH% SET LAN_DIR=C:\LANTASTI.NET rem Please obtain the NETBEUI.EXE program from Microsoft NETBEUI AI-NDIS BIND_TO=RTSND_NIF AILANBIO @STARTNET.CFG REDIR THOMAS @STARTNET.CFG SERVER C:\LANTASTI.NET @STARTNET.CFG NET LOGIN \\THOMAS @echo = End LANtastic configuration = Example - Protocol.ini [PROTMAN] Priority=NETBEUI DriverName = PROTMAN$ Dynamic = Yes [NETBEUI_XIF] DriverName = netbeui$ Sessions = 6 NCBS = 12 Bindings = RTSND_NIF LANABASE = 1 [RTSND_NIF] DriverName = RTSND$ - All trademarks or brand names mentioned are properties of their respective companies. *M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * NDIS/2 Driver for BANYAN VINES * * K* *M The driver named RTSND contained in the directory \NDIS2 conforms to the Network Driver Interface Specification (NDIS) defined by Microsoft/3Com. NDIS/2 Driver Installation for Banyan VINES =+ 1. Type PCCONFIG and press to display the "Configuring A PC for the Network" window. 2. Select "1 - Network Card Setting," and press . Your screen will prompt you with the possible hardware configuration options. 3. Choose the "NDIS Ethernet" option and press . 4. Type the appropriate interrupt number, and fill the section name "RTSND_NIF" to the PROTOCOL "bindings=" field. 5. Press when process is complete. Or press to exit this screen. 6. Select "2 - Login Environment Settings," and press . 7. Select "1 - Select Default Communications Driver," and press . 8. Select "NDIS Ethernet," and press to exit this menu. 9. Press to save all choices. 10. Modify the CONFIG.SYS and the PROTOCOL.INI files as in the following examples. Sample Configuration Files = 1. CONFIG.SYS device=c:\banyan\protman.dos/i:c:\banyan device=c:\banyan\rtsnd.dos 2. PROTOCOL.INI sample file [PROTOCOL MANAGER] driverName = PROTMAN$ [VINES_XIF] drivername = NDISBAN$ bindings = "RTSND_NIF" [RTSND_NIF] driverName = RTSND$ - All trademarks or brand names mentioned are properties of their respective companies. $)RTL8139 SYS )*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * NDIS/2 Driver for DEC Pathwork * * K* *M The driver named RTSND contained in the directory \NDIS2 conform to the Network Driver Interface Specification (NDIS) defined by Microsoft/3Com. NDIS/2 Driver Installation for DEC Pathwork =+ 1. Insert the DEC PATHWORKS Client Setup diskette #1 into your floppy drive (either A: or B:). 2. Type the prompt, type the following and press to bring up the startup menu: A:>NETSETUP 3. You'll be asked if your keyboard type is LK250. Select "NO". If you are using an LK250 keyboard choose "YES". 4. Next, you'll be prompted to choose a transport option. Select the "DECNET transport option" and press to proceed. 5. Your system will prompt you to insert the DNET TRNSPRT diskette#1 into your floppy drive. Follow screen instructions. 6. Then you'll be prompted to specify a destination drive. Type C: or D: 7. When asked if you are creating an initial workstation diskette, select "NO". 8. Type in the node name and address (i.e. node number) in the corresponding field. Then press . 9. Type in the server node name and address (i.e., node number) in the corresponding field. Then press . 10. When asked to "Select the network adapter type:" choose Ethernet. 11. When prompted to "Select the network adapter:" choose "Other NDIS." 12. Indicate the subdirectory location of your NDIS driver in the adapter driver diskette. For example, type the following: A:\NDIS2\DOS\RTSND.DOS 13. When prompted, indicate the subdirectory location of the PROTOCOL.INI file in the adapter driver diskette. For example, type the following: A:\NDIS2\DOS\ 14. Select "WRITE KEY DISK" to save the settings that you have chosen. When prompted to copy the RTSND.DOS and PROTOCOL.INI files, insert the adapter driver diskette into your floppy drive. 15. Follow screen instructions to complete the installation. 16. From the Configuration screen, press F10 to exit to C:\. Sample Configuration Files - 1. CONFIG.SYS File shell=c:\command.com /P /E:526 device=c:\decnet\himem.sys rem *** do not add the EMM386.exe to this file *** REM device=C:\dos\EMM386.EXE ram 1024 dos=high, UMB devicehigh=c:\decnet\protman.sys /I:D:\DECNET devicehigh=c:\decnet\rtsnd.dos rem device=c:\decnet\nddrv.sys rem device=c:\decnet\npdrv.sys FILES=50 BUFFERS=50 LASTDRIVE=v STACKS=9,256 2. PROTOCOL.INI file for PATHWORKS v4.1 ; PROTOCOL.INI file create by DNETOMO.V41 V4.1.060 ; via DNETWIK.V41 V4.1.047 [protocol manager] DRIVERNAME = PROTMAN$ [IPX4MAC] DRIVER = IPX$MAC BINDINGS = RTSND_NIF [DATALINK] DRIVERNAME = DLL$MAC LG_BUFFERS = 16 SM_BUFFERS = 6 OUTSTANDING = 32 HEURISTICS = 0 BINDINGS = RTSND_NIF ;Specify the IRQ level used by the workstations network adapter ;You can get the IRQ value from driver load message ;NI_IRQ = 3 [RTSND_NIF] drivername = RTSND$ 3. AUTOEXEC.BAT echo off break on cls prompt $p$g REM Insert any keyboard internationalization and character REM set information here. if not exist \decnet\STARTNET.BAT goto nostartup call \decnet\STARTNET goto end :nostartup echo ** WARNING ** STARTNET.BAT file not found. echo ** Network functions not performed --- All trademarks or brand names mentioned are properties of their respective companies. {|}~ mLH*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * NDIS/2 Driver for Microsoft Network Client 3.0 * * K* *M Installation: = Before you start with the installation procedure, make sure that the adapter is properly installed and configured. Similarly, make sure that your Microsoft Network Client is properly installed. (If not, The installation utility SETUP.EXE is located on Microsoft Network Client v3.0 for MS-DOS Disk. Run SETUP.EXE from Disk and the SETUP program screen will appear, and You must complete each of the questions. These options are specific to your needs. The installation procedure will transfer files to a specific directory on the client and modify existing configuration files to fit your specific needs.) 1. Change to the Microsoft Network Client subdirectory, and run SETUP.EXE 2. The screen will display some infomation. Press . 3. Responds to the screen prompts, selecting "Change Network Configuration",then press . 4. Move the highlight to "Add Adapter", press . 5. Select "Network adapter not shown on list below ...". 6. Insert the driver diskette in floppy A, and specify your pathname A:\NDIS2\DOS, then press . 7. Follow screen instructions to complete the process. Simply pressing for each screen display will select the default options. Press until you reach the display prompting you to reboot your system. - All trademarks or brand names mentioned are properties of their respective companies.   n$)..  n$)}RTL8139 SYS ) RTSNTHLPHLP R#%"WINNT TXT &NT351  n$)lD.  3Q!)z..  3Q!)RTSND DOS R&{RTL8139 NIF `x6&MPROTOCOLINI [$lOEMSETUPINF 1${BMZcJ @rrRTSND$ $$ @@NETWORK_NIFOubZDIX+802.3 )P Fast Ethernet "rwmfnlnndK <  @oUooonooZoqsqqqno`r Q> The Fast Ethernet board's memory has some bad cells - could not work properly The Fast Ethernet Board's Ethernet Address is corrupted ! Fast Ethernet board's Ethernet Address:0 B C9C9C9C9C9C9C9C99˃9999˃999!!!!!!!!!!!!!!!! $DRIVERNAMENetwork Line Speed is 10 Mbps / Half_Duplex Mode Network Line Speed is 10 Mbps / Full_Duplex Mode Network Line Speed is 100 Mbps / Half_Duplex Mode Network Line Speed is 100 Mbps / Full_Duplex Mode TP/CX auto detect ! Warning ! The Cable may be DisConnected ! 10 BaseT !  10 Base-2 !  10 Base-5 !  HardWare Error ! Force 100M ! Force 10M ! Full Duplex !  Half Duplex !  Detected H/W Error ! No Fast Ethernet PCI Adapter Found!  Driver Not Loaded. More than one Fast Ethernet PCI adapters have been detected!  ID comparing. More than one Fast Ethernet PCI adapters have been detected!  BUSNO , DEVICENO comparing. Warnning:--- Can not find [ETHERID] in PROTOCOL.INI or can not find one that match. Driver can not determine which one to use. Solution:--- Please specify and check adapter ID in PROTOCOL.INI file. [Example]: [X]  ETHERID = @0123456789AB Warnning:--- Can not find [BUSNO] [DEVICENO] in PROTOCOL.INI or can not find one that match. Driver can not determine which one to use. Solution:--- Please specify and keyword in PROTOCOL.INI file. [Example]: [X]  BUSNO =  DEVICENO =  $Ji @O Loading Fast Ethernet Network Adapter It s not PCI SYSTEM BIOS , so can t not running ! Loading Fast Ethernet Network Adapter  .> øfPfSfQfR2.=fZfYf[fX..Tg..&ȎSQVWPR.n<ZXPR.n>ZX?,._^Y[.&.PR.n>|fbfPf@fXf |fjA>=+>=>= >= !|fb|ftl|ftfPf2MfX|ft%p= n= ^=0 N=p >5|fpfPf f|fxfxf|f|fC8ffX fXffPffX fl f?\PR.n& >6B6Ü6B3PPR6>hU<hFVF5!TgD^sgF%!!2"]ifPfff ff3rff@fff3hfff.nP.nR .nPf ph4ރTDDfP1111111f/f (f !fff f ffDfXD@Ipppppf?fXfPfffPffPR.n>SZXf fXf fffXPR.n>SZX>fNȎ6f$?<t5N>uɋf6f$?<F@<6B6É6 &L΃;V+f^&L6BQRDPP6>6fD%;6 6ffPR.n>SZXUVW^6&D-+F |FFtv ^&_O~DF &O&?&&;NN)NNfJ~F&_^] U^>]U^]Ü>;W>E3E FE 3E_øø Üv PR.nZXDPR.nZXDPR.nZXv 󥝸ÜFÃ> PX2 PX5fPfR.nfffZfXfPfR.n fffZfXþ-+&&]&U;;\;T ++Ã޹ÜfPfR.nfffZfXfPfR.n fffZfX+-Q7Q2Ҋ$2 YCҁ ΃P2X P2PR.n֋ZXX YIoÜ+;)~ &$&&ED&ED+Ü~ Ë>+O狅-/D1D+3ÊOQ<S DDDDD D DD0D2DLDNKDDDDDD D8D:Á~@F;øUWV^^ ^_]Q YQYPSQRU&G<> , &G]ZY[X3`fP>(q6 <0_(7DEDEDEDEDE5  DEDEDEDEDEfXaUN^!C]O ؃PPP$~ &"D&E~&E"&}4&E &E &E&E&E&E&E&E &E&EUVW^~6_^]fP>f3G=fPQG$<< <+<6BffGff1ffGff ffGffffGffYfXfnffG#fXVW96D$f<<<%%""%DD%dffLDD =WD t 6BPP6 _+-J_^fPfSfQfR.nHffff;vfZfYf[fXU^^VWPXF>E<F E FE W3ۋ]~& 4&uNPSQRWVFf^_ZY[X&E=\}PF &M&=&u&uN+PSQRWVFf^_ZY[XXHu^N<<_MW^_^] PSQRVW>+=CE>0|ft|fp |ft_^ZY[X..fPfRffPf|fpffX|f|ffGf@|f|ff1fd|f|fff|f|fffZfXfPfSfQfR.nHffff;vfZfYf[fXPROTMAN$Parameters: IOBase = 0x000 Interrupt Level = 0 Fast Ethernet Adapter driver (V3.23) [07/28/99] is installed  Fast Ethernet Adapter driver (V3.23) [07/28/99] installation failed  Hit any key to continue...INTERRUPTIOBASETXFIFOETHERIDNETADDRESSBUSNODEVICENOMEDIUM_AUTO_10HALF_10FULL_100HALF_100FULLRTSND$$ ={K{:{{{2{y|2 err1 ERROR Fast Ethernet Adapter was not found in this system. err3 ERROR Serious internal error ! The driver was unable to allocate GDT entries. The driver was unable to open the Protocol Manager. Check that the Protocol Manager is loaded before the Lan driver in config.sys or config.os2. Registration with the Protocol Manager failed. 6 <$F0> $D$90D$9أȣHDLPT@@øø5!%.x!%!UN^!C]09N=ø&a f.é*A F0 90GV&0 90֋^Ëƺ Gʸ&=0&}x &}X0SW&&= ,&= $&=&= &= G&= )&= !&=l&= a&= VG&<9<2,00V6 {F<$F$D^&=D &=dG뀸_[Ð&=&\y!X=.nyy PIP|yPnU^F_= =nf==-=wS[=a=Q =DPRPyP>ly%^&GXy&O&G&G &G&GPXPPYPzP[P#{!{c>lyPPpzPG ! ! ! !^&GXy&O&G&G &G&G]&<&GFISny=@`y!\y[ôDny\y!py2=[>\y!þ z<$FGGtyzzryz؃zW5_=zV=^)>zz&E& zz 밿" z6zBzz&G&zzzكz `>\y![ázzz؃zzt&<0<4 =>~z? =>ez& =>Lz  =>3z =>z =>z& u&= h=POȃS&?@ CIu[XCI&ffIu( SW_[$ىAvz"f3&2ffnfzUzL&zL&& o&= b=POȃS&?@ CIu[CIXCI&CGIuK#z&G&zz >\y!ZtP4PfPGS9uj U>S>S .?>S <}>S S Fu>Sw)8uftffxfp>SvL}U.n>(t>KuFPfP P*r1 !U??rA;Srހ>LtPtPp P>9 9tLz>9<>9 P.n#U;t Av??LX>LuG>KuP6P P>LtPKP P-}U.nPMP P[ø[Ë|fb><u! Ë|fb><ufPSQ|fbP>>7 == ==>f@ >>>=!1>=A">=>= |ff|ft}|fj|fbf@ZW>=@>=1>=">= >=! |fbf*P|ft{|fX؋|fb ! <'P5PPJP4P5P7P5PiP$P4PPP,PPY[fXQVW<< w< q< k< e<0h<:fG@fGDfGHfGLfGPfGQfGRfGTfGXfGYfGZfGbfG[fG`fGpfGtfGfGZfff3h4fl p fh @>h ft f f3:f|  fx @>x f f f3@f  f @> f ff3(Gf  f @> f ff3hMf  f @> tf ff3Sf  f @> Nf f f3Yf  f @> (f ff3(`f  f @> f ff3f  f > f ff|fth|ftf2|ft%p= g= W=0 G=p 7.|fpf f|fxfxf|f|fC8fQƌڱŠʀºff%f YfRfP/rf3Ksf3EffEfE fXfZfXfZP@&{ uXsPR3KZXôZS9SFv>Slny=@`y!\yôDny\y!py2= >\y!þ z<$FGGtyzzryz؃z {VW=_^fPQVWPS3ۊ&Y[X%V <$F0D$^_^YX!PS3ۊ&ƇY[X_^YX+>zz&E& zz YCzz&G&zzzكz >\y!NB00> TABLES.OBJINT.OBJ RECEIVE.OBJ REQUEST.OBJ STRATEGY.OBJ SYSTEM.OBJp TRANSMIT.OBJDaINIT.OBJMACSTATKMEDSTAT"COMMCHARbSERVCHARSERVSTAT DRIVERHEAD  DRIVERNAMEUDISP| INIT_TABLESINTSEMSTATUS FOR_RET_FLAGYj SETINTERRUPTogINTCHECKjINIT_INTiREQUESTRESPONSE'jRETURNSTATUSINDICATION^l GIVE_PACKETSn INIT_RECEIVEn INDICATIONOFFINDOFFS RXBUFBOUNDARYfnRECEIVERELEASEINDICATELOOKAHEADVALUEjRESETNICRECEIVELOOKAHEADlOVERFLOW_PROCESSINDICATIONCOMPLETEln INDICATIONONm TRANSFERDATA REMOTEBUFFERBRDNUMq READCOUNTERS@} INIT_REQUEST(NETFLAGNETADDRINDREQFrREQUESTn TRANSMITDUMMYREQUESTCONFIRM) MULTIADDRIRQ  NETADDRESSnIOBASErDOSINTD} INIT_STRATEGYrSTRATEGYsHWINITPROTDSOuSYSTEMH} INIT_SYSTEMi} RESTORETIMER TCSNEXTTOTOKu START_XMIT_1w TRANSMITCHAIN TCSNEXTTOFILLTXCOUNTL} INIT_TRANSMITp TX_CONT_BLOCK TCSNEXTTOXMITv WAIT1_PCI TRANSMITCONFIRMv XMIT_DONE XMITCOUNTfNICTCRfNICISRf CURRXBUFADDRՇFORCE10|fNICIDR0fNICMAR0~fNICIDR4fNICMAR4fNICTSD0fNICTSD1fNICTSD2fNICTSD3FORCE100fNICCAPRfNICTSADfNICERSRfNICTSAD0? SUB_VENDER_IDfNICTSAD1fNICTSAD2fNICTSAD3f NICCR9346fNICERBCR3yWAIT_PCI~ PARSEARGSx SET_PARAMf NICCONFIG0f NICCONFIG1fDATAPREFETCHFLAGh4TXSTARTADDRPAGE0:TXSTARTADDRPAGE1@TXSTARTADDRPAGE2(GTXSTARTADDRPAGE3hMTXSTARTADDRPAGE4STXSTARTADDRPAGE5YTXSTARTADDRPAGE6(`TXSTARTADDRPAGE7> FORCE_FLAGINITf NICRBSTARTrf RXBURSTDMAhf TXBURSTDMA PTXSTARTADDRPAGE0 PTXSTARTADDRPAGE1PTXSTARTADDRPAGE2PTXSTARTADDRPAGE3PTXSTARTADDRPAGE4 PTXSTARTADDRPAGE5PTXSTARTADDRPAGE6PTXSTARTADDRPAGE7 DEVICE_HELPxfERFTHRXBUFFERSTARTADDRSEGRXtfERXTHSEGTXxCS_DSnfETXTHfNICCMDfNICGEP AUTODETECTEDfNICRCR=MEDIUMfNICIMR tables.asm2  !$% &"$''(+).*2+5.8/;0=1?2C:F;H<K=N>P?SBVCYD\E_FbGeHhIkLnMqNtOwPzQ}RSTWYZ[\]_`int.asmX Y Z[\]^d|}"#$ - / 1 69=?ACEF'K)e*w+,-.12359:UVZ[\_`eflmostz{|   !%(),059<?DHKNSWZ]bfimpquxy|  !"$345HIKLMSTVW \ ]_`bds t#u'w(z){-|.}0~47;<>BCGIJNPQRTX\^_bcghkor =>?CDEFGHI"J$K'L)O,P-Q.S/T2U4V6X9Y;Z>[?\@^A_D`GaIbJcKdMeNhOiSjVkYl]m`ncodpgrisktmuovqwrsvwz{ receive.asmGabdefhijkmnoqrsvwyz{|}  #%(,/36:=ADHKORVZ]adhkorvy}      UWY!Z&[*`-c.d/e3f4g6i:m=n>o@pBqFrHsJtLzP{S}VY^ceijlptvxz~      "$(,048<?!@#R$\%_'hHiIjJlKoLpMqNrPsQvRwTxV|WXYZ[_`bcefgijkmnoqsuvxy}    !$)-12369:;=>AEFGJ5M6N=OTPUQXRZW[Z request.asmW^abcdinrux|      !$"*#+$,%-&0'1(3)6*:+=,@-D.G/J0N1P3S4V5Z6]8c:g;j<k=n>oArBDEFGabdefgijkmnopqrstuvwx{| 2 3 7 ; > B E F I L O Q R U W Y [ ] _ a c e h l p t w y z { }                                                     ! " # $ ( ) * + , - 0 1 2 4 5 6" K# L$ M% N& O) Q, R/ S3 T4 U5 V8 Y9 Z= [> \@ ]B ^D aF bJ cL dP eS fW hZ j^ k_ m` nc of g h j k l n w y {                                         $ ' * + . / 0 2 3 4 5 8 ; > B E I L N R U $X %Y &Z '[ (\ -_ .` /c 0e 1g 2h 6i 7j 8m 9o :q ;r fg strategy.asm3t 4u 5v 6w 7x 8y 9z <{ =| ?} @ A E F G H J L N S T U V W X Y \ i j system.asmS U X | }          # % ( + / 0 4 5 7 8 9 : > B D F I M P S W X [ ^ a d h j l n p r t v x z }                          ! " # $ % & ' ( ) * + , - . / 0 1 2 4 5 6 7 8 9 : ; < = > ? @ A B# C& D) E, G/ H1 I2 J5 l6 m7 n9 o< p? qA rC sE tF uH vI wL O U Y \ ] ^ a b d h j m o q u y z {                                           !"&()*+,BC transmit.asmaa b!d#e(g,h/i3j6k9m=p>q@rAsDtFuHvLwNxRyTzX{Z|^aeikorvz| #&)-1348:;>DH L N Q T W[\adhil m!q"u#v%y')12345=>?@BCDEGHIJKLMNrstvwyz|   !"#&(*+-.12678<=>?@ABCDEGKNRUVY]aeilpsvz{|}~!"#$%&'(*+,/01234568:;<=@ABCDFGIJLNOPQRSTXYstuvwxyz|} #&*-.159<=@DHKNOUVWXYZ[\]   init.asmdhejflgohqjsnxozpqstwxz|}stuvwxyz{|}~   #&*-037:>ADGKNRUXY[]`bdgiknpruwxz{~   !"#$%&'(89:;>?@ABCDEF GHIJKMO P$Q(R,S0T4U8V;W?XCYFZJ[N]Q^RfTgWhYj]k_mcneohrjsktovrwsxvyz{||~}~     !"#$%#&%'(I*J+K-L1M3W4X7Y;Z>m?nCoFpIqLsOtRuUvXw[z^{b|f}g~knopsux{~   #!'"-#2$8%>*A+B,E6F8G9K:O;P<T>W?X@[A_BbCeDgEiFmGqHrIvKyL~MPQRSTUVWYZ[\]^_`adfhopqrvwxy   !$&)-./157:;>ADFHKOPQSTWZ]`behjmq tvyz}~ "#$%&'()*+,-./2356789:=>?@ABCDEFGHIKLM NRST]^_`cd"e$f'g*h,i/l3n6o8s;u>vBwExHyKzN}Q~TVZ\`chkmpsw|   "%&*./024589: ; = ?BFILOPRTV[^adgh i!j"k#l$o%p&q'r(t)v*y+{,~-./01239:<=?@ADEFHIK!mLNUVXY[\`acdefijklmpquvwxyz~ "%(+-147:>AEHJMNRVWXZ\]^_bcdehkmnoprtv{~                       ! " #  &  '  (  )  +  ,  - " . $ 2 ( 3 * 4 , 5 / 8 1 9 4 : 6 ; 8 < ; A = B > C A C H J M O Q T W Y \ ^ g p s x z }              ! " # $ % & ' ( ) * + - . / 3 4 5 9 : ; < = A  B  C D E  F  H  I  J  K  L  M N " O & Q ( R - U 0 V 4 W 8 X : Y < Z > \ A ] D _ G ` I a K b N c P e T f X g \ h ^ i ` j b l e m h n k o m p o q r r t s w t y u z w ~ x y { | } ~   0 3 4  5  6 7 :  ;  <  =  ?  @  A  B  Q  R S # T ( U * V - X 0 Z 3 \ 4 d 5 e 9 f < g A h C i F k I m L n M z N { P | Q R V Y Z ] a f j m q t x }          ! % ) , / 0 6 9 < A E H K P T W Z _  c  f  i  n  r  u x }        ! " # & ' ( ) + , - . / 1 2 3 7 8 9 = > ? @ A B F G H I J L O P  Q  R  S T  W  X  Y  Z  [  \ " a % b ) c - d . e 2 i 5 j 6 k 7 l 9 u : v ; w < x = y @ z C | F } H ~ J  N P T V Z \ ` b f h l n r t x z ~             $ & * , . 2 4 7 9 < @ C F I K M O Q S U V W Z ^ _ a b c d e f g h i j" k# l$ m% n& q( t* u+ w, {- ~. / 0 1 3 4 5 6 7 9 : ; < = T V ` a b d e g h j k m n p q s t v w y z | }                          # & ) , / 2 5 8 ; > A D G J M P S V Y \ _ b e h k n q t w z }                        $% &#''(+-4.8/;0?4C5F6I7M8Q=Z>^?a@eEiFlGoHsIwNOPQVWXYZ_`abijklmrstuv  " %(+.258 ;!>)B*E,H;K<N>QQTRXT[Ua[c\g^j_pdrevgyhrtu    !"/0123457!:$;*?-@/A1B4C7D9E<G@KDLEMHJOSV\^`cehloprtwz~        !"$ %#&%''(+*,+-,.-/.023344556697;8=9A:C<I=J>KDLEMFNGOHPLSMWNZO\P_QcRfSiTkUoVqWtXvYz[}^_`abcdefghijlmnotuvm JB b3*Kjc08|94l%H"NB00?$&[RTL8139] Type = NDIS Title = "32-Bit PCI Fast Ethernet Adapter" Version = 3.01 DriverName = RTSND$ XPORTS = NETBEUI LANDD [File] Name = RTSND.DOS Path = IBMCOM\MACS [MEDIUM] display = "Medium Type" type = string strlength = 10 set = _AUTO,_10HALF,_10FULL,_100HALF,_100FULL optional = yes default = _AUTO Help = "This keyword support Medium to force Speed/Duplex Mode of this adapter card. The strings of this parameter is '_AUTO','_10Half','_10Full','_100Half','_100Full'" [NETADDRESS] tag = NETADDRESS display = "Network adapter address" type = Hexstring Strlength = 13 optional = YES editable = YES help = "This parameter overrides the network address of the network adapter card. The value of this parameter is a hexadecimal string of 13 digits, as in @52544C3. The address must be unique among all other network adapter addresses on the network." [ETHERID] tag = ETHERID display = "Node address" type = Hexstring Strlength = 13 optional = YES editable = YES help = "This parameter using multiple network adapter card. The value of this parameter is a hexadecimal string of 13 digits, as in @52544C3. The address must be unique among all other network adapter addresses on the network." [BUSNO] Tag=BUSNO Display = "Bus Number:" Type = decimal ;default = "0" Optional = Yes Editable = Yes range = 0-31 Virtual = No Help = "This parameter is the PCI BUS number to combined this adapter card. The value of this parameter is 0-31" [DEVICENO] Tag=DEVICENO Display = "Device Number:" Type = decimal ;default = "0" Optional = Yes Editable = Yes range = 0-255 Virtual = No Help = "This parameter is the PCI DEVICE number to combined this adapter card. The value of this parameter is 0-255." [TXFIFO] Tag=TXFIFO Display = "Early Tx Threshold FIFO:" Type = decimal ;default = "0" Optional = Yes Editable = Yes range = 0-63 Virtual = No Help = "Specifies the threshold level in the Tx FiFo begin the transmission. The value of this parameter is 0-63 "  $0TEST2  5(c930  `$CEN1208  a$EN1660  d$wHT80232  i$\UE0091  l$KVT86100  n$MXIC  v$EN1207B  |$WUE1211  $UE1219  $7 UE1207C  ${!EN1207E  $4"; ; PROTOCOL.INI Sample ; [RTSND_NIF] DriverName = RTSND$ ; MEDIUM=_Auto ; BusNo=0 ; DeviceNo=10  h%UE2216  "z%BAL981 ASM (|y%i]?"EN2220  ](uSIS900  p%(\ADM  s%iS900 ASM ={%]gp OEM1207CROM %oOSW  (1UE1207E  Z7%VVSMC8034  Q(JUSB  Z%QpFIX34 ASM k&\ ;OEMSETUP.INF File: [netcard] RTL8139="32-Bit PCI Fast Ethernet Adapter",000,ndis,ethernet,real,RTL8139,RTL8139_nif [RTL8139] devdir=?:rtsnd.dos device=rtsnd.dos,@devdir\rtsnd.dos [RTL8139_nif] drivername=rtsnd$ param=Medium,"Medium type ",text,"_Auto,_10Half,_10Full,_100half,_100Full",_Auto,0x30 param=NETADDRESS,"Network Address",chars,13,"@0 ",0x02 param=ETHERID,"Node Address",chars,13,"@0 ",0x02 param=BusNo ,"Adpater's Bus Number",int,"0,255,1",0,0x32 param=DeviceNo ,"Adpater's Device Number",int,"0,31,1",0,0x32 param=TxFiFo ,"Adpater's TX Early Threshold",int,"0,63,1",5,0x32 qIX1C COM o&IX34 COM k&FIX1C ASM o&eNOVELL BIN }lF&SW7147 ROMO(]"@SW8019 ROM ~>&SW7149 ROMO($%SW7145 ROMO(zA&@SW8029 ROM&~>&SW8139 ROM $%DIPKT COM @YcDIPKT21COM uYv{.  7Q!)..  7Q!)RTSND OS2 BR'&ґRTL8139 NIF `N&6IPROTOCOLINI [$;lcMZI@# !L!This program cannot be run in DOS mode. $NEk~  @PPY]  h! h6% %RTSND DOSCALLSMSG..\OS2OBJ\RTSND.OS2h RTSND$ $$ @@NETWORK_NIF bZDIX+802.3 )P Fast Ethernet "! s dK <  @oU>  z B Q> The Fast Ethernet board's memory has some bad cells - could not work properly The Fast Ethernet Board's Ethernet Address is corrupted ! Fast Ethernet board's Ethernet Address:0 B C9C9C9C9C9C9C9C99˃9999˃999!!!!!!!!!!!!!!!! $DRIVERNAMENetwork Line Speed is 10 Mbps / Half_Duplex Mode Network Line Speed is 10 Mbps / Full_Duplex Mode Network Line Speed is 100 Mbps / Half_Duplex Mode Network Line Speed is 100 Mbps / Full_Duplex Mode TP/CX auto detect ! Warning ! The Cable may be DisConnected ! 10 BaseT !  10 Base-2 !  10 Base-5 !  HardWare Error ! Force 100M ! Force 10M ! Full Duplex !  Half Duplex !  Detected H/W Error ! No Fast Ethernet PCI Adapter Found!  Driver Not Loaded. More than one Fast Ethernet PCI adapters have been detected!  ID comparing. More than one Fast Ethernet PCI adapters have been detected!  BUSNO , DEVICENO comparing. Warnning:--- Can not find [ETHERID] in PROTOCOL.INI or can not find one that match. Driver can not determine which one to use. Solution:--- Please specify and check adapter ID in PROTOCOL.INI file. [Example]: [X]  ETHERID = @0123456789AB Warnning:--- Can not find [BUSNO] [DEVICENO] in PROTOCOL.INI or can not find one that match. Driver can not determine which one to use. Solution:--- Please specify and check keyword in PROTOCOL.INI file. [Example]: [X]  BUSNO =  DEVICENO =  $e @O Loading Fast Ethernet Network Adapter It s not PCI SYSTEM BIOS , so can t not running ! Loading Fast Ethernet Network Adapter PROTMAN$Parameters: IOBase = 0x000 Interrupt Level = 0 Fast Ethernet Adapter driver (V3.21) [01/07/99] is installed  Fast Ethernet Adapter driver (V3.21) [01/07/99] installation failed  Hit any key to continue...INTERRUPTIOBASETXFIFOETHERIDNETADDRESSBUSNODEVICENOMEDIUM_AUTO_10HALF_10FULL_100HALF_100FULLRTSND$$ 1g?g:yggg2gmh2 err1 ERROR Fast Ethernet Adapter was not found in this system. err3 ERROR Serious internal error ! The driver was unable to allocate GDT entries. The driver was unable to open the Protocol Manager. Check that the Protocol Manager is loaded before the Lan driver in config.sys or config.os2. Registration with the Protocol Manager failed. X$1ø2=CPR.<<ZXPR.<>ZX?PR.<6xdbfPf@fXd xdjA>5+>5>5 >5 !xdbxdtlxdtfPf29fXxdt%p= n= ^=0 N=p t>k5xdpfPf fxdxfxfxd|fC8ffX dXddPddX d` d?\+PR.<& >6B6Ü6B3PhR6>U> ]Ã]SfPddd df3ndf@fdf3ddff.<P.<R .<P d pd2ރTDDfP1111111f /f (f !f f f f f fDfXD@Ipppppd?fXfPdffPd dPR.<>SZXd fXf dffXPR.<>SZX>dNȎ6d$?<t5N>uɋd6d$?<F@<6B6É6  &L΃;V +f^&L6BQRDPh6>6dD%;6 6ddPR.<>SZXUVW^6&D-+F FFtv ^&_p~eF &O&?&&RQSV&O6&G&_.3^[YZ;NN)NNfJ~F&_^] U^>]U^]&Ü>;W>E3E FE 3Eo_øø Üv PR.<ZXDPR.<ZXDPR.<ZXv 󥝸ÜFÃ> PX2 PX5fPfR.<fffZfXfPfR.< fffZfXþ-+&&]&U;;\;T ++Ã޹ÜfPfR.<fffZfXfPfR.< fffZfX+-Q7Q2Ҋ$2 YCҁ ΃P2X P2PR.<֋ZXX YIoÜ+;)~ &$&&ED&ED+Ü~ Ë>+O狅-/D1D+3ÊOQ<S }&&DDDDD D DD0D2DLDNKDDDDDD D8D:Á~@F;øUWV^^ ^_]Q YQY&G<> &G3'&&`fP>(q6 <0_(7DEDEDEDEDE5  DEDEDEDEDEfXaY $~ &"D&E~&E"&}4&E &E&E&E&E&E&E&E &E&EyUVW^~Q_^]fP>f3G=fPQG$<< <+<6BdfGfd1dfGfd dfGfddfGfdYfXfjdfGfXVW96D$d<<<%%""%DD%dddLDD =WD t 6BPP6_+-J_^fPfSfQfR.<Hffff;vfZfYf[fXU^^VW F>E<F E FE W3ۋ]~& 4&uNPSQRWVFf^_ZY[X&E=z}PF &M&=&u#SQR&E&].6 .3ZY[N+PSQRWVFf^_ZY[XXHu^N<<_ML^_^] `>+=bCE>0xdtxdp xdtafPfRffPfxdpffXxd|ffGf8xd|ff1f\xd|fffxd|fffZfXfPfSfQfR.<Hffff;vfZfYf[fX6 <$F0> $D$90D$9HDLPT@@$Î&}øøø09N=ø&a f.é*A F0 90GV&0 90֋^Ëƺ Gʸ&=0&}x &}X0SW&&= ,&= $&=&= &= G&= )&= !&=l&= a&= VG&<9<2,00V6gF<$F$D^&=D &=dG뀸_[&&2- &=&`e^&G&GNe&G&G &G&GqP*X2PhhYh f[hggf>`e^&G&GNe&G&G &G&G]&<&GFISbehTehPehRehhhhh@hh=[jjhbejXh6Pede2=[PhPeXþ f<$FGGhefffe~f؃fW_=fV=^)>ff&E& ff 밿" f6~fD~ff&G&ff~fكf `PhPeEX[áff~f؃ff/&<0<4 56~f 56ef 56Lf 563f 56f 56f}& u&= h=POȃS&?@ CIu[XCI&ffIu( SW_[$ىAvf"f3&2ffjdfUfD&frD&& o&= b=POȃS&?@ CIu[CIXCI&CGIuC#f&G&ff PhPe)Xshh4hdsnffK9fuk fM>K>K .f7>K <fu>K Kfu fFtx>Kw>KvBDuMVRQP&&X&<YZ^>(t>CuEhhfhr1 M77rA;Krހ>Dthhthh>9 f9DU>9<f>9 fD>DuE>Cuhh6h>>DthhOh VuMVRQP&&X&<YZ^hhMh[ø[Ëxdb>4u! Ëxdb>4ufPSQxdbP>67 55 556f@ >6>5!1>5A">5>5 xdfxdt}xdjxdbf@W>5@>51>5">5 >5! xdbf*PxdtwxdX؋xdb  9%hh5hSFhh4h-+4hh5ha="hh4hOhh,haY[fXQVW<< w< q< k< e<0h<:dG@dGDdGHdGLdGPdGQdGRdGTdGXdGYdGZdGbdG[dG`dGpdGtdGdGZddd2f%ff 8f%ff >f%ff $Ef%ff dKf%ff Qf%ff Wf%ff $^f%ff  f%fËdfxdthxdtf2xdt%p= ;g= +W=0 G=p  7.xdpf fxdxfxfxd|fC8fDQƌڱŠʀºff%f YfRfP/rf3Ksf3EffEfE fXfZfXfZP@&{ uXsPR3KZXønfpfK9fKF܃>KtbehTehPehRehhhhh@hh =jjhbejXh6Pe.de2=PhPeXþ f<$FGGhefffe~f؃fgVW=_^>PQVW&}Y%V <$F0D$^_^YX &EY_^YX*>ff&E& ff E~ff&G&ff~fكf DPhPe$XPhPe%Xs$5%;c$F/[RTL8139] Type = NDIS Title = "32-Bit PCI Fast Ethernet Adapter" Version = 3.01 DriverName = RTSND$ XPORTS = NETBEUI LANDD [File] Name = RTSND.OS2 Path = IBMCOM\MACS [MEDIUM] display = "Medium Type" type = string strlength = 10 set = _AUTO,_10HALF,_10FULL,_100HALF,_100FULL optional = yes default = _AUTO Help = "This keyword support Medium to force Speed/Duplex Mode of this adapter card. The strings of this parameter is '_AUTO','_10Half','_10Full','_100Half','_100Full'" [NETADDRESS] tag = NETADDRESS display = "Network adapter address" type = string Strlength = 13 optional = YES editable = YES help = "This parameter overrides the network address of the network adapter card. The value of this parameter is a hexadecimal string of 13 digits, as in @52544C3. The address must be unique among all other network adapter addresses on the network." [ETHERID] tag = ETHERID display = "Node address" type = string Strlength = 13 optional = YES editable = YES help = "This parameter using multiple network adapter card. The value of this parameter is a hexadecimal string of 13 digits, as in @52544C3. The address must be unique among all other network adapter addresses on the network." [BUSNO] Tag=BUSNO Display = "Bus Number:" Type = decimal ;default = "0" Optional = Yes Editable = Yes range = 0-31 Virtual = No Help = "This parameter is the PCI BUS number to combined this adapter card. The value of this parameter is 0-31" [DEVICENO] Tag=DEVICENO Display = "Device Number:" Type = decimal ;default = "0" Optional = Yes Editable = Yes range = 0-255 Virtual = No Help = "This parameter is the PCI DEVICE number to combined this adapter card. The value of this parameter is 0-255." [TXFIFO] Tag=TXFIFO Display = "Early Tx Threshold FIFO:" Type = decimal ;default = "0" Optional = Yes Editable = Yes range = 0-63 Virtual = No Help = "Specifies the threshold level in the Tx FiFo begin the transmission. The value of this parameter is 0-63 " 40 HnQ(VSRC  WR(1211BETADDI )'a(1211B1 DDI Vn(;OBJ-CD  fn(;;1211V140DDI)m~(BTFC3200  (>FW-100TX  V(mFW100V10ZIP (ك(*SVC220  p(SVC220TXZIP (((Y!OTHERS  (XSVC220TXDDI((aTFC3200 TXT ({x(-; ; PROTOCOL.INI Sample ; [RTSND_NIF] DriverName = RTSND$ ; MEDIUM=_Auto ; BusNo=0 ; DeviceNo=10 r-)-)r-)zm;4DDC  y(KDIGICOM 102 Mu(JDIGICOM DDI X(DIGICOM ZIP y((y(m88139TESTDDI (`COREGA  S(t1211V140ZIP S9)9)S9)q SMC  5[(tMC1244 ZIP h((h(BSMC1244 DDI1)ױ(R\PCI-TXB DDI1)s)6|NETRTSNT  (Ӡ.  :Q!)<..  :Q!)DRIVERS  ;Q!)=.  ;Q!)=..  ;Q!)<ETHERNET  ;Q!)>NIF  @Q!).  ;Q!)>..  ;Q!)=RTL8139  PROTOCOLINI I$@7RTSND DOS R&A; ; PROTOCOL.INI Sample ; DriverName = RTSND$ W" #')*,-83456:Mf?@ABLEFIKO]^RSVɧɽ<_cde klmnstuɄɅ ɌɣWɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿdMZcJ @rrRTSND$ $$ @@NETWORK_NIFOubZDIX+802.3 )P Fast Ethernet "rwmfnlnndK <  @oUooonooZoqsqqqno`r Q> The Fast Ethernet board's memory has some bad cells - could not work properly The Fast Ethernet Board's Ethernet Address is corrupted ! Fast Ethernet board's Ethernet Address:0 B C9C9C9C9C9C9C9C99˃9999˃999!!!!!!!!!!!!!!!! $DRIVERNAMENetwork Line Speed is 10 Mbps / Half_Duplex Mode Network Line Speed is 10 Mbps / Full_Duplex Mode Network Line Speed is 100 Mbps / Half_Duplex Mode Network Line Speed is 100 Mbps / Full_Duplex Mode TP/CX auto detect ! Warning ! The Cable may be DisConnected ! 10 BaseT !  10 Base-2 !  10 Base-5 !  HardWare Error ! Force 100M ! Force 10M ! Full Duplex !  Half Duplex !  Detected H/W Error ! No Fast Ethernet PCI Adapter Found!  Driver Not Loaded. More than one Fast Ethernet PCI adapters have been detected!  ID comparing. More than one Fast Ethernet PCI adapters have been detected!  BUSNO , DEVICENO comparing. Warnning:--- Can not find [ETHERID] in PROTOCOL.INI or can not find one that match. Driver can not determine which one to use. Solution:--- Please specify and check adapter ID in PROTOCOL.INI file. [Example]: [X]  ETHERID = @0123456789AB Warnning:--- Can not find [BUSNO] [DEVICENO] in PROTOCOL.INI or can not find one that match. Driver can not determine which one to use. Solution:--- Please specify and keyword in PROTOCOL.INI file. [Example]: [X]  BUSNO =  DEVICENO =  $Ji @O Loading Fast Ethernet Network Adapter It s not PCI SYSTEM BIOS , so can t not running ! Loading Fast Ethernet Network Adapter  .> øfPfSfQfR2.=fZfYf[fX..Tg..&ȎSQVWPR.n<ZXPR.n>ZX?,._^Y[.&.PR.n>|fbfPf@fXf |fjA>=+>=>= >= !|fb|ftl|ftfPf2MfX|ft%p= n= ^=0 N=p >5|fpfPf f|fxfxf|f|fC8ffX fXffPffX fl f?\PR.n& >6B6Ü6B3PPR6>hU<hFVF5!TgD^sgF%!!2"]ifPfff ff3rff@fff3hfff.nP.nR .nPf ph4ރTDDfP1111111f/f (f !fff f ffDfXD@Ipppppf?fXfPfffPffPR.n>SZXf fXf fffXPR.n>SZX>fNȎ6f$?<t5N>uɋf6f$?<F@<6B6É6 &L΃;V+f^&L6BQRDPP6>6fD%;6 6ffPR.n>SZXUVW^6&D-+F |FFtv ^&_O~DF &O&?&&;NN)NNfJ~F&_^] U^>]U^]Ü>;W>E3E FE 3E_øø Üv PR.nZXDPR.nZXDPR.nZXv 󥝸ÜFÃ> PX2 PX5fPfR.nfffZfXfPfR.n fffZfXþ-+&&]&U;;\;T ++Ã޹ÜfPfR.nfffZfXfPfR.n fffZfX+-Q7Q2Ҋ$2 YCҁ ΃P2X P2PR.n֋ZXX YIoÜ+;)~ &$&&ED&ED+Ü~ Ë>+O狅-/D1D+3ÊOQ<S DDDDD D DD0D2DLDNKDDDDDD D8D:Á~@F;øUWV^^ ^_]Q YQYPSQRU&G<> , &G]ZY[X3`fP>(q6 <0_(7DEDEDEDEDE5  DEDEDEDEDEfXaUN^!C]O ؃PPP$~ &"D&E~&E"&}4&E &E &E&E&E&E&E&E &E&EUVW^~6_^]fP>f3G=fPQG$<< <+<6BffGff1ffGff ffGffffGffYfXfnffG#fXVW96D$f<<<%%""%DD%dffLDD =WD t 6BPP6 _+-J_^fPfSfQfR.nHffff;vfZfYf[fXU^^VWPXF>E<F E FE W3ۋ]~& 4&uNPSQRWVFf^_ZY[X&E=\}PF &M&=&u&uN+PSQRWVFf^_ZY[XXHu^N<<_MW^_^] PSQRVW>+=CE>0|ft|fp |ft_^ZY[X..fPfRffPf|fpffX|f|ffGf@|f|ff1fd|f|fff|f|fffZfXfPfSfQfR.nHffff;vfZfYf[fXPROTMAN$Parameters: IOBase = 0x000 Interrupt Level = 0 Fast Ethernet Adapter driver (V3.23) [07/28/99] is installed  Fast Ethernet Adapter driver (V3.23) [07/28/99] installation failed  Hit any key to continue...INTERRUPTIOBASETXFIFOETHERIDNETADDRESSBUSNODEVICENOMEDIUM_AUTO_10HALF_10FULL_100HALF_100FULLRTSND$$ ={K{:{{{2{y|2 err1 ERROR Fast Ethernet Adapter was not found in this system. err3 ERROR Serious internal error ! The driver was unable to allocate GDT entries. The driver was unable to open the Protocol Manager. Check that the Protocol Manager is loaded before the Lan driver in config.sys or config.os2. Registration with the Protocol Manager failed. 6 <$F0> $D$90D$9أȣHDLPT@@øø5!%.x!%!UN^!C]09N=ø&a f.é*A F0 90GV&0 90֋^Ëƺ Gʸ&=0&}x &}X0SW&&= ,&= $&=&= &= G&= )&= !&=l&= a&= VG&<9<2,00V6 {F<$F$D^&=D &=dG뀸_[Ð&=&\y!X=.nyy PIP|yPnU^F_= =nf==-=wS[=a=Q =DPRPyP>ly%^&GXy&O&G&G &G&GPXPPYPzP[P#{!{c>lyPPpzPG ! ! ! !^&GXy&O&G&G &G&G]&<&GFISny=@`y!\y[ôDny\y!py2=[>\y!þ z<$FGGtyzzryz؃zW5_=zV=^)>zz&E& zz 밿" z6zBzz&G&zzzكz `>\y![ázzz؃zzt&<0<4 =>~z? =>ez& =>Lz  =>3z =>z =>z& u&= h=POȃS&?@ CIu[XCI&ffIu( SW_[$ىAvz"f3&2ffnfzUzL&zL&& o&= b=POȃS&?@ CIu[CIXCI&CGIuK#z&G&zz >\y!ZtP4PfPGS9uj U>S>S .?>S <}>S S Fu>Sw)8uftffxfp>SvL}U.n>(t>KuFPfP P*r1 !U??rA;Srހ>LtPtPp P>9 9tLz>9<>9 P.n#U;t Av??LX>LuG>KuP6P P>LtPKP P-}U.nPMP P[ø[Ë|fb><u! Ë|fb><ufPSQ|fbP>>7 == ==>f@ >>>=!1>=A">=>= |ff|ft}|fj|fbf@ZW>=@>=1>=">= >=! |fbf*P|ft{|fX؋|fb ! <'P5PPJP4P5P7P5PiP$P4PPP,PPY[fXQVW<< w< q< k< e<0h<:fG@fGDfGHfGLfGPfGQfGRfGTfGXfGYfGZfGbfG[fG`fGpfGtfGfGZfff3h4fl p fh @>h ft f f3:f|  fx @>x f f f3@f  f @> f ff3(Gf  f @> f ff3hMf  f @> tf ff3Sf  f @> Nf f f3Yf  f @> (f ff3(`f  f @> f ff3f  f > f ff|fth|ftf2|ft%p= g= W=0 G=p 7.|fpf f|fxfxf|f|fC8fQƌڱŠʀºff%f YfRfP/rf3Ksf3EffEfE fXfZfXfZP@&{ uXsPR3KZXôZS9SFv>Slny=@`y!\yôDny\y!py2= >\y!þ z<$FGGtyzzryz؃z {VW=_^fPQVWPS3ۊ&Y[X%V <$F0D$^_^YX!PS3ۊ&ƇY[X_^YX+>zz&E& zz YCzz&G&zzzكz >\y!NB00> TABLES.OBJINT.OBJ RECEIVE.OBJ REQUEST.OBJ STRATEGY.OBJ SYSTEM.OBJp TRANSMIT.OBJDaINIT.OBJMACSTATKMEDSTAT"COMMCHARbSERVCHARSERVSTAT DRIVERHEAD  DRIVERNAMEUDISP| INIT_TABLESINTSEMSTATUS FOR_RET_FLAGYj SETINTERRUPTogINTCHECKjINIT_INTiREQUESTRESPONSE'jRETURNSTATUSINDICATION^l GIVE_PACKETSn INIT_RECEIVEn INDICATIONOFFINDOFFS RXBUFBOUNDARYfnRECEIVERELEASEINDICATELOOKAHEADVALUEjRESETNICRECEIVELOOKAHEADlOVERFLOW_PROCESSINDICATIONCOMPLETEln INDICATIONONm TRANSFERDATA REMOTEBUFFERBRDNUMq READCOUNTERS@} INIT_REQUEST(NETFLAGNETADDRINDREQFrREQUESTn TRANSMITDUMMYREQUESTCONFIRM) MULTIADDRIRQ  NETADDRESSnIOBASErDOSINTD} INIT_STRATEGYrSTRATEGYsHWINITPROTDSOuSYSTEMH} INIT_SYSTEMi} RESTORETIMER TCSNEXTTOTOKu START_XMIT_1w TRANSMITCHAIN TCSNEXTTOFILLTXCOUNTL} INIT_TRANSMITp TX_CONT_BLOCK TCSNEXTTOXMITv WAIT1_PCI TRANSMITCONFIRMv XMIT_DONE XMITCOUNTfNICTCRfNICISRf CURRXBUFADDRՇFORCE10|fNICIDR0fNICMAR0~fNICIDR4fNICMAR4fNICTSD0fNICTSD1fNICTSD2fNICTSD3FORCE100fNICCAPRfNICTSADfNICERSRfNICTSAD0? SUB_VENDER_IDfNICTSAD1fNICTSAD2fNICTSAD3f NICCR9346fNICERBCR3yWAIT_PCI~ PARSEARGSx SET_PARAMf NICCONFIG0f NICCONFIG1fDATAPREFETCHFLAGh4TXSTARTADDRPAGE0:TXSTARTADDRPAGE1@TXSTARTADDRPAGE2(GTXSTARTADDRPAGE3hMTXSTARTADDRPAGE4STXSTARTADDRPAGE5YTXSTARTADDRPAGE6(`TXSTARTADDRPAGE7> FORCE_FLAGINITf NICRBSTARTrf RXBURSTDMAhf TXBURSTDMA PTXSTARTADDRPAGE0 PTXSTARTADDRPAGE1PTXSTARTADDRPAGE2PTXSTARTADDRPAGE3PTXSTARTADDRPAGE4 PTXSTARTADDRPAGE5PTXSTARTADDRPAGE6PTXSTARTADDRPAGE7 DEVICE_HELPxfERFTHRXBUFFERSTARTADDRSEGRXtfERXTHSEGTXxCS_DSnfETXTHfNICCMDfNICGEP AUTODETECTEDfNICRCR=MEDIUMfNICIMR tables.asm2  !$% &"$''(+).*2+5.8/;0=1?2C:F;H<K=N>P?SBVCYD\E_FbGeHhIkLnMqNtOwPzQ}RSTWYZ[\]_`int.asmX Y Z[\]^d|}"#$ - / 1 69=?ACEF'K)e*w+,-.12359:UVZ[\_`eflmostz{|   !%(),059<?DHKNSWZ]bfimpquxy|  !"$345HIKLMSTVW \ ]_`bds t#u'w(z){-|.}0~47;<>BCGIJNPQRTX\^_bcghkor =>?CDEFGHI"J$K'L)O,P-Q.S/T2U4V6X9Y;Z>[?\@^A_D`GaIbJcKdMeNhOiSjVkYl]m`ncodpgrisktmuovqwrsvwz{ receive.asmGabdefhijkmnoqrsvwyz{|}  #%(,/36:=ADHKORVZ]adhkorvy}      UWY!Z&[*`-c.d/e3f4g6i:m=n>o@pBqFrHsJtLzP{S}VY^ceijlptvxz~      "$(,048<?!@#R$\%_'hHiIjJlKoLpMqNrPsQvRwTxV|WXYZ[_`bcefgijkmnoqsuvxy}    !$)-12369:;=>AEFGJ5M6N=OTPUQXRZW[Z request.asmW^abcdinrux|      !$"*#+$,%-&0'1(3)6*:+=,@-D.G/J0N1P3S4V5Z6]8c:g;j<k=n>oArBDEFGabdefgijkmnopqrstuvwx{| 2 3 7 ; > B E F I L O Q R U W Y [ ] _ a c e h l p t w y z { }                                                     ! " # $ ( ) * + , - 0 1 2 4 5 6" K# L$ M% N& O) Q, R/ S3 T4 U5 V8 Y9 Z= [> \@ ]B ^D aF bJ cL dP eS fW hZ j^ k_ m` nc of g h j k l n w y {                                         $ ' * + . / 0 2 3 4 5 8 ; > B E I L N R U $X %Y &Z '[ (\ -_ .` /c 0e 1g 2h 6i 7j 8m 9o :q ;r fg strategy.asm3t 4u 5v 6w 7x 8y 9z <{ =| ?} @ A E F G H J L N S T U V W X Y \ i j system.asmS U X | }          # % ( + / 0 4 5 7 8 9 : > B D F I M P S W X [ ^ a d h j l n p r t v x z }                          ! " # $ % & ' ( ) * + , - . / 0 1 2 4 5 6 7 8 9 : ; < = > ? @ A B# C& D) E, G/ H1 I2 J5 l6 m7 n9 o< p? qA rC sE tF uH vI wL O U Y \ ] ^ a b d h j m o q u y z {                                           !"&()*+,BC transmit.asmaa b!d#e(g,h/i3j6k9m=p>q@rAsDtFuHvLwNxRyTzX{Z|^aeikorvz| #&)-1348:;>DH L N Q T W[\adhil m!q"u#v%y')12345=>?@BCDEGHIJKLMNrstvwyz|   !"#&(*+-.12678<=>?@ABCDEGKNRUVY]aeilpsvz{|}~!"#$%&'(*+,/01234568:;<=@ABCDFGIJLNOPQRSTXYstuvwxyz|} #&*-.159<=@DHKNOUVWXYZ[\]   init.asmdhejflgohqjsnxozpqstwxz|}stuvwxyz{|}~   #&*-037:>ADGKNRUXY[]`bdgiknpruwxz{~   !"#$%&'(89:;>?@ABCDEF GHIJKMO P$Q(R,S0T4U8V;W?XCYFZJ[N]Q^RfTgWhYj]k_mcneohrjsktovrwsxvyz{||~}~     !"#$%#&%'(I*J+K-L1M3W4X7Y;Z>m?nCoFpIqLsOtRuUvXw[z^{b|f}g~knopsux{~   #!'"-#2$8%>*A+B,E6F8G9K:O;P<T>W?X@[A_BbCeDgEiFmGqHrIvKyL~MPQRSTUVWYZ[\]^_`adfhopqrvwxy   !$&)-./157:;>ADFHKOPQSTWZ]`behjmq tvyz}~ "#$%&'()*+,-./2356789:=>?@ABCDEFGHIKLM NRST]^_`cd"e$f'g*h,i/l3n6o8s;u>vBwExHyKzN}Q~TVZ\`chkmpsw|   "%&*./024589: ; = ?BFILOPRTV[^adgh i!j"k#l$o%p&q'r(t)v*y+{,~-./01239:<=?@ADEFHIKLNUVXY[\`acdefijklmpquvwxyz~ "%(+-147:>AEHJMNRVWXZ\]^_bcdehkmnoprtv{~                       ! " #  &  '  (  )  +  ,  - " . $ 2 ( 3 * 4 , 5 / 8 1 9 4 : 6 ; 8 < ; A = B > C A C H J M O Q T W Y \ ^ g p s x z }              ! " # $ % & ' ( ) * + - . / 3 4 5 9 : ; < = A  B  C D E  F  H  I  J  K  L  M N " O & Q ( R - U 0 V 4 W 8 X : Y < Z > \ A ] D _ G ` I a K b N c P e T f X g \ h ^ i ` j b l e m h n k o m p o q r r t s w t y u z w ~ x y { | } ~   0 3 4  5  6 7 :  ;  <  =  ?  @  A  B  Q  R S # T ( U * V - X 0 Z 3 \ 4 d 5 e 9 f < g A h C i F k I m L n M z N { P | Q R V Y Z ] a f j m q t x }          ! % ) , / 0 6 9 < A E H K P T W Z _  c  f  i  n  r  u x }        ! " # & ' ( ) + , - . / 1 2 3 7 8 9 = > ? @ A B F G H I J L O P  Q  R  S T  W  X  Y  Z  [  \ " a % b ) c - d . e 2 i 5 j 6 k 7 l 9 u : v ; w < x = y @ z C | F } H ~ J  N P T V Z \ ` b f h l n r t x z ~             $ & * , . 2 4 7 9 < @ C F I K M O Q S U V W Z ^ _ a b c d e f g h i j" k# l$ m% n& q( t* u+ w, {- ~. / 0 1 3 4 5 6 7 9 : ; < = T V ` a b d e g h j k m n p q s t v w y z | }                          # & ) , / 2 5 8 ; > A D G J M P S V Y \ _ b e h k n q t w z }                        $% &#''(+-4.8/;0?4C5F6I7M8Q=Z>^?a@eEiFlGoHsIwNOPQVWXYZ_`abijklmrstuv  " %(+.258 ;!>)B*E,H;K<N>QQTRXT[Ua[c\g^j_pdrevgyhrtu    !"/0123457!:$;*?-@/A1B4C7D9E<G@KDLEMHJOSV\^`cehloprtwz~        !"$ %#&%''(+*,+-,.-/.023344556697;8=9A:C<I=J>KDLEMFNGOHPLSMWNZO\P_QcRfSiTkUoVqWtXvYz[}^_`abcdefghijlmnotuvm JB b3*Kjc08|94l%H"NB00?.  @Q!)..  @Q!)=RTL8139 NIF I$Model = 32-Bit PCI Fast Ethernet Adapter Path = ETHERNET\RTL8139 DeviceDriver = RTSND.DOS DeviceName = RTSND Type = NDIS XPorts = NETBEUI 2NLM  Q!)410NLM  Q!)DOSODI  Q!)OS2ODI  $Q!).  BQ!)..  BQ!)DRIVERS  CQ!).  CQ!)..  CQ!)ETHERNET  CQ!)NIF  FQ!).  CQ!)..  CQ!)RTL8139  DQ!).  DQ!)..  DQ!)PROTOCOLINI I$7RTSND OS2 BR'&ґ; ; PROTOCOL.INI Sample ; DriverName = RTSND$ Q!) RTSOS2 SYS $4NET CFG m&nOS2ODI TXT n& bMZI@# !L!This program cannot be run in DOS mode. $NEk~  @PPY]  h! h6% %RTSND DOSCALLSMSG..\OS2OBJ\RTSND.OS2h RTSND$ $$ @@NETWORK_NIF bZDIX+802.3 )P Fast Ethernet "! s dK <  @F)U>  z B Q> The Fast Ethernet board's memory has some bad cells - could not work properly The Fast Ethernet Board's Ethernet Address is corrupted ! Fast Ethernet board's Ethernet Address:0 B C9C9C9C9C9C9C9C99˃9999˃999!!!!!!!!!!!!!!!! $DRIVERNAMENetwork Line Speed is 10 Mbps / Half_Duplex Mode Network Line Speed is 10 Mbps / Full_Duplex Mode Network Line Speed is 100 Mbps / Half_Duplex Mode Network Line Speed is 100 Mbps / Full_Duplex Mode TP/CX auto detect ! Warning ! The Cable may be DisConnected ! 10 BaseT !  10 Base-2 !  10 Base-5 !  HardWare Error ! Force 100M ! Force 10M ! Full Duplex !  Half Duplex !  Detected H/W Error ! No Fast Ethernet PCI Adapter Found!  Driver Not Loaded. More than one Fast Ethernet PCI adapters have been detected!  ID comparing. More than one Fast Ethernet PCI adapters have been detected!  BUSNO , DEVICENO comparing. Warnning:--- Can not find [ETHERID] in PROTOCOL.INI or can not find one that match. Driver can not determine which one to use. Solution:--- Please specify and check adapter ID in PROTOCOL.INI file. [Example]: [X]  ETHERID = @0123456789AB Warnning:--- Can not find [BUSNO] [DEVICENO] in PROTOCOL.INI or can not find one that match. Driver can not determine which one to use. Solution:--- Please specify and check keyword in PROTOCOL.INI file. [Example]: [X]  BUSNO =  DEVICENO =  $e @O Loading Fast Ethernet Network Adapter It s not PCI SYSTEM BIOS , so can t not running ! Loading Fast Ethernet Network Adapter PROTMAN$Parameters: IOBase = 0x000 Interrupt Level = 0 Fast Ethernet Adapter driver (V3.21) [01/07/99] is installed  Fast Ethernet Adapter driver (V3.21) [01/07/99] installation failed  Hit any key to continue...INTERRUPTIOBASETXFIFOETHERIDNETADDRESSBUSNODEVICENOMEDIUM_AUTO_10HALF_10FULL_100HALF_100FULLRTSND$$ 1g?g:yggg2gmh2 err1 ERROR Fast Ethernet Adapter was not found in this system. err3 ERROR Serious internal error ! The driver was unable to allocate GDT entries. The driver was unable to open the Protocol Manager. Check that the Protocol Manager is loaded before the Lan driver in config.sys or config.os2. Registration with the Protocol Manager failed. ^1ø2=CPR.<<ZXPR.<>ZX?PR.<6xdbfPf@fXd xdjA>5+>5>5 >5 !xdbxdtlxdtfPf29fXxdt%p= n= ^=0 N=p t>k5xdpfPf fxdxfxfxd|fC8ffX dXddPddX d` d?\+PR.<& >6B6Ü6B3PhR6>U> ]Ã]SfPddd df3ndf@fdf3ddff.<P.<R .<P d pd2ރTDDfP1111111f /"Hf (f !f f f f f fDfXD@Ipppppd?fXfPdffPd dPR.<>SZXd fXf dffXPR.<>SZX>dNȎ6d$?<t5N>uɋd6d$?<F@<6B6É6  &L΃;V +f^&L6BQRDPh6>6dD%;6 6ddPR.<>SZXUVW^6&D-+F FFtv ^&_p~eF &O&?&&RQSV&O6&G&_.3^[YZ;NN)NNfJ~F&_^] U^>]U^]&Ü>;W>E3E FE 3Eo_øø Üv PR.<ZXDPR.<ZXDPR.<ZXv 󥝸ÜFÃ> PX2 PX5fPfR.<fffZfXfPfR.< fffZfXþ-+&&]&U;;\;T ++Ã޹ÜfPfR.<fffZfXfPfR.< fffZfX+-Q7Q2Ҋ$2 YCҁ ΃P2X P2PR.<֋ZXX YIoÜ+;)~ &$&&ED&ED+Ü~ Ë>+O狅-/D1D+3ÊOQ<S }&&DDDDD D DD0D2DLDNKDDDDDD D8D:Á~@F;øUWV^^ ^_]Q YQY&G<> &G3'&&`fP>(q6 <0_(7DEDEDEDEDE5  DEDEDEDEDEfXaY $~ &"D&E~&E"&}4&E &E&E&E&E&E&E&E &E&EyUVW^~Q_^]fP>f3G=fPQG$<< <+<6BdfGfd1dfGfd dfGfddfGfdYfXfjdfGfXVW96D$d<<<%%""%DD%dddLDD =WD t 6BPP6_+-J_^fPfSfQfR.<Hffff;vfZfYf[fXU^^VW F>E<F E FE W3ۋ]~& 4&uNPSQRWVFf^_ZY[X&E=z}PF &M&=&u#SQR&E&].6 .3ZY[N+PSQRWVFf^_ZY[XXHu^N<<_ML^_^] `>+=bCE>0xdtxdp xdtafPfRffPfxdpffXxd|ffGf8xd|ff1f\xd|fffxd|fffZfXfPfSfQfR.<Hffff;vfZfYf[fX6 <$F0> $D$90D$9HDLPT@@$Î&}øøø09N=ø&a f.é*A F0 90GV&0 90֋^Ëƺ Gʸ&=0&}x &}X0SW&&= ,&= $&=&= &= G&= )&= !&=l&= a&= VG&<9<2,00V6gF<$F$D^&=D &=dG뀸_[&&2- &=&`e^&G&GNe&G&G &G&GqP*X2PhhYh f[hggf>`e^&G&GNe&G&G &G&G]&<&GFISbehTehPehRehhhhh@hh=[jjhbejXh6Pede2=[PhPeXþ f<$FGGhefffe~f؃fW_=fV=^)>ff&E& ff 밿" f6~fD~ff&G&ff~fكf `PhPeEX[áff~f؃ff/&<0<4 56~f 56ef 56Lf 563f 56f 56f}& u&= h=POȃS&?@ CIu[XCI&ffIu( SW_[$ىAvf"f3&2ffjdfUfD&frD&& o&= b=POȃS&?@ CIu[CIXCI&CGIuC#f&G&ff PhPe)Xshh4hdsnffK9fuk fM>K>K .f7>K <fu>K Kfu fFtx>Kw>KvBDuMVRQP&&X&<YZ^>(t>CuEhhfhr1 M77rA;Krހ>Dthhthh>9 f9DU>9<f>9 fD>DuE>Cuhh6h>>DthhOh VuMVRQP&&X&<YZ^hhMh[ø[Ëxdb>4u! Ëxdb>4ufPSQxdbP>67 55 556f@ >6>5!1>5A">5>5 xdfxdt}xdjxdbf@W>5@>51>5">5 >5! xdbf*PxdtwxdX؋xdb  9%hh5hSFhh4h-+4hh5ha="hh4hOhh,haY[fXQVW<< w< q< k< e<0h<:dG@dGDdGHdGLdGPdGQdGRdGTdGXdGYdGZdGbdG[dG`dGpdGtdGdGZddd2f%ff 8f%ff >f%ff $Ef%ff dKf%ff Qf%ff Wf%ff $^f%ff  f%fËdfxdthxdtf2xdt%p= ;g= +W=0 G=p  7.xdpf fxdxfxfxd|fC8fDQƌڱŠʀºff%f YfRfP/rf3Ksf3EffEfE fXfZfXfZP@&{ uXsPR3KZXønffK9fKF܃>KtbehTehPehRehhhhh@hh =jjhbejXh6Pe.de2=PhPeXþ f<$FGGhefffe~f؃fgVW=_^>PQVW&}Y%V <$F0D$^_^YX &EY_^YX*>ff&E& ff E~ff&G&ff~fكf DPhPe$XPhPe%Xs$5%;c$F9;=?A!CAEaGIKMOQ!SAUa.  FQ!)..  FQ!)RTL8139 NIF I$ Model = 32-Bit PCI Fast Ethernet Adapter Path = ETHERNET\RTL8139 DeviceDriver = RTSND.OS2 DeviceName = RTSND Type = NDIS XPorts = NETBEUI befghlsm tvw@ .  HQ!)..  HQ!)RTSND 386 j$WvOEMSETUPINF x$9YWFW311 TXT V6&;bMZ@# !L!This program cannot be run in DOS mode. $LEc 'KvA5 oE  rtsnd C'm;1 3@// h'g~1 l h Hj h  j hP/ B D h* lz m/ h% hX i i \j/ h`/   ` R P) :  j d? h#/$h# djD hH hh h'lhP \ 8 l'h q p/ ph pF pQ3 Q1/ h'th K  4j uh h vh1xm zh ~h_Z'@ I I H H CHK PH H I I Ic mUZ'` % H  I `I Ihh'hlh'harZpZ'H  H 0I sIY4ish'n 7' `h ) B L \ p 'dh 'hzlh'h%ph m',++ u }4:+BvM uE$EM8~MQU Ur#E uXt:EP}MWAPA$P tM}YUJuEtu  UMB  uHE$PE PEPEPEPE UPBPEP>M 8~UBB HB BE tJHUB tJH UMBAUzt3M  uHUBPM8~UMPQUJMj A(jR UURU}}M  u_^[]H_^[]USVWE8~Ex }GEG  uH}GPE8~}G HG u]w tGF}G tO }EO}HPEPOE P(jjW u I}}}=E u_^[]H_^[]U SVWEE t]HE;wUU;MrME 4Ip++ u48+Gvu t3~ tAEAEM+MAM;MvE_*^[]ËE_^[]$UVW}G t_^]Ëu t5~uu~ut_^]*_^]èut2_^]Ã,++ u1+AvE u_^]*_^]T$D$ VL$t$T$ n^ËT$fD$ fUU EUQVU uMo^YUU UUQWU }Mm_YVL$t$T$ fo^ËT$T$ WL$|$T$ l_ËT$fT$ fWL$|$T$ fm_ 1( 2( 3( 4( 5( 6( 7( 8( 9( :( ;( <( =( >( ?( @( A( ( ( D( H( I( O( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( !( "( #( $( %( &( '( (( ( ( ( B( ( ( ( ( J( K( L( M( N( F( E( C( G(VWL$$t$|$ _^VWL$t$|$;s tIA+ǃr $_^ tVWPt$|$sAX_^  rtsnd @T'D$jPj fuf}E EM PtPj EEmEEM PtPj6 hmEM PtPj fepu jd$f}uj f}0ujf}pjM QhEM PtPj fepf}pE8M h8|Pjd hE M j pPj7 ExM hxxPj EC8ˋM hC8ˋ|Pj h(jM QEM PbPj. EuBM hbPj h%&M j >Pjg EM PjPj EM A8ttttt$&f+ff f!d$fM VbPjhE M j pPj ExM hxxPj EC8ˋM hC8ˋ|Pj M h>Pj] Et%M h@PjGM :EM فÕM S`PjvM ttt t+1f;f'f;f f;f@f;ff t8M $2[M QrEt M QpM Kt(u QREM P>Pj EM h?Ɓ;l$u2D$PD$P9|$tD$P+D$PD$P uL$ D$<+ω+]_^[Íd$d$USVWEH$EMx t _^[]ÐM9~MM(t% u ̸ _^[]ËMH _^[]ËEM@U A0B,EjPjjREPEPEP E @qt U B0EMP5PU B0Mu U MU P(U MB(AcQMAc_^[]ÍU SVWMǕfuMW`Pj1M tt t+t6Pj9M $27MME@(E9u ǁEPMQ}űEx0uZ@,ME uMHMj P$P5M 9~̋EHOMEH9MKu EKMOEA(MOE@(MMvCM8t2QM$Ȉu_^[]USVWE t~x_tx8~ E E jƀjh@PE P E 1vP E ǀ1E 1 uE IE x_tƀhE P_^[]D$PhVD$ t$jpPj hC9ˋ|Pj h'hC9ˋ|Pje h'h9ˋ|Pj? h'vh9ˋ|Pj h'P+^Ãt$jpPj hC9ˋ|Pj h'hC9ˋ|Pj h'h9ˋ|Pj h'h9ˋ|PjZ h'+^Ãt$jpPj& hC9ˋ|Pj h'DhC9ˋ|Pj h'h9ˋ|Pj h'h9ˋ|Pj h'+^Ãt$jpPjg hC9|PjN h'hC9|Pj( h'_h9|Pj h'9h9|Pj h'+^hC9|Pj h'hC9|Pj h'h9|Pjf h'h9|Pj@ h'w+^Íd$SVWUt$VPPjhFPPPjhFPWPjhFPUPjhFPSPjhFP~PPjhFP]PPjhFP<PPjhFPPPjhPFFPE P0Pjx j 7Pj: h@PjI hDPj0 htPjD$ PtPjq D$htPj hD$PtPj' fd$pujVxf|$ujV_$f|$0ujV?$f|$pjV{hzD$PtPjfd$p f|$ph8|Pj h'j pPj hxxPj hC8ˋ|Pj hjV^Nj pPjU hxxPj< hC8ˋ|Pj# h>Pj jPjz j?Pj v=8t/V$Ȉuð]_^[ÍI/#/1/@/P/`/p//d$SVWU+9|$t=L$9IЁEӃ3 t5 NuG;|$r]_^[Í$SD$jP؋T$ $ȋD$[ËU SVWE+۸MU9E9Er:~ UhgEPUj`5PEP}t̋UBIE v:+MEPEPE@EgP> 3EMU99uwȋU u _^[]ÍIUH_^[]ÍID$j7Pj *ÍIVWt$ t!trƆ0_^3P Pj 3 PPj Ɔ0_^ÍI3P$Pj{ 3 PPjR Ɔ0_^3P(Pj( 3 PPj Ɔ0_^3P,Pj 3 PPj Ɔ0_^Í$D$hDPj~ *Vt$jPj` j PjJ *^Íd$$SVW+++$3Ҋ89 @r3Ҋ89 @rSPj V Pj *_^[ÍD$t P *Í$VD$t$ PLPjL$ N*^Í$$Vt$VƆj>Pj$ *^ÐVWt$~8 t!rJf_^ÍD$PbPjT D$ f|$!uf|$ uf|$uf|$uhbPjz h#*fD$PfPj/D$ PtPj D$ mD$ PjPjq D$ hbPj h%&f_^f_^ÍD$PbPj D$ u2hfPju hbPj\ f_^ÍIf!$fA$f$fttt(t3t>CfD$:IfD$.$fD$ $fD$!$fD$fD$PbPj f_^ÍVWt$D$PPj2D$ PG9Au RjjuMQ Uz(u#z,uRB,MJ,EUJ0 uUHjEcPE_^[]ËUSVWEHM9~ MEM@A0x t uMHEE @ u0M uMHE PEPMQ ErMuL(t uMHE DM uMHE PEPMQ E u IMHEM9~ MEMHI0 uMHjEcPE_^[]Í$U(SVWEEEEEME9~ ME=w-w*K== =E}uE4iE\$EhE|M(EuEEEEzEEEgE[EMd$E=d$MA@ (M+A@ E Ed$jEPEPD eEEEEmE}tM5@ u F@}tMGzd$u FkfEEEEQEEE9jEPEP E؉EEjEPEP[ E؉EE}thM5@$E@;EvM EEPEPEMP5PEP追EM$@}~{u MFP5P蚼E@;EvM EEEPEPEPFMP5PEP虼}t̋EM$@ MAIE}u=}t4E;EvM EEPEPEP' M$EM u ̋E_^[]ËMHE_^[]PHHHHHHHHII I0I`IsIIIICHId$VD$D$D$PD$t$PFPFPjFPD$,PD$,PL$( N L$N$^Íd$$SVWUt$$+ۋ~NF=t9==-=SF F$tF F$djD$QP D$PtF F$2D$PL$$VT$$QR6tF F$jD$QP[ |$w_T$G;l$sD$GL$ D$AL$ A;u!;D$vD$AR>D$A~wtF F$]jQ+ۋL$(qQ F+ tF F$"Q+PL$(VT$(QR u ~ F$]_^[ÐUSVWM9~ MM(uGu ~ u.FjEPEPFP5PaENE$E M u ̋E_^[]ËMHE_^[]USVWM9~ MM(uGu ~ u.FjEPEPEPFP5P蝴ENE$E M u ̋E_^[]ËMHE_^[]SVWUD$t$(D$FD$D$P~D$PD$$WPjFPl$a=t@=tA=tBE29I6.:&JNF>BD$r uD$jPD$$PD$  D$F D$F$]_^[$USVWU EB=w#=s?=r1=v1=t*!=r=v=r=vEMA0}u RQZEM9~ MMI0 uMHjEcP(E_^[]Í$USVWlhPEPv=htjphPP_^[]Íd$USVWEƀx(t̃=h~ hE;hu @$h" hE9A$t I$E9A$uA$@$A$=hu hEPEPIh%&TE5PEP'E@P蒻E8tjhEP _^[]ËU SVWEHMx t _^[]ËM9~ MEM@A0(t+HI0 u ̸ _^[]ËMH _^[]ËMI(MDž tYMAM uMHjEPMh@PM9~ d$MMA IE uMEƁ(ǁ)- uMHMQaME9~ MEMHI0 uMHjEcPxE_^[]Í$USVWM9~ MMA0Wtd$MWEWE@E uMHE@tth EP@P莹 M9~ MEMHWuMy_t2ǁ)I0 u ̸_^[]ËMH_^[]ËMI0 uMHMQ _^[]ËUSVWU:~ UU+B0BWB[J@;te:u@;rUJ0 u47Uǂ)J0 u ̸_^[]ËUH_^[]ËUHUR _^[]ËUSVWM9~ MMEA0y@v}uEE tZ(ME uMHEh HEMPP׷M 9~ MEHEEEME9A@wM toE(EM u IMHEh @EMQPLM 9~ MEMH ɉMuMKM tpE(EMK u IMHEh @EMQP̶M 9~ MEMHK ɉMuMth'MuMQƁF=<M%EƁ(A(E EM@ uMH}tjjEh@P.jEPEh@PEP M9~ MEH HM |MI0 u ̋E_^[]ËMHE_^[]USVWME 9)Ht@tKtVE=MP-PNM9MQ'뿋MQ'믋M9~MM+Q0BQ0A@;te9uF;rMJQ0 u(+IMJQ0 u_^[]ËMH_^[]ËMHMQ?$$MM-HM9~ MMI0 uMHjEcP莴_^[]ÍD$T$H uPI(t ÉB@|$ BWu[WË[[Íd$D$ T$H uP!(t ÉB@|$ BWu[WË[[Í$D$HÍd$d$VWt$=dhu3`hPhm輴=`hu_^=`huG3`hM ǁ_(t(I0 uM HjM Q;_^[]ÐM A, EE Exv@ EEEM @9Gu QM  u IM HEjPCM 9~ M }UtJ EH B M A,MEjjuQ艨 }TM y,uy(u Q_^[]USVWM5@ $Et<9~ MMQh4PM  uMH MQoE&Et EE E t   E(t MQh4P菧 +_^[]Í$USVWEPE8~ IEEPh 5P;E  u +_^[]ÐEI+_^[]ÍI <` <L          rtsndrtsndIOBASEIOBASEINTERRUPTINTERRUPTMAXMULTICASTMAXMULTICASTNETADDRESSNETADDRESSMediumMediumMediumTypeMediumTypeBusNoBusNoDeviceNoDeviceNoTxFIFOTxFIFOAdapter's ID not found! This error occurs when you want multiple RTL8139 adapters to work under WFW. You must do the followings to allow this driver work on the correct one:  * Select NETWORK group under PROGRAM MANAGER. * Select NETWORK SETUP from NETWORK group. * Click on DRIVERS... botton  * Move highlight bar onto your driver and click on SETUP botton. * Click on ADVANCED... botton. * Input adapter's ID. * Select OK and close NETWORK SETUP. * Restart Windows. No RTL8139 adapter exists on your system! Adapter's ID not found Warnning MessageNo RTL8139 Adapter Warnning MessageRegistering adapter # buffers %ld, I/O base addr 0x%lx, interrupt number %ld, max multicast %ld RTL8139RegisterAdapter succeeded PCI 10/100 Ethernet Adapter BoardNum 0x%x 0u33331Enhanced Mode Windows for Workgroups RTSND Device rtsnd_DDB:4 ;=WCH O UVfXYZ[_]^abcdeohmq7rstuvwxy{|}~ I; ; OEMSETUP.INF File: ; [netcard] RTL8139="32-Bit PCI Fast Ethernet Adapter",000,ndis,ethernet,0x02,rtl8139,rtl8139_nif [rtl8139] ndis3=7:rtsnd.386 [rtl8139_nif] drivername=rtsnd$ param=Medium,"Medium Type",enum,"Auto,0,10Half,1,10Full,2,100Half,3,100Full,4",0,0x30 param=NETADDRESS,"Network Address",chars,13,"@0 ",0x02 param=ETHERID,"Node Address",chars,13,"@0 ",0x02 param=BusNo ,"Adpater's Bus Number",int,"0,255,1",0,0x32 param=DeviceNo ,"Adpater's Device Number",int,"0,31,1",0,0x32 param=TxFIFO ,"Adpater's TX Early Threshold",int,"0,63,1",5,0x32 ivername = NFSLINK$ bindings = RTSND_NIF 6. AUTOEXEC.BAT ... SET TZ=PST8 SET path=C:\;C:\NFS;C:\LANMAN SET NFSDRIVE=D REM Add the following line to bind NDIS driver C:lanman\netbind PRT * REM Execute application you need, e.g. NFSRUN NFSNET INIT NFSRUN - All trademarks or brand names mentioned are properties of their respective companies. K*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * NDIS/3 Driver for Windows for WorkGroups 3.11 * * K* *M Installation: = 1. Start the Windows for Workgroups 3.11. 2. Click the "Network" icon in the Program Manager Window. 3. Click the "Network Setup" icon in the Network Window. 4. When the "Network Setup" dialog box appears, select "Drivers..." button. 5. Select "Add Adapters..." from the "Network Drivers" dialog box. 6. Select "Unlisted or Updated Network Adapter". 7. When the "Install Driver" window appears, insert the distribution diskette into drive A:, type "A:\WFW311" and press . 8. Press to select "32-Bit PCI Fast Ethernet Adapter". 9. Click "Setup..." if you want to modify the advanced features. 10. Close each windows and restart the computer. - All trademarks or brand names mentioned are properties of their respective companies.  h((h(BSMC1244 DDI ױ(R\PCI-TXB DDI s)6|NETRTSNT  (Ӡ.  KQ!)>..  KQ!)RTL8139 SYS )?NETRTS INF P(pWIN95 TXT &?bMZ@# !L!This program cannot be run in DOS mode. $PEL9 b  R PHbD P<X^hT,.textBD h.dataHH@PAGEJJ `INITPP .rsrcXX@B.reloc^^@BQQQQQQRZRxR4RRRRRRS2SJSfSSSSSSST0TJTdT|TTTTTTU"U2UHUhUUUUUU9b9Ԁ9@Realtek rtl8139A WOL ndis5 driver POWERM Realtek 8139-series PCI NIC 6D$h_fǀ@PfuE E ƆNf_t;Vf$Cf ؋F>SPEE  E E ^[] USVuWeStt4V t tFj@P$V89F>Pf_t&Ë$Cf ȋF>QPE;ue}r;uVƆL_^[]Vt$W= ^F7PרuxHVf%Xf\POVt8} ^t(^F7Pרt-{_^̋D$f\u"tX@w@#r L2S\$UVXWwgPT (;vt+ϋȃ󤋃DM;vȋPURQHQjPPS ƃ^LLL fPC8PPPTL ;ʉr t+0L_^H]3[UQQEUSVPXW}pʍ;v;sE +ƒEuuMt E@EEPEPu$3vZU+;UvU}uU˃)Ut*;EuEEtMQMQP$3}wu+uE 03_^[SVt$ WFPtu(,mmF Pt F$PFP_^[SVt$ WFPtu(,mmF$Pt F$PFP_^[SVt$ WFPtu(,mmF(Pt F$PFP_^[SVt$ WFPtu(,mmF,Pt F$PFP_^[UQSVuWEj=hPj Ev(6ׅEjdPjv(6ӅtEj$ EEPjv(N,6ׅtZEjPjPv(6ӅtG}uHEjePjTv(6ׅt*EjPjUv(6ӅtEjMPjUv(6ׅu3_^[MAXMULTICASTEnvironmentSlotNumberEarlyTxThresholdChipOnCardbusDuplexModeTxMaxDMABurstRxMaxDMABurstEarlyRxThresholdTxInterFrameGapLinkUpWakeUpFramePMEEnableLDPSUWjYfEjfMXEz u fEfEfEfEfEEfEPE PE fEE fE fE"E fMfEE fEE fMfEE fMfEE: fE fE"EV fEfE Ez fE fEEԚ fEE̪ fEfEE fEE xE 3;VSEWP5tuEPE P9} ]u E@EjPEuPE P9} u E@C(EWPEuPE P9} u E@CEWPEuPE P9} uExu ƃƃEWPEuPE P9} uExu ƃƃEWPEuPE P9} uExuƃ9xuƃuEPEPE Pp}u9} uu{Hf5t3EWPEuPE P֍EWPEuC$8PE P9} u%E8@;C$vK$9C$sC$EWPEuPE P9} u E@C { EWPEuC4PE P9} uE@;C4vK4EWPEuC0PE P9} uE@C09C4vC49{ t{86EWPEuC8@PE P9} uE@ ;C8vK8EWPEuC<PE P9} uE@;CPf=8VFXP Pu, @;tRSSPP69t9jV0 / @;t SSPP69tSV V*F=>Pר t%FtPfF>j PV_^2[UE $5EDEHELEPET|EXqE\fE`[EdPEhEEl:Ep/Et$ExE|EE]r #SUVt$W*kjt)D$UPVP6kGL$uV(tUP6_^][Vt$VVO V3V $(,048`djƆkƆlmnm ^Vt$ VƆnưhV^3Vt$ PP6V^UUEM SVW3j:8};ȉ}}[unZ$BEH}uuEEEE@XP $U%`D@BEE}EPFqEeEYEHNpO@P΍uM/PjR"EujExEVt}3ɁP @MED]E ;w?t2tItIt$IuIE8qE$fE [E4PtUItJIIt8t%ItIt EIE,E(E0 E@EEpHEpN}jfu[}u-;]vEE}ˋȋEE_^[""*6N|*B8UM S]V33WtxItPtsMj3_u^Euэtʃ<$uP33a}u'M w UDCPF@0PV _^[Vt$WFP $PFNj=P׋Fj7P_^Vt$Vujjjh6P2V^UVuWF7P E=$PF7P׋Fu7P׋Fv@DPtdžLP@T_^]W3҃9T$ v4VSD$j Xً3t HuB;T$r[^_%jt$T$ ȃL$  UQVuW34@v7 @S؍NtEPEPWEM44Ku[_^Vt$WFP $PFNj=P׋Fj7P_2^Vt$F`Pfh^̋D$p@@DP2Vt$W=FjP׋Fj P_2^UQSVuW3j }3ɍ4Z@;r8J]@@rFW=P׋Fu P_^2[U} VWsWu=S3ۋFSpP׃~u } uE E F|PuhCr[0}5j GpP֋GhxxP֋GhC8˃|P_^] SUVWj]UWt$FtP t;HtMHHtDu8UjV"UWFtPf=ptUjVUWjUjV_^][UjUUSUVt$W=Ftu2jh*FtPtFhtPV.4Vh6)6PӃ~u%FbP׋FfPft f%f=tP_^]UVuWfFtuVF=bPu,VFhbPhVbFjPרuUFHt%HtHtHt Hu ! 3 EPFbPVjjV}_^]̋D$Hv*t!tt u(hh jA j!h@fPVt$ FXP uFj >PV;p2p psj2VVdžP @^Vt$ WtFj >PVIFdP t"ƆW`hV`j2P2^Vt$VFWbhPƆV`j2V^UVu W=FdP׋FjP׋=u?FHt%HtHtHt Hu ! 3 E PFbP׋Fj >P_^]D$j23YvVj2Nu^UEM Vu M  Ph  V M^]UEM Vu M  Ph  VM^f]UEM Vu M  Ph  VM^]UEM Vu M  Ph u V^]UEM Vu M  Ph u V^]UEM Vu WM = Ph u V_^]U eSe3ۍEPjSuuE;Et$CfrEf} r 'Ef}rf3[M EUuM UjPuueuEj>Puumj F WE EFEEjPuuEWjPuu)E=L=L=L=L=L=L=L=L=L=L=2h=6ht}=tv=to=Lu$e } 0}}1=ut=vt=xt=y t=yu!e } 0x} E$<ee(} 0W}(MfGU4EeEEPEPEPhfr WVES]PEjPuuEPEj>PuuEEԋE%=LuEhhPuuEh@j PuuUEؿv;Ǿ2hy w =u];w t=xP;wAt}=yHEPEjPuuEPjuuuEPEjPuuoEPjuuuYEPEjPuu@EjjPuu}jEVjPuu EVj PuuEjj PuuEVj>PuuEjjPuuj)EVj>PuuEVj>Puuu EVj,PuuEVj0PuuEjjPuuEWjPuuEWj PuujE=vw tv=uoy ;w t=x];wtR=yuKhW2h;w t9=2L;wt'=6ht =Lt=LuL;wt=Lf}thhEj>PuuEWjDPuu]5eE PWjhjE PW֋E=LtM=LtF=Lt?=Lt8=Lt1=Lt*=Lt#=Lt=Lt=ut)=vt"=xtE3f9}t @ PPh3jEjjPuujEWj>PuuoEPEPEPhfEPj`uuu@}uuj`uuu#EPjauuu}uujauuuEPjbuuu}uujbuuuEPjcuuu}uujcuuu}yuEWjDPuu#jEPEjPuuejjWWuE @PjWWuhj WWu1ujuuuu Vj,u ]uuRPj0uuu;hj>uuu}WjPlv,m:ntSam$lmu_^[AAAAAB5BRBoBBBBBBC.CD$m$EFDHLPTX\ |`nd`hRlDp 6t$(x(|, 0mt!ItIt Iu(Ph4 Ph PhP Ph TPE$E5EFEWEhEyEEEEEEEEEE|       <,US339]VWvM9t @;Er;Eu M 5HE5HSVP`;}3uEMǀ@ EEǀDuOtSVu\SE E9X tuPzHQHQHQHQp(05;EPEQQPh9f=EHQjPFhPP׋FZPՈD$<ud$<uL$Ft$ZP׋FYPՈD$<uL$<ud$Ft$YP׋FjPPV5V_^][YYVt$W=v׈FNFOFPFQFP׈FR28NHFSu:8NIu58NJu08NKu+8NLu&8NMu!NNFMNHNONINPNJNQNKNRNL_^3U6>I>Z>g>x>>>>>>>>>?03012m33333 4/4:4L4Z44445 5I5n55696=6A6E6I6M6Q6U6Y6]6a6e6i6m6q6y6|777 8Z88B:F:J:N:R:V:Z:^:b:f:j:n:r:v:z:~:::::::;;;< <(<<<>>?-?T?g??? x0i1111 22<2O3]3333#4R444j555556C6I6Z6f6u6(7K7]778&898i888889.9@9X99::[:k:::;;U;h;;0 6W;l;;)<>>,>?>E>\>>@ 0'00"1,1d11K3333M4g4v4444444444444444456$6,646>6E6I6M6Q6U6Y6]6a6e6i6m6q6u6y6}66::C:L::;;;;P(0020=0D0K0R0Y0`0g0n0u0|0000  VHH$SG2825=$SG2822=$SG2819=$SG2816l=PH$SG2613 $SG2610 $SG2607 $SG2604 $SG2601z $SG2598V $SG2595: $SG2592 $SG2586 $SG2583 $SG2580 $SG2577 $SG2574 $SG2568z .rsrc$02`X.idata$6,R.idata$6Uheader[P A5 c '$(^,048<*@ODHLP0TQX\`dhEleptx| 3M  s     [ ~  - H Wv q:      P    4        : d \ jv ! 1\ A \ x |   z  t 7    |^ n '! ! ! P j" b "  " <#  v# < # X #  #  B$ 0 $ `% B 2& & R ' h (  (  (  6) ) )  &* nz*  *  + & r+ + 7 <, J , s /  8  J;  ^; ><  = _Enque@8 ? _Deque@4J? ~? ? @ 4 @ J D HH2H!HJ M {~N P  PPJPendb+_DriverEntry@8_RTFast_EnableInterrupt@4_RTFast_DisableInterrupt@4_RTFast_Isr@12_RTFast_HandleInterrupt@4_RTFast_RcvDpc@4_RTFast_PacketOK@4_RTFast_IndicatePacket@4_RTFast_TransferData@24_SyncCardStartXmit0@4_SyncCardStartXmit1@4_SyncCardStartXmit2@4_SyncCardStartXmit3@4_NwayedForceMediumType__imp__WRITE_PORT_USHORT@8__imp__READ_PORT_USHORT@4_CleanupSendedPackets@4_RTFast_TxDpc@4__imp__WRITE_PORT_UCHAR@8_CardResetRx@4__imp__EthFilterDprIndicateReceiveComplete@4__imp__READ_PORT_UCHAR@4__imp__EthFilterDprIndicateReceive@32__imp__NdisQueryBuffer@12__imp__WRITE_PORT_ULONG@8__imp__READ_PORT_ULONG@4_RTF8Log@4_RTFast_Initialize@24_SetupPCIConfiguration@4_ReadRegistry@8_InitSoftwareVariable@4_RTFast_Shutdown@4_RTFast_Halt@4_RTFast_CheckForHang@4_GetTxPacket@8_ResetAdapter@4_RTFast_Reset@8_ResetCheckingTimerProc@16_RTFast_QueryInformation@24_RTFast_SetInformation@24_DispatchSetPacketFilter@4_DispatchSetMulticastAddressList@4_FindPciConfiguration@24_RTFastFreeSharedMemory@4_RTFastAllocateSharedMemory@4_InitialCardTest_RTFast_MiniportBlock_HighestAcceptableMax__imp__NdisMRegisterMiniport@12_RTFast_Send@12__imp__NdisInitializeWrapper@16__imp__NdisMInitializeTimer@16__imp__NdisMRegisterAdapterShutdownHandler@12_CardStart@4__imp__NdisMDeregisterInterrupt@4__imp__NdisMDeregisterIoPortRange@16__imp__NdisMFreeMapRegisters@4_CardSetup@4_CardReadEthernetAddress@4_SetupLink@4_CardInitialize@4_CardGetChipVersion@4__imp__NdisMAllocateMapRegisters@20__imp__NdisMRegisterIoPortRange@16__imp__NdisWriteErrorLogEntry__imp__NdisMRegisterInterrupt@28__imp__JNdisMSetAttributes@16_pci_get_long@20_pci_get_byte@20_pci_find_device@20_GetPCIConfigurationOnCardbus@8__imp__NdisFreeMemory@12__imp__NdisAllocateMemory@20__imp__NdisReadPciSlotInformation@20__imp__NdisWritePciSlotInformation@20__imp__NdisCloseConfiguration@4__imp__NdisReadNetworkAddress@16__imp__NdisReadConfiguration@20__imp__NdisOpenConfiguration@12_SetLDPS@8_RTFast_Delay@8_SyncCardStop@4__imp__NdisMUnmapIoSpace@12__imp__NdisFreeSpinLock@4_CardStop@4__imp__NdisMCancelTimer@8__imp__NdisMDeregisterAdapterShutdownHandler@4_CardWriteEthernetAddress@4_RTFast_DoNextSend@4_ProcessLinkChange@4__imp__NdisMIndicateStatus@16__imp__NdisMSendComplete@12_CardReset@4__imp__NdisSetTimer@8__imp__NdisMResetComplete@12_SyncCardSetReceiveConfig@4_SyncCardSetAllMulticast@4__imp__NdisMSynchronizeWithInterrupt@12_SyncCardCopyMulticastRegs@4_CardFillMulticastRegs@4__imp__NdisMPciAssignResources@12__imp__NdisMFreeSharedMemory@24__imp__NdisMAllocateSharedMemory@20_CardInitACPIRegisters@4_CardComputeCrc@8_CardGetMulticastBit@12_SyncCardGetISR@4_SyncCardClearISR@4_SyncCardClearIMR@4_SyncCardReadTSAD@4_SyncCardAcknowledgeOverflow@4_SyncCardUpdateCounters@4_SyncCardHandleOverflow@4_Rtl8139set_param@12_WriteLinkParam@4_Setup2ndNway@4_WriteOurCapability@4_InitialNwayCheckingTimerProc@16_NwayCheckingTimerProc@16_RestartNway@4_LinkChangeReNwayTimerProc@16__imp__KeStallExecutionProcessor@4_pci_get_word@20_pci_set_byte@20_pci_set_word@20_pci_set_long@20_pci_find_class@16_pci_find_socket@12_pci_close_socket@12_pci_open_pcb@20_pci_halfopen_pcb@12_delay_tick@4_ReadPciSlotInformation@24_WritePciSlotInformation@24_EnableCardbus@4_ReadIOIrqConfiguration@8__imp__NdisMMapIoSpace@20_RTFast_Sends@12_CardCopyDownPacket@8_CardStartXmit@4__imp__NDIS_BUFFER_TO_SPAN_PAGES@4__imp__NdisQueryBufferOffset@12_WRITE_PORT_USHORT@8__IMPORT_DESCRIPTOR_HAL_READ_PORT_USHORT@4_WRITE_PORT_UCHAR@8_READ_PORT_UCHAR@4_WRITE_PORT_ULONG@8_READ_PORT_ULONG@4_KeStallExecutionProcessor@4__NULL_IMPORT_DESCRIPTORHAL_NULL_THUNK_DATA_EthFilterDprIndicateReceiveComplete@4__IMPORT_DESCRIPTOR_NDIS_EthFilterDprIndicateReceive@32_NdisQueryBuffer@12_NdisMRegisterMiniport@12_NdisInitializeWrapper@16_NdisMInitializeTimer@16_NdisMRegisterAdapterShutdownHandler@12_NdisMDeregisterInterrupt@4_NdisMDeregisterIoPortRange@16_NdisMFreeMapRegisters@4_NdisMAllocateMapRegisters@20_NdisMRegisterIoPortRange@16_NdisWriteErrorLogEntry_NdisMRegisterInterrupt@28_NdisMSetAttributes@16_NdisFreeMemory@12_NdisAllocateMemory@20_NdisReadPciSlotInformation@20_NdisWritePciSlotInformation@20_NdisCloseConfiguration@4_NdisReadNetworkAddress@16_NdisReadConfiguration@20_NdisOpenConfiguration@12_NdisMUnmapIoSpace@12_NdisFreeSpinLock@4_NdisMCancelTimer@8_NdisMDeregisterAdapterShutdownHandler@4_NdisMIndicateStatus@16_NdisMSendComplete@12_NdisSetTimer@8_NdisMResetComplete@12_NdisMSynchronizeWithInterrupt@12_NdisMPciAssignResources@12_NdisMFreeSharedMemory@24_NdisMAllocateSharedMemory@20_NdisMMapIoSpace@20_NDIS_BUFFER_TO_SPAN_PAGES@4_NdisQueryBufferOffset@12NDIS_NULL_THUNK_DATA_BlankBuffer$S2385_?VendorDescription@?1??RTFast_QueryInformation@@9@9$S2760_?test@?1??DriverEntry@@9@9$S2504_RTFast_SupportedOids$S2485C:\DDK\lib\i386\free\RTL8139.sys" v :7 qP q q4 q  ! I:* d\ve\-!Ӛ|y!az(te'C^ӌ!8!5!oj"K"+"Z <#:v###)#h B$ $`%2&&'K(l(s(>6)zҰ)!)S&*Tz*S*Q +Qr+Q+w <,n Ѫ,n / 8 J;^; ><.='  ?=J?:??_@ @DJ Mz~N~P;*M ;* NETRTS.INF ;*M [Version] LayoutFile=layout.inf Signature="$CHICAGO$" Class=Net ClassGUID={4d36e972-e325-11ce-bfc1-08002be10318} Provider=%V_MS% [Manufacturer] %V_Generic%=Generic [Generic] %rtl8139.DeviceDesc%=rtl8139.ndi,PCI\VEN_10EC&DEV_8139 [rtl8139.ndi] AddReg=rtl8139.ndi.reg,notoncbs.ndi.reg,rtl8139.pci.reg,pci139.ndi.reg,pci139.pcires.reg CopyFiles=net139.inf.CopyFiles,net139.ndis3.CopyFiles ;;*L ;; *RTL8139 ;;*L [rtl8139.ndi.reg] HKR,NDI\Params\DuplexMode,flag,1,30,00,00,00 HKR,Ndi\params\DuplexMode,ParamDesc,0,"Link Speed/Duplex Mode" HKR,Ndi\params\DuplexMode,type,0,enum HKR,Ndi\params\DuplexMode,default,0,1 ;HKR,Ndi\params\DuplexMode\enum,0,0,"Default" HKR,Ndi\params\DuplexMode\enum,1,0,"Auto Mode " HKR,Ndi\params\DuplexMode\enum,2,0,"10Half Mode" HKR,Ndi\params\DuplexMode\enum,3,0,"10Full Mode" HKR,Ndi\params\DuplexMode\enum,4,0,"100Half Mode" HKR,Ndi\params\DuplexMode\enum,5,0,"100Full Mode" HKR,Ndi\Params\EarlyTxThreshold,ParamDesc,0,"Early Tx Threshold" HKR,Ndi\Params\EarlyTxThreshold,Type,0,"int" HKR,Ndi\Params\EarlyTxThreshold,Default,0,"38" HKR,Ndi\Params\EarlyTxThreshold,Flag,1,20,00,00,00 HKR,Ndi\Params\EarlyTxThreshold,Min,0,"0 HKR,Ndi\Params\EarlyTxThreshold,Max,0,"63" HKR,Ndi\Params\EarlyTxThreshold,Step,0,"1" HKR,Ndi\Params\EarlyTxThreshold,Base,0,"10" HKR,NDI\Params\NetworkAddress,flag,1,30,00,00,00 HKR,Ndi\params\NetworkAddress,ParamDesc,0,"Network Address" HKR,Ndi\params\NetworkAddress,type,0,edit HKR,Ndi\params\NetworkAddress,default,0,"0 " HKR,Ndi\params\NetworkAddress,LimitText,0,12 HKR,Ndi\params\NetworkAddress,UpperCase,0,1 HKR,Ndi\params\NetworkAddress,Optional,0,1 [rtl8139.pci.reg] HKR,Ndi,DeviceID,0,"PCI\VEN_10EC&DEV_8139" [notoncbs.ndi.reg] HKR,,ChipOnCardbus,,0 ;;*L ;; ;;*L [pci139.ndi.reg] ; key,subkey,valuname,type,value HKR,,DriverDesc,,"32-Bit PCI Fast Ethernet Adapter" HKR,,DevLoader,,*ndis HKR,,DeviceVxDs,,rtl8139.sys HKR,,EnumPropPages,,netdi.dll,EnumPropPages ; NDIS Info HKR,NDIS,MajorNdisVersion,1,03 HKR,NDIS,MinorNdisVersion,1,0a HKR,NDIS,LogDriverName,,"RTL8139" ; Interfaces HKR,Ndi\Interfaces,DefLower,,"ethernet" HKR,Ndi\Interfaces,LowerRange,,"ethernet" HKR,Ndi\Interfaces,DefUpper,,"ndis3" HKR,Ndi\Interfaces,UpperRange,,"ndis3" HKR,,MediaType,,1 ; Install sections ;;*L ;; PCI common parameters ;;*L [pci139.pcires.reg] ;;params HKR,,AdapterType,,5 HKR,,BusType,,5 ;; Resources HKR,,InterruptNumber,1,04,00,00,00 HKR,,IOBaseAddress,1,02,00,00,00 HKR,,MemoryBaseAddress,1,01,00,00,00 HKR,NDI\params\InterruptNumber,resc,1,04,00,00,00 HKR,Ndi\params\interruptNumber,ParamDesc,0,"Interrupt Level" HKR,NDI\params\InterruptNumber,flag,1,20,00,00,00 HKR,NDI\params\IOBaseAddress,resc,1,02,00,00,00 HKR,NDI\params\IOBaseAddress,ParamDesc,0,"I/O Base Address" HKR,NDI\params\IOBaseAddress,flag,1,20,00,00,00 ;;*L ;; Drivers ;;*L ;; Install NDIS3 [net139.ndis3.CopyFiles] rtl8139.sys [net139.inf.CopyFiles] netrts.inf [rtl8139.DelFiles] drvidx.bin,,,1 drvdata.bin,,,1 ;;*L ;; Destination Directories ;;*L [DestinationDirs] DefaultDestDir  =11 ; LDID_SYS net139.ndis3.CopyFiles =11 net139.inf.CopyFiles =17 ; INF rtl8139.DelFiles =17 [SourceDisksNames] 52="32-Bit PCI Fast Ethernet Adapter Driver Diskette","",0 [SourceDisksFiles] rtl8139.sys =52,,12345 netrts.inf =52,,1234 ;;*L ;; Localizable Strings ;;*L [strings] ;;Provider V_MS="Microsoft" ;;Manufacturers V_Generic="Generic" ;;PCI Devices rtl8139.DeviceDesc="32-Bit PCI Fast Ethernet Adapter"  the "Network" dialog box. 10. Click the "Close" button in the "Network" dialog box. 11. Remove the Driver Diskette from your floppy drive. 12. Restart your computer to initialize the network function. - All trademarks or brand names mentioned are properties of their respective companies. (XSVC220TXDDI((aTFC3200 TXT ({x(-*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * NDIS/3 Driver for Windows 95 * * K* *M Contents: - A)Driver Installation for Microsoft Windows 95 B)Driver Installation for Microsoft Windows 95 OSR2 A) Driver Installation for Microsoft Windows 95 =, 1. Plug adapter into one of the Master PCI slots of your PC. 2. Turn the PC power ON then boot from Windows 95. 3. Windows 95 will prompt "PCI Ethernet Controller" in "New Hardware Found" dialog box. 4. Select "Driver from disk provided by hardware manufacturer" from "New Hardware Found" dialog box, then click OK button. 5. Insert the Adapter Driver Diskette in your floppy drive. 6. Enter the driver pathname, i.e. A:\ (or B:\), then click OK button from "Install from Disk" dialog box. 7. Following the screen's prompt to insert "Windows 95 CD-ROM" and click OK button from "Insert Disk" dialog box. 8. Otherwise enter the full pathname of the "Windows 95 CD-ROM" installation files in "Copying Files..." dialog box, then click OK button. 9. Windows 95 will copy the driver from A:\WIN95 to C:\WINDOWS\SYSTEM directory and the NETRTS.INF file from A:\ to C:\WINDOWS\INF directory. 10. Remove the Adapter Driver Diskette from your floppy drive. 11. Restart your computer to take effect the network function. NOTICE !! C:\WINDOWS is the directory where your Windows 95 O.S. is located. B) Driver Installation for Microsoft Windows 95 OSR2 =1 1. Plug adapter into one of the Master PCI slots of your PC. 2. Turn the PC power ON then boot from Windows 95. 3. Windows 95 will prompt "PCI Ethernet Controller" in "New Hardware Found" dialog box and "Update Device Driver Wizard" dialog box. 4. Insert the Adapter Driver Diskette in your floppy drive. 5. Click "Next >" button from "Update Device Driver Wizard" dialog box. 6. Windows 95 will prompt "32-Bit PCI Fast Ethernet Adapter" in "Update Device Driver Wizard" dialog box. 7. Click "Finish" button from "Update Device Driver Wizard" dialog box. 8. Enter the full pathname A:\ of the NETRTS.INF file, then click OK button from "Copying Files..." dialog box. 9. Following the screen's prompt to insert "Windows 95 CD-ROM" and click OK button from "Insert Disk" dialog box. 10. Otherwise enter the full pathname of the "Windows 95 CD-ROM" installation files in "Copying Files..." dialog box, then click OK button. 11. Windows 95 will copy the driver from A:\WIN95 to C:\WINDOWS\SYSTEM directory and the NETRTS.INF file from A:\ to C:\WINDOWS\INF directory. 12. Remove the Adapter Driver Diskette from your floppy drive. 13. Restart your computer to take effect the network function. NOTICE !! C:\WINDOWS is the directory where your Windows 95 OSR2 O.S. is located. - All trademarks or brand names mentioned are properties of their respective companies. === End LANtastic configuration = Example - Protocol.ini [PROTMAN] Priority=NETBEUI DriverName = PROTMAN$ Dynamic = Yes [NETBEUI_XIF] DriverName = netbeui$ Sessions = 6 NCBS = 12 Bindings = RTSND_NIF LANABASE = 1 [RTSND_NIF] DriverName = RTSND$ - All trademarks or brand names mentioned are properties of their respective companies. .  NQ!)..  NQ!)RTL8139 SYS )ZNETRTS5 INF x)* NETRTS5 CAT U(-WIN98 TXT \' BMZ@# !L!This program cannot be run in DOS mode. $)­GGGFGTGAGRMGRichGPEL99  BD:T˺ D<JPX:T,:.text946 h.rdata::@H.data<<@PAGE>> `INITDD .rsrcJJ@B.relocPP@B0D$h_fǀ@P:fuE E ƆNf_t;Vf$Cf PF>P:EE  E E ^[] USVuWe Stt4V t tFj@P:$Vt,F>P:f_t&Ë$Cf PF>P:E ;ue } r;uVƆ_^[]Vt$W= :^F7PרuxHVf%Xf\POVt8} ^tp^F7Pרt{_^̋D$f\u"tX@w@r L2S\$UVXwmPWT);vt+͋ȃ󤋃DM_;ȋwыPuVRQRjQQSdƃ^LLL)fPC8P:PPTL);ʉr t+0L^H]3[UMUS]XVPWx;v;sE +ƒ}}QM$:E}ut E@EEPEPu :3vZU+;UvU}uU˃)Ut*;EuEEtMQMQP :3}w}u(:+}E 83_^[SVt$ WFP:tu(,mm:F Pt F$PFP_^[SVt$ WFP:tu(,mm:F$Pt F$PFP_^[SVt$ WFP:tu(,mm:F(Pt F$PFP_^[SVt$ WFP:tu(,mm:F,Pt F$PFP_^[UQSVuWEj=p:Pj Ev(6ׅu Ejl:Pjv(6Ӆt݊Ej$ EEPjv(N,6ׅtEjPjPv(6Ӆt}uIEjePjTv(6ׅtEjPjUv(6ӅqEjMPjUv(6ׅVEjPjUv(6Ӆ?<uM<ueEjPjUv(6%?_^[MAXMULTICASTEnvironmentSlotNumberEarlyTxThresholdChipOnCardbusDuplexModeWIN98APMTxMaxDMABurstRxMaxDMABurstEarlyRxThresholdTxInterFrameGapLinkUpWakeUpFramePMEEnableLDPSUWjYfEjfMXED u fEfEfEf|fvEfEPEPE` fEEx fE fE"EА fMfEE fEE fEfEE fMfEE fMfEE fE fE"E4 fEfE EX fE fEEx fDž~E fEfEE fDžtDžx :E3;$SVEWP5|:uEPEP9}]u E@EjPEuPEP9}u E@C(EWPEuPEP9}u E@CEWPEuPEP9}u/ExuEMjPjUƃs(Sp:ƃEWPEuPEP9}uExu ƃƃ|WPEuPEP9}uExu ƃƃEWPEuPEP9}uExuƃ9xuƃuEPEPEPx:}u9}uu{Hf5|:3EWPEuPEP֍EWPEuC$8PEP9}u%E8@;C$vK$9C$sC$EWPEuPEP9}u E@C { EWPEuC4PEP9}uE@;C4vK4EWPEuC0PEP9}uE@C09C4vC49{ t{86EWPEuC8@PEP9}uE@ ;C8vK8EWPEuC<PEP9}uE@;CP:f=t8Vt2FXP :P$E u- @;tTSSPQP|9 t:jV 0 @;t!SSPQP|9 tSV VFW=:>Pר t%FtPfF>j P:V2_^[]UE $UEDEHELEPET|EXqE\fE`[EdPEhEEl:Ep/Et$ExE|EE] "-8CSVt$ *kjt3UWD$.ǃSPVP6kGL$u_]Vt SPQ^[Vt$VV3V3V $(,048`djƆkƆlmnQ ^Vt$ VƆnưhV:^Vt$ 3ɋQQPV4^U$EM 3SEVWj;ȉUUU[ucO$(E<UuuEEE|E@XP :$%`D@BTEKEPF?E3E'EuHNPO@PM8;jR[EujExEVtU3ɁP @MED]E;w}tetOIt>It-Itt"EpN>E8>E40E$"E EpH}jfu t6t EEMPeEuF;|8~(t;u*jXɉEEȉM$UUU]ȉ]$ÉEju[U-E,E(E0 E@E;]vEE}ˋȋEEE_^[,;FFNZr-Cf- Q UM S33VWwFtmtAt/t BuuVMEƆ'uxEu uPEM3#uuV=p:j[9u8uE SPjUv(] 6׋t tuuE Se PjUv(69uƆEM33Mj3^u\Euэtʃ<$uP^3Z}u'M w UD@FjY9Mt M-EfPtMQ<;u MU M_^[]Vt$W=:<$Vt FTh$PR<&tN@f@ tN@f@(tN@f@!tN@f@VTh$V_3^Vt$VVTh$V:3^UlEEhPEPEuP:}tPUvGVEHIt&ItIu/u$Hu uuHuHuJu^3 ̋D$|x4jhP0:SVt$ Wx4SWjhP6:u 8<@ D(H0L8P@THXP\X``dhhplxpt|k"   (08@ H$P(X,`0h4p8x<@3_^[Vt$FCP :f$|<@tA<`t4P:F@0PV~_^[UVuWFP :$EFuNj=:P׋Fj7P_^]Vt$V ujjjh6\:2V ^UVuWF7P :E=:$PF7P׋Fu7P׋Fv@DP:tdžLP@T_^]W3҃9T$ v4SVD$j Xً3t HuB;T$r^[_%jt$T$ ȃL$  UQVuW34@v7 @S؍NtEPE PWE M0404Ku[_^UVuWFP :$EFuNj=:P׋Fj7P_2^]Vt$F`P:fh^̋D$p@@DP:2Vt$W=:FjP׋Fj P_2^SVt$ 33W3ɍ48@ r838@ rF=:RP׋FS P_^2[U} VWsWu=:S3ۋFSpP׃~u } uE E F|PuhCr[0}5:j GpP֋GhxxP֋GhC8˃|P_^] SUVWj]UW:t$FtP t;HtMHHtDu8UjV"UWFtPf=ptUjVUWjUjV_^][UjUUSVt$ W=:Ftu2jh+FtPtFhtP:V/4:Vh<*6PӃ~u'FUbP׋FfPf]t f%f=tP_^]UVuWfFtuVF=:bPu,VFhbP:hV:bFjPרuUFHt%HtHtHt Hu ! 3 EPFbP:V{jjV}_^]̋D$Hv*t!tt u(hh jA j!h@fP:Vt$ FXP :uFj >P:V;p2p psj2V:VdžP @^Vt$ WtFj >P:VIFdP: t"ƆW`hV:`j2P:2^Vt$VFWbhPƆV:`j2V:^UVu W=:FdP׋FjP׋=:u?FHt%HtHtHt Hu ! 3 E PFbP׋Fj >P_^]D$j23YvVj2:Nu^UQVuWV;E <EudSEj=l:PjPv(6Ep:tE je PjTv(6ӍEjPjUv(6׍EjMPjUv(6VV[F=:PhP׋FYP : EFuYP׋FjPP_^USVuW} :ee hM ŌMEG ljEFPPӋFZP :$EFuZPӋFjPPӋGHUM< Cu| AtʃuE B;ЉUrf| t_BjY+ȋE D8ʱ*ʋUȋE L8u;Gs d9A;OrGH;Gsd8@OW Ge e ejHZ;ʉUU}si;ЊD:E u L: JM E }u$FMu EP:e e EUGBUH;r} uFMu EP:W @Uvj@ZUMeE v{}ME "} u EE e tOEMUL E$x2Š2ŠU ‹UEz9}t2Ȋx2ʋU ȈME9UrFuEPӋEMD PFEPӊ<s0FP:r_^[UVuWFjP:rFP :$EFuP:_^]QQSUVt$Wj[jFP:KuF=:PhP׋F :YP$߈D$Ft$YP׋FjPP׋FP$D$Ft$P׋D$ $<u5FhPP׋FYP D$Ft$YP׋FjPP׋D$ $<uX0D$D$ D$D$ 0D$FP:D$ D$L$u܋FP D$Ft$P_^][YYD$ǀUS39]VWvf}u uEu#p wj6WHDHDC;]rE HD_^[] D$``uT$dT$dV1V ^p̋L$`t);ddu "` P `pVt$WW$:t$VkW(:V _^ Vt$`tkvVuPV߀lv,m:ntV-m$lmu^USVuWl}^TVh$S:jt6Ht$HtHu:fh+fh@f2h fhftOjPljklP @ju<KV_^2[]US]VWPE$:u EtFEEt[~uO~3;E EEt(EPEPW:EWE :E?Eu؋EFFE FEFE}ujVSu(:8n$k6E 4EDE 8EHE <ELh E @EPKE DET.E HEXE LE\`E PE dE TE$hE XE(lE \E,pE `Ef0tE dEL4xE hE28|E lE<E pEE5 :PEPuփ}t}uE8EPEPW}օuMu}ȃEEE0ut1= :EPEPV׃}u6utEPEPVuu(:jP:lv,m:ntSbm$lmu_^[A3^3{33333 4)4F4c444444̋D$m$7DHLPTX\ |`nd`hRlDp 6t$(x(|, 0mt!ItIt Iu(Ph Ph> PhPhZTP:6666 77-7;7I7W7e7s77777FEEEEE F^FpFDFFFFFFG2GJG^GpGGGGGGH"H@H^HxHHHHHHI"IBI`IxIII 99T99U99FYRealtek rtl8139A WOL ndis5 driver POWERM Realtek 8139-series PCI NIC 6w       <USV339uWvM91t @;Er;Eu rM hRTLmSEPh:;P}3uEMǀ@ EEǀDu5t E(Q$QHQHQHQHQp(u7;t[uO;uMEjjVP0d:u0EVjjHQQ0TP`:;t&EVh0\: VSuX:hMWqA1PT:hj jPE0P:E3($RQ0,PL:uuuJu\uuuHuEjh0\: uEj@7P:E(,0H:E0D:EHQWQ0@:ETP<:jSuX:2uEhhP08:EPh0P4:3_^[]QQSUVt$WVV=:- :ukFPՋ:D$FPӉD$FPӻD$FPՀ|$u|$u |$uP:FhPP׋FZPՈD$<ud$<uL$Ft$ZP׋FYPՈD$<uL$<ud$Ft$YP׋FjPPVV-_^][YYVt$W=:v׈FNFOFPFQFP׋28VHFRNSu78VIu28VJu-8VKu(8VLu#8VMuVNFLVHVOVIVPVJVQVKNM_^bU`S3SE u uP0:E Mj`QP<<E]EE"EEEE>EBE]ÈE1EԀEZE0]܉]]]]]]],:[%D 0 H`J<<4VS_VERSION_INFOz$? StringFileInfox040904B0RCompanyNameRealtek Semiconductor Corporation RFileDescriptionNDIS 5.0 driver @FileVersion5.378.0804.2000: InternalNameRTL8139.SYS rLegalCopyright1994-1999, Realtek Semiconductor Corp. All Rights Reserved.B OriginalFilenameRTL8139.SYS RProductNameRealtek RTL8139(A/B/C/8130) Based Fast Ethernet Adapter DProductVersion5.378.0804.2000DVarFileInfo$Translation h`424]44515]5577718E8j888 9N9|9993:Z:< ==-=>=K=^=o=========>>b?|?11222%3J3U3g3u333?4h44U5Y5]5a5e5i5m5q5u5y5}55555567-7~77(:,:0:4:8:<:@:D:H:L:P:T:X:\:`:d:h:l:p:t:x:|:4;f>>>>>??01(111222!3=35a55566)6k6o6s6w6{6666666666666777777788 8 88888!8%8)8-81858D>>??-?L?k???@L010<0M0Z0f0z0000000O11*24%4+494@4G4N4U4\4c4j4t4{44444objfre\i386\RTL8139.sys"" B Ә87pZ!Zqq> q q" " Ӿ _$ IhҀ|Жj-" Ӏ^y!~(xe'  Cb  ӌ"@"5#or#K#+#Z D$B҆$$$)$]H% %f&8''(K)l)s)><*zҶ*!* Ӥ+ x.X.400z Ӑ0=0:14<1_1 |2/ Ӭ6> Ө@z"B}DNB109C:\NTDDK\src\network\ndis\378\objfre\i386\RTL8139.pdb goto end :nostartup echo ** WARNING ** STARTNET.BAT file not found. echo ** Network functions not performed --- All trademarks or brand names mentioned are properties of their respective companies. {|}~ mLH;*M ;* NETRTS5.INF ;*M [version] Signature = "$Chicago$" Compatible = 1 Class = Net ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} Provider = %Generic% !;; for WHQL certified ;CatalogFile = netrts5.cat ;; for WHQL certified DriverVer = 08/04/2000,5.378.0804.2000 [Manufacturer] %Generic% = Generic [ControlFlags] ExcludeFromSelect = PCI\VEN_10EC&DEV_8139, \ PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC [Generic] %RTL8139.DeviceDesc% = RTL8139.ndi, PCI\VEN_10EC&DEV_8139 %RTL8139.DeviceDesc% = RTL8139.ndi, PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC ;;*L ;; Windows 9x ;;*L [rtl8139.ndi] DriverVer = 8/04/2000,378 AddReg = rtl8139.id.reg, RTL8139.common.reg, RTL8139.win.reg, RTL8139.oncbs.reg CopyFiles = RTL8139.CopyFiles98 ;;*L ;; NT 5.0 ;;*L [RTL8139.ndi.NT] AddReg = RTL8139.common.reg, RTL8139.reg, RTL8139.oncbs.reg Characteristics = 0x84 BusType = 5 CopyFiles = RTL8139.CopyFiles [RTL8139.ndi.NT.Services] AddService = rtl8139, 2, rtsnt.Service, RTL8139.EventLog [RTL8139.CopyFiles] RTL8139.sys,,,2 [RTL8139.CopyFiles98] RTL8139.sys,,,2 ;;-L ;; RTL8139 Parameters ;;-L ;;*L ;; Windows 9x parameters ;;*L [rtl8139.id.reg] HKR, Ndi, DeviceID, 0, "PCI\VEN_10EC&DEV_8139" HKR, Ndi\Install, , 0, rtsnt.install HKR, NDI\Params\DuplexMode, flag, 1, 30, 00, 00, 00 HKR, Ndi\Params\EarlyTxThreshold, flag, 1, 20, 00, 00, 00 HKR, NDI\Params\NetworkAddress, flag, 1, 30, 00, 00, 00 HKR, NDI\Params\WakeUpFrame, flag, 1, 30, 00, 00, 00 [RTL8139.win.reg] ;; key,subkey,valuname,type,value HKR, , DriverDesc, 0, "32-Bit PCI Fast Ethernet Adapter" HKR, , DevLoader, 0, *ndis HKR, , DeviceVxDs, 0, rtl8139.sys HKR, , EnumPropPages, 0, netdi.dll, EnumPropPages ;;params HKR, , MediaType, 0, 1 HKR, , AdapterType, 0, 5 HKR, , BusType, 0, 5 ;; NDIS Info HKR, NDIS, MajorNdisVersion, 1, 03 HKR, NDIS, MinorNdisVersion, 1, 0a HKR, NDIS, LogDriverName, 0, "RTL8139" ;; Interfaces HKR, Ndi\Interfaces, DefLower, , "ethernet" HKR, Ndi\Interfaces, LowerRange, , "ethernet" HKR, Ndi\Interfaces, DefUpper, , "ndis3" HKR, Ndi\Interfaces, UpperRange, , "ndis3" ;; Install sections ;HKR, Ndi\Install, ndis3, 0, "rtl139.ndis5" ;;*L ;; RTL8139 common parameters ;;*L [RTL8139.oncbs.reg] HKR,,ChipOnCardbus,,"0" [RTL8139.common.reg] HKR, Ndi\params\DuplexMode, ParamDesc, 0, %DuplexMode% HKR, Ndi\params\DuplexMode, type, 0, "enum" HKR, Ndi\params\DuplexMode, default, 0, "1" HKR, Ndi\params\DuplexMode\enum, 1, 0, %dmAutoMode% HKR, Ndi\params\DuplexMode\enum, 2, 0, %dm10HalfMode% HKR, Ndi\params\DuplexMode\enum, 3, 0, %dm10FullMode% HKR, Ndi\params\DuplexMode\enum, 4, 0, %dm100HalfMode% HKR, Ndi\params\DuplexMode\enum, 5, 0, %dm100FullMode% HKR,Ndi\Params\EarlyTxThreshold, ParamDesc, 0, %EarlyTxThreshold% HKR,Ndi\Params\EarlyTxThreshold, Type, 0, "int" HKR,Ndi\Params\EarlyTxThreshold, Default, 0, "38" HKR,Ndi\Params\EarlyTxThreshold, Min, 0, "0" HKR,Ndi\Params\EarlyTxThreshold, Max, 0, "63" HKR,Ndi\Params\EarlyTxThreshold, Step, 0, "1" HKR,Ndi\Params\EarlyTxThreshold, Base, 0, "10" HKR,Ndi\params\NetworkAddress, ParamDesc, 0, %NetworkAddress% HKR,Ndi\params\NetworkAddress, type, 0, "edit" HKR,Ndi\params\NetworkAddress, default, 0, "0 " HKR,Ndi\params\NetworkAddress, LimitText, 0, "12" HKR,Ndi\params\NetworkAddress, UpperCase, 0, "1" HKR,Ndi\params\NetworkAddress, Optional, 0, "1" HKR, Ndi\params\WakeUpFrame, ParamDesc, 0, "WakeUp Frame" HKR, Ndi\params\WakeUpFrame, default, 0, "0" HKR, Ndi\params\WakeUpFrame, type, 0, "enum" HKR, Ndi\params\WakeUpFrame\enum, "0", 0, "Enable" HKR, Ndi\params\WakeUpFrame\enum, "1", 0, "Disable" HKR, Ndi\params\PME, ParamDesc, 0, "APM Mode WakeUp" HKR, Ndi\params\PME, default, 0, "1" HKR, Ndi\params\PME, type, 0, "enum" HKR, Ndi\params\PME\enum, "0", 0, "Enable" HKR, Ndi\params\PME\enum, "1", 0, "Disable" HKR, Ndi\params\EnableLDPS, ParamDesc, 0, "Link Down Power Saving" HKR, Ndi\params\EnableLDPS, default, 0, "0" HKR, Ndi\params\EnableLDPS, type, 0, "enum" HKR, Ndi\params\EnableLDPS\enum, "0", 0, "Disable" HKR, Ndi\params\EnableLDPS\enum, "1", 0, "Enable" ;;*L ;; NT 5.0 parameters ;;*L [RTL8139.reg] HKR, Ndi\Interfaces, UpperRange, 0, "ndis5" HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" HKR, Ndi, Service, 0, "RTL8139" [rtsnt.Service] DisplayName = %RTL8139.Service.DispName% ServiceType = 1 ; %SERVICE_KERNEL_DRIVER% StartType = 3 ; %SERVICE_DEMAND_START% ErrorControl = 1 ; %SERVICE_ERROR_NORMAL% ServiceBinary = %12%\RTL8139.SYS LoadOrderGroup = NDIS [RTL8139.EventLog] Addreg = RTL8139.AddEventLog.reg [RTL8139.AddEventLog.reg] HKR, , EventMessageFile, 0x00020, "%%SystemRoot%%\System32\netevent.dll" HKR, , TypesSupported, 0x00010001, 7 ;;*L ;; Destination Directory ;;*L [DestinationDirs] RTL8139.CopyFiles = 12 RTL8139.CopyFiles98 = 11 DefaultDestDir = 11 ; LDID_SYS ;;*L ;; Source Files ;;*L [SourceDisksNames] 1=%DISKNAME%,,, [SourceDisksFiles] rtl8139.sys = 1 ;netrts5.cat = 1 ;;*L ;; Strings ;;*L [Strings] Generic = "Generic" ;;Source disk name DISKNAME = "32-Bit PCI Fast Ethernet Driver Diskette" NetworkAddress = "Network Address" EarlyTxThreshold = "Early Tx Threshold" DuplexMode = "Link Speed/Duplex Mode" dmAutoMode = "Auto Mode" dm10HalfMode = "10 Half Mode" dm10FullMode = "10 Full Mode" dm100HalfMode = "100 Half Mode" dm100FullMode = "100 Full Mode" RTL8139.DeviceDesc = "32-Bit PCI Fast Ethernet Adapter" RTL8139.Service.DispName = "32-Bit PCI Fast Ethernet Adapter NT Driver"   n$)}RTL8139 SYS ) RTSNTHLPHLP R#%"WINNT TXT &NT351  n$)lDThis catalog file is provided by Microsoft. 697;8=9A:C<I=J>KDLEMFNGOHPLSMWNZO\P_QcRfSiTkUoVqWtXvYz[}^_`abcdefghijlmnotuvm JB b3*Kjc08|94l%H"NB00?$&*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * NDIS/5 Driver for Windows 98 * * K* *M Contents: - A) Installing NDIS5 Miniport driver on Microsoft Windows 98 B) Configuring NDIS5 Miniport driver on Microsoft Windows 98 A) Installing NDIS5 Miniport driver on Microsoft Windows 98 =? 1. Plug adapter into one of the Master PCI slots of your PC. 2. Turn the PC power ON then boot from Windows 98. 3. Windows 98 will prompt "PCI Ethernet Controller" in "New Hardware Found" dialog box and "Add New Hardware Wizard" dialog box. 4. Click "Next >" button when "Search for the best for your device. [Recommended]" is on. 5. Insert the Adapter Driver Diskette in your floppy drive. 6. Disable the "Floppy disk drives" check box. Click "Specify a location" and type "A:\WIN98", then click "Next >" button. 7. Windows 98 will prompt "32-Bit PCI Fast Ethernet Adapter" in "Add New Hardware Wizard" dialog box. 8. Click "Next >" button and Windows starts to copy files from Windows 98 CD-ROM to your hard disk. 9. Click "Finish" button from "Add New Hardware Wizard" dialog box. 10. Remove the Adapter Driver Diskette from your floppy drive. 11. Restart your computer to take effect the network function. B) Configuring NDIS5 Miniport driver on Microsoft Windows 98 =: 1. Click the "My Computer" icon in the Main Program Group. 2. Click the "Control Panel" icon from My Computer window. 3. Click the "Network" icon from the Control Panel window. 4. Select "32-Bit PCI Fast Ethernet Adapter" item from "Network" dialog box, then click "Properties" button. 5. Click "Advanced" button from "32-Bit PCI Fast Ethernet Adapter Properties" dialog box. 6. Select the Line Speed/Duplex Mode (Auto,100 full,100 half,10 full, 10half) from "Value" item, then click OK button in the "32-Bit PCI Fast Ethernet Adapter Properties" dialog box. 7. Click OK button from "Network" dialog box. 8. Restart your computer to take effect the new configuration. - All trademarks or brand names mentioned are properties of their respective companies. 91  l$KVT86100  n$MXIC  v$EN1207B  |$WUE1211  $UE1219  $7 UE1207C  ${!EN1207E  $4".  SQ!)..  SQ!)RTL8139 SYS )RTSNTHLPHLP R#%""WINNT TXT &4NT351  WQ!)<DMZ@# !L!This program cannot be run in DOS mode. $PELK~9 d  T RJd R<Z`xT,.text)DF h.dataJJ@PAGELL `INITRR .rsrcZZ@B.reloc``@B TSSSSSTfTT@TTTTTTU8UTUrUUUUUU VV4VRVpVVVVVVVW8WNW^W~WWWWWWK~9dK~9K~9PRealtek rtl8139A WOL ndis5 driver POWERM Realtek 8139-series PCI NIC 6D$h_fǀ@PfuE E ƆNf_t;Vf$Cf ؋F>SPEE  E E ^[] USVuWeStt4V t tFj@P$V:F>Pf_t&Ë$Cf ȋF>QPE;ue}r;uVƆf_^[]Vt$W= ^F7PרuxHVf%Xf\POVt8} ^t(^F7PרtK{_^̋D$f\u"tX@w@r L2S\$UVXWwgPT (;vt+ϋȃ󤋃DM;vȋPURQHQjPPS ƃ^LLL fPC8PPPTL ;ʉr t+0L_^H]3[UMUS]XVPWx;v;sE +ƒ}}QM0E}ut E@EEPEPu,3vZU+;UvU}uU˃)Ut*;EuEEtMQMQP,3}w}u$+}E 83_^[SVt$ WFPtu(,mmF Pt F$PFP_^[SVt$ WFPtu(,mmF$Pt F$PFP_^[SVt$ WFPtu(,mmF(Pt F$PFP_^[SVt$ WFPtu(,mmF,Pt F$PFP_^[UQSVuWEj=pPj Ev(6ׅEjlPjv(6ӅtEj$ EEPjv(N,6ׅtZEjPjPv(6ӅtG}uHEjePjTv(6ׅt*EjPjUv(6ӅtEjMPjUv(6ׅu3_^[MAXMULTICASTEnvironmentSlotNumberEarlyTxThresholdChipOnCardbusDuplexModeTxMaxDMABurstRxMaxDMABurstEarlyRxThresholdTxInterFrameGapLinkUpWakeUpFramePMEEnableLDPSUWjYfEjfMXE u fEfEfEfEfEEfEPE PE fEE fE fE"E fMfEE fEE fMfEE8 fMfEET fE fE"Ep fEfE E fE fEEԴ fEE fEfEE fEE E 3;VSEWP5|uEPE P9} ]u E@EjPEuPE P9} u E@C(EWPEuPE P9} u E@CEWPEuPE P9} uExu ƃƃEWPEuPE P9} uExu ƃƃEWPEuPE P$9} uExuƃ9xuƃuEPEPE Px}u9} uu{Hf5|3EWPEuPE P֍EWPEuC$8PE P9} u%E8@;C$vK$9C$sC$EWPEuPE P9} u E@C { EWPEuC4PE P9} uE@;C4vK4EWPEuC0PE P9} uE@C09C4vC49{ t{86EWPEuC8@PE P9} uE@ ;C8vK8EWPEuC<PE P9} uE@;CPf=8VFXP Pu, @;tRSSPP69t9jV4 / @;t SSPP69tSV V+F=>Pר t%FtPfF>j PV_^2[UE $OEDEHELEPET|EXqE\fE`[EdPEhEEl:Ep/Et$ExE|EE]'2=SUVt$W*kjt/D$.ǃSPVP6kGL$uV)t SPQ_^][Vt$VVO V3V $(,048`djƆkƆlmnm ^Vt$ VƆnưhV^Vt$ 3ɋQQPV^UUEM SVW3j:8};ȉ}}[unZ$`EJ}uuEEEE@XP $U%`D@BEE}EPFqEeEYEHNpO@P΍uM/PjR"EujExEVt}3ɁP @MED]E ;w?t2tItIt$IuIE8qE$fE [E4PtUItJIIt8t%ItIt EIE,E(E0 E@EEpHEpN}jfu[}u-;]vEE}ˋȋEE_^[&5@@HTlH`VUM S]V33WtxItPtsMj3_u^Euэtʃ<$uP33a}u'M w UDCPF@0PV_^[Vt$WFP $PFNj=P׋Fj7P_^Vt$Vujjjh6X2V^UVuWF7P E=$PF7P׋Fu7P׋Fv@DPtdžLP@T_^]W3҃9T$ v4VSD$j Xً3t HuB;T$r[^_%jt$T$ ȃL$  UQVuW34@v7 @S؍NtEPEPWEM44Ku[_^Vt$WFP $PFNj=P׋Fj7P_2^Vt$F`Pfh^̋D$p@@DP2Vt$W=FjP׋Fj P_2^UQSVuW3j }3ɍ4Z@;r8J]@@rFW=P׋Fu P_^2[U} VWsWu=S3ۋFSpP׃~u } uE E F|PuhCr[0}5j GpP֋GhxxP֋GhC8˃|P_^] SUVWj]UWt$FtP t;HtMHHtDu8UjV"UWFtPf=ptUjVUWjUjV_^][UjUUSUVt$W=Ftu2jh*FtPtFhtPV.<VhT)6PӃ~u%FbP׋FfPft f%f=tP_^]UVuWfFtuVF=bPu,VFhbPhVbFjPרuUFHt%HtHtHt Hu ! 3 EPFbPVwjjV}_^]̋D$Hv*t!tt u(hh jA j!h@fPVt$ FXP uFj >PV;p2p psj2VVdžP @^Vt$ WtFj >PVIFdP t"ƆW`hV`j2P2^Vt$VFWbhPƆV`j2V^UVu W=FdP׋FjP׋=u?FHt%HtHtHt Hu ! 3 E PFbP׋Fj >P_^]D$j23YvVj2Nu^UEM Vu M  Ph  V M^]UEM Vu M  Ph  VM^f]UEM Vu M  Ph  VM^]UEM Vu M  Ph u V^]UEM Vu M  Ph u V^]UEM Vu WM = Ph u V_^]U eSe3ۍEPjSuuE;Et$CfrEf} rEf}rf3[M EUuM UjPuueuEj>Puumj F WE EFEEjPuuEWjPuu)E=L=L=L=L=L=L=L=L=L=L=2h=6ht}=tv=to=Lu$e } 0}}1=ut=vt=xt=y t=yu!e } 0x} E$<ee(} 0W}(MfGU4EeEEPEPEPhfr WVES]PEjPuuEPEj>PuuEEԋE%=LuEhhPuuEh@j PuuUEؿv;Ǿ2hy w =u];w t=xP;wAt}=yHEPEjPuuEPjuuuEPEjPuuoEPjuuuYEPEjPuu@EjjPuu}jEVjPuu EVj PuuEjj PuuEVj>PuuEjjPuuj)EVj>PuuEVj>Puuu EVj,PuuEVj0PuuEjjPuuEWjPuuEWj PuujE=vw tv=uoy ;w t=x];wtR=yuKhW2h;w t9=2L;wt'=6ht =Lt=LuL;wt=Lf}thhEj>PuuEWjDPuu]5eE PWjhjE PW֋E=LtM=LtF=Lt?=Lt8=Lt1=Lt*=Lt#=Lt=Lt=ut)=vt"=xtE3f9}t @ PPh3jEjjPuujEWj>PuuoEPEPEPhfEPj`uuu@}uuj`uuu#EPjauuu}uujauuuEPjbuuu}uujbuuuEPjcuuu}uujcuuu}yuEWjDPuu#jEPEjPuuejjWWuE @PjWWuhj WWu1ujuuuu Vj,u ]uuRPj0uuu;hj>uuu}WjPlv,m:ntSbm$lmu_^[!C>C[CxCCCCC D&DCD`DzDDDD̋D$m$GDHLPTX\ |`nd`hRlDp 6t$(x(|, 0mt!ItIt Iu(PhN Ph Phj Ph TPFFFFF GG+G9GGGUGcGqGGGG       <,US339]VWvM9t @;Er;Eu RM 5JE5JSVPh;(}3uEMǀ@ EEǀDuitSVudE E9X tu uP(HQHQHQHQp(0M;uZuɾ;uLEjjP0`u诸ESjjHQQ0TP\;t&ESh0X SVud%MWqA1PT;ÉEEhj jS0P;ÉEuu;ÉEuGu/uuu-u!umESh0X EuES@7PE0LEHQWQ0HETPDSVudE2uEh6P0@EPh0P<3_^[]QQSUVt$WVV=- ukFPՋD$FPӉD$FPӻD$FPՀ|$u|$u |$uPFhPP׋FZPՈD$<ud$<uL$Ft$ZP׋FYPՈD$<uL$<ud$Ft$YP׋FjPPV豵Vc_^][YYVt$W=v׈FNFOFPFQFP׈FR28NHFSu:8NIu58NJu08NKu+8NLu&8NMu!NNFMNHNONINPNJNQNKNRNL_^UHS3SE u uP8E MjHQPJJE]E~EEȢETEvELEE]EzE@EEE*?]]4[%R 8T S X  TSSSSSTfTT@TTTTTTU8UTUrUUUUUU VV4VRVpVVVVVVVW8WNW^W~WWWWWWYWRITE_PORT_USHORTSREAD_PORT_USHORTWWRITE_PORT_UCHARQREAD_PORT_UCHARXWRITE_PORT_ULONGRREAD_PORT_ULONGIKeStallExecutionProcessorHAL.dllEthFilterDprIndicateReceiveCompleteEthFilterDprIndicateReceivefNdisDprReleaseSpinLockNdisQueryBufferaNdisDprAcquireSpinLockNdisMRegisterMiniportNdisInitializeWrapperNdisMInitializeTimerNdisMRegisterAdapterShutdownHandlerNdisMDeregisterInterruptNdisMDeregisterIoPortRangeNdisMFreeMapRegistersNdisMAllocateMapRegistersNdisMRegisterIoPortRangeNdisWriteErrorLogEntryNdisMRegisterInterruptNdisMSetAttributeslNdisFreeMemory*NdisAllocateMemoryNdisReadPciSlotInformationNdisWritePciSlotInformation;NdisCloseConfigurationNdisReadNetworkAddressNdisReadConfigurationNdisOpenConfigurationNdisMUnmapIoSpacepNdisFreeSpinLockNdisMCancelTimerNdisMDeregisterAdapterShutdownHandlerNdisMIndicateStatusNdisSetTimerNdisMSynchronizeWithInterruptNdisMPciAssignResourcesNdisMFreeSharedMemoryNdisMAllocateSharedMemoryNdisMMapIoSpace$NDIS_BUFFER_TO_SPAN_PAGESNdiszQueryBufferOffsetNDIS.SYS>~9>~90>~9 H`Z<<4VS_VERSION_INFOz$e? StringFileInfox040904B0RCompanyNameRealtek Semiconductor Corporation RFileDescriptionNDIS 4.0 driver @FileVersion5.378.0804.2000: InternalNameRTL8139.SYS rLegalCopyright1994-1999, Realtek Semiconductor Corp. All Rights Reserved.B OriginalFilenameRTL8139.SYS RProductNameRealtek RTL8139(A/B/C/8130) Based Fast Ethernet Adapter DProductVersion5.378.0804.2000DVarFileInfo$Translation h\555Q6666B7788S9z999:6:z:::;^;;;;>C>P>c>t>>>>>>>>> ??)?30M01233333$4I4T4f4t44445:5c55O6S6W6[6_6c6g6k6o6s6w6{6666678'8x88`:d:h:l:p:t:x:|:::::::::::::::;;<$<+ ?0?K?r??? | 0.01112)222Z2m3{3333A4p44 555556.6a6g6x666F7i7{77.8D8W888889=9L9^9v99%:5:y::::!;4;s;;;0 6u;;;G<$>7>J>]>c>z>?@+0<0p0w011t222334J5q5555 66[6_6c6g6k6o6s6w6{6666666667777777777788 8 88888!8%8:>->:>E>Z>c>l>z>>>>/?j?P, 02%2+292@2G2N2U2\2c2j2t2{22222  XJJ$SG2815=$SG2812=$SG2809=$SG2806=PJ$SG2601 $SG2598 $SG2595 $SG2592 $SG2589 $SG2586p $SG2583T $SG25808 $SG2574 $SG2571 $SG2568 $SG2565 $SG2562 $SG2556 .rsrc$02`Z.idata$68T.idata$6XheaderP 5 j '$(G,a048<@YD{HLP@TcX\`dhl:p`tx| (Nh U    ! b   - H Wv q:      j    N       6 ,T ;~ Rv j a qz      6 ) C    L  8 |  B! ! " 2 " D "  # Z#  #  # : # } #  `$  $ ~% $ P& ' 4 ' J 6( k (  )  T) )  )  D*  *  *  >+ * + ; + O Z, b ,  6/  8  h;  |; \<  > *? _Enque@8? _Deque@4? @ P@ |A ; \B Q F JrJaJL N P R  RRQRendd9_DriverEntry@8_RTFast_EnableInterrupt@4_RTFast_DisableInterrupt@4_RTFast_Isr@12_RTFast_HandleInterrupt@4_RTFast_RcvDpc@4_RTFast_PacketOK@4_RTFast_IndicatePacket@4_RTFast_TransferData@24_SyncCardStartXmit0@4_SyncCardStartXmit1@4_SyncCardStartXmit2@4_SyncCardStartXmit3@4_NwayedForceMediumType__imp__WRITE_PORT_USHORT@8__imp__READ_PORT_USHORT@4_CleanupSendedPackets@4_RTFast_TxDpc@4__imp__WRITE_PORT_UCHAR@8_CardResetRx@4__imp__EthFilterDprIndicateReceiveComplete@4__imp__READ_PORT_UCHAR@4__imp__EthFilterDprIndicateReceive@32__imp__NdisDprReleaseSpinLock@4__imp__NdisQueryBuffer@12__imp__NdisDprAcquireSpinLock@4__imp__WRITE_PORT_ULONG@8__imp__READ_PORT_ULONG@4_RTF8Log@4_RTFast_Initialize@24_SetupPCIConfiguration@4_ReadRegistry@8_InitSoftwareVariable@4_RTFast_Shutdown@4_RTFast_Halt@4_RTFast_CheckForHang@4_GetTxPacket@8_ResetAdapter@4_RTFast_Reset@8_ResetCheckingTimerProc@16_RTFast_QueryInformation@24_RTFast_SetInformation@24_DispatchSetPacketFilter@4_DispatchSetMulticastAddressList@4_FindPciConfiguration@24_RTFastFreeSharedMemory@4_RTFastAllocateSharedMemory@4_InitialCardTest_RTFast_MiniportBlock_HighestAcceptableMax__imp__NdisMRegisterMiniport@12_RTFast_Sends@12_RTFast_Send@12__imp__NdisInitializeWrapper@16__imp__NdisMInitializeTimer@16__imp__NdisMRegisterAdapterShutdownHandler@12_CardStart@4__imp__NdisMDeregisterInterrupt@4__imp__NdisMDeregisterIoPortRange@16__imp__NdisMFreeMapRegisters@4_CardSetup@4_CardReadEthernetAddress@4_SetupLink@4_CardInitialize@4_CardGetChipVersion@4__imp__NdisMAllocateMapRegisters@20__imp__NdisMRegisterIoPortRange@16__imp__NdisWriteErrorLogEntry__imp__NdisMRegisterInterrupt@28__imp__NdisMSetAttributes@16_GetPCIConfigurationOnCardbus@8__imp__NdisFreeMemory@12__imp__NdisAllocateMemory@20__imp__NdisReadPciSlotInformation@20__imp__NdisWritePciSlotInformation@20__imp__NdisCloseConfiguration@4__imp__NdisReadNetworkAddress@16__imp__NdisReadConfiguration@20__imp__NdisOpenConfiguration@12_SetLDPS@8_RTFast_Delay@8_SyncCardStop@4__imp__NdisMUnmapIoSpace@12__imp__NdisFreeSpinLock@4_CardStop@4__imp__NdisMCancelTimer@8__imp__NdisMDeregisterAdapterShutdownHandler@4_CardWriteEthernetAddress@4_RTFast_DoNextSend@4_ProcessLinkChange@4__imp__NdisMIndicateStatus@16_CardReset@4__imp__NdisSetTimer@8_SyncCardSetReceiveConfig@4_SyncCardSetAllMulticast@4__imp__NdisMSynchronizeWithInterrupt@12_SyncCardCopyMulticastRegs@4_CardFillMulticastRegs@4__imp__NdisMPciAssignResources@12__imp__NdisMFreeSharedMemory@24__imp__NdisMAllocateSharedMemory@20_CardInitACPIRegisters@4_CardComputeCrc@8_CardGetMulticastBit@12_SyncCardGetISR@4_SyncCardClearISR@4_SyncCardClearIMR@4_SyncCardReadTSAD@4_SyncCardAcknowledgeOverflow@4_SyncCardUpdateCounters@4_SyncCardHandleOverflow@4_Rtl8139set_param@12_WriteLinkParam@4_Setup2ndNway@4_WriteOurCapability@4_InitialNwayCheckingTimerProc@16_NwayCheckingTimerProc@16_RestartNway@4_LinkChangeReNwayTimerProc@16__imp__KeStallExecutionProcessor@4_pci_get_byte@20_pci_get_word@20_pci_get_long@20_pci_set_byte@20_pci_set_word@20_pci_set_long@20_pci_find_device@20_pci_find_class@16_pci_find_socket@12_pci_close_socket@12_pci_open_pcb@20_pci_halfopen_pcb@12_delay_tick@4_ReadPciSlotInformation@24_WritePciSlotInformation@24_EnableCardbus@4_ReadIOIrqConfiguration@8__imp__NdisMMapIoSpace@20_CardCopyDownPacket@8_CardStartXmit@4__imp__NDIS_BUFFER_TO_SPAN_PAGES@4__imp__NdisQueryBufferOffset@12_WRITE_PORT_USHORT@8__IMPORT_DESCRIPTOR_HAL_READ_PORT_USHORT@4_WRITE_PORT_UCHAR@8_READ_PORT_UCHAR@4_WRITE_PORT_ULONG@8_READ_PORT_ULONG@4_KeStallExecutionProcessor@4__NULL_IMPORT_DESCRIPTORHAL_NULL_THUNK_DATA_EthFilterDprIndicateReceiveComplete@4__IMPORT_DESCRIPTOR_NDIS_EthFilterDprIndicateReceive@32_NdisDprReleaseSpinLock@4_NdisQueryBuffer@12_NdisDprAcquireSpinLock@4_NdisMRegisterMiniport@12_NdisInitializeWrapper@16_NdisMInitializeTimer@16_NdisMRegisterAdapterShutdownHandler@12_NdisMDeregisterInterrupt@4_NdisMDeregisterIoPortRange@16_NdisMFreeMapRegisters@4_NdisMAllocateMapRegisters@20_NdisMRegisterIoPortRange@16_NdisWriteErrorLogEntry_NdisMRegisterInterrupt@28_NdisMSetAttributes@16_NdisFreeMemory@12_NdisAllocateMemory@20_NdisReadPciSlotInformation@20_NdisWritePciSlotInformation@20_NdisCloseConfiguration@4_NdisReadNetworkAddress@16_NdisReadConfiguration@20_NdisOpenConfiguration@12_NdisMUnmapIoSpace@12_NdisFreeSpinLock@4_NdisMCancelTimer@8_NdisMDeregisterAdapterShutdownHandler@4_NdisMIndicateStatus@16_NdisSetTimer@8_NdisMSynchronizeWithInterrupt@12_NdisMPciAssignResources@12_NdisMFreeSharedMemory@24_NdisMAllocateSharedMemory@20_NdisMMapIoSpace@20_NDIS_BUFFER_TO_SPAN_PAGES@4_NdisQueryBufferOffset@12NDIS_NULL_THUNK_DATA_BlankBuffer$S2375_?VendorDescription@?1??RTFast_QueryInformation@@9@9$S2748_?test@?1??DriverEntry@@9@9$S2494_RTFast_SupportedOids$S2475C:\DDK\lib\i386\free\RTL8139.sys" v :7! qj q qN q  ! I6T* ~vАjz-"ӸӚy!6aҘ(e' 8C|Ӫ!8!5"o҈"K"+#Z Z#:###)#h `$ $~%P&''K6(l(s)>T)z)!)SD*Tј*S*Q>+Qѐ+Q+w Z,n ,n 6/ 8 h;|; \<.>' *?z Ӥ?=?:@4P@+|A \B? ӜFL ӈNzP~R?_T"D;,10100100M10M:andbitsDuplexFullHalfmodeSettingSetupSpeedthe/&;)z4 d |CONTEXT|CTXOMAP$ |FONTp|KWBTREEa |KWDATA? |KWMAPP |PhrImage|PhrIndex|SYSTEM|TOPIC|TTLBTREE |VIOLAf1(;;JMe;#_Vl!d5 Setup Help Help(v1.0);CB("glos_btn","Glossary","JI(`sample.hlp>main',`hpad90')")BrowseButtons()ZmainmainHELP8lZsecondarysampleHelp Pad Sample$vQ  ]T 8 D1DsMain/ s&  -Help/{PDA R.@l؀F:0 I+Please+selecta#setupitemforhl#: 8s&1&`M9@:$`* $H@kPModeO!&M8 >C0`/AUTO Let#N-way{auto-negotiation in3adapter toSde minatethis;property#value.  p '@''@ ' 1`1 HMS Sans SerifArial$  Z^^/&;)F24Setting Speed and DuplexSetup Help/&;)LzSetup Main^Setting Speed and Duplex/&;)L4^2/&;)L4l^..  3Q!)RTSND DOS R&{RTL8139 NIF `x6&MPROTOCOLINI [$lOEMSETUPINF 1${B*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * NDIS/3/4 Driver for Windows NT 3.51/4.0 * * K* *M Contents: - A) Driver Installation for Microsoft Windows NT 3.51 B) Driver Installation for Microsoft Windows NT 4.0 A) Driver Installation for Microsoft Windows NT 3.51 =1 1. From the Main group of NT, choose the Control Panel icon. 2. From the Control Panel window, choose the Network icon. 3. From the Network Settings dialog box, choose the Add Adapter button. The Add Network Adapter dialog box appears. 4. From the list of network cards, select " Requires disk from manufacturer", and then press button. 5. Insert this driver disk in drive A, enter drive and pathname A:\ and then choose the OK button. 6. Select "32-Bit PCI Fast Ethernet Adapter" and then click the OK button in the "Select OEM Option" dialog box. 7. Select the Line Speed value (AUTO,100full,100half,10full, 10half) and then click the OK button in the "Select Line Speed" diaglog box. 8. Windows NT will copy the driver RTL8139.SYS from the A:\WINNT\NT351 directory to C:\WINNT\SYSTEM32\DRIVERS\RTL8139.SYS and the OEMSETNT.INF from A:\ to C:\WINNT\SYSTEM32 but renamed it to another installation information file (like OEMNAD??.INF). NOTICE!! C:\WINNT is the directory where your NT O.S. is located. 9. After that, installation is completed. PCI adapter becomes one of the Installed Adapter Cards and the driver becomes one of the Installed Network Software. You can see: "[x]32-Bit PCI Fast Ethernet Adapter" within the Installed Adapter Cards menu and "32-Bit PCI Fast Ethernet Adapter" within the Installed Network Software menu. 10. To complete network installation, remember to bind the adapter to transport drivers by choosing the "Bindings" button under the Network Setting dialog box. 11. After restarting your system, you will acquire network service. B) Driver Installation for Microsoft Windows NT 4.0 =0 1. Click the "Start" command button, select the "Settings" icon to display an option list under it. 2. Click the "Control Panel" icon. 3. Double-click the "Network" icon. 4. Select the "Adapters" item, then click the "Add..." button in the "Network" dialog box. 5. Click the "Have Disk..." button in the "Select Network Adapter" dialog box. 6. Insert the Driver Diskette in your floppy drive. Enter the full pathname A:\ of the driver installation information file (OEMSETNT.INF) in the "Insert Disk" dialog box, then click the OK button. 7. Select "32-Bit PCI Fast Ethernet Adapter" and then click the OK button in the "Select OEM Option" dialog box. 8. Select the Line Speed value (AUTO,100full,100half,10full, 10half) and then click the OK button in the "Select Line Speed" dialog box. 9. To complete network installation, remember to bind the adapter to the transport drivers by choosing the "Bindings" button from the "Network" dialog box. 10. Click the "Close" button in the "Network" dialog box. 11. Remove the Driver Diskette from your floppy drive. 12. Restart your computer to initialize the network function. - All trademarks or brand names mentioned are properties of their respective companies. J.  WQ!)<..  WQ!)RTL8139 SYS )=MZ@# !L!This program cannot be run in DOS mode. $PEL9 b  R PHbD P<X^hT,.textBD h.dataHH@PAGEJJ `INITPP .rsrcXX@B.reloc^^@B#QQQQQQRZRxR4RRRRRRS2SJSfSSSSSSST0TJTdT|TTTTTTU"U2UHUhUUUUUU9b9Ԁ9@Realtek rtl8139A WOL ndis5 driver POWERM Realtek 8139-series PCI NIC 6D$h_fǀ@PfuE E ƆNf_t;Vf$Cf ؋F>SPEE  E E ^[] USVuWeStt4V t tFj@P$V89F>Pf_t&Ë$Cf ȋF>QPE;ue}r;uVƆL_^[]Vt$W= ^F7PרuxHVf%Xf\POVt8} ^t(^F7Pרt-{_^̋D$f\u"tX@w@r L2S\$UVXWwgPT (;vt+ϋȃ󤋃DM;vȋPURQHQjPPS ƃ^LLL fPC8PPPTL ;ʉr t+0L_^H]3[UQQEUSVPXW}pʍ;v;sE +ƒEuuMt E@EEPEPu$3vZU+;UvU}uU˃)Ut*;EuEEtMQMQP$3}wu+uE 03_^[SVt$ WFPtu(,mmF Pt F$PFP_^[SVt$ WFPtu(,mmF$Pt F$PFP_^[SVt$ WFPtu(,mmF(Pt F$PFP_^[SVt$ WFPtu(,mmF,Pt F$PFP_^[UQSVuWEj=hPj Ev(6ׅEjdPjv(6ӅtEj$ EEPjv(N,6ׅtZEjPjPv(6ӅtG}uHEjePjTv(6ׅt*EjPjUv(6ӅtEjMPjUv(6ׅu3_^[MAXMULTICASTEnvironmentSlotNumberEarlyTxThresholdChipOnCardbusDuplexModeTxMaxDMABurstRxMaxDMABurstEarlyRxThresholdTxInterFrameGapLinkUpWakeUpFramePMEEnableLDPSUWjYfEjfMXEz u fEfEfEfEfEEfEPE PE fEE fE fE"E fMfEE fEE fMfEE fMfEE: fE fE"EV fEfE Ez fE fEEԚ fEE̪ fEfEE fEE xE 3;VSEWP5tuEPE P9} ]u E@EjPEuPE P9} u E@C(EWPEuPE P9} u E@CEWPEuPE P9} uExu ƃƃEWPEuPE P9} uExu ƃƃEWPEuPE P9} uExuƃ9xuƃuEPEPE Pp}u9} uu{Hf5t3EWPEuPE P֍EWPEuC$8PE P9} u%E8@;C$vK$9C$sC$EWPEuPE P9} u E@C { EWPEuC4PE P9} uE@;C4vK4EWPEuC0PE P9} uE@C09C4vC49{ t{86EWPEuC8@PE P9} uE@ ;C8vK8EWPEuC<PE P9} uE@;CPf=8VFXP Pu, @;tRSSPP69t9jV0 / @;t SSPP69tSV V*F=>Pר t%FtPfF>j PV_^2[UE $5EDEHELEPET|EXqE\fE`[EdPEhEEl:Ep/Et$ExE|EE]r #SUVt$W*kjt)D$UPVP6kGL$uV(tUP6_^][Vt$VVO V3V $(,048`djƆkƆlmnm ^Vt$ VƆnưhV^3Vt$ PP6V^UUEM SVW3j:8};ȉ}}[unZ$BEH}uuEEEE@XP $U%`D@BEE}EPFqEeEYEHNpO@P΍uM/PjR"EujExEVt}3ɁP @MED]E ;w?t2tItIt$IuIE8qE$fE [E4PtUItJIIt8t%ItIt EIE,E(E0 E@EEpHEpN}jfu[}u-;]vEE}ˋȋEE_^[""*6N|*B8UM S]V33WtxItPtsMj3_u^Euэtʃ<$uP33a}u'M w UDCPF@0PV _^[Vt$WFP $PFNj=P׋Fj7P_^Vt$Vujjjh6P2V^UVuWF7P E=$PF7P׋Fu7P׋Fv@DPtdžLP@T_^]W3҃9T$ v4VSD$j Xً3t HuB;T$r[^_%jt$T$ ȃL$  UQVuW34@v7 @S؍NtEPEPWEM44Ku[_^Vt$WFP $PFNj=P׋Fj7P_2^Vt$F`Pfh^̋D$p@@DP2Vt$W=FjP׋Fj P_2^UQSVuW3j }3ɍ4Z@;r8J]@@rFW=P׋Fu P_^2[U} VWsWu=S3ۋFSpP׃~u } uE E F|PuhCr[0}5j GpP֋GhxxP֋GhC8˃|P_^] SUVWj]UWt$FtP t;HtMHHtDu8UjV"UWFtPf=ptUjVUWjUjV_^][UjUUSUVt$W=Ftu2jh*FtPtFhtPV.4Vh6)6PӃ~u%FbP׋FfPft f%f=tP_^]UVuWfFtuVF=bPu,VFhbPhVbFjPרuUFHt%HtHtHt Hu ! 3 EPFbPVjjV}_^]̋D$Hv*t!tt u(hh jA j!!(h@fPVt$ FXP uFj >PV;p2p psj2VVdžP @^Vt$ WtFj >PVIFdP t"ƆW`hV`j2P2^Vt$VFWbhPƆV`j2V^UVu W=FdP׋FjP׋=u?FHt%HtHtHt Hu ! 3 E PFbP׋Fj >P_^]D$j23YvVj2Nu^UEM Vu M  Ph  V M^]UEM Vu M  Ph  VM^f]UEM Vu M  Ph  VM^]UEM Vu M  Ph u V^]UEM Vu M  Ph u V^]UEM Vu WM = Ph u V_^]U eSe3ۍEPjSuuE;Et$CfrEf} rEf}rf3[M EUuM UjPuueuEj>Puumj F WE EFEEjPuuEWjPuu)E=L=L=L=L=L=L=L=L=L=L=2h=6ht}=tv=to=Lu$e } 0}}1=ut=vt=xt=y t=yu!e } 0x} E$<ee(} 0W}(MfGU4EeEEPEPEPhfr WVES]PEjPuuEPEj>PuuEEԋE%=LuEhhPuuEh@j PuuUEؿv;Ǿ2hy w =u];w t=xP;wAt}=yHEPEjPuuEPjuuuEPEjPuuoEPjuuuYEPEjPuu@EjjPuu}jEVjPuu EVj PuuEjj PuuEVj>PuuEjjPuuj)EVj>PuuEVj>Puuu EVj,PuuEVj0PuuEjjPuuEWjPuuEWj PuujE=vw tv=uoy ;w t=x];wtR=yuKhW2h;w t9=2L;wt'=6ht =Lt=LuL;wt=Lf}thhEj>PuuEWjDPuu]5eE PWjhjE PW֋E=LtM=LtF=Lt?=Lt8=Lt1=Lt*=Lt#=Lt=Lt=ut)=vt"=xtE3f9}t @ PPh3jEjjPuujEWj>PuuoEPEPEPhfEPj`uuu@}uuj`uuu#EPjauuu}uujauuuEPjbuuu}uujbuuuEPjcuuu}uujcuuu}yuEWjDPuu#jEPEjPuuejjWWuE @PjWWuhj WWu1ujuuuu Vj,u ]uuRPj0uuu;hj>uuu}WjPlv,m:ntSam$lmu_^[AAAAAB5BRBoBBBBBBC.CD$m$EFDHLPTX\ |`nd`hRlDp 6t$(x(|, 0mt!ItIt Iu(Ph4 Ph PhP Ph TPE$E5EFEWEhEyEEEEEEEEEE|       <,US339]VWvM9t @;Er;Eu M 5HE5HSVP`;}3uEMǀ@ EEǀDuOtSVu\SE E9X tuPzHQHQHQHQp(05;EPEQQPh9f=EHQjPFhPP׋FZPՈD$<ud$<uL$Ft$ZP׋FYPՈD$<uL$<ud$Ft$YP׋FjPPV5V_^][YYVt$W=v׈FNFOFPFQFP׈FR28NHFSu:8NIu58NJu08NKu+8NLu&8NMu!NNFMNHNONINPNJNQNKNRNL_^U6>I>Z>g>x>>>>>>>>>?03012m33333 4/4:4L4Z44445 5I5n55696=6A6E6I6M6Q6U6Y6]6a6e6i6m6q6y6|777 8Z88B:F:J:N:R:V:Z:^:b:f:j:n:r:v:z:~:::::::;;;< <(<<<>>?-?T?g??? x0i1111 22<2O3]3333#4R444j555556C6I6Z6f6u6(7K7]778&898i888889.9@9X99::[:k:::;;U;h;;0 6W;l;;)<>>,>?>E>\>>@ 0'00"1,1d11K3333M4g4v4444444444444444456$6,646>6E6I6M6Q6U6Y6]6a6e6i6m6q6u6y6}66::C:L::;;;;P(0020=0D0K0R0Y0`0g0n0u0|0000  VHH$SG2825=$SG2822=$SG2819=$SG2816l=PH$SG2613 $SG2610 $SG2607 $SG2604 $SG2601z $SG2598V $SG2595: $SG2592 $SG2586 $SG2583 $SG2580 $SG2577 $SG2574 $SG2568z .rsrc$02`X.idata$6,R.idata$6Uheader[P A5 c '$(^,048<*@ODHLP0TQX\`dhEleptx| 3M  s     [ ~  - H Wv q:      P    4        : d \ jv ! 1\ A \ x |   z  t 7    |^ n '! ! ! P j" b "  " <#  v# < # X #  #  B$ 0 $ `% B 2& & R ' h (  (  (  6) ) )  &* nz*  *  + & r+ + 7 <, J , s /  8  J;  ^; ><  = _Enque@8 ? _Deque@4J? ~? ? @ 4 @ J D HH2H!HJ M {~N P  PPJPendb+_DriverEntry@8_RTFast_EnableInterrupt@4_RTFast_DisableInterrupt@4_RTFast_Isr@12_RTFast_HandleInterrupt@4_RTFast_RcvDpc@4_RTFast_PacketOK@4_RTFast_IndicatePacket@4_RTFast_TransferData@24_SyncCardStartXmit0@4_SyncCardStartXmit1@4_SyncCardStartXmit2@4_SyncCardStartXmit3@4_NwayedForceMediumType__imp__WRITE_PORT_USHORT@8__imp__READ_PORT_USHORT@4_CleanupSendedPackets@4_RTFast_TxDpc@4__imp__WRITE_PORT_UCHAR@8_CardResetRx@4__imp__EthFilterDprIndicateReceiveComplete@4__imp__READ_PORT_UCHAR@4__imp__EthFilterDprIndicateReceive@32__imp__NdisQueryBuffer@12__imp__WRITE_PORT_ULONG@8__imp__READ_PORT_ULONG@4_RTF8Log@4_RTFast_Initialize@24_SetupPCIConfiguration@4_ReadRegistry@8_InitSoftwareVariable@4_RTFast_Shutdown@4_RTFast_Halt@4_RTFast_CheckForHang@4_GetTxPacket@8_ResetAdapter@4_RTFast_Reset@8_ResetCheckingTimerProc@16_RTFast_QueryInformation@24_RTFast_SetInformation@24_DispatchSetPacketFilter@4_DispatchSetMulticastAddressList@4_FindPciConfiguration@24_RTFastFreeSharedMemory@4_RTFastAllocateSharedMemory@4_InitialCardTest_RTFast_MiniportBlock_HighestAcceptableMax__imp__NdisMRegisterMiniport@12_RTFast_Send@12__imp__NdisInitializeWrapper@16__imp__NdisMInitializeTimer@16__imp__NdisMRegisterAdapterShutdownHandler@12_CardStart@4__imp__NdisMDeregisterInterrupt@4__imp__NdisMDeregisterIoPortRange@16__imp__NdisMFreeMapRegisters@4_CardSetup@4_CardReadEthernetAddress@4_SetupLink@4_CardInitialize@4_CardGetChipVersion@4__imp__NdisMAllocateMapRegisters@20__imp__NdisMRegisterIoPortRange@16__imp__NdisWriteErrorLogEntry__imp__NdisMRegisterInterrupt@28__imp__NdisMSetAttributes@16_pci_get_long@20_pci_get_byte@20_pci_find_device@20_GetPCIConfigurationOnCardbus@8__imp__NdisFreeMemory@12__imp__NdisAllocateMemory@20__imp__NdisReadPciSlotInformation@20__imp__NdisWritePciSlotInformation@20__imp__NdisCloseConfiguration@4__imp__NdisReadNetworkAddress@16__imp__NdisReadConfiguration@20__imp__NdisOpenConfiguration@12_SetLDPS@8_RTFast_Delay@8_SyncCardStop@4__imp__NdisMUnmapIoSpace@12__imp__NdisFreeSpinLock@4_CardStop@4__imp__NdisMCancelTimer@8__imp__NdisMDeregisterAdapterShutdownHandler@4_CardWriteEthernetAddress@4_RTFast_DoNextSend@4_ProcessLinkChange@4__imp__NdisMIndicateStatus@16__imp__NdisMSendComplete@12_CardReset@4__imp__NdisSetTimer@8__imp__NdisMResetComplete@12_SyncCardSetReceiveConfig@4_SyncCardSetAllMulticast@4__imp__NdisMSynchronizeWithInterrupt@12_SyncCardCopyMulticastRegs@4_CardFillMulticastRegs@4__imp__NdisMPciAssignResources@12__imp__NdisMFreeSharedMemory@24__imp__NdisMAllocateSharedMemory@20_CardInitACPIRegisters@4_CardComputeCrc@8_CardGetMulticastBit@12_SyncCardGetISR@4_SyncCardClearISR@4_SyncCardClearIMR@4_SyncCardReadTSAD@4_SyncCardAcknowledgeOverflow@4_SyncCardUpdateCounters@4_SyncCardHandleOverflow@4_Rtl8139set_param@12_WriteLinkParam@4_Setup2ndNway@4_WriteOurCapability@4_InitialNwayCheckingTimerProc@16_NwayCheckingTimerProc@16_RestartNway@4_LinkChangeReNwayTimerProc@16__imp__KeStallExecutionProcessor@4_pci_get_word@20_pci_set_byte@20_pci_set_word@20_pci_set_long@20_pci_find_class@16_pci_find_socket@12_pci_close_socket@12_pci_open_pcb@20_pci_halfopen_pcb@12_delay_tick@4_ReadPciSlotInformation@24_WritePciSlotInformation@24_EnableCardbus@4_ReadIOIrqConfiguration@8__imp__NdisMMapIoSpace@20_RTFast_Sends@12_CardCopyDownPacket@8_CardStartXmit@4__imp__NDIS_BUFFER_TO_SPAN_PAGES@4__imp__NdisQueryBufferOffset@12_WRITE_PORT_USHORT@8__IMPORT_DESCRIPTOR_HAL_READ_PORT_USHORT@4_WRITE_PORT_UCHAR@8_READ_PORT_UCHAR@4_WRITE_PORT_ULONG@8_READ_PORT_ULONG@4_KeStallExecutionProcessor@4__NULL_IMPORT_DESCRIPTORHAL_NULL_THUNK_DATA_EthFilterDprIndicateReceiveComplete@4__IMPORT_DESCRIPTOR_NDIS_EthFilterDprIndicateReceive@32_NdisQueryBuffer@12_NdisMRegisterMiniport@12_NdisInitializeWrapper@16_NdisMInitializeTimer@16_NdisMRegisterAdapterShutdownHandler@12_NdisMDeregisterInterrupt@4_NdisMDeregisterIoPortRange@16_NdisMFreeMapRegisters@4_NdisMAllocateMapRegisters@20_NdisMRegisterIoPortRange@16_NdisWriteErrorLogEntry_NdisMRegisterInterrupt@28_NdisMSetAttributes@16_NdisFreeMemory@12_NdisAllocateMemory@20_NdisReadPciSlotInformation@20_NdisWritePciSlotInformation@20_NdisCloseConfiguration@4_NdisReadNetworkAddress@16_NdisReadConfiguration@20_NdisOpenConfiguration@12_NdisMUnmapIoSpace@12_NdisFreeSpinLock@4_NdisMCancelTimer@8_NdisMDeregisterAdapterShutdownHandler@4_NdisMIndicateStatus@16_NdisMSendComplete@12_NdisSetTimer@8_NdisMResetComplete@12_NdisMSynchronizeWithInterrupt@12_NdisMPciAssignResources@12_NdisMFreeSharedMemory@24_NdisMAllocateSharedMemory@20_NdisMMapIoSpace@20_NDIS_BUFFER_TO_SPAN_PAGES@4_NdisQueryBufferOffset@12NDIS_NULL_THUNK_DATA_BlankBuffer$S2385_?VendorDescription@?1??RTFast_QueryInformation@@9@9$S2760_?test@?1??DriverEntry@@9@9$S2504_RTFast_SupportedOids$S2485C:\DDK\lib\i386\free\RTL8139.sys" v :7 qP q q4 q  ! I:* d\ve\-!Ӛ|y!az(te'C^ӌ!8!5!oj"K"+"Z <#:v###)#h B$ $`%2&&'K(l(s(>6)zҰ)!)S&*Tz*S*Q +Qr+Q+w <,n Ѫ,n / 8 J;^; ><.='  ?=J?:??_@ @DJ Mz~N~P.  YQ!)..  YQ!)NETRTS5 INF x)* RTL8139 SYS )ZWIN2000 TXT q$)b;*M ;* NETRTS5.INF ;*M [version] Signature = "$Chicago$" Compatible = 1 Class = Net ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} Provider = %Generic% !;; for WHQL certified ;CatalogFile = netrts5.cat ;; for WHQL certified DriverVer = 08/04/2000,5.378.0804.2000 [Manufacturer] %Generic% = Generic [ControlFlags] ExcludeFromSelect = PCI\VEN_10EC&DEV_8139, \ PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC [Generic] %RTL8139.DeviceDesc% = RTL8139.ndi, PCI\VEN_10EC&DEV_8139 %RTL8139.DeviceDesc% = RTL8139.ndi, PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC ;;*L ;; Windows 9x ;;*L [rtl8139.ndi] DriverVer = 8/04/2000,378 AddReg = rtl8139.id.reg, RTL8139.common.reg, RTL8139.win.reg, RTL8139.oncbs.reg CopyFiles = RTL8139.CopyFiles98 ;;*L ;; NT 5.0 ;;*L [RTL8139.ndi.NT] AddReg = RTL8139.common.reg, RTL8139.reg, RTL8139.oncbs.reg Characteristics = 0x84 BusType = 5 CopyFiles = RTL8139.CopyFiles [RTL8139.ndi.NT.Services] AddService = rtl8139, 2, rtsnt.Service, RTL8139.EventLog [RTL8139.CopyFiles] RTL8139.sys,,,2 [RTL8139.CopyFiles98] RTL8139.sys,,,2 ;;-L ;; RTL8139 Parameters ;;-L ;;*L ;; Windows 9x parameters ;;*L [rtl8139.id.reg] HKR, Ndi, DeviceID, 0, "PCI\VEN_10EC&DEV_8139" HKR, Ndi\Install, , 0, rtsnt.install HKR, NDI\Params\DuplexMode, flag, 1, 30, 00, 00, 00 HKR, Ndi\Params\EarlyTxThreshold, flag, 1, 20, 00, 00, 00 HKR, NDI\Params\NetworkAddress, flag, 1, 30, 00, 00, 00 HKR, NDI\Params\WakeUpFrame, flag, 1, 30, 00, 00, 00 [RTL8139.win.reg] ;; key,subkey,valuname,type,value HKR, , DriverDesc, 0, "32-Bit PCI Fast Ethernet Adapter" HKR, , DevLoader, 0, *ndis HKR, , DeviceVxDs, 0, rtl8139.sys HKR, , EnumPropPages, 0, netdi.dll, EnumPropPages ;;params HKR, , MediaType, 0, 1 HKR, , AdapterType, 0, 5 HKR, , BusType, 0, 5 ;; NDIS Info HKR, NDIS, MajorNdisVersion, 1, 03 HKR, NDIS, MinorNdisVersion, 1, 0a HKR, NDIS, LogDriverName, 0, "RTL8139" ;; Interfaces HKR, Ndi\Interfaces, DefLower, , "ethernet" HKR, Ndi\Interfaces, LowerRange, , "ethernet" HKR, Ndi\Interfaces, DefUpper, , "ndis3" HKR, Ndi\Interfaces, UpperRange, , "ndis3" ;; Install sections ;HKR, Ndi\Install, ndis3, 0, "rtl139.ndis5" ;;*L ;; RTL8139 common parameters ;;*L [RTL8139.oncbs.reg] HKR,,ChipOnCardbus,,"0" [RTL8139.common.reg] HKR, Ndi\params\DuplexMode, ParamDesc, 0, %DuplexMode% HKR, Ndi\params\DuplexMode, type, 0, "enum" HKR, Ndi\params\DuplexMode, default, 0, "1" HKR, Ndi\params\DuplexMode\enum, 1, 0, %dmAutoMode% HKR, Ndi\params\DuplexMode\enum, 2, 0, %dm10HalfMode% HKR, Ndi\params\DuplexMode\enum, 3, 0, %dm10FullMode% HKR, Ndi\params\DuplexMode\enum, 4, 0, %dm100HalfMode% HKR, Ndi\params\DuplexMode\enum, 5, 0, %dm100FullMode% HKR,Ndi\Params\EarlyTxThreshold, ParamDesc, 0, %EarlyTxThreshold% HKR,Ndi\Params\EarlyTxThreshold, Type, 0, "int" HKR,Ndi\Params\EarlyTxThreshold, Default, 0, "38" HKR,Ndi\Params\EarlyTxThreshold, Min, 0, "0" HKR,Ndi\Params\EarlyTxThreshold, Max, 0, "63" HKR,Ndi\Params\EarlyTxThreshold, Step, 0, "1" HKR,Ndi\Params\EarlyTxThreshold, Base, 0, "10" HKR,Ndi\params\NetworkAddress, ParamDesc, 0, %NetworkAddress% HKR,Ndi\params\NetworkAddress, type, 0, "edit" HKR,Ndi\params\NetworkAddress, default, 0, "0 " HKR,Ndi\params\NetworkAddress, LimitText, 0, "12" HKR,Ndi\params\NetworkAddress, UpperCase, 0, "1" HKR,Ndi\params\NetworkAddress, Optional, 0, "1" HKR, Ndi\params\WakeUpFrame, ParamDesc, 0, "WakeUp Frame" HKR, Ndi\params\WakeUpFrame, default, 0, "0" HKR, Ndi\params\WakeUpFrame, type, 0, "enum" HKR, Ndi\params\WakeUpFrame\enum, "0", 0, "Enable" HKR, Ndi\params\WakeUpFrame\enum, "1", 0, "Disable" HKR, Ndi\params\PME, ParamDesc, 0, "APM Mode WakeUp" HKR, Ndi\params\PME, default, 0, "1" HKR, Ndi\params\PME, type, 0, "enum" HKR, Ndi\params\PME\enum, "0", 0, "Enable" HKR, Ndi\params\PME\enum, "1", 0, "Disable" HKR, Ndi\params\EnableLDPS, ParamDesc, 0, "Link Down Power Saving" HKR, Ndi\params\EnableLDPS, default, 0, "0" HKR, Ndi\params\EnableLDPS, type, 0, "enum" HKR, Ndi\params\EnableLDPS\enum, "0", 0, "Disable" HKR, Ndi\params\EnableLDPS\enum, "1", 0, "Enable" ;;*L ;; NT 5.0 parameters ;;*L [RTL8139.reg] HKR, Ndi\Interfaces, UpperRange, 0, "ndis5" HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" HKR, Ndi, Service, 0, "RTL8139" [rtsnt.Service] DisplayName = %RTL8139.Service.DispName% ServiceType = 1 ; %SERVICE_KERNEL_DRIVER% StartType = 3 ; %SERVICE_DEMAND_START% ErrorControl = 1 ; %SERVICE_ERROR_NORMAL% ServiceBinary = %12%\RTL8139.SYS LoadOrderGroup = NDIS [RTL8139.EventLog] Addreg = RTL8139.AddEventLog.reg [RTL8139.AddEventLog.reg] HKR, , EventMessageFile, 0x00020, "%%SystemRoot%%\System32\netevent.dll" HKR, , TypesSupported, 0x00010001, 7 ;;*L ;; Destination Directory ;;*L [DestinationDirs] RTL8139.CopyFiles = 12 RTL8139.CopyFiles98 = 11 DefaultDestDir = 11 ; LDID_SYS ;;*L ;; Source Files ;;*L [SourceDisksNames] 1=%DISKNAME%,,, [SourceDisksFiles] rtl8139.sys = 1 ;netrts5.cat = 1 ;;*L ;; Strings ;;*L [Strings] Generic = "Generic" ;;Source disk name DISKNAME = "32-Bit PCI Fast Ethernet Driver Diskette" NetworkAddress = "Network Address" EarlyTxThreshold = "Early Tx Threshold" DuplexMode = "Link Speed/Duplex Mode" dmAutoMode = "Auto Mode" dm10HalfMode = "10 Half Mode" dm10FullMode = "10 Full Mode" dm100HalfMode = "100 Half Mode" dm100FullMode = "100 Full Mode" RTL8139.DeviceDesc = "32-Bit PCI Fast Ethernet Adapter" RTL8139.Service.DispName = "32-Bit PCI Fast Ethernet Adapter NT Driver"   7Q!)RTSND OS2 BR'&ґRTL8139 NIF `N&6IPROTOCOLINI [$;lcMZ@# !L!This program cannot be run in DOS mode. $)­GGGFGTGAGRMGRichGPEL99  BD:T˺ D<JPX:T,:.text946 h.rdata::@H.data<<@PAGE>> `INITDD .rsrcJJ@B.relocPP@B0D$h_fǀ@P:fuE E ƆNf_t;Vf$Cf PF>P:EE  E E ^[] USVuWe Stt4V t tFj@P:$Vt,F>P:f_t&Ë$Cf PF>P:E ;ue } r;uVƆ_^[]Vt$W= :^F7PרuxHVf%Xf\POVt8} ^tp^F7Pרt{_^̋D$f\u"tX@w@r L2S\$UVXwmPWT);vt+͋ȃ󤋃DM_;ȋwыPuVRQRjQQSdƃ^LLL)fPC8P:PPTL);ʉr t+0L^H]3[UMUS]XVPWx;v;sE +ƒ}}QM$:E}ut E@EEPEPu :3vZU+;UvU}uU˃)Ut*;EuEEtMQMQP :3}w}u(:+}E 83_^[SVt$ WFP:tu(,mm:F Pt F$PFP_^[SVt$ WFP:tu(,mm:F$Pt F$PFP_^[SVt$ WFP:tu(,mm:F(Pt F$PFP_^[SVt$ WFP:tu(,mm:F,Pt F$PFP_^[UQSVuWEj=p:Pj Ev(6ׅu Ejl:Pjv(6Ӆt݊Ej$ EEPjv(N,6ׅtEjPjPv(6Ӆt}uIEjePjTv(6ׅtEjPjUv(6ӅqEjMPjUv(6ׅVEjPjUv(6Ӆ?<uM<ueEjPjUv(6%?_^[MAXMULTICASTEnvironmentSlotNumberEarlyTxThresholdChipOnCardbusDuplexModeWIN98APMTx$MaxDMABurstRxMaxDMABurstEarlyRxThresholdTxInterFrameGapLinkUpWakeUpFramePMEEnableLDPSUWjYfEjfMXED u fEfEfEf|fvEfEPEPE` fEEx fE fE"EА fMfEE fEE fEfEE fMfEE fMfEE fE fE"E4 fEfE EX fE fEEx fDž~E fEfEE fDžtDžx :E3;SVEWP5|:uEPEP9}]u E@EjPEuPEP9}u E@C(EWPEuPEP9}u E@CEWPEuPEP9}u/ExuEMjPjUƃs(Sp:ƃEWPEuPEP9}uExu ƃƃ|WPEuPEP9}uExu ƃƃEWPEuPEP9}uExuƃ9xuƃuEPEPEPx:}u9}uu{Hf5|:3EWPEuPEP֍EWPEuC$8PEP9}u%E8@;C$vK$9C$sC$EWPEuPEP9}u E@C { EWPEuC4PEP9}uE@;C4vK4EWPEuC0PEP9}uE@C09C4vC49{ t{86EWPEuC8@PEP9}uE@ ;C8vK8EWPEuC<PEP9}uE@;CP:f=t8Vt2FXP :P$E u- @;tTSSPQP|9 t:jV 0 @;t!SSPQP|9 tSV VFW=:>Pר t%FtPfF>j P:V2_^[]UE $UEDEHELEPET|EXqE\fE`[EdPEhEEl:Ep/Et$ExE|EE] "-8CSVt$ *kjt3UWD$.ǃSPVP6kGL$u_]Vt SPQ^[Vt$VV3V3V $(,048`djƆkƆlmnQ ^Vt$ VƆnưhV:^Vt$ 3ɋQQPV4^U$EM 3SEVWj;ȉUUU[ucO$(E<UuuEEE|E@XP :$%`D@BTEKEPF?E3E'EuHNPO@PM8;jR[EujExEVtU3ɁP @MED]E;w}tetOIt>It-Itt"EpN>E8>E40E$"E EpH}jfu t6t EEMPeEuF;|8~(t;u*jXɉEEȉM$UUU]ȉ]$ÉEju[U-E,E(E0 E@E;]vEE}ˋȋEEE_^[,;FFNZr-Cf- Q UM S33VWwFtmtAt/t BuuVMEƆ'uxEu uPEM3#uuV=p:j[9u8uE SPjUv(] 6׋t tuuE Se PjUv(69uƆEM33Mj3^u\Euэtʃ<$uP^3Z}u'M w UD@FjY9Mt M-EfPtMQ<;u MU M_^[]Vt$W=:<$Vt FTh$PR<&tN@f@ tN@f@(tN@f@!tN@f@VTh$V_3^Vt$VVTh$V:3^UlEEhPEPEuP:}tPUvGVEHIt&ItIu/u$Hu uuHuHuJu^3 ̋D$|x4jhP0:SVt$ Wx4SWjhP6:u 8<@ D(H0L8P@THXP\X``dhhplxpt|k"   (08@ H$P(X,`0h4p8x<@3_^[Vt$FCP :f$|<@tA<`t4P:F@0PV~_^[UVuWFP :$EFuNj=:P׋Fj7P_^]Vt$V ujjjh6\:2V ^UVuWF7P :E=:$PF7P׋Fu7P׋Fv@DP:tdžLP@T_^]W3҃9T$ v4SVD$j Xً3t HuB;T$r^[_%jt$T$ ȃL$  UQVuW34@v7 @S؍NtEPE PWE M0404Ku[_^UVuWFP :$EFuNj=:P׋Fj7P_2^]Vt$F`P:fh^̋D$p@@DP:2Vt$W=:FjP׋Fj P_2^SVt$ 33W3ɍ48@ r838@ rF=:RP׋FS P_^2[U} VWsWu=:S3ۋFSpP׃~u } uE E F|PuhCr[0}5:j GpP֋GhxxP֋GhC8˃|P_^] SUVWj]UW:t$FtP t;HtMHHtDu8UjV"UWFtPf=ptUjVUWjUjV_^][UjUUSVt$ W=:Ftu2jh+FtPtFhtP:V/4:Vh<*6PӃ~u'FUbP׋FfPf]t f%f=tP_^]UVuWfFtuVF=:bPu,VFhbP:hV:bFjPרuUFHt%HtHtHt Hu ! 3 EPFbP:V{jjV}_^]̋D$Hv*t!tt u(hh jA j!h@fP:Vt$ FXP :uFj >P:V;p2p psj2V:VdžP @^Vt$ WtFj >P:VIFdP: t"ƆW`hV:`j2P:2^Vt$VFWbhPƆV:`j2V:^UVu W=:FdP׋FjP׋=:u?FHt%HtHtHt Hu ! 3 E PFbP׋Fj >P_^]D$j23YvVj2:Nu^UQVuWV;E <EudSEj=l:PjPv(6Ep:tE je PjTv(6ӍEjPjUv(6׍EjMPjUv(6VV[F=:PhP׋FYP : EFuYP׋FjPP_^USVuW} :ee hM ŌMEG ljEFPPӋFZP :$EFuZPӋFjPPӋGHUM< Cu| AtʃuE B;ЉUrf| t_BjY+ȋE D8ʱ*ʋUȋE L8u;Gs d9A;OrGH;Gsd8@OW Ge e ejHZ;ʉUU}si;ЊD:E u L: JM E }u$FMu EP:e e EUGBUH;r} uFMu EP:W @Uvj@ZUMeE v{}ME "} u EE e tOEMUL E$x2Š2ŠU ‹UEz9}t2Ȋx2ʋU ȈME9UrFuEPӋEMD PFEPӊ<s0FP:r_^[UVuWFjP:rFP :$EFuP:_^]QQSUVt$Wj[jFP:KuF=:PhP׋F :YP$߈D$Ft$YP׋FjPP׋FP$D$Ft$P׋D$ $<u5FhPP׋FYP D$Ft$YP׋FjPP׋D$ $<uX0D$D$ D$D$ 0D$FP:D$ D$L$u܋FP D$Ft$P_^][Y;YD$ǀUS39]VWvf}u uEu#p wj6WHDHDC;]rE HD_^[] D$``uT$dT$dV1V ^p̋L$`t);ddu "` P `pVt$WW$:t$VkW(:V _^ Vt$`tkvVuPV߀lv,m:ntV-m$lmu^USVuWl}^TVh$S:jt6Ht$HtHu:fh+fh@fh fhftOjPljklP @ju<KV_^2[]US]VWPE$:u EtFEEt[~uO~3;E EEt(EPEPW:EWE :E?Eu؋EFFE FEFE}ujVSu(:8n$k6E 4EDE 8EHE <ELh E @EPKE DET.E HEXE LE\`E PE dE TE$hE XE(lE \E,pE `Ef0tE dEL4xE hE28|E lE<E pEE5 :PEPuփ}t}uE8EPEPW}օuMu}ȃEEE0ut1= :EPEPV׃}u6utEPEPVuu(:jP:lv,m:ntSbm$lmu_^[A3^3{33333 4)4F4c444444̋D$m$7DHLPTX\ |`nd`hRlDp 6t$(x(|, 0mt!ItIt Iu(Ph Ph> PhPhZTP:6666 77-7;7I7W7e7s77777FEEEEE F^FpFDFFFFFFG2GJG^GpGGGGGGH"H@H^HxHHHHHHI"IBI`IxIII 99T99U99FYRealtek rtl8139A WOL ndis5 driver POWERM Realtek 8139-series PCI NIC 6w       <USV339uWvM91t @;Er;Eu rM hRTLmSEPh:;P}3uEMǀ@ EEǀDu5t E(Q$QHQHQHQHQp(u7;t[uO;uMEjjVP0d:u0EVjjHQQ0TP`:;t&EVh0\: VSuX:hMWqA1PT:hj jPE0P:E3($RQ0,PL:uuuJu\uuuHuEjh0\: uEj@7P:E(,0H:E0D:EHQWQ0@:ETP<:jSuX:2uEhhP08:EPh0P4:3_^[]QQSUVt$WVV=:- :ukFPՋ:D$FPӉD$FPӻD$FPՀ|$u|$u |$uP:FhPP׋FZPՈD$<ud$<uL$Ft$ZP׋FYPՈD$<uL$<ud$Ft$YP׋FjPPVV-_^][YYVt$W=:v׈FNFOFPFQFP׋28VHFRNSu78VIu28VJu-8VKu(8VLu#8VMuVNFLVHVOVIVPVJVQVKNM_^bU`S3SE u uP0:E Mj`QP<<E]EE"EEEE>EBE]ÈE1EԀEZE0]܉]]]]]]],:[%D 0 H`J<<4VS_VERSION_INFOz$? StringFileInfox040904B0RCompanyNameRealtek Semiconductor Corporation RFileDescriptionNDIS 5.0 driver @FileVersion5.378.0804.2000: InternalNameRTL8139.SYS rLegalCopyright1994-1999, Realtek Semiconductor Corp. All Rights Reserved.B OriginalFilenameRTL8139.SYS RProductNameRealtek RTL8139(A/B/C/8130) Based Fast Ethernet Adapter DProductVersion5.378.0804.2000DVarFileInfo$Translation h`424]44515]5577718E8j888 9N9|9993:Z:< ==-=>=K=^=o=========>>b?|?11222%3J3U3g3u333?4h44U5Y5]5a5e5i5m5q5u5y5}55555567-7~77(:,:0:4:8:<:@:D:H:L:P:T:X:\:`:d:h:l:p:t:x:|:4;f>>>>>??01(111222!3=35a55566)6k6o6s6w6{6666666666666777777788 8 88888!8%8)8-81858D>>??-?L?k???@L010<0M0Z0f0z0000000O11*24%4+494@4G4N4U4\4c4j4t4{444446objfre\i386\RTL8139.sys"" B Ә87pZ!Zqq> q q" " Ӿ _$ IhҀ|Жj-" Ӏ^y!~(xe'  Cb  ӌ"@"5#or#K#+#Z D$B҆$$$)$]H% %f&8''(K)l)s)><*zҶ*!* Ӥ+ x.X.400z Ӑ0=0:14<1_1 |2/ Ӭ6> Ө@z"B}DNB109C:\NTDDK\src\network\ndis\378\objfre\i386\RTL8139.pdb r7e0 c r7e0 *M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * Installation Note for Windows 2000 * * K* *M Microsoft had put the RTL8139A/B/C chip driver in the Win2000 system. Please plug 32-Bit PCI Fast Ethernet Adapter into PCI slot. After Win2000 starts up, it can recognize this adapter automatically. Otherwise, you can also use the driver of diskette. The procedures : 1. Open System Properties. To do this, you can : Right click on the "My Computer" icon on your desktop, then select "Properties". 2. Select the "Hardware" tab. 3. Click the "Device Manager" button. 4. Double click "Network adapters". 5. Select the "Realtek RTL8139(A) PCI Fast Ethernet Adapter" device and double click to go to its properties. 6. Select the "Driver" tab. 7. Click "Update Driver...". 8. Click "Next" in the "Update Device Driver Wizard" dialog box. 9. Insert the Adapter Driver Diskette in your floppy drive. 10. Select "Display a list of the known drivers for this device so that I can choose a specific driver" and then click "Next". 11. "Select Network Adapter" will be prompted. Click "Have Disk" and type "A:\WIN2000", then click "Next" button. 12. Select "32-Bit PCI Fast Ethernet Adapter" then click "Next" button. Windows will prompt "Do you want to continue the installation ?" in the "Digital Signature Not Found" dialg box. Click "Yes" and windows will start to copy the driver. 13. When Windows prompts with "32-Bit PCI Fast Ethernet Adapter" in the "Update Device Driver Wizard" dialog box, click the "Finish" botton. - All trademarks or brand names mentioned are properties of their respective companies. q$VPINSTALL  s$MASTER  )Z#MNODE  +Z#RECONF  q$HREMOVE  8Z#d!SYSTEM  DZ#L.  `Q!)..  `Q!)SCOUNIX TXT Pq&q3 X  bQ!)5 X  lQ!) d*M * K* * 32-Bit PCI FAST Ethernet Adapter * * K* * Driver Installation for SCO UNIX * * K* *M Contents: - A) MDI Unix Driver Installation for SCO ODT 5.0 B) LLI Unix Driver Installation for SCO 3.2.4 (ODT 3.0) Contents of the directory: = 5.X\ SCO ODT 5.0 MDI Unix Driver 3.X\ SCO 3.2.4 (ODT 3.0) LLI Unix Driver SCOUNIX.TXT This file A) MDI Unix Driver Installation for SCO ODT 5.0 =, 1. Login as root user. (On system maintenance mode) 2. Put network driver diskette to floppy A: and use doscp command to copy the file "setup" for installing SCO UNIX Network Driver into UNIX's directory. # cd / # doscp a:/sco/5.x/setup /setup # chmod +x setup # ./setup Install 32-Bit PCI Fast Ethernet Adapter Driver (MDI) Please input source path ? ( ex: a:/sco/5.x )==> a:/sco/5.x 9^ (VOL.000.000 file will be created in the /tmp directory) 3. Run custom to enter software manager procedure. From the menu select: Software -> Install New -> From scosysv (i.e. local host) -> Media Device (select "Media Images") -> keyin full path for "Image Directory" (i.e. /tmp) The "32-Bit PCI Fast Ethernet Driver (r8e) (ver 3.14)" message will appear. Select "Install". When custom has completed, quit custom. 4. Use netconfig utility to add LAN adapter. # netconfig 5. To add adapters, select "Add new LAN adapter" from "Hardware". The message "Select network adapter to be added:" will appear and select "32-Bit PCI Fast Ethernet Adapter (r8e)". 6. "Network Driver Configuration" will appear. Please use arrow key to fill the configuration of your PCI adapter. Enter the configuration of 32-Bit PCI Fast Ethernet Adapter (r8e): Set speed and duplex mode:: | Auto_|v * - indicates conflict with other hardware 7. Select SCO TCP/IP to add protocol. 8. Enter the required information and use [TAB] key to press "OK" Local Host Name: |scosysv_ | IP Address: |192.72.24.55_| Netmask: |255.255.255.0_| Broadcast Address: |192.72.24.255_| Domain Name: |scosysv.com_ | TCP connections: |1024_| Pseudo ttys: |64_| 9. At "Hardware" menu select "Exit" to quit the netconfig utility. 10. Do you want to relink to kernel now ? y 11. Do you want this kernel to boot by default (y/n) y 12. Do you want the kernel environment rebuilt (y/n) y 13. Reboot unix. # shutdown -y -g0 B) LLI Unix Driver Installation for SCO 3.2.4 (ODT 3.0) =4 1. Login as root user. (On system maintenance mode) 2. Put network driver diskette to floppy A: and use doscp command to copy the file "install" for installing SCO UNIX Network Driver into UNIX's directory. # cd / # doscp A:/sco/3.x/install /install # chmod +x /install # ./install Install 32-Bit PCI Fast Ethernet Driver... Please input source path ? ( ex: a:/sco/3.x )==> a:/sco/3.x 7^ 3. Use netconfig utility, available options : # netconfig The screen will display the following messages, and Select item (1) to Add a chain : 1) Add a chain 2) Remove a chain 3) Reconfigure an element in a chain 4) Quit 4. After the above option completed, the screen display next option messages : Select item ( ) : sco_tcp SCO TCP/IP for UNIX 5. When the user completed the above option, then various adapter drivers in SCO UNIX occur and select "32-Bit PCI Fast Ethernet Adapter Driver, board 0" item. 6. Add chain sco_tcp -> r7e0 (y/n), TYPE 'y' 7. Type in the line speed parameter, or just key in "ENTER" for auto detecting line speed. Enter hard_default_setting, or auto, force 100 or 10bps, half or full duplex: (hwset auto 10half 10full 100half 100full) [auto] or 'q' to quit: Type [ENTER] 8. Enter the internet Address of this interface, for example : 192.72.24.55 9. Enter the netmask for this interface (default 255.255.255.0). 10. Does the interface use a broadcast address of all 1's (y/n), default : y 11. Enter the boardcast address for this interface, default : xxx.xx.x.255 press ENTER 12. Are these values correct ? (y/n) TYPE 'y' 13. Pseudo ttys are currently configured, do you want to: 1) Add Pseudo ttys 2) Remove Pseudo ttys Select an option or enter q to quit [q] TYPE 'q' TCP connections currently configured, do you want to: 1) Add TCP Connections 2) Remove TCP Connections Select an option or enter q to quit [q] TYPE 'q' 14. Available options: 1) Add a chain 2) Remove a chain 3) Reconfigure a element in a chain q. Quit Select option: q 15. Do you want to relink to kernel now ? y 16. Do you want this kernel to boot by default (y/n) y 17. Do you want the kernel environment rebuilt (y/n) y 18. Reboot unix. # shutdown -y -g0 - All trademarks or brand names mentioned are properties of their respective companies. S$7.  bQ!)..  bQ!)SPACE C BZ#rDRIVER O *'INFO  y$) aINIT  q$* VPINSTALL  s$S MASTER  )Z#V MNODE  +Z#W RECONF  q$X HREMOVE  8Z#} d!SYSTEM  DZ# L#include "sys/types.h" #include "sys/stream.h" #include "sys/socket.h" #include "/etc/conf/cf.d/config.h" /* #include "config.h" */ #define r7eforce_0 0 #define r7eforce_1 0 #define r7eforce_2 0 #define r7eforce_3 0 /* interrupt level per board */ #if defined(R7E3_UNITS) #define R7EUNIT 4 ushort R7Eicintl[R7EUNIT] = { R7E_0_VECT,R7E1_0_VECT,R7E2_0_VECT,R7E3_0_VECT }; ushort R7Eicioaddr[R7EUNIT] = { R7E_0_SIOA,R7E1_0_SIOA,R7E2_0_SIOA,R7E3_0_SIOA }; #elif defined(R7E2_UNITS) #define R7EUNIT 3 ushort R7Eicintl[R0EUNIT] = { R7E_0_VECT,R7E1_0_VECT,R7E2_0_VECT }; ushort R7Eicioaddr[R7EUNIT] = { R7E_0_SIOA,R7E1_0_SIOA,R7E2_0_SIOA }; #elif defined(R7E1_UNITS) #define R7EUNIT 2 ushort R7Eicintl[R7EUNIT] = { R7E_0_VECT,R7E1_0_VECT }; ushort R7Eicioaddr[R7EUNIT] = { R7E_0_SIOA,R7E1_0_SIOA }; #elif defined(R7E_UNITS) #define R7EUNIT 1 ushort R7Eicintl[R7EUNIT] = { R7E_0_VECT }; ushort R7Eicioaddr[R7EUNIT] = { R7E_0_SIOA }; #endif ushort R7E_BOARDS = R7EUNIT; ushort r7eforce[4] = { r7eforce_0, r7eforce_1, r7eforce_2, r7eforce_3, }; i(V200  y(KDIGICOM 102 Mu(JDIGICOM DDI X(DIGICOM ZIP y((y(m88139TESTDDI (`COREGA  S(tPCI-TXB ZIP )ߓSMC  5[(tSMC1244 ZIP h((h(BSMC1244 DDI ױ(R\PCI-TXB DDI s)6|NETRTSNT  (ӠL}7k.text ,at@ .data hbh@.dataps@.bss .comment\sU(SWV]iLfF"fEjEPjE PhE@PE`EuEDPjEXPtjEHPbjEPfEE$<hLjE>PFpEE`PfEfEhpzKjhuEP<hCEE8P%fEEPE8P E`PfEfE hjhuEPhvEE8PfEEPE8PkE`P[fEfE@h>jhuEPhEE8PfEEPE8PE`PfEfEhqjhuEPbh>i:EE8PKfEEPE8P/^_[USWVE7PEhD EMPfEhk E EEPuh Efh zEEf8h RdEEEEE}7EEEEE;Eh ^_[U(SWV]iLfF"fEh jE7Ph- hEPP{j(EQPijEPPWj2j E7P;jEPfEEPE>PhEPPjEQPjEPPjd^_[USWVuV^_[USWVi] LfC"fEuEHPEHPEE9E^_[USWVi]LfC"fE^_[USWVi]LfC"fEC"PPEMEPC"PPmEQP]EMЀeEPEQP=C"PP-Ee?EPC"PP^_[USWVi]LfC"fEC"PPEMEPC"PPEEPC"RPC"PPEe?EPC"PPu^_[USWVi]LfC"fEhEZP:fC"fEhEZPfC"fEhEZP^_[USWVi]LfC"fEhEZPfC"fEhEZPfC"fEhEZP^_[USWVi]LfC"fEjEZPSfC"fEEZP;EjEZP&fC"fEjEZP fC"fEE^_[U4SWVi]LfC"fEEbPfE܋EfE FFEpEp8E ME DŽfCul=@ #hjhe`K @ E ^_[USWVE@E@piLEDŽDŽjE$P#E@E@8ufOfVSh8LJfLJEE}EMD^_[USWVE @@ u E @  juE @ -jE$PE @ u u u Ru u?u u( ,'H uK6^_[USWV]C8S8'VWVS^_[USWV]CEiELESjj$1EEx hNVF EG@EG@ G $GEE@E@E@ E@EE}(EEMM HEEMMIHF VWs Ws C  W^_[USWVE @ EE@0E@xiLE xE @@ EEEEfxE@l}HE8 E80ECE@ E pE @E@ } Ex (E@j(u썃P E@ (E @M II UJ H}E@E@ +s+sjxu썃P E@ xE @M II xHE@xkEfxE@ECjxPkǃǃǃǃǃE@ E xE pE @u!} Ex E@juCP E@ E @M II H} Ex E@juSk E@ E @M II HnE苋 IHE@ N@E}EM9H E@5uu썃P EMH E @M II MHEfxE@}E@E@Ex E@EEEE@n"EEEEEE9tEM 8ZEMI8HHEMI8H6EMI8H$EMI8HEMI8HvE9 &j@PuG E@ E xE pE @u)EfxE@)}E@Ex E@EEEEEEE9tEM 8_EMI8HMEMI8H;EMI8H)EMI8HEMI8HvE9E@g1EEE9PEMIEMIHEMIHEMI HEMI HEMI HEE@ E xE pXE @uCeEfxE@eEj$PǃE@ E xE pٿE @uĿEfxE@}E@Ex E@EE}EMM LbE@pN-M .$@8@J<>?;<9 ;D@9@d;[:;E @@ u uLE @@ E@ E xE p荾E @u uu^_[ULSWVEEEE@0E@xE@@EiLE @M +A u  E @ EԋEԋ jj@ݽE*j?jE0u u 謽t 蟽E؋E@@ E@ EEMI @HEE@E@E@  NjMAEMсHE@E@E@ E@$E@(E@,E@0E@4E@8E@<u 豼u覼uu蘼`E;{ hskjjE0u u LEԋ@EEEЃ}SEЋM9;{ hjjE0u u ܻ} } E@xXE }>jjE0u {uhRu GEMjj)E*u j?jE0u6 E؋E@@ E@ EEMI HEEMHE@E@ E@E@EEЃ}E@MЊL E@u Ju?uu1E$jjE0u?u EDŽE@@jjйEu 蹹{覹E؋E@@ E@ EEMI HEE@u fu[uuME&E E@Gu uE @ EE @@MAEċEԃx&E E@u uE p许fE܋E @ E̋E M I Hjuu肸 jẼPCPm EffEfEfEE̊MH E̊MH AE E@u u E @Eu ӷE p=&E E@"u u蔷\臷E؋EĀ8^EĊ@PEĊ@BEĊ@4EĊ@&EĊ@E!EEEȋE9Eȍ@fMf f;Eȍ@fMfIf;Eȍ@fMfIf;kEȍ@fMfIf;IEȍ@fMfIf;'Eȍ@fMfIf;E9 EfCMf f;{Ef@fKf;eEf@fKf;OEf@fKf;9Ef@fK f;#Ef@fK!f; E}} }~u CEBE@@ uEf@ E$E$P}u uմE xu 踴u譴uu蝴u Vfu uzBjjE0u)$ fHH^_[UDSWV]u iLfG"fEG G`DPH۳EfEu E@E}TEf@Mf+A fEfEfEfEf9EE@ EG`DP莭fEEPE>Puj?EP+E}j?E

PV ^_[USWV]EE};E%E$Ex u訨^_[USWVEu^_[USWVEu^_[USWVEu^_[USWVEu|^_[U SWV]iLfF"fEE7PߧEeEPE7PçFpFlE7P譧EMEPE7P葧EE`uEDPpE uEpPVExuExP<E8uE|P"^_[U4SWV]iLf~ ~ F fF"fEE7PɦvtvpjEPvlk@WfEfEE$<S]4f}@ f}zE@FlFt9FlnlE8P fEE@MPE8PۥfEfEE@FlFt9FlnlE8P{fEE@MPE8PIF  jE@PEh;E@FlFt9FlnlE8PŤfEE@MPE8P蓤F TFlEvtvpEPEpu%@EEM@UB AE@ EЋEЊ@ EEЊ@ EEfMfH EE܃}E܃kE܋MI 9TE܃E܁*Efx EMI UJ Hr}E@FlFt9FlnlE8PfEE@MPE8PuբEЀ8LEЀx?EЀx2EЀx%EЀxEЀx tEhEEԋE9Eԍ@MЊ 8Eԍ@MЊI8qEԍ@MЊI8VEԍ@MЊI8;Eԍ@MЊI8 Eԍ@MЊI8CE9 E@FlFt9FlnlE8PQfEE@MPE8PuE@FlFt9FlnlE8PǠfEE@MPE8P蕠E܋$Puk3u[EuECu8^_[USWVEE} EEEE EEEE;EEEME u譟^_[U SWVhjhe`~ EE;E{i]LCAE{ 0uC {L&C({(C uC ur^_[Ðr7eLBK fail page 0 LBK fail page 1 LBK fail page 2 LBK fail page 3 LBK test fail TOK or ROK not set !!LBK test Fail TSAD_TOK0 not set!! LBK fail read page 0 LBK test Fail TSAD_TOK1 not set!! LBK fail read page 1 LBK test Fail TSAD_TOK2 not set!! LBK fail read page 2 LBK test Fail TSAD_TOK3 not set!! LBK fail read page 3 @(#)r7e Series STREAMS Driver v1.0 `724x5624x    44 40Glbk_rx_read(): CM_RE CM_TE not set !! lbk_rx_read(): TSD_TOK not set !! ptr_us=%x,*ptr_us=%x lbk_rx_read():header RSR_ROK not set !!lbk_rx_read():header LBKPACLEN not equal !!lbk_rx_read(): data not equal !! reset start !! reset end !! cutfix FAIL !! now force 100full-->8139 force 100 fullduplex!! now force 10 full---> force_mii8139_10(%x):start! Software reset error !! ***r7e: I/O port error for Board %x ***r7e: Please run mkdev r7e with said parameter Command register r/w error 1 !! Command register r/w error 2 !! type=auto, addr=%sethernettype=10, addr=%sethernettype=100, addr=%sethernetSpeed 10 Mbps Speed 100 Mbps Speed 100 Mbps Speed 10 Mbps start 0f MII mode force==%d hardwareDefault mode hwforce==%d current hardware setting is %x Not Hardware mode,we get parameter::%d we have to restart auto negitiation before NWAY::%x after NWAY::%x force(modiied)==%d force speed 10 Speed 10 Mbps force speed 100 Speed 100 Mbps auto mode choice is auto negotiation mode Speed 100 Mbps link down !! link down !! Speed 10 Mbps Speed 100 Mbps MII0 after setup==%x 0123456789abcdefr7e: Board not found! r7e: Attempt to open dead board %x! , boardr7e: board %x opened r7e:Device out of range! r7e: board %x closed r7e: Allocb failure in srv routine! r7e:fd already bound! r7e:fd already in use! r7e: Attempt to bind bad sap = %x r7eopen: db_alloc failed !! r7eopen: sptalloc ERROR !! r7eopen: TX db_alloc failed !! r7eopen: sptalloc ERROR !! r7e: Allocb failure in PacketRx routine! @(#) types.h 23.14 91/11/23 @(#) conf.h 23.6 91/05/21 @(#) param.h 25.2 92/08/03 @(#) s5param.h 23.4 91/03/16 @(#) sysmacros.h 25.2 92/10/26 @(#) stream.h 23.6 91/10/28 @(#) stropts.h 23.1 91/03/03 @(#) errno.h 25.2 92/09/09 @(#) devbuf.h 23.4 91/10/28 @(#) cmn_err.h 25.1 92/06/23 @(#) immu.h 23.8 91/10/30 @(#)head.sys:dlpi.h 1.1.1.1./@/U/v/,/7S'/7SHM/S/-S>C/GdS.3O7eS}S7S ARWuS7SS/7?SW\}S7D *S;@bg};HM_,gl,,,a,7///a./C/X/m/waSa/a / a$ S= 7R ,d ,v , a d  / G8 ^ s D , D , D , ! D= ,[ ,k D ,  , , , 7 ,T ,q ,  , D , ," 7 SI U Z  7  S   7#Lbb@R{bb'7bkDD,D,D,4DP,`D|,D,b)3s3D:D3LM=8=8fD3LM<867<<8QD<836<8<8<ebb@qDbbob//+1@/P1e/u1!/1//1/1/*1?/O1p//1/1/1/1%/:/J1_/o1/1/1D, 5H7sSSSDG 9 J Q ]d w D,  x/G/G/G!/.GX l      9 ( J, > JB T JX j Jn      ,  D!!&!1!6!>!C!_! h!,v! !D!!! !,! !D!!"" 1" :"DX" a",q"1" "D" "," "D" "D"1 #12#GE#G##%###f$$%$.$3$fA$%J$[$`$f~$D$,$1$D$,$D%,%1'%DC%,]%/m%S%/%1%S%C &C*&CK&C]&C|&/&/&/&1&1& &D '"''':'P'U'`'iu'D','D','1'1'D(,!(11(1A(Dn(s((((D(,(D(,)))!)3)9)>)L) U)De)j)))))))****$*2* ;*SD*I*\* e*7u*1* *S********* ++(+8+BK+b+~+++++#+Y+++++ +D,j9,6I,1Y,1g, p,D,3,6,,,,- -+- 4-DL-3l-Lz- -D-----e-V-*.V..V.>).V-.^i. r.D{...D//&4/8I/Dy/&~/8/D/,/D/,/&080DM0D0&080D0,0&080D1,51&:18O1D1D1,1D1,1&182Q2p2|2222 2 2 3 33D3I3q3v333;334P-4PN44P44I484444;%5\D5Pf5k555\6\66ZF6Y6l6[6W656`!7*7WA7Qj7o7x78N'80L889o9!:!y:;:X::P9;!;! <!<;=!==P?;??P?;?X#@8@P@@@@@AA AAAAAA"A&A;AZoAAZAABQ?B4PB]B;KCVCPdCZCCC4CCDD4 DD4DDDDQDD4E;EEPEZE4F,FQCFVF;FFPFZFZ;GZNGHzG!G!GZ)H /tmp/dev$$/sdevice cd $dir } cleanup() { cd / rm -fr /tmp/dev$$ rm -fr /tmp/$base exit $1 } # Removes the given interrupt vector for the $clash device. rmvector() { clash=$1 vec=$2 cd $confdir echo "\nRemoving interrupt vector $vec for the $clash device ..." [ "$vec" = "2" ] && vec=9 major=`./configure -j $clash` && { # remove device but leave it required if [ "$major" != "0" ] then ./configure -d -c -m $major -v $vec -Y >> conflog 2>&1 || { cd $currdir cleanup $FAIL } else sed -e "s/Y/N/" ../sdevice.d/$clash > /tmp/bog$$ mv /tmp/bog$$ ../sdevice.d/$clash fi # remove required setting if no more left if grep "Y" ../sdevice.d/$clash > /dev/null 2>&1 then true elif [ "$major" != "0" ] then ./configure -d -c -m $major -v $vec -R -Y >> conflog 2>&1 || { cd $currdir cleanup $FAIL } fi } cd $currdir return $OK } # On unix, we must check the files in sdevice.d. # Sets the variable $clash to the driver code name if there is a driver that # has already been allocated the given vector. Uses awk. dointclash() { driver=$1 vec=$2 [ "$vec" = "2" ] && vec=9 cd $confdir/../sdevice.d clash=`cat * | awk '{ if ( $6 == intr && $2 == "Y" ) exit } \ END { print $1 }' intr=$vec` cd $currdir [ "$clash" = "" -o "$clash" = "$driver" ] && return $FAIL # found a clash return $OK } checkvec() { driver=$1 vector=$2 clash= currdir=`pwd` while dointclash $driver $vector do prompt_select "Interrupt vector $vector is already in use for the $clash device.\n\n\ The alternatives available to you are:\n\n\ \t1. Continue the installation and remove vector $vector for the $clash device.\n\ \t2. Select a different interrupt vector.\n\n\ Select an option" 1 "1 2" || { cleanup $FAIL } case $result in 1) rmvector $clash $vector || { echo "Failed to remove vector $vector" cleanup $FAIL } makedevs return $OK ;; 2) return $FAIL ;; esac done return $OK } doaddrclash() { driver=$1 addr1=$2 addr2=$3 cd $confdir clash=`../bin/idcheck -ar -l $addr1 -u $addr2 -i /tmp/dev$$` cd $currdir [ "$clash" = "" -o "$clash" = "$driver" ] && return $FAIL # found a clash return $OK } # Removes the $clash device. rmaddr() { clash=$1 cd $confdir echo "\nRemoving the $clash device ..." major=`./configure -j $clash` && { # remove device but leave it required if [ "$major" != "0" ] then ./configure -d -c -m $major -Y >> conflog 2>&1 || { cd $currdir cleanup $FAIL } else sed -e "s/Y/N/" ../sdevice.d/$clash > /tmp/bog$$ mv /tmp/bog$$ ../sdevice.d/$clash fi # remove required setting if no more left if grep "Y" ../sdevice.d/$clash > /dev/null 2>&1 then true elif [ "$major" != "0" ] then ./configure -d -c -m $major -R -Y >> conflog 2>&1 || { cd $currdir cleanup $FAIL } fi } cd $currdir return $OK } checkaddr() { driver=$1 addr1=$2 addr2=$3 clash= currdir=`pwd` while doaddrclash $driver $addr1 $addr2 do if [ "$clash" = "ad" ] then echo "\n\nWARNING: Do not remove the $clash device \c" echo "if you are using an Adaptec disk controller" fi prompt_select "Addresses $addr1-$addr2 are already in use by the $clash device.\n\n\ The alternatives available to you are:\n\n\ \t1. Continue the installation and remove the $clash device.\n\ \tD2. Select a different address.\n\n\ Select an option" 1 "1 2" || { cleanup $FAIL } case $result in 1) rmaddr $clash || { echo "Failed to remove $clash device" cleanup $FAIL } makedevs return $OK ;; 2) return $FAIL ;; esac done return $OK } doramclash() { driver=$1 addr1=$2 addr2=$3 cd $confdir clash=`../bin/idcheck -cr -l $addr1 -u $addr2 -i /tmp/dev$$` cd $currdir [ "$clash" = "" -o "$clash" = "$driver" ] && return $FAIL # found a clash return $OK } checkram() { driver=$1 addr1=$2 addr2=$3 clash= currdir=`pwd` while doramclash $driver $addr1 $addr2 do prompt_yn " Ram addresses $addr1-$addr2 is already in use for the $clash device. You must choose a unique address for this device to work. Do you wish to choose another address now?" y || cleanup $FAIL if [ "$result" = "Y" ] then return $FAIL else cleanup $FAIL fi done return $OK } # On unix, we must check the lines in mdevice file. # Sets the variable $clash to the driver code name if there is a driver that # has already been allocated the given channel. Uses awk. dodmaclash() { driver=$1 chan=$2 clash= # -1 is never a clash [ "$chan" = "-1" ] && return $FAIL cd $confdir clash=`awk '{ if ( $9 == dma ) print $1 }' dma=$chan mdevice` [ "$clash" = "" ] && { cd $currdir return $FAIL } cat ../sdevice.d/$clash | awk '{ if ( $2 == "Y" ) exit 1 }' || return $OK if [ "$rel" = "3.2.0" -o "$rel" = "3.2.1" -o "$rel" = "3.2.2" ] then prompt_yn " DMA channel ${chan} is already in use by the $clash device. However, the $clash device is not currently configured into the kernel. Do you wish to remove DMA channel ${chan} from the $clash device?" y || cleanup $FAIL if [ "$result" = "Y" ] then sed -e "/^$clash .*[0-9]$/{" \ -e 's/[0-9]$/-1/p' \ -e '}' mdevice > /tmp/bog$$ mv /tmp/bog$$ mdevice cd $currdir return $FAIL else cd $currdir return $OK fi fi # Should be release >3.2.2, clash driver not installed if we get here. cd $currdir return $FAIL } # # Check if there is a clash of DMA channels # checkdma() { driver=$1 channel=$2 clash= currdir=`pwd` while dodmaclash $driver $channel do prompt_yn " DMA channel ${channel} is already in use by the $clash device. You must choose a unique channel for this device to work. Do you wish to choose another channel now?" y || cleanup $FAIL if [ "$result" = "Y" ] then return $FAIL else cleanup $FAIL fi done return $OK } check_args() { name=$1 bd=$2 case $name in r7e) echo "Configuring PCI ethernet adapter board $bd"; PREFIX="r7e"; MAX_BD=3; ;; *) echo "ERROR: Unknown LLI driver being configured ($name$bd)"; cleanup $FAIL; ;; esac if [ $bd -gt $MAX_BD ] then echo "ERROR: Only boards 0..$MAX_BD are supported by this driver"; cleanup $FAIL fi echo } # # function to produce the info for the System file for the RTL # boards # system_r7e() { bd=$1 IRQ=0; DMA=-1; FORCE="auto"; BIO=0; EIO=0; BUS=0; DMACHAN=-1 NMINORS="1" #, # clt 11/15/1996# #change space.c file # #set -x prompt_select "Enter hardware_default_setting, or auto, force 100 or 10bps, half or full duplex:" $FORCE "hwset auto 10half 10full 100half 100full" || cleanup $FAIL FORCE=$result [ "$result" = "hwset" ] && FORCE="0" [ "$result" = "auto" ] && FORCE="2" [ "$result" = "10half" ] && FORCE="10" [ "$result" = "10full" ] && FORCE="11" [ "$result" = "100half" ] && FORCE="100" [ "$result" = "100full" ] && FORCE="101" spacef=${CONF}/pack.d/${drv}0/space.c a=`grep "^#define[ ]${drv}force_$bd" $spacef` c="#define ${drv}force_$bd $FORCE" sed "s/${a}/${c}/" $spacef > /tmp/bog$$ cp /tmp/bog$$ $spacef rm /tmp/bog$$ echo "Detect PCI fast ethernet adapter hardware automatically." } # # function to remove address conflicts in the sio driver # sio_conflict() { currdir=`pwd` cd /etc/conf/pack.d/sio if [ "$type" = "386GT" -a "$base" = "tok0" ] then # get rid of sio access to 0x2f0 (Global Interrupt enable) on AT grep "ibm COM3" space.c > /dev/null && { echo "Removing ibm COM3 from link kit..." [ ! -f space.c.rls ] && cp space.c space.c.rls sed -e /"ibm COM3/s/^{/\/* LLI {/p" space.c > /tmp/bog$$ mv /tmp/bog$$ space.c > /dev/null 2>&1 } fi grep "(sd)0x$BIO" space.c > /dev/null && { echo "Removing serial cards using base address 0x$BIO from link kit..." [ ! -f space.c.rls ] && cp space.c space.c.rls sed -e /"(sd)0x$BIO,/s/^{/\/* LLI {/p" space.c > /tmp/bog$$ mv /tmp/bog$$ space.c > /dev/null 2>&1 } cd $currdir } # # determine release, and AT or MCA bus - set rel and type variables accordingly. # os_type() { rel=`sed -n 's/^#rel=\(.*\).$/\1/p' /etc/perms/rts` if [ "$rel" = "3.2.0" -o "$rel" = "3.2.1" -o "$rel" = "3.2.2" ] then type=`sed -n 's/^#typ=\(.*\)$/\1/p' /etc/perms/inst` else # 3.2.4 - one release supports AT, MCA, and EISA. uname -X | grep "BusType = MCA" >/dev/null 2>&1 if [ $? -eq 0 ] then type=386MC else type=386GT fi fi } create_scripts() { if [ $bd -ne $MAX_BD ] then currdir=`pwd` netconfigdir=/usr/lib/netconfig cd $netconfigdir/info newboard=`expr $bd + 1` newfile=${drv}${newboard} cp ${drv}0 $newfile sed -e '/^NAME=.*'"[^0]"'/s/0\"/'$newboard'\"/p' $newfile > /tmp/bog$$ sed -e '/^DESCRIPTION=.*'"[^0]"'/s/0\"/'$newboard'\"/p' /tmp/bog$$ > $newfile rm -r /tmp/bog$$ chown bin $newfile chgrp bin $newfile chmod 750 $newfile cd $netconfigdir/init ln $base ${drv}`expr $bd + 1` > /dev/null 2>&1 cd $netconfigdir/remove ln $base ${drv}`expr $bd + 1` > /dev/null 2>&1 cd $currdir fi } # main() # # # get the name of the init script being run, since one script # is used for multiple drivers; get the number at the end of the # script's name # if [ $# -gt 1 ] then name_below=$1; if_below=$2 name_above=$3; if_above=$4 configure=$5 fi base=`basename $0` drv=`echo $base | sed -e 's/[0-9]*$//` bd=`expr $base : '.*\(.\)'` chains=/usr/lib/lli/chains chain=$base:$name_above confdir=/etc/conf/cf.d makedevs check_args $drv $bd # # Check and manage our internal chains file. # This file allows coexistent mkdev and netconfig calls. # # chain already installed grep $chain $chains > /dev/null 2>& 1 && { # clt test # echo "r7e init check chain error !! (1) chain (2) chains" $chain $chains # clt test # echo $chain >> $chains cleanup $OK } # this board already installed grep $base: $chains > /dev/null 2>& 1 && { echo $base already configured. echo $chain >> $chains [ "$drv" = "tok" -a "$name_above" = "nbe" ] && { space_token } echo "NODE=/etc/conf/node.d/$base" >/tmp/$base.src chmod 777 /tmp/$base.src cleanup $OK } # # Now check that if we are not board zero that board zero is installed # [ "$bd" -ne "0" ] && { grep ${drv}0 $vchains > /dev/null 2>& 1 || { echo "${drv}0 not configured, you must configure it first" cleanup $FAIL } } # # check to see if the driver is already in the kernel link-kit so we can # either add it or update it later on # idcheck -p $base -i /tmp/dev$$ if [ $? -gt 16 ] then installed="TRUE" else installed="FALSE" fi if [ "$bd" = "0" ] then echo "Installing the $drv driver into the link kit" cd /usr/lib/lli/$drv if [ "$installed" = "TRUE" ] then idinstall -u -e -k $base else idinstall -a -e -k $base fi makedevs else idcheck -p ${drv}0 -i /tmp/dev$$ if [ $? -le 16 ] then echo "${drv}0 must be configured before attempting to configure $drv" cleanup 1 fi fi # # create the temporary directory for installing the driver # cd /tmp; rm -rf $base mkdir $base; cd $base DMACHAN="-1" # # set rel, type variables. # os_type # # Do special board dependent processing # system_$drv $bd echo if [ "$IRQ" = "2" ] then IRQ=9 fi echo "$base\tY\t4\t5\t0\t0\t0\t0\t0\t0" >./System # # All the drivers support more than one board. In fact all the code to # support all the boards is in the Driver.o for the board for the 1st board # (eg the e3A0 driver acually contains enough code for the e3A1, e3A2 & e3A3 # boards). As we need a Driver.o to be associated with 2nd, 3rd or 4th board # we install a dummy Driver.o, and a Master and Node which will actually cause # calls into the base driver. # if [ $bd -gt 0 ] then echo "$base - iScH $PREFIX$bd 0 0 1 256 $DMACHAN" >./Master echo "clone $base c $base" >./Node if [ "$installed" = "TRUE" ] then idinstall -u -m -s -n -e -k $base else cp $LIB/Driver.o . idinstall -a -e -k $base fi else echo "$base I iScH $PREFIX 0 0 1 256 $DMACHAN" >./Master idinstall -u -m -s -e -k $base fi # we successfully installed this driver, add it to the chains file echo $chain >> $chains # create next set of info, init, and remove files create_scripts # delete any potential BASE I/O address conflicts with the sio driver [ "$rel" = "3.2.0" -o "$rel" = "3.2.1" -o "$rel" = "3.2.2" ] && sio_conflict echo "NODE=/etc/conf/node.d/$base" >/tmp/$base.src chmod 777 /tmp/$base.src cleanup $RELINK Pq&q3 X  n$)5 X  n$)decho "Install 32-Bit PCI Fast Ethernet Driver..." echo 'Please input source path ? ( ex: a:/sco/3.x) \c' read d_path echo "Please wait . " if [ ! -x /usr/lib/lli/r7e ] then mkdir /usr/lib/lli/r7e fi doscp $d_path/Space.c /usr/lib/lli/r7e/Space.c doscp $d_path/Driver.o /usr/lib/lli/r7e/Driver.o doscp $d_path/Master /usr/lib/lli/r7e/Master doscp $d_path/System /usr/lib/lli/r7e/System doscp $d_path/Node /usr/lib/lli/r7e/Node doscp $d_path/Init /usr/lib/lli/init/r7e0 chmod +x /usr/lib/lli/init/r7e0 doscp $d_path/Reconf /usr/lib/lli/reconf/r7e0 chmod +x /usr/lib/lli/reconf/r7e0 doscp $d_path/Remove /usr/lib/lli/remove/r7e0 chmod +x /usr/lib/lli/remove/r7e0 doscp $d_path/Info /usr/lib/lli/info/r7e0 chmod +x /usr/lib/lli/info/r7e0 doscp $d_path/Init /usr/lib/netconfig/init/r7e0 chmod +x /usr/lib/netconfig/init/r7e0 doscp $d_path/Reconf /usr/lib/netconfig/reconf/r7e0 chmod +x /usr/lib/netconfig/reconf/r7e0 doscp $d_path/Remove /usr/lib/netconfig/remove/r7e0 chmod +x /usr/lib/netconfig/remove/r7e0 doscp $d_path/info /usr/lib/netconfig/info/r7e0 chmod +x /usr/lib/netconfig/info/r7e0 echo "Transfer End ..." src/linux/modules fi cp ./rtl8139.o /usr/src/linux/modules/rtl8139.o TFC3200  (>FW-100TX  V(mFW100V10ZIP (ك(*SVC220  p(SVC220TXZIP (((Y!OTHERS  (XSVC220TXDDI((aTFC3200 TXT ({x(-r7e0 I iScH r7e 0 1 1 256 -1 ()*+,-/12;A<=>?@DC JNOPSTUVWXYZ[\]^_abcdt  vwxyz|~ clone r7e0 c r7e0 at -i' to see if there is a interface 'eth0'. - All trademarks or brand names mentioned are properties of their respective companies. Z\]bdfpijk q€wx{|}…†‡Š‘’—Ÿ ¡­®¯°±²³·¸¿5  # # (C) 1989-1990 The Santa Cruz Operation, Inc. All Rights # Reserved. The user has unlimited right to use, modify # and incorporate this code into other products provided # it is used with SCO products and the user includes # this notice and the associated copyright notices with # any such application. # # # LIB=/usr/lib/lli CONF=/etc/conf PATH=/bin:/usr/bin:/etc/:$CONF/bin:$LIB # # Set possible return codes for this script # OK=0; FAIL=1; RELINK=2; BRAM="0" ERAM="0" # # Prompt the user for a hex value, it must be within a given range # Usage: # prompt_range "Message" default min max [step] # prompt_range() { mesg=$1 default=$2 range_min=$3 range_max=$4 step="1" if [ $# -eq 5 ] then step=$5 fi while : do echo "${mesg} (${range_min}..${range_max}) [${default}] or 'q' to quit: \c" read result case $result in Q|q) return $FAIL ;; "") result=$default ;; esac hc $result $range_min $range_max $step case $? in 0) return $OK;; 1) cleanup $FAIL;; 2) cleanup $FAIL;; esac done } # # Prompt the user to make a selection a list of values # Usage: # prompt_select "Message" default "value_list" prompt_select() { mesg=$1 default=$2 values=$3 while : do if [ "$default" = "" ] then echo "${mesg} (${values}) or 'q' to quit: \c" else echo "${mesg} (${values}) [${default}] or 'q' to quit: \c" fi read result case $result in Q|q) return $FAIL ;; "") result=$default ;; esac for i in $values do if [ "$i" = "$result" ] then return $OK fi done echo "Illegal value, must be one of (${values})" done } # # prompt the user to answer a yes no question or 'q' to quit # Usage: # prompt_yn "Message" default prompt_yn() { mesg=$1 default=$2 while : do echo "${mesg} (y/n) [${default}] or 'q' to quit: \c" read result case $result in q|Q) return $FAIL;; y|Y) result="Y"; return $OK;; n|N) result="N"; return $OK;; "") result=`echo $default | tr "yn" "YN"`; return $OK;; esac echo "Illegal value, please type 'y' 'n' or 'q'" done } # # Fake up an mdevice and an sdevice for idcheck # Do not remove $base if called with an argument... # makedevs() { dir=`pwd` rm -fr /tmp/dev$$ mkdir /tmp/dev$$ cd /etc/conf/cf.d cp mdevice /tmp/dev$$ cd ../sdevice.d cat * > /tmp/dev$$/sdevice [ $1 ] && { u# remove driver being reconfigured from sdevice & mdevice files. sed -e "/^$base/d" < /tmp/dev$$/sdevice > /tmp/bog$$ mv /tmp/bog$$ /tmp/dev$$/sdevice sed -e "/^$base/d" < /tmp/dev$$/mdevice > /tmp/bog$$ mv /tmp/bog$$ /tmp/dev$$/mdevice } cd $dir } cleanup() { cd / rm -fr /tmp/dev$$ rm -fr /tmp/$base exit $1 } # Removes the given interrupt vector for the $clash device. rmvector() { clash=$1 vec=$2 cd $confdir echo "\nRemoving interrupt vector $vec for the $clash device ..." [ "$vec" = "2" ] && vec=9 major=`./configure -j $clash` && { # remove device but leave it required ./configure -d -c -m $major -v $vec -Y >> conflog 2>&1 || { cd $currdir cleanup $FAIL } # remove required setting if no more left if grep "Y" ../sdevice.d/$clash > /dev/null 2>&1 then true else ./configure -d -c -m $major -v $vec -R -Y >> conflog 2>&1 || { cd $currdir cleanup $FAIL } fi } cd $currdir return $OK } # On unix, we must check the files in sdevice.d. # Sets the variable $clash to the driver code name if there is a driver that # has already been allocated the given vector. Uses awk. dointclash() { driver=$1 vec=$2 [ "$vec" = "2" ] && vec=9 cd $confdir/../sdevice.d clash=`cat * | awk '{ if ( $6 == intr && $2 == "Y" ) exit } \ END { print $1 }' intr=$vec` cd $currdir [ "$clash" = "" -o "$clash" = "$driver" ] && return $FAIL # found a clash return $OK } checkvec() { driver=$1 vector=$2 clash= currdir=`pwd` confdir=/etc/conf/cf.d while dointclash $driver $vector do prompt_select "Interrupt vector $vector is already in use for the $clash device.\n\n\ The alternatives available to you are:\n\n\ \t1. Continue the installation and remove vector $vector for the $clash device.\n\ \t2. Select a different interrupt vector.\n\n\ Select an option" 1 "1 2" || { cleanup $FAIL } case $result in 1) rmvector $clash $vector || { echo "Failed to remove vector $vector" cleanup $FAIL } makedevs return $OK ;; 2) return $FAIL ;; esac done return $OK } doaddrclash() { driver=$1 addr1=$2 addr2=$3 cd $confdir clash=`../bin/idcheck -ar -l $addr1 -u $addr2 -i /tmp/dev$$` cd $currdir [ "$clash" = "" -o "$clash" = "$driver" ] && return $FAIL # found a clash return $OK } # Removes the $clash device. rmaddr() { clash=$1 cd $confdir echo "\nRemoving the $clash device ..." major=`./configure -j $clash` && { # remove device but leave it required if [ "$major" != "0" ] then ./configure -d -c -m $major -Y >> conflog 2>&1 || { cd $currdir cleanup $FAIL } else sed -e "s/Y/N/" ../sdevice.d/$clash > /tmp/bog$$ mv /tmp/bog$$ ../sdevice.d/$clash fi # remove required setting if no more left if grep "Y" ../sdevice.d/$clash > /dev/null 2>&1 then true elif [ "$major" != "0" ] then ./configure -d -c -m $major -R -Y >> conflog 2>&1 || { cd $currdir cleanup $FAIL } fi } cd $currdir return $OK } checkaddr() { driver=$1 addr1=$2 addr2=$3 clash= currdir=`pwd` confdir=/etc/conf/cf.d while doaddrclash $driver $addr1 $addr2 do if [ "$clash" = "ad" ] then echo "\n\nWARNING: Do not remove the $clash device \c" echo "if you are using an Adaptec disk controller" fi prompt_select "Addresses $addr1-$addr2 are already in use by the $clash device.\n\n\ The alternatives available to you are:\n\n\ \t1. Continue the installation and remove the $clash device.\n\ \t2. Select a different address.\n\n\ Select an option" 1 "1 2" || { cleanup $FAIL } case $result in 1) rmaddr $clash || { echo "Failed to remove $clash device" cleanup $FAIL } makedevs return $OK ;; 2) return $FAIL ;; esac done return $OK } doramclash() { driver=$1 addr1=$2 addr2=$3 cd $confdir clash=`../bin/idcheck -cr -l $addr1 -u $addr2 -i /tmp/dev$$` cd $currdir [ "$clash" = "" -o "$clash" = "$driver" ] && return $FAIL # found a clash return $OK } checkram() { driver=$1 addr1=$2 addr2=$3 clash= currdir=`pwd` confdir=/etc/conf/cf.d while doramclash $driver $addr1 $addr2 do prompt_yn " Ram addresses $addr1-$addr2 is already in use for the $clash device. You must choose a unique address for this device to work. Do you wish to choose another address now?" y || cleanup $FAIL if [ "$result" = "Y" ] then return $FAIL else cleanup $FAIL fi done return $OK } # On unix, we must check the lines in mdevice file. # Sets the variable $clash to the driver code name if there is a driver that # has already been allocated the given channel. Uses awk. dodmaclash() { driver=$1 chan=$2 clash= # -1 is never a clash [ "$chan" = "-1" ] && return $FAIL cd $confdir clash=`awk '{ if ( $1 != driver && $9 == dma ) print $1 }' dma=$chan driver=$driver mdevice` [ "$clash" = "" ] && { cd $currdir return $FAIL } cd ../sdevice.d cat $clash | awk '{ if ( $2 == "Y" ) exit 1 }' || return $OK if [ "$rel" = "3.2.0" -o "$rel" = "3.2.1" -o "$rel" = "3.2.2" ] then prompt_yn " DMA channel ${chan} is already in use by the $clash device. However, the $clash device is not currently configured into the kernel. Do you wish to remove DMA channel ${chan} from the $clash device?" y || cleanup $FAIL if [ "$result" = "Y" ] then sed -e "s/Y/N/" $clash > /tmp/bog$$ mv /tmp/bog$$ $clash cd $currdir return $FAIL else cd $currdir return $FAIL fi fi # Should be release >3.2.2, clash driver not installed if we get here. cd $currdir return $FAIL } # # Check if there is a clash of DMA channels # checkdma() { driver=$1 channel=$2 clash= currdir=`pwd` confdir=/etc/conf/cf.d while dodmaclash $driver $channel do prompt_yn " DMA channel ${channel} is already in use by the $clash device. You must choose a unique channel for this device to work. Do you wish to choose another channel now?" y || cleanup $FAIL if [ "$result" = "Y" ] then return $FAIL else cleanup $FAIL fi done return $OK } check_args() { name=$1 bd=$2 case $name in r7e) echo "Configuring PCI ethernet adapter board $bd"; PREFIX="r7e"; MAX_BD=3; ;; *) echo "ERROR: Unknown LLI driver being configured ($name$bd)"; cleanup $FAIL; ;;  esac if [ $bd -gt $MAX_BD ] then echo "ERROR: Only boards 0..$MAX_BD are supported by this driver"; cleanup $FAIL fi echo } # # restorevector check for sio (vecs 3-4) and pa drivers (vec 7) # if these are being released by lli then let us restore them to sio or pa restorevector() { currdir=`pwd` cd /etc/conf/cf.d intvector=$1 test="0" [ "$intvector" = "3" -o "$intvector" = "4" ] && { prompt_yn "Restore vector $intvector to sio driver" y [ "$result" = "Y" ] && { echo "Restoring vector $intvector to sio driver" siomajor=`./configure -j sio` ./configure -m $siomajor -c -v $intvector -a -Y return $OK } } [ "$intvector" = "7" ] && { prompt_yn "Restore vector $intvector to pa driver" y [ "$result" = "Y" ] && { echo "Restoring vector $intvector to pa driver" pamajor=`./configure -j pa` ./configure -m $pamajor -c -v $intvector -a -Y return $OK } } return $OK } # # determine release, and AT or MCA bus - set rel and type variables accordingly. # os_type() { rel=`sed -n 's/^#rel=\(.*\).$/\1/p' /etc/perms/rts` if [ "$rel" = "3.2.0" -o "$rel" = "3.2.1" -o "$rel" = "3.2.2" ] then type=`sed -n 's/^#typ=\(.*\)$/\1/p' /etc/perms/inst` else # 3.2.4 - one release supports AT, MCA, and EISA. uname -X | grep "BusType = MCA" >/dev/null 2>&1 if [ $? -eq 0 ] then type=386MC else type=386GT fi fi } # # function to produce the info for the System file for the RTL # boards # system_r7e() { bd=$1 IRQ=0; DMA=-1; FORCE="auto"; BIO=0; EIO=0; BUS=0; DMACHAN=-1 NMINORS="1" #, # clt 11/15/1996# #change space.c file # #set -x #prompt_select "Enter auto, force 100 or 10bps:" $FORCE "auto 10 100" || cleanup $FAIL #FORCE=$result #[ "$result" = "auto" ] && FORCE="0" #[ "$result" = "10" ] && FORCE="10" #[ "$result" = "100" ] && FORCE="100" prompt_select "Enter hardware_default_setting, or auto, force 100 or 10bps, half or full duplex:" $FORCE "hwset auto 10half 10full 100half 100full" || cleanup $FAIL FORCE=$result [ "$result" = "hwset" ] && FORCE="0" [ "$result" = "auto" ] && FORCE="2" [ "$result" = "10half" ] && FORCE="10" [ "$result" = "10full" ] && FORCE="11" [ "$result" = "100half" ] && FORCE="100" [ "$result" = "100full" ] && FORCE="101" spacef=${CONF}/pack.d/${drv}0/space.c a=`grep "^#define[ ]${drv}force_$bd" $spacef` c="#define ${drv}force_$bd $FORCE" sed "s/${a}/${c}/" $spacef > /tmp/bog$$ cp /tmp/bog$$ $spacef rm /tmp/bog$$ echo "Detect PCI fast ethernet adapter hardware automatically." } # main() # # # get the name of the init script being run, since one script # is used for multiple drivers; get the number at the end of the # script's name # if [ $# -gt 1 ] then name_below=$1; if_below=$2 name_above=$3; if_above=$4 configure=$5 fi base=`basename $0` drv=`echo $base | sed -e 's/[0-9]*$//` bd=`expr $base : '.*\(.\)'` makedevs $OK check_args $drv $bd # # verify the driver is in the kernel link-kit # idcheck -p $base -i /tmp/dev$$ if [ $? -le 16 ] then echo "Error: $base driver is not installed" cleanup $FAIL fi echo "Reconfiguring the $drv driver" cd /usr/lib/lli/$drv makedevs # # create the temporary directory for installing the driver # cd /tmp; rm -rf $base mkdir $base; cd $base DMACHAN="-1" # # set rel, type variables. # os_type # get the interrupt vector & Base I/O address for the board that we are removing currdir=`pwd` cd /etc/conf/sdevice.d ivec=`awk '{ if ( $1 != "*" ) print $6 }' < $base` OBIO=`awk '{ if ( $1 != "*" ) print $7 }' < $base` cd $currdir # # Do special board dependent processing # system_$drv $bd echo if [ "$IRQ" = "2" ] then IRQ=9 fi echo "$base\tY\t$NMINORS\t5\t0\t$IRQ\t$BIO\t$EIO\t$BRAM\t$ERAM" >./System # # All the drivers support more than one board. In fact all the code to # support all the boards is in the Driver.o for the board for the 1st board # (eg the e3A0 driver acually contains enough code for the e3A1, e3A2 & e3A3 # boards). As we need a Driver.o to be associated with 2nd, 3rd or 4th board # we install a dummy Driver.o, and a Master and Node which will actually cause # calls into the base driver. # if [ $bd -gt 0 ] then echo "$base - iScH $PREFIX$bd 0 0 1 256 $DMACHAN" >./Master echo "clone $base c $base" >./Node idinstall -u -m -s -n -e -k $base else echo "$base I iScH $PREFIX 0 0 1 256 $DMACHAN" >./Master idinstall -u -m -s -e -k $base fi # delete any potential BASE I/O address conflicts with the sio driver [ "$rel" = "3.2.0" -o "$rel" = "3.2.1" -o "$rel" = "3.2.2" ] && sio_conflict if [ "$ivec" = "3" -o "$ivec" = "4" -o "$ivec" = "7" ] then [ ${ivec} != ${IRQ} ] && restorevector $ivec fi cleanup $RELINK   n$)..  n$)}RTL8139 C &iTRANS  p&;LINUX TXT (b: # # (C) 1989-1990 The Santa Cruz Operation, Inc. All Rights # Reserved. The user has unlimited right to use, modify # and incorporate this code into other products provided # it is used with SCO products and the user includes # this notice and the associated copyright notices with # any such application. # LIB=/usr/lib/lli CONF=/etc/conf PATH=/bin:/usr/bin:/etc/:$CONF/bin:$LIB # # Set possible return codes for this script # OK=0; FAIL=1; RELINK=2; DRIVERINUSE=3; # # prompt the user to answer a yes no question or 'q' to quit # Usage: # prompt_yn "Message" default prompt_yn() { mesg=$1 default=$2 while : do echo "${mesg} (y/n) [${default}] : \c" read result case $result in y|Y) result="Y"; return $OK;; n|N) result="N"; return $OK;; "") result=`echo $default | tr "yn" "YN"`; return $OK;; esac echo "Illegal value, please type 'y' 'n' or 'q'" done } # # Fake up an mdevice and an sdevice for idcheck # makedevs() { rm -fr /tmp/dev$$ mkdir /tmp/dev$$ cd /etc/conf/cf.d cp mdevice /tmp/dev$$ cd ../sdevice.d cat * > /tmp/dev$$/sdevice } # cleanup removes stuff and exits - if $1 = $DRIVERINUSE, exits value is $2 cleanup() { tmp=$1 if [ $tmp -ne $DRIVERINUSE ] then # disallow configuring greater than board zero netconfigdir=/usr/lib/netconfig nextbd=`expr $bd + 1` rm ${netconfigdir}/info/${drv}${nextbd} > /dev/null 2>&1 rm ${netconfigdir}/init/${drv}${nextbd} > /dev/null 2>&1 rm ${netconfigdir}/remove/${drv}${nextbd} > /dev/null 2>&1 else tmp=$2 fi cd / rm -fr /tmp/dev$$ rm -fr /tmp/$base exit $tmp } system_e3A() { # decrement the 2k block buffers for cleanliness awk '/^NBLK2048/ { OLD=$2-8 printf "%s\t%s\n",$1,OLD next } { print } ' < /etc/conf/cf.d/stune > /tmp/bog$$ mv /tmp/bog$$ /etc/conf/cf.d/stune } # # function to remove address conflicts in the sio driver # sio_conflict() { currdir=`pwd` cd /etc/conf/pack.d/sio if [ "$BIO" != "0" ] then grep "/* LLI {.*$BIO" space.c > /dev/null && { echo "Restoring serial cards using base address 0x$BIO into link kit..." sed -e /"LLI.*$BIO,/s/^\/\* LLI //" space.c >/tmp/bog$$ if [ "$base" = "tok0" ] then sed -e /"ibm COM3/s/^\/\* LLI //" /tmp/bog$$ >/tmp/foo$$ mv /tmp/foo$$ /tmp/bog$$  fi mv /tmp/bog$$ space.c } fi cd $currdir } # # function to produce the information for the System file for the token ring # # if tcp is installed we remove the board from /etc/tcp and /etc/strcf # cleantcp() { driver=$1 [ -f /etc/tcp ] && { sed "/$driver/d" /etc/tcp > /tmp/bog$$ cp /tmp/bog$$ /etc/tcp } [ -f /etc/strcf ] && { sed "/$driver/d" /etc/strcf > /tmp/bog$$ cp /tmp/bog$$ /etc/strcf } rm -f /tmp/bog$$ sed "/$driver/d" /etc/conf/cf.d/mdevice > /tmp/bog$$ cp /tmp/bog$$ /etc/conf/cf.d/mdevice sed "/$driver/d" /etc/conf/cf.d/sdevice > /tmp/bog$$ cp /tmp/bog$$ /etc/conf/cf.d/sdevice rm /etc/conf/node.d/$driver rm -r /etc/conf/pack.d/$driver rm /etc/conf/sdevice.d/$driver } # restorevector check for sio (vecs 3-4) and pa drivers (vec 7) # if these are being released by lli then let us restore them to sio or pa restorevector() { currdir=`pwd` cd /etc/conf/cf.d intvector=$1 test="0" [ "$intvector" = "3" ] && test="1" [ "$intvector" = "4" ] && test="1" if [ "$test" = "1" ] then prompt_yn "Restore vector $intvector to sio driver" y [ "$result" = "Y" ] && { echo "Restoring vector $intvector to sio driver" siomajor=`./configure -j sio` ./configure -m $siomajor -c -v $intvector -a -Y return $OK } fi test="0" [ "$intvector" = "7" ] && test="1" if [ "$test" = "1" ] then prompt_yn "Restore vector $intvector to pa driver" y [ "$result" = "Y" ] && { echo "Restoring vector $intvector to pa driver" pamajor=`./configure -j pa` ./configure -m $pamajor -c -v $intvector -a -Y return $OK } fi return $OK } # main() # # # get the name of the init script being run, since one script # is used for multiple drivers; get the number at the end of the # script's name # if [ $# -gt 1 ] then name_below=$1; if_below=$2 name_above=$3; if_above=$4 fi base=`basename $0` drv=`echo $base | sed -e 's/[0-9]*$//` bd=`expr $base : '.*\(.\)'` case $drv in r7e) PREFIX="r7e";; *) echo "ERROR: Unknown LLI driver being configured ($name$bd)"; cleanup $FAIL; ;; esac echo "NODE=/etc/conf/node.d/$base" >/tmp/$base.src chmod 777 /tmp/$base.src # # check to see if the driver is already in the kernel link-kit so we can # either add it or update it later on # makedevs idcheck -p $base if [ $? -gt 16 ] then installed="TRUE" else installed="FALSE" fi if [ "$installed" = "FALSE" ] then cleanup $OK fi # # Check and Manage our internal chains file. # # if our board (base) is not in the chain then we always remove the board # if our board is in the chain then we check for the chain and remove it. # if after our chain is removed from the chains file the board is still there # then we do not remove it. # chains=/usr/lib/lli/chains chain=$base:$name_above if grep $base: $chains > /dev/null 2>& 1 then grep $chain $chains > /dev/null 2>& 1 || { cleanup $OK } # remove our chain awk '{ if ($1 == CHAIN && found != 1) { found = 1 next } print $0 }' CHAIN=$chain < $chains > /tmp/bog$$ cp /tmp/bog$$ $chains rm -f /tmp/bog$$ # Check if it is there in another chain grep $base: $chains > /dev/null 2>& 1 && { cleanup $DRIVERINUSE $OK } else cleanup $OK fi echo "Removing $base..." # Check if we are board zero that no other boards of this type are configured [ "$bd" -eq "0" ] && { grep ${drv}[1-3] $chains > /dev/null 2>& 1 && { echo "Warning, You are removing board 0 before other boards" echo "You must remove the other $drv boards next" echo "or your link-kit will be left in an invalid state" } } # # Do board dependent processing # case $drv in e3A) system_e3A $bd;; esac #if [ $bd -gt 0 ] #then # idinstall -d -e $base # cleanup $RELINK #fi # get the interrupt vector for the board that we are removing cd /etc/conf/sdevice.d ivec=`awk '{ if ( $1 != "*" ) print $6 }' < $base` BIO=`awk '{ if ( $1 != "*" ) print $7 }' < $base` cd /tmp; rm -rf $base mkdir $base; cd $base echo "${base}\tN\t1\t5\t1\t9\t0\t0\t0\t0" >System if [ $bd -gt 0 ] then echo "$base - iScH $PREFIX$bd 0 0 1 256 -1" >./Master else cp $LIB/${drv}/Master ./Master fi idinstall -u -e -s -m $base # restore sio space.c file sio_conflict cleantcp $base restorevector $ivec # Check to see if driver for next board is configured grep ${drv}`expr ${bd} + 1`: $chains > /dev/null 2>& 1 && { cleanup $DRIVERINUSE $RELINK } cleanup $RELINK = X& && & &VR!&=t^øX! uX!! coxA r7e0 N 1 5 0 0 0 0 0 0  get confused by errant DMAs when rebooting. */ static void rl_shutdown(howto, arg) int howto; void *arg; { struct rl_softc *sc = (struct rl_softc *)arg; rl_stop(sc); return; } static struct pci_device rl_device = { "rl", rl_probe, rl_attach, &rl_count, NULL }; DATA_SET(pcidevice_set, rl_device); L.  lQ!) ..  lQ!)RTLSCO5 DRV 5;( vSETUP  S$ 0707070 1006440 301070544556440001010471opt/Distribution/SCO/cdmtFloppyDistribution/3.14/SSO_1_LABEL/000DBASEINFO: type=DISTRIBUTION version=1.0 VOL:0: mediaType=FLOPPY format=SERIAL paperLabel=Floppy Volume 1 mediaLabel=./opt/Distribution/SCO/cdmtFloppyDistribution/3.14/SSO_1_LABEL/000 ARCH:0:0: format=CPIO contents=DATABASES, CONTROL, COMPONENT components=R8E:r8e::3.14 PROD:R8E:netdriver: version=3.14 0707070 11006440 3010705445616604701272opt/K/R8E/r8e/3.14/.softmgmt/shared.dbDBASEINFO: type=SHARED-COMPONENT version=1.0 COMP:R8E:r8e: version=3.14 installStd=SSO-1 description=32-Bit PCI Fast Ethernet Adapter state=FULL-LOADED numFiles=25 subpackages=R8E:r8e:SharedControl, R8E:r8e:ClientControl, R8E:r8e:r8e required=R8E:r8e:SharedControl, R8E:r8e:ClientControl PKG:R8E:r8e:SharedControl: description=Driver Control Package state=FULL-LOADED numFiles=11 fileList=SharedControl.fl PKG:R8E:r8e:ClientControl: description=Driver Control Package state=FULL-LOADED numFiles=3 fileList=ClientControl.fl PKG:R8E:r8e:r8e: description=32-Bit PCI Fast Ethernet Adapter state=FULL-LOADED numFiles=11 fileList=r8e.fl dependencies=SCO:Unix:LINK::, SCO:lli:NCFG:: 0707070 21006440 3010705445746204401164opt/K/R8E/r8e/3.14/.softmgmt/r8e.flPKG R8E:r8e:r8e DIR 0755 bin bin - ./ID/r8e FILE 0555 bin bin 1 34574 3428661866 - - c 0 0 ./ID/r8e/Driver.o FILE 0444 bin bin 1 26 1445304115 - - - 0 0 ./ID/r8e/Master FILE 0644 bin bin 1 88 2863735255 - - c 0 0 ./ID/r8e/System FILE 0444 bin bin 1 124 880877519 - - c 0 0 ./ID/r8e/Node FILE 0644 bin bin 1 2137 2712856764 - - c 0 0 ./ID/r8e/Space.c FILE 0555 bin bin 1 1328 383918534 - - c 0 0 ./ID/r8e/lkcfg DIR 0755 bin bin - ./ID/r8e/AOF FILE 0444 bin bin 1 831 2224637961 - - c 0 0 ./ID/r8e/AOF/r8e FILE 0444 bin bin 1 17567 1634257992 - - c 0 0 ./ID/r8e/r8e.h FILE 0444 bin bin 1 623 3097434721 - - c 0 0 ./ID/r8e/space.h 0707070 31006440 3010705445564405601102opt/K/R8E/r8e/3.14/.softmgmt/SharedControl.flPKG R8E:r8e:SharedControl DIR 0755 bin bin - ./cntl DIR 0755 bin bin - ./cntl/packages FILE 0755 bin bin 1 1600 3262806470 - - c 0 0 ./cntl/ccs FILE 0755 bin bin 1 849 4267095371 - - c 0 0 ./cntl/instlib.sh FILE 0755 bin bin 1 5330 2554786310 - - c 0 0 ./cntl/packages/pkg.drv DIR 0755 bin bin - ./.softmgmt/var DIR 0755 bin bin - ./.softmgmt FILE 0644 bin bin 1 - - - - - 0 0 ./.softmgmt/shared.db FILE 0644 bin bin 1 - - - - - 0 #0 ./.softmgmt/SharedControl.fl FILE 0644 bin bin 1 - - - - - 0 0 ./.softmgmt/r8e.fl FILE 0644 bin bin 1 - - - - - 0 0 ./.softmgmt/ClientControl.fl 0707070 41006440 301070544570560360opt/K/R8E/r8e/3.14/.softmgmt/ClientControl.flPKG R8E:r8e:ClientControl DIR 0755 bin bin - ./.softmgmt/var/.softmgmt FILE 0644 bin bin 1 631 2402143239 - - - 0 0 ./.softmgmt/var/.softmgmt/client.db FILE 0644 bin bin 1 176 3912387055 - - - 0 0 ./.softmgmt/var/.softmgmt/ClientControl.fl 0707070 51006440 3010705445631206501167opt/K/R8E/r8e/3.14/.softmgmt/var/.softmgmt/client.dbDBASEINFO: type=CLIENT-COMPONENT version=1.0 COMP:R8E:r8e: version=3.14 installStd=SSO-1 description=32-Bit PCI Fast Ethernet Adapter state=NOT-ATTACHED numFiles=3 subpackages=R8E:r8e:SharedControl, R8E:r8e:ClientControl, R8E:r8e:r8e required=R8E:r8e:SharedControl, R8E:r8e:ClientControl PKG:R8E:r8e:SharedControl: description=Driver Control Package state=NOT-ATTACHED PKG:R8E:r8e:ClientControl: description=Driver Control Package state=NOT-ATTACHED numFiles=3 fileList=ClientControl.fl PKG:R8E:r8e:r8e: description=32-Bit PCI Fast Ethernet Adapter state=NOT-ATTACHED dependencies=SCO:Unix:LINK::, SCO:lli:NCFG:: 0707070 61006440 301070544556440740260opt/K/R8E/r8e/3.14/.softmgmt/var/.softmgmt/ClientControl.flPKG R8E:r8e:ClientControl DIR 0755 bin bin - ./.softmgmt FILE 0644 bin bin 1 - - - - - 0 0 ./.softmgmt/client.db FILE 0644 bin bin 1 - - - - - 0 0 ./.softmgmt/ClientControl.fl 0707070 71006440 3010705445564405304333opt/K/R8E/r8e/3.14/cntl/packages/pkg.drv.Z1tڶu2]*F!iXycN].ꉥK7}! m˗o-{m{DݷTh>\/DXyoSWU2t稶><%: fM~B)'Xf3:K$(ֈl@$٧U2<,i *)$hA#'ZPS洒}d%H9)Igb >K[LCvB}D*6nirra(-O*4MdMNYʉ3Ֆ>Ψ4zfD.k -M:/]+,m6L#3IuZOd} QkLY>+HF#^,tύIO.lp(85*ܠ[rUU"hzW aFr q!%#(edH0hfBW`vtscmXE&It$xǞm}R}ep.̅ȏ,n 6Wzt[N!\nIk"9\HQSY& l|jU^%A /"bBPME~cPG/K_N㵹zZ](X_|VOn#f.,h1w-ڈmxt\ݶ6 qÁmaOERGtۂO(:VUИgԮ q83;JFXrQT2< W߉s0֠UGcv(ì0707070 101006440 3010705445564403601433opt/K/R8E/r8e/3.14/cntl/ccs.ZkѴܳd*`uV USo>kT|nx2 = MMn|/$?Gx7Hc+fjރhҠކK$pD1 |9t!zmPjP{btw::;>H'IHg()E'HBz5%FSa*?r)PX1˷|WyC y`<ˑRG<$96yGKLDOԄJc_'i{svK|I&9:>zmZ5%naРB:!UmH2jxiʵ:az;gPMJ3zTz6$_- H66ǂ͸2`%p<*߮޼O5I+:WEZ.7 X0kV?٠tC + xz Cl7`/*EF&&1S= he7Pi*S>5t3Δ2/T6?%1C>FpT 1-fwlE7FH1?|X'׾|07JXh8pڿ^g=^ 9\ҺS^kK w Т3ӁcYX!˛ ٰ$s31яXҏCc⸓ ?XKM|F; qZ׷ί.)OR?P_ɔQ0707070 111006440 301070544556440450771opt/K/R8E/r8e/3.14/cntl/instlib.sh.Zk[@>LDKmTߋ",q6b7y[:۟2--D Z]z㽂;Иs@H(5ɬгobwMK(@g:ER6f:,,%xaCHc1r Pƈ;;䟔>Vt[S"uN51Ρ/>.y]~8=v+~<Jl>1N_@ΧPk%Lp3C!HKYB_B`mc[f @kkGEqL 0707070 121006440 30107054455644045032567opt/K/R8E/r8e/3.14/ID/r8e/Driver.o.Z#vh˗va23JJ AkA$d%0j[ F&ػmݻ[v۶jРY,UeVZxT LI-Ks\?{Cބٶےbn1vI(dY$r %$*GU_IͶTqqΏ~I&A|6*?eKѝ~NJ>njh8~]:(}OBO`$5W { $KTlpLi,<nEe"s)WTDhI;r :FE=L Ietvz撑Q)p0OĬx}[kOsp}ѢmUzJ%,kI2hhT %|aڲ˻kgQ$SB+Y"$!֞Z03h] TBce{#\r4DFnr>ٗZ,MiLjuXitm̝̼RE>b3.d!{mC ę|}GtסX* r!YLBp`q N`n} vEk;0\dSczۭRۓO߫sI68_oV=ۼc?P`K:aUgLtL՚atΕ-Iig)^<5A,b,^ГLY^7ܧx;oZ=kDkyi䅿iRIdV-uG^]`=S>9pvx6h!7cp @,qZN;ͺM ,Vاa {0B `MlXjZB:Y]X[4s XTa>iXjϼ;y:ϳ9gS1gpLE5a,OqM>τc){L&<;eE ѼoFx?m4֬DCFtYFGnM*Vobpl^˓5>h`g,9Bzzz:7ٶ\NrW0զ02a٘Nkh@@]e Q =sGMy~nz:0FeO9!jtkx%jC |aϬqaT‹y?4pʴCۙa p*ꅀߚ$?McV_6  `5ǀ D=B?@qB<$x|fȋ ۩ߺ `-j8<RtsJ{8;Q*xjݬZ9/`< U5cׄb8c a)#~6nEA]gA5 #<ƧDENgx8I)e0/wٙ xbpu2>ƹ#JFԙ#!NRhosMaoy|YHmWzn`:%$UPR:kW + %$@7 Ӿ͂p'Z؝a5NZ >' Z[t1k Ioxl.q6R)bTA@&O%h$qEvdn}zWǿF; i1|*š/&'YWX#DjxKv4K1.Zx={xfpj2m|sb` *gU?6ػљfIa] M+ӱAXa+"m|τ[?lsu+0NNi4xnsrΞ=iZ8^ir4/ cd$;hHNNw0R@i(,PS޻ҧφӌdKٜbVD[LM;e&}CkAnI^>5JjF':?_X:#U1TcUbC(!hzw a-̀Y@ KcZa"@]SjAUj?O8 Uds%̀ٷWխzkׄ&ߓ^{s=k_zׅ&ᯬ{_-Z׆r6 V¿־\IhoRrb*J| G=:Nh#=5XxҔ[Ì]sJ.ğӡ >03e*YդŽDXZil{o 6Glk6*=wTh l5`m>WJ-At"ܨM5 £=Q;0^n > gI\+FA|tfzJ ;0_ u̮[ZϵCeLtj84ikz m~p<:Xj;L6l m DBԳ EO{ZpgOFn3FU7=S xT_y<6*CH(KyĸQ:VO…z2^3rsrpJbtzfL+[}A-5ߪk,81a#ibgg&*xJyc祮!Z'M٪TB~T^εHkSFȊdO Ru JY[ +"2IOִY|ae, ,EpQuˮs9{4QJ0` w9$Pᖓ 4̀@\>xꈿqM:p7toe'p7RA?@ )hٙt1gM>~k\ҎC0w&0h lkġ̟]c!2>t /жjгV{#G_)gٰ,Q}Y3yHγu[X{*߁|/ G4tdžD$@+KLQ5KMbx7C/m\W~O 5~XS>xudӖ`{uf^͓Of=J/rR%bJEKa4ɧ7cG<&(:>d0ەF KuzLu;;EeamH{坜媬2?#M4yV𲍜0̜,\rT#A7M>yJ-m 6hot0ߖ[ f޸ho2mY PZES3yu䫯w%&GލSZ*r_sq8&pa)_1}T1YvXy`<˓_XlÚ>=cƎ:yw~ alL4O7njOH?'kkYNUj w>a .LRs /Y׊.}Z<\txbQq:T~1C78 s|{ |Qx>>n!E[^%s s(|>@bA vrs}y[In/ɮ8rOY8__ف`lnTl>C5bD6X8!],K~  ©\0wgyTw7/>br}xoTm[DjMH1{=*618]*&-rnJy|E@ƹS:dHKfB;Kh]74O3joϼVOz '2{*i'zf]ijc2jon9ņ\:Y'p_xW{AB B#Eſ_B;jz4p:JN}x{+p JO `o(~AmHyK^}k|9B DG;;+;F;^F,DwjZL~מ16h3~qw'_'h`U~|ߕ Ogb uza"8d鷮˪v9}SNΘyeEUS|4H S֔#O/x'weo|uZ2I" 5ԸMD#V0y'S^Τ\ )~/_9=~6mxs|=738??6SZ\̃67DɵץD̘HG"AX"Y{F@mpjV=6KbvLA36̝Oojm Z=jYD-DtǫugY͟}빙Bo#!$n1-=}孬5sz U1*&B}Jēy}W ?A#>e޶ Еܯ_ a=h>OR0gp H&&!)ڱ UX ӏGUAo+3.6?b*ZmPDo})r#<x{QjƕE.\T$I0+xg&}=èGAp7M<ŋ>Wx,ɧR'RvwnFE064n!Q7HSu.bhij9$TS!`;=!ɀudI!,SwȮ.Wsـ3pcSEc~w<3ܭ8|d2[M 2JN9ԀU-upuG F&hoQF`JB']ܣقºl$ ~#!UJlmJdnćI; aHF⻭_5z?ڶ/t^:běN2ywsmGNҺrÿoO,'r:ģuoN[숊@CeUc{}w':z[گ %'tfVLl*QXuvX %M{Igk*~iX1"ě[c[5ӝ1z&iǎF 7$8  '<"ԕtj" @1='{!HGS9* PO@ G7t͍%mXv OkV%=.OEHzK=g={i<|!Ry!o<4+2/xj,9o扯|Axx'JZc>|*ꓥgU;lZ&{,#D j͇tN-1 {Po(|+ox@ha/iWM;֪o~TypACOMaD$!G$_& 4GHxYZԛ#',؅RvVB|%չ7:~~| :Ţx״xc21nc ec # Ғze g4Q p(xULuX?!RycVdk/u<^LN6ATy7DxpGKd/isB`toR>u=8ڭ'Z6oeT.opȟgr|9޲\'ZN 䥭}ᒩ\8gZ%J*G6I=ʝG*9gKn\Px|ªOlͯ4լlݸc<vN#ʝ %vy:lQlTjn>67SBq8 J!wO Wb8Ν~Iv1U sKlMskf73T <%ej]6&ayz@bo[MhGf=UrݦPi>РgS;]4ȭGŲFgs)$.U=-k &猿ӇXA <#o \_$/iN} Cu\di9{kIB;d4<>h0=õpi%=?h̀w?3&G0ݶ }{C/вdqYM\ě+)<䜮NIap%&٬ΆM 6' "˻dYb.=eŋu2IIL]f?]n_53$R^d)fWY! g&&eK7l^Pjs<64舘$32JLflYw88&Nidq ljM+(y 6'0 B\խ<Ԓ[uJ_?f&fbx2cscg[F?^G gU;&S s 森w5XmCL,6C_gݙ'7g{),lCrbm``!L,O@>'ufX>&̙D=:#tyNźC@Ő1 qz@:5{Zn3:L+ 1@ Ɂ>)@L`0:0>>9ݑ?  #P)L ā|Lp02D vDw kȀc0Ȉ4GtdGȉґ?ȈdD{ n;C@ ras&QI?F҂DOl?x&HR: Pbv q(g xBGГg&/Gg&/K~B- 7Dߓ?(WHy6k W.C1ۊ-W"r'?*L5ȅeDM ;&.둈6iHr5O5+͒צeC>ʍ0{*5Y8)jOeC? |2;@8ʍG}QYO#V;|<O |RQ֓ v@ȑ VHl{{R'>A"pH}#F*L^ЂD d0:'>@J;w ^fq$XAPD2f@ ́㈟곢G/ΉF Y 9"`W;]0Cm1'1CQ\0 | }&bZ[Ut(@~DSZ+ hF>~A-XJ/֔((Q6((Q FPi($ G%(J=KJ<pamHbHbHb-Hb-HQG%pwD#g!ND-a sD(Hғ?'D[ےKQ$vֆ}ևZзnVօw#[FJ;kF;]PL3QalCflB;+b$#;"yr'9'?DI yGQ璍e{Kj)P9[j*L?āIopD @¡FMMЎB∞Z Y"'"sNTH*%B@D `-܊nCnFyqx?nC uwpD[r1[ z m'Dv1dml戞O"~Q՗\NDOD3ȞH ߢG:B'=q2/42<>b 2Qd%Xw@Bd ~2:2pxl@ }ˉa⊻0=*A;"Ȝ?Dr'>jSyQH@>"I=fHg\N@Ő2d!vO*@85 mw4Fw"'}#dNhDR'"{bv@@pD"xB'"y&ԁ t>ב?ȟDNuA;A @RHȃ= ȝ ֑?D xT\Q 0wda7vA샹B;.GtO$G}Ր1Α;F;QۣqG1wF=aHi1vWt=DO"y( oG/G@IWxG HO%6~'"}Rq{a^#gqdw(D󤏦"t@2p@ z p8{!\y9>#$~l M q`o"H`?^N:;m {Ee0@ۂ&/L]($@D_ c|E =Y_{O"ЉObL_|'X@_Pw }C}C$DM s OϾo]}FQdY^Gã#tp∜:O"~p$CGGz~~B9#"'!_DNG`b DTWȞD%9n{ؒ$ %;Jw;9GjHvr%\G$~q)1HG;/y r$DDL3I${U#B>6ޑ6OTL_I1u l(ڰQ` [RQ%Q GJ>(IFρ@= x'"y 3F$[(GQ IŤ`{XhvGALYx>I$uCUN1<aiBG!>1?dHF Y q8$oc#l!#h_; "GxDvƠFd lj.s#KБ?j51w@ p4k 5 ""bD̔~2' y4Fo9 7 A Z3  |'Drr!^N@Hӄ.a`rHh@R]5 a0;x•"m:bZ@ ^{cźGzϑaQo<20ЪJ;;}c?idM^t(aщW}1g>z(׼r5\g)p3\MNW9_y OyGQߊ?̜ыGj( 2FQ 3!G(e%rA@o=bC9dLY}Z{J8=[|n UrvNFH|Q w#Ӄ"ޱ`,G&3X?4Axkώ ``Ist r0z^~#%̱>\I,5.oi܈>AKg^;s??q6 4,NWDa?`$ `W0;ȱ(1G  `X? 9/fj#xAWY|1Po\l<1>f`?`X?).xyA`߳-u9W׋q pA f_,Hs}ɟ*Q RcNrAP;iq@o4AP;i5h&0{K(X;Թx{OZdFof|ep=Ɍ{<kT}#wwo{t3dՃ%q;ur|pɜ:>b!zV8+GN4IWe}ZqW+7d(ܐlw/%V2 ¿`K[#O?sV΃zZXc!z8=Jh汆 BF]~~}gbcd;X{?ys.c3حУf7-< YV>">3I+h1sǖHyevX9잶^{=N{{^lc?tzIX=<`2a}'g3>1Wf ]X#uAZJ-Zx@jrPf]£!^5ZNѤ|-G0UdjғA!,e\/aʎG\ e!|cQ[QU=[=.4UzVR S2Ni/H~ - BTu}@L' icJ+% とvS,[/MsX=fOdEGd5#i+MJ9&Թ,0707070 131006440 30107054455644042010421opt/K/R8E/r8e/3.14/ID/r8e/r8e.h.Z {ٶvz^G(av(!ÂhQ+T6JI$Si6K% E/x7P6 nwVq%"yok!PM1੺u]"[R@ (JOb}i-1]ad?%E}[y)Cp?<ҍ1ױR4 6؟lav1__Yx`{RBYfK l(>*SA pEY4U\%pX Jc \ 5 ~Hsm([r"XG [nmgK, . yaƣ564.ena/WeA P60V:u6X"m[RIr)a;L)ĢHDrCn;'惲 >oH N GN>a dCO{'M.E.]cXdV.Bx!8pJ2셗RFŅY>_Tp˺LGRIÍ[i!&Nr.)9~Tlh^/naimm~~dtJX"rTN:qPkXeSg*PJ*̸^%L ~)K[ u4X^guY+)iBvy ?y~$zd'Р H222q+TVV֮ąd65Ï{Îh޼/Mj-2HƤV_ Octru.%֞)G ]Q=FWHوʮƱ#v%l8z-"~;fÿk.ʻ34B6cLA=L Ô`* >4Hv.GC+M7b]u3ŝ/&ciA*g-@/ĚL)>dLGXK*;SǐެqYO[9>LdJ?K*5an33%!RHAn 7/0e\Jq(aϔ.e$i93a. [+S;>0i9&,ND梩(HEXx,Y]:Xp ǚ%yi=5b &ǡlJHVH `r FZ`Ku_L3P9jV x TJ| M@t#|콶&~`K%s{{|\EewһpGatxO0]hh@M@z(@ C!D| >(P=p>B9A,'eDyQ!c$hx:x& f 7=-4ޅ7+777A"h'1Z߂6[Xyޭ z"NzB[! !T}>ЍGS"g\o c(FODu++#\}ԚQ+)l.CͩWq^a];V i>9OP Ye8sb^ȠM#6kg~QZ6Ifݻ<OHhsD\e):[˽iۤJl;6e"+Ȯ</`x܋7p:⣺ rK9npԖ_L& | &ƚ .MG(GΌ|90Daq <œ[n{V6i#%c4 `( ' I)1Rmqt+zat>dvD)NB hovh#zjĞxcu&_;P&I>wi =x 虣‡k Ɣwf8qgulzu[ja4&|icQ&SHN'ԷE?>qj5oΚVm@%b oH@(8lNUƆI$k u\,\]-~IF_л ޼#f!ዖ/NHؒ@2AD&K)q/ӊ&T FFE'qE?Y|z"ECAPE"m 0?dN4~yi [m0ZqkVPy7voCVovA') 8}^]۴zịm=P|n|S[_x.1ާJ06";ɻA cϝ@W!:B=.FBELi~.Ku ~AZ(qu>ԐۈI c*HM qB7 \aN1B,'@uX{g8oIHi6oY`Ow$̘vG T<Ew=hpx/&A_yFDN #APU7 a#.KZ=a =NT4}J~eAM"㌻ِ&ct|RW *hr}SR9,[L᤼QE~Rm\[??0[HaIIY8 /X@I\]p{΁h03FZMkIùz>w~kEz9<{ #nzˏR-^ȄNҾUͮXփy/IJ%+)~NkL)(<޻RG?&·T0Wy %-=#ZE:v2Ф@Ű0707070 141006440 3010705445564404401612opt/K/R8E/r8e/3.14/ID/r8e/Space.c.Z-kۮ&ܫ;dH-cD5T.x˹H\6 rZôxg%c Unw\91zp2š(pmB̆LTxdU3Fz=kqڎL@"BԤԣ&Vč)U/t dN Ԗ8hbf LV#I0P=]`6Y0wJFb6Ac{]5 sU3 0-i1hvd .j8(2,Ug^ӛ Bulw!,9)jJPlZZ:#8ڇ_q3;c1P QGX(7E6ތ!褛Ŵ_CɯS;Yq,इqm诀f˸)iqγPP,LQ54MRd0]ʫfg]_4.8(DhM\`]Ч TƱWyTfjBhOy&)jO>E]l5r|uL3!IWߡV,XO\ܐnrns?5qoɞr-\H]X @ܯ?,;{r,Kd+W7Oy D%t5a+;69{".i*d*ϱp_o`QH ߥQ> <ݜPQ'jR5җK\m^E_7&^߱gr#r=#r.0{bNɴBx-`jܹem˹K..5,[9᳜~XwCB^Ƌɽۗ8߫[0&\2 uu<+00707070 151006440 3010705445564404201321opt/K/R8E/r8e/3.14/ID/r8e/lkcfg.Zkܐ|[ZnW-Z  ;FF'w^iU]RK-lMITE?.*bM0ŠtV:yر_c 'R:#`2FҰ,J:zyovf} BLխiC )z2sJq4j!t-b 0bI+i+R9Bˤ]K'"NЭ:$x9p}G>ĨcPsg,X_p: L͋O*ͺUmFYKVt-Kj !/^6,8r=$fGXEyKY>o6|gLV`/yIk_\/1}ُ'U߻ d5CtmL(zir_ؿ#uRLhht:s7BMjhԭ2=KV>b5hv ^'! -Ɵ@p*oHb@ҽ1C`x{} 핤͆I]<7xnR8]lXF(qGeeepDa? 8VVxHLfX?BYCYtVMGv!չLpwTS,Ȋ)o\mO*UՍCNPI >'`M/s0u;'wOCSz0707070 161006440 301070544571660440734opt/K/R8E/r8e/3.14/ID/r8e/AOF/r8e.ZcNRe(+&׈O5`؜sloY1vHn m^wd8w2cGp:OMroy`um8Ndγ1 H2bߘ'FXM6)M*սh; jR]2 蹓HYVH| Y RjE'KjD(rY-uNv9۾Cr>^9%.xOQ~(dßZ+kGߧr?cr)JhOD0B?:ɬC5^FA?h4ǠWKL'a!GFLC&1/s㦿]h,x9hMubvd08QYKu{#5,w<_0707070 201006440 301070544556440410 72opt/K/R8E/r8e/3.14/ID/r8e/Node.Z%Jr8om0YX B XAjh,Fw|>i?0707070 211006440 301070544556440430 36opt/K/R8E/r8e/3.14/ID/r8e/System.Z 8iiP3x 'J! ?0 v \Ϩ0707070 221006440 301070544556440410 32opt/K/R8E/r8e/3.14/ID/r8e/Masterr8e I icSH r8e 0 0 0 1 -1 0707070 231006440 301070544557630560240opt/P/R8E/netdriver/3.14/.softmgmt/product.dbDBASEINFO: type=PRODUCT version=1.0 PROD:R8E:netdriver: version=3.14 installStd=SSO-1 description=32-Bit PCI Fast Ethernet Adapter packages=R8E:r8e::3.14 0707070 241006440 3010130 TRAILER!!!̘vG T<Ew=hpx/&A_yFDN #APU7 a#.KZ=a =NT4}J~eAM"㌻ِ&ct|RW *hr}SR9,[L᤼QE~Rm\[??0[HaIIY8 /X@I =echo "Install 32-Bit PCI Fast Ethernet Adapter Driver (MDI)" echo 'Please input source path ? ( ex: a:/sco/5.x) \c' read d_path echo "Please wait to transfer files ." if [ ! -x /tmp ] then mkdir /tmp fi doscp $d_path/rtlsco5.drv /tmp/VOL.000.000 echo "Transfer End . " echo "Please use 'custom' to install the driver." echo "And follow the following options::" echo " Software/Install New/From 'your computer'/MediaImages" echo "Then enter the directory::/tmp"   n$)?..  n$)=IF_RL C . */ /* This version has CardBus support added. */ static const char *version = "rtl8139.c:v1.08 6/25/99 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/rtl8139.html\n"; /* A few user-configurable values. */ /* Maximum events (Rx packets, etc.) to handle at each interrupt. */ static int max_interrupt_work = 20; #define rtl8129_debug debug static int rtl8129_debug = 1; /* Maximum number of multicast addresses to filter (vs. Rx-all-multicast). The RTL chips use a 64 element hash table based on the Ethernet CRC. */ static int multicast_filter_limit = 32; /* Used to pass the full-duplex flag, etc. */ #define MAX_UNITS 8 /* More are supported, limit only on options */ static int options[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1}; static int full_duplex[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1}; /* Size of the in-memory receive ring. */ #define RX_BUF_LEN_IDX 3 /* 0==8K, 1==16K, 2==32K, 3==64K */ #define RX_BUF_LEN (8192 << RX_BUF_LEN_IDX) /* Size of the Tx bounce buffers -- must be at least (dev->mtu+14+4). */ #define TX_BUF_SIZE 1536 /* PCI Tuning Parameters Threshold is bytes transferred to chip before transmission starts. */ #define TX_FIFO_THRESH 256 /* In bytes, rounded down to 32 byte units. */ /* The following settings are log_2(bytes)-4: 0 == 16 bytes .. 6==1024. */ #define RX_FIFO_THRESH 4 /* Rx buffer level before first PCI xfer. */ #define RX_DMA_BURST 4 /* Maximum PCI burst, '4' is 256 bytes */ #define TX_DMA_BURST 4 /* Calculate as 16< #include #ifdef MODULE #ifdef MODVERSIONS #include #endif #include #else #define MOD_INC_USE_COUNT #define MOD_DEC_USE_COUNT #endif #include #include #include #include #include #include #include #include #include #include #include #include #include /* Processor type for cache alignment. */ #include #include /* Kernel compatibility defines, some common to David Hind's PCMCIA package. This is only in the support-all-kernels source code. */ #define RUN_AT(x) (jiffies + (x)) #if LINUX_VERSION_CODE < 0x20123 #define test_and_set_bit(val, addr) set_bit(val, addr) #endif #if LINUX_VERSION_CODE <= 0x20139 #define net_device_stats enet_statistics #else #define NETSTATS_VER2 #endif #if LINUX_VERSION_CODE < 0x20155 || defined(CARDBUS) /* Gr, the PCI code changed, but did not consider CardBus... */ #include #define PCI_SUPPORT_VER1 #else #define PCI_SUPPORT_VER2 #endif #if LINUX_VERSION_CODE < 0x20159 #define dev_free_skb(skb) dev_kfree_skb(skb, FREE_WRITE); #else #define dev_free_skb(skb) dev_kfree_skb(skb); #endif #if ! defined(CAP_NET_ADMIN) #define capable(CAP_XXX) (suser()) #endif /* The I/O extent. */ #define RTL8129_TOTAL_SIZE 0x80 /* Theory of Operation I. Board Compatibility This device driver is designed for the RealTek RTL8129, the RealTek Fast Ethernet controllers for PCI. This chip is used on a few clone boards. II. Board-specific settings PCI bus devices are configured by the system at boot time, so no jumpers need to be set on the board. The system BIOS will assign the PCI INTA signal to a (preferably otherwise unused) system IRQ line. Note: Kernel versions earlier than 1.3.73 do not support shared PCI interrupt lines. III. Driver operation IIIa. Rx Ring buffers The receive unit uses a single linear ring buffer rather than the more common (and more efficient) descriptor-based architecture. Incoming frames are sequentially stored into the Rx region, and the host copies them into skbuffs. Comment: While it is theoretically possible to process many frames in place, any delay in Rx processing would cause us to drop frames. More importantly, the Linux protocol stack is not designed to operate in this manner. IIIb. Tx operation The RTL8129 uses a fixed set of four Tx descriptors in register space. In a stunningly bad design choice, Tx frames must be 32 bit aligned. Linux aligns the IP header on word boundaries, and 14 byte ethernet header means that almost all frames will need to be copied to an alignment buffer. IVb. References http://www.realtek.com.tw/cn/cn.html http://cesdis.gsfc.nasa.gov/linux/misc/NWay.html IVc. Errata */ /* This table drives the PCI probe routines. It's mostly boilerplate in all of the drivers, and will likely be provided by some future kernel. Note the matching code -- the first table entry matchs all 56** cards but second only the 1234 card. */ enum pci_flags_bit { PCI_USES_IO=1, PCI_USES_MEM=2, PCI_USES_MASTER=4, PCI_ADDR0=0x10<<0, PCI_ADDR1=0x10<<1, PCI_ADDR2=0x10<<2, PCI_ADDR3=0x10<<3, }; struct pci_id_info { const char *name; u16 vendor_id, device_id, device_id_mask, flags; int io_size; struct device *(*probe1)(int pci_bus, int pci_devfn, struct device *dev,  long ioaddr, int irq, int chip_idx, int fnd_cnt); }; static struct device * rtl8129_probe1(int pci_bus, int pci_devfn, struct device *dev, long ioaddr, int irq, int chp_idx, int fnd_cnt); /* Note: change the marked constant in _attach() if the RTL8139B entry moves.*/ static struct pci_id_info pci_tbl[] = {{ "RealTek RTL8129 Fast Ethernet", 0x10ec, 0x8129, 0xf, PCI_USES_IO|PCI_USES_MASTER, 0x80, rtl8129_probe1}, { "RealTek RTL8139 Fast Ethernet", 0x10ec, 0x8139, 0xf, PCI_USES_IO|PCI_USES_MASTER, 0x80, rtl8129_probe1}, { "RealTek RTL8139B PCI/CardBus", 0x10ec, 0x8138, 0xf, PCI_USES_IO|PCI_USES_MASTER, 0x80, rtl8129_probe1}, { "SMC1211TX EZCard 10/100 (RealTek RTL8139)", 0x1113, 0x1211, 0xf, PCI_USES_IO|PCI_USES_MASTER, 0x80, rtl8129_probe1}, { "Accton MPX5030 (RealTek RTL8139)", 0x1113, 0x1211, 0xf, PCI_USES_IO|PCI_USES_MASTER, 0x80, rtl8129_probe1}, { "SiS 900 (RealTek RTL8139) Fast Ethernet", 0x1039, 0x0900, 0xf, PCI_USES_IO|PCI_USES_MASTER, 0x80, rtl8129_probe1}, { "SiS 7016 (RealTek RTL8139) Fast Ethernet", 0x1039, 0x7016, 0xf, PCI_USES_IO|PCI_USES_MASTER, 0x80, rtl8129_probe1}, {0,}, */* 0 terminated list. */ }; /* The capability table matches the chip table above. */ enum {HAS_MII_XCVR=0x01, HAS_CHIP_XCVR=0x02, HAS_LNK_CHNG=0x04}; static int rtl_cap_tbl[] = { HAS_MII_XCVR, HAS_CHIP_XCVR"|HAS_LNK_CHNG, HAS_CHIP_XCVR|HAS_LNK_CHNG, HAS_CHIP_XCVR|HAS_LNK_CHNG, HAS_CHIP_XCVR|HAS_LNK_CHNG, HAS_CHIP_XCVR|HAS_LNK_CHNG, HAS_CHIP_XCVR|HAS_LNK_CHNG, }; /* The rest of these values should never change. */ #define NUM_TX_DESC 4 /* Number of Tx descriptor registers. */ /* Symbolic offsets to registers. */ enum RTL8129_registers { MAC0=0, )/* Ethernet hardware address. */ MAR0=8, )/* Multicast filter. */ TxStatus0=0x10, /* Transmit status (Four 32bit registers). */ TxAddr0=0x20, /* Tx descriptors (also four 32bit). */ RxBuf=0x30, RxEarlyCnt=0x34, RxEarlyStatus=0x36, ChipCmd=0x37, RxBufPtr=0x38, RxBufAddr=0x3A, IntrMask=0x3C, IntrStatus=0x3E, TxConfig=0x40, RxConfig=0x44, Timer=0x48, %/* A general-purpose counter. */ RxMissed=0x4C, /* 24 bits valid, write clears. */ Cfg9346=0x50, Config0=0x51, Config1=0x52, FlashReg=0x54, GPPinData=0x58, GPPinDir=0x59, MII_SMI=0x5A, HltClk=0x5B, MultiIntr=0x5C, TxSummary=0x60, MII_BMCR=0x62, MII_BMSR=0x64, NWayAdvert=0x66, NWayLPAR=0x68, NWayExpansion=0x6A, /* Undocumented registers, but required for proper operation. */ FIFOTMS=0x70, /* FIFO Test Mode Select */ CSCR=0x74, /* Chip Status and Configuration Register. */ PARA78=0x78, PARA7c=0x7c, /* Magic transceiver parameter register. */ }; enum ChipCmdBits { CmdReset=0x10, CmdRxEnb=0x08, CmdTxEnb=0x04, RxBufEmpty=0x01, }; /* Interrupt register bits, using my own meaningful names. */ enum IntrStatusBits { PCIErr=0x8000, PCSTimeout=0x4000, RxFIFOOver=0x40, RxUnderrun=0x20, RxOverflow=0x10, TxErr=0x08, TxOK=0x04, RxErr=0x02, RxOK=0x01, }; enum TxStatusBits { TxHostOwns=0x2000, TxUnderrun=0x4000, TxStatOK=0x8000, TxOutOfWindow=0x20, TxAborted=0x40, TxCarrierLost=0x80, }; enum RxStatusBits { RxMulticast=0x8000, RxPhysical=0x4000, RxBroadcast=0x2000, RxBadSymbol=0x0020, RxRunt=0x0010, RxTooLong=0x0008, RxCRCErr=0x0004, RxBadAlign=0x0002, RxStatusOK=0x0001, }; /* Twister tuning parameters from RealTek. Completely undocumented, but required to tune bad links. */ enum CSCRBits { CSCR_LinkOKBit=0x0400, CSCR_LinkChangeBit=0x0800, CSCR_LinkStatusBits=0x0f000, CSCR_LinkDownOffCmd=0x003c0, CSCR_LinkDownCmd=0x0f3c0, }; unsigned long param[4][4]={ {0x0cb39de43,0x0cb39ce43,0x0fb38de03,0x0cb38de43}, {0x0cb39de43,0x0cb39ce43,0x0cb39ce83,0x0cb39ce83}, {0x0cb39de43,0x0cb39ce43,0x0cb39ce83,0x0cb39ce83}, {0x0bb39de43,0x0bb39ce43,0x0bb39ce83,0x0bb39ce83} }; struct rtl8129_private { char devname[8]; /* Used only for kernel debugging. */ const char *product_name; struct device *next_module; int chip_id; int chip_revision; unsigned char pci_bus, pci_devfn; struct net_device_stats stats; struct timer_list timer; /* Media selection timer. */ unsigned int cur_rx; /* Index into the Rx buffer of next Rx pkt. */ unsigned int cur_tx, dirty_tx, tx_flag; unsigned long tx_full; /* The Tx queue is full. */ /* The saved address of a sent-in-place packet/buffer, for skfree(). */ struct sk_buff* tx_skbuff[NUM_TX_DESC]; unsigned char *tx_buf[NUM_TX_DESC]; /* Tx bounce buffers */ unsigned char *rx_ring; unsigned char *tx_bufs; /* Tx bounce buffer region. */ char phys[4]; +/* MII device addresses. */ char twistie, twist_cnt; /* Twister tune state. */ unsigned int full_duplex:1; /* Full-duplex operation requested. */ unsigned int duplex_lock:1; unsigned int default_port:4; /* Last dev->if_port value. */ unsigned int media2:4; /* Secondary monitored media port. */ unsigned int medialock:1; /* Don't sense media type. */ unsigned int mediasense:1; /* Media sensing in progress. */ }; #ifdef MODULE #if LINUX_VERSION_CODE > 0x20115 MODULE_AUTHOR("Donald Becker "); MODULE_DESCRIPTION("RealTek RTL8129/8139 Fast Ethernet driver"); MODULE_PARM(options, "1-" __MODULE_STRING(MAX_UNITS) "i"); MODULE_PARM(full_duplex, "1-" __MODULE_STRING(MAX_UNITS) "i"); MODULE_PARM(multicast_filter_limit, "i"); MODULE_PARM(max_interrupt_work, "i"); MODULE_PARM(debug, "i"); #endif #endif static int rtl8129_open(struct device *dev); static int read_eeprom(long ioaddr, int location, int addr_len); static int mdio_read(struct device *dev, int phy_id, int location); static void mdio_write(struct device *dev, int phy_id, int location, int val); static void rtl8129_timer(unsigned long data); static void rtl8129_tx_timeout(struct device *dev); static void rtl8129_init_ring(struct device *dev); static int rtl8129_start_xmit(struct sk_buff *skb, struct device *dev); static int rtl8129_rx(struct device *dev); static void rtl8129_interrupt(int irq, void *dev_instance, struct pt_regs *regs); static int rtl8129_close(struct device *dev); static int mii_ioctl(struct device *dev, struct ifreq *rq, int cmd); static struct enet_statistics *rtl8129_get_stats(struct device *dev); static inline u32 ether_crc(int length, unsigned char *data); static void set_rx_mode(struct device *dev); /* A list of all installed RTL8129 devices, for removing the driver module. */ static struct device *root_rtl8129_dev = NULL; /* Ideally we would detect all network cards in slot order. That would be best done a central PCI probe dispatch, which wouldn't work well when dynamically adding drivers. So instead we detect just the Rtl81*9 cards in slot order. */ int rtl8139_probe(struct device *dev) { int cards_found = 0; int pci_index = 0; unsigned char pci_bus, pci_device_fn; if ( ! pcibios_present()) return -ENODEV; for (; pci_index < 0xff; pci_index++) { u16 vendor, device, pci_command, new_command; int chip_idx, irq; long ioaddr; if (pcibios_find_class (PCI_CLASS_NETWORK_ETHERNET << 8, pci_index, &pci_bus, &pci_device_fn) != PCIBIOS_SUCCESSFUL) break; pcibios_read_config_word(pci_bus, pci_device_fn,  PCI_VENDOR_ID, &vendor); pcibios_read_config_word(pci_bus, pci_device_fn,  PCI_DEVICE_ID, &device); for (chip_idx = 0; pci_tbl[chip_idx].vendor_id; chip_idx++) if (vendor == pci_tbl[chip_idx].vendor_id && (device & pci_tbl[chip_idx].device_id_mask) == pci_tbl[chip_idx].device_id) break; if (pci_tbl[chip_idx].vendor_id == 0) /* Compiled out! */ continue; { #if defined(PCI_SUPPORT_VER2) struct pci_dev *pdev = pci_find_slot(pci_bus, pci_device_fn); ioaddr = pdev->base_address[0] & ~3; irq = pdev->irq; #else u32 pci_ioaddr; u8 pci_irq_line; pcibios_read_config_byte(pci_bus, pci_device_fn, PCI_INTERRUPT_LINE, &pci_irq_line); pcibios_read_config_dword(pci_bus, pci_device_fn, PCI_BASE_ADDRESS_0, &pci_ioaddr); ioaddr = pci_ioaddr & ~3; irq = pci_irq_line; #endif } if ((pci_tbl[chip_idx].flags & PCI_USES_IO) && check_region(ioaddr, pci_tbl[chip_idx].io_size)) continue; /* Activate the card: fix for brain-damaged Win98 BIOSes. */ pcibios_read_config_word(pci_bus, pci_device_fn,  PCI_COMMAND, &pci_command); new_command = pci_command | (pci_tbl[chip_idx].flags & 7); if (pci_command != new_command) { printk(KERN_INFO " The PCI BIOS has not enabled the"  " device at %d/%d! Updating PCI command %4.4x->%4.4x.\n",  pci_bus, pci_device_fn, pci_command, new_command); pcibios_write_config_word(pci_bus, pci_device_fn, PCI_COMMAND, new_command); } dev = pci_tbl[chip_idx].probe1(pci_bus, pci_device_fn, dev, ioaddr, irq, chip_idx, cards_found); if (dev && (pci_tbl[chip_idx].flags & PCI_COMMAND_MASTER)) { u8 pci_latency; pcibios_read_config_byte(pci_bus, pci_device_fn, PCI_LATENCY_TIMER, &pci_latency); if (pci_latency < 32) { printk(KERN_NOTICE " PCI latency timer (CFLT) is "  "unreasonably low at %d. Setting to 64 clocks.\n",  pci_latency); pcibios_write_config_byte(pci_bus, pci_device_fn, PCI_LATENCY_TIMER, 64); } } dev = 0; cards_found++; } return cards_found ? 0 : -ENODEV; } static struct device *rtl8129_probe1(int pci_bus, int pci_devfn, struct device *dev, long ioaddr, int irq, int chip_idx, int found_cnt) { static int did_version = 0; /* Already printed version info. */ struct rtl8129_private *tp; int i, option = found_cnt < MAX_UNITS ? options[found_cnt] : 0; if (rtl8129_debug > 0 && did_version++ == 0) printk(KERN_INFO "%s", version); dev = init_etherdev(dev, 0); printk(KERN_INFO "%s: %s at %#lx, IRQ %d, ", dev->name, pci_tbl[chip_idx].name, ioaddr, irq); /* Bring the chip out of low-power mode. */ outb(0x00, ioaddr + Config1); { int addr_len = read_eeprom(ioaddr, 0, 8) == 0x8129 ? 8 : 6; for (i = 0; i < 3; i++) ((u16 *)(dev->dev_addr))[i] = read_eeprom(ioaddr, i+7, addr_len); } for (i = 0; i < 5; i++) printk("%2.2x:", dev->dev#w_addr[i]); printk("%2.2x.\n", dev->dev_addr[i]); /* We do a request_region() to register /proc/ioports info. */ request_region(ioaddr, pci_tbl[chip_idx].io_size, dev->name); dev->base_addr = ioaddr; dev->irq = irq; /* Some data structures must be quadword aligned. */ tp = kmalloc(sizeof(*tp), GFP_KERNEL | GFP_DMA); memset(tp, 0, sizeof(*tp)); dev->priv = tp; tp->next_module = root_rtl8129_dev; root_rtl8129_dev = dev; tp->chip_id = chip_idx; tp->pci_bus = pci_bus; tp->pci_devfn = pci_devfn; /* Find the connected MII xcvrs. Doing this in open() would allow detecting external xcvrs later, but takes too much time. */ if (rtl_cap_tbl[chip_idx] & HAS_MII_XCVR) { int phy, phy_idx; for (phy = 0, phy_idx = 0; phy < 32 && phy_idx < sizeof(tp->phys); phy++) { int mii_status = mdio_read(dev, phy, 1); if (mii_status != 0xf && mii_status != 0x0) { tp->phys[phy_idx++] = phy; printk(KERN_INFO "%s: MII transceiver found at address %d.\n",  dev->name, phy); } } if (phy_idx == 0) { printk(KERN_INFO "%s: No MII transceivers found! Assuming SYM "  "transceiver.\n",  dev->name); tp->phys[0] = -1; } } else tp->phys[0] = 32; /* Put the chip into low-power mode. */ outb(0xC0, ioaddr + Cfg9346); outb(0x03, ioaddr + Config1); outb('H', ioaddr + HltClk); /* 'R' would leave the clock running. */ /* The lower four bits are the media type. */ if (option > 0) { tp->full_duplex = (option & 0x200) ? 1 : 0; tp->default_port = option & 15; if (tp->default_port) tp->medialock = 1; } if (found_cnt < MAX_UNITS && full_duplex[found_cnt] > 0) tp->full_duplex = full_duplex[found_cnt]; if (tp->full_duplex) { printk(KERN_INFO "%s: Media type forced to Full Duplex.\n", dev->name); mdio_write(dev, tp->phys[0], 4, 0x141); tp->duplex_lock = 1; } /* The Rtl8129-specific entries in the device structure. */ dev->open = &rtl8129_open; dev->hard_start_xmit = &rtl8129_start_xmit; dev->stop = &rtl8129_close; dev->get_stats = &rtl8129_get_stats; dev->set_multicast_list = &set_rx_mode; dev->do_ioctl = &mii_ioctl; return dev; } /* Serial EEPROM section. */ /* EEPROM_Ctrl bits. */ #define EE_SHIFT_CLK 0x04 /* EEPROM shift clock. */ #define EE_CS 0x08 /* EEPROM chip select. */ #define EE_DATA_WRITE 0x02 /* EEPROM chip data in. */ #define EE_WRITE_0 0x00 #define EE_WRITE_1 0x02 #define EE_DATA_READ 0x01 /* EEPROM chip data out. */ #define EE_ENB (0x80 | EE_CS) /* Delay between EEPROM clock transitions. No extra delay is needed with 33Mhz PCI, but 66Mhz may change this. */ #define eeprom_delay() inl(ee_addr) /* The EEPROM commands include the alway-set leading bit. */ #define EE_WRITE_CMD (5) #define EE_READ_CMD (6) #define EE_ERASE_CMD (7) static int read_eeprom(long ioaddr, int location, int addr_len) { int i; unsigned retval = 0; long ee_addr = ioaddr + Cfg9346; int read_cmd = location | (EE_READ_CMD << addr_len); outb(EE_ENB & ~EE_CS, ee_addr); outb(EE_ENB, ee_addr); /* Shift the read command bits out. */ for (i = 4 + addr_len; i >= 0; i--) { int dataval = (read_cmd & (1 << i)) ? EE_DATA_WRITE : 0; outb(EE_ENB | dataval, ee_addr); eeprom_delay(); outb(EE_ENB | dataval | EE_SHIFT_CLK, ee_addr); eeprom_delay(); } outb(EE_ENB, ee_addr); eeprom_delay(); for (i = 16; i > 0; i--) { outb(EE_ENB | EE_SHIFT_CLK, ee_addr); eeprom_delay(); retval = (retval << 1) | ((inb(ee_addr) & EE_DATA_READ) ? 1 : 0); outb(EE_ENB, ee_addr); eeprom_delay(); } /* Terminate the EEPROM access. */ outb(~EE_CS, ee_addr); return retval; } /* MII serial management: mostly bogus for now. */ /* Read and write the MII management registers using software-generated serial MDIO protocol. The maximum data clock rate is 2.5 Mhz. The minimum timing is usually met by back-to-back PCI I/O cycles, but we insert a delay to avoid "overclocking" issues. */ #define MDIO_DIR 0x80 #define MDIO_DATA_OUT 0x04 #define MDIO_DATA_IN 0x02 #define MDIO_CLK 0x01 #define MDIO_WRITE0 (MDIO_DIR) #define MDIO_WRITE1 (MDIO_DIR | MDIO_DATA_OUT) #define mdio_delay() inb(mdio_addr) static char mii_2_8139_map[8] = {MII_BMCR, MII_BMSR, 0, 0, NWayAdvert,  NWayLPAR, NWayExpansion, 0 }; /* Syncronize the MII management interface by shifting 32 one bits out. */ static void mdio_sync(long mdio_addr) { int i; for (i = 32; i >= 0; i--) { outb(MDIO_WRITE1, mdio_addr); mdio_delay(); outb(MDIO_WRITE1 | MDIO_CLK, mdio_addr); mdio_delay(); } return; } static int mdio_read(struct device *dev, int phy_id, int location) { long mdio_addr = dev->base_addr + MII_SMI; int mii_cmd = (0xf6 << 10) | (phy_id << 5) | location; int retval = 0; int i; if (phy_id > 31) { /* Really a 8139. Use internal registers. */ return location < 8 && mii_2_8139_map[location] ? inw(dev->base_addr + mii_2_8139_map[location]) : 0; } mdio_sync(mdio_addr); /* Shift the read command bits out. */ for (i = 15; i >= 0; i--) { int dataval = (mii_cmd & (1 << i)) ? MDIO_DATA_OUT : 0; outb(MDIO_DIR | dataval, mdio_addr); mdio_delay(); outb(MDIO_DIR | dataval | MDIO_CLK, mdio_addr); mdio_delay(); } /* Read the two transition, 16 data, and wire-idle bits. */ for (i = 19; i > 0; i--) { outb(0, mdio_addr); mdio_delay(); retval = (retval << 1) | ((inb(mdio_addr) & MDIO_DATA_IN) ? 1 : 0); outb(MDIO_CLK, mdio_addr); mdio_delay(); } return (retval>>1) & 0xf; } static void mdio_write(struct device *dev, int phy_id, int location, int value) { long mdio_addr = dev->base_addr + MII_SMI; int mii_cmd = (0x5002 << 16) | (phy_id << 23) | (location<<18) | value; int i; if (phy_id > 31) { /* Really a 8139. Use internal registers. */ if (location < 8 && mii_2_8139_map[location]) outw(value, dev->base_addr + mii_2_8139_map[location]); return; } mdio_sync(mdio_addr); /* Shift the command bits out. */ for (i = 31; i >= 0; i--) { int dataval = (mii_cmd & (1 << i)) ? MDIO_WRITE1 : MDIO_WRITE0; outb(dataval, mdio_addr); mdio_delay(); outb(dataval | MDIO_CLK, mdio_addr); mdio_delay(); } /* Clear out extra bits. */ for (i = 2; i > 0; i--) { outb(0, mdio_addr); mdio_delay(); outb(MDIO_CLK, mdio_addr); mdio_delay(); } return; } static int rtl8129_open(struct device *dev) { struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv; long ioaddr = dev->base_addr; int i; /* Soft reset the chip. */ outb(CmdReset, ioaddr + ChipCmd); if (request_irq(dev->irq, &rtl8129_interrupt, SA_SHIRQ, dev->name, dev)) { return -EAGAIN; } MOD_INC_USE_COUNT; tp->tx_bufs = kmalloc(TX_BUF_SIZE * NUM_TX_DESC, GFP_KERNEL); tp->rx_ring = kmalloc(RX_BUF_LEN + 16, GFP_KERNEL); if (tp->tx_bufs == NULL || tp->rx_ring == NULL) { if (tp->tx_bufs) kfree(tp->tx_bufs); if (rtl8129_debug > 0) printk(KERN_ERR "%s: Couldn't allocate a %d byte receive ring.\n",  dev->name, RX_BUF_LEN); return -ENOMEM; } rtl8129_init_ring(dev); /* Check that the chip has finished the reset. */ for (i = 1000; i > 0; i--) if ((inb(ioaddr + ChipCmd) & CmdReset) == 0) break; for (i = 0; i < 6; i++) outb(dev->dev_addr[i], ioaddr + MAC0 + i); /* Must enable Tx/Rx before setting transfer thresholds! */ outb(CmdRxEnb | CmdTxEnb, ioaddr + ChipCmd); outl((RX_FIFO_THRESH << 13) | (RX_BUF_LEN_IDX << 11) | (RX_DMA_BURST<<8), ioaddr + RxConfig); outl((TX_DMA_BURST<<8)|0x030, ioaddr + TxConfig); tp->tx_flag = (TX_FIFO_THRESH<<11) & 0x003f0; tp->full_duplex = tp->duplex_lock; if (tp->phys[0] >= 0 || (rtl_cap_tbl[tp->chip_id] & HAS_MII_XCVR)) { u16 mii_reg5 = mdio_read(dev, tp->phys[0], 5); if (mii_reg5 == 0xf) ; '/* Not there */ else if ((mii_reg5 & 0x0100) == 0x0100  || (mii_reg5 & 0x00C0) == 0x0040) tp->full_duplex = 1; if (rtl8129_debug > 1) printk(KERN_INFO"%s: Setting %s%s-duplex based on"  " auto-negotiated partner ability %4.4x.\n", dev->name,  mii_reg5 == 0 ? "" :  (mii_reg5 & 0x0180) ? "100mbps " : "10mbps ",  tp->full_duplex ? "full" : "half", mii_reg5); } outb(0xC0, ioaddr + Cfg9346); outb(tp->full_duplex ? 0x60 : 0x20, ioaddr + Config1); outb(0x00, ioaddr + Cfg9346); outl(virt_to_bus(tp->rx_ring), ioaddr + RxBuf); /* Start the chip's Tx and Rx process. */ outl(0, ioaddr + RxMissed); set_rx_mode(dev); outb(CmdRxEnb | CmdTxEnb, ioaddr + ChipCmd); dev->tbusy = 0; dev->interrupt = 0; dev->start = 1; /* Enable all known interrupts by setting the interrupt mask. */ outw(PCIErr | PCSTimeout | RxUnderrun | RxOverflow | RxFIFOOver | TxErr | TxOK | RxErr | RxOK, ioaddr + IntrMask); if (rtl8129_debug > 1) printk(KERN_DEBUG"%s: rtl8129_open() ioaddr %#lx IRQ %d" " GP Pins %2.2x %s-duplex.\n", dev->name, ioaddr, dev->irq, inb(ioaddr + GPPinData), tp->full_duplex ? "full" : "half"); /* Set the timer to switch to check for link beat and perhaps switch to an alternate media type. */ init_timer(&tp->timer); tp->timer.expires = RUN_AT((2#4*HZ)/10); /* 2.4 sec. */ tp->timer.data = (unsigned long)dev; tp->timer.function = &rtl8129_timer; add_timer(&tp->timer); return 0; } static void rtl8129_timer(unsigned long data) { struct device *dev = (struct device *)data; struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv; long ioaddr = dev->base_addr; int next_tick = 60*HZ; int mii_reg5 = mdio_read(dev, tp->phys[0], 5); if (! tp->duplex_lock && mii_reg5 != 0xf) { int duplex = (mii_reg5&0x0100) || (mii_reg5 & 0x01C0) == 0x0040; if (tp->full_duplex != duplex) { tp->full_duplex = duplex; printk(KERN_INFO "%s: Setting %s-duplex based on MII #%d link"  " partner ability of %4.4x.\n", dev->name,  tp->full_duplex ? "full" : "half", tp->phys[0], mii_reg5); outb(0xC0, ioaddr + Cfg9346); outb(tp->full_duplex ? 0x60 : 0x20, ioaddr + Config1); outb(0x00, ioaddr + Cfg9346); } } /* Check for bogusness. */ if (inw(ioaddr + IntrStatus) & (TxOK | RxOK)) { int status = inw(ioaddr + IntrStatus); if (status & (TxOK | RxOK)) { /* Double check */ printk(KERN_ERR "%s: RTL8139 Interrupt line blocked, status %x.\n",  dev->name, status); rtl8129_interrupt(dev->irq, dev, 0); } } if (dev->tbusy && jiffies - dev->trans_start >= 2*TX_TIMEOUT) rtl8129_tx_timeout(dev); #if 0 if (tp->twistie) { unsigned int CSCRval = inw(ioaddr + CSCR); /* Read link status. */ if (tp->twistie == 1) { if (CSCRval & CSCR_LinkOKBit) { outw(CSCR_LinkDownOffCmd, ioaddr + CSCR); tp->twistie = 2; next_tick = HZ/10; } else { outw(CSCR_LinkDownCmd, ioaddr + CSCR); outl(FIFOTMS_default,ioaddr + FIFOTMS); outl(PARA78_default ,ioaddr + PARA78); outl(PARA7c_default ,ioaddr + PARA7c); tp->twistie = 0; } } else if (tp->twistie == 2) { int linkcase = (CSCRval & CSCR_LinkStatusBits) >> 12; int row; if (linkcase >= 0x7000) row = 3; else if (linkcase >= 0x3000) row = 2; else if (linkcase >= 0x1000) row = 1; else row = 0; tp->twistie == row + 3; outw(0,ioaddr+FIFOTMS); outl(param[row][0], ioaddr+PARA7c); tp->twist_cnt = 1; } else { outl(param[tp->twistie-3][tp->twist_cnt], ioaddr+PARA7c); if (++tp->twist_cnt < 4) { next_tick = HZ/10; } else if (tp->twistie-3 == 3) { if ((CSCRval & CSCR_LinkStatusBits) != 0x7000) { outl(PARA7c_xxx, ioaddr+PARA7c); next_tick = HZ/10; /* 100ms. */ outl(FIFOTMS_default, ioaddr+FIFOTMS); outl(PARA78_default, ioaddr+PARA78); outl(PARA7c_default, ioaddr+PARA7c); tp->twistie == 3 + 3; outw(0,ioaddr+FIFOTMS); outl(param[3][0], ioaddr+PARA7c); tp->twist_cnt = 1; } } } } #endif if (rtl8129_debug > 2) { if (rtl_cap_tbl[tp->chip_id] & HAS_MII_XCVR) printk(KERN_DEBUG"%s: Media selection tick, GP pins %2.2x.\n",  dev->name, inb(ioaddr + GPPinData)); else printk(KERN_DEBUG"%s: Media selection tick, Link partner %4.4x.\n",  dev->name, inw(ioaddr + NWayLPAR)); printk(KERN_DEBUG"%s: Other registers are IntMask %4.4x IntStatus %4.4x" " RxStatus %4.4x.\n", dev->name, inw(ioaddr + IntrMask), inw(ioaddr + IntrStatus), inl(ioaddr + RxEarlyStatus)); printk(KERN_DEBUG"%s: Chip config %2.2x %2.2x.\n", dev->name, inb(ioaddr + Config0), inb(ioaddr + Config1)); } tp->timer.expires = RUN_AT(next_tick); add_timer(&tp->timer); } static void rtl8129_tx_timeout(struct device *dev) { struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv; long ioaddr = dev->base_addr; int mii_reg, i; if (rtl8129_debug > 0) printk(KERN_WARNING "%s: Transmit timeout, status %2.2x %4.4x " "media %2.2x.\n", dev->name, inb(ioaddr + ChipCmd), inw(ioaddr + IntrStatus), inb(ioaddr + GPPinData)); /* Disable interrupts by clearing the interrupt mask. */ outw(0x0, ioaddr + IntrMask); /* Emit info to figure out what went wrong. */ printk("%s: Tx queue start entry %d dirty entry %d%s.\n", dev->name, tp->cur_tx, tp->dirty_tx, tp->tx_full ? ", full" : ""); for (i = 0; i < NUM_TX_DESC; i++) printk(KERN_DEBUG"%s: Tx descriptor %d is %8.8x.%s\n", dev->name, i, inl(ioaddr + TxStatus0 + i*4), i == tp->dirty_tx % NUM_TX_DESC ? " (queue head)" : ""); printk(KERN_DEBUG"%s: MII #%d registers are:", dev->name, tp->phys[0]); for (mii_reg = 0; mii_reg < 8; mii_reg++) printk(" %4.4x", mdio_read(dev, tp->phys[0], mii_reg)); printk(".\n"); /* Soft reset the chip. */ outb(CmdReset, ioaddr + ChipCmd); /* Check that the chip has finished the reset. */ for (i = 1000; i > 0; i--) if ((inb(ioaddr + ChipCmd) & CmdReset) == 0) break; for (i = 0; i < 6; i++) outb(dev->dev_addr[i], ioaddr + MAC0 + i); outb(0x00, ioaddr + Cfg9346); tp->cur_rx = 0; /* Must enable Tx/Rx before setting transfer thresholds! */ outb(CmdRxEnb | CmdTxEnb, ioaddr + ChipCmd); outl((RX_FIFO_THRESH << 13) | (RX_BUF_LEN_IDX << 11) | (RX_DMA_BURST<<8), ioaddr + RxConfig); outl((TX_DMA_BURST<<8), ioaddr + TxConfig); set_rx_mode(dev); { 7/* Save the unsent Tx packets. */ struct sk_buff *saved_skb[NUM_TX_DESC], *skb; int j; for (j = 0; tp->cur_tx - tp->dirty_tx > 0 ; j++, tp->dirty_tx++) saved_skb[j] = tp->tx_skbuff[tp->dirty_tx % NUM_TX_DESC]; tp->dirty_tx = tp->cur_tx = 0; for (i = 0; i < j; i++) { skb = tp->tx_skbuff[i] = saved_skb[i]; if ((long)skb->data & 3) { /* Must use alignment buffer. */ memcpy(tp->tx_buf[i], skb->data, skb->len); outl(virt_to_bus(tp->tx_buf[i]), ioaddr + TxAddr0 + i*4); } else outl(virt_to_bus(skb->data), ioaddr + TxAddr0 + i*4); /* Note: the chip doesn't have auto-pad! */ outl(tp->tx_flag | (skb->len >= ETH_ZLEN ? skb->len : ETH_ZLEN),  ioaddr + TxStatus0 + i*4); } tp->cur_tx = i; while (i < NUM_TX_DESC) tp->tx_skbuff[i++] = 0; if (tp->cur_tx - tp->dirty_tx < NUM_TX_DESC) {/* Typical path */ dev->tbusy = 0; tp->tx_full = 0; } else { tp->tx_full = 1; } } dev->trans_start = jiffies; tp->stats.tx_errors++; /* Enable all known interrupts by setting the interrupt mask. */ outw(PCIErr | PCSTimeout | RxUnderrun | RxOverflow | RxFIFOOver | TxErr | TxOK | RxErr | RxOK, ioaddr + IntrMask); return; } /* Initialize the Rx and Tx rings, along with various 'dev' bits. */ static void rtl8129_init_ring(struct device *dev) { struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv; int i; tp->tx_full = 0; tp->cur_rx = 0; tp->dirty_tx = tp->cur_tx = 0; for (i = 0; i < NUM_TX_DESC; i++) { tp->tx_skbuff[i] = 0; tp->tx_buf[i] = &tp->tx_bufs[i*TX_BUF_SIZE]; } } static int rtl8129_start_xmit(struct sk_buff *skb, struct device *dev) { struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv; long ioaddr = dev->base_addr; int entry; /* Block a timer-based transmit from overlapping. This could better be done with atomic_swap(1, dev->tbusy), but set_bit() works as well. */ if (test_and_set_bit(0, (void*)&dev->tbusy) != 0) { if (jiffies - dev->trans_start >= TX_TIMEOUT) rtl8129_tx_timeout(dev); return 1; } /* Calculate the next Tx descriptor entry. */ entry = tp->cur_tx % NUM_TX_DESC; tp->tx_skbuff[entry] = skb; if ((long)skb->data & 3) { /* Must use alignment buffer. */ memcpy(tp->tx_buf[entry], skb->data, skb->len); outl(virt_to_bus(tp->tx_buf[entry]), ioaddr + TxAddr0 + entry*4); } else outl(virt_to_bus(skb->data), ioaddr + TxAddr0 + entry*4); /* Note: the chip doesn't have auto-pad! */ outl(tp->tx_flag | (skb->len >= ETH_ZLEN ? skb->len : ETH_ZLEN), ioaddr + TxStatus0 + entry*4); /* There is a race condition here -- we might read dirty_tx, take an interrupt that clears the Tx queue, and only then set tx_full. So we do this in two phases. */ if (++tp->cur_tx - tp->dirty_tx < NUM_TX_DESC) { /* Typical path */ clear_bit(0, (void*)&dev->tbusy); } else { set_bit(0, &tp->tx_full); if (tp->cur_tx - tp->dirty_tx < NUM_TX_DESC) { clear_bit(0, (void*)&dev->tbusy); clear_bit(0, &tp->tx_full); } } dev->trans_start = jiffies; if (rtl8129_debug > 4) printk(KERN_DEBUG"%s: Queued Tx packet at %p size %d to slot %d.\n", dev->name, skb->data, (int)skb->len, entry); return 0; } /* The interrupt handler does all of the Rx thread work and cleans up after the Tx thread. */ static void rtl8129_interrupt(int irq, void *dev_instance, struct pt_regs *regs) { struct device *dev = (struct device *)dev_instance; struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv; int boguscnt = max_interrupt_work; int status, link_changed = 0; long ioaddr = dev->base_addr; #if defined(__i386__) /* A lock to prevent simultaneous entry bug on Intel SMP machines. */ if (test_and_set_bit(0, (void*)&dev->interrupt)) { printk(KERN_ERR"%s: SMP simultaneous entry of an interrupt handler.\n", dev->name); dev->interrupt = 0; /* Avoid halting machine. */ return; } #else if (dev->interrupt) { printk(KERN_ERR "%s: Re-entering the interrupt handler.\n", dev->name); return; } dev->interrupt = 1; #endif do { status = inw(ioaddr + IntrS#tatus); /* Acknowledge all of the current interrupt sources ASAP, but an first get an additional status bit from CSCR. */ if ((status & RxUnderrun) && inw(ioaddr+CSCR) & CSCR_LinkChangeBit) link_changed = 1; outw(status, ioaddr + IntrStatus); if (rtl8129_debug > 4) printk(KERN_DEBUG"%s: interrupt status=%#4.4x new intstat=%#4.4x.\n",  dev->name, status, inw(ioaddr + IntrStatus)); if ((status & (PCIErr|PCSTimeout|RxUnderrun|RxOverflow|RxFIFOOver  |TxErr|TxOK|RxErr|RxOK)) == 0) break; if (status & (RxOK|RxUnderrun|RxOverflow|RxFIFOOver))/* Rx interrupt */ rtl8129_rx(dev); if (status & (TxOK | TxErr)) { unsigned int dirty_tx = tp->dirty_tx; while (tp->cur_tx - dirty_tx > 0) { int entry = dirty_tx % NUM_TX_DESC; int txstatus = inl(ioaddr + TxStatus0 + entry*4); if ( ! (txstatus & (TxStatOK | TxUnderrun | TxAborted))) break; /* It still hasn't been Txed */ /* Note: TxCarrierLost is always asserted at 100mbps. */ if (txstatus & (TxOutOfWindow | TxAborted)) { /* There was an major error, log it. */ if (rtl8129_debug > 1) printk(KERN_NOTICE"%s: Transmit error, Tx status %8.8x.\n",  dev->name, txstatus); tp->stats.tx_errors++; if (txstatus&TxAborted) { tp->stats.tx_aborted_errors++; outl((TX_DMA_BURST<<8)|0x0301, ioaddr + TxConfig); } if (txstatus&TxCarrierLost) tp->stats.tx_carrier_errors++; if (txstatus&TxOutOfWindow) tp->stats.tx_window_errors++; #ifdef ETHER_STATS if ((txstatus & 0x0f0) == 0x0f0) tp->stats.collisions16++; #endif } else { if (txstatus & TxUnderrun) { /* Add 64 to the Tx FIFO threshold. */ if (tp->tx_flag < 0x0030) tp->tx_flag += 0x00020; tp->stats.tx_fifo_errors++; } tp->stats.collisions += (txstatus >> 24) & 15; #if LINUX_VERSION_CODE > 0x20119 tp->stats.tx_bytes += txstatus & 0x7ff; #endif tp->stats.tx_packets++; } /* Free the original skb. */ dev_free_skb(tp->tx_skbuff[entry]); tp->tx_skbuff[entry] = 0; if (test_bit(0, &tp->tx_full)) { /* The ring is no longer full, clear tbusy. */ clear_bit(0, &tp->tx_full); clear_bit(0, (void*)&dev->tbusy); mark_bh(NET_BH); } dirty_tx++; } #ifndef final_version if (tp->cur_tx - dirty_tx > NUM_TX_DESC) { printk(KERN_ERR"%s: Out-of-sync dirty pointer, %d vs. %d, full=%d.\n",  dev->name, dirty_tx, tp->cur_tx, (int)tp->tx_full); dirty_tx += NUM_TX_DESC; } #endif tp->dirty_tx = dirty_tx; } /* Check uncommon events with one test. */ if (status & (PCIErr|PCSTimeout |RxUnderrun|RxOverflow|RxFIFOOver  |TxErr|RxErr)) { if (rtl8129_debug > 2) printk(KERN_NOTICE"%s: Abnormal interrupt, status %8.8x.\n",  dev->name, status); if (status == 0xf) break; /* Update the error count. */ tp->stats.rx_missed_errors += inl(ioaddr + RxMissed); outl(0, ioaddr + RxMissed); if ((status & RxUnderrun) && link_changed && (rtl_cap_tbl[tp->chip_id] & HAS_LNK_CHNG)) { /* Really link-change on new chips. */ int lpar = inw(ioaddr + NWayLPAR); int duplex = (lpar&0x0100)||(lpar & 0x01C0) == 0x0040; if (tp->full_duplex != duplex) { tp->full_duplex = duplex; outb(0xC0, ioaddr + Cfg9346); outb(tp->full_duplex ? 0x60 : 0x20, ioaddr + Config1); outb(0x00, ioaddr + Cfg9346); } status &= ~RxUnderrun; } if (status & (RxUnderrun | RxOverflow | RxErr | RxFIFOOver)) tp->stats.rx_errors++; if (status & (PCSTimeout)) tp->stats.rx_length_errors++; if (status & (RxUnderrun|RxFIFOOver)) tp->stats.rx_fifo_errors++; if (status & RxOverflow) { tp->stats.rx_over_errors++; tp->cur_rx = inw(ioaddr + RxBufAddr) % RX_BUF_LEN; outw(tp->cur_rx - 16, ioaddr + RxBufPtr); } if (status & PCIErr) { u32 pci_cmd_status; pcibios_read_config_dword(tp->pci_bus, tp->pci_devfn, PCI_COMMAND, &pci_cmd_status); printk(KERN_ERR "%s: PCI Bus error %4.4x.\n",  dev->name, pci_cmd_status); } } if (--boguscnt < 0) { printk(KERN_WARNING"%s: Too much work at interrupt, "  "IntrStatus=0x%4.4x.\n",  dev->name, status); /* Clear all interrupt sources. */ outw(0xf, ioaddr + IntrStatus); break; } } while (1); if (rtl8129_debug > 3) printk(KERN_DEBUG"%s: exiting interrupt, intr_status=%#4.4x.\n", dev->name, inl(ioaddr + IntrStatus)); #if defined(__i386__) clear_bit(0, (void*)&dev->interrupt); #else dev->interrupt = 0; #endif return; } /* The data sheet doesn't describe the Rx ring at all, so I'm guessing at the field alignments and semantics. */ static int rtl8129_rx(struct device *dev) { struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv; long ioaddr = dev->base_addr; unsigned char *rx_ring = tp->rx_ring; u16 cur_rx = tp->cur_rx; if (rtl8129_debug > 4) printk(KERN_DEBUG"%s: In rtl8129_rx(), current %4.4x BufAddr %4.4x," " free to %4.4x, Cmd %2.2x.\n", dev->name, cur_rx, inw(ioaddr + RxBufAddr), inw(ioaddr + RxBufPtr), inb(ioaddr + ChipCmd)); while ((inb(ioaddr + ChipCmd) & 1) == 0) { int ring_offset = cur_rx % RX_BUF_LEN; u32 rx_status = *(u32*)(rx_ring + ring_offset); int rx_size = rx_status >> 16; if (rtl8129_debug > 4) { int i; printk(KERN_DEBUG"%s: rtl8129_rx() status %4.4x, size %4.4x,"  " cur %4.4x.\n",  dev->name, rx_status, rx_size, cur_rx); printk(KERN_DEBUG"%s: Frame contents ", dev->name); for (i = 0; i < 70; i++) printk(" %2.2x", rx_ring[ring_offset + i]); printk(".\n"); } if (rx_status & RxTooLong) { if (rtl8129_debug > 0) printk(KERN_NOTICE"%s: Oversized Ethernet frame, status %4.4x!\n",  dev->name, rx_status); tp->stats.rx_length_errors++; /* A.C.: The chip hangs here. */ } else if (rx_status &  (RxBadSymbol|RxRunt|RxTooLong|RxCRCErr|RxBadAlign)) { if (rtl8129_debug > 1) printk(KERN_DEBUG"%s: Ethernet frame had errors,"  " status %4.4x.\n", dev->name, rx_status); tp->stats.rx_errors++; if (rx_status & (RxBadSymbol|RxBadAlign)) tp->stats.rx_frame_errors++; if (rx_status & (RxRunt|RxTooLong)) tp->stats.rx_length_errors++; if (rx_status & RxCRCErr) tp->stats.rx_crc_errors++; /* Reset the receiver, based on RealTek recommendation. (Bug?) */ tp->cur_rx = 0; outb(CmdTxEnb, ioaddr + ChipCmd); outb(CmdRxEnb | CmdTxEnb, ioaddr + ChipCmd); outl((RX_FIFO_THRESH << 13) | (RX_BUF_LEN_IDX << 11) |  (RX_DMA_BURST<<8), ioaddr + RxConfig); /* A.C.: Reset the multicast list. */ set_rx_mode(dev); } else { /* Malloc up new buffer, compatible with net-2e. */ /* Omit the four octet CRC from the length. */ struct sk_buff *skb; skb = dev_alloc_skb(rx_size + 2); if (skb == NULL) { printk(KERN_WARNING"%s: Memory squeeze, deferring packet.\n",  dev->name); /* We should check that some rx space is free.  If not, free one and mark stats->rx_dropped++. */ tp->stats.rx_dropped++; break; } skb->dev = dev; skb_reserve(skb, 2); /* 16 byte align the IP fields. */ if (ring_offset+rx_size+4 > RX_BUF_LEN) { int semi_count = RX_BUF_LEN - ring_offset - 4; memcpy(skb_put(skb, semi_count), &rx_ring[ring_offset + 4],  semi_count); memcpy(skb_put(skb, rx_size-semi_count), rx_ring,  rx_size-semi_count); if (rtl8129_debug > 4) { int i; printk(KERN_DEBUG"%s: Frame wrap @%d",  dev->name, semi_count); for (i = 0; i < 16; i++) printk(" %2.2x", rx_ring[i]); printk(".\n"); memset(rx_ring, 0xcc, 16); } } else { #if 1 /* USE_IP_COPYSUM */ eth_copy_and_sum(skb, &rx_ring[ring_offset + 4],  rx_size, 0); skb_put(skb, rx_size); #else memcpy(skb_put(skb, rx_size), &rx_ring[ring_offset + 4],  rx_size); #endif } skb->protocol = eth_type_trans(skb, dev); netif_rx(skb); #if LINUX_VERSION_CODE > 0x20119 tp->stats.rx_bytes += rx_size; #endif tp->stats.rx_packets++; } cur_rx = (cur_rx + rx_size + 4 + 3) & ~3; outw(cur_rx - 16, ioaddr + RxBufPtr); } if (rtl8129_debug > 4) printk(KERN_DEBUG"%s: Done rtl8129_rx(), current %4.4x BufAddr %4.4x," " free to %4.4x, Cmd %2.2x.\n", dev->name, cur_rx, inw(ioaddr + RxBufAddr), inw(ioaddr + RxBufPtr), inb(ioaddr + ChipCmd)); tp->cur_rx = cur_rx; return 0; } static int rtl8129_close(struct device *dev) { long ioaddr = dev->base_addr; struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv; int i; dev->start = 0; dev->tbusy = 1; if (rtl8129_debug > 1) printk(KERN_DEBUG"%s: Shutting down ethercard, status was 0x%4.4x.\n", dev->name, inw(ioaddr + IntrStatus)); /* Disable interrupts by clearing the interrupt mask. */ outw(0x0, ioaddr + IntrMask); /* Stop the chip's Tx and Rx DMA processes. */ outb(0x00, ioaddr + ChipCmd); /* Update the error counts. */ tp->stats.rx_missed_errors += inl(ioaddr + RxMissed); outl(0, ioaddr + RxMissed); del_timer(&tp->timer); free_irq(dev->irq, dev); for (i = 0; i < NUM_TX_DESC; i++) { if (tp->tx_sk buff[i]) dev_free_skb(tp->tx_skbuff[i]); tp->tx_skbuff[i] = 0; } kfree(tp->rx_ring); kfree(tp->tx_bufs); /* Green! Put the chip in low-power mode. */ outb(0xC0, ioaddr + Cfg9346); outb(0x03, ioaddr + Config1); outb('H', ioaddr + HltClk); /* 'R' would leave the clock running. */ MOD_DEC_USE_COUNT; return 0; } static int mii_ioctl(struct device *dev, struct ifreq *rq, int cmd) { struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv; u16 *data = (u16 *)&rq->ifr_data; switch(cmd) { case SIOCDEVPRIVATE: /* Get the address of the PHY in use. */ data[0] = tp->phys[0] & 0x3f; /* Fall Through */ case SIOCDEVPRIVATE+1: /* Read the specified MII register. */ data[3] = mdio_read(dev, data[0], data[1] & 0x1f); return 0; case SIOCDEVPRIVATE+2: /* Write the specified MII register */ if (!capable(CAP_NET_ADMIN)) return -EPERM; mdio_write(dev, data[0], data[1] & 0x1f, data[2]); return 0; default: return -EOPNOTSUPP; } } static struct enet_statistics * rtl8129_get_stats(struct device *dev) { struct rtl8129_private *tp = (struct rtl8129_private *)dev->priv; long ioaddr = dev->base_addr; if (dev->start) { tp->stats.rx_missed_errors += inl(ioaddr + RxMissed); outl(0, ioaddr + RxMissed); } return &tp->stats; } /* Set or clear the multicast filter for this adaptor. This routine is not state sensitive and need not be SMP locked. */ static unsigned const ethernet_polynomial = 0x04c11db7U; static inline u32 ether_crc(int length, unsigned char *data) { int crc = -1; while (--length >= 0) { unsigned char current_octet = *data++; int bit; for (bit = 0; bit < 8; bit++, current_octet >>= 1) crc = (crc << 1) ^ ((crc < 0) ^ (current_octet & 1) ? ethernet_polynomial : 0); } return crc; } /* Bits in RxConfig. */ enum rx_mode_bits { AcceptErr=0x20, AcceptRunt=0x10, AcceptBroadcast=0x08, AcceptMulticast=0x04, AcceptMyPhys=0x02, AcceptAllPhys=0x01, }; static void set_rx_mode(struct device *dev) { long ioaddr = dev->base_addr; u32 mc_filter[2]; /* Multicast hash filter */ int i, rx_mode; if (rtl8129_debug > 3) printk(KERN_DEBUG"%s: set_rx_mode(%4.4x) done -- Rx config %8.8x.\n", dev->name, dev->flags, inl(ioaddr + RxConfig)); /* Note: do not reorder, GCC is clever about common statements. */ if (dev->flags & IFF_PROMISC) { /* Unconditionally log net taps. */ printk(KERN_NOTICE"%s: Promiscuous mode enabled.\n", dev->name); rx_mode = AcceptBroadcast|AcceptMulticast|AcceptMyPhys|AcceptAllPhys; mc_filter[1] = mc_filter[0] = 0xf; } else if ((dev->mc_count > multicast_filter_limit) || (dev->flags & IFF_ALLMULTI)) { /* Too many to filter perfectly -- accept all multicasts. */ rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; mc_filter[1] = mc_filter[0] = 0xf; } else { struct dev_mc_list *mclist; rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; mc_filter[1] = mc_filter[0] = 0; for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count; i++, mclist = mclist->next) set_bit(ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26, mc_filter); } /* We can safely update without stopping the chip. */ outb(rx_mode, ioaddr + RxConfig); outl(mc_filter[0], ioaddr + MAR0 + 0); outl(mc_filter[1], ioaddr + MAR0 + 4); return; } #ifdef CARDBUS #include static dev_node_t *rtl8139_attach(dev_locator_t *loc) { struct device *dev; u16 dev_id; u32 io; u8 bus, devfn, irq; if (loc->bus != LOC_PCI) return NULL; bus = loc->b.pci.bus; devfn = loc->b.pci.devfn; printk(KERN_INFO "rtl8139_attach(bus %d, function %d)\n", bus, devfn); pcibios_read_config_dword(bus, devfn, PCI_BASE_ADDRESS_0, &io); pcibios_read_config_word(bus, devfn, PCI_DEVICE_ID, &dev_id); pcibios_read_config_byte(bus, devfn, PCI_INTERRUPT_LINE, &irq); /* Note: the chip index should match the 8139B pci_tbl[] entry. */ dev = rtl8129_probe1(bus, devfn, NULL, io & ~3, irq, 3, 0); if (dev) { dev_node_t *node = kmalloc(sizeof(dev_node_t), GFP_KERNEL); strcpy(node->dev_name, dev->name); node->major = node->minor = 0; node->next = NULL; MOD_INC_USE_COUNT; return node; } return NULL; } static void rtl8139_detach(dev_node_t *node) { struct device **devp, **next; printk(KERN_INFO "rtl8139_detach(%s)\n", node->dev_name); for (devp = &root_rtl8129_dev; *devp; devp = next) { next = &((struct rtl8129_private *)(*devp)->priv)->next_module; if (strcmp((*devp)->name, node->dev_name) == 0) break; } if (*devp) { unregister_netdev(*devp); kfree(*devp); *devp = *next; kfree(node); MOD_DEC_USE_COUNT; } } struct driver_operations realtek_ops = { "realtek_cb", rtl8139_attach, /*rtl8139_suspend*/0, /*rtl8139_resume*/0, rtl8139_detach }; #endif /* Cardbus support */ #ifdef MODULE int init_module(void) { if (debug) &/* Emit version even if no cards detected. */ printk(KERN_INFO "%s", version); #ifdef CARDBUS register_driver(&realtek_ops); return 0; #else return rtl8139_probe(0); #endif } void cleanup_module(void) { struct device *next_dev; #ifdef CARDBUS unregister_driver(&realtek_ops); #endif /* No need to check MOD_IN_USE, as sys_delete_module() checks. */ while (root_rtl8129_dev) { struct rtl8129_private *tp = (struct rtl8129_private *)root_rtl8129_dev->priv; next_dev = tp->next_module; unregister_netdev(root_rtl8129_dev); release_region(root_rtl8129_dev->base_addr,  pci_tbl[tp->chip_id].io_size); kfree(tp); kfree(root_rtl8129_dev); root_rtl8129_dev = next_dev; } } #endif /* MODULE */ /* * Local variables: * compile-command: "gcc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6 -c rtl8139.c `[ -f /usr/include/linux/modversions.h ] && echo -DMODVERSIONS`" * SMP-compile-command: "gcc -D__SMP__ -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6 -c rtl8139.c `[ -f /usr/include/linux/modversions.h ] && echo -DMODVERSIONS`" * cardbus-compile-command: "gcc -DCARDBUS -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6 -c rtl8139.c -o realtek_cb.o -I/usr/src/pcmcia-cs-3.0.9/include/" * c-indent-level: 4 * c-basic-offset: 4 * tab-width: 4 * End: */ XT Y%m SETUP EXE R'(yNETRTS INF P(KOEMSETNTINF `N'WINME  n$)NETWARE  n$)PKTDRV  n$)8NDIS2  n$)>MSLANMANDOS n$)kMSLANMANOS2 n$)vWFW311  n$)WIN95  n$)WIN98  n$)gcc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6 -c rtl8139.c `[ -f /usr/include/linux/modversions.h ] && echo -DMODVERSIONS` if [ ! -x /usr/src/linux/modules ] then mkdir /usr/src/linux/modules fi cp ./rtl8139.o /usr/src/linux/modules/rtl8139.o UE1216  ['UE3722  *o'9VERTEX ROM \q'4SW7148 ROM O(K8139C  1lQ(`d*M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * Driver Installation for LINUX * * K* *M Contents: - A) Driver Installation by Using Bundled Driver B) Driver Installation by Using Compiled Driver A) Driver Installation by Using Bundled Driver =+ Some LINUX kernels had supported rtl8139 NIC. You can check whether rtl8139.o exists or not. If your LINUX (ex. RedHat 6.1 or above) can auto-detect rtl8139 NIC, you just skip the following installations and follow the screen's instructions to install rtl8139.o driver directly. 1. Check the driver file "/lib/modules/2.0.XX/net/rtl8139.o". Where the XX is the version number of the latest kernel. 2. Add "alias eth0 rtl8139" into the /etc/conf.modules file. cd /etc vi conf.modules alias eth0 rtl8139 3. Run the following commands at the LINUX prompt. modprobe rtl8139 ifconfig eth0 192.74.53.10 4. Now, you can run 'ifconfig' or 'netstat -i' to see if there is a interface 'eth0'. Other Installation Method - RedHat 6.x - Run "linuxconf" to setup your card. Select Networking -> Client tasks -> Basic host information -> Click Adaptor 1 to configure your adapter For example: Click "Enabled" (i.e. enable "Activate interface at boot time") IP address 192.74.53.10 Netmask 255.255.255.0 Net device eth0  Kernel module rtl8139 I/O port Irq - Save the changes and run "shutdown -r now" to reboot the system. Slackware: - Add "alias eth0 rtl8139" into the /etc/conf.modules file. - Run netconfig to configure IP. - Modify /etc/rc.d/rc.modules: Add one line: /sbin/modprobe rtl8139 B) Driver Installation by Using Compiled Driver =, Below are the instructions for installing linux driver. You must complie the source code to generate rtl8139.o and use "insmod" to insert rtl8139.o as module. You can use "netconfig" utilities to setup network parameters for the driver. Files Description: - rtl8139.c The adapter source code. You can download the newest version from http://www.scyld.com/network/rtl8139.html. trans Compile batch file. linux.txt This file. Installation: - 1. Plug 32-Bit PCI Fast Ethernet Adapter into PC's PCI-bus slot. 2. Boot into LINUX and keyin the following commands at the LINUX prompt. Remember, LINUX is case sensitive. mkdir /temp mcopy a:/linux/rtl8139.c /temp (Copied from LINUX directory of the driver diskette.) ("mcopy" is the mtools. If you don't have mtools, you can mount -t msdos /dev/fd0 /mnt and use cp command) mcopy a:/linux/trans /temp cd /temp chmod 777 trans 3. Run trans file to complie and copy driver to linux source code: cd /temp ./trans (rtl8139.o will be generated and be copied to /usr/src/linux/modules.) 4. Run netconfig (or netcfg) to set you network parameter (like ip, gateway). Slackware: Run "netconfig" to configure IP environment. This will create '/etc/rc.d/rc.inet1' and 'rc.inet2' files. netconfig RedHat: - Add "alias eth0 rtl8139" into the /etc/conf.modules file. cd /etc vi conf.modules alias eth0 rtl8139 - Run "netcfg" in the xterm of X-window to configure IP environment. startx netcfg (Configure IP of eth0 and enable "Activate interface at boot time".) 5. Use editor vi to modify 'rc.inet1'(or 'rc') in the /etc/rc.d directory to insmod driver. This file will be run at boot time. You just add a line at the beginning of 'rc.inet1'(or 'rc'). Slackware: cd /etc/rc.d vi rc.inet1 insmod /usr/src/linux/modules/rtl8139.o RedHat: Add a line at the beginning of 'rc' file. cd /etc/rc.d vi rc insmod /usr/src/linux/modules/rtl8139.o 6. Reboot the LINUX. reboot ( or shutdown -r now ) When system boots, the driver will be loaded. Then the driver will scan I/O port to see if a card is there. (You can run 'dmesg' to see the boot message.) 7. Run 'ifconfig' or 'netstat -i' to see if there is a interface 'eth0'. - All trademarks or brand names mentioned are properties of their respective companies. Vn(;OBJ-CD  fn(;;1211V140DDI)m~(BTFC3200  (>FW-100TX  V(mFW100V10ZIP (ك(*SVC220  p(SVC220TXZIP (((Y!OTHERS  (XSVC220TXDDI((aTFC3200 TXT ({x(-.  sQ!)> ..  sQ!)FREEBSD TXT p(? G 3 0  uQ!)E *M * K* * 32-Bit PCI Fast Ethernet Adapter * * K* * Driver Installation for FreeBSD * * K* *M The newest version FreeBSD drivers' source code can be downloaded from URL http://www.freebsd.org/~wpaul/RealTek Files Description: = \3.0\if_rl.c The source code for FreeBSD v3.x. if_rlreg.h freebsd.txt This file. Installation: = 1. Plug 32-Bit PCI Fast Ethernet Adapter into PC's PCI-bus slot. 2. Boot into FreeBSD and login as root user. Insert driver diskette to the floppy drive A and mount drive A to /mnt directory. mount -t msdos /dev/fd0 /mnt 3. Copy the correct version of if_rl.c and if_rlreg.h for the system to the /sys/pci directory. cd /sys/pci cp /mnt/freebsd/3.0/if_rl.c ./if_rl.c cp /mnt/freebsd/3.0/if_rlreg.h ./if_rlreg.h 4. Edit /sys/conf/files and add a line about if_rl.c file. cd /sys/conf vi files Add the following line: pci/if_rl.c optional rl device-driver 5. Edit your kernel config file (e.g. /sys/i386/conf/GENERIC) and add a line about device rl0. cd /sys/i386/conf vi GENERIC Add the following line: device rl0 6. Config, compile a new kernel and reboot it. cd /sys/i386/conf config GENERIC You will see the following: Kernel build directory is ../../compile/GENERIC Compile kernel and reboot it. cd /sys/compile/GENERIC make depend all install shutdown -r now 7. When system boots, the driver will be loaded. You can run 'dmesg' to see the boot message or run 'ifconfig -a' to see if rl0 is up. 8. Run ifconfig to assign your IP address to the rl0 interface. ifconfig rl0 inet 192.72.24.10 netmask 255.255.255.0 alias Otherwise, you can use editor vi to modify /etc/rc.conf and config the above action. The /etc/rc.conf file is created by /stand/sysinstall and will be run at boot time. cd /etc vi rc.conf Add and modify the following lines: network_interfaces="rl0 lo0" # List of network interfaces. (# (lo0 is loopback). ifconfig_rl0="inet 192.72.24.10" # Config your IP. defaultrouter="192.72.24.254" # Set to default gateway (or NO). - All trademarks or brand names mentioned are properties of their respective companies. .  uQ!)E ..  uQ!)> IF_RL C . All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by Bill Paul. * 4. Neither the name of the author nor the names of any co-contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION!) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/pci/if_rl.c,v 1.9.2.10 1999/11/16 15:36:14 wpaul Exp $ */ /* * RealTek 8129/8139 PCI NIC driver * * Supports several extremely cheap PCI 10/100 adapters based on * the RealTek chipset. Datasheets can be obtained from * www.realtek.com.tw. * * Written by Bill Paul * Electrical Engineering Department * Columbia University, New York City */ #include "bpfilter.h" #include #include #include #include #include #include #include #include #include #include #include #include #if NBPFILTER > 0 #include #endif #include /* for vtophys */ #include /* for vtophys */ #include /* for DELAY */ #include #include #include #include #include /* * Default to using PIO access for this driver. On SMP systems, * there appear to be problems with memory mapped mode: it looks like * doing too many memory mapped access back to back in rapid succession * can hang the bus. I'm inclined to blame this on crummy design/construction * on the part of RealTek. Memory mapped mode does appear to work on * uniprocessor systems though. */ #define RL_USEIOSPACE #include #ifndef lint static const char rcsid[] = "$FreeBSD: src/sys/pci/if_rl.c,v 1.9.2.10 1999/11/16 15:36:14 wpaul Exp $"; #endif /* * Various supported device vendors/types and their names. */ static struct rl_type rl_devs[] = { { RT_VENDORID, RT_DEVICEID_8129, "RealTek 8129 10/100BaseTX" }, { RT_VENDORID, RT_DEVICEID_8139, "RealTek 8139 10/100BaseTX" }, { ACCTON_VENDORID, ACCTON_DEVICEID_5030, "Accton MPX 5030/5038 10/100BaseTX" }, { DELTA_VENDORID, DELTA_DEVICEID_8139, "Delta Electronics 8139 10/100BaseTX" }, { ADDTRON_VENDORID, ADDTRON_DEVICEID_8139, "Addtron Technolgy 8139 10/100BaseTX" }, { 0, 0, NULL } }; /* * Various supported PHY vendors/types and their names. Note that * this driver will work with pretty much any MII-compliant PHY, * so failure to positively identify the chip is not a fatal error. */ static struct rl_type rl_phys[] = { { TI_PHY_VENDORID, TI_PHY_10BT, "" }, { TI_PHY_VENDORID, TI_PHY_100VGPMI, "" }, { NS_PHY_VENDORID, NS_PHY_83840A, ""}, { LEVEL1_PHY_VENDORID, LEVEL1_PHY_LXT970, "" }, { INTEL_PHY_VENDORID, INTEL_PHY_82555, "" }, { SEEQ_PHY_VENDORID, SEEQ_PHY_80220, "" }, { 0, 0, "" } }; static unsigned long rl_count = 0; static const char *rl_probe __P((pcici_t, pcidi_t)); static void rl_attach __P((pcici_t, int)); static int rl_encap __P((struct rl_softc *, struct mbuf * )); static void rl_rxeof __P((struct rl_softc *)); static void rl_txeof __P((struct rl_softc *)); static void rl_intr __P((void *)); static void rl_start __P((struct ifnet *)); static int rl_ioctl __P((struct ifnet *, u_long, caddr_t)); static void rl_init __P((void *)); static void rl_stop __P((struct rl_softc *)); static void rl_watchdog __P((struct ifnet *)); static void rl_shutdown __P((int, void *)); static int rl_ifmedia_upd __P((struct ifnet *)); static void rl_ifmedia_sts __P((struct ifnet *, struct ifmediareq *)); static void rl_eeprom_putbyte __P((struct rl_softc *, int)); static void rl_eeprom_getword __P((struct rl_softc *, int, u_int16_t *)); static void rl_read_eeprom __P((struct rl_softc *, caddr_t, int, int, int)); static void rl_mii_sync __P((struct rl_softc *)); static void rl_mii_send __P((struct rl_softc *, u_int32_t, int)); static int rl_mii_readreg __P((struct rl_softc *, struct rl_mii_frame *)); static int rl_mii_writereg __P((struct rl_softc *, struct rl_mii_frame *)); static u_int16_t rl_phy_readreg __P((struct rl_softc *, int)); static void rl_phy_writereg __P((struct rl_softc *, int, int)); static void rl_autoneg_xmit __P((struct rl_softc *)); static void rl_autoneg_mii __P((struct rl_softc *, int, int)); static void rl_setmode_mii __P((struct rl_softc *, int)); static void rl_getmode_mii __P((struct rl_softc *)); static u_int8_t rl_calchash __P((caddr_t)); static void rl_setmulti __P((struct rl_softc *)); static void rl_reset __P((struct rl_softc *)); static int rl_list_tx_init __P((struct rl_softc *)); #define EE_SET(x) '\ CSR_WRITE_1(sc, RL_EECMD, \ CSR_READ_1(sc, RL_EECMD) | x) #define EE_CLR(x) '\ CSR_WRITE_1(sc, RL_EECMD, \ CSR_READ_1(sc, RL_EECMD) & ~x) /* * Send a read command and address to the EEPROM, check for ACK. */ static void rl_eeprom_putbyte(sc, addr) struct rl_softc *sc; int addr; { register int d, i; d = addr | RL_EECMD_READ; /* * Feed in each bit and stobe the clock. */ for (i = 0x400; i; i >>= 1) { if (d & i) { EE_SET(RL_EE_DATAIN); } else { EE_CLR(RL_EE_DATAIN); } DELAY(100); EE_SET(RL_EE_CLK); DELAY(150); EE_CLR(RL_EE_CLK); DELAY(100); } return; } /* * Read a word of data stored in the EEPROM at address 'addr.' */ static void rl_eeprom_getword(sc, addr, dest) struct rl_softc *sc; int addr; u_int16_t *dest; { register int i; u_int16_t word = 0; /* Enter EEPROM access mode. */ CSR_WRITE_1(sc, RL_EECMD, RL_EEMODE_PROGRAM|RL_EE_SEL); /* * Send address of word we want to read. */ rl_eeprom_putbyte(sc, addr); CSR_WRITE_1(sc, RL_EECMD, RL_EEMODE_PROGRAM|RL_EE_SEL); /* * Start reading bits from EEPROM. */ for (i = 0x8000; i; i >>= 1) { EE_SET(RL_EE_CLK); DELAY(100); if (CSR_READ_1(sc, RL_EECMD) & RL_EE_DATAOUT) word |= i; EE_CLR(RL_EE_CLK); DELAY(100); } /* Turn off EEPROM access mode. */ CSR_WRITE_1(sc, RL_EECMD, RL_EEMODE_OFF); *dest = word; return; } /* * Read a sequence of words from the EEPROM. */ static void rl_read_eeprom(sc, dest, off, cnt, swap) struct rl_softc *sc; caddr_t dest; int off; int cnt; int swap; { int i; u_int16_t word = 0, *ptr; for (i = 0; i < cnt; i++) { rl_eeprom_getword(sc, off + i, &word); ptr = (u_int16_t *)(dest + (i * 2)); if (swap) *ptr = ntohs(word); else *ptr = word; } return; } /* * MII access routines are provided for the 8129, which * doesn't have a built-in PHY. For the 8139, we fake things * up by diverting rl_phy_readreg()/rl_phy_writereg() to the * direct access PHY registers. */ #define MII_SET(x) &\ CSR_WRITE_1(sc, RL_MII, \ CSR_READ_1(sc, RL_MII) | x) #define MII_CLR(x) &\ CSR_WRITE_1(sc, RL_MII, \ CSR_READ_1(sc, RL_MII) & ~x) /* * Sync the PHYs by setting data bit and strobing the clock 32 times. */ static void rl_mii_sync(sc) struct rl_softc *sc; { register int i; MII_SET(RL_MII_DIR|RL_MII_DATAOUT); for (i = 0; i < 32; i++) { MII_SET(RL_MII_CLK); DELAY(1); MII_CLR(RL_MII_CLK); DELAY(1); } return; } /* * Clock a series of bits through the MII. */ static void rl_mii_send(sc, bits, cnt) struct rl_softc *sc; u_int32_t bits; int cnt; { int i; MII_CLR(RL_MII_CLK); for (i = (0x1 << (cnt - 1)); i; i >>= 1) { if (bits & i) { MII_SET(RL_MII_DATAOUT); } else { MII_CLR(RL_MII_DATAOUT); } DELAY(1); MII_CLR(RL_MII_CLK); DELAY(1); MII_SET(RL_MII_CLK); } } /* * Read an PHY register through the MII. */ static int rl_mii_readreg(sc, frame) struct rl_softc *sc; struct rl_mii_frame *frame; { int i, ack, s; s = splimp(); /* * Set up frame for RX. */ frame->mii_stdelim = RL_MII_STARTDELIM; frame->mii_opcode = RL_MII_READOP; frame->mii_turnaround = 0; frame->mii_data = 0; CSR_WRITE_2(sc, RL_MII, 0); /* * Turn on data xmit. */ MII_SET(RL_MII_DIR); rl_mii_sync(sc); /* * Send command/address info. */ rl_mii_send(sc, frame->mii_stdelim, 2); rl_mii_send(sc, frame->mii_opcode, 2); rl_mii_send(sc, frame->mii_phyaddr, 5); rl_mii_send(sc, frame->mii_regaddr, 5); /* Idle bit */ MII_CLR((RL_MII_CLK|RL_MII_DATAOUT)); DELAY(1); MII_SET(RL_MII_CLK); DELAY(1); /* Turn off xmit. */ MII_CLR"(RL_MII_DIR); /* Check for ack */ MII_CLR(RL_MII_CLK); DELAY(1); MII_SET(RL_MII_CLK); DELAY(1); ack = CSR_READ_2(sc, RL_MII) & RL_MII_DATAIN; /* * Now try reading data bits. If the ack failed, we still * need to clock through 16 cycles to keep the PHY(s) in sync. */ if (ack) { for(i = 0; i < 16; i++) { MII_CLR(RL_MII_CLK); DELAY(1); MII_SET(RL_MII_CLK); DELAY(1); } goto fail; } for (i = 0x8000; i; i >>= 1) { MII_CLR(RL_MII_CLK); DELAY(1); if (!ack) { if (CSR_READ_2(sc, RL_MII) & RL_MII_DATAIN) frame->mii_data |= i; DELAY(1); } MII_SET(RL_MII_CLK); DELAY(1); } fail: MII_CLR(RL_MII_CLK); DELAY(1); MII_SET(RL_MII_CLK); DELAY(1); splx(s); if (ack) return(1); return(0); } /* * Write to a PHY register through the MII. */ static int rl_mii_writereg(sc, frame) struct rl_softc *sc; struct rl_mii_frame *frame; { int s; s = splimp(); /* * Set up frame for TX. */ frame->mii_stdelim = RL_MII_STARTDELIM; frame->mii_opcode = RL_MII_WRITEOP; frame->mii_turnaround = RL_MII_TURNAROUND; /* * Turn on data output. */ MII_SET(RL_MII_DIR); rl_mii_sync(sc); rl_mii_send(sc, frame->mii_stdelim, 2); rl_mii_send(sc, frame->mii_opcode, 2); rl_mii_send(sc, frame->mii_phyaddr, 5); rl_mii_send(sc, frame->mii_regaddr, 5); rl_mii_send(sc, frame->mii_turnaround, 2); rl_mii_send(sc, frame->mii_data, 16); /* Idle bit. */ MII_SET(RL_MII_CLK); DELAY(1); MII_CLR(RL_MII_CLK); DELAY(1); /* * Turn off xmit. */ MII_CLR(RL_MII_DIR); splx(s); return(0); } static u_int16_t rl_phy_readreg(sc, reg) struct rl_softc *sc; int reg; { struct rl_mii_frame frame; u_int16_t rval = 0; u_int16_t rl8139_reg = 0; if (sc->rl_type == RL_8139) { switch(reg) { case PHY_BMCR: rl8139_reg = RL_BMCR; break; case PHY_BMSR: rl8139_reg = RL_BMSR; break; case PHY_ANAR: rl8139_reg = RL_ANAR; break; case PHY_LPAR: rl8139_reg = RL_LPAR; break; default: printf("rl%d: bad phy register\n", sc->rl_unit); return(0); } rval = CSR_READ_2(sc, rl8139_reg); return(rval); } bzero((char *)&frame, sizeof(frame)); frame.mii_phyaddr = sc->rl_phy_addr; frame.mii_regaddr = reg; rl_mii_readreg(sc, &frame); return(frame.mii_data); } static void rl_phy_writereg(sc, reg, data) struct rl_softc *sc; int reg; int data; { struct rl_mii_frame frame; u_int16_t rl8139_reg = 0; if (sc->rl_type == RL_8139) { switch(reg) { case PHY_BMCR: rl8139_reg = RL_BMCR; break; case PHY_BMSR: rl8139_reg = RL_BMSR; break; case PHY_ANAR: rl8139_reg = RL_ANAR; break; case PHY_LPAR: rl8139_reg = RL_LPAR; break; default: printf("rl%d: bad phy register\n", sc->rl_unit); return; } CSR_WRITE_2(sc, rl8139_reg, data); return; } bzero((char *)&frame, sizeof(frame)); frame.mii_phyaddr = sc->rl_phy_addr; frame.mii_regaddr = reg; frame.mii_data = data; rl_mii_writereg(sc, &frame); return; } /* * Calculate CRC of a multicast group address, return the upper 6 bits. */ static u_int8_t rl_calchash(addr) caddr_t addr; { u_int32_t crc, carry; int i, j; u_int8_t c; /* Compute CRC for the address value. */ crc = 0xF; /* initial value */ for (i = 0; i < 6; i++) { c = *(addr + i); for (j = 0; j < 8; j++) { carry = ((crc & 0x80) ? 1 : 0) ^ (c & 0x01); crc <<= 1; c >>= 1; if (carry) crc = (crc ^ 0x04c11db6) | carry; } } /* return the filter bit position */ return(crc >> 26); } /* * Program the 64-bit multicast hash filter. */ static void rl_setmulti(sc) struct rl_softc *sc; { struct ifnet *ifp; int h = 0; u_int32_t hashes[2] = { 0, 0 }; struct ifmultiaddr *ifma; u_int32_t rxfilt; int mcnt = 0; ifp = &sc->arpcom.ac_if; rxfilt = CSR_READ_4(sc, RL_RXCFG); if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC) { rxfilt |= RL_RXCFG_RX_MULTI; CSR_WRITE_4(sc, RL_RXCFG, rxfilt); CSR_WRITE_4(sc, RL_MAR0, 0xF); CSR_WRITE_4(sc, RL_MAR4, 0xF); return; } /* first, zot all the existing hash bits */ CSR_WRITE_4(sc, RL_MAR0, 0); CSR_WRITE_4(sc, RL_MAR4, 0); /* now program new ones */ for (ifma = ifp->if_multiaddrs.lh_first; ifma != NULL; ifma = ifma->ifma_link.le_next) { if (ifma->ifma_addr->sa_family != AF_LINK) continue; h = rl_calchash(LLADDR((struct sockaddr_dl *)ifma->ifma_addr)); if (h < 32) hashes[0] |= (1 << h); else hashes[1] |= (1 << (h - 32)); mcnt++; } if (mcnt) rxfilt |= RL_RXCFG_RX_MULTI; else rxfilt &= ~RL_RXCFG_RX_MULTI; CSR_WRITE_4(sc, RL_RXCFG, rxfilt); CSR_WRITE_4(sc, RL_MAR0, hashes[0]); CSR_WRITE_4(sc, RL_MAR4, hashes[1]); return; } /* * Initiate an autonegotiation session. */ static void rl_autoneg_xmit(sc) struct rl_softc *sc; { u_int16_t phy_sts; rl_phy_writereg(sc, PHY_BMCR, PHY_BMCR_RESET); DELAY(500); while(rl_phy_readreg(sc, PHY_BMCR) & PHY_BMCR_RESET); phy_sts = rl_phy_readreg(sc, PHY_BMCR); phy_sts |= PHY_BMCR_AUTONEGENBL|PHY_BMCR_AUTONEGRSTR; rl_phy_writereg(sc, PHY_BMCR, phy_sts); return; } /* * Invoke autonegotiation on a PHY. Also used with the 8139 internal * transceiver. */ static void rl_autoneg_mii(sc, flag, verbose) struct rl_softc *sc; int flag; int verbose; { u_int16_t phy_sts = 0, media, advert, ability; struct ifnet *ifp; struct ifmedia *ifm; ifm = &sc->ifmedia; ifp = &sc->arpcom.ac_if; /* * The 100baseT4 PHY sometimes has the 'autoneg supported' * bit cleared in the status register, but has the 'autoneg enabled' * bit set in the control register. This is a contradiction, and * I'm not sure how to handle it. If you want to force an attempt * to autoneg for 100baseT4 PHYs, #define FORCE_AUTONEG_TFOUR * and see what happens. */ #ifndef FORCE_AUTONEG_TFOUR /* * First, see if autoneg is supported. If not, there's * no point in continuing. */ phy_sts = rl_phy_readreg(sc, PHY_BMSR); if (!(phy_sts & PHY_BMSR_CANAUTONEG)) { if (verbose) printf("rl%d: autonegotiation not supported\n", sc->rl_unit); return; } #endif switch (flag) { case RL_FLAG_FORCEDELAY: /* * XXX Never use this option anywhere but in the probe * routine: making the kernel stop dead in its tracks * for three whole seconds after we've gone multi-user * is really bad manners. */ rl_autoneg_xmit(sc); DELAY(50); break; case RL_FLAG_SCHEDDELAY: /* * Wait for the transmitter to go idle before starting * an autoneg session, otherwise rl_start() may clobber * our timeout, and we don't want to allow transmission * during an autoneg session since that can screw it up. */ if (sc->rl_cdata.last_tx != sc->rl_cdata.cur_tx) { sc->rl_want_auto = 1; return; } rl_autoneg_xmit(sc); ifp->if_timer = 5; sc->rl_autoneg = 1; sc->rl_want_auto = 0; return; break; case RL_FLAG_DELAYTIMEO: ifp->if_timer = 0; sc->rl_autoneg = 0; break; default: printf("rl%d: invalid autoneg flag: %d\n", sc->rl_unit, flag); return; } if (rl_phy_readreg(sc, PHY_BMSR) & PHY_BMSR_AUTONEGCOMP) { if (verbose) printf("rl%d: autoneg complete, ", sc->rl_unit); phy_sts = rl_phy_readreg(sc, PHY_BMSR); } else { if (verbose) printf("rl%d: autoneg not complete, ", sc->rl_unit); } media = rl_phy_readreg(sc, PHY_BMCR); /* Link is good. Report modes and set duplex mode. */ if (rl_phy_readreg(sc, PHY_BMSR) & PHY_BMSR_LINKSTAT) { if (verbose) printf("link status good "); advert = rl_phy_readreg(sc, PHY_ANAR); ability = rl_phy_readreg(sc, PHY_LPAR); if (advert & PHY_ANAR_100BT4 && ability & PHY_ANAR_100BT4) { ifm->ifm_media = IFM_ETHER|IFM_100_T4; media |= PHY_BMCR_SPEEDSEL; media &= ~PHY_BMCR_DUPLEX; printf("(100baseT4)\n"); } else if (advert & PHY_ANAR_100BTXFULL && ability & PHY_ANAR_100BTXFULL) { ifm->ifm_media = IFM_ETHER|IFM_100_TX|IFM_FDX; media |= PHY_BMCR_SPEEDSEL; media |= PHY_BMCR_DUPLEX; printf("(full-duplex, 100Mbps)\n"); } else if (advert & PHY_ANAR_100BTXHALF && ability & PHY_ANAR_100BTXHALF) { ifm->ifm_media = IFM_ETHER|IFM_100_TX|IFM_HDX; media |= PHY_BMCR_SPEEDSEL; media &= ~PHY_BMCR_DUPLEX; printf("(half-duplex, 100Mbps)\n"); } else if (advert & PHY_ANAR_10BTFULL && ability & PHY_ANAR_10BTFULL) { ifm->ifm_media = IFM_ETHER|IFM_10_T|IFM_FDX; media &= ~PHY_BMCR_SPEEDSEL; media |= PHY_BMCR_DUPLEX; printf("(full-duplex, 10Mbps)\n"); } else { ifm->ifm_media = IFM_ETHER|IFM_10_T|IFM_HDX; media &= ~PHY_BMCR_SPEEDSEL; media &= ~PHY_BMCR_DUPLEX; printf("(half-duplex, 10Mbps)\n"); } /* Set ASIC's duplex mode to match the PHY. */ rl_phy_writereg(sc, PHY_BMCR, media); } else { if (verbose) printf("no carrier\n"); } rl_init(sc); if (sc->rl_tx_pend) { sc->rl_autoneg = 0; " sc->rl_tx_pend = 0; rl_start(ifp); } return; } static void rl_getmode_mii(sc) struct rl_softc *sc; { u_int16_t bmsr; struct ifnet *ifp; ifp = &sc->arpcom.ac_if; bmsr = rl_phy_readreg(sc, PHY_BMSR); if (bootverbose) printf("rl%d: PHY status word: %x\n", sc->rl_unit, bmsr); /* fallback */ sc->ifmedia.ifm_media = IFM_ETHER|IFM_10_T|IFM_HDX; if (bmsr & PHY_BMSR_10BTHALF) { if (bootverbose) printf("rl%d: 10Mbps half-duplex mode supported\n", sc->rl_unit); ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_10_T|IFM_HDX, 0, NULL); ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_10_T, 0, NULL); } if (bmsr & PHY_BMSR_10BTFULL) { if (bootverbose) printf("rl%d: 10Mbps full-duplex mode supported\n", sc->rl_unit); ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_10_T|IFM_FDX, 0, NULL); sc->ifmedia.ifm_media = IFM_ETHER|IFM_10_T|IFM_FDX; } if (bmsr & PHY_BMSR_100BTXHALF) { if (bootverbose) printf("rl%d: 100Mbps half-duplex mode supported\n", sc->rl_unit); ifp->if_baudrate = 10; ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_100_TX, 0, NULL); ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_100_TX|IFM_HDX, 0, NULL); sc->ifmedia.ifm_media = IFM_ETHER|IFM_100_TX|IFM_HDX; } if (bmsr & PHY_BMSR_100BTXFULL) { if (bootverbose) printf("rl%d: 100Mbps full-duplex mode supported\n", sc->rl_unit); ifp->if_baudrate = 10; ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_100_TX|IFM_FDX, 0, NULL); sc->ifmedia.ifm_media = IFM_ETHER|IFM_100_TX|IFM_FDX; } /* Some also support 100BaseT4. */ if (bmsr & PHY_BMSR_100BT4) { if (bootverbose) printf("rl%d: 100baseT4 mode supported\n", sc->rl_unit); ifp->if_baudrate = 10; ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_100_T4, 0, NULL); sc->ifmedia.ifm_media = IFM_ETHER|IFM_100_T4; #ifdef FORCE_AUTONEG_TFOUR if (bootverbose) printf("rl%d: forcing on autoneg support for BT4\n",  sc->rl_unit); ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_AUTO, 0 NULL): sc->ifmedia.ifm_media = IFM_ETHER|IFM_AUTO; #endif } if (bmsr & PHY_BMSR_CANAUTONEG) { if (bootverbose) printf("rl%d: autoneg supported\n", sc->rl_unit); ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_AUTO, 0, NULL); sc->ifmedia.ifm_media = IFM_ETHER|IFM_AUTO; } return; } /* * Set speed and duplex mode. */ static void rl_setmode_mii(sc, media) struct rl_softc *sc; int media; { u_int16_t bmcr; printf("rl%d: selecting MII, ", sc->rl_unit); bmcr = rl_phy_readreg(sc, PHY_BMCR); bmcr &= ~(PHY_BMCR_AUTONEGENBL|PHY_BMCR_SPEEDSEL| PHY_BMCR_DUPLEX|PHY_BMCR_LOOPBK); if (IFM_SUBTYPE(media) == IFM_100_T4) { printf("100Mbps/T4, half-duplex\n"); bmcr |= PHY_BMCR_SPEEDSEL; bmcr &= ~PHY_BMCR_DUPLEX; } if (IFM_SUBTYPE(media) == IFM_100_TX) { printf("100Mbps, "); bmcr |= PHY_BMCR_SPEEDSEL; } if (IFM_SUBTYPE(media) == IFM_10_T) { printf("10Mbps, "); bmcr &= ~PHY_BMCR_SPEEDSEL; } if ((media & IFM_GMASK) == IFM_FDX) { printf("full duplex\n"); bmcr |= PHY_BMCR_DUPLEX; } else { printf("half duplex\n"); bmcr &= ~PHY_BMCR_DUPLEX; } rl_phy_writereg(sc, PHY_BMCR, bmcr); return; } static void rl_reset(sc) struct rl_softc *sc; { register int i; CSR_WRITE_1(sc, RL_COMMAND, RL_CMD_RESET); for (i = 0; i < RL_TIMEOUT; i++) { DELAY(10); if (!(CSR_READ_1(sc, RL_COMMAND) & RL_CMD_RESET)) break; } if (i == RL_TIMEOUT) printf("rl%d: reset never completed!\n", sc->rl_unit); return; } /* * Probe for a RealTek 8129/8139 chip. Check the PCI vendor and device * IDs against our list and return a device name if we find a match. */ static const char * rl_probe(config_id, device_id) pcici_t config_id; pcidi_t device_id; { struct rl_type *t; t = rl_devs; while(t->rl_name != NULL) { if ((device_id & 0xF) == t->rl_vid && ((device_id >> 16) & 0xF) == t->rl_did) { return(t->rl_name); } t++; } return(NULL); } /* * Attach the interface. Allocate softc structures, do ifmedia * setup and ethernet/BPF attach. */ static void rl_attach(config_id, unit) pcici_t config_id; int unit; { int s, i; #ifndef RL_USEIOSPACE vm_offset_t pbase, vbase; #endif u_char eaddr[ETHER_ADDR_LEN]; u_int32_t command; struct rl_softc *sc; struct ifnet *ifp; int media = IFM_ETHER|IFM_100_TX|IFM_FDX; struct rl_type *p; u_int16_t phy_vid, phy_did, phy_sts; u_int16_t rl_did = 0; s = splimp(); sc = malloc(sizeof(struct rl_softc), M_DEVBUF, M_NOWAIT); if (sc == NULL) { printf("rl%d: no memory for softc struct!\n", unit); goto fail; } bzero(sc, sizeof(struct rl_softc)); /* * Handle power management nonsense. */ command = pci_conf_read(config_id, RL_PCI_CAPID) & 0x0FF; if (command == 0x01) { command = pci_conf_read(config_id, RL_PCI_PWRMGMTCTRL); if (command & RL_PSTATE_MASK) { u_int32_t iobase, membase, irq; /* Save important PCI config data. */ iobase = pci_conf_read(config_id, RL_PCI_LOIO); membase = pci_conf_read(config_id, RL_PCI_LOMEM); irq = pci_conf_read(config_id, RL_PCI_INTLINE); /* Reset the power state. */ printf("rl%d: chip is is in D%d power mode " "-- setting to D0\n", unit, command & RL_PSTATE_MASK); command &= 0xFC; pci_conf_write(config_id, RL_PCI_PWRMGMTCTRL, command); /* Restore PCI config data. */ pci_conf_write(config_id, RL_PCI_LOIO, iobase); pci_conf_write(config_id, RL_PCI_LOMEM, membase); pci_conf_write(config_id, RL_PCI_INTLINE, irq); } } /* * Map control/status registers. */ command = pci_conf_read(config_id, PCI_COMMAND_STATUS_REG); command |= (PCIM_CMD_PORTEN|PCIM_CMD_MEMEN|PCIM_CMD_BUSMASTEREN); pci_conf_write(config_id, PCI_COMMAND_STATUS_REG, command); command = pci_conf_read(config_id, PCI_COMMAND_STATUS_REG); #ifdef RL_USEIOSPACE if (!(command & PCIM_CMD_PORTEN)) { printf("rl%d: failed to enable I/O ports!\n", unit); free(sc, M_DEVBUF); goto fail; } if (!pci_map_port(config_id, RL_PCI_LOIO, (u_int16_t *)&(sc->rl_bhandle))) { printf ("rl%d: couldn't map ports\n", unit); goto fail; } #ifdef __i386__ sc->rl_btag = I386_BUS_SPACE_IO; #endif #ifdef __alpha__ sc->rl_btag = ALPHA_BUS_SPACE_IO; #endif #else if (!(command & PCIM_CMD_MEMEN)) { printf("rl%d: failed to enable memory mapping!\n", unit); goto fail; } if (!pci_map_mem(config_id, RL_PCI_LOMEM, &vbase, &pbase)) { printf ("rl%d: couldn't map memory\n", unit); goto fail; } #ifdef __i386__ sc->rl_btag = I386_BUS_SPACE_MEM; #endif #ifdef __alpha__ sc->rl_btag = ALPHA_BUS_SPACE_MEM; #endif sc->rl_bhandle = vbase; #endif /* Allocate interrupt */ if (!pci_map_int(config_id, rl_intr, sc, &net_imask)) { printf("rl%d: couldn't map interrupt\n", unit); goto fail; } /* Reset the adapter. */ rl_reset(sc); /* * Get station address from the EEPROM. */ rl_read_eeprom(sc, (caddr_t)&eaddr, RL_EE_EADDR, 3, 0); /* * A RealTek chip was detected. Inform the world. */ printf("rl%d: Ethernet address: %6D\n", unit, eaddr, ":"); sc->rl_unit = unit; bcopy(eaddr, (char *)&sc->arpcom.ac_enaddr, ETHER_ADDR_LEN); /* * Now read the exact device type from the EEPROM to find * out if it's an 8129 or 8139. */ rl_read_eeprom(sc, (caddr_t)&rl_did, RL_EE_PCI_DID, 1, 0); if (rl_did == RT_DEVICEID_8139 || rl_did == ACCTON_DEVICEID_5030 || rl_did == DELTA_DEVICEID_8139 || rl_did == ADDTRON_DEVICEID_8139) sc->rl_type = RL_8139; else if (rl_did == RT_DEVICEID_8129) sc->rl_type = RL_8129; else { printf("rl%d: unknown device ID: %x\n", unit, rl_did); free(sc, M_DEVBUF); goto fail; } sc->rl_cdata.rl_rx_buf = contigmalloc(RL_RXBUFLEN + 32, M_DEVBUF, M_NOWAIT, 0x10, 0xf, PAGE_SIZE, 0); if (sc->rl_cdata.rl_rx_buf == NULL) { free(sc, M_DEVBUF); printf("rl%d: no memory for list buffers!\n", unit); goto fail; } /* Leave a few bytes before the start of the RX ring buffer. */ sc->rl_cdata.rl_rx_buf_ptr = sc->rl_cdata.rl_rx_buf; sc->rl_cdata.rl_rx_buf += sizeof(u_int64_t); ifp = &sc->arpcom.ac_if; ifp->if_softc = sc; ifp->if_unit = unit; ifp->if_name = "rl"; ifp->if_mtu = ETHERMTU; ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_ioctl = rl_ioctl; ifp->if_output = ether_output; ifp->if_start = rl_start; ifp->if_watchdog = rl_watchdog; ifp->if_init = rl_init; ifp->if_baudrate = 10; ifp->if_snd.ifq_maxlen = IFQ_MAXLEN; if (sc->rl_type == RL_8129) { if (bootverbose) printf("rl%d: probing for a PHY\n", sc->rl_unit); for (i = RL_PHYADDR_MIN; i < RL_PHYADDR_MAX + 1; i++) { if (bootverbose) printf("rl%d: checking address: %d\n", sc->rl_unit, i); sc->rl_phy_addr = i; rl_phy_writereg(sc, PHY_BMCR, PHY_BMCR_RESET); DELAY(500); while(rl_phy_readreg(sc, PHY_BMCR) & PHY_BMCR_RESET); if ((phy_sts = rl_phy_readreg(sc, PHY_BMSR))) break; } if (phy_sts) { phy_vid = rl_phy_readreg(sc, PHY_VENID); phy_di#d = rl_phy_readreg(sc, PHY_DEVID); if (bootverbose) printf("rl%d: found PHY at address %d, ", sc->rl_unit, sc->rl_phy_addr); if (bootverbose) printf("vendor id: %x device id: %x\n", phy_vid, phy_did); p = rl_phys; while(p->rl_vid) { if (phy_vid == p->rl_vid && (phy_did | 0x000F) == p->rl_did) { sc->rl_pinfo = p; break; } p++; } if (sc->rl_pinfo == NULL) sc->rl_pinfo = &rl_phys[PHY_UNKNOWN]; if (bootverbose) printf("rl%d: PHY type: %s\n", sc->rl_unit, sc->rl_pinfo->rl_name); } else { printf("rl%d: MII without any phy!\n", sc->rl_unit); } } /* * Do ifmedia setup. */ ifmedia_init(&sc->ifmedia, 0, rl_ifmedia_upd, rl_ifmedia_sts); rl_getmode_mii(sc); /* Choose a default media. */ media = IFM_ETHER|IFM_AUTO; ifmedia_set(&sc->ifmedia, media); rl_autoneg_mii(sc, RL_FLAG_FORCEDELAY, 1); /* * Call MI attach routines. */ if_attach(ifp); ether_ifattach(ifp); #if NBPFILTER > 0 bpfattach(ifp, DLT_EN10MB, sizeof(struct ether_header)); #endif at_shutdown(rl_shutdown, sc, SHUTDOWN_POST_SYNC); fail: splx(s); return; } /* * Initialize the transmit descriptors. */ static int rl_list_tx_init(sc) struct rl_softc *sc; { struct rl_chain_data *cd; int i; cd = &sc->rl_cdata; for (i = 0; i < RL_TX_LIST_CNT; i++) { cd->rl_tx_chain[i] = NULL; CSR_WRITE_4(sc, RL_TXADDR0 + (i * sizeof(u_int32_t)), 0x0); } sc->rl_cdata.cur_tx = 0; sc->rl_cdata.last_tx = 0; return(0); } /* * A frame has been uploaded: pass the resulting mbuf chain up to * the higher level protocols. * * You know there's something wrong with a PCI bus-master chip design * when you have to use m_devget(). * * The receive operation is badly documented in the datasheet, so I'll * attempt to document it here. The driver provides a buffer area and * places its base address in the RX buffer start address register. * The chip then begins copying frames into the RX buffer. Each frame * is preceeded by a 32-bit RX status word which specifies the length * of the frame and certain other status bits. Each frame (starting with * the status word) is also 32-bit aligned. The frame length is in the * first 16 bits of the status word; the lower 15 bits correspond with * the 'rx status register' mentioned in the datasheet. * * Note: to make the Alpha happy, the frame payload needs to be aligned * on a 32-bit boundary. To achieve this, we cheat a bit by copying from * the ring buffer starting at an address two bytes before the actual * data location. We can then shave off the first two bytes using m_adj(). * The reason we do this is because m_devget() doesn't let us specify an * offset into the mbuf storage space, so we have to artificially create * one. The ring is allocated in such a way that there are a few unused * bytes of space preceecing it so that it will be safe for us to do the * 2-byte backstep even if reading from the ring at offset 0. */ static void rl_rxeof(sc) struct rl_softc *sc; { struct ether_header *eh; struct mbuf *m; struct ifnet *ifp; int total_len = 0; u_int32_t rxstat; caddr_t rxbufpos; int wrap = 0; u_int16_t cur_rx; u_int16_t limit; u_int16_t rx_bytes = 0, max_bytes; ifp = &sc->arpcom.ac_if; cur_rx = (CSR_READ_2(sc, RL_CURRXADDR) + 16) % RL_RXBUFLEN; /* Do not try to read past this point. */ limit = CSR_READ_2(sc, RL_CURRXBUF) % RL_RXBUFLEN; if (limit < cur_rx) max_bytes = (RL_RXBUFLEN - cur_rx) + limit; else max_bytes = limit - cur_rx; while((CSR_READ_1(sc, RL_COMMAND) & RL_CMD_EMPTY_RXBUF) == 0) { rxbufpos = sc->rl_cdata.rl_rx_buf + cur_rx; rxstat = *(u_int32_t *)rxbufpos; /* * Here's a totally undocumented fact for you. When the * RealTek chip is in the process of copying a packet into * RAM for you, the length will be 0xfff0. If you spot a * packet header with this value, you need to stop. The * datasheet makes absolutely no mention of this and * RealTek should be shot for this. */ if ((u_int16_t)(rxstat >> 16) == RL_RXSTAT_UNFINISHED) break; if (!(rxstat & RL_RXSTAT_RXOK)) { ifp->if_ierrors++; if (rxstat & (RL_RXSTAT_BADSYM|RL_RXSTAT_RUNT| RL_RXSTAT_GIANT|RL_RXSTAT_CRCERR| RL_RXSTAT_ALIGNERR)) { CSR_WRITE_2(sc, RL_COMMAND, RL_CMD_TX_ENB); CSR_WRITE_2(sc, RL_COMMAND, RL_CMD_TX_ENB| RL_CMD_RX_ENB); CSR_WRITE_4(sc, RL_RXCFG, RL_RXCFG_CONFIG); CSR_WRITE_4(sc, RL_RXADDR, vtophys(sc->rl_cdata.rl_rx_buf)); CSR_WRITE_2(sc, RL_CURRXADDR, cur_rx - 16); cur_rx = 0; } break; } /* No errors; receive the packet. */  total_len = rxstat >> 16; rx_bytes += total_len + 4; /* * XXX The RealTek chip includes the CRC with every * received frame, and there's no way to turn this * behavior off (at least, I can't find anything in * the manual that explains how to do it) so we have * to trim off the CRC manually. */ total_len -= ETHER_CRC_LEN; /* * Avoid trying to read more bytes than we know * the chip has prepared for us. */ if (rx_bytes > max_bytes) break; rxbufpos = sc->rl_cdata.rl_rx_buf + ((cur_rx + sizeof(u_int32_t)) % RL_RXBUFLEN); if (rxbufpos == (sc->rl_cdata.rl_rx_buf + RL_RXBUFLEN)) rxbufpos = sc->rl_cdata.rl_rx_buf; wrap = (sc->rl_cdata.rl_rx_buf + RL_RXBUFLEN) - rxbufpos; if (total_len > wrap) { m = m_devget(rxbufpos - RL_ETHER_ALIGN, wrap + RL_ETHER_ALIGN, 0, ifp, NULL); if (m == NULL) { ifp->if_ierrors++; printf("rl%d: out of mbufs, tried to "  "copy %d bytes\n", sc->rl_unit, wrap); } else { m_adj(m, RL_ETHER_ALIGN); m_copyback(m, wrap, total_len - wrap, sc->rl_cdata.rl_rx_buf); m = m_pullup(m, MHLEN - RL_ETHER_ALIGN); } cur_rx = (total_len - wrap + ETHER_CRC_LEN); } else { m = m_devget(rxbufpos - RL_ETHER_ALIGN, total_len + RL_ETHER_ALIGN, 0, ifp, NULL); if (m == NULL) { ifp->if_ierrors++; printf("rl%d: out of mbufs, tried to "  "copy %d bytes\n", sc->rl_unit, total_len); } else m_adj(m, RL_ETHER_ALIGN); cur_rx += total_len + 4 + ETHER_CRC_LEN; } /* * Round up to 32-bit boundary. */ cur_rx = (cur_rx + 3) & ~3; CSR_WRITE_2(sc, RL_CURRXADDR, cur_rx - 16); if (m == NULL) continue; eh = mtod(m, struct ether_header *); ifp->if_ipackets++; #if NBPFILTER > 0 /* * Handle BPF listeners. Let the BPF user see the packet, but * don't pass it up to the ether_input() layer unless it's * a broadcast packet, multicast packet, matches our ethernet * address or the interface is in promiscuous mode. */ if (ifp->if_bpf) { bpf_mtap(ifp, m); if (ifp->if_flags & IFF_PROMISC && (bcmp(eh->ether_dhost, sc->arpcom.ac_enaddr, ETHER_ADDR_LEN) && (eh->ether_dhost[0] & 1) == 0)) { m_freem(m); continue; } } #endif /* Remove header from mbuf and pass it on. */ m_adj(m, sizeof(struct ether_header)); ether_input(ifp, eh, m); } return; } /* * A frame was downloaded to the chip. It's safe for us to clean up * the list buffers. */ static void rl_txeof(sc) struct rl_softc *sc; { struct ifnet *ifp; u_int32_t txstat; ifp = &sc->arpcom.ac_if; /* Clear the timeout timer. */ ifp->if_timer = 0; /* * Go through our tx list and free mbufs for those * frames that have been uploaded. */ do { txstat = CSR_READ_4(sc, RL_LAST_TXSTAT(sc)); if (!(txstat & (RL_TXSTAT_TX_OK| RL_TXSTAT_TX_UNDERRUN|RL_TXSTAT_TXABRT))) break; ifp->if_collisions += (txstat & RL_TXSTAT_COLLCNT) >> 24; if (RL_LAST_TXMBUF(sc) != NULL) { m_freem(RL_LAST_TXMBUF(sc)); RL_LAST_TXMBUF(sc) = NULL; } if (txstat & RL_TXSTAT_TX_OK) ifp->if_opackets++; else { int oldthresh; ifp->if_oerrors++; if ((txstat & RL_TXSTAT_TXABRT) || (txstat & RL_TXSTAT_OUTOFWIN)) CSR_WRITE_4(sc, RL_TXCFG, RL_TXCFG_CONFIG); oldthresh = sc->rl_txthresh; /* error recovery */ rl_reset(sc); rl_init(sc); /* * If there was a transmit underrun, * bump the TX threshold. */ if (txstat & RL_TXSTAT_TX_UNDERRUN) sc->rl_txthresh = oldthresh + 32; return; } RL_INC(sc->rl_cdata.last_tx); ifp->if_flags &= ~IFF_OACTIVE; } while (sc->rl_cdata.last_tx != sc->rl_cdata.cur_tx); if (sc->rl_cdata.last_tx == sc->rl_cdata.cur_tx) { if (sc->rl_want_auto) rl_autoneg_mii(sc, RL_FLAG_SCHEDDELAY, 1); } return; } static void rl_intr(arg) void *arg; { struct rl_softc *sc; struct ifnet *ifp; u_int16_t status; sc = arg; ifp = &sc->arpcom.ac_if; /* Disable interrupts. */ CSR_WRITE_2(sc, RL_IMR, 0x0); for (;;) { status = CSR_READ_2(sc, RL_ISR); if (status) CSR_WRITE_2(sc, RL_ISR, status); if ((status & RL_INTRS) == 0) break; if (status & RL_ISR_RX_OK) rl_rxeof(sc); if (status & RL_ISR_RX_ERR) rl_rxeof(sc); if ((status & RL_ISR_TX_OK) || (status & RL_ISR_TX_ERR)) " rl_txeof(sc); if (status & RL_ISR_SYSTEM_ERR) { rl_reset(sc); rl_init(sc); } } /* Re-enable interrupts. */ CSR_WRITE_2(sc, RL_IMR, RL_INTRS); if (ifp->if_snd.ifq_head != NULL) rl_start(ifp); return; } /* * Encapsulate an mbuf chain in a descriptor by coupling the mbuf data * pointers to the fragment pointers. */ static int rl_encap(sc, m_head) struct rl_softc *sc; struct mbuf *m_head; { struct mbuf *m_new = NULL; /* * The RealTek is brain damaged and wants longword-aligned * TX buffers, plus we can only have one fragment buffer * per packet. We have to copy pretty much all the time. */ MGETHDR(m_new, M_DONTWAIT, MT_DATA); if (m_new == NULL) { printf("rl%d: no memory for tx list", sc->rl_unit); return(1); } if (m_head->m_pkthdr.len > MHLEN) { MCLGET(m_new, M_DONTWAIT); if (!(m_new->m_flags & M_EXT)) { m_freem(m_new); printf("rl%d: no memory for tx list", sc->rl_unit); return(1); } } m_copydata(m_head, 0, m_head->m_pkthdr.len, mtod(m_new, caddr_t)); m_new->m_pkthdr.len = m_new->m_len = m_head->m_pkthdr.len; m_freem(m_head); m_head = m_new; /* Pad frames to at least 60 bytes. */ if (m_head->m_pkthdr.len < RL_MIN_FRAMELEN) { m_head->m_pkthdr.len += (RL_MIN_FRAMELEN - m_head->m_pkthdr.len); m_head->m_len = m_head->m_pkthdr.len; } RL_CUR_TXMBUF(sc) = m_head; return(0); } /* * Main transmit routine. */ static void rl_start(ifp) struct ifnet *ifp; { struct rl_softc *sc; struct mbuf *m_head = NULL; sc = ifp->if_softc; if (sc->rl_autoneg) { sc->rl_tx_pend = 1; return; } while(RL_CUR_TXMBUF(sc) == NULL) { IF_DEQUEUE(&ifp->if_snd, m_head); if (m_head == NULL) break; rl_encap(sc, m_head); #if NBPFILTER > 0 /* * If there's a BPF listener, bounce a copy of this frame * to him. */ if (ifp->if_bpf) bpf_mtap(ifp, RL_CUR_TXMBUF(sc)); #endif /* * Transmit the frame. */ CSR_WRITE_4(sc, RL_CUR_TXADDR(sc), vtophys(mtod(RL_CUR_TXMBUF(sc), caddr_t))); CSR_WRITE_4(sc, RL_CUR_TXSTAT(sc), RL_TXTHRESH(sc->rl_txthresh) | RL_CUR_TXMBUF(sc)->m_pkthdr.len); RL_INC(sc->rl_cdata.cur_tx); } /* * We broke out of the loop because all our TX slots are * full. Mark the NIC as busy until it drains some of the * packets from the queue. */ if (RL_CUR_TXMBUF(sc) != NULL) ifp->if_flags |= IFF_OACTIVE; /* * Set a timeout in case the chip goes out to lunch. */ ifp->if_timer = 5; return; } static void rl_init(xsc) void *xsc; { struct rl_softc *sc = xsc; struct ifnet *ifp = &sc->arpcom.ac_if; int s, i; u_int32_t rxcfg = 0; u_int16_t phy_bmcr = 0; if (sc->rl_autoneg) return; s = splimp(); /* * XXX Hack for the 8139: the built-in autoneg logic's state * gets reset by rl_init() when we don't want it to. Try * to preserve it. (For 8129 cards with real external PHYs, * the BMCR register doesn't change, but this doesn't hurt.) */ if (sc->rl_type == RL_8139) phy_bmcr = rl_phy_readreg(sc, PHY_BMCR); /* * Cancel pending I/O and free all RX/TX buffers. */ rl_stop(sc); /* Init our MAC address */ for (i = 0; i < ETHER_ADDR_LEN; i++) { CSR_WRITE_1(sc, RL_IDR0 + i, sc->arpcom.ac_enaddr[i]); } /* Init the RX buffer pointer register. */ CSR_WRITE_4(sc, RL_RXADDR, vtophys(sc->rl_cdata.rl_rx_buf)); /* Init TX descriptors. */ rl_list_tx_init(sc); /* * Enable transmit and receive. */ CSR_WRITE_1(sc, RL_COMMAND, RL_CMD_TX_ENB|RL_CMD_RX_ENB); /* * Set the initial TX and RX configuration. */ CSR_WRITE_4(sc, RL_TXCFG, RL_TXCFG_CONFIG); CSR_WRITE_4(sc, RL_RXCFG, RL_RXCFG_CONFIG); /* Set the individual bit to receive frames for this host only. */ rxcfg = CSR_READ_4(sc, RL_RXCFG); rxcfg |= RL_RXCFG_RX_INDIV; /* If we want promiscuous mode, set the allframes bit. */ if (ifp->if_flags & IFF_PROMISC) { rxcfg |= RL_RXCFG_RX_ALLPHYS; CSR_WRITE_4(sc, RL_RXCFG, rxcfg); } else { rxcfg &= ~RL_RXCFG_RX_ALLPHYS; CSR_WRITE_4(sc, RL_RXCFG, rxcfg); } /* * Set capture broadcast bit to capture broadcast frames. */ if (ifp->if_flags & IFF_BROADCAST) { rxcfg |= RL_RXCFG_RX_BROAD; CSR_WRITE_4(sc, RL_RXCFG, rxcfg); } else { rxcfg &= ~RL_RXCFG_RX_BROAD; CSR_WRITE_4(sc, RL_RXCFG, rxcfg); } /* * Program the multicast filter, if necessary. */ rl_setmulti(sc); /* * Enable interrupts. */ CSR_WRITE_2(sc, RL_IMR, RL_INTRS); /* Set initial TX threshold */ sc->rl_txthresh = RL_TX_THRESH_INIT; /* Start RX/TX process. */ CSR_WRITE_4(sc, RL_MISSEDPKT, 0); /* Enable receiver and transmitter. */ CSR_WRITE_1(sc, RL_COMMAND, RL_CMD_TX_ENB|RL_CMD_RX_ENB); /* Restore state of BMCR */ if (sc->rl_pinfo != NULL) rl_phy_writereg(sc, PHY_BMCR, phy_bmcr); CSR_WRITE_1(sc, RL_CFG1, RL_CFG1_DRVLOAD|RL_CFG1_FULLDUPLEX); ifp->if_flags |= IFF_RUNNING; ifp->if_flags &= ~IFF_OACTIVE; (void)splx(s); return; } /* * Set media options. */ static int rl_ifmedia_upd(ifp) struct ifnet *ifp; { struct rl_softc *sc; struct ifmedia *ifm; sc = ifp->if_softc; ifm = &sc->ifmedia; if (IFM_TYPE(ifm->ifm_media) != IFM_ETHER) return(EINVAL); if (IFM_SUBTYPE(ifm->ifm_media) == IFM_AUTO) rl_autoneg_mii(sc, RL_FLAG_SCHEDDELAY, 1); else rl_setmode_mii(sc, ifm->ifm_media); return(0); } /* * Report current media status. */ static void rl_ifmedia_sts(ifp, ifmr) struct ifnet *ifp; struct ifmediareq *ifmr; { struct rl_softc *sc; u_int16_t advert = 0, ability = 0; sc = ifp->if_softc; if (!(rl_phy_readreg(sc, PHY_BMCR) & PHY_BMCR_AUTONEGENBL)) { if (rl_phy_readreg(sc, PHY_BMCR) & PHY_BMCR_SPEEDSEL) ifmr->ifm_active = IFM_ETHER|IFM_100_TX; else ifmr->ifm_active = IFM_ETHER|IFM_10_T; if (rl_phy_readreg(sc, PHY_BMCR) & PHY_BMCR_DUPLEX) ifmr->ifm_active |= IFM_FDX; else ifmr->ifm_active |= IFM_HDX; return; } ability = rl_phy_readreg(sc, PHY_LPAR); advert = rl_phy_readreg(sc, PHY_ANAR); if (advert & PHY_ANAR_100BT4 && ability & PHY_ANAR_100BT4) { ifmr->ifm_active = IFM_ETHER|IFM_100_T4; } else if (advert & PHY_ANAR_100BTXFULL && ability & PHY_ANAR_100BTXFULL) { ifmr->ifm_active = IFM_ETHER|IFM_100_TX|IFM_FDX; } else if (advert & PHY_ANAR_100BTXHALF && ability & PHY_ANAR_100BTXHALF) { ifmr->ifm_active = IFM_ETHER|IFM_100_TX|IFM_HDX; } else if (advert & PHY_ANAR_10BTFULL && ability & PHY_ANAR_10BTFULL) { ifmr->ifm_active = IFM_ETHER|IFM_10_T|IFM_FDX; } else if (advert & PHY_ANAR_10BTHALF && ability & PHY_ANAR_10BTHALF) { ifmr->ifm_active = IFM_ETHER|IFM_10_T|IFM_HDX; } return; } static int rl_ioctl(ifp, command, data) struct ifnet *ifp; u_long command; caddr_t data; { struct rl_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; int s, error = 0; s = splimp(); switch(command) { case SIOCSIFADDR: case SIOCGIFADDR: case SIOCSIFMTU: error = ether_ioctl(ifp, command, data); break; case SIOCSIFFLAGS: if (ifp->if_flags & IFF_UP) { rl_init(sc); } else { if (ifp->if_flags & IFF_RUNNING) rl_stop(sc); } error = 0; break; case SIOCADDMULTI: case SIOCDELMULTI: rl_setmulti(sc); error = 0; break; case SIOCGIFMEDIA: case SIOCSIFMEDIA: error = ifmedia_ioctl(ifp, ifr, &sc->ifmedia, command); break; default: error = EINVAL; break; } (void)splx(s); return(error); } static void rl_watchdog(ifp) struct ifnet *ifp; { struct rl_softc *sc; sc = ifp->if_softc; if (sc->rl_autoneg) { rl_autoneg_mii(sc, RL_FLAG_DELAYTIMEO, 1); return; } printf("rl%d: watchdog timeout\n", sc->rl_unit); ifp->if_oerrors++; if (!(rl_phy_readreg(sc, PHY_BMSR) & PHY_BMSR_LINKSTAT)) printf("rl%d: no carrier - transceiver cable problem?\n", sc->rl_unit); rl_txeof(sc); rl_rxeof(sc); rl_init(sc); return; } /* * Stop the adapter and free any mbufs allocated to the * RX and TX lists. */ static void rl_stop(sc) struct rl_softc *sc; { register int i; struct ifnet *ifp; ifp = &sc->arpcom.ac_if; ifp->if_timer = 0; CSR_WRITE_1(sc, RL_COMMAND, 0x00); CSR_WRITE_2(sc, RL_IMR, 0x0); /* * Free the TX list buffers. */ for (i = 0; i < RL_TX_LIST_CNT; i++) { if (sc->rl_cdata.rl_tx_chain[i] != NULL) { m_freem(sc->rl_cdata.rl_tx_chain[i]); sc->rl_cdata.rl_tx_chain[i] = NULL; CSR_WRITE_4(sc, RL_TXADDR0 + i, 0x0); } } ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); return; } /* * Stop all chip I/O so that the kernel's probe routines don't * get confused by errant DMAs when rebooting. */ static void rl_shutdown(howto, arg) int howto; void *arg; { struct rl_softc *sc = (struct rl_softc *)arg; rl_stop(sc); return; } static struct pci_device rl_device = { "rl", rl_probe, rl_attach, &rl_count, NULL }; DATA_SET(pcidevice_set, rl_device); U($\AUTOEXECBAT @Z(;SCAN  ܄$&#/* * Copyright (c) 1997, 1998 * Bill Paul . All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by Bill Paul. * 4. Neither the name of the author nor the names of any co-contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/pci/if_rlreg.h,v 1.4.2.9 1999/11/01 17:24:52 wpaul Exp $ */ /* * RealTek 8129/8139 register offsets */ #define RL_IDR0 0x0 /* ID register 0 (station addr) */ #define RL_IDR1 0x0001 /* Must use 32-bit accesses (?) */ #define RL_IDR2 0x0002 #define RL_IDR3 0x0003 #define RL_IDR4 0x0004 #define RL_IDR5 0x0005 /* 0006-0007 reserved */ #define RL_MAR0 0x0008 /* Multicast hash table */ #define RL_MAR1 0x0009 #define RL_MAR2 0x000A #define RL_MAR3 0x000B #define RL_MAR4 0x000C #define RL_MAR5 0x000D #define RL_MAR6 0x000E #define RL_MAR7 0x000F #define RL_TXSTAT0 0x0010 /* status of TX descriptor 0 */ #define RL_TXSTAT1 0x0014 /* status of TX descriptor 1 */ #define RL_TXSTAT2 0x0018 /* status of TX descriptor 2 */ #define RL_TXSTAT3 0x001C /* status of TX descriptor 3 */ #define RL_TXADDR0 0x0020 /* address of TX descriptor 0 */ #define RL_TXADDR1 0x0024 /* address of TX descriptor 1 */ #define RL_TXADDR2 0x0028 /* address of TX descriptor 2 */ #define RL_TXADDR3 0x002C /* address of TX descriptor 3 */ #define RL_RXADDR 0x0030 /* RX ring start address */ #define RL_RX_EARLY_BYTES 0x0034 /* RX early byte count */ #define RL_RX_EARLY_STAT 0x0036 /* RX early status */ #define RL_COMMAND 0x0037 /* command register */ #define RL_CURRXADDR 0x0038 /* current address of packet read */ #define RL_CURRXBUF 0x003A /* current RX buffer address */ #define RL_IMR 0x003C /* interrupt mask register */ #define RL_ISR 0x003E /* interrupt status register */ #define RL_TXCFG 0x0040 /* transmit config */ #define RL_RXCFG 0x0044 /* receive config */ #define RL_TIMERCNT 0x0048 /* timer count register */ #define RL_MISSEDPKT 0x004C /* missed packet counter */ #define RL_EECMD 0x0050 /* EEPROM command register */ #define RL_CFG0 0x0051 /* config register #0 */ #define RL_CFG1 0x0052 /* config register #1 */ /* 0053-0057 reserved */ #define RL_MEDIASTAT 0x0058 /* media status register (8139) */ /* 0059-005A reserved */ #define RL_MII 0x005A /* 8129 chip only */ #define RL_HALTCLK 0x005B #define RL_MULTIINTR 0x005C /* multiple interrupt */ #define RL_PCIREV 0x005E /* PCI revision value */ /* 005F reserved */ #define RL_TXSTAT_ALL 0x0060 /* TX status of all descriptors */ /* Direct PHY access registers only available on 8139 */ #define RL_BMCR 0x0062 /* PHY basic mode control */ #define RL_BMSR 0x0064 /* PHY basic mode status */ #define RL_ANAR 0x0066 /* PHY autoneg advert */ #define RL_LPAR 0x0068 /* PHY link partner ability */ #define RL_ANER 0x006A /* PHY autoneg expansion */ #define RL_DISCCNT 0x006C /* disconnect counter */ #define RL_FALSECAR 0x006E /* false carrier counter */ #define RL_NWAYTST 0x0070 /* NWAY test register */ #define RL_RX_ER 0x0072 /* RX_ER counter */ #define RL_CSCFG 0x0074 /* CS configuration register */ /* * TX config register bits */ #define RL_TXCFG_CLRABRT 0x01 /* retransmit aborted pkt */ #define RL_TXCFG_MAXDMA 0x0700 /* max DMA burst size */ #define RL_TXCFG_CRCAPPEND 0x00010 /* CRC append (0 = yes) */ #define RL_TXCFG_LOOPBKTST 0x00060 /* loopback test */ #define RL_TXCFG_IFG 0x030 /* interframe gap */ #define RL_TXDMA_16BYTES 0x0 #define RL_TXDMA_32BYTES 0x0100 #define RL_TXDMA_64BYTES 0x0200 #define RL_TXDMA_128BYTES 0x0300 #define RL_TXDMA_256BYTES 0x0400 #define RL_TXDMA_512BYTES 0x0500 #define RL_TXDMA_1024BYTES 0x0600 #define RL_TXDMA_2048BYTES 0x0700 /* * Transmit descriptor status register bits. */ #define RL_TXSTAT_LENMASK 0x01FFF #define RL_TXSTAT_OWN 0x02000 #define RL_TXSTAT_TX_UNDERRUN 0x04000 #define RL_TXSTAT_TX_OK 0x08000 #define RL_TXSTAT_EARLY_THRESH 0x003F0 #define RL_TXSTAT_COLLCNT 0x0F0 #define RL_TXSTAT_CARR_HBEAT 0x10 #define RL_TXSTAT_OUTOFWIN 0x20 #define RL_TXSTAT_TXABRT 0x40 #define RL_TXSTAT_CARRLOSS 0x80 /* * Interrupt status register bits. */ #define RL_ISR_RX_OK 0x0001 #define RL_ISR_RX_ERR 0x0002 #define RL_ISR_TX_OK 0x0004 #define RL_ISR_TX_ERR 0x0008 #define RL_ISR_RX_OVERRUN 0x0010 #define RL_ISR_PKT_UNDERRUN 0x0020 #define RL_ISR_FIFO_OFLOW 0x0040 /* 8139 only */ #define RL_ISR_PCS_TIMEOUT 0x4000 /* 8129 only */ #define RL_ISR_SYSTEM_ERR 0x8000 #define RL_INTRS \ (RL_ISR_TX_OK|RL_ISR_RX_OK|RL_ISR_RX_ERR|RL_ISR_TX_ERR| \ RL_ISR_RX_OVERRUN|RL_ISR_PKT_UNDERRUN|RL_ISR_FIFO_OFLOW| \ RL_ISR_PCS_TIMEOUT|RL_ISR_SYSTEM_ERR) /* * Media status register. (8139 only) */ #define RL_MEDIASTAT_RXPAUSE 0x01 #define RL_MEDIASTAT_TXPAUSE 0x02 #define RL_MEDIASTAT_LINK 0x04 #define RL_MEDIASTAT_SPEED10 0x08 #define RL_MEDIASTAT_RXFLOWCTL 0x40 /* duplex mode */ #define RL_MEDIASTAT_TXFLOWCTL 0x80 /* duplex mode */ /* * Receive config register. */ #define RL_RXCFG_RX_ALLPHYS 0x01 /* accept all nodes */ #define RL_RXCFG_RX_INDIV 0x02 /* match filter */ #define RL_RXCFG_RX_MULTI 0x04 /* accept all multicast */ #define RL_RXCFG_RX_BROAD 0x08 /* accept all broadcast */ #define RL_RXCFG_RX_RUNT 0x010 #define RL_RXCFG_RX_ERRPKT 0x020 #define RL_RXCFG_WRAP 0x080 #define RL_RXCFG_MAXDMA 0x0700 #define RL_RXCFG_BUFSZ 0x01800 #define RL_RXCFG_FIFOTHRESH 0x0E000 #define RL_RXCFG_EARLYTHRESH 0x070 #define RL_RXDMA_16BYTES 0x0 #define RL_RXDMA_32BYTES 0x0100 #define RL_RXDMA_64BYTES 0x0200 #define RL_RXDMA_128BYTES 0x0300 #define RL_RXDMA_256BYTES 0x0400 #define RL_RXDMA_512BYTES 0x0500 #define RL_RXDMA_1024BYTES 0x0600 #define RL_RXDMA_UNLIMITED 0x0700 #define RL_RXBUF_8 0x0 #define RL_RXBUF_16 0x0800 #define RL_RXBUF_32 0x01000 #define RL_RXBUF_64 0x01800 #define RL_RXFIFO_16BYTES 0x0 #define RL_RXFIFO_32BYTES 0x02000 #define RL_RXFIFO_64BYTES 0x04000 #define RL_RXFIFO_128BYTES 0x06000 #define RL_RXFIFO_256BYTES 0x08000 #define RL_RXFIFO_512BYTES 0x0A000 #define RL_RXFIFO_1024BYTES 0x0C000 #define RL_RXFIFO_NOTHRESH 0x0E000 /* * Bits in RX status header (included with RX'ed packet * in ring buffer). */ #define RL_RXSTAT_RXOK 0x01 #define RL_RXSTAT_ALIGNERR 0x02 #define RL_RXSTAT_CRCERR 0x04 #define RL_RXSTAT_GIANT 0x08 #define RL_RXSTAT_RUNT 0x010 #define RL_RXSTAT_BADSYM 0x020 #define RL_RXSTAT_BROAD 0x02000 #define RL_RXSTAT_INDIV 0x04000 #define RL_RXSTAT_MULTI 0x08000 #define RL_RXSTAT_LENMASK 0xF0 #define RL_RXSTAT_UNFINISHED 0xFFF0 /* DMA still in progress */ /* * Command register. */ #define RL_CMD_EMPTY_RXBUF 0x0001 #define RL_CMD_TX_ENB 0x0004 #define RL_CMD_RX_ENB 0x0008 #define RL_CMD_RESET 0x0010 /* * EEPROM control register */ #define RL_EE_DATAOUT 0x01 /* Data out */ #define RL_EE_DATAIN 0x02 /* Data in */ #define RL_EE_CLK 0x04 /* clock */ #define RL_EE_SEL 0x08 /* chip select */ #define RL_EE_MODE (0x40|0x80) #define RL_EEMODE_OFF 0x00 #define RL_EEMODE_AUTOLOAD 0x40 #define RL_EEMODE_PROGRAM 0x80 #define RL_EEMODE_WRITECFG (0x80|0x40) /* 9346 EEPROM commands */ #define RL_EECMD_WRITE 0x140 #define RL_EECMD_READ 0x180 #define RL_EECMD_ERASE 0x1c0 #define RL_EE_ID 0x00 #define RL_EE_PCI_VID 0x01 #define RL_EE_PCI_DID 0x02 /* Location of station address inside EEPROM */ #define RL_EE_EADDR 0x07 /* * MII register (8129 only) */ #define RL_MII_CLK 0x01 #define RL_MII_DATAIN 0x02 #define RL_MII_DATAOUT 0x04 #define $RL_MII_DIR 0x80 /* 0 == input, 1 == output */ /* * Config 0 register */ #define RL_CFG0_ROM0 0x01 #define RL_CFG0_ROM1 0x02 #define RL_CFG0_ROM2 0x04 #define RL_CFG0_PL0 0x08 #define RL_CFG0_PL1 0x10 #define RL_CFG0_10MBPS 0x20 /* 10 Mbps internal mode */ #define RL_CFG0_PCS 0x40 #define RL_CFG0_SCR 0x80 /* * Config 1 register */ #define RL_CFG1_PWRDWN 0x01 #define RL_CFG1_SLEEP 0x02 #define RL_CFG1_IOMAP 0x04 #define RL_CFG1_MEMMAP 0x08 #define RL_CFG1_RSVD 0x10 #define RL_CFG1_DRVLOAD 0x20 #define RL_CFG1_LED0 0x40 #define RL_CFG1_FULLDUPLEX 0x40 /* 8129 only */ #define RL_CFG1_LED1 0x80 /* * The RealTek doesn't use a fragment-based descriptor mechanism. * Instead, there are only four register sets, each or which represents * one 'descriptor.' Basically, each TX descriptor is just a contiguous * packet buffer (32-bit aligned!) and we place the buffer addresses in * the registers so the chip knows where they are. * * We can sort of kludge together the same kind of buffer management * used in previous drivers, but we have to do buffer copies almost all * the time, so it doesn't really buy us much. * * For reception, there's just one large buffer where the chip stores * all received packets. */ #define RL_RX_BUF_SZ RL_RXBUF_64 #define RL_RXBUFLEN (1 << ((RL_RX_BUF_SZ >> 11) + 13)) #define RL_TX_LIST_CNT 4 #define RL_MIN_FRAMELEN 60 #define RL_TXTHRESH(x) ((x) << 11) #define RL_TX_THRESH_INIT 96 #define RL_RX_FIFOTHRESH RL_RXFIFO_256BYTES #define RL_RX_MAXDMA RL_RXDMA_256BYTES #define RL_TX_MAXDMA RL_TXDMA_256BYTES #define RL_RXCFG_CONFIG (RL_RX_FIFOTHRESH|RL_RX_MAXDMA|RL_RX_BUF_SZ) #define RL_TXCFG_CONFIG (RL_TXCFG_IFG|RL_TX_MAXDMA) #define RL_ETHER_ALIGN 2 struct rl_chain_data { u_int16_t cur_rx; caddr_t rl_rx_buf; caddr_t rl_rx_buf_ptr; struct mbuf *rl_tx_chain[RL_TX_LIST_CNT]; u_int8_t last_tx; u_int8_t cur_tx; }; #define RL_INC(x) (x = (x + 1) % RL_TX_LIST_CNT) #define RL_CUR_TXADDR(x) ((x->rl_cdata.cur_tx * 4) + RL_TXADDR0) #define RL_CUR_TXSTAT(x) ((x->rl_cdata.cur_tx * 4) + RL_TXSTAT0) #define RL_CUR_TXMBUF(x) (x->rl_cdata.rl_tx_chain[x->rl_cdata.cur_tx]) #define RL_LAST_TXADDR(x) ((x->rl_cdata.last_tx * 4) + RL_TXADDR0) #define RL_LAST_TXSTAT(x) ((x->rl_cdata.last_tx * 4) + RL_TXSTAT0) #define RL_LAST_TXMBUF(x) (x->rl_cdata.rl_tx_chain[x->rl_cdata.last_tx]) struct rl_type { u_int16_t rl_vid; u_int16_t rl_did; char *rl_name; }; struct rl_mii_frame { u_int8_t mii_stdelim; u_int8_t mii_opcode; u_int8_t mii_phyaddr; u_int8_t mii_regaddr; u_int8_t mii_turnaround; u_int16_t mii_data; }; /* * MII constants */ #define RL_MII_STARTDELIM 0x01 #define RL_MII_READOP 0x02 #define RL_MII_WRITEOP 0x01 #define RL_MII_TURNAROUND 0x02 #define RL_FLAG_FORCEDELAY 1 #define RL_FLAG_SCHEDDELAY 2 #define RL_FLAG_DELAYTIMEO 3 #define RL_8129 1 #define RL_8139 2 struct rl_softc { struct arpcom arpcom; /* interface info */ struct ifmedia ifmedia; /* media info */ bus_space_handle_t rl_bhandle; /* bus space handle */ bus_space_tag_t rl_btag; /* bus space tag */ struct rl_type *rl_pinfo; /* phy info */ u_int8_t rl_unit; /* interface number */ u_int8_t rl_type; u_int8_t rl_phy_addr; /* PHY address */ u_int8_t rl_tx_pend; /* TX pending */ u_int8_t rl_want_auto; u_int8_t rl_autoneg; u_int8_t rl_stats_no_timeout; int rl_txthresh; struct rl_chain_data rl_cdata; }; /* * register space access macros */ #define CSR_WRITE_4(sc, reg, val) \ bus_space_write_4(sc->rl_btag, sc->rl_bhandle, reg, val) #define CSR_WRITE_2(sc, reg, val) \ bus_space_write_2(sc->rl_btag, sc->rl_bhandle, reg, val) #define CSR_WRITE_1(sc, reg, val) \ bus_space_write_1(sc->rl_btag, sc->rl_bhandle, reg, val) #define CSR_READ_4(sc, reg) \ bus_space_read_4(sc->rl_btag, sc->rl_bhandle, reg) #define CSR_READ_2(sc, reg) \ bus_space_read_2(sc->rl_btag, sc->rl_bhandle, reg) #define CSR_READ_1(sc, reg) \ bus_space_read_1(sc->rl_btag, sc->rl_bhandle, reg) #define RL_TIMEOUT 1000 /* * General constants that are fun to know. * * RealTek PCI vendor ID */ #define RT_VENDORID 0x10EC /* * RealTek chip device IDs. */ #define RT_DEVICEID_8129 0x8129 #define RT_DEVICEID_8139 0x8139 /* * Accton PCI vendor ID */ #define ACCTON_VENDORID 0x1113 /* * Accton MPX 5030/5038 device ID. */ #define ACCTON_DEVICEID_5030 0x1211 /* * Delta Electronics Vendor ID. */ #define DELTA_VENDORID 0x1500 /* * Delta device IDs. */ #define DELTA_DEVICEID_8139 0x1360 /* * Addtron vendor ID. */ #define ADDTRON_VENDORID 0x4033 /* * Addtron device IDs. */ #define ADDTRON_DEVICEID_8139 0x1360 /* * Texas Instruments PHY identifiers */ #define TI_PHY_VENDORID 0x4000 #define TI_PHY_10BT 0x501F #define TI_PHY_100VGPMI 0x502F /* * These ID values are for the NS DP83840A 10/100 PHY */ #define NS_PHY_VENDORID 0x2000 #define NS_PHY_83840A 0x5C0F /* * Level 1 10/100 PHY */ #define LEVEL1_PHY_VENDORID 0x7810 #define LEVEL1_PHY_LXT970 0x000F /* * Intel 82555 10/100 PHY */ #define INTEL_PHY_VENDORID 0x0A28 #define INTEL_PHY_82555 0x015F /* * SEEQ 80220 10/100 PHY */ #define SEEQ_PHY_VENDORID 0x0016 #define SEEQ_PHY_80220 0xF83F /* * PCI low memory base and low I/O base register, and * other PCI registers. Note: some are only available on * the 3c905B, in particular those that related to power management. */ #define RL_PCI_VENDOR_ID 0x00 #define RL_PCI_DEVICE_ID 0x02 #define RL_PCI_COMMAND 0x04 #define RL_PCI_STATUS 0x06 #define RL_PCI_CLASSCODE 0x09 #define RL_PCI_LATENCY_TIMER 0x0D #define RL_PCI_HEADER_TYPE 0x0E #define RL_PCI_LOIO 0x10 #define RL_PCI_LOMEM 0x14 #define RL_PCI_BIOSROM 0x30 #define RL_PCI_INTLINE 0x3C #define RL_PCI_INTPIN 0x3D #define RL_PCI_MINGNT 0x3E #define RL_PCI_MINLAT 0x0F #define RL_PCI_RESETOPT 0x48 #define RL_PCI_EEPROM_DATA 0x4C #define RL_PCI_CAPID 0x50 /* 8 bits */ #define RL_PCI_NEXTPTR 0x51 /* 8 bits */ #define RL_PCI_PWRMGMTCAP 0x52 /* 16 bits */ #define RL_PCI_PWRMGMTCTRL 0x54 /* 16 bits */ #define RL_PSTATE_MASK 0x0003 #define RL_PSTATE_D0 0x0000 #define RL_PSTATE_D1 0x0002 #define RL_PSTATE_D2 0x0002 #define RL_PSTATE_D3 0x0003 #define RL_PME_EN 0x0010 #define RL_PME_STATUS 0x8000 #define PHY_UNKNOWN 6 #define RL_PHYADDR_MIN 0x00 #define RL_PHYADDR_MAX 0x1F #define PHY_BMCR 0x00 #define PHY_BMSR 0x01 #define PHY_VENID 0x02 #define PHY_DEVID 0x03 #define PHY_ANAR 0x04 #define PHY_LPAR 0x05 #define PHY_ANEXP 0x06 #define PHY_ANAR_NEXTPAGE 0x8000 #define PHY_ANAR_RSVD0 0x4000 #define PHY_ANAR_TLRFLT 0x2000 #define PHY_ANAR_RSVD1 0x1000 #define PHY_ANAR_RSVD2 0x0800 #define PHY_ANAR_RSVD3 0x0400 #define PHY_ANAR_100BT4 0x0200 #define PHY_ANAR_100BTXFULL 0x0100 #define PHY_ANAR_100BTXHALF 0x0080 #define PHY_ANAR_10BTFULL 0x0040 #define PHY_ANAR_10BTHALF 0x0020 #define PHY_ANAR_PROTO4 0x0010 #define PHY_ANAR_PROTO3 0x0008 #define PHY_ANAR_PROTO2 0x0004 #define PHY_ANAR_PROTO1 0x0002 #define PHY_ANAR_PROTO0 0x0001 /* * These are the register definitions for the PHY (physical layer * interface chip). */ /* * PHY BMCR Basic Mode Control Register */ #define PHY_BMCR_RESET 0x8000 #define PHY_BMCR_LOOPBK 0x4000 #define PHY_BMCR_SPEEDSEL 0x2000 #define PHY_BMCR_AUTONEGENBL 0x1000 #define PHY_BMCR_RSVD0 0x0800 /* write as zero */ #define PHY_BMCR_ISOLATE 0x0400 #define PHY_BMCR_AUTONEGRSTR 0x0200 #define PHY_BMCR_DUPLEX 0x0100 #define PHY_BMCR_COLLTEST 0x0080 #define PHY_BMCR_RSVD1 0x0040 /* write as zero, don't care */ #define PHY_BMCR_RSVD2 0x0020 /* write as zero, don't care */ #define PHY_BMCR_RSVD3 0x0010 /* write as zero, don't care */ #define PHY_BMCR_RSVD4 0x0008 /* write as zero, don't care */ #define PHY_BMCR_RSVD5 0x0004 /* write as zero, don't care */ #define PHY_BMCR_RSVD6 0x0002 /* write as zero, don't care */ #define PHY_BMCR_RSVD7 0x0001 /* write as zero, don't care */ /* * RESET: 1 == software reset, 0 == normal operation * Resets status and control registers to default values. * Relatches all hardware config values. * * LOOPBK: 1 == loopback operation enabled, 0 == normal operation * * SPEEDSEL: 1 == 100Mb/s, 0 == 10Mb/s * Link speed is selected byt his bit or if auto-negotiation if bit * 12 (AUTONEGENBL) is set (in which case the value of this register * is ignored). * * AUTONEGENBL: 1 == Autonegotiation enabled, 0 == Autonegotiation disabled * Bits 8 and 13 are ignored when autoneg is set, otherwise bits 8 and 13 * determine speed and mode. Should be cleared and then set if PHY configured * for no autoneg on startup. * * ISOLATE: 1 == isolate PHY from MII, 0 == normal operation * * AUTONEGRSTR: 1 == restart autonegotiation, 0 = normal operation * * DUPLEX: 1 == full duplex mode, 0 == half duplex mode * * COLLTEST: 1 == collision test enabled, 0 == normal operation */ /* * PHY, BMSR Basic Mode Status Register */ #define PHY_BMSR_100BT4 0x8000 #define PHY_BMSR_100BTXFULL 0x4000 #define PHY_BMSR_100BTXHALF 0x2000 #define PHY_BMSR_10BTFULL 0x1000 #define PHY_BMSR_10BTHALF 0x0800 #define PHY_BMSR_RSVD1 0x0400 /* write as zero, don't care */ #define PHY_BMSR_RSVD2 0x0200 /* write as zero, d"on't care */ #define PHY_BMSR_RSVD3 0x0100 /* write as zero, don't care */ #define PHY_BMSR_RSVD4 0x0080 /* write as zero, don't care */ #define PHY_BMSR_MFPRESUP 0x0040 #define PHY_BMSR_AUTONEGCOMP 0x0020 #define PHY_BMSR_REMFAULT 0x0010 #define PHY_BMSR_CANAUTONEG 0x0008 #define PHY_BMSR_LINKSTAT 0x0004 #define PHY_BMSR_JABBER 0x0002 #define PHY_BMSR_EXTENDED 0x0001 #ifdef __alpha__ #undef vtophys #define vtophys(va) (pmap_kextract(((vm_offset_t) (va))) \ + 1*1024*1024*1024) #endif \.  yQ!) ..  yQ!)RTSPKG Z {& (^README TXT QL& %p֜y*\ȰǘF(j̨q"ǎaظ11j#H0FI͛u #7od3Ѕ]XbPJJjd)Lկ`j$jTd 5LƠ1,%/f ˷œ;{N,**IG2ԯǐH "0m)%֮ dpC( ܤ3GX_ M ݬ@l@jK 0:9(pjb_K}yɗO_ޫ@$vE!  !7cA=d!.ˆXJIDq@A V . ̩8#`1 P` ,\As"(10 $s. " & ` 'Ӂ8U/\f٭Yje 3H%`]'4\eQPQuXU-uZ=NVem6FjhaQcgKe <͡ü-qD"HA8kND/ۂi\I`D1prQeAtE8ARP|W0϶sRLNP 0F FlA/l0r(pC AqA,APQ@gAyTFo3S1n!kPLAPPqh w!%5FުW"4)sK6$Q$93yySn#R*TAi" 2ffA*F (A^(ArlK#?‰:pP[9&VpDGPy `% z$#/IE⫻X{-ZTt[L B58a kfu! S@@`A hW F52AeV0 +fCp\ ì8+k2 f6f"5F: 5.m|c1_#G7褏dxA84> Qb H"$"fՆ^4 XCvEF|pPL L2i5{D$*ӠJV ЃD/ވ23e/0M Z )URvh͊yd.|HiVLͺio6.OJ͈gH{ZRePSja2o$6?iǗfTj+_Kj4kRMISf3 &1ЩƳ@ŪJWaᨣ)]{N9R}_{bbaϥ֔CdI uY[Y4FFFWvZ$&AɮeĶ*ഌR.cK2$ +dֺآ%{[ߒ ;j}Ź%RW rp8Hu#~eL#8J+|uݰ;Q {V x%I5)ca+ΚA2Ar 8p..1_a7s|82# %9=ۓ9+y1 j,/c.YY׮_gP8@X][,Y{qe?9o |^$z8֣asfH|iA@9[Jk#Y)1x{/3r@@fU@@Amdc;)& [lC2ڴbL?$`M1kr YvIH/ 欓+f[ǘ~s ~%_}{ 'nEˀюvYJUtJ6@xr;vw/T x@*WrAzucI.6I|u~оsbBX$j z 2 e*c\F 5Y3CY@w)i=x pmRF7)M9U'5c\^#"P])@ŭjOjo5ϋn tF ,r=+6sp,+d `E%)_uR2@|9g|98xq.g$?@Ï;C;A?Lb???4uD-u6[>[B,u*,r2t 4^TwtV:H[O;"@$t'tu@/`!PBR_7_P_у6&1 Q^&x%\K3PU!E#dхnx7KZ(se8t)ii3OТR_qHUhu8]xgf;!Q[ł,hJXpX-8_ȇezu[h7p^.X84RQTQB88qz6PgXsK86u^FWlKh=w8x_Uu؎EFۑF  QPP3 ]0 W0`SPp;1@M; t P tpSYPГPB r%y0}Pu PPP [_p0pRYp`)t`@a~yey YWI$@$@o ᑋ$sp0K`9@$!Dz]J @ hp@ `h J[ )x [WK*$[[h;F̀B $lzii PXPSp X;Tph@'j2yTP0GI J۶2 t {{{{ y    YK 0qPBK;P ay_в/ .۠}y $ "Jɖ &  ? `$)Y0 |<\@,l@ŋڛ'{) p]z l`jЖH K Z 2JPYPлELqȋpUz 0`ɕLưfi~z F Y, W #kZpw\Y ɀ1ȺV¬m+<ĭ*ȋpRZ 0 RܘVZl!Jũ$ 1p왂C𨦊uj`PIi?lyy`٥ <f\ ;zumIZ>Yѹ(@Qp%$0؞ ܅ ]RP\m5ӷ֜@m˾zƄޤ\ڧ]Pތp9l 7@Ɵpg0@ Yu4Džz &NϐQ+ ,:W;B>㨰YFlzk RP E۶ ZN BKm0 DP 2Y@ OzKR*`ݒ_L0zRPB g ݉0$PN|?9*]N@  Y E($ pSKmu=LRPp͘X*P ^f  P~M*`JEl$YK;P ~@PZ=`XgSG@ N P~DΎ y{. ή{N@zC[*-ϸ ;X0z-LJBK3[P$@} 1ϛtn+P (ݿ ,`jb^mOݥݞrK]P4^hoj*3c~ yY[SLO0p: u>m FҏOp N >0T Kt `x #Y,H PaE"@؀7 $; h[ P.i20@zĀ4,@R)<8A  L8>=P T^C0 5؂-h -=08@. ?PpA%>: p JA 2c@}0 dˠ2(?pA6 r<6ؠ2 @A (vU4 l; 2pd j20f`d ;Wjt@jxўPPE:1em&M- )HA2r \JSIc"0ia"+ A8YJbJ&И1c91 44&;!b`IC`(b+s@`05Y DZ'\4&ddQӗJ{yd&52̜3{/E Ai'm 8R1_r: N1?j3jr2*ց_D@[@;iv~ ((h,,th TЀH~A4$P@A  NHӗ ;G {`~K h#J,ނv 6h xm JB/,Ph: 'm`j vt3pHI2T:RI {RC3\>Jǘbc̐2YZ|:`:(a>LiL!!Dpa:L LE 4%d2Ԧr Jٶ 7]ejL)2`='U/vyF^̀m0/:Pkt!0` -z:0 @ѡځq-8@@- dmAvt 18`H`pM$*t`* DO,TAS5 Na`'Ha $.gUٿEB  2U>PzT%>[ ]K(Bi#ER t@^4:P,!)MWUL8Q(*N0D5*lDXTQI/y^] jV A 1ƊZ!k5!$%4+gN Y\qAX4OZ ERҫ*:t&zKd`i `[6AӦh vDrJ>SyXrgB-sOb0j}I8P"7*]p@VY#d}Kh`@ +l+G\y+dlS6̢?@f$"6@T\)2dExVͪ>kfR"Y@hMyz7$(2CA&wp>CQd DbT۶`$IHT6@m?gMZja-WfLl2`,5 )t@(-hj[tp-;'Fە:% Hn3e|u,cBp6eo-vBz`Uvj2 |ԕ|1a$ @j>=\"/L$y[ "K ͹) Znѽ{@ϝFK n=u/'P[[Znٽ@C08m$x&A+F|O8I_d3рFNV[(1!TPܑhu T[ˋB@MOہ14"Pj^;nہ^Vsn8SM&~ۓ;-`@x`MՀtf=Jm B8<. 5j M Lڠ`O5@ 0{yU;gAl"lh5e=Yͪy0:*XS+/3j$m7+ -h;!gKF P Y&aoƝTs^SHEJ.e%{5]yq9@ZDPWJ- >P1ԧ(ha&t\$H `mEzH< f/p=Ƀ{ҁ} ԁׁ# А x\wqzw}̞ҁ n SJa𚪃L߄SMVDE5 yO*X x |y3n4pW@RPDRٓ+ :@hSN6n{>+X6SЁKr]" U:1|U?y8P? |3 EȨ[=O)(!W!Dva Ym0 (LkZ0Jq*=Ks#۸'KA(VQ EKK*>6X`Yl%cpB]AбZ8 q}.ͨХzu)0Rk]3Z g,]ٱv)r rA2=!H*(R7Iif5@퇄p:'1j &Z i|,%[LXR;J|:Ձ;L.s\S\wR3xqP$!!6ĥj^bZ~ɿxA"tj<{: `PAmK:]zLUVw_^JuP@𔭴&FK:y!b^ /ZZⷫ3*Xi: $3 4agnT^:p4 "uPU4B^ɋz ¶͚"YM%!: Ĵ,uX$`(j?+{x/5s;od[]gj<5`X_il< vg\hNUˠ{FUmuأZ*Ӂ=PWFflFv[-5&_<m6ZU;U"s8n<dgDDqSן- Xꧢ#aZ+}fQuU&hivEp VfhF)Hؾ@^ o$> ?x7W _5ʖA$޼yfeH7QQxSD 8CKS@NPG@x4`ŏ kRby6)Lg,0`½6}"~nӹ('96ּKK(ڴkLr)X@ dX 9@Y4jUYWP%KF1q(ᘸ~e:|i16NpmEt+htB+c%.N amoY33x;0e0A8R;@R`Y2}X=r5J`6I_fJ8܀?o.ZHAꦊEK*]g<}9aKS@]$)PQ0EXP;aFɷihw\荙 D:oɖS5`#.=n)&԰oTct%:r[>*isBrBU~Ia/"C0L8* K~% ZlLtN_Bp%g )lpntw,%w:9DzzZH]W*up%:T 3:n]g(d0!:,\J^Vu ̆ &oa$cq@O2uM%"H)cu~с1xZ @>@x86xKPkaƅpXmvR?{h?A0* "'ծ:V8l 4НP٣:NHg髀@" e(48B %ktHL?gv=_D4Fί+B`YL٨@f%,13ʘ,85ƕs:9pz)#+ A8Pg,sH@ 'ącLlcՁ1`tC( qZqixuH3^/i@ X@#$ª<˯5hkLQg-43 HDd` L@`-:_Hx[ΚĒbDpb^_q=z"[Rl$ %! -6 @X]ˬՔ7B F "089Oi_%%Wu31|$:^.:Xc`b4Ҁ\C^54FX2h0(@0p'DA0 B`L۴y%1ډ)"HWf|$ A4ԁ2"Py 'qHN$Nw@`=Dp Ām`8Sc@+?| lAp xF im@Qr}~h:F$r~, ^j'^ pAH1@FO=,YK @_k?,}6=Kul$ĵi" OV6}t詯,l7"L-|JT* f |ʘAr`j1kY:ctQ$$44IXDD>T9ƍ2 1\2PD aPD/@8% ~a ƀS @1`|@4`^ @N:QIPJG%}D" L+ a4K@x"06y#JU8 ,y%_W5x@'@p V5`u4_ sM0I!P,M3hT<0P JPL@>5$0$@CX}YA"lB@"@ BY@` ߇}y$ Bp  "t)^7z LC+= ^R3RSWMhU quNd#݀ nIi^9[W}IZU,m#pnr, ֊L5-,Dw94x49C=v^t)U@b:_O`[P|@ m O|D<+QFh;%T}J3I Nf\crT  T#G \ 5TӴe*QN(A&@l*x@DC3 @)5"p=WZxI[(U[8_[Hi[(!7'L21yM`h" ޼>`c\ %TJQG \ )44c %R7'P d@,!,@@ !@qhIB`m0$R@aQ@qe@rHu0_DV`eP]0+j@jFp s@pk@!QdoOE jFyX2 aA`Nc@\ -PK(L`8D!CX 4"QDB Fḧ,""І"?l+bΠT"j$b UQCx -"0D$.0I a#ֈ>")X [bv#z`$ CHh'Zex# Ǝ%҉iG%c"'b&l"h(@%6w⣨'.Ƥ/T"8(_ġcLc _Ԋ"|+Ex*JȊ+"%BSh%ZXU~9AP, 3-:A+Ί*Fzhp$ RX-עX0⳨+bVf̈P@00=Xu@#^.:"Ca0:". o2rCt"$L@ǘ.:@c{0o.y!hxax3?HA2N#(-b 3AX4.UhH"Q 0 lۨ6ƍi#6֍k6r7APF=2,AB@8T`N|0xcXz9 \'CE,3C1ON@0@D؋- `" aP`i= D= Av`dBl7;Z #CB, I}( I}Y 85]8DFw;B V@xfDnAC 9FnECpԗb>p3J@[$;@ #Gn[Y5[C@uHIP\O! 8$YӘ-d &`FJ&#@'idA` Ē@3 TUhޙ.yВm .Y)@ZI& 8Fj[}ppA1YAzcB@֬M5@8@<:y5C>./$sI` x&+ hy;Le?YD $0|+cd(P16F %h@B R p#I}H AM +/KVJ^A#XͰi@HlD:Wf@:rnиޙzWg fd)VA~]A^1nP( "`KY`NdX3̡dN_/bD pL "36z8ܙ&P8ff iԚf ș>PcH#p@ jJt2:o|;Ph.@j$slZ Np n. 13@p|v0;>CYnD38¸m}=(߉ƝY2Z Ihjj&a+؜'+3Ýt؜bpqgIfj6&nҊ"( yfys Jb x3.41>.5lbb0BxC(08s4h5/>wP G!ޣ٨(p9cz+ b3` "D(O^.J`ʋr@B> s@2/&tFtOCpr)CN)+lmL4. #h.9)D*)`YgsPI)B (()̠Dހ!sVj|t%Wz2bN*FqjʨZKiX: GuVd6@Hʕ"i[ OD/1nʣH iP,@  Tior)ONxr5crEbژ8XhoDjQJl|[ʔƥ)]ꓮx`bʜ2$)p ;tzoڝ:~ P)YXil)zOxHiy ܩRj~it:o~x3`Asz"i{*Ni.`n⩘0QJjS"jΤ.@>){:0hf1"WBiLVZZ)Ws0j""c3)ewLvi)( i 0Pih:Χa/@IlxkktiP Z0a &j}ʥ/LP 61!&WNiKjF5i1dT0@k*z/<mj~*ji0FAj[&;)T:f0Ć &5*5yLJ"`~*6(*3@ X1멷?ΠrijR!x}ʭNFKj2!۪ʥAJ "2 fj)H**o@rjŪw RFg +>*+ڭʬ&`˩Q `|F)HzfAZD;1Uxan *^b̪VeتB f`⣼)Q*jWܚ(kޭ?Z >+Kʟn)Fd0:m6+"jt*H8+NiN LdOCbj FTهvjz u "ʮ5*ʠf W*ڤ. D׫*tB1)z(!*\~"jj*+hбί+:^YOi_ kJGE0 F*{8fFVz+iK**k2jc00-,Z',(^MF5+.k h JG Bp Cp:R,pa0 )MZŦz,9lb2:+2ig©=*2 +YJijnO Vi(*Js*C[Rڡa4l0˸ԹƧE+,NQn#p>Bʶij2KʾZl:+*n,khOβuYClVFiZJji:*~h*fz`kgʩzީښjHBz2 DۡɺGZ3&٬ 0"ljкSj|4 +X˥^**JfR֪l*Y*l-Zi| ¦m:˪+ۣެJTfYk_ѩh]kLL̪:큶I Ҫe"܊έm$kޯjH+F."Ej"dɦ5#| f+T2  "zk2W*~ŭՊn<굆i֩gki bޭܪ మ$,ZxJF*j^J-kJ+̬f6vJ⎴Pb?ZD ྥE;,eK*fkdSn^ ǂl{Ǣ; mFKȮyl: rֹbkȲj,ZOqwE rfuD;0 [RBBIy[$;) i%ec~@A.PN@Aec9K+B’꾗 yD؏9p%C &0e6V0na` L80힐մ (!$P(\n.rT[d/$l[ PoA ȻZ@. * %u%*$ڲz@B)wwۺ"/] _fc.p_o[xW& Y6~JкiY/d1U >5@ۺ ]lfA0s@*Y) /$6>$@{%"9P9KPpboQx[4lory-[/߮< خb%K-[oAANBk#.& b;oa`"]\%&* B/ B[俅,|@BR Ko\ykFq@cp \A2@H ?7 c*2p2 PQ*?  (\0?p8 ̅#\b0@ l)5P[pɃen dc $0\0` 6 %,}pv"Cx nُ@$\8#Mv o@'0 Ѐ)\xC 0 {(,0RW m0l![1 (p' p- p3 Kp9 p? #e[#%-@AP#P_ i@84pA A)P> t8+.\|)dch >)P_ ?CDqJdAg<q&C B&qA @;L< @1#9qAP n2dQV)@0#'TC*O)H d SLY+\T%Dkq d?\Ikx1 @_XpbpdVb\\Ƨ(aq70o$̓y0 RQh/) ƒh,HHjҗ)wЕqApZ k,dp9`r:qA@) l@qA(XXF@?Xb.ԋAz1A(@}\ }\6}0Awį \)$ Ž\, rA D֯ yd)!Z\"2p*P"(2 dȵ:#|_Ŗ|RL+>rJ kq<$2dZLRZH)Y'P%,Hl?Rz\erh|]c.&,?@'e_ $'@ٷ#@CyB2p0ʟ)[ AZv,DȬ̦LZJX@*Ǽ*!ƍ2 3*i%\ʧ+ZL !`, k7,d\J&yd)dbX@߲ |ˏP-;|UE/yLˎU/;Ɍ@A@,8X@8Z d̨$"K)=0$Ck1y\k2X@ʜ/s,3Z@$:sZ 5P37AN 4? 3?)ٿ$}\TKsZ <|!b)6[nl&@L1wA09ڛ\ d $39d`,؏}0q B6] `?6ʟI h :+ޙ*]өe+]0ttlKâJJg{KtKOScOwm5$dZ$TA5Mk 5P%E d38j62?p$Z-xCTN5RVAS"5T#`$ ̣fB8LQ+@[ ƣ+m$,; u b-{iL/c=R ]V ? .NVڏ4uC:B&F A:0hLOZ x[\B;n5 C Dm$tU7Ԁ8CVU40Q[P$Q+dA V E` Fm$u> R+"ZԷ$i<#BR/u5"^r!/er݈x!Y@ ѱy, #DD'T!%".pJO>!5Pu HR{h<#~|P4ԙ|ʺBy ?P*'%[ "l쵃he`NY3C*Ie3D' |@h]ĈCxY qg9VUU7[A =*_VB5<GѬVv5a |lj=>\xu)}-}Q9t߇w ~XRٺҬ"@cBVO  p_-f, ?L 0;'ZO QH$6m\;2uT"'ġ זf5԰\ t&)ĵp !i87}/ľ j@Nt# @] 0/SDA2j Q4% Y:1aS@ma'!60bGl%6| *6UV|ûcO:6d[(}G5RdKd;kp=JoC e;ye }t@a rg6f;n}'vG٭E_x##Ȟ t\K4Ơ][֎6,H3H4݌M.,#{iי]ۣM_c Y3b)rf &ոu()hA'lۭS1nmEPw+=-ݝ01@PF{O}I$}9w2ݐwm33]yD] .%n‡Vۛ7}26]c7cMc@$%6~S1L e;wK\q470rmrG ]'g`!u.&sg57Egw'AY0B\`tŷt+h"8ݒ~Ksi?VQ^BuHA1kڅ@ qfaI` @1֐Ueu@iwچCxg3)--@UވDw3wxcn]wwqy^z۝zZ/Ac͇zB[c =A{A6=dܹ{3]8-qOǷ|'˷@Mf$fSlvf}_؛MZMEJTwZ#VG~VD]t Q3t_!)u j8,i *@.x/.>/$x1 ¤)k_ b/6 C8C-F08 v7ľjx9nx1nx;*+l(`M@:0(FXy_\S~F c3HO0>x7n/ 35hB`nw :z 1 |xxcxE.aJ2#Ä:K"!qΠ3T~24 '@22OCDh}<M@0 U֧49iH@>#ŀ\:V<TS0 GD$N@GP4C`prW>/A 7@ @>|B1(v&&DaK6^ ^bx(@C>   CN0]8E0aNxUn.9q>z BV:*MjΔvC@R S # L8Ls ր# 6-J߸ xKޞ1zk"{\"GZpaJ[Ku+ LaZ#[[t]G7t/h  : A=AnP(D(5FuP4$6xx0t0p~ @XZxCP0O"F^@LCA: Select "1 RTL813x" to add the driver package to the system. => quit 6. Use netcfg utility to add LAN adapter. # netcfg 7. To add adapters, select "Add new LAN adapter" from "Hardware". Select the "32-Bit PCI Fast Ethernet Adapter" and press "Continue". 8. Select the TCP/IP protocol and "add" it to the system. 9. Enter the "domain", "Host Name", "IP address" and "Netmask" 10. The network configuration utility now configures the driver and binds it to upper layers of dlpi. 11. Reboot unix. # cd / # shutdown -y -g0 NOTE: 1. If you want to install more than one network adapter, you should do from the 6th steps above for each network card separately. 2. This driver can support up to four network adapters. - All trademarks or brand names mentioned are propertiesR of their respective companies.  ZIP ^r&UE1211-1  |&>UE2620-2  x&z,SW0091 ROM l{&ʼTEST  ^*'TEST1  M0'GIGIBIT  wZ' UE1216  ['UE3722  *o'9VERTEX ROM \q'4SW7148 ROM O(K8139C  1lQ(`d"$