OEMSETUP.INF Driver File Contents (r351proa.exe)

;
;	AccelGraphics OemSetup.Inf file. Build: 3.5.1.01
;
;	This is for Nt-3.51
;
;-----------------------------------------------------------------------
; 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			; If it's for 3.51

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

; AccelPro 3.5.1.01

[Options]
    "AccelGraphics AccelPro VideoBoard"    =  AccelPro
    "AccelGraphics AccelR8 VideoBoard"     =  AccelR8

[OptionsAccelR8]

    "1024x768x8x60"     =  Accel3D,   8, 1024, 768   , 60 , 0

[OptionsAccelPro]

    "1280x1024x15x60"    =  Accel3D,   15, 1280, 1024 , 60 , 0
;
; 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 WONDDER3"		    = "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]
	Accel3D   = !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, 11,  {Accel3D}, 0 , "%SystemRoot%\System32\IoLogMsg.Dll;%SystemRoot%\System32\Drivers\Accel3D.Sys" , 7

;
; Order of the information
;
; Display driver = OpenGL client driver
;

[OpenGLDrivers]
	Accel3D = Accel3D

;
; Order of the information
;
; Display driver = Perfmon DLL
;

;; job: temp delete 5-Jan-95 until reinstated ->::[DispayPerfmon]
;; job: temp delete 5-Jan-95 until reinstated ->::	Accel3D = Accel3D

;
; Order of the information
;
; Display driver = GLINT Applet CPL
;

[Accel3DMisc]
	Accel3D = Accel3D

[AccelReleaseNoteArea]
	Accel3D = Accel3D

;-----------------------------------------------------------------------
; 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]
    "AccelGraphics AccelPro VideoBoard"      =  "AccelGraphics AccelPro 3D Video Adapter"
    "AccelGraphics AccelR8 VideoBoard"       =  "AccelGraphics AccelR8 3D Video Adapter"

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

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

[AccelGeneralConstants]
	ExitCodeOk			= 0
	ExitCodeCancel		= 1
	ExitCodeFatal		= 2
	KeyNull				= ""
	MAXIMUM_ALLOWED		= 33554432
	RegistryErrorIndex	= NO_ERROR
	KeyProduct			= ""
	KeyParameters 		= ""
	TRUE				= 1
	FALSE				= 0
	NoTitle				= 0
	ExitState			= "Active"
	OldVersionExisted	= $(FALSE)
	DriverPath			= $(!STF_NTPATH)\Drivers
    SupportedBoards     = {AccelR8, AccelPro}

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

	; Read General Constants
	read-syms AccelGeneralConstants
	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 BoardType = #(Options, $(Option), 1)
    set Status    = STATUS_SUCCESSFUL
;
;   select appropriate resolution
;

    set OptionList = ^(Options$(BoardType), 0)
    set Option = *($(OptionList), 1)

;    shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING $(OptionList)" "$(Option)

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

	set OpenGLDriverList  =   ^(OpenGLDrivers, 0)
	set Accel3DMiscList   =   ^(Accel3DMisc, 0)

	set AccelReleaseNoteAreaList   =   ^(AccelReleaseNoteArea, 0)

	Set AccelGraphicsGroupNameRemoveBasic = "AccelGraphics"
	Set AccelGraphicsGroupNameRemoveFalcon = "AccelGraphics - Falcon"
	Set AccelGraphicsGroupNameRemoveFalconEFT = "AccelGraphics - Falcon EFT"
	Set AccelGraphicsGroupName = $(AccelGraphicsGroupNameRemoveBasic)
	Set MainGroup		  =  "Main"

	Set AccelOemSetupIconVersion = 13
	Set AccelOemSetupBuildVersionString = "Accel3DOemSetup.BuildVersion"
	Set AccelOemSetupIconVersionString = "Accel3DOemSetup.IconVersion"

	Set AccelInstallCursors = "No"

	Set AccelInstallIcons = "Yes"

	read-syms ServicesEntry
	detect	ServicesEntry

