home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 February / VPR9602A.ISO / drvlib / netcard / x86 / ncrtok / oemsetup.inf < prev   
INI File  |  1995-10-27  |  37KB  |  1,299 lines

  1. ;***********************************************************************
  2. ;
  3. ;  NCRTOK.INF
  4. ;
  5. ;       NCR StarLAN network card and driver SETUP INF file.
  6. ;
  7. ;
  8. ;  Copyright (c) 1993  DWB Associates Inc.  All Rights Reserved
  9. ;
  10. ;***********************************************************************
  11.  
  12.  
  13. [Identification]
  14.     OptionType = NetAdapter
  15.  
  16. [PlatformsSupported]
  17.     ISA
  18.     EISA
  19.     MCA
  20.  
  21. [LanguagesSupported]
  22.     ENG
  23.  
  24. [Options]
  25.     NCRTOK
  26.  
  27. [OptionsTextENG]
  28.     NCRTOK     = "NCR StarLAN 16/4 Token-Ring Adapter"
  29.  
  30. [Source Media Descriptions]
  31.     1   = "NCRTOK Install Diskette"
  32.     2   = "Windows NT Setup CD-ROM Disk"
  33.  
  34. [Files-NCRTOK]
  35.     1,ncrtok.sys, SIZE=40000
  36.     1,macblk.dat, SIZE=40000
  37.  
  38. [Files-NCRTOK-Upd]
  39.     1,ncrtok.sys, SIZE=40000,OVERWRITE=ALWAYS
  40.     1,macblk.dat, SIZE=40000,OVERWRITE=ALWAYS
  41.  
  42. [Files-Dlg]
  43.     1,ncrtok.dll, SIZE=40000
  44.     1,ncrtok.hlp, SIZE=40000
  45.  
  46. [Files-Inf]
  47.     1, oemsetup.inf, SIZE=20000, RENAME=$(!OldInfName)
  48.  
  49. [Files-ncrncdet]
  50.     1,ncrncdet.dll, SIZE=40000
  51.  
  52. [date]
  53.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  54.  
  55. [FileConstants]
  56.     UtilityInf      = "UTILITY.INF"
  57.     ParamInf        = "NCPARAM.INF"
  58.     SubroutnInf     = "SUBROUTN.INF"
  59.     NetEventDLL     = $(!STF_WINDOWSSYSPATH)\netevent.dll
  60.  
  61. [RegistryConstants]
  62.     SoftwareType                     = "driver"
  63.     Manufacturer                     = "NCR"
  64.     ProductMajorVersion              = "3"
  65.     ProductMinorVersion              = "1"
  66.     ProductVersion                   = $(ProductMajorVersion)"."$(ProductMinorVersion)
  67.     ProductSoftwareName              = "NcrTok"
  68.     ProductSoftwareTitle             = "NcrTok Adapter Driver"
  69.     ProductSoftwareImagePath         = "\SystemRoot\System32\drivers\ncrtok.sys"
  70.     NetRuleSoftwareType              = "ncrtokSys ndisDriver ncrtokDriver"
  71.     NetRuleSoftwareUse               = $(SoftwareType)
  72.     NetRuleSoftwareBindForm          = """NcrTokSys"" yes no container"
  73.     NetRuleSoftwareClass             = {"ncrtokDriver basic"}
  74.     NetRuleSoftwareBindable          = {"ncrtokDriver ncrtokAdapter non exclusive 100"}
  75.     ProductHardwareName              = "NcrTok"
  76.     ProductHardwareNCRTOKTitle       = "NCR StarLAN 16/4 Token-Ring Adapter"
  77.     NetRuleHardwareType              = "ncrtok ncrtokAdapter"
  78.     NetRuleHardwareBindForm          = " yes yes container"
  79.     NetRuleHardwareClass             = {"ncrtokAdapter basic"}
  80.     ProductKeyName                   = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  81.     ParamKeyName                     = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  82.     ProductSoftwareDescription       = "NCR StarLAN 16/4 Token-Ring Adapter Driver"
  83.     ProductHardwareNCRTOKDescription = "NCR StarLAN 16/4 Token-Ring Adapter"
  84.  
  85. [GeneralConstants]
  86.     KeyNull            = ""
  87.     MAXIMUM_ALLOWED    = 33554432
  88.     KeyProduct         = ""
  89.     KeyParameters      = ""
  90.     TRUE               = 1
  91.     FALSE              = 0
  92.     NoTitle            = 0
  93.     DriverPath         = $(!STF_WINDOWSSYSPATH)\drivers
  94.  
  95. [FileConstantsENG]
  96.     ProCaption    = "Windows NT Setup"
  97.     ProCancel     = "&Cancel"
  98.     ProCancelMsg  = "Windows NT Networking is not correctly installed.  "+
  99.             "Are you sure you want to cancel copying files?"
  100.  
  101.     ProCancelCap  = "Network Setup Message"
  102.     ProText1      = "Copying:"
  103.     ProText2      = "To:"
  104.     FunctionTitle = "NCR StarLAN 16/4 Token-Ring Adapter Setup"
  105.  
  106. [DownLoadInfo]
  107.     DownFile = "macblk.dat"
  108.  
  109. [NcrSlot]
  110.     SLOT1 = "1",1
  111.     SLOT2 = "2",2
  112.     SLOT8 = "3",3
  113.     SLOT4 = "4",4
  114.     SLOT5 = "5",5
  115.     SLOT6 = "6",6
  116.     SLOT7 = "7",7
  117.  
  118. [NcrIrqs]
  119.     IRQ2 = "9",09
  120.     IRQ0 = "3",03
  121.     IRQ1 = "7",07
  122.     IRQ4 = "10",10
  123.     IRQ5 = "11",11
  124.     IRQ6 = "12",12
  125.     IRQ7 = "14",14
  126.     IRQ8 = "15",15
  127.  
  128. [NcrDmaChan]
  129.     DMA0 = "7",7
  130.     DMA1 = "3",3
  131.     DMA2 = "5",5
  132.     DMA3 = "6",6
  133.  
  134. [NcrIoBase]
  135.     Base0 = "0A20",0x0A20
  136.     Base1 = "1A20",0x1A20
  137.     Base2 = "2A20",0x2A20
  138.     Base3 = "3A20",0x3A20
  139.  
  140. [HexDigits]
  141.     Hex0 = 0
  142.     Hex1 = 1
  143.     Hex2 = 2
  144.     Hex3 = 3
  145.     Hex4 = 4
  146.     Hex5 = 5
  147.     Hex6 = 6
  148.     Hex7 = 7
  149.     Hex8 = 8
  150.     Hex9 = 9
  151.     HexA = A
  152.     HexB = B
  153.     HexC = C
  154.     HexD = D
  155.     HexE = E
  156.     HexF = F
  157.  
  158. [DialogConstantsENG]
  159.     Help         = "&Help"
  160.     Exit         = "C&ancel"
  161.     OK           = "&OK"
  162.     Continue     = "&Continue"
  163.     Cancel       = "Ca&ncel"
  164.     BadMaxFrame1 = "Max Frame must be at least 256"
  165.     BadMaxFrame2 = "Max Frame must be no greater than 4472 for 4Mbps"
  166.     BadMaxFrame3 = "Max Frame must be no greater than 17800 for 16Mbps"
  167.     BadProdId1   = "Product Id must be 36 hexadecimal digits"
  168.     BadProdId2   = "Product Id contains invalid hexadecimal digit: "
  169.     BadAddr1     = "Network Address must be 12 hexadecimal digits"
  170.     BadAddr2     = "Network Address contains invalid hexadecimal digit: "
  171.     BadAddr3     = "Network Address invalid, must be between 4000 0000 0000 and 4000 7fff ffff"
  172.     CardError1   = "NcrTok card not installed in system"
  173.     CardError2   = "NcrTok card(s) are already installed"
  174.     ModeError    = "DMA Channel is not used in DIO Mode"
  175.  
  176. [FileDependentDlgISA]
  177.     DlgTemplate = "NCRISA"
  178.     HelpContext = "30000"
  179.  
  180. [FileDependentDlgMCA]
  181.     DlgTemplate = "NCRMCA"
  182.     HelpContext = "30001"
  183.  
  184. [FileDependentDlgENG]
  185.     DlgType           = "RadioCombination"
  186.     Caption           = "NCR StarLAN 16/4 Token-Ring Adapter Setup"
  187.     Label1            = "&IRQ Level"
  188.     Label2            = "IO &Base Address"
  189.     Label3            = "&DMA Channel"
  190.     Label4            = "&Slot Number"
  191.     Label5            = "Ma&x Frame"
  192.     Label6            = "&Product Id"
  193.     Label9            = "D&MA 32 Bit Addresses"
  194.     Label10           = "Net&work Address"
  195.     Group1            = "Ring &Speed"
  196.     Group2            = "Access &Mode"
  197.     Radio1            = "16 Mbps"
  198.     Radio2            = "4 Mbps"
  199.     Radio3            = "DMA"
  200.     Radio4            = "DIO"
  201.     IrqList           = ^(NcrIrqs, 1)
  202.     IoBaseList        = ^(NcrIoBase, 1)
  203.     DmaList           = ^(NcrDmaChan, 1)
  204.     SlotList          = ^(NcrSlot, 1)
  205.     SpeedValue        = 0
  206.     DmaModeValue      = "dma"
  207.     Combo1List        = $(IrqList)
  208.     Combo1Out         = $(InterruptNumber)
  209.     Combo2List        = $(IoBaseList)
  210.     Combo2Out         = $(IoBaseAddress)
  211.     Combo3List        = $(DmaList)
  212.     Combo3Out         = $(DmaChan)
  213.     Combo4List        = $(SlotList)
  214.     Combo4Out         = $(SlotValue)
  215.     ComboListItemsIn  = {Combo1List, Combo2List, Combo3List, Combo4List}
  216.     ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out}
  217.     CBOptionsGreyed   = {}
  218.     NotifyFields      = {NO, NO, YES}
  219.     EditTextLim       = {5, 36, 12}
  220.     EditFocusOn       = ""
  221.     RCCtlFocusOn      = 403
  222.  
  223. [Identify]
  224.     read-syms Identification
  225.     set Status     = STATUS_SUCCESSFUL
  226.     set Identifier = $(OptionType)
  227.     set Media      = #("Source Media Descriptions", 1, 1)
  228.     Return $(Status) $(Identifier) $(Media)
  229.  
  230. [ReturnOptions]
  231. set !DebugOutputControl = 1
  232.     set OptionList     = ^(Options, 1)
  233.     set OptionTextList = ^(OptionsText$($0), 1)
  234.     set Status         = STATUS_SUCCESSFUL
  235.  
  236.     set LanguageList = ^(LanguagesSupported, 1)
  237.     Ifcontains(i) $($0) in $(LanguageList)
  238.       ifstr(i) $($0) == ""
  239.     set Status = STATUS_NOLANGUAGE
  240.     goto ExitReturnOptions
  241.       endif
  242.     else
  243.       set Status = STATUS_NOLANGUAGE
  244.       goto ExitReturnOptions
  245.     endif
  246.  
  247. ExitReturnOptions = +
  248.     Return $(Status) $(OptionList) $(OptionTextList)
  249.  
  250. [InstallOption]
  251.     StartWait
  252.  
  253.     set !DebugOutputControl = 1
  254.  
  255.     set Option   = $($1)
  256.     set SrcDir   = $($2)
  257.     set AddCopy  = $($3)
  258.     set DoCopy   = $($4)
  259.     set DoConfig = $($5)
  260.  
  261.     set LanguageList = ^(LanguagesSupported, 1)
  262.  
  263.     read-syms GeneralConstants
  264.     read-syms FileConstants
  265.     read-syms RegistryConstants
  266.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  267.     read-syms DialogConstants$(!STF_LANGUAGE)
  268.     read-syms FileConstants$(!STF_LANGUAGE)
  269.  
  270.     ifstr(i) $(!STF_BUSTYPE) == MCA
  271.     read-syms FileDependentDlgMCA
  272.     else
  273.     read-syms FileDependentDlgISA
  274.     endif
  275.  
  276.     set NoArg = $(TRUE)
  277.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  278.     set SubFunction = RemoveAdapter
  279.     else-Ifstr(i) $(!NTN_InstallMode) == update
  280.     set SubFunction = UpgradeSoftware
  281.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  282.     set NoArg = $(FALSE)
  283.     set SubFunction = ConfigureAdapter
  284.     else-Ifstr(i) $(!NTN_InstallMode) == install
  285.     set NoArg = $(FALSE)
  286.     set SubFunction = InstallAdapter
  287.     else
  288.     set SubFunction = NoWay
  289.     endif
  290.  
  291.     ifint $(NoArg) == $(TRUE)
  292.     Shell "" $(SubFunction)
  293.     else
  294.     Shell "" $(SubFunction) $(Option) $(DoCopy) $(AddCopy) $(SrcDir)
  295.     endif
  296.  
  297.     EndWait
  298.     return $($R0)
  299.  
  300. [InstallAdapter]
  301. ; we start from here
  302.     read-syms GeneralConstants
  303.     read-syms FileConstants
  304.     read-syms RegistryConstants
  305.     read-syms DialogConstants$(!STF_LANGUAGE)
  306.  
  307.     set Option  = $($0)
  308.     set DoCopy  = $($1)
  309.     set AddCopy = $($2)
  310.     set SrcDir  = $($3)
  311.  
  312.     detect date
  313.     set CurrentTime = *($(Now),1)
  314.  
  315.     set KeyProduct = $(KeyNull)
  316.     set DoSetup    = $(TRUE)
  317.  
  318.     Set DetectedCard = $(FALSE)
  319.     Ifstr(i) $(!STF_NCDETECT) == YES
  320.     Ifstr(i) $(!STF_NCOPTION) == $(Option)
  321.        Set DetectedCard = $(TRUE)
  322.     Endif
  323.     Endif
  324. ; assume everu one is EISA or ISA
  325.     set EisaIsa = "YES"
  326.     ifstr(i) $(!STF_BUSTYPE) == MCA
  327.     set EisaIsa = "NO"
  328.     endif
  329. ;deal with eisa    
  330.     ifstr(i) $(EisaIsa) == "YES"
  331.     Set BusNumber = 0
  332.     ifint $(DetectedCard) == $(TRUE)
  333.         Set TypeList = {{IRQ,IRQ_List,IRQLevel},+
  334.                 {IOADDR, IOBaseAddressDecList, IOBaseValue},+
  335.                 {DMACHANNEL, DMAChannelList, DMAChannel}}
  336.     
  337.         Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList)
  338.         Set Status = $($R0)
  339.         ifstr(i) $(Status) != STATUS_SUCCESSFUL
  340.         Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  341.         Shell "" FatalError $($R0)
  342.         Return STATUS_FAILED
  343.         Endif
  344.  
  345.         Shell $(ParamInf) Param_SetDefaults {}
  346.         set BusNumber = *($(!STF_NCDETINFO), 6)
  347.     Endif
  348.     Else  ; deal with MCA
  349.     Shell $(UtilityInf) MCAFindBus 0 1
  350.     set CardList = $($R1)
  351.     set SlotList = {}
  352.     ifstr(i) $(CardList) == {}
  353.         Shell "" FatalError $(CardError1)
  354.         return STATUS_FAILED
  355.     endif
  356.  
  357.     ForListDo $(CardList)
  358.         set BusNumber  = *($($),1)
  359.         set SlotNumber = *($($),2)
  360.         Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNumber), +
  361.         $(SlotNumber), $(ProductHardwareNCRTOKDescription), $(ProductHardwareName)
  362.  
  363.         ifstr(i) $($R1) == "YES"
  364.         Debug-Output "Card already installed"
  365.         else
  366.         Set SlotList = >($(SlotList),$(SlotNumber))
  367.         endif
  368.  
  369.     EndForListDo
  370.  
  371.     ifstr(i) $(SlotList) == {}
  372.         Shell "" FatalError $(CardError2)
  373.         return STATUS_FAILED
  374.     endif
  375.  
  376.     Endif
  377. ; check previous install
  378.     set OldVersionExisted = $(FALSE)
  379.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  380.  
  381.     Ifstr $(KeyProduct) != $(KeyNull)
  382.     CloseRegKey $(KeyProduct)
  383.  
  384.     ifstr(i) $(!NTN_RegBase) == $(ProductKeyName)
  385.         Shell $(UtilityInf) VerExistedDlg $(ProductSoftwareTitle) $(ProductVersion)
  386.         ifstr(i) $($R1) != "OK"
  387.         Return STATUS_FAILED
  388.         endif
  389.     else
  390.         Shell $(UtilityInf) CardExistedDlg
  391.         ifstr(i) $($R1) != "OK"
  392.         Return STATUS_FAILED
  393.         endif
  394.         set OldVersionExisted = $(TRUE)
  395.     endif
  396.     endif
  397. ; deal with EISA ord ISA
  398.     ifstr(i) $(EisaIsa) == "YES"
  399.     ifint $(DetectedCard) == $(TRUE)
  400.         shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD)
  401.         ifstr(i) $($R0) == STATUS_SUCCESSFUL
  402.         set DetectedParams = $($R1)
  403.         shell $(ParamInf) Param_SetDefaults $(DetectedParams)
  404.         endif
  405.     endif
  406.     endif
  407.  
  408.     ifint $(DoSetup) == $(TRUE)
  409.     set TempList = ^(NcrIrqs, 1)
  410.     set InterruptNumber = *($(TempList), 1)
  411.     set TempList = ^(NcrDmaChan, 1)
  412.     set DmaChanValue    = *($(TempList), 1)
  413.     set TempList        = ^(NcrIoBase, 1)
  414.     set IoBaseAddrValue = *($(TempList), 1)
  415.     set TempList        = ^(NcrSlot, 1)
  416.     set MaxFrame        = 4096
  417.     set ProductId       = "0910F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0"
  418.     set EarlyRelease    = 0
  419.     set SetAddress      = 0
  420.     set Dma32           = 1
  421.     set NetAddress      = "000000000000"
  422.  
  423.     ifint $(DetectedCard) == $(TRUE)
  424.         set InterruptNumber          = $(IRQLevel)
  425.         set-dectohex IoBaseAddrValue = $(IOBaseValue)
  426.         set DmaChanValue             = $(DMAChannel)
  427.         split-string $(IoBaseAddrValue), "x", TempList
  428.         set IoBaseAddrValue          = *($(TempList), 3)
  429.     endif
  430.  
  431.     set DLLPATH = ""
  432.     ifstr(i) $(DoCopy) == "YES"
  433.         OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  434.  
  435.         Ifstr $(KeyProduct) != $(KeyNull)
  436.         CloseRegKey $(KeyProduct)
  437.         set DLLPATH = $(!STF_CWDDIR)
  438.         else
  439.         set BuiltIn = "YES"
  440.         ifstr(i) $(!NTN_Origination) == "NCPA"
  441.             Set BuiltIn = "NO"
  442.         endif
  443.         Shell $(UtilityInf) DoAskSource $(!STF_CWDDIR) $(SrcDir) $(BuiltIn)
  444.         set DLLPATH = $($R1)
  445.         set SrcDir  = $($R1)
  446.         endif
  447.     endif
  448.  
  449. dowind =+
  450.     set SlotValue      = $(SlotList)
  451.     set SpeedValue     = 16
  452.     set DmaModeValue   = "dma"
  453. ; the problem is at after here
  454.     Shell "" AdapterSetup
  455.     ifint $($R0) != $(TRUE)
  456.         Return STATUS_USERCANCEL
  457.     endif
  458.  
  459.     set IRQLevel    = $(NewIrq)
  460.     set IOBaseValue = $(NewBase)
  461.     set DMAChannel  = $(NewDma)
  462.  
  463.     ifstr(i) $(EisaIsa) == "YES"
  464.         Shell $(ParamInf) Param_SaveValues
  465.         Set NewParamSettings = $($R0)
  466.  
  467.         Shell $(ParamInf) Param_VerifyResources $(NewParamSettings)
  468.         Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  469.         Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
  470.         Shell "" VerifyError $($R0)
  471.         ifstr(i) $($R0) != "OK"
  472.             goto dowind
  473.         endif
  474.         endif
  475.     endif
  476.  
  477.     ifint $(OldVersionExisted) == $(FALSE)
  478.         Shell "" SetCopy $(DoCopy) $(AddCopy) $(SrcDir)
  479.         ifint $($R0) == $(TRUE)
  480.         Shell "" SetSoftware $(CurrentTime)
  481.         ifint $($R0) != $(TRUE)
  482.             Return STATUS_FAILED
  483.         endif
  484.         endif
  485.     endif
  486.  
  487.     Shell "" SetHardware $(CurrentTime)
  488.  
  489.     ifint $($R0) == $(TRUE)
  490.         Shell "" WriteParameters
  491.     endif
  492.     endif
  493.  
  494.     ifint $($R0) == $(TRUE)
  495.     Return STATUS_SUCCESSFUL
  496.     else
  497.     Return STATUS_FAILED
  498.     endif
  499.  
  500. [ConfigureAdapter]
  501.     read-syms GeneralConstants
  502.     read-syms FileConstants
  503.     read-syms RegistryConstants
  504.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  505.     set Option = $($0)
  506.  
  507.     ifstr(i) $(!STF_BUSTYPE) == MCA
  508.     read-syms FileDependentDlgMCA
  509.     else
  510.     read-syms FileDependentDlgISA
  511.     endif
  512.  
  513.     ifstr(i) $(!NTN_RegBase) == $(ProductKeyName)
  514.     Shell $(UtilityInf) RegistryErrorString CANNOT_CONFIGURE_SOFTWARE
  515.     Shell "" FatalError $($R0)
  516.     Return STATUS_FAILED
  517.     endif
  518.  
  519.     set EisaIsa = "YES"
  520.     ifstr(i) $(!STF_BUSTYPE) == MCA
  521.     set EisaIsa = "NO"
  522.     endif
  523.     
  524.     Set DetectedCard = $(FALSE)
  525.     Ifstr(i) $(!STF_NCDETECT) == YES
  526.     Ifstr(i) $(!STF_NCOPTION) == $(Option)
  527.        Set DetectedCard = $(TRUE)
  528.     Endif
  529.     Endif
  530.  
  531.     ifstr(i) $(EisaIsa) == "YES"
  532.     ifint $(DetectedCard) == $(TRUE)
  533.         Set TypeList = {{IRQ,IRQ_List,IRQLevel},+
  534.             {IOADDR, IOBaseAddressDecList, IOBaseValue},+
  535.             {DMACHANNEL, DMAChannelList, DMAChannel}}
  536.     
  537.         Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList)
  538.         Set Status = $($R0)
  539.         ifstr(i) $(Status) != STATUS_SUCCESSFUL
  540.         Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  541.         Shell "" FatalError $($R0)
  542.         Return STATUS_FAILED
  543.         Endif
  544.     
  545.         Shell $(ParamInf) Param_SetDefaults {}
  546.     Endif
  547.     Endif
  548.  
  549.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  550.  
  551.     Ifstr $(KeyProduct) == $(KeyNull)
  552.     Shell $(UtilityInf) RegistryErrorString CANNOT_FIND_COMPONENT_SERVICE
  553.     Shell "" FatalError $($R0)
  554.     Return STATUS_FAILED
  555.     endif
  556.  
  557.     Shell $(UtilityInf) FindService, $(KeyProduct)
  558.  
  559.     Ifstr(i) $($R0) != NO_ERROR
  560.     Shell $(UtilityInf) RegistryErrorString $($R0)
  561.     Shell "" FatalError $($R0)
  562.     Return STATUS_FAILED
  563.     endif
  564.  
  565.     Set !KeyParameters = $($R2)
  566.     CloseRegKey $($R1)
  567.  
  568.     Ifstr $(!KeyParameters) == $(KeyNull)
  569.     Shell $(UtilityInf) RegistryErrorString CANNOT_FIND_COMPONENT_SERVICE
  570.     Shell "" FatalError $($R0)
  571.     Return STATUS_FAILED
  572.     endif
  573.  
  574.     set ValueName = ""
  575.     set ValueData = ""
  576.     set ValueStr  = ""
  577.     set ValueList = {}
  578.  
  579.     EnumRegValue $(!KeyParameters) ValueList
  580.  
  581.     ForListDo $(ValueList)
  582.     set ValueItem = $($)
  583.     set ValueName = *($(ValueItem),1)
  584.     set ValueData = *($(ValueItem),4)
  585.     Ifstr(i) $(ValueName) == "Ring_Speed"
  586.         set SpeedValue = $(ValueData)
  587.     else-ifstr(i) $(ValueName) == "BusNumber"
  588.         set BusNumber = $(ValueData)
  589.     else-ifstr(i) $(ValueName) == "Dma32"
  590.         set Dma32 = $(ValueData)
  591.     else-ifstr(i) $(ValueName) == "Bus_Mode"
  592.         set DmaModeValue = $(ValueData)
  593.     else-ifstr(i) $(ValueName) == "Interrupt"
  594.         set InterruptNumber = $(ValueData)
  595.     else-ifstr(i) $(ValueName) == "Port_Address"
  596.         set IoBaseAddrValue = $(ValueData)
  597.     else-ifstr(i) $(ValueName) == "Dma_Level"
  598.         set DmaChanValue = $(ValueData)
  599.     else-ifstr(i) $(ValueName) == "Max_Frame_Size"
  600.         set MaxFrame = $(ValueData)
  601.     else-ifstr(i) $(ValueName) == "SlotNumber"
  602.         set SlotValue = $(ValueData)
  603.     else-ifstr(i) $(ValueName) == "Product_Id"
  604.         set ProductId = $(ValueData)
  605.     else-ifstr(i) $(ValueName) == "EarlyRelease"
  606.         set EarlyRelease = $(ValueData)
  607.     else-ifstr(i) $(ValueName) == "SetAddress"
  608.         set SetAddress = $(ValueData)
  609.     else-ifstr(i) $(ValueName) == "NetworkAddress"
  610.         set NetworkAddress = $(ValueData)
  611.     endif
  612.     EndForListDo
  613.  
  614.     set-dectohex IoBaseAddrValue = $(IoBaseAddrValue)
  615.     split-string $(IoBaseAddrValue), "x", TempList
  616.     set IoBaseAddrValue          = *($(TempList), 3)
  617.  
  618. winagn =+
  619.     set DLLPATH = $(!STF_CWDDIR)
  620.     Shell "" AdapterSetup
  621.  
  622.     ifint $($R0) != $(TRUE)
  623.     Return STATUS_USERCANCEL
  624.     endif
  625.  
  626.     set IRQLevel    = $(NewIrq)
  627.     set IOBaseValue = $(NewBase)
  628.     set DMAChannel  = $(NewDma)
  629.  
  630.     ifstr(i) $(EisaIsa) == "YES"
  631.     Shell $(ParamInf) Param_SaveValues
  632.     Set NewParamSettings = $($R0)
  633.     Shell $(ParamInf) Param_VerifyResources $(NewParamSettings)
  634.     Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  635.         Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
  636.         Shell "" VerifyError $($R0)
  637.         ifstr(i) $($R0) != "OK"
  638.         goto winagn
  639.         endif
  640.     endif
  641.     endif
  642.  
  643.     Shell "" WriteParameters
  644.  
  645.     ifint $($R0) == $(TRUE)
  646.     Return STATUS_SUCCESSFUL
  647.     else
  648.     Return STATUS_FAILED
  649.     endif
  650.  
  651. [NoWay]
  652.     read-syms GeneralConstants
  653.     Shell "" FatalError "NoWay"
  654.     Return STATUS_FAILED
  655.  
  656. [RemoveAdapter]
  657.     read-syms RegistryConstants
  658.     read-syms GeneralConstants
  659.     read-syms FileConstants
  660.  
  661.     Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  662.         $(ProductSoftwareName), $(!NTN_RegBase)
  663.  
  664.     ifstr(i) $($R0) != NO_ERROR
  665.         Shell $(UtilityInf) RegistryErrorString $($R0)
  666.         Shell "" FatalError $($R0)
  667.         Return STATUS_FAILURE
  668.     endif
  669.  
  670.     Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  671.         $(ProductSoftwareName)
  672.  
  673.     ifstr(i) $($R0) == REF_COUNT_NOT_ZERO
  674.         Return STATUS_SUCCESSFUL
  675.     endif
  676.  
  677.     ifstr(i) $($R0) != NO_ERROR
  678.         Shell $(UtilityInf) RegistryErrorString $($R0)
  679.         Shell "" FatalError $($R0)
  680.         Return STATUS_FAILURE
  681.     endif
  682.  
  683.     Return STATUS_SUCCESSFUL
  684.  
  685.  
  686. [UpgradeSoftware]
  687.  
  688.     read-syms GeneralConstants
  689.     read-syms RegistryConstants
  690.  
  691.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  692.  
  693.     Ifstr $(KeyProduct) == $(KeyNull)
  694.         Return STATUS_FAILED
  695.     endif
  696.  
  697.     GetRegValue $(KeyProduct),"MinorVersion", MinVersionInfo
  698.     GetRegValue $(KeyProduct),"MajorVersion", MajVersionInfo
  699.  
  700.     OpenRegKey $(KeyProduct) "" NetRules $(MAXIMUM_ALLOWED) IS_KeyNetRule
  701.     GetRegValue $(IS_KeyNetRule),"InfName", TempVar
  702.     set !OldInfName = *($(TempVar),4)
  703.  
  704.     install "Install-Update"
  705.  
  706.     ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  707.         CloseRegKey $(KeyProduct)
  708.         Return STATUS_FAILED
  709.     endif
  710.  
  711.     SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  712.     SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  713.  
  714.     CloseRegKey $(KeyProduct)
  715.  
  716.     Return STATUS_SUCCESSFUL
  717.  
  718. [AdapterSetup]
  719.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  720.     read-syms DialogConstants$(!STF_LANGUAGE)
  721.     read-syms FileConstants$(!STF_LANGUAGE)
  722.     read-syms FileConstants
  723.     read-syms GeneralConstants
  724.  
  725.     ifstr(i) $(!STF_BUSTYPE) == MCA
  726.     read-syms FileDependentDlgMCA
  727.     else
  728.     read-syms FileDependentDlgISA
  729.     endif
  730.  
  731.     set DLLPATH        = $(!p:DLLPATH)
  732.     set Combo1Out      = $(!p:InterruptNumber)
  733.     set Combo2Out      = $(!p:IoBaseAddrValue)
  734.     set SpeedValue     = $(!p:SpeedValue)
  735.     set Combo3Out      = $(!p:DmaChanValue)
  736.     set DmaModeValue   = $(!p:DmaModeValue)
  737.     set SlotList       = $(!p:SlotValue)
  738.     set MaxFrame       = $(!p:MaxFrame)
  739.     set ProductId      = $(!p:ProductId)
  740.     set SetAddress     = $(!p:SetAddress)
  741.     set Dma32          = $(!p:Dma32)
  742.  
  743.     ifint $(SetAddress) == 1
  744.     set NetworkAddress = $(!p:NetworkAddress)
  745.     else
  746.     set NetworkAddress = ""
  747.     endif
  748.  
  749.     ifint $(Dma32) == 1
  750.     set CheckItemsIn = { "ON" }
  751.     else
  752.     set CheckItemsOut = { "OFF" }
  753.     endif
  754.  
  755.     set Combo4List = $(SlotList)
  756.     set Combo4Out  = *($(SlotList), 1)
  757.  
  758.     SetHelpFile $(DLLPATH)"ncrtok.hlp" 30000 30002
  759.  
  760.     set AdapterStatus = $(FALSE)
  761.  
  762.     ifint $(SpeedValue) == 16
  763.     set FirstButton = 1
  764.     else
  765.     set FirstButton = 2
  766.     endif
  767.  
  768.     ifstr(i) $(DmaModeValue) == "dma"
  769.     set SecondButton = 3
  770.     else
  771.     set SecondButton = 4
  772.     endif
  773.  
  774.     set RadioIn = {$(FirstButton), $(SecondButton)}
  775.  
  776.     set EditTextIn = {$(MaxFrame), $(ProductId), $(NetworkAddress)}
  777.  
  778.     loadlibrary "NcrTok Install Diskette" $(DLLPATH)\ncrtok.dll DllHandle
  779.  
  780. RetryDialog =+
  781.     EndWait
  782.     ui start "InputDlg" $(DllHandle)
  783.     StartWait
  784.  
  785.     ifstr(i) $(DLGEVENT) == "NOTIFY"
  786.     IfContains "4" IN $(RadioOut)
  787.         Shell "" WarnError $(ModeError)
  788.     endif
  789.     goto RetryDialog
  790.     endif
  791.  
  792.     set NewMaxFrame        = *($(EditTextOut), 1)
  793.     set NewProductId       = *($(EditTextOut), 2)
  794.     set TempNetworkAddress = *($(EditTextOut), 3)
  795.  
  796.     ifstr(i) *($(CheckItemsOut), 1) == "ON"
  797.     set Dma32 = 1
  798.     else
  799.     set Dma32 = 0
  800.     endif
  801.  
  802.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  803.     IfContains "1" IN $(RadioOut)
  804.         set RingSpeed = 16
  805.     else-IfContains "2" IN $(RadioOut)
  806.         set RingSpeed = 4
  807.     endif
  808.     IfContains "3" IN $(RadioOut)
  809.         set DmaModeType = "dma"
  810.     else-IfContains "4" IN $(RadioOut)
  811.         set DmaModeType = "dio"
  812.     endif
  813.  
  814.     set-hextodec Base = "0x"$(Combo2Out)
  815.  
  816.     ifint $(NewMaxFrame) < 256
  817.         Shell "" WarnError $(BadMaxFrame1)
  818.         goto RetryDialog
  819.     else-ifint $(NewMaxFrame) > 4472
  820.         ifint $(RingSpeed) == 1
  821.         Shell "" WarnError $(BadMaxFrame2)
  822.         goto RetryDialog
  823.         else-ifint $(NewMaxFrame) > 17800
  824.         Shell "" WarnError $(BadMaxFrame3)
  825.         goto RetryDialog
  826.         endif
  827.     endif
  828.     Split-String $(NewProductId), "0123456789ABCDEFabcdef", TempList
  829.     set HexList = ^(HexDigits, 1)
  830.     QueryListSize ListSize $(TempList)
  831.     ifint $(ListSize) == 36
  832.         set Index1 = 1
  833.         set Loop   = 1
  834.     else
  835.         Shell "" WarnError $(BadProdId1)
  836.         goto RetryDialog
  837.     endif
  838.  
  839. ProdIdLoop =+
  840.     set Temp1 = *($(TempList), $(Index1))
  841.     ifcontains(i) $(Temp1) not-in $(HexList)
  842.         Shell "" WarnError $(BadProdId2)$(Temp1)
  843.         goto RetryDialog
  844.     endif
  845.  
  846.     set-add Index1 = $(Index1), 1
  847.     set-add Loop  = $(Loop), 1
  848.     ifint $(Loop) < 37
  849.         goto ProdIdLoop
  850.     endif
  851.  
  852.     ifstr(i) $(TempNetworkAddress) == ""
  853.         set SetAddress = 0
  854.         set AdapterStatus = $(TRUE)
  855.         goto DoneDialog
  856.     endif
  857.     set NewNetworkAddress = $(TempNetworkAddress)
  858.     Split-String $(NewNetworkAddress), "0123456789ABCDEFabcdef", TempList
  859.     set HexList = ^(HexDigits, 1)
  860.     QueryListSize ListSize $(TempList)
  861.     ifint $(ListSize) == 12
  862.         set Index1 = 1
  863.         set Loop   = 1
  864.     else
  865.         Shell "" WarnError $(BadAddr1)
  866.         goto RetryDialog
  867.     endif
  868.  
  869. NetAddrLoop =+
  870.     set Temp1 = *($(TempList), $(Index1))
  871.     ifcontains(i) $(Temp1) not-in $(HexList)
  872.         Shell "" WarnError $(BadAddr2)$(Temp1)
  873.         goto RetryDialog
  874.     endif
  875.     ifint $(Index1) == 1
  876.         ifint $(Temp1) != 4
  877.         Shell "" WarnError $(BadAddr3)
  878.         goto RetryDialog
  879.         endif
  880.     else-ifint $(Index1) == 2
  881.         ifint $(Temp1) != 0
  882.         Shell "" WarnError $(BadAddr3)
  883.         goto RetryDialog
  884.         endif
  885.     else-ifint $(Index1) == 3
  886.         ifint $(Temp1) != 0
  887.         Shell "" WarnError $(BadAddr3)
  888.         goto RetryDialog
  889.         endif
  890.     else-ifint $(Index1) == 4
  891.         ifint $(Temp1) != 0
  892.         Shell "" WarnError $(BadAddr3)
  893.         goto RetryDialog
  894.         endif
  895.     else-ifint $(Index1) == 5
  896.         ifint $(Temp1) > 7
  897.         Shell "" WarnError $(BadAddr3)
  898.         goto RetryDialog
  899.         endif
  900.     endif
  901.     
  902.     set-add Index1 = $(Index1), 1
  903.     set-add Loop  = $(Loop), 1
  904.     ifint $(Loop) < 13
  905.         goto NetAddrLoop
  906.     endif
  907.     set SetAddress = 1
  908.     set AdapterStatus = $(TRUE)
  909.     endif
  910.  
  911.  
  912. DoneDialog =+
  913.     ui pop 1
  914.     FreeLibrary $(DllHandle)
  915.  
  916.     set !p:NewBase              = $(Base)
  917.     set !p:NewIrq               = $(Combo1Out)
  918.     set !p:NewSpeed             = $(RingSpeed)
  919.     set !p:NewDma               = $(Combo3Out)
  920.     set !p:NewDmaMode           = $(DmaModeType)
  921.     set !p:NewSlot              = $(Combo4Out)
  922.     set !p:NewMaxFrame          = $(NewMaxFrame)
  923.     set !p:NewProductId         = $(NewProductId)
  924.     set !p:SetAddress           = $(SetAddress)
  925.     set !p:NetworkAddress       = $(NewNetworkAddress)
  926.     set !p:Dma32                = $(Dma32)
  927.  
  928.     return $(AdapterStatus)
  929.  
  930.  
  931. [SetCopy]
  932.     read-syms GeneralConstants
  933.     read-syms FileConstants
  934.  
  935.     set DoCopy = $($0)
  936.     set AddCopy = $($1)
  937.     set SrcDir  = $($2)
  938.     set Needcopy = $(FALSE)
  939.  
  940.     Ifstr(i) $(DoCopy) == "YES"
  941.     set NeedCopy = $(TRUE)
  942.     else-ifstr(i) $(AddCopy) == "YES"
  943.     set NeedCopy = $(TRUE)
  944.     else
  945.     Return $(TRUE)
  946.     endif
  947.  
  948.     set BuiltIn = "YES"
  949.     ifstr(i) $(!NTN_Origination) == "NCPA"
  950.     Set BuiltIn = "NO"
  951.     endif
  952.  
  953.     Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) $(BuiltIn)
  954.  
  955.     Ifstr(i) $($R0) == STATUS_FAILED
  956.     Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  957.     Shell "" FatalError $($R0)
  958.     Return $(FALSE)
  959.     Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  960.     Return $(FALSE)
  961.     Endif
  962.  
  963.     Set SrcDir = $($R1)
  964.  
  965.     install "Install-Option"
  966.  
  967.     ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  968.     Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  969.     Shell "" FatalError $($R0)
  970.     Return $(FALSE)
  971.     endif
  972.     Shell "" PrepareDetectionDll "NCRNCDET.DLL"
  973.     Return $(TRUE)
  974.  
  975. [SetSoftware]
  976.     read-syms RegistryConstants
  977.     read-syms GeneralConstants
  978.     read-syms FileConstants
  979.     read-syms date
  980.  
  981.  
  982.     Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  983.       $(ProductSoftwareName), +
  984.       $(ProductSoftwareName), +
  985.       $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  986.       $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  987.       $(NetEventDLL)
  988.  
  989.     Ifstr(i) $($R0) != NO_ERROR
  990.     Shell $(UtilityInf) RegistryErrorString $($R0)
  991.     Shell "" FatalError $($R0)
  992.     Return $(FALSE)
  993.     endif
  994.  
  995.     ;
  996.     ;   At this point:
  997.     ;     $R1 contains the product version key handle;
  998.     ;     $R2 contains the NetRules subkey handle;
  999.     ;     $R3 contains the new Services key handle; and
  1000.     ;     $R4 contains the Parameters key
  1001.     ;     $R5 contains the Linkage Key
  1002.     ;
  1003.     set KeyProduct      = $($R1)
  1004.     Set SoftNetRulesKey = $($R2)
  1005.     CloseRegKey $($R3)
  1006.     CloseRegKey $($R4)
  1007.     CloseRegKey $($R5)
  1008.  
  1009.     Ifstr(i) $($R0) != NO_ERROR
  1010.     CloseRegKey $(KeyProduct)
  1011.     CloseRegKey $(SoftNetRulesKey)
  1012.     Shell $(UtilityInf) RegistryErrorString $($R0)
  1013.     Shell "" FatalError $($R0)
  1014.     Return $(FALSE)
  1015.     endif
  1016.  
  1017.     set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  1018.             {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  1019.             {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  1020.             {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  1021.             {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  1022.             {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  1023.             {InstallDate,$(NoTitle),$(!REG_VT_DWORD),$($0)}}
  1024.  
  1025.     Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  1026.  
  1027.     Ifstr(i) $($R0) != NO_ERROR
  1028.     CloseRegKey $(KeyProduct)
  1029.     CloseRegKey $(SoftNetRulesKey)
  1030.     Shell $(UtilityInf) RegistryErrorString $($R0)
  1031.     Shell "" FatalError $($R0)
  1032.     Return $(FALSE)
  1033.     endif
  1034.  
  1035.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  1036.             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  1037.             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  1038.             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  1039.             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  1040.             {InfOption,$(NoTitle),$(!REG_VT_SZ),"NCRTOK"}}
  1041.  
  1042.     Shell  $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
  1043.  
  1044.     CloseRegKey $(KeyProduct)
  1045.     CloseRegKey $(SoftNetRulesKey)
  1046.  
  1047.     Ifstr(i) $($R0) != NO_ERROR
  1048.     Shell $(UtilityInf) RegistryErrorString $($R0)
  1049.     Shell "" FatalError $($R0)
  1050.     Return $(FALSE)
  1051.     endif
  1052.     return $(TRUE)
  1053.  
  1054. [SetHardware]
  1055.     read-syms RegistryConstants
  1056.     read-syms GeneralConstants
  1057.     read-syms FileConstants
  1058.     read-syms date
  1059.  
  1060.  
  1061.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  1062.  
  1063.     Ifstr(i) $($R0) != NO_ERROR
  1064.     CloseRegKey $($R1)
  1065.     CloseRegKey $($R2)
  1066.     CloseRegKey $($R3)
  1067.     Shell $(UtilityInf) RegistryErrorString $($R0)
  1068.     Shell "" FatalError $($R0)
  1069.     Return $(FALSE)
  1070.     endif
  1071.  
  1072. ;
  1073. ;   At this point:
  1074. ;     $R1  Registry key variable for HARDWARE\Netcard\(n)
  1075. ;     $R2  Registry key variable for HARDWARE\Netcard\(n)\\NetRules
  1076. ;     $R3  Registry key handle for <service>\Parameters key
  1077. ;     $R4  Adapter number assigned to adapter
  1078. ;     $R5  Service name generated by combining svc name with adapter number
  1079. ;
  1080.     set !KeyParameters   = $($R3)
  1081.     set KeyAdapterRules = $($R2)
  1082.     set AdapterNumber   = $($R4)
  1083.     set Option          = "NCRTOK"
  1084.  
  1085.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  1086.                {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
  1087.                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+
  1088.                {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  1089.                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  1090.                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),$($0)}}
  1091.  
  1092.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  1093.     Ifstr(i) $($R0) != NO_ERROR
  1094.     CloseRegKey $($R1)
  1095.     CloseRegKey $($R2)
  1096.     CloseRegKey $($R3)
  1097.     Shell $(UtilityInf) RegistryErrorString $($R0)
  1098.     Shell "" FatalError $($R0)
  1099.     Return $(FALSE)
  1100.     endif
  1101.  
  1102.     CloseRegKey $($R1)
  1103.  
  1104.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  1105.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  1106.  
  1107.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  1108.             {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  1109.             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  1110.             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  1111.  
  1112.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  1113.  
  1114.     Ifstr(i) $($R0) != NO_ERROR
  1115.     CloseRegKey $(!KeyParameters)
  1116.     CloseRegKey $(KeyAdapterRules)
  1117.     Shell $(UtilityInf) RegistryErrorString $($R0)
  1118.     Shell "" FatalError $($R0)
  1119.     Return $(FALSE)
  1120.     endif
  1121.  
  1122.     CloseRegKey $(KeyAdapterRules)
  1123.     return $(TRUE)
  1124.  
  1125. [WriteParameters]
  1126.     read-syms RegistryConstants
  1127.     read-syms FileConstants
  1128.     read-syms GeneralConstants
  1129.     read-syms DownLoadInfo
  1130.  
  1131.     set Base           = $(!p:NewBase)
  1132.     set Irq            = $(!p:NewIrq)
  1133.     set Speed          = $(!p:NewSpeed)
  1134.     set Dma            = $(!p:NewDma)
  1135.     set DmaMode        = $(!p:NewDmaMode)
  1136.     set Slot           = $(!p:NewSlot)
  1137.     set MaxFrame       = $(!p:NewMaxFrame)
  1138.     set ProductId      = $(!p:NewProductId)
  1139.     set EarlyRelease   = $(!p:EarlyRelease)
  1140.     set SetAddress     = $(!p:SetAddress)
  1141.     set NetworkAddress = $(!p:NetworkAddress)
  1142.     set EisaIsa        = $(!p:EisaIsa)
  1143.     set Dma32          = $(!p:Dma32)
  1144.     set BusNumber      = $(!p:BusNumber)
  1145.  
  1146.     Shell $(UtilityInf), GetBusTypeNum
  1147.     set BusTypeNum = $($R1)
  1148.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1149.     Shell "" FatalError "Cannot get bus number"
  1150.     Return $(FALSE)
  1151.     endif
  1152.  
  1153.     ifstr(i) $(EisaIsa) == "YES"
  1154.     Set NewValueList = {{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  1155.            {MediaType,$(NoTitle),$(!REG_VT_DWORD),2},+
  1156.                {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
  1157.                {Ring_Speed,$(NoTitle),$(!REG_VT_DWORD),$(Speed)},+
  1158.                {Bus_Mode,$(NoTitle),$(!REG_VT_SZ),$(DmaMode)},+
  1159.                {Interrupt,$(NoTitle),$(!REG_VT_DWORD),$(Irq)},+
  1160.                {Dma_Level,$(NoTitle),$(!REG_VT_DWORD),$(Dma)},+
  1161.                {EarlyRelease,$(NoTitle),$(!REG_VT_DWORD),$(EarlyRelease)},+
  1162.                {MacCode,$(NoTitle),$(!REG_VT_SZ),$(DownFile)},+
  1163.                {Max_Frame_Size,$(NoTitle),$(!REG_VT_DWORD),$(MaxFrame)},+
  1164.                {Product_Id,$(NoTitle),$(!REG_VT_SZ),$(ProductId)},+
  1165.                {Port_Address,$(NoTitle),$(!REG_VT_DWORD),$(Base)},+
  1166.                {SetAddress,$(NoTitle),$(!REG_VT_DWORD),$(SetAddress)},+
  1167.                {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)}}
  1168.  
  1169.     else-ifstr(i) $(!STF_BUSTYPE) == MCA
  1170.     Set BusNumber = $(!p:BusNumber)
  1171.     Set NewValueList = {{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  1172.            {MediaType,$(NoTitle),$(!REG_VT_DWORD),2},+
  1173.                {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
  1174.                {Dma32,$(NoTitle),$(!REG_VT_DWORD),$(Dma32)},+
  1175.                {MacCode,$(NoTitle),$(!REG_VT_SZ),$(DownFile)},+
  1176.                {EarlyRelease,$(NoTitle),$(!REG_VT_DWORD),$(EarlyRelease)},+
  1177.                {Max_Frame_Size,$(NoTitle),$(!REG_VT_DWORD),$(MaxFrame)},+
  1178.                {Product_Id,$(NoTitle),$(!REG_VT_SZ),$(ProductId)},+
  1179.                {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(Slot)},+
  1180.                {SetAddress,$(NoTitle),$(!REG_VT_DWORD),$(SetAddress)},+
  1181.                {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)}}
  1182.     endif
  1183.  
  1184.     Shell  $(UtilityInf), AddValueList, $(!KeyParameters), $(NewValueList)
  1185.  
  1186.     CloseRegKey $(!KeyParameters)
  1187.  
  1188.     Ifstr(i) $($R0) != NO_ERROR
  1189.     Shell $(UtilityInf) RegistryErrorString $($R0)
  1190.     Shell "" FatalError $($R0)
  1191.     Return $(FALSE)
  1192.     endif
  1193.  
  1194.     Return $(TRUE)
  1195.  
  1196.  
  1197. [FatalError]
  1198.     read-syms FileConstants
  1199.  
  1200.     ifstr(i) $($0) == ""
  1201.     set Message = "Unknown Error"
  1202.     else
  1203.     set Message = $($0)
  1204.     endif
  1205.  
  1206.     Shell $(SubroutnInf) SetupMessage $(!STF_LANGUAGE) FATAL $(Message)
  1207.  
  1208.     Return
  1209.  
  1210. [WarnError]
  1211.     read-syms FileConstants
  1212.  
  1213.     ifstr(i) $($0) == ""
  1214.     set Message = "Unknown Error"
  1215.     else
  1216.     set Message = $($0)
  1217.     endif
  1218.  
  1219.     Shell $(SubroutnInf) SetupMessage $(!STF_LANGUAGE) NONFATAL $(Message)
  1220.     Return
  1221.  
  1222. [VerifyError]
  1223.     read-syms FileConstants
  1224.  
  1225.     ifstr(i) $($0) == ""
  1226.     set Message = "Unknown Error"
  1227.     else
  1228.     set Message = $($0)
  1229.     endif
  1230.  
  1231.     Return $($R1)
  1232.  
  1233. [Install-Option]
  1234.     set STF_VITAL = ""
  1235.     
  1236.     ifstr(i) $(AddCopy) == "YES"
  1237.     AddSectionFilesToCopyList Files-ncrncdet $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1238.     AddSectionFilesToCopyList Files-NCRTOK $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1239.     AddSectionFilesToCopyList Files-Dlg $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1240.     endif
  1241.  
  1242.     ifstr(i) $(DoCopy) == "YES"
  1243.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1244.        CopyFilesInCopyList
  1245.     endif
  1246.     Exit
  1247.  
  1248. [Install-Update]
  1249.    set STF_VITAL        = ""
  1250.  
  1251.    ClearCopyList
  1252.  
  1253.    AddSectionFilesToCopyList Files-ncrncdet $(!STF_SRCDIR) $(!STF_WINDOWSSYSPATH)
  1254.    AddSectionFilesToCopyList Files-NCRTOK-Upd $(!STF_SRCDIR) $(!STF_WINDOWSSYSPATH)\drivers
  1255.    AddSectionFilesToCopyList Files-Inf $(!STF_SRCDIR) $(!STF_WINDOWSSYSPATH)
  1256.    AddSectionFilesToCopyList Files-Dlg $(!STF_SRCDIR) $(!STF_WINDOWSSYSPATH)
  1257.  
  1258.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1259.  
  1260.    CopyFilesInCopyList
  1261.  
  1262.    exit
  1263.  
  1264. [PrepareDetectionDll]
  1265.     Set NewDllName = $($0)
  1266.     Set Status = STATUS_FAILED
  1267.     read-syms GeneralConstants
  1268.     Set DllValueName = "NetcardDlls"
  1269.     OpenRegKey $(!REG_H_LOCAL) "" "System\Setup" $(MAXIMUM_ALLOWED) KeySetup
  1270.     Ifstr(i) $(KeySetup) == $(KeyNull)
  1271.     Goto PDD_Return
  1272.     Endif
  1273.     Set DllFound = 0
  1274.     GetRegValue $(KeySetup) $(DllValueName) DllNamesValue
  1275.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1276.     Goto PDD_Return
  1277.     Endif
  1278.  
  1279.     Set DllNames = *($(DllNamesValue),4)
  1280.     ForListDo $(DllNames)
  1281.     Ifstr(i) $($) == $(NewDllName)
  1282.         Set DllFound = 1
  1283.     Endif
  1284.     EndForListDo
  1285.     Ifint $(DllFound) == 0
  1286.     Set DllNames = >($(DllNames),$(NewDllName))
  1287.     Set ValueInfo = {$(DllValueName), $(NoTitle), $(!REG_VT_MULTI_SZ), $(DllNames)}
  1288.     SetRegValue $(KeySetup) $(ValueInfo)
  1289.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1290.         Set Status = STATUS_SUCCESSFUL
  1291.     Endif
  1292.     Else
  1293.     Set Status = STATUS_USERCANCEL
  1294.     Endif
  1295.     CloseRegKey $(KeySetup)
  1296. PDD_Return = +
  1297.     Return $(Status)
  1298.  
  1299.