If the above function returns ZF set, then the processor is an 80286 or older, so Windows 95 displays the following message and exits:
When CF is set, Windows 95 proceeds to the following 80386 stepping check, which attempts to execute an XBTS (Extract Bit String) instruction – an instruction that existed only on B0 and earlier 80386 steppings.
If the above function returns 0xB0, then the 80386 is a B0 or earlier stepping, so Windows 95 displays the following message and aborts:
Otherwise, the 80386 is a B1 or later stepping, so Windows 95 next performs a multiplication test (a simplified version of the multiplication tests discussed in “Early 80386 CPUs”):
You may have heard that Windows 95 pulled support for the 80386 B1 stepping, and that’s true, but only insofar as Windows 95 SETUP is concerned. The following code is executed by WINSETUP.BIN, a 16-bit Windows component that manages the Windows 95 installation process:
Ths above code checks for B1 stepping Errata #7: “Wrong Register Size for String Instructions in Mixed 16/32-bit Addressing Systems.” It returns AX == 0 if the STOSB instruction updated EDI correctly (0xFFFFFFFF) or AX == 1 if EDI is incorrect (0x0000FFFF).