OEMSETUP.INF Driver File Contents (hpna001h.exe)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;          AMD PCnet-Home Based Adapter Driver 
;                     Version  2.1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[Identification]
    OptionType = NetAdapter

[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]
;==============================================
; setup passes the following parameters to the section:
;   Language to use
;   OptionID to Install
;   SourceDirectory
;   AddCopy  (yes | no)
;   DoCopy   (yes | no)
;   DoConfig (yes | no)
;=============================================

    set Status   = STATUS_FAILED
    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 GeneralConstants
    read-syms FileConstants
    read-syms FileConstants$(!STF_LANGUAGE)
    read-syms DialogConstants$(!STF_LANGUAGE)
    ifstr(i) $(!NTN_Origination) == "NCPA"
	set Continue = $(OK)
    endif
    detect date
    set-title  $(FunctionTitle)
    set to   = Begin
    set from = Begin
    set CommonStatus = STATUS_SUCCESSFUL

    Set !DebugOutputControl = 1

    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 StartLabel = configureadapter
	Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
	    Debug-Output "Cannot configure the PCnet family 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 StartLabel = installadapter
	set OEM_ABANDON_OPTIONS = {}
	set OEM_ABANDON_SOFTWARE = FALSE
	set OEM_ABANDON_ON = TRUE
    endif
    set HomeLan = *($(HomeLanList), 1)
    set ExtPhy = *($(ExtPhyList), 1)
    set PhySelected = *($(PhyList), 1)
    Debug-Output $(PhyList)",before start install"

    Set from = $(fatal)
    Set to = $(fatal)
    Goto $(StartLabel)
installadapter = +
    Debug-Output "==>installadapter"
    set Vendor = 4130
    set CardID = 8193
;    set CardID = 8192
    Shell $(UtilityInf), GetPCIInformation, $(Vendor) $(CardID)
    ifint $($ShellCode) != $(!SHELL_CODE_OK)
	goto ShellCodeError
    endif
    set AdapterList = $($R0)
    set NewAdapterList = {}
    set NumNew = 0
    ForListDo $(AdapterList)
	set BusNumber = *($($),1)
	set SlotNum = *($($),2)
	Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNumber), +
	$(SlotNum), $(GenericPCIAdapterName), $(ProductHardwareName)
	ifstr(i) $($R1) != "YES"
	    set-add NumNew = $(NumNew),1
	    ifstr(i) $(NewAdapterList) == {}
		set NewAdapterList = {$($)}
	    else
		set NewAdapterList = >($(NewAdapterList),$($))
	    endif
	endif
    EndForListDo

    set AdapterList = $(NewAdapterList)

    ifint $(NumNew) == 0
	set AdapterList = {{0,0,0}}
    endif
    Debug-Output $(AdapterList)
    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"
		goto end
	    endif
	    set OldVersionExisted = $(TRUE)
	endif
    endif

    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
    goto adaptersetup
configureadapter = +
    Debug-Output "==>configureadapter"
    SetHelpFile "pcnethl.hlp" 1 5
    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) == "HomeLan"
	    set HomeLanValue = $(ValueData)
	else-ifstr(i) $(ValueName) == "EXTPHY"
	    set ExtPhyValue = $(ValueData)
	else-ifstr(i) $(ValueName) == "PhySelected"
	    set PhySelectedValue = $(ValueData)
	endif
    EndForListDo

;; External PHY setting
    set ExtPhyValue = *($(ExtPhyList), ~($(ExtPhyValues),$(ExtPhyValue)))
    ifstr(i) $(ExtPhyValue) == ""
	set ExtPhyValue = *($(ExtPhyList), 1)
    endif
    Debug-Output $(InfName)" MII mode is "$(ExtPhyValue)

