\chapter{Error Messages}
\label{Error Messages}

     TECO error messages consist of a three letter message preceded by
     a question mark {\tt ?} or preceeded by {\tt ?TEC}.  A short description of
     the error optionally follows (dependent on the current  value  of
     the  EH  flag).   Typing  {\fbox {?}} immediately after an
     error message printout causes the command string to be printed up
     to  and  including  the character which causes the error message.
     Typing {\tt *q} (asterisk, Q-register name) immediately after an  error
     message printout saves the entire command string in the specified
     Q-register.  This is especially useful  for  recovering  mistyped
     insert  commands.  Both the {\tt ?}  and {\tt *q} facilities may be 
	used when
     an error occurs.

     TECO-11 also produces two warning messages.   These  messages  do
     not abort the command and execution continues.

\begin{list}{}{\labelsep 20pt}
     \item[{\tt \%Superseding existing file}]
                   Indicates that the file to be created as the result
                   of  an  {\tt EW}  command  already exists.  If the output
                   file is closed the old copy of  the  file  will  be
                   deleted.  The {\tt EK} command may be used to ``take back''
                   the {\tt EW} command.

     \item[{\tt \%Search fail in iter}]
                   Indicates that a search command has  failed  inside
                   iteration  brackets.   A  {\tt ;}   (semi-colon)  command
                   immediately  following  the  search   command   can
                   typically  be used to suppress this message.  After
                   printing the message, the iteration is  terminated,
                   i.e., TECO simulates a {\tt 0;}  command.
\end{list}






     These  error  messages  are  listed   alphabetically   by   their
     three-letter code.  In general, these three-letter codes have the
     same meaning on  all  implementations,  although  not  all  error
     messages are produced by each implementation.  The one-line error
     message given here is a paraphrasing of the message given,  which
     may differ slightly from system to system.