installtheoption = +

	;
	; Code to add files to copy list
	;

    set Status     = STATUS_FAILED

	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
			set FileToCheck = #(Files-DisplayOpenGLDrivers,  $($), 2)
			LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
			ifstr(i) $(STATUS) == NO
				set DoActualCopy = YES
			endif

			set FileToCheck = #(Files-Accel3DMisc,  $($), 2)
			LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)\$(FileToCheck)
			ifstr(i) $(STATUS) == NO
				set DoActualCopy = YES
			endif

			Set FileToCheck = #(Files-AccelReleaseNoteArea,  $($), 2)
			LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSPATH)\Agi\(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 "Accel3D OemSetup.Inf:	Shell subroutn.inf 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 "Accel3D OemSetup.Inf:	User cancelled video installation"
				goto finish_InstallOption
			else
				Debug-Output "Accel3D OemSetup.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 "Accel3D OemSetup.Inf:	Shell subroutn.inf 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 "Accel3D OemSetup.Inf:	User cancelled asking source."
				goto finish_InstallOption
			endif

			install Install-AddCopyOption
			ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"
				Debug-Output "Accel3D OemSetup.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 "Accel3D OemSetup.Inf:	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

; Before sticking anything in, let's see if we already have done some iconing things for
; this revision

		shell "" GetServicesEntryValue Accel3D\Parameters $(AccelOemSetupIconVersionString)

		Set GetR0 = $($R0)
		Set GetR1 = $($R1)

		ifint $($ShellCode) != $(!SHELL_CODE_OK)
			Debug-Output "Accel3D OemSetup.Inf:	Couldn't execute GetServicesEntryValue in registry.inf"
			goto bypass_previousinstall
		endif

		ifstr(i) $(GetR0) != STATUS_SUCCESSFUL
			Debug-Output "Accel3D OemSetup.Inf:	GetServicesEntryValue failed for "$(AccelOemSetupIconVersionString)
			goto bypass_previousinstall
		endif

		ifstr(i) $(GetR1) != $(AccelOemSetupIconVersion)
			Debug-Output "Accel3D OemSetup.Inf:	GetServicesEntryValue version match for "$(AccelOemSetupIconVersionString)
			goto bypass_previousinstall
		endif

		Set AccelInstallCursors = "No"
		Set AccelInstallIcons = "No"

bypass_previousinstall = +

		;
		; 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 ParametersValuesForAccelR8 = { +
				{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)	   }, +
				{DefaultSettings.VRefresh,	   0, $(!REG_VT_DWORD),	$(VRefresh)		  }, +
				{DefaultSettings.Interlaced,	 0, $(!REG_VT_DWORD),	$(Interlaced)		}, +
				{DoubleBuffer.NumberOfBuffers,   0, $(!REG_VT_DWORD),	2					}, +
				{DoubleBuffer.MultiColorSpace,   0, $(!REG_VT_DWORD),	1					}, +
				{ExportSingleBufferedModes,	  0, $(!REG_VT_DWORD),	1					}, +
;                {GlintClockSpeed,               0, $(!REG_VT_DWORD),    50                }, +
				{Accel3DDMA.SizeOfBuffer,		  0, $(!REG_VT_DWORD),	65536				}, +
				{Accel3DDMA.NumberOfBuffers,	   0, $(!REG_VT_DWORD),	4					}, +
				{Accel3DDMA.NumberOfSubBuffers,	0, $(!REG_VT_DWORD),	5					}, +
				{Accel3DDMA.LatencyTimer,		  0, $(!REG_VT_DWORD),	0					}, +
;                {Accel3DTiming.Use2ClockMemoryCtl, 0, $(!REG_VT_DWORD), 0                   }, +
;                {Accel3DTiming.LBMemoryCtl,     0, $(!REG_VT_DWORD),    32932               }, +
;                {Accel3DTiming.LBMemoryCtlMask, 0, $(!REG_VT_DWORD),    -1                 }, +
;                {Accel3DTiming.FBMemoryCtl,     0, $(!REG_VT_DWORD),    2048                 }, +
;                {Accel3DTiming.FBMemoryCtlMask, 0, $(!REG_VT_DWORD),    65535               }, +
;                {Accel3DTiming.FBModeSel,         0, $(!REG_VT_DWORD),  2053                 }, +
;                {Accel3DTiming.FBModeSelMask,     0, $(!REG_VT_DWORD),  65535               }, +
				{3DInterfaceBuffer.SizeLongs,	0, $(!REG_VT_DWORD),	8192				 }, +
				{3DExtensions.Disable,		   0, $(!REG_VT_DWORD),	0					}, +
				{3DExtensions.SupportGDIsingle,  0, $(!REG_VT_DWORD),	0					}, +
				{3DExtensions.SupportGDIdouble,  0, $(!REG_VT_DWORD),	0					}, +
;                {Timing.MClkN,					 0, $(!REG_VT_DWORD),    178                    },  +
;                {Timing.MClkM,					 0, $(!REG_VT_DWORD),    43                    },  +
;                {Timing.MClkP,					 0, $(!REG_VT_DWORD),    178                    },  +
				{UseSoftwareCursor,			  0, $(!REG_VT_DWORD),	0					}, +
				{DefaultSettings.8bppRGB,				0, $(!REG_VT_DWORD),	1					} +
				{$(AccelOemSetupBuildVersionString),0, $(!REG_VT_SZ),  "3.5.1.01" } +
				}
