OEMSETUP.INF Driver File Contents (wnframe.exe)

;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; OEMSETUP.INF - Equinox SST Serial Driver for Windows NT                    ;
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

[Identification]
    OptionType = NetAdapter

[PlatformsSupported]
    ISA
    EISA
    MCA
    PCI

[LanguagesSupported]
    ENG

[Options]
    SST

[FileConstants]
    EQNversion     = "Ver. 4.13 Intel"
    TRUE           = 1
    FALSE          = 0
    ExitState      = "Active"
    UtilityInf     = $(!STF_CWDDIR)"\UTILITY.INF"
				; available subroutines...
				; RegistryErrorString
				; VerExistedDlg
				; CardExistedDlg
				; AssignAdapterNumber
				; DoAskSource
				; AddSoftwareComponent, RemoveSoft...
				; AddValueList
				; AddHardwareComponent, RemoveHardware...
				; IncrementReferenceCount, DecrementRef...
				; MCAFindBus, EISAFindBus
    SubroutnInf    = $(!STF_CWDDIR)"\SUBROUTN.INF"
				; available subroutines...
				; PushBillBoard/PopBillBoard
				; SetupMessage
    HandleNull   = ""
    DGCONFIG_HANDLE = $(HandleNull)
    MAXIMUM_ALLOWED   = 33554432

;------------------

[CustomMessageDlgTemp]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Error"
    STF_MB_TEXT  = "Netcard number is blank"
    STF_MB_TYPE  = 1    ; button set

    STF_MB_ICON  = 3    ; stop icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg1]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Error"
    STF_MB_TEXT  = "NT install subroutines unavailable. (1)"
    STF_MB_TYPE  = 1    ; button set

    STF_MB_ICON  = 3    ; stop icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg2]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Error"
    STF_MB_TEXT  = "NT install subroutines unavailable. (2)"
    STF_MB_TYPE  = 1    ; button set

    STF_MB_ICON  = 3    ; stop icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg3]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Error"
    STF_MB_TEXT  = "NT install subroutines unavailable. (3)"
    STF_MB_TYPE  = 1    ; button set

    STF_MB_ICON  = 3    ; stop icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg4]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Information"
    STF_MB_TEXT  = "You must shutdown and re-boot before changes will take effect"
    STF_MB_TYPE  = 1    ; OK button
    STF_MB_ICON  = 2    ; information icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg5]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Information"
    STF_MB_TEXT  = "The SNMP Extension Agent cannot be installed; the SNMP service is not installed. To enable the extension services, the SNMP service must be installed first. Remember: Any Service Packs must be re-applied AFTER component additions."
    STF_MB_TYPE  = 1    ; OK button
    STF_MB_ICON  = 2    ; information icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg6]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Information"
    STF_MB_TEXT  = "Could not create an SNMP service Registry entry."
    STF_MB_TYPE  = 1    ; OK button
    STF_MB_ICON  = 2    ; information icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg7]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Information"
    STF_MB_TEXT  = "Could not open base service key."
    STF_MB_TYPE  = 1    ; OK button
    STF_MB_ICON  = 2    ; information icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg8]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Information"
    STF_MB_TEXT  = "Could not open the main binding registry key"
    STF_MB_TYPE  = 1    ; OK button
    STF_MB_ICON  = 2    ; information icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg9]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Information"
    STF_MB_TEXT  = "Could not open the binding registry key"
    STF_MB_TYPE  = 1    ; OK button
    STF_MB_ICON  = 2    ; information icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg10]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Information"
    STF_MB_TEXT  = "Could not open the 1st binding registry subkey"
    STF_MB_TYPE  = 1    ; OK button
    STF_MB_ICON  = 2    ; information icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg11]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Information"
    STF_MB_TEXT  = "GetValue registry error occurred"
    STF_MB_TYPE  = 1    ; OK button
    STF_MB_ICON  = 2    ; information icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg12]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Information"
    STF_MB_TEXT  = "Note: The system file boot.ini has been modified to include the /PCILOCK parameter, please see EquiView Plus Help."
    STF_MB_TYPE  = 1    ; OK button
    STF_MB_ICON  = 2    ; information icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg13]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Information"
    STF_MB_TEXT  = "Here1"
    STF_MB_TYPE  = 1    ; OK button
    STF_MB_ICON  = 2    ; information icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg14]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Information"
    STF_MB_TEXT  = "Could not add the Equinox EV Plus Monitor Service"
    STF_MB_TYPE  = 1    ; OK button
    STF_MB_ICON  = 2    ; information icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg15]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Information"
    STF_MB_TEXT  = "Could not add the Equinox TFTP Installtion Key"
    STF_MB_TYPE  = 1    ; OK button
    STF_MB_ICON  = 2    ; information icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg16]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Information"
    STF_MB_TEXT  = "Invalid path name for TFTP Trace files."
    STF_MB_TYPE  = 1    ; OK button
    STF_MB_ICON  = 2    ; information icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlg17]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Information"
    STF_MB_TEXT  = "Could not remove TFTP Installation Key."
    STF_MB_TYPE  = 1    ; OK button
    STF_MB_ICON  = 2    ; information icon
    STF_MB_DEF   = 1    ; default button

[CustomMessageDlgx]
DlgType = "MessageBox"
    STF_MB_TITLE = "Equinox Install Error"
    STF_MB_TEXT  = "NT install subroutines unavailable. (x)"
    STF_MB_TYPE  = 1    ; button set

    STF_MB_ICON  = 3    ; stop icon
    STF_MB_DEF   = 1    ; default button

; -----------------------------------------------------------------------------
; FIRST - "Identify" is the first shell section executed by Setup
; it returns status (STATUS_SUCCESSFUL)
; it returns option type (NetAdapter)
; it returns media (diskette) description

[Identify]
    read-syms DebugOptions
    shell "" DebugExternalGlobals
    Debug-Output $(InfTitl)"[Identify] section"
    read-syms Identification
    read-syms FileConstants
    set Status     = STATUS_SUCCESSFUL
    set Identifier = $(OptionType)
    set Media      = #("Source Media Descriptions", 1, 1)
    Debug-Output $(InfTitl)"[Identify] returning|"$(Status)"|"$(Identifier)"|"$(Media)
    return $(Status) $(Identifier) $(Media)

; required -------------------------------------------------------------------
; SECOND - "ReturnOptions" is the shell section called after "Identify"
; it receives parameter, the language to use (ENG)
; it receives parameter, the bus type (EISA,etc)
; it returns status (STATUS_SUCCESSFUL)
; it returns the name of drivers that can be installed by this .inf file
; it returns text strings for the drivers that can be installed

[ReturnOptions]
    read-syms FileConstants
    read-syms DebugOptions
    Debug-Output $(InfTitl)"[ReturnOption] section|"$($0)"|"$($1)
    set OptionList     = ^(Options, 1)
    set OptionTextList = ^(OptionsTextENG, 1)
    set !BusType        = $($1)  ; '!' makes BusType globally accessable
    set Status = STATUS_SUCCESSFUL
    Debug-Output $(InfTitl)"[ReturnOption] returning|"$(Status)"|"$(OptionList)"|"$(OptionTextList)
    return $(Status) $(OptionList) $(OptionTextList)

; required -------------------------------------------------------------------
; THIRD - "InstallOptions" is the shell section called after "ReturnOptions"
;
; This section is shelled to by main installation processing
; or by NCPASHEL.INF for one of following:
;
;                  install, config, removal, update, bind
;
; INPUT:     $($0):  Language to use
;            $($1):  OptionID to install
;            $($2):  SourceDirectory
;            $($3):  AddCopy  (YES | NO)
;            $($4):  DoCopy   (YES | NO)
;            $($5):  DoConfig (YES | NO)
;
; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL

[InstallOption]
    read-syms DebugOptions
    read-syms FileConstants
;   Debug-Output $(InfTitl)"[InstallOption] section|"$($0)"|"$($1)"|"$($2)"|"$($3)"|"$($4)"|"$($5)"|"$(!NTN_InstallMode)
    Debug-Output $(InfTitl)"[InstallOption] section|"$($0)"|"$($1)"|"$($2)"|"$($3)"|"$($4)"|"$($5)"|"$(!NTN_InstallMode)
    set Option    = $($1)
    set !SourceDir = $($2)
    set AddCopy   = $($3)
    set DoCopy    = $($4)
    set DoConfig  = $($5)

    set LanguageList = ^(LanguagesSupported, 1)
    Ifcontains(i) $($0) NOT-IN $(LanguageList)
	Debug-Output $(InfTitl)"returning STATUS_NO_LANGUAGE"
	return STATUS_NOLANGUAGE
    Endif

