TTL Terminal Firmware Changes V1.4->V2.0 ======================================== V1.4 is built for a PIC16F18857. V2.0 is built for a PIC18F26K83. The two chips are pin-compatible and either device will work in PCB revisions V1.0 to V1.2. New Features ------------ 1. Added support for a buzzer on PCB V1.2. Sending the BEL ASCII code generates a 100ms pulse on the buzzer connector. A basic sounder can be connected or the pulse can be used to trigger a sound generator for more complex sounds. 2. The PIC18 runs faster than the PIC16 so the performance is better, particularly when scrolling the screen or drawing pseudo-graphics shapes. 3. Added support for the Spanish (ES) keyboard layout. Now supports US, UK, French, German and Spanish keyboard layouts. The US layout is the default. 4. Added VT100 / ANSI code support for... VT : Vertical tab ENQ : Sends 'answerback' message to host ESC [ c : Get device attributes, returns ESC [?1;0c (VT100, no added options) ESC [ 20 h/l : Turn on/off LF newline mode ESC [ 5/6 n : Device status report & cursor position report ESC [ 0/1 x : Terminal parameters report ESC E : Go to next line ESC H : Set a tab stop at current location ESC [ g : Clear tab stops ESC # 8 : Display VT100 alignment screen (fills the screen with 'E's) Bug Fixes --------- 1. Fixed VT100 escape sequences... ESC [ J (Erase in display) now only erases up to the cursor instead of erasing the whole line with the cursor and whole screen clear doesn't home the cursor ESC [ r (Set scroll window) now correctly sets top/bottom to full screen if set to default or erroneous value ESC D (Cursor down) now only scrolls if on the last line ESC M (Cursor up) now only scrolls if on the first line 2. Fixed a bug in backspace. Previously it would be equivalent to cursor-left, space, cursor-left which would erase the character. Now it is equivalent to a single cursor-left which doesn't erase the character. The sender must do that if required. This now matches the behaviour of other terminals. 3. The way wrap-around mode works has been changed to match VT100 and other terminals. Previously, when the cursor is in the last column (column 80), sending a character with wrap-around mode enabled would advance the cursor to the start of the next line and scroll the screen if the printed character was on the bottom line. This makes it impossible to print a character in the bottom right hand corner of the display as the screen will scroll up. Putting a border round the entire screen is also not possible for the same reason in wrap-around mode. Now the cursor is left on the end of the line until the next char is received, then the cursor is advanced 2 characters ending up in column 2 of the next line. This behaviour makes it possible to put a character in the bottom right hand corner as long as the cursor is moved before sending any more characters. It also has the benefit of the cursor remaining on the same line when a complete line is written, at which point a backspace or cursor left will remain on the line instead of being at the start of the next line. This behaviour is required by some applications.