XEDITH
              XEDIT - EXTENDED INTERACTIVE TEXT EDITOR. 
                       D. W. MEARS.   72/10/31. 
                       W. C. WELLS.   76/02/25. 
                       REVISED    -   77/07/07. 
  
  
XEDIT IS DESIGNED TO BE "SIMPLE TO LEARN AND  EASY  TO  USE". 
BEING "EASY TO USE" REQUIRES THAT WHENEVER POSSIBLE,  COMMAND  OPTIONS
SHOULD  DEFAULT  TO  THE ONE MOST USED. THIS DEFAULTING ALSO HOLDS FOR
THE XEDIT CONTROL CARD WHICH IS DESCRIBED  BELOW. IT SHOULD  BE  NOTED
THAT  TO  EDIT  A  PRIMARY  FILE, ALL ONE NEEDS TO TYPE IS... "XEDIT".
UNFORTUNATELY, WHILE ALL  THE  XEDIT  COMMANDS  ARE  SIMILAR  IN  MANY
ASPECTS,  IT  HAS  BEEN  FOUND THAT THE QUANTITY OF COMMANDS TENDS TO 
OVERWHELM THE BEGINNING USER. IT IS  THEREFORE  RECOMMENDED  THAT  THE
BEGINNING USERS BECOME FAMILIAR WITH THE FOLLOWING COMMANDS AND MASTER
THE OTHERS AT A LATER DATE. THE COMMANDS ARE- 
  
"HELP", "EXPLAIN", "PRINT",  "$",  "LOCATE"  (ONLY  THE  FIRST  FORM),
"NEXT",  "TOP",  "INSERT",  "DELETE",  "CHANGE" (ONLY THE FIRST FORM),
"END", AND "STOP".
  
THE XEDIT COMMAND ITSELF HAS THE FOLLOWING FORMAT-
  
   XEDIT,EDITFIL,OPTIONS. 
  
EDITFIL (THE FIRST PARAMETER) IS THE NAME OF THE FILE  TO  BE  EDITED.
EDITFIL  DEFAULTS  TO  THE  PRIMARY FILE IF ONE EXISTS, OR TO TAPE1 IF
THERE IS NO PRIMARY FILE. 
  
THE OPTIONS ARE ORDER-INDEPENDENT AND MUST NOT BE THE FIRST  PARAMETER
(I.E.    IF ONE WISHES TO DEFAULT EDITFIL AND STILL USE PARAMETERS, HE
MUST TYPE - "XEDIT,,OPTIONS.")
  
PARAMETER DESCRIPTION/ACTION
========= ==================
  
  AS      TURNS ON ASCII PROCESSING OF TEXT. THIS OPTION IS DEFAULT IF
          ONE IS IN THE  63  CHARACTER  SET  OR  IN  THE 64/ASCII 
          CHARACTER SET. THIS OPTION IS NOT DEFAULT FOR BATCH USERS.
  
  B       DENOTES BATCH  PROCESSING.  WHILE  UNDER  BATCH  PROCESSING,
          XEDIT  SHIFTS  ALL ERROR MESSAGES AND WILL IMMEDIATELY ABORT
          IF AN ERROR IS ENCOUNTERED. THIS OPTION IS DEFAULT FOR BATCH
          ORIGIN. 
  
  C       PUTS THE EDITOR INTO CREATE MODE. THIS MODE  ALLOWS  ONE  TO
          CREATE  A  NEW  FILE  WITHOUT  PREVIOUSLY DEFINING THE FILE.
          NOTE- THE INITIAL LINE(S) OF INPUT MUST BE  ADDED  BY  USING
          EITHER  INPUT MODE OR THE INSERT COMMAND. IN ADDITION, XEDIT
          WILL DISABLE VARIOUS COMMANDS UNTIL ONE  LINE  OF  TEXT  HAS
          BEEN ENTERED. THE C OPTION DISABLES THE FR OPTION.
  
  FR      INSTRUCTS XEDIT TO OBTAIN THE INITIAL COMMAND FROM THE FIRST
          LINE   OF   THE   EDITFIL,  THUS  ALLOWING  FREQUENTLY  USED
          "INITIALIZATION"  COMMANDS TO BE ENTERED ONCE. TO ACCOMPLISH
          THIS   AND   YET   MAINTAIN COMPATIBILITY  WITH THE VARIOUS 
          COMPILERS,  XEDIT  ASSUMES  THAT  THE INITIAL COMMAND BEGINS
          WITH THE FIRST NON-BLANK CHARACTER WHICH  OCCURS  AFTER  TWO
          CONSECUTIVE BLANKS, AND THAT THE COMMAND CONTINUES UNTIL THE
          END OF THE FIRST LINE. (MULTIPLE COMMANDS CAN BE ENTERED VIA
          THE Y OR Z COMMANDS). 
  
  NH      SUPPRESSES THE ISSUING OF THE XEDIT HEADER. 
  
  P       CAUSES THE EDITFIL TO BE OBTAINED FROM  THE  PERMANENT  FILE
          AREA. INTERNALLY, THIS OPTION CAUSES XEDIT TO ATTEMPT TO GET
          THE  FILE, AND THEN ATTEMPT TO ATTACH THE FILE IN WRITE MODE
          IF THE GET FAILED. THE FILES ARE OBTAINED FROM THE  EXISTING
          PACK. 
  
 I=LFN    CAUSES XEDIT TO READ INPUT DIRECTIVES FROM FILE LFN.
  
 L=LFN    CAUSES NORMAL XEDIT OUTPUT TO BE PLACED ON FILE LFN INSTEAD 
          OF THE FILE *OUTPUT*. 
  
IN ADDITION TO THE "FR" PARAMETER DESCRIBED ABOVE, XEDIT  ALSO  ALLOWS
ONE  TO  SPECIFY ADDITIONAL COMMANDS ON THE CONTROL CARD ITSELF. TO DO
THIS, FOLLOW  THE  TERMINATOR  (THE  ")"  OR  ".")  WITH  A  DELIMITER
CHARACTER  (SEE  DELIMIT  COMMAND)  AND  THE  DESIRED  LINES  OF INPUT
SEPARATED BY THE SAME DELIMITER CHARACTER. FOR EXAMPLE, THE  FOLLOWING
3 SYSTEM COMMANDS WILL RESULT IN THE PRINTING OF THE LAST 5 LINES OF A
DAYFILE.
  
          BATCH 
          /DAYFILE,TAPE1. 
          /XEDIT,TAPE1.;XB;XN -6;P5;XQ
  
THE EXPRESSION FOLLOWING THE "." SHOWS EXAMPLES OF THE XEDIT "BOTTOM",
"NEXT", "PRINT", AND "QUIT" COMMANDS. 
  
AFTER THE XEDIT COMMAND IS ACCEPTED,  XEDIT  RESPONDS  BY  TYPING  THE
HEADER,   AT  THIS  POINT,  XEDIT WILL EITHER INDICATE A
PROBLEM WITH THE SPECIFIED EDITFIL AND REQUEST  THE  NAME  OF  ANOTHER
FILE  -OR-  WILL  BEGIN EXECUTION OF THE FR AND CONTROL CARD COMMANDS.
EVENTUALLY, XEDIT WILL ENTER COMMAND  MODE  WHICH  IS  SIGNALED  BY  A
DOUBLE  QUESTION  MARK ("?? "). FROM THIS POINT ON, XEDIT WILL REQUEST
COMMANDS BY USING THE "?? " PROMPT,  AND  DATA  BY  USING  THE  SINGLE
QUESTION MARK PROMPT ("? ").
  
INITIALLY XEDIT IS IN "VERIFY" MODE. IN THIS MODE, ALL LINES  OPERATED
UPON  ARE TYPED OUT AFTER THE OPERATION IS PERFORMED FOR VERIFICATION.
THE  ALTERNATIVE  MODE  IS  "BRIEF"  MODE.  THIS  MODE SUPPRESSES THE 
VERIFICATION.  ADDITIONALLY,  XEDIT  ALLOWS ONE TO TOGGLE VERIFICATION
FOR A SINGLE COMMAND BY PREFIXING THAT COMMAND WITH AN "X".  THAT  IS,
IF  XEDIT IS IN BRIEF MODE, PREFIXING A COMMAND WITH AN "X" WILL CAUSE
THE COMMAND TO BE PROCESSED IN VERIFY  MODE  AND  VICE  VERSA.  IT  IS
STRONGLY  RECOMMENDED  THAT VERIFY MODE BE USED IF ONE IS UNCERTAIN OF
WHAT THE EDITOR IS DOING OR OF WHAT IS ON THE EDITED FILE.
  
DURING TEXT EDITING, XEDIT KEEPS A POINTER TO THE  LINE  OF  THE  FILE
CURRENTLY BEING PROCESSED. INITIALLY THIS POINTER IS POSITIONED AT THE
FIRST  LINE OF THE FILE. IF A COMMAND CAUSES THE EDITOR TO ADVANCE THE
POINTER IN ORDER TO COMPLETE  PROCESSING  OF  THE  COMMAND,  THE  NEXT
COMMAND  WILL  BEGIN PROCESSING THE FILE AT THE NEW POSITION. THAT IS,
EACH COMMAND WILL NOT AUTOMATICALLY BEGIN PROCESSING THE FILE FROM THE
FIRST LINE. 
  
IF THE EXECUTION OF A COMMAND CAUSES THE EDITOR TO REACH  THE  END  OF
INFORMATION,  THE  MESSAGE "END OF FILE" IS ISSUED. FURTHER PROCESSING
OF THE COMMAND IS HALTED, AND THE POINTER IS POSITIONED AT THE TOP OF 
THE FILE. 
  
THE GENERAL COMMAND STRUCTURE CONTAINS FIVE FIELDS, NAMELY- 
  
          PREFIX LINE COMMAND POSTFIX PARAMETER(S)
  
OF THE  FIVE  FIELDS,  ONLY  THE  COMMAND  FIELD  (AND  SOMETIMES  THE
PARAMETER(S)  FIELD)  IS  REQUIRED.  THE  REMAINING FIELDS ARE USED TO
EITHER MOVE THE POINTER BEFORE THE COMMAND IS EXECUTED OR TO  MODIFY
THE EXECUTION OF THE COMMAND. IN ALL CASES, EACH COMMAND SEQUENCE MUST
BEGIN  IN  COLUMN  ONE  AND  MAY  NOT CONTAIN ANY IMBEDDED BLANKS. THE
PARAMETER(S) FIELD, HOWEVER, MUST BE SEPARATED  FROM  THE  COMMAND  OR
POSTFIX  FIELD  BY EITHER A BLANK OR A COMMA IF THE FIRST CHARACTER OF
THE FIRST ARGUMENT IS ALPHABETIC. EXTRA SPACES  AROUND  ARGUMENTS  ARE
PERMITTED.
  
OF THE THREE REMAINING FIELDS, THE PREFIX AND POSTFIX FIELDS  WILL  BE
DISCUSSED  LATER.  THE  LINE FIELD IS USED TO POSITION THE EDITOR TO A
DESIRED LINE NUMBER BEFORE EXECUTING THE  COMMAND.  THAT  IS,  IF  ONE
SPECIFIES  A NUMBER BEFORE THE COMMAND, XEDIT WILL MOVE THE POINTER TO
THE LINE IN THE FILE WHICH BEGINS WITH THAT LINE NUMBER  EVEN  IF  THE
LINE  IS  BEFORE  THE  CURRENT  POINTER  POSITION. IF THE DESIRED LINE
CANNOT   BE   FOUND,  XEDIT  TERMINATES  THE  COMMAND  AND  ISSUES  AN
INFORMATIVE MESSAGE. ALSO, IF THE EDITOR IS IN "VERIFY" MODE, THE LINE
WHERE THE SEARCH STOPPED IS ALSO PRINTED (THE FINAL POINTER POSITION).
  
