Chuck Guzis wrote:
On 4/20/2006 at 1:40 PM Roy J. Tellason wrote:
I remember some real early magazine articles,
and have since found a bit
of stuff online, that talked about undocumented opcodes for the z80, but
I've not run across that info for anything else. And it seems to depend a
lot
on what brand of chip, etc. so I've never
been really tempted to use
them.
Well, since the information seems to be disappearing from the web in favor
of the "multiple copies of a dumb page" documentation, here they are for
your files:
08 DSUB HL = HL - BC Subtract BC from HL
IIRC, this was actually DSBC (figuratively speaking)...
i.e. it subttracted the cy as well.
10 ARHL HL = HL/2 Arithmetic right shift HL, (Low
order bit to Carry)
18 RDEL DE = DE rotate left 1 Rotate DE left, High order bit to carry
20 RIM (You already know about this one)
28 LDHI DE = HL+imm Load DE with HL + immediate value
30 SIM (You already know about this one)
38 LDSI DE=SP+imm Load DE with SP + immediate value
CB RSTV Restart to 40H if overflow
D9 SHLX (DE) = HL Store HL in the location pointed to by DE
DD JN5 jump if Flags(5) clear Jump if bit 5 of flags is clear
ED LHLX HL = (DE) Load HL from the location pointed to by DE
FD J5 jump if Flags(5) set Jump if bit 5 of flags is set
Flag bit 5 is sometimes called the K flag (for Korrect sign).
AFAIK, all Intel 8085 versions have these implemented. I've heard that the
NEC versions don't, but haven't verified it.
But I note that one way to tell an 8085 from an 8080 or Z80 is to attempt
to set bits 3 and 5 of the flags register. The 8080 forces both of these
to 0; the Z80 allows both to be set. The 8085 allows setting of bit 5
only.
And a clever way to diagnose a failed data bus is to find the
processor stopped at 0x0076. Though it only works on systems
with lightly loaded (MOS) busses.