Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!usc!snorkelwacker!bloom-beacon!eru!luth!sunic!tut!tukki.jyu.fi!jyu.fi!otto From: otto@tukki.jyu.fi (Otto J. Makela) Newsgroups: comp.os.msdos.programmer Subject: Re: Detecting an 80486 Message-ID: Date: 15 Aug 90 00:29:16 GMT References: <26a858b9@ralf> <3817@altos86.Altos.COM> <1990Aug14.025550.17669@esegue.segue.boston.ma.us> Sender: news@tukki.jyu.fi (News articles) Organization: Justice HQ, Mega-City One Lines: 18 In-Reply-To: johnl@esegue.segue.boston.ma.us's message of 14 Aug 90 02:55:50 GMT In article <1990Aug14.025550.17669@esegue.segue.boston.ma.us> johnl@esegue.segue.boston.ma.us (John R. Levine) writes: The Intel 486 Programmer's manual has sample code to tell the difference among the 8086, 286, 386, and 486 without any trapping at all. There are lots of differences other than new instructions. For example, on a PUSH SP, the 8086 pushes the decremented SP but newer processors push the original value. When you push the flags register with PUSHF, the 8086 always sets bits 12-15 to one, the 286 always sets them to zero, and the 386 and 486 store some actual flags there. The 486 uses flag bit 18, which the 386 didn't. Intel provides sample code that is straightforward and doesn't depend on catching traps. Looks good to me. Sounds perfect. Does anyone have this online already ? If not, does anyone who has the 486 programmer's wanna type it in ? -- * * * Otto J. Makela (otto@jyu.fi, MAKELA_OTTO_@FINJYU.BITNET) * * * * * * * * Phone: +358 41 613 847, BBS: +358 41 211 562 (CCITT, Bell 2400/1200/300) * * Mail: Kauppakatu 1 B 18, SF-40100 Jyvaskyla, Finland, EUROPE * * * * freopen("/dev/null","r",stdflame); * * * * * * * * * * * * * * * * * *