Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!uwm.edu!zaphod.mps.ohio-state.edu!usc!apple!snorkelwacker!mintaka!spdcc!ima!esegue!Postmaster From: johnl@esegue.segue.boston.ma.us (John R. Levine) Newsgroups: comp.os.msdos.programmer Subject: Re: Detecting an 80486 Message-ID: <9008261311.AA12147@esegue.segue.boston.ma.us> Date: 26 Aug 90 17:11:27 GMT References: < <3839@altos86.Altos.COM> <1990Aug21.223404.19523@ddsw1.MCS.COM> Sender: Postmaster@esegue.segue.boston.ma.us Organization: Segue Software, Cambridge MA Lines: 24 In-Reply-To: <2664@dataio.Data-IO.COM> In article <2664@dataio.Data-IO.COM> you write: >Are there any differences between a 387 and a 487? Not many. The instruction sets seem to be the same. There are some minor changes in the state after a reset. There is one new status bit that controls whether exceptions cause an internal interrupt 16 as Intel recommends or wiggle an external pin to be fed back through the external interrupt controller for PC compatibility. This seems hard to test, since a system designer is free to wire up the external interrupt any way he wants. >Are FWAITs *never* necessary with a 487? Funny you should ask. In general, no, but the 387 doesn't need them either. Despite what the 387 manual says, all memory accesses to the 387 are fully interlocked with the 386, and loading and storing 387 data never causes a race condition. You'll notice that no 386 C compiler ever emits an FWAIT. (I confirmed this with an Intel designer in Santa Clara, who said it was he who told all 387 compiler writers to dispense with the waits. It was a surprise to the 387 support people in Oregon.) The only time an FWAIT is useful is to force a pending floating point interrupt, both on the 387 and the 486. Regards, John Levine, johnl@esegue.segue.boston.ma.us, {spdcc|ima|world}!esegue!johnl