oliverschmidt/cc65 — pull request #2 by greg-king5 (2013-04-26 18:16:04+00:00)
Title: Improved CBM scrcode assembly-macroes.

CBM (and Atari) machines have two character-encodings:
* PetSCII (and AtASCII) that is used in programs and files,
* screen-codes that are put in the screen RAM (they are subscripts into an array of font data). The scrcode macroes translate that first encoding into the second one during assembly, so that programs can store text directly onto the screen, instead of sending it through output functions.

The new CBM _scrcode macro is smaller because it takes advantage of the fact that:
* the encodings can be divided into groups;
* the size of those groups is a power of two;
* within each group, the encodings are related by a simple exclusive-or with a constant
value.