	The PENTFIX Utility
	January 1995
	-------------------

The PENTFIX utility installs a file that automatically disables the 
Intel(R) Pentium(TM) floating-point hardware that contains the 
floating-point division accuracy error. The Pentium then behaves 
similarly to an Intel 486SX or 386 that does not contain floating-
point processing hardware.

This utility will work only for Microsoft(R) Windows(R) 3.1 and 3.11, 
and for Microsoft Windows for Workgroups 3.1 and 3.11. A separate 
solution is available for Windows NT(TM) 3.5.

To install and run this software, copy the file PENTFIX.EXE to the 
Windows directory on your hard disk. Then, from Program Manager, 
choose Run from the File menu, type "pentfix" (without the quotation 
marks), and choose OK.

When you execute the PENTFIX command, you will be presented with 
information about your processor's floating-point hardware division 
accuracy and provided with three choices:

	- Use floating-point hardware.
	- Disable floating-point hardware only if error is
	  present.
	- Disable floating-point hardware all the time.

On execution, PENTFIX first tests for the presence of the Pentium 
division error. If no error is found, PENTFIX informs you that no 
division error was detected and recommends "Use floating-point 
hardware." If the Pentium division error is detected, you are 
notified, and the second choice is the default selection. If you later 
replace the Pentium chip with one that does not contain the division 
error, the floating-point hardware is automatically enabled. The third 
choice is provided primarily for testing purposes and will also 
disable the floating-point hardware on 386 and 486 CPUs.

If you select either of the "disable floating-point hardware" choices, 
PENTFIX copies the new file FP.386 directly to your Windows SYSTEM 
subdirectory and installs the proper entries in the SYSTEM.INI file. 
You can re-enable the floating-point hardware at any time by re- 
running the PENTFIX.EXE command file and selecting the first choice. 
If you frequently run the PENTFIX command, you might want to create a 
Program Manager icon in your Accessories group. To create the icon, 
choose New from the File menu and select Program Item.

You can only enable and disable the floating-point hardware for an 
entire Windows session. You must restart Windows for the new floating-
point settings to take effect. The new file FP.386 and this help file 
are self-contained within in the PENTFIX.EXE installation and control 
utility.

"Safe Division" Applications
----------------------------
Some software vendors plan to release updated applications that 
incorporate a "safe division" algorithm. You will need to re-enable 
floating-point hardware in order to take advantage of the increased 
speed using the "safe division" software. If the floating-point 
hardware is disabled, the application may continue to use full 
software emulation. If you re-enable the floating-point hardware, all 
other applications that do not incorporate this safe division software 
may experience the division accuracy error.

Technical Information
---------------------
The error in the Pentium processor floating-point division hardware 
received a great deal of publicity in the last few months of 1994. 
This error occurs infrequently, and most customers will probably not 
be affected by this problem. A new version of the Pentium processor is 
available from Intel that does not contain this division error.

To address the concerns of customers who have systems based on Pentium 
CPUs with this error, Microsoft has developed software solutions (such 
as the PENTFIX utility) for Windows that disable the floating-point 
hardware. PENTFIX causes most applications to use their own software 
floating-point emulation. PENTFIX effectively turns off the math 
coprocessor by trapping the floating-point instructions, making the 
Pentium processor behave similarly to 486SX or 386 processors that do 
not have math coprocessors.

For the Windows 3.1 family, the solution consists of a VxD driver 
(FP.386) plus a utility that allows customers to install the driver, 
disable hardware floating-point, and re-enable hardware floating- 
point. The utility also reports the current status of the floating-
point driver, and whether the processor contains the floating-point 
division error.

The user's settings are stored in the SYSTEM.INI file in the 
[MathCoprocessor] section:

	FPUFlags=0 - floating-point hardware enabled
	FPUFlags=1 - floating-point hardware disabled only when the
		        division error is detected during vxd initialization
	FPUFlags=2 - floating-point hardware always disabled

Applications can read (but should never change) these flags to 
determine if the floating-point hardware has been artificially 
disabled. Only PENTFIX should change these settings.