;------------------ set reason for call

    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
    else
	set StartLabel = installadapter
    endif

    goto $(StartLabel)

;------------------

removeadapter = +
    Debug-Output $(InfTitl)"label removeadapter"

    shell "subroutn.inf" PushBillBoard NETSTATUSDLG "Removing Equinox SST driver..."
    LoadLibrary "x" $(!STF_CWDDIR)"\eqndll.dll" LIBHANDLE

    LibraryProcedure rslt $(LIBHANDLE) DLLeqninstalled
    Debug-Output $(InfTitl)"DLL eqninstalled returned "$(rslt)

    LibraryProcedure rslt $(LIBHANDLE) DLLeqnrm /noerr
    Debug-Output $(InfTitl)"DLLeqnrm rslt is: "$(rslt)
    LibraryProcedure rslt $(LIBHANDLE) DLLeqnreg /remove
    Debug-Output $(InfTitl)"DLLeqnreg rslt is: "$(rslt)
    FreeLibrary $(LIBHANDLE)
    shell "" RemoveFiles

    ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    ;comment OUT if unattend install
    ;=-=-=-= disable SNMP Extension Agent, start with SOFTWARE key =-=-=-=
     OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Equinox" $(!REG_KEY_ALL_ACCESS) TempKey

     ifstr $(TempKey) != $(KeyNull)
      DeleteRegTree $(TempKey) "SuperSerialAgent"
       CloseRegKey $(TempKey)
     endif

     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\SNMP\Parameters\ExtensionAgents" $(!REG_KEY_ALL_ACCESS) SNMPKeyHndl

     ifstr $(SNMPKeyHndl) != $(KeyNull)
     ;=-=-=-= now do the SNMP branch key =-=-=-=
       set ValueSetData = "SOFTWARE\Equinox\SuperSerialAgent\CurrentVersion"
       set SNMPValueList = {}

       EnumRegValue $(SNMPKeyHndl) SNMPValueList

       set ValueItem = ""
       set ValueData = ""

       ForListDo $(SNMPValueList)
	set ValueItem = $($)                      ;get list element
	 set ValueData = *($(ValueItem), 4)       ;look at data value

	ifstr $(ValueData) == $(ValueSetData)     ;is it our entry?
	 DeleteRegValue $(SNMPKeyHndl) *($(ValueItem),1)  ;yes, delete it
	endif

       EndForListDo
       CloseRegKey $(SNMPKeyHndl)

     endif

	; remove the EQMSTART Service ONLY if the ESP driver is not installed!
	OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Equinox\ESP" $(!REG_KEY_ALL_ACCESS) TempKey
	ifstr $(TempKey) == $(KeyNull)
		Shell $(UtilityInf), RemoveService, "EqmStart", "YES"
		LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_WINDOWSSYSPATH)"\EQMSTART.EXE"
	else
		CloseRegKey $(TempKey)
	endif

    ;to here
    ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

    shell "subroutn.inf" PopBillBoard
    return STATUS_SUCCESSFUL

;------------------

upgradesoftware = +
    Debug-Output $(InfTitl)"label upgradeadapter"
    read-syms ProgressCopyENG
    install "Install-Upgrade"
    ; update SOFTWARE\Equinox\eqn\CurrentVersion\VersionText
    Debug-Output $(InfTitl)"EQNversion: "$(EQNversion)
    set ProductKeyName  = $(!NTN_SoftwareBase)"\Equinox\eqn\CurrentVersion"
    OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
    ifstr $(KeyProduct) == $(KeyNull)
	Debug-Output $(InfTitl)"Unable to open "$(ProductKeyName)
    else
	set VERlist = { "VersionText", 0, $(!REG_VT_EXPAND_SZ), $(EQNversion) }
	SetRegValue $(KeyProduct) $(VERlist)
	CloseRegKey $(KeyProduct)
    endif

   ;=-=-=-=-= change originally bound inf file for upgrade inf file =-=-=-=-=
    OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\eqn\Parameters" $(!REG_KEY_ALL_ACCESS) OEMKey
    ifstr $(OEMKey) != $(KeyNull)
     GetRegValue $(OEMKey) "EQNnetcard" OEMlist
      set OEMnetcard = *($(OEMlist),4)
	CloseRegKey $(OEMKey)

     set BindPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards"
     ;=-=-= open main bind key =-=-=
     OpenRegKey $(!REG_H_LOCAL) "" $(BindPath) $(!REG_KEY_ALL_ACCESS) BPKeyHndl
     ifstr $(BPKeyHndl) != $(KeyNull)

      EnumRegKey $(BPKeyHndl) BPValueList       ;enumerate all sub keys into list

       set ValueItem = ""
       set ValueName = ""
       set ValueData = ""

      ForListDo $(BPValueList)
       set ValueItem = $($)                      ;get list element
	set ValueName = *($(ValueItem), 1)       ;look at keyname
       ;=-=-= open 1st bind sub key =-=-=
       OpenRegKey $(BPKeyHndl) "" $(ValueName) $(!REG_KEY_ALL_ACCESS) BPSub1KeyHndl
       ifstr $(BPSub1KeyHndl) != $(KeyNull)
	;=-=-=-= get the "Manufacturer" value name =-=-=-=
	GetRegValue $(BPSub1KeyHndl) "Manufacturer" Valuedatalist
	 ifstr $(RegLastError) == $(!REG_ERROR_SUCCESS)
	  set ValueData = *($(Valuedatalist), 4)
	  ;=-=-= test if it is our entry =-=-=-=
	  ifstr(i) $(ValueData) == "Equinox"
	   ;=-=-= open 2nd bind sub key =-=-=
	   OpenRegKey $(BPSub1KeyHndl) "" "NetRules" $(!REG_KEY_ALL_ACCESS) BPValueHndl
	   ifstr $(BPValueHndl) != $(KeyNull)
	    set NewBPValue = $(!STF_CWDDIR)"oemnad"$(OEMnetcard)".inf"
	     set BPValue = {"InfName",0,$(!REG_VT_SZ),$(NewBPValue)}
	      SetRegValue $(BPValueHndl) $(BPValue)
	       CloseRegKey $(BPValueHndl)
	   else
	    read-syms CustomMessageDlg9       ; load "CustomMessageDlgxx template
	     ui start "CustomMessageBox"      ; display dialog box
	   endif
	  endif                               ;ENDif our "Equinox" entry
	 else
	  read-syms CustomMessageDlg11      ; load binding GetValue error template
	   ui start "CustomMessageBox"      ; display dialog box
	 endif                                ;ENDif LastError OK
	CloseRegKey $(BPSub1KeyHndl)
       else
	read-syms CustomMessageDlg10       ; load template
	 ui start "CustomMessageBox"       ; display dialog box
       endif                               ;ENDif Subkey1 opened
      EndForListDo

      CloseRegKey $(BPKeyHndl)
     else
      read-syms CustomMessageDlg8       ; load couldn't open main bind key template
       ui start "CustomMessageBox"      ; display dialog box
     endif                              ;ENDif main bind path opened
    endif                               ;ENDif OEMkey opened

    ;=-=-=-=-=-= pop up Configuration message box if necessary =-=-=-=-=-=
     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\eqn\Parameters" $(!REG_KEY_ALL_ACCESS) ParmKey

     ifstr $(ParmKey) != $(KeyNull)       ;did we open the key?
     ;=-=-= driver has been installed, see if SNMP Extension Agent installed =-=-=
      GetRegValue $(ParmKey) "SNMPState" Statelist

      ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
       ;=-=-= SNMP Extension Agent NOT installed =-=-=
	shell "" ConfigShell
      endif
      CloseRegKey $(ParmKey)
     endif

     ; Check to see if the TFTP key is defined and if not, pop config

     OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Equinox\TFTP" $(!REG_KEY_ALL_ACCESS) ParmKey
     ifstr $(ParmKey) != $(KeyNull)       ;did we open the key?
      GetRegValue $(ParmKey) "SecurePath" Statelist

      ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
	; TFTP key not set, force configuration
	shell "" ConfigShell
      endif
      CloseRegKey $(ParmKey)
     else
       ; TFTP key not set, force configuration
       shell "" ConfigShell
     endif

   ; Check to see if the EqmStart service is installed.  If not, create it

    OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\EqmStart" $(!REG_KEY_ALL_ACCESS) ServiceKey
    ifstr $(ServiceKey) == $(KeyNull)
      Shell $(UtilityInf), CreateService, "EqmStart", "Equinox EV Plus Service", +
	 "%SystemRoot%\System32\EqmStart.exe", "serviceauto", "", {}, ""
      Ifint $($ShellCode) != $(!SHELL_CODE_OK)
	read-syms CustomMessageDlg14     ; Could not create service
	ui start "CustomMessageBox"      ; display dialog box
      Endif
    Else
      CloseRegKey $(ServiceKey)
    Endif

	; Upgrade Parameters DMP registry key
	  LoadLibrary "x" $(!STF_CWDDIR)"\eqndll.dll" LIBHANDLE

	LibraryProcedure rslt $(LIBHANDLE) DLLUpgradeDmpRegistry


	LibraryProcedure rslt $(LIBHANDLE) DLLAddPCILOCK

    ifstr(i) $(rslt) != "ERROR"
     read-syms CustomMessageDlg12      ; boot.ini has been modified template
      ui start "CustomMessageBox"      ; display dialog box
    endif

   RunProgram DummyCode "" "" $(!STF_CWDDIR)\cmd.exe /c eqngrp $(!STF_CWDDIR)
   shell "" RegistryShell

   ;to here
   ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


    return STATUS_SUCCESSFUL

