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.