Why the ANSI terminal to framebuffer code? I would have thought that simple line printing, along with a couple of ioctls for moving the cursor and selecting colours would be enough. And of course all the virtual terminal stuff is not needed either for printing kernel messages.