GET_CHIP_ID (Function 42)

Call With

EBX: Contains the VM handle (always the Windows VM).

EBP: Points to the Windows VM's Client Registers.

Return Values

Save everything that you use. EAX contains the ChipID.

Remarks

Several mini-VDD's support multiple chipsets that utilize different display drivers. For example, ATI's mini-VDD supports the VGA Wonder which uses SUPERVGA.DRV, the Mach8 which uses ATIM8.DRV, the Mach32 which uses ATIM32.DRV, and the Mach64 which uses ATIM64.DRV. Therefore, the detection for each of these chipsets is included in the ATI mini-VDD. GET_CHIP_ID is the only way the Main VDD Plug & Play support code can differentiate between display cards that use the same mini-VDD.

The Main VDD calls the function MiniVDD_Dynamic_Init when the mini-VDD is loaded. If MiniVDD_Dynamic_Init returns with the carry flag clear (indicating success), the Main VDD calls GET_CHIP_ID as a second check to make sure that the user has not changed the video card since the last time Windows was run. The Main VDD compares the value returned by GET_CHIP_ID with the value stored in the registry and if they are different, it reports the error to the Plug & Play subsystem.

If the mini-VDD fails to detect one of the cards it supports, MiniVDD_Dynamic_Init returns with the carry flag set (indicating failure) and the Windows 95's Plug & Play code loads the standard VGA driver.

If the value returned by GET_CHIP_ID is different than the value stored in the registry, or if MiniVDD_Dynamic_Init returns failure, the system displays an error message to the user concerning the problem with the display settings and allows the user to run hardware detection to re-detect the video card.