CHAPTER 7

The screen editor (E:)


The screen editor uses both the keyboard handler and the screen handler to provide interactive control of the computer. In fact, the keyboard handler, the screen handler and the screen editor are contained in a single section of code and are therefore very closely related.

The editor works with one line of characters at a time. The lines it works with are called logical lines and are up to three screen lines long.

The screen editor inputs data from the keyboard and then prints the data on the screen. When the [RETURN] key is pressed, the editor inputs all of the data on the present logical line for processing by CIO.

If characters are typed on the screen, and then the cursor is moved off the line, then back on the line, and new characters are typed, only the characters to the right of the reentry point of the cursor are input when [RETURN] is pressed. However, if the cursor is moved off the line again, then moved back on, all characters on that logical line are input.

If bit 0 of ICAX1 is 1, the editor will act as if the [RETURN] key is being held down. This bit may be changed at any time.

Editor control codes

The screen editor treats certain ATASCII codes as special control codes.

          Screen editor control codes

          KEY       HEX       DEC       FUNCTION

         [RETURN]   $9B       155       carriage return or EOL
         [CLEAR]    $7D       125       Clear screen,put cursor in upper left
         [UP ARROW] $1C        28       Move cursor up one screen line
         [DOWN]     $1D        29       down one line
         [LEFT]     $1E        30       left one character
         [RIGHT]    $1F        31       right one character
         [BACK S]   $7E       126       Back-space operation
         [SET TAB]  $9F       159       sets tab stop at cursor
         [CLEAR
         TAB]       $9E       158       Clear tab stop at cursor
         [TAB]      $7F       127       move to next tab stop
         [SHIFT]
         [INSERT]   $9D       157       Make space for a new line
         [SHIFT]
         [DELETE]   $9C       156       delete the logical line at the cursor
         [CTRL]
         [INSERT]   $FF       255       make room for a character
         [CTRL]
         [DELETE]   $FE       254       delete character at cursor
         [ESCAPE]   $1B       27        causes next non-EOL code to be 
            displayed as an ATASCII character, even if it is an editor
            control code
         [CTRL][1]                      screen print start/stop
         [CTRL]     $FD


Go to chapter 6
Go to chapter 8