;------------------

configureadapter = +
    Debug-Output $(InfTitl)"label configureadapter"

    shell "" ConfigShell


	 return $(!CA_STATUS)

;------------------

installadapter = +
    Debug-Output $(InfTitl)"label installadapter"



    ;
    ; The identify section is not called when integrated
    ; in control panel. This setup file is dependent on this
    ; function being called.
    ;

    shell "" DebugExternalGlobals

    ;
    ; The BusType also must be set
    ;

    ifstr(i) $(!BusType) == ""
	set !BusType = $(!STF_BUSTYPE)
	set BusType = $(!STF_BUSTYPE)
    endif



    read-syms ProgressCopyENG

    OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\eqn\Parameters" $(MAXIMUM_ALLOWED) ServiceKey
    ifstr $(ServiceKey) != $(KeyNull)
	Debug-Output $(InfTitl)"Able to open "$(!NTN_ServiceBase)"\eqn\Parameters key"
	Debug-Output $(InfTitl)"eqn already installed.  Exit."
	shell "subroutn.inf" SetupMessage ENG STATUS "Equinox SST driver already installed."
	CloseRegKey $(ServiceKey)
	set Status = STATUS_FAILED
	return $(Status)
    else
	Debug-Output $(InfTitl)"eqn NOT already installed.  Continue."
    endif

    install "Install-Files"



    Debug-Output $(InfTitl)"[do_eqn] being called|"$($0)"|"$(1)
    shell "" do_eqn

    set Status = $($R0)
    Debug-Output $(InfTitl)"do_eqn returned|"$(Status)
    ifstr $(Status) != STATUS_SUCCESSFUL
      set Status = STATUS_FAILED
      Debug-Output $(InfTitl)"[InstallOption] returning|"$(Status)
      return $(Status)
    endif

    ;=-=-=-=-=-= pop up Configuration message box if necessary =-=-=-=-=-=
     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\eqn\Parameters" $(!REG_KEY_ALL_ACCESS) ParmKey

     ifstr $(ParmKey) != $(KeyNull)       ;did we open the key?
     ;=-=-= driver has been installed, see if SNMP Extension Agent installed =-=-=
      GetRegValue $(ParmKey) "SNMPState" Statelist

      ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
       ;=-=-= SNMP Extension Agent NOT installed =-=-=
	shell "" ConfigShell
      endif
      CloseRegKey $(ParmKey)
     endif

     ; Check to see if the TFTP key is defined and if not, pop config

     OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Equinox\TFTP" $(!REG_KEY_ALL_ACCESS) ParmKey
     ifstr $(ParmKey) != $(KeyNull)       ;did we open the key?
      GetRegValue $(ParmKey) "SecurePath" Statelist

      ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
	; TFTP key not set, force configuration
	shell "" ConfigShell
      endif
      CloseRegKey $(ParmKey)
     else
       ; TFTP key not set, force configuration
       shell "" ConfigShell
     endif
	


   ; Check to see if the EqmStart service is installed.  If not, create it

    OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\EqmStart" $(!REG_KEY_ALL_ACCESS) ServiceKey
    ifstr $(ServiceKey) == $(KeyNull)
      Shell $(UtilityInf), CreateService, "EqmStart", "Equinox EV Plus Service", +
	 "%SystemRoot%\System32\EqmStart.exe", "serviceauto", "", {}, ""
      Ifint $($ShellCode) != $(!SHELL_CODE_OK)
	read-syms CustomMessageDlg14     ; Could not create service
	ui start "CustomMessageBox"      ; display dialog box
      Endif
    Else
      CloseRegKey $(ServiceKey)
    Endif

	; was here Upgrade Parameters DMP registry key
	;LibraryProcedure rslt $(LIBHANDLE) DLLUpgradeDmpRegistry

    LoadLibrary "x" $(!STF_CWDDIR)"\eqndll.dll" LIBHANDLE
    LibraryProcedure rslt $(LIBHANDLE) DLLAddPCILOCK
	

    ifstr(i) $(rslt) != "ERROR"
     read-syms CustomMessageDlg12      ; boot.ini has been modified template
      ui start "CustomMessageBox"      ; display dialog box
    endif

   ; check for Tcpip\Parameters key and set the NT RAS tunning values
   ;   NumForwardPackets=500 (0x1F4)
   ;   ForwardBufferMemory=742400  (0xB5400)

    OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Tcpip\Parameters" $(!REG_KEY_ALL_ACCESS) ServiceKey
    ifstr $(ServiceKey) == $(KeyNull)
	Debug-Output $(InfTitl)"Unable to open "$(!NTN_ServiceBase)"\Tcpip\Parameters key"
	set CA_STATUS = STATUS_FAILED
	CloseRegKey $(ServiceKey)
    else
	set theval  = "0x1F4"
	LibraryProcedure rslt $(LIBHANDLE) DLLeqncomx /decimal $(theval)
	set theval = $(rslt)
	set ADDRlist = { "NumForwardPackets", 0, $(!REG_VT_DWORD), $(theval) }
	Debug-Output $(InfTitl)"NumForwardPackets: "$(theval)
	SetRegValue $(ServiceKey) $(ADDRlist)
	set theval  = "0xB5400"
	LibraryProcedure rslt $(LIBHANDLE) DLLeqncomx /decimal $(theval)
	set theval = $(rslt)
	set ADDRlist = { "ForwardBufferMemory", 0, $(!REG_VT_DWORD), $(theval) }
	Debug-Output $(InfTitl)"ForwardBufferMemory: "$(theval)
	SetRegValue $(ServiceKey) $(ADDRlist)
	CloseRegKey $(ServiceKey)
    endif

   ;to here
   ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

    set Status = STATUS_SUCCESSFUL
    Debug-Output $(InfTitl)"[InstallOption] returning|"$(Status)
    return $(Status)

;------------------

bindingadapter = +
    Debug-Output $(InfTitl)"label bindingadapter"
    set Error = "Binding: Sorry, not yet implemented."
    shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
    set Status = STATUS_FAILED
    return $(Status)

;------------------------------------------------------------------------

[Date]  ; detect section
    Now = {} ? $(!LIBHANDLE) GetSystemDate