IF A TERMINAL INTERRUPT IS ENTERED WHILE XEDIT IS PRINTING
OUT, XEDIT WILL STOP PROCESSING THE COMMAND IT IS ON AND REQUEST A NEW
COMMAND (I.E. XEDIT WILL DISCARD ANY REMAINING COMMANDS LEFT IN EITHER
THE  Y/Z    AND/OR  DELIMITED  COMMAND  SEQUENCE). THE POINTER WILL BE
POSITIONED AT, OR ONE LINE AFTER, THE LAST LINE  PROCESSED.  NOTE-  IF
USING  THE  INPUT MODE ESCAPE FEATURE (SEE THE "INPUT" COMMAND), XEDIT
WILL RETURN TO INPUT MODE.
  
THE   FOLLOWING   CONVENTIONS   ARE  OBSERVED  IN  THE  XEDIT  COMMAND
DESCRIPTIONS.  THE  CHARACTER  "/"  DENOTES  ANY  CHARACTER  (WITH THE
EXCEPTION OF A NUMBER, COMMA, SPACE, OR ASTERISK)  NOT  FOUND  IN  THE
STRING DELIMITED. FOR EXAMPLE-
  
          /DELIMITED STRING/  COULD BE WRITTEN AS-
          ZDELIMITED STRINGZ  OR
          'DELIMITED STRING'
  
THE CHARACTERS $ AND $$ STAND FOR ANY POSITIVE INTEGER  UNDER  100000.
THEIR  DEFAULT  VALUES  ARE  1  UNLESS  OTHERWISE  SPECIFIED. IN XEDIT
COMMAND PROCESSING, THE CHARACTER  *  IN  THE  NUMERIC  FIELD  IN  ANY
COMMAND HAS THE NUMERIC VALUE 99999.
  
THE ABBREVIATION (IF THERE IS ONE) FOR EACH COMMAND BELOW IS  ENCLOSED
IN BRACKETS NEXT TO THE COMMAND.
                                  - 
  
  
======================================================================
                        INFORMATION COMMANDS. 
======================================================================
                                  - 
HELP,CMD     [H]
========
ACTION- PRINTS HELP INFORMATION FOR THE SPECIFIC CMD. CMD MAY BE  ANY 
XEDIT  COMMAND  OR  COMMAND  ABBREVIATION. IF CMD IS NOT SPECIFIED, AN
EXPLANATION OF THE HELP COMMAND AND A LIST OF ALL XEDIT  COMMANDS  AND
THEIR ABBREVIATIONS IS GIVEN. 
                                  - 
EXPLAIN 
======= 
ACTION- GIVES A MORE DETAILED EXPLANATION OF THE LAST XEDIT  MESSAGE. 
THIS  COMMAND  MUST  BE  USED  IMMEDIATELY FOLLOWING THE COMMAND WHICH
ISSUED  THE  MESSAGE(S).  SUBSEQUENT  EXPLAIN  COMMANDS  WILL  EXPLAIN
PREVIOUS   MESSAGES  UNTIL  THE  MESSAGES  ASSOCIATED  WITH  THE  LAST
NON-EXPLAIN COMMAND ARE EXHAUSTED.
                                  - 
PRINT $     [P] 
======= 
ACTION- PRINTS $ LINES STARTING AT THE CURRENT POINTER  POSITION.  THE
POINTER IS LEFT POSITIONED AT THE LAST LINE PRINTED.
                                  - 
  
  
======================================================================
               COMMANDS FOR REPOSITIONING THE POINTER.
======================================================================
  
THE FOLLOWING COMMANDS CAN BE USED TO QUICKLY ADVANCE TO ANOTHER LINE.
ALL COMMANDS IN THIS SECTION  LEAVE  THE  POINTER  AT  THE  LAST  LINE
PRINTED (ASSUMING THAT "VERIFY" MODE IS IN EFFECT). 
                                  - 
BOTTOM     [B]
======
ACTION- MOVES THE POINTER TO THE LAST LINE IN THE CURRENT RECORD. 
                                  - 
$ 
= 
ACTION- A NUMBER BY ITSELF CAUSES XEDIT TO SEARCH FOR A  LINE  WITH  A
LINE  NUMBER  EQUAL  TO  $. TO ACCOMPLISH THIS SEARCH, XEDIT INITIALLY
LOOKS AT THE CURRENT POSITION TO DETERMINE IF THE POINTER HAS  ALREADY
MOVED  PAST  THE  DESIRED  LINE.  IF  THIS  IS  THE  CASE,  XEDIT WILL
AUTOMATICALLY RETURN TO THE TOP  OF  THE  FILE  BEFORE  BEGINNING  THE
SEARCH.  ONCE  THE  SEARCH IS INITIATED, XEDIT CONTINUES TO SCAN UNTIL
EITHER THE DESIRED LINE OR A LINE WHOSE LINE NUMBER IS GREATER THAT  $
IS FOUND. THE POINTER IS LEFT AT THAT LINE. 
                                  - 
LOCATE /STRING/ $     [L] 
================= 
ACTION- STARTING AT THE CURRENT LINE, PERFORM A STRING SEARCH FOR  THE
$TH  LINE  CONTAINING  THE STRING SPECIFIED. IN VERIFY MODE, EACH LINE
CONTAINING   THE  DELIMITED  STRING  IS  PRINTED.  IF  NO  TERMINATING
DELIMITER  IS  FOUND,  A  DELIMITER IS ASSUMED AFTER THE LAST NONBLANK
CHARACTER OF THE COMMAND LINE AND AN INFORMATIVE MESSAGE IS PROVIDED. 
  
OTHER FORMS OF THE LOCATE COMMAND ARE-
  
LOCATE /STRING1...STRING2/ $     [L]
============================
ACTION- LOCATES THE $TH LINE CONTAINING STRING1 WHICH IS  FOLLOWED  BY
STRING2  SEPARATED  BY  ANY  NUMBER OF INTERMEDIATE CHARACTERS. IN ALL
OTHER WAYS THIS COMMAND IS THE SAME AS REGULAR LOCATE.
  
LOCATE /STRING1---STRING2/ $     [L]
============================
ACTION- LOCATES THE $TH LINE CONTAINING STRING1 WHICH IS NOT  FOLLOWED
BY  STRING2.  IN  ALL OTHER RESPECTS, THIS COMMAND IS IDENTICAL TO THE
REGULAR LOCATE. 
  
LOCATE /---STRING2/ $     [L] 
===================== 
ACTION-   LOCATES  THE  $TH  LINE  WHICH  DOES  NOT  CONTAIN  STRING2.
OTHERWISE, THIS FORM IS IDENTICAL TO THE REGULAR LOCATE.
  
IF THE $ FIELD IS 0 (WHICH IS DIFFERENT THAT BLANK), THEN  XEDIT  WILL
NOT ADVANCE THE POINTER IN ORDER TO LOCATE THE STRING(S). ADDITIONALLY
(IF THE STRING IS NOT FOUND), XEDIT WILL IGNORE ANY REMAINING COMMANDS
ON  THAT  PARTICULAR  COMMAND  LINE  (E.G.  A Y/Z COMMAND OR DELIMITED
COMMAND SEQUENCE). THIS FEATURE  APPLIES  TO  ALL  COMMANDS  INVOLVING
STRING SEARCHES.
  
FURTHERMORE, THE SCOPE OF ALL STRING SEARCHES CAN BE  LIMITED  BY  THE
USE  OF  THE  "A"  AND  "W"  POSTFIX  CHARACTERS. IF ANY STRING SEARCH
COMMAND IS SO MODIFIED, XEDIT  WILL  LIMIT  THE  COLUMNS  IT  SEARCHES
ACCORDING  TO  THE POSTFIX (SEE THE WMARGIN COMMAND FOR INFORMATION ON
SETTING THE WINDOWS). THE POSTFIX CHARACTERS PERFORM AS FOLLOWS-
  
THE "A" POSTFIX CAUSES XEDIT TO REQUIRE THAT THE  FIRST  CHARACTER  OF
STRING1  RESIDE  WITHIN  THE WINDOW. THUS, THE FOLLOWING COMMANDS WILL
CAUSE XEDIT TO LOCATE A LINE WHICH BEGINS WITH THE STRING "DOCUMENT". 
  
          ?? WM,1,1 
          ?? LA/DOCUMENT/ 
  
THE "W" POSTFIX CAUSES XEDIT TO REQUIRE THAT ALL  CHARACTERS  OF  BOTH
STRINGS  (WHERE  THERE  ARE TWO) TO RESIDE WITHIN THE WINDOW. CAUTION-
SPECIFYING A STRING WHICH HAS MORE  CHARACTERS THAN  THE  WINDOW  WILL
NEVER LOCATE THE DESIRED STRING.
                                  - 
NEXT $       [N]
======
ACTION- ADVANCES THE POINTER $ LINES FROM THE PRESENT POSITION. 
  
NEXT -$     [N] 
======= 
ACTION- MOVES THE POINTER BACK $ LINES OR  TO  THE  TOP  OF  THE  FILE
(WHICHEVER  IS  CLOSER).  IF $ IS OMITTED OR EQUAL TO ZERO, NO MOVE IS
PERFORMED. NOTE- THIS COMMAND IS CONSIDERABLY SLOWER THAT  THE  NORMAL
NEXT. 
                                  - 
  
  
TOP     [T] 
=== 
ACTION- MOVES THE POINTER TO THE TOP OF THE FILE. 
                                  - 
  
  
======================================================================
                        TAB CONTROL COMMANDS. 
======================================================================
  
THE FOLLOWING COMMANDS ALL RELATE TO THE VARIOUS TAB  STOPS.  THE  TAB
STOPS  ARE  USED TO TABULATE WHENEVER THE TAB CHARACTER IS ENCOUNTERED
IN THE DATA LINES REQUESTED  BY  THE  "INSERT",  "INSERTB",  "REPLACE"
COMMANDS OR WHEN THE USER IS IN "INPUT" MODE. 
  
                                  - 
DEFTAB /     [DT] 
========
ACTION- DEFINES / AS A TAB CHARACTER. WHENEVER A / IS ENCOUNTERED IN A
"REPLACE", "INSERT", "INSERTB" DATA LINE OR  WHILE  IN  "INPUT"  MODE,
TABBING  WILL  OCCUR. THE AMOUNT OF TABBING IS CONTROLLED BY TAB STOPS
(SEE "TAB" COMMAND).
                                  - 
TABS $ $ $ $ $ $ $ $     [TAB]
====================
ACTION - DEFINES THE VALUES GIVEN AS TAB STOPS. THE TAB VALUES MUST BE
IN INCREASING VALUE, AND MUST BE  BETWEEN  1  AND  160.  THIS  COMMAND
WITHOUT  ANY PARAMETERS CLEARS ALL TAB STOPS. ANY TAB STOP NOT DEFINED
HAS NO EFFECT OF THE TABBING, AND ANY TAB CHARACTER GIVEN IN THE INPUT
LINE WHICH OCCURS PAST THE LAST TAB STOP WILL BE RETAINED  WITHIN  THE
LINE.  THE  DEFAULT  TAB  STOPS  ARE 11, 18, AND 30 (COMPASS). SEE THE
"DEFTAB" COMMAND FOR INSTRUCTIONS ON SETTING THE TAB CHARACTER. 
                                  - 
LISTAB     [LT] 
======
ACTION- LISTS THE CURRENT TAB CHARACTER AND TAB STOPS.
                                  - 
  
  
======================================================================
                INSERTING AND REPLACING ENTIRE LINES. 
======================================================================
  
THE COMMANDS DESCRIBED BELOW ARE USED TO  INSERT  SMALL QUANTITIES OF 
TEXT.  TABBING  IS  AVAILABLE,  AND  THE  LINE  COUNT PARAMETER CAN BE
OVERRIDDEN BY ENTERING A NULL CARRIAGE RETURN IN RESPONSE TO THE  DATA
PROMPT. 
                                  - 
INSERT $     [I]
========
ACTION- INSERTS THE NEXT $ LINES OF INPUT AFTER THE CURRENT LINE.  THE
POINTER  IS  POSITIONED  AT THE LAST LINE INSERTED. THE $ FIELD CAN BE
OVERRIDDEN BY ENTERING A NULL LINE (I.E. A CARRIAGE RETURN BY ITSELF).
                                  - 
INSERTB $     [IB]
========= 
ACTION- INSERTS $ LINES OF INPUT BEFORE THE CURRENT POINTER  POSITION.
THIS  COMMAND  DOES  NOT ALTER THE POINTER POSITION. ALSO, THE $ FIELD
CAN BE OVERRIDDEN BY ENTERING A NULL CARRIAGE RETURN. 
                                  - 
