keep a scrollback buffer when we scroll down
implement scrolling
allow the number of lines to scroll at a time to be configurable
draw the cursor in the right place when scrolling
refactor to make alternate screens work again
cap scrollback to avoid unbounded memory usage
scroll to bottom on input
lift this field access out of a tight loop
draw the correct size box for the cursor
refactor
more refactoring