;------------------------------------------------------------------------
[do_eqn]   ; shell section

    read-syms DebugOptions
    read-syms FileConstants
    Debug-Output $(InfTitl)"[do_eqn] section"

    shell "subroutn.inf" PushBillBoard NETSTATUSDLG "Configuring Equinox SST driver..."
    ifint $($ShellCode) != $(!SHELL_CODE_OK)
      ifint $($ShellCode) == 1
	read-syms CustomMessageDlg1     ; setup the message box variables (1)
	ui start "CustomMessageBox"
	set Status = STATUS_FAILED
	return $(Status)
      else-ifint $($ShellCode) == 2
	read-syms CustomMessageDlg2     ; setup the message box variables (2)
	ui start "CustomMessageBox"
	set Status = STATUS_FAILED
	return $(Status)
      else-ifint $($ShellCode) == 3
	read-syms CustomMessageDlg3     ; setup the message box variables (3)
	ui start "CustomMessageBox"
	set Status = STATUS_FAILED
	return $(Status)
      else
	read-syms CustomMessageDlgx     ; setup the message box variables (?)
	ui start "CustomMessageBox"
	set Status = STATUS_FAILED
	return $(Status)
      endif
    endif

    shell "utility.inf" AssignAdapterNumber
    ifint $($ShellCode) != $(!SHELL_CODE_OK)
      ifint $($ShellCode) == 1
	read-syms CustomMessageDlg1     ; setup the message box variables (1)
	ui start "CustomMessageBox"
	set Status = STATUS_FAILED
	return $(Status)
      else-ifint $($ShellCode) == 2
	read-syms CustomMessageDlg2     ; setup the message box variables (2)
	ui start "CustomMessageBox"
	set Status = STATUS_FAILED
	return $(Status)
      else-ifint $($ShellCode) == 3
	read-syms CustomMessageDlg3     ; setup the message box variables (3)
	ui start "CustomMessageBox"
	set Status = STATUS_FAILED
	return $(Status)
      else
	read-syms CustomMessageDlgx     ; setup the message box variables (?)
	ui start "CustomMessageBox"
	set Status = STATUS_FAILED
	return $(Status)
      endif
    endif
    Debug-Output $(InfTitl)"ShellCode = "$($ShellCode)
    Debug-Output $(InfTitl)"RegistryErrorIndex = "$($R0)
    ifint $($ShellCode) != $(!SHELL_CODE_OK)
	set Status = STATUS_FAILED
	return $(Status)
    endif
    set AdapterNumber = $($R1)
    Debug-Output $(InfTitl)"AdapterNumber = "$(AdapterNumber)
    ifstr $(AdapterNumber) == ""
	read-syms CustomMessageDlgTemp  ; setup the message box variables (1)
	ui start "CustomMessageBox"
	set Status = STATUS_FAILED
	return $(Status)
    endif

    Debug-Output $(InfTitl)"date = "$(!NowDate)
    Debug-Output $(InfTitl)"INFfile = "$(STF_CONTEXTINFNAME)
    Debug-Output $(InfTitl)"BusType = "$(!BusType)
    set Address = 0
    Debug-Output $(InfTitl)"Address = "$(Address)

; samples of running external probrams
;   RunProgram ExitCode "" "" $(!STF_CWDDIR)\cmd.exe /c c:\mstools\bin\where.exe -r \ddk\src\eqn *.*
;   RunProgram ExitCode "" "" c:\mstools\bin\where.exe -r \ddk\src\eqn *.*

    LoadLibrary "x" $(!STF_CWDDIR)"\eqndll.dll" LIBHANDLE
    LibraryProcedure rslt $(LIBHANDLE) DLLeqncomx
    Debug-Output $(InfTitl)"DLLeqncomx rslt is: "$(rslt)
    ifint $(rslt) < "5"
      set rslt = "5"
    endif
    set COMnbr = $(rslt)
    Debug-Output $(InfTitl)"COMnbr = "$(COMnbr)
    LibraryProcedure rslt $(LIBHANDLE) DLLeqnrm /noerr
    Debug-Output $(InfTitl)"DLLeqnrm rslt is: "$(rslt)
    LibraryProcedure rslt $(LIBHANDLE) DLLeqnreg /rem0ve
    Debug-Output $(InfTitl)"DLLeqnreg rslt is: "$(rslt)
    LibraryProcedure rslt $(LIBHANDLE) DLLeqnreg /install /$(!BusType)=$(Address) /COM$(COMnbr) /netcard=$(AdapterNumber) /date=$(!NowDate) /inf=$(STF_CONTEXTINFNAME)
    Debug-Output $(InfTitl)"DLLeqnreg rslt is: "$(rslt)

; moved here for 4.10d Upgrade Parameters DMP registry key
	LoadLibrary "x" $(!STF_CWDDIR)"\eqndll.dll" LIBHANDLE
	LibraryProcedure rslt $(LIBHANDLE) DLLUpgradeDmpRegistry

    shell "subroutn.inf" PopBillBoard
; ---------------------
    set Platform = "X86"
    Debug-Output $(InfTitl)"Platform is: "$(Platform)
    ifstr(i) $(Platform) == "X86"
	goto do_0
    endif

    OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\eqn\Parameters" $(MAXIMUM_ALLOWED) ServiceKey
    ifstr $(ServiceKey) == $(KeyNull)
	Debug-Output $(InfTitl)"Unable to open "$(!NTN_ServiceBase)"\eqn\Parameters key"
	set CA_STATUS = STATUS_FAILED
	CloseRegKey $(ServiceKey)
	goto do_0
    else
	set theaddr  = "0xdc000"
	LibraryProcedure rslt $(LIBHANDLE) DLLeqncomx /decimal $(theaddr)
	set theaddr = $(rslt)
	set ADDRlist = { "EQNaddr", 0, $(!REG_VT_DWORD), $(theaddr) }
	Debug-Output $(InfTitl)"EQNaddr: "$(theaddr)
	SetRegValue $(ServiceKey) $(ADDRlist)
	CloseRegKey $(ServiceKey)
    endif



; ---------------------
do_0 = +

   ; Add the DMP registry values before starting the eqn driver

    shell "" RegistryShell

    shell "subroutn.inf" PushBillBoard NETSTATUSDLG "Loading Equinox SST driver..."

    LibraryProcedure rslt $(LIBHANDLE) DLLeqnld
    Debug-Output $(InfTitl)"DLLeqnld rslt is: "$(rslt)
    FreeLibrary $(LIBHANDLE)

    ; let the system run awhile with the driver loaded - if its going to crash
    ; on load, "start" will be left as SERVICE_DEMAND_START
    sleep 2
    ; since system hasn't crashed, change "Start" field to SERVICE_AUTO_START
    set STF_VITAL = ""
    OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\eqn" $(MAXIMUM_ALLOWED) ServiceKey
    ifstr $(ServiceKey) != $(KeyNull)
	GetRegValue $(ServiceKey) "Start" Slist
	set orgStart = *($(Slist),4)
	Debug-Output $(InfTitl)"orgStart is "$(orgStart)
	set newStart = $(!SERVICE_AUTO_START)
	set Slist = { "Start", 0, $(!REG_VT_DWORD), $(newStart) }
	SetRegValue $(ServiceKey) $(Slist)
	CloseRegKey $(ServiceKey)
    else
	Debug-Output $(InfTitl)"key eqn failed to open"
    endif

    shell "subroutn.inf" PopBillBoard

    shell "subroutn.inf" SetupMessage ENG STATUS "Equinox SST driver installed."

    RunProgram DummyCode "" "" $(!STF_CWDDIR)\cmd.exe /c start /min eqnlogr
    RunProgram DummyCode "" "" $(!STF_CWDDIR)\cmd.exe /c eqngrp $(!STF_CWDDIR)
    return STATUS_SUCCESSFUL

;------------------------------------------------------------------------------
; option text section

[OptionsTextENG]
    SST = "Equinox SST Serial Driver for Windows NT - "$(EQNversion)

[Source Media Descriptions]
    1  = "Equinox NT Driver Disk #1"  , TAGFILE = ntdisk1.s
    2  = "Equinox NT Driver Disk #2"  , TAGFILE = ntdisk2.s
    3  = "Equinox NT Driver Disk #3"  , TAGFILE = ntdisk3.s

[DebugOptions]   ; read-syms section
    InfTitl = "EQN: "
    !DebugOutputControl = 1     ; send messages to debugger if loaded
;   !DebugOutputControl = 0     ; no messages to debugger
    InfError = 0