REPLACE $     [R] 
========= 
ACTION- STARTING AT THE CURRENT POINTER POSITION, REPLACES $ LINES  OF
THE  EDITED  FILE  WITH  THE NEXT $ LINES OF INPUT. THE $ FIELD CAN BE
OVERRIDDEN BY ENTERING A NULL CARRIAGE RETURN.  THE  POINTER  IS  LEFT
POSITIONED AT THE LAST LINE REPLACED. 
                                  - 
TOPNULL 
======= 
ACTION- SAME AS THE TOP COMMAND EXCEPT THAT A BLANK LINE  IS  INSERTED
AS  THE  FIRST  LINE  OF THE FILE. IF THE EDIT FILE HAS LEADING RECORD
MARKS BEFORE THE FIRST TEXT LINE, THIS COMMAND CAN BE USED TO POSITION
THE POINTER BEFORE THOSE MARKS. 
                                  - 
  
  
======================================================================
                       BULK INSERTION OF TEXT.
======================================================================
  
THE FOLLOWING COMMANDS ARE DESIGNED TO ALLOW ONE TO EASILY  INSERT  AN
UNKNOWN QUANTITY OF TEXT INTO THE EDITED FILE.
                                  - 
INPUT /     [A NULL LINE. I.E. A CARRIAGE RETURN] 
======= 
ACTION- TYPES OUT "INPUT" AND TAKES ALL THE LINES OF INPUT UP  TO  THE
NEXT  NULL  LINE  AND  INSERTS  THEM  INTO  THE FILE AFTER THE PRESENT
POINTER POSITION. AFTER A NULL LINE IS TYPED, THE EDITOR  RESPONDS  BY
TYPING  OUT "EDIT", POSITIONING THE POINTER AT THE LAST LINE INPUT. AT
THIS TIME, THE USER HAS RETURNED TO COMMAND MODE. 
  
IN ADDITION, IF THE "INPUT /" FORM OF THE COMMAND IS USED, THEN  XEDIT
USES  THE  "/"  AS THE "INPUT MODE ESCAPE CHARACTER". THAT IS, IF THIS
CHARACTER IS USED AS THE FIRST  CHARACTER  OF  AN  INPUT  LINE,  XEDIT
PASSES   THE   REMAINING  CHARACTERS  TO  THE  COMMAND  PROCESSOR  FOR
EXECUTION.
  
THE ESCAPE CHARACTER IS CLEARED ONLY UPON  USAGE  OF  ANOTHER  "INPUT"
COMMAND  WHICH  DOES  NOT  HAVE  THE  "/".  SPECIFICALLY,  THE  ESCAPE
CHARACTER REMAINS IF FORCE IF ONE  SUBSEQUENTLY  ENTERS  AND/OR  EXITS
"INPUT" MODE VIA THE "NULL LINE" METHOD.
  
HOWEVER, XEDIT RESTRICTS THE USER TO ONLY THOSE COMMANDS WHICH DO  NOT
MOVE  THE  POINTER (WHILE THE USER IS "ESCAPED" FROM INPUT MODE). THIS
MEANS THAT THE USER SHOULD USE THE "REPLACE" COMMAND RATHER  THAN  THE
"DELETE"  COMMAND  IF  HE WISHES TO VOID THE LAST ENTERED LINE. IF THE
USER DOES WISH TO USE ONE OF THE RESTRICTED COMMANDS, XEDIT DOES ALLOW
THE USER TO ENTER A MULTIPLE COMMAND STRING (SEE Y, Z  AND/OR  DELIMIT
COMMAND)  WHICH  EXITS "INPUT" MODE (VIA THE "EDIT" COMMAND), EXECUTES
THE DESIRED COMMAND, AND RE-ENTER "INPUT"  MODE  (VIA  THE  "INPUT  /"
COMMAND). 
  
BECAUSE OF THIS RESTRICTION, XEDIT DOES NOT ALLOW THE  USE  OF  THE  $
PARAMETER  ON  ANY  COMMAND  INVOLVING  A STRING SEARCH. ADDITIONALLY,
XEDIT WILL PERFORM THE STRING SEARCH AS IF A 0 (ZERO) WAS SPECIFIED.
  
NOTE- THE USER WILL ALWAYS RETURN TO INPUT MODE. THUS, IF THE  COMMAND
ABORTS,  OR  UPON  SUCCESSFUL COMPLETION OF THE COMMAND, THE USER WILL
RETURN TO INPUT MODE. 
  
(BATCH USERS - SEE THE "EDIT" COMMAND.) 
                                  - 
EDIT
====
ACTION- THIS COMMAND IS THE COMPLEMENT TO THE  "INPUT"  COMMAND.  WHEN
USED  WITH  THE  "INPUT  MODE ESCAPE CHARACTER", THE COMMAND GIVES THE
USER AN ALTERNATIVE METHOD OF EXITING INPUT MODE.  THE  COMMAND  TYPES
OUT  "EDIT",  AND  EXITS INPUT MODE. IF THE USER IS NOT IN INPUT MODE,
THIS COMMAND IS IGNORED.
  
WARNING FOR BATCH USERS. THE "INPUT" AND "EDIT" COMMANDS ARE THE  ONLY
WAY THAT INPUT MODE CAN BE USED. XEDIT WILL ABORT THE BATCH USER IF HE
DOES  NOT  SPECIFY  AN ESCAPE CHARACTER, OR FORGETS TO EXIT FROM INPUT
MODE. 
                                  - 
READ FNAME1 FNAME2 FNAME3 
========================= 
ACTION- READS THE LOCAL FILES FNAME1 FNAME2 ETC. INTO THE EDITED  FILE
AFTER  THE  CURRENT POINTER POSITION. THE FILES ARE READ STARTING WITH
THE FIRST RECORD, CONTINUING UNTIL EITHER AN EMPTY RECORD OR AN END OF
FILE (OR INFORMATION) IS SENSED. ANY RECORD MARKS  EMBEDDED  WITH  THE
"READ"  OPERATION ARE COPIED TO THE WORKING FILE. AFTER EACH READ, THE
POINTER IS POSITIONED AT THE LAST LINE  READ.  EACH  FILE  IS  REWOUND
BEFORE  AND  AFTER  THE  READ OPERATION. IF, FOR SOME REASON, THE FILE
CANNOT BE READ (E.G. IT DOES NOT EXIST OR HAS AN  ILLEGAL  FILE  NAME)
PROCESSING OF THE COMMAND HALTS AT THAT POINT, NO MORE FILES ARE READ,
AND AN INFORMATIVE MESSAGE IS ISSUED. 
                                  - 
READP FNAME1 FNAME2 FNAME3 ... FNAMEN 
===================================== 
ACTION- SAME AS THE "READ" COMMAND EXCEPT THAT THE FILES ARE  ACCESSED
FROM  THE  PERMANENT  FILE  AREA.  THE FILES CAN BE EITHER INDIRECT OR
DIRECT ACCESS FILES AND ARE RETURNED AFTER THE READ  OPERATION.  NOTE-
XEDIT  OBTAINS  THE FILES UNDER A SCRATCH NAME, THIS MEANS THAT DIRECT
ACCESS FILES MAY OCCASIONALLY NOT BE ACCESSABLE IF ALREADY ATTACHED.
                                  - 
  
  
======================================================================
                       COMMANDS THAT COPY TEXT. 
======================================================================
  
THE COMMANDS IN THIS SECTION ARE USED TO COPY PORTIONS (OR ALL) OF THE
EDITED FILE TO EITHER LOCAL FILES OR TO DIRECT ACCESS FILES  CURRENTLY
ATTACHED IN WRITE MODE. 
                                  - 
COPY FNAME $
============
ACTION- COPIES $ LINES FROM THE  EDITED  FILE  TO  FILE  "FNAME".  THE
POINTER  IS  POSITIONED  AT THE LAST LINE COPIED. IN VERIFY MODE, EACH
LINE COPIED IS PRINTED. THE FIRST COPY ONTO A FILE  CAUSES  IT  TO  BE
REWOUND  BEFORE  COPYING BEGINS. CONSECUTIVE COPIES ONTO THE SAME FILE
ADD INFORMATION TO THAT FILE. NOTE, XEDIT MUST BE  ABLE  TO  WRITE  ON
FILE  "FNAME".  SPECIFICALLY, THIS MEANS THAT DIRECT ACCESS FILES MUST
BE IN WRITE MODE AND THAT INDIRECT ACCESS FILES MUST  NOT  BE  EXECUTE
ONLY OR LOCKED. 
  
THERE ARE TWO SPECIAL FILE NAMES WHICH ARE ALLOWED BY XEDIT. THE FIRST
IS "OUTPUT". THIS NAME CAUSES XEDIT TO PRINT THE CONTENTS OF  ALL  THE
LINES  BETWEEN  THE CURRENT POINTER POSITION AND THE FINAL LINE OF THE
COPY. THIS OPTION IS ESPECIALLY DESIGNED TO BE USED  WITH  THE  STRING
SEARCH  OPTIONS  DESCRIBED  LATER.  THE OTHER RESERVED NAME IS "NULL".
THIS NAME CAUSES XEDIT TO EFFECTIVELY COPY THE LINES TO  A  NULL  FILE
(I.E.  TO THROW THE LINES AWAY). THIS FEATURE IS EXPRESSLY DESIGNED TO
BE USED WITH THE "COPYD" COMMAND. 
  
AS MENTIONED EARLIER, THIS COMMAND ALSO ALLOWS STRING SEARCHES  TO  BE
INCLUDED  IN  THE  TERMINATION REQUIREMENT. IF A STRING FIELD IS USED,
XEDIT WILL COPY ALL THE LINES FROM THE CURRENT POINTER POSITION TO THE
$TH OCCURANCE OF THE STRING MATCH OR TO THE "END OF  FILE",  WHICHEVER
OCCURS  FIRST. (FOR INFORMATION REGARDING THE STRING SEARCHES, SEE THE
"LOCATE" COMMAND.) THE ALTERNATE FORMS ARE- 
  
COPY FNAME /STRING/ $ 
COPY FNAME /STRING1...STRING2/ $
COPY FNAME /STRING1---STRING2/ $
COPY FNAME /---STRING2/ $ 
                                  - 
FILE FNAME MODE     [F] 
=============== 
ACTION- PLACES A COPY OF THE EDITED FILE ON EITHER A LOCAL FILE AND/OR
A PERMANENT FILE AND CONTINUES EDITING.  THE POINTER IS POSITIONED AT 
THE  TOP  OF  THE  FILE  UPON COMPLETION OF THIS COMMAND. IN ALL OTHER
RESPECTS, THIS COMMAND FUNCTIONS IDENTICALLY TO THE  "END"  COMMAND  -
THUS,  SEE  THE  "END"  COMMAND  FOR  A  DETAILED  EXPLANATION OF THE 
PARAMETERS. 
                                  - 
  
  
======================================================================
                  COMMANDS THAT DELETE ENTIRE LINES.
======================================================================
                                  - 
DELETE $     [D]
========
ACTION- DELETES $ LINES STARTING WITH THE CURRENT LINE. THE POINTER IS
POSITIONED AFTER THE LAST LINE DELETED. IF THE USER IS IN VERIFY MODE,
THE DELETED LINES ARE PRINTED.
  
ADDITIONALLY, ONE CAN SPECIFY VARIOUS STRING OPTIONS. IF A  STRING  IS
SPECIFIED,   XEDIT   WILL  DELETE  $  LINES  WHICH  MATCH  THE  STRING
SPECIFICATIONS. INFORMATION  REGARDING  STRING  SEARCHES  IS  DETAILED
UNDER THE "LOCATE" COMMAND. THE ADDITIONAL FORMS ARE- 
  
DELETE /STRING/ $     [D] 
DELETE /STRING1...STRING2/ $     [D]
DELETE /STRING1---STRING2/ $     [D]
DELETE /---STRING2/ $     [D] 
                                  - 
