ADC Home > Reference Library > Technical Notes > Legacy Documents > Hardware & Drivers >
Important: This document is part of the Legacy section of the ADC Reference Library. This information should not be used for new development.
Current information on this Reference Library topic can be found here:
|
Witnessing the ProblemIf you see the message "Spurious Interrupt of the Uninitialized Interrupt vector" in MacsBug or the message "Unassigned Interrupt #$00D (format 9)" from TMON, you should suspect a floating point protocol violation. This can be caused by improper usage of floating point instructions at interrupt level or by attempting to handle hardware floating point exceptions incorrectly. Interrupting the CoprocessorIf you attempt to use the coprocessor at interrupt level, you may be interrupting a floating point processor. You must save the coprocessor's state before executing any floating point instructions, and, of course, restore it later during the interrupt routine. This requires assembly code since there is no convenient way to do it in a high-level language.
There is a protocol that must be followed. The first floating point
instruction must be an
Note that the coprocessor may not be in a condition to be interrupted, and the
Handling Floating Point ExceptionsIt is possible, and sometimes desirable, for applications to install their own hardware floating-point exception handlers. The MPW '881 SANE libraries provide routines for applications to do so. If an application is going to use this mechanism to catch exceptions such as underflow, overflow, or divide by zero, then it must follow the minimal protocol as shown in the following example.
Other Issues
Debugging floating-point routines with MacsBug, SADE, and TMON may cause a
protocol violation. MacsBug 6.1, and earlier, do not perform the
You can witness a protocol violation in another situation. This is when using
the Sound Manager in System Software 6.0.5 and earlier. This Sound Manager
calls SANE at interrupt time. If an application is using the coprocessor
and this Sound Manager is running, it is very likely to interrupt the
coprocessor. This problem has been resolved in the new Sound Manager, which
was originally released in System Software 6.0.6. The new Sound Manager no
longer uses floating-point numbers at interrupt level; it replaces them with
ReferencesApple Numerics Manual, Second Edition Motorola MC68881/MC68882 User's Manual MPW reference manuals Technical Note M.PT.MPWmc68881, Notes on MPW's -mc68881 Option Technical Note M.HW.SpeedyMathCoProc, Speedy the Math Coprocessor TMON is a trademark of ICOM Simulations, Inc. Downloadables
|
|