\begin{list}{}{\labelsep 20pt}

     \item [{\tt ?ARG} \hspace{.25in} {\tt Improper Arguments}]
                   Three arguments are given ({\tt a,b,c} or {\tt H,c}).

     \item [{\tt ?BNI} \hspace{.25in} {\tt > not in iteration}]
                   There is a close angle bracket not  matched  by  an
                   open  angle  bracket somewhere to its left.  (Note:
                   an iteration in a macro stored in a Q-register must
                   be complete within the Q-register.)

     \item [{\tt ?CCL} \hspace{.25in} {\tt CCL.SV not found or EG argument too long}]
                   The {\tt EGcommand}\escape command on OS/8 was unable to 
		locate
                   {\tt SYS:CCL.SV}  or  the specified command has more than
                   46 characters.

     \item [{\tt ?CON} \hspace{.25in} {\tt Confused use of conditionals}]
                   Conditionals,    parenthesized    arguments,    and
                   iterations  must  be  properly  nested.   The  user
                   probably used  some  construct  like:   {\tt N"E...(...'}
                   where  an  iteration  or  parenthesized argument is
                   begun in a conditional but not  terminated  in  the
                   same conditional.

     \item [{\tt ?CPQ} \hspace{.25in} {\tt Can't pop into Q-register}]
                   A {\tt ]} command has been executed and there is  nothing
                   saved on the Q-register push down list.

     \item [{\tt ?DEV} \hspace{.25in} {\tt Invalid device}]
                   A  file  specification  string  in  an  {\tt E}   command
                   contains an unknown device name.

     \item [{\tt ?DTB} \hspace{.25in} {\tt Delete too big}]
                   An {\tt nD} command  has  been  attempted  which  is  not
                   contained within the current page.

     \item [{\tt ?ERR} \hspace{.25in} {\tt RSTS/E error message    (RSTS/E only)}]
                   Some RSTS/E monitor call failed.  The error message
                   text explains the error.

     \item [{\tt ?FER} \hspace{.25in} {\tt File Error}]
                   The file specified in an {\tt ER}, {\tt EW} or {\tt EB}
		  command  was
                   not found.

     \item [{\tt ?FNF} \hspace{.25in} {\tt File not found ``filespec''}]
                   The requested input file could not be located.   If
                   this  occurred within a macro the colon modified {\tt ER}
                   or {\tt EB} command may be necessary.

     \item [{\tt ?FUL} \hspace{.25in} {\tt Output Command would have overflowed output device}]
                   The page of text currently in the text buffer  will
                   not fit in the open output file.  Until enough free
                   space can be obtained on the output device the file
                   may  have  to be split.  An {\tt EF} command to close the
                   current output file, followed by a new  {\tt EW}  command
                   to  a temporary file may be used.  The files should
                   be  concatenated  when   the   space   problem   is
                   alleviated.

     \item [{\tt ?ICE} \hspace{.25in} {\tt Illegal \caret E Command in Search Argument}]
                   A search argument contains a  \caret{\tt E}  command  
		that  is
                   either  not  defined or incomplete.  The only valid
                   \caret{\tt E} commands in search  arguments  are:   
			\caret{\tt EA},  \caret{\tt ED},
                   \caret{\tt EV}, \caret{\tt EW}, \caret{\tt EL}, 
			\caret{\tt ES}, \caret{\tt E<NNN>}, and 
			\caret{\tt E[A,B,C,...]}.

     \item [{\tt ?IEC} \hspace{.25in} {\tt Illegal character ``x'' after E}]
                   An invalid {\tt E} command  has  been  executed.   The  
			{\tt E}
                   character must be followed by an alphabetic to form
                   a legal {\tt E} command (i.e., {\tt ER} or {\tt EX}).

     \item [{\tt ?IFC} \hspace{.25in} {\tt Illegal character ``x'' after F}]
                   An invalid {\tt F} command has been executed.

     \item [{\tt ?IFN} \hspace{.25in} {\tt Illegal character ``x'' in filename}]
                   The filespec  as  an  argument  to  one  of  the  {\tt E}
                   commands  is  unacceptable to the system.  The file
                   specification must be appropriate to the system  in
                   use.

     \item [{\tt ?IIA} \hspace{.25in} {\tt Illegal insert arg}]
                   A command of  the  form  {\tt nItext}\escape  was  attempted.
                   Combining   character   {\tt nI}\escape   and  text  
		{\tt Itext}\escape)
                   insertions is illegal.

     \item [{\tt ?ILL} \hspace{.25in} {\tt Illegal command ``x''}]
                   An attempt has been made to execute an invalid TECO
                   command.

     \item [{\tt ?ILN} \hspace{.25in} {\tt Illegal number}]
                   An 8 or 9 has been entered when the radix  of  TECO
                   is set to octal.

     \item [{\tt ?INP} \hspace{.25in} {\tt Input error}]
                   The system has reported an error attempting to read
                   the  current  input  file.   The text buffer may be
                   corrupt.  This operation may be retried, but if the
                   error  persists, you may have to return to a backup
                   file.

     \item [{\tt ?IPA} \hspace{.25in} {\tt Negative or 0 argument to P}]
                   The  argument  preceding  a  {\tt P}  or  {\tt PW}  
		command  is
                   negative or 0.

     \item [{\tt ?IQC} \hspace{.25in} {\tt Illegal " character}]
                   One of the valid {\tt "} commands did not  follow  the 
			{\tt "}.
                   Refer   to   Section  \ref{Conditional Execution
                   Commands} for the legal set of commands.

     \item [{\tt ?IQN} \hspace{.25in} {\tt Illegal Q-register name ``x''}]
                   An illegal Q-register name was specified in one  of
                   the Q-register commands.

     \item [{\tt ?IRA} \hspace{.25in} {\tt Illegal radix argument to \caret R}]
                   The argument to a \caret{\tt R} radix command must be  
			8,  10,
                   or 16.

     \item [{\tt ?ISA} \hspace{.25in} {\tt Illegal search arg}]
                   The argument preceding a search command is 0.  This
                   argument must not be 0.

     \item [{\tt ?ISS} \hspace{.25in} {\tt Illegal search string}]
                   One of the search string  special  characters  
		(\caret{\tt Q},
                   \caret{\tt V}, \caret{\tt W}, etc.) would have modified 
		the search string
                   delimiter (usually {\tt <ESCAPE>}).

     \item [{\tt ?IUC} \hspace{.25in} {\tt Illegal character ``x'' following 
		\caret }]
                   The character following an \caret  must have ASCII  value
                   between  100  and  137 inclusive or between 141 and
                   172 inclusive.

     \item [{\tt ?MAP} \hspace{.25in} {\tt Missing '}]
                   Every conditional (opened with the {\tt "} command)  must
                   be closed with the {\tt '} command.

     \item [{\tt ?MEM} \hspace{.25in} {\tt Memory overflow}]
                   Insufficient  memory  available  to  complete   the
                   current  command.   Make  sure  the Q-register area
                   does not contain much unnecessary  text.   Breaking
                   up  the  text  area  into  multiple  pages might be
                   useful.  (See section \ref{Manipulating Large Pages}.)

     \item [{\tt ?MLA} \hspace{.25in} {\tt Missing Left Angle Bracket}]
                   There is a right angle bracket that has no matching
                   left  angle bracket.  An iteration must be complete
                   within the macro or command.

     \item [{\tt ?MLP} \hspace{.25in} {\tt Missing (}]
                   There is a right parenthesis that is not matched by
                   a corresponding left parenthesis.

     \item [{\tt ?MRA} \hspace{.25in} {\tt Missing Right Angle Bracket}]
                   There is a left angle bracket that has no  matching
                   right angle bracket.  An iteration must be complete
                   within the macro or command.

     \item [{\tt ?MRP} \hspace{.25in} {\tt Missing )}]
                   There is a right parenthesis that is not matched by
                   a corresponding left parenthesis.

     \item [{\tt ?MSC} \hspace{.25in} {\tt Missing Start of Conditional}]
                   A {\tt '} command (end of conditional)  was  encountered.
                   Every  {\tt '}  command  must be matched by a 
		preceding {\tt "}
                   (start of conditional) command.

     \item [{\tt ?NAB} \hspace{.25in} {\tt No arg before \caret \_}]
                   The  \caret {\tt \_}  command  must  be  preceded  
		by  either  a
                   specific numeric argument or a command that returns
                   a numeric value.

     \item [{\tt ?NAC} \hspace{.25in} {\tt No arg before ,}]
                   A command has been executed in which  a  {\tt ,}  is  not
                   preceded by a numeric argument.

     \item [{\tt ?NAE} \hspace{.25in} {\tt No arg before =}]
                   The {\tt =}, {\tt ==}, or  {\tt ===}  command  must  be  
		preceded  by
                   either  a  specific  numeric  argument or a command
                   that returns a numeric value.

     \item [{\tt ?NAP} \hspace{.25in} {\tt No arg before )}]
                   A ) parenthesis has been  encountered  and  is  not
                   properly preceded by a specific numeric argument or
                   a command that returns a numeric value.

     \item [{\tt ?NAQ} \hspace{.25in} {\tt No arg before "}]
                   The {\tt "} commands must be preceded by a single numeric
                   argument  on  which  the  decision  to  execute the
                   following commands or skip to  the  matching  {\tt '}  is
                   based.

     \item [{\tt ?NAS} \hspace{.25in} {\tt No arg before ;}]
                   The {\tt ;}  command must be preceded by a single numeric
                   argument  on  which  the  decision  to  execute the
                   following commands or skip to  the  matching  {\tt $>$}  is
                   based.

     \item [{\tt ?NAU} \hspace{.25in} {\tt No arg before U}]
                   The {\tt U} command must be preceded by either a specific
                   numeric  argument  or  a  command  that  returns  a
                   numeric value.

     \item [{\tt ?NCA} \hspace{.25in} {\tt Negative argument to ,}]
                   A comma was preceded by a negative number.

     \item [{\tt ?NYA} \hspace{.25in} {\tt Numeric argument with Y}]
                   The {\tt Y} command must not  be  preceded  by  either  a
                   numeric  argument  or  a  command  that  returns  a
                   numeric value.

     \item [{\tt ?NYI} \hspace{.25in} {\tt Not yet implemented}]
                   A command  was  issued  which  tries  to  invoke  a
                   feature  not  available  on  this implementation of
                   TECO.

     \item [{\tt ?NFI} \hspace{.25in} {\tt No file for input}]
                   Before issuing an input command, such as {\tt Y},  it  is
                   necessary to open an input file by use of a command
                   such as {\tt ER} or {\tt EB}.

     \item [{\tt ?NFO} \hspace{.25in} {\tt No file for output}]
                   Before issuing an output command such as  {\tt N}  search
                   or  {\tt P} it is necessary to open an output file by use
                   of a command such as {\tt EW} or {\tt EB}.

     \item [{\tt ?NPA} \hspace{.25in} {\tt Negative or 0 argument to P}]
                   A {\tt P}  command  was  preceded  by  a  negative  or  
			{\tt 0}
                   argument.

     \item [{\tt ?NRO} \hspace{.25in} {\tt No room for output}]
                   The  output  device  is  too  full  to  accept  the
                   requested output file.

     \item [{\tt ?NYI} \hspace{.25in} {\tt Not Yet Implemented}]
                   A command was issued that is not yet implemented in
                   this version of TECO.

     \item [{\tt ?OFO} \hspace{.25in} {\tt Output file already open}]
                   A command has been executed which tried  to  create
                   an  output  file,  but  an output file currently is
                   open.  It is typically appropriate to use the {\tt EC} or
                   {\tt EK}  command as the situation calls for to close the
                   output file.

     \item [{\tt ?OUT} \hspace{.25in} {\tt Output error}]
                   The system has reported an error attempting  to  do
                   output  to  the output file.  Make sure that output
                   device did not become write locked.  Use of the  {\tt EF}
                   command  (or {\tt EK} if necessary) and another {\tt EW}
			 can be
                   considered until the condition is fixed.

     \item [{\tt ?PES} \hspace{.25in} {\tt Attempt to Pop Empty Stack}]
                   A {\tt ]}  command  (pop  off  q-register  stack  into  a
                   q-register)  was encountered when there was nothing
                   on the q-register stack.

     \item [{\tt ?PDO} \hspace{.25in} {\tt Push-down list overflow}]
                   The  command  string  has   become   too   complex.
                   Simplify it.

     \item [{\tt ?POP} \hspace{.25in} {\tt Attempt to move Pointer Off Page with "x"}]
                   A {\tt J},  {\tt C}  or  {\tt R}  command  has  been  
		executed  which
                   attempted  to  move  the pointer off the page.  The
                   result of executing  one  of  these  commands  must
                   leave  the pointer between {\tt 0} and {\tt Z}, inclusive.  
		The
                   characters referenced by a {\tt D} or {\tt m,nX}  command  
		must
                   also be within the buffer boundary.

     \item [{\tt ?SNI} \hspace{.25in} {\tt ; not in iteration}]
                   A {\tt ;}  command has been executed outside of  an  open
                   iteration   bracket.   This  command  may  only  be
                   executed within iteration brackets.

     \item [{\tt ?SRH} \hspace{.25in} {\tt Search failure ``text''}]
                   A search command not preceded by a  colon  modifier
                   and  not within an iteration has failed to find the
                   specified {\tt text}.  After  an  {\tt S}  search  fails  the
                   pointer  is  left  at  the beginning of the buffer.
                   After an {\tt N} or {\tt \_} search fails the last page  
		of  the
                   input  file  has  been input and, in the case of {\tt N},
                   output, and the buffer is cleared.  In the case  of
                   an  {\tt N}  search  it is usually necessary to close the
                   output file and reopen it for continued editing.

     \item [{\tt ?STL} \hspace{.25in} {\tt String too long}]
                   A search or file name string is too long.  This  is
                   most  likely  the result of a missing {\tt <DELIM>} after
                   the string.

     \item [{\tt ?TAG} \hspace{.25in} {\tt Missing Tag !tag!}]
                   The tag {\tt !tag!}  specified by an {\tt O} command cannot  
		be
                   found.  This tag must be in the same macro level as
                   the {\tt O} command referencing it.

     \item [{\tt ?UTC} \hspace{.25in} {\tt Unterminated command ``x''}]
                   This is a general error which is usually caused  by
                   an   unterminated   insert,   search,  or  filespec
                   argument,   an   unterminated   \caret{\tt A}   message,    
		an
                   unterminated  tag  or comment (i.e., unterminated !
                   construct), or a missing {\tt '} character which closes a
                   conditional execution command.

     \item [{\tt ?UTM} \hspace{.25in} {\tt Unterminated macro}]
                   This error is the same as  the  {\tt ?UTC}  error  except
                   that  the unterminated command was executing from a
                   Q-register (i.e., it  was  a  macro).   (Note:   An
                   entire command sequence stored in a Q-register must
                   be complete within the Q-register.)

     \item [{\tt ?XAB} \hspace{.25in} {\tt Execution aborted}]
                   Execution of TECO was aborted.  This is usually due
                   to the typing of \fbox{CTRL/C}.

     \item [{\tt ?WLO} \hspace{.25in} {\tt System Device Write-Locked}]
                   TECO-8 needs to write on the system device when  it
                   is  running in less than 16K (less than 20K if VT52
                   is present) so that it can later swap in overlays.

     \item [{\tt ?YCA} \hspace{.25in} {\tt Y command aborted}]
                   An attempt has been made  to  execute  an  {\tt Y}
		  or  {\tt \_}
                   search command with an output file open, that would
                   cause text in the text buffer to be erased  without
                   outputting  it  to the output file.  The {\tt ED} command
                   (section \ref{Mode Control Flags}) controls this check.

     \item [{\tt ?nnn} \hspace{.25in} {\tt I/O Error or Directive Error              (RSX-11 only)}]
                   All errors from the executive and file  system  are
                   reported  in  this format, where nnn is the decimal
                   I/O or directive error  status.   The  accompanying
                   message  is  the  corresponding  message  from  the
                   {\tt QIOSYM} message file.  A complete list  of  I/O  and
                   directive  errors  appears  in  appendices  to  the
                   various Executive  reference  manuals  and  in  the
                   IAS/RSX-11 {\em I/O Operations Reference Manual}.
\end{list}