; Important Note: There should be NO UseSoftwareCursor entry for Falcon. Even if it's
; specified as zero.

; Note that the previous values are overlayed by the following. There is NO NEED to comment
; out the previous lines......

			set ParametersValuesForAccelPro = { +
                {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)       }, +
                {DefaultSettings.VRefresh,       0, $(!REG_VT_DWORD),    $(VRefresh)          }, +
                {DefaultSettings.Interlaced,     0, $(!REG_VT_DWORD),    $(Interlaced)        }, +
                {DefaultSettings.8bppRGB,        0, $(!REG_VT_DWORD),    1        }, +
                {DoubleBuffer.NumberOfBuffers,   0, $(!REG_VT_DWORD),    2                    }, +
                {ExportSingleBufferedModes,      0, $(!REG_VT_DWORD),    1                    }, +
;                {GlintClockSpeed,                0, $(!REG_VT_DWORD),    0                    }, +
                {Accel3DDMA.SizeOfBuffer,          0, $(!REG_VT_DWORD),    65536                }, +
                {Accel3DDMA.NumberOfBuffers,       0, $(!REG_VT_DWORD),    8                    }, +
                {Accel3DDMA.NumberOfSubBuffers,    0, $(!REG_VT_DWORD),    5                    }, +
                {Accel3DDMA.LatencyTimer,          0, $(!REG_VT_DWORD),    255                   }, +
