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

  1. ;***********************************************************************
  2. ;
  3. ; OEMSEUP.INF
  4. ;
  5. ;       E21XX network card and driver SETUP INF file.
  6. ;
  7. ; History:
  8. ; v1.00.00 First Release
  9. ; v1.01.00 Release with Help
  10. ;***********************************************************************
  11.  
  12. [Identification]
  13.     OptionType = NetAdapter
  14.  
  15. [PlatformsSupported]
  16.     ISA
  17.     EISA
  18.  
  19. [Options]
  20.     E21XX
  21.  
  22. ;***********************************************************************
  23. ; CONSTANTS FOR USING DIALOGS
  24. ;***********************************************************************
  25.  
  26. [FileConstants]
  27.  
  28.  
  29. GenericInfVersion  = " v1.01"
  30. GenericAdapterName = "Cabletron E21XX Adapter"
  31. GenericDriverName  = "Cabletron E21XX Driver"
  32. GenericSysName     = "E21N3.SYS"
  33. GenericName        = "E21XX"
  34.  
  35. ;
  36. ;  File names, etc.
  37. ;
  38. UtilityInf      = "UTILITY.INF"
  39. ParamInf        = "NCPARAM.INF"
  40. subroutineinf   = "SUBROUTN.INF"
  41. SoftwareType    = "driver"
  42. Exit_Code       = 0
  43.  
  44. ;
  45. ; EventLog Message File
  46. ;
  47. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  48. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  49.  
  50. ; Product Info
  51. ;
  52. Manufacturer    = "Microsoft"
  53. ProductMajorVersion     = "3"
  54. ProductMinorVersion     = "1"
  55. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  56.  
  57. ;
  58. ; Software
  59. ;
  60. ProductSoftwareName     = "E21XX"
  61. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\"$(GenericSysName)
  62. NetRuleSoftwareType     = "E21N3Sys ndisDriver E21XXDriver"
  63.  
  64. NetRuleSoftwareUse      = $(SoftwareType)
  65. NetRuleSoftwareBindForm = """E21N3Sys"" yes no container"
  66.  
  67. NetRuleSoftwareClass    = {"E21XXDriver basic"}
  68. NetRuleSoftwareBindable = {"E21XXDriver E21XXAdapter non exclusive 100"}
  69. ;
  70. ; Hardware
  71. ;
  72. ProductHardwareName        = "E21XX"
  73. NetRuleHardwareType        = "E21XX E21XXAdapter"
  74. NetRuleHardwareBindForm    = " yes yes container"
  75. NetRuleHardwareClass       = {"E21XXAdapter basic"}
  76.  
  77. ;
  78. ; Registry Key
  79. ;
  80. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  81. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  82.  
  83. [GeneralConstants]
  84. ;
  85. ;  Program flow control variables.
  86. ;
  87. from      = ""
  88. to        = ""
  89. ;
  90. ;  Return codes; Exit_Code is set to one of these
  91. ;
  92. ExitCodeOk     = 0
  93. ExitCodeCancel = 1
  94. ExitCodeFatal  = 2
  95.  
  96. KeyNull         = ""
  97. MAXIMUM_ALLOWED   = 33554432
  98. RegistryErrorIndex = NO_ERROR
  99. KeyProduct      = ""
  100. KeyParameters   = ""
  101.  
  102. TRUE            = 1
  103. FALSE           = 0
  104. NoTitle            = 0
  105.  
  106. ExitState   = "Active"
  107. OldVersionExisted = $(FALSE)
  108.  
  109. DriverPath      = $(!STF_NTPATH)\drivers
  110.  
  111. [date]
  112.     ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
  113.     ; Minute, Second }
  114.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  115.  
  116. [Identify]
  117.     ;
  118.     ;
  119.     read-syms Identification
  120.  
  121.     set Status     = STATUS_SUCCESSFUL
  122.     set Identifier = $(OptionType)
  123.     set Media      = #("Source Media Descriptions", 1, 1)
  124.  
  125.     Return $(Status) $(Identifier) $(Media)
  126.  
  127. [ReturnOptions]
  128.     ;
  129.     ;
  130.     set Status        = STATUS_FAILED
  131.     set OptionList     = {}
  132.     set OptionTextList = {}
  133.  
  134.     ;
  135.     ; Check if the language requested is supported
  136.     ;
  137.     set LanguageList = ^(LanguagesSupported, 1)
  138.     Ifcontains(i) $($0) in $(LanguageList)
  139.     ;
  140.     ; Check if the platforms requested is supported
  141.     ;
  142.     ifstr(i) $($1) == ""
  143.             goto returnoptions
  144.     endif
  145.  
  146.     set PlatformList = ^(PlatformsSupported, 1)
  147.     Ifcontains(i) $($1) in $(PlatformList)
  148.             goto returnoptions
  149.     else
  150.             set Status = STATUS_NOTSUPPORTED
  151.             goto finish_ReturnOptions
  152.     endif
  153.     else
  154.         set Status = STATUS_NOLANGUAGE
  155.         goto finish_ReturnOptions
  156.     endif
  157.  
  158.     ;
  159.     ; form a list of all the options and another of the text representing
  160.     ;
  161.  
  162. returnoptions = +
  163.     set OptionList     = ^(Options, 1)
  164.     set OptionTextList = ^(OptionsText$($0), 1)
  165.     set Status         = STATUS_SUCCESSFUL
  166.  
  167. finish_ReturnOptions = +
  168.     Return $(Status) $(OptionList) $(OptionTextList)
  169.  
  170. [InstallOption]
  171.     ;
  172.     ; Set default values for
  173.     ;
  174.     set Status   = STATUS_FAILED
  175.     ;
  176.     ; extract parameters
  177.     ;
  178.     set Option   = $($1)
  179.     set SrcDir   = $($2)
  180.     set AddCopy  = $($3)
  181.     set DoCopy   = $($4)
  182.     set DoConfig = $($5)
  183.  
  184.     ;
  185.     ; Check if the language requested is supported
  186.     ;
  187.     set LanguageList = ^(LanguagesSupported, 1)
  188.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  189.     Return STATUS_NOLANGUAGE
  190.     endif
  191.  
  192.     set-subst LF = "\n"
  193.  
  194.     read-syms GeneralConstants
  195.     read-syms FileConstants
  196.  
  197.     read-syms DialogConstants$(!STF_LANGUAGE)
  198.     ifstr(i) $(!NTN_Origination) == "NCPA"
  199.     set Continue = $(OK)
  200.     endif
  201.     read-syms FileConstants$(!STF_LANGUAGE)
  202.  
  203.     detect date
  204.  
  205.     set-title  $(FunctionTitle)
  206.  
  207.     set to   = Begin
  208.     set from = Begin
  209. ;
  210. ;  Assume all is well.
  211. ;
  212.     set CommonStatus = STATUS_SUCCESSFUL
  213.  
  214.     EndWait
  215.  
  216. ;
  217. ;   Set up the operation-mode-based variables and gaily welcome
  218. ;   the user.  If the "install mode" variable is improperly set,
  219. ;   assume this is a new installation.
  220. ;
  221.  
  222. Begin = +
  223.     Set ActivateDetection = FALSE
  224.  
  225.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  226.     set StartLabel = removeadapter
  227.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  228.     set StartLabel = UpgradeSoftware
  229.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  230.     set StartLabel = bindingadapter
  231.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  232. ;        set ActivateDetection = TRUE
  233.     set StartLabel = configureadapter
  234.     ;
  235.     ;   You cannot config the software component
  236.     ;
  237.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  238.         Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  239.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  240.         goto ShellCodeError
  241.         endif
  242.         set Error = $($R0)
  243.         set from = end
  244.         set to = end
  245.         goto nonfatalinfo
  246.     endif
  247.     else
  248. ;        set ActivateDetection = TRUE
  249.     set StartLabel = installadapter
  250.     set OEM_ABANDON_OPTIONS = {}
  251.     set OEM_ABANDON_SOFTWARE = FALSE
  252.     set OEM_ABANDON_ON = TRUE
  253.     endif
  254.  
  255.  
  256.  
  257.     ;  set the default values
  258.  
  259.     ; IRQ Level = 5
  260.     set IRQValue = *($(IRQList), 3)
  261.  
  262.     ; IOBase Address = 0x380
  263.     set IOBaseAddrValue = *($(IOBaseAddrList), 4)
  264.  
  265.     ; Memory Mapped Base Address = 0xc800
  266.     set MappedValue = *($(MappedList), 5)
  267.  
  268.     ; Transceiver - Primary
  269.     set RadioIn = { 1 }
  270.  
  271.     set CardTypeValue = 0
  272.  
  273.     Set from = $(fatal)
  274.     Set to = $(fatal)
  275.     Goto $(StartLabel)
  276.  
  277. ;-----------------------------------------------
  278. ; Installation Section
  279. ;-----------------------------------------------
  280.  
  281. installadapter = +
  282. ;
  283. ;   First, check whether the same version of the software exists
  284. ;
  285.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  286.  
  287.     Ifstr $(KeyProduct) != $(KeyNull)
  288.     ;
  289.     ; Same version already existed in the local machine
  290.     ; Popup the dialog and ask the user whether he wants to continue
  291.     ;
  292.     CloseRegKey $(KeyProduct)
  293.  
  294.     ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  295.        ;
  296.        ; Cannot Install the same software again
  297.        ;
  298.        Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  299.            $(ProductVersion)
  300.        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  301.            goto ShellCodeError
  302.        endif
  303.  
  304.        goto end
  305.     else
  306.        ;
  307.        ; Add a new adapter card?
  308.        ;
  309.        Shell $(UtilityInf), CardExistedDlg
  310.  
  311.        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  312.            goto ShellCodeError
  313.        endif
  314.  
  315.        ifstr(i) $($R1) != "OK"
  316.            goto end
  317.        endif
  318.        set OldVersionExisted = $(TRUE)
  319.     endif
  320.     endif
  321.  
  322. ;
  323. ;  dll load addition
  324. ;
  325.     Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  326.  
  327.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  328.     Goto ShellCodeError
  329.     Else-Ifstr(i) $($R0) == STATUS_FAILED
  330.     Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  331.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  332.         goto ShellCodeError
  333.     endif
  334.     set Error = $($R0)
  335.     Goto fatal
  336.     Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  337.     Goto successful
  338.     Endif
  339.  
  340.     Set SrcDir = $($R1)
  341.  
  342.     SetHelpFile "e21.hlp" 0 0
  343.  
  344.     install "Install-Dll"
  345.  
  346.     goto adaptersetup
  347.  
  348. ;-----------------------------------------------
  349. ; Configuration Section
  350. ;-----------------------------------------------
  351. ;
  352. ;   Get the current values of all the parameters
  353. ;
  354. configureadapter = +
  355.     Ifstr $(KeyProduct) == $(KeyNull)
  356.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  357.     Ifstr $(KeyProduct) == $(KeyNull)
  358.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  359.         goto fatalregistry
  360.     Endif
  361.     Endif
  362.  
  363.     ;
  364.     ; Get the other parameters;  they're attached to the service parameters key
  365.     ;
  366.     Shell $(UtilityInf) FindService, $(KeyProduct)
  367.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  368.     Goto ShellCodeError
  369.     Endif
  370.     Ifstr(i) $($R0) != NO_ERROR
  371.     Goto fatalregistry
  372.     endif
  373.  
  374.     Set KeyParameters = $($R2)
  375.  
  376.     ;
  377.     ;  We don't need the services key, so close it.
  378.     ;
  379.     CloseRegKey $($R1)
  380.  
  381.     Ifstr $(KeyParameters) == $(KeyNull)
  382.     set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  383.     goto fatalregistry
  384.     endif
  385.  
  386.     set OldVersionExisted = $(TRUE)
  387.  
  388.     set ValueName = ""
  389.     set ValueData = ""
  390.     set ValueStr  = ""
  391.     set ValueList = {}
  392.  
  393.  
  394.     ;
  395.     ; Get the old values
  396.     ;
  397.     EnumRegValue $(KeyParameters) ValueList
  398.  
  399.     ForListDo $(ValueList)
  400.     set ValueItem = $($)
  401.     set ValueName = *($(ValueItem),1)
  402.     set ValueData = *($(ValueItem),4)
  403.     ifstr(i) $(ValueName) == "InterruptNumber"
  404.         set IRQValueIndex = $(ValueData)
  405.     else-ifstr(i) $(ValueName) == "IoBaseAddress"
  406.         set IOBaseAddrIndex = $(ValueData)
  407.             else-ifstr(i) $(ValueName) == "MemoryMappedBaseAddress"
  408.                 set MappedValueIndex = $(ValueData)
  409.     else-ifstr(i) $(ValueName) == "Transceiver"
  410.         set Transceiver = $(ValueData)
  411.     endif
  412.  
  413.     EndForListDo
  414.  
  415.     set IRQValue = *($(IRQList), ~($(IRQValues),$(IRQValueIndex)))
  416.     ifstr(i) $(IRQValue) == ""
  417.     set IRQValue = *($(IRQList), 3)
  418.     endif
  419.  
  420.     set IOBaseAddrValue = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrIndex)))
  421.     ifstr(i) $(IOBaseAddrValue) == ""
  422.     set IOBaseAddrValue = *($(IOBaseAddrList), 4)
  423.     endif
  424.  
  425.     set MappedValue = *($(MappedList), ~($(MappedValues),$(MappedValueIndex)))
  426.     ifstr(i) $(MappedValue) == ""
  427.     set MappedValue = *($(MappedList), 5)
  428.     endif
  429.  
  430.     Ifstr(i) $(Transceiver) == 1
  431.         set Rad1 = 2
  432.     else
  433.         set Rad1 = 1
  434.     endif
  435.  
  436.     set RadioIn = {$(Rad1)}
  437.  
  438.     ;  Save the settings as they were read from the Registry.
  439.  
  440. ;    Shell $(ParamInf) Param_SaveValues
  441. ;    Set CurrParamSettings = $($R0)
  442. ;
  443. ;   Put up the adapter configuration dialog if necessary.
  444. ;
  445. ;   Note that $(CurrParamSettings) has the old known parameter values.
  446. ;
  447. adaptersetup = +
  448.  
  449.  
  450. ;    Shell "" DebugConfiguration "before displaying dialog"
  451.  
  452.     Set from = adapteroptions
  453.  
  454.  
  455. adapteroptions = +
  456.  
  457.  
  458.     LoadLibrary "Disk 1" $(DialogDllName) hLib
  459.  
  460.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  461.  
  462.     ui start "InputDlg"  $(hLib)
  463.  
  464.     set ExitButton      = $(ButtonPressed)
  465.  
  466.     FreeLibrary $(hLib)
  467.  
  468.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  469.         set IRQValueIndex = $(Combo1Out)
  470.         set IOBaseAddrIndex = $(Combo2Out)
  471.                         set MappedValueIndex = $(Combo3Out)
  472.         set ExitButton      = $(ButtonPressed)
  473.  
  474.                 IfContains "1" IN $(RadioOut)
  475.                     set Transceiver = 0
  476.                 else-IfContains "2" IN $(RadioOut)
  477.                     set Transceiver = 1
  478.                 endif
  479.  
  480.         ui pop 1
  481. ;               goto nextstep
  482.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  483.         set CommonStatus = STATUS_USERCANCEL
  484.         ui pop 1
  485.         goto end
  486.     else
  487.         ;
  488.         ; Unknow command
  489.         ;
  490.         ui pop 1
  491.  
  492.         goto end
  493.     endif
  494.  
  495. ;
  496. ;   If installing, go create the necessary keys;
  497. ;   if configuring, they're already open.
  498. ;
  499. skipoptions =+
  500.  
  501.     ifint $(OldVersionExisted) == $(TRUE)
  502.     ifstr(i) $(!NTN_InstallMode) == configure
  503.         goto writeparameters
  504.     endif
  505.     endif
  506.     StartWait
  507.     ;
  508.     ; Add Software Component
  509.     ;
  510.     ifint $(OldVersionExisted) == $(FALSE)
  511.  
  512.     ifstr(i) $(!NTN_InstallMode) == "install"
  513.        Ifstr(i) $(DoCopy) == "YES"
  514.  
  515.           Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  516.  
  517.           Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  518.           Goto ShellCodeError
  519.           Else-Ifstr(i) $($R0) == STATUS_FAILED
  520.           Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  521.           ifint $($ShellCode) != $(!SHELL_CODE_OK)
  522.               goto ShellCodeError
  523.           endif
  524.           set Error = $($R0)
  525.           Goto fatal
  526.           Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  527.           Goto successful
  528.           Endif
  529.  
  530.           Set SrcDir = $($R1)
  531.  
  532.        Endif
  533.  
  534.        install "Install-Option"
  535.  
  536.        ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  537.           Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  538.           ifint $($ShellCode) != $(!SHELL_CODE_OK)
  539.           goto ShellCodeError
  540.           endif
  541.           set Error = $($R0)
  542.           goto fatal
  543.        endif
  544.     endif
  545.  
  546.  
  547.  
  548.     Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  549.         $(ProductSoftwareName), +
  550.         $(ProductSoftwareName), +
  551.         $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  552.         $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  553.         $(NetEventDLL)
  554.  
  555.     Set OEM_ABANDON_SOFTWARE = TRUE
  556.  
  557.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  558.         goto ShellCodeError
  559.     endif
  560.  
  561.     set RegistryErrorIndex = $($R0)
  562.     set KeyProduct      = $($R1)
  563.     Set SoftNetRulesKey = $($R2)
  564.     CloseRegKey $($R3)
  565.     CloseRegKey $($R4)
  566.     CloseRegKey $($R5)
  567.  
  568.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  569.         EndWait
  570.         CloseRegKey $(KeyProduct)
  571.         CloseRegKey $(SoftNetRulesKey)
  572.         goto fatalregistry
  573.     endif
  574.  
  575.     set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  576.                {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  577.                {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  578.                {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  579.                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  580.                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  581.                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  582.  
  583.     Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  584.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  585.         goto ShellCodeError
  586.     endif
  587.  
  588.     set RegistryErrorIndex = $($R0)
  589.  
  590.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  591.         EndWait
  592.         CloseRegKey $(KeyProduct)
  593.         CloseRegKey $(SoftNetRulesKey)
  594.         goto fatalregistry
  595.     endif
  596.  
  597.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  598.                 {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  599.                 {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  600.                 {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  601.                 {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  602.                 {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  603.  
  604.     Shell  $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
  605.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  606.         goto ShellCodeError
  607.     endif
  608.  
  609.     set RegistryErrorIndex = $($R0)
  610.  
  611.     CloseRegKey $(KeyProduct)
  612.     CloseRegKey $(SoftNetRulesKey)
  613.  
  614.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  615.         EndWait
  616.         goto fatalregistry
  617.     endif
  618.     endif
  619. ;
  620. ;   Create the HARDWARE\Netcard region and its corresponding service
  621. ;
  622.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  623.  
  624.     ifint $($R4) != -1
  625.     Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  626.     endif
  627.  
  628.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  629.     goto ShellCodeError
  630.     endif
  631.  
  632.     set RegistryErrorIndex = $($R0)
  633.  
  634.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  635.     EndWait
  636.     CloseRegKey $($R1)
  637.     CloseRegKey $($R2)
  638.     CloseRegKey $($R3)
  639.     goto fatalregistry
  640.     endif
  641.  
  642.     set KeyParameters = $($R3)
  643.     set KeyAdapterRules = $($R2)
  644.     set AdapterNumber = $($R4)
  645.  
  646.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  647.                {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
  648.                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+
  649.                {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  650.                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  651.                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  652.  
  653.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  654.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  655.     goto ShellCodeError
  656.     endif
  657.  
  658.     CloseRegKey $($R1)
  659.  
  660.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  661.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  662.  
  663.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  664.             {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  665.             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  666.             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  667.  
  668.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  669.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  670.     goto ShellCodeError
  671.     endif
  672.  
  673.     set RegistryErrorIndex = $($R0)
  674.  
  675.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  676.     EndWait
  677.     CloseRegKey $(KeyParameters)
  678.     CloseRegKey $(KeyAdapterRules)
  679.     goto fatalregistry
  680.     endif
  681.  
  682.     CloseRegKey $(KeyAdapterRules)
  683.  
  684.     goto writeparameters
  685. ;
  686. ;   REQUIRED:   $(KeyParameters) contains service Parameters key handle
  687. ;
  688. writeparameters = +
  689.     Shell $(UtilityInf), GetBusTypeNum
  690.     set BusTypeNum = $($R1)
  691.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  692.     goto ShellCodeError
  693.     endif
  694.  
  695. ;    Set NewValueList = {{Transceiver,$(NoTitle),$(!REG_VT_DWORD),$(TransceiverValue)},+
  696. ;                       {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  697. ;                       {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  698. ;                       {MemoryMapped,$(NoTitle),$(!REG_VT_DWORD),$(MappedValue)},+
  699. ;                       {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
  700. ;                       {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)}}
  701. ;
  702.  
  703.     set IRQValue = *($(IRQValues), ~($(IRQList),$(IRQValueIndex)))
  704.  
  705.     set IOBaseAddrValue = *($(IOBaseAddrValues), ~($(IOBaseAddrList),$(IOBaseAddrIndex)))
  706.  
  707.     set MappedValue = *($(MappedValues), ~($(MappedList),$(MappedValueIndex)))
  708.  
  709.     set NewValueList = {{BusNumber,$(NoTitle),$(!REG_VT_DWORD),0},+
  710.         {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  711.          {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  712.                             {MemoryMappedBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(MappedValue)},+
  713.         {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
  714.         {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
  715.                             {Transceiver,$(NoTitle),$(!REG_VT_DWORD),$(Transceiver)}} 
  716.  
  717.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  718.  
  719.     CloseRegKey $(KeyParameters)
  720.  
  721.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  722.     goto ShellCodeError
  723.     endif
  724.  
  725.     set RegistryErrorIndex = $($R0)
  726.  
  727.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  728.     goto fatalregistry
  729.     endif
  730.  
  731.     EndWait
  732.  
  733.     goto successful
  734.  
  735. ;-----------------------------------------------
  736. ; Binding section
  737. ;-----------------------------------------------
  738. bindingadapter =+
  739.     set Error = "Binding: Sorry, not yet implemented."
  740.     goto fatal
  741.  
  742. ;-----------------------------------------------
  743. ; Removeadapter section
  744. ;-----------------------------------------------
  745.  
  746. removeadapter = +
  747.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  748.     ; Remove Software Component
  749.     Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  750.         $(ProductSoftwareName)
  751.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  752.         goto ShellCodeError
  753.     endif
  754.  
  755.     set RegistryErrorIndex = $($R0)
  756.  
  757.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  758.         goto fatalregistry
  759.     endif
  760.     else
  761.     Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  762.         $(ProductSoftwareName), $(!NTN_RegBase)
  763.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  764.         goto ShellCodeError
  765.     endif
  766.  
  767.     set RegistryErrorIndex = $($R0)
  768.  
  769.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  770.         goto fatalregistry
  771.     endif
  772.     endif
  773.  
  774.     goto end
  775.  
  776. ;-----------------------------------------------
  777. ; Upgrade Software section
  778. ;-----------------------------------------------
  779.  
  780. UpgradeSoftware = +
  781.  
  782.     ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  783.     ; Upgrade software component
  784.     ;
  785.     ; see whether the same version exist or not
  786.     ;
  787.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  788.  
  789.     Ifstr $(KeyProduct) != $(KeyNull)
  790.         GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  791.         set Version = *($(VersionInfo), 4)
  792.  
  793.         ;
  794.         ; Update the binaries
  795.         ;
  796.         Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
  797.  
  798.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  799.         goto ShellCodeError
  800.         endif
  801.  
  802.         set !UG_Filename = $($R0)
  803.  
  804.         ifstr(i) $(!UG_Filename) != ""
  805.         install "Install-Update"
  806.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  807.             goto fatal
  808.         endif
  809.         endif
  810.  
  811.         ; Upgrade the version number
  812.         ;
  813.         SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  814.         SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  815.  
  816.         ;
  817.         ; do nothing for update
  818.         ;
  819.         ifint $(Version) != $(ProductVersion)
  820.            ;
  821.            ; If the major version number is not the same,
  822.            ; it is major upgrade. So let Upgrade the product
  823.            ;
  824.            ;
  825.            ; make other upgrade change if necessary
  826.            ;
  827.         endif
  828.         CloseRegKey $(KeyProduct)
  829.     else
  830.         ;
  831.         ; Cannot Open software key, goto ERROR
  832.         ;
  833.         goto fatalregistry
  834.     endif
  835.     else
  836.     ;
  837.     ; upgrade/update hardware component
  838.     ; There is no different between upgrade and update for hardware
  839.     ; component
  840.     ;
  841.     ; 1. Get the Service Name
  842.     ; 2. Change the NetRule section if necessary
  843.     ;
  844.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  845.           $(MAXIMUM_ALLOWED) NetworkCardKey
  846.     Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  847.         ;
  848.         ; Get Service name
  849.         ;
  850.         GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  851.         set ServiceName = *($(ServiceNameInfo), 4)
  852.  
  853.         ;
  854.         ; Change the NetRule if necessary
  855.         ;
  856.         OpenRegKey $(NetworkCardKey) "" "NetRules" +
  857.         $(MAXIMUM_ALLOWED) NetRuleKey
  858.         Ifstr(i) $(NetRuleKey) != $(KeyNull)
  859.         ;
  860.         ; Make the change....
  861.         ;
  862.         else
  863.         ;
  864.         ; Error, cannot open net rules key
  865.         ;
  866.         goto fatalregistry
  867.         endif
  868.  
  869.         CloseRegKey $(NetRules)
  870.         CloseRegKey $(NetworkCardKey)
  871.     else
  872.         ;
  873.         ; Error, cannot open network card key
  874.         ;
  875.         goto fatalregistry
  876.     endif
  877.     ;
  878.     ; 3. Change the service section of the hardware. i.e.,
  879.     ;    ParameterName change, value change, etc.
  880.     ;
  881.     OpenRegKey $(!REG_H_LOCAL) "" +
  882.           $(!NTN_ServiceBase)"\"$(ServiceName) +
  883.           $(MAXIMUM_ALLOWED) ServiceKey
  884.  
  885.     Ifstr(i) $(ServiceKey) != $(KeyNull)
  886.         ;
  887.         ; Get the ServiceKey to change the Start value
  888.         ; or Type value. Or open Parameters key to
  889.         ; change the hardware parameters if necessary.
  890.         ;
  891.         CloseRegKey $(ServiceKey)
  892.     else
  893.         ;
  894.         ; Error, cannot open network card key
  895.         ;
  896.         goto fatalregistry
  897.     endif
  898.     endif
  899.  
  900.     goto end
  901.     ;
  902.     ; End of Upgrade Software
  903.     ;
  904.  
  905. ;
  906. ;  Escape hatches
  907. ;
  908. successful = +
  909.     goto end
  910.  
  911. abandon = +
  912.     ForListDo $(OEM_ABANDON_OPTIONS)
  913.     Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  914.         $(ProductSoftwareName), $($)
  915.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  916.         goto ShellCodeError
  917.     endif
  918.  
  919.     set RegistryErrorIndex = $($R0)
  920.  
  921.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  922.         goto fatalregistry
  923.     endif
  924.     EndForListDo
  925.  
  926.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  927.     ; Remove Software Component
  928.     Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  929.         $(ProductSoftwareName), FALSE
  930.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  931.         goto ShellCodeError
  932.     endif
  933.  
  934.     set RegistryErrorIndex = $($R0)
  935.  
  936.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  937.         goto fatalregistry
  938.     endif
  939.     endif
  940.  
  941.     goto end
  942.  
  943. ;
  944. ; warning display
  945. ;
  946. warning = +
  947.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  948.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  949.     goto ShellCodeError
  950.     endif
  951.     ifstr(i) $($R1) == "OK"
  952.     goto $(to)
  953.     else-ifstr(i) $($R1) == "CANCEL"
  954.     goto $(from)
  955.     else
  956.     goto "end"
  957.     endif
  958. ;
  959. ; non fatal error display
  960. ;
  961. nonfatalinfo = +
  962.     Set Severity = STATUS
  963.     Set CommonStatus = STATUS_USERCANCEL
  964.     goto nonfatalmsg
  965. nonfatal = +
  966.     Set Severity = NONFATAL
  967.     goto nonfatalmsg
  968. nonfatalmsg = +
  969.     ifstr(i) $(Error) == ""
  970.     Set Severity = NONFATAL
  971.     Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  972.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  973.         goto ShellCodeError
  974.     endif
  975.     set Error = $($R0)
  976.     endif
  977.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  978.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  979.     goto ShellCodeError
  980.     endif
  981.     ifstr(i) $($R1) == "OK"
  982.     goto $(from)
  983.     else
  984.     goto "end"
  985.     endif
  986.  
  987. ;
  988. ;  Registry is broken
  989. ;
  990. fatalregistry = +
  991.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  992.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  993.     goto ShellCodeError
  994.     endif
  995.     set Error = $($R0)
  996.     goto fatal
  997. ;
  998. ;  Netcard detection failure
  999. ;
  1000. fataldetect = +
  1001.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  1002.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1003.     goto ShellCodeError
  1004.     endif
  1005.     set Error = $($R0)
  1006.     Goto fatal
  1007. ;
  1008. ; fatal error display
  1009. ;
  1010. fatal = +
  1011.     ifstr(i) $(Error) == ""
  1012.     Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1013.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1014.         goto ShellCodeError
  1015.     endif
  1016.     set Error = $($R0)
  1017.     endif
  1018.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1019.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1020.     goto ShellCodeError
  1021.     endif
  1022.  
  1023.     goto setfailed
  1024.  
  1025. ;
  1026. ;  Shelling error
  1027. ;
  1028. ShellCodeError = +
  1029.     set DlgType      = "MessageBox"
  1030.     set STF_MB_TITLE = $(ShellCodeErrorTitle)
  1031.     set STF_MB_TEXT  = $(ShellCodeErrorText) 
  1032.     set STF_MB_TYPE  = 1
  1033.     set STF_MB_ICON  = 3
  1034.     set STF_MB_DEF   = 1
  1035.     ui start "Error Message"
  1036.     goto setfailed
  1037.  
  1038. setfailed = +
  1039.     set CommonStatus = STATUS_FAILED
  1040.     ;
  1041.     ; if OEM_ABANDON_ON == TRUE, then remove the registry entries
  1042.     ;
  1043.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1044.     set OEM_ABANDON_ON = FALSE
  1045.     goto abandon
  1046.     endif
  1047.     goto end
  1048.  
  1049. end = +
  1050.     goto term
  1051.  
  1052. term = +
  1053.  
  1054.     Return $(CommonStatus)
  1055.  
  1056. [DebugConfiguration]
  1057.  
  1058.     Set InfName = "OEMsetup.INF"
  1059.  
  1060.     return
  1061.  
  1062.  
  1063. ;***************************************************************
  1064. ;  INSTALL SECTIONS
  1065. ;***************************************************************
  1066. [Install-Option]
  1067.     set STF_VITAL = ""
  1068.  
  1069.     ifstr(i) $(AddCopy) == "YES"
  1070.  
  1071.     ;
  1072.     ; Add the files to the copy list
  1073.     ;
  1074.     ;  BUGBUG: eliminate the "nt2" in the next line when Sunil fixes
  1075.     ;      the other INF files
  1076.     ;
  1077.     AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1078.  
  1079.     endif
  1080.  
  1081.     ifstr(i) $(DoCopy) == "YES"
  1082.  
  1083.        ;
  1084.        ; Copy files in the copy list
  1085.        ;
  1086.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1087.        CopyFilesInCopyList
  1088.  
  1089.     endif
  1090.  
  1091.     Exit
  1092.  
  1093. [Install-Update]
  1094.    set STF_VITAL        = ""
  1095.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1096.    ;set STF_VERSION     = "YES"
  1097.  
  1098.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1099.    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1100.  
  1101.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1102.    CopyFilesInCopyList
  1103.  
  1104.    exit
  1105.  
  1106. [Install-Dll]
  1107.    set STF_VITAL        = ""
  1108.    AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1109.    CopyFilesInCopyList
  1110.    exit
  1111.  
  1112. [Source Media Descriptions]
  1113.     1  = "Windows NT Setup Disk #1"  
  1114.     2  = "Windows NT Setup CD-ROM Disk"  
  1115.     5  = "Cabletron Drivers Disk"
  1116.     99  = "LMHOST disk"
  1117.  
  1118. [ProductType]
  1119. STF_PRODUCT  = Winnt
  1120. STF_PLATFORM = I386
  1121.  
  1122. [Files-Inf]
  1123. 5,      oemsetup.inf,    SIZE=1000,     RENAME=$(!UG_Filename)
  1124.  
  1125. [Files-E21XX]
  1126. 5, E21N3.SYS , SIZE=88888
  1127.  
  1128. [Files-Dll]
  1129. 5, ctrondlg.dll,  SIZE=999
  1130. 5, e21.hlp,  SIZE=999
  1131.  
  1132. [LanguagesSupported]
  1133.     ENG
  1134.  
  1135. [OptionsTextENG]
  1136.     E21XX     = "Cabletron E21XX Ethernet Adapter"
  1137.  
  1138. [FileConstantsENG]
  1139. ProCaption   = "Windows NT Setup"
  1140. ProCancel    = "Cancel"
  1141. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  1142.            "Are you sure you want to cancel copying files?"
  1143. ProCancelCap = "Network Setup Message"
  1144. ProText1     = "Copying:"
  1145. ProText2     = "To:"
  1146.  
  1147. FunctionTitle   = $(GenericAdapterName)" Card Setup"$(GenericInfVersion)
  1148.  
  1149. ProductSoftwareDescription = $(GenericDriverName)
  1150. ProductHardwareDescription = $(GenericAdapterName)
  1151.  
  1152. ProductSoftwareTitle =       $(GenericDriverName)
  1153. ProductHardwareE21XXTitle =       $(GenericAdapterName)
  1154. ProductHardwareE21XXDescription =       $(GenericAdapterName)
  1155.  
  1156. DialogDllName   = "ctrondlg.dll"
  1157.  
  1158.  
  1159. IRQList  = ^(IRQChoices, 1)
  1160. IRQValues = ^(IRQChoices, 2)
  1161.  
  1162. IOBaseAddrList = ^(IOBaseAddrChoices, 1)
  1163. IOBaseAddrValues = ^(IOBaseAddrChoices, 2)
  1164.  
  1165. MappedList = ^(MappedChoices, 1)
  1166. MappedValues = ^(MappedChoices, 2)
  1167.  
  1168. [DialogConstantsENG]
  1169. Help        = "&Help"
  1170. Exit        = "Cancel"
  1171. OK          = "OK"
  1172. HelpContext = 0
  1173. Continue    = "Continue"
  1174. Cancel      = "Cancel"
  1175.  
  1176. [FileDependentDlgENG]
  1177.  
  1178. DlgText = "Please select values for the following fields:"
  1179.  
  1180. DlgType = "RadioCombination"
  1181. DlgTemplate = "E21XX"
  1182. Caption = $(FunctionTitle)
  1183.  
  1184. CBOptionsGreyed = {}
  1185. NotifyFields = {NO, NO}
  1186. HelpContext = 0
  1187. Combo1Label = "&IRQ Level:"
  1188. Combo2Label = "I/O &Port:"
  1189. Combo3Label = "Base &Address:"
  1190.  
  1191. Combo1List = $(IRQList)
  1192. Combo1Out  = $(IRQValue)
  1193.  
  1194. Combo2List = $(IOBaseAddrList)
  1195. Combo2Out  = $(IOBaseAddrValue)
  1196.  
  1197. Combo3List = $(MappedList)
  1198. Combo3Out = $(MappedValue)
  1199.  
  1200. ComboListItemsIn  = {Combo1List, Combo2List, Combo3List}
  1201. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out}
  1202.  
  1203. EditTextIn = {"",""}
  1204.  
  1205. EditTextLim = {"",""}
  1206.  
  1207. Group1 = "Transceiver"
  1208.  
  1209. Radio1 = "P&rimary"
  1210. Radio2 = "&Secondary"
  1211.  
  1212. [IRQChoices]
  1213. IRQ_1 = "3",3
  1214. IRQ_2 = "4",4
  1215. IRQ_3 = "5",5
  1216. IRQ_4 = "7",7
  1217. IRQ_5 = "9",9
  1218. IRQ_6 = "10",10
  1219. IRQ_7 = "11",11
  1220. IRQ_8 = "12",12
  1221. IRQ_9 = "14",14
  1222. IRQ_10 = "15",15
  1223.  
  1224. [IOBaseAddrChoices]
  1225. IOBase_1  = "0x220",512
  1226. IOBase_2  = "0x280",640
  1227. IOBase_3  = "0x300",768
  1228. IOBase_4  = "0x380",896
  1229.  
  1230. [MappedChoices]
  1231. Map_1 = "0xC0000",786432
  1232. Map_2 = "0xC4000",802816
  1233. Map_3 = "0xC8000",819200
  1234. Map_4 = "0xCC000",835584
  1235. Map_5 = "0xD0000",851968
  1236. Map_6 = "0xD4000",868352
  1237. Map_7 = "0xD8000",884736
  1238. Map_8 = "0xDC000",901120
  1239.