Been a while since I updated this...
The print routines are working fine now, and I can print strings, signed or unsigned decimal or hex to the screen or a buffer. Unfortunately, I don't have format specifiers, so everything prints as %X or %d, but I can't do %8X, or even %08X
I started working on a keyboard driver, and have verified that I can read the appropriate CRU bits. Looks promising. Even though there is a keyboard scanning routine in the firmware, I don't want to use that unless absolutely necessary.
During keyboard testing, I noticed just how slow the screen_write function is. Since I intend to do a lot of printing, I need this to be as fast as possible. Or at least reasonably quick.
To that end, I'm running a speed test here. This is the time, in seconds it takes to count up to 0xA00. Time is taken on a non-maximied screen, started when "2" is pressed on the TI program selection screen.
57.23 No copy from VDP for screen scroll
83.13 First attempt with screen buffer, non-working
The savings seems to be in the scrolling section. By using word copies instead of byte copies, I seem to gain a bit of speed. Unfortunately, what was a reasonably well laid out bit of code will be mangled by maintainng the screen buffer. Oh well. I'd rather have the 20% speed-up.