Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ 80387(HW) — OpenDesktop 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought


 80387(HW)                       19 June 1992                       80387(HW)


 Name

    80387 - math coprocessor

 Description

    The 80387 is the Intel math co-processor for the 80386.  The kernel tests
    for the presence of an 80387 at startup.

    If your system has an 80387, you may have to set a switch on the main
    system board in order to enable 80387 interrupts. Check your hardware
    manual to determine the proper switch and setting.  If your system does
    not have an 80387, or the switch is on, the kernel will run a set of emu-
    lator routines which are much slower.

    The C compiler available with the development system generates the
    appropriate 80387 opcodes.  C routines compiled with this compiler have
    run as much as 200 times as fast as the emulated code.  In particular,
    the standard math library routines run considerably faster if you have an
    80387.

    The overflow, division by zero, and invalid operand exceptions return a
    SIGFPE signal.  This signal can be caught.  The rest of the 80387 float-
    ing point exceptions (underflow, denormalized operand, and precision
    error) are masked.

 Notes

    The emulator returns meaningless information on divide by zero.

    There is no obvious way to tell which 80387 exception generated the
    SIGFPE.

    Because of design defects in Intel's 80386 chip (B1 stepping), the Intel
    80387 math co-processor may not operate correctly in some computers.  The
    problem causes the CPU to hang when DMA/paging/coprocessor accesses are
    occurring.  A workaround for this problem has been engineered that is
    engaged by using a special string at boot time:

       Boot
       : unix a31

    This workaround may not work on all machines; some hardware is designed
    such that it will not work.  If it is successful, the following message
    is displayed:

    _________________________________________________________________________
    A31 CPU bug workaround in effect
    _________________________________________________________________________


    If unsuccessful, the following is displayed:

    _________________________________________________________________________
    A31 CPU bug workaround not possible for this machine
    _________________________________________________________________________


    The bootstring may also be added to the end of the default bootstring
    (DEFBOOTSTR) found in /etc/default/boot.

    If you cannot use this workaround, you have two options.  You may replace
    the 386 chip with a newer release of the 386 chip (a D-step part), or you
    can bypass the 387 chip by adding the ignorefpu keyword in your boot com-
    mand as follows:

       Boot
       : unix ignorefpu

    This means that the operating system will not use the 387 chip, but you
    need not remove it physically; the coprocessor is still usable from DOS.
    To automatically bypass the 387 chip every time you boot your system, add
    the ignorefpu keyword to the /etc/default/boot file.  See boot(HW) for
    more information.

    For further information, see the Intel publication:  Intel 80387
    Programmer's Reference Manual.


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026