;; HomeLan setting 
    set HomeLanValue = *($(HomeLanList), ~($(HomeLanValues),$(HomeLanValue)))
    ifstr(i) $(HomeLanValue) == ""
	set HomeLanValue = *($(HomeLanList), 1)
    endif
    Debug-Output $(InfName)" HomeLan mode is "$(HomeLanValue)

    set PhySelectedValue = *($(PhyList), ~($(PhySelectedValues),$(PhySelectedValue)))
    ifstr(i) $(PhySelectedValue) == ""
	set PhySelectedValue = *($(PhyList), 1)
    endif
    Debug-Output $(InfName)" PhySelected is "$(PhySelectedValue)

    LoadLibrary "Disk 1" .\$(DialogDllName) hLib
    read-syms FileDependentDlgPCI$(!STF_LANGUAGE)
    Debug-Output $(InfName)" External Phy is "$(ExtPhyValue)
    Debug-Output $(InfName)" HomeLan is "$(HomeLanValue)
    Debug-Output $(InfName)" PhySelected is "$(PhySelectedValue)
    ui start "Inputdlg" $(hLib)
    set ExitButton      = $(ButtonPressed)
    Debug-Output " ButtonPressed "$(ButtonPressed)
    Debug-Output $(DLGEVENT)
    FreeLibrary $(hLib)
    ifstr(i) $(DLGEVENT) == "CONTINUE"
	set HomeLanValue = $(Combo1Out)
	set ExtPhyValue = $(Combo2Out)
	set PhySelectedValue = $(Combo3Out)
	set ExitButton = $(ButtonPressed)
	Debug-Output $(InfName)" CheckItemsOut is "$(CheckItemsOut)

	ui pop 1
    else-ifstr(i) $(DLGEVENT) == "EXIT"
	set CommonStatus = STATUS_USERCANCEL
	Debug-Output "Action: exit. Bye."
	ui pop 1
	goto end
    else
	ui pop 1
	Debug-Output "Action: unknown. Bye."
	goto end
    endif
	Debug-Output " Combo list out "$(ComboListItemsOut)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
adaptersetup = +
    Set from = adapteroptions

