OEMSETUP.INF Driver File Contents (Matrox.zip)

;-----------------------------------------------------------------------
; 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 = VIDEO

;-----------------------------------------------------------------------
; LANGUAGES SUPPORTED
; -------------------
;
; The languages supported by the OEM INF, For every language supported
; we need to have a separate text section for every displayable text
; section.
;
;-----------------------------------------------------------------------

[LanguagesSupported]
    ENG

;-----------------------------------------------------------------------
; OPTION LIST
; -----------
; This section lists the OEM Option key names.  These keys are locale
; independent and used to represent the option in a locale independent
; manner.
;
;-----------------------------------------------------------------------

;
; Option list order: Option = Miniport driver, BitsPerPel, XResolution, YResolution, VRefresh, Interlaced
;
; If you don't want to create a VRefresh or Interlaced value under the service
; parameters then use the value ""
;

[Options]
    "Matrox MGA2064  640x 480x 8"  =  mgax64,  8,  640,  480, "", ""
    "Matrox MGA2064  800x 600x 8"  =  mgax64,  8,  800,  600, "", ""
    "Matrox MGA2064 1024x 768x 8"  =  mgax64,  8, 1024,  768, "", ""
    "Matrox MGA2064 1152x 864x 8"  =  mgax64,  8, 1152,  864, "", ""
    "Matrox MGA2064 1280x1024x 8"  =  mgax64,  8, 1280, 1024, "", ""
    "Matrox MGA2064 1600x1200x 8"  =  mgax64,  8, 1600, 1200, "", ""
    "Matrox MGA2064  640x 480x15"  =  mgax64, 15,  640,  480, "", ""
    "Matrox MGA2064  800x 600x15"  =  mgax64, 15,  800,  600, "", ""
    "Matrox MGA2064 1024x 768x15"  =  mgax64, 15, 1024,  768, "", ""
    "Matrox MGA2064 1152x 864x15"  =  mgax64, 15, 1152,  864, "", ""
    "Matrox MGA2064 1280x1024x15"  =  mgax64, 15, 1280, 1024, "", ""
    "Matrox MGA2064 1600x1200x15"  =  mgax64, 15, 1600, 1200, "", ""
    "Matrox MGA2064  640x 480x16"  =  mgax64, 16,  640,  480, "", ""
    "Matrox MGA2064  800x 600x16"  =  mgax64, 16,  800,  600, "", ""
    "Matrox MGA2064 1024x 768x16"  =  mgax64, 16, 1024,  768, "", ""
    "Matrox MGA2064 1152x 864x16"  =  mgax64, 16, 1152,  864, "", ""
    "Matrox MGA2064 1280x1024x16"  =  mgax64, 16, 1280, 1024, "", ""
    "Matrox MGA2064 1600x1200x16"  =  mgax64, 16, 1600, 1200, "", ""
    "Matrox MGA2064  640x 480x24"  =  mgax64, 24,  640,  480, "", ""
    "Matrox MGA2064  800x 600x24"  =  mgax64, 24,  800,  600, "", ""
    "Matrox MGA2064 1024x 768x24"  =  mgax64, 24, 1024,  768, "", ""
    "Matrox MGA2064 1152x 864x24"  =  mgax64, 24, 1152,  864, "", ""
    "Matrox MGA2064 1280x1024x24"  =  mgax64, 24, 1280, 1024, "", ""
    "Matrox MGA2064 1600x1200x24"  =  mgax64, 24, 1600, 1200, "", ""
    "Matrox MGA2064  640x 480x32"  =  mgax64, 32,  640,  480, "", ""
    "Matrox MGA2064  800x 600x32"  =  mgax64, 32,  800,  600, "", ""
    "Matrox MGA2064 1024x 768x32"  =  mgax64, 32, 1024,  768, "", ""
    "Matrox MGA2064 1152x 864x32"  =  mgax64, 32, 1152,  864, "", ""
    "Matrox MGA2064 1280x1024x32"  =  mgax64, 32, 1280, 1024, "", ""

;
; This maps detected options into the options we support
;
; Format: DetectedOption = MappedOption
;

