This corrects one missing multiply by sizeof (struct
term_char) and replaces two multiplies by sizeof (int)
(which would cause problems if struct term_char was to
be extended).
Also included is one optimisation which applies to
swapping between main and alternate areas (it's faster
to swap pointers to memory blocks than to swap their
contents) and one removal of a now-unnecessary cast.
term_char bugfix & optimise patch