;----- debug code -------------------------------------------------------------
[DebugExternalGlobals]   ; shell section
    read-syms DebugOptions
    Debug-Output $(InfTitl)"[DebugExternalGlobals] section"

    detect Date
    Debug-Output $(InfTitl)"Date "*($(Now),1)  ; (($(Now),1) must be passed to eqnreg()
    set !NowDate = *($(Now),1)

; following seems to be only STF_ vars known
    Debug-Output $(InfTitl)"!STF_CONTEXTINFNAME = "$(!STF_CONTEXTINFNAME)
    Debug-Output $(InfTitl)"!STF_CWDDIR = "$(!STF_CWDDIR)
    Debug-Output $(InfTitl)"!LIBHANDLE = "$(!LIBHANDLE)
    return

;----- main entry here --------------------------------------------------------
; this shell section called only if this .inf invoked directly from setup.exe
; this code is NOT executed from the control panel (ncpa)

[Shell Commands] ;   shell section "Main"
    read-syms DebugOptions
    set-title "Serial Setup"
    set-subst LF = "\n"
    set Exit_Code = 0
    Debug-Output $(InfTitl)"[Shell Commands] called."
    LoadLibrary "x" $(!STF_CWDDIR)"\setupdll.dll" !LIBHANDLE
    shell "" Identify
    shell "" ReturnOptions ENG EISA
    shell "" InstallOption ENG SST c:\ddk\src\eqn\inf YES YES YES
    FreeLibrary $(!LIBHANDLE)

    LoadLibrary "x" $(!STF_CWDDIR)"\setupdll.dll" !LIBHANDLE
    LibraryProcedure rslt $(!LIBHANDLE) DLLeqncomx
    Debug-Output $(InfTitl)"DLLeqncomx rslt is: "$(rslt)
    set COMnbr = $(rslt)
    LibraryProcedure rslt $(!LIBHANDLE) DLLeqnrm /noerr
    Debug-Output $(InfTitl)"DLLeqnrm rslt is: "$(rslt)
    LibraryProcedure rslt $(!LIBHANDLE) DLLeqnreg /rem0ve
    Debug-Output $(InfTitl)"DLLeqnreg rslt is: "$(rslt)
    LibraryProcedure rslt $(!LIBHANDLE) DLLeqnreg /install /EISA=0 /COM$(COMnbr) /netcard=10 /date=0 /inf=file_name
    Debug-Output $(InfTitl)"DLLeqnreg rslt is: "$(rslt)
    LibraryProcedure rslt $(!LIBHANDLE) DLLeqnld
    Debug-Output $(InfTitl)"DLLeqnld rslt is: "$(rslt)
    FreeLibrary $(!LIBHANDLE)

aexit = + ; this is a label!
    Debug-Output $(InfTitl)"[Shell Commands] returning."
    exit  ; required in "main" routine

;------------------------------------------------------------------------------

[Install-Files]  ; install section
    set STF_VITAL = ""
    ifstr(i) $(AddCopy) == "YES"
    set SrcDir = $(!SourceDir)
    Debug-Output $(InfTitl)"SrcDir is: "$(SrcDir)
    Debug-Output $(InfTitl)"Dest is: "$(!STF_CWDDIR)
	AddSectionFilesToCopyList Files-Resource $(SrcDir) $(!STF_CWDDIR)
	AddSectionFilesToCopyList Files-Resource2 $(SrcDir) $(!STF_CWDDIR)drivers

    set Platform = "X86"
    Debug-Output $(InfTitl)"Platform is: "$(Platform)
    ifstr(i) $(Platform) == "X86"
	AddSectionFilesToCopyList Files-Resource3 $(SrcDir) $(!STF_CWDDIR)
    else
	AddSectionFilesToCopyList Files-Resource4 $(SrcDir) $(!STF_CWDDIR)
    endif

    Debug-Output $(InfTitl)"Dest is: "$(!STF_CWDDIR)
    AddSectionFilesToCopyList Files-Resource5 $(SrcDir) $(!STF_CWDDIR)
    AddSectionFilesToCopyList Files-Resource6 $(SrcDir) $(!STF_NTPATH)\..\inf

    ifstr(i) $(DoCopy) == "YES"
       set !STF_NCPA_FLUSH_COPYLIST = TRUE
       CopyFilesInCopyList
    else-ifstr(i) $(!NTN_InstallPhase) == primary
       set !STF_NCPA_FLUSH_COPYLIST = TRUE
       CopyFilesInCopyList
    endif
    exit  ; install sections use exit

;------------------------------------------------------------------------------

[Install-Upgrade]  ; install section
; get value of oemnad??.inf and copy oemsetup.inf on top of old
    set STF_VITAL = ""
    OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\eqn\Parameters" $(MAXIMUM_ALLOWED) ServiceKey
    ifstr $(ServiceKey) != $(KeyNull)
	GetRegValue $(ServiceKey) "EQNnetcard" NClist
	set netcard = *($(NClist),4)
	CloseRegKey $(ServiceKey)
	Debug-Output $(InfTitl)"NClist is "$(NClist)
	set SrcDir = $(!SourceDir)
	AddSectionFilesToCopyList Files-Resource $(SrcDir) $(!STF_CWDDIR)
	AddSectionFilesToCopyList Files-Resource2 $(SrcDir) $(!STF_CWDDIR)drivers
	AddSectionFilesToCopyList Files-Resource5 $(SrcDir) $(!STF_CWDDIR)
	  AddSectionFilesToCopyList Files-Resource6 $(SrcDir) $(!STF_NTPATH)\..\inf
	AddSectionFilesToCopyList Files-Upgrade $(SrcDir) $(!STF_CWDDIR)
	CopyFilesInCopyList
	Debug-Output $(InfTitl)"rename src:  "$(!STF_CWDDIR)"oemsetup.inf"
	Debug-Output $(InfTitl)"rename dest: "$(!STF_CWDDIR)"oemnad"$(netcard)".inf"
	LibraryProcedure Status, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"oemnad"$(netcard)".inf"
	LibraryProcedure Status $(!LIBHANDLE) RenFile $(!STF_CWDDIR)"oemsetup.inf" $(!STF_CWDDIR)"oemnad"$(netcard)".inf"
    endif
    exit  ; install sections use exit

;------------------------------------------------------------------------------

[RemoveFiles]    ; shell section
   read-syms DebugOptions
   Debug-Output $(InfTitl)"Entering [RemoveFiles]"
   RunProgram ExitCode "" "" $(!STF_CWDDIR)\cmd.exe /c eqngrp REMOVE
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\drivers\eqn.sys"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\drivers\eqndmpa.img"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\drivers\eqndmpb.img"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\drivers\eqndmpc.img"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\drivers\eqndmpd.img"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\drivers\eqnmload.img"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\drivers\eqnmcadn.img"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\drivers\eqnmcano.img"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\drivers\eqnmcudo.img"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\drivers\eqnmcuno.img"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqndiag.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqnlogr.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqnsstview.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqnsstview.hlp"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqnsstview.cnt"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqnloop.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\readeqn.wri"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqneula1.txt"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqndll.dll"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqndde.dll"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqngrp.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqnchnl.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqnstat.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqntrace.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqnreset.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqnureg.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqmmall.dll"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqmmalnt.dll"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqmcomp.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqmagent.dll"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqmatcmd.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqmbusy.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqmmprst.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqndmpcp.cpl"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqndmpcp.hlp"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqndmpcp.cnt"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqndmpd.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqmloop.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqmbrds.dat"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqmscope.exe"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\ntmml.dll"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\modeminf.txt"
   LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_CWDDIR)"\eqndmp.dat"

; don't remove MSVCRT20.DLL or CRTDLL.DLL (may have previously existed)

   return

;------------------------------------------------------------------------------

[Files-Resource]
; sizes need only be approximate (used for %complete estimates)
2,eqndiag.ex_, SIZE=120000, DECOMPRESS, RENAME=eqndiag.exe
2,eqnlogr.ex_, SIZE=97000, DECOMPRESS, RENAME=eqnlogr.exe
2,eqnsstview.ex_, SIZE=363000, DECOMPRESS, RENAME=eqnsstview.exe
2,eqnsstview.hl_, SIZE=198000, DECOMPRESS, RENAME=eqnsstview.hlp
2,eqnsstview.cn_, SIZE=115, DECOMPRESS, RENAME=eqnsstview.cnt
2,eqnloop.ex_, SIZE=180000, DECOMPRESS, RENAME=eqnloop.exe
1,readeqn.wri, SIZE=9000
1,eqneula1.txt,SIZE=1000
1,eqndmp.dat,SIZE=300
1,eqndll.dl_, SIZE=130000, DECOMPRESS, RENAME=eqndll.dll
1,eqndde.dl_, SIZE=8000, DECOMPRESS, RENAME=eqndde.dll
2,eqngrp.ex_, SIZE=26000, DECOMPRESS, RENAME=eqngrp.exe
2,eqnchnl.ex_, SIZE=28000, DECOMPRESS, RENAME=eqnchnl.exe
2,eqnstat.ex_, SIZE=72000, DECOMPRESS, RENAME=eqnstat.exe
2,eqnreset.ex_, SIZE=68000, DECOMPRESS, RENAME=eqnreset.exe
2,eqntrace.ex_, SIZE=70000, DECOMPRESS, RENAME=eqntrace.exe
2,eqnureg.ex_, SIZE=158000, DECOMPRESS, RENAME=eqnureg.exe
2,eqnxfast.ex_, SIZE=140000
1,eqndmpcp.cp_, SIZE=270000, DECOMPRESS, RENAME=eqndmpcp.cpl
1,eqndmpcp.cn_, SIZE=1000, DECOMPRESS, RENAME=eqndmpcp.cnt
1,eqndmpcp.hl_, SIZE=37000, DECOMPRESS, RENAME=eqndmpcp.hlp
2,eqndmpd.ex_, SIZE=320000, DECOMPRESS, RENAME=eqndmpd.exe
1,modeminf.txt, SIZE=1000