COPYD FNAME $ 
============= 
ACTION- COPIES $ LINES TO  FILE  "FNAME"  WHILE  DELETING  THE  COPIED
LINES. THE POINTER IS POSITIONED AFTER THE LAST LINE DELETED. FOR MORE
INFORMATION REGARDING THIS COMMAND, SEE THE "COPY" COMMAND. 
                                  - 
  
  
======================================================================
                COMMANDS THAT CHANGE INDIVIDUAL LINES.
======================================================================
                                  - 
ADD $     [A] 
===== 
ACTION- TAKES THE NEXT LINE  OF  INPUT  AND  APPENDS  IT  TO  $  LINES
STARTING  AT  THE  CURRENT  POINTER POSITION. IF THE LENGTH OF THE NEW
LINES EXCEED 160 CHARACTERS, AN INFORMATIVE MESSAGE IS ISSUED AND  THE
LINE IS TRUNCATED TO THAT LENGTH. 
                                  - 
CHANGE /STRING1/STRING3/ $     [C]
==========================
ACTION- CHANGES ALL OCCURANCES OF STRING1 TO STRING3 IN  THE  FIRST  $
LINES  (STARTING  AT  THE  POINTER)  WHERE STRING1 OCCURS. STRING1 AND
STRING3 ARE ARBITRARY STRINGS OF CHARACTERS AND MAY BE OF DIFFERENT 
LENGTH.  IF  THE  LAST  DELIMITER  OF THE CHANGE COMMAND IS OMITTED, A
DELIMITER IS ASSUMED AFTER THE LAST NON-BLANK CHARACTER OF THE COMMAND
LINE  AND  A  WARNING  MESSAGE  IS ISSUED. IF THE CHANGED LINE BECOMES
LONGER THAN 160 CHARACTERS, IT IS TRUNCATED AND AN INFORMATIVE MESSAGE
IS ISSUED.
  
OTHER FORMS OF THE CHANGE COMMAND ARE-
  
CHANGE /STRING1//$     [C]
==========================
ACTION- IDENTICAL TO THE REGULAR CHANGE, EXCEPT THAT STRING1 IS 
REMOVED COMPLETELY. 
  
CHANGE //STRING3/ $     [C] 
=================== 
ACTION- CHANGES THE NULL  STRING  TO  STRING3.  BY  DEFINITION,  XEDIT
ASSUMES  THE  PRESENCE  OF  A NULL STRING IMMEDIATELY BEFORE THE FIRST
CHARACTER WHICH IS AVAILABLE FOR SEARCHING. NORMALLY THIS CHARACTER IS
THE FIRST CHARACTER OF THE LINE BUT CAN BE CHANGED VIA  THE  "WMARGIN"
AND THE USE OF EITHER THE "A" OR "W" POSTFIX CHARACTERS. FOR EXAMPLE- 
  
     ?? WMARGIN 10,10 
     ?? PRINT 
     THIS IS AN EXAMPLE.
     ?? C//NOTE- /
     NOTE- THIS IS AN EXAMPLE.
     ?? CW//(INSERT)/ 
     NOTE- THI(INSERT)S IS AN EXAMPLE.
  
CHANGE /STRING1...STRING2/STRING3/ $
====================================
ACTION-  SIMILAR  TO  THE  REGULAR  CHANGE  COMMAND  EXCEPT  THAT  ALL
CHARACTERS  BETWEEN (AND INCLUDING) STRING1 AND STRING2 ARE CHANGED TO
STRING3.
                                  - 
CHANGES /STRING1/STRING3/ $     [CS]
=========================== 
ACTION- PERFORMS MUCH LIKE THE REGULAR CHANGE COMMAND EXCEPT THAT  THE
$  FIELD  TAKES ON A DIFFERENT MEANING. IN THE REGULAR CHANGE COMMAND,
ALL OCCURANCES OF STRING1 WHICH OCCUR IN $ LINES ARE CHANGED;  IN  THE
CHANGES COMMAND, THE FIRST $ OCCURANCES OF STRING1 ARE CHANGE.
  
ALL FORMS AVAILABLE UNDER THE REGULAR  CHANGE  COMMAND  ARE  AVAILABLE
UNDER THE CHANGES COMMAND.
                                  - 
DLBLANKS $     [DLB]
==========
ACTION- DELETES ANY LEADING BLANKS FROM THE NEXT $ LINES INCLUDING THE
CURRENT POINTER POSITION. BLANK LINES ARE DELETED ENTIRELY. 
                                  - 
MODIFY     [M]
======
ACTION- MODIFIES THE LINE CURRENTLY POINTED AT. THE MODIFY  DIRECTIVES
ARE AS FOLLOWS- 
  
    DIRECTIVE                       EXPLANATION 
    ---------                       ------------
    ^STRING#   CAUSES THE STRING OF CHARACTERS BETWEEN THE ^ AND THE
               NEXT  # TO BE INSERTED BEFORE THE CHARACTERS POINTED TO
               BY THE ^.  AN ^ OR & WITHIN THE STRING IS TREATED AS A 
               REGULAR  CHARACTER.  IF THE CLOSING # IS NOT SPECIFIED,
               XEDIT INSERTS THE REMAINDER OF THE LINE AS IF A #  WAS 
               SPECIFIED AFTER THE LAST NONBLANK CHARACTER. 
  
               THERE ARE TWO EXCEPTIONS. THE COMBINATION ^# CAUSES A #
               TO BE INSERTED BEFORE THE CHARACTER POINTED TO  BY  THE
               ^,  AND AN ^ AS THE LAST CHARACTER OF THE DIRECTIVES 
               CAUSES A BLANK TO BE INSERTED. 
  
    #          (WHEN NOT THE FIRST # AFTER AN ^) CAUSES THE  CHARACTER
               ABOVE IT TO BE DELETED.
  
    &          REPLACES THE CHARACTER ABOVE IT WITH A SPACE.
  
    (SPACE)    A SPACE BELOW A CHARACTER LEAVES IT UNCHANGED. 
  
    ANY OTHER CHARACTER REPLACES THE CHARACTER ABOVE IT.
  
THE CHARACTER # CORRESPONDS TO A SHARP (UPPER CASE 3) ON A TTY AND CDC
713 TERMINALS. THE CHARACTER ^ CORRESPONDS TO AN UP ARROW (UPPER  CASE
N)  ON  TTY TERMINALS OR A CARAT ON CDC 713 TERMINALS. THE CHARACTER &
CORRESPONDS TO AN  AMPERSAND  (UPPER  CASE  6)  ON  TTY  AND  CDC  713
TERMINALS. EXAMPLE- 
  
 PRINT ORIGINAL LINE    ?? PRINT
                        10 THIS STRING  TO BE MORTIFD 
 ISSUE MODIFY COMMAND   ?? MODIFY 
 XEDIT PRINTS THE LINE    10 THIS STRING  TO BE MORTIFD 
 THE DIRECTIVES LINE-   ?        ^ IS THE#        D#  ^IE 
 VERIFICATION           10 THIS IS THE STRING  TO BE MODIFIED 
                                  - 
OCTCHANGE OCT1 OCT2 $     [OC]
===================== 
ACTION- CONVERTS OCT1 AND OCT2 FROM OCTAL INTO  DISPLAY  CODE  STRING,
THEN  EXECUTES  THE NORMAL CHANGE COMMAND. EACH DISPLAY CODE CHARACTER
MUST BE REPRESENTED BY AN EVEN NUMBER OF OCTAL DIGITS. AN  ODD  NUMBER
OF  DIGITS  OR  A  NON-OCTAL  CHARACTER  WITHIN  AN OCTAL PARAMETER IS
ILLEGAL. CHANGING CHARACTERS TO 00 CODES MAY PRODUCE UNPREDICTABLE (OR
UNDESIRABLE)   RESULTS.  THE  OCT2  FIELD  MAY  BE  NULL  CAUSING  THE
OCCURANCES  OF  OCT1  TO  BE  DELETED.  TO  ENTER  A NULL FIELD, ENTER
"OCTCHANGE OCT1,,$".
  
                                  - 
QMOD $     [QM] 
======
ACTION- PRINTS OUT COLUMN NUMBERS, TAKES MODIFY  DIRECTIVES  FROM  THE
NEXT  LINE  OF  INPUT, AND USES THEM TO MODIFY $ LINES STARTING AT THE
POINTER POSITION. THE POINTER IS NOT MOVED IF THE DIRECTIVES  LINE  IS
BLANK.
                                  - 
YQMOD $     [YQM] 
======= 
ACTION- SAME AS QMOD EXCEPT THAT THE COLUMN NUMBERS ARE NOT PRINTED.
                                  - 
  
  
======================================================================
                        LINE NUMBER COMMANDS. 
======================================================================
  
THE FOLLOWING ASSUMPTIONS APPLY TO THE "ADDLN", "ADDLNS",  "DELETELN",
AND "REPLACELN" COMMANDS. 
  
 1.) THE MESSAGE "END OF FILE" IS ISSUED AFTER THE EDITOR SUCCESSFULLY
     COMPLETES PROCESSING OF THE COMMAND. 
 2.) THE POINTER IS POSITIONED AT THE TOP OF THE FILE BOTH BEFORE  AND
     AFTER THE LINE NUMBERS ARE PROCESSED.
 3.) IF THE LINE NUMBERS GET TOO LARGE (GREATER THAN 99999), THE  FILE
     IS RESTORED TO THE STATE IT WAS IN BEFORE THE COMMAND WAS ISSUED.
     AN  INFORMATIVE  MESSAGE IS ISSUED, AND THE POINTER IS POSITIONED
     AT THE TOP OF THE FILE.
 4.) THESE COMMANDS SHOULD NOT BE USED WHEN EDITING  PROGRAMS  WRITTEN
     IN BASIC.
 5. DEFAULT VALUES ARE-  $=1  $$=1. 
  
                                  - 
ADDLN $ $$     [ALN]
==========
ACTION- ADDS LINE NUMBERS TO THE ENTIRE FILE. THE  FIRST  LINE  NUMBER
WILL BE $ AND THE INCREMENT WILL BE $$. 
                                  - 
ADDLNS $ $$     [ALNS]
=========== 
ACTION- ADDS LINE NUMBERS FOLLOWED BY ONE SPACE TO  THE  ENTIRE  FILE.
THE FIRST LINE NUMBER WILL BE $ AND THE INCREMENT WILL BE $$. 
                                  - 
DBADL $     [DBL] 
======= 
ACTION- STARTING AT THE CURRENT  POINTER  POSITION,  SEARCHES FOR AND 
DELETES  $  BAD  LINES.  A BAD LINE IS ONE WHICH DOES NOT BEGIN WITH A
LINE NUMBER. IN VERIFY MODE, ALL DELETED LINES ARE PRINTED. 
                                  - 
DELETELN     [DLN]
========
ACTION- DELETES LINE  NUMBERS  FROM  THE  ENTIRE  FILE.  THIS  COMMAND
FOLLOWED  BY THE "DLBLANKS" COMMAND CAN BE USED TO REMOVE LINE NUMBERS
AND THE FOLLOWING BLANKS. CAUTION- IF THIS  SEQUENCE  IS  USED,  LINES
CONTAINING ONLY LINE NUMBERS WILL BE DELETED ENTIRELY.
  
  
  
                                  - 
FBADL $     [FBL] 
======= 
ACTION- STARTING AT THE CURRENT POINTER POSITION, SEARCHES FOR  $  BAD
LINES.  A  BAD LINE IS ONE WHICH DOES NOT BEGIN WITH A LINE NUMBER. IN
VERIFY MODE, EACH BAD LINE FOUND IS PRINTED.
                                  - 
REPLACELN $ $$     [RLN]
==============
ACTION- REPLACES LINE NUMBERS ON  THE  ENTIRE  FILE.  THE  FIRST  LINE
NUMBER WILL BE $ AND THE INCREMENT WILL BE $$.
                                  - 
$ 
= 
ACTION- SEARCHES THE EDITED FILE FOR A LINE WHICH BEGINS WITH THE LINE
NUMBER $. IF THE LINE  NUMBER  OF  THE  CURRENT  POINTER  POSITION  IS
GREATER THAN $, THE FILE WILL BE REWOUND AND THE SEARCH BEGUN FROM THE
TOP.  THE  SEARCH  STOPS ON EITHER THE DESIRED LINE, OR THE LINE AFTER
THE POSITION WHERE THE DESIRED  LINE  NUMBER  SHOULD  BE  LOCATED.  IN
VERIFY MODE, THE FINAL POSITION IS PRINTED. 
                                  - 
  
  