;                {Accel3DTiming.Use2ClockMemoryCtl, 0, $(!REG_VT_DWORD),    0                    }, +
;                {Accel3DTiming.LBMemoryCtl,        0, $(!REG_VT_DWORD),    0                    }, +
;                {Accel3DTiming.LBMemoryCtlMask,    0, $(!REG_VT_DWORD),    0                    }, +
;                {Accel3DTiming.FBMemoryCtl,        0, $(!REG_VT_DWORD),    0                    }, +
;                {Accel3DTiming.FBMemoryCtlMask,    0, $(!REG_VT_DWORD),    0                }, +
;                {Accel3DTiming.VTGSerialClk,       0, $(!REG_VT_DWORD),    0                    }, +
                {3DInterfaceBuffer.SizeLongs,    0, $(!REG_VT_DWORD),    8192                 }, +
             	{3DExtensions.SupportGDIsingle,  0, $(!REG_VT_DWORD),	1					}, +
				{3DExtensions.SupportGDIdouble,  0, $(!REG_VT_DWORD),	1					}, +
             	{OpenGL.DisableMipMaps,          0, $(!REG_VT_DWORD),	0					}, +
				{OpenGL.PerspectiveCorrection,   0, $(!REG_VT_DWORD),	1					}, +
                {DoubleBuffer.MultiColorSpace,   0, $(!REG_VT_DWORD),    0                    },  +
                {Timing.MClkN,					 0, $(!REG_VT_DWORD),    178                    },  +
                {Timing.MClkM,					 0, $(!REG_VT_DWORD),    43                    },  +
                {Timing.MClkP,					 0, $(!REG_VT_DWORD),    178                    },  +
				{Accel3D.WarmReboot,			 0, $(!REG_VT_DWORD),	 1			}, +
  				{$(AccelOemSetupBuildVersionString),0, $(!REG_VT_SZ),  "3.5.1.01" } +
               }
			set ParametersValues = $(ParametersValuesFor$(BoardType))

		set DeviceValues	 = {}
		set EventLogValues   = { +
				{EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, +
				{TypesSupported,   0, $(!REG_VT_DWORD),	 $(TypesSupported)   }  +
				}

;Del:;
;Del:; Remove the old one completely, before installing the new one....
;Del:do_removal =+
;Del:    	shell "registry.inf" RemoveServicesEntry $(ServiceNode)
;Del:    	ifint $($ShellCode) != $(!SHELL_CODE_OK)
;Del:        	Debug-Output "SCSI.INF: Failed to shell RemoveServicesEntry"
;Del:        	goto finish_PreviousDeInstallOption
;Del:    	endif
;Del: 	   ifstr(i) $($R0) != STATUS_SUCCESSFUL
;Del:       	 Debug-Output "SCSI.INF: Failed to disable services entry"
;Del:        	goto finish_PreviousDeInstallOption
;Del:    	endif
;Del:    	set Status = STATUS_SUCCESSFUL
;Del:finish_PreviousDeInstallOption =+

;Ganesh: To be clean, we have have to delete DeviceID_1,_2,..DeviceID_x
;devices left over from pre-release 3.1 drivers. Otherwise, we
;will have these (harmless) devices left cluttering the registry.
        set NullValues       = { }

		;
        ; Setup Device nodes for up to 4 adapters.
		; Store the parameters in all Devices.
        ;

		ForListDo {0,1,2,3}

			; Now blow away the previous registry values right now....
			shell "" DeleteKeyTree $(!REG_H_LOCAL) "System\"$(!STF_CONTROLSET)"\Services\"$(ServiceNode)"\Device"$($)

			;
			; Now install the new one...
			;
			shell "registry.inf"  MakeServicesEntry $(ServiceNode)	  +
												$(ServicesValues)   +
												$(ParametersValues) +
												$(DeviceValues)	 +
												$(EventLogValues)   +
												Device$($)

			ifint $($ShellCode) != $(!SHELL_CODE_OK)
				Debug-Output "Accel3D OemSetup.Inf:	Couldn't execute MakeServicesEntry in registry.inf"
				goto finish_InstallOption
			endif

			ifstr(i) $($R0) != STATUS_SUCCESSFUL
				Debug-Output "Accel3D OemSetup.Inf:	MakeServicesEntry failed for video"
				goto finish_InstallOption
			endif
		EndForListDo

		set KeyPath = { +
				{SOFTWARE,	   0, $(MaskAllAccess)}, +
				{Microsoft,	  0, $(MaskAllAccess)}, +
				{"Windows NT",   0, $(MaskAllAccess)}, +
				{CurrentVersion, 0, $(MaskAllAccess)}, +
				{OpenGLDrivers,  0, $(MaskAllAccess)}  +
				}

		set KeyValue = { +
				{"AccelGraphics Accel3D Driver", 0, $(!REG_VT_SZ), Accel3DOglDrv } +
				}
		shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValue)
		Debug-Output "Accel3D OemSetup.Inf:	Just did an OGL section"
		ifint $($ShellCode) != $(!SHELL_CODE_OK)
			Debug-Output "Accel3D OemSetup.Inf:	Couldn't execute CreateKey in registry.inf"
			goto finish_InstallOption
		endif
		ifstr(i) $($R0) != STATUS_SUCCESSFUL
			Debug-Output "Accel3D OemSetup.Inf:	CreateKey failed for OGLDrivers"
			goto finish_InstallOption
		endif

		Debug-Output "Accel3D OemSetup.Inf:	Success installing an ogl entry"

