1 New_Features                                

   This version of VECCE includes some new commands and features and has
corrected several known bugs. It has been fully integrated with the VAX/VMS
and EMAS/370 operating systems so that it follows all the usual command
calling syntax for the host system.


   On VAX/VMS the two parameters are the input and output files, and the
secondary input, pre definition files and all options are specified as
qualifiers. eg
    $ VECCE File1.txt File2.txt /SEC=File3.txt /PRE=p.txt /MAXWIN=10

   All of the options are parameters on EMAS/370 and separated by commas.
The keyword mechanism is used to specify options (so that you don't have
to type 16 commas to set MAXWIN. eg
    Command: VECCE File1,File2,SEC=File3,PRE=p,MAXWIN=10

   The APM version is as before.

2 Default_PRE_file                            

   The VMS version of VECCE translates the logical name ECCE_PRE to find a
default PREDEF file. You can set this up in your LOGIN.COM file.

   On EMAS/370 VECCE looks for the partitioned file VDEFS in your top group
with a member EDnn where nn is the EMAS terminaltype number. If it finds one,
that is used as the PREDEF file. Failing that the file ERCLIB:VDEFS_EDnn is
used.

2 Insert_Mode                                 

   There is now an INSERT version of DATA-ENTRY mode available. It is
similar to the usual REPLACE mode except that all characters typed are
inserted into the file at the file pointer. It can be entered by the new
command '~' which should be assigned to a convenient control key. (On the
VAX version the qualifier /INSERT will set insert mode at the beginning of
the edit.) 

   When in INSERT mode the DEL key can not only delete text you have just
typed, but also text which was in the file previously. The effect is
exactly equivalent to a control key defined to invoke the E- (erase back)
command.

   It is also useful to define the RETURN key to be B (break) when typing
in text, so that pressing RETURN at the end of a line automatically creates
a new line for further input.

   To use INSERT mode it is important that you set your terminal type
correctly. VECCE attempts to use the terminal's insert character mode if it
has one. As not all DEC or VT100 - like terminals have this mode a wrong
terminal type could prevent the INSERT mode from working.

2 Security_Against_System_Crashes             

   There is a new command %B which saves the current state of the edit in
the output file (or you can nominate a new file with %B newfile). Notice
that all deleted text is permanently lost on execution of %B and can no
longer be recovered with I- or G-. It is recommended that you use this
command periodically during a long edit to avoid losing the whole edit in
case of a system crash. (In case of a communications failure the EMAS
version of VECCE DOES save the edit in a file called VECCE#SAVE.)

  Another safety measure is to create a log of the editing session. This is
done by calling vecce with the command qualifier (parameter on EMAS,
 /LOG=file or just /LOG  (file defaults to VECCE.LOG). A complete record of
the editing commands you issued is kept in the file. In the event of a
crash, you can re-create the edit up to the point of the failure by editing
the original file and specifying a PRE file which is the LOG file. (Or you
can execute the LOG file with the %G command.) A log would also be useful
if you manage to corrupt your file (for example with a complicated
programmed command gone wrong!). Control sequences are represented in the
log by printing equivalents.

   One change necessitated by this mechanism is that it is now possible to
do 'nested' %Gs, ie a file containing a %G command can be executed. Nesting
up to a depth of about 15 is allowed.   

2 Tab_Handling
   There is now available a mode in which tab characters in the file can be
expanded into the appropriate number of spaces. This may be set on entry to
the editor with the /TAB_EXPAND qualifier (VAX/VMS), the ,TAB Expand=YES
parameter (EMAS) or by the %E command at any time during an edit. Tab
positions may be set using the new command %T=t1,t2,t3, . . . and the
current tabs determined with %T ?.
   
   To enter tabs into the file, define a control key (the TAB key is the
obvious choice) to be a TEXT MACRO with the value of a tab character.
The command %K<tab>=<tab> will achieve this. The section of the help 
file dealing with macros explains text macros more fully. The TAB key
may then be used in DATA ENTRY mode to enter a tab, or as the search
text for the find and verify commands.

2 Looking_at_long_lines                       

   The new command %R40 will Right-shift the display by 40 columns and %R
returns to the default. See HELP VECCE for a full description.

2 Calling_system_commands                     

   It is now possible to execute a host operating system command from
within VECCE by entering '!command' on the command line.

2 New_Output_File
   
   %C newname   will write the edit to the file NEWNAME rather than the
                one specified on entry to VECCE.

2 Showing

   It is now possible to issue alteration commands while 'show'ing
 a file.  They have the usual effect on the editing buffer, but do
 not affect the file being shown.

2 Saving_Default_parameters

   VECCE has many parameters.   On the EMAS 370 version it is possible
 to save your preferred values of these parameters in your profile
 information.  Simply issue the VECCE command with the values you wish
 to save and with the parameter SAVE=YES.  Alternatively you can request
 to be prompted for parameters using VECCE ?, and reply Y to the
 'Save Options' parameter.

2 Bugs_corrected                              

   The following bugs have been corrected.  Any more bugs should be
reported to G.Rule at ED.

(1)   There was a well-known bug which caused VECCE to crash when
   attempting to repeat the last command more than once (ie a number on the
   command line). 
(2)   A very long standing problem caused VECCE to crash when attempting to
   overwrite a line with a shorter one containing a newline.
(3)   If you attempted to use %K<key>" when there was no previous command
   for " to find, the VAX version crashed. 
(4)   V/text/ when the file pointer was past the end of the line tried to
   print the last found text, and if there was none, crashed.
(5)   The %E command didn't work on one of the VAX versions.
(6)   Attempting a %P to a member of a partitioned file, or to another
   user's file crashed the editor in the EMAS version. An error is now
   reported tidily.
(7)   The manual stated that if text surrounding a marker set by the
   '^' command was deleted the marker was also removed.  The code did
   not live up to the specification and as a result it was possible
   to jump to a deleted marker.  The editor crashed soon afterwards.
   The marker is always deleted now.
(8)   The screen was not correctly re-drawn after %H (or ! in intermediate 
   versions) if a secondary input file was in use. Only the current 
   window was refreshed
(9)   The VAX/VMS version did not correctly drive Hazeltine Esprit I
   terminals when using the system database.  This is due to a design
   flaw which makes it impossible to specify correctly the cursor
   addressing to VMS.  This was corrected in later models of this
   terminal, but the current version of VECCE uses it's internal 
   database to drive ESPRIT terminals.
   
2 Terminal_types                              

   The VAX version of VECCE can now interrogate the VMS operating system to
find out how to drive the terminal. For this to work your terminal must be
set using the SET TERMINAL/DEVICE= command. If this does not work, and the
terminal has an EMAS terminaltype number, you may be able to use vecce with
 /TTYPE=emastype. However, if the system does not recognise your terminal
the preferred method is to write (or to get someone else to write!) a
TERMTABLE.TXT file for it.

   How to write and compile a new entry is described in the VAX/VMS run
time library manual. Once you have made a TERMTABLE.EXE file with the
terminal definition for 'MYTERM', define the logical name TERM$TABLOC to
point to the directory where it is found. Then $ SET TERMINAL/DEVICE=MYTERM
will work and so will VECCE.

3 Writing_a_TERMTABLE_entry_for_VECCE         

   This section assumes that you have read the section on writing a
TERMTABLE entry in the VAX/VMS RTL manual in the section dealing with the
SMG$ routines.
 
   To work at all VECCE requires (in addition to the name) direct cursor
addressing, defined by the capability SET CURSOR ABS. In this case the ROWS
and COLUMNS attributes must also be set to the dimensions of the terminal.
At this level the performance is poor, but will be enhanced by the
ERASE_TO_END_DISPLAY and ERASE_TO_END_LINE capabilities.
 
   VECCE is much more effective when it can scroll parts of the screen. The
preferred method of doing this is in a DEC VT100 like manner which requires
that SET_SCROLL_REGION, SCROLL_FORWARD and SCROLL_REVERSE are defined.
Alternatively scrolling may be achieved via the INSERT_LINE and DELETE_LINE
commands. These functions may require padding which can be achieved by
including '^@'s in the text string.
 
   The 'hilight' mode of displaying the file pointer is preferable to the
'mark' mode (see manual) which requires some stand-out  attribute to be
set. Vecce looks for BEGIN_REVERSE, BEGIN_BOLD, BEGIN_UNDERLINE and
BEGIN_BLINK in that order and uses BEGIN_NORMAL_RENDITION to switch off the
attribute.
 
   INSERT mode will work much better if VECCE can use the terminal's own
insert mode, so the characteristics BEGIN_INSERT_MODE and END_INSERT_MODE
are examined. DELETE_CHARACTER is also necessary before VECCE can do this.

   The attributes SET_APPLICATION_KEYPAD and SET_NUMERIC_KEYPAD are used to
set the keypad of your terminal in and out of special mode. If padding on
newline is required, this is provided via SMG_LF_FILL and the pad
character (if non-zero) is set by SMG_PAD_CHAR. Finally the KEY_*_ARROW
attributes are interrogated in order to set up the arrow keys.
