Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

8088 vs. 80c88?

340 views
Skip to first unread message

Jim Leonard

unread,
Feb 11, 2009, 9:14:03 PM2/11/09
to
I posted this in another forum but didn't hear back; I think this is a
better group suited to this question anyway:

I was always under the impression that when Intel moved to a CMOS
manufacturing process for the 8088/8086, they fixed a bug regarding a
repeated LODSB with a segment override -- that the REP prefix was
ignored (bug) in the old 8088s, and was honored (correctly) in the
newer chips. So a simple routine to try to identify the 8088 vs. the
80c88 would look something like:

mov cx,2 ; test if following instruction will be
; repeated twice.
db 0F3h,26h,0ACh ; rep es: lodsb
jcxz Yes ; intel non-CMOS chips do not care of rep
jmp Nope ; before segment prefix override, NEC and
; CMOS-tech ones does.

If I run this on my 5150 with (C)1978 8088, I see the bug (cx does not
update). If I run this on my 5160 with "80c88" printed on the chip, I
do not see the bug (cx goes to 0). So all is well, right?

Well, I use this routine in a detection library for a project I
recently completed(*) and someone is claiming that the code is
broken. It reports an 80c88 when the chip is *not* marked 80c88, but
rather "8088 (C) 1983 Intel". So what's going on? Is the chip from
1983 actually an 80c88, since it doesn't have the bug? Or did Intel
fix the bug before moving to a CMOS manufacturing process?

(*) project is a CGA compatibility testing program; you can grab it
from www.oldskool.org/pc/cgacomp

Bob Masta

unread,
Feb 12, 2009, 8:12:43 AM2/12/09
to

Have you found a real use for REP LODSB? The only
one I've ever come up with is testing how fast REP
LODSB was between processors. <g>

Best regards,


Bob Masta

DAQARTA v4.51
Data AcQuisition And Real-Time Analysis
www.daqarta.com
Scope, Spectrum, Spectrogram, Sound Level Meter
FREE Signal Generator
Science with your sound card!

Rod Pemberton

unread,
Feb 12, 2009, 4:13:06 AM2/12/09
to
"Jim Leonard" <spam...@crayne.org> wrote in message
news:688e017a-5739-4334...@w24g2000prd.googlegroups.com...

> I posted this in another forum but didn't hear back; I think this is a
> better group suited to this question anyway:
>
> I was always under the impression that when Intel moved to a CMOS
> manufacturing process for the 8088/8086, they fixed a bug regarding a
> repeated LODSB with a segment override -- that the REP prefix was
> ignored (bug) in the old 8088s, and was honored (correctly) in the
> newer chips. So a simple routine to try to identify the 8088 vs. the
> 80c88 would look something like:
>
> mov cx,2 ; test if following instruction will be
> ; repeated twice.
> db 0F3h,26h,0ACh ; rep es: lodsb
> jcxz Yes ; intel non-CMOS chips do not care of rep
> jmp Nope ; before segment prefix override, NEC and
> ; CMOS-tech ones does.
>
> If I run this on my 5150 with (C)1978 8088, I see the bug (cx does not
> update). If I run this on my 5160 with "80c88" printed on the chip, I
> do not see the bug (cx goes to 0). So all is well, right?
>

The immediate link below might be of interest to you. It uses a very
similar method but different to detect NMOS vs. CMOS 808x. The comments
indicate that the "rep es" on "movsb" must be interrupted by an interrupt.
The NMOS version supposedly will fail to resume after the interrupt. That
seems to be why cx is large.

This link lists ability to detect 8088(NMOS), 8086(NMOS), 8088(CMOS),
8086(CMOS), NEC V20, NEC V30, 80188, 80186, 80286, 80386+:
http://groups.google.com/group/comp.lang.asm.x86/msg/5d3a43fae26697df

> Well, I use this routine in a detection library for a project I
> recently completed(*) and someone is claiming that the code is
> broken. It reports an 80c88 when the chip is *not* marked 80c88, but
> rather "8088 (C) 1983 Intel". So what's going on? Is the chip from
> 1983 actually an 80c88, since it doesn't have the bug? Or did Intel
> fix the bug before moving to a CMOS manufacturing process?
>
> (*) project is a CGA compatibility testing program; you can grab it
> from www.oldskool.org/pc/cgacomp
>

Well, let's take a look at some of the cpu images in cpu collections and see
if we can find one marked "8088 (C) 1983 Intel" or "8086 (C) 1983 Intel":

28 8088 cpu images here, none marked as he/she indicated:
http://www.cpushack.com/chippics/Intel/808x/8088/

16 8086 cpu images here, none marked as indicated:
http://www.cpushack.com/chippics/Intel/808x/8086/

4 8088 cpu images here, none marked as he/she indicated:
http://www.cpu-collection.de/?tn=0&l0=co&l1=Intel&l2=8088

