home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 January / CHIPCD1_98.iso / software / testsoft / nds / i386 / nls / english / oemnadod.in_ / oemnadod.in
Text File  |  1996-10-29  |  39KB  |  1,423 lines

  1. ;***********************************************************************
  2. ;
  3. ; OEMNADOD.INF
  4. ;
  5. ;    Novell NetWare PCI card INF for Novell ODI drivers
  6. ;
  7. ;
  8. ;***********************************************************************
  9. ; VeRsIoN=1.00 Novell Client Install for Windows NT.
  10. ; CoPyRiGhT=(c) Copyright 1996, by Novell, Inc. All rights reserved.
  11.  
  12. [Identification]
  13.     OptionType = NetAdapter
  14.  
  15. [PlatformsSupported]
  16.     PCI
  17.     "Jazz-Internal Bus"
  18.  
  19. [LanguagesSupported]
  20.     ENG
  21.  
  22. [FileConstants]
  23.  
  24. UtilityInf        = "UTILITY.INF"
  25. ParamInf        = "NCPARAM.INF"
  26. subroutineinf   = "SUBROUTN.INF"
  27. NwSubsInf        = "NWSUBS.INF"
  28. Exit_Code        = 0
  29.  
  30. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  31. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  32.  
  33. Manufacturer            = "Novell"
  34. ProductMajorVersion    = "1"
  35. ProductMinorVersion    = "0"
  36. ProductVersion            = $(ProductMajorVersion)"."$(ProductMinorVersion)
  37. DriverName                = "OdiLoad"
  38. OdiModules                 = "ODI_Modules"
  39. NE3200_1BYTE = 511034
  40.  
  41.  
  42. NetRuleHardwareType          = "nwDriver nwAdapter"
  43. NetRuleHardwareBindForm      = " yes yes container"
  44. ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(DriverName)"\CurrentVersion"
  45. ;
  46. ; ParamKeyname not used - not updated
  47. ; ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardware$(Option)Name)"\Parameters"
  48. ;
  49.  
  50. [GeneralConstants]
  51. from    = ""
  52. to        = ""
  53. ExitCodeOk         = 0
  54. ExitCodeCancel = 1
  55. ExitCodeFatal  = 2
  56.  
  57. KeyNull                 = ""
  58. MAXIMUM_ALLOWED    = 33554432
  59. RegistryErrorIndex = NO_ERROR
  60. KeyProduct              = ""
  61. KeyParameters        = ""
  62.  
  63. TRUE            = 1
  64. FALSE            = 0
  65. NoTitle        = 0
  66.  
  67. ExitState    = "Active"
  68. OldVersionExisted = $(FALSE)
  69.  
  70. DriverPath      = $(!STF_NTPATH)\netware
  71.  
  72. [ODIParameters]
  73.     ODINodeAddress = ""
  74.     ODIDriverAdditionalParms = {}
  75.     ODICustomList = {}
  76.     ODITokenRing        = ""
  77.     ODITokenRingSnap    = ""
  78.     ;
  79.     ; File specific Parameters:
  80.     ;   ISA LAN Driver file:
  81.     ;        ODISlotList = {}
  82.     ;        ODIDefaultSlot = ""
  83.     ;     MCA and EISA LAN Driver files:
  84.     ;        ODISlotList = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
  85.     ;        ODIDefaultSlot = "2"
  86.     ;
  87.     ODISlotList = {}
  88.     ODIDefaultSlot = ""
  89.  
  90. [date]
  91.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  92.  
  93.  
  94. [Identify]
  95.  
  96.     read-syms Identification
  97.  
  98.     set Status        = STATUS_SUCCESSFUL
  99.     set Identifier  = $(OptionType)
  100.     set Media        = #("Source Media Descriptions", 1, 1)
  101.  
  102.     Return $(Status) $(Identifier) $(Media)
  103.  
  104. [ReturnOptions]
  105.  
  106.     read-syms ODIStrings$(!STF_LANGUAGE)
  107.  
  108.     set Status        = STATUS_FAILED
  109.     set OptionList     = {}
  110.     set OptionTextList = {}
  111.  
  112.     set LanguageList = ^(LanguagesSupported, 1)
  113.     Ifcontains(i) $($0) in $(LanguageList)
  114.         ifstr(i) $($1) == ""
  115.             goto returnoptions
  116.         endif
  117.  
  118.         set PlatformList = ^(PlatformsSupported, 1)
  119.         Ifcontains(i) $($1) in $(PlatformList)
  120.             goto returnoptions
  121.         else
  122.             set Status = STATUS_NOTSUPPORTED
  123.             goto finish_ReturnOptions
  124.         endif
  125.     else
  126.         set Status = STATUS_NOLANGUAGE
  127.         goto finish_ReturnOptions
  128.     endif
  129.  
  130. returnoptions = +
  131.     set OptionList     = ^(Options, 1)
  132.     set OptionTextList = {}
  133.  
  134.     ForListDo $(OptionList)
  135.         set OptionTempString = " ODI "#($($),Title,1)$(AdapterForNetWare)
  136.         set OptionTextList = >($(OptionTextList), $(OptionTempString) )
  137.     EndForListDo
  138.  
  139.     set Status         = STATUS_SUCCESSFUL
  140.  
  141. Debug-Output "OEMNADOD.INF-[finish_ReturnOptions]:"
  142. Debug-Output "OEMNADOD.INF-          Status = "$(Status)
  143. Debug-Output "OEMNADOD.INF-      OptionList = "$(OptionList)
  144. Debug-Output "OEMNADOD.INF-  OptionTextList = "$(OptionTextList)
  145.  
  146. finish_ReturnOptions = +
  147.     Return $(Status) $(OptionList) $(OptionTextList)
  148.  
  149. [InstallOption]
  150.  
  151.     set Option    = $($1)
  152.     set SrcDir    = $($2)
  153.     set AddCopy  = $($3)
  154.     set DoCopy    = $($4)
  155.     set DoConfig = $($5)
  156.  
  157.     set LanguageList = ^(LanguagesSupported, 1)
  158.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  159.         Return STATUS_NOLANGUAGE
  160.     endif
  161.  
  162.     set-subst LF = "\n"
  163.     read-syms GeneralConstants
  164.     read-syms FileConstants
  165.     read-syms ODIParameters
  166.     read-syms DialogConstants$(!STF_LANGUAGE)
  167.     read-syms ODIStrings$(!STF_LANGUAGE)
  168.     ifstr(i) $(!NTN_Origination) == "NCPA"
  169.         set Continue = "OK"
  170.     endif
  171.     read-syms FileConstants$(!STF_LANGUAGE)
  172.  
  173.     detect date
  174.  
  175. ;    set-title  $(Function$(Option)Title)
  176.  
  177.     set to    = Begin
  178.     set from = Begin
  179.     set CommonStatus = STATUS_SUCCESSFUL
  180.     
  181.  
  182.     EndWait
  183.  
  184. Begin = +
  185.  
  186.     set CurrentInstallMode = ""
  187.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  188.         set StartLabel = removeadapter
  189.         goto skipmakingthelists
  190.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  191.         set StartLabel = UpgradeSoftware
  192.         set CurrentInstallMode = configure
  193.         set DoCopy = YES
  194.         set AddCopy = YES
  195.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  196.         set StartLabel = bindingadapter
  197.         goto skipmakingthelists
  198.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  199.         set StartLabel = configureadapter
  200.         set CurrentInstallMode = configure
  201.     else
  202.         set DoCopy = YES
  203.         set AddCopy = YES
  204.         set StartLabel = installadapter
  205.         set OEM_ABANDON_OPTIONS = {}
  206.         set OEM_ABANDON_SOFTWARE = FALSE
  207.         set OEM_ABANDON_ON = TRUE
  208.     endif
  209.  
  210.     set ParameterListNames = ^(DefaultParameterLists, 1)    ; NWIRQList, NWMEMList1, etc.
  211.     set ListNames = ^(ODIListNamesSection, 1)                    ; List1, list2, ..., list6
  212.     set ODIKeywordList = ^(ChoicesNamesList, 1)                ; Int, mem, Port, etc.
  213.     set ODITitleList = ^(ChoicesNamesList, 2)                    ; Interrupt Number, Port, etc.
  214.     set MSParameterList = ^(ChoicesNamesList, 3)                ; InterruptNumber, IOBaseAddress, etc.
  215.  
  216.     set DriverListNames = {}
  217.     set ODINumberofDriverLists = 0
  218.     ForListDo ^($(Option),0 )
  219.         ifcontains(i) $($) IN $(ListNames)
  220.             set DriverListNames = >($(DriverListNames), $($))
  221.         else-ifstr(i) $($) == "CUSTOM"
  222.             set ODICustomList = #($(Option), Custom, 1)
  223.         endif
  224.     EndForListDo
  225.  
  226.     QueryListSize ODINumberofDriverLists $(DriverListNames)
  227.  
  228. ;
  229. ; DriverListNames now contains the List names the selected ODI driver has (i.e. {List1, List2})
  230. ; ODINumberofDriverLists now contains the number of lists used
  231. ;
  232.  
  233.     Debug-Output "DriverListNames = "$(DriverListNames)
  234.     Debug-Output "Size of DriverListNames = "$(ODINumberofDriverLists)
  235.  
  236.     ForListDo $(DriverListNames)
  237.         set $($)Keyword = #($(Option), $($), 1)
  238.         ifstr $($($)Keyword) != ""
  239.             set $($)Default = #($(Option), $($), 3)
  240.  
  241.             ifcontains(i) $($($)Keyword) IN $(ODIKeywordList)
  242.                 set $($)Title = *($(ODITitleList), ~($(ODIKeywordList), $($($)Keyword)))
  243.                 set ThisListName = #($(Option), $($), 2)
  244.                 set MSParameterName$(#) = *($(MSParameterList), ~($(ODIKeywordList), $($($)Keyword)))
  245.                 set FinalList = {}
  246.  
  247.                 ifcontains(i) $(ThisListName) IN $(ParameterListNames)
  248.                     ifstr(i) #($(Option), $($), 4) == "ALL"
  249.                         set FinalList = ^($(ThisListName), 1)
  250.                     else
  251.                         set CountUpTo = #($(Option), $($), 5)
  252.  
  253.                         ifstr(i) $(CountUpTo) == "END"
  254.                             set CountUpTo = $(MAXIMUM_ALLOWED)
  255.                         endif
  256.  
  257.                         set StartNumber = #($(Option), $($), 4))
  258.  
  259.                         ForListDo ^($(ThisListName), 1)
  260.                             ifint $(#) >= $(StartNumber)
  261.                                 ifint $(#) <= $(CountUpTo)
  262.                                     set FinalList = >($(FinalList), $($))
  263.                                 endif
  264.                             endif
  265.                         EndForListDo
  266.                     endif
  267.                 else
  268.                     ;
  269.                     ; User passed in the list
  270.                     ;
  271.                     Debug-Output "User passed in a list"
  272.                     set $($)Title = #($(Option), $($), 2)
  273.                     set FinalList = #($(Option), $($), 4)
  274.                 endif
  275.             else
  276.                 ;
  277.                 ; User passed in a new keyword
  278.                 ;
  279.                 Debug-Output "User passed in a new keyword"
  280.                 set $($)Title = #($(Option), $($), 2)
  281.                 set MSParameterName$(#) = ""
  282.                 set FinalList = #($(Option), $($), 4)
  283.             endif
  284.         set $($)List = $(FinalList)
  285.         endif
  286.     Debug-Output "List"$(#)"Title = "$($($)Title)
  287.     Debug-Output "List"$(#)"Default = "$($($)Default)
  288.     Debug-Output "List"$(#)"Keyword = "$($($)Keyword)
  289.     Debug-Output "List"$(#)"List = "$($($)List)
  290.     Debug-Output "MSParameterName"$(#)" = "$(MSParameterName$(#))
  291.     EndForListDo
  292.  
  293. skipmakingthelists = +
  294.  
  295.     Debug-Output "Starting skipmakingthelist"
  296.     set ODILANDriverTitle = #($(Option), Title, 1)
  297.     Split-String #($(Option), DriverName, 2) "." SplitFileNameList
  298.     set ODILANDriverName = *($(SplitFileNameList), 1)
  299.     set ODIMediaType = #($(Option), MediaType, 1)
  300.     set ODICardType = #($(Option), CardType, 1)
  301.     set ODICardId = #($(Option), CardId, 1)
  302.     ifstr(i) $(ODICardType) == "PCI"
  303.         set ODIVendor = #($(Option), Vendor, 1)
  304.     endif
  305.     ifstr(i) #($(Option), CanShareSlot, 1) == "YES"
  306.         set SkipDescriptionCheck = "NO"
  307.     else
  308.         set SkipDescriptionCheck = "YES"
  309.     endif
  310.     Debug-Output "ODILANDriverName = "$(ODILANDriverName)
  311.     Debug-Output "ODIMediaType = "$(ODIMediaType)
  312.  
  313.     ifstr(i) $(ODIMediaType) == "ETHERNET"
  314.         set NdisMediaType = "1"
  315.     else-ifstr(i) $(ODIMediaType) == "TOKEN-RING"
  316.         set NdisMediaType = "2"
  317.     else-ifstr(i) $(ODIMediaType) == "FDDI"
  318.         set NdisMediaType = "4"
  319.     else
  320.         Debug-Output "OEMNADOD.INF: Unknown media type "$(ODIMediaType)
  321.         set NdisMediaType = ""
  322.     endif
  323.  
  324.     set from = $(fatal)
  325.     set to = $(fatal)
  326.     goto $(StartLabel)
  327.  
  328. installadapter = +
  329.  
  330.     Ifstr(i) $(DoCopy) == "YES"
  331.         ;
  332.         ;  Get source location
  333.         ;
  334.         Shell $(NwSubsInf), DoAskLANSource, $(!STF_CWDDIR), $(SrcDir) YES
  335.  
  336.         Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  337.             Goto ShellCodeError
  338.         Else-Ifstr(i) $($R0) == STATUS_FAILED
  339.             Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  340.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  341.                 goto ShellCodeError
  342.             endif
  343.             set Error = $($R0)
  344.             Goto fatal
  345.         Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  346.             Goto end
  347.         Endif
  348.  
  349.         Set SrcDir = $($R1)
  350.     Endif
  351.  
  352.     install "Install-Option"
  353.  
  354.     goto adapteroptions
  355.  
  356. configureadapter = +
  357.     Debug-Output "Starting configureadapter."
  358.     Ifstr $(KeyProduct) == $(KeyNull)
  359.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  360.         Ifstr $(KeyProduct) == $(KeyNull)
  361.             set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  362.             Debug-Output "OEMNADOD.INF: Cannot find component product key "$(!NTN_RegBase)
  363.             goto fatalregistry
  364.         Endif
  365.     Endif
  366.  
  367.     Set AdapterNumber = ""
  368.  
  369.     Shell $(UtilityInf) FindService, $(KeyProduct)
  370.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  371.         Debug-Output "OEMNADOD.INF: FindService shell failure "$($ShellCode)
  372.         Goto ShellCodeError
  373.     Endif
  374.     Ifstr(i) $($R0) != NO_ERROR
  375.         Debug-Output "OEMNADOD.INF: FindService Error "$($R0)
  376.         Goto fatalregistry
  377.     endif
  378.  
  379.     set KeyParameters = $($R2)
  380.     set ServiceAreaHandle = $($R1)
  381.  
  382.     Ifstr $(KeyParameters) == $(KeyNull)
  383.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  384.         Debug-Output "OEMNADOD.INF: Cannot find component service "$(KeyProduct)
  385.         goto fatalregistry
  386.     endif
  387.  
  388.     set OldVersionExisted = $(TRUE)
  389.  
  390.     set ValueName = ""
  391.     set ValueData = ""
  392.     set ValueStr  = ""
  393.     set ValueList = {}
  394.  
  395.     GetRegValue $(KeyParameters) ODILoadName ODILoadName
  396.     Set CardInstanceName = *($(ODILoadName),4)
  397.  
  398.     Ifstr $(CardInstanceName) == $(KeyNull)
  399.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  400.         Debug-Output "OEMNADOD.INF: Cannot find CardInstanceName"
  401.         goto fatalregistry
  402.     endif
  403.  
  404.     set KeyToFind = $(!NTN_ServiceBase)"\ODILOAD\ODI_MODULES\"$(CardInstanceName)
  405.     OpenRegKey $(!REG_H_LOCAL) ""  $(KeyToFind) $(MAXIMUM_ALLOWED) DriverKey
  406.     Ifstr $(DriverKey) == $(KeyNull)
  407.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  408.         Debug-Output "OEMNADOD.INF: Cannot find component product key = "$(KeyToFind)
  409.         goto fatalregistry
  410.     Endif
  411.  
  412.     GetRegValue $(DriverKey) Parameters ParameterList
  413.  
  414.     ;  get the data portion
  415.     set ParameterList = *($(ParameterList), 4)
  416.  
  417.     Debug-Output "parameter list = "$(ParameterList)
  418.  
  419.     ForListDo $(ParameterList)
  420.         set ThisParameterList = $($)
  421.         Split-String $($) " " SplitList
  422.         set KeyToSearchFor = *($(SplitList), 1)
  423.         set ValueToUse = *($(SplitList), 3)
  424.         Debug-Output "Keytosearchfor = "$(KeyToSearchFor)
  425.         Debug-Output "ValueToUse = "$(ValueToUse)
  426.         ;
  427.         ;   #1    #2     #3
  428.         ; "Parm"  " "     "Value"
  429.         ;
  430.         set ValueFound = 0
  431.  
  432.         ;
  433.         ; check frametypes for TOKEN-RING, TOKEN-RING_SNAP
  434.         ;
  435.         ifstr(i) $(KeyToSearchFor) == "FRAME"
  436.             ;
  437.             ; Don't append Frametypes to ODIAdditionalParms, so set ValueFound = 1
  438.             ;
  439.             set ValueFound = 1
  440.             QueryListSize SplitListSize $(SplitList)
  441.             ifstr(i) *($(SplitList), 3) == "TOKEN-RING"
  442.                 set LastParameter = *($(SplitList), $(SplitListSize))
  443.                 ifstr(i) $(LastParameter) == "MSB"
  444.                     set ODITokenRing = "MSB"
  445.                 else-ifstr(i) $(LastParameter) == "LSB"
  446.                     set ODITokenRing = "LSB"
  447.                 else
  448.                     ;
  449.                     ; Not there, so default to MSB
  450.                     ;
  451.                     set ODITokenRing = "MSB"
  452.                 endif
  453.             else-ifstr(i) *($(SplitList), 3) == "TOKEN-RING_SNAP"
  454.                 set LastParameter = *($(SplitList), $(SplitListSize))
  455.                 ifstr(i) $(LastParameter) == "MSB"
  456.                     set ODITokenRingSnap = "MSB"
  457.                 else-ifstr(i) $(LastParameter) == "LSB"
  458.                     set ODITokenRingSnap = "LSB"
  459.                 else
  460.                     ;
  461.                     ; Not there, so default to MSB
  462.                     ;
  463.                     set ODITokenRingSnap = "MSB"
  464.                 endif
  465.             endif
  466.         ;
  467.         ; Check for NODE parameter
  468.         ;
  469.         else-ifstr(i) $(KeyToSearchFor) == "NODE"
  470.             set ODINodeAddress = $(ValueToUse)
  471.             set ValueFound = 1
  472.         ;
  473.         ; Check for SLOT parameter
  474.         ;
  475.         else-ifstr(i) $(KeyToSearchFor) == "SLOT"
  476.             set ODIDefaultSlot = $(ValueToUse)
  477.             set ValueFound = 1
  478.         ;
  479.         ; Check for BUSNAME parameter - ignore it
  480.         ;
  481.         else-ifstr(i) $(KeyToSearchFor) == "BUSNAME"
  482.             set ValueFound = 1
  483.         ;
  484.         ; Check for BUSTYPE parameter
  485.         ;
  486.         else-ifstr(i) $(KeyToSearchFor) == "BUSTYPE"
  487.             set ValueFound = 1
  488.             set BusInterfaceType = $(ValueToUse)
  489.         ;
  490.         ; Check for BUS parameter
  491.         ;
  492.         else-ifstr(i) $(KeyToSearchFor) == "BUS"
  493.             set ValueFound = 1
  494.             set BusNumber = $(ValueToUse)
  495.         endif
  496.  
  497.         ForListDo $(DriverListNames)
  498.             ifstr(i) $(KeyToSearchFor) == $($($)Keyword)
  499.                 set $($)Default = $(ValueToUse)
  500.                 set ValueFound = 1
  501.                 ifcontains(i) $(ValueToUse) NOT-IN $($($)List)
  502.                     set $($)List = >($($($)List), $(ValueToUse))
  503.                 endif
  504.             endif
  505.         EndForListDo
  506.  
  507.         Debug-Output "Value Found = "$(ValueFound)
  508.  
  509.         ifint $(ValueFound) == 0
  510.             set FoundInCustom = 0
  511.  
  512.             ForListDo $(ODICustomList)
  513.                 ifstr(i) $($) == $(ThisParameterList)
  514.                     set FoundInCustom = 1
  515.                 endif
  516.             EndForListDo
  517.  
  518.             Debug-Output "Found in Custom = "$(FoundInCustom)
  519.  
  520.               ifint $(FoundInCustom) == 0
  521.                 ifstr $(ODIDriverAdditionalParms) == {}
  522.                     set ODIDriverAdditionalParms = $(KeyToSearchFor)" "$(ValueToUse)
  523.                 else
  524.                     set ODIDriverAdditionalParms = >($(ODIDriverAdditionalParms), $(KeyToSearchFor)" "$(ValueToUse))
  525.                 endif
  526.             endif
  527.         endif
  528.     EndForListDo
  529.  
  530.     Debug-Output "AdditionalParms = "$(ODIDriverAdditionalParms)
  531.     Debug-Output "CustomList = "$(ODICustomList)
  532.     Debug-Output "BusType = "$(BusInterfaceType)
  533.     Debug-Output "Bus = "$(BusNumber)
  534.  
  535.  
  536. adaptersetup =+
  537.  
  538.     goto adapteroptions
  539. adapteroptions = +
  540.     set from = adapteroptions
  541.  
  542.     ;
  543.     ; Find what NLS directory is being used
  544.     ;
  545.  
  546.     set NovellParameters = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\Parameters"
  547.     OpenRegKey $(!REG_H_LOCAL) "" $(NovellParameters) $(MAXIMUM_ALLOWED) KeyNovellParameters
  548.     ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  549.         GetRegValue $(KeyNovellParameters) "NWLanguage" LanguageList
  550.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  551.             set NLSDirName = *($(LanguageList), 4)
  552.             LoadLibrary $(NetWareForWindowsNT) $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nwsetupr.dll" NwLibHandle
  553.             SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nwnthelp.hlp" $(!MinimumID) $(!MaximumID)
  554.         else
  555.             goto fatalregistry
  556.         endif
  557.         CloseRegKey $(KeyNovellParameters)
  558.     else
  559.         goto fatalregistry
  560.     Endif
  561.  
  562. dothedialog = +
  563.     Debug-Output "Start dothedialog."
  564.     ifint $(ODINumberofDriverLists) == 0
  565.         Debug-Output "ODINumberofDriveLists == 0."
  566.         ifstr(i) $(CurrentInstallMode) == configure
  567.             read-syms NoParms$(!STF_LANGUAGE)
  568.             ui start "WorkstationDLG" $(NwLibHandle)
  569.  
  570.             ifstr(i) $(DLGEVENT) == "CONTINUE"
  571.                 Debug-Output "OK hit"
  572.             else-ifstr(i) $(DLGEVENT) == "EXIT"
  573.             ;
  574.             ; user selected the advanced button
  575.             ;
  576.                 goto doadvancedsettings
  577.             endif
  578.         endif
  579.     else
  580.         Debug-Output "ODINumberofDriveLists != 0."
  581.         read-syms LANDriverDlg$(!STF_LANGUAGE)
  582.  
  583.         set NotifyFields = {}
  584.         set ComboListItemsIn = {}
  585.         set ComboListItemsOut = {}
  586.         ForListDo $(DriverListNames)
  587.             set NotifyFields = >($(NotifyFields), "NO")
  588.             set ComboListItemsIn = >($(ComboListItemsIn), $($)List)
  589.             ifstr $($($)Value) == ""
  590.                 set $($)Value = $($($)Default)
  591.             endif
  592.             set ComboListItemsOut = >($(ComboListItemsOut), $($)Value)
  593.         EndForListDo
  594.  
  595.         ui start "LANDriverParms" $(NwLibHandle)
  596.  
  597.         ifstr(i) $(DLGEVENT) == "CONTINUE"
  598.             Debug-Output "Continue hit"
  599.         else-ifstr(i) $(DLGEVENT) == "BACK"
  600.             Debug-Output "Action: CANCEL. Bye."
  601.             set CommonStatus = STATUS_USERCANCEL
  602.             ui pop 1
  603.             FreeLibrary $(NwLibHandle)
  604.             goto end
  605.         else-ifstr(i) $(DLGEVENT) == "EXIT"
  606.  
  607. doadvancedsettings =+
  608.         ;
  609.         ; user selected the advanced button
  610.         ;
  611.             Debug-Output "Action: ADVANCED DIALOG"
  612.             read-syms AdvancedDialog$(!STF_LANGUAGE)
  613.             set RadioIn = {}
  614.             set ComboListItemsIn = {}
  615.             set ComboListItemsOut = {}
  616.             set ComboOut = $(ODIDefaultSlot)
  617.  
  618.             ifstr(i) $(ODIMediaType) == "TOKEN-RING"
  619.                 ifstr(i) $(ODISlotList) == {}
  620.                     set DlgTemplate = "DLG_ADVANCEDDRIVER3"
  621.                 else
  622.                     set ComboListItemsIn = { ODISlotList }
  623.                     set ComboListItemsOut = { ComboOut }
  624.                     set DlgTemplate = "DLG_ADVANCEDDRIVER1"
  625.                 endif
  626.  
  627.                 ifstr(i) $(ODITokenRing) == "LSB"
  628.                     set RadioIn = { 2 }
  629.                 else
  630.                     set RadioIn = { 1 }
  631.                 endif
  632.  
  633.                 ifstr(i) $(ODITokenRingSnap) == "LSB"
  634.                     set RadioIn = >($(RadioIn), "4")
  635.                 else
  636.                     set RadioIn = >($(RadioIn), "3")
  637.                 endif
  638.             else
  639.                 ifstr(i) $(ODISlotList) == {}
  640.                     set DlgTemplate = "DLG_ADVANCEDDRIVER4"
  641.                 else
  642.                     set ComboListItemsIn = { ODISlotList }
  643.                     set ComboListItemsOut = { ComboOut }
  644.                     set DlgTemplate = "DLG_ADVANCEDDRIVER2"
  645.                 endif
  646.             endif
  647.  
  648.             ui start "AdvancedDialog" $(NwLibHandle)
  649.             ui pop 1
  650.  
  651.             ifstr(i) $(DLGEVENT) == "CONTINUE"
  652.                 set ODINodeAddress = *($(EditTextOut), 1)
  653.                 set ODIDefaultSlot = *($(ComboOut), 1)
  654.                 ifcontains "2" IN $(RadioOut)
  655.                     set ODITokenRing = "LSB"
  656.                 else
  657.                     set ODITokenRing = "MSB"
  658.                 endif
  659.                 ifcontains "4" IN $(RadioOut)
  660.                     set ODITokenRingSnap = "LSB"
  661.                 else
  662.                     set ODITokenRingSnap = "MSB"
  663.                 endif
  664.             else-ifstr(i) $(DLGEVENT) == "BACK"
  665.                 Debug-Output "Action: CANCEL. Bye."
  666.             endif
  667.  
  668.             goto dothedialog
  669.         else
  670.             Debug-Output "Action: unknown. Bye."
  671.             ui pop 1
  672.             FreeLibrary $(NwLibHandle)
  673.             goto end
  674.         endif
  675.  
  676.         ui pop 1
  677.  
  678.  
  679.         ForListDo $(DriverListNames)
  680.             Debug-Output "List"$(#)"Value = "$($($)Value)
  681.         EndForListDo
  682.     endif
  683.  
  684.     Debug-Output "FreeLibrary $(NwLibHandle)"
  685.     FreeLibrary $(NwLibHandle)
  686.  
  687.     ifint $(OldVersionExisted) == $(TRUE)
  688.         ifstr(i) $(CurrentInstallMode) == configure
  689.             Debug-Output "going to writeparameters based on OldVersionExisted."
  690.             goto writeconfigureparameters
  691.         endif
  692.     endif
  693.  
  694.     StartWait
  695.     
  696.     goto writeparameters
  697.  
  698. writeparameters = +
  699.     Debug-Output "Starting writeparameters."
  700.  
  701.     Debug-Output "Calling GetPCIInformation."
  702.     ; Use the GetPCIInformation utiltiy to find the bus number and slot number
  703.     ; the adapter is installed in.
  704.     set NTBusType = 5
  705.     Shell $(UtilityInf), GetPCIInformation, $(ODIVendor) $(ODICardId)
  706.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  707.         EndWait
  708.         goto ShellCodeError
  709.     endif
  710.     set AdapterList = $($R0)
  711.  
  712.     set ProductHardwareDescription = +
  713.         "ODI "$(ODILANDriverTitle)$(AdapterForNetWare)
  714.  
  715.     ForListDo $(AdapterList)
  716.         ; Steps need to be taken for multiple adapters of the same type.
  717.         set NTBusNumber = *($($),1)
  718.         set NTSlotNumber = *($($),2)
  719.  
  720.  
  721.         Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(NTBusNumber), +
  722.             $(NTSlotNumber), $(ProductHardwareDescription), +
  723.             $(ODILANDriverName), $(SkipDescriptionCheck)
  724.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  725.             goto ShellCodeError
  726.         endif
  727.         ifstr $($R0) != "NO_ERROR"
  728.             set Error = $($R0)
  729.             goto fatal
  730.         endif
  731.         ifstr(i) $($R1) != "YES"
  732.  
  733.             Debug-Output "Doing Shell AddHardwareComponent."
  734.             Shell $(UtilityInf), AddHardwareComponent, $(ODILANDriverName),+
  735.                 $(STF_CONTEXTINFNAME),$(ProductKeyName)
  736.  
  737.             ifint $($R4) != -1
  738.                 Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS),+
  739.                 $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  740.             endif
  741.  
  742.  
  743.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  744.                 Debug-Output "OEMNADOD.INF:Cannot add hardware component "$($ShellCode)
  745.                 EndWait
  746.                 goto ShellCodeError
  747.             endif
  748.  
  749.             set RegistryErrorIndex = $($R0)
  750.  
  751.             Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  752.                 EndWait
  753.                 Debug-Output "OEMNADOD.INF: Registry error: add hardware component "$(RegistryErrorIndex)
  754.                 CloseRegKey $($R1)
  755.                 CloseRegKey $($R2)
  756.                 CloseRegKey $($R3)
  757.                 goto fatalregistry
  758.             endif
  759.  
  760.             set KeyParameters = $($R3)
  761.             set KeyAdapterRules = $($R2)
  762.             set AdapterNumber = $($R4)
  763.  
  764.             Set-add TempAdapterNumber = $(AdapterNumber),0
  765.  
  766.             set CardInstanceName = $(ODILANDriverName)" #"$(TempAdapterNumber)
  767.  
  768.             set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),+
  769.                 $(Manufacturer)}, {Title,$(NoTitle),$(!REG_VT_SZ),+
  770.                 "["$($R4)"] ODI "$(ODILANDriverTitle)$(AdapterForNetWare)},+
  771.                 {Description,$(NoTitle),$(!REG_VT_SZ),+
  772.                     $(ProductHardwareDescription)},+
  773.                 {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ODILANDriverName)},+
  774.                 {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  775.                 {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)},+
  776.                 {OdiAdapter,$(NoTitle),$(!REG_VT_DWORD),1}}
  777.  
  778.             Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  779.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  780.                 Debug-Output "OEMNADOD.INF: AddValueList ShellCode error "$($ShellCode)
  781.                 EndWait
  782.                 goto ShellCodeError
  783.             endif
  784.  
  785.             CloseRegKey $($R1)
  786.  
  787.             set TempProdName = """"$(ODILANDriverName)$(AdapterNumber)""""
  788.             set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  789.  
  790.             set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),+
  791.                 $(NetRuleHardwareType)},{bindform,$(NoTitle),$(!REG_VT_SZ),+
  792.                 $(TempBindForm)}, {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  793.  
  794.             Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  795.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  796.                 Debug-Output "OEMNADOD.INF: AddValueList ShellCode error "$($ShellCode)
  797.                 EndWait
  798.                 goto ShellCodeError
  799.             endif
  800.  
  801.             set RegistryErrorIndex = $($R0)
  802.  
  803.             Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  804.                 EndWait
  805.                 Debug-Output "OEMNADOD.INF: AddValueList Registry error "$(RegistryErrorIndex)
  806.                 CloseRegKey $(KeyParameters)
  807.                 CloseRegKey $(KeyAdapterRules)
  808.                 goto fatalregistry
  809.             endif
  810.  
  811.             CloseRegKey $(KeyAdapterRules)
  812.  
  813.             SetRegValue $(KeyParameters) {OdiLoadName,$(NoTitle),$(!REG_VT_SZ),$(CardInstanceName)}
  814.             SetRegValue $(KeyParameters) {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(NTBusNumber)}
  815.             SetRegValue $(KeyParameters) {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(NTSlotNumber)}
  816.  
  817.  
  818.  
  819.  
  820. writeconfigureparameters = +
  821.             ; Jump to here if the drivers is already installed and specific driver
  822.             ; configuration was selected.
  823.  
  824.             ifstr(i) $(NdisMediaType) == ""
  825.                 set NdisMediaType = "1"
  826.                 Debug-Output "OEMNADOD.INF: Media type NOT set"
  827.             endif
  828.  
  829.              set NewValueList = {{MediaType,$(NoTitle),$(!REG_VT_DWORD), +
  830.                 $(NdisMediaType)}}
  831.  
  832.             ForListDo $(DriverListNames)
  833.                 ifstr $(MSParameterName$(#)) != ""
  834.                     set-hextodec DecValue = $($($)Value)
  835.                     set ValueToAdd = {$(MSParameterName$(#)),$(NoTitle), +
  836.                         $(!REG_VT_DWORD), $(DecValue)}
  837.                     set NewValueList = >($(NewValueList), $(ValueToAdd))
  838.                 endif
  839.             EndForListDo
  840.     
  841.     
  842.             Debug-Output "AddValueList with KeyParameters = "$(KeyParameters)
  843.             Debug-Output "and NewValueList = "$(NewValueList)
  844.             Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  845.  
  846.  
  847.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  848.                 Debug-Output "OEMNADOD.INF: AddValueList ShellCode error "$($ShellCode)
  849.                 EndWait
  850.                 goto ShellCodeError
  851.             endif
  852.  
  853.             set RegistryErrorIndex = $($R0)
  854.  
  855.             Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  856.                 Debug-Output "OEMNADOD.INF: AddValueList Registry error "$($ShellCode)
  857.                 EndWait
  858.                 goto fatalregistry
  859.             endif
  860.  
  861.  
  862.             set PromptForSrcRouting = "FALSE"
  863.  
  864.  
  865.  
  866.  
  867.  
  868.             Ifstr(i) $(ODIMediaType) == "ETHERNET"
  869.                 set ODIParmList = {"Frame ETHERNET_802.2", +
  870.                            "Frame ETHERNET_802.3", +
  871.                            "Frame ETHERNET_II", +
  872.                            "Frame ETHERNET_SNAP" }
  873.             else-Ifstr(i) $(ODIMediaType) == "TOKEN-RING"
  874.                 set ODIParmList = {"Frame TOKEN-RING "$(ODITokenRing), +
  875.                     "Frame TOKEN-RING_SNAP "$(ODITokenRingSnap) }
  876.  
  877.                 ;If there is an ODI stack available remove the comment on the next line
  878.                 ;set PromptForSrcRouting = "TRUE"
  879.  
  880.             else-Ifstr(i) $(ODIMediaType) == "FDDI"
  881.                 set ODIParmList = {"Frame FDDI_802.2", +
  882.                     "Frame FDDI_SNAP" }
  883.  
  884.                 ;If there is an ODI stack available remove the comment on the next line
  885.                 ;set PromptForSrcRouting = "TRUE"
  886.  
  887.             else
  888.                 set ODIParmList = {}
  889.             endif
  890.  
  891.             Debug-Output "Framenames = "$(ODIParmList)
  892.  
  893.  
  894.             ;
  895.             ; Build List to send to ODI_MODULES\CARDNAME
  896.             ;
  897.             ForListDo $(DriverListNames)
  898.                 ifstr $($($)Value) == $(Present)
  899.                     set ODIParmList = >($(ODIParmList), $($($)Keyword))
  900.                 else-ifstr $($($)Value) != $(NotPresent)
  901.                     set ODIParmList = >($(ODIParmList), $($($)Keyword)" "$($($)Value))
  902.                 endif
  903.             EndForListDo
  904.  
  905.             ifstr $(ODINodeAddress) != ""
  906.                 set ODIParmList = >($(ODIParmList), "Node "$(ODINodeAddress))
  907.             endif
  908.  
  909.             ifstr $(ODIDefaultSlot) != ""
  910.                 set ODIParmList = >($(ODIParmList), "Slot "$(ODIDefaultSlot))
  911.             endif
  912.  
  913.             ForListDo $(ODIDriverAdditionalParms)
  914.                 ifstr $($) != ""
  915.                     set ODIParmList = >($(ODIParmList), $($))
  916.                 endif
  917.             EndForListDo
  918.  
  919.             ForListDo $(ODICustomList)
  920.                 ifstr $($) != ""
  921.                     set ODIParmList = >($(ODIParmList), $($))
  922.                 endif
  923.             EndForListDo
  924.  
  925.  
  926.             Debug-Output "ODIParmList = "$(ODIParmList)
  927.  
  928.  
  929.             Debug-Output "Calling NwSubsInf to NwAddOdiLoadModule."
  930.             Shell $(NwSubsInf) NwAddOdiLoadModule $(CardInstanceName) +
  931.                 $(AdapterNumber) $(ODIParmList)
  932.             Debug-Output "Back from Calling NwSubsInf to NwAddOdiLoadModule."
  933.  
  934.             Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  935.                 Debug-Output "OEMNADOD.INF: NwAddOdiLoadModule failure "$($ShellCode)
  936.                 Goto ShellCodeError
  937.             Endif
  938.  
  939.             Set ErrorString = $($R0)
  940.             Ifstr(i) $(ErrorString) != NO_ERROR
  941.                 Debug-Output "OEMNADOD.INF: NwAddOdiLoadModule "$(ErrorString)
  942.                 EndWait
  943.                 goto fatalregistry
  944.             Endif
  945.  
  946.             Debug-Output "PromptForSrcRouting = "$(PromptForSrcRouting)
  947.             Ifstr(i) $(PromptForSrcRouting) == "TRUE"
  948.                 Shell $(NwSubsInf) NwConfigureSourceRouting
  949.             Endif
  950.  
  951.             Ifstr(i) $(!NTN_InstallMode) == install
  952.                 ; Open the driver key to add the busNumber, busType, HIN,
  953.                 ;and slotNumber
  954.                 set KeyToFind = +
  955.                     $(!NTN_ServiceBase)"\ODILOAD\ODI_MODULES\"$(CardInstanceName)
  956.                 OpenRegKey $(!REG_H_LOCAL) ""  $(KeyToFind) $(MAXIMUM_ALLOWED) +
  957.                     DriverKey
  958.                 set NewValueList = +
  959.                     {{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(NTBusNumber)},+
  960.                     {BusType,$(NoTitle),$(!REG_VT_DWORD),$(NTBusType)},+
  961.                     {HIN,$(NoTitle),$(!REG_VT_DWORD),1},+
  962.                     {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(NTSlotNumber)}}
  963.               Shell  $(UtilityInf), AddValueList, $(DriverKey), $(NewValueList)
  964.                 CloseRegKey $(DriverKey)
  965.                 Set OdiAdapterInstalledOkay = "1"
  966.             Endif
  967.  
  968.             ifstr(i) $(CurrentInstallMode) == configure
  969.                 goto endwriteparameters
  970.             endif
  971.         endif
  972.     EndForListDo
  973. endwriteparameters = +
  974.     CloseRegKey $(KeyParameters)
  975.     EndWait
  976.     goto successful
  977.  
  978. bindingadapter =+
  979.     set Error = $(BindingError)
  980.     goto fatal
  981.  
  982. removeadapter = +
  983.     Shell $(NwSubsInf) NwRemoveAdapter $(!NTN_RegBase)
  984.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  985.         Debug-Output "OEMNADOD.INF: Shell Error NwRemoveAdapter "$($ShellCode)
  986.     Endif
  987.  
  988.     Shell $(NwSubsInf) NwRemoveNtAdapter $(ProductKeyName) $(Manufacturer)
  989.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  990.         Debug-Output "OEMNADOD.INF: NwRemoveNtAdapter "$($ShellCode)
  991.         goto ShellCodeError
  992.     Endif
  993.  
  994.     set RegistryErrorIndex = $($R0)
  995.  
  996.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  997.         Debug-Output "OEMNADOD.INF: NwRemoveNtAdapter "$(RegistryErrorIndex)
  998.         Ifstr(i) $(RegistryErrorIndex) == "SHELL_CODE_ERROR"
  999.             goto ShellCodeError
  1000.         Endif
  1001.         goto fatalregistry
  1002.     Endif
  1003.  
  1004.     goto end
  1005.  
  1006. UpgradeSoftware = +
  1007.     Ifstr(i) $(DoCopy) == "YES"
  1008.         Ifstr(i) $(SrcDir) == ""
  1009.  
  1010.             ;
  1011.             ;  Get source location
  1012.             ;
  1013.  
  1014.             Shell $(NwSubsInf), DoAskLANSource, $(!STF_CWDDIR), $(SrcDir) YES
  1015.  
  1016.             Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1017.                 Goto ShellCodeError
  1018.             Else-Ifstr(i) $($R0) == STATUS_FAILED
  1019.                 Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  1020.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1021.                     goto ShellCodeError
  1022.                 endif
  1023.                 set Error = $($R0)
  1024.                 Goto fatal
  1025.             Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  1026.                 Goto end
  1027.             Endif
  1028.  
  1029.             Set SrcDir = $($R1)
  1030.         Endif
  1031.     Endif
  1032.  
  1033.     install "Install-Option"
  1034.  
  1035.     Ifstr(i) $(DoConfig) == "YES"
  1036.         goto configureadapter
  1037.     else
  1038.         goto end
  1039.     endif
  1040.  
  1041. successful = +
  1042.     goto end
  1043.  
  1044. abandon = +
  1045.     ForListDo $(OEM_ABANDON_OPTIONS)
  1046.     Shell $(NwSubsInf) NwRemoveNtAdapter $(ProductKeyName) $(Manufacturer) $($)
  1047.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1048.         Debug-Output "OEMNADOD.INF: NwRemoveNtAdapter "$($ShellCode)
  1049.         goto ShellCodeError
  1050.     Endif
  1051.  
  1052.         set RegistryErrorIndex = $($R0)
  1053.  
  1054.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1055.             goto fatalregistry
  1056.         endif
  1057.     EndForListDo
  1058.  
  1059.     goto end
  1060.  
  1061. warning = +
  1062.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  1063.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1064.         goto ShellCodeError
  1065.     endif
  1066.     ifstr(i) $($R1) == "OK"
  1067.         goto $(to)
  1068.     else-ifstr(i) $($R1) == "CANCEL"
  1069.         goto $(from)
  1070.     else
  1071.         goto "end"
  1072.     endif
  1073.  
  1074.  
  1075. nonfatalinfo = +
  1076.     Set CommonStatus = STATUS_USERCANCEL
  1077.     Set Severity = STATUS
  1078.     goto nonfatalmsg
  1079. nonfatal = +
  1080.     Set Severity = NONFATAL
  1081.     goto nonfatalmsg
  1082. nonfatalmsg = +
  1083.     ifstr(i) $(Error) == ""
  1084.         Set Severity = NONFATAL
  1085.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1086.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1087.             goto ShellCodeError
  1088.         endif
  1089.         set Error = $($R0)
  1090.     endif
  1091.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  1092.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1093.         goto ShellCodeError
  1094.     endif
  1095.     ifstr(i) $($R1) == "OK"
  1096.         goto $(from)
  1097.     else
  1098.         goto "end"
  1099.     endif
  1100.  
  1101. fatalregistry = +
  1102.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  1103.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1104.         goto ShellCodeError
  1105.     endif
  1106.     set Error = $($R0)
  1107.     goto fatal
  1108.  
  1109. fataldetect = +
  1110.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  1111.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1112.         Debug-Output "OEMNADOD.INF: ShellCode error: cannot get an error string."
  1113.         goto ShellCodeError
  1114.     endif
  1115.     set Error = $($R0)
  1116.     Goto fatal
  1117. fatal = +
  1118.     ifstr(i) $(Error) == ""
  1119.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1120.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1121.             goto ShellCodeError
  1122.         endif
  1123.         set Error = $($R0)
  1124.     endif
  1125.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1126.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1127.         goto ShellCodeError
  1128.     endif
  1129.  
  1130.     goto setfailed
  1131.  
  1132. ShellCodeError = +
  1133.     set DlgType      = "MessageBox"
  1134.     set STF_MB_TITLE = "Error: "$(Function$(Option)Title)
  1135.     set STF_MB_TEXT  = "Shell Code Error"
  1136.     set STF_MB_TYPE  = 1
  1137.     set STF_MB_ICON  = 3
  1138.     set STF_MB_DEF    = 1
  1139.     ui start "Error Message"
  1140.     goto setfailed
  1141.  
  1142. setfailed = +
  1143.     set CommonStatus = STATUS_FAILED
  1144.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1145.         set OEM_ABANDON_ON = FALSE
  1146.         goto abandon
  1147.     endif
  1148.     goto end
  1149.  
  1150. end = +
  1151.     goto term
  1152.  
  1153. term = +
  1154. ;    Ifstr(i) $(OdiAdapterInstalledOkay) == "1"
  1155. ;        Debug-Output "Calling NwSubsInf to GetOdiAdapterList."
  1156. ;        Shell $(NwSubsInf) GetOdiAdapterList
  1157. ;        ifint $($R3) < 2
  1158. ;            Set DlgType = "MessageBox"
  1159. ;            Set STF_MB_TITLE = "NetWare ODI LAN Drivers Setup"
  1160. ;            Set STF_MB_TEXT  = "The NetWare ODI Adapter was successfully installed.  "+
  1161. ;                            "Your NetWare installation is COMPLETE."
  1162. ;            Set STF_MB_TYPE  = 1
  1163. ;            Set STF_MB_ICON  = 2
  1164. ;            Set STF_MB_DEF    = 1
  1165. ;            ui start "Error Message"
  1166. ;        Endif
  1167. ;    Endif
  1168.  
  1169.     ;
  1170.     ; Check if ODINSUP needs to be installed
  1171.     ;
  1172.  
  1173.     Shell $(NwSubsInf), CheckIfODINSUPIsNeeded
  1174.  
  1175.     Return $(CommonStatus)
  1176.  
  1177. [Install-Option]
  1178.     set STF_VITAL = ""
  1179.  
  1180.     ifstr(i) $(AddCopy) == "YES"
  1181.         AddSectionKeyFileToCopyList $(Option) DriverName $(SrcDir)landrv $(!STF_WINDOWSSYSPATH)\netware
  1182.     endif
  1183.  
  1184.     ifstr(i) $(DoCopy) == "YES"
  1185.         set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1186.         CopyFilesInCopyList
  1187.     endif
  1188.  
  1189.     ifstr(i) $(DoConfig) == "YES"
  1190.     endif
  1191.  
  1192.     Exit
  1193.  
  1194. ;[Install-Update]
  1195. ;    set STF_VITAL        = ""
  1196. ;    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1197. ;
  1198. ;    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\netware
  1199. ;    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1200. ;
  1201. ;    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1202. ;    CopyFilesInCopyList
  1203. ;
  1204. ;    exit
  1205.  
  1206. [ProductType]
  1207. STF_PRODUCT  = Winnt
  1208. STF_PLATFORM = I386
  1209.  
  1210.  
  1211. [ChoicesNamesList]
  1212.     "AutoDetect",         "Auto Detect Media",     "AutoDetectMediaConnected"
  1213.     "TP",                    "TP (RJ-45 Connector)", "RJ45Connector"
  1214.     "BNC",                "BNC Connector",            "BNCConnector"
  1215.     "TP_Full_Duplex",    "Full Duplex Mode",        "TPFullDuplexMode"
  1216.     "Line_Speed",        "Line Speed",                "LineSpeed"
  1217.  
  1218.  
  1219. [ODIListNamesSection]
  1220.     List1
  1221.     List2
  1222.     List3
  1223.     List4
  1224.     List5
  1225.     List6
  1226.  
  1227. [KeyOnlyList]
  1228.     Num1 = $(Present)
  1229.     Num2 = $(NotPresent)
  1230.  
  1231. [Line_SpeedList]
  1232.     Num1 = $(NotPresent)
  1233.     Num2 = 100
  1234.     Num3 = 10
  1235.  
  1236. [DefaultParameterLists]
  1237.     KeyOnlyList
  1238.     Line_SpeedList
  1239.  
  1240. ;
  1241. ;See the documentation on "Building your own OEMSETUP.INF" for more information.
  1242. ;
  1243.  
  1244.  
  1245. [Options]
  1246.     ODI_NE2100PCI
  1247.     ODI_EN1203PCI
  1248.     ODI_EN1207PCI
  1249.     ODI_E100B
  1250.     ODI_A2560
  1251.     ODI_IBMFE
  1252.     ODI_HPTX
  1253.  
  1254. [ODI_NE2100PCI]
  1255. Title = "Novell PCNET NE2100 (PCI)"
  1256. DriverName = 1, CNE2100.LAN
  1257. MediaType = "ETHERNET"
  1258. CardType = "PCI"
  1259. CardId = 8192
  1260. Vendor = 4130
  1261. Custom =    {}
  1262. CanShareSlot = "NO"
  1263.  
  1264. [ODI_EN1203PCI]
  1265. Title = "Accton EN1203 PCI Ethernet Adapter"
  1266. DriverName = 1, ACC07.LAN
  1267. MediaType = "ETHERNET"
  1268. CardType = "PCI"
  1269. CardId = 0002
  1270. Vendor = 4113        ;Dec's VendorID 0x1011
  1271. Custom =    {}
  1272. CanShareSlot = "NO"
  1273. List1 = "AutoDetect",     KeyOnlyList,        $(Present),    All
  1274. List2 = "TP",             KeyOnlyList,        $(NotPresent), All
  1275. List3 = "BNC",            KeyOnlyList,        $(NotPresent), All
  1276. List4 = "TP_Full_Duplex", KeyOnlyList,        $(NotPresent), All
  1277.  
  1278. [ODI_EN1207PCI]
  1279. Title = "Accton EN1207(-TX) PCI Fast Ethernet Adapter"
  1280. DriverName = 1, ACC07.LAN
  1281. MediaType = "ETHERNET"
  1282. CardType = "PCI"
  1283. CardId = 0009
  1284. Vendor = 4113        ;Dec's VendorID 0x1011
  1285. Custom =    {}
  1286. CanShareSlot = "NO"
  1287. List1 = "AutoDetect",     KeyOnlyList,            $(Present),        All
  1288. List2 = "TP",             KeyOnlyList,            $(NotPresent), All
  1289. List3 = "BNC",            KeyOnlyList,            $(NotPresent), All
  1290. List4 = "TP_Full_Duplex", KeyOnlyList,            $(NotPresent), All
  1291. List5 = "Line_Speed",     Line_SpeedList,        $(NotPresent), All
  1292.  
  1293. [ODI_E100B]
  1294. Title = "Intel EtherExpress PRO/100B" 
  1295. DriverName = 1, E100B.LAN
  1296. MediaType = "ETHERNET"
  1297. CardType = "PCI"
  1298. CardId = 4649       ;1229h
  1299. Vendor = 32902      ;8086h
  1300. Custom =    {}
  1301. List1 = "SPEED" , "Speed" , "0", { "0", "10", "100"}
  1302. List2 = "FORCEDUPLEX" , "ForceDuplex", "0", {"0", "1", "2"}
  1303. CanShareSlot = "NO"
  1304.  
  1305. [ODI_A2560]
  1306. Title = "ATI AT-2560 Series PCI/100 Ethernet Adapter Driver"
  1307. DriverName = 1, A2560.LAN
  1308. MediaType = "ETHERNET"
  1309. CardType = "PCI"
  1310. CardId = 4649       ;1229h
  1311. Vendor = 32902      ;8086h
  1312. Custom =        {}
  1313. List1 = "SPEED" , "Speed" , "0", { "0", "10", "100"}
  1314. List2 = "FORCEDUPLEX" , "ForceDuplex", "0", {"0", "1", "2"}
  1315. CanShareSlot = "NO"
  1316.  
  1317. [ODI_IBMFE]
  1318. Title = "IBM 100/10 PCI Ethernet Adapter"
  1319. DriverName = 1, IBMFE.LAN
  1320. MediaType = "ETHERNET"
  1321. CardType = "PCI"
  1322. CardId = 4649       ;1229h
  1323. Vendor = 32902      ;8086h
  1324. Custom =        {}
  1325. List1 = "SPEED" , "Speed" , "0", { "0", "10", "100"}
  1326. List2 = "FORCEDUPLEX" , "ForceDuplex", "0", {"0", "1", "2"}
  1327. CanShareSlot = "NO"
  1328.  
  1329. [ODI_HPTX]
  1330. Title = "HP 10/100TX PCI LAN Adapter"
  1331. DriverName = 1, HPTX.LAN
  1332. MediaType = "ETHERNET"
  1333. CardType = "PCI"
  1334. CardId = 4649       ;1229h
  1335. Vendor = 32902      ;8086h
  1336. Custom =        {}
  1337. List1 = "SPEED" , "Speed" , "0", { "0", "10", "100"}
  1338. List2 = "FORCEDUPLEX" , "ForceDuplex", "0", {"0", "1", "2"}
  1339. CanShareSlot = "NO"
  1340.  
  1341.  
  1342. [Strings]
  1343.     ;
  1344.     ; Every string that is in quotes from this point to the end of the
  1345.     ; file will be pulled out and put into the translation teams database.
  1346.     ; There parser looks for the section [Strings] and then goes to the
  1347.     ; end of the file.  DO NOT put strings below this point in the file
  1348.     ; that should not be translated.  Likewise, all strings that need to
  1349.     ; be translated should be in quotes and below this point in the file.
  1350.     ;
  1351.  
  1352. [Source Media Descriptions]
  1353.     1  = "NetWare ODI LAN Drivers Disk" , TAGFILE = NWC_24
  1354.  
  1355. [ODIStringsENG]
  1356. AdapterForNetWare = " Adapter for NetWare"
  1357. NetWareForWindowsNT = "NetWare for Windows NT"
  1358. Present = "Present"
  1359. NotPresent = "Not Present"
  1360. NetWareODILANDriversDisk = "NetWare ODI LAN Drivers Disk"
  1361. BindingError = "Binding: Sorry, not yet implemented."
  1362.  
  1363. [DialogConstantsENG]
  1364. Help        = "&Help"
  1365. ;Exit        = "&Cancel"
  1366. OK          = "OK"
  1367. HelpContext = ""
  1368. Continue    = "&Continue"
  1369. Cancel      = "&Cancel"
  1370. Advanced = "&Advanced"
  1371. IDH_NETWAREWRKSTATIONPARMS =  901
  1372. IDH_NETWAREIPXBIND         =  902
  1373. IDH_IPXSPXPARMS            =  903
  1374. IDH_NETWORKPROTOCOL        =  904
  1375. IDH_NETWAREODISETTINGS     =  905
  1376. IDH_NETWARECLIENTINSTALL   =  906
  1377. IDH_NETWARENDISODI         =  907
  1378. IDH_NODEADDRESSOVERIDE     =  908
  1379. IDH_RESMGRCONFIG                =  951
  1380.  
  1381. [LANDriverDlgENG]
  1382. DlgType = "RadioCombination"
  1383. DlgTemplate = "List"$(ODINumberofDriverLists)
  1384. Caption = "ODI "$(ODILANDriverTitle)" Adapter Configuration"
  1385. EditTextIn = ""
  1386. EditTextLim = ""
  1387. CBOptionsGreyed = {}
  1388. HelpContext = $(IDH_NETWAREODISETTINGS)
  1389.  
  1390.  
  1391. [NoParmsENG]
  1392. DlgType = "RadioCombination"
  1393. DlgTemplate = "NO_PARAMETERS"
  1394. Caption = "ODI "$(ODILANDriverTitle)" Adapter Configuration"
  1395. EditTextIn = ""
  1396. EditTextLim = ""
  1397. CBOptionsGreyed = {}
  1398. HelpContext = ""
  1399. CBOptionsGreyed = {}
  1400. ComboListItemsIn = {}
  1401. ComboListItemsOut = {}
  1402. NotifyFields = {}
  1403.  
  1404.  
  1405. [AdvancedDialogENG]
  1406. DlgType = "RadioCombination"
  1407. Caption = "Advanced Settings"
  1408. EditTextIn = $(ODINodeAddress)
  1409. EditTextLim = 13
  1410. CBOptionsGreyed = {}
  1411. HelpContext = $(IDH_NODEADDRESSOVERIDE)
  1412. NotifyFields = {}
  1413.  
  1414.  
  1415. [FileConstantsENG]
  1416. ProCaption    = "NetWare ODI LAN Drivers Setup"
  1417. ProCancel    = "Cancel"
  1418. ProCancelMsg = "NetWare for Windows NT is not correctly installed.  "+
  1419.                 "Are you sure you want to cancel copying files?"
  1420. ProCancelCap = "Network Setup Message"
  1421. ProText1     = "Copying:"
  1422. ProText2     = "To:"
  1423.