;----------------------------------------------------------------------- ; OPTION TYPE ; ----------- ; This identifies the Option type we are dealing with. The different ; possible types are: ; ; COMPUTER, VIDEO, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ... ;----------------------------------------------------------------------- [Identification] OptionType = VIDEO40BETA ;--------------------------------------------------------------------------- ; 1. Identify ; ; DESCRIPTION: To verify that this INF deals with the same type of options ; as we are choosing currently. ; ; INPUT: None ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL ; $($R1): Option Type (COMPUTER ...) ; $($R2): Diskette description ;--------------------------------------------------------------------------- [Identify] ; ; read-syms Identification set Status = STATUS_SUCCESSFUL set Identifier = $(OptionType) set Media = #("Source Media Descriptions", 1, 1) Return $(Status) $(Identifier) $(Media) [ServicesEntry] CurrentEntry = "" ? $(!LIBHANDLE) GetDevicemapValue Video \Device\Video0 [SystemVariables] STF_WINDOWSSYSPATH = "" ? $(!LIBHANDLE) GetWindowsNtSysDir STF_WINDOWSPATH = "" ? $(!LIBHANDLE) GetWindowsNtDir OemCodePage = "" ? $(!LIBHANDLE) GetOemCodepage ;----------------------------------------------------------------------- ; VIDEO DRIVER SECTION ; --------------------_ ; This sections contains the processing for installing a new video driver. ; ;----------------------------------------------------------------------- ; ; Order of the information: ; ; driverentry = Miniport Driver (1), ; Type (2), ; Group (3), ; ErrorControl (4), ; InstalledDisplay (5), ; VgaCompatible(0/1) (6), ; EventMessageFile (7), ; TypesSupported (8), ; Autodetect (9), ; ExtraFilesRequired (10), ; ConfigSection (11) ; [MiniportDrivers] ati = ati , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {ati,8514a} , 0, "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\ati.sys" , 7, 1, {} , ati-config cirrus = cirrus , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {vga,cirrus,vga256,vga64k} , 1, "%SystemRoot%\System32\IoLogMsg.dll" , 7, 1, {} , noconfig dell_dgx = dell_dgx , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {framebuf} , 0, "%SystemRoot%\System32\IoLogMsg.dll" , 7, 1, {} , noconfig et4000 = et4000 , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {vga,w32,vga256,vga64k} , 1, "%SystemRoot%\System32\IoLogMsg.dll" , 7, 1, {} , noconfig jazzg300 = jazzg300 , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {framebuf} , 0, "%SystemRoot%\System32\IoLogMsg.dll" , 7, 1, {} , noconfig jazzg364 = jazzg364 , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {framebuf} , 0, "%SystemRoot%\System32\IoLogMsg.dll" , 7, 1, {} , noconfig jzvxl484 = jzvxl484 , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {jzvxl484} , 0, "%SystemRoot%\System32\IoLogMsg.dll" , 7, 1, {} , noconfig mga = mga , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {mga} , 0, "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\mga.sys" , 7, 1, {} , noconfig ncr77c22 = ncr77c22 , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {vga,vga256} , 1, "%SystemRoot%\System32\IoLogMsg.dll" , 7, 1, {} , noconfig psidisp = psidisp , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {psidisp} , 0, "%SystemRoot%\System32\IoLogMsg.dll" , 7, 1, {} , noconfig qv = qv , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {vga,qv} , 1, "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\qv.sys" , 7, 1, {} , noconfig s3 = s3 , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {s3} , 0, "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\s3.sys" , 7, 1, {} , noconfig tga = tga , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {tga} , 0, "%SystemRoot%\System32\IoLogMsg.dll" , 7, 1, {} , noconfig v7vram = v7vram , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {vga,vga256} , 1, "%SystemRoot%\System32\IoLogMsg.dll" , 7, 1, {} , noconfig wd90c24a = wd90c24a , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {wd90c24a} , 0, "%SystemRoot%\System32\IoLogMsg.dll" , 7, 1, {} , noconfig wdvga = wdvga , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {vga,vga256} , 1, "%SystemRoot%\System32\IoLogMsg.dll" , 7, 1, {} , noconfig weitekp9 = weitekp9 , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {weitekp9} , 0, "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\weitekp9.sys" , 7, 1, {} , weitekp9-config xga = xga , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {xga, vga256} , 0, "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\xga.sys" , 7, 1, {} , noconfig ; ; The following entry are marked so as not to be part of autodetection ; ati8514 causes problem in autodetection because it loads before ati, and ; cause the 64bit ati boards (not vga compatible) to crash. ; 8514a detection is also not very reliable - so let's not detect it. ; ati8514a = ati , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {8514a,ati} , 0, "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\ati.sys" , 7, 0, {} , noconfig i8514a = 8514a , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {8514a} , 0, "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\8514a.sys" , 7, 0, {} , noconfig vga = vga , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_IGNORE, {vga} , 1, "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\vga.sys" , 7, 0, {} , noconfig videosim = videosim , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_IGNORE, {framebuf} , 0, "%SystemRoot%\System32\IoLogMsg.dll" , 7, 0, {} , noconfig ; ; We do not autodetect the trident anymore either since we crash on the most ; most recent trident chip. The user can always install it later on, and ; if it crashes, they can use last known good. ; trident = trident , !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, {vga,vga256} , 1, "%SystemRoot%\System32\IoLogMsg.dll" , 7, 0, {} , noconfig ; ; List of OpenGL drivers that go with display drivers. ; The section is mandatory, but entries in the list are optional. ; [OpenGLDrivers] ; s3 = gls3 ; vga256 = glvga256 [ExternalInstallOption] Set !G:DebugOutputControl = 0 set Exit_Code = $(!SETUP_ERROR_GENERAL) install LoadSetupLibrary ifstr(i) $(STF_LANGUAGE) == "" goto end else-ifstr(i) $(OPTION) == "" goto end else-ifstr(i) $(INITSRC) == "" goto end else-ifstr(i) $(ADDCOPY) == "" goto end else-ifstr(i) $(DOCOPY) == "" goto end else-ifstr(i) $(DOCONFIG) == "" goto end else-ifstr(i) $(DOINSTALL) == "" goto end else-ifstr(i) $(INFFILE) == "" goto end endif LoadLibrary "x" $(!STF_CWDDIR)setupdll.dll !LIBHANDLE set STF_CONTROLSET = CurrentControlSet read-syms SystemVariables detect SystemVariables shell $(INFFILE) InstallOption $(STF_LANGUAGE) $(OPTION) $(INITSRC) $(ADDCOPY) $(DOCOPY) $(DOCONFIG) $(DOINSTALL) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Execing Configuring hardware failed" goto end endif ifstr(i) $($R0) == STATUS_SUCCESSFUL set Exit_Code = $(!SETUP_ERROR_SUCCESS) else-ifstr(i) $($R0) == STATUS_USERCANCEL set Exit_Code = $(!SETUP_ERROR_USERCANCEL) endif end =+ install FreeSetupLibrary FreeLibrary $(!LIBHANDLE) exit ; ; InstallOption: ; ; FUNCTION: To copy files representing Options ; To configure the installed option ; To update the registry for the installed option ; ; INPUT: $($0): Language to use ; $($1): OptionID to install ; $($2): SourceDirectory ; $($3): AddCopy (YES | NO) ; $($4): DoCopy (YES | NO) ; $($5): DoConfig (YES | NO) ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ; STATUS_NOLANGUAGE | ; STATUS_USERCANCEL | ; STATUS_FAILED ; [InstallOption] ; ; Set default values for ; set Status = STATUS_FAILED set DrivesToFree = {} ; ; extract parameters ; set !Option = $($1) set SrcDir = $($2) set AddCopy = $($3) set DoCopy = $($4) set DoConfig = $($5) set DoInstall = $($6) ; ; Check if the language requested is supported ; set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) else set Status = STATUS_NOLANGUAGE goto finish_InstallOption endif read-syms Strings$($0) ; ; check for special detect option ; ifstr(i) $(!Option) != "DETECT" ; ; check to see if Option is supported. ; set OptionList = ^(Options, 0) ifcontains $(!Option) in $(OptionList) else goto finish_InstallOption endif set OptionList = "" ; ; Option has been defined already ; set DriverEntry = #(Options, $(!Option), 1) set MiniportDriver = #(MiniportDrivers, $(DriverEntry), 1) set InstalledDisplays = #(MiniportDrivers, $(DriverEntry), 5) set OtherFiles = #(MiniportDrivers, $(DriverEntry), 10) endif read-syms ServicesEntry detect ServicesEntry set DriversList = ^(MiniportDrivers, 0) set MiniportDriverList = ^(Files-DisplayMiniportDrivers, 0) set DisplayDriverList = ^(Files-DisplayDLLs, 0) set OpenGLDriverList = ^(OpenGLDrivers, 0) installtheoption = + ; ; Code to add files to copy list ; ifstr(i) $(AddCopy) == "YES" ifstr(i) $(!Option) == "DETECT" set DoActualCopy = YES else set DoActualCopy = NO ; ; Check miniport drivers ; set FileToCheck = #(Files-DisplayMiniportDrivers, $(MiniportDriver), 2) LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck) ifstr(i) $(STATUS) == NO set DoActualCopy = YES goto addfiles endif ; ; If we have Other files in the file list, add it. ; The extra files will be put in with miniport drivers since the ; configuration files should get installed in the driver directory ; ForListDo $(OtherFiles) ifcontains $($) in $(MiniportDriverList) set FileToCheck = #(Files-DisplayMiniportDrivers, $($), 2) LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck) ifstr(i) $(STATUS) == NO set DoActualCopy = YES goto addfiles endif endif EndForListDo ; ; If we have this display driver in the file list, add it. ; ForListDo $(InstalledDisplays) ifcontains $($) in $(DisplayDriverList) set FileToCheck = #(Files-DisplayDLLs, $($), 2) LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck) ifstr(i) $(STATUS) == NO set DoActualCopy = YES goto addfiles endif ; ; For each display driver also check their Open GL driver ; ifcontains $($) in $(OpenGLDriverList) set FileToCheck = #(Files-DisplayOpenGLDrivers, #(OpenGLDrivers, $($), 1), 2) LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck) ifstr(i) $(STATUS) == NO set DoActualCopy = YES goto addfiles endif endif endif EndForListDo endif addfiles = + ifstr(i) $(DoActualCopy) == NO shell "subroutn.inf" DriversExist $($0) $(String1) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "VIDEO.INF: shelling DriversExist failed" goto finish_InstallOption endif ifstr(i) $($R0) == STATUS_CURRENT else-ifstr(i) $($R0) == STATUS_NEW set DoActualCopy = YES else-ifstr(i) $($R0) == STATUS_USERCANCEL Debug-Output "VIDEO.INF: User cancelled video installation" goto finish_InstallOption else Debug-Output "VIDEO.INF: Error reported in DriversExist routine in SUBROUTN.INF" goto finish_InstallOption endif endif ifstr(i) $(DoActualCopy) == YES shell "registry.inf" GetNTSource ifint $($ShellCode) != $(!SHELL_CODE_OK) else-ifstr(i) $($R0) != STATUS_SUCCESSFUL else set SrcDir = $($R1) endif shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "VIDEO.INF: shelling DoAskSourceEx failed" goto finish_InstallOption endif ifstr(i) $($R0) == STATUS_SUCCESSFUL set SrcDir = $($R1) ifstr(i) $($R2) != "" set DrivesToFree = >($(DrivesToFree), $($R2)) endif else Debug-Output "VIDEO.INF: User cancelled asking source." goto finish_InstallOption endif ifstr(i) $(!Option) != "DETECT" install Install-AddCopyOption else install Install-AddAllCopy endif ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS" Debug-Output "VIDEO.INF: Adding video files to copy list failed" goto finish_InstallOption endif else set DoCopy = NO endif endif ifstr(i) $(DoCopy) == "YES" read-syms ProgressCopy$($0) install Install-DoCopyOption ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE" Debug-Output "Copying files failed" goto finish_InstallOption else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT" set Status = STATUS_USERCANCEL goto finish_InstallOption endif endif ifstr(i) $(DoConfig) == "YES" ; ; first run a privilege check on modifying the setup node ; shell "registry.inf" CheckSetupModify ifint $($ShellCode) != $(!SHELL_CODE_OK) goto finish_InstallOption endif ifstr(i) $($R0) != STATUS_SUCCESSFUL goto finish_InstallOption endif ForListDo $(DriversList) ; ; determine if we really want to configure this driver. ; ifstr(i) $(!Option) == "DETECT" set DriverEntry = $($) set DeviceDescription = "" set ErrorControl = $(!SERVICE_ERROR_IGNORE) ; ; Only configure the driver if it is available for this ; platform (based on the list of drivers) ; ifcontains #(MiniportDrivers, $(DriverEntry), 1) in $(MiniportDriverList) ; ; check if this is a driver we actually want to detect ; ifint #(MiniportDrivers, $(DriverEntry), 9) == 1 set configDriver = YES else set configDriver = NO endif else set configDriver = NO endif else set DeviceDescription = $(!Option) set ErrorControl = $(#(MiniportDrivers, $(DriverEntry), 4)) ifstr(i) $(DriverEntry) == $($) set configDriver = YES else set configDriver = NO endif endif ifstr(i) $(configDriver) == YES Debug-Output "configuring the miniport driver" set MiniportDriver = #(MiniportDrivers, $(DriverEntry), 1) set Type = $(#(MiniportDrivers, $(DriverEntry), 2)) set Group = #(MiniportDrivers, $(DriverEntry), 3) set InstalledDisplays = #(MiniportDrivers, $(DriverEntry), 5) set VgaCompatible = #(MiniportDrivers, $(DriverEntry), 6) set EventMessageFile = #(MiniportDrivers, $(DriverEntry), 7) set TypesSupported = #(MiniportDrivers, $(DriverEntry), 8) ; ; first make a new video entry, the entry is created automatically ; enabled ; set ServiceNode = $(DriverEntry) set ServiceBinary = %SystemRoot%\System32\drivers\#(Files-DisplayMiniportDrivers, $(MiniportDriver), 2) ; ; We can enable or disable disable a driver ; set ServicesValues = { + {Type, 0, $(!REG_VT_DWORD), $(Type) }, + {Group, 0, $(!REG_VT_SZ), $(Group) }, + {ErrorControl, 0, $(!REG_VT_DWORD), $(ErrorControl) }, + {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary) } + } ifstr(i) $(DoInstall) == "YES" set ServicesValues = >($(ServicesValues), + {Start, 0, $(!REG_VT_DWORD), $(!SERVICE_SYSTEM_START) }) else set ServicesValues = >($(ServicesValues), + {Start, 0, $(!REG_VT_DWORD), $(!SERVICE_DISABLED) }) endif ; ; Get the right parameters written, with the optional ; parameter if necessary. ; ; ; We also set the DefaultSettings back to zero so that when a ; new driver is installed, and old or possibly bad set of ; values are not laying around in the registry. ; So if someone installs a bad resolution (because they did not ; use the applet properly, they can go to vga, reinstall the ; driver and delete the old resolution settings. ; set !ParametersValues = { + {"Device Description", 0, $(!REG_VT_SZ), $(DeviceDescription) }, + {InstalledDisplayDrivers, 0, $(!REG_VT_MULTI_SZ), $(InstalledDisplays) }, + {VgaCompatible, 0, $(!REG_VT_DWORD), $(VgaCompatible) }, + {DefaultSettings.BitsPerPel, 0, $(!REG_VT_DWORD), 0 }, + {DefaultSettings.VRefresh, 0, $(!REG_VT_DWORD), 0 }, + {DefaultSettings.Interlaced, 0, $(!REG_VT_DWORD), 0 }, + {DefaultSettings.XResolution, 0, $(!REG_VT_DWORD), 0 }, + {DefaultSettings.YResolution, 0, $(!REG_VT_DWORD), 0 } + } ; ; If we are installing the drivers, run the configuration ; code specific to the driver ; ; Only do this is this is a real install; do not run ; configuration utilities for detect ... ; ifstr(i) $(DoInstall) == "YES" ifstr(i) $(!Option) != "DETECT" shell "" #(MiniportDrivers, $(DriverEntry), 11) endif endif set DeviceValues = {} set EventLogValues = { + {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, + {TypesSupported, 0, $(!REG_VT_DWORD), $(TypesSupported) } + } shell "registry.inf" MakeServicesEntry $(ServiceNode) + $(ServicesValues) + $(!ParametersValues) + $(DeviceValues) + $(EventLogValues) + Device0 ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Couldn't execute MakeServicesEntry in registry.inf" goto finish_InstallOption endif ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "MakeServicesEntry failed for video" goto finish_InstallOption endif ; ; For each display driver also check their Open GL driver ; ForListDo $(InstalledDisplays) ifcontains $($) in $(OpenGLDriverList) ; ; make an entry in the registry for Open GL drivers ; set KeyPath = { + {SOFTWARE, 0, $(MaskAllAccess)}, + {Microsoft, 0, $(MaskAllAccess)}, + {"Windows NT", 0, $(MaskAllAccess)}, + {CurrentVersion, 0, $(MaskAllAccess)}, + {OpenGLDrivers, 0, $(MaskAllAccess)} + } set KeyValue = { + {$($), 0, $(!REG_VT_SZ), #(OpenGLDrivers, $($), 1) } + } shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValue) Debug-Output "just did an OGL section" ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Couldn't execute CreateKey in registry.inf" goto endInstallOpenGLDriver endif ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "CreateKey failed for OGLDrivers" goto endInstallOpenGLDriver endif ; CloseKey something ?? Debug-Output "VIDEO.INF: success installing an ogl entry" endif EndForListDo endif EndForListDo endif set Status = STATUS_SUCCESSFUL finish_InstallOption = + ForListDo $(DrivesToFree) LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE" EndForListDo Return $(Status) [Install-AddCopyOption] Debug-Output "adding to copy list" set STF_VITAL = "" ; ; Add the files to the copy list ; AddSectionKeyFileToCopyList Files-DisplayMiniportDrivers + $(MiniportDriver) + $(SrcDir) + $(!STF_WINDOWSSYSPATH)\drivers ; ; Add any other files needed by the driver ; ForListDo $(OtherFiles) ifcontains $($) in $(MiniportDriverList) Debug-Output "adding other files to copy list" AddSectionKeyFileToCopyList Files-DisplayMiniportDrivers + $($) + $(SrcDir) + $(!STF_WINDOWSSYSPATH)\drivers endif EndForListDo ; ; Add the display drivers. ; ForListDo $(InstalledDisplays) ifcontains $($) in $(DisplayDriverList) Debug-Output "adding display driver to copy list" AddSectionKeyFileToCopyList Files-DisplayDLLs + $($) + $(SrcDir) + $(!STF_WINDOWSSYSPATH) ; ; For each display driver also check their Open GL driver ; ifcontains $($) in $(OpenGLDriverList) Debug-Output "adding opengl driver to copy list" AddSectionKeyFileToCopyList Files-DisplayOpenGLDrivers + #(OpenGLDrivers, $($), 1) + $(SrcDir) + $(!STF_WINDOWSSYSPATH) endif endif EndForListDo exit [Install-AddAllCopy] Debug-Output "adding all drivers to copy list" set STF_VITAL = "" ; ; Add all the files to the copy list ; AddSectionFilesToCopyList Files-DisplayMiniportDrivers + $(SrcDir) + $(!STF_WINDOWSSYSPATH)\drivers AddSectionFilesToCopyList Files-DisplayDLLs + $(SrcDir) + $(!STF_WINDOWSSYSPATH) exit [Install-DoCopyOption] ; ; Copy files in the copy list ; CopyFilesInCopyList exit ; ; Device Specific configuration options. ; [noconfig] return [ati-config] Debug-Output "Configuring ATI miniport" ifstr(i) $(!Option) == "ATI AST" set !ParametersValues = >($(!ParametersValues), + {"ATIOEM", 0, $(!REG_VT_SZ), "AST"}) endif return [weitekp9-config] Debug-Output "Configuring Weitek miniport" ; ; Write something to the registry to tell the weitek miniport to ; detect when it is actually installed by the user. ; set !ParametersValues = >($(!ParametersValues), + {"DetectVLCards", 0, $(!REG_VT_DWORD), 1}) set-title $(FunctionTitle) ifstr(i) $(!Option) == "Diamond Viper VLB" read-syms viper else-ifstr(i) $(!Option) == "Weitek P9000 Graphics Adapter" read-syms weitekp9000 else set !ParametersValues = >($(!ParametersValues), + {"Membase", 0, $(!REG_VT_DWORD), 0}) return endif read-syms dialog ui start "dialog" ifstr(i) $(DLGEVENT) == "CONTINUE" set Result = $(Combo1Out) debug-output $(Result) Set-HexToDec Result = $(Result) debug-output $(Result) set !ParametersValues = >($(!ParametersValues), + {"Membase", 0, $(!REG_VT_DWORD), $(Result)}) else-ifstr(i) $(DLGEVENT) == "BACK" ; user hits cancel endif return [viper] Combo1List = {20000000, 80000000, A0000000} Combo1Out = 80000000 [weitekp9000] Combo1List = {04000000, 08000000, 0D000000, 0E000000, 0F000000, 80000000, C0000000, D0000000, E0000000, F0000000} Combo1Out = 04000000 [dialog] FunctionTitle = "Device Base Address" Help = "&Help" Continue = "Continue" Cancel = "Cancel" Label1 = "&Base Address:" DlgType = "MultiCombo" DlgTemplate = "SINGLE_COMBO" Caption = $(FunctionTitle) ComboListItemsIn = {Combo1List} ComboListItemsOut = {Combo1Out} ; HelpContext = $(!IDH_DB_OEMNADE3_INS) ; help id