HELP NEWS.4
1982
28 May
    The variables VEDNOTABS and VEDLEFTMARGIN are now set separately for
    each file. When you start a file, they get your current values (unless
    altered by vedinitfile(). Changing them for one file will not
    alter them for another.

    PACKWORD, UNPACKWORD, PACKNUM, UNPACKNUM  are all to be withdrawn and
    replaced by PACKITEM and UNPACKITEM. They are temporarily defined in
    terms of these.

    VECTOROF has been renamed as ARRAYVECTOR

    VED ENTER LCW
        Like UCW but transforms to lower case.

    UPPERTOLOWER(X) LOWERTOUPPER(X)
    These procedures when given a character convert it from one case
    to the other. Used in library programs like LCW. NB.
27 MAY
    VED ENTER UCW
        Create upper case word. The word to the right of the cursor is
    transformed to upper case. If a number follows 'ucw' then that number of
    words will be converted. (The name UCW is temporary and may change).

    A new looping construct has been added which subsumes all others
        CYCLE .. ENDCYCLE
        see help cycle
    VED ENTER IC
        Can now be used for conveniently inserting control characters.
    See HELP IC.

26 May
    VED and POP11 startup should be faster now.

    NEWARRAY, NEWANYARRAY, BOUNDLIST and related procedures are now in the
    system.

    Window switching altered so that if you do ESC W then call VED on another
    file, the old file is left in the upper or lower half screen depending
    where the cursor was.

    POP11 libraries re-organised.
    Saved images in [POP.LIB]*.psv
    Main autoload files in [POP.LIB.AUTO]*.P
    VED autoloadable files in [POP.LIB.VED]*.P
    Turtle procedures moved to [POP.LIB.TURTLE]*.P
    Database procedures moved to [POP.LIB.DATABASE]*.P
    Altered POPLIBLIST, POPUSESLIST and SHOWLIB accordingly.

    System versions of INIT.P and VEDINIT.P moved to [POP.POP]

    Altered ENTER DK and ENTER DM so that they ask if you want the change to
    be permanent. If not, they don't put it in your VEDINIT.P, but use a
    temporary file which is not written.

    It is possible to insert control characters into the buffer, e.g. using
    VEDCHARINSERT. These now appear on the screen as a special mark. The mark
    is defined by VEDSCREENCONTROLMARK. The default value produces a small
    'graphic' circle on VISUAL 200 VDUS.
    To find out what the character actually is, put the cursor on it, then
    ENTER CC (Current Character).

    Improved procedures for inserting control characters will be added.

21 MAY

    BUG in TRUE = FALSE fixed!

    VEDLINEDELETE changed so that the line (unless empty) is stored in
        VVEDLINEDUMP

    VEDWORDLEFTDELETE, VEDWORDRIGHTDELETE, VEDCLEARHEAD,  VEDCLEARTAIL
        altered so that the chunk of  text removed is stored in
        VVEDWORDDUMP

    Provisionally  ENTER YANKL and ENTER YANKW added  to library to
        pull VVEDLINEDUMP or VVEDWORDDUMP respectively back into the
        buffer.

    ENTER DIR has been enormously speeded up.

    Dangerous option in ENTER DEL removed, i.e. if no asterisk at
    beginning of line then mark all files for deleting!

    Bug in VEDLINEINSERT and VEDLINEDLETE removed. They now work in static
    mode.

19 MAY
    VED altered so that underscore is converted to 9. So showlib will now
    work with e.g. SHOWLIB VED_CCP
    Similarly, users can say VED VED_FOO.P

    Also HELP files can be provided for identifiers with underscores.

    REF KEYS is beginning to provide documentation on KEYS
18 MAy
    removed VED_GET (= ved_cut(); then ved_splice());

    POP11 version 4.1 with CONSKEY working. Documentation will emerge.
17 May
    VED ENTER PRINT
        This writes the file, then prints it. It takes an optional integer
    argument specifying the number of parameters.

    STRNUMBER this now returns FALSE if applied to an empty string.

14 May
    HELP SYSWORDS is now more or less complete. It will need revision
    for the next major update of POP11.
13 May
    By analogy with NL and SP, the library procedure TABS takes an integer
    and prints that number of tabs.

    Altered CONSPROCTO so that it works on traced procedures, like
    EXITTO and EXITFROM.

    LIB SETS provides set manipulating procedures. See HELP SETS.

12 May
    Bug in VED SEARCH fixed.

    VED status line improved when there's no message

    SYSSLEEP added to library. See HELP SYSSLEEP

    SYSWORDS updated.
11 May
    The POP11 DIR command has been speeded up. Also it can cope with null
    parameters.
    A MAIL macro has been added to the library. This is faster than
        $MAIL
    in POP11
7th May
    VEDJUMPTO let you jump beyond the end of the buffer, causing problems.
    It now has been altered to call VEDBUFFEREXTEND in that case.
6th May
    New library procedure EDIT takes a file name (a string) and calls VED with
    the appropriate file. It can be used whether you are in the editor or
    not.

    Bug in PROLOG fixed.
    VED ENTER CMR is like ENTER LMR but output goes to a different file.
        See HELP CMR
    VED ENTER CCP is like ENTER LCP, but uses CMR, not LMR.

    Various minor bugs fixed. E.g. in ENTER QVED, and lib RECORD.

4th May
    POP11 VERSION 3.1 running.
    The 'innards' of the system have been redesigned and various things are
    faster and more compact. Most changes should be transparent.

    Part of the PROLOG system is now built into POP11 for efficiency.
    The rest is defined in a collection of library files.
    See HELP PROLOG

    VED's character tables are initially shared, though if they are altered
    using VEDSETKEY, they are copied. Attempts to alter vednormaltable,
    vedescapetable, or vedquerytable directly will cause access violation.

    The procedure ISINHEAP returns true if its argument is in the heap, and
    can therefore be altered. Initially ISINHEAP(VEDNORMALTABLE) is false.

    The procedure SYSSORT has been redefined to use a MERGE sort, and is much
    faster except on very short lists. SORT uses this new version on lists of
    words or numbers.
    The old version of SYSSORT is now INSERTSORT, and may be used for sorting
    very short lists, or as a tutorial program.

    Bug in DATALENGTH fixed -- it now works on closures.

    MAPDIC takes a procedure, applies it to every word in the dictionary, and
    returns a list of all the results.

    ISARRAY defined in library

30 April
    EXITTO and EXITFROM have been redefined so that they first chain out
    of their caller, then search up control stack for specified procedure.

    VEDSETKEY now provided to facilitate changing VED's character tables. See
    HELP VEDSETKEY.

    VED ENTER DK
    Can be used to change VED keys.

    Bug in VED_TIDY fixed (if marked range begins with an opener, forwarder
    closer, or backer, it now works properly.)

    LIB VEDRETURN is an experimental program, which alters the effect of
    pressing RETURN in a POP11 file, so that the line is then properly
    indented.

26 April
    ENTER FDIR and ENTER DIR have been renamed.
        FDIR now stands for FULL DIR. I.e. patterns can be given. It calls
        the VMS DIRECTORY command and creates a temporary file.
    ENTER DIR just reads in information from the directory. It cannot accept
        patterns. If given no argument it reads whole directory.

25th April
    STRNUMBER(STRING)
        Converts strings to integers. Has been generalised so that if string
        starts with '-' then the result is a negative number.
        e.g. strnumber('99') = 99,  strnumber('-99') = -99.

    VED_TIDY, and the procedures which use it, e.g. ENTER JCP, etc, now
    assume that the indentation at the beginning of the marked range is
    correct. So you can indent part of a procedure without it being shifted
    all the way to the left.

23 April
    ENTER VED PURGE file
    Uses ved_fdir to read in directory much faster than ved_dir, but with less
    information. Doesn't create new disk file. So can be used after quota
    exceeded. ved_purge gives you instructions.
22 April
    The file HELP VEDWORDS was getting too long. So the VED ENTER commands
    have been removed, and put into HELP VEDCOMMS
    HELP VEDSEARCH explains searching and substitution in VED.

    VED ENTER DCL
        Send each line in the current file to DCL as a command.
    VED ENTER DIR files
        Make a directory listing of the files in VEDDIR.TMP then VED it.
    VED ENTER DEL
        If current file has file names, one per line, prepare a set of
        DELETE commands, to delete the files. Then use ENTER DCL.
21 April
    VED ENTER DM
        Can now be used for defining VED macros. See HELP VEDMACROS

20 April
    HELP VEDKEYS added

    VEDINPUT(character or string)
        This new procedure can be used to insert a character or string of
        characters at the front of ved_char_in_stream, so that the
        characters are thereafter treated as if typed in by the user.
19 April
    VEDJUMPTO(line,column)
        This library procedure can be used to move the editor cursor to
        the specified line and column.

16 April
    VED ENTER XUP
    This scrolls the file in the other window UP a windowful.
    VED ENTER XDN scrolls the file DOWN a windowful. The latter can also
    be done with <ESC> LF

    The handling of the status line in VED is to be improved so as to reduce
    garbage collection and page turns. VEDSETSTATUS is redefined so that it
    no longer makes use of VEDSTATUSTAIL. This means that 'tailoring' VED
    for different terminals no longer requires VEDSTATUSTAIL to be
    redefined. Most users will not notice any difference.

    Bug in STATIC mode in VED fixed. Typing a space now works.
    Bug in ENTER S in VED now fixed. Pressing DEL now works.

    If POPLOGFILE is a character consumer then all the characters read
    or printed by CHARIN, CHAROUT, or CHARERR are put into the file.
    LIB RECORD has been re-written (and simplified), accordingly.

    The processing of characters by VED is being changed. When a character
    is read in from the terminal its integer code is used to access the
    vector vednormaltable. If the entry is a procedure it is run. If it is
    another vector then another character is read in and used to access that.
    This should make it easier to adapt ved to different terminals.

14 April
    VEDATEND() and VEDATSTART()
    These two procedures return TRUE or FALSE depending on whether the
    current position is at the end, or at the beginning of the file.
    VEDATEND() is true anywhere after the last line of text.

7 April
    SYNONYM introduced, for defining synonyms. See HELP SYNONYM

    BUG in VED ENTER S and VED ENTER GS fixed. It previously did not
    deal properly with repeated occurrences of the search string.

1 April
    VED ENTER PR <pop11 code>
        will obey the code (like VED ENTER :), but if possible will
        print any results on the status line, not down below.

    HELP VEDWORDS   Is at last making progress

    VED ENTER FILL  Justify marked range, as if in a text file, whether
    it is or not.

    A new DCL command SRT for sorting a file into alphabetical order is
    defined in POPLOG.COM.
        $SRT FILE.IN FILE.OUT

    A new syntax word CONSTANT can be used for declaring identifiers with the
    same format as VARS. An identifier declared as a CONSTANT can be assigned
    to exactly once. There after any procedures using it will not go via the
    variable, but will use the constant value.

    VED_LMR (ctrl-D) altered so that it deals properly with colons at
    the beginning of a line. They are ignored only if followed by a space.

    ENTER LMR, or CTRL-D
    Altered so tht if there is no marked range it behaves exactly as if the
    current line had been marked.

    MACRO SWITCH added to the library, until SWITCH is built into the system.

1982
31 March
    ISSUBSTRING extended so that it will cope with words too.

30 March
    VED has been altered so that instead of producing an error if the file
    name is too long, it will always truncate, even if there is an extension
    specified (which it used not to do). It will still produce an error
    if the extension is too long.

    Altered vedwritefiles so that it no longer sets vedneedscompiling true.

29 March
    The updaters for APPDATA and APPLIST have been withdrawn

    If POPCONSTRUCT is true, then lists and vectors not containing '%' or
    '^' are created at compile time, not at run time. See help POPCONSTRUCT

27 March
    VEDTEXTLEFT VEDTEXTRIGHT move cursor to left of text and right of text
    VEDSCREENLEFT VEDSCREENRIGHT move cursore the left and right of screen

    VEDPUTCHAR(x) puts x (character or string) onto the input character
    stream for VEDINASCII

    ALPHABEFORE is now in the system and much faster. See HELP ALPHABEFORE
26 March
    FAST_CONT added
    APPDATA and EXPLODE speeded up.

    APPLIST and APPDATA have been given updaters. This is for an experimental
    period. The updaters take an item a structure and a procedure with an
    updater. The updater of the procedure is applied to the item and every
    element of the structure. E.g.
        3 -> applist([a b c d], valof);
        3 -> appdata({a b c d}, valof);

25 March
    The SWITCHON  macro has been extended so that ANDNOTCASE and ORNOTCASE
    are permitted.

    ENTER C fixed so that if a file has not been changed sinced it was
    last compiled it will not be compiled again.

    POPEXECUTE is true except during compilation of a procedure or top-level
    loop, conditional, etc.

    POPCLOSEBRACKET holds the expected closing bracket during compilation
    of e.g. a conditional or loop. It will be a word, a list of possible
    words, or TERMIN.

24 March
    New system installed. Various bug fixes and minor improvements.

    TIMEDIFF is a library procedure which returns CPU time in seconds since
    it was last used.

    VED_CHAR_IN_STREAM
    Is a new variable used by VEDINASCII. If it is a list then the contents
    of the list are returned by successive calls of VEDINASCII. When the list
    is empty, or if it isn't a list, then characters are read in from the
    terminal.

23 March Or thereabouts
    New variables
        POPLIBLIBDIR = '[POP.LIB.LIB]'
        VEDHELPDIRECTORY
        VEDTEACHDIRECTORY
        VEDREFDIRECTORY
        VEDDOCDIRECTORY
        POPUSESLIST
    USES and LIB are redefined so that they use POPUSESLIST. This defaults to
    be
        [^POPLIBDIR ^POPLIBLIBDIR].
    The user can redefine this in INIT.P.

    DCL Command $TEACH now added. Similarly POPHELP and REF.

    INTERRUPT made local to MISHAP (where it is temporarily set to setpop
    to avoid infinite recursion.

    VEDOUTASCII generatlised to accept strings as well as characters.

    Various things speeded up.

    VEDPROCESSCHAR introduced, to make it easier to tailor ved to different
    systems. This is called in VEDPROCESS for every character read in.

16 March 1982
    The DCL VED command has been extended so that you can now type
        $VED HELP FOO
        $VED TEACH FOO
        $VED REF FOO
    to go straight into VED and look at a system documentation file.

13th March 1982
    Bug in mishap which sometimes led to repeated errors, cured.
    Changed SYSOBEYLIST to ensure that all files are closed.
11th March
    New facilities provided for fast array access. NEWANYARRAY changed to
    use the new facilities.
8 March
    Changes to Autoloading. (Thanks to Tom Khabaza for help with this.)
    There is a new variable POPLIBLIST which is set initially to include the
    POP11 library directory. Users can (in their init.p files) add other
    directories, before or after the POP11 directory. The autoloading
    mechanism, including that used by VED, will look for a file defining
    the required word in the directories in POPLIBLIST, in the order in which
    they are in POPLIBLIST.
    The mechanism uses a new procedure SYSLIBCOMPILE which is given a string
    adds '.p' and searches the directories listed in POPLIBLIST for a file
    of the given name. If the file is found, it is compiled, and
    SYSLIBCOMPILE returns the directory. If the file is not found, false
    is returned.
    Any underscores in the file name are replaced by the character '9', owing
    to restrictions in VMS file name formats. Thus names with underscores
    are now autoloadable if the appropriate files are created containing 9s.

    The VXXX prefix for VED autoloadable files will be withdrawn accordingly.

    At present the default POPLIBLIST includes '[.poplib]', so that files
    in a subdirectory of the current directory can be autoloaded. However,
    this will be altered in a week or so, so that POPLIBLIST starts only
    with the pop library directory.

    VED ENTER PVED <file>
    Will read in the file in protected (i.e. non-writeable) mode.

5 March
    VEDSETUPDONE is a new variable which is not set true until after VED
    initialisation is complete. This means that if the first call of VED is
    interrupted before VED has created all its tables, etc. the next call
    of VED will still work. (Same applies to calls of TEACH, etc.)
4 March
    VED ENTER TABS
        Switches conversion of leading spaces to tabs on or off.

     VED ENTER INDENT <num>
        Changes VEDINDENTSTEP to the number

    ** This operation raises its first argument to the power given by
    the second argument, which should be a positive integer. e.g.
        2 ** 3 is 8
        NB The operation ** may be replaced by ^ later

    VED ENTER XDN (exchange and down-screen). Experimental new command
        causes the OTHER window to scroll down. It can also be invoked by
        <esc>-LF (line feed)

    = altered to work on exapanded dynamic lists.

    SYSPR altered to call PR on elements of lists and vectors.

    Bug in MATCHES cured, so that vectors which are = will match.

3 MARCH
    New 'fast procedures' (see REF FASTPROCS)
    FAST_INTEGER_ADD, FAST_INTEGER_SUBTRACT, FAST_INTEGER_MULTIPLY
    FAST_INTEGER_DIVIDE,FAST_INTEGER_GREATERTHAN, FAST_INTEGER_LESSTHAN

    NEWANYARRAY speeded up by a huge factor

    VED fixed to accept colons in file specification e.g. 'VAX3::...'

26 FEB
    Fixed       ENTER S/FOO@n/STRING2
        I.e. substitution at end of line works now.
    Altered DCL VED command so that if no string is given, it just goes
    into POP11

    Added DCL command $V100 to run VT100 version of VED.

21 FEB
    ISBOOLEAN added - recognises TRUE and FALSE
    ISNUMBER added - recognises integers decimals and doubledecimals.
    ISCOMPOUND added _ recognises things on heap
    Dictionary modified to be slightly faster, and more compact for larger
        programs
    DIC_DISTRIB added. Prints out information about distribution of
    dictionary entries.
    SYSCANCEL added. Removes a word from the dictionary
    LIBRARY MACRO CANCEL defined in terms of SYSCANCEL

    REMOVED BUG in ENTER X when errors occur.

19 FEB
    COUNTWORDS
        This is a library procedure of no arguments which returns the
        number of words in the dictionary
    VED ENTER QPOP
        This quits the current file and goes back to pop11

    New macro REF added, to work like VED HELP and TEACH.
    In preparation for separating HELP and TEACH files, the macros and VED
    commands for REF HELP and TEACH have been given search lists, as follows.
    HELP    [POP.HELP] [POP.TEACH] [POP.REF]
    TEACH   [POP.TEACH] [POP.HELP] [POP.REF]
    REF     [POP.REF] [POP.HELP] [POP.TEACH]

    BUG in [...] fixed. "cat" -> word; [^^cat 99] should now produce an
    error.

17 FEB
    VEDALWAYSASK. If you make this variable true (e.g. in your file VEDINIT.P)
    then unwritten files will not be written automatically when you leave
    POP11. Instead it will ask you.

    The 'load marked range' feature in VED normally causes error messages to
    be inserted into the file. If you type ENTER ERRS, then this is switched
    off, so that error messages are printed at the bottom of the screen
    instead. If you type ENTER ERRS again, then it set back to the normal
    state. You can switch between the two states as often as you like.
    Whether error messges go into the file depends on whether the variable
    VEDLMR_ERRS_IN_FILE is TRUE.


16 FEB
    Bug in MATCHES fixed.

    LIST NEEDED error message replaced with NON-EMPTY LIST NEEDED.

    There is a new library procedure TYPE, for printing files on the
terminal. See HELP TYPE;

    There are several new fast procedures which do no checking of types or
bounds:
    FAST_SUBSCRS
    FAST_SUBSCRV
    FAST_FRONT
    FAST_BACK
    FAST_DESTPAIR
The updaters also do no checking. WARNING: you use these at your own risk.

12 FEB
    VED_LMR and CTRL-D altered so that if there is no marked range, the line
    with the cursor is used instead.
11 FEB
    There is now a procedure VEDREADLINE for use with 'load marked range'
    commands. Inside LMR, READLINE is altered to be VEDREADLINE.

    [POP.LIB]VEDINIT.P defines vedinitfile so that if the file contains
        '.COM' then VEDBREAK is set false.

10 FEB
    VED GSR will do a global substitute in a marked range.

    <esc>p in VED will exchange the current position with the top of the
    position stack. <esc>+ and <esc>- now do position-push and position-pop.

    Altered behaviour with VEDDUMBVDU true so as to do less refreshing when a
    line is inserted.

    INSERTLINEABOVE altered so as to ensure that the current line remains on
    the screen, even if its the last line. Similarly, pressing RETURN will
    now always ensure that the line immediately below the current line
    remains on the screen, unless it was already off the screen.

    To enable users to alter VED variables, like VEDBREAK, etc. on the basis
    of the file name, VED will now call the user definable procedure
    VEDINITFILE whenever it starts editing a new file. Users will probably
    have to use ISSUBSTRING with this. The name of the current file is
    VEDCURRENT

1982
28 JAN
    Matcher speeded up.
    ENTER LIB will now load the library file.
    Bug in $ DCL commands typed to POP11 fixed.
    Altered POPVAL so that poplastchar is false within it.

26 JAN
    When moving between POP11 and VED, the keypad is not reset, facilitating
    type-ahead to VED. The keypad is set on leaving pop11.
    ENTER changed so that ALL leading spaces in the argument are trimmed off.
        Removes error due to typing two spaces after VED, or HELP, etc.
    ENTER LIB altered to be ENTER SHOWLIB, to look at library files.
        first looks in [pop.lib] then [pop.lib.lib]
    ENTER X changed so that SHOWLIBed files in the editor are loaded.

    Jon cunningham's EVANS program put into the library, and a saved image
    created.
    ENTER W altered, so that even if you are editing a library file, it will
    still write all your files. I.e. it doesn't complain.

    VED extended so that if you give the command ENTER FOO, then if you have
    defined VXXXFOO as a procedure, or such a procedure is defined in
    [pop.lib]VXXXFOO.P, then the appropriate procedure will be run.

    Altered POP11 so that it always translates poparglist entries to lower
    case.
    The pop11 library is assumed to be on the disk whose logical name is
    USE$POP. This makes the system less dependent on machine configuration.

    The lib command altered to look in [pop.lib.lib]. Files to be loaded
    explicitly with a LIB command can be put in there, and will not be
    autoloaded.

    COMPILE altered to set POPLASTCHAR not = `\n` initially. This simplifies
    use of macros with POPVAL. A consequence is that a '$' dcl command cannot
    be the first command on running pop11. Not right yet!

21 JAN
    ENTER SEND changed so that it always sends the whole file, not just the
    marked range.
    Improved status line for TEACH and HELP files.
    VEDCURRENTCHAR provided, with an updater

    After calling VED it is now safe to use the keypad as soon as the 'bell'
    sound has been heard, without waiting for text to appear.
    If <ESC> X is used to swap windows, the new window will be the default
    for subsequent calls of VED or TEACH, as appropriate. (The mechanism is
    still not general enough.

19  JAN
    The Quit message if the file has changed is altered to be like DED
    ENTER RQ is renamed as RQQ (really really quit)

15  JAN
    Various bugs fixed, and the behaviour of the command line improved

13  JAN
    There is a new command TEACH, or VED ENTER TEACH, which takes the place
    of the old HELP or VED ENTER HELP command. The latter will be reserved
    for relatively short reference files, and TEACH for the longer expository
    files.

    There is a new command DCL, which lets you talk to DCL, giving several
    DCL commands terminated with CTRL-Z.

    The command VED ENTER JCP assumes the cursor is in the middle of a
    procedure definition, and it tidies it. The command VED ENTER JP
    does the same if you are using a '.P' file, but if it is not a '.P'
    file it just tidies the current paragraph.

7   JAN
    Changes to POP11
    LOAD now alters the default file name for VED. I.e. after LOAD, you
        can type VED without a name to edit the same file.
    ENTER-X as before: write and load all files, as necessary, and return to
        POP11. If there's a mishap, you will remain in VED.
    ENTER-X1 will do the same, only with the current file. It will always
        load the current file (if '.p') even if unchanged.
    ENTER-L will write and load all files, and any printout will occur
        at bottom of screen. But you will remain in VED
    ENTER-L1 will write and load only the current file.
    ENTER-C  Will compile all files, without writing and take you to POP11
    ENTER-C1 will compile only the current file, without writing, and take
        you to POP11.
    ENTER-POP takes you back to POP without doing anything else.
    In the new version of POP11 the command ENTER W can be followed by an
    optional file name. In that case only the current file will be written,
    and it will be written with the new name.

6   JAN
    A new command QPRINT has been provided for Quick printing on the small
    printer in E202

5   JAN
    VED ENTER-NAMES is to be replaced by VED ENTER-FILES. This command will
    print out information in a more informative fashion. However, for now
    the command ENTER-FILES can be used.

    There is a new experimental version of POP11 running which allows two
    windows to be active simultaneously.
    Most commands work as before, but ESC-X allows you to switch between the
    upper and the lower window, if you have two or more files active. There
    may still be some bugs for the next few days. Comments to AARONS via
    mail.

4  JAN
    VED ENTER-UNDO has been misinterpreted. It has therefore been renamed
        ENTER-LASTVERSION
    It deletes the latest version of the current file from the disk, abandons
    the current edit, and starts editing the previous version (i.e. not the
    last one written but the one before that).

22 DEC 1981
    The CD macro has been enhanced so that if you use it to change to a new
    directory, then not only VED but also '$' commands will use that
    directory. It uses the new system procedure SYSDIRECTORY which has an
    updater, so can be used to change directories.
    The new CD command can be terminated either by semi-colon or newline.
    E.G.
        CD .MYLIB
    If you don't give square brackets they will be supplied.

    The procedure RDSTRINGTO is redefined so that it can take a list of items
    instead of a single item, e.g.
        RDSTRINGTO([; ^termin ^newline]) -> STRING;

    CTRL-C is changed so that you do not leave VED. You will have to refresh
    the screen, however, since the monitors echoes '^C'. To go to POP, type
        ENTER POP

    A new search command
        ENTER "FOO
    Will search for a piece of text matching FOO which starts and ends on a
    'word-boundary' as defined by POP11 syntax. Thus it will not find 'FOO'
    in FOOT or AFOO or B3FOO. But it will find FOO in +3FOO (FOO) [FOO] etc.
    Similarly, the substitute command, if given '"' as string delimiter,
    will only replace items which start and end on POP11 text item
    boundaries. This works for ENTER S and ENTER GS e.g.
        ENTER S"FOO"FOOT"
    This means you can do 'safer' global substitutions.

21 DEC
    STRNUMBER which converts a string to a number, is now changed so that if
    if finds a non-digit character it returns FALSE rather than producing an
    error
    VED ENTER REF <file>
        will get the file from the reference directory. It will not be
        writeable. (I.e. REF works like help)

    VED ENTER : (i.e. ENTER COLON then POP11 command)
        POP11 commands which cause no printing to occur, will no longer
        require the screen to be refreshed. Only if there's printing will you
        be asked to press return, etc. However, commands which call SYSOBEY
    and cause DCL etc. to print things out will cause problems.

    VEDDUMBVDU can be set TRUE for a VDU which doesn't have facilities for
        inserting or deleting lines or characters. The effect will be to
        overwrite parts of the screen as needed.

18 DEC
    FOREVERY and FOREACH fixed so that QUITLOOP and NEXTLOOP will work on
    them.

    VED ENTER F FOO
        will search for DEFINE FOO
    VED ENTER \<string>
        will search backwards for <string>. It will NOT wrap around, and no
        'special' characters are at present allowed.
        If the string is empty then the previous search string will be used,
        whether it was used for forward or backward searching.

    VED ENTER BS will therefore be withdrawn (it was a temporary measure)

    VED the status line is now treated differently, as a move towards
    having two active files on the screen. Also there is now less
    rewriting of status line, e.g. when you move cursor about on one line.

    VED scrolling left and right and the behaviour at right edge of screen
    when a character is deleted has now been fixed.

    ENTER S gives a new query message. Bug in typing 'y' fixed.

16 DEC
    The NOVEMBER and earlier entries in this file are now in
    VED ENTER-Q will now print the query about a changed file on the status
    line, and require 'y' or 'n' without RETURN.
    The VED ENTER procedures WQ and WQVED have been altered so that they
    only write the current file. ENTER W still writes all. ENTER W1 only
    one.
    Two new procedures (required in VED):
        ALLBUTFIRST(<integer>, <structure>)
        ALLBUTLAST(<integer>, <structure>)
    where <structure> can be a vector, string or list. A new vector string
    or list is made with the relevant elements of the original. These two
    should have updaters?
    They could be used as library procedures to define ALLFIRST or ALLLAST.

11 DEC
    The library macros PURGE DEL and DIR all work on the directory set by
    using the macro CD (default remains current directory). To delete most
    recent version of foo.p, do
        DEL FOO.P.0;
    All the macros read up to ";" so you can't use ";" to indicate version
    number. VMS allows a second "." for this.
    Experimental Comments to Aaron.


    MACROS

    Macro expansion NOW consists of
    (a) if the VALOF is a procedure, run it etc
    (b) if it's a list, concatenate it to PROGLIST
    (c) otherwise add it to PROGLIST.

10 DEC
    VED: if not given a file name containing a directory uses VEDDIRECTORY
    as the current directory. It can be set by the macro CD.
    E.g.
        CD  .MYLIB;

    ENTER SEND
    If there is a marked range, then that is used for the message. If the
    first line of the range starts with SUB or SUBJ or SUBJ or RE, with an
    optional trailing colon, then the rest of the line is used as subect
    for MAIL.
    The file is written to VEDMESSAG.LIS.

    ENTER C: this is altered so that it compiles only the current file.
9 DEC
    ENTER SEND
    Now looks at the first line of the file. If it starts with SUB, the rest
    of the line is sent as the 'SUBJECT' of the message.

    ENTER LMR
    Now tries to ensure that all printing comes on the screen.
8 DEC
    When a file is read in, the STATUS line is marked to show that it is
    being read.
    UPSCREEN and DOWNSCREEN now cause scrolling to occur if VEDSCROLLSCREEN
    is set TRUE, otherwise the window is refreshed. (Use the latter for VT52
    type terminals.)
    The default is TRUE, i.e. scrolling.
    ENTER JCP   = justify current procedure

    RECORD  This is a new library program for saving output in a file.
    see HELP RECORD;
5 DEC
    TRACE fixed to work on macros
        TRACE; or TRACE FOO BAZ; sets TRACING TRUE.
        UNTRACE; sets TRACING FALSE.
        UNTRACE FOO; sets tracing TRUE.

    ENTER W and ENTER X
    will no longer write empty files

    ENTER LMR / CTRL-D / ENTER LCP
    The behaviour of Load-Marked-Range and procedures which use it has been
    altered so that WARNING messages no longer break up a line in the file.
    They are inserted immediately before or after the line in which the
    undeclared variable occurs, and they are preceded by three semi-colons,
    so they will not interfere with compilation.

3 DEC
    New ENTER commands in VED:
    MBF - mark from beginning of file (to last high mark)
    MEF - mark to end of file (from last low mark)
    MBP - mark from beginning of current procedure (search back for 'define')
    MEP - mark to end of current procedure (search for 'enddefine')
    MCP - mark current procedure
    LCP - load current procedure
    RQQ - really quit all editing and leave VED and POP11
        RQQ is to QQ as RQ is to Q.
2 DEC
    The first time you use VED or HELP VED will run the procedure VEDINIT,
    which you can define in your INIT.P file. If you don't have such a
    procedure, nothing will happen. This will make it unnecessary to use the
    file VEDINIT.P if you prefer not to.
30 NOV
    Just as ENTER-XX in VED does X then leaves POP11, so ENTER-QQ does
    a Quit then leaves POP11. It will complain if there are are files which
    have been changed but not written.
    The S command in VED now gives the line number. It recognises when it
    has done all substitutions and prints 'THAT'S ALL' or 'NOT FOUND'.

    Autoloaded file-names are truncated to 9 characters.

    The UPSCREEN and DOWNSCREEN keys now work much faster, by re-writing
    instead of scrolling.

28 NOV
    Autoloading will look in the library before the user directory. So
    users will have to explicitly over-ride library definitions, if they
    wish to, and autoloading of user procedures with the same name as a
    library procedure will not work.

    ISUPPERCODE and ISLOWERCODE added, in addition to ISALPHACODE and
    ISNUMBERCODE
27 NOV
    LIB TRACE altered.
    Trace printing stops if TRACING is false.

    SUBSTRING takes two numbers and a string and returns a string, e.g.
    substring(3,4,'the cat') returns 'e ca'
    It has an updater. So, for example
    'the cat' -> x;
    'dog' -> substring(5,3,x);
    Will turn x into 'the dog'.

20 NOV
    INSTANCE
    Takes a pattern with ? or ?? variables and instantiates it, i.e. it
    produces a list with the values of the variables in place of the
    variables, treating "?" like "^" and "??" like "^^". Restrictions are
    permitted, but the syntax is not checked.

    INSTANCES
    Takes a list of patterns and produces a list of instances.

19 NOV
    VED
    set VEDMIDSCREEN FALSE to prevent VED pushing the window up when
    inser text below the middle of the screen.

    VEDTABS TRUE if you want VED to change leading spaces to tabs when
    writing files. The number of spaces changed to tabs is determined by
    VEDINDENTSTEP

    There is a variable VEDLEFTMARGIN which can be altered, e.g. with
    ENTER :4 -> VEDLEFTMARGIN;
    This text was typed in with VEDLEFTMARGIN set to 4. It's not perfect
    yet, especially with AUTO-BREAK operating on lines. A better command
    will be provided.

    FOREVERY has been added to the library. See HELP FOREVERY;

    ISALPHACODE recognises ASCII code for alphabetic characters.
    ISNUMBERCODE recognises ASCII code for digits.

18 NOV
    TURTLE altered to use cos and sin.
    SEEPICTURE made to work

    LOCCHAR, SKIPCHAR and STRMEMBER
    re-defined to work on words as well as strings.

    ALLPRESENT: bug fixed

    Changes to VED
    The ENTER-S command will now detect that it has gone all round the
    file and will say 'THAT'S' all when this has happened.

    When inserting text you will now find that whether lines are pushed
    down below the current line, or pushed up above it, will depend on
    where the cursor is. The overall effect is to try to keep the cursor
    away from the top or bottom edge of the screen, to show the context
    in which you are typing.
16 NOV
    STRMEMBER
    has been redefined to return either false, or the location of first
    occurrence of the character in the string. See: HELP STRMEMBER.

    SYSFILEOK
    This is a procedure which can be applied to a string representing a file
    name (including device, directory, etc.). It will return the string if
    there is nothing wrong with it, otherwise produce a mishap, if the
    format is wrong.

    SYSISPROGFILE
    Takes a string representing a file name, and returns TRUE if the name
    ends with '.p' otherwise false.

    ENTER LMR (CTRL-D)
    some bugs have been fixed. Also, error messages no longer break
    lines, and they are automatically marked, so that ENTER-D will then
    delete them.

    MISHAPS
    The doing line no longer prints out VED procedures, unless
    POPSYSCALL is set TRUE. This will also make it print out procedures
    whose names start with 'sys', which are not printed out.

10 November
    Decimal numbers now in.

    ENTER-LMR (load marked range)
    Compiles marked range in current file and splices output, including
    error messages into current file. This is a pre-release,
    experimental version of DOIT.
    CTRL-D is an alternative to ENTER-LMR

5 November
    POP11 version 1.6 will contain
    QUITLOOP and NEXTLOOP (see HELP  QUITLOOP)

    Decimal Numbers, and
    ISDECIMAL, ISNUMBER, INTOF, ROUND, FRACOF
    There are two types of decimals, SINGLE and DOUBLE. The user cannot
    distinguish them, except by the procedure ISDDECIMAL which recognises
    only double decimals, whereas ISDECIMAL recognisers both.

    POPDPRECISION if true tells POP11 to use DOUBLE precision when
    necessary (ie. when the result of some operation does not match
    a single precision decimal numner). If false 'rounding' to single
    precision will always be done. The default value is FALSE.
    (However, all input constants are made into DOUBLES if necessary.)

    POPDPLACES is an integer between 0 and  16 which tells SYSPR how
    many decimal places to print out (with rounding if necessary). If
    POPDPLACES is 0, then decimals print like integers.

    There is no longer any overflow in INTEGERS: big integers are
    automatically converted to decimals. Integers are between
    + or - 536870911. The exponent range for decimals is
    2 to the power + or - 127. Single precision allows 6 digits
    double about 16.

3 Nov
    New ENTER commands
    send
    This can be used instead of MAIL to send messages from inside
    VED. The command
    send name1,name2,name3
    will send the current file to all the three named users, who can
    then read it using MAIL, as usual.

    xp
    This works like ENTER-X except that it changes VED so that
    files LOADed by VED are printed out as well. Thus if your file
    contains an error, you'll see how far the loading got before the
    error occurred, and if the file contains commands they will be
    printed out before being obeyed.
31 October:
  New ENTER- commands
    xx
    This will write the files in the editor, and take you right out of
    POP11, back to DCL

    wved <file>
    This will write changed files, then call VED with the new <file>

    wqved <file>
    This will write changed files, quit the current file, then call
    VED on the new <file>

    tr
    This will transcribe, i.e. copy, the marked range to just after
    the current location. It is equivalent to 'copy' followed by 'yank'.

30 October:
New features in VED:
    <esc>x
    Swaps current file with next one down, and scrolls the old one up,
    so both remain visible.

    vedindentstep
    This variable controls indentation of programs by the ENTER-j
    command, and also the handling of 'tab' characters in files.
    The default value is 4, but if you want to see how a file will
    come out on a printer, make it 8. You can set the value in your
    VED.INI file, then forget about it.

    vedstartwindow
    The value of this variable (default 12) defines how big a window
    you get when you start editing a file. Make it 24 to fill the screen

    ENTER-commands There are two new command symbols
    ENTER-$ (dollar symbol)
        The rest of the line is treated as a DCL command, e.g.
        ENTER-$ DIR

    ENTER-: (colon)
        The rest of the line is treated as a POP11 command, e.g.
        ENTER-: 8 -> VEDINDENT;

    After one of these commands, VED will ask you to press RETURN to
    reset the screen in case obeying the commands has produced printout
    that you want time to read.

    Calling VED direct from DCL. We now have a new DCL command
    VED <filename>
    This will start up POP11 and call VED with the required file.
    A problem, at present, is that if you type CTRL-C, then, instead of
    SETPOP this will cause POP11 to exit. However, it will save any
    files you've altered whilst editing. So CTRL-C may be a convenient
    way to leave?

29 October:
new VED commands
    ENTER-qved <file>
    quits current file, and starts new one
    ENTER-qhelp <file>
    quits current file and starts new help file
    ENTER-w1
    writes the current file only

new POP11 procedures
    showlib <name> causes the library file for <name> to be printed out.
    rdstringto
    takes a text item as argument, and reads text items until that
    one is found. It then joins all but that one into a string
    e.g. many macros will use
        rdstringto(";")

    ncjoin
    takes two lists and joins them without copying the first, unlike <>.
    so after
        x  ncjoin y
    x will be a different list. ncjoin produces its first argument as
    its result.

1981
