As with the keyboard, the display is handled by a kernel task (consoleTaskCode in console.c). This function is very straightforward. It accepts requests on the port ConsolePort; currently it handles just two types of request - write a character and write a string, and only the latter is used (via the write system call. Characters are written directly to video memory - this is strictly a text-based display at the moment.

The console implements a small subset of the VT100 terminal commands, allowing for clearing of the screen, cursor movement, and similar events.

The code has become slightly more complicated than in the previous version as I support multiple consoles. But it should still be fairly easy to understand from the code and comments.