adapteroptions = +
    Debug-Output "==>adapteroptions"
    ifint $(OldVersionExisted) == $(TRUE)
	ifstr(i) $(!NTN_InstallMode) == configure
	    Debug-Output "Oldversion exist and InstallMode == configure"

            Shell $(UtilityInf), GetBusTypeNum
            set BusTypeNum = $($R1)
            set BusNumberValue = 0 
            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                Debug-Output "ShellCode error."
                goto ShellCodeError
            endif
            Debug-Output "before write registry"
            set ExtPhyValue = *($(ExtPhyValues), ~($(ExtPhyList),$(ExtPhyValue)))
            set HomeLanValue = *($(HomeLanValues), ~($(HomeLanList),$(HomeLanValue)))
            set PhySelectedValue = *($(PhySelectedValues), ~($(PhyList),$(PhySelectedValue)))
            set NewValueList = {{HomeLan,  $(NoTitle),$(!REG_VT_DWORD),$(HomeLanValue)},+
                        {EXTPHY,  $(NoTitle),$(!REG_VT_DWORD),$(ExtPhyValue)},+
                        {PhySelected,  $(NoTitle),$(!REG_VT_DWORD),$(PhySelectedValue)}}
            Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)

		EndWait
	    goto successful

	    StartWait
	    goto writeparameters
	endif
    endif
    StartWait
    ifint $(OldVersionExisted) == $(FALSE)
	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
	install "Install-Option"
	install "Install-Helpfile"
	install "Install-Dll"
	
	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
    
	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
    Debug-Output "AdapterList "$(AdapterList)

    set OrgExtPhyValue = $(ExtPhyValue)
    set OrgPhySelectedValue = $(PhySelectedValue)
    set OrgHomeLanValue = $(HomeLanValue)

    Debug-Output "OrgPhySelectedValue"$(OrgPhySelectedValue)

    ForListDo $(AdapterList)
	Debug-Output "For Loop Count"
	set BusNumber = *($($),1)
	set DeviceNum = *($($),2)
	set FunctionNum = *($($),3)
	Debug-Output "ProductHardwareName="$(ProductHardwareName)
	Debug-Output "ProductKeyName="$(ProductKeyName)
	Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
	Debug-Output "KeyAdapterRules="$($R2)
	Debug-Output "KeyParameters="$($R3)
	Debug-Output "Adapter Number="$($R4)
	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)
	ifint $(IsISA) == 1
	    set HardwareDescription = $(GenericAdapterName)
	    set HardwareTitle = $(GenericAdapterName)
	else
	    set HardwareDescription = $(GenericPCIAdapterName)
	    set HardwareTitle = $(GenericPCIAdapterName)
	endif
	set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
		   {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(HardwareTitle)},+
		   {Description,$(NoTitle),$(!REG_VT_SZ),$(HardwareDescription)},+
		   {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
		   {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
				   {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)},+
		   {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)
	goto writeparameters
writeparameters = +
	Debug-Output "==>writeparameters"
	Shell $(UtilityInf), GetBusTypeNum
	set BusTypeNum = $($R1)
	set BusNumberValue = 0 
	ifint $($ShellCode) != $(!SHELL_CODE_OK)
	    Debug-Output "ShellCode error."
	    goto ShellCodeError
	endif
	Debug-Output "before write registry"
	set ExtPhyValue = *($(ExtPhyValues), ~($(ExtPhyList),$(OrgExtPhyValue)))
	set PhySelectedValue = *($(PhySelectedValues), ~($(PhyList),$(OrgPhySelectedValue)))
	set HomeLanValue = *($(HomeLanValues), ~($(HomeLanList),$(OrgHomeLanValue)))

	Debug-Output "PhySelectedValues"$(PhySelectedValues)
	Debug-Output "PhySelectedValue"$(PhySelectedValue)
	
	ifstr(i) $(PhySelectedValue) == ""
	    set PhySelectedValue = *($(PhySelectedValues),1)
	endif
	Debug-Output "PhySelectedValue"$(PhySelectedValue)

	set NewValueList = {{HomeLan,$(NoTitle),$(!REG_VT_DWORD),$(HomeLanValue)},+
		{BusType,$(NoTitle),$(!REG_VT_DWORD),5},+
		{MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
		{EXTPHY,  $(NoTitle),$(!REG_VT_DWORD),$(ExtPhyValue)},+
		{PhySelected,  $(NoTitle),$(!REG_VT_DWORD),$(PhySelectedValue)},+
		{AdapterCFID,$(NoTitle),$(!REG_VT_DWORD),536940578},+
		{SlotNumber, $(NoTitle),$(!REG_VT_DWORD),$(DeviceNum)},+
		{BusNumber,  $(NoTitle),$(!REG_VT_DWORD),$(BusNumber)}}
	Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
	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

    EndForListDo
    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
    goto end
UpgradeSoftware = +
    set DlgType      = "MessageBox"
    set STF_MB_TITLE = "AMDDLG.DLL"
    set STF_MB_TEXT  = "Update is not supported. Please remove the installed driver, then install this new driver."
    set STF_MB_TYPE  = 1
    set STF_MB_ICON  = 3
    set STF_MB_DEF   = 1
    ui start "Error Message"
    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)

[Source Media Descriptions]
    1 = "HomeLan Driver Disk"

[PlatformsSupported]
    PCI

[Options]
    AMDPCI

[FileConstants]
    GenericInfVersion  = " v1.01"
    GenericSysName     = "pcntn4hl.sys"
    GenericName        = "PCnetHL"
    UtilityInf      = "UTILITY.INF"
    ParamInf        = "NCPARAM.INF"
    subroutineinf   = "SUBROUTN.INF"
    SoftwareType    = "driver"
    Exit_Code       = 0
    NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
    IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
    Manufacturer    = "Microsoft"
    ProductMajorVersion     = "4"
    ProductMinorVersion     = "0"
    ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
    ProductSoftwareName     = "PCnetHL"
    ProductSoftwareImagePath = "\SystemRoot\System32\drivers\"$(GenericSysName)
    NetRuleSoftwareType     = "PCnetHLSys ndisDriver PCnetHLDriver"
    NetRuleSoftwareUse      = $(SoftwareType)
    NetRuleSoftwareBindForm = """PCnetHLSys"" yes no container"
    NetRuleSoftwareClass    = {"PCnetHLDriver basic"}
    NetRuleSoftwareBindable = {"PCnetHLDriver PCnetHLAdapter non exclusive 100"}
    ProductHardwareName        = "PCnetHL"
    NetRuleHardwareType        = "PCnetHL PCnetHLAdapter"
    NetRuleHardwareBindForm    = " yes yes container"
    NetRuleHardwareClass       = {"PCnetHLAdapter basic"}
    ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
    ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
    ProductOpSupport = 134
[GeneralConstants]
    from      = ""
    to        = ""
    ExitCodeOk     = 0
    ExitCodeCancel = 1
    ExitCodeFatal  = 2
    KeyNull         = ""
    MAXIMUM_ALLOWED   = 33554432
    RegistryErrorIndex = NO_ERROR
    KeyProduct      = ""
    KeyParameters   = ""
    TRUE            = 1
    FALSE           = 0
    NoTitle         = 0
    ExitState   = "Active"
    OldVersionExisted = $(FALSE)
    DriverPath      = $(!STF_NTPATH)\drivers
[date]
    Now = {} ? $(!LIBHANDLE) GetSystemDate
[Identify]
    read-syms Identification
    set Status     = STATUS_SUCCESSFUL
    set Identifier = $(OptionType)
    set Media      = #("Source Media Descriptions", 1, 1)
    Return $(Status) $(Identifier) $(Media)
[DebugConfiguration]
    Set InfName = "OEMNADAM.INF"
    Debug-Output $(InfName)" **CONFIGURATION STATE: "$($0)
    Debug-Output $(InfName)" IRQ_Level is "$(!p:IRQ_Level)
    Debug-Output $(InfName)" IOBaseAddrValue is "$(!p:IOBaseAddrValue)
    return
[Install-Option]
    set STF_VITAL = ""
    ifstr(i) $(AddCopy) == "YES"
    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
    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-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
   AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
   AddSectionFilesToCopyList Files-hlp $(SrcDir) $(!STF_WINDOWSSYSPATH)
   set !STF_NCPA_FLUSH_COPYLIST = TRUE
   CopyFilesInCopyList
   exit
[Install-Helpfile]
   Debug-Output "At Install-Helpfile"
   set STF_VITAL        = ""
   set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
   ifstr(i) $(AddCopy) == "YES"
       AddSectionFilesToCopyList Files-hlp $(SrcDir) $(!STF_WINDOWSSYSPATH)
   endif
   ifstr(i) $(DoCopy) == "YES"
      set !STF_NCPA_FLUSH_COPYLIST = TRUE
      CopyFilesInCopyList
   endif
   exit
[Install-Dll]
   set STF_VITAL        = ""
   ifstr(i) $(AddCopy) == "YES"
       AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
   endif
   ifstr(i) $(DoCopy) == "YES"
       set !STF_NCPA_FLUSH_COPYLIST = TRUE
       CopyFilesInCopyList
   endif
   exit
[Signature]
    FileType = MICROSOFT_FILE
[GetSignature]
    read-syms Signature
    return $(FileType)
[ProductType]
    STF_PRODUCT  = Winnt
    STF_PLATFORM = I386
[Files-Inf]
    2,  oemsetup.inf,    SIZE=1000, RENAME=$(!UG_Filename)
[Files-AMDPCI]
    1,pcntn4hl.SYS , SIZE=29296
[Files-Dll]
    1,AMDHLDLG.DLL , SIZE=6656
[Files-hlp]
    1,PCNETHL.HLP , SIZE=11759
[LanguagesSupported]
    ENG
[OptionsTextENG]
    AMDPCI     = "AMD PCnet-HOME dapter"
[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:"
    GenericAdapterName = "AMD PCnet-HOME Adapter"
    GenericPCIAdapterName = "AMD PCnet-HOME Adapter"
    GenericDriverName  = "AMD PCnet-HOME Adapter Driver"
    ProductSoftwareDescription = $(GenericDriverName)
    ProductHardwareDescription = $(GenericAdapterName)
    ProductHardwarePCnetHLDescription="AMD PCnet Family Driver"
    ProductSoftwareTitle =       $(GenericDriverName)
    ProductHardwarePCnetHLTitle = $(GenericAdapterName)
    DialogDllName   = "amdhldlg.dll"
    ExtPhyList = ^(ExtPhyChoices,1)
    ExtPhyValues = ^(ExtPhyChoices,2)
	 PhyList = ^(PhyChoices,1)
    PhySelectedValues = ^(PhyChoices,2)
    HomeLanList = ^(HomeLanChoices,1)
    HomeLanValues = ^(HomeLanChoices,2)

[DialogConstantsENG]
    Help        = "&Help"
    Exit        = "Cance&l"
    OK          = "&OK"
    HelpContext = ""
    Continue    = "C&ontinue"
    Cancel      = "&Cancel"
[MemoryMappedChoicesENG]
    Map_1 = 1, "ON"
    Map_2 = 0, "OFF"
[FileDependentDlgPCIENG]
    FunctionTitle   = $(GenericPCIAdapterName)$(GenericInfVersion)
    DlgText = "Please select values for the following fields:"
    Combo1Label = "&Phone Line Config:"
    Combo2Label = "&Ethernet Config:"
    Combo3Label = "&Mode Selection:"
    DlgType = "RadioCombination"
    DlgTemplate = "PCnetHL"
    Caption = $(FunctionTitle)
    CBOptionsGreyed = {}
    NotifyFields = {NO, NO}
    HelpContext = 1
    Combo1List = $(HomeLanList)
    Combo1Out  = $(HomeLanValue)
    Combo2List = $(ExtPhyList)
    Combo2Out  = $(ExtPhyValue)
    Combo3List = $(PhyList)
    Combo3Out  = $(PhySelectedValue)
    ComboListItemsIn  = {Combo1List, Combo2List, Combo3List}
    ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out}
    EditTextIn = ""
    EditTextLim = ""
[ExtPhyChoices]
    EXTPHY_1 = "Auto Detect", 127
    EXTPHY_2 = "10Mb H.D.", 1
    EXTPHY_3 = "10Mb F.D.", 2
[HomeLanChoices]
    HomeLan_1 = "Auto Config",0
;    HomeLan_2 = "Auto (HPHS)",1
    HomeLan_2 = "LowPower/HighSpeed", 9
    HomeLan_3 = "HighPower/HighSpeed", 5
    HomeLan_4 = "HighPower/LowSpeed", 6
[PhyChoices]
    PHY_1 = "Auto Detect", 3
    PHY_2 = "Internal Ethernet",0
    PHY_3 = "Phone Line",1
    PHY_4 = "External Ethernet", 2
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: web2, load: 1.45