Something like a character RAM for a start. When 65C02 writes into this space, a callback will be executed that would allow redrawing the emulated screen. Multiple backends can be supported this way.