[MapOfOptions]
    "VGA"                       = "VGA"
    "COMPAQ AVGA"               = "VGA"
    "COMPAQ AGB"                = "VGA"
    "8514 MONITOR UNKNOWN"      = "VGA"
    "8514 VGA MONITOR"          = "VGA"
    "8514 8503 MONO"            = "VGA"
    "8514 8514 GAD"             = "VGA"
    "GENOA VGA"                 = "VGA"
    "VIDEO7 VGA DRAM"           = "VIDEO7 VGA VRAM 640x480x4"
    "VIDEO7 VGA VRAM"           = "VIDEO7 VGA VRAM 640x480x4"
    "TRIDENT VGA"               = "VGA"
    "TRIDENT VGA 9100"          = "VGA"
    "PARADISE VGA"              = "VGA"
    "PARADISE VGA PROM"         = "VGA"
    "PARADISE VGA CHIP 1F"      = "VGA"
    "ATI VGA"                   = "VGA"
    "ATI VGA WONDER3"           = "VGA"
    "TSENGLAB VGA ET3000"       = "VGA"
    "TSENGLAB VGA ET4000"       = "TSENGLAB VGA ET4000 640x480x4x60"
    "CIRRUS VGA"                = "VGA"
    "CIRRUS VGA 610-620 REVC"   = "VGA"
    "XGA"                       = "XGA 640x480x8"
    "DELL DGX"                  = "DELL DGX 640x480x8"
    "S3 VGA"                    = "S3 VGA 640x480x8"
    "PRODESIGNER II"            = "TSENGLAB VGA ET4000 640x480x4x60"


;
; Order of the information:
;
; Port driver = Type, Group, ErrorControl, Tag, InstalledDisplay, VgaCompatible( 0/1 ), EventMessageFile, TypesSupported
;

[MiniportDrivers]
    mgax64   = !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, 11, {mgax64}, 0, %SystemRoot%\System32\IoLogMsg.dll , 7


;-----------------------------------------------------------------------
; OPTION TEXT SECTION
; -------------------
; These are text strings used to identify the option to the user.  There
; are separate sections for each language supported.  The format of the
; section name is "OptionsText" concatenated with the Language represented
; by the section.
;
;-----------------------------------------------------------------------

[OptionsTextENG]
    "Matrox MGA2064  640x 480x 8"  = "Matrox MGA Millennium/Mystique  640x 480, 256 colors"
    "Matrox MGA2064  800x 600x 8"  = "Matrox MGA Millennium/Mystique  800x 600, 256 colors"
    "Matrox MGA2064 1024x 768x 8"  = "Matrox MGA Millennium/Mystique 1024x 768, 256 colors"
    "Matrox MGA2064 1152x 864x 8"  = "Matrox MGA Millennium/Mystique 1152x 864, 256 colors"
    "Matrox MGA2064 1280x1024x 8"  = "Matrox MGA Millennium/Mystique 1280x1024, 256 colors"
    "Matrox MGA2064 1600x1200x 8"  = "Matrox MGA Millennium          1600x1200, 256 colors"
    "Matrox MGA2064  640x 480x15"  = "Matrox MGA Millennium/Mystique  640x 480, 32K colors"
    "Matrox MGA2064  800x 600x15"  = "Matrox MGA Millennium/Mystique  800x 600, 32K colors"
    "Matrox MGA2064 1024x 768x15"  = "Matrox MGA Millennium/Mystique 1024x 768, 32K colors"
    "Matrox MGA2064 1152x 864x15"  = "Matrox MGA Millennium/Mystique 1152x 864, 32K colors"
    "Matrox MGA2064 1280x1024x15"  = "Matrox MGA Millennium/Mystique 1280x1024, 32K colors (4Mb board)"
    "Matrox MGA2064 1600x1200x15"  = "Matrox MGA Millennium          1600x1200, 32K colors (4Mb board)"
    "Matrox MGA2064  640x 480x16"  = "Matrox MGA Millennium/Mystique  640x 480, 64K colors"
    "Matrox MGA2064  800x 600x16"  = "Matrox MGA Millennium/Mystique  800x 600, 64K colors"
    "Matrox MGA2064 1024x 768x16"  = "Matrox MGA Millennium/Mystique 1024x 768, 64K colors"
    "Matrox MGA2064 1152x 864x16"  = "Matrox MGA Millennium/Mystique 1152x 864, 64K colors"
    "Matrox MGA2064 1280x1024x16"  = "Matrox MGA Millennium/Mystique 1280x1024, 64K colors (4Mb board)"
    "Matrox MGA2064 1600x1200x16"  = "Matrox MGA Millennium          1600x1200, 64K colors (4Mb board)"
    "Matrox MGA2064  640x 480x24"  = "Matrox MGA Millennium/Mystique  640x 480, 16M colors"
    "Matrox MGA2064  800x 600x24"  = "Matrox MGA Millennium/Mystique  800x 600, 16M colors"
    "Matrox MGA2064 1024x 768x24"  = "Matrox MGA Millennium/Mystique 1024x 768, 16M colors (4Mb board)"
    "Matrox MGA2064 1152x 864x24"  = "Matrox MGA Millennium/Mystique 1152x 864, 16M colors (4Mb board)"
    "Matrox MGA2064 1280x1024x24"  = "Matrox MGA Millennium/Mystique 1280x1024, 16M colors (4Mb board)"
    "Matrox MGA2064 1600x1200x24"  = "Matrox MGA Millennium          1600x1200, 16M colors (8Mb board)"
    "Matrox MGA2064  640x 480x32"  = "Matrox MGA Millennium/Mystique  640x 480, True Color"
    "Matrox MGA2064  800x 600x32"  = "Matrox MGA Millennium/Mystique  800x 600, True Color"
    "Matrox MGA2064 1024x 768x32"  = "Matrox MGA Millennium/Mystique 1024x 768, True Color (4Mb board)"
    "Matrox MGA2064 1152x 864x32"  = "Matrox MGA Millennium/Mystique 1152x 864, True Color (4Mb board)"
    "Matrox MGA2064 1280x1024x32"  = "Matrox MGA Millennium          1280x1024, True Color (8Mb board)"


