8088 vs. 80c88
Chuck Guzis
cclist at sydex.com
Wed Feb 25 12:03:20 CST 2009
On 24 Feb 2009 at 11:27, les at frii.com wrote:
> I am assuming the problem relates to following a lxi sp instruction
> immediatly with a call instruction, I can see how pipelining
> instructions could cause this failure. I cant immagine how calling
> the address which happens to match the sp would be an issue.
As far as we could determine, it was precisely the issue.
uP operation can be mysterious I recall using early (pre-production)
steppings of the 80186 and discovering that under certain
circumstances a DMA transfer wouild clobber SI and DI (that one took
almost 3 weeks to track down).
> My thought was that most cp/m programs either left the sp alone, and used
> the stack provided by cp/m, or set up a local stack early on in the
> program. In either case this bug could be completly avoided. Am I wrong
> here? Is the bug related to calling the address which happens to be in
> the sp?
Again, yes.
> So as I understand your opinion, if NEC had stated in the V20
> documentation, that you should not follow a lxi sp instuction immediatly
> with a stack operation, this would not have been a bug. In the case of
> the 386, they documented issues with the 386 queue, issues which crashed
> commercial software, but which are not a bug. In this case, it was just
> code written for an older processor.
Probably not a bug, but definitely a factor in determining if I
should have bothered to use the V20/30 for emulation at all.
Certainly, I wondered if the lack of Z80 instruction set support
would have been an issue. It was--and I supplied a software emulator
for that. Fortunately, I also included an software 8080 emulator, so
even users of JRT Pascal weren't left hanging.
To clarify my point, would you try to run CP/M on a Rabbit uC with
all of its "we're just like a Z80 except when we're not" instruction
set? I've never tried, as the compatibility issues are just too
severe.
Cheers,
Chuck
More information about the cctech
mailing list