You must know: The number of rows and columns displayed on your terminal How to position the cursor to home (the upper left corner of the screen) and clear the entire screen How to move the cursor to a particular row and column position, given the current row and column position How to clear the portion of the current line under and to the right of the cursor (clear-to-end-of-line); not required, but desirable from a performance standpoint Whether your terminal "wraps around" to the next line when a character is placed in the last column of a line How to insert a blank line and slide the line under the cursor and subsequent lines down (not required but desirable) How to delete the line under the cursor (not required, but desirable) To add a new terminal type: Make sure there is an entry in =extra=/ttypes for the terminal type being added. The Subsystem Manager's Guide describes the form of entries in =extra=/ttypes. Add a macro definition for your terminal at the end of the "terminal types" section of the file '=src=/spc/se.u/se_def.i' Modify '=src=/spc/se.u/source/setscreen.r' to include the number of rows and columns displayed on your terminal Add the name and type of your terminal to the string_table in '=src=/spc/se.u/source/decode_mnemonic.r'. (Note that this table is sorted alphabetically by terminal name. Also note that the name you place in the string_table should be the same as the name used in =extra=/ttypes.) Modify the usage message in '=src=/spc/se.u/source/usage.r' to include the new terminal type Add code to '=src=/spc/se.u/source/position_cursor.r' to move the cursor to a given row and column on the screen (normally done by adding a subroutine call to a new subroutine created especially for the new terminal type) Add code to '=src=/spc/se.u/source/clear_to_eol.r' to handle the clear-to-end-of-line function; this can be simulated if your terminal does not have hardware assistance for clear-eol. If your terminal does not wrap around to the next line when you place a character in the last column of a line, you must add code to '=src=/spc/se.u/source/send.r' Add code to '=src=/spc/se.u/source/clrscreen.r' to home the cursor and clear the screen. Add code to '=src=/spc/se.u/source/hwinsdel.r' to return YES if your terminal has hardware line insert/delete Add code to '=src=/spc/se.u/source/inslines.r' to output the line insert sequence for your terminal if your terminal has this feature. Be sure to set 'delay' to the number of milliseconds your terminal must have to perform a line insertion. Add code to '=src=/spc/se.u/source/dellines.r' to output the line delete sequence for your terminal if it has this feature. Be sure to set 'delay' to the number of milliseconds your terminal must have to perform a line deletion. Note that if you add any subprograms to 'se', you should include their names in the linkage statement in file 'se_link.i'. It is also necessary to put an 'include' statement for each new subprogram into the appropriate 'se_mod?.r' file (where ? is 1, 2, 3, 4, 5, 6, 7 or 8). Module 7 seems to be a popular place to add cursor positioning routines. Attach to the directory '=src=/spc/se.u' and enter the commands echo 4000 >segment build to build a test version of the editor in the file 'se' (in the current directory). Once you have verified that your changes work, a production version of the editor may be built by entering the following commands (while still attached to the directory '=src=/spc/se.u'): echo 2031 >segment sep se -link The shared portion of the editor will be stored in the file 'se2031' and the executable part in the file 'se'. To install the new version, make sure that the current version is not in use and then give the following commands: cp se =bin= chat =bin=/se cp se2031 =system= Then, give the following commands from the system console: opr 1 share system>se2031 2031 700 opr 0 If you feel adventurous, you can create a file for the new terminal in =vth= also.