;---------------------------------------------------------------------------
; 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)



;------------------------------------------------------------------------
; 2. ReturnOptions:
;
; DESCRIPTION:   To return the option list supported by this INF and the
;                localised text list representing the options.
;
;
; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
;
; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
;                                STATUS_NOLANGUAGE
;                                STATUS_FAILED
;
;                $($R1): Option List
;                $($R2): Option Text List
;------------------------------------------------------------------------

[ReturnOptions]
    ;
    ;
    set Status        = STATUS_FAILED
    set OptionList     = {}
    set OptionTextList = {}

    ;
    ; Check if the language requested is supported
    ;
    set LanguageList = ^(LanguagesSupported, 1)
    Ifcontains(i) $($0) in $(LanguageList)
	goto returnoptions
    else
	set Status = STATUS_NOLANGUAGE
	goto finish_ReturnOptions
    endif

    ;
    ; form a list of all the options and another of the text representing
    ;

returnoptions = +
    set OptionList     = ^(Options, 0)
    set OptionTextList = ^(OptionsText$($0), 1)
    set Status         = STATUS_SUCCESSFUL

finish_ReturnOptions = +
    Return $(Status) $(OptionList) $(OptionTextList)



;---------------------------------------------------------------------------
; MapToSupportedOption
;
; DESCRIPTION:   To map a hardware detected option to the NT Supported
;                option which represents it.
;
; INPUT:         $($0): Option
;
; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
;                $($R1): Mapped Option
;
;---------------------------------------------------------------------------

[MapToSupportedOption]
    ;
    set Status = STATUS_FAILED
    set MappedOption = $($0)

    ;
    ; If the option is one we can support using one of our standard options
    ; then map it to the standard option else map it to the default option
    ; which is VGA.
    ;

    set OptionList = ^(MapOfOptions, 0)
    ifcontains $($0) in $(OptionList)
	set MappedOption = #(MapOfOptions, $($0), 1)
    else
	set MappedOption = "VGA"
    endif

    set Status = STATUS_SUCCESSFUL
    Return $(Status) $(MappedOption)



[ServicesEntry]
    CurrentEntry = "" ? $(!LIBHANDLE) GetDevicemapValue Video \Device\Video0


