Made rotating a little faster by not pushing cx.

Fixed problem where first character is always ignored.
Fixed the character map to not interfere.

Also have something different for shift + up or down arrow as opposed to
just pressing up or down. (Will mean up page versus up row).
Simplified the logic for inputting a character and printing a string.

Added code to scroll up a line or scroll down a line and did error checking.
Took the make cursor visible procedure from VideoInt to JdosInt because it
is only called there.
Added checking in JDOS for scrolling the screen up and down.
Working revision of code with printing support.

Added checking for scrolling up and down that works with the keyboard keys.
Can also scroll up and down a page at a time.
Fixed a problem where the first key call was always returned immediatley - was
overwritting in the setup for the screen.
Added a very basic main menu.

Cleaned up checking for scroll up and scroll down.
Parameterized the scrolling functions for the video interrupt.
Made it so that when printing a string, the screen scrolls to the top of the string.
Interrupt should now handle backspace and newline properly.

Never prints unprintable characters to the screen anymore.
Fixed a small problem with the backspace code.

Was forgetting to adjust the lcd cursor position in ram.
Added in procedure to pop stack until the return address is found.
Re-arranged some files and added an input one hex function.
Merge branch 'features/software-interrupts' into development