[Files-Resource2]
1,eqn.sy_, SIZE=550000, DECOMPRESS, RENAME=eqn.sys
1,eqndmpa.im_, SIZE=8200, DECOMPRESS, RENAME=eqndmpa.img, READONLY
1,eqndmpb.im_, SIZE=8200, DECOMPRESS, RENAME=eqndmpb.img, READONLY
1,eqndmpc.im_, SIZE=8200, DECOMPRESS, RENAME=eqndmpc.img, READONLY
1,eqndmpd.im_, SIZE=8200, DECOMPRESS, RENAME=eqndmpd.img, READONLY
1,eqnmload.im_, SIZE=3200, DECOMPRESS, RENAME=eqnmload.img, READONLY
3,eqnmcadn.im_, SIZE=340000, DECOMPRESS, RENAME=eqnmcadn.img, READONLY
3,eqnmcano.im_, SIZE=340000, DECOMPRESS, RENAME=eqnmcano.img, READONLY
3,eqnmcudn.im_, SIZE=340000, DECOMPRESS, RENAME=eqnmcudn.img, READONLY
3,eqnmcuno.im_, SIZE=340000, DECOMPRESS, RENAME=eqnmcuno.img, READONLY

[Files-Resource3]
1,MSVCRT20.DL_, SIZE=240000, OVERWRITE=OLDER, DECOMPRESS, RENAME=MSVCRT20.DLL ; Intel

[Files-Resource4]
1,CRTDLL.DL_, SIZE=240000, OVERWRITE=OLDER, DECOMPRESS, RENAME=CRLDLL.DLL ; Mips

[Files-Resource5]
2,EQMMALL.DL_, SIZE=30000, DECOMPRESS, RENAME=EQMMALL.DLL    ; EV+
2,EQMMALNT.DL_, SIZE=185000, DECOMPRESS, RENAME=EQMMALNT.DLL ; EV+
2,EQMAGENT.DL_, SIZE=6000, DECOMPRESS, RENAME=EQMAGENT.DLL   ; EV+
2,EQMATCMD.EX_, SIZE=39000, DECOMPRESS, RENAME=EQMATCMD.EXE  ; EV+
2,EQMBUSY.EX_, SIZE=106000, DECOMPRESS, RENAME=EQMBUSY.EXE   ; EV+
2,EQMMPRST.EX_, SIZE=40000, DECOMPRESS, RENAME=EQMMPRST.EXE  ; EV+
2,EQMLOOP.EX_, SIZE=78000, DECOMPRESS, RENAME=EQMLOOP.EXE    ; EV+
2,EQMBRDS.DA_, SIZE=9600, DECOMPRESS, RENAME=EQMBRDS.DAT    ; EV+
2,EQMSTART.EX_, SIZE=70000, DECOMPRESS, RENAME=EQMSTART.EXE  ; EV+
2,EQMSCOPE.EX_, SIZE=86000, DECOMPRESS, RENAME=EQMSCOPE.EXE  ; EV+
2,EQMCOMP.EX_, SIZE=90000, DECOMPRESS, RENAME=EQMCOMP.EXE  ; EV+

[Files-Resource6]
1,mdmeqnx.in_, SIZE=30000, DECOMPRESS, RENAME=mdmeqnx.inf
1,mdmeqn.in_, SIZE=30000, DECOMPRESS, RENAME=mdmeqn.inf



[Files-Upgrade]
1,oemsetup.inf

[ConfigShell]
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;Comment OUT if unattend install

  set SNMPInstalled = 0         ; Says whether SNMP service installed on system
  set ForceSNMPInstall = 0  ; Says whether user has ever selected SNMP Ext Option
  set SNMPExtState = {2}    ; Says whether SNMP Ext is currently installed on system

  OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\SNMP\Parameters\ExtensionAgents" $(!REG_KEY_ALL_ACCESS) SNMPKeyHndl
  ifstr $(SNMPKeyHndl) != $(KeyNull)
    set SNMPInstalled = 1
    CloseRegKey $(SNMPKeyHndl)
  endif

  OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\eqn\Parameters" $(!REG_KEY_ALL_ACCESS) ParmKey
  ifstr $(ParmKey) != $(KeyNull)       ;did we open the key?
  ;=-=-= driver has been installed, see if SNMP Extension Agent installed =-=-=
    GetRegValue $(ParmKey) "SNMPState" Statelist

    ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
      ;=-=-= SNMP Extension Agent Option not in Parameters =-=-=
      set ForceSNMPInstall = 1 ; Force first time install of SNMP Ext Agent
      ifstr $(SNMPInstalled) != 0
	    set SNMPExtInstalled = 0
		set SNMPExtState = 1 ; SNMP is installed, default to Enabled
      endif
      SetRegValue $(ParmKey) {"SNMPState",0,$(!REG_VT_SZ),$(SNMPExtState)}
    else
      ;=-=-=-= SNMP Extension Installed, get initial state =-=-=-=
      Set SNMPExtState = *($(Statelist),4)
    endif

    CloseRegKey $(ParmKey)
  endif

  OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Equinox\TFTP" $(!REG_KEY_ALL_ACCESS) TftpKey

  ifstr $(TftpKey) != $(KeyNull)
	GetRegValue $(TftpKey) "SecurePath" TftpList
	set TFTPDIR = *($(TftpList),4)
    ifstr $(TFTPDIR) == ""
	  set TFTPDIR = $(!STF_WINDOWSPATH)"\TFTP"
      set TftpList = {SecurePath,0, $(!REG_VT_SZ),$(TFTPDIR)}
      SetRegValue $(TftpKey) $(TftpList)
    endif
  else
    CreateRegKey $(!REG_H_LOCAL) {"SOFTWARE\EQUINOX\TFTP",0,GenericClass} "" +
		      $(!REG_KEY_SET_VALUE) "" TftpKey

    ifstr $(TftpKey) != $(KeyNull)
	  set TFTPDIR = $(!STF_WINDOWSPATH)"\TFTP"
      set TftpList = {SecurePath,0, $(!REG_VT_SZ),$(TFTPDIR)}
      SetRegValue $(TftpKey) $(TftpList)
    endif
  endif ; TftpKey != KeyNull
  CloseRegKey $(TftpKey)

;To here
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  set RadioIn = $(SNMPExtState)

  LoadLibrary "x" $(!STF_CWDDIR)"\eqndll.dll" LIBHANDLE
  LibraryProcedure rslt $(LIBHANDLE) DLLeqncomx
  set Combo1Out  = "COM"$(rslt)
  Debug-Output $(InfTitl)"initial COMPort: "$(Combo1Out)
  LibraryProcedure rslt $(LIBHANDLE) DLLeqncomx /address
  set Combo2Out  = $(rslt)
  Debug-Output $(InfTitl)"initial ISA mem: "$(Combo2Out)
  FreeLibrary $(LIBHANDLE)

  set TFTPDIRIn = $(TFTPDIR)

  set bTryAgain = 0
get_dlg1 = +
  read-syms GetDlg1ENG
  ui start "InputDlg"
  set bCancel = 1
  ifstr(i) $(DLGEVENT) == "CONTINUE"
    set bCancel = 0
	set Dlg1COMPort = $(Combo1Out)
	set Dlg1ISAMem = $(Combo2Out)
    set Dlg1RadioIn = $(RadioIn)
	set Dlg1RadioOut = $(RadioOut)
	ui pop 1
    ifstr(i) $(SNMPInstalled) == 0
	  ifstr(i) $(Dlg1RadioOut) == {1}
	read-syms CustomMessageDlg5    ; load SNMP not loaded template
	ui start "CustomMessageBox"    ; display dialog box
		set Combo1Out = $(Dlg1COMPort)
		set Combo2Out = $(Dlg1ISAMem)
		set RadioIn = {2}
		set bTryAgain = 1
      endif
	  set bTryAgain = 0
    endif ; SNMP Service is installed
    ifstr(i) $(Dlg1RadioOut) == {1}
get_tftp = +
      read-syms TFTPDlgENG
      ui start "Diskette"
	  ifstr(i) $(DLGEVENT) == "CONTINUE" ; really FINISH
	LoadLibrary "x" $(!STF_CWDDIR)"\setupdll.dll" !LIBHANDLE
		LibraryProcedure IsFullPath, $(!LIBHANDLE), CheckPathFullPathSpec $(EditTextOut)
		FreeLibrary $(!LIBHANDLE)
	ifstr(i) $(IsFullPath) == "NO"
	      ui pop 1
		  read-syms CustomMessageDlg16  ; Bad pathname entered
		  ui start "CustomMessageBox"   ; display dialog box
		else
		  set bTryAgain = 0
		  set TFTPDIR = $(EditTextOut)
	      ui pop 1
	endif
      else ; DLGEVENT(Diskette) != CONTINUE meaning BACK
		set TFTPDIR = $(EditTextOut)
		ui pop 1
		set Combo1Out = $(Dlg1COMPort)
		set Combo2Out = $(Dlg1ISAMem)
		set RadioIn = $(Dlg1RadioOut)
		set bTryAgain = 1
		set IsFullPath = "YES"
      endif  ;ENDif DLGEVENT(Diskette) == FINISH
	  ifstr(i) $(IsFullPath) == "NO"
	    goto get_tftp
      endif
    else
      ifstr(i) $(Dlg1RadioOut) == {2}
