Re: [stella] "Illegal" opcodes

Subject: Re: [stella] "Illegal" opcodes
From: Russ Perry Jr <slapdash@xxxxxxxxxxxx>
Date: Sun, 18 Jun 2000 22:44:17 -0500
At 9:42 AM -0400 6/17/00, Ruffin Bailey wrote:
>> Can anyone modify DASM so that it accepts illegal opcodes or recommend
>> a PC assembler that accepts them?

>Okay, if these instructions not only work, but in this case do something
>useful _and_ more efficiently, why are they called "illegal" opcodes?  

As others have pointed out, they're not really illegal, but merely
undocumented.  But IIRC the reason they used a stronger-sounding term
was because they're not guaranteed to be there in new revisions of the
chip, or in the next generation with the same architecture.

At 12:50 PM -0400 6/17/00, Matthew W. Miller added:
>That they work at all is a side effect of the way the 65xx's microcode
>is lashed together.

Great, careless coding even on that level...

I've always wondered why they didn't just tie off any used opcodes as
NOPs to actually MAKE them unuseable.

At 10:08 AM -0400 6/18/00, Ruffin Bailey wrote:
>Forgive my ignorance and curiousity, but who "officially" defined the
>instruction set

As Erik Mooney answered, it's the designers who define which are official
opcodes; anything is is "illegal", because they only guarantee that what's
documented will work as described.

In general, illegal opcodes should be used only if they've been tested
for side effects.  For instance, even though an illegal opcode may do
something useful, there's a chance that it will also do something
unexpected, like set flags incorrectly.
||  Russ Perry Jr   2175 S Tonne Dr #105   Arlington Hts IL 60005  ||
||  847-952-9729    slapdash@xxxxxxxxxxxx    VIDEOGAME COLLECTOR!  ||

Archives (includes files) at
Unsub & more at

Current Thread