OEMSETUP.INF Driver File Contents (networkcards.zip)

; %VER 3Com EtherDisk for EtherLink 10 ISA Family Adapters 1.0d

[IntstallOptions]
 Install_PACE = "NO"
 Install_3NIC_Diag = "YES"
 Install_Shortcuts = "YES"
 Install_Installer = "NO"

[Identification]
 OptionType = NetAdapter

[PlatformsSupported]
 ISA
 EISA
 MCA
 "Jazz-Internal Bus"

[Options]
 ELNK3ISA509
 ELNK3EISA
 ELNK3MCA

[DriverFilenameConstantsNDIS3]
	NetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\ELNK3ND3.sys"
	ProductSoftwareImagePath = "\SystemRoot\System32\drivers\ELNK3ND3.sys"
	ProductSoftwareUpgradePath = "\SystemRoot\System32\drivers\ELNK3ND3.sys"

[DriverFilenameConstantsNDIS4]
 NetEventDLL = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\ELNK3ND4.sys"
 ProductSoftwareImagePath = "%SystemRoot%\System32\drivers\ELNK3ND4.sys"
 ProductSoftwareUpgradePath = "\SystemRoot\\System32\drivers\ELNK3ND4.sys"

[FileConstants]
UtilityInf = "UTILITY.INF"
ParamInf = "NCPARAM.INF"
subroutineinf = "SUBROUTN.INF"
SoftwareType = "driver"
Exit_Code = 0
IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll"
MS_Manufacturer = "Microsoft"
Manufacturer = "3Com"
ProductMajorVersion = "3"
ProductMinorVersion = "51"
ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
ProductSoftwareName = "Elnk3"
NetRuleSoftwareType = "elnk3Sys ndisDriver elnk3Driver"
NetRuleSoftwareUse = $(SoftwareType)
NetRuleSoftwareBindForm = """Elnk3Sys"" yes no container"
NetRuleSoftwareClass = {"elnk3Driver basic"}
NetRuleSoftwareBindable = {"elnk3Driver elnk3Adapter non exclusive 100"}
ProductHardwareName = "elnk3"
NetRuleHardwareType = "elnk3 elnk3Adapter"
NetRuleHardwareBindForm = " yes yes container"
NetRuleHardwareClass = {"elnk3Adapter basic"}

ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
MS_ProductKeyName = $(!NTN_SoftwareBase)"\"$(MS_Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
ServiceKeyName = $(!NTN_ServiceBase)
GROUP_NAME = "3Com EtherLink 10 ISA 3C509b Adapters"

ELNK3EISA_COMPRESSID = 5270864
ELNK3EISA_1BYTE = 2421189968
ELNK3EISA_MASK = 4043309055
ELNK3MCA_1BYTE = { 124, 125, 219, 246, 247 }
ELNK3MCA_2BYTE = { 98, 98, 97, 98, 98 }
NETCARD_ID = { 25212, 25213, 25051, 25334, 25335 }

TrayIconExe                                                             = TCAUDIAG
InstallerExe = TCAUDIAG
UnInstallerEXE = UN3C509A

[GeneralConstants]
!G:DebugOutputControl = 1
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
INF_PROCESSER    = "I386"
DIAGCARDTYPE     = "TCAUM509"
 NT350VersionConstant = "3.50"
 NT310VersionConstant = "3.10"
 NT400VersionConstant = "(4.0)"
	
IDPORTVALUE                                                      = "272"

[date]
 Now = {} ? $(!LIBHANDLE) GetSystemDate

[Identify]
 read-syms Identification
 set Status = STATUS_SUCCESSFUL
 set Identifier = $(OptionType)
 
set Media = #("Source Media Descriptions", 3, 1)
 Return $(Status) $(Identifier) $(Media)

[DiagRegistry]

	OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE" $(!REG_KEY_WRITE) SOFTKEY
	OpenRegKey $(SOFTKEY) "" "3Com" $(!REG_KEY_WRITE) COMKEY
	 ifstr $(COMKEY) == ""
	 CreateRegKey $(SOFTKEY) {"3Com", 0, GenericClass} "" $(!REG_KEY_WRITE) "" COMKEY
	 endif
	 
	OpenRegKey $(COMKEY) "" "TCAUDIAG" $(!REG_KEY_WRITE) TCAUDIAGKEY
	 ifstr $(TCAUDIAGKEY) == ""
	 CreateRegKey $(COMKEY) {"TCAUDIAG", 0, GenericClass} "" $(!REG_KEY_WRITE) "" TCAUDIAGKEY
	 endif
	
	OpenRegKey $(TCAUDIAGKEY) "" "TCAUM509" $(!REG_KEY_WRITE) TCAUM509KEY
	 ifstr $(TCAUM509KEY) == ""
	 CreateRegKey $(TCAUDIAGKEY) {"TCAUM509", 0, GenericClass} "" $(!REG_KEY_WRITE) "" TCAUM509KEY
	 endif
	 
	SetRegValue $(TCAUM509KEY) {"DriverNames", 0, $(!REG_VT_SZ), "ELNK3ODI.COM;ELNK3ND2.DOS;SYSTEM\ELNK3ND3.SYS;SYSTEM\ELNK3ND4.SYS"}

	OpenRegKey $(TCAUM509KEY) "" "Extentions" $(!REG_KEY_WRITE) ExtentionsKEY
	 ifstr $(ExtentionsKEY) == ""
	 CreateRegKey $(TCAUM509KEY) {"Extentions", 0, GenericClass} "" $(!REG_KEY_WRITE) "" ExtentionsKEY
	 endif
	 
	OpenRegKey $(ExtentionsKEY) "" "Pace" $(!REG_KEY_WRITE) PaceKEY
	 ifstr $(PaceKEY) == ""
	 CreateRegKey $(ExtentionsKEY) {"Pace", 0, GenericClass} "" $(!REG_KEY_WRITE) "" PaceKEY
	 endif

	SetRegValue $(PaceKEY) {"CPLName", 0, $(!REG_VT_SZ), "PACECFG.CPL"}
	 
	 CloseRegKey $(SOFTKEY)
	 CloseRegKey $(COMKEY)
	 CloseRegKey $(TCAUDIAGKEY)
	 CloseRegKey $(TCAUM509KEY)
	 CloseRegKey $(ExtentionsKEY)
	 CloseRegKey $(PaceKEY)
 return
 
[PaceRegistry]
 read-syms GeneralConstants
 read-syms FileConstants
 read-syms DialogConstants$(!STF_LANGUAGE)
 read-syms FileConstants$(!STF_LANGUAGE)
 read-syms FileDependentDlg$(!STF_LANGUAGE)

	Debug-Output "Start paceentries."
	
	OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(ProductSoftwareName) $(!REG_KEY_ALL_ACCESS) KeyNt
	
	set TrayIconList = {PACENAME,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)}
	SetRegValue $(KeyNt) $(TrayIconList)
	
	CloseRegKey $(KeyNt) 
	 
	OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE" $(!REG_KEY_WRITE) SOFTPACEKEY
	OpenRegKey $(SOFTPACEKEY) "" "3Com" $(!REG_KEY_WRITE) COMPACEKEY
	 ifstr $(COMPACEKEY) == ""
	 CreateRegKey $(SOFTPACEKEY) {"3Com", 0, GenericClass} "" $(!REG_KEY_WRITE) "" COMPACEKEY
	 endif
	 
	OpenRegKey $(COMPACEKEY) "" "PACECards" $(!REG_KEY_WRITE) CARDPACEKEY
	 ifstr $(CARDPACEKEY) == ""
	 CreateRegKey $(COMPACEKEY) {"PACECards", 0, GenericClass} "" $(!REG_KEY_WRITE) "" CARDPACEKEY
	 endif
	
	 
	OpenRegKey $(CARDPACEKEY) "" "ELNK3" $(!REG_KEY_WRITE) ELNK3PACEKEY
	 ifstr $(ELNK3PACEKEY) == ""
	 CreateRegKey $(CARDPACEKEY) {"ELNK3", 0, GenericClass} "" $(!REG_KEY_WRITE) "" ELNK3PACEKEY
	 endif
	 
	
	SetRegValue $(ELNK3PACEKEY) {"Description", 0, $(!REG_VT_SZ), $(GROUP_NAME)}
	 
	
	OpenRegKey $(CARDPACEKEY) "" "Applications" $(!REG_KEY_WRITE) APPPACEKEY
	 ifstr $(APPPACEKEY) == ""
	 CreateRegKey $(CARDPACEKEY) {"Applications", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPPACEKEY
	 endif
	
	 OpenRegKey $(APPPACEKEY) "" "Emotion CreativePartner (IPX)" $(!REG_KEY_WRITE) APPSPECPACEKEY
	 ifstr $(APPSPECPACEKEY) == ""
	 CreateRegKey $(APPPACEKEY) {"Emotion CreativePartner (IPX)", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
	 endif
	 set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"IPX"},+
	 {Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
	 {RangeStart,$(NoTitle),$(!REG_VT_SZ),"87C7"}, +
	 {RangeEnd,$(NoTitle),$(!REG_VT_SZ),"87C8"}}
	 Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
	 ifint $($ShellCode) != $(!SHELL_CODE_OK)
	 goto ShellCodeError
	 endif
	 CloseRegKey $(APPSPECPACEKEY)
	 
	
	OpenRegKey $(APPPACEKEY) "" "Emotion CreativePartner (TCP/IP)" $(!REG_KEY_WRITE) APPSPECPACEKEY
	 ifstr $(APPSPECPACEKEY) == ""
	 CreateRegKey $(APPPACEKEY) {"Emotion CreativePartner (TCP/IP)", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
	 endif
	 set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
	 {Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
	 {RangeStart,$(NoTitle),$(!REG_VT_SZ),"0453"}, +
	 {RangeEnd,$(NoTitle),$(!REG_VT_SZ),"0455"}}
	 Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
	 ifint $($ShellCode) != $(!SHELL_CODE_OK)
	 goto ShellCodeError
	 endif
	 CloseRegKey $(APPSPECPACEKEY)
	
	 OpenRegKey $(APPPACEKEY) "" "InSoft Communique!" $(!REG_KEY_WRITE) APPSPECPACEKEY
	 ifstr $(APPSPECPACEKEY) == ""
	 CreateRegKey $(APPPACEKEY) {"InSoft Communique!", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
	 endif
	 set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
	 {Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
	 {RangeStart,$(NoTitle),$(!REG_VT_SZ),"1025, 1500"}, +
	 {RangeEnd,$(NoTitle),$(!REG_VT_SZ),"1050, 1525"}}
	 Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
	 ifint $($ShellCode) != $(!SHELL_CODE_OK)
	 goto ShellCodeError
	 endif
	 CloseRegKey $(APPSPECPACEKEY)
	
	 OpenRegKey $(APPPACEKEY) "" "Picturetel LiveLAN (over IPX)" $(!REG_KEY_WRITE) APPSPECPACEKEY
	 ifstr $(APPSPECPACEKEY) == ""
	 CreateRegKey $(APPPACEKEY) {"Picturetel LiveLAN (over IPX)", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
	 endif
	 set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"IPX"},+
	 {Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
	 {RangeStart,$(NoTitle),$(!REG_VT_SZ),"4050"}, +
	 {RangeEnd,$(NoTitle),$(!REG_VT_SZ),"4082"}}
	 Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
	 ifint $($ShellCode) != $(!SHELL_CODE_OK)
	 goto ShellCodeError
	 endif
	 CloseRegKey $(APPSPECPACEKEY)
	
	 OpenRegKey $(APPPACEKEY) "" "Picturetel LiveLAN (over TCP/IP)" $(!REG_KEY_WRITE) APPSPECPACEKEY
	 ifstr $(APPSPECPACEKEY) == ""
	 CreateRegKey $(APPPACEKEY) {"Picturetel LiveLAN (over TCP/IP)", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
	 endif
	 set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
	 {Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
	 {RangeStart,$(NoTitle),$(!REG_VT_SZ),"06a4"}, +
	 {RangeEnd,$(NoTitle),$(!REG_VT_SZ),"06d6"}}
	 Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
	 ifint $($ShellCode) != $(!SHELL_CODE_OK)
	 goto ShellCodeError
	 endif
	 CloseRegKey $(APPSPECPACEKEY)
	
	 OpenRegKey $(APPPACEKEY) "" "Precept FlashWare" $(!REG_KEY_WRITE) APPSPECPACEKEY
	 ifstr $(APPSPECPACEKEY) == ""
	 CreateRegKey $(APPPACEKEY) {"Precept FlashWare", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
	 endif
	 set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
	 {Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
	 {RangeStart,$(NoTitle),$(!REG_VT_SZ),"8000, C000"}, +
	 {RangeEnd,$(NoTitle),$(!REG_VT_SZ),"8000, C000"}}
	 Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
	 ifint $($ShellCode) != $(!SHELL_CODE_OK)
	 goto ShellCodeError
	 endif
	 CloseRegKey $(APPSPECPACEKEY)
	
	 OpenRegKey $(APPPACEKEY) "" "Progressive Networks RealAudio" $(!REG_KEY_WRITE) APPSPECPACEKEY
	 ifstr $(APPSPECPACEKEY) == ""
	 CreateRegKey $(APPPACEKEY) {"Progressive Networks RealAudio", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
	 endif
	 set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
	 {Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
	 {RangeStart,$(NoTitle),$(!REG_VT_SZ),"6970"}, +
	 {RangeEnd,$(NoTitle),$(!REG_VT_SZ),"7170"}}
	 Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
	 ifint $($ShellCode) != $(!SHELL_CODE_OK)
	 goto ShellCodeError
	 endif
	 CloseRegKey $(APPSPECPACEKEY)
	
	 OpenRegKey $(APPPACEKEY) "" "Starlight Networks StarCast" $(!REG_KEY_WRITE) APPSPECPACEKEY
	 ifstr $(APPSPECPACEKEY) == ""
	 CreateRegKey $(APPPACEKEY) {"Starlight Networks StarCast", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
	 endif
	 set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
	 {Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
	 {RangeStart,$(NoTitle),$(!REG_VT_SZ),"1911"}, +
	 {RangeEnd,$(NoTitle),$(!REG_VT_SZ),"1911"}}
	 Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
	 ifint $($ShellCode) != $(!SHELL_CODE_OK)
	 goto ShellCodeError
	 endif
	 CloseRegKey $(APPSPECPACEKEY)
	
	 OpenRegKey $(APPPACEKEY) "" "VCON Cruiser 100" $(!REG_KEY_WRITE) APPSPECPACEKEY
	 ifstr $(APPSPECPACEKEY) == ""
	 CreateRegKey $(APPPACEKEY) {"VCON Cruiser 100", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
	 endif
	 set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
	 {Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
	 {RangeStart,$(NoTitle),$(!REG_VT_SZ),"1500, 1600"}, +
	 {RangeEnd,$(NoTitle),$(!REG_VT_SZ),"1500, 1600"}}
	 Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
	 ifint $($ShellCode) != $(!SHELL_CODE_OK)
	 goto ShellCodeError
	 endif
	 CloseRegKey $(APPSPECPACEKEY)
	
	 OpenRegKey $(APPPACEKEY) "" "VXtreme Web Theater" $(!REG_KEY_WRITE) APPSPECPACEKEY
	 ifstr $(APPSPECPACEKEY) == ""
	 CreateRegKey $(APPPACEKEY) {"VXtreme Web Theater", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
	 endif
	 set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
	 {Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
	 {RangeStart,$(NoTitle),$(!REG_VT_SZ),"7000"}, +
	 {RangeEnd,$(NoTitle),$(!REG_VT_SZ),"7020"}}
	 Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
	 ifint $($ShellCode) != $(!SHELL_CODE_OK)
	 goto ShellCodeError
	 endif
	 CloseRegKey $(APPSPECPACEKEY)
	
	 OpenRegKey $(APPPACEKEY) "" "Xing Technology Streamworks" $(!REG_KEY_WRITE) APPSPECPACEKEY
	 ifstr $(APPSPECPACEKEY) == ""
	 CreateRegKey $(APPPACEKEY) {"Xing Technology Streamworks", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
	 endif
	 set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
	 {Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
	 {RangeStart,$(NoTitle),$(!REG_VT_SZ),"1558"}, +
	 {RangeEnd,$(NoTitle),$(!REG_VT_SZ),"1558"}}
	 Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
	 ifint $($ShellCode) != $(!SHELL_CODE_OK)
	 goto ShellCodeError
	 endif
	
	 OpenRegKey $(APPPACEKEY) "" "Vosaic Software Server" $(!REG_KEY_WRITE) APPSPECPACEKEY
	 ifstr $(APPSPECPACEKEY) == ""
	 CreateRegKey $(APPPACEKEY) {"Vosaic Software Server", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
	 endif
	 set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"TCP"},+
	 {Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
	 {RangeStart,$(NoTitle),$(!REG_VT_SZ),"04D3"}, +
	 {RangeEnd,$(NoTitle),$(!REG_VT_SZ),"04D3"}}
	 Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
	 ifint $($ShellCode) != $(!SHELL_CODE_OK)
	 goto ShellCodeError
	 endif
	
	 OpenRegKey $(APPPACEKEY) "" "Vosaic Software Client" $(!REG_KEY_WRITE) APPSPECPACEKEY
	 ifstr $(APPSPECPACEKEY) == ""
	 CreateRegKey $(APPPACEKEY) {"Vosaic Software Client", 0, GenericClass} "" $(!REG_KEY_WRITE) "" APPSPECPACEKEY
	 endif
	 set NewValueList = {{Protocol,$(NoTitle),$(!REG_VT_SZ),"UDP"},+
	 {Enabled,$(NoTitle),$(!REG_VT_SZ),"FALSE"}, +
	 {RangeStart,$(NoTitle),$(!REG_VT_SZ),"F169"}, +
	 {RangeEnd,$(NoTitle),$(!REG_VT_SZ),"F17D"}}
	 Shell $(UtilityInf), AddValueList, $(APPSPECPACEKEY), $(NewValueList)
	 ifint $($ShellCode) != $(!SHELL_CODE_OK)
	 goto ShellCodeError
	 endif
	
	 
	 CloseRegKey $(APPSPECPACEKEY)
	 CloseRegKey $(ELNK3PACEKEY)
	 CloseRegKey $(APPPACEKEY)
	 CloseRegKey $(CARDPACEKEY)
	 CloseRegKey $(COMPACEKEY)
	 CloseRegKey $(SOFTPACEKEY)
	
	 return


[ReturnOptions]
 set Status = STATUS_FAILED
 set OptionList = {}
 set OptionTextList = {}
 set LanguageList = ^(LanguagesSupported, 1)
 Ifcontains(i) $($0) in $(LanguageList)
 ifstr(i) $($1) == ""
 goto returnoptions
 endif
 set PlatformList = ^(PlatformsSupported, 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

returnoptions = +
 set OptionList = ^(Options, 1)
 set OptionTextList = ^(OptionsText$($0), 1)
 set Status = STATUS_SUCCESSFUL

finish_ReturnOptions = +
 Return $(Status) $(OptionList) $(OptionTextList)

[InstallOption]
 set Status = STATUS_FAILED
 set CurrLang = $($0)
 set Option = $($1)
 set SrcDir = $($2)
 set AddCopy = $($3)
 set DoCopy = $($4)
 set DoConfig = $($5)
 set LanguageList = ^(LanguagesSupported, 1)
 Ifcontains(i) $($0) NOT-IN $(LanguageList)
 Return STATUS_NOLANGUAGE
 endif
 set-subst LF = "\n"
 read-syms IntstallOptions
 read-syms GeneralConstants
 read-syms FileConstants
 read-syms DialogConstants$(!STF_LANGUAGE)
 ifstr(i) $(!NTN_Origination) == "NCPA"
 set Continue = $(OK)
 endif
 read-syms FileConstants$(!STF_LANGUAGE)
 detect date
 set-title $(FunctionTitle)
 set to = Begin
 set from = Begin
 set CommonStatus = STATUS_SUCCESSFUL
 EndWait
Begin = +

 



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)) == $(NT400VersionConstant)
	set NDIS_VER = NDIS4
 else
		set NDIS_VER = NDIS3 
endif
	
	read-syms DriverFilenameConstants$(NDIS_VER)

; detect date
; set-title $(FunctionTitle)
; set to = Begin
; set from = Begin
; set CommonStatus = STATUS_SUCCESSFUL
; EndWait
;Begin = +
 Set ActivateDetection = FALSE
 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
 set CommonStatus = STATUS_REBOOT
 set ActivateDetection = TRUE

 ifstr(i) $(Option) != ELNK3ISA509
 set StartLabel = ELNK3EISA&MCAconfigureadapter
 else
 set StartLabel = ELNK3ISA509configureadapter
 endif

 Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
 Debug-Output "Cannot configure the EtherLink 10 ISA driver software."
 Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error: cannot get an error string."
 goto ShellCodeError
 endif
 set Error = $($R0)
 set from = end
 set to = end
 goto nonfatalinfo
 endif
 else
 set ActivateDetection = TRUE
 ifstr(i) $(Option) != ELNK3ISA509
 set StartLabel = ELNK3EISA&MCAinstalladapter
 else
 set StartLabel = ELNK3ISA509installadapter
 endif
 set OEM_ABANDON_OPTIONS = {}
 set OEM_ABANDON_SOFTWARE = FALSE
 set OEM_ABANDON_ON = TRUE
 endif
 Debug-Output "oemsetup.inf: =================================================="
 Debug-Output "oemsetup.inf: STF_CWDIR is: "$(!STF_CWDIR)
 Debug-Output "oemsetup.inf: STF_LANGUAGE is: "$(!STF_LANGUAGE)
 Debug-Output "oemsetup.inf: Option is: "$(Option)
 Debug-Output "oemsetup.inf: !STF_NCDETECT is: "$(!STF_NCDETECT)
 Debug-Output "oemsetup.inf: !STF_NCOPTION is: "$(!STF_NCOPTION)
 Debug-Output "oemsetup.inf: !STF_NCDETCARD is: "$(!STF_NCDETCARD)
 Debug-Output "oemsetup.inf: !STF_NCDETINFO is: "$(!STF_NCDETINFO)
 Debug-Output "oemsetup.inf: =================================================="
 Set DetectedCard = FALSE

 Ifstr(i) $(ActivateDetection) != TRUE
 Set from = $(fatal)
 Set to = $(fatal)
 Goto $(StartLabel)
 Endif

 


Ifstr(i) $(Option) != ELNK3ISA509
 Set from = $(fatal)
 Set to = $(fatal)
 Goto $(StartLabel)
 Endif

 

ifstr(i) $(!NTN_InstallMode) != configure
 goto SkipBuildTypeList
 endif

 



Set TypeList = {{IOADDR, IOADDR_Addr_List, IOBaseAddrValue}}
 Debug-Output "oemsetup.inf: Calling Param_BuildTypeLists"
 Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList)
 Set Status = $($R0)
 ifstr(i) $(Status) != STATUS_SUCCESSFUL
 Goto fataldetect
 Endif
 Debug-Output "oemsetup.inf: Calling Param_SetDefaults"
 Shell $(ParamInf) Param_SetDefaults {{IOADDR,768}}
 Shell $(ParamInf) HexListFromDecList $(IOADDR_Addr_List)
 Set IOADDR_Hex_List = $($R0)
 

Ifstr(i) $(!STF_NCDETECT) == YES
 Ifstr(i) $(!STF_NCOPTION) == $(Option)
 Set DetectedCard = TRUE
 Debug-Output "oemsetup.inf: Setting DetectedCard to TRUE"
 Endif
 Endif
 Shell "" DebugConfiguration "After parameter querying"
SkipBuildTypeList = +
 Set from = $(fatal)
 Set to = $(fatal)
 Debug-Output "$(InfFile) $(Option): Jumping to $(StartLabel)"
 Goto $(StartLabel)

ELNK3ISA509installadapter = +
 Debug-Output "$(InfFile) $(Option): Installadapter"
 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
 Set CurrParamSettings = {}
 Ifstr(i) $(DetectedCard) != TRUE
 Goto ELNK3ISA509adaptersetup2
 Endif
 StartWait
 Shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD)
 EndWait
 Ifstr(i) $($R0) != STATUS_SUCCESSFUL
 Goto ELNK3ISA509adaptersetup2
 Endif
 Set DetectedParams = $($R1)
 Debug-Output "oemsetup.inf: Calling Param_SetDefaults to merge detected params"
 Shell $(ParamInf) Param_SetDefaults $(DetectedParams)
 goto ELNK3ISA509adaptersetup2

ELNK3ISA509configureadapter = +
 Debug-Output "$(InfFile) $(Option): Configureadapter"
 Ifstr $(KeyProduct) == $(KeyNull)
 OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
 Ifstr $(KeyProduct) == $(KeyNull)
 set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
 Debug-Output "Cannot find component product key"
 goto fatalregistry
 Endif
 Endif
 Debug-Output "INF: Shelling to FindService"
 Shell $(UtilityInf) FindService, $(KeyProduct)
 Ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "INF: FindService shell failure"
 Goto ShellCodeError
 Endif
 Ifstr(i) $($R0) != NO_ERROR
 Debug-Output "INF: FindService Shell error: "$($R0)
 Goto fatalregistry
 endif
 Set KeyParameters = $($R2)
 CloseRegKey $($R1)
 Ifstr $(KeyParameters) == $(KeyNull)
 set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
 Debug-Output "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) == "IoBaseAddress"
 set IOBaseAddrValue = $(ValueData)
 



else-ifstr(i) $(ValueName) == "BusType"
 set BusInterfaceType = $(ValueData)
 else-ifstr(i) $(ValueName) == "BusNumber"
 set BusNumber = $(ValueData)
 endif
 EndForListDo
 Shell $(ParamInf) Param_SaveValues
 Set CurrParamSettings = $($R0)
 Debug-Output "CurrParamSettings: $(CurrParamSettings)"

ELNK3ISA509adaptersetup = +
 Debug-Output "$(InfFile) $(Option): AdapterSetup"
 Shell "" DebugConfiguration "before displaying dialog"
 Set from = ELNK3ISA509adapteroptions
 Set IOADDR_Hex_Value = *($(IOADDR_Hex_List), ~($(IOADDR_Addr_List),$(IOBaseAddrValue)))
 

Shell $(ParamInf) Param_ParameterConfidence
 Ifstr(i) $($R0) != STATUS_SUCCESSFUL
 Debug-Output "oemsetup.inf: parameter confidence too low to bypass configuration"
 Goto ELNK3ISA509adapteroptions
 Endif
ELNK3ISA509adaptersetup2 = +
 Ifstr(i) $(DetectedCard) == TRUE
 Ifstr(i) $(!STF_INSTALL_MODE) != CUSTOM
 Goto ELNK3ISA509adapterverify
 Endif
 Endif

ELNK3ISA509adapteroptions = +
 Debug-Output "$(InfFile) $(Option): AdapterOptions"
 ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
 ifstr(i) $(!AutoNetInterfaceType) != ""
 set BusInterfaceType = $(!AutoNetInterfaceType)
 else
 set BusInterfaceType = 1
 endif
 ifstr(i) $(!AutoNetBusNumber) != ""
 set BusNumber = $(!AutoNetBusNumber)
 else
 set BusNumber = 0
 endif
 goto ELNK3ISA509adapterverify
 endif
 Ifstr(i) $(!NTN_InstallMode) != configure
 goto getbustype
 Endif
 read-syms FileDependentDlg$(!STF_LANGUAGE)
 


ui start "InputDlg"
 ifstr(i) $(DLGEVENT) == "CONTINUE"
 set IOADDR_Hex_Value = $(Combo1Out)
 Set IOBaseAddrValue = *($(IOADDR_Addr_List), ~($(IOADDR_Hex_List),$(IOADDR_Hex_Value)))
 

ui pop 1
 else-ifstr(i) $(DLGEVENT) == "BACK"
 set CommonStatus = STATUS_USERCANCEL
 Debug-Output "Action: exit. Bye."
 ui pop 1
 goto end
 else
 Debug-Output "Action: unknown. Bye."
 ui pop 1
 goto end
 endif
getbustype = +
 ifstr(i) $(!STF_NCDETINFO) == {}
tryagaingetbustype = +
 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)
 ifint $(BusInterfaceType) == 1
 goto ELNK3ISA509adapterverify
 else-ifint $(BusInterfaceType) == 2
 goto ELNK3ISA509adapterverify
 else
 set Error = "The Bus Type of 3Com EtherLink 10 ISA (3c509) Adapter must be either ISA or EISA."
 set from = end
 set to = tryagaingetbustype
 goto warning
 endif
 else
 set BusInterfaceType = *($(!STF_NCDETINFO),5)
 set BusNumber = *($(!STF_NCDETINFO),6)
 endif

ELNK3ISA509adapterverify = +
 Debug-Output "$(InfFile) $(Option): Adapterverify"
 



Shell "" DebugConfiguration "after running dialog"
 Ifstr(i) $(DetectedCard) != TRUE
 Shell $(ParamInf) Param_SaveValues
 Set NewParamSettings = $($R0)
 Debug-Output "NewParamSettings: $(NewParamSettings)"
 Ifstr(i) $(CurrParamSettings) == {}
 Set DiffParamSettings = $(NewParamSettings)
 Else
 Shell $(ParamInf) Param_DiffValues $(CurrParamSettings)
 Set DiffParamSettings = $($R0)
 Endif
 Debug-Output "oemsetup.inf: Calling Param_VerifyResources"
 Shell $(ParamInf) Param_VerifyResources $(DiffParamSettings)
 Ifstr(i) $($R0) == STATUS_SUCCESSFUL
 Debug-Output "oemsetup.inf: Param_VerifyResources succeeded"
 Goto ELNK3ISA509skipoptions
 Endif
 Else
 Set CardVerifyIndex = $(!STF_NCDETCARD)
 Debug-Output "oemsetup.inf: Calling Param_VerifyCard"
 Shell $(ParamInf) Param_VerifyCard $(!STF_NCDETCARD)
 Ifstr(i) $($R0) == STATUS_SUCCESSFUL
 Debug-Output "oemsetup.inf: Param_VerifyCard succeeded"
 Goto ELNK3ISA509skipoptions
 Endif
 Endif
 Set from = ELNK3ISA509adapteroptions
 Set to = ELNK3ISA509skipoptions
 Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error: cannot get an error string."
 goto ShellCodeError
 endif
 set Error = $($R0)
 Goto Warning

ELNK3ISA509skipoptions =+
 Debug-Output "$(InfFile) $(Option): SkipOptions"
 ifint $(OldVersionExisted) == $(TRUE)
 ifstr(i) $(!NTN_InstallMode) == configure
 goto ELNK3ISA509writeparameters
 endif
 endif
 StartWait
 ifint $(OldVersionExisted) == $(FALSE)
		
		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 
			 

	
	OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ProductHardwareName) $(!REG_KEY_ALL_ACCESS) KeyService
	 Ifstr $(KeyService) != "" 
	 SetRegValue $(KeyService) {ImagePath,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareUpgradePath)}
	 endif                           
CloseRegKey $(KeyService)                                                                                                                                        

	
	OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\EventLog\System\"$(ProductHardwareName) $(!REG_KEY_ALL_ACCESS) KeyEventLog
	 Ifstr $(KeyEventLog) != "" 
	 SetRegValue $(KeyEventLog) {EventMessageFile,$(NoTitle),$(!REG_VT_SZ),$(NetEventDLL)} 
	 endif                           
CloseRegKey $(KeyEventLog)                                                                                                                                       
		
 Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
 $(ProductSoftwareName), +
 $(ProductSoftwareName), +
 $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
 $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
 $(NetEventDLL)
 Set OEM_ABANDON_SOFTWARE = TRUE
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error"
 goto ShellCodeError
 endif
 set RegistryErrorIndex = $($R0)
 set KeyProduct = $($R1)
 Set SoftNetRulesKey = $($R2)
 CloseRegKey $($R3)
 CloseRegKey $($R4)
 CloseRegKey $($R5)
 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 EndWait
 Debug-Output "Registry error: add software components"
 CloseRegKey $(KeyProduct)
 CloseRegKey $(SoftNetRulesKey)
 goto fatalregistry
 endif
 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, $(KeyProduct), $(NewValueList)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error."
 goto ShellCodeError
 endif
 set RegistryErrorIndex = $($R0)
 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 EndWait
 Debug-Output "Registry error: add value list."
 CloseRegKey $(KeyProduct)
 CloseRegKey $(SoftNetRulesKey)
 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, $(SoftNetRulesKey), $(NewValueList)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error."
 goto ShellCodeError
 endif
 set RegistryErrorIndex = $($R0)
 CloseRegKey $(KeyProduct)
 CloseRegKey $(SoftNetRulesKey)
 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 EndWait
 Debug-Output "Resgitry error: add value list."
 goto fatalregistry
 endif
 endif
 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)
 Debug-Output "Cannot add hardware component"
 goto ShellCodeError
 endif
 set RegistryErrorIndex = $($R0)
 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 EndWait
 Debug-Output "Registry error: add hardware component"
 CloseRegKey $($R1)
 CloseRegKey $($R2)
 CloseRegKey $($R3)
 goto fatalregistry
 endif
 set KeyParameters = $($R3)
 set KeyAdapterRules = $($R2)
 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, $($R1), $(NewValueList)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error"
 goto ShellCodeError
 endif
 CloseRegKey $($R1)
 set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
 set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
 set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
 {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
 {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
 {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
 Shell $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error."
 goto ShellCodeError
 endif
 set RegistryErrorIndex = $($R0)
 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 EndWait
 Debug-Output "Resgitry error: add value list."
 CloseRegKey $(KeyParameters)
 CloseRegKey $(KeyAdapterRules)
 goto fatalregistry
 endif
 CloseRegKey $(KeyAdapterRules)

 
ifstr(i) $(!NTN_InstallMode) == "install"
 Ifstr(i) $(DoCopy) == "YES"
 Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
 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
 
	
 
endif
 
ifstr $(!STF_PLATFORM) == $(INF_PROCESSER) 
	
 
install "Install-Uninstaller" 



OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(ProductSoftwareName) $(!REG_KEY_ALL_ACCESS) + 
KeyNt 

set TrayIconList = {TCAUDIAG,$(NoTitle),$(!REG_VT_SZ),$(DIAGCARDTYPE)} 
SetRegValue $(KeyNt) $(TrayIconList) 
CloseRegKey $(KeyNt) 

		

		
		OpenRegKey $(!REG_H_LOCAL) "" $(ServiceKeyName) $(!REG_KEY_ALL_ACCESS) KeyNt 
		 
		set LoopList = {1,2,3,4,5,6,7,8} 
		set WinNTList = {WinNT,$(NoTitle),$(!REG_VT_SZ),YES} 
		set IDPortList = {IDPORT,$(NoTitle),$(!REG_VT_DWORD),$(IDPORTVALUE)} 
		 
		ForListDo $(LoopList) 
		 OpenRegKey $(KeyNt) "" $(ProductHardwareName)$($)"\Parameters" $(!REG_KEY_ALL_ACCESS) TestKey 
		 
		 ifstr $(TestKey) != $(KeyNull) 
			SetRegValue $(TestKey) $(WinNTList) 
			SetRegValue $(TestKey) $(IDPortList) 
		 endif 
		 
		 CloseRegKey $(TestKey) 
		EndForListDo 
		 
		CloseRegKey $(KeyNt) 
		
 
		
		
	 
	 
	 
		
 

ifstr $(Install_PACE) == "YES" 
Debug-Output "$(InfFile) $(Option): (Install_PACE) == "YES"" 
install "Install-PACE" 


Shell "", PaceRegistry 

endif 

;These two lines are added for install problem -SCC
set SRCDIR_OVERRIDE_Save = $(!STF_SRCDIR_OVERRIDE) 
set !STF_SRCDIR_OVERRIDE = $(SrcDir)


ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) 
	
;SCC     install "Install-Tray" 
	 
	 
;         OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" + 
;         $(!REG_KEY_ALL_ACCESS) KeyNt 
	 
;         set TrayIconList = {$(TrayIconExe)EXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -off"} 
;         SetRegValue $(KeyNt) $(TrayIconList) 
;         CloseRegKey $(KeyNt) 
	 
	 
	
		

	 
	 
	 ifstr $(Install_3NIC_Diag) == "YES" 
	 Debug-Output "$(InfFile) $(Option): (Install_3NIC_Diag) == "YES"" 
	 install "Install-3nicdiag" 
	 
	 
	 Shell "", DiagRegistry 
	 
		 
		 ifstr $(Install_Installer) == "YES" 
	RunProgram ExitCode "Windows Directory" "" $(InstallerExe).EXE "cardtype=TCAUM509" 
endif 

	 
	 Shell $(!STF_WINDOWSSYSPATH)\TCAITDI.INF, InstallOption, $(CurrLang),+ 
		 "TCAITDI" ,$(SrcDir), YES, YES, YES, NO 
	 
	 
	 
	 ifstr(i) $(Install_Shortcuts) == "YES" 
		Debug-Output "$(InfFile) $(Option): (Install_Shortcuts) == "YES"" 
	 RunProgram ExitCode "Windows Directory" "" $(UnInstallerEXE).EXE "-setup" 
	 
	 Debug-Output "$(InfFile) $(Option): Enabling Tray Icon" 
	 OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" + 
		  $(!REG_KEY_ALL_ACCESS) KeyNt 
;SCC - the next line changes
	 set TrayIconList = {TCASUTIEXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -off"}
	 SetRegValue $(KeyNt) $(TrayIconList) 
       DeleteRegValue $(KeyNt) "COMSMDEXE" 
	 CloseRegKey $(KeyNt) 
	 endif 
	 
	 endif 
	 
endif 

endif
 


goto ELNK3ISA509writeparameters

ELNK3ISA509writeparameters = +
 Debug-Output "$(InfFile) $(Option): Write"
 







Ifstr(i) $(!NTN_InstallMode) != configure
 Set NewValueList = {+
 {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+
 {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
 {CardType,$(NoTitle),$(!REG_VT_DWORD),0},+
 {MediaType,$(NoTitle),$(!REG_VT_DWORD),1}}
 Else
 Set NewValueList = {+
 {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+
 {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
 {CardType,$(NoTitle),$(!REG_VT_DWORD),0},+
 {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
 {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)}}
 Endif
 Shell $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
 ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
 Shell $(UtilityInf), AddDefaultNetCardParameters, $(KeyParameters)
 endif
 CloseRegKey $(KeyParameters)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error."
 goto ShellCodeError
 endif
 set RegistryErrorIndex = $($R0)
 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 Debug-Output "Registry error: Add value list"
 goto fatalregistry
 endif
 EndWait

 goto successful

ELNK3EISA&MCAinstalladapter = +
 Debug-Output "$(InfFile) $(Option): Installadapter"
 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
 
goto ELNK3EISA&MCAnextstep

ELNK3EISA&MCAconfigureadapter = +
 Debug-Output "$(InfFile) $(Option): configadapter"
 Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_HARDWARE
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error: cannot get an error string."
 goto ShellCodeError
 endif
 set Error = $($R0)
 set from = end
 set to = end
 goto nonfatalinfo

ELNK3EISA&MCAnextstep = +
 Debug-Output "$(InfFile) $(Option): nextstep"
 StartWait
 ifstr(i) $(Option) == ELNK3EISA
 set cardlist = {}
 Shell $(UtilityInf), EISAFindBus, $(ELNK3EISA_1BYTE), $(ELNK3EISA_MASK)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 goto ShellCodeError
 endif
 ifstr $($R0) != "NO_ERROR"
 set Error = $($R0)
 goto fatal
 endif
 set cardlist = $($R1)
 else
 set cardlist = {}
 Shell $(UtilityInf), MCAFindBus, *($(ELNK3MCA_1BYTE),1), *($(ELNK3MCA_2BYTE),1)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 goto ShellCodeError
 endif
 ifstr $($R0) != "NO_ERROR"
 set Error = $($R0)
 goto fatal
 endif
 ifstr(i) $($R1) != {}
 set cardlist = $($R1)
 endif
 Shell $(UtilityInf), MCAFindBus, *($(ELNK3MCA_1BYTE),2), *($(ELNK3MCA_2BYTE),2)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 goto ShellCodeError
 endif
 ifstr $($R0) != "NO_ERROR"
 set Error = $($R0)
 goto fatal
 endif
 ifstr(i) $($R1) != {}
 ifstr(i) $(cardlist) != {}
 set cardlist = >($(cardlist),$($R1))
 else
 set cardlist = $($R1)
 endif
 endif
 Shell $(UtilityInf), MCAFindBus, *($(ELNK3MCA_1BYTE),3), *($(ELNK3MCA_2BYTE),3)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 goto ShellCodeError
 endif
 ifstr $($R0) != "NO_ERROR"
 set Error = $($R0)
 goto fatal
 endif
 ifstr(i) $($R1) != {}
 ifstr(i) $(cardlist) != {}
 set cardlist = >($(cardlist),$($R1))
 else
 set cardlist = $($R1)
 endif
 endif
 Shell $(UtilityInf), MCAFindBus, *($(ELNK3MCA_1BYTE),4), *($(ELNK3MCA_2BYTE),4)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 goto ShellCodeError
 endif
 ifstr $($R0) != "NO_ERROR"
 set Error = $($R0)
 goto fatal
 endif
 ifstr(i) $($R1) != {}
 ifstr(i) $(cardlist) != {}
 set cardlist = >($(cardlist),$($R1))
 else
 set cardlist = $($R1)
 endif
 endif
 Shell $(UtilityInf), MCAFindBus, *($(ELNK3MCA_1BYTE),5), *($(ELNK3MCA_2BYTE),5)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 goto ShellCodeError
 endif
 ifstr $($R0) != "NO_ERROR"
 set Error = $($R0)
 goto fatal
 endif
 ifstr(i) $($R1) != {}
 ifstr(i) $(cardlist) != {}
 set cardlist = >($(cardlist),$($R1))
 else
 set cardlist = $($R1)
 endif
 endif
 endif

 ifstr(i) $(cardlist) == {}
 
ifstr(i) $(Option) == ELNK3EISA
 set Error = "Cannot find any 3Com Etherlink 10 EISA (3c579) Adapters."
 else
 set Error = "Cannot find any 3Com Etherlink 10 MCA (3c529) Adapters."
 endif
 set CommonStatus = STATUS_USERCANCEL
 set from = "end"
 goto nonfatal
 endif

 set AdapterList = $(cardlist)
 ifint $(OldVersionExisted) == $(FALSE)
		
		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 
			 
	 
	
	OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ProductHardwareName) $(!REG_KEY_ALL_ACCESS) KeyService
	 Ifstr $(KeyService) != "" 
	 SetRegValue $(KeyService) {ImagePath,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareUpgradePath)}
	 endif                           
CloseRegKey $(KeyService)                                                                                                                                        

	
	OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\EventLog\System\"$(ProductHardwareName) $(!REG_KEY_ALL_ACCESS) KeyEventLog
	 Ifstr $(KeyEventLog) != "" 
	 SetRegValue $(KeyEventLog) {EventMessageFile,$(NoTitle),$(!REG_VT_SZ),$(NetEventDLL)} 
	 endif                           
CloseRegKey $(KeyEventLog)                                                                                                                                       
		
 
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
 ForListDo $(AdapterList)
 set BusNum = *($($),1)
 set SlotNum = *($($),2)
 Ifstr(i) $(Option) == ELNK3MCA
 set McaPosId = *($($),3)
 endif
 Debug-Output $(BusNum)
 Debug-Output $(SlotNum)
 Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNum), +
 $(SlotNum), $(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"
 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 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
 Ifstr(i) $(Option) == ELNK3EISA
 set NewValueList = {+
 {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNum)},+
 {CardType,$(NoTitle),$(!REG_VT_DWORD),1},+
 {BusType,$(NoTitle),$(!REG_VT_DWORD),2},+
 {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
 {EisaCompressedId,$(NoTitle),$(!REG_VT_DWORD),$(ELNK3EISA_COMPRESSID)},+
 {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)}}
 else
 set NewValueList = {+
 {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNum)},+
 {BusType,$(NoTitle),$(!REG_VT_DWORD),3},+
 {McaPosId,$(NoTitle),$(!REG_VT_DWORD),$(McaPosId)},+
 {CardType,$(NoTitle),$(!REG_VT_DWORD),2},+
 {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
 {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)}}
 endif
 Shell $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 goto ShellCodeError
 endif
 set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
 set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
 set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
 {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
 {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
 {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
 Shell $(UtilityInf), AddValueList, $(HardNetRuleKey), $(NewValueList)
 CloseRegKey $(HardNetCardKey)
 CloseRegKey $(HardNetRuleKey)
 CloseRegKey $(HardParameterKey)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 goto ShellCodeError
 endif
 endif
 EndForListDo

 ifstr(i) $(!NTN_InstallMode) == "install"
 Ifstr(i) $(DoCopy) == "YES"
 Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
 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
 


endif

 
ifstr $(!STF_PLATFORM) == $(INF_PROCESSER) 
	
 
install "Install-Uninstaller" 



OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(ProductSoftwareName) $(!REG_KEY_ALL_ACCESS) + 
KeyNt 

set TrayIconList = {TCAUDIAG,$(NoTitle),$(!REG_VT_SZ),$(DIAGCARDTYPE)} 
SetRegValue $(KeyNt) $(TrayIconList) 
CloseRegKey $(KeyNt) 

		
		OpenRegKey $(!REG_H_LOCAL) "" $(ServiceKeyName) $(!REG_KEY_ALL_ACCESS) KeyNt 
		 
		set LoopList = {1,2,3,4,5,6,7,8} 
		set WinNTList = {WinNT,$(NoTitle),$(!REG_VT_SZ),YES} 
		 
		ForListDo $(LoopList) 
		 OpenRegKey $(KeyNt) "" $(ProductHardwareName)$($)"\Parameters" $(!REG_KEY_ALL_ACCESS) TestKey 
		 
		 ifstr $(TestKey) != $(KeyNull) 
			SetRegValue $(TestKey) $(WinNTList) 
		 endif 
		 
		 CloseRegKey $(TestKey) 
		EndForListDo 
		 
		CloseRegKey $(KeyNt) 
		
 
		
	 
	 
	 



ifstr $(Install_PACE) == "YES" 
Debug-Output "$(InfFile) $(Option): (Install_PACE) == "YES"" 
install "Install-PACE" 


Shell "", PaceRegistry 

endif 

endif
 

goto ELNK3EISA&MCAwriteparameters
ELNK3EISA&MCAwriteparameters = +

 EndWait
 goto successful

bindingadapter =+
 set Error = "Binding: Sorry, not yet implemented."
 goto fatal

removeadapter = +
 Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
 Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
 $(ProductSoftwareName)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error"
 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)
 Debug-Output "ShellCode error"
 goto ShellCodeError
 endif
 set RegistryErrorIndex = $($R0)
 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 goto fatalregistry
 endif
 endif
 Ifstr(i) $(!STF_PLATFORM) == $(INF_PROCESSER)
 RunProgram ExitCode "Windows Directory" "" UN3c509a.EXE "-inf"
 endif
 

	
	OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\TCAITDI" $(!REG_KEY_READ) KeyTCATDI
	ifstr $(KeyTCATDI) != ""                 

		
		
	 Shell $(!STF_WINDOWSSYSPATH)\TCAITDI.INF, InstallOption, $(CurrLang),"TCAITDI" ,$(SrcDir), YES, YES, YES, -inf 

CloseRegKey $(KeyTCATDI)
 endif

 goto end

UpgradeSoftware = +
 Debug-Output "Looking at Key: "$(ProductKeyName)
 OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
 


Ifstr $(KeyProduct) == $(KeyNull)
 Debug-Output "Looking at Key: "$(MS_ProductKeyName)
 OpenRegKey $(!REG_H_LOCAL) "" $(MS_ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
 endif

 
Ifstr $(KeyProduct) != $(KeyNull)
		 
		
		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 
			 
		
		OpenRegKey $(!REG_H_LOCAL) "" $(ServiceKeyName) $(!REG_KEY_ALL_ACCESS) KeyNt 
		 
		set LoopList = {1,2,3,4,5,6,7,8} 
		set WinNTList = {WinNT,$(NoTitle),$(!REG_VT_SZ),YES} 
		set IDPortList = {IDPORT,$(NoTitle),$(!REG_VT_DWORD),$(IDPORTVALUE)} 
		 
		ForListDo $(LoopList) 
		 OpenRegKey $(KeyNt) "" $(ProductHardwareName)$($)"\Parameters" $(!REG_KEY_ALL_ACCESS) TestKey 
		 
		 ifstr $(TestKey) != $(KeyNull) 
			SetRegValue $(TestKey) $(WinNTList) 
			SetRegValue $(TestKey) $(IDPortList) 
		 endif 
		 
		 CloseRegKey $(TestKey) 
		EndForListDo 
		 
		CloseRegKey $(KeyNt) 
		
 
		Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct) 
		ifint $($ShellCode) != $(!SHELL_CODE_OK) 
		 Debug-Output "ShellCode error" 
		 goto ShellCodeError 
		endif 
		set !UG_Filename = $($R0) 
		 
		install "Install-INF" 
		ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS 
		 goto fatal 
		endif 
		 
		Debug-Output "Changing Reg Version Nubmers!" 
		SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)} 
		SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)} 
		CloseRegKey $(KeyProduct) 
			 
	
	OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ProductHardwareName) $(!REG_KEY_ALL_ACCESS) KeyService
	 Ifstr $(KeyService) != "" 
	 SetRegValue $(KeyService) {ImagePath,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareUpgradePath)}
	 else 
		goto fatalregistry 
	 endif                           
CloseRegKey $(KeyService)                                                                                                                                        

	
	OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\EventLog\System\"$(ProductHardwareName) $(!REG_KEY_ALL_ACCESS) KeyEventLog
	 Ifstr $(KeyEventLog) != "" 
	 SetRegValue $(KeyEventLog) {EventMessageFile,$(NoTitle),$(!REG_VT_SZ),$(NetEventDLL)} 
	 else 
		goto fatalregistry 
	 endif                           
CloseRegKey $(KeyEventLog)                                                                                                                                       
		

	 
	 ifstr $(!STF_PLATFORM) == $(INF_PROCESSER) 

	 
	 install "Install-Uninstaller" 
	 
	 
	 
	 OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\3Com\"$(ProductSoftwareName) $(!REG_KEY_ALL_ACCESS) + 
	 KeyNt 
	 
	 set TrayIconList = {TCAUDIAG,$(NoTitle),$(!REG_VT_SZ),$(DIAGCARDTYPE)} 
	 SetRegValue $(KeyNt) $(TrayIconList) 
	 CloseRegKey $(KeyNt) 
	 
	 
	
	
		 
		 
		 
	
	 
	 
	 ifstr $(Install_PACE) == "YES" 
	 Debug-Output "$(InfFile) $(Option): (Install_PACE) == "YES"" 
	 install "Install-PACE" 
	 
	 
	 Shell "", PaceRegistry 
	 
	 endif 
	 

	 
	 ifstr(i) (*($(CurrentVersionValue),4)) == $(NT400VersionConstant) 
	 
	 install "Install-Tray" 
	 
	 
	 OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" + 
	 $(!REG_KEY_ALL_ACCESS) KeyNt 
	 
	 set TrayIconList = {$(TrayIconExe)EXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -off"} 
	 SetRegValue $(KeyNt) $(TrayIconList) 
	 CloseRegKey $(KeyNt) 
	 
	 
	 

		 
		 
		 ifstr $(Install_3NIC_Diag) == "YES"    
		 Debug-Output "$(InfFile) $(Option): (Install_3NIC_Diag) == "YES"" 
		 install "Install-3nicdiag"     
			
		 
		 Shell "", DiagRegistry         
			
			 
			 
		 
		 
		 
		 
		 
		 set InstallMode_Save = $(!NTN_InstallMode) 
		 set !NTN_InstallMode = install 
		 set SRCDIR_OVERRIDE_Save = $(!STF_SRCDIR_OVERRIDE) 
		 set !STF_SRCDIR_OVERRIDE = $(SrcDir) 
		 
		 Shell $(!STF_WINDOWSSYSPATH)\TCAITDI.INF, InstallOption, $(CurrLang), + 
		 "TCAITDI" ,$(SrcDir), YES, YES, YES, NO 
		 set !NTN_InstallMode = $(InstallMode_Save) 
		 set !STF_SRCDIR_OVERRIDE = $(SRCDIR_OVERRIDE_Save) 
	 
		 
		 
		 Debug-Output "$(InfFile) $(Option): (Install_Shortcuts) == $(Install_Shortcuts)"                
		 ifstr(i) $(Install_Shortcuts) == "YES"                  
			Debug-Output "$(InfFile) $(Option): (Install_Shortcuts) == "YES""                
		 RunProgram ExitCode "Windows Directory" "" $(TrayIconExe).EXE "-setup"                  
				 
		 Debug-Output "$(InfFile) $(Option): Enabling Tray Icon"                 
		 OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" +                 
		 $(!REG_KEY_ALL_ACCESS) KeyNt            
				 
		 set TrayIconList = {$(TrayIconExe)EXE,$(NoTitle),$(!REG_VT_SZ),$(TrayIconExe)" -try"}
		 SetRegValue $(KeyNt) $(TrayIconList)            
		 CloseRegKey $(KeyNt)            
		 endif           
		 
		 endif  
		
		endif
	 endif

 else
 goto fatalregistry
 endif
 goto end

successful = +
 goto end

abandon = +
 ForListDo $(OEM_ABANDON_OPTIONS)
 Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
 $(ProductSoftwareName), $($)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error"
 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)
 Debug-Output "ShellCode error"
 goto ShellCodeError
 endif
 set RegistryErrorIndex = $($R0)
 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
 goto fatalregistry
 endif
 endif
 goto end
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 = +
 Set Severity = STATUS
 Set CommonStatus = STATUS_USERCANCEL
 goto nonfatalmsg
nonfatal = +
 Set Severity = NONFATAL
 goto nonfatalmsg
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"
 endif
fatalregistry = +
 Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 goto ShellCodeError
 endif
 set Error = $($R0)
 goto fatal
fataldetect = +
 Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
 ifint $($ShellCode) != $(!SHELL_CODE_OK)
 Debug-Output "ShellCode error: cannot get an error string."
 goto ShellCodeError
 endif
 set Error = $($R0)
 Goto fatal
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 = +
 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 = +
 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)


[DebugConfiguration]
 Set InfName = "Oemsetup.INF"
 Debug-Output $(InfName)" **CONFIGURATION STATE: "$($0)
 Debug-Output $(InfName)" IOBaseAddrValue is "$(!p:IOBaseAddrValue)
 return

[Install-Option]
 set STF_OVERWRITE = "VERIFYSOURCEOLDER"
 set STF_VITAL = ""
	Debug-Output $(InfName)"Adding files: Files-$(NDIS_VER), SrcDir=$(SrcDir)"
;SCC
	AddSectionFilesToCopyList Files-$(NDIS_VER) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
	set !STF_NCPA_FLUSH_COPYLIST = TRUE
	CopyFilesInCopyList
 Exit

[Install-3nicdiag]
 set STF_OVERWRITE = "VERIFYSOURCEOLDER"
 set STF_VITAL = ""
 AddSectionFilesToCopyList Files-3nicdiag $(SrcDir) $(!STF_WINDOWSSYSPATH)
 AddSectionFilesToCopyList Files-HwDll $(SrcDir) $(!STF_WINDOWSSYSPATH)
 AddSectionFilesToCopyList Files-TCAITDI $(SrcDir) $(!STF_WINDOWSSYSPATH)
 set !STF_NCPA_FLUSH_COPYLIST = TRUE
 CopyFilesInCopyList
 Exit

;[Install-Tray]
; set STF_OVERWRITE = "VERIFYSOURCEOLDER"
; set STF_VITAL = ""
; AddSectionFilesToCopyList Files-Tray $(SrcDir) $(!STF_WINDOWSSYSPATH)
; set !STF_NCPA_FLUSH_COPYLIST = TRUE
; CopyFilesInCopyList
; Exit
 

[Install-INF]
 set STF_OVERWRITE = "VERIFYSOURCEOLDER"
 set STF_VITAL = ""
 AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
 set !STF_NCPA_FLUSH_COPYLIST = TRUE
 CopyFilesInCopyList
 Exit

[Install-PACE]
 set STF_OVERWRITE = "VERIFYSOURCEOLDER"
 set STF_VITAL = ""
 AddSectionFilesToCopyList Files-PACE $(SrcDir) $(!STF_WINDOWSSYSPATH)
 set !STF_NCPA_FLUSH_COPYLIST = TRUE
 CopyFilesInCopyList
 Exit

[Install-Uninstaller]
 set STF_OVERWRITE = "VERIFYSOURCEOLDER"
 set STF_VITAL = ""
 AddSectionFilesToCopyList Files-Uninstaller $(SrcDir) $(!STF_WINDOWSSYSPATH)
 set !STF_NCPA_FLUSH_COPYLIST = TRUE
 CopyFilesInCopyList
 Exit



[Source Media Descriptions]
 1 = "Windows NT Setup Disk #1" , TAGFILE = disk1
 2 = "Windows NT Setup CD-ROM Disk" , TAGFILE = disk2
 3 = "3Com Etherdisk for Etherlink 10 ISA (3C509b)", TAGFILE = oemsetup.inf

[Signature]
 FileType = MICROSOFT_FILE

[GetSignature]
 read-syms Signature
 return $(FileType)

[ProductType]
STF_PRODUCT = Winnt
STF_PLATFORM = I386

[Files-Inf]
3, oemsetup.inf, SIZE=1000, RENAME=$(!UG_Filename)

[Files-3nicdiag]
3,TCAUDIAG.EXE, SIZE=165504
3,TCAUDIAG.URL, SIZE=15
3,TCAUDIAG.HLP, SIZE=20877
3,TCAUPROT.HLP, SIZE=20877
3,TCAUM509.HLP, SIZE=20877
3,TCAUDCUS.TXT, SIZE=113
3,TCAUDEXP.TXT, SIZE=113
3,TCAUDVAR.TXT, SIZE=113
3,TCAUPROT.DLL, SIZE=12345
3,TCAUM509.DLL, SIZE=12345

[Files-HwDll]
3,TCAMHWAC.DLL, SIZE=20198
3,TCAICCHG.SYS, SIZE=5000

[Files-TCAITDI]
3,TCAITDI.INF, SIZE=15000

;[Files-Tray]
;3,TCASUTI.EXE, SIZE=8957

[Files-PACE]
3,pacecfg.cpl, SIZE=108384
3,pacecfg.hlp, SIZE=18072

[Files-Uninstaller]
3,UN3C509A.EXE, SIZE=6617

[Files-NDIS4]
3,ELNK3ND4.SYS , SIZE=42496

[Files-NDIS3]
3,ELNK3ND3.SYS , SIZE=42496

[LanguagesSupported]
 ENG

[OptionsTextENG]
 ELNK3ISA509 = "3Com Etherlink 10 ISA (3C509) Adapter"
 ELNK3EISA = "3Com Etherlink 10 EISA (3C579) Adapter"
 ELNK3MCA = "3Com Etherlink 10 MCA (3C529) 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:"
FunctionTitle = "3Com Etherlink 10 ISA Adapter Card Setup"
ProductSoftwareDescription = "3Com Etherlink 10 ISA Adapter Driver"
ProductSoftwareTitle = "3Com Etherlink 10 ISA Adapter Driver"
ProductHardwareELNK3ISA509Title = "3Com Etherlink 10 ISA (3C509) Adapter"
ProductHardwareELNK3ISA509Description = "3Com Etherlink 10 ISA (3C509) ISA Adapter"
ProductHardwareELNK3EISATitle = "3Com Etherlink 10 EISA (3C579) Adapter"
ProductHardwareELNK3EISADescription = "3Com Etherlink 10 EISA (3C579) Adapter"
ProductHardwareELNK3MCATitle = "3Com Etherlink 10 MCA (3C529) Adapter"
ProductHardwareELNK3MCADescription = "3Com Etherlink 10 MCA (3C529) Adapter"
ShellCodeErrorTitle = "Error: "$(FunctionTitle)
ShellCodeErrorText = "Shell Code Error."
TransceiverList = {"10 Base T", "Thick Net (AUI/DIX)", "Thin Net (BNC/COAX)"}
TransceiverDisplayList = {"10 Base T", "Thick Net (AUI/DIX)", "Thin Net (BNC/COAX)"}

[DialogConstantsENG]
Help = "&Help"
Exit = "Cancel"
OK = "OK"
HelpContext = ""
Continue = "Continue"
Cancel = "Cancel"

[FileDependentDlgENG]
Label1 = "I/O &Port Address:"
DlgType = "MultiCombo"
DlgTemplate = "SINGLE_COMBO"
Caption = $(FunctionTitle)
Combo1List = $(IOADDR_Hex_List)
Combo1Out = $(IOADDR_Hex_Value)
ComboListItemsIn = {Combo1List}
ComboListItemsOut = {Combo1Out}
EditTextIn = ""
EditTextLim = ""
CBOptionsGreyed = {}
NotifyFields = {NO, NO, NO}
HelpContext = $(!IDH_DB_OEMNADE3_INS)


Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: web4, load: 1.75