; This is where the performance counters are loaded, if present.

		set KeyPath = { +
				{SYSTEM,			 0, $(MaskAllAccess)}, +
				{$(!STF_CONTROLSET), 0, $(MaskAllAccess)}, +
				{Services,		   0, $(MaskAllAccess)}, +
				{Accel3D,			  0, $(MaskAllAccess)}, +
				{Performance,		0, $(MaskAllAccess)}  +
				}

		set PerformanceValues = { +
				{Open,		 0, $(!REG_VT_SZ), "OpenGlintPerformanceData"	},   +
				{Close,		0, $(!REG_VT_SZ), "CloseGlintPerformanceData"   },   +
				{Collect,	  0, $(!REG_VT_SZ), "CollectGlintPerformanceData" },   +
;; job: temp delete 5-Jan-95 until reinstated ->::				{Library,	  0, $(!REG_VT_SZ), "glntctrs.Dll"				}	+
				}
		shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(PerformanceValues)
		Debug-Output "Accel3D OemSetup.Inf:	Just did a perfmon section"
		ifint $($ShellCode) != $(!SHELL_CODE_OK)
			Debug-Output "Couldn't execute CreateKey in registry.inf"
			goto finish_InstallOption
		endif
		ifstr(i) $($R0) != STATUS_SUCCESSFUL
			Debug-Output "Accel3D OemSetup.Inf:	CreateKey failed for Accel3D perfmon"
			goto finish_InstallOption
		endif

		Debug-Output "Accel3D OemSetup.Inf:	Success installing a perfmon entry"

		;
		;
		; 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 "Accel3D OemSetup.Inf:	Couldn't find DisableServicesEntry in registry.inf"
						goto errorconfig
					endif

					ifstr(i) $($R0) != STATUS_SUCCESSFUL
						Debug-Output "Accel3D OemSetup.Inf:	DisableServices entry failed"
					endif
				endif
			endif
		endif

        set AgiUnZipParam = "/c $(!STF_WINDOWSSYSPATH)\..\Agi\AgiUnzip.Bat $(!STF_WINDOWSSYSPATH)\.."
        RunProgram Status "" "" $(!STF_WINDOWSSYSPATH)"\Cmd.Exe" "/c Call " $(!STF_WINDOWSSYSPATH)"\..\Agi\AgiUnzip.Bat" " " $(!STF_WINDOWSSYSPATH)"\.. > " $(!STF_WINDOWSSYSPATH)"\..\Agi\Accel3DInstall.Tmp 2>&1"

        set KeyPath = SYSTEM"\"$(!STF_CONTROLSET)"\"Services"\"Accel3D"\"Device0

        set AccelPanelParam = "-s "$(BoardType)"-p "$(KeyPath)
        RunProgram Status "" "" $(!STF_WINDOWSSYSPATH)"\"AccelPanel.Exe "-s " $(BoardType) "-p " $(KeyPath)
        ; $(KeyPath)

		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 = +