Performance vs. Accuracy
------------------------
Using floating-point emulation software will result in lower 
performance of floating-point operations. Microsoft believes that many 
users will not notice any overall system or application speed 
degradation. Internal core operating system code in Windows does not 
perform floating-point calculations, so Windows will not be affected 
either by the potential floating-point hardware division errors or by 
disabling hardware floating-point. Some utilities and applets, such as 
the Calculator program provided with Windows, will use floating-point 
hardware when not disabled. Most word processors, databases, email, 
and similar programs perform few or no floating-point operations.

Math-intensive applications, including spreadsheets and technical 
(engineering, scientific, statistical, etc.) applications typically 
perform floating-point operations and, therefore, will experience some 
performance degradation. The user of many such applications will be 
able to choose between the higher speed of hardware floating-point and 
the slower floating-point software emulation libraries that will not 
encounter the Pentium floating-point division error. Many applications 
contain their own floating-point libraries to use in this case. A few 
applications (such as AutoCAD[R]) require floating-point hardware and 
will not run without it. Customers running these applications need to 
replace their Pentium processors to avoid the floating-point division 
error. The floating-point software emulations libraries are typically 
used on systems with 486SX or 386 processors.

Multimedia, game, and other graphical programs may use floating-
point hardware in calculating display coordinates, but because the
potential errors are typically very small relative to the number being
calculated, the displayed graphics will not be noticeably affected.

For Windows NT
--------------
The Microsoft Windows NT 3.5 U.S. Service Pack 1 includes a utility 
(PENTNT.EXE) that allows disabling and re-enabling of hardware 
floating point in a similar manner to the Windows 3.1 utility. In 
addition, it uses registry settings so that system policy 
administrators can control the use of Pentium floating point hardware 
on user systems. The service pack is available in two formats:

	- 35SP1.EXE: A single 1.2-MB self-extracting archive
	  file for Intel (x86) computers
	- 35SP1-.EXE: A single 1.7-MB self-extracting
	  archive file for x86, MIPS(R), and ALPHA computers

35SP1.EXE and 35SP1-.EXE are available on the following electronic
services:

	Internet: ftp.microsoft.com (198.105.232.1)
		ftp: //ftp.microsoft.com/softlib/msfiles       -or-
		ftp: //ftp.microsoft.com/bussys/winnt/winnt-
		public/fixes/nt35/ussp1
	CompuServe(R):
		Microsoft Software Library (GO MSL)       -or-
		WINNTDL download area (GO WINNTDL)
			Softlib number: S15094
			Softlib number: S15095
	GEnie(TM): Software Library
	Microsoft OnLine: Software Library
		Softlib number: S15094
		Softlib number: S15095
	Microsoft Download Service (206) 936-6735

Future Operating Systems
------------------------
Windows 95 will contain a math coprocessor device driver that 
implements the same basic solution as PENTFIX. Because the Windows 95 
driver also properly handles multithreaded applications, Windows 95 
will remove the FP.386 driver during a user upgrade. Windows 95 will 
use the same SYSTEM.INI settings but will integrate the control of the 
floating-point math emulation into the Device Manager control panel.

Any non-Microsoft math coprocessor VxDs will probably need to be
removed before users upgrade to Windows 95. If an unknown math
coprocessor VxD is present, unpredictable results may occur. As a
result, we strongly recommend you use the Microsoft-provided VxD,
so that future upgrades will operate properly.

Known Problems
--------------
This utility only works for Windows-based applications. It is not
possible to reliably trap and prevent MS-DOS(R)-based applications
from using the floating-point hardware.

AutoCAD for Windows and Mathematica for Windows require floating-point 
hardware. They do not function correctly with the floating-point 
hardware disabled. You need a replacement microprocessor chip if you 
find that the division error is causing problems.

Some applications may still attempt to use the hardware floating-point 
software even after the PENTFIX utility is run. These programs (for 
example, Winsleuth Gold) usually go directly to the CMOS or BIOS for 
this information. Programs of this nature are not supported by the 
PENTFIX utility.

Disabling the floating point hardware on Renderize 2.0 may cause 
graphics display problems on your computer. This problem may be 
resolved either through upgrading your Renderize version or through a 
replacement microprocessor chip. Upgrades for the Renderize product 
can be obtained through Visual Software at (800) 883-7900.

If this driver fails to work for your applications, or you experience 
any other problems related to this driver, you will probably need a 
replacement Pentium microprocessor.

