PetriH:
There is hardly any cycles left during screen refresh.
Are there any left at all? Surely at some point it's better to just take over completely. The cycles spent responding to interrupts and saving/restoring state could be used for audio mixing, etc.