;
; 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)

    ;
    ; 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 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 MiniportDriver    = #(Options, $(Option), 1)
    set BitsPerPel        = #(Options, $(Option), 2)
    set XResolution       = #(Options, $(Option), 3)
    set YResolution       = #(Options, $(Option), 4)
    set VRefresh          = #(Options, $(Option), 5)
    set Interlaced        = #(Options, $(Option), 6)

    set Type              = $(#(MiniportDrivers, $(MiniportDriver), 1))
    set Group             =   #(MiniportDrivers, $(MiniportDriver), 2)
    set ErrorControl      = $(#(MiniportDrivers, $(MiniportDriver), 3))
    set Tag               =   #(MiniportDrivers, $(MiniportDriver), 4)
    set InstalledDisplays =   #(MiniportDrivers, $(MiniportDriver), 5)
    set VgaCompatible     =   #(MiniportDrivers, $(MiniportDriver), 6)
    set EventMessageFile  =   #(MiniportDrivers, $(MiniportDriver), 7)
    set TypesSupported    =   #(MiniportDrivers, $(MiniportDriver), 8)

    read-syms ServicesEntry
    detect    ServicesEntry

installtheoption = +

    ;
    ; Code to add files to copy list
    ;

    ifstr(i) $(AddCopy) == "YES"
	set DoActualCopy = NO
	set FileToCheck = #(Files-DisplayMiniportDrivers, $(MiniportDriver), 2)
	LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck)
	ifstr(i) $(STATUS) == NO
	    set DoActualCopy = YES
	    goto addfiles
	endif
	ForListDo $(InstalledDisplays)
	    set FileToCheck = #(Files-DisplayDLLs, $($), 2)
	    LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
	    ifstr(i) $(STATUS) == NO
		set DoActualCopy = YES
	    endif
	EndForListDo

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 "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

	    install Install-AddCopyOption
	    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

	;
	; first make a new video entry, the entry is created automatically
	; enabled
	;

	set ServiceNode   = $(MiniportDriver)
	set ServiceBinary = %SystemRoot%\System32\drivers\#(Files-DisplayMiniportDrivers, $(MiniportDriver), 2)

	set ServicesValues   = { +
		{Type,           0, $(!REG_VT_DWORD),     $(Type)                  }, +
		{Start,          0, $(!REG_VT_DWORD),     $(!SERVICE_SYSTEM_START) }, +
		{Group,          0, $(!REG_VT_SZ),        $(Group)                 }, +
		{ErrorControl,   0, $(!REG_VT_DWORD),     $(ErrorControl)          }, +
		{Tag,            0, $(!REG_VT_DWORD),     $(Tag)                   }, +
		{BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary)         }  +
		}

	set DeviceDescription     = "Matrox MGA Millennium/Mystique"
	set UserAlternateLines    = "0"
	set UserCenterDialogs     = "0"
	set UserComplexBlt        = "1"
	set UserDeviceBitmaps     = "1"
	set UserLanguageList      = {"Deutsch","MGA_GER","English","MGA_ENG","Español","MGA_SPA","Français","MGA_FRE","Italiano","MGA_ITA"}
	set UserLanguageOption    = "English"
	set UserMgaInfoFile       = "1"
	set UserMgaInfoFileName   = "\SystemRoot\System32\mga.inf"
	set UserMgaPanelLastPage  = "0"
	set UserSynchronizeDac    = "0"
	set UserSynchronizeEngine = "0"
	set User3dDoubleBuffer    = "1"
	set User3dSubPixel        = "1"
	set User3dZBuffer         = "1"
	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),    $(BitsPerPel)           }, +
		{DefaultSettings.XResolution, 0, $(!REG_VT_DWORD),    $(XResolution)          }, +
		{DefaultSettings.YResolution, 0, $(!REG_VT_DWORD),    $(YResolution)          }, +
		{"User.AlternateLines",       0, $(!REG_VT_DWORD),    $(UserAlternateLines)   }, +
		{"User.CenterDialogs",        0, $(!REG_VT_DWORD),    $(UserCenterDialogs)    }, +
		{"User.ComplexBlt",           0, $(!REG_VT_DWORD),    $(UserComplexBlt)       }, +
		{"User.DeviceBitmaps",        0, $(!REG_VT_DWORD),    $(UserDeviceBitmaps)    }, +
		{"User.LanguageList",         0, $(!REG_VT_MULTI_SZ), $(UserLanguageList)     }, +
		{"User.LanguageOption",       0, $(!REG_VT_SZ),       $(UserLanguageOption)   }, +
		{"User.MgaInfoFile",          0, $(!REG_VT_DWORD),    $(UserMgaInfoFile)      }, +
		{"User.MgaInfoFileName",      0, $(!REG_VT_EXPAND_SZ),$(UserMgaInfoFileName)  }, +
		{"User.MgaPanelLastPage",     0, $(!REG_VT_DWORD),    $(UserMgaPanelLastPage) }, +
		{"User.SynchronizeDac",       0, $(!REG_VT_DWORD),    $(UserSynchronizeDac)   }, +
		{"User.SynchronizeEngine",    0, $(!REG_VT_DWORD),    $(UserSynchronizeEngine)}, +
		{"User3d.DoubleBuffer",       0, $(!REG_VT_DWORD),    $(User3dDoubleBuffer)   }, +
		{"User3d.SubPixel",           0, $(!REG_VT_DWORD),    $(User3dSubPixel)       }, +
		{"User3d.ZBuffer",            0, $(!REG_VT_DWORD),    $(User3dZBuffer)        }  +
		}

	ifstr(i) $(VRefresh) != ""
	    set VRefreshValue = {DefaultSettings.VRefresh, 0, $(!REG_VT_DWORD), $(VRefresh)}
	    set ParametersValue = >($(ParametersValue), $(VRefreshValue))
	endif

	ifstr(i) $(Interlaced) != ""
	    set InterlacedValue = {DefaultSettings.Interlaced, 0, $(!REG_VT_DWORD), $(Interlaced)}
	    set ParametersValue = >($(ParametersValue), $(InterlacedValue))
	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

	;
	;
	; then disable the previous video entry
	;

	ifstr(i) $(CurrentEntry) != $(MiniportDriver)
	    ifstr(i) $(CurrentEntry) != VGA
		ifstr(i) $(CurrentEntry) != ""
		    shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_DISABLED)

		    ifint $($ShellCode) != $(!SHELL_CODE_OK)
			Debug-Output "Couldn't find DisableServicesEntry in registry.inf"
			goto errorconfig
		    endif

		    ifstr(i) $($R0) != STATUS_SUCCESSFUL
			Debug-Output "DisableServices entry failed"
		    endif
		endif
	    endif
	endif

	goto configdone

