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
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!
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
This MORE than helped, thank you VERY much!! I will research all of
the above and amend my code if necessary. Wow!
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...)
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.
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.
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
> here: http://www.cpu-world.com/CPUs/8088/L_Intel-P8088.jpg , so the
> 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.
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!)
If you wrote it in assembler, none needed! ;-)