======================================================================
               COMMANDS THAT PROCESS RECORD/FILE MARKS. 
======================================================================
  
WITH THE EXCEPTION OF THE "DEOF" AND "DEOR" COMMANDS,  XEDIT  COMMANDS
MAINTAIN  ALL  RECORD  AND FILE MARKS WHICH APPEAR ON THE EDITED FILE.
THE FOLLOW COMMANDS  ALLOW  ONE  TO  ADD,  REMOVE  OR  TO  CHANGE  THE
AUTOMATIC VERIFICATION OF THESE MARKS.
                                  - 
DEOF $     [DF] 
======
ACTION- DELETES THE NEXT $ END-OF-FILE (EOF)  MARKS  FROM  THE  EDITED
FILE. 
                                  - 
DEOR $     [DR] 
======
ACTION- DELETES THE NEXT $ END-OF-RECORD (EOR) MARKS FROM  THE  EDITED
FILE. 
                                  - 
TEOF /
======
ACTION- TOGGLES THE PRINTING OF THE MESSAGE --EOF--.  ALTERNATE  FORMS
OF THIS COMMAND ARE-
  
 TEOF +   ENABLES PRINTING. 
 TEOF -   DISABLES PRINTING.
                                  - 
TEOR /
======
ACTION- TOGGLES THE PRINTING OF THE MESSAGE --EOR--. ALTERNATIVE FORMS
OF THIS COMMAND ARE-
  
 TEOR +   ENABLES PRINTING. 
 TEOR -   DISABLES PRINTING.
                                  - 
  
WEOF     [WF] 
====
ACTION- WRITES AN END-OF-FILE MARK ON THE EDITED FILE BEFORE THE  LINE
AT  THE  CURRENT  POINTER  POSITION.  NOTE-  DUE  TO THE DESIGN OF THE
OPERATING SYSTEM, THE SYSTEM WILL OFTEN FORCE AN END-OF-RECORD MARK TO
APPEAR BEFORE THE FILE MARK.
                                  - 
WEOR     [WR] 
====
ACTION- WRITES AN END-O-RECORD MARK ON THE EDITED FILE BEFORE THE LINE
AT THE CURRENT POINTER POSITION.
                                  - 
  
  
======================================================================
                       MARGIN CONTROL COMMANDS. 
======================================================================
  
THE FOLLOWING  COMMANDS  RELATE  TO  THE  VARIOUS  MARGINS.  WITH  THE
EXCEPTION  OF  THE "WMARGIN" COMMAND, THESE COMMANDS HAVE NO EFFECT ON
ANY NON-MARGIN COMMAND. SPECIFICALLY, SETTING THE "RMARGIN"  WILL  NOT
AUTOMATICALLY TRUNCATE THE EDITED FILE. 
                                  - 
WMARGIN $ $$     [WM] 
============
ACTION- SETS THE LEFT AND RIGHT WINDOW MARGINS FOR USE BY THE "A"  AND
"W" POSTFIX CHARACTERS. THE MARGINS MUST BE ARRANGE SUCH THAT 
  
               1 <= LEFT MARGIN <= RIGHT MARGIN <= 160
  
FOR THE USE OF THE "A" AND "W" POSTFIX CHARACTERS,  SEE  THE  "LOCATE"
COMMAND.
                                  - 
RMARGIN $     [RM]
========= 
ACTION- SETS THE RIGHT MARGIN SETTING FOR  USE  BY  THE  "FINDLL"  AND
"TRUNCATE"  COMMANDS.  THE  RIGHT  MARGIN  MUST  BE BETWEEN 10 AND 160
CHARACTERS, AND INITIALLY IS 160. 
                                  - 
FINDLL $     [FLL]
========
ACTION- FINDS $ LONG LINES STARTING AT THE CURRENT POINTER POSITION. A
LONG LINE IS DEFINED AS A LINE WHICH CONTAINS MORE CHARACTERS THAN THE
CURRENT "RMARGIN" SETTING. THIS COMMAND DOES NOT MODIFY ANY LINES.
                                  - 
TRUNCATE $     [TRUNC]
==========
ACTION- TRUNCATES THE NEXT $ LINES TO "RMARGIN" NUMBER  OF  CHARACTERS
STARTING WITH THE CURRENT LINE. 
                                  - 
  
======================================================================
                        GETTING OUT OF XEDIT. 
======================================================================
                                  - 
END FNAME MODE     [E]
==============
ACTION- ENDS THE EDITING AND PLACES  THE  EDITED  FILE  WITH  ALL  THE
CORRECTIONS  ON  FILE  FNAME AND STORES THE FILE ACCORDING TO THE MODE
SPECIFIED. THE VARIOUS MODES ARE- 
  
   SAVE      OR S - EDITED FILE WILL BE A NEW PERMANENT FILE
   REPLACE   OR R - EDITED FILE WILL REPLACE AN EXISTING FILE 
   LOCAL     OR L - EDITED FILE WILL BE BECOME A LOCAL FILE 
   COPY      OR C - EDITED FILE WILL BE COPIED ONTO FILE FNAME
  
ANY COMBINATION OF THE MODES CAN BE SPECIFIED PROVIDING THAT THE SHORT
FORMS ARE USED. FOR EXAMPLE, SOME OF THE LEGAL COMBINATIONS ARE-
  
   RL  - A COMBINATION OF THE REPLACE AND LOCAL MODES 
   CS  - A COMBINATION OF THE COPY AND SAVE MODES 
  
NOTE- IF THE  C  AND  L  MODES  ARE  SPECIFIED  TOGETHER,  XEDIT  WILL
AUTOMATICALLY CANCEL THE L MODE.
  
IF THE MODE IS NOT RECOGNIZED OR OMITTED, XEDIT DETERMINES THE DEFAULT
FROM THE TYPE OF FILE INVOLVED. IF THE FILE IS A DIRECT  ACCESS  FILE,
THE  COPY MODE IS ASSUMED; IF THE FILE IS INDIRECT OR LOCAL, THE LOCAL
MODE IS ASSUMED. NOTE- WHILE BOTH THE COPY AND LOCAL MODES END IN  THE
SAME  RESULT IF THE FILE IS INDIRECT, THE COPY MODE TAKES CONSIDERABLY
MORE TIME.
  
IF THE FILE NAME IS OMITTED,  "EDITFIL"  FROM  THE  XEDIT  COMMAND  IS
ASSUMED.  CAUTION -  IF FNAME IS LOCKED,  EXECUTE-ONLY,  OR IN SOME 
OTHER WAY HAS WRITE PERMISSION REMOVED, THEN XEDIT VOIDS  THE  USE  OF
THE LOCAL AND COPY MODES. ALSO, XEDIT VOIDS THE LOCAL MODE IF THE FILE
IS  A  DIRECT ACCESS FILE. THIS MEANS THAT THE BASIC END COMMAND (I.E.
"END" WITH NO PARAMETERS) WILL NOT WORK IF THE INCOMING FILE HAS  BEEN
LOCKED.  IN  THIS CASE, XEDIT WILL ISSUE AN INFORMATIVE MESSAGE; IT IS
STRONGLY RECOMMENDED THAT  THE  USER  IMMEDIATELY  USE  THE  "EXPLAIN"
COMMAND FOR A DETAILED EXPLANATION. 
                                  - 
QUIT FNAME MODE     [Q] 
=============== 
ACTION- SAME AS THE END COMMAND.
                                  - 
STOP
====
ACTION- ABORTS THE EDITOR WITHOUT WRITING CORRECTIONS  ANYWHERE.  THIS
METHOD  OF  EXITING  IS  CONSIDERABLY  FASTER  THAN  THE  END AND QUIT
COMMANDS. NOTE- IF XEDIT IS CALLED FROM WITHIN A JOB  CARD  STREAM  OR
PROCEDURE  FILE,  USING  THIS  COMMAND  WILL CAUSE THE SYSTEM TO ABORT
XEDIT, THUS CAUSING NORMAL EXIT CARD PROCESSING TO TAKE EFFECT. 
                                  - 
  
  
======================================================================
              ENTERING MULTIPLE COMMANDS/DATA ON A LINE.
======================================================================
  
THE FOLLOWING COMMANDS AND  FORMS  EACH  ALLOW  THE  USER  TO  SPECIFY
COMMANDS  AND/OR DATA ON ONE LINE. WHILE THIS DOES NOT SAVE IT THE CPU
TIME REQUIRED TO PROCESS THE COMMANDS, THIS DOES  OFTEN  SIGNIFICANTLY
SAVE IN REAL TIME.
  
IN ALL CASES, THE FOLLOWING ACTIONS OCCUR-
  
1. IF THE + PREFIX CHARACTER IS SPECIFIED ON A COMMAND, XEDIT ASSUMES TH
THE TEXT REQUIRED TO FINISH THE COMMAND FOLLOWS THE COMMAND AS THE NEXT 
DELIMITED ITEM IN THE LIST. THE ONLY EXCEPTION  TO  THE  RULE  IS  THE
INPUT  COMMAND  WHICH  ALWAYS  OBTAINS ITS TEXT FROM THE PRIMARY INPUT
SOURCE. 
  
2. IF XEDIT  ENCOUNTERS  ANY  COMMAND  ERROR  (OTHER  THAT  A  MISSING
DELIMITER  ON A STRING FIELD), XEDIT WILL ABORT ALL REMAINING COMMANDS
AN RETURN TO THE PRIMARY INPUT SOURCE FOR THE NEXT COMMAND.  NOTE-  IF
THE  USER  IS  IN INPUT MODE, AND HAS BEEN USING THE ESCAPE FEATURE TO
ENTER COMMANDS, XEDIT WILL RETURN TO INPUT MODE AND  WILL  EXPECT  THE
NEXT INPUT TEXT LINE. 
  
3. IF THE 0 OPTION IS USED ON A STRING SEARCH, AND THE STRING  IS  NOT
FOUND,  XEDIT WILL IGNORE ONLY THE REMAINING COMMANDS ON THAT PHYSICAL
INPUT LINE.  (NOTE-  THE  Y/Z  COMMAND  PARAMETER  IS  CONSIDERED  ONE
PHYSICAL INPUT LINE). I.E. IF THE FOLLOWING SEQUENCE IS USED- 
  
   ?? DEL;
   ?? PRINT;WHERE;Y$TOP$LOCATE/ZZZ/0$END;STOP 
  
THEN XEDIT WILL EITHER END OR ABORT DEPENDING ON THE PRESENCE  OF  THE
STRING "ZZZ" IN THE FIRST LINE OF THE FILE BEING EDITED.
                                  - 
DELIMIT /     [DEL] 
========= 
ACTION- SETS THE CHARACTER / AS THE DELIMITER TO BE USED  TO  SEPARATE
LINES  OF  INPUT.  /  MAY  BE  ANY  CHARACTER  EXCEPT SPACE, COMMA, OR
ALPHABETICS. IF NO ARGUMENT IS SPECIFIED, THE DELIMITER  CHARACTER  IS
CLEARED. FOR EXAMPLE- 
  
    ?? DEL ;       (DEFINE ; AS THE DELIMITER CHARACTER)
                   (INSERT THE NEXT 7 INPUT LINES)
    ?? +A;J(10);+I3;LINE1;LINE2;LINE3;XQ
  
IF THE DELIMIT COMMAND IS USED FROM WITHIN A "Y" OR "Z"  COMMAND,  THE
EFFECT OF THE DELIMIT COMMAND IS SUPPRESSED UNTIL THE Y OR Z COMMAND
SEQUENCE IS EXITED. IN OTHER WORDS, THE INITIAL DELIMITER ON  THE  Y/Z
COMMAND  REMAINS  IN FORCE THROUGHOUT THE EXECUTION OF THE Y/Z COMMAND
SEQUENCE. 
  
THE DELIMITER CHARACTER MAY ALSO BE SET VIA  THE  XEDIT  CONTROL  CARD
(SEE THE BEGINNING OF THIS WRITEUP).
                                  - 
  
