7.8 Incompatibility Issues

The exception handler in the libraries for 80x87 floating-point calculations (mLIBCE.LIB and mLIBC7.LIB) is designed to work without modification on the IBM PC family of computers and on closely compatible computers, including the WANG PC, the AT&T 6300, and the Olivetti personal computers. Also, the libraries need not be modified for the Texas Instruments Professional Computer, even though it is not compatible. Any machine that uses nonmaskable interrupts (NMI) for 80x87 exceptions will run with the unmodified libraries. If your computer is not one of these, and if you are unsure whether it is completely compatible, you may need to modify the math coprocessor libraries.

All Microsoft languages that support 80x87 coprocessors intercept 80x87 exceptions in order to produce accurate results and properly detect error conditions. To make the libraries work correctly on incompatible machines, you can modify the libraries. To make this easier, an assembly-language source file, EMOEM.ASM, is included with Microsoft C/C++. Any machine that sends the 80x87 exception to an 8259 Priority Interrupt Controller (master or master/slave) can be supported by a simple table change to the EMOEM.ASM module. The source file contains further instructions about how to modify EMOEM.ASM, patch libraries, and executable files.