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                                                    

[PREV] [NEXT] [CONTENTS]


Craig Lisowski (clisowsk@mcs.kent.edu)