A user reported that when using Turbo Pascal 3 on his RC2014, scrolling within the source code editor wasn't working.
My way of investigating issues with escape codes is to load up a modified version of PicoTerm which prints every character as a number. I also had the RC2014 connected to a terminal on my Mac, so I could still use TP3.
Investigating these numbers showed that the scroll up / scroll down (and also the scrolls that happen when you cursor to the top or bottom of the window) all rely on two escape codes that PicoTerm didn't support:and
<esc>[1M
These are not listed on the Wikipedia ANSI escape code page, which has been my main reference. PicoTerm didn't support them before today. (And neither did PiGFX as far as I can see.) But they do work within minicom and Teraterm, so it seems that they're reasonably 'standard'.
It appears that these codes mean 'insert a line at the cursor position, scrolling everything down' and 'delete a line at the cursor position, scrolling everything up'. I have assumed that the number is the number of lines to scroll, although I can't be sure about this until I find some documentation.
Picoterm is built with scrolling in mind - each line of text is a structure, and the display buffer is an array of pointers to these structures, so scrolling is no more than switching 30 pointers around, and clearing a line.
So adding support for these escape codes was straightforward. Each is a variation on the scroll that is already used when the cursor reaches the bottom of the screen.
Here is a quick demo, first showing another new feature of the textmode (mono) version of PicoTerm - the ability to switch colour on startup, according to button A, B or C being held on power-up. White, Green or Amber.
Then a quick demo of the scrolling up and down within Turbo Pascal 3's editor.
More information about PicoTerm generally, and downloads, are here.
No comments:
Post a Comment