errorconfig = +
	ifstr(i) $(CurrentEntry) != $(MiniportDriver)
	    shell "registry.inf" ModifyServicesEntry $(MiniportDriver) $(!SERVICE_DISABLED)
	    ifstr(i) $(CurrentEntry) != ""
		shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_SYSTEM_START)
	    endif
	endif
	goto finish_InstallOption

configdone = +

    endif

    ; MTX - Adding some code to install the QuickAccess service.
    StartDetachedProcess ExitCode "" "" mgashk.exe

    ; Adding some code to remove old MGA Monitor program.
    set RemoveList = ^(Files-MGASetupDelete, 0)
    ForListDo $(RemoveList)
	set FileToCheck = #(Files-MGASetupDelete, $($), 2)
	LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
	ifstr(i) $(STATUS) == YES
	    AddFileToDeleteList $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
	endif
    EndForListDo

    ; MTX - End of addition

    set Status = STATUS_SUCCESSFUL

finish_InstallOption = +
    ForListDo $(DrivesToFree)
	LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE"
    EndForListDo

    Return $(Status)


[Install-AddCopyOption]

    set STF_VITAL = ""
    ;
    ; Add the files to the copy list
    ;
    AddSectionKeyFileToCopyList   Files-DisplayMiniportDrivers   +
				  $(MiniportDriver)              +
				  $(SrcDir)                      +
				  $(!STF_WINDOWSSYSPATH)\drivers

    ForListDo $(InstalledDisplays)
	AddSectionKeyFileToCopyList   Files-DisplayDLLs          +
				      $($)                       +
				      $(SrcDir)                  +
				      $(!STF_WINDOWSSYSPATH)

    EndForListDo

    ; MTX - Adding some code to install the MGA setup utilities

    set mgaSetupList = ^(Files-MGASetup, 0)
    ForListDo $(mgaSetupList)
	AddSectionKeyFileToCopyList   Files-MGASetup             +
				      $($)                       +
				      $(SrcDir)                  +
				      $(!STF_WINDOWSSYSPATH)

    EndForListDo

    ; MTX - Adding some code to conditionally add files

    set mgaSetupList = ^(Files-MGASetupCondit, 0)
    ForListDo $(mgaSetupList)
	set FileToCheck = #(Files-MGASetupCondit, $($), 2)
	LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
	ifstr(i) $(STATUS) == NO
	    AddSectionKeyFileToCopyList   Files-MGASetupCondit       +
					  $($)                       +
					  $(SrcDir)                  +
					  $(!STF_WINDOWSSYSPATH)
	endif
    EndForListDo

    ; MTX - End of addition

    exit


