CPM2.2 doesn't use any extra memory, and since it runs in configuration 'C0' accessing extra memory is much quicker and easier than under CPM3.0.
You should ensure your code (within the TPA) is in a safe region (0000-3fff, 8000-ffff), you can then page in the memory and copy it out to your destination directly as long as the destination is also within the safe area. It is much safer and simpler to use.
==== Input ====
Console input (via BDOS functions) uses firmware functions and returns firmware key codes when a key is pressed. i.e. &f0 is cursor up.
==== Console Output ====
Console output (via BDOS functions) uses TXT OUTPUT so executes firmware control codes and displays CPC firmware characters. Therefore you can use the control codes to define windows, change modes, change colours etc.
==== Serial number ====