;Jack Burness added for inserting the dynamic cursors......
;
; We will run over the current user, and then the default path. And we will replace both the Wait
; and the Application Starting Cursors with our own.

		ifstr(i) $(AccelInstallCursors) != "Yes"
			goto DontInstallCursors
		endif

		Set RegCursorList =	{"Wait",	"AppStarting"}
		Set MatchingList =	{"Agi.Ani",	"AgiArrow.Ani" }

		ForListDo { $(!REG_H_CUSER) $(!REG_H_USERS) }
			Set RegKey = $($)
			set KeyPath = { +
					{"Control Panel",0, $(MaskAllAccess)}, +
					{"Cursors",	  0, $(MaskAllAccess)}, +
				}
			ifstr(i) $(RegKey) == $(!REG_H_USERS)
				set KeyPath = { +
						{".Default",	  0, $(MaskAllAccess)}, +
						{"Control Panel", 0, $(MaskAllAccess)}, +
						{"Cursors",		  0, $(MaskAllAccess)}, +
					}
			endif

			ForListDo $(RegCursorList)
				set KeyValue = { +
								 {$($), 0, $(!REG_VT_SZ), *($(MatchingList), $(#)) } +
						 }
				shell "registry.inf" CreateKey $(!REG_H_CUSER) $(KeyPath) $(KeyValue)
				Debug-Output "Accel3D OemSetup.Inf:	Just did a CreateKey for the cursor"
				ifint $($ShellCode) != $(!SHELL_CODE_OK)
					Debug-Output "Accel3D OemSetup.Inf:	Couldn't execute CreateKey in registry.inf"
					goto endInstallCursorInnerLoop
				endif
				ifstr(i) $($R0) != STATUS_SUCCESSFUL
					Debug-Output "Accel3D OemSetup.Inf:	CreateKey failed for Agi Cursors"
					goto endInstallCursorInnerLoop
				endif
				Debug-Output "Accel3D OemSetup.Inf:	Success in installing cursor into registry"

endInstallCursorInnerLoop = +
			EndForListDo
		EndForListDo

DontInstallCursors =+

; Jack Burness. Stuck in the creation of the icons here....

		ifstr(i) $(AccelInstallIcons) != "Yes"
			goto DontInstallIcons
		endif

		install Install-AccelGraphicsIcons

; Now set the flag that we have done the installing.

		set ParametersValues2 = { +
				{$(AccelOemSetupIconVersionString),  0, $(!REG_VT_DWORD),	$(AccelOemSetupIconVersion) } +
 				{$(AccelOemSetupBuildVersionString),0, $(!REG_VT_SZ),  "3.5.1.01" } +
 			}

		shell "registry.inf"  MakeServicesEntry $(ServiceNode)	  +
												$(ServicesValues)   +
												$(ParametersValues2) +
												$(DeviceValues)	 +
												$(EventLogValues)   +
												Parameters

DontInstallIcons = +

	endif

	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)
		AddSectionKeyFileToCopyList   Files-DisplayOpenGLDrivers +
									  $($)					   +
									  $(SrcDir)				  +
									  $(!STF_WINDOWSSYSPATH)
; Things that need to be done here. See about expanding the *.Ani files.
; Also check how they are loaded. Think that I may have a kludge in there
; that I don't quite understand. Also I moved it outside the For loop.
;		AddSectionKeyFileToCopyList   Files-Accel3DMisc	   +
;									  $($)					   +
;									  $(SrcDir)				  +
;									  $(!STF_WINDOWSSYSPATH)

	EndForListDo

; This is the code I moved outside the For loop. I think that the other one was in error.

	AddSectionFilesToCopyList	Files-Accel3DMisc		+
								$(SrcDir)				+
								$(!STF_WINDOWSSYSPATH)

	AddSectionFilesToCopyList	Files-AccelReleaseNoteArea		+
								$(SrcDir)				+
								$(!STF_WINDOWSPATH)\Agi

	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  = "OEM DISK (VIDEO)"  , TAGFILE = disk1

[Files-DisplayOpenGLDrivers]
; Important Note. The following formats MUST be adhered to, or else the buildkit.bat file
; will break for the zipping case. Basically everything between the first and second ='s
; MUST be kept formatted with spaces, etc. This is only for the first item, which breaks
; the 8.3 ancient naming convention.
Accel3D = 1, A8OglDrv.Dll, SIZE=820000, RENAME=Accel3DOglDrv.Dll, BACKUP=Accel3DOglDrv.Dll.Bak

[Files-Accel3DMisc]
; Important Note. The following formats MUST be adhered to, or else the buildkit.bat file
; will break for the zipping case. Basically everything between the first and second ='s
; MUST be kept formatted with spaces, etc. This is only for the first item, which breaks
; the 8.3 ancient naming convention.
Accel3D = 1, AgiPanel.Exe, SIZE=260000, RENAME=AccelPanel.Exe
Accel3D = 1, AgiPanel.Hlp, SIZE=30000, RENAME=AccelPanel.Hlp
Accel3D = 1, Agi.Ani, SIZE=3000, RENAME=Agi.Ani
Accel3D = 1, AgiArrow.Ani, SIZE=3000, RENAME=AgiArrow.Ani

[Files-AccelReleaseNoteArea]
; Note that we don't install the release notes for some kits. And we also
; have special unzipping kits.

Accel3D = 1, RelNotes.Wri, SIZE=15000, RENAME=RelNotes.Wri
Accel3D = 1, Bbs.Txt, SIZE=5000, RENAME=Bbs.Txt
Accel3D = 1, Faq.Wri, SIZE=15000, RENAME=Faq.Wri

Accel3D = 1, AgiUnzip.Bat, SIZE=1000000, RENAME=AgiUnzip.Bat
Accel3D = 1, AgiUnzip.Exe, SIZE=1400000, RENAME=AgiUnzip.Exe

[Files-DisplayDLLs]
;Accel3D = 1,Accel3D.Dll , SIZE=150000, RENAME=Accel3Dmul.Dll, BACKUP=Accel3Dmul.Dll.Bak
Accel3D = 1,Accel3D.Dll , SIZE=150000, RENAME=Accel3D.Dll, BACKUP=Accel3D.Dll.Bak

[Files-DisplayMiniportDrivers]
Accel3D = 1,Accel3D.Sys , SIZE=42000, RENAME=Accel3D.Sys, BACKUP=Accel3D.Sys.Bak

[Install-AccelGraphicsIcons]
	ifstr(i) $(!STF_PRODUCT) != "WINNT"
;		CreateCommonProgManGroup $(AccelGraphicsGroupNameRemove1) ""
;		RemoveCommonProgManGroup $(AccelGraphicsGroupNameRemove1)
;		CreateCommonProgManGroup $(AccelGraphicsGroupNameRemove2) ""
;		RemoveCommonProgManGroup $(AccelGraphicsGroupNameRemove2)
;		CreateCommonProgManGroup $(AccelGraphicsGroupNameRemove3) ""
;		RemoveCommonProgManGroup $(AccelGraphicsGroupNameRemove3)
		CreateCommonProgManGroup $(AccelGraphicsGroupName) ""
		ShowCommonProgManGroup $(AccelGraphicsGroupName), 1
		RemoveCommonProgManItem $(AccelGraphicsGroupName), "AccelPanel"
		CreateCommonProgManItem $(AccelGraphicsGroupName), "AccelPanel",  AccelPanel.Exe ""  0

		RemoveCommonProgManItem $(AccelGraphicsGroupName), "Release Notes"
		CreateCommonProgManItem $(AccelGraphicsGroupName), "Release Notes",  $(!STF_WINDOWSPATH)\Agi\RelNotes.Wri ""  0
		RemoveCommonProgManItem $(AccelGraphicsGroupName), "Frequently Asked Questions"
		CreateCommonProgManItem $(AccelGraphicsGroupName), "Frequently Asked Questions", $(!STF_WINDOWSPATH)\Agi\Faq.Wri ""  0
		RemoveCommonProgManItem $(AccelGraphicsGroupName), "Bbs Info"
		CreateCommonProgManItem $(AccelGraphicsGroupName), "Bbs Info", $(!STF_WINDOWSPATH)\Agi\Bbs.Txt ""  0
		ShowCommonProgManGroup $(AccelGraphicsGroupName), 6

	endif
	exit

[DeleteKeyTree]
	set Status = STATUS_FAILED
	read-syms AccelRegistryConstants
	set BaseHandle = $($0)
	set KeyHandle  = $(BaseHandle)
	ForListDo $($1)
		set KeyInfo = $($)
		set KeyName = *($(KeyInfo), 1)
		OpenRegKey $(BaseHandle) "" $(KeyName) $(MaskAllAccess) KeyHandle
		ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
			goto enddeletekeytree
			endif
		endif
		DeleteRegKey $(BaseHandle) $(KeyInfo)

		ifstr(i) $(BaseHandle) != $($0)
			CloseRegKey $(BaseHandle)
			ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
				set Status = STATUS_ERROR_CREATEKEY
				Debug-Output "AccelOemSetup.Inf: Error in closing base handle"
				goto enddeletekeytree
			endif
		endif
		set BaseHandle = $(KeyHandle)
	EndForListDo
	set Status = STATUS_SUCCESSFUL
enddeletekeytree = +
	ifstr(i) $(Status) != STATUS_SUCCESSFUL
		Debug-Output "AccelOemSetup.Inf: CreateKey Error:"$(Status)
	endif
	Return $(Status)

[DeleteRegValueList]
	set Status = STATUS_FAILED
	read-syms AccelRegistryConstants
	set BaseHandle = $($0)
	set KeyHandle  = $(BaseHandle)
	ForListDo $($1)
		set KeyInfo = $($)
		set KeyName = *($(KeyInfo), 1)
		OpenRegKey $(BaseHandle) "" $(KeyName) $(MaskAllAccess) KeyHandle
		ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
			goto enddeletevaluetree
			endif
		endif
		DeleteRegValue $(BaseHandle) $(KeyInfo)

		ifstr(i) $(BaseHandle) != $($0)
			CloseRegKey $(BaseHandle)
			ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
				set Status = STATUS_ERROR_CREATEKEY
				Debug-Output "AccelOemSetup.Inf: Error in closing base handle"
				goto enddeletevaluetree
			endif
		endif
		set BaseHandle = $(KeyHandle)
	EndForListDo
	set Status = STATUS_SUCCESSFUL
enddeletevaluetree = +
	ifstr(i) $(Status) != STATUS_SUCCESSFUL
		Debug-Output "AccelOemSetup.Inf: CreateKey Error:"$(Status)
	endif
	Return $(Status)

[AccelRegistryConstants]
		MaskAllAccess		  = 33554432
;		NoTitle				= 0
;		RegLastError		   = $(!REG_ERROR_SUCCESS)

[GetServicesEntryValue]
		set MyStatus	 = STATUS_FAILED
		set ReturnValue = ""
		Set GetSEVPath = $($0)
		Set GetSEVItem = $($1)
		read-syms AccelRegistryConstants
		Debug-Output "Accel OemSetup.Inf:	Get Services node "$(GetSEVPath)" value: "$(GetSEVItem)
		set KeyName = "System\"$(!STF_CONTROLSET)"\Services\"$(GetSEVPath)
		OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_READ) KeyHandle
		ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
			Debug-Output "Accel OemSetup.Inf:	Couldn't open services node for read access"
		   goto finish_GetServicesEntryValue
		endif
		GetRegValue $(KeyHandle) $(GetSEVItem) ReturnValueList
		ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
			Debug-Output "Accel OemSetup.Inf:	Couldn't read value "$(GetSEVItem)
		   CloseRegKey $(KeyHandle)
			goto finish_GetServicesEntryValue
		endif
		CloseRegKey $(KeyHandle)
		set ReturnValue = *($(ReturnValueList), 4)
		set MyStatus = STATUS_SUCCESSFUL

finish_GetServicesEntryValue = +
		Return $(MyStatus) $(ReturnValue)

;	End of OemSetup.Inf
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.27