Y /COMMAND1/COMMAND2/ ... /COMMANDN 
=================================== 
ACTION- TAKES THE SPECIFIED LIST OF COMMANDS AND/OR DATA AND ENTERS IT
INTO THE Y/Z COMMAND BUFFER AND THEN EXECUTES THAT BUFFER. THE  NORMAL
RULES  REGARDING  COMMAND ENTRY APPLY TO THE COMMANDS CONTAINED IN THE
Y/Z LIST AND IF ANY COMMAND VIOLATES THE RULES,  OR  IS  UNRECOGNIZED,
THE REMAINING COMMANDS ARE IGNORED AND XEDIT RETURNS TO THE MAIN INPUT
FILE  FOR  THE  NEXT  COMMAND.  SPECIFICALLY, THIS ALLOWS COMMANDS AND
DATA TO BE INTERMIXED WITHIN  THE  Y  LIST  AND  ALLOWS  ALL  FEATURES
AVAILABLE VIA THE DELIMIT COMMAND TO APPLY TO THE Y COMMAND LIST. 
                                  - 
Z /COMMAND1/COMMAND2/ ... /COMMANDN 
=================================== 
ACTION- SAME AS THE "Y" COMMAND EXCEPT THAT THE  COMMANDS  ARE  LISTED
BEFORE BEING PROCESSED. HOWEVER, DATA ENTERED VIA THE "Z" COMMAND LIST
ARE NOT LISTED. 
                                  - 
  
  
======================================================================
                       MISCELLANEOUS COMMANDS.
======================================================================
                                  - 
BRIEF     [B] 
===== 
ACTION- PUTS THE EDITOR INTO BRIEF  MODE.  IN  BRIEF  MODE,  AUTOMATIC
VERIFICATION  OF  COMMANDS  IS SUPPRESSED. OTHER FORMS OF THIS COMMAND
ARE-
  
  BRIEF+   TURNS ON BRIEF MODE  (SAME AS BRIEF) 
  BRIEF-   TURNS OFF BRIEF MODE (SAME AS VERIFY)
                                  - 
NOBELLS 
======= 
ACTION- REMOVES THE BELLS FROM THE XEDIT ERROR MESSAGES. THIS  COMMAND
HAS  NO  EFFECT  IF THE BELLS HAVE ALREADY BEEN REMOVED VIA EITHER THE
NOBELLS COMMAND OR BY BEING IN BATCH MODE. THERE IS NO REVERSE OF THIS
OPERATION.
                                  - 
RESTORE     [REST]
======= 
ACTION- REMOVES ALL MODIFICATIONS MADE TO THE FILE SINCE  THE  POINTER
WAS  LAST  AT  THE TOP OF THE FILE. THE POINTER IS MOVED TO THE TOP OF
THE FILE FOR THE FOLLOWING REASONS- 
  1. THE TOP OR TOPNULL COMMAND IS ENCOUNTERED. 
  2. THE ^ (UP ARROW) PREFIX CHARACTER IS ENCOUNTERED.
  3. A NEXT- COMMAND IS ENCOUNTERED.
  4. OR A LINE NUMBER SEARCH REQUIRING REVERSE MOTION IS ENCOUNTERED. 
                                  - 
TRIM
====
ACTION- TOGGLES THE "TRIM" FLAG. IF THE TRIM FLAG IS  SET,  THE  XEDIT
WILL IGNORE ALL TRAILING SPACES WHEN DOING ANY STRING SEARCH (E.G. THE
"LOCATE"  OR  "CHANGE"  COMMANDS).  BY  DEFAULT, THIS FLAG IS NOT SET.
OTHER FORMS OF THIS COMMAND ARE-
  
   TRIM+   SETS THE TRIM FLAG REGARDLESS OF ITS PREVIOUS STATE. 
   TRIM-   CLEARS THE FLAG REGARDLESS OF ITS PREVIOUS STATE.
                                  - 
VERIFY     [V]
======
ACTION- PUTS THE EDITOR INTO "VERIFY" MODE. IN VERIFY MODE  ALL  LINES
OPERATED  UPON  WILL BE TYPED OUT. ALSO, WHEN AN EOR (WHICH IS NOT THE
LAST EOR ON THE EDITED FILE) IS ENCOUNTERED, THE MESSAGE "--EOR--"  IS
OUTPUT.  (THIS  IS  ALSO  TRUE  FOR  END-OF-FILE MARKS). THE EDITOR IS
INITIALLY IN VERIFY MODE. OTHER FORMS OF THIS COMMAND ARE-
  
   VERIFY+  SETS THE VERIFY FLAG (SAME AS VERIFY) 
   VERIFY-  CLEARS THE VERIFY FLAG (SAME AS BRIEF)
                                  - 
WHERE     [W] 
===== 
ACTION- PRINTS THE CURRENT LINE COUNT, I.E. THE  NUMBER  OF  THE  LINE
(FROM THE FIRST LINE OF THE FILE) THE POINTER IS POINTING TO. 
                                  - 
. $ 
=== 
ACTION- ADVANCES THE POINTER $ LINES AND  EXECUTES  THE  LAST  COMMAND
AGAIN. IF THE $ IS NULL, 1 IS ASSUMED; IF 0, THEN NO ADVANCE WILL TAKE
PLACE.
                                  - 
- $ 
=== 
ACTION- ADVANCES THE POINTER $ LINES AND EXECUTES THE LIST OF COMMANDS
CONTAINED IN THE Y/Z COMMAND BUFFER (SEE THE Y OR Z COMMANDS). IF  THE
$  IS NULL, 1 IS ASSUMED; IF 0, THEN NO ADVANCE WILL TAKE PLACE BEFORE
EXECUTING THE BUFFER. 
                                  - 
  
  
======================================================================
                          PREFIX CHARACTERS.
======================================================================
  
THE FOLLOWING PREFIXES (THE FIRST FIELD IN THE XEDIT  COMMAND  SYNTAX)
ARE  OPTIONAL  ON  ANY  COMMAND.  THEY MAY APPEAR IN ANY ORDER AND ARE
EXECUTED IMMEDIATELY. IF A PREFIX CHARACTER IS DUPLICATED, XEDIT  WILL
PERFORM THE OPERATION DESCRIBED THAT MANY TIMES.
                                  - 
X*****
======
ACTION- CHANGES THE VERIFICATION STATUS OF THE COMMAND ***** FROM  THE
STATUS SET BY THE BRIEF OR VERIFY COMMANDS. 
                                  - 
+*****
======
ACTION- CAUSES THE TEXT REQUIRED BY COMMAND ***** TO BE OBTAINED  FROM
THE NEXT FIELD IN EITHER A DELIMITED OR Y/Z COMMAND SEQUENCE RATHER 
THAN THE PRIMARY INPUT SOURCE.
                                  - 
