danw@jacobs.cs.orst.edu (Dan Whitaker) (08/04/90)
I have seen several questions lately about how a software program can
tell the differance between a 386DX (32bit) and a 386SX (16bit). The
answer lies in the DX register after a CPU restart. After a restart the
DH word of the DX register contains a 03H if the processor is a 386DX.
After a restary the DH word is a 23H if the processor is a 386SX.
For your information the DL word of the DX register contains the step
level (version of) the processor. Example:
DH = 23h DL = 08H is a 386SX, C-Step
(the first 386sx with no known bugs)
As far as software is concerned, someone would really have to go out of
their way to make software that runs on a 386DX that
does not run on a 386SX. I don't know of any. I am sure that there is no
commercial software that would run on one and not the other.
As far as 387DX compared to a 387SX I don't know how to tell them apart
(except by assumption). You can obviously tell the 387 from the 287
because the 387 has instructions that the 287 doesn't have. From a
practical point of view, all commercial software is written with 287 math
instructions. Even the 386 specific software uses 287 math instructions.
(remember a lot of 386DX motherboards accept a 287 math co-processor). We
are currently working on trying to connect a 386SX to a 287. I haven't
seen it done yet, if you have please let me know.
I hope that clears up some questions.
Dan Whitaker
Evergreen Technologies Inc
503-757-0934