3 8086 cpu images here, none marked as he/she indicated:
http://www.cpu-collection.de/?tn=0&l0=co&l1=Intel&l2=8086

1 8088 cpu images here, none marked as he/she indicated:
http://www.cpu-collector.com/menu/searchresults/record/158.htm

1 8086 cpu images here, none marked as he/she indicated:
http://www.cpu-collector.com/menu/searchresults/record/157.htm

1 Intel 8086 and 9 other manufacturer 8086 cpu images here, none marked as
he/she indicated:
http://www.cpu-world.com/CPUs/8086/index.html

1 Intel 8088 and 8 other manufacturer 8088 cpu images here, none marked as
he/she indicated:
http://www.cpu-world.com/CPUs/8088/index.html


Well, we didn't find one. Rare cpu? Um, so I guess you get to tell him the
copyright symbol (C) is actually for CMOS for those who know how to read the
fine print, wink... ;-) Seriously, are you sure he wasn't looking at a BIOS
ROM or some other chip in the PC? Interestingly, except for the year, the
MHS 8088 cpu markings are close to what your individual claims the chip is
marked. Could it be that the individual thought it was an Intel chip
because of the Intel copyright markings, but Intel isn't actually the
manufacturer? Anway, maybe have him try the code, compiled by you for him
of course, at the link above?

--
Entering "+rep +lodsb +bug +8086 OR 8088" into Google Groups advanced search
also pulled up these CPU identification links (or helped me find them). The
links all have assembly code to detect early cpu's. The first claims the
ability to detect early FPU's also.

This lists 8088, 8086, 80188, 80186, 80286, NEC V20, NEC V30 and 8087,
80287:
http://groups.google.com/group/comp.sys.ibm.pc/msg/21a866afb6842a4b

This lists 8088, 8086, 80186, 80286, 80386:
http://groups.google.com/group/comp.sys.ibm.pc/msg/1d64fd1561dc0f40

This lists 8088, 8086, 80286, 80386:
http://groups.google.com/group/comp.sys.ibm.pc/msg/b2d86584664f84e2

This lists 8088, 8086, 80186, 80188, 80286, 80386, 80486:
http://groups.google.com/group/comp.sys.ibm.pc/msg/c0acb32629bc7c96

This lists 8088, 8086, NEC V20, NEC V30:
http://groups.google.com/group/alt.lang.asm/msg/a18be7267a5cefbd

HTH,


Rod Pemberton

Jim Leonard

unread,
Feb 12, 2009, 10:39:19 AM2/12/09
to
On Feb 12, 3:13 am, "Rod Pemberton" <spamt...@crayne.org> wrote:
>
> HTH,
>
> Rod Pemberton

This MORE than helped, thank you VERY much!! I will research all of
the above and amend my code if necessary. Wow!

Jim Leonard

unread,
Feb 12, 2009, 1:52:52 PM2/12/09
to
On Feb 12, 7:12 am, (Bob Masta) <spamt...@crayne.org> wrote:
> Have you found a real use for REP LODSB? The only
> one I've ever come up with is testing how fast REP
> LODSB was between processors. <g>