get_tftp2 = +
	read-syms TFTPDlg2ENG
	ui start "Diskette"
	    ifstr(i) $(DLGEVENT) == "CONTINUE" ; really FINISH
	  LoadLibrary "x" $(!STF_CWDDIR)"\setupdll.dll" !LIBHANDLE
		  LibraryProcedure IsFullPath, $(!LIBHANDLE), CheckPathFullPathSpec $(EditTextOut)
		  FreeLibrary $(!LIBHANDLE)
	  ifstr(i) $(IsFullPath) == "NO"
		ui pop 1
		    read-syms CustomMessageDlg16  ; Bad pathname entered
		    ui start "CustomMessageBox"   ; display dialog box
		  else
		    set bTryAgain = 0
		    set TFTPDIR = $(EditTextOut)
		ui pop 1
	  endif
	else ; DLGEVENT(Diskette) != CONTINUE meaning BACK
		  set TFTPDIR = $(EditTextOut)
		  ui pop 1
		  set Combo1Out = $(Dlg1COMPort)
		  set Combo2Out = $(Dlg1ISAMem)
		  set RadioIn = $(Dlg1RadioOut)
		  set bTryAgain = 1
		  set IsFullPath = "YES"
	endif  ;ENDif DLGEVENT(Diskette) == FINISH
	    ifstr(i) $(IsFullPath) == "NO"
	      goto get_tftp2
      endif
    endif ; SNMP Ext Agent install requested
  endif ; DLGEVENT was CONTINUE
  ifstr(i) $(bCancel) == 1
    set !CA_STATUS = STATUS_SUCCESSFUL
	goto ca_end
  endif
  ifstr(i) $(bTryAgain) == 1
    goto get_dlg1
  endif

    Debug-Output $(InfTitl)"COMPort: "$(Dlg1COMPort)
    Debug-Output $(InfTitl)"ISA mem: "$(Dlg1ISAMem)

;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;Comment OUT if unattend install

    ifstr(i) $(Dlg1RadioOut) != $(Dlg1RadioIn)
    ;=-=-=-= settings have been changed... which one? =-=-=-=
      OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\eqn\Parameters" $(!REG_KEY_SET_VALUE) ParmKey

      ifstr $(ParmKey) != $(KeyNull)       ;did we open the key?
      ;;; SetRegValue $(ParmKey) {"SNMPState",0,$(!REG_VT_SZ),$(Dlg1RadioOut)}
	set SNMPKeyName = "SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents"
	set ValueSetData = "SOFTWARE\Equinox\SuperSerialAgent\CurrentVersion"
	OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\SNMP\Parameters\ExtensionAgents" $(!REG_KEY_ALL_ACCESS) SNMPKeyHndl

	ifstr $(SNMPKeyHndl) != $(KeyNull)
	;=-=-=-=-= record for posterity, the Radio button value =-=-=-=-=
	  SetRegValue $(ParmKey) {"SNMPState",0,$(!REG_VT_SZ),$(Dlg1RadioOut)}

	  ;=-=-= now enable or disable agent =-=-=
	  ifstr $(Dlg1RadioOut) == {1}
			
	    ;=-=-= enable SNMP Extension Agent, start with SOFTWARE key =-=-=
	    OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Equinox" $(!REG_KEY_ALL_ACCESS) TempKey

	    ifstr $(TempKey) != $(KeyNull)
	      CreateRegKey $(TempKey) {"SuperSerialAgent\CurrentVersion",0,GenericClass} "" +
				     $(!REG_KEY_SET_VALUE) "" NewTempHndl

	      ifstr $(NewTempHndl) != $(KeyNull)
		set NewNameValueList = {Pathname,0, $(!REG_VT_SZ),"%SystemRoot%\system32\EqmAgent.dll"}
		SetRegValue $(NewTempHndl) $(NewNameValueList)
		CloseRegKey $(NewTempHndl)
	      endif

	      CloseRegKey $(TempKey)
	    endif ; TempKey != KeyNull

	    ;=-=-=-= now do the SNMP branch =-=-=-=
	    set SNMPValueList = {}
	    EnumRegValue $(SNMPKeyHndl) SNMPValueList
	    set RefValue = "0"

	    set ValueItem = ""
	    set ValueName = ""

	    ForListDo $(SNMPValueList)
	      set ValueItem = $($)
	      set ValueName = *($(ValueItem), 1)

	      ifint $(ValueName) >= $(RefValue)
		set RefValue = $(ValueName)
	      endif

	    EndForListDo

	    ;=-=-= get next ASCII name and build the value list =-=-=
	    set-add SNMPValueName = $(RefValue), 1
	    set SNMPNameValueList = {$(SNMPValueName) 0 $(!REG_VT_SZ) $(ValueSetData)}

	    ;=-=-= write list to key =-=-=
	    SetRegValue $(SNMPKeyHndl) $(SNMPNameValueList)
	    CloseRegKey $(SNMPKeyHndl)

	  else  ; Dlg1RadioOut == 2 so remove entries
	    ;=-=-=-= disable SNMP Extension Agent, start with SOFTWARE key =-=-=-=
	    OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Equinox" $(!REG_KEY_ALL_ACCESS) TempKey

	    ifstr $(TempKey) != $(KeyNull)
	      DeleteRegTree $(TempKey) "SuperSerialAgent"
	      CloseRegKey $(TempKey)
	    endif

	    ;=-=-=-= now do the SNMP branch key =-=-=-=
	    set SNMPValueList = {}
	    EnumRegValue $(SNMPKeyHndl) SNMPValueList

	    set ValueItem = ""
	    set ValueData = ""

	    ForListDo $(SNMPValueList)
	      set ValueItem = $($)                      ;get list element
	      set ValueData = *($(ValueItem), 4)       ;look at data value

	      ifstr $(ValueData) == $(ValueSetData)     ;is it our entry?
		DeleteRegValue $(SNMPKeyHndl) *($(ValueItem),1)  ;yes, delete it
	      endif

	    EndForListDo

	  endif  ;ENDelse Dlg1RadioOut == 1

	  CloseRegKey $(SNMPKeyHndl)

	else ;SNMPKey == KeyNull
	  ;=-=-=-= SNMP services NOT installed, tell the world =-=-=-=
	  read-syms CustomMessageDlg5       ; load SNMP not loaded template
	  ui start "CustomMessageBox"      ; display dialog box

	endif ;SNMPKey != KeyNull

	CloseRegKey $(ParmKey)
      endif ;ParmKey != KeyNull
    endif ;Dlg1RadioOut != Dlg1RadioIn

	ifstr(i) $(TFTPDIRIn) != $(TFTPDIR)

	  ; Now add the TFTP SecurePath key
	  OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Equinox\TFTP" $(!REG_KEY_ALL_ACCESS) TftpKey

      ifstr $(TftpKey) != $(KeyNull)
	    set TftpList = {SecurePath,0, $(!REG_VT_SZ),$(TFTPDIR)}
		SetRegValue $(TftpKey) $(TftpList)
	CloseRegKey $(TftpKey)
	  else
		read-syms CustomMessageDlg15     ; Could not update TFTP key
		ui start "CustomMessageBox"      ; display dialog box
      endif ; TftpKey != KeyNull
	endif ; TFTP Directory change

;To here
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  else
    set !CA_STATUS = STATUS_USERCANCEL
    ui pop 1
    goto ca_end
  endif                              ;ENDif DLGEVENT(InputDlg) == CONTINUE

  LoadLibrary "x" $(!STF_CWDDIR)"\eqndll.dll" LIBHANDLE
  LibraryProcedure rslt $(LIBHANDLE) DLLeqncomx /parse $(Dlg1COMPort)
  set Dlg1COMPort = $(rslt)

  ifstr $(Dlg1ISAMem) == "auto"
    set Dlg1ISAMem = "0"
  else
    LibraryProcedure rslt $(LIBHANDLE) DLLeqncomx /decimal $(Dlg1ISAMem)
    set Dlg1ISAMem = $(rslt)
  endif

  Debug-Output $(InfTitl)"COMPort: "$(Dlg1COMPort)
  Debug-Output $(InfTitl)"ISA mem: "$(Dlg1ISAMem)
  OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\eqn\Parameters" $(!REG_KEY_ALL_ACCESS) ServiceKey

  ifstr $(ServiceKey) == $(KeyNull)
    Debug-Output $(InfTitl)"Unable to open "$(!NTN_ServiceBase)"\eqn\Parameters key"
    set CA_STATUS = STATUS_FAILED
    goto ca_end
  else
    set COMlist = { "EQNbaseComPort", 0, $(!REG_VT_DWORD), $(Dlg1COMPort) }
    Debug-Output $(InfTitl)"COMPort: "$(Dlg1COMPort)
    SetRegValue $(ServiceKey) $(COMlist)
    set ADDRlist = { "EQNaddr", 0, $(!REG_VT_DWORD), $(Dlg1ISAMem) }
    Debug-Output $(InfTitl)"ISA mem: "$(Dlg1ISAMem)
    SetRegValue $(ServiceKey) $(ADDRlist)
    CloseRegKey $(ServiceKey)
  endif


  set !CA_STATUS = STATUS_SUCCESSFUL

