                      Summary of Teco Commands

           Lower Case

a  without argument>>40<<. appends next page to buffer
   with positive argument between 1 and 3>>40<<. takes
      from 1 to 3 characters following the a, packs
      them left justified, and standdds in expression
      as that value.
   with negative argument between -1 and -3>>40<<. takes
      from 1 to 3 characters following current position
      of pointer in buffer, does as above. Pointer
      moves over characters examined.

b  has the value of the position at the beginning of the
      buffer

c  with single argument, positive or negative>>40<<. moves
      over number of characters specified by argument.
      Negative argument causes reverse motion.

d  with single argument, positive or negative>>40<<. deletes
      specified number of characters after pointer (before
      pointer if arg is negative).

e  inserts stop code at pointer.

f  with single positive argument>>40<<. feeds number of lines
      of blank tape specified by argument.

g  with single argument consisting of single q register
      into which block of characters has been 'x'ed>>40<<.
      inserts previously stored block of characters
      at pointer.
   with no argument>>40<<. does garbage collection

h  with single positive argument, n>>40<<. inserts the n characters
      following the 'h' into the buffer at the pointer.

i  with no argument and sw3 down>>40<<. inserts into buffer at
      pointer characters following i until center dot.
   with no argument and sw3 up>>40<<. takes character immediately
      following 'i' as delimiter>>40<<, inserts characters until
      second occurance of delimiter.
   with argument magnitude less than 4096>>40<<. inserts argument
      into buffer at pointer as signed decimal number.

j  with single argument which is position in buffer>>40<<. moves
      pointer to specified position.

k  with single positive argument>>40<<. deletes characters from
      pointer to and including n>>40<<t>>40<<h following carriage return.
  with single negative argument>>40<<. deletes characters from
      but not including n>>40<<t>>40<<h previous carriage return to
      pointer
   with double argument>>40<<. deletes characters between specified
      two buffer positions.









/
                           2

l  with single positive (negative) argument>>40<<. moves pointer
      forward (backward) until n>>40<<t>>40<<h following (preceeding)
      carriage return.  Pointer is left following the 
      carriage return.

m  with no argument>>40<<. inserts commands from typewriter
      in command string following the 'm'>>40<<, commences
      executing same when upper case followed by lower case
      is typed in.
   with single argument>>40<<. defines macro having as its name
      the characters between the 'm' and the first following
      comma (only first three are recognized). Macro definition
      consists of characters between name-terminating comma and
      first occurance of overbar immediately followed by period.
      Nested definitions are not allowed.  Macros are called by
      placing an overbar immediately before the name, and a 
      comma immediately after the name.    Nested calls are allowed.
      Macros may be redefined.

n  causes the contents of the buffer to be punched and the
      program to halt.  'CONTINUE' to execute additional 
      commands.

o  with single positive arguement, n>>40<<. inserts n
      characters into buffer at pointer.  Characters are
      indicated by their concise code values typed in octal
      following the 'o'.

p  with single positive argument,,unches contents of buffer
      and reads in next page n times.
      Does not attempt to read in new page after last page
      punched if 'w' immediately follows 'p'.

q  followed by single letter or number>>40<<. designates one of 36
      available temporary storage registers.

r  with single argument, positive or negative>>40<<. moves pointer
      in reverse over specified number of characteeers.  Negative argument
      causes forward motion.


s  with no argument>>40<<. presumes string following 's' in format
      same as 'i' (including sw3 option).  Moves pointer
      forward until identical string is found.  If string
      is not found in buffer, contents of buffer are punched
      and new page is read in anddd search continues.  If sw6
      is up, search is discontinued if string is not in buffer>>40<<,
      string is then typed out followed by question mark,
      and commands following the 's' are ignored.
   with single argument which is position of block of characters
      including terminator as specified above located in buffer
      or 'q' storage>>40<<. searches for string in storage instead of
      following 's'.  sw6 option as above.

t  takes arguments in same forms as 'k'.  Types out characters
      on on-line typewriter.  Pointer does not move.

u  stores argument in 'q' register immediately following 'u'.





>>37<<                         3

v  same as 't' except displays characters on scope instead of
      typing.

w  prevents 'p' from reading in new page after last page has
      been punched.

x  takes arguments in same form as 'k'>>40<<, must be followed by
      'q' register. Places characters in storage.  Leaves
      address in specified 'q' register such that characters
      may be retrieved by 'g'.  Pointer does not move>>40<<, characters
      are not deleted from buffer.

y  deletes entire contents of buffer, reads in new page.

z  has the value of the position at the end of the buffer.


















































                             >>04<<

               Upper Case

A  causes longitudinal parity character to be punched following stop
      code for all succeding pages.  C character consists of xor
      of all characters on page with delete bit punched.  TECO always
      examines the line immediately followinggstopcode.  If it does
      not have the delete bit punched, it is ignored.  If the delete
      bit is punched, the character is compared with one computed while
      reading the page, and a disagreement causes an informative typeout.

