[comp.sys.m68k.pc] Illegal op-codes on 68000

sagan@FARADAY.ECE.CMU.EDU (Cyril Sagan) (08/05/87)

Does anyone have, or know of a source of, a table of illegal op-codes
for the 68000?

The ultimate goal would be to have a function whose domain would be the
set of all word combinations (0x0000..0xffff), that would return exactly 
one of several status codes like:

	* decodes and executes a valid instruction
	* illegal for 68000 but good in only 68010
	* illegal for 68000 but good in either 68010 or 68020
	* illegal for 68xxx

Our assembler is smart enough to catch problems like:
	e1c8		ASL	A0		* Illegal instruction

And it wont even assemble the instruction, but if the processor tried
to execute e1c8, (which you would get if you replaced the ea field with
the 'standard' bit sequence 001 000 for A0) it results in an illegal
instruction.  

I my attempt to 'compute' illegal op-codes, I looked at the arithmetic
and logical instructions to check whether their destinations were
addresses.  An good example was
	AND D0,A0	
...which I thought would assemble to c188, but it so happens that c188
dis-assembles (to EXG D0,A0) and is not illegal at all.   There are just
too many exceptions to deal with.

So, now I feel as if I need a table of (perhaps) ranges of illegal 
instructions, so I can make *fast* table lookup decisions about the
integrity of some op-codes.

Can anyone give me any advice/pointers??  Thanks in advance...

Cyril Sagan, 
Carnegie-Mellon University

arpa:  sagan@faraday.ece.cmu.edu		(prefered)
bitn:  cs2k@cmuccvma.bitnet
uucp:  ...{ seismo | harvard } !te.cc.cmu.edu!cs2k
csnt:  cs2k%te.cc.cmu.edu@relay.cs.net