[Install-DoCopyOption]

    ;
    ; Copy files in the copy list
    ;
    CopyFilesInCopyList
    exit

;**************************************************************************
; PROGRESS GUAGE VARIABLES
;**************************************************************************

[ProgressCopyENG]
    ProCaption   = "Windows NT Setup"
    ProCancel    = "Cancel"
    ProCancelMsg = "Windows NT is not correcly installed.  Are you sure you want "+
		   "to cancel copying files?"
    ProCancelCap = "Setup Message"
    ProText1     = "Copying:"
    ProText2     = "To:"

[StringsENG]
    String1 = "Display"
    String2 = "Please enter the full path to the OEM Display "+
	      "driver files.  Then choose Continue."

;-----------------------------------------------------------------------
; SOURCE MEDIA DESCRIPTIONS
; -------------------------
; The OEM should list all the diskette labels here.  The source media
; description is used during copy to prompt the user for a diskette
; if the source is diskettes.
;
; Use 1 = "Diskette 1 Label" , TAGFILE = disk1
;     2 = "Diskette 2 Label" , TAGFILE = disk2
;     ...
;-----------------------------------------------------------------------

;--------------------------------------------------------------------
; THE SECTIONS BELOW SHOULD BE AUTOMATICALLY GENERATED BY THE EXCEL
; SPREAD SHEETS
;--------------------------------------------------------------------

[Source Media Descriptions]
    1  = "MILLENNIUM WIN-NT DRV, Disk 1/1"

[Files-DisplayDLLs]
mgax64   = 1,mgax64.dll   , SIZE=93392

[Files-DisplayMiniportDrivers]
mgax64   = 1,mgax64.sys   , SIZE=95008

; MTX - Additions to install the MGA setup utilities

[Files-MGASetup]
suFile01 = 1,mga.mon      , SIZE=281046
suFile02 = 1,mga.bin      , SIZE=38871
suFile03 = 1,ddirx.dll    , SIZE=76800
suFile04 = 1,mgashk.exe   , SIZE=14359
suFile05 = 1,mgahk.exe    , SIZE=12041
suFile06 = 1,mgaquick.exe , SIZE=23018
suFile07 = 1,mgapanel.cpl , SIZE=49579
suFile08 = 1,mga_eng.hlp  , SIZE=18437
suFile09 = 1,mga_eng.dll  , SIZE=22558
suFile0a = 1,mga_fre.hlp  , SIZE=20379
suFile0b = 1,mga_fre.dll  , SIZE=22931
suFile0c = 1,mga_ger.hlp  , SIZE=18726
suFile0d = 1,mga_ger.dll  , SIZE=22941
suFile0e = 1,mga_ita.hlp  , SIZE=20368
suFile0f = 1,mga_ita.dll  , SIZE=22940
suFile10 = 1,mga_spa.hlp  , SIZE=19987
suFile11 = 1,mga_spa.dll  , SIZE=22701

; MTX - Additions to conditionally add files

[Files-MGASetupCondit]
ciFile1 = 1,ctl3d32.dll  , SIZE=15385

; MTX - Additions to remove old MGA Monitor program

[Files-MGASetupDelete]
rmFile1 = 1,mgaset.cpl
rmFile2 = 1,mondlg.dll

; MTX - End of addition
Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: web3, load: 2.64