That's not just for copy protection, that's a widely known and practiced
method for calling a routine withoiut having to set up the accumulator
first. Though the 6502 designers probably never thought of doing so, they
provided the programmers with a nice handy "trick".
Many machines have their idiosyncracies, and the programmer who
understands them can often capitalize on them for speed or size savings. A
perfect example even exists in the 360/370 assembler. In the early days of
the model 30, most of them had either 32 or 64K, 64K being the maximum size
of core storage. To save space, a programmer would often use a neat little
trick to swap two areas of memory without using a third temporary area. The
idea was to use three exclusive OR instructions…
EOR A,B
EOR B,A
EOR A,B
At the end of this, the two memory areas would be swapped. Slower, but less
memory hungry.
Regards, Larry.