You laugh, but that's how I test for video ram adapter read speed
(LODSW actually). I wanted a way to benchmark "raw" read speed of a
block of memory, so I used REP LODSW (unless there is a better way I
don't know about...)

fvdm1992

unread,
Feb 12, 2009, 3:00:02 PM2/12/09
to
On Feb 12, 10:13 am, "Rod Pemberton" <spamt...@crayne.org> wrote:
> "Jim Leonard" <spamt...@crayne.org> wrote in message
>
> news:688e017a-5739-4334...@w24g2000prd.googlegroups.com...
>

> > Well, I use this routine in a detection library for a project I
> > recently completed(*) and someone is claiming that the code is
> > broken.  It reports an 80c88 when the chip is *not* marked 80c88, but
> > rather "8088 (C) 1983 Intel".  So what's going on?  Is the chip from
> > 1983 actually an 80c88, since it doesn't have the bug?  Or did Intel
> > fix the bug before moving to a CMOS manufacturing process?
>
> > (*) project is a CGA compatibility testing program; you can grab it
> > fromwww.oldskool.org/pc/cgacomp
>
> Well, let's take a look at some of the cpu images in cpu collections and see
> if we can find one marked "8088 (C) 1983 Intel" or "8086 (C) 1983 Intel":
>
> 28 8088 cpu images here, none marked as he/she indicated:http://www.cpushack.com/chippics/Intel/808x/8088/
>

Hi, I'm the one with the CPU.
On the site, there is one picutre, http://www.cpushack.com/chippics/Intel/808x/8088/IntelP8088.html
, that has about the same layout. However, the only differences are
the serial and that '81 is replaced with '83.

A picture of a similar CPU of mine (from CPU-World.com) can be found
here: http://www.cpu-world.com/CPUs/8088/L_Intel-P8088.jpg , so the
CPU I/he is talking about does exist.

Steve

unread,
Feb 13, 2009, 8:00:36 AM2/13/09
to
fvdm1992 writes:
>
>Hi, I'm the one with the CPU.
>On the site, there is one picutre, http://www.cpushack.com/chippics/Intel/808x/8088/IntelP8088.html
>, that has about the same layout. However, the only differences are
>the serial and that '81 is replaced with '83.
>
>A picture of a similar CPU of mine (from CPU-World.com) can be found
>here: http://www.cpu-world.com/CPUs/8088/L_Intel-P8088.jpg , so the
>CPU I/he is talking about does exist.

Hi,

"Obviously" as there are copyrights claimed for 1978,
81, and 83, there were die or circut changes. Therefore
these chips could test differently. I never understood why
a CPU ID was not part of the 8088 instruction set, much
less 366/486.

Steve N.

Rugxulo

unread,
Feb 13, 2009, 6:21:03 PM2/13/09
to
Hi,

On Feb 12, 2:00 pm, fvdm1992 <spamt...@crayne.org> wrote:
> On Feb 12, 10:13 am, "Rod Pemberton"  <spamt...@crayne.org> wrote:
>
> > "Jim Leonard" <spamt...@crayne.org> wrote in message
>
> >news:688e017a-5739-4334...@w24g2000prd.googlegroups.com...
>
> > > Well, I use this routine in a detection library for a project I
> > > recently completed(*) and someone is claiming that the code is
> > > broken.  It reports an 80c88 when the chip is *not* marked 80c88, but
> > > rather "8088 (C) 1983 Intel".  So what's going on?  Is the chip from
> > > 1983 actually an 80c88, since it doesn't have the bug?  Or did Intel
> > > fix the bug before moving to a CMOS manufacturing process?
>
> > > (*) project is a CGA compatibility testing program; you can grab it
> > > fromwww.oldskool.org/pc/cgacomp
>
> > Well, let's take a look at some of the cpu images in cpu collections and see
> > if we can find one marked "8088 (C) 1983 Intel" or "8086 (C) 1983 Intel":
>
> > 28 8088 cpu images here, none marked as he/she indicated:http://www.cpushack.com/chippics/Intel/808x/8088/
>
> Hi, I'm the one with the CPU.

> On the site, there is one picutre,http://www.cpushack.com/chippics/Intel/808x/8088/IntelP8088.html


> , that has about the same layout. However, the only differences are
> the serial and that '81 is replaced with '83.
>
> A picture of a similar CPU of mine (from CPU-World.com) can be found

> here:http://www.cpu-world.com/CPUs/8088/L_Intel-P8088.jpg, so the


> CPU I/he is talking about does exist.

Since the 286 debuted in 1982, I assume any 8088-ish chip made in 1983
by Intel had any older bugs fixed. No huge reason to keep the bug just
for 100% compatibility, I guess.

Novosad, Stephan R.

unread,
Feb 14, 2009, 9:01:58 AM2/14/09
to

2nd attempt, did not see 1st.

 

fvdm1992 wrote:

> "Rod Pemberton" <spamt...@crayne.org> wrote:

> > Well, let's take a look at some of the cpu images in cpu collections and see

> > if we can find one marked "8088 (C) 1983 Intel" or "8086 (C) 1983 Intel":

> > 28 8088 cpu images here, none marked as he/she

> indicated:http://www.cpushack.com/chippics/Intel/808x/8088/

> Hi, I'm the one with the CPU.

> On the site, there is one picutre,

> http://www.cpushack.com/chippics/Intel/808x/8088/IntelP8088.html

> , that has about the same layout. However, the only differences are

> the serial and that '81 is replaced with '83.

> A picture of a similar CPU of mine (from CPU-World.com) can be found

> CPU I/he is talking about does exist.

 

Hi,

 

   As the copyright changed I would assume the Intel changed the ciruit

layout or die.  And hopefully they would fix a bug long with any other

changes.  I always wondered why Intel didn't put a CPU ID instruction

in the 8088 instruction set.  Much less the 386/486...  Anyway, that just

means that testing for an 8088 may be date dependant.

 

Steve N.

Bob Masta

unread,
Feb 13, 2009, 8:06:28 AM2/13/09
to

Actually, that's precisely what I used it for in
my little SYSTEST utility. Docs at
<www.daqarta.com/systest.htm>, download
(inlcuding docs) at <www.daqarta.com/systest.zip>.
(No source, though... sorry!)

Jim Leonard

unread,
Feb 16, 2009, 5:43:14 PM2/16/09
to
On Feb 13, 7:06 am, (Bob Masta) <spamt...@crayne.org> wrote:
> (No source, though... sorry!)

If you wrote it in assembler, none needed! ;-)

0 new messages