Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ 80387(HW) — Xenix 2.3.4g

Media Vault

Software Library

Restoration Projects

Artifacts Sought



     80387(HW)                XENIX System V                 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 must turn off 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 emulator routines
          which are much slower.

          The C compiler available with the program development
          package 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 floating 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
               : xenix mulbug

          This workaround may not work on all machines; some hardware
          is designed such that it will not work.  The bootstring can
          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



     Page 1                                           (printed 2/7/91)





     80387(HW)                XENIX System V                 80387(HW)



          adding the ignorefpu keyword in your boot command as
          follows:

               Boot
               : xenix 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.








































     Page 2                                           (printed 2/7/91)



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