home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 February / VPR9602A.ISO / drvlib / netcard / x86 / xce10 / oemsetup.inf < prev    next >
INI File  |  1995-10-27  |  78KB  |  2,263 lines

  1. ;***********************************************************************
  2. ;
  3. ; OEMSETUP.INF
  4. ;
  5. ;       Xircom CreditCard Adapter Setup for NT 3.51
  6. ;
  7. ; History:
  8. ;       Adapted by Richard E. Moore
  9. ;   Oct 31 1994  Rev 1.05   Added options for interrupts 11, 12, and 15
  10. ;   Jan 12 1995  Rev 1.06   Changed registry key names for MS enabler
  11. ;   Mar 15 1995  Rev 1.07   Changed for final version of MS enabler, 
  12. ;                           added entries to PCMCIA database
  13. ;   Mar 21 1995  Rev 1.08   Started Master OEMSETUP for all products 
  14. ;   Apr 3  1995  Rev 1.09   Added 4/16Mbps ring speed for Token Ring                        
  15. ;   Apr 6  1995  Rev 1.10   Fixed "CE2DIS" bug, should have been CE2NDIS3 
  16. ;                                       Added auto option for ring speed setting                       
  17. ;   Apr 12 1995  Rev 1.11   Added MediaType to all ethernet registry configs
  18. ;                           Added support for GetTuple calls in Xircom.DLL
  19. ;   May 1 1995   Rev 1.12   Renamed CE2NDIS3 to XPSNDIS
  20. ;   May 2 1995   Rev 1.13   Added new CE2NDIS3 keywords for registry, (Mode, LinkIntegrity, EarlyXmit, etc)                             
  21. ;   May 7 1995   Rev 1.15   CEM2 support for modem information  
  22. ;   May 9 1995   Rev 1.16   Added support for enabling resources on the fly     
  23. ;   May 11 1995  Rev 1.17   Renamed XPSNDIS back to CE2NDIS3, added chipset combobox
  24. ;                                                       to CEM2 setup since PCMCIA.sys always returns PCIC.
  25. ;                                                       Defaulted CEM2 net iobase to 0x200.             
  26. ;*******************************************************************************
  27.                                      
  28. ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "message"
  29.  
  30. [Identification]
  31.     OptionType = NetAdapter
  32.  
  33. [PlatformsSupported]
  34.     ISA
  35.     EISA
  36.     MCA
  37.  
  38. [Options]
  39.     CENDIS3
  40.     CE2NDIS3
  41.     CM2NDIS3
  42.     CTNDNT
  43.     ;PE3NDIS3
  44.  
  45. [OptionsTextENG]
  46.     CENDIS3     = "Xircom CreditCard Ethernet"
  47.     CE2NDIS3     = "Xircom CreditCard Ethernet IIps"
  48.     CM2NDIS3    = "Xircom CreditCard Ethernet+Modem II"
  49.     CTNDNT      = "Xircom CreditCard TokenRing"
  50.     ;PE3DIS3    = "Xircom Pocket Ethernet III"
  51.  
  52.  
  53.  
  54. [AllFileConstants]
  55. GenericInfVersion  = " v1.17"
  56. ;  File names, etc. ----------------------------------------
  57. UtilityInf      = "UTILITY.INF"
  58. ParamInf        = "NCPARAM.INF"
  59. subroutineinf   = "SUBROUTN.INF"
  60. SoftwareType    = "driver"
  61. Exit_Code       = 0
  62. ; EventLog Message File  ----------------------------------------
  63. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  64. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  65. ; Product Info ----------------------------------------
  66. Manufacturer    = "Xircom"
  67.  
  68.  
  69.  
  70. ;There is one FileConstants section for each adapter supported in the [Options] section
  71.  
  72. [FileConstants-CENDIS3]
  73. GenericAdapterName = "Xircom CreditCard Ethernet"
  74. GenericDriverName  = "Xircom CreditCard Ethernet Driver"
  75. GenericSysName     = "CENDIS3.sys"
  76. GenericName        = "CENDIS3"
  77. ; Product Info ----------------------------------------
  78. ProductMajorVersion     = "1"
  79. ProductMinorVersion     = "10"
  80. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  81. ; Software  ----------------------------------------
  82. ProductSoftwareName     = "CENDIS3"
  83. ProductSoftwareDescription = "Xircom CreditCard Ethernet Driver"
  84. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\"$(GenericSysName)
  85. NetRuleSoftwareType     = "cendis3Sys ndisDriver cendis3Driver"
  86. NetRuleSoftwareUse      = $(SoftwareType)
  87. NetRuleSoftwareBindForm = """cendis3Sys"" yes no container"
  88. NetRuleSoftwareClass    = {"cendis3Driver basic"}
  89. NetRuleSoftwareBindable = {"cendis3Driver cendis3Adapter non exclusive 100"}
  90. ; Hardware  ----------------------------------------
  91. ProductHardwareName        = "CENDIS3"
  92. ProductHardwareDescription = "Xircom CreditCard Ethernet"
  93. NetRuleHardwareType        = "cendis3 cendis3Adapter"
  94. NetRuleHardwareBindForm    = " yes yes container"
  95. NetRuleHardwareClass       = {"cendis3Adapter basic"}
  96. ; Registry Key  ----------------------------------------
  97. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  98. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  99. ; Tuple Information -----------------------------------
  100. VERS1Manufacturer = "Xircom"
  101. VERS1Product      = "CreditCard 10Base-T"
  102. VERS1Type                 = "CE-10/A"
  103.  
  104. [FileConstants-CE2NDIS3]                         
  105. GenericAdapterName = "Xircom CreditCard Ethernet IIps"
  106. GenericDriverName  = "Xircom CreditCard Ethernet IIps Driver"
  107. GenericSysName     = "CE2NDIS3.sys"
  108. GenericName        = "CE2NDIS3"
  109. ; Product Info ----------------------------------------
  110. ProductMajorVersion     = "3"
  111. ProductMinorVersion     = "12"
  112. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  113. ; Software  ----------------------------------------
  114. ProductSoftwareName     = "CE2NDIS3"
  115. ProductSoftwareDescription = "Xircom CreditCard Ethernet II Driver"
  116. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\"$(GenericSysName)
  117. NetRuleSoftwareType     = "ce2ndis3Sys ndisDriver ce2ndis3Driver"
  118. NetRuleSoftwareUse      = $(SoftwareType)
  119. NetRuleSoftwareBindForm = """ce2ndis3Sys"" yes no container"
  120. NetRuleSoftwareClass    = {"ce2ndis3Driver basic"}
  121. NetRuleSoftwareBindable = {"ce2ndis3Driver ce2ndis3Adapter non exclusive 100"}
  122. ; Hardware  ----------------------------------------
  123. ProductHardwareName        = "CE2NDIS3"
  124. ProductHardwareDescription = "Xircom CreditCard Ethernet IIps"
  125. NetRuleHardwareType        = "ce2ndis3 ce2ndis3Adapter"
  126. NetRuleHardwareBindForm    = " yes yes container"
  127. NetRuleHardwareClass       = {"ce2ndis3Adapter basic"}
  128. ; Registry Key  ----------------------------------------
  129. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  130. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  131. ; Tuple Information -----------------------------------
  132. VERS1Manufacturer = "Xircom"
  133. VERS1Product      = "CreditCard 10Base-T"
  134. VERS1Type                 = "PS-CE2"
  135.  
  136.  
  137. [FileConstants-CM2NDIS3]
  138. GenericAdapterName = "Xircom CreditCard Ethernet+Modem II"
  139. GenericDriverName  = "Xircom CreditCard Ethernet+Modem II Driver"
  140. GenericSysName     = "CM2NDIS3.sys"
  141. GenericName        = "CM2NDIS3"
  142. ; Product Info ----------------------------------------
  143. ProductMajorVersion     = "1"
  144. ProductMinorVersion     = "08"
  145. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  146. ; Software  ----------------------------------------
  147. ProductSoftwareName     = "CM2NDIS3"
  148. ProductSoftwareDescription = "Xircom CreditCard Ethernet+Modem II Driver"
  149. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\"$(GenericSysName)
  150. NetRuleSoftwareType     = "cm2ndis3Sys ndisDriver cm2ndis3Driver"
  151. NetRuleSoftwareUse      = $(SoftwareType)
  152. NetRuleSoftwareBindForm = """cm2ndis3Sys"" yes no container"
  153. NetRuleSoftwareClass    = {"cm2ndis3Driver basic"}
  154. NetRuleSoftwareBindable = {"cm2ndis3Driver cm2ndis3Adapter non exclusive 100"}
  155. ; Hardware  ----------------------------------------
  156. ProductHardwareName        = "CM2NDIS3"
  157. ProductHardwareDescription = "Xircom CreditCard Ethernet+Modem II"
  158. NetRuleHardwareType        = "cm2ndis3 cm2ndis3Adapter"
  159. NetRuleHardwareBindForm    = " yes yes container"
  160. NetRuleHardwareClass       = {"cm2ndis3Adapter basic"}
  161. ; Registry Key  ----------------------------------------
  162. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  163. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  164. ; Tuple Information -----------------------------------
  165. VERS1Manufacturer = "Xircom"
  166. VERS1Product      = "CreditCard Ethernet+Modem II"
  167. VERS1Type                 = "CEM2"
  168.  
  169.  
  170. [FileConstants-CTNDNT]
  171. GenericAdapterName = "Xircom CreditCard Token Ring"
  172. GenericDriverName  = "Xircom CreditCard Token Ring Driver"
  173. GenericSysName     = "CTNDNT.SYS"
  174. GenericName        = "CTNDNT"
  175. ; Product Info ----------------------------------------
  176. ProductMajorVersion     = "2"
  177. ProductMinorVersion     = "27"
  178. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  179. ; Software  ----------------------------------------
  180. ProductSoftwareName     = "CTNDNT"
  181. ProductSoftwareDescription = "Xircom CreditCard Token Ring Driver"
  182. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\"$(GenericSysName)
  183. NetRuleSoftwareType     = "ctndntSys ndisDriver ctndntDriver"
  184. NetRuleSoftwareUse      = $(SoftwareType)
  185. NetRuleSoftwareBindForm = """ctndntSys"" yes no container"
  186. NetRuleSoftwareClass    = {"ctndntDriver basic"}
  187. NetRuleSoftwareBindable = {"ctndntDriver ctndntAdapter non exclusive 100"}
  188. ; Hardware  ----------------------------------------
  189. ProductHardwareName        = "CTNDNT"
  190. ProductHardwareDescription = "Xircom CreditCard Token Ring"
  191. NetRuleHardwareType        = "ctndnt ctndntAdapter"
  192. NetRuleHardwareBindForm    = " yes yes container"
  193. NetRuleHardwareClass       = {"ctndntAdapter basic"}
  194. ; Registry Key  ----------------------------------------
  195. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  196. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  197. ; Tuple Information -----------------------------------
  198. VERS1Manufacturer = "Xircom"
  199. VERS1Product      = "CreditCard Token Ring"
  200. VERS1Type                 = "CT-2"
  201.  
  202.  
  203.  
  204. [GeneralConstants]
  205. ;  Program flow control variables.
  206. from      = ""
  207. to        = ""
  208. ;  Return codes; Exit_Code is set to one of these
  209. ExitCodeOk     = 0
  210. ExitCodeCancel = 1
  211. ExitCodeFatal  = 2
  212. KeyNull         = ""
  213. MAXIMUM_ALLOWED   = 33554432
  214. RegistryErrorIndex = NO_ERROR
  215. KeyProduct      = ""
  216. KeyParameters   = ""
  217. TRUE            = 1
  218. FALSE           = 0
  219. NoTitle            = 0
  220. ExitState   = "Active"
  221. OldVersionExisted = $(FALSE)
  222. DriverPath      = $(!STF_NTPATH)\drivers
  223.  
  224.  
  225.  
  226.  
  227. [date]
  228.     ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
  229.     ; Minute, Second }
  230.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  231.  
  232.  
  233. ;---------------------------------------------------------------------------
  234. ; 1. Identify
  235. ;
  236. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  237. ;                as we are choosing currently.
  238. ;
  239. ; INPUT:         None
  240. ;
  241. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  242. ;                $($R1): Option Type (COMPUTER ...)
  243. ;                $($R2): Diskette description
  244. ;---------------------------------------------------------------------------
  245.  
  246. [Identify]
  247.     ;
  248.     ;
  249.     read-syms Identification
  250.     
  251.     set Status     = STATUS_SUCCESSFUL
  252.     set Identifier = $(OptionType)
  253.     set Media      = #("Source Media Descriptions", 1, 1)
  254.  
  255.     Return $(Status) $(Identifier) $(Media)
  256.  
  257. ;------------------------------------------------------------------------
  258. ; 2. ReturnOptions:
  259. ;
  260. ; DESCRIPTION:   To return the option list supported by this INF and the
  261. ;                localised text list representing the options.
  262. ;
  263. ;
  264. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  265. ;
  266. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  267. ;                                STATUS_NOLANGUAGE
  268. ;                                STATUS_FAILED
  269. ;                                STATUS_NOTSUPPORTED
  270. ;
  271. ;                $($R1): Option List
  272. ;                $($R2): Option Text List
  273. ;------------------------------------------------------------------------
  274.  
  275. [ReturnOptions]
  276.     ;
  277.     ;
  278.     set Status        = STATUS_FAILED
  279.     set OptionList     = {}
  280.     set OptionTextList = {}
  281.  
  282.     ;
  283.     ; Check if the language requested is supported
  284.     ;
  285.     set LanguageList = ^(LanguagesSupported, 1)
  286.     Ifcontains(i) $($0) in $(LanguageList)
  287.     ;
  288.     ; Check if the platforms requested is supported
  289.     ;
  290.     ifstr(i) $($1) == ""
  291.             goto returnoptions
  292.     endif
  293.  
  294.     set PlatformList = ^(PlatformsSupported, 1)
  295.     Ifcontains(i) $($1) in $(PlatformList)
  296.             goto returnoptions
  297.     else
  298.             set Status = STATUS_NOTSUPPORTED
  299.             goto finish_ReturnOptions
  300.     endif
  301.     else
  302.         set Status = STATUS_NOLANGUAGE
  303.         goto finish_ReturnOptions
  304.     endif
  305.  
  306.     ;
  307.     ; form a list of all the options and another of the text representing
  308.     ;
  309.  
  310. returnoptions = +
  311.     set OptionList     = ^(Options, 1)
  312.     set OptionTextList = ^(OptionsText$($0), 1)
  313.     set Status         = STATUS_SUCCESSFUL
  314.  
  315. finish_ReturnOptions = +
  316.     Return $(Status) $(OptionList) $(OptionTextList)
  317.  
  318. ;------------------------------------------------------------------------
  319. ;
  320. ; InstallOption:
  321. ;
  322. ;      This section is shelled to by main installation processing
  323. ;      or by NCPASHEL.INF during reconfig, removal, update, etc.
  324. ;
  325. ;
  326. ; FUNCTION:  To copy files representing Options
  327. ;            To configure the installed option
  328. ;            To update the registry for the installed option
  329. ;
  330. ; INPUT:     $($0):  Language to use
  331. ;            $($1):  OptionID to install
  332. ;            $($2):  SourceDirectory
  333. ;            $($3):  AddCopy  (YES | NO)
  334. ;            $($4):  DoCopy   (YES | NO)
  335. ;            $($5):  DoConfig (YES | NO)
  336. ;
  337. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  338. ;                            STATUS_NOLANGUAGE |
  339. ;                            STATUS_USERCANCEL |
  340. ;                            STATUS_FAILED
  341. ;
  342. ;------------------------------------------------------------------------
  343. [InstallOption]
  344.     ;
  345.     ; Set default values for
  346.     ;
  347.     set Status   = STATUS_FAILED
  348.     ;
  349.     ; extract parameters
  350.     ;
  351.     set Option   = $($1)
  352.     set SrcDir   = $($2)
  353.     set AddCopy  = $($3)
  354.     set DoCopy   = $($4)
  355.     set DoConfig = $($5)
  356.  
  357.     Set !DebugOutputControl = 1
  358.  
  359.     ;
  360.     ; Check if the language requested is supported
  361.     ;
  362.     set LanguageList = ^(LanguagesSupported, 1)
  363.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  364.     Return STATUS_NOLANGUAGE
  365.     endif
  366.  
  367.     set-subst LF = "\n"
  368.  
  369.     read-syms GeneralConstants
  370.     read-syms AllFileConstants
  371.     read-syms FileConstants"-"$(Option)
  372.     read-syms DialogConstants$(!STF_LANGUAGE)"-"$(Option)
  373.     ifstr(i) $(!NTN_Origination) == "NCPA"
  374.     set Continue = $(OK)
  375.     endif
  376.  
  377.     read-syms AllFileConstants$(!STF_LANGUAGE)
  378.     read-syms FileConstants$(!STF_LANGUAGE)"-"$(Option)
  379.  
  380.     detect date
  381.  
  382.     set-title  $(FunctionTitle)
  383.  
  384.     set to   = Begin
  385.     set from = Begin
  386. ;
  387. ;  Assume all is well.
  388. ;
  389.     set CommonStatus = STATUS_SUCCESSFUL
  390.  
  391.     EndWait
  392.  
  393. ;
  394. ;   Set up the operation-mode-based variables and gaily welcome
  395. ;   the user.  If the "install mode" variable is improperly set,
  396. ;   assume this is a new installation.
  397. ;
  398.  
  399. Begin = +
  400.     Set ActivateDetection = FALSE
  401.  
  402.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  403.     set StartLabel = removeadapter
  404.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  405.     set StartLabel = UpgradeSoftware
  406.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  407.     set StartLabel = bindingadapter
  408.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  409. ;        set ActivateDetection = TRUE
  410.     set StartLabel = configureadapter
  411.     ;
  412.     ;   You cannot config the software component
  413.     ;
  414.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  415.         Debug-Output "Cannot configure the CE/A server software."
  416.         Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  417.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  418.         Debug-Output "ShellCode error: cannot get an error string."
  419.         goto ShellCodeError
  420.         endif
  421.         set Error = $($R0)
  422.         set from = end
  423.         set to = end
  424.         goto nonfatalinfo
  425.     endif
  426.     else
  427. ;        set ActivateDetection = TRUE
  428.     set StartLabel = installadapter
  429.     set OEM_ABANDON_OPTIONS = {}
  430.     set OEM_ABANDON_SOFTWARE = FALSE
  431.     set OEM_ABANDON_ON = TRUE
  432.     endif
  433.  
  434.  
  435.     ;  set the [Default values]
  436.  
  437.     ifstr(i) $(Option) == CENDIS3
  438.         set IRQValue = *($(IRQList), 3)                                      ; IRQ Level      = 10
  439.         set IOBaseAddrValue = *($(IOBaseAddrList), 16)       ; IOBase Address = 0x300
  440.         set MemoryAddrValue = *($(MemoryAddrList), 49)       ; Memory Address =     0xD0000
  441.         set TransceiverValue = *($(TransceiverList), 1)      ; Transceiver    = ThinNet
  442.     else-ifstr(i) $(Option) == CTNDNT
  443.         set IRQValue = *($(IRQList), 3)                                      ; IRQ Level      = 10
  444.         set IOBaseAddrValue = *($(IOBaseAddrList), 16)       ; IOBase Address = 0x300
  445.         set MemoryAddrValue = *($(MemoryAddrList), 49)       ; Memory Address =     0xD0000
  446.         set LineSpeedValue  = *($(LineSpeedList), 0)         ; Memory Address =     0xD0000
  447.     else-ifstr(i) $(Option) == CE2NDIS3
  448.         set IRQValue        = *($(IRQList), 3)                       ; IRQ Level      = 10
  449.         set IOBaseAddrValue = *($(IOBaseAddrList), 16)       ; IOBase Address = 0x300
  450.         set MemoryAddrValue = *($(MemoryAddrList), 53)       ; Memory Address =     0xD0000
  451.     set FullDuplexValue = *($(FullDuplexList), 1)    ; Full Duplex = off
  452.         set ModeValue       = *($(ModeList), 2)                      ; Mode = I/O
  453.         set EarlyTransmitValue = *($(EarlyTransmitList), 2)      ; Early Transmit = on
  454.         set LinkIntegrityValue = *($(LinkIntegrityList), 2)      ; Link Integrity = Enabled
  455.         set CableTypeValue     = *($(CableTypeList), 1)  ; Cable Type = Auto Detect
  456.     else-ifstr(i) $(Option) == CM2NDIS3
  457.         set IRQValue             = *($(IRQList), 5)                 ; IRQ Level      = 10
  458.         set IOBaseAddrValue      = *($(IOBaseAddrList), 1)   ; IOBase Address = 0x200  pcmcia asks for 7f io ports with multifunction!
  459.         set MemoryAddrValue      = *($(MemoryAddrList), 49)  ; Memory Address =     0xD1000
  460.         set ModemIOBaseAddressValue   = *($(ModemIOBaseAddressList), 2) ; IOBase Address = 0x2F8
  461.         set ModemInterruptNumberValue = *($(IRQList), 1)                 ; int = 3
  462.         set SocketNumberValue         = *($(SocketNumberList), 1)        ; SocketNumber = 1
  463.     endif
  464.                                               
  465.     Set from = $(fatal)
  466.     Set to = $(fatal)
  467.     Goto $(StartLabel)
  468.  
  469. ;-----------------------------------------------
  470. ; Installation Section
  471. ;-----------------------------------------------
  472.  
  473. installadapter = +
  474. ;
  475. ;   First, check whether the same version of the software exists
  476. ;
  477.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  478.  
  479.     Ifstr $(KeyProduct) != $(KeyNull)
  480.     ;
  481.     ; Same version already existed in the local machine
  482.     ; Popup the dialog and ask the user whether he wants to continue
  483.     ;
  484.     CloseRegKey $(KeyProduct)
  485.  
  486.     ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  487.        ;
  488.        ; Cannot Install the same software again
  489.        ;
  490.        Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  491.            $(ProductVersion)
  492.        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  493.            Debug-Output "ShellCode error: cannot get an error string."
  494.            goto ShellCodeError
  495.        endif
  496.  
  497.        goto end
  498.     else
  499.        ;
  500.        ; Add a new adapter card?
  501.        ;
  502.        Shell $(UtilityInf), CardExistedDlg
  503.  
  504.        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  505.            Debug-Output "ShellCode error: cannot get an error string."
  506.            goto ShellCodeError
  507.        endif
  508.  
  509.        ifstr(i) $($R1) != "OK"
  510.            goto end
  511.        endif
  512.        set OldVersionExisted = $(TRUE)
  513.     endif
  514.     endif
  515.  
  516. ;
  517. ;  dll load addition
  518. ;
  519.     Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO
  520.  
  521.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  522.     Goto ShellCodeError
  523.     Else-Ifstr(i) $($R0) == STATUS_FAILED
  524.     Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  525.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  526.         goto ShellCodeError
  527.     endif
  528.     set Error = $($R0)
  529.     Goto fatal
  530.     Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  531.     Goto successful
  532.     Endif
  533.  
  534.     Set SrcDir = $($R1)
  535.  
  536.     install "Install-Dll"
  537.  
  538.     goto adaptersetup
  539.  
  540. ;-----------------------------------------------
  541. ; Configuration Section
  542. ;-----------------------------------------------
  543. ;
  544. ;   Get the current values of all the parameters
  545. ;
  546. configureadapter = +
  547.     Ifstr $(KeyProduct) == $(KeyNull)
  548.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  549.     Ifstr $(KeyProduct) == $(KeyNull)
  550.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  551.         Debug-Output "Cannot find component product key"
  552.         goto fatalregistry
  553.     Endif
  554.     Endif
  555.  
  556.     ;
  557.     ; Get the other parameters;  they're attached to the service parameters key
  558.     ;
  559.     Debug-Output "INF: Shelling to FindService"
  560.     Shell $(UtilityInf) FindService, $(KeyProduct)
  561.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  562.     Debug-Output "INF: FindService shell failure"
  563.     Goto ShellCodeError
  564.     Endif
  565.     Ifstr(i) $($R0) != NO_ERROR
  566.     Debug-Output "INF: FindService Shell error: "$($R0)
  567.     Goto fatalregistry
  568.     endif
  569.  
  570.     Set KeyParameters = $($R2)
  571.  
  572.     ;
  573.     ;  We don't need the services key, so close it.
  574.     ;
  575.     CloseRegKey $($R1)
  576.  
  577.     Ifstr $(KeyParameters) == $(KeyNull)
  578.     set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  579.     Debug-Output "Cannot find component service"
  580.     goto fatalregistry
  581.     endif
  582.  
  583.     set OldVersionExisted = $(TRUE)
  584.  
  585.     set ValueName = ""
  586.     set ValueData = ""
  587.     set ValueStr  = ""
  588.     set ValueList = {}
  589.  
  590.  
  591.     ;
  592.     ; Get the old values from the Registry      [Get Values]
  593.     ; *********************************************************
  594.     EnumRegValue $(KeyParameters) ValueList
  595.  
  596.  
  597.     ifstr(i) $(Option) == CENDIS3
  598.  
  599.         ForListDo $(ValueList)
  600.             set ValueItem = $($)
  601.             set ValueName = *($(ValueItem),1)
  602.             set ValueData = *($(ValueItem),4)
  603.             ifstr(i) $(ValueName) == "Transceiver"
  604.                 set TransceiverIndex = $(ValueData)
  605.             else-ifstr(i) $(ValueName) == "IoBaseAddress"   
  606.                 set IOBaseAddrIndex = $(ValueData)
  607.             else-ifstr(i) $(ValueName) == "InterruptNumber"
  608.                 set IRQValueIndex = $(ValueData)
  609.             else-ifstr(i) $(ValueName) == "PCCARDAttributeMemoryAddress"
  610.                 set MemoryAddrIndex = $(ValueData)
  611.             endif
  612.         EndForListDo
  613.  
  614.         set IRQValue = *($(IRQList), ~($(IRQValues),$(IRQValueIndex)))
  615.         ifstr(i) $(IRQValue) == ""
  616.             set IRQValue = *($(IRQList), 2)
  617.         endif
  618.  
  619.         set MemoryAddrValue = *($(MemoryAddrList), ~($(MemoryAddrValues),$(MemoryAddrIndex)))
  620.         ifstr(i) $(MemoryAddrValue) == ""
  621.             set MemoryAddrValue = *($(MemoryAddrValues), 2)
  622.         endif
  623.  
  624.         set IOBaseAddrValue = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrIndex)))
  625.         ifstr(i) $(IOBaseAddrValue) == ""
  626.             set IOBaseAddrValue = *($(IOBaseAddrList), 1)     
  627.         endif
  628.  
  629.         set TransceiverValue = *($(TransceiverList), ~($(TransceiverValues),$(TransceiverIndex)))
  630.         ifstr(i) $(TransceiverValue) == ""
  631.             set TransceiverValue = *($(TransceiverValues), 2)
  632.         endif
  633.  
  634.  
  635.     else-ifstr(i) $(Option) == CTNDNT
  636.  
  637.  
  638.         ForListDo $(ValueList)
  639.             set ValueItem = $($)
  640.             set ValueName = *($(ValueItem),1)
  641.             set ValueData = *($(ValueItem),4)
  642.             ifstr(i) $(ValueName) == "IoBaseAddress"        
  643.                 set IOBaseAddrIndex = $(ValueData)
  644.             else-ifstr(i) $(ValueName) == "InterruptNumber"
  645.                 set IRQValueIndex = $(ValueData)
  646.             else-ifstr(i) $(ValueName) == "PCCARDAttributeMemoryAddress"
  647.                 set MemoryAddrIndex = $(ValueData)
  648.             else-ifstr(i) $(ValueName) == "LineSpeed"
  649.                 set LineSpeedIndex = $(ValueData)
  650.             endif
  651.         EndForListDo
  652.  
  653.         set IRQValue = *($(IRQList), ~($(IRQValues),$(IRQValueIndex)))
  654.         ifstr(i) $(IRQValue) == ""
  655.             set IRQValue = *($(IRQList), 2)
  656.         endif
  657.  
  658.         set MemoryAddrValue = *($(MemoryAddrList), ~($(MemoryAddrValues),$(MemoryAddrIndex)))
  659.         ifstr(i) $(MemoryAddrValue) == ""
  660.             set MemoryAddrValue = *($(MemoryAddrValues), 2)
  661.         endif
  662.  
  663.         set IOBaseAddrValue = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrIndex)))
  664.         ifstr(i) $(IOBaseAddrValue) == ""
  665.             set IOBaseAddrValue = *($(IOBaseAddrList), 1)     
  666.         endif
  667.  
  668.         set LineSpeedValue = *($(LineSpeedList), ~($(LineSpeedValues),$(LineSpeedIndex)))
  669.         ifstr(i) $(LineSpeedValue) == ""
  670.             set LineSpeedValue = *($(LineSpeedList), 1)       
  671.         endif
  672.  
  673.  
  674.     else-ifstr(i) $(Option) == CE2NDIS3
  675.  
  676.         ForListDo $(ValueList)
  677.             set ValueItem = $($)
  678.             set ValueName = *($(ValueItem),1)
  679.             set ValueData = *($(ValueItem),4)
  680.             ifstr(i) $(ValueName) == "FullDuplex"
  681.                 set FullDuplexIndex = $(ValueData)
  682.             else-ifstr(i) $(ValueName) == "IoBaseAddress"   
  683.                 set IOBaseAddrIndex = $(ValueData)
  684.             else-ifstr(i) $(ValueName) == "InterruptNumber"
  685.                 set IRQValueIndex = $(ValueData)
  686.             else-ifstr(i) $(ValueName) == "Mode"
  687.                 set ModeIndex = $(ValueData)
  688.             else-ifstr(i) $(ValueName) == "EarlyTransmit"
  689.                 set EarlyTransmitIndex = $(ValueData)
  690.             else-ifstr(i) $(ValueName) == "LinkIntegrity"
  691.                 set LinkIntegrityIndex = $(ValueData)
  692.             else-ifstr(i) $(ValueName) == "CableType"
  693.                 set CableTypeIndex = $(ValueData)
  694.             else-ifstr(i) $(ValueName) == "PCCARDAttributeMemoryAddress"
  695.                 set MemoryAddrIndex = $(ValueData)
  696.             endif
  697.         EndForListDo
  698.  
  699.         set IRQValue = *($(IRQList), ~($(IRQValues),$(IRQValueIndex)))
  700.         ifstr(i) $(IRQValue) == ""
  701.             set IRQValue = *($(IRQList), 2)
  702.         endif
  703.  
  704.         set MemoryAddrValue = *($(MemoryAddrList), ~($(MemoryAddrValues),$(MemoryAddrIndex)))
  705.         ifstr(i) $(MemoryAddrValue) == ""
  706.             set MemoryAddrValue = *($(MemoryAddrValues), 2)
  707.         endif
  708.  
  709.         set IOBaseAddrValue = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrIndex)))
  710.         ifstr(i) $(IOBaseAddrValue) == ""
  711.             set IOBaseAddrValue = *($(IOBaseAddrList), 1)     
  712.         endif
  713.  
  714.         set FullDuplexValue = *($(FullDuplexList), ~($(FullDuplexValues),$(FullDuplexIndex)))
  715.         ifstr(i) $(FullDuplexValue) == ""
  716.             set FullDuplexValue = *($(FullDuplexValues), 2)
  717.         endif
  718.  
  719.         set ModeValue = *($(ModeList), ~($(ModeValues),$(ModeIndex)))
  720.         ifstr(i) $(ModeValue) == ""
  721.             set ModeValue = *($(ModeValues), 2)
  722.         endif
  723.  
  724.         set EarlyTransmitValue = *($(EarlyTransmitList), ~($(EarlyTransmitValues),$(EarlyTransmitIndex)))
  725.         ifstr(i) $(EarlyTransmitValue) == ""
  726.             set EarlyTransmitValue = *($(EarlyTransmitValues), 2)
  727.         endif
  728.  
  729.         set LinkIntegrityValue = *($(LinkIntegrityList), ~($(LinkIntegrityValues),$(LinkIntegrityIndex)))
  730.         ifstr(i) $(LinkIntegrityValue) == ""
  731.             set LinkIntegrityValue = *($(LinkIntegrityValues), 2)
  732.         endif
  733.  
  734.         set CableTypeValue = *($(CableTypeList), ~($(CableTypeValues),$(CableTypeIndex)))
  735.         ifstr(i) $(CableTypeValue) == ""
  736.             set CableTypeValue = *($(CableTypeValues), 2)
  737.         endif
  738.  
  739.  
  740.     else-ifstr(i) $(Option) == CM2NDIS3
  741.  
  742.         ForListDo $(ValueList)
  743.             set ValueItem = $($)
  744.             set ValueName = *($(ValueItem),1)
  745.             set ValueData = *($(ValueItem),4)
  746.             ifstr(i) $(ValueName) == "IoBaseAddress"        
  747.                 set IOBaseAddrIndex = $(ValueData)
  748.             else-ifstr(i) $(ValueName) == "PCCARDReadyInterrupt"
  749.                 set IRQValueIndex = $(ValueData)
  750.             else-ifstr(i) $(ValueName) == "PCCARDAttributeMemoryAddress"
  751.                 set MemoryAddrIndex = $(ValueData)
  752.             else-ifstr(i) $(ValueName) == "IOBaseAddress_1"
  753.                 set ModemIOBaseAddressIndex = $(ValueData)
  754.             else-ifstr(i) $(ValueName) == "InterruptNumber"
  755.                 set ModemInterruptNumberIndex = $(ValueData)
  756.             else-ifstr(i) $(ValueName) == "ControllerType"
  757.                 set SocketNumberIndex = $(ValueData)
  758.             endif
  759.         EndForListDo
  760.  
  761.         set IRQValue = *($(IRQList), ~($(IRQValues),$(IRQValueIndex)))
  762.         ifstr(i) $(IRQValue) == ""
  763.             set IRQValue = *($(IRQList), 2)
  764.         endif
  765.  
  766.         set MemoryAddrValue = *($(MemoryAddrList), ~($(MemoryAddrValues),$(MemoryAddrIndex)))
  767.         ifstr(i) $(MemoryAddrValue) == ""
  768.             set MemoryAddrValue = *($(MemoryAddrValues), 2)
  769.         endif
  770.  
  771.         set IOBaseAddrValue = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrIndex)))
  772.         ifstr(i) $(IOBaseAddrValue) == ""
  773.             set IOBaseAddrValue = *($(IOBaseAddrList), 1)     
  774.         endif
  775.  
  776.         set ModemIOBaseAddressValue = *($(ModemIOBaseAddressList), ~($(ModemIOBaseAddressValues),$(ModemIOBaseAddressIndex)))
  777.         ifstr(i) $(ModemIOBaseAddressValue) == ""
  778.             set ModemIOBaseAddressValue = *($(ModemIOBaseAddressList), 2)     
  779.         endif
  780.  
  781.         set ModemInterruptNumberValue = *($(IRQList), ~($(IRQValues),$(ModemInterruptNumberIndex)))
  782.         ifstr(i) $(ModemInterruptNumberValue) == ""
  783.             set ModemInterruptNumberValue = *($(IRQList), 1)          
  784.         endif
  785.  
  786.         set SocketNumberValue = *($(SocketNumberList), ~($(SocketNumberValues),$(SocketNumberIndex)))
  787.         ifstr(i) $(SocketNumberValue) == ""
  788.             set SocketNumberValue = *($(SocketNumberList), 1)         
  789.         endif
  790.  
  791.     endif
  792.  
  793.  
  794.     ;  Save the settings as they were read from the Registry.
  795.  
  796. ;    Shell $(ParamInf) Param_SaveValues
  797. ;    Set CurrParamSettings = $($R0)
  798. ;
  799. ;   Put up the adapter configuration dialog if necessary.
  800. ;
  801. ;   Note that $(CurrParamSettings) has the old known parameter values.
  802. ;
  803. adaptersetup = +
  804.  
  805.  
  806.     ;Shell "" DebugConfiguration "before displaying dialog"
  807.  
  808.     Set from = adapteroptions
  809.  
  810.  
  811. adapteroptions = +
  812.  
  813.     LoadLibrary "disk 1" $(DialogDllName) hLib
  814.     read-syms FileDependentDlg$(!STF_LANGUAGE)"-"$(Option)                
  815.     ui start "InputDlg"  $(hLib)
  816.     set ExitButton      = $(ButtonPressed)
  817.     ;Debug-Output " ButtonPressed "$(ButtonPressed)
  818.     ;Debug-Output " DLGEVENT "$(DLGEVENT)
  819.     FreeLibrary $(hLib)
  820.     
  821.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  822.      
  823.         ifstr(i) $(Option) == CENDIS3
  824.             set IOBaseAddrIndex  = $(Combo1Out)
  825.         set MemoryAddrIndex  = $(Combo2Out)
  826.             set IRQValueIndex    = $(Combo3Out)
  827.         set TransceiverIndex = $(Combo4Out)
  828.         set ExitButton       = $(ButtonPressed)
  829.         else-ifstr(i) $(Option) == CTNDNT
  830.             set IOBaseAddrIndex  = $(Combo1Out)
  831.         set MemoryAddrIndex  = $(Combo2Out)
  832.             set IRQValueIndex    = $(Combo3Out)
  833.             set LineSpeedIndex   = $(Combo4Out)
  834.         set ExitButton       = $(ButtonPressed)
  835.         else-ifstr(i) $(Option) == CE2NDIS3
  836.             set IOBaseAddrIndex  = $(Combo1Out)
  837.         set MemoryAddrIndex  = $(Combo2Out)
  838.             set IRQValueIndex    = $(Combo3Out)
  839.         set FullDuplexIndex  = $(Combo4Out)     
  840.             set ModeIndex            = $(Combo5Out)         
  841.             set EarlyTransmitIndex = $(Combo6Out)           
  842.             set LinkIntegrityIndex = $(Combo7Out)           
  843.             set CableTypeIndex       = $(Combo8Out)         
  844.         set ExitButton       = $(ButtonPressed)
  845.         else-ifstr(i) $(Option) == CM2NDIS3
  846.             set IOBaseAddrIndex  = $(Combo1Out)
  847.         set MemoryAddrIndex  = $(Combo2Out)
  848.             set IRQValueIndex    = $(Combo3Out)
  849.             set ModemIOBaseAddressIndex = $(Combo4Out)
  850.             set ModemInterruptNumberIndex = $(Combo5Out)
  851.             set SocketNumberIndex = $(Combo6Out)
  852.         set ExitButton       = $(ButtonPressed)
  853.         endif
  854.         
  855.         ; DLLCODE
  856.         ; Locate the slot with the Xircom Card in it
  857.         ;------------------------------------------------------
  858.     LoadLibrary "disk 1" $(DialogDllName) hLib
  859.         LibraryProcedure CONFIG, $(hLib), GetPCMCIAConfig
  860.         set SLOTCOUNT = 8       ; was   *($(CONFIG),1), but returned 0
  861.         set CONTROLLERTYPE = *($(CONFIG),3)
  862.         Debug-Output "slot count="$(SLOTCOUNT)" controller type="$(CONTROLLERTYPE)
  863.         set SLOT = 0
  864.     slotloop = +
  865.         LibraryProcedure INFO, $(hLib), GetVERS_1Tuple $(SLOT)      ;VERS_1      
  866.         Debug-Output "Slot "$(SLOT)
  867.         Debug-Output "VERS_1 = "*($(INFO),3)
  868.         Debug-Output "VERS_1 = "*($(INFO),4)
  869.         Debug-Output "VERS_1 = "*($(INFO),5)
  870.         Debug-Output "---------------------"
  871.  
  872.         ifstr(i) *($(INFO),3) == $(VERS1Manufacturer)
  873.             ifstr(i) *($(INFO),4) == $(VERS1Product)
  874.                 goto slotfound
  875.             endif
  876.         endif
  877.  
  878.         set-add SLOT = $(SLOT), 1
  879.         ifint $(SLOT) == $(SLOTCOUNT)
  880.             goto slotnotfound
  881.         else
  882.             goto slotloop
  883.         endif
  884.     slotfound = +
  885.         Debug-Output "Xircom card found in slot "$(SLOT)
  886.         set SLOTFOUND = 1
  887.         goto slotcontinue
  888.     slotnotfound = +
  889.         set SLOTFOUND = ""
  890.         Debug-Output "Xircom card not found"
  891.     slotcontinue = +
  892.         FreeLibrary $(hLib)
  893.         ui pop 1
  894.         ;goto nextstep
  895.  
  896.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  897.         set CommonStatus = STATUS_USERCANCEL
  898.         ui pop 1
  899.         goto end
  900.     else
  901.         set CommonStatus = STATUS_USERCANCEL
  902.         ui pop 1
  903.         Debug-Output "Action: unknown. Bye."
  904.         goto end
  905.     endif
  906.  
  907.  
  908. ;
  909. ;   If installing, go create the necessary keys;
  910. ;   if configuring, they're already open.
  911. ;
  912. skipoptions =+
  913.  
  914.     ifint $(OldVersionExisted) == $(TRUE)
  915.     ifstr(i) $(!NTN_InstallMode) == configure
  916.         goto writeparameters
  917.     endif
  918.     endif
  919.     StartWait
  920.     ;
  921.     ; Add Software Component
  922.     ;
  923.     ifint $(OldVersionExisted) == $(FALSE)
  924.  
  925.     ifstr(i) $(!NTN_InstallMode) == "install"
  926.        Ifstr(i) $(DoCopy) == "YES"
  927.  
  928.           Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  929.  
  930.           Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  931.           Goto ShellCodeError
  932.           Else-Ifstr(i) $($R0) == STATUS_FAILED
  933.           Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  934.           ifint $($ShellCode) != $(!SHELL_CODE_OK)
  935.               goto ShellCodeError
  936.           endif
  937.           set Error = $($R0)
  938.           Goto fatal
  939.           Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  940.           Goto successful
  941.           Endif
  942.  
  943.           Set SrcDir = $($R1)
  944.  
  945.        Endif
  946.  
  947.        install "Install-Option"
  948.  
  949.        ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  950.           Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  951.           ifint $($ShellCode) != $(!SHELL_CODE_OK)
  952.           goto ShellCodeError
  953.           endif
  954.           set Error = $($R0)
  955.           goto fatal
  956.        endif
  957.     endif
  958.  
  959.  
  960.  
  961.     Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  962.         $(ProductSoftwareName), +
  963.         $(ProductSoftwareName), +
  964.         $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  965.         $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  966.         $(NetEventDLL)
  967.  
  968.     Set OEM_ABANDON_SOFTWARE = TRUE
  969.  
  970.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  971.         Debug-Output "ShellCode error"
  972.         goto ShellCodeError
  973.     endif
  974.     ;
  975.     ;   At this point:
  976.     ;     $R1 contains the product version key handle;
  977.     ;     $R2 contains the NetRules subkey handle;
  978.     ;     $R3 contains the new Services key handle; and
  979.     ;     $R4 contains the Parameters key
  980.     ;     $R5 contains the Linkage Key
  981.     ;
  982.     set RegistryErrorIndex = $($R0)
  983.     set KeyProduct      = $($R1)
  984.     Set SoftNetRulesKey = $($R2)
  985.     CloseRegKey $($R3)
  986.     CloseRegKey $($R4)
  987.     CloseRegKey $($R5)
  988.  
  989.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  990.         EndWait
  991.         Debug-Output "Registry error: add software components"
  992.         CloseRegKey $(KeyProduct)
  993.         CloseRegKey $(SoftNetRulesKey)
  994.         goto fatalregistry
  995.     endif
  996.  
  997.     set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  998.                {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  999.                {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  1000.                {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  1001.                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  1002.                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  1003.                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  1004.  
  1005.     Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  1006.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1007.         Debug-Output "ShellCode error."
  1008.         goto ShellCodeError
  1009.     endif
  1010.  
  1011.     set RegistryErrorIndex = $($R0)
  1012.  
  1013.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1014.         EndWait
  1015.         Debug-Output "Registry error: add value list."
  1016.         CloseRegKey $(KeyProduct)
  1017.         CloseRegKey $(SoftNetRulesKey)
  1018.         goto fatalregistry
  1019.     endif
  1020.  
  1021.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  1022.                 {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  1023.                 {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  1024.                 {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  1025.                 {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  1026.                 {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  1027.  
  1028.     Shell  $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
  1029.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1030.         Debug-Output "ShellCode error."
  1031.         goto ShellCodeError
  1032.     endif
  1033.  
  1034.     set RegistryErrorIndex = $($R0)
  1035.  
  1036.     CloseRegKey $(KeyProduct)
  1037.     CloseRegKey $(SoftNetRulesKey)
  1038.  
  1039.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1040.         EndWait
  1041.         Debug-Output "Resgitry error: add value list."
  1042.         goto fatalregistry
  1043.     endif
  1044.     endif
  1045. ;
  1046. ;   Create the HARDWARE\Netcard region and its corresponding service
  1047. ;
  1048.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  1049.  
  1050.     ifint $($R4) != -1
  1051.     Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  1052.     endif
  1053.  
  1054.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1055.     Debug-Output "Cannot add hardware component"
  1056.     goto ShellCodeError
  1057.     endif
  1058.  
  1059.     set RegistryErrorIndex = $($R0)
  1060.  
  1061.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1062.     EndWait
  1063.     Debug-Output "Registry error: add hardware component"
  1064.     CloseRegKey $($R1)
  1065.     CloseRegKey $($R2)
  1066.     CloseRegKey $($R3)
  1067.     goto fatalregistry
  1068.     endif
  1069.  
  1070. ;
  1071. ;   At this point:
  1072. ;     $R1  Registry key variable for HARDWARE\Netcard\(n)
  1073. ;     $R2  Registry key variable for HARDWARE\Netcard\(n)\\NetRules
  1074. ;     $R3  Registry key handle for <service>\Parameters key
  1075. ;     $R4  Adapter number assigned to adapter
  1076. ;     $R5  Service name generated by combining svc name with adapter number
  1077. ;
  1078.     set KeyParameters = $($R3)
  1079.     set KeyAdapterRules = $($R2)
  1080.     set AdapterNumber = $($R4)
  1081.  
  1082.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  1083.                {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+
  1084.                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+
  1085.                {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  1086.                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  1087.                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  1088.  
  1089.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  1090.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1091.     Debug-Output "ShellCode error"
  1092.     goto ShellCodeError
  1093.     endif
  1094.  
  1095.     CloseRegKey $($R1)
  1096.  
  1097.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  1098.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  1099.  
  1100.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  1101.             {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  1102.             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  1103.             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  1104.  
  1105.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  1106.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1107.     Debug-Output "ShellCode error."
  1108.     goto ShellCodeError
  1109.     endif
  1110.  
  1111.     set RegistryErrorIndex = $($R0)
  1112.  
  1113.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1114.     EndWait
  1115.     Debug-Output "Resgitry error: add value list."
  1116.     CloseRegKey $(KeyParameters)
  1117.     CloseRegKey $(KeyAdapterRules)
  1118.     goto fatalregistry
  1119.     endif
  1120.  
  1121.     CloseRegKey $(KeyAdapterRules)
  1122.  
  1123.     goto writeparameters
  1124. ;
  1125. ;   REQUIRED:   $(KeyParameters) contains service Parameters key handle
  1126. ;
  1127. writeparameters = +
  1128.     Shell $(UtilityInf), GetBusTypeNum
  1129.     set BusTypeNum = $($R1)
  1130.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1131.     Debug-Output "ShellCode error."
  1132.     goto ShellCodeError
  1133.     endif
  1134. ;
  1135. ;   Add the rest of the parameters to the Services area
  1136. ;
  1137.  
  1138.     
  1139.     ifstr(i) $(Option) == CENDIS3                     ; CEA
  1140.  
  1141.         set MemoryAddrValue  = *($(MemoryAddrValues),  ~($(MemoryAddrList), $(MemoryAddrIndex)))    
  1142.         set IRQValue         = *($(IRQValues),         ~($(IRQList),        $(IRQValueIndex)))
  1143.         set IOBaseAddrValue  = *($(IOBaseAddrValues),  ~($(IOBaseAddrList), $(IOBaseAddrIndex)))         
  1144.         set TransceiverValue = *($(TransceiverValues), ~($(TransceiverList),$(TransceiverIndex)))
  1145.         set IOLengthValue    = 15       
  1146.         set NewValueList     = {{IoBaseAddress,           $(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+      
  1147.                     {IoLength,                    $(NoTitle),$(!REG_VT_DWORD), $(IOLengthValue)},+
  1148.                     {PCCARDAttributeMemoryAddress, $(NoTitle),$(!REG_VT_DWORD),$(MemoryAddrValue)},+
  1149.                     {PCCARDAttributeMemorySize, $(NoTitle),$(!REG_VT_DWORD),4096},+
  1150.                     {PCCARDAttributeMemoryOffset, $(NoTitle),$(!REG_VT_DWORD),0},+
  1151.                     {InterruptNumber,         $(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
  1152.                                 {ResourceManager,                 $(NoTitle),$(!REG_VT_SZ),TRUE},+
  1153.                     {Transceiver,                 $(NoTitle),$(!REG_VT_DWORD),$(TransceiverValue)},+
  1154.                                 {MediaType,               $(NoTitle),$(!REG_VT_DWORD),1},+
  1155.                     {BusType,                 $(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  1156.                     {BusNumber,               $(NoTitle),$(!REG_VT_DWORD),0},+
  1157.                                 {ResourceManager,         $(NoTitle),$(!REG_VT_DWORD),1},+
  1158.                     {PCMCIA,                  $(NoTitle),$(!REG_VT_DWORD),1},+
  1159.                     {PCICBaseAddr,            $(NoTitle),$(!REG_VT_DWORD),992}, +                       ;0x3E0
  1160.                     {TCICBaseAddr,            $(NoTitle),$(!REG_VT_DWORD),576}}                         ;0x240
  1161.  
  1162.     
  1163.     else-ifstr(i) $(Option) == CM2NDIS3                ; CEM 2
  1164.  
  1165.  
  1166.         set MemoryAddrValue  = *($(MemoryAddrValues),  ~($(MemoryAddrList), $(MemoryAddrIndex)))    
  1167.         set IRQValue         = *($(IRQValues),         ~($(IRQList),        $(IRQValueIndex)))
  1168.         set IOBaseAddrValue  = *($(IOBaseAddrValues),  ~($(IOBaseAddrList), $(IOBaseAddrIndex)))         
  1169.         
  1170.         set ModemIOBaseAddressValue  = *($(ModemIOBaseAddressValues),  ~($(ModemIOBaseAddressList), $(ModemIOBaseAddressIndex)))         
  1171.         set ModemInterruptNumberValue  = *($(ModemInterruptNumberValues),  ~($(ModemInterruptNumberList), $(ModemInterruptNumberIndex)))         
  1172.         set SocketNumberValue  = *($(SocketNumberValues),  ~($(SocketNumberList), $(SocketNumberIndex)))         
  1173.         set IOLengthValue    = 31       
  1174.         
  1175.         set NewValueList     = {{IoBaseAddress,           $(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+      
  1176.                     {IoLength,                    $(NoTitle),$(!REG_VT_DWORD), $(IOLengthValue)},+
  1177.                     {PCCARDAttributeMemoryAddress, $(NoTitle),$(!REG_VT_DWORD),$(MemoryAddrValue)},+
  1178.                     {PCCARDAttributeMemorySize,    $(NoTitle),$(!REG_VT_DWORD),4096},+
  1179.                     {PCCARDAttributeMemoryOffset,  $(NoTitle),$(!REG_VT_DWORD),0},+
  1180.                     {PCCARDReadyInterrupt,    $(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
  1181.                                 {ResourceManager,                 $(NoTitle),$(!REG_VT_SZ),TRUE},+
  1182.                                 {MediaType,               $(NoTitle),$(!REG_VT_DWORD),1},+
  1183.                     {BusType,                 $(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  1184.                     {BusNumber,               $(NoTitle),$(!REG_VT_DWORD),0},+
  1185.                                 {ResourceManager,         $(NoTitle),$(!REG_VT_DWORD),1},+
  1186.                                 {IoBaseAddress_1,         $(NoTitle),$(!REG_VT_DWORD),$(ModemIOBaseAddressValue)},+          
  1187.                     {IoLength_1,                  $(NoTitle),$(!REG_VT_DWORD), 7},+
  1188.                     {InterruptNumber,         $(NoTitle),$(!REG_VT_DWORD),$(ModemInterruptNumberValue)},+
  1189.                     {ControllerType,          $(NoTitle),$(!REG_VT_DWORD),$(SocketNumberValue)},+
  1190.                     {PCMCIA,                  $(NoTitle),$(!REG_VT_DWORD),1}}                      
  1191.  
  1192.     
  1193.     else-ifstr(i) $(Option) == CTNDNT                       ; TOKEN RING
  1194.  
  1195.  
  1196.         set MemoryAddrValue  = *($(MemoryAddrValues),  ~($(MemoryAddrList), $(MemoryAddrIndex)))    
  1197.         set-add CommonMemoryAddrValue  = $(MemoryAddrValue), 4096   
  1198.         set IRQValue         = *($(IRQValues),         ~($(IRQList),        $(IRQValueIndex)))
  1199.         set IOBaseAddrValue  = *($(IOBaseAddrValues),  ~($(IOBaseAddrList), $(IOBaseAddrIndex)))
  1200.         set LineSpeed            = *($(LineSpeedValues),   ~($(LineSpeedList),  $(LineSpeedIndex)))
  1201.         set IOLengthValue    = 31
  1202.         set NewValueList     = {{IoBaseAddress,           $(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+      
  1203.                     {IoLength,                    $(NoTitle),$(!REG_VT_DWORD), $(IOLengthValue)},+
  1204.                     {PCCARDAttributeMemoryAddress, $(NoTitle),$(!REG_VT_DWORD),$(MemoryAddrValue)},+
  1205.                     {PCCARDAttributeMemorySize,    $(NoTitle),$(!REG_VT_DWORD),4096},+
  1206.                     {PCCARDAttributeMemoryOffset,  $(NoTitle),$(!REG_VT_DWORD),0},+
  1207.                     {MemoryMappedBaseAddress, $(NoTitle),$(!REG_VT_DWORD),$(CommonMemoryAddrValue)},+
  1208.                     {MemoryMappedSize,        $(NoTitle),$(!REG_VT_DWORD),8192},+
  1209.                     {PCCARDMemoryWindowOffset, $(NoTitle),$(!REG_VT_DWORD),0},+
  1210.                     {InterruptNumber,         $(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
  1211.                     {BusType,                 $(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  1212.                     {BusNumber,               $(NoTitle),$(!REG_VT_DWORD),0},+
  1213.                                 {ResourceManager,         $(NoTitle),$(!REG_VT_DWORD),1},+
  1214.                                 {MediaType,               $(NoTitle),$(!REG_VT_DWORD),2},+
  1215.                                 {LineSpeed,               $(NoTitle),$(!REG_VT_DWORD),$(LineSpeed)},+
  1216.                     {PCMCIA,                  $(NoTitle),$(!REG_VT_DWORD),1}}                         
  1217.                 
  1218.  
  1219.     else-ifstr(i) $(Option) == CE2NDIS3                     ; CE2
  1220.  
  1221.  
  1222.         set MemoryAddrValue  = *($(MemoryAddrValues),  ~($(MemoryAddrList), $(MemoryAddrIndex)))    
  1223.         set-add CommonMemoryAddrValue  = $(MemoryAddrValue), 4096   
  1224.         set IRQValue         = *($(IRQValues),         ~($(IRQList),        $(IRQValueIndex)))
  1225.         set IOBaseAddrValue  = *($(IOBaseAddrValues),  ~($(IOBaseAddrList), $(IOBaseAddrIndex)))         
  1226.     set FullDuplexValue  = *($(FullDuplexValues),  ~($(FullDuplexList), $(FullDuplexIndex)))
  1227.     set ModeValue                   = *($(ModeValues),           ~($(ModeList),          $(ModeIndex)))
  1228.     set EarlyTransmitValue  = *($(EarlyTransmitValues),  ~($(EarlyTransmitList), $(EarlyTransmitIndex)))
  1229.     set LinkIntegrityValue  = *($(LinkIntegrityValues),  ~($(LinkIntegrityList), $(LinkIntegrityIndex)))
  1230.     set CableTypeValue      = *($(CableTypeValues),      ~($(CableTypeList),     $(CableTypeIndex)))
  1231.         set IOLengthValue           = 15      
  1232.         set NewValueList     = {{IoBaseAddress,           $(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+      
  1233.                     {IoLength,                    $(NoTitle),$(!REG_VT_DWORD), 15},+
  1234.                     {PCCARDAttributeMemoryAddress, $(NoTitle),$(!REG_VT_DWORD),$(MemoryAddrValue)},+
  1235.                     {PCCARDAttributeMemorySize, $(NoTitle),$(!REG_VT_DWORD),4096},+
  1236.                     {PCCARDAttributeMemoryOffset, $(NoTitle),$(!REG_VT_DWORD),0},+
  1237.                     {MemoryMappedBaseAddress, $(NoTitle),$(!REG_VT_DWORD),$(CommonMemoryAddrValue)},+
  1238.                     {MemoryMappedSize,        $(NoTitle),$(!REG_VT_DWORD),4096},+
  1239.                     {PCCARDMemoryWindowOffset, $(NoTitle),$(!REG_VT_DWORD),0},+
  1240.                     {InterruptNumber,         $(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
  1241.                                 {ResourceManager,                 $(NoTitle),$(!REG_VT_SZ),TRUE},+
  1242.                 {FullDuplex,                      $(NoTitle),$(!REG_VT_DWORD),$(FullDuplexValue)},+
  1243.                                 {MediaType,               $(NoTitle),$(!REG_VT_DWORD),1},+
  1244.                                 {CableType,               $(NoTitle),$(!REG_VT_DWORD),$(CableTypeValue)},+
  1245.                                 {LinkIntegrity,           $(NoTitle),$(!REG_VT_DWORD),$(LinkIntegrityValue)},+
  1246.                                 {EarlyTransmit,           $(NoTitle),$(!REG_VT_DWORD),$(EarlyTransmitValue)},+
  1247.                                 {FullDuplex,              $(NoTitle),$(!REG_VT_DWORD),$(FullDuplexValue)},+
  1248.                                 {Mode,                    $(NoTitle),$(!REG_VT_DWORD),$(ModeValue)},+
  1249.                     {BusType,                 $(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  1250.                     {BusNumber,               $(NoTitle),$(!REG_VT_DWORD),0},+
  1251.                                 {ResourceManager,         $(NoTitle),$(!REG_VT_DWORD),1},+
  1252.                     {PCMCIA,                  $(NoTitle),$(!REG_VT_DWORD),1}}                   
  1253.     endif
  1254.  
  1255.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  1256.     CloseRegKey $(KeyParameters)
  1257.  
  1258.     ; --------------------------------------------------------------------------------
  1259.     ; Reprogram the PCMCIA slot with the new parameters
  1260.     ; Should only be done during first time installation of NT, and if Xircom card was found
  1261.     ; For now, we do it always...
  1262.     ; --------------------------------------------------------------------------------
  1263.     ifint $(SLOTFOUND) == 1
  1264.         LoadLibrary "disk 1" $(DialogDllName) hLib
  1265.         Debug-Output "Enabling network resources"
  1266.         ifstr(i) $(Option) == CM2NDIS3
  1267.             LibraryProcedure STATUS, $(hLib), SetupSlot $(SLOT) 0 $(IRQValue) $(IOBaseAddrValue) $(IOLengthValue) $(MemoryAddrValue) 4096 0  
  1268.         else
  1269.             LibraryProcedure STATUS, $(hLib), SetupSlot $(SLOT) $(IRQValue) 0 $(IOBaseAddrValue) $(IOLengthValue) $(MemoryAddrValue) 4096 0  
  1270.         endif
  1271.         Debug-Output "SetupSlot: "$(STATUS)
  1272.         FreeLibrary $(hLib)
  1273.     endif
  1274.  
  1275.  
  1276.  
  1277.     ; --------------------------------------------------------------------------------
  1278.     ; Write the parameters to the PCMCIA database section, iff running 3.51 or greater
  1279.     ; Delete the Xircom subtree and re-write the whole thing.  Much easier to code.
  1280.     ; --------------------------------------------------------------------------------
  1281.     set PCMCIADatabaseKeyName = $(!NTN_ServiceBase)"\Pcmcia\DataBase"
  1282. ;       Debug-Output "Opening PCMICA database key "$(PCMCIADatabaseKeyName)
  1283.     OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseKeyName) $(MAXIMUM_ALLOWED) PCMCIADatabaseKey
  1284.  
  1285.     ifstr $(PCMCIADatabaseKey) == $(NULL)    
  1286.         ;Debug-Output "Pcmcia\DataBase not present"
  1287.     else ; PCMCIA.sys is installed and registry has database section in it.
  1288.         ; Try to open Xircom section.  Delete it if found
  1289.     OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseKeyName)"\Xircom" $(MAXIMUM_ALLOWED) PCMCIADatabaseXircomKey
  1290.         ifstr $(PCMCIADatabaseXircomKey) != $(NULL) ; open succeeded, so delete it
  1291.             CloseRegKey $(PCMCIADatabaseXircomKey)
  1292.             DeleteRegTree $(PCMCIADatabaseKey) "Xircom"   ; bye bye!
  1293.         endif
  1294.         
  1295.         CreateRegKey $(PCMCIADatabaseKey) {"Xircom", 0, 0} "" $(MAXIMUM_ALLOWED) "" PCMCIADatabaseXircomKey
  1296.  
  1297.         ; Do the Ethernet Cards --------------------------------------------------------------------------------------
  1298.         CreateRegKey $(PCMCIADatabaseXircomKey) {"CreditCard 10Base-T", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseXircomCEAKey
  1299.         ; Xircom 10Bt -----------------------
  1300.         CreateRegKey $(PCMCIADatabaseXircomCEAKey) {"B00D", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseXircomCEACRCKey
  1301.     SetRegValue $(PCMCIADatabaseXircomCEACRCKey) {Driver, 0, $(!REG_VT_SZ),"cendis3"}
  1302.         CloseRegKey $(PCMCIADatabaseXircomCEACRCKey)
  1303.         ; Xircom 10Bta -----------------------
  1304.         CreateRegKey $(PCMCIADatabaseXircomCEAKey) {"5FFA", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseXircomCEACRCKey
  1305.     SetRegValue $(PCMCIADatabaseXircomCEACRCKey) {Driver, 0, $(!REG_VT_SZ),"cendis3"}
  1306.         CloseRegKey $(PCMCIADatabaseXircomCEACRCKey)
  1307.         ; Xircom 10Bta2 -----------------------
  1308.         CreateRegKey $(PCMCIADatabaseXircomCEAKey) {"9C9B", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseXircomCEACRCKey
  1309.     SetRegValue $(PCMCIADatabaseXircomCEACRCKey) {Driver, 0, $(!REG_VT_SZ),"cendis3"}
  1310.         CloseRegKey $(PCMCIADatabaseXircomCEACRCKey)
  1311.         ; Xircom Btb -----------------------
  1312.         CreateRegKey $(PCMCIADatabaseXircomCEAKey) {"9FAB", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseXircomCEACRCKey
  1313.     SetRegValue $(PCMCIADatabaseXircomCEACRCKey) {Driver, 0, $(!REG_VT_SZ),"cendis3"}
  1314.         CloseRegKey $(PCMCIADatabaseXircomCEACRCKey)
  1315.         
  1316.         ; Xircom Ce2  PS  -----------------------
  1317.         CreateRegKey $(PCMCIADatabaseXircomCEAKey) {"9F5B", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseXircomCEACRCKey
  1318.     SetRegValue $(PCMCIADatabaseXircomCEACRCKey) {Driver, 0, $(!REG_VT_SZ),"ce2ndis3"}
  1319.         CloseRegKey $(PCMCIADatabaseXircomCEACRCKey)
  1320.         ; Xircom Ce2  PS2 -----------------------
  1321.         CreateRegKey $(PCMCIADatabaseXircomCEAKey) {"5331", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseXircomCEACRCKey
  1322.     SetRegValue $(PCMCIADatabaseXircomCEACRCKey) {Driver, 0, $(!REG_VT_SZ),"ce2ndis3"}
  1323.         CloseRegKey $(PCMCIADatabaseXircomCEACRCKey)
  1324.             
  1325.         CloseRegKey PCMCIADatabaseXircomCEAKey
  1326.  
  1327.         ; Do the TokenRing --------------------------------------------------------------------------------------
  1328.         CreateRegKey $(PCMCIADatabaseXircomKey) {"CreditCard Token Ring", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseXircomCTKey
  1329.     SetRegValue $(PCMCIADatabaseXircomCTKey) {Driver, 0, $(!REG_VT_SZ),"ctndnt"}
  1330.         CloseRegKey $(PCMCIADatabaseXircomCTKey)
  1331.         CloseRegKey $(PCMCIADatabaseXircomCTKey)
  1332.  
  1333.         ; Do the Ethernet+Modem Cards ----------------------------------------------------------------------------------
  1334.         CreateRegKey $(PCMCIADatabaseXircomKey) {"CreditCard Ethernet+Modem II", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseXircomCEMKey
  1335.     SetRegValue $(PCMCIADatabaseXircomCEMKey) {Driver, 0, $(!REG_VT_SZ),"cm2ndis3"}
  1336.         CloseRegKey $(PCMCIADatabaseXircomCEMKey)
  1337.  
  1338.  
  1339.         CloseRegKey $(PCMCIADatabaseXircomKey)
  1340.     CloseRegKey $(PCMCIADatabaseKey)
  1341.     endif
  1342.  
  1343.  
  1344.     
  1345.     ; --------------------------------------------------------------------------------
  1346.     ; --------------------------------------------------------------------------------
  1347.     
  1348.     
  1349.     ; --------------------------------------------------------------------------------
  1350.     ; Inform CEM2 user he has to manually add serial port through control panel
  1351.     ; --------------------------------------------------------------------------------
  1352.     ;ifstr(i) $(Option) == CM2NDIS3
  1353.     ;       set InvokePortCPMsg   = "Xircom CEM-2 setup is complete. Please configure the CEM-2 serial port "+
  1354.     ;                               "by invoking the Ports control panel."
  1355.     ;       Shell "subroutn.inf" SetupMessage, $(!STF_LANGUAGE), "STATUS", $(InvokePortCPMsg)
  1356.     ;   IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  1357.     ;        GoTo SuccessfulOption
  1358.     ;    EndIf
  1359.     ;endif
  1360.  
  1361.  
  1362.  
  1363.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1364.     Debug-Output "ShellCode error."
  1365.     goto ShellCodeError
  1366.     endif
  1367.  
  1368.     set RegistryErrorIndex = $($R0)
  1369.  
  1370.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1371.     Debug-Output "Registry error: Add value list"
  1372.     goto fatalregistry
  1373.     endif
  1374.  
  1375.     EndWait
  1376.  
  1377.     goto successful
  1378.  
  1379. ;-----------------------------------------------
  1380. ; Binding section
  1381. ;-----------------------------------------------
  1382. bindingadapter =+
  1383.     set Error = "Binding: Sorry, not yet implemented."
  1384.     goto fatal
  1385.  
  1386. ;-----------------------------------------------
  1387. ; Removeadapter section
  1388. ;-----------------------------------------------
  1389.  
  1390. removeadapter = +
  1391.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  1392.     ; Remove Software Component
  1393.     Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1394.         $(ProductSoftwareName)
  1395.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1396.         Debug-Output "ShellCode error"
  1397.         goto ShellCodeError
  1398.     endif
  1399.  
  1400.     set RegistryErrorIndex = $($R0)
  1401.  
  1402.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1403.         goto fatalregistry
  1404.     endif
  1405.     else
  1406.     Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1407.         $(ProductSoftwareName), $(!NTN_RegBase)
  1408.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1409.         Debug-Output "ShellCode error"
  1410.         goto ShellCodeError
  1411.     endif
  1412.  
  1413.     set RegistryErrorIndex = $($R0)
  1414.  
  1415.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1416.         goto fatalregistry
  1417.     endif
  1418.     endif
  1419.  
  1420.     goto end
  1421.  
  1422. ;-----------------------------------------------
  1423. ; Upgrade Software section
  1424. ;-----------------------------------------------
  1425.  
  1426. UpgradeSoftware = +
  1427.     ;
  1428.     ; First determine whether we want to do upgrade or update for software
  1429.     ; or hardware component. Then we will determine whether the Mode is
  1430.     ; update or upgrade.
  1431.     ;
  1432.     ; If the same version of the product existed in the registry, we do
  1433.     ; update. Otherwise, we will do a upgrade
  1434.     ;
  1435.     ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  1436.     ; Upgrade software component
  1437.     ;
  1438.     ; see whether the same version exist or not
  1439.     ;
  1440.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  1441.  
  1442.     Ifstr $(KeyProduct) != $(KeyNull)
  1443.         GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  1444.         set Version = *($(VersionInfo), 4)
  1445.  
  1446.         ;
  1447.         ; Update the binaries
  1448.         ;
  1449.         Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
  1450.  
  1451.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1452.         Debug-Output "ShellCode error"
  1453.         goto ShellCodeError
  1454.         endif
  1455.  
  1456.         set !UG_Filename = $($R0)
  1457.  
  1458.         ifstr(i) $(!UG_Filename) != ""
  1459.         install "Install-Update"
  1460.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  1461.             goto fatal
  1462.         endif
  1463.         endif
  1464.  
  1465.         ; Upgrade the version number
  1466.         ;
  1467.         SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  1468.         SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  1469.  
  1470.         ;
  1471.         ; do nothing for update
  1472.         ;
  1473.         ifint $(Version) != $(ProductVersion)
  1474.            ;
  1475.            ; If the major version number is not the same,
  1476.            ; it is major upgrade. So let Upgrade the product
  1477.            ;
  1478.            ;
  1479.            ; make other upgrade change if necessary
  1480.            ;
  1481.         endif
  1482.         CloseRegKey $(KeyProduct)
  1483.     else
  1484.         ;
  1485.         ; Cannot Open software key, goto ERROR
  1486.         ;
  1487.         goto fatalregistry
  1488.     endif
  1489.     else
  1490.     ;
  1491.     ; upgrade/update hardware component
  1492.     ; There is no different between upgrade and update for hardware
  1493.     ; component
  1494.     ;
  1495.     ; 1. Get the Service Name
  1496.     ; 2. Change the NetRule section if necessary
  1497.     ;
  1498.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  1499.           $(MAXIMUM_ALLOWED) NetworkCardKey
  1500.     Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  1501.         ;
  1502.         ; Get Service name
  1503.         ;
  1504.         GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  1505.         set ServiceName = *($(ServiceNameInfo), 4)
  1506.  
  1507.         ;
  1508.         ; Change the NetRule if necessary
  1509.         ;
  1510.         OpenRegKey $(NetworkCardKey) "" "NetRules" +
  1511.         $(MAXIMUM_ALLOWED) NetRuleKey
  1512.         Ifstr(i) $(NetRuleKey) != $(KeyNull)
  1513.         ;
  1514.         ; Make the change....
  1515.         ;
  1516.         else
  1517.         ;
  1518.         ; Error, cannot open net rules key
  1519.         ;
  1520.         goto fatalregistry
  1521.         endif
  1522.  
  1523.         CloseRegKey $(NetRules)
  1524.         CloseRegKey $(NetworkCardKey)
  1525.     else
  1526.         ;
  1527.         ; Error, cannot open network card key
  1528.         ;
  1529.         goto fatalregistry
  1530.     endif
  1531.     ;
  1532.     ; 3. Change the service section of the hardware. i.e.,
  1533.     ;    ParameterName change, value change, etc.
  1534.     ;
  1535.     OpenRegKey $(!REG_H_LOCAL) "" +
  1536.           $(!NTN_ServiceBase)"\"$(ServiceName) +
  1537.           $(MAXIMUM_ALLOWED) ServiceKey
  1538.  
  1539.     Ifstr(i) $(ServiceKey) != $(KeyNull)
  1540.         ;
  1541.         ; Get the ServiceKey to change the Start value
  1542.         ; or Type value. Or open Parameters key to
  1543.         ; change the hardware parameters if necessary.
  1544.         ;
  1545.         CloseRegKey $(ServiceKey)
  1546.     else
  1547.         ;
  1548.         ; Error, cannot open network card key
  1549.         ;
  1550.         goto fatalregistry
  1551.     endif
  1552.     endif
  1553.  
  1554.     goto end
  1555.     ;
  1556.     ; End of Upgrade Software
  1557.     ;
  1558.  
  1559. ;
  1560. ;  Escape hatches
  1561. ;
  1562. successful = +
  1563.     goto end
  1564.  
  1565. abandon = +
  1566.     ForListDo $(OEM_ABANDON_OPTIONS)
  1567.     Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1568.         $(ProductSoftwareName), $($)
  1569.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1570.         Debug-Output "ShellCode error"
  1571.         goto ShellCodeError
  1572.     endif
  1573.  
  1574.     set RegistryErrorIndex = $($R0)
  1575.  
  1576.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1577.         goto fatalregistry
  1578.     endif
  1579.     EndForListDo
  1580.  
  1581.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  1582.     ; Remove Software Component
  1583.     Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1584.         $(ProductSoftwareName), FALSE
  1585.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1586.         Debug-Output "ShellCode error"
  1587.         goto ShellCodeError
  1588.     endif
  1589.  
  1590.     set RegistryErrorIndex = $($R0)
  1591.  
  1592.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1593.         goto fatalregistry
  1594.     endif
  1595.     endif
  1596.  
  1597.     goto end
  1598.  
  1599. ;
  1600. ; warning display
  1601. ;
  1602. warning = +
  1603.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  1604.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1605.     goto ShellCodeError
  1606.     endif
  1607.     ifstr(i) $($R1) == "OK"
  1608.     goto $(to)
  1609.     else-ifstr(i) $($R1) == "CANCEL"
  1610.     goto $(from)
  1611.     else
  1612.     goto "end"
  1613.     endif
  1614. ;
  1615. ; non fatal error display
  1616. ;
  1617. nonfatalinfo = +
  1618.     Set Severity = STATUS
  1619.     Set CommonStatus = STATUS_USERCANCEL
  1620.     goto nonfatalmsg
  1621. nonfatal = +
  1622.     Set Severity = NONFATAL
  1623.     goto nonfatalmsg
  1624. nonfatalmsg = +
  1625.     ifstr(i) $(Error) == ""
  1626.     Set Severity = NONFATAL
  1627.     Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1628.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1629.         goto ShellCodeError
  1630.     endif
  1631.     set Error = $($R0)
  1632.     endif
  1633.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  1634.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1635.     goto ShellCodeError
  1636.     endif
  1637.     ifstr(i) $($R1) == "OK"
  1638.     goto $(from)
  1639.     else
  1640.     goto "end"
  1641.     endif
  1642.  
  1643. ;
  1644. ;  Registry is broken
  1645. ;
  1646. fatalregistry = +
  1647.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  1648.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1649.     goto ShellCodeError
  1650.     endif
  1651.     set Error = $($R0)
  1652.     goto fatal
  1653. ;
  1654. ;  Netcard detection failure
  1655. ;
  1656. fataldetect = +
  1657.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  1658.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1659.     Debug-Output "ShellCode error: cannot get an error string."
  1660.     goto ShellCodeError
  1661.     endif
  1662.     set Error = $($R0)
  1663.     Goto fatal
  1664. ;
  1665. ; fatal error display
  1666. ;
  1667. fatal = +
  1668.     ifstr(i) $(Error) == ""
  1669.     Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1670.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1671.         goto ShellCodeError
  1672.     endif
  1673.     set Error = $($R0)
  1674.     endif
  1675.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1676.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1677.     goto ShellCodeError
  1678.     endif
  1679.  
  1680.     goto setfailed
  1681.  
  1682. ;
  1683. ;  Shelling error
  1684. ;
  1685. ShellCodeError = +
  1686.     set DlgType      = "MessageBox"
  1687.     set STF_MB_TITLE = $(ShellCodeErrorTitle)
  1688.     set STF_MB_TEXT  = $(ShellCodeErrorText) 
  1689.     set STF_MB_TYPE  = 1
  1690.     set STF_MB_ICON  = 3
  1691.     set STF_MB_DEF   = 1
  1692.     ui start "Error Message"
  1693.     goto setfailed
  1694.  
  1695. setfailed = +
  1696.     set CommonStatus = STATUS_FAILED
  1697.     ;
  1698.     ; if OEM_ABANDON_ON == TRUE, then remove the registry entries
  1699.     ;
  1700.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1701.     set OEM_ABANDON_ON = FALSE
  1702.     goto abandon
  1703.     endif
  1704.     goto end
  1705.  
  1706. end = +
  1707.     goto term
  1708.  
  1709. term = +
  1710.  
  1711.     Return $(CommonStatus)
  1712.  
  1713. [DebugConfiguration]
  1714.  
  1715.     Set InfName = "OEMSETNT.INF"
  1716.     ;Debug-Output $(InfName)" **CONFIGURATION STATE: "$($0)
  1717.     ;Debug-Output $(InfName)" IRQ_Level is "$(!p:IRQ_Level)
  1718.     ;Debug-Output $(InfName)" IOBaseAddrValue is "$(!p:IOBaseAddrValue)
  1719.     ;Debug-Output $(InfName)" TransceiverValue is "$(!p:TransceiverValue)
  1720.     ;Debug-Output $(InfName)" MemoryAddr is "$(!p:MemoryAddr)
  1721.     ;Debug-Output $(InfName)" MappedValue is "$(!p:MappedValue)
  1722.  
  1723.     return
  1724.  
  1725.  
  1726. ;***************************************************************
  1727. ;  INSTALL SECTIONS
  1728. ;***************************************************************
  1729. [Install-Option]
  1730.     set STF_VITAL = ""
  1731.  
  1732.     ifstr(i) $(AddCopy) == "YES"
  1733.  
  1734.     ;
  1735.     ; Add the files to the copy list
  1736.     ;
  1737.     ;  BUGBUG: eliminate the "nt2" in the next line when Sunil fixes
  1738.     ;      the other INF files
  1739.     ;
  1740.     AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1741.  
  1742.     endif
  1743.  
  1744.     ifstr(i) $(DoCopy) == "YES"
  1745.  
  1746.        ;
  1747.        ; Copy files in the copy list
  1748.        ;
  1749.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1750.        CopyFilesInCopyList
  1751.  
  1752.     endif
  1753.  
  1754.     Exit
  1755.  
  1756. [Install-Update]
  1757.    set STF_VITAL        = ""
  1758.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1759.    ;set STF_VERSION     = "YES"
  1760.  
  1761.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1762.    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1763.  
  1764.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1765.    CopyFilesInCopyList
  1766.  
  1767.    exit
  1768.  
  1769.  
  1770. [Install-Dll]
  1771.    set STF_VITAL        = ""
  1772.    AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1773.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1774.    CopyFilesInCopyList
  1775.    exit
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781. [Source Media Descriptions]
  1782.     1  = "Xircom Setup Disk for NT" 
  1783.  
  1784.  
  1785. [ProductType]
  1786. STF_PRODUCT  = Winnt
  1787. STF_PLATFORM = I386
  1788.  
  1789.  
  1790. [Files-Inf]
  1791. 1, OEMSETNT.INF, SIZE=43500,    RENAME=$(!UG_Filename)
  1792.  
  1793. [Files-Dll]
  1794. 1, XIRCOM.DLL,  SIZE=9728
  1795.  
  1796. [Files-CENDIS3]
  1797. 1, CENDIS3.SYS, SIZE=43008
  1798.  
  1799. [Files-CE2NDIS3]
  1800. 1, CE2NDIS3.SYS, SIZE=43008
  1801.  
  1802. [Files-CM2NDIS3]
  1803. 1, CM2NDIS3.SYS, SIZE=43008
  1804.  
  1805. [Files-CTNDNT]
  1806. 1, CTNDNT.SYS, SIZE=43008
  1807.  
  1808. [Files-PE3NDIS3]
  1809. 1, PE3NDIS3.SYS, SIZE=43008
  1810.  
  1811.  
  1812. [LanguagesSupported]
  1813.     ENG
  1814.  
  1815. [AllFileConstantsENG]
  1816. ProCaption   = "Windows NT Setup"
  1817. ProCancel    = "Cancel"
  1818. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  1819.            "Are you sure you want to cancel copying files?"
  1820. ProCancelCap = "Network Setup Message"
  1821. ProText1     = "Copying:"
  1822. ProText2     = "To:"
  1823. DialogDllName     = "XIRCOM.DLL"
  1824.  
  1825.  
  1826. ; CE/A ---------------------------------------------------------------------------------------
  1827. [FileConstantsENG-CENDIS3]
  1828. FunctionTitle   = $(GenericAdapterName)" Setup"$(GenericInfVersion)
  1829. ProductSoftwareTitle        = $(GenericDriverName)
  1830. ProductHardwareCENDIS3Title = $(GenericAdapterName)
  1831. ProductHardwareTitle        = $(GenericAdapterName)
  1832. IRQList           = ^(IRQChoices, 1)
  1833. IRQValues         = ^(IRQChoices, 2)
  1834. IOBaseAddrList    = ^(IOBaseAddrChoices, 1)     
  1835. IOBaseAddrValues  = ^(IOBaseAddrChoices, 2)
  1836. MemoryAddrList    = ^(MemoryAddrChoices,1)
  1837. MemoryAddrValues  = ^(MemoryAddrChoices,2)
  1838. TransceiverList   = ^(TransceiverChoices,1)
  1839. TransceiverValues = ^(TransceiverChoices,2)
  1840.  
  1841.  
  1842. [DialogConstantsENG-CENDIS3]
  1843. Help        = "&Help"
  1844. Exit        = "Cancel"
  1845. OK          = "OK"
  1846. HelpContext = ""
  1847. Continue    = "Continue"
  1848. Cancel      = "Cancel"
  1849. ;CardInfo    = "Card Info"
  1850.  
  1851.  
  1852. [FileDependentDlgENG-CENDIS3]
  1853. DlgType = "RadioCombination"
  1854. DlgTemplate = "CEA"
  1855. Caption = $(FunctionTitle)
  1856. HelpContext = $(!IDH_DB_OEMNADE2_INS)
  1857. CBOptionsGreyed = {}
  1858. NotifyFields = {NO, NO, NO, NO}
  1859. Combo1Label = "I/&O Port Address:"                  
  1860. Combo2Label = "&Memory Address:"
  1861. Combo3Label = "&Interrupt:"
  1862. Combo4Label = "&Transceiver Type:"
  1863. ;---------------------------
  1864. Combo1List = $(IOBaseAddrList)
  1865. Combo1Out  = $(IOBaseAddrValue)
  1866. Combo2List = $(MemoryAddrList)
  1867. Combo2Out  = $(MemoryAddrValue)
  1868. Combo3List = $(IRQList)
  1869. Combo3Out  = $(IRQValue)
  1870. Combo4List = $(TransceiverList)
  1871. Combo4Out  = $(TransceiverValue)
  1872. ;---------------------------
  1873. ComboListItemsIn  = {Combo1List,Combo2List,Combo3List, Combo4List}
  1874. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out}
  1875. EditTextIn = {"", ""}
  1876. EditTextLim = {"",""}
  1877. ; END CE/A ---------------------------------------------------------------------------------------
  1878.  
  1879.  
  1880.  
  1881. ; CEM2 ---------------------------------------------------------------------------------------
  1882. [FileConstantsENG-CM2NDIS3]
  1883. FunctionTitle   = "CreditCard Ethernet+Modem II "$(GenericInfVersion)
  1884. ProductSoftwareTitle        = $(GenericDriverName)
  1885. ProductHardwareCENDIS3Title = $(GenericAdapterName)
  1886. ProductHardwareTitle        = $(GenericAdapterName)
  1887. IRQList           = ^(IRQChoices, 1)
  1888. IRQValues         = ^(IRQChoices, 2)
  1889. IOBaseAddrList    = ^(IOBaseAddrChoices, 1)     
  1890. IOBaseAddrValues  = ^(IOBaseAddrChoices, 2)
  1891. MemoryAddrList    = ^(MemoryAddrChoices,1)
  1892. MemoryAddrValues  = ^(MemoryAddrChoices,2)
  1893. ModemInterruptNumberList =      ^(IRQChoices, 1)
  1894. ModemInterruptNumberValues = ^(IRQChoices, 2)
  1895. ModemIOBaseAddressList   = ^(ModemIOBaseAddressChoices,1)
  1896. ModemIOBaseAddressValues = ^(ModemIOBaseAddressChoices,2)
  1897. SocketNumberList   =  ^(SocketNumberChoices,1)
  1898. SocketNumberValues =  ^(SocketNumberChoices,2)
  1899.  
  1900.  
  1901. [DialogConstantsENG-CM2NDIS3]
  1902. Help        = "&Help"
  1903. Exit        = "Cancel"
  1904. OK          = "OK"
  1905. HelpContext = ""
  1906. Continue    = "Continue"
  1907. Cancel      = "Cancel"
  1908. ;CardInfo    = "Card Info"
  1909.  
  1910. [FileDependentDlgENG-CM2NDIS3]
  1911. DlgType = "RadioCombination"
  1912. DlgTemplate = "CEM2"
  1913. Caption = $(FunctionTitle)
  1914. HelpContext = $(!IDH_DB_OEMNADE2_INS)
  1915. CBOptionsGreyed = {}
  1916. NotifyFields = {NO, NO, NO, NO, NO, NO}
  1917. Combo1Label = "I/&O Port Address:"                  
  1918. Combo2Label = "&Memory Address:"
  1919. Combo3Label = "&Interrupt:"
  1920. Combo4Label = "Modem &Port Address:"
  1921. Combo5Label = "Modem In&terrupt:"
  1922. Combo6Label = "PCMCIA &chip set:"
  1923. ;---------------------------
  1924. Combo1List = $(IOBaseAddrList)
  1925. Combo1Out  = $(IOBaseAddrValue)
  1926. Combo2List = $(MemoryAddrList)
  1927. Combo2Out  = $(MemoryAddrValue)
  1928. Combo3List = $(IRQList)
  1929. Combo3Out  = $(IRQValue)
  1930. Combo4List = $(ModemIOBaseAddressList)
  1931. Combo4Out  = $(ModemIOBaseAddressValue)
  1932. Combo5List = $(IRQList)
  1933. Combo5Out  = $(ModemInterruptNumberValue)
  1934. Combo6List = $(SocketNumberList)
  1935. Combo6Out  = $(SocketNumberValue)
  1936. ;---------------------------
  1937. ComboListItemsIn  = {Combo1List,Combo2List,Combo3List,Combo4List,Combo5List,Combo6List}
  1938. ComboListItemsOut = {Combo1Out,Combo2Out,Combo3Out,Combo4Out,Combo5Out,Combo6Out}
  1939. EditTextIn = {"", ""}
  1940. EditTextLim = {"",""}
  1941. ; END CEM2 ---------------------------------------------------------------------------------------
  1942.  
  1943.  
  1944.  
  1945. ; START TOKEN RING ---------------------------------------------------------------------------------------
  1946. [FileConstantsENG-CTNDNT]
  1947. FunctionTitle   = $(GenericAdapterName)" Setup"$(GenericInfVersion)
  1948. ProductSoftwareTitle        = $(GenericDriverName)
  1949. ProductHardwareCENDIS3Title = $(GenericAdapterName)
  1950. ProductHardwareTitle        = $(GenericAdapterName)
  1951. IRQList           = ^(IRQChoices, 1)
  1952. IRQValues         = ^(IRQChoices, 2)
  1953. IOBaseAddrList    = ^(IOBaseAddrChoices, 1)     
  1954. IOBaseAddrValues  = ^(IOBaseAddrChoices, 2)
  1955. MemoryAddrList    = ^(MemoryAddrChoices,1)
  1956. MemoryAddrValues  = ^(MemoryAddrChoices,2)
  1957. LineSpeedList     = ^(LineSpeedChoices,1)
  1958. LineSpeedValues   = ^(LineSpeedChoices,2)
  1959.  
  1960. [DialogConstantsENG-CTNDNT]
  1961. Help        = "&Help"
  1962. Exit        = "Cancel"
  1963. OK          = "OK"
  1964. HelpContext = ""
  1965. Continue    = "Continue"
  1966. Cancel      = "Cancel"
  1967. ;CardInfo    = "Card Info"
  1968.  
  1969. [FileDependentDlgENG-CTNDNT]
  1970. DlgType = "RadioCombination"
  1971. DlgTemplate = "CT2"
  1972. Caption = $(FunctionTitle)
  1973. HelpContext = $(!IDH_DB_OEMNADE2_INS)
  1974. CBOptionsGreyed = {}
  1975. NotifyFields = {NO, NO, NO, NO}
  1976. Combo1Label = "I/&O Port Address:"                  
  1977. Combo2Label = "&Memory Address:"
  1978. Combo3Label = "&Interrupt:"
  1979. Combo4Label = "&Line Speed:"
  1980. ;---------------------------
  1981. Combo1List = $(IOBaseAddrList)
  1982. Combo1Out  = $(IOBaseAddrValue)
  1983. Combo2List = $(MemoryAddrList)
  1984. Combo2Out  = $(MemoryAddrValue)
  1985. Combo3List = $(IRQList)
  1986. Combo3Out  = $(IRQValue)
  1987. Combo4List = $(LineSpeedList)
  1988. Combo4Out  = $(LineSpeedValue)
  1989. ;---------------------------
  1990. ComboListItemsIn  = {Combo1List,Combo2List,Combo3List,Combo4List}
  1991. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out}
  1992. EditTextIn = {"", "","","",""}
  1993. EditTextLim = {"","","","",""}
  1994.  
  1995. ; END TOKEN RING ---------------------------------------------------------------------------------------
  1996.  
  1997.  
  1998. ; START CE/2 -------------------------------------------------------------------------------------------
  1999.  
  2000. [FileConstantsENG-CE2NDIS3]
  2001. FunctionTitle                   = $(GenericAdapterName)" Setup"$(GenericInfVersion)
  2002. ProductSoftwareTitle    = $(GenericDriverName)
  2003. ProductHardwareCE2NDIS3Title = $(GenericAdapterName)
  2004. ProductHardwareTitle    = $(GenericAdapterName)
  2005. IRQList                         = ^(IRQChoices, 1)
  2006. IRQValues                       = ^(IRQChoices, 2)
  2007. IOBaseAddrList                  = ^(IOBaseAddrChoices, 1)       
  2008. IOBaseAddrValues                = ^(IOBaseAddrChoices, 2)
  2009. MemoryAddrList                  = ^(MemoryAddrChoices,1)
  2010. MemoryAddrValues                = ^(MemoryAddrChoices,2)
  2011. FullDuplexList                  = ^(FullDuplexChoices,1)
  2012. FullDuplexValues                = ^(FullDuplexChoices,2)
  2013. ModeList                                = ^(ModeChoices, 1)
  2014. ModeValues                              = ^(ModeChoices, 2)
  2015. EarlyTransmitList               = ^(EarlyTransmitChoices, 1)
  2016. EarlyTransmitValues             = ^(EarlyTransmitChoices, 2)
  2017. LinkIntegrityList               = ^(LinkIntegrityChoices, 1)
  2018. LinkIntegrityValues             = ^(LinkIntegrityChoices, 2)
  2019. CableTypeList                   = ^(CableTypeChoices, 1)
  2020. CableTypeValues                 = ^(CableTypeChoices, 2)
  2021.  
  2022.  
  2023. [DialogConstantsENG-CE2NDIS3]
  2024. Help        = "&Help"
  2025. Exit        = "Cancel"
  2026. OK          = "OK"
  2027. HelpContext = ""
  2028. Continue    = "Continue"
  2029. Cancel      = "Cancel"
  2030.  
  2031. [FileDependentDlgENG-CE2NDIS3]
  2032. DlgType = "RadioCombination"
  2033. DlgTemplate = "CE2"
  2034. Caption = $(FunctionTitle)
  2035. HelpContext = $(!IDH_DB_OEMNADE2_INS)
  2036. CBOptionsGreyed = {}
  2037. NotifyFields = {NO, NO, NO, NO}
  2038. Combo1Label = "I/&O Port Address:"                  
  2039. Combo2Label = "&Memory Address:"
  2040. Combo3Label = "&Interrupt:"
  2041. Combo4Label = "&Full Duplex:"
  2042. Combo5Label = "Mo&de:"
  2043. Combo6Label = "&Early Transmit:"
  2044. Combo7Label = "&Link Integrity:"
  2045. Combo8Label = "&Cable Type:"
  2046. Combo1List = $(IOBaseAddrList)
  2047. Combo1Out  = $(IOBaseAddrValue)
  2048. Combo2List = $(MemoryAddrList)
  2049. Combo2Out  = $(MemoryAddrValue)
  2050. Combo3List = $(IRQList)
  2051. Combo3Out  = $(IRQValue)
  2052. Combo4List = $(FullDuplexList)
  2053. Combo4Out  = $(FullDuplexValue)
  2054. Combo5List = $(ModeList)
  2055. Combo5Out  = $(ModeValue)
  2056. Combo6List = $(EarlyTransmitList)
  2057. Combo6Out  = $(EarlyTransmitValue)
  2058. Combo7List = $(LinkIntegrityList)
  2059. Combo7Out  = $(LinkIntegrityValue)
  2060. Combo8List = $(CableTypeList)
  2061. Combo8Out  = $(CableTypeValue)
  2062. ComboListItemsIn  = {Combo1List,Combo2List,Combo3List, Combo4List,Combo5List,Combo6List,Combo7List,Combo8List}
  2063. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out, Combo5Out, Combo6Out, Combo7Out, Combo8Out}
  2064. EditTextIn = {"", ""}
  2065. EditTextLim = {"",""}
  2066.  
  2067. ; END CE/2 -------------------------------------------------------------------------------------------
  2068.  
  2069.  
  2070.  
  2071. [MemoryAddrChoices]
  2072. MA_1  = "0xA0000", 655360
  2073. MA_2  = "0xA1000", 659456
  2074. MA_3  = "0xA2000", 663552
  2075. MA_4  = "0xA3000", 667648
  2076. MA_5  = "0xA4000", 671744
  2077. MA_6  = "0xA5000", 675840
  2078. MA_7  = "0xA6000", 679936
  2079. MA_8  = "0xA7000", 684032
  2080. MA_9  = "0xA8000", 688128
  2081. MA_10 = "0xA9000", 692224
  2082. MA_11 = "0xAA000", 696320
  2083. MA_12 = "0xAB000", 700416
  2084. MA_13 = "0xAC000", 704512
  2085. MA_14 = "0xAD000", 708608
  2086. MA_15 = "0xAE000", 712704
  2087. MA_16 = "0xAF000", 716800
  2088. MA_17 = "0xB0000", 720896
  2089. MA_18 = "0xB1000", 724992
  2090. MA_19 = "0xB2000", 729088
  2091. MA_20 = "0xB3000", 733184
  2092. MA_21 = "0xB4000", 737280
  2093. MA_22 = "0xB5000", 741376
  2094. MA_23 = "0xB6000", 745472
  2095. MA_24 = "0xB7000", 749568
  2096. MA_25 = "0xB8000", 753664
  2097. MA_26 = "0xB9000", 757760
  2098. MA_27 = "0xBA000", 761856
  2099. MA_28 = "0xBB000", 765952
  2100. MA_29 = "0xBC000", 770048
  2101. MA_30 = "0xBD000", 774144
  2102. MA_31 = "0xBE000", 778240
  2103. MA_32 = "0xBF000", 782336
  2104. MA_33 = "0xC0000", 786432
  2105. MA_34 = "0xC1000", 790528
  2106. MA_35 = "0xC2000", 794624
  2107. MA_36 = "0xC3000", 798720
  2108. MA_37 = "0xC4000", 802816
  2109. MA_38 = "0xC5000", 806912
  2110. MA_39 = "0xC6000", 811008
  2111. MA_40 = "0xC7000", 815104
  2112. MA_41 = "0xC8000", 819200
  2113. MA_42 = "0xC9000", 823296
  2114. MA_43 = "0xCA000", 827392
  2115. MA_44 = "0xCB000", 831488
  2116. MA_45 = "0xCC000", 835584
  2117. MA_46 = "0xCD000", 839680
  2118. MA_47 = "0xCE000", 843776
  2119. MA_48 = "0xCF000", 847872
  2120. MA_49 = "0xD0000", 851968
  2121. MA_50 = "0xD1000", 856064
  2122. MA_51 = "0xD2000", 860160
  2123. MA_52 = "0xD3000", 864256
  2124. MA_53 = "0xD4000", 868352
  2125. MA_54 = "0xD5000", 872448
  2126. MA_55 = "0xD6000", 876544
  2127. MA_56 = "0xD7000", 880640
  2128. MA_57 = "0xD8000", 884736
  2129. MA_58 = "0xD9000", 888832
  2130. MA_59 = "0xDA000", 892928
  2131. MA_60 = "0xDB000", 897024
  2132. MA_61 = "0xDC000", 901120
  2133. MA_62 = "0xDD000", 905216
  2134. MA_63 = "0xDE000", 909312
  2135. MA_64 = "0xDF000", 913408
  2136. MA_65 = "0xE0000", 917504
  2137. MA_66 = "0xE1000", 921600
  2138. MA_67 = "0xE2000", 925696
  2139. MA_68 = "0xE3000", 929792
  2140. MA_69 = "0xE4000", 933888
  2141. MA_70 = "0xE5000", 937984
  2142. MA_71 = "0xE6000", 942080
  2143. MA_72 = "0xE7000", 946176
  2144. MA_73 = "0xE8000", 950272
  2145. MA_74 = "0xE9000", 954368
  2146. MA_75 = "0xEA000", 958464
  2147. MA_76 = "0xEB000", 962560
  2148. MA_77 = "0xEC000", 966656
  2149. MA_78 = "0xED000", 970752
  2150. MA_79 = "0xEE000", 974848
  2151. MA_80 = "0xEF000", 978944
  2152. MA_81 = "0xF0000", 983040
  2153. MA_82 = "0xF1000", 987136
  2154. MA_83 = "0xF2000", 991232
  2155. MA_84 = "0xF3000", 995328
  2156. MA_85 = "0xF4000", 999424
  2157. MA_86 = "0xF5000", 1003520
  2158. MA_87 = "0xF6000", 1007616
  2159. MA_88 = "0xF7000", 1011712
  2160. MA_89 = "0xF8000", 1015808
  2161. MA_90 = "0xF9000", 1019904
  2162. MA_91 = "0xFA000", 1024000
  2163. MA_92 = "0xFB000", 1028096
  2164. MA_93 = "0xFC000", 1032192
  2165. MA_94 = "0xFD000", 1036288
  2166. MA_95 = "0xFE000", 1040384
  2167.  
  2168. [TransceiverChoices]
  2169. TR_1 = "Twisted Pair (10bT)", 0
  2170. TR_2 = "Thin Net (10b2 BNC/COAX)", 1
  2171.  
  2172. [IRQChoices]
  2173. ;Interrupts available on the PCIC: { 3,4,5,7,8,10,11,12,14,15 }
  2174. ;Interrupts available on the TCIC: { 3,4,5,6,7,10,14 }
  2175. ;14 = fixed disk
  2176. ;12 = keyboard
  2177. ;6  = floppy disk
  2178. ;union(PCIC, TCIC) - {14} = 3,4,5,7,10
  2179. IRQ_1 = "3",3
  2180. IRQ_2 = "4",4
  2181. IRQ_3 = "5",5
  2182. IRQ_4 = "7",7
  2183. IRQ_5 = "10",10
  2184. IRQ_6 = "11",11
  2185. IRQ_7 = "15",15
  2186.  
  2187. [ModemIOBaseAddressChoices]
  2188. MdmIOBase_1  = "0x3F8",1016
  2189. MdmIOBase_2  = "0x2F8",760
  2190. MdmIOBase_3  = "0x3E8",1000
  2191. MdmIOBase_4  = "0x2E8",744
  2192.      
  2193. [SocketNumberChoices]
  2194. Socket_1  = "Intel PCIC and Compatible", 0
  2195. Socket_2  = "VLSI (Compaq Elite, AST)", 1
  2196.  
  2197.  
  2198. [FullDuplexChoices]
  2199. FD_1 = "No", 0
  2200. FD_2 = "Yes", 1
  2201.  
  2202.  
  2203. [ModeChoices]
  2204. MO_1 = "Shared Memory Mode", 0
  2205. MO_2 = "I/O Mode", 1
  2206.  
  2207. [EarlyTransmitChoices]
  2208. ET_1 = "Off", 0
  2209. ET_2 = "On", 1
  2210.  
  2211. [LinkIntegrityChoices]
  2212. LI_1 = "Disabled", 0
  2213. LI_2 = "Enabled", 1
  2214.      
  2215. [CableTypeChoices]
  2216. CT_1 = "Auto Detect", 0
  2217. CT_2 = "Twisted Pair (10bT)", 1
  2218. CT_3 = "Thin Net (10b2 BNC/COAX)", 2
  2219.  
  2220. [LineSpeedChoices]
  2221. LS0_0 = "EEPROM",238
  2222. LS1_1 = "4 Mbps",4
  2223. LS2_2 = "16 Mbps",16
  2224. LS2_3 = "Auto",10
  2225.  
  2226. [IOBaseAddrChoices]
  2227. ; 0x3E0 is where PCIC is located
  2228. ; 0x240 is where TCIC is located
  2229. ; therefore user cannot select these for locating the ethernet adapter
  2230. IOBase_1  = "0x200",512
  2231. IOBase_2  = "0x210",528
  2232. IOBase_3  = "0x220",544
  2233. IOBase_4  = "0x230",560
  2234. ;IOBase_5  = "0x240",576
  2235. IOBase_6  = "0x250",592
  2236. IOBase_7  = "0x260",608
  2237. IOBase_8  = "0x270",624
  2238. IOBase_9  = "0x280",640
  2239. IOBase_10 = "0x290",656
  2240. IOBase_11 = "0x2A0",672
  2241. IOBase_12 = "0x2B0",698
  2242. IOBase_13 = "0x2C0",714
  2243. IOBase_14 = "0x2D0",730
  2244. IOBase_15 = "0x2E0",746
  2245. IOBase_16 = "0x2F0",752
  2246. IOBase_17 = "0x300",768
  2247. IOBase_18 = "0x310",784
  2248. IOBase_19 = "0x320",800
  2249. IOBase_20 = "0x330",816
  2250. IOBase_21 = "0x340",832
  2251. IOBase_22 = "0x350",848
  2252. IOBase_23 = "0x360",864
  2253. IOBase_24 = "0x370",880
  2254. IOBase_25 = "0x380",896
  2255. IOBase_26 = "0x390",912
  2256. IOBase_27 = "0x3A0",928
  2257. IOBase_28 = "0x3B0",944
  2258. IOBase_29 = "0x3C0",960
  2259. IOBase_30 = "0x3D0",976
  2260.  
  2261.  
  2262.  
  2263.