B  with single positive argument>>40<<. causes output to be written on tape unit
      number specified by argument.
   with single negative argument>>40<<. causes output to be written on drum field
      number as spppecified by magnitude of argument.

C  causes the entire stored command string to be inserted in the buffer
      at the pointer.  Command string is not changed.

D  with single argument>>40<<. sets up size of characters for display routine.
      2 is minimum displayable size.  Routine is initially set to 4.

E  causes TECO to discontinue punching longitudinal parity check character
      (A) for succeeding pages.

F  with arguments same as 's'>>40<<. operates same as 's' except does not
      punch pages.

G  kills present command string and buffer and commences reading command
       tape.

H  dismisses reader and punch (time share).

I  with single argument>>40<<. specifies number of places between tab stops
      for disppJ  unused

K  kills entire command string, moves entire buffer to command string,
      kills entire buffer, commences executing commands at beginning
      of strrring just moved.  All macro definitions are killed.  Loop
      depth is set to 0.

L  with no argument>>40<<. rewinds both tape units being used.
   with single positive argument>>40<<. rewinds specified tape unit.

M  unused

N  unused

O  with single argument>>40<<. causes argument to be printed on line as signed
      octal number.

P  causes output to be punched, clears punch buffer, requests punch.
       If punch is not available, 'punch busy' is typed.  Typing in
       carriage return causes request to be made again.

Q  unused

R  causes input to be taken from paper tape reader, clears reader buffer,
      requests reader.  If reader unavailable, action as in 'P'.





1                           5

S  with arguments same as 's'>>40<<. operates same as 's' except does not
      move beyond end of current buffer if string is not found.  If
      string is found, entire 'S' commands has value -1.  If string
      is not found, pointer is at end of buffer and entire 'S' command
      has value 0.

T  with single positive argument which is tape unit number>>40<<. causes
      input to be taken from specified tape unit instead of paper tape
      reader.
   with single negative argument>>40<<. causes input to be tak>>60<<n from drum
       field number as specified by magnitude of argument.

U  unused

V  has the value of the number of carriage returns passed over during the
      last search ('s', 'F' or 'S').

W  has the value of the test word.

X  unused

Y  unused

Z  unused


                      Other Characters

,  [comma] seperates arguments for double argument commands>>40<<, terminates
      macro names>>40<<, indicates point at which value for loop control
      is found

=  [equals] with single argument>>40<<. cuases argument to be printed
      on line as signed decimal number.

. [period]  has value of pointer.

x  [times]cates multiplication in command string expression.

/  [slash] indicates division if within command string expression>>40<<, indicates
      start of comment if not within expression.  Comment continues
      until next carriage return.  Comment is typed on line if sw4 is
      up of if first / is followed by a second.

>>40<<   [centerdot] terminates search and insert strings if sw3 down.

-  [minus] indicates subtraction in command string expression.
 
>>56<<   [overbar] indicates beginning of macro name if followed by legal macro
      name character (letter or number),indicates end of macro
      definition if followed by period.

>>40<<(  [centerdot, open paren]  indicates start of loop.  Loop is executed
      if eexpression immediately before next comma is negative.  If
      expression is zero of positive, commands are skipped until
       matching >>40<<) [centerdot, close paren] is encountered.

>>40<<)  [centerdot, close paren]  loops back to matching >>40<<( [center dot,
      open paren].





>>52<<

              Error Procedure

There are various ways in which TECO can be given commands
which it feels are impossible to execute.  Examples of these
are inserts and serches with no terminating character in the
remainder of the command string, an 'h' or 'o' command with
an argument larger than the number of characters remaining in
the command string, or an 'o' command in which a non-octal
character is encountered.

When one of these situations arises, TECO will print 'error'
on line.  Following will be a typeout of the last 40 (decimal)
characters encountered in the command string.  The last command in this
string is responsible for the error.  Following that is a typeout
of various registers containing pointers to positions in the buffer.

     buf  is the first character address being used for
          material stored by 'x' commands.

     tsl  is the first character address of the command
          string.  (All material from buf to tsl is 'x' storage.)

     cps  is the character address of the present position in
          the command string.

     b    is the character address of the beginning of the working
          buffer (same value as command 'b').

     .    is the character address of the pointer in the buffer.

     z    is the character address of the first location not used
          by the buffer.  (equal to the value of command 'z' plus 1).

The quotient obtained by dividing the character address by 3
is the actual memory location.  The remainder, 0, 1 or 2
indicates the left, middle or right 6 bits respectively of the word.

TECO then enters a special post error typein loop in which the
following characters are meaningful.

  Carriage return  ignores all commands following error, re-enters
                   regular typein loop if sw1 up, halts if sw1 down.

  p                continues executing commands following error.

  m                enters regular typein loop.  Commands typed in
                   will be executed, then commands in command
                   string following error will be executed.

  overbar          if sw5 down types out next character in command
                   string.  If sw5 up types out commands until end
                   of command string reached or sw5 lowered.

  b                sets command position pointer to beginning of
                   command string.

Usually one should type carriage return and type in the corrected
commands.  The other options may be useful in special circumstances.






>>53<<                                                                                                                             
