During the graphical emulation, you can use special key combinations to
change modes. The default key mappings are shown below, but if you use
``-alt-grab`` then the modifier is Ctrl-Alt-Shift (instead of Ctrl-Alt)
and if you use ``-ctrl-grab`` then the modifier is the right Ctrl key
(instead of Ctrl-Alt):

Ctrl-Alt-f
   Toggle full screen

Ctrl-Alt-+
   Enlarge the screen

Ctrl-Alt\--
   Shrink the screen

Ctrl-Alt-u
   Restore the screen's un-scaled dimensions

Ctrl-Alt-n
   Switch to virtual console 'n'. Standard console mappings are:

   *1*
      Target system display

   *2*
      Monitor

   *3*
      Serial port

Ctrl-Alt
   Toggle mouse and keyboard grab.

In the virtual consoles, you can use Ctrl-Up, Ctrl-Down, Ctrl-PageUp and
Ctrl-PageDown to move in the back log.
