(no title)
peterevans | 8 years ago
In the CMOS version (65C02), illegal opcodes are treated similarly to NOPs--they don't crash, and don't do anything other than spend cycles--with the caveat that certain of these "illegal" opcodes have specific numbers of cycles and bytes that they consume which are different from other illegal opcodes. More confusingly, there is an actual proper NOP instruction (0xEA), which consumes the one opcode byte and two cycles, which exists in both the CMOS and NMOS version of the chip.
So some of the illegal opcodes are just like NOP, and eat one byte and two cycles; some eat two bytes, and 3 or more cycles; and there's at least one which not only eats 3 bytes, but eight (GASP!) cycles.
Source: if it's possible for one to consider MOS emulation a hobby, then let's say it's a hobby of mine.
to3m|8 years ago
(Some BBC Micro games definitely do use illegal opcodes, but I didn't take very careful notes when I was writing ver 1, rather a long time ago. For the current version, I just made sure the Lorenz 6502 test suite ran to completion.)
duskwuff|8 years ago
ci5er|8 years ago
IIRC, some of the janky stuff I did on the Apple //e 6502 did run on the Apple IIc 65C02. I'm pretty sure they didn't fall of into NOP-land. (Again, I could be mis-representing this, but I was taking some shortcuts at one point to accelerate some graphics that ended up in a Broderbund game, so I don't think I am? (Time wastes all memories - I could well be wrong))
peterevans|8 years ago
It's quite possible (perhaps because you typed it as Apple //e!) that you were actually working with that 65C02 variant, and thus, your janky stuff was forgiven by the Gods of Early Personal Computing (blessed be).
(See: https://en.wikipedia.org/wiki/Apple_IIe)