1 EDTX
 Invokes the EDTX interactive text editor.  This eXtended version
 of EDT contains the following enhancements:
 
  o file locking.  No two people can edit the same file
  o use of wildcards in specifying file-spec.
  o filename memory.  The editor remembers the last file you edited.
  o XLATE support for SPAWN and HELP functions.

 Format:

	$ EDTX file-spec

 Defining the EDTX command:

	$ EDTX :== $FERMI$EXE:EDTX
	or
	$ EDT*X :== $FERMI$EXE:EDTX	!Replaces EDT command

2 Parameters

 file-spec

  Specifies the file to be created or edited using the EDTX editor.  If
  the file does not exist, it is created by EDTX.

  The EDTX editor does not provide a default file type when creating
  files; if you do not include a file type, it is null.  The file must
  be a disk file on a Files-11 formatted volume.

  Full wildcard characters are allowed in the file specification.
2 Command_Qualifiers

/COMMAND

 /COMMAND[=file-spec]
 /NOCOMMAND

  Determines whether or not EDTX uses  a  startup  command  file.   The
  /COMMAND  file qualifier should be followed by an equal sign and the
  specification of the  command  file.   The  default  file  type  for
  command files is ".EDT".

  The following command line invokes EDTX to edit a file named MEMO.DAT
  and specifies that EDTX use a startup command file named MYEDTINI.EDT:

	$ EDTX/COMMAND=MYEDTINI.EDT  MEMO.DAT

  If you do not include the /COMMAND=command file qualifier, EDTX looks
  for  the  EDTSYS logical name assignment.  If EDTSYS is not defined,
  EDTX   processes   the   system-wide   startup   command   file 
  SYS$LIBRARY:EDTSYS.EDT.   If this file does not exist, EDTX looks for
  the EDTINI logical name assignment.  If EDTINI is not  defined,  EDTX
  looks  for  the file named EDTINI.EDT in your default directory.  If
  none of these files exists, EDTX begins your editing session  in  the
  default state.

  To prevent  EDTX  from  processing  either  the  system-wide  startup
  command  file  or the EDTINI.EDT file in your default directory, use
  the /NOCOMMAND qualifier as follows:

       $ EDTX/NOCOMMAND MEMO.DAT

  No wildcard characters are allowed in the file specification for
  the command file.

/CREATE

 /CREATE
 /NOCREATE

  Controls whether EDTX creates a new file  when  the  specified  input
  file  is  not  found.  Normally, EDTX creates a new file to match the
  input file specification if it cannot find the requested  file  name
  in  the  specified  directory.   When  you  use /NOCREATE in the EDTX
  command line and type a specification  for  a  file  that  does  not
  exist,  EDTX  prints  an  error  message  and  returns you to the DCL
  command level as follows:

       $ EDTX/NOCREATE NEWFILE.DAT
       Input file does not exist
       $

/JOURNAL

 /JOURNAL[=journal-file]
 /NOJOURNAL

  Determines whether EDTX keeps a  journal  file  during  your  editing
  session.   The default file name for the journal file is the same as
  the input file name.  The default file type is ".JOU".  The  /JOURNAL
  qualifier  enables you to use a different file specification for the
  journal file.

  The following command line invokes EDTX to edit a file named MEMO.DAT
  and specifies the name SAVE.JOU for the journal file:

       $ EDTX/JOURNAL=SAVE MEMO.DAT

  If you are editing a  file  from  another  directory  and  want  the
  journal  file  to  be  located  in  that directory, you must use the
  /JOURNAL qualifier with  a  file  specification  that  includes  the
  directory  name.   Otherwise,  EDTX  creates  the journal file in the
  default directory.

  The directory that is to contain the  journal  file  should  not  be
  write protected.

  To prevent EDTX from keeping a record of your  editing  session,  use
  the /NOJOURNAL qualifier in the EDTX command line as follows:

       $ EDTX/NOJOURNAL MEMO.DAT

  Once you have created a journal file, use the /RECOVER qualifier  to
  have EDTX process the commands contained in the journal file.

  No wildcard characters are allowed in the file specification for
  the journal file.

/LOCK

 /LOCK
 /NOLOCK

  Determines whether EDTX uses the cluster-wide lock services to place
  a lock on the file being editted so that someone else cannot edit the
  same file.  The current default is /NOLOCK.  If you are working on a
  public file or in an account used by several people, you might want
  to consider redefining your EDT or EDTX command to include /LOCK as a
  default.

/OUTPUT

 /OUTPUT=output-file
 /NOOUTPUT

  Determines whether EDTX creates an output file at  the  end  of  your
  editing  session.  The default file specification for both the input
  file and the output file is the same.  Use the /OUTPUT qualifier  to
  give  the  output file a different file specification from the input
  file.

  The following command line invokes EDTX to edit a file named MEMO.DAT
  and gives the resulting output file the name OUTMEM.DAT:

       $ EDTX/OUTPUT=OUTMEM.DAT MEMO.DAT

  You can include directory information as part of  your  output  file
  specification to send output to another directory as follows:

       $ EDTX/OUTPUT=[BARRETT.MAIL]MEMO.DAT MEMO.DAT

  The /NOOUTPUT qualifier suppresses the creation of an  output  file,
  but  not  the  creation  of a journal file.  If you are testing some
  edits and are not  sure  you  want  an  output  file,  you  can  use
  /NOOUTPUT as follows:

       $ EDTX/NOOUTPUT MEMO.DAT

  A system interruption will not  prevent  you  from  recreating  your
  editing  session  because  a journal file is still being maintained.
  If you decide you want to save your editing session, you can do  so,
  even  though you specified /NOOUTPUT, by using the line mode command
  WRITE to put the text  in  an  external  file  before  you  end  the
  session.

  No wildcard characters are allowed in the file specification.

