;*********************************************************************** ; ; ; ; SMC 8020 Adapter card and driver SETUP INF file. ; ; ; Copyright (c) 1993 DWB Associates Inc. All Rights Reserved ; ; ; 22 November 1994 D. Ebert BaseBand Technologies. ; Updates for NT 3.5. ; 13 January 1995 D. Ebert BaseBand Technologies. ; Updates for FEAST. ; 10 August 1995 D. Ebert BaseBand Technologies. ; Updates for PCMCIA. ; 22 February 1996 Patrick Pinzhong Liu ; Elisa Research Inc. ; Updates for both Multi-Function and single ; function Card ; 15 August 1996 John Rhodes ; Updates for the 8020BTM ; 17 October 1996 Vasantha Jagannath ; Updates for 8020BTM and BT ; 11 November 1996 Vasantha Jagannath ; Fixed PTRs for NT40 ; ;*********************************************************************** [Identification] OptionType = NetAdapter [PlatformsSupported] PCMCIA [LanguagesSupported] ENG [Options] SMC8020 SMC8020M [OptionsTextENG] SMC8020 = "SMC EtherEZ PC Card (SMC8020BT)" SMC8020M = "SMC EtherEZ PC Card+Modem (SMC8020BTM)" [Source Media Descriptions] 1 = "SMC Driver Install Diskette" [Files-SMC9000] 1,SMC8020s.sys, SIZE=40000 [Files-Dll] 1,SMC8020m.dll, SIZE=40000 1,SMC8020m.hlp, SIZE=40000 ;;[Files-SMCncdet] ;; 1, SMCncdet.dll, SIZE=40000 [Files-Inf] 1, oemsetup.inf, SIZE=40000, RENAME=$(!UG_Filename) [date] Now = {} ? $(!LIBHANDLE) GetSystemDate [FileConstants] UtilityInf = "UTILITY.INF" ParamInf = "NCPARAM.INF" SubroutnInf = "SUBROUTN.INF" NetEventDLL = "%SystemRoot%\System32\netevent.dll" [RegistryConstantsSMC8020M] SoftwareType = "driver" Manufacturer = "SMC" ProductMajorVersion = "3" ProductMinorVersion = "5" ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion) ProductSoftwareName = "SMC8020M" ProductSoftwareTitle = "SMC8020 LAN/Modem Adapter Driver" ProductSoftwareImagePath = "\SystemRoot\System32\drivers\SMC8020s.sys" NetRuleSoftwareType = "SMC9000Sys ndisDriver SMC9000Driver" NetRuleSoftwareUse = $(SoftwareType) NetRuleSoftwareBindForm = """SMC9000Sys"" yes no container" NetRuleSoftwareClass = {"SMC9000Driver basic"} NetRuleSoftwareBindable = {"SMC9000Driver SMC8020MAdapter non exclusive 100"} ProductHardwareName = "SMC8020M" ProductHardwareTitle = "SMC 8020 LAN/Modem Adapter" NetRuleHardwareType = "SMC8020M SMC8020MAdapter" NetRuleHardwareBindForm = " yes yes container" NetRuleHardwareClass = {"SMC8020MAdapter basic"} ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion" ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters" ProductSoftwareDescription = "SMC EtherEZ PC Card+Modem (SMC8020BTM) Adapter Driver" ProductHardwareDescription = "SMC EtherEZ PC Card+Modem (SMC8020BTM) Adapter" ;Combo++ ; ;Modem Registry paths ; SerialCommPath = "\\HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM" PortsPath = "\\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports" EtherEZModemPath = "\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\EtherEZModem" PCMCIAPCCARDsPath = "\\HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter\PCMCIA PCCARDs" ;Combo-- [RegistryConstantsSMC8020] SoftwareType = "driver" Manufacturer = "SMC" ProductMajorVersion = "3" ProductMinorVersion = "5" ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion) ProductSoftwareName = "SMC8020" ProductSoftwareTitle = "SMC8020 PCMCIA Adapter Driver" ProductSoftwareImagePath = "\SystemRoot\System32\drivers\SMC8020s.sys" NetRuleSoftwareType = "SMC9000Sys ndisDriver SMC9000Driver" NetRuleSoftwareUse = $(SoftwareType) NetRuleSoftwareBindForm = """SMC9000Sys"" yes no container" NetRuleSoftwareClass = {"SMC9000Driver basic"} NetRuleSoftwareBindable = {"SMC9000Driver SMC8020Adapter non exclusive 100"} ProductHardwareName = "SMC8020" ProductHardwareTitle = "SMC 8020 PC Card Adapter" NetRuleHardwareType = "SMC8020 SMC8020Adapter" NetRuleHardwareBindForm = " yes yes container" NetRuleHardwareClass = {"SMC8020Adapter basic"} ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion" ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters" ProductSoftwareDescription = "SMC EtherEZ PC Card (SMC8020BT) Adapter Driver" ProductHardwareDescription = "SMC EtherEZ PC Card (SMC8020BT) Adapter" [GeneralConstants] KeyNull = "" MAXIMUM_ALLOWED = 33554432 KeyProduct = "" KeyParameters = "" ;; nishi AdapterName = "" ;; nishi PcmciaKey = "" SMCPcmciaKey = "" SMC8020mKey = "" NoTitle = 0 OldVersionExisted = FALSE DriverPath = $(!STF_NTPATH)\drivers MyList = {.} ;; MyList = {hex(9)} [PcmciaKeysSMC8020M] CardManufacturer = "SMC" CardKeyName = "EtherEZ Ethernet/Modem 8020" PcmciaPath = $(!NTN_ServiceBase)"\Pcmcia\DataBase" SMCPcmciaPath = $(!NTN_ServiceBase)"\Pcmcia\DataBase\"$(CardManufacturer) SMC8020Path = $(!NTN_ServiceBase)"\Pcmcia\DataBase\"$(CardManufacturer)"\"$(CardKeyName) [PcmciaKeys] CardManufacturer = "SMC" CardKeyName = "EtherEZ Ethernet 8020" PcmciaPath = $(!NTN_ServiceBase)"\Pcmcia\DataBase" SMCPcmciaPath = $(!NTN_ServiceBase)"\Pcmcia\DataBase\"$(CardManufacturer) SMC8020Path = $(!NTN_ServiceBase)"\Pcmcia\DataBase\"$(CardManufacturer)"\"$(CardKeyName) [FileConstantsENG] ProCaption = "Windows NT Setup" ProCancel = "Cancel" ProCancelMsg = "The "$(Option)" Adapter is not correctly installed. "+ "Are you sure you want to cancel copying files?" ProCancelCap = "Network Setup Message" ProText1 = "Copying:" ProText2 = "To:" FunctionTitle = $(Option)" Ethernet Adapter Card Setup" [SMCIrqs] ;; nishi IRQ12 = "Auto",0 ;; nishi IRQ0 = "5",5 IRQ1 = "3",3 IRQ2 = "4",4 IRQ3 = "6",6 IRQ4 = "7",7 IRQ5 = "9",9 IRQ6 = "10",10 IRQ7 = "11",11 IRQ8 = "12",12 IRQ9 = "13",13 IRQ10 = "14",14 IRQ11 = "15",15 [SMCIoBase] ;; nishi Base16 = "Auto",0x0000 ;; nishi Base0 = "0x300",0x0300 Base1 = "0x200",0x0200 Base2 = "0x220",0x0220 Base3 = "0x240",0x0240 Base4 = "0x260",0x0260 Base5 = "0x280",0x0280 Base6 = "0x2A0",0x02A0 Base7 = "0x2C0",0x02C0 Base8 = "0x2E0",0x02E0 Base9 = "0x320",0x0320 Base10 = "0x340",0x0340 Base11 = "0x360",0x0360 Base12 = "0x380",0x0380 Base13 = "0x3A0",0x03A0 Base14 = "0x3C0",0x03C0 Base15 = "0x3E0",0x03E0 [SMCMedia] Media0 = "AutoDetect" Media1 = "10BaseT" Media2 = "BNC" [SMCSpeed] Speed0 = 100 Speed1 = 10 [HexDigits] Hex0 = 0 Hex1 = 1 Hex2 = 2 Hex3 = 3 Hex4 = 4 Hex5 = 5 Hex6 = 6 Hex7 = 7 Hex8 = 8 Hex9 = 9 HexA = A HexB = B HexC = C HexD = D HexE = E HexF = F ;;Combo++ [ModemPortChoices] Port_1 = "COM3", 3 Port_2 = "COM2", 2 Port_3 = "COM1", 1 Port_4 = "COM4", 4 [AttributeMemChoices] ;; nishi Add_9 = "Auto",000000 Add_1 = "0xD0000",851968 Add_2 = "0xC0000",786432 Add_3 = "0xC4000",802816 Add_4 = "0xC8000",819200 Add_5 = "0xCC000",835586 Add_6 = "0xD4000",868352 Add_7 = "0xD8000",884736 Add_8 = "0xDC000",901120 [ModemIOBaseChoices] MBase0 = "0x3E8",0x03E8 MBase1 = "0x2E8",0x02E8 MBase2 = "0x2F8",0x02F8 MBase3 = "0x3F8",0x03F8 [ModemIrqChoices] IRQ0 = "5",5 IRQ1 = "3",3 IRQ2 = "4",4 ;;Combo-- [DialogConstantsENG] Help = "&Help" Exit = "Cancel" OK = "OK" ContextSMC8020M = 30100 ContextLanMod = 30100 HelpContext = $(Context$(Option)) Continue = "Continue" Cancel = "Cancel" BadAddr1 = "Network Address must be 12 hexadecimal digits" BadAddr2 = "Network Address contains invalid hexadecimal digit: " BadAddr3 = "Network Address invalid, group bit must be 0" [FileDependentDlgENG] DlgType = "RadioCombination" DlgTemplate = $(Option) ;;Combo++ Function = "Function &Select" LAN = "&LAN Only" MODEM = "&Modem Only" LANMODEM = "&LAN/Modem" LANCaption = "SMC EtherEZ PC LAN Card (SMC8020BTM) Setup" ModemCaption = "SMC EtherEZ PC Modem (SMC8020BTM) Setup" MultiCaption = "SMC EtherEZ PC Card+Modem (SMC8020BTM) Setup" CaptionSMC8020 = "SMC EtherEZ PC Card (SMC8020BT) Setup" CaptionSMC8020M = "SMC EtherEZ PC Card+Modem (SMC8020BTM) Setup" ;;Combo-- Caption = $(Caption$(Option)) Combo1Label = "&IRQ Level:" Combo2Label = "I/O &Base:" Combo3Label = "&Media Type:" ;;Combo++ Combo4Label = "Modem &Port:" Combo5Label = "Modem IR&Q:" Combo6Label = "Modem I/&O:" Combo7Label = "&Attribute Mem:" ;;Combo-- Label3 = "&Network Address:" AdapterSpeed = "&Adapter Speed" HighSpeed = "High Speed [100mb]" LowSpeed = "Low Speed [10mb]" IrqList = ^(SMCIrqs, 1) IoBaseList = ^(SMCIoBase, 1) MediaList = ^(SMCMedia, 1) SpeedValue = ^(SMCSpeed, 1) MediaTypeValue = 0 Combo1List = $(IrqList) Combo1Out = $(IRQLevel) Combo2List = $(IoBaseList) Combo2Out = $(IOBaseAddress) Combo3List = $(MediaList) Combo3Out = $(Media) ;;Combo++ AttributeMemList = ^(AttributeMemChoices, 1) ModemIOBaseList = ^(ModemIoBaseChoices, 1) ModemPortList = ^(ModemPortChoices, 1) ModemIrqList = ^(ModemIrqChoices, 1) Combo7List = $(AttributeMemList) Combo7Out = *($(AttributeMemList), 5) ; Modem ModemPortValues = ^(ModemPortChoices,2) Combo4List = $(ModemPortList) Combo4Out = *($(ModemPortList), 3) Combo5List = $(ModemIrqList) Combo5Out = *($(ModemIrqList), 2) Combo6List = $(ModemIOBaseList) 2 Combo6Out = *($(ModemIOBaseList), 3) ComboListItemsIn = {Combo1List, Combo2List, Combo3List, Combo4List, Combo5List, Combo6List, Combo7List} ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out, Combo5Out, Combo6Out, Combo7Out} ;;Combo-- CBOptionsGreyed = {} RCCtlFocusOn = 403 [Identify] read-syms Identification shell "" DebugControl set Status = STATUS_SUCCESSFUL set Identifier = $(OptionType) set Media = #("Source Media Descriptions", 1, 1) Return $(Status) $(Identifier) $(Media) [ReturnOptions] shell "" DebugControl set OptionList = ^(Options, 1) set OptionTextList = ^(OptionsText$($0), 1) set Status = STATUS_SUCCESSFUL set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) ifstr(i) $($0) == "" set Status = STATUS_NOLANGUAGE goto ExitReturnOptions endif else set Status = STATUS_NOLANGUAGE goto ExitReturnOptions endif set PlatformList = ^(PlatformsSupported, 1) Ifcontains(i) $($1) NOT-IN $(PlatformList) ifstr(i) $($1) != "" set Status = STATUS_NOTSUPPORTED endif endif ExitReturnOptions = + Return $(Status) $(OptionList) $(OptionTextList) [InstallOption] set Option = $($1) set SrcDir = $($2) set AddCopy = $($3) set DoCopy = $($4) set DoConfig = $($5) read-syms GeneralConstants read-syms FileConstants read-syms FileDependentDlg$(!STF_LANGUAGE) read-syms DialogConstants$(!STF_LANGUAGE) read-syms FileConstants$(!STF_LANGUAGE) shell "" DebugControl StartWait read-syms RegistryConstants$(Option) set LanguageList = ^(LanguagesSupported, 1) Ifstr(i) $(!NTN_InstallMode) == deinstall set SubFunction = RemoveAdapter else-Ifstr(i) $(!NTN_InstallMode) == install set SubFunction = InstallAdapter else-Ifstr(i) $(!NTN_InstallMode) == update set SubFunction = UpgradeSoftware else-Ifstr(i) $(!NTN_InstallMode) == configure set SubFunction = ConfigureAdapter else set SubFunction = NoWay endif Shell "" $(SubFunction) EndWait return $($R0) [InstallAdapter] read-syms GeneralConstants read-syms FileConstants detect date set CurrentTime = *($(Now),1) set SrcDir = $(!p:SrcDir) set Option = $(!p:Option) set DoCopy = $(!p:DoCopy) set AddCopy = $(!p:AddCopy) set KeyProduct = $(KeyNull) set DoSetup = TRUE read-syms RegistryConstants$(Option) Debug-Output " VAS "$(Option) Debug-Output "nishi: IrqList = $(Combo1List)" Debug-Output "nishi: IoBaseAddressList = $(Combo2List)" Debug-Output "nishi: AttributeMemList = $(Combo7List)" Debug-Output "STC_NCDETECT = "$(!STF_NCDETECT) Debug-Output "STF_NCDETCARD = "$(!STF_NCDETCARD) Debug-Output "STF_NCOPTION = "$(!STF_NCOPTION) Set DetectedCard = FALSE ;; Ifstr(i) $(!STF_NCDETECT) == YES ;; Ifstr(i) $(!STF_NCOPTION) == $(Option) ;; Set DetectedCard = TRUE ;; Endif ;; Endif ;; ;; IfStr(i) $(DetectedCard) == FALSE ;; Shell "" PrepareDetectionDll "SMCncdet.dll" ;; Endif ;; IfStr(i) $(Option) == "SMC8020m" Set PCMCIA = 1 ;; Else ;; Set PCMCIA = 0 ;; EndIf ;; ifstr(i) $(Option) == "SMC9000" ;; Set TypeList = {{IRQ,IRQ_List,IRQLevel},+ ;; {IOADDR, IOBaseAddressDecList, IOBaseValue},+ ;; {TRANSCEIVER, MediaList, MediaTypeValue}} ;; else-ifstr(i) $(Option) == "SMC8020m" Set TypeList = {{IRQ,IRQ_List,IRQLevel},+ {IOADDR, IOBaseAddressDecList, IOBaseValue},+ {TRANSCEIVER, MediaList, MediaTypeValue}} ;; else ;; Set TypeList = {{IRQ,IRQ_List,IRQLevel},+ ;; {IOADDR, IOBaseAddressDecList, IOBaseValue},+ ;; {TRANSCEIVER, MediaList, MediaTypeValue}, + ;; {SPEED, SpeedList, SpeedValue}} ;; endif ;; ;; Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList) ;; Set Status = $($R0) ;; ;; ifstr(i) $(Status) != STATUS_SUCCESSFUL ;; Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT ;; Shell "" FatalError $($R0) ;; Return STATUS_FAILED ;; Endif ;; ;; Shell $(ParamInf) Param_SetDefaults {} ;; set OldVersionExisted = FALSE Debug-Output " VAS "$(ProductKeyName) OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) CloseRegKey $(KeyProduct) Debug-Output " VAS1 " ifstr(i) $(!NTN_RegBase) == $(ProductKeyName) Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle), + $(ProductVersion) ifstr(i) $($R1) != "OK" Return STATUS_FAILED endif else Shell $(UtilityInf), CardExistedDlg ifstr(i) $($R1) != "OK" Return STATUS_FAILED endif set OldVersionExisted = TRUE endif endif ;; IfStr(i) $(DetectedCard) == TRUE ;; shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD) ;; ifstr(i) $($R0) == STATUS_SUCCESSFUL ;; set DetectedParams = $($R1) ;; shell $(ParamInf) Param_SetDefaults $(DetectedParams) ;; else ;; Debug-Output "Param_QueryCard Failed, status = "$($R0) ;; endif ;; endif IfStr(i) $(DoSetup) == TRUE set NetworkAddress = "" ifint $(MediaTypeValue) == 0 set MediaValue = "AutoDetect" else set MediaValue = "10BaseT" endif Debug-Output "1 VASANTHA Install Adapter "$(SrcDir) Debug-Output "2 VASANTHA Install Adapter STF_CDIRW "$(!STF_CWDDIR) set DLLPATH = "" ; ifstr(i) $(DoCopy) == "YES" OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) != $(KeyNull) CloseRegKey $(KeyProduct) set DLLPATH = $(!STF_CWDDIR) Debug-Output "3 VASANTHA DoCopy "$(!STF_CWDDIR) else set BuiltIn = "YES" ifstr(i) $(!NTN_Origination) == "NCPA" Set BuiltIn = "NO" endif Shell $(UtilityInf) DoAskSource $(!STF_CWDDIR) $(SrcDir) $(BuiltIn) Debug-Output "4 VASANTHA Install Adapter SrcDir"$(SrcDir) Debug-Output "5 VASANTHA Install Adapter DLLPATH "$($R1) Debug-Output "6 VASANTHA Install Adapter SrcDir"$($R1) set DLLPATH = $($R1) set SrcDir = $($R1) endif ; endif dowind =+ ;;Combo++ set AttributeMem = 0 set ModemIOBase = 0 set ModemIrq = 0 set ModemPort = 0 set Function = 3 ;;Combo-- Shell "" AdapterSetup IfStr(i) $($R0) != TRUE Return STATUS_USERCANCEL endif ifstr(i) $(MediaValue) == "AutoDetect" set MediaTypeValue = 0 else-ifstr(i) $(MediaValue) == "10BaseT" set MediaTypeValue = 1 endif ;; Shell $(ParamInf) Param_SaveValues ;; Set NewParamSettings = $($R0) ;; Shell $(ParamInf) Param_VerifyResources $(NewParamSettings) ;; Ifstr(i) $($R0) != STATUS_SUCCESSFUL ;; Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING ;; Shell "" VerifyError $($R0) ;; ifstr(i) $($R0) != "OK" ;; goto dowind ;; endif ;; endif IfStr(i) $(OldVersionExisted) == FALSE Shell "" SetCopy $(DoCopy) $(AddCopy) $(SrcDir) "Install-Option" IfStr(i) $($R0) == TRUE Shell "" SetSoftware $(CurrentTime) IfStr(i) $($R0) != TRUE Return STATUS_FAILED endif endif endif Debug-Output "ProductHardwareName "$(ProductHardwareName) Debug-Output "CONTEXTINF NAME "$(STF_CONTEXTINFNAME) Debug-Output "ProductKeyName "$(ProductKeyName) Debug-Output " VAS "$(Option) Debug-Output " vas "$(!p:Option) Shell "" SetHardware $(CurrentTime) IfStr(i) $($R0) == TRUE Shell "" WriteParameters Debug-Output " VAS "WriteParameters endif endif ifstr(i) $(Option) == "SMC8020M" Shell "" SetUpMulti endif IfStr(i) $($R0) == TRUE Return STATUS_SUCCESSFUL else Return STATUS_FAILED endif [ConfigureAdapter] set Option = $(!p:Option) read-syms GeneralConstants read-syms FileConstants read-syms FileDependentDlg$(!STF_LANGUAGE) Debug-Output "7 VASANTHA Configure Adapter "$(!STF_CWDIR) set DLLPATH = $(!STF_CWDDIR) read-syms RegistryConstants$(Option) ifstr(i) $(!NTN_RegBase) == $(ProductKeyName) Shell $(UtilityInf) RegistryErrorString CANNOT_CONFIGURE_SOFTWARE Shell "" ShellError $($R0) Return STATUS_FAILED endif ;; Set DetectedCard = FALSE ;; Set TypeList = {{IRQ,IRQ_List,IRQLevel},+ ;; {IOADDR, IOBaseAddressDecList, IOBaseValue},+ ;; {TRANSCEIVER, MediaList, MediaTypeValue}} ;; Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList) ;; ;; ifstr(i) $($R0) != STATUS_SUCCESSFUL ;; Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT ;; Shell "" FatalError $($R0) ;; Return STATUS_FAILED ;; Endif ;; ;; Ifstr(i) $(!STF_NCDETECT) == YES ;; Ifstr(i) $(!STF_NCOPTION) == $(Option) ;; Set DetectedCard = TRUE ;; Endif ;; Endif OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) == $(KeyNull) Shell $(UtilityInf) RegistryErrorString CANNOT_FIND_COMPONENT_SERVICE Shell "" ShellError $($R0) Return STATUS_FAILED endif Shell $(UtilityInf) FindService, $(KeyProduct) Ifstr(i) $($R0) != NO_ERROR Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return STATUS_FAILED endif Set !KeyParameters = $($R2) CloseRegKey $($R1) Ifstr $(!KeyParameters) == $(KeyNull) Shell $(UtilityInf) RegistryErrorString CANNOT_FIND_COMPONENT_SERVICE Shell "" FatalError $($R0) Return STATUS_FAILED endif set ValueName = "" set ValueData = "" set ValueStr = "" set ValueList = {} EnumRegValue $(!KeyParameters) ValueList set NetworkAddress = "" set PCMCIA = 0 ForListDo $(ValueList) set ValueItem = $($) set ValueName = *($(ValueItem),1) set ValueData = *($(ValueItem),4) Ifstr(i) $(ValueName) == "Transceiver" set MediaValue = $(ValueData) else-ifstr(i) $(ValueName) == "Interrupt" set IRQLevel = $(ValueData) else-ifstr(i) $(ValueName) == "IoBase" set IOBaseValue = $(ValueData) else-ifstr(i) $(ValueName) == "Speed" set SpeedValue = $(ValueData) else-ifstr(i) $(ValueName) == "NetworkAddress" set NetworkAddress = $(ValueData) else-ifstr(i) $(ValueName) == "PCMCIA" set PCMCIA = $(ValueData) else-ifstr(i) $(ValueName) == "SoftexPcmcia" set PCMCIA = $(ValueData) ; nishi else-ifstr(i) $(ValueName) == "AdapterName" set !AdapterName = $(ValueData) ; nishi ;;Combo++ else-ifstr(i) $(ValueName) == "Function" set Function = $(ValueData) else-ifstr(i) $(ValueName) == "COMIRQNumber" set ModemIrq = $(ValueData) else-ifstr(i) $(ValueName) == "COMIOBase" set ModemIOBase = $(ValueData) else-ifstr(i) $(ValueName) == "PCCARDAttributeMemoryAddress" set AttributeMem = $(ValueData) else-ifstr(i) $(ValueName) == "COMPort" set ModemPort = $(ValueData) ;;Combo-- endif EndForListDo ifstr(i) $(MediaValue) == "10BaseT" set MediaTypeValue = 0 else-ifstr(i) $(MediaValue) == "BNC" set MediaTypeValue = 1 endif winagn =+ Shell "" AdapterSetup IfStr(i) $($R0) != TRUE Return STATUS_USERCANCEL endif ifstr(i) $(MediaValue) == "10BaseT" set MediaTypeValue = 0 else-ifstr(i) $(MediaValue) == "BNC" set MediaTypeValue = 1 endif Shell "" WriteParameters IfStr(i) $($R0) == TRUE Return STATUS_SUCCESSFUL else Return STATUS_FAILED endif [NoWay] read-syms GeneralConstants Shell "" ShellError "NoWay" Return STATUS_FAILED [RemoveAdapter] ; read-syms GeneralConstants read-syms FileConstants set Option = $(!p:Option) ;Combo++ ifstr(i) $(Option) == "SMC8020M" read-syms CustomMessageDlg ui start "CustomMessageBox" ui pop 1 endif ;;Combo-- read-syms RegistryConstants$(Option) Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), + $(ProductSoftwareName), $(!NTN_RegBase) ifstr(i) $($R0) != NO_ERROR Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return STATUS_FAILURE endif ;;Combo++ ; Remove Software Component Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName) ifstr(i) $($R0) != NO_ERROR Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return STATUS_FAILURE endif ; ; Remove Modem from the Registry ; ifstr(i) $(Option) == "SMC8020M" OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Serial\Parameters" $(MAXIMUM_ALLOWED) MyNewSerialHandle DeleteRegTree $(MyNewSerialHandle) "EtherEZEthernetModem" CloseRegKey $(MyNewSerialHandle) OpenRegKey $(!REG_H_LOCAL) "" "HARDWARE\DEVICEMAP\SERIALCOMM" $(MAXIMUM_ALLOWED) MyNewSerialHandle DeleteRegValue $(MyNewSerialHandle) "EtherEZEthernetModem" CloseRegKey $(MyNewSerialHandle) endif ;;Combo-- Return STATUS_SUCCESSFUL [UpgradeSoftware] read-syms GeneralConstants set SrcDir = $(!p:SrcDir) set Option = $(!p:Option) read-syms RegistryConstants$(Option) ifstr(i) $(ProductKeyName) == $(!NTN_RegBase) OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct Ifstr $(KeyProduct) == $(KeyNull) Return STATUS_FAILED endif set DoCopy = YES set AddCopy = YES Shell "" SetCopy $(DoCopy) $(AddCopy) $(SrcDir) "Install-Update" SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)} SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)} CloseRegKey $(KeyProduct) else OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) NetworkCardKey Ifstr(i) $(NetworkCardKey) == $(KeyNull) Return STATUS_FAILED endif GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo set ServiceName = *($(ServiceNameInfo), 4) OpenRegKey $(NetworkCardKey) "" "NetRules" $(MAXIMUM_ALLOWED) NetRuleKey Ifstr(i) $(NetRuleKey) == $(KeyNull) Return STATUS_FAILED endif CloseRegKey $(NetRules) CloseRegKey $(NetworkCardKey) OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ServiceName) $(MAXIMUM_ALLOWED) ServiceKey Ifstr(i) $(ServiceKey) == $(KeyNull) Return STATUS_FAILED endif CloseRegKey $(ServiceKey) endif Return STATUS_SUCCESSFUL [AdapterSetup] set Option = $(!p:Option) Debug-Output "<DBG: FORCE> ******************************** " Debug-Output "<DBG: FORCE> *********** Starting AdapterSetup" read-syms FileDependentDlg$(!STF_LANGUAGE) read-syms DialogConstants$(!STF_LANGUAGE) read-syms FileConstants$(!STF_LANGUAGE) read-syms GeneralConstants read-syms FileConstants read-syms RegistryConstants$(Option) ; -------------------------- BEGIN FORCE FIX - SHRADHA ; Update the modem info by reading from the ZZZx ; entries under the Serial\Parameters in registry Debug-Output "<DBG: FORCE> Starting ModemIOBaseList = "$(ModemIOBaseList) Debug-Output "<DBG: FORCE> Starting ModemIrqList = "$(ModemIrqList) set SerParams = "SYSTEM\CurrentControlSet\Services\Serial\Parameters" set ZZZComPort = $(SerParams)"\ZZZa" install "install-update-modem-info" set ZZZComPort = $(SerParams)"\ZZZb" install "install-update-modem-info" set ZZZComPort = $(SerParams)"\ZZZc" install "install-update-modem-info" set ZZZComPort = $(SerParams)"\ZZZd" install "install-update-modem-info" Debug-Output "<DBG: FORCE> Final ModemIOBaseList = "$(ModemIOBaseList) Debug-Output "<DBG: FORCE> Final ModemIrqList = "$(ModemIrqList) set Combo5List = $(ModemIrqList) set Combo5Out = *($(ModemIrqList), 2) set Combo6List = $(ModemIOBaseList) set Combo6Out = *($(ModemIOBaseList), 3) set ComboListItemsIn = {Combo1List, Combo2List, Combo3List, Combo4List, Combo5List, Combo6List, Combo7List} set ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out, Combo5Out, Combo6Out, Combo7Out} ;-------------------------- END FORCE FIX - SHRADHA set Combo1Out = $(!p:IRQLevel) set-dectohex Combo2Out = $(!p:IOBaseValue) set MediaValue = $(!p:MediaValue) set NetworkAddress = $(!p:NetworkAddress) set DLLPATH = $(!p:DLLPATH) ; ;Combo++ set-dectohex Combo7Out = $(!p:AttributeMem) set-dectohex Combo6Out = $(!p:ModemIOBase) set Combo5Out = $(!p:ModemIrq) set Combo4Out = $(!p:ModemPort) ;;Combo-- Debug-Output "8 VASANTHA configure Adapter "$(DLLPATH) ; ifstr(i) $(DLLPATH) != "" Debug-Output "9 VASANTHA Configure Adapter "$(DLLPATH) Split-String $(DLLPATH) "\" TempList QueryListSize ListSize $(TempList) Debug-Output "10 VASANTHA Configure Adapter "$(DLLPATH) ifstr(i) *($(TempList), $(ListSize)) != "\" set DLLPATH = $(DLLPATH)"\" Debug-Output "11 VASANTHA Configure Adapter "$(DLLPATH) endif ; endif SetHelpFile $(DLLPATH)SMC8020m.hlp 30100 30105 set AdapterStatus = FALSE set Combo3Out = $(MediaValue) set EditTextIn = {$(NetworkAddress)} set NotifyFields = {NO, NO, NO} set EditTextLim = {12} set EditFocusOn = "" ifint $(!p:Function) == 1 Set RadioIn = {2} else-ifint $(!p:Function) == 2 Set RadioIn = {1} else-ifint $(!p:Function) == 3 Set RadioIn = {3} endif Debug-Output "12 VASANTHA Adapter "$(DLLPATH) loadlibrary "SMC 8020 Install Diskette" $(DLLPATH)SMC8020m.dll DllHandle RetryDialog =+ EndWait ifstr(i) $(Option) == "SMC8020" set DlgTemplate = SMC8020 else set DlgTemplate = LANMODEM endif set HelpContext = $(ContextLanMod) set Combo1Out = $(!p:IRQLevel) set-dectohex Combo2Out = $(!p:IOBaseValue) set Combo3Out = $(!p:MediaValue) set NetworkAddress = $(!p:NetworkAddress) set-dectohex Combo7Out = $(!p:AttributeMem) set-dectohex Combo6Out = $(!p:ModemIOBase) set Combo5Out = $(!p:ModemIrq) set Combo4Out = $(!p:ModemPort) EndWait ui start "InputDlg" $(DllHandle) StartWait ui pop 1 ifstr(i) $(DLGEVENT) == "CONTINUE" set NewNetworkAddress = *($(EditTextOut), 1) Debug-Output "Nishi 1" ifstr(i) $(NewNetworkAddress) != "" Debug-Output "Nishi 2" Split-String $(NewNetworkAddress), "0123456789ABCDEFabcdef-", TempList set HexList = ^(HexDigits, 1) QueryListSize ListSize $(TempList) ifint $(ListSize) == 11 Debug-Output "Nishi 3" set Index1 = 1 set Loop = 1 else Debug-Output "Nishi 4"$(ListSize) Shell "" WarnError $(BadAddr1) goto RetryDialog endif NetAddrLoop =+ set Temp1 = *($(TempList), $(Index1)) ifcontains(i) $(Temp1) not-in $(HexList) Debug-Output "Nishi 5" Shell "" WarnError $(BadAddr2)$(Temp1) goto RetryDialog endif ifint $(Index1) == 2 Debug-Output "Nishi 6" ifcontains(i) $(Temp1) in { 1,3,5,7,9,b,d,f } Debug-Output "Nishi 7" Shell "" WarnError $(BadAddr3) goto Retry2ndDialog endif endif set-add Index1 = $(Index1), 1 set-add Loop = $(Loop), 1 ifint $(Loop) < 13 Debug-Output "Nishi 8" goto NetAddrLoop endif endif set AdapterStatus = TRUE ; nishi ifstr(i) $(Combo2Out) == "Auto" set !p:IOBaseValue = 0 else set-hextodec !p:IOBaseValue = $(Combo2Out) endif ifstr(i) $(Combo1Out) == "Auto" set !p:IRQLevel = 0 else set !p:IRQLevel = $(Combo1Out) endif ifstr(i) $(Combo7Out) == "Auto" set !p:AttributeMem = 0 else set-hextodec !p:AttributeMem = $(Combo7Out) endif ; nishi set !p:NetworkAddress = $(NewNetworkAddress) Debug-Output "Nishi setup: Combo2Out $(Combo2Out) IoBaseValue $(!p:IOBaseValue)" Debug-Output "Nishi setup: Combo1Out $(Combo1Out) IRQLevel $(!p:IRQLevel)" Debug-Output "Nishi setup: Combo7Out $(Combo7Out) Attributemem $(!p:AttributeMem)" set-hextodec !p:ModemIOBase = $(Combo6Out) set !p:ModemIrq = $(Combo5Out) set !p:ModemPort = $(Combo4Out) set !p:MediaValue = $(Combo3Out) set !p:Function = 3 endif ifstr(i) $(DLGEVENT) == "CONTINUE" IfStr(i) $(!STF_NCDETINFO) == {} Set !p:BusType = 1 Set !p:BusNumber = 0 Else Set !p:BusType = *($(!STF_NCDETINFO),5) Set !p:BusNumber = *($(!STF_NCDETINFO),6) EndIf Endif freelibrary $(DllHandle) return $(AdapterStatus) [SetCopy] read-syms GeneralConstants read-syms FileConstants read-syms FileConstants$(!STF_LANGUAGE) set DoCopy = $($0) set AddCopy = $($1) set SrcDir = $($2) set InstallSection = $($3) set Needcopy = FALSE Ifstr(i) $(DoCopy) == "YES" set NeedCopy = TRUE else-ifstr(i) $(AddCopy) == "YES" set NeedCopy = TRUE else Return TRUE endif set BuiltIn = "YES" ifstr(i) $(!NTN_Origination) == "NCPA" set BuiltIn = "NO" endif Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) $(BuiltIn) Ifstr(i) $($R0) == STATUS_FAILED Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL" Shell "" FatalError $($R0) Return FALSE Else-Ifstr(i) $($R0) == STATUS_USERCANCEL Return FALSE Endif Set SrcDir = $($R1) install $(InstallSection) ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE" Shell "" FatalError $($R0) Return FALSE endif Return TRUE [SetSoftware] read-syms GeneralConstants read-syms FileConstants read-syms date set Option = $(!p:Option) read-syms RegistryConstants$(Option) Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), + $(ProductSoftwareName), + $(ProductSoftwareName), + $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), + $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+ $(NetEventDLL) Ifstr(i) $($R0) != NO_ERROR Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return FALSE endif ; ; At this point: ; $R1 contains the product version key handle; ; $R2 contains the NetRules subkey handle; ; $R3 contains the new Services key handle; and ; $R4 contains the Parameters key ; $R5 contains the Linkage Key ; set KeyProduct = $($R1) Set SoftNetRulesKey = $($R2) CloseRegKey $($R3) CloseRegKey $($R4) CloseRegKey $($R5) Ifstr(i) $($R0) != NO_ERROR CloseRegKey $(KeyProduct) CloseRegKey $(SoftNetRulesKey) Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return FALSE 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),$($0)}} Shell $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList) Ifstr(i) $($R0) != NO_ERROR CloseRegKey $(KeyProduct) CloseRegKey $(SoftNetRulesKey) Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return FALSE 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) CloseRegKey $(KeyProduct) CloseRegKey $(SoftNetRulesKey) Ifstr(i) $($R0) != NO_ERROR Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return FALSE endif return TRUE [SetHardware] read-syms GeneralConstants read-syms FileConstants read-syms date set Option = $(!p:Option) Debug-Output "in SetHardware "$(ProductKeyName) read-syms RegistryConstants$(Option) Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName) Ifstr(i) $($R0) != NO_ERROR CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return FALSE endif ; ; At this point: ; $R1 Registry key variable for HARDWARE\Netcard\(n) ; $R2 Registry key variable for HARDWARE\Netcard\(n)\\NetRules ; $R3 Registry key handle for <service>\Parameters key ; $R4 Adapter number assigned to adapter ; $R5 Service name generated by combining svc name with adapter number ; set !KeyParameters = $($R3) set KeyAdapterRules = $($R2) set AdapterNumber = $($R4) set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+ {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+ {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),$($0)}} Shell $(UtilityInf), AddValueList, $($R1), $(NewValueList) Ifstr(i) $($R0) != NO_ERROR CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return FALSE endif CloseRegKey $($R1) set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)"""" ;; nishi set !AdapterName = $(ProductHardwareName)$(AdapterNumber) ;; nishi set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm) Debug-Output "VASANTHA "$ProductHardwareName 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) Ifstr(i) $($R0) != NO_ERROR CloseRegKey $(!KeyParameters) CloseRegKey $(KeyAdapterRules) Shell $(UtilityInf) RegistryErrorString $($R0) Shell "" ShellError $($R0) Return FALSE endif CloseRegKey $(KeyAdapterRules) return TRUE [WriteParameters] read-syms FileConstants read-syms GeneralConstants set Option = $(!p:Option) read-syms RegistryConstants$(Option) set Base = $(!p:IOBaseValue) set Irq = $(!p:IRQLevel) set Media = $(!p:MediaValue) set NetworkAddress = $(!p:NetworkAddress) set BusType = $(!p:BusType) set BusNumber = $(!p:BusNumber) set SpeedValue = $(!p:SpeedValue) set PCMCIA = $(!p:PCMCIA) ;;Combo++ set AttributeMemValue = $(!p:AttributeMem) set ModemIOBaseValue = $(!p:ModemIOBase) set ModemIrqValue = $(!p:ModemIrq) set ModemPortValue = $(!p:ModemPort) set FunctionValue = $(!p:Function) ;;Combo-- ifint $(BusType) == 8 set PCMCIA = 1 set BusType = 1 endif Set NewValueList = {{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusType)},+ {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+ {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+ {BusNumber,$(NoTitle),$(!REG_VT_DWORD),0},+ {Transceiver,$(NoTitle),$(!REG_VT_SZ),$(Media)},+ {Interrupt,$(NoTitle),$(!REG_VT_DWORD),$(Irq)},+ {IoBase,$(NoTitle),$(!REG_VT_DWORD),$(Base)},+ {Speed,$(NoTitle),$(!REG_VT_DWORD),$(SpeedValue)},+ {PCCARDAttributeMemoryAddress,$(NoTitle),$(!REG_VT_DWORD),$(!p:AttributeMem)},+ {PCCARDAttributeMemorySize,$(NoTitle),$(!REG_VT_DWORD),4096}} ; nishi 11/18/97 {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)}} Shell $(UtilityInf), AddValueList, $(!KeyParameters), $(NewValueList) Set Status = $($R0) IfInt $(PCMCIA) == 1 ;; nishi ;; Set NewValueList = {{Pcmcia,$(NoTitle),$(!REG_VT_DWORD),1},+ ;; {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(Irq)},+ ;; {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(Base)}} ;; nishi Set NewValueList = {{SoftexPcmcia,$(NoTitle),$(!REG_VT_DWORD),1},+ {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(Irq)},+ {AdapterName,$(NoTitle),$(!REG_VT_SZ),$(!AdapterName)},+ {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(Base)}} ;;Combo++ ifstr(i) $(Option) == "SMC8020M" OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Serial\Parameters\EtherEZEthernetModem" $(MAXIMUM_ALLOWED) MyNewSerialHandle Ifstr $(MyNewSerialHandle) == $(KeyNull) OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\CurrentControlSet\Services\Serial\Parameters" $(MAXIMUM_ALLOWED) SerialKey CreateRegKey $(SerialKey) {"EtherEZEthernetModem",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" MyNewSerialHandle CloseRegKey $(SerialKey) endif ;; nishi ;; set NewValueList = {{DosDevices, $(NoTitle),$(!REG_VT_SZ), $(!p:ModemPort)},+ ; "COMx" ;; {ForceFifoEnable, $(NoTitle),$(!REG_VT_DWORD), 1},+ ; Always true for EtherEZ ;; {Interrupt, $(NoTitle),$(!REG_VT_DWORD), $(!p:ModemIrq)},+ ; Interrupt for EtherEZ modem ;; {PortAddress, $(NoTitle),$(!REG_VT_DWORD), $(!p:ModemIOBase)}} ; I/O Base address for EtherEZ ;; nishi set NewValueList = {{DosDevices, $(NoTitle),$(!REG_VT_SZ), $(!p:ModemPort)},+ ; "COMx" {ForceFifoEnable, $(NoTitle),$(!REG_VT_DWORD), 1},+ ; Always true for EtherEZ {Interrupt, $(NoTitle),$(!REG_VT_DWORD), $(Irq)},+ ; Interrupt for EtherEZ modem {ExternallyConfiguredModem , $(NoTitle), $(!REG_VT_DWORD), 1},+ {PortAddress, $(NoTitle),$(!REG_VT_DWORD), $(!p:ModemIOBase)}} ; I/O Base address for EtherEZ Shell $(UtilityInf), AddValueList, $(MyNewSerialHandle), $(NewValueList) CloseRegKey $(MyNewSerialHandle) OpenRegKey $(!REG_H_LOCAL) "" "HARDWARE\DEVICEMAP\SERIALCOMM" $(MAXIMUM_ALLOWED) MyNewSerialHandle Ifstr $(MyNewSerialHandle) == $(KeyNull) OpenRegKey $(!REG_H_LOCAL) "" "HARDWARE\DEVICEMAP" $(MAXIMUM_ALLOWED) SerialKey CreateRegKey $(SerialKey) {"SERIALCOMM",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" MyNewSerialHandle CloseRegKey $(SerialKey) endif SetRegValue $(MyNewSerialHandle) {"EtherEZEthernetModem",$(NoTitle),$(!REG_VT_SZ),$(!p:ModemPort)} CloseRegKey $(MyNewSerialHandle) OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports" $(MAXIMUM_ALLOWED) MyNewSerialHandle Ifstr $(MyNewSerialHandle) == $(KeyNull) OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows NT\CurrentVersion" $(MAXIMUM_ALLOWED) SerialKey CreateRegKey $(SerialKey) {"Ports",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" MyNewSerialHandle CloseRegKey $(SerialKey) endif SetRegValue $(MyNewSerialHandle) {$(!p:ModemPort)":",$(NoTitle),$(!REG_VT_SZ), "9600,n,8,1"} CloseRegKey $(MyNewSerialHandle) ;; nishi ;; Set NewValueList = {{Pcmcia,$(NoTitle),$(!REG_VT_DWORD),1},+ ;; nishi Set NewValueList = {{SoftexPcmcia,$(NoTitle),$(!REG_VT_DWORD),1},+ {AdapterName,$(NoTitle),$(!REG_VT_SZ),$(!AdapterName)},+ {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(Irq)},+ {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(Base)},+ {COMIRQNumber,$(NoTitle),$(!REG_VT_DWORD),$(ModemIrqValue)},+ {COMPort,$(NoTitle),$(!REG_VT_SZ),$(!p:ModemPort)},+ {IoBaseAddress_1,$(NoTitle),$(!REG_VT_DWORD),$(ModemIOBaseValue)},+ {COMIOBase,$(NoTitle),$(!REG_VT_DWORD),$(ModemIOBaseValue)},+ {Function,$(NoTitle),$(!REG_VT_DWORD),$(FunctionValue)},+ {MULTIFUNCTION,$(NoTitle),$(!REG_VT_DWORD),1}} endif ;;Combo-- Shell $(UtilityInf), AddValueList, $(!KeyParameters), $(NewValueList) Set Status = $($R0) ifstr(i) $(Option) == "SMC8020M" OpenRegKey $(!REG_H_LOCAL) "" "HARDWARE\DESCRIPTION\system\PCMCIA PCCARDs" $(MAXIMUM_ALLOWED) MyNewSerialHandle Ifstr $(MyNewSerialHandle) == $(KeyNull) OpenRegKey $(!REG_H_LOCAL) "" "HARDWARE\DESCRIPTION\system" $(MAXIMUM_ALLOWED) SerialKey CreateRegKey $(SerialKey) {"PCMCIA PCCARDs",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" MyNewSerialHandle CloseRegKey $(SerialKey) set NewValueList = {{SMC8020M,$(NoTitle),$(!REG_VT_MULTI_SZ),$(MyList)}} Shell $(UtilityInf), AddValueList, $(MyNewSerialHandle), $(NewValueList) CloseRegKey $(MyNewSerialHandle) endif endif ifstr(i) $(Option) == "SMC8020" Shell "" SetUpPcmcia endif else DeleteRegValue $(!KeyParameters) "Pcmcia" DeleteRegValue $(!KeyParameters) "IoBaseAddress" DeleteRegValue $(!KeyParameters) "InterruptNumber" endif CloseRegKey $(!KeyParameters) Ifstr(i) $(Status) != NO_ERROR Shell $(UtilityInf) RegistryErrorString $(Status) Shell "" ShellError $($R0) Return FALSE endif Return TRUE [ShellError] read-syms DialogConstants$(!STF_LANGUAGE) read-syms FileConstants$(!STF_LANGUAGE) set DlgType = "MessageBox" set STF_MB_TITLE = $(FunctionTitle) set STF_MB_TEXT = $($0) set STF_MB_TYPE = 1 set STF_MB_ICON = 3 set STF_MB_DEF = 1 ifstr(i) $(STF_MB_TEXT) == "" set STF_MB_TEXT = "Unknown Error" endif ui start "Error Message" Return [Install-Option] set STF_VITAL = "" ifstr(i) $(AddCopy) == "YES" AddSectionFilesToCopyList Files-SMC9000 $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH) endif ifstr(i) $(DoCopy) == "YES" set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList endif Exit [Install-Update] set STF_VITAL = "" set STF_OVERWRITE = "VERIFYSOURCEOLDER" AddSectionFilesToCopyList Files-SMC9000 $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH) ;; AddSectionFilesToCopyList Files-SMCncdet $(SrcDir) $(!STF_WINDOWSSYSPATH) set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList exit [Install-Detection-Dll] LibraryProcedure STATUS,$(!LIBHANDLE), CopySingleFile $(SrcDir)"\SMCncdet.dll" $(!STF_WINDOWSSYSPATH)"\SMCncdet.dll" exit [PrepareDetectionDll] read-syms GeneralConstants read-syms FileConstants read-syms FileConstants$(!STF_LANGUAGE) Set NewDllName = $($0) set SrcDir = $(!p:SrcDir) Set Status = STATUS_FAILED Set DllValueName = "NetcardDlls" ifstr(i) $(SrcDir) != "" Split-String $(SrcDir) "\" TempList QueryListSize ListSize $(TempList) ifstr(i) *($(TempList), $(ListSize)) != "\" set SrcDir = $(SrcDir)"\" endif endif OpenRegKey $(!REG_H_LOCAL) "" "System\Setup" $(MAXIMUM_ALLOWED) KeySetup Ifstr(i) $(KeySetup) == $(KeyNull) Debug-Output "System\Setup key is NULL" Goto PDD_Return Endif Set DllFound = 0 GetRegValue $(KeySetup) $(DllValueName) DllNamesValue Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "LastError != Success" Shell $(UtilityInf),RegistryErrorString,$(RegLastError) Shell "" FatalError $($R0) Goto PDD_Return Endif Set DllNames = *($(DllNamesValue),4) ForListDo $(DllNames) Ifstr(i) $($) == $(NewDllName) Set DllFound = 1 Endif EndForListDo Ifint $(DllFound) == 0 Set DllNames = >($(DllNames),$(NewDllName)) Set ValueInfo = {$(DllValueName), $(NoTitle), $(!REG_VT_MULTI_SZ), $(DllNames)} SetRegValue $(KeySetup) $(ValueInfo) Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Shell "" SetCopy "YES" $(AddCopy) $(SrcDir) "Install-Detection-Dll" Shell $(ParamInf) Param_ControlDetection DTEND Shell $(ParamInf) Param_ControlDetection DTSTART Set Status = STATUS_SUCCESSFUL Else Shell $(UtilityInf),RegistryErrorString,$(RegLastError) Shell "" FatalError $($R0) Endif Else set Status = STATUS_SUCCESSFUL Endif CloseRegKey $(KeySetup) PDD_Return = + Debug-Output "Status from PrepareDetectionDll = "$(Status) Return $(Status) [FatalError] read-syms FileConstants ifstr(i) $($0) == "" set Message = "Unknown Error" else set Message = $($0) endif Shell $(SubroutnInf) SetupMessage $(!STF_LANGUAGE) FATAL $(Message) Return [VerifyError] read-syms FileConstants ifstr(i) $($0) == "" set Message = "Unknown Error" else set Message = $($0) endif Shell $(SubroutnInf) SetupMessage $(!STF_LANGUAGE) WARNING $(Message) Return $($R1) [WarnError] read-syms FileConstants ifstr(i) $($0) == "" set Message = "Unknown Error" else set Message = $($0) endif Shell $(SubroutnInf) SetupMessage $(!STF_LANGUAGE) NONFATAL $(Message) Return [DebugControl] set !DebugOutputControl = 1 return [SetUpPcmcia] Read-Syms GeneralConstants Read-Syms PcmciaKeys Debug-Output "Opening PCMCIA DataBase" OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaPath) $(MAXIMUM_ALLOWED) PcmciaKey IfStr(i) $(PcmciaKey) == $(KeyNull) Debug-Output "Failed to open "$(PcmciaPath) Shell "" FatalError "Cannot Open PCMCIA Registry DataBase!" Return FALSE EndIf Debug-Output "Opening SMC Key" Debug-Output "SMCPcmciaPath "$(SMCPcmciaPath) OpenRegKey $(!REG_H_LOCAL) "" $(SMCPcmciaPath) $(MAXIMUM_ALLOWED) SMCPcmciaKey IfStr(i) $(SMCPcmciaKey) == $(KeyNull) Debug-Output "Open failed - creating key" CreateRegKey $(PcmciaKey) {"SMC", 0, 0 } "" $(MAXIMUM_ALLOWED) "" SMCPcmciaKey IfStr(i) $(SMCPcmciaKey) == $(KeyNull) Debug-Output "Failed to create SMC key" Shell "" FatalError "Cannot Create SMC Key in Registry DataBase PCMCIA!" CloseRegKey $(PcmciaKey) Return FALSE EndIf EndIf Debug-Output "Opening SMC 8020 key = "$(SMC8020Path) OpenRegKey $(!REG_H_LOCAL) "" $(SMC8020Path) $(MAXIMUM_ALLOWED) SMC8020Key IfStr(i) $(SMC8020Key) == $(KeyNull) Debug-Output "Open failed - creating key" CreateRegKey $(SMCPcmciaKey) {$(CardKeyName), 0, 0 } "" $(MAXIMUM_ALLOWED) "" SMC8020Key IfStr(i) $(SMC8020Key) == $(KeyNull) Shell "" FatalError "Cannot Create SMC 8020 Key in Registry DataBase PCMCIA!" CloseRegKey $(SMCPcmciaKey) CloseRegKey $(PcmciaKey) Return FALSE EndIf EndIf Debug-Output "Writing Driver Keyword" SetRegValue $(SMC8020Key) {Driver, 0, $(!REG_VT_SZ), "SMC8020"} CloseRegKey $(SMC8020Key) CloseRegKey $(SMCPcmciaKey) CloseRegKey $(PcmciaKey) Debug-Output "All done with SetUpPcmcia" return TRUE ;;Combo++ [CustomMessageDlg] DlgType = "MessageBox" STF_MB_TITLE = "SMC EtherEZ PC Card+Modem (SMC8020BTM) Adapter Setup" STF_MB_TEXT = "Ethernet and Modem will be removed together" STF_MB_TYPE = 1 STF_MB_ICON = 1 STF_MB_DEF = 1 ;;Combo-- [SetUpMulti] Read-Syms GeneralConstants Read-Syms PcmciaKeysSMC8020M Debug-Output "Opening PCMCIA DataBase" OpenRegKey $(!REG_H_LOCAL) "" $(PcmciaPath) $(MAXIMUM_ALLOWED) PcmciaKey IfStr(i) $(PcmciaKey) == $(KeyNull) Debug-Output "Failed to open "$(PcmciaPath) Shell "" FatalError "Cannot Open PCMCIA Registry DataBase!" Return FALSE EndIf Debug-Output "Opening SMC Key" Debug-Output "SMCPcmciaPath "$(SMCPcmciaPath) OpenRegKey $(!REG_H_LOCAL) "" $(SMCPcmciaPath) $(MAXIMUM_ALLOWED) SMCPcmciaKey IfStr(i) $(SMCPcmciaKey) == $(KeyNull) Debug-Output "Open failed - creating key" CreateRegKey $(PcmciaKey) {"SMC", 0, 0 } "" $(MAXIMUM_ALLOWED) "" SMCPcmciaKey IfStr(i) $(SMCPcmciaKey) == $(KeyNull) Debug-Output "Failed to create SMC key" Shell "" FatalError "Cannot Create SMC Key in Registry DataBase PCMCIA!" CloseRegKey $(PcmciaKey) Return FALSE EndIf EndIf Debug-Output "Opening SMC 8020 key = "$(SMC8020Path) OpenRegKey $(!REG_H_LOCAL) "" $(SMC8020Path) $(MAXIMUM_ALLOWED) SMC8020Key IfStr(i) $(SMC8020Key) == $(KeyNull) Debug-Output "Open failed - creating key" CreateRegKey $(SMCPcmciaKey) {$(CardKeyName), 0, 0 } "" $(MAXIMUM_ALLOWED) "" SMC8020Key IfStr(i) $(SMC8020Key) == $(KeyNull) Shell "" FatalError "Cannot Create SMC 8020 Key in Registry DataBase PCMCIA!" CloseRegKey $(SMCPcmciaKey) CloseRegKey $(PcmciaKey) Return FALSE EndIf EndIf Debug-Output "Writing Driver Keyword" SetRegValue $(SMC8020Key) {Driver, 0, $(!REG_VT_SZ), "SMC8020M"} CloseRegKey $(SMC8020Key) CloseRegKey $(SMCPcmciaKey) CloseRegKey $(PcmciaKey) Debug-Output "All done with SetUpPcmcia" return TRUE ; -------------------------- BEGIN FORCE FIX - SHRADHA [install-update-modem-info] OpenRegKey $(!REG_H_LOCAL) "" $(ZZZComPort) $(MAXIMUM_ALLOWED) + ZZZHandle ifstr $(ZZZHandle) == $(KeyNull) Debug-Output "<DBG: FORCE> OpenRegKey "$(ZZZComPort)" failed" goto done_update_modem_info endif Debug-Output "<DBG: FORCE> GetRegValue DosDevices" GetRegValue $(ZZZHandle) "DosDevices" DosDevicesValue set DosDevicesValueType = *($(DosDevicesValue), 3) set DosDevicesValueData = *($(DosDevicesValue), 4) ifint $(DosDevicesValueType) != $(!REG_VT_SZ) Debug-Output + "<DBG: FORCE> Bad DosDevices "$(ZZZComPort)" "$(DosDevicesValue) goto done_update_modem_info endif GetRegValue $(ZZZHandle) "PortAddress" PortAddressValue set PortAddressValueType = *($(PortAddressValue), 3) set PortAddressValueData = *($(PortAddressValue), 4) ifint $(PortAddressValueType) != $(!REG_VT_DWORD) Debug-Output + "<DBG: FORCE> Bad PortAddress "$(ZZZComPort)" "$(PortAddressValue) goto done_update_modem_info endif GetRegValue $(ZZZHandle) "Interrupt" InterruptValue set InterruptValueType = *($(InterruptValue), 3) set InterruptValueData = *($(InterruptValue), 4) ifint $(InterruptValueType) != $(!REG_VT_DWORD) Debug-Output + "<DBG: FORCE> Bad Interrupt "$(ZZZComPort)" "$(InterruptValue) goto done_update_modem_info endif ; now update the correct modem info Debug-Output + "<DBG: FORCE> "$(DosDevicesValueData)": iobase = "$(PortAddressValueData)", irq = "$(InterruptValueData) ifstr(i) $(DosDevicesValueData) == "COM1" set comNumber = 1 else-ifstr(i) $(DosDevicesValueData) == "COM2" set comNumber = 2 else-ifstr(i) $(DosDevicesValueData) == "COM3" set comNumber = 3 else-ifstr(i) $(DosDevicesValueData) == "COM4" set comNumber = 4 else goto done_update_modem_info endif set-dectohex PortAddressValueDataHex = $(PortAddressValueData) set-dectohex InterruptValueDataHex = $(InterruptValueData) Debug-Output + "<DBG: FORCE> PortAddressValueDataHex = "$(PortAddressValueDataHex) Debug-Output + "<DBG: FORCE> InterruptValueDataHex = "$(InterruptValueDataHex) ; Since the ModemIOBaseList and ModemIrqList in ; this inf file are not starting from COM1 and going ; to COM4 in order, we need to determine the correct ; index for this COM number ;Debug-Output "<DBG: FORCE> comNumber = "$(comNumber) ForListDo $(ModemPortValues) ;Debug-Output "<DBG: FORCE> item number "$(#)" is "$($) ifint $($) == $(comNumber) set itemNumberToReplace = $(#) endif EndForListDo Debug-Output "<DBG: FORCE> itemNumberToReplace = "$(itemNumberToReplace) ; ; Change ModemIOBaseList ; set oldList = $(ModemIOBaseList) set newData = $(PortAddressValueDataHex) set return_addr = replace_modem_io_base goto replace_list_item replace_modem_io_base = + set ModemIOBaseList = $(newList) ; ; Update ModemIrqList by adding irq mentioned in ZZZ entry ; (provided it is not already there) ; ifcontains(i) $(InterruptValueData) not-in $(ModemIrqList) set ModemIrqList = >($(ModemIrqList), $(InterruptValueData)) endif done_update_modem_info = + ifstr $(ZZZHandle) != $(KeyNull) CloseRegKey $(ZZZHandle) endif exit replace_list_item = + ; ; INPUT: needs the following variables to be initialized ; - oldList ; - itemNumberToReplace ; - newData ; - return_addr (i.e. label to jump back to) ; OUTPUT: returns with the newList initialized ; ;Debug-Output "<DBG: FORCE> Replacing item number "$(itemNumberToReplace)" in the list "$(oldList)" with the data "$(newData) set newList = {} ForListDo $(oldList) ifint $(#) == $(itemNumberToReplace) set newList = >($(newList), $(newData)) else set newList = >($(newList), $($)) endif EndForListDo goto $(return_addr) ;-------------------------- END FORCE FIX - SHRADHADownload Driver Pack
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.