ca_end = +

  return $(!CA_STATUS)

[RegistryShell]
   ; check for Tcpip\Parameters key and set the NT RAS tunning values
   ;   NumForwardPackets=500 (0x1F4)
   ;   ForwardBufferMemory=742400  (0xB5400)

    OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Tcpip\Parameters" $(!REG_KEY_ALL_ACCESS) ServiceKey
    ifstr $(ServiceKey) == $(KeyNull)
	Debug-Output $(InfTitl)"Unable to open "$(!NTN_ServiceBase)"\Tcpip\Parameters key"
	set CA_STATUS = STATUS_FAILED
	CloseRegKey $(ServiceKey)
    else
	set theval  = "0x1F4"
      LoadLibrary "x" $(!STF_CWDDIR)"\eqndll.dll" LIBHANDLE
	LibraryProcedure rslt $(LIBHANDLE) DLLeqncomx /decimal $(theval)
	set theval = $(rslt)
	set ADDRlist = { "NumForwardPackets", 0, $(!REG_VT_DWORD), $(theval) }
	Debug-Output $(InfTitl)"NumForwardPackets: "$(theval)
	SetRegValue $(ServiceKey) $(ADDRlist)
	set theval  = "0xB5400"
	LibraryProcedure rslt $(LIBHANDLE) DLLeqncomx /decimal $(theval)
	set theval = $(rslt)
	set ADDRlist = { "ForwardBufferMemory", 0, $(!REG_VT_DWORD), $(theval) }
	Debug-Output $(InfTitl)"ForwardBufferMemory: "$(theval)
	SetRegValue $(ServiceKey) $(ADDRlist)
	CloseRegKey $(ServiceKey)
      FreeLibrary $(LIBHANDLE)
    endif

   set !CA_STATUS = STATUS_SUCCESSFUL

reg_end = +

  return $(!CA_STATUS)


;=-=-=-=-=-=-=-=-=-=-= debug message box code  =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;  read-syms CustomMessageDlgxx      ; load "CustomMessageDlgxx template
;   ui start "CustomMessageBox"      ; display dialog box
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

[ProgressCopyENG]    ; read-syms section
    ProCaption   = "Equinox SST File Setup"
    ProCancel    = "Cancel"
    ProCancelMsg = "Equinox is not correctly installed.  Are you sure you want "+
		   "to cancel copying files?"
    ProCancelCap = "Setup Message"
    ProText1     = "Copying:"
    ProText2     = "To:"

;----------------

[GetDlg1ENG]  ; read-syms section
Help = "&Help"
OK = "OK"
Continue    = "Next"
Cancel      = "Cancel"
DlgType = "RadioCombination"
DlgTemplate = "DEC_SETUP"
Caption = "Equinox SST Configuration"
Group1 = "SNMP Extension Agent"
Radio1 = "&Enabled"
Radio2 = "&Disabled"
Label1 = "First COM&Port:"
Label2 = "ISA &Memory Block:"

ISAList = { auto, 0xb0000, 0xb4000, 0xb8000, 0xbc000, +
	    0xc0000, 0xc4000, 0xc8000, 0xcc000, +
	    0xd0000, 0xd4000, 0xd8000, 0xdc000, +
	    0xe0000, 0xe4000, 0xe8000, 0xec000 }

COMxList = { COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, +
	     COM9, COM10, COM11, COM12, COM13, COM14, COM15, COM16, +
	     COM17, COM18, COM19, COM20, COM21, COM22, COM23, COM24, +
	     COM25, COM26, COM27, COM28, COM29, COM30, COM31, COM32, +
	     COM33, COM34, COM35, COM36, COM37, COM38, COM39, COM40, +
	     COM41, COM42, COM43, COM44, COM45, COM46, COM47, COM48, +
	     COM49, COM50, COM51, COM52, COM53, COM54, COM55, COM56, +
	     COM57, COM58, COM59, COM60, COM61, COM62, COM63, COM64, +
	     COM65, COM66, COM67, COM68, COM69, COM70, COM71, COM72, +
	     COM73, COM74, COM75, COM76, COM77, COM78, COM79, COM80, +
	     COM81, COM82, COM83, COM84, COM85, COM86, COM87, COM88, +
	     COM89, COM90, COM91, COM92, COM93, COM94, COM95, COM96, +
	     COM97, COM98, COM99, COM100, COM101, COM102, COM103, COM104, +
	     COM105, COM106, COM107, COM108, COM109, COM110, COM111, COM112, +
	     COM113, COM114, COM115, COM116, COM117, COM118, COM119, COM120, +
	     COM121, COM122, COM123, COM124, COM125, COM126, COM127, COM128, +
	     COM129, COM130, COM131, COM132, COM133, COM134, COM135, COM136, +
	     COM137, COM138, COM139, COM140, COM141, COM142, COM143, COM144, +
	     COM145, COM146, COM147, COM148, COM149, COM150, COM151, COM152, +
	     COM153, COM154, COM155, COM156, COM157, COM158, COM159, COM160, +
	     COM161, COM162, COM163, COM164, COM165, COM166, COM167, COM168, +
	     COM169, COM170, COM171, COM172, COM173, COM174, COM175, COM176, +
	     COM177, COM178, COM179, COM180, COM181, COM182, COM183, COM184, +
	     COM185, COM186, COM187, COM188, COM189, COM190, COM191, COM192, +
	     COM193, COM194, COM195, COM196, COM197, COM198, COM199, COM200, +
	     COM201, COM202, COM203, COM024, COM205, COM206, COM207, COM208, +
	     COM209, COM210, COM211, COM212, COM213, COM214, COM215, COM216, +
	     COM217, COM218, COM219, COM220, COM221, COM222, COM223, COM224, +
	     COM225, COM226, COM227, COM228, COM229, COM230, COM231, COM232, +
	     COM233, COM234, COM235, COM236, COM237, COM238, COM239, COM240, +
	     COM241, COM242, COM243, COM244, COM245, COM246, COM247, COM248, +
	     COM249, COM250, COM251, COM252, COM253, COM254, COM255, COM256 }

Combo1List = $(COMxList)
Combo2List = $(ISAList)
ComboListItemsIn  = {Combo1List, Combo2List}
ComboListItemsOut = {Combo1Out, Combo2Out}
EditTextIn = ""
EditTextLim = ""
CBOptionsGreyed = {}
NotifyFields = {NO, NO}
HelpContext = ""
RCCtlFocusOn = 403

[TFTPDlgENG]
    Caption        = "EquiView Plus Datascope TFTP Path"
    DlgText        = "Enter the path for EquiView Plus "+
		     "datascope trace files.  EquiView Plus uses the Trivial "+
					 "File Transfer Protocol (TFTP) to access datascope trace "+
					 "files in this directory. "+
					 "NOTE that files in this path will ALSO be accessible "+
					 "by other systems on the network that may be running TFTP."
    Continue       = "Finish"
    Cancel         = "Back"
    DlgType        = "Edit"
    DlgTemplate    = "DISKETTE"
    Edit1Label     = ""
    EditTextIn     = $(TFTPDIR)
	EditTextLime   = 256
    EditFocus      = "ALL"

[TFTPDlg2ENG]
    Caption        = "EquiView Plus Datascope Path"
    DlgText        = "Enter the path for EquiView Plus "+
		     "datascope trace files.  EquiView Plus will store all "+
					 "datascope trace files in this path. "
    Continue       = "Finish"
    Cancel         = "Back"
    DlgType        = "Edit"
    DlgTemplate    = "DISKETTE"
    Edit1Label     = ""
    EditTextIn     = $(TFTPDIR)
	EditTextLime   = 256
    EditFocus      = "ALL"

;----- leave blank lines here -------------------------------------------------


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: 0.93