/*****
======
ACTION- ADVANCE THE POINTER 1 LINE BEFORE PROCESSING COMMAND *****. 
                                  - 
  
^*****
======
ACTION- MOVE THE POINTER TO THE TOP OF THE FILE BEFORE PROCESSING  THE
COMMAND *****.
                                  - 
  
  
======================================================================
                         POSTFIX CHARACTERS.
======================================================================
                                  - 
*****W
======
ACTION- SETS THE WINDOW OPTION FOR  ANY  COMMAND  INVOLVING  A  STRING
SEARCH.  WHEN  THE  WINDOW OPTION IS SELECTED, XEDIT REQUIRES THAT ALL
CHARACTERS IN THE STRING SEARCH RESIDE WITHIN THE WINDOW MARGINS  (SEE
THE WMARGIN  COMMAND).  ADDITIONALLY, THIS OPTION IMPLIES THE SELECTION 
OF THE TRIM OPTION (SEE THE TRIM COMMAND). WARNING- UNEXPECTED RESULTS
MAY OCCUR IF THIS OPTION IS USED WITH THE "OCTCHANGE" COMMAND.
                                  - 
*****A
======
ACTION- SETS THE ANCHOR OPTION FOR COMMAND ***** (ONLY HAS  EFFECT  IF
COMMAND  *****  INVOLVES  A  STRING SEARCH). WHEN THE ANCHOR OPTION IS
SELECTED, XEDIT REQUIRES THAT  THE  FIRST  CHARACTER  OF  THE  PATTERN
STRING  RESIDE  WITHIN  THE WINDOW (SEE THE WMARGIN COMMAND). WARNING-
UNEXPECTED  RESULTS  MAY  OCCUR  IF  THIS  OPTION  IS  USED  WITH  THE
"OCTCHANGE" COMMAND.
                                  - 
  
  
======================================================================
                         MESSAGES FROM XEDIT. 
======================================================================
  
IN THE FOLLOWING LIST OF MESSAGES, ANYTHING ENCLOSED IN BRACKETS IS  A
DESCRIPTION OF WHAT APPEARS THERE DURING EXECUTION. ALSO, THIS LIST IS
ONLY  ACCURATE WITH THOSE MESSAGES WITH XEDIT PRODUCES. VARIOUS SYSTEM
MESSAGES HAVE BEEN CONTAINED IN THIS LIST (AND ARE  SO  NOTED).  WHERE
THESE  OCCUR,  A  PROBABLE  CAUSE HAS BEEN SUGGESTED ALTHOUGH THEY MAY
OCCUR FOR OTHER REASONS.
  
    MESSAGE               EXPLANATION 
    -------               ------------
  
 ABORTED                  XEDIT HAS ABORTED (IN RESPONSE TO THE "STOP"
                          COMMAND). 
  
 ARGUMENT ERROR           ISSUED FOR A VARIETY OF REASONS, INCLUDING- 
  
                          1. IN A COMMAND INVOLVING A  STRING  SEARCH.
                          IF  A  STRING  FIELD  IS  REQUIRED AND IT IS
                          MISSING. NOTE THAT  THE  FORMS  "/.../"  AND
                          "/---/"   DO  NOT  CONSTITUTE  LEGAL  STRING
                          FIELDS. 
  
                          2. IN A COMMAND INVOLVING A  STRING  CHANGE.
                          IF  THE  SECOND STRING FIELD IS REQUIRED AND
                          IT IS MISSING.
  
                          3. IF ENTERING COMMANDS VIA THE  INPUT  MODE
                          ESCAPE CHARACTER (SEE THE INPUT COMMAND) AND
                          A  PARAMETER  OTHER  THAN  0  IS USED ON ANY
                          COMMAND   WHICH   MIGHT  POSSIBLY  MOVE  THE
                          POINTER.  SOME OF THE AFFECTED COMMANDS ARE-
                          "CHANGE", "LOCATE", AND "REPLACE".
  
                          4. RELATED TO POINT 3. THIS RESTRICTION ALSO
                          APPLIES TO ANY PREFIX CHARACTER WHICH  MOVES
                          THE POINTER, AND TO THE LINE NUMBER FIELD OF
                          THE COMMANDS. 
  
                          5. IF THE ARGUMENTS ON A COMMAND ARE ILLEGAL
                          OR MISSING. 
  
                          6. IN  OCTCHANGE,  IF  THE  SPECIFIED  OCTAL
                          NUMBER(S)  DO  NOT  CONTAIN OCTAL OR AN EVEN
                          NUMBER OF DIGITS. 
  
 BAD TEXT LINE ENCOUNTERED     ISSUED WHEN XEDIT DETECTS THAT THE LAST
                          WORD BEFORE A FILE MARK  (EOR/EOF/EOI)  DOES
                          NOT  CONTAIN  A PROPER LINE TERMINATOR. THIS
                          WILL   USUALLY   OCCUR   FOR  THE  FOLLOWING
                          REASONS.
  
                          1. THE FILE YOU ARE  TRYING  TO  EDIT  IS  A
                          BINARY OR OTHER NON-TEXT TYPE FILE. 
  
                          2. THE FILE BEING EDITED HAS BEEN CREATED BY
                          USING THE TELEX "TEXT"  COMMAND;  AND,  UPON
                          LEAVING  TEXT  MODE,  THE  FILE HAS NOT BEEN
                          PACKED. 
  
                          THIS ERROR  CAUSES  AN  IMMEDIATE  ABORT  OF
                          XEDIT,   ALL   FILES   ARE   RESTORED.  THIS
                          CONDITION CAN BE REMEDIED  BY  EITHER  USING
                          THE  PACK  COMMAND,  OR  BY USING THE COPYCF
                          COMMAND (WHERE APPROPRIATE).
  
 BAD FILE NAME            ISSUE IF THE SPECIFIED  FILE  NAME  CONTAINS
                          BAD  CHARACTERS OR IS OVER 7 CHARACTERS -OR-
                          THE FILE NAME IS MISSING -OR- THE FILE  NAME
                          IS RESERVED BY XEDIT. 
  
 BATCH ABORT - COMMAND ERROR.        A  SYNTAX  ERROR  (EXCLUDING  THE
                          DELIMITER ERROR) WAS ENCOUNTERED WHILE XEDIT
                          IS  OPERATING UNDER BATCH MODE. XEDIT ABORTS
                          RATHER THAN CONTINUING TO EXECUTE,  POSSIBLY
                          RUINING THE FILE. 
  
 BATCH ABORT - RETRY COUNT EXCEEDED.     WHILE OPERATING  UNDER  BATCH
                          MODE,  XEDIT  ALLOWS  ONLY  ONE  RETRY  WHEN
                          TRYING TO OBTAIN THE NAME OF THE EDIT  FILE.
                          I.E.,  THIS  MESSAGE WILL BE ISSUED IN PLACE
                          OF THE SECOND OCCURANCE OF THE MESSAGE "NAME
                          EDIT FILE". ADDITIONALLY, XEDIT WILL ABORT. 
  
 BATCH MODE ABORT. END OF RECORD ENCOUNTERED. WHILE OPERATION IN BATCH
                          MODE - AN EOR, EOF OR EOI WAS ENCOUNTERED ON
                          THE PRIMARY INPUT FILE. 
  
 CANNOT EDIT EXECUTE ONLY FILES.        THE  SPECIFIED  EDIT  FILE  IS
                          EXECUTE  ONLY. XEDIT WILL QUERY THE USER FOR
                          THE NAME OF ANOTHER FILE. 
  
 COMMAND NOT VALID        ISSUES IN INPUT MODE IF THE DESIRED  COMMAND
                          WILL ALWAYS MOVE THE POINTER (E.G. "DELETE",
                          "END", ETC.). 
  
                          ISSUED  IN  CREATION  MODE  IF  THE  DESIRED
                          COMMAND ASSUMES THE PRESENCE OF A TEXT LINE.
                          CREATION  MODE  IS AUTOMATICALLY EXITED ONCE
                          THE INITIAL LINE OF TEXT HAS  BEEN  INSERTED
                          INTO THE FILE.
  
 COMMAND STACKING ERROR   AN ATTEMPT WAS MADE TO RECURSIVELY  CALL  AN
                          INPUT  MEDIUM.  THIS  ERROR  NORMALLY OCCURS
                          WHEN ONE TRIES TO EXECUTE  THE  Y/Z  COMMAND
                          BUFFER  FROM WITHIN THE Y/Z COMMAND SEQUENCE
                          (SEE THE Y/Z COMMANDS FOR  RULES  REGULATING
                          THIS)  -OR-  BY TRYING TO USE THE INPUT MODE
                          ESCAPE   CHARACTER   AFTER   STACKING  INPUT
                          COMMANDS. 
  
 DELIMITER                THE CLOSING DELIMITER IN A DELIMITED  STRING
                          FIELD  IS MISSING. THIS MESSAGE IS SHOULD BE
                          CONSIDERED AS A CAUTION.
  
 EDIT                     INPUT MODE HAS BEEN EXITED. THIS MESSAGE  IS
                          ALSO  ISSUED  ANYTIME  THE  EDIT  COMMAND IS
                          USED, REGARDLESS OF WHETHER THE USER  IS  IN
                          INPUT MODE. 
  
 EMPTY OR FILE NOT FOUND     THE SPECIFIED EDIT FILE IS NOT  LOCAL  TO
                          THE USER, ELSE THE FILE IS NULL.
  
 --EOR--                  AN END-OF-RECORD MARK HAS BEEN READ FROM THE
                          EDIT FILE, AND, UNLESS A "DEOR"  COMMAND  IS
                          BEING PROCESSED, IT HAS BEEN RETAINED.
  
 --EOF--                  AN END-OF-FILE MARK HAS BEEN READ  FROM  THE
                          EDIT  FILE,  AND, UNLESS A "DEOF" COMMAND IS
                          BEING PROCESSED, IT HAS BEEN RETAINED.
  
 END OF FILE              THE END-OF-INFORMATION HAS BEEN  ENCOUNTERED
                          ON  THE  EDIT  FILE.  PROCESSING OF THE LAST
                          COMMAND CEASES, AND THE POINTER IS MOVED  TO
                          THE TOP OF THE FILE.
  
 ERROR IN XEDIT ARGUMENTS     SELF-EXPLANATORY. 
  
 FILE FUNCTION ILLEGAL    THE SPECIFIED OPTION ON AN "END", "FILE", OR
                          "QUIT" COMMANDS IS NOT LEGAL  FOR  THE  FILE
                          SPECIFIED. THIS INCLUDES- 
  
                          1. USING THE "L" OPTION WITH A DIRECT ACCESS
                          FILE. 
  
                          2. USING THE "C" OPTION WHEN  THE  SPECIFIED
                          FILE CANNOT BE WRITTEN ON.
  
 [FILE] IS A LOCAL FILE   THE EDITED FILE WAS WRITTEN ONTO  THE  LOCAL
                          FILE [FILE].
  
 FILE NAME CONFLICT       THE SAME FILE NAME(S) HAVE  BEEN  USED  MORE
                          THAN ONCE ON THE XEDIT CONTROL CARD.
  
 FILE NOT XEDITABLE       THE SPECIFIED EDIT FILE DOES NOT  CONTAIN  A
                          LEGAL  LINE,  BUT IS NOT EMPTY. ONE INSTANCE
                          OF THIS WOULD BE A FILE CONTAINING MORE THAN
                          ONE END-OF-RECORD (EOR) MARK,  BUT  WITH  NO
                          DATA CONTAINED WITHIN THE RECORDS.
  
 [FILE] REPLACED          THE EDITED FILE WAS WRITTEN TO THE PERMANENT
                          FILE AREA  REPLACING  AN  EXISTING  INDIRECT
                          ACCESS FILE.
  
 [FILE] REWRITTEN         [FILE] WAS REWOUND AND THE EDITED  FILE  WAS
                          WRITTEN  ONTO  IT.  IF  [FILE]  IS  A DIRECT
                          ACCESS FILE, THIS HAS UPDATED THE  PERMANENT
                          COPY  OF  THE FILE. IF [FILE] IS AN INDIRECT
                          ACCESS FILE, ONLY THE LOCAL COPY OF THE FILE
                          HAS BEEN UPDATED. 
  
 [FILE] SAVED             THE EDITED FILE WAS WRITTEN TO THE PERMANENT
                          FILE AREA AS AN INDIRECT ACCESS FILE. 
  
 [FILE] TOO LONG          (SYSTEM MESSAGE) XEDIT ATTEMPTED TO SAVE  OR
                          REPLACE  A  FILE  THAT  WAS  LONGER THAN THE
                          MAXIMUM INDIRECT ACCESS FILE SIZE ALLOWED.
  
 ILLEGAL DELIMITER CHARACTER     THE DELIMITER SPECIFIED VIA THE XEDIT
                          CONTROL   CARD  (THE  CHARACTER  IMMEDIATELY
                          FOLLOWING  THE  "."  OR  ")")  IS AN ILLEGAL
                          DELIMITER CHARACTER.
  
 ILLEGAL PARAMETER        1.   AN   ATTEMPT  WAS  MADE  TO  DEFINE  AN
                          ALPHABETIC COMMAND DELIMITER. 
  
                          2. THE  COMMAND  HAS  DATA  AFTER  THE  LAST
                          PARAMETER.
  
                          3. AN ATTEMPT WAS MADE TO SET THE  VALUE  OF
                          RMARGIN TO LESS THAT 10 OR GREATER THAT 160.
  
                          4.  THE  SPECIFIED  TAB  STOPS  ARE  NOT  IN
                          INCREASING  ORDER  AND/OR  ARE NOT BETWEEN 1
                          AND 160.
  
 INPUT                    XEDIT HAS ENTERED INPUT MODE. 
  
 LINE NUMBER NOT FOUND, COMMAND NOT EXECUTED
                          THE SPECIFIED LINE NUMBER PREFIX SPECIFIED A
                          LINE NUMBER WHICH IS NOT IN THE FILE. 
  
 LINE NUMBER TOO LARGE    THE   NEW   LINE   NUMBER  IN  THE  "ADDLN",
                          "ADDLNS",   OR   "REPLACELN"   COMMANDS  HAS
                          EXCEEDED 99999. 
  
 LOCAL FILE ERROR         THE ATTEMPT TO MAKE THE SPECIFIED FILE LOCAL
                          HAS FAILED. THIS ERROR SHOULD NEVER OCCUR  -
                          IF IT DOES, PLEASE NOTIFY A CONSULTANT. 
  
 NAME EDIT FILE           THE SPECIFIED EDIT FILE IS NOT AVAILABLE FOR
                          EDITING. THUS, XEDIT IS ASKING FOR THE  NAME
                          OF  ANOTHER  NAME TO EDIT. NOTE- THE MESSAGE
                          ISSUED IMMEDIATELY BEFORE THIS IS REASON WHY
                          THE SPECIFIED FILE IS NOT AVAILABLE.
  
 NO SUCH COMMAND          THE   COMMAND  IS  ILLEGAL  OF  AN  IMPROPER
                          SEPARATOR WAS USED AFTER THE COMMAND. 
  
 STRING NOT FOUND         THE SPECIFIED STRING COULD NOT BE LOCATED ON
                          THE CURRENT LINE AND THE 0 OPTION  WAS  USED
                          (SEE THE "LOCATE" COMMAND). 
  
 XEDIT 3.1.00                    THIS IS THE XEDIT VERSION NUMBER.  IT
                          IS   ISSUED   IMMEDIATELY  AFTER  THE  XEDIT
                          CONTROL CARD IS HONORED AND MAY BE CANCELLED
                          BY THE USE OF  THE  *NH*  PARAMETER  ON  THE
                          CONTROL CARD. THE FIRST NUMBER INDICATES THE
                          NUMBER  OF  TIMES  XEDIT HAS UNDERGONE MAJOR
                          REVISION. THE SECOND NUMBER IS THE NUMBER OF
                          TIMES EXTERNAL MODIFICATIONS HAVE BEEN  MADE
                          (SINCE  THE  LAST  MAJOR  REVISION), AND THE
                          THIRD  NUMBER  IS  THE  NUMBER  OF  INTERNAL
                          MODIFICATIONS   SINCE   THE   LAST  EXTERNAL
                          MODIFICATION. THUS,  THIS  DOCUMENTATION  IS
                          ACCURATE UNTIL VERSION 3.1.X. 
  
 YOU DELETED THE ENTIRE FILE     XEDIT CANNOT FIND A LINE AT WHICH  TO
                          POSITION THE POINTER. THE ORIGINAL EDIT FILE
                          REMAINS UNCHANGED AND THE EDITOR STOPS. 
  
  
======================================================================
                    ADVANCED THOUGHTS AND TOPICS. 
                         (NOT FOR BEGINNERS). 
======================================================================
  
FROM VARIOUS FEEDBACK AND QUESTIONS RECEIVED FROM  VARIOUS  USERS,  IT
HAS  BEEN  REALIZED  THAT  A SHORT SECTION ON HINTS WOULD BE WELCOMED.
THIS SECTION CONTAINS COMBINATIONS OF COMMANDS WHICH  ALLOW  XEDIT  TO
PERFORM  OPERATIONS  NOT  EASILY  SEEN  FROM  THE INDIVIDUAL COMMANDS.
ADDITIONALLY, THIS SECTION CONTAINS VARIOUS HINTS  ON  DECREASING  THE
CPU  TIME  REQUIRED  BY  XEDIT AND MISCELLANEOUS NOTES WHICH MAY BE OF
INTEREST TO THE ADVANCED USER.
  
                    MAKING BETTER USE OF THE CPU. 
  
1. PERHAPS THE EASIEST WAY TO SAVE CPU COSTS IS TO MAKE ALL CHANGES TO
THE FILE PROGRESSIVELY. THAT IS, AVOID ALL USAGE OF THE "NEXT-" COMMAND 
WHEN AT ALL POSSIBLE.  IT IS ALMOST AS EFFICIENT TO MAKE TWO PASSES 
THROUGH A FILE AS IT IS TO USE THE "NEXT-" COMMAND. 
  
2. ESPECIALLY IF EDITING LARGE FILES, CONSIDERABLE SAVINGS CAN BE  HAD
IN  BACKING  UP  IN  THE  FILE  IF  ONE  USES  THE "WHERE" COMMAND (TO
DETERMINE THE PRESENT LOCATION) AND THEN USES THE "TOP" AND  "NEXT  $"
COMMANDS  TO  TRAVEL  TO  THE  DESIRED  LINE (THE $ IS THE LINE NUMBER
DESIRED -1) RATHER THAN THE EASIER (IN SOME CIRCUMSTANCES) SEQUENCE OF
"TOP" AND "LOCATE/STRING/". (STRING SEARCHES ARE AROUND 5 TIMES SLOWER
THAN THE "NEXT" COMMAND). 
  
  
  
  
                    EDITING ON AN UNSTABLE SYSTEM 
                                  OR
             HOW TO RECOVER MODIFICATIONS IF TERMINATED.
  
TO DO  THIS  SIMPLY  REQUIRES  SOME  KNOWLEDGE  OF  HOW  XEDIT  WORKS.
BASICALLY,  XEDIT TAKES YOUR FILE AND TRANSFERS THE INFORMATION (ALONG
WITH ANY MODIFICATIONS) TO ONE OF TWO SCRATCH FILES. AFTER THE INITIAL
PASS, XEDIT THEN TRANSFERS THE INFORMATION  BETWEEN  THE  TWO  SCRATCH
FILES.  WHEN  XEDIT  ENDS, THE SCRATCH FILES ARE EITHER RENAMED OR THE
INFORMATION IS COPIED TO THE DESIRED FILE. THUS, TO RE-ENTER XEDIT  IF
XEDIT  TERMINATES  DUE  TO  A  SYSTEM  ABORT,  TRACK  LIMIT  OR  OTHER
UNEXPECTED ERROR, TAKE A LOOK AT THE SCRATCH FILES "SCRA" AND  "SCRB".
NORMALLY  (ASSUMING  THAT  YOU ARE ADDING MORE TEXT THAT REMOVING) THE
MOST UP-TO-DATE COPY OF THE FILE IS USUALLY THE LONGER FILE. NOTE- NOT
ALL YOUR CHANGES WILL BE ON THIS FILE (IT WILL BEHAVE AS IF A  RESTORE
COMMAND  HAD  BEEN  ISSUED)  AND  IT  WILL  HAVE  TO BE RENAMED BEFORE
RE-ENTERING XEDIT.
  
IF EDITING ON A HIGHLY UNSTABLE SYSTEM, ONE CAN ASSURE  THAT  HE  WILL
HAVE  THE  FILES  "SCRA"  AND "SCRB" IF HE DEFINES, AND ATTACHES, THEM
PRIOR TO EACH XEDIT RUN.) 
  
  
                    QUICK CREATION OF A TEXT FILE.
  
WITH THE ADDITION OF THE INPUT AND EDIT COMMANDS, ALONG WITH THE INPUT
MODE ESCAPE CHARACTER, ONE CAN EASILY CREATE HIS  INITIAL  FILE  USING
THE  NORMAL TEXT MODE. THE FIRST FEW LINES ON THIS FILE SHOULD CONTAIN
XEDIT DIRECTIVES INITIALIZING THE TAB  CHARACTER  AND  ETC.  THEN  THE
COMMAND  INPUT  (WITH  THE ESCAPE) IS INPUTTED AND THE DESIRED TEXT IS
ENTERED. FOLLOWING THIS IS  THE  EDIT  COMMAND  FOLLOWED  BY  THE  END
COMMAND.  AFTER PACKING THE FILE, THE XEDIT COMMAND IS USED ALONG WITH
THE PROPER OPTIONS. AN EXAMPLE OF THIS FOLLOWS. 
  
  
 /NEW,FILE
 /TEXT
 ENTER TEXT MODE. 
  
 DT%
 TABS 7 
 INPUT- 
 %PROGRAM ZZZ (INPUT,OUTPUT)
 10%I = 0 
   ...  REMAINDER OF TEXT ... 
 %END 
 -EDIT
 END
(BREAK/INTERRUPT) 
 EXIT TEXT MODE.
 /PACK
 PACK COMPLETE. 
 /XEDIT,C,C,I=FILE. 
  XEDIT 3.1.0 
  INPUT 
  EDIT
  C       IS A LOCAL FILE 
 /
  
  
                  COPYING, MOVING AND DITTOING TEXT.
  
WHILE XEDIT DOES NOT HAVE ONE COMMAND WHICH  WILL  AUTOMATICALLY  MOVE
TEXT,  IT  DOES  HAVE  TWO  VERY  USEFUL  PRIMATIVES  WHICH ALLOW TEXT
MOVEMENT TO  BE  DONE  WITHOUT  TOO  MUCH  BOTHER.  THE  COMMANDS  ARE
"COPY"/"COPYD"  AND "READ". BY THE USE OF THESE TWO COMMANDS, ONE CAN,
WITHOUT TOO MUCH BOTHER, COPY A PORTION OF TEXT TO A SCRATCH FILE  AND
READ  IT  IN ELSEWHERE. ADDITIONALLY, ONE CAN PROCEED TO RE-READ IT IN
AGAIN, THUS PERFORMING A DITTO FUNCTION. THE  "COPYD"  COMMAND  ALLOWS
THE TEXT TO BE REMOVED FROM THE EDIT FILE FOR INSERTION LATER.
  
  
                   REPEATING SEQUENCES OF COMMANDS. 
  
OFTEN IT IS DESIRED TO HAVE A SEQUENCE  OF  COMMANDS  REPEAT  OVER  AN
ENTIRE  FILE. BY USING THE Y OR Z COMMANDS, ONE CAN SAVE THE RE-TYPING
OF ALL THE COMMANDS, BUT MUST STILL REPEATEDLY ENTER THE "-" COMMAND. 
BY MAKING USE OF THE 0 OPTION  ON  STRING  SEARCHES  (SEE  THE  LOCATE
COMMAND),  ONE  CAN  (CAREFULLY)  CONSTRUCT HIS OWN COMMAND SEQUENCES.
REMEMBERING THAT THE 0 OPTION CAUSES XEDIT  TO  IGNORE  THE  REMAINING
COMMANDS  ON  A LINE IF THE DESIRED STRING IS NOT ON THE CURRENT LINE,
ONE CAN CONSTRUCT COMPLEX LOOPS WITHIN A Y OR Z COMMAND.  THE  SUCCESS
OF  THESE LOOPS REQUIRES CAREFUL THOUGHT AND THE TERMINATION TEST MUST
BE THOUGHT OUT CAREFULLY. IMPROPERLY CODING A LOOP CAN CAUSE XEDIT  TO
EFFECTIVELY  HANG UNTIL TIME LIMIT. THE EXAMPLE SHOWN ASSUMES THAT THE
STRING "ABCD" IS NOT CONTAINED IN THE FIRST LINE OF THE FILE. 
  
REPLACING ALL LINES CONTAINING THE STRING "ABCD" BY  THE  LINE  "FOUND
ONE" CAN BE DONE BY-
  
   ?? TOP 
   ?? Y$LOCATE/ABCD/$L/ABCD/0$+REPLACE$FOUND ONE$-
  
THE COMMAND OPERATES AS FOLLOWS-
  
1. ADVANCE  THE  POINTER  TO  THE  STRING  "ABCD".  (IF  THIS  COMMAND
ENCOUNTERS THE END-OF-FILE, RETURN TO THE FIRST LINE OF THE FILE WHICH
DOES NOT CONTAIN THE STRING "ABCD". 
  
2. CHECK TO SEE IF THE CURRENT LINE CONTAINS THE STRING  "ABCD".  THIS
TEST WILL FAIL ONLY WHEN THE END-OF-FILE HAS BEEN ENCOUNTERED (AND THE
Y COMMAND WILL BE EXITED).
  
3. AS THE STRING "ABCD" HAS BEEN  FOUND,  CONTINUE  TO  THE  "REPLACE"
COMMAND.  THE DATA FOR THE REPLACE (SINCE THE + PREFIX IS NOT USED) IS
THE NEXT PHRASE ON THE LINE (OR "FOUND ONE"). 
  
4. EXECUTE THE LAST Y/Z COMMAND (THE "-" COMMAND). THIS LOOPING  WORKS
SINCE  THE  -  COMMAND  IS  THE  LAST  COMMAND ON THE Y/Z LINE. IF THE
COMMAND WAS LOCATED IN ANY OTHER PART OF THE LINE, XEDIT  WOULD  ISSUE
THE ERROR "COMMAND STACKING ERROR". 
  
  
======================================================================
  
THE FOLLOWING IS A SAMPLE USE OF SOME OF THE COMMANDS IN  XEDIT.  SOME
COMMENTS APPEAR IN BRACKETS NEXT TO NOTABLE LINES.
  
 NEW,SAMPLE              [CREATE A NEW FILE CALLED SAMPLE]
 READY
 AUTO 
 00100 PROGRAM(INPUT,OUTPUT 
 00110 PRINT,*INPUT YOUR EYE QUEUE* 
 00120 READ,IQ
 00130 J=SQRT(FLOAT(IQ))
 00140 IP=10HPRIME
 00150 DO I=2,J 
 00160 IF(MOD(IQ,I).EQ.0)IP=10HNOT PRIME
 00170 10 CONTINUE
 00180 PRINT 400,IQ,IP
 00190 400 FORMAT(*YOR IQ - *I10* IS *A10*) 
 00200 STOP $ 
 00210  *DEL* 
 SAVE 
 READY
 XEDIT                   [CALL UP XEDIT]
  XEDIT 3.1.0            [XEDIT ACKNOWLEDGES] 
 ?? C/YIR/YOUR/          [TRY TO FIX MISSPELLING] 
 END OF FILE             ["YIR" COULD NOT BE FOUND] 
 ?? C$YOR$YOUR           [TRY TO FIX MISSPELLING] 
 DELIMITER               [THE CLOSING $ IS MISSING] 
 00190 400 FORMAT(*YOUR IQ - *I10* IS *A10*)   [VERIFICATION] 
 ?? 115MODIFY            [ATTEMPT TO MODIFY LINE NUMBERED 115]
 LINE NUMBER NOT FOUND, COMMAND NOT EXECUTED
 00120 READ,IQ           [LINE 115 WAS NOT FOUND, POINTER AT 120] 
 ?? X190M                [MODIFY LINE NUMBERED 190 (IN BRIEF MODE)] 
   00190 400 FORMAT(*YOUR IQ - *I10* IS *A10*)
 ?                                          #  [REMOVE THE EXTRA *] 
 ?? C/$/$ END/           [ADD THE END STATEMENT]
 00200 STOP $ END        [VERIFICATION] 
 ?? TOP                  [SET THE POINTER TO THE TOP] 
 ?? A                    [ADD THE TRAILING ")"] 
 ? )
 00100 PROGRAM(INPUT,OUTPUT)    [VERIFICATION]
 ?? M 
   00100 PROGRAM(INPUT,OUTPUT)
                ^ TEST #        [ADD THE PROGRAM NAME]
 00100 PROGRAM TEST (INPUT,OUTPUT)     [VERIFICATION] 
 ?? XQ                   [QUIT EDITING (IN BRIEF MODE)] 
 REPLACE                 [ADD THE CORRECTIONS TO THE PERM. FILE]
 READY
 FORTRAN
 READY
 RNH                     [RUN THE CORRECTED PROGRAM]
  INPUT YOUR EYE QUEUE
 ? 175
 YOUR IQ -       175 IS NOT PRIME 
 STOP 
 RUN COMPLETE.
  
       ==========     END OF XEDIT DOCUMENTATION     ========== 
  