/READ_ONLY

 /READ_ONLY
 /NOREAD_ONLY

  Determines whether EDTX keeps a journal file and  creates  an  output
  file.  With the default /NOREAD_ONLY, EDTX maintains the journal file
  and creates an output file when it processes the line  mode  command
  EXIT.   Using  the  /READ_ONLY  qualifier  is  like  using  both the
  /NOJOURNAL and /NOOUTPUT qualifiers.

  The following  command  line  invokes  EDTX  to  edit  a  file  named
  CALENDAR.DAT, but does not create a journal file or an output file:

       $ EDTX/READ_ONLY CALENDAR.DAT

  Use /READ_ONLY when you are searching a file.  If you then  want  to
  modify  the  file,  use  the  line  mode  command WRITE to save your
  changes.  Remember, however, that you have no journal file.

/RECOVER

 /RECOVER
 /NORECOVER

  Determines whether or not EDTX reads a journal file at the  start  of
  the editing session.  The default is /NORECOVER.

  When you use the  /RECOVER  qualifier,  EDTX reads  the  appropriate
  journal  file  and  processes  whatever  commands  it contains.  The
  appropriate syntax follows:

       $ EDTX/RECOVER MEMO.DAT

  If the journal file type is not JOU or the file name is not the same
  as the input file name, you must include both the /JOURNAL qualifier
  and the /RECOVER qualifier as follows:

       $ EDTX/RECOVER/JOURNAL=SAVE.XXX MEMO.DAT

  Because /NORECOVER is the default  for EDTX,  you  do  not  need  to
  specify it in a command line.
2 XLATE
 EDTX provides additional functionality by supporting some subcommmands
 entered by the XLATE nokeypad editting command.  The primary commands
 spawn a subprocess (answer a PHONE call or read your mail without
 terminating your edit) or provide access to the general system-wide
 help information from within the edit session.  The general format
 of the XLATE subcommand is:

	XLATE<command><string>^Z

 This will most often by used by defining a key to invoke the XLATE
 function, for instance:

	DEFINE KEY GOLD $ AS "XLATE<command><string>."

 See the subtopics for more information.
3 HELP
 The XLATE subcommand HELP provides access into the system-wide help
 libraries directly.  The command format is:

	XLATEHELP<topics>^Z

 where <topics> are optional.  The "HELP" text cannot be abbreviated
 and must immediately follow the XLATE command.  One could redefine
 the HELP key on a VT200 keyboard to prompt for topics and then enter
 the system-wide HELP as in:

	DEFINE KEY FUNCTION 28 AS "XLATEHELP?*'Topics: '."

 The screen is cleared and you enter the system-wide HELP in prompt
 mode.  Exiting by typing Control-Z or a carriage return to "Topic?"
 will return you to your edit session (the screen will automatically
 be refreshed).
3 SPAWN
 The XLATE subcommand SPAWN suspends the edit session and spawns a
 subprocess.  The command format is:

	XLATESPAWN[/BARE]<command>^Z

 where <command> is optional.  The "SPAWN" text cannot be abbreviated
 and must immediately follow the XLATE command.  Optionally, the
 subcommand "SPAWN/BARE" (must appear exactly as show, no abbreviations)
 spawns a subprocess without propogating the logical name, key and
 symbol definitions from the owner process in order to start the
 subprocess faster.

 One define several keys to invoke the SPAWN command in several
 varieties.  The most useful ones might be:

	DEFINE KEY GOLD $ AS "XLATESPAWN?*'DCL Command: '."
	DEFINE KEY GOLD ! AS "XLATESPAWN/BARE MAIL."
	DEFINE KEY GOLD # AS "XLATESPAWN/BARE PHONE ANSWER."

 which define "GOLD $" to enter a DCL subprocess (type any DCL
 command), "GOLD !" to enter a subprocess to read/answer MAIL, and
 "GOLD #" to enter a subprocess to answer a PHONE call.

 The screen is cleared and the message:

	%EDTX-I-LOGOUT, Use the LOGOUT command to return to EDTX

 is displayed.  All input goes directly to the subprocess, when you
 exit the subprocess, you will return to your edit session and the
 screen will automatically be refreshed.
 
2 History
 This eXtended version of EDT started from a submission to the Spring
 1985 VAX SIG tape by:

                  University of Arizona
                     MIS Laboratories
       Department of Management Information Systems
       College of Business and Public Administration
         Tucson, Arizona 85721     (602) 621-2748

              coordinated by:  Joel M Snyder

 Their submission, ED1, was developed from callable EDT, provided by
 Digital with VMS V4 (the SYS$SYSTEM:EDT.EXE image is only a few blocks
 long, the work is done in the EDTSHR shareable image which may be called
 from any program via the EDT interface described in the "Utility Routines"
 manual of the VMS Documentation set).  ED1 was developed to provide an
 EDT which remember the last file editted.  At the same time the initial
 XLATE functionality was added to provide the capability to spawn a
 subprocess to access DCL, MAIL or PHONE.  At the same time, the mutex
 file locking was added and has been retained.

 ED1 was modified in the Fermilab Accelerator Controls group to produce
 the EDTX (EDT-eXtended) program.  The changes here were to redo the
 XLATE interface to provide a more generic SPAWN subcommand and add a
 HELP subcommand to provide, from inside EDT, access to the general
 system-wide help information (when was the last time you exited EDT to
 lookup that system service or library routine calling sequence with
 HELP?).

