[comp.sys.intel] How to tell the difference between 386DX vs 386SX

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