Path: utzoo!utgpu!water!watmath!clyde!burl!codas!killer!richardh From: richardh@killer.UUCP (Richard Hargrove) Newsgroups: comp.sys.ibm.pc Subject: Re: What's the deal on the 80387 and real mode interrupts? Summary: Intel reserved interrupts 00h thru 1fh Message-ID: <2730@killer.UUCP> Date: 9 Jan 88 03:07:48 GMT References: <1269@looking.UUCP> Organization: The Unix(R) Connection, Dallas, Texas Lines: 39 In article <1269@looking.UUCP>, brad@looking.UUCP (Brad Templeton) writes: > My documentation on the 387 states that an exception triggers trap 16 (decimal) > in the 386. If this maps into the 16th vector in real mode, as it seems to, > this is the same as IBM's VIDEO Bios call! > As the Intel documentation clearly states, (_iAPX 86/88, 186/188 User's Manual: Programmer's Reference_, pg. 4-9 and Fig. 4-9 on pg. 4-10) "The dedicated and reserved portions of the interrupt pointer table (locations 0H through 7FH), however, should not be used for any other purpose to insure proper system operation and to preserve compatibility with future Intel hardware and software products." Guess what? Those are all the interrupt vectors associated with interrupts 00h through 1fh! I think it took incredible stupidity or arrogance on the part of some designer at IBM to use the "unused" vectors in this range for the PC BIOS. This actually caused some problems for the early AT BIOS implemenatations because the 80286 claimed some of the reserved interrupts (the BOUND instruction traps to interrupt 5 if the tested value is out of the specified bounds, and we all know what's at INT 5 - the print-screen driver!) and the BIOS code wasn't written to handle them! The BOUND instruction could call the INT 5 routine with random parameters! > > Anyway, all this makes writing a good general exception handler for all three > Intel 80x87 chips a tad complicated. Could the screen clear be the result Too say the least. Good luck. Just remember the above said designer (or design committee) when you run into problems. You might try tracing through the code pointed to by the INT 13h handler to see how it discriminates between the two (extremely) dissimilar interrupt sources. That is the critical problem. Then re-vector to a truly unused interrupt if the '387 exception needs to be handled. richard hargrove ...!killer!richardh -------------------