Trailing-Edge - PDP-10 Archives - tops20_version7_0_tools_tape_clock_tape - tools/exec-mods/command-editor-notes.txt
There are 5 other files named command-editor-notes.txt in the archive. Click here to see a list.
    This  document will attempt to explain Digital's position in
regard to the EXEC command editor that we are providing  on  the
Release  6.1  "TOOLS" tape. It also describes some of the things
we've done which are different  from  existing versions  of  the
command editor.

    The  TOPS-20  EXEC  Command Editor saves a limited number of
commands which the  user  has  typed  in  and  allows  those  to
re-executed.  If  a  the  user  has  made a mistake, the command
editor allows the command to be corrected and then  re-executed.
Commands  can  be  corrected using commands which are similar to
several well known editors.

    The command editor code is available from Digital only on an
"AS  IS"  and  UNSUPPORTED  basis.  Like  MIC and PCL, we do not
guarantee to to fix any problems found in this code. However, we
are also users of this code, we do attempt to fix problems on  a
best  effort  basis.  

    The  original command editor code was written by Billy Brown
while at the University of Texas. The code has been  distributed
throughout  the  TOPS-20  Arpanet community for a many years and
has been modified by a number of different sites.

    The  command  editor  code  that  is on this "TOOLS" tape is
based on a version which was obtained from NYU. However, most of
the code is  very  different  from  either  the  UTexas  or  NYU
version.  It  differs  in  that  most all the code to handle the
command editor is now in the command editor module, EXECCE.  The
code  has  many  new  features  and  has  many  of the interface
routines to the rest of the EXEC  re-written  to  make  it  more

    There  are  a  few  known  bugs  in  both our version of the
command editor and other versions. Most of these deal with  very
long  command  strings.  Also, our version of the command editor
does not have several new emacs mode features that  are  in  the
NYU version. We will try to incorporate these into the code at a
later date.

    We've  also  made  it  possible for even non-source sites to
build an EXEC with the command editor  enabled.  This  has  been
done  by  installing  the necessary hooks into the standard EXEC
modules, removing conditional  code  from  all  but  the  EXECCA
module. All a non-source site must do to turn the feature on, is
to recompile EXECCA with the proper feature test switches turned
on or off, and relinking the EXEC.

    The  main  body  of  the  command editor code is in a module
called EXECCE.MAC. It contains the following global subroutines.

	CSAVE	saves the contents of the command buffer for later

	.CEPSI	process the interrupt character to allow command 

	.SCEIC	Set the interrupt character to enter edit mode

	.SNCEI	Unset the intterrupt character (SET NO.....)

	.META }	Sets..
	.NOMET}	...or unsets META key.

	INFOCE	Information about command level - 
		Says whether EMACS or ALTER mode
		Says what interrupt character is

	IMETKY	Says whether META key is set or unset

	.CEDMO	Sets edit mode (presently EMACS or ALTER)

	.SEHST	Makes list of commands for command history

	CMDHST	Saves commands for command history

	.REDO	Processes REDO command

	.AGAIN	Processes AGAIN command

    Several other EXEC modules have some code concerned with the
command editor.

	EXEC0	Initializes  the  command  editor Assigns
		the  interrupt  character   for   command

	EXEC1	Manipulates  and  tests  a flag to ensure
		that  the  LOGIN   command   and   user's
		password will not be saved.

	EXECCA	Defines  assembly switch FTCE Has list of
		dummy names of  routines  in  EXECCE  Has
		tables  of  commands  in  which those for
		command  editing  are  under   the   FTCE
		switch.  Has definition of command editor
		interrupt channel, also under FTCE.

	 EXECDE Definitions for buffer lengths, interrupt

	 EXECIN	Calls  routines  in  EXECCE  to  get info
		about the command editor for  INFORMATION

	 EXECPR	More (various) definitions

	 EXECSE	Calls     routines    to    SET/SET    NO

	 EXECSU	Calls   routine   to  save  commands  for
		command editor