Numeric co-processors

OS/2 compatible numeric co-processors
It may come as a surprise, but prior to the integration of numeric/floating point co-processors in the 486 and 586 (Pentium) class x86 processors you could to a certain degree mix and match between generations of math co-processors (within reason), so an number of compilers that support 286 and 386 code generation also support generating code for math coprocessor that are not from the same generation as the main processor (detection is usually handled by the same runtime stub that checks to see if your system has a co-processor at all).

The 8087 was asynchronous simply because it was not designed to be used with an 8086, it was designed to be used with an Intel 8-bit 8080, and some 8080 CP/M systems such as the DAI actually came with an 8087 as standard. The 286 and later had a different interface to enable memory protection.

Most modern compilers use either the 386 or the Pentium processors as the lowest common denominator and expect a 80387 or Pentium compatible co-processor to be present in support for floating point processors is turned on.


 * TMS1018
 * 8087
 * 8087-2

80287
Note that there are two versions of the 80287, the original that was introduced shortly after the introduction of the 80286, and a later model that is actually a 80387SX with a 80287 part number and pin-out. In a similar fashion the Cyrix 82S87 and IIT 2C87 have 387 compatible co-processors inside but sport a 80287 pin-out.
 * 80287
 * 80287XL
 * Cyrix 82S87
 * IIT 2C87
 * 80387
 * 80187 (80387 in a 80186/8087 compatible format)
 * Microway 287Turbo
 * Microway 287TurboPlus
 * i387SX
 * i487SX

Weitek & compatibles
These depend on compiler support, in other words they only work if the software has been compiled with support for them.
 * Microway mW1167
 * Weitek 1163/64
 * Weitek Abacus 3167
 * Weitek Abacus 4167