As I was expecting, it was an error in my code :) pelrun was very kind and found the bug (see my question on CPCWiki's forum) so props to him.
I'll try to explain the issue:
Notice I'm hooking into the jump entry by setting up a FAR CALL. Notice how that's a FAR CALL and not a JUMP? There's an extra return address there that shouldn't be pushed into the ...
The Amstrad CPC range supported 3 basic screen modes:
mode 0 - 160x200, or 20x25 characters, with a palette of 16 colours
mode 1 - 320x200, or 40x25 characters, with a palette of 4 colours
mode 2 - 640x200, or 80x25 characters, with a palette of 2 colours
Any of these colours could be selected from a total palette of 27 colours, which is based on 3 settings (...