http://wiki.osdev.org/Text_UI
http://wiki.osdev.org/Text_Mode_Cursor

TextScreen is the raw access to the screen. It should not handle virtualization or buffering. That can be handled in System ring and using absracted memory copies for the virtualization.