Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-11 - 43,50526/sprim.doc
There are no other files named sprim.doc in the archive.


101 - |os,s|                  Output String

This  function  causes  the selected output device to output the
string of characters symbolized by "s".


102 - |is,dev|                Input String

The value of this function is a stream of characters coming from
the  currently selected input device; termination occurs as soon
as   the   currently   specified   "activating   character"   is
encountered; this activating character does not become  part  of
the value string of the function.


103 - |dt,t,s,d1,d2|          Define Text (superseding)
      \dt,t,s,d1,d2\          Define Text (save current)

This  function  is used to create a "text" whose name is denoted
by "t", containing the string of characters symbolized  by  "s";
arguments denoted by "d1", "d2" are for undefined purposes.

The  active form of the expression serves also to erase the text
whose name is "t" if currently in the  text  area;  the  neutral
form will not cause any text deletion.


104 - |et,t1,t2,...,t|        Erase Text
      \et,t1,t2,...,t\        Erase all occurences of Text

This  function  is  used to erase from the text area texts whose
names are denoted by the arguments of the expression; the active
form of the expression erases only the  latest  version  of  the
named  texts,  should  more  than one version exists in the text
area.


105 - |lt,s0,d1,d2,...,d|     List Texts

The  value  of this function is a list of the names of the texts
to be found in the text area;  each  name  is  preceded  by  the
string symbolized by "s0".

Arguments symbolized by "d1", "d2", ... have not been defined.


106 - |ft,t,s1,s2,...,s|      Fetch Text

The  value  of  this function is the contents to be found in the
text named "t" to the right of its internal text divider.

Any partitions found in that portion of the  text  are  replaced
with  the  strings denoted "s1", "s2", ... "s", in such a manner
that partitions with value "1" are replaced  by  "s1",  value  2
with "s2" and so forth.


107 - |pt,t,s1,s2,...,s|      Partition Text all matches
      \pt,t,s1,s2,...,s\      Partition Text next match

The  purpose  of  this  function is to replace in the text whose
name is denoted by "t" the strings symbolized by "s1", "s2", ...
"s" with partitions identified by numbers  which  correspond  to
the  position  of  the strings in the expression; that is to say
"s1" is replaced by a partition value  "1",  "s2"  by  partition
value "2" &c.

In  its  active  form,  this  function  serves  to  replace  all
occurences of the desired strings; in its neutral form only  the
first  occurence  found is so replaced for each of the specified
strings.

Action takes place starting  at  the  current  location  of  the
internal text divider which is not moved by this function.

A particular example of interest might be:

	&pt,animal,dog,dog,dog,dog/=

This  example  would  in the text whose name was animal, replace
the first match with "dog" with partition value "1", the second,
"2", the third with "3" and the fourth with "4".


108 - |pc,d|                  Partition Character

The  value  of this function is a "partition character" of value
symbolized by the decimal number "d".


109 - |mt,t,s1,s2,...,s|      Multi-part Text all matches
      \mt,t,s1,s2,...,s\      Multi-part Text next match

This  function  serves  to  replace  in  the  text whose name is
denoted by "t" the strings symbolized by "s1",  "s2",  "s"  with
multi-partitions  of  values  respectively  "1",  "2",  ...; the
neutral form of this function only replaces the first  occurence
of these strings found in the text.


110 - |mc,d|                  Multi-partition Character

The  value  of  this function is the "multi-partition character"
whose value is denoted by the decimal number "d".


111 - |ni,vt,vf|              Neutral Implied

This  function returns the string symbolized by "vt" if the last
previously executed implied "fetch text" was  neutral.  If  that
last  previously  executed  implied "fetch" was active, then the
value of this function is that string symbolized by "vf".


112 - |ex,f|                  Exit

This  function  is  used  to  exit  from the processor back to a
system monitor; if the expression contains any  arguments,  such
as  "f"  then  a  file  is  created  in  auxiliary storage which
contains all of the user work space including variables, working
area and text area.

This file is given the name denoted by "f", and may be  reloaded
on  any other system and the action interrupted by the execution
of this function is then resumed at the same point.

Successful resumption of action is subject to  compatibility  as
determined  by verification of the system authorship and version
number.


113 - |ca,s|                  Change Activator (current)
      \ca,s\                  Change Activator (initial)

The  purpose  of  this  function  is  to change the symbol which
terminates input from its current value to that denoted  by  the
first  character  of  the  string denoted by "s"; active form is
used to change the operational activating character whereas  the
neutral form is used to change the initial table.


114 - |ht,t|                  Hide Text
      \ht\                    Hide all Texts

The  purpose of this function is to put a screen or fence in the
text area such that only those texts created  after  that  whose
name is denoted by "t" are available.

This  fence  is  removed  by  execution of this function with no
arguments; if it is desired to conceal all of the text area, the
neutral form is to be executed.


115 - |ic|                    Input Character

The  value of this function is one character the source of which
is the currently selected input device; this may  be  absolutely
any one single character in the system character set.


116 - |id,d|                  Input "D" characters

The  value  of  this function is a stream of characters from the
current selected input device; the  action  is  terminated  when
that  number symbolized by "d" has been received; in the case of
certain sources, an End of File will also terminate.


117 - |im,s1,s2,...,s|        Input to Match

The  value  of  this expression is a stream of characters coming
from the currently selected input device;  termination  of  this
stream  occurs as soon as one of the strings symbolized by "s1",
"s2", ... "s" has  been  encountered;  the  value  includes  the
string that caused termination.


118 - |vt,t1,t2,...,t|        View Texts

This  function  enables examination of defined texts, indicating
visually the location of internal text divider,  partitions  and
their values, as well as multipartitions.


119 - |xr,x|                  eXamine Register

The  value  of  this  function  is  the  contents  of the memory
location symbolized in the current "X" base by "x".


120 - |xw,x1,x2|              eXperimental Write in reg.

Use  of  this  function  causes  writing the value "x1" into the
memory location "x2"; both of these are in the current "X" base.



121 - |xrp,x|                 eXamine Register Pair

The  value  of this function is the combined contents of the two
memory locations, whose first  location  is  symbolized  in  the
current "X" base by "x".


122 - |xwp,x1,x2|             eXperimental Write reg. Pair

Use  of  this  function  causes  writing of the double word data
symbolized in the "X" base by "x1" in the memory location  whose
first word is identified by "x2".


123 - |xj,x|                  eXperimental Jump

Execution  of  this function cause a jump to the memory location
symbolized in the "X"  base  by  "x";  a  return  from  programs
encountered  at that location will cause normal reentry into the
system scanner.


124 - |tma|                   Trace Mode All activated
      \tma\                   Trace Mode All deactivated

Active  execution  enables  full trace action; neutral execution
allows display only of expressions about to be executed.


125 - |tm,d|                  Trace Mode activated
      \tm\                    Trace Mode deactivated

This  function  is  used to enable step by step execution of the
scripts and functions of the language; once activated each  step
is  initiated  by depression of the "new line" key ("line feed")
or a specified number of steps may be specified  by  the  number
symbolized by "d".


126 - |yt,t,s,vt,vf|          Ys There

This function searches the text whose name is denoted by "t" for
an  exact  match  with  the  string symbolized by "s"; if such a
match is found, then the value of the expression is that  string
symbolized by "vt", else it is that string symbolized by "vf".


127 - |tb,t,vt,vf|            Text Branch

If  the  text whose name is denoted by "t" is to be found in the
text area, then  the  value  of  the  function  is  that  string
symbolized by "vt", else the value is string symbolized by "vf".


128 - |ad,n1,n2,n3,...,n|     Add

The  value  of  this  expression  is  the  arithmetic sum of the
integer numbers denoted by "n1", "n2",  ...  "n".  Each  of  the
arguments  is  examined  from  right  to left until a symbol not
representing a valid  number  in  the  current  number  base  is
encountered;  non  numeric  symbols  prefixing the arguments are
ignored with the exception of those in argument  "n1"  which  is
carried into the value string of the expression. For example:

	%ad,dog5,cat6/={dog11}

Negative  numbers  are  indicated in the usual manner with a "-"
sign which must immediately precede the string  of  integers  it
applies to thus:

	%ad,dog-5,cat6/={dog1}

Ommitted  arguments  (such as adjacent commas) have the value of
the "null string" and a numeric value of zero (0) as illustrated
in the following example:

	%ad,dog,/={dog0}

[Note: multiple arguments not supported in all processors]


129 - |su,n1,n2,...,n|        Subtract

The  value  of  this  function  is the result of subtracting the
number symbolized by "n2" from  that  symbolized  by  "n1";  all
rules  indicated  for  sign  and  non numeric matter in the "ad"
function apply.


130 - |mu,n1,n2,vz|           Multiply

The  value  of  this  function  is the arithmetic product of the
numbers symbolized by "n1", and "n2". The same rules as to  sign
and  non  numeric  matter apply for this function as they do for
the "ad" function.

Should an overflow condition arise as a result of the  execution
of  this  function,  then  the  value  of the expression is that
string symbolized by "vz".


131 - |di,n1,n2,vz|           Divide

The value of this function is the integer result of dividing the
number denoted by "n1", by the second number denoted by "n2"; if
the  result of the division would be indeterminate - "n2" = zero
- then the value of the expression is  that  string  denoted  by
"vz".

Treatment  of  non numeric, signs, and null strings is identical
to that described in the "ad" function.


132 - |ct,t1,t2,t3,...,t|     Combine Texts (superseding)
      \ct,t1,t2,t3,...,t\     Combine Texts (save current)

The  purpose of this function is to create a text, whose name is
denoted by "t1" which will contain the  "concatenation"  of  the
texts whose names are denoted by "t2", "t3", ... "t".

The  active  form of the expression will also delete the current
text named "t1" if any; the neutral form of the expression  will
not cause deletion of any pre-existing texts.


133 - |cnb,d|                 Change Number Base (active)
      \cnb,d\                 Change Number Base (initial)

The  purpose  of  this  function  is  to change the radix of the
processor's arithmetic functions; this is  always  expressed  as
the  decimal  number  symbolized  by  "d" in the expression; see
[qnb]; active form of the expression changes the  value  of  the
radix  used  during the actual operations while the neutral form
changes the initial table. Note that the neutral change can only
be effective while the processor is in unprotected  memory,  and
will  have no effect if the processor is executed from read only
or protected memory.


134 - |qnb|                   Query Number Base

The value of this function is the current value of the radix for
arithmetic operations and functions.


135 - |ii,s1,s2,vt,vf|        If Identical

Strings  symbolized  by "s1", and "s2" are compared, if found to
be absolutely identical, then the value  of  the  expression  is
that  string  symbolized  by "vt"; if not identical the value is
the string symbolized by "vf".


136 - |ig,d1,d2,vt,vf|        If Greater

This  expression compares in an arithmetic sense the two strings
denoted by "d1" and "d2"; if the value of "d1" is  greater  than
that  of  "d2",  then the value of the expression is that string
symbolized by "vt", else the value is that string symbolized  by
"vf".


137 - |fc,t,vz|               Fetch Character

The  value  of  this  function  is  the  character  to  be found
immediately to the right of the internal  text  divider  of  the
text  whose  name  is denoted by "t"; if such a character exists
then the text divider is advanced to point to the next available
character - or alternatively to the end of the "text".

If no character is available then the value of the expression is
that string denoted by "vz" which is always treated actively.


138 - |fdc,t,d,vz|            Fetch "D" Characters

The  value of this function is that decimal number of characters
denoted by "d" which is to be found to the right or left of  the
internal  divider  of  the  text whose name is denoted by "t"; a
positive number specifies to the right, and a negative number to
the left; the text divider is then relocated  to  point  to  the
next  character  available  if  to  the  right,  or to the first
character returned in the value string if to the left.

Should   there  be  absolutely  no  characters  (not  even  one)
available for the value, then "vz" represents the  string  which
will  be returned as the value of the expression, and this value
is always treated actively.


139 - |fde,t,d,vz|            Fetch "D" Elements

The  value  of this function is that string of characters to the
right or left of the text divider of  the  text  whose  name  is
denoted  by "t" which comprises the number of elements specified
by the decimal number "d"; an element is  that  which  is  found
between partitions.

The  divider  is then moved either to the right or left to point
either to the next character to be read (if  to  the  right)  or
that  character  which corresponds to the first character of the
value string (if to the left).

If absolutely no characters are returned, then  the  divider  is
not  moved  and  the  value  of  the  expression  is that string
symbolized by "vz" which is always treated actively.


140 - |fdm,t,d,s,vz|          Fetch "D" Matches

The  value  of  this function is a character string taken to the
right of the text divider of the text whose name is  denoted  by
"t";  the  contents  of  the  text  "t" is scanned searching for
occurences of the string denoted by "s";  when  that  number  of
occurences  equal to the number "d" is found then the divider is
relocated to point to the next immediately following  character,
and  the value string is that which lies between the old and the
new divider locations.

If the required number of matches is not found, then the divider
is not moved, and the value of the  expression  is  that  string
denoted by "vz", which is always treated actively.

If  the  desired number is negative, then the action takes place
to the left of the divider instead of to the right. If "d" is  a
negative  number,  then  the  search  is made to the left of the
divider.


141 - |fe,t,vz|               Fetch Element

The value of this function is that string of characters which is
to  be found immediately to the right of the current location of
the divider in the text named "t" up  to  the  next  encountered
partition - or end of text.

The  text divider is moved to point to the immediately available
next character.

If absolutely no characters are to be found, then the  value  is
the string denoted by "vz", which is always treated actively.


142 - |ff,t,d,vz|             Fetch Field

The  value of this expression is that string of characters to be
found to the right of the first  occurence  of  a  partition  of
value symbolized by "d" until the next partition is encountered,
or to the end of the text named "t"; the divider is not moved.

If  absolutely  no  characters  are  returned  the  value of the
expression is the string symbolized  by  "vz"  which  is  always
treated actively.


143 - |fl,t,s,vz|             Fetch Left match

The  text  named  "t"  is  searched  to the left of its internal
divider for a string identical to that denoted by "s"; if such a
string is found then the divider is moved to point to the  first
character of that string and the value of the expression is that
group  of characters to be found between the new location of the
divider and its old location.

If no such matching string is found, then  the  divider  is  not
moved,  and the value of the expression is the string "vz" which
is always treated actively.


144 - |fr,t,s,vz|             Fetch Right match

The  text named "t" is examined starting at the current location
of the text divider for a string identical to  that  denoted  by
"s"; if such a string is found, then the divider is moved to the
next  character  which  follows  this  string (or the end of the
text) and the value returned is that string of characters  which
lies between the old and the new locations of the text divider.

If  no  such match is found, then the value of the expression is
the string denoted by "vz", always  treated  actively,  and  the
divider is not moved.


145 - |fp,t,x1,...,x|         Fetch Partition

The  value of this function is the next partition to be found in
the text whose name is denoted by "t"; the text divider is moved
to point to the next ensuing character.


146 - |md,t,d|                Move Divider to pos. "d"
      \md,t,d\                Move Divider "d" increments

This function is used to move the text divider in the text whose
name  is  denoted by "t". Active form serves to move the divider
the number of positions from the left end of the text if "d"  is
positive, or from the right end if negative; the neutral form is
used to advance or retreat the divider from its current location
that number of positions specified by the number "d".

It  should  be  noted that these moves are positional and do not
distinguish any difference between  partitions  and  characters;
this is the only function available to position the text divider
other than immediately preceding a character.


147 - |crd,t|                 Characters Right of Divider

The  value  of  this  function  is  the (decimal base) number of
characters located between the beginning  of  the  "text"  whose
name  is denoted by "t" and the current location of the internal
"text divider" of said text.


148 - |cld,t|                 Characters Left of Divider

The  value  of  this  function  is  the (decimal base) number of
characters located between the beginning  of  the  "text"  whose
name  is denoted by "t" and the current location of the internal
"text divider" of said text.


149 - |hp,t,d|                How many Partitions

The  value  of  this  function is the number of partitions to be
found to the right of the text divider in the text whose name is
"t"; if there is no explicit  third  argument,  then  the  value
represents  the total number of partitions; if argument three is
specified, then the value is that  number  of  partitions  whose
value is equal to the number symbolized by "d".


150 - |hm,t,s|                How many Matches

The  value  of this function is that number of occurences of the
string of characters symbolized by "s" in the text whose name is
denoted by "t".


151 - |ep,t,p1,p2,...,p|      Erase Partitions

This  function  serves  to  delete  from  the text named "t" any
partitions that may be found in it to the right of the  internal
text divider.

If  arguments  "p1",  "p2",  and  so on are specified, then only
those partitions with values  denoted  by  these  arguments  are
deleted.

[Note: multiple "p+" not supported in all systems]


152 - |it|                    Input Text

The  purpose  of  this function is to place in the text area one
text loaded from some auxiliary storage media, which is  in  the
format generated through use of the "output text" functions.


153 - |idt,d|                 Input "D" Texts

This  function  serves to place into the text area "texts" which
are loaded from various types of  auxiliary  storage  media  and
created through use of the "output text" functions.


154 - |ot,t1,t2,...,t|        Output Texts
      \ot,leader,gap,t1,t2,...,t\

This  function  outputs to the selected channel, the texts whose
names are denoted by "t1", "t2", ...  "t",  in  a  format  which
preserves  all  of  the  internal  conditions  of the text; this
includes  location  of  the  internal  text  divider,  and  text
partitions if any.

The neutral form of this function allows user respecification of
leader  and interecord gap sizes. Initialized conditions provide
64 bytes of leader and trailer, and 20 bytes between texts.


155 - |xll,s0|                Xamine Label List

The  value  of this function is a list of internal system labels
available for examination by name; these labels  may  be  actual
values, identify locations of program entry points or tables, or
give  addresses of memory locations in which system pointers may
be found. Each label name is preceded in the value string by the
string symbolized by "s0".

Typical system labels as determined by the  "xll"  function  are
given below with their characterizations:

AST	Address System subroutine Table
ASV	Address System subroutine Vectors
ENC	Entry Continue ("hot start")
ENR	Entry Restart ("warm start")
ESL	Entry Subroutine Links
INP	Address Input Vector
OPV	Offset Permanent/Variable tables
OUT	Address Output Vector
POA	Pointer Overlay A
POB	Pointer Overlay B
POC	Pointer Overlay C
POD	Pointer Overlay D
PSE	Pointer Service Entry
PSW	Pointer Function "sw"
PSY	Pointer Function "sy"
PUI	Pointer User Input routine
PUL	Pointer User Link table
PUO	Pointer User Output routine
PWA	Pointer Work Area start
TAE	Text Area End
TAH	Text Area High
TAL	Text Area Low
TAM	Text Area Maximum


156 - |xal,label,offset|      Xamine Address of Label

The  value of this function is the value of the "label" to which
the value of "offset" has been added; both  the  value  returned
and the "offset" are in the current "X" base.


157 - |sfd,fun,dev|           Specify Function Device

To be defined and coded.


158 - |sar|                   "Auto Return" on line feed
      \sar\                   no Auto Return on line feed

Execution  of  this  function  serves  to  enable (if active) or
disable (if neutral) the automatic  generation  of  a  "carriage
return" code when a "new line" code is output.


159 - |ab,s1,s2,vt,vf|        Alphabetic Branch

This function compares the character strings denoted by "s1" and
"s2"  in terms of their "ASCII" binary value; if the string "s1"
has a greater value than the string "s2" then the value  of  the
expression  is the string denoted by "vt", else the value is the
string denoted by "vf"; if the value  strings  are  expected  to
contain  executable  or  syntactically  meaningful  symbols they
should be protected within the expression.


160 - |ai,s0,s1,s2,...,s|     Alphabetic Insertion

The  value  of  this function is a character string in which the
string denoted by "s1" has been inserted ahead of the  first  of
the  subsequent  argument  string which has a greater alphabetic
value; each of the strings  which  form  the  arguments  of  the
expression  are returned with a copy of the string symbolized by
"s0" preceding it.

161 - |as,s0,s1,s2,...,s|     Alphabetic Sort

The  value  of  this function is a character string in which the
sequence of the strings  denoted  by  "s1",  "s2",  ...  "s"  is
rearranged  to  be  in proper alphabetic sequence; each of these
strings is preceded by the string denoted by "s0" in the result:

	%as,(,),horse,cat,dog/={,dog,cat,horse}

Note the use of "(,)" for "s0"; this is typical  of  lists  that
the  user  may  wish to use in a variety of functions which have
arbitrary number of arguments.


162 - |ps,d,s1,s2|            Pad String

The  value of this function is the string "s2" to which is added
either to its right or to its left enough  duplications  of  the
first  character  of  string  "s1" so that the total size of the
value string becomes equal to  the  number  symbolized  by  "d";
positive  values of "d" pad to its right, and negative values to
its left.


163 - |rs,s|                  Reverse String

The  value  of  this  function  is  the  string  of   characters
symbolized by "s" reversed, end for end.


164 - |ds,d,s|                Duplicate String

The  value  of this expression is a concatenation of that number
of copies of the string "s" which  is  denoted  by  the  decimal
number "d".

This  function  may  be  quite properly used to "DO" something a
desired number of times as illustrated below:

	%ds,5,!%dt,x,%ad,3,%x/////=

This example shows a most awkward way of creating a  text  named
"x" which contains the product of 5 and 3.


165 - |rr,s1|                 Return to Restart

This  function  causes  immediate  cessation of execution of any
unexecuted script, forces a return to the idling  level  of  the
processor and then returns the value of the string symbolized by
"s1";  if  that  string  is  an executable expression, then said
expression is executed.


166 - |ri|                    Restart Initialized

Execution  of  this function causes immediate termination of any
unexecuted scripts, and causes return to the  idling  condition,
reinitializing all normally changed user specifications.


167 - |qp,t|                  Query Partition

The  value of this function is the decimal identification of the
next partition to be found in the text whose name is denoted  by
"t"; the text divider is  not moved by this function.


168 - |tr,t,s|                Trim

This function is used to replace multiple adjacent occurences of
the  character symbolized by "s" with a single such occurence in
the text named "t".


169 - |ut,cc|                 User Trap active
      \ut\                    User Trap inactive

Activating  of this trap through use of this function will cause
an automatic execution of a text (or  function)  whose  name  is
denoted  by  "cc"; this automatic execution takes place whenever
the user attempts to make use of system  interrupt  capabilities
to  escape  out  of  executing "scripts" when it is desired that
such escape be inhibited.


170 - |xc,x1,x2,...,x|        "X" to Character

The value of this function is a string of characters whose value
is  represented  by  the numbers in "X" base symbolized by "x1",
"x2", ... "x".


171 - |cx,s0,s|               Character to "X"

This  function  returns as a value a sequence of binary numbers,
each preceded by the string denoted by "s0"  which  result  from
converting  the  character string denoted by "s"; the conversion
is in the current specification for the "X" base; see [cxb, qxb,
xc].


172 - |xd,x|                  "X" to Decimal

The  value  of  this  function  is the decimal equivalent of the
number in the current value of the "X" base symbolized by "x".


173 - |dx,d,x|                Decimal to "X"

The  value  of  this  function is that number which results from
converting the decimal number denoted by "d" to  its  equivalent
in  the  current  "X"  base;  the  argument symbolized by "x" is
undefined; see [xd, cxb, qxb].


174 - |pl,sub,s1,...,s|       Plot

This  is  a general purpose plotter or display control function;
details may vary in its use as a function of the system in which
it is used. Certain subfunctions as described  below  have  been
used:

-01 |pl,lf,s0|           List of Plotter subfunctions
-02 |pl,as,port,time|    Assign output port and time delay
-03 |pl,nm|              Output plotter control bytes
-04 |pl,vm|              Return as value control bytes
-05 |pl,cal|             Set up for "Calcomp" plotter
-06 |pl,pol|             Set up for "Polymorphic" display
-07 |pl,trs|             Set up for "TRS-80" display
-08 |pl,mq,x|            Rotate to quadrant "x".

175 - |wi,xn1,yn1|            Write Initialize

This null valued function serves to create a reference value for
the  current  position  of  the display pointer; the "x" and "y"
coordinates of this  position  are  set  equal  to  the  decimal
integer  strings  found  in  the  second  and  third   arguments
respectively.

176 - |wx|                    Write "X" displacement

The  value of this function is equal to the algebraic difference
between the initial value "X" of the  display  pointer  position
and the sum of any subsequent incremental displacement values.

177 - |wy|                    Write "Y" displacement

The  value of this function is equal to the algebraic difference
between the initial value "Y" of the  display  pointer  position
and the sum of any subsequent incremental displacement values.

An  effective  way to return the display pointer to its original
location is illustrated as follows:

	{}~~~~~~~~~~~~~~~~~~~~~~~~~~
	{}  %ws,U%wx/,%wy//
	{}
	~~~~~~~~~~~~~~~~~~~~~~~~~


178 - |wr|                    Width Right

The value of this function is the incremental value of the width
of  a  character  being  plotted  to  the right of its center of
gravity.

179 - |wl|                    Width Left

The value of this function is the incremental value of the width
of  a  character  being  plotted  to  the  left of its center of
gravity.

180 - |ws,xn1,yn1,...,xn,yn|  Write Straight Lines

This  function  causes the generation of the appropriate control
information to cause the display of one or  more  line  segments
starting  at  the  current  position  of  the  display  pointer.
Successive points are referenced by  consecutive  incremental  x
and  y  argument  pairs. The x and y components are expressed as
decimal integer  strings.  The  sign  of  the  number  indicates
direction.

When  in  visual display mode, the neutral form of this function
serves to erase any line or points which coincide with the  path
of the lines drawn.

Non  numeric  matter  preceding  the  "x"  value  causes certain
auxiliary functions to take place as follows:

	U	"pen up" or invisible vector
	S	Scale change for "x" and "y"
	A	Absolute position vector pair
	I	Incremental vector pair
	C	Clear display screen and
		  initialize absolute X & Y locations
	Q	Quadrant rotation
		 0 - 3 clockwise, 4 - 7 counter clockwise
	W	Character width information
		 "x" left and "y" right of center

181 - |wc,s1,s|               Write Characters

This  plotter  or  display  function generates a graphic display
from a font of vectors named "s1"; the string symbolized by  "s"
is the text string to be plotted or displayed.

182 - |zd,r,v-,v0,v+|         "Z" reg. Decrement and branch

Execution  of  this  function  causes  the contents of a special
register identified by "r" to be decreased by a count of one; if
the resulting contents of that register are greater  than  zero,
then  the expression value is that string symbolized by "v+"; if
equal to zero, then the value is symbolized by "v0", and if less
than zero the value becomes the string symbolized by "v-".


183 - |zi,r,v-,v0,v+|         "Z" reg. Increment and branch

The  action  of this function is identical to that described for
"zd", except that the designated register "r" is increased by  a
count of one prior to testing.


184 - |zq,r|                  "Z" reg. Query

The  value  of  this  function  is  the  current contents of the
special register designated by "r"; execution of  this  function
does not cause any change in said register.


185 - |zs,r,n|                "Z" reg. Set

This  function is used to preset designated special register "r"
to the number symbolized by "n".


186 - |or,x1,x2|              Or the bits

The  value  of this function is the logical or of the two binary
number strings "x1" and "x2" expressed in the current "X" base.


187 - |and,x1,x2|             And the bits

The value of this function is the result of performing an anding
of the two binary numbers represented in the current "X" base by
"x1" and "x2".


188 - |not,x|                 Not (complement) the bits

The  value  of  this  function  is  the complement of the binary
number (in the current "X" base) symbolized by "x".


189 - |rot,d,x|               Rotate the bits

The  value  of this function is that binary number which results
from a rotation of  the  binary  number  "x"  expressed  in  the
current "X" base; the number of bits rotated is specified by the
decimal  number "d"; the direction is clockwise if the number is
positive, and counterclockwise if negative.


190 - |sh,d,x|                Shift the bits

The  value  of  this function is that binary number string which
results from a logical shift to the right or left of the  string
whose  binary  value,  expressed  in  the  current  "X"  base is
symbolized by "x"; the number of  shifts  is  specified  by  the
decimal  number  "d"  and the direction by its sign, positive to
the right and negative to the left.


191 - |cll,d|                 Change Line Length (active)
      \cll,d\                 Change Line Length (initial)

The  purpose  of  this  function  is  to  change  the  number of
characters that the processor will output  before  automatically
inserting  a  "new  line" code; the desired value is the decimal
number denoted by "d" in the expression; the active form changes
the actively used constant, while the neutral form  changes  the
initial condition table; see [cnb].


192 - |qll|                   Query Line Length

The  value of this function is the current specification for the
line length; this specification is changed through  use  of  the
"cll" function.


193 - |cin,t1,d1,...,t,d|     Change Id Number

To be defined and coded.


194 - |qin,s0,t1,t2,...,t|    Query Id Number

To be defined and coded.


195 - |cfc,d1,s|              Change Fill  Character schema
      \cfc,d1,s\              Change Fill Char. (initial)

The  purpose  of  this function is to enable the user to specify
the number of that character which  is  the  first  one  of  the
string  denoted  by "s" that will be automatically output at the
beginning of each "new line"; usually these will be "nulls"  but
they  may  be any other character the user wishes to use. Active
form of the expression changes the table in  active  use,  while
the neutral form changes the initial table; see [cnb].


196 - |qfc,s0|                Query Fill Character schema

The  value of this function is the current specification for the
optional fill  character  output  immediately  after  each  "new
line"; the parameters are each preceded by the string symbolized
by "s0"; see [cfc].


197 - |qld,t|                 Query Left of Divider

The  value  of  this  function  is  the (decimal base) number of
positions - characters and  partitions  -  located  between  the
beginning  of  the  "text"  whose name is denoted by "t" and the
current location of the internal "text divider" of said text.


198 - |qrd,t|                 Query Right of Divider

The  value  of  this  function  is  the (decimal base) number of
positions - characters and  partitions  -  located  between  the
beginning  of  the  "text"  whose name is denoted by "t" and the
current location of the internal "text divider" of said text.


199 - |sem,dev|               Set "Echoplex" Mode active
      \sem,dev\               "Echoplex" Mode inactive

This function enables character echo from the system if executed
actively; if neutrally, then echo generation is suppressed.


200 - |cxb,d|                 Change "X" Base (active)
      \cxb,d\                 Change "X" Base (initial)

Through  use  of  this  function,  the  user  may   change   the
specification  of  the radix (or base) for those functions which
operate in the "X" base; "d" symbolizes the decimal value of the
desired new radix, and this should normally be either "2" or "4"
or "8" or "16"; active and neutral forms operate with respect to
the "X" base in the same manner as  described  for  the  "cnb  -
change number base" function.


201 - |qxb|                   Query "X" Base

The  value  of  this function is the currently set radix for the
functions which operate in a "binary" or "X" base.


202 - |qof|                   Query Over Flow conditions

The  value  of this function are characters which may be used to
identify the cause of an interrupt or overflow condition.


203 - |cro,s1|                Change Rub Out char. schema
      \cro,s1\                Change Rub Out (initial)

The purpose of this function is to permit the user to specify as
the  first  character  of the string denoted by "s1" that symbol
desired to serve the character delete function; in addition  the
user  may  specify  the next two characters of that string to be
output before and after, respectively,  the  deleted  string  of
characters.  The  active  form changes the user table, while the
neutral form of this function changes  the  initial  table;  see
[cnb].


204 - |qro|                   Query Rub Out char. schema

The  value  of this function describes the current specification
for the use of the "rub out"; see [cro].


205 - |qta|                   Query Text Area used

The  value  of  this function is representative of the amount of
space consumed in the text area by user defined texts.


206 - |ea,t1,t2,...,t|        Erase All excepting

This  function  is  used to erase from the text area all defined
texts; excepted from this erasure are the texts whose names  are
denoted  by "t1", "t2", ... "t"; full erasure is accomplished as
shown below:

	%ea/=

[Note: Multiple arguments not supported in all systems]

207 - |ed,t,d1,d2,vz|         Extract "D" characters

The  value  of this function is a string of characters extracted
from the text whose name is denoted by "t"; the first  character
returned is that which is found distant to the right of the text
divider  by  the  number  denoted  by  "d1",  and  the number of
characters returned is denoted by the number "d2".

Note that "0" represents the location of the divider itself, and
that "d1" may be a negative number.

If there are absolutely no such characters  available  then  the
value  of the expression is that string denoted by "vz" which is
always treated actively;  this  is  regardless  of  whether  the
original expression was used actively or neutrally.


208 - |dq,s|                  Define Quote

The  purpose  of  this function is to enable the user to specify
the character that is to be recognized by the scan algorithm  as
an unconditional protecting character. To be further defined.


209 - |nu,s1,s2,...,s|        Null

The  purpose  of  this  function  is  to  cause execution of the
function  whose  name  is  denoted  by  "s1",  with  appropriate
arguments  "s2",  ...  "s";  that  function  is executed but any
resulting value string is suppressed.


210 - |ftb,t,s,vz|            Fetch To Break character

The  value of this function is a string of characters taken from
the current location of the internal text divider  of  the  text
whose  name  is denoted by "t" to the first ensuing character in
text "t" which is found in the string  symbolized  by  "s";  the
text  divider is moved to the first character which follows that
which terminated the scanning action.

If no character is returned, then the divider is not  moved  and
the  value  of  the expression is that string symbolized by "vz"
which is always treated actively.


211 - |fts,t,s,vz|            Fetch To Span character

The  value of this function is a string of characters taken from
the current location of the internal text divider  of  the  text
whose  name  is denoted by "t" to the first ensuing character in
text "t" which is not found in the string symbolized by "s"; the
text divider is moved to point  to  the  first  character  which
follows that which terminated the scanning action.

If  no  character is returned, then the divider is not moved and
the value of the expression is that string  symbolized  by  "vz"
which is always treated actively.


212 - |hc,s|                  How many Characters

The  value  of  this function is the actual number of characters
comprising the string symbolized by "s".


213 - |iw,n|                  Input Wait

This  function sets up an internal timer which becomes effective
for the next ensuing input function, such as "is", "ic",  "idc",
"im";  automatic termination of the input process takes place at
the end of  the  specified  time  interval  even  though  normal
terminating  conditions  specified  for  these functions may not
have been met.

The duration of the time interval is specified by "n"  which  is
in seconds.


214 - |lw,s0,s1,s2,...,sn|    List Where

The  value  of this function is a list of the names of the texts
in the text area which contain at least one occurence of each of
the strings symbolized by s1,s2, .... , sn; each  name  returned
in the value string is preceded by the string symbolized by s0.

It  should  be noted that the name of the text itself is part of
the text and that the search  through  the  text  area  by  this
function  will  also return text names even if the only match is
in the name itself.

215 - |ra,d,s1,s2,s3,...,s|   Return Argument

The  value  of this function is that string symbolized by one of
"s1", "s2", "s3", ... "s"  whose  position  corresponds  to  the
value of the decimal number symbolized by "d".


216 - |lf,s0,d1,...,d|        List Files

The  value  of this function is a list of the names of the files
in auxiliary storage; each file name is preceded by  the  string
symbolized by "s0".

Additional arguments are to be defined.


217 - |qfs,filename|          Query File Size

The  value of this function is the file size as a decimal number
of records.


218 - |uf,f,t1,t2,...,t|      Update File

This  function  combines  the  action of "erase file" and "store
file" by first storing a file successfully  before  erasing  the
old file version.


219 - |qfe|                   Query File Extension

The  value  of  this  function  is  the  current  setting of the
"extension" to the file name; the extension is that part of  the
name  to  the right of a period embedded in the file name, where
this period is not part of said name. Sometimes the extension is
known as a "file type".


220 - |bf,f,vz|               Bring File

Execution  of  this  function  serves  to  bring  from auxiliary
storage the file whose name is denoted by "f"; if this file does
not exist, then the value of the  function  becomes  the  string
symbolized by "vz".


221 - |sfe,extension|         Set File Extension

This  null  valued  function  is  used  to preset a desired file
extension so that the extension need not be used in any  of  the
file  functions  as part of the file name. In effect this may be
used as a classification means. The extension may be set to  any
desired three (or less) symbols, including spaces and ???, or to
the null string (viz: %sfe/) whth varying effects.


222 - |sf,f,t1,t2,...,t|      Store File

This  function is used to place into auxiliary storage under the
file name denoted "f", those texts whose names  are  denoted  by
"t1",  "t2",  ...  "t";  on completion of this action, the named
texts are erased from the text area.

If no texts are named, then the  assumption  is  made  that  the
entire text area is to be placed into auxiliary storage.


223 - |sdu,dir|               Select Directory Unit

This  null  valued  function  allows  the  user to designate the
"Directory" unit to be accessed by the various file functions. A
"directory" unit is any device which has a  directory  structure
and could be cassette as well as disk.

In a CP/M system, the "dir" is a number in "X" base.


224 - |ef,f1,f2,...,f|        Erase Files

This  null  valued  function  is  used  to  erase from auxiliary
storage the files whose names are denoted  by  "f1",  "f2",  ...
"f".


225 - |qdu|                   Query Directory Unit

The value of this function is the currently selected "directory"
unit.


226 - |fb,f,vt,vf|            File Branch

The  value  of this function is the string symbolized by "vt" if
the file whose name is denoted by "f" is to be found in external
storage; if not the  value  of  this  function  is  that  string
symbolized by "vf".


227 - |qcs|                   Query Command String

The  value of this function is that string of characters entered
after the name which brought the SAM76 language interpreter into
action from the operating system.


228 - |lff,s0|                List File Functions

The  value  of  this  expression is a list of the available file
functions; each function  mnemonic  is  preceded  in  the  value
string by the string symbolized by "s0".


229 - |xrs,unit,track,sector,s0|   X Read Sector

The  value  of this function is the contents, in the current "X"
base of the identified sector.  Each  "byte"  in  the  resulting
value string is preceded by the string symbolized by "s0".


230 - |xws,unit,track,sector,X|    X Write Sector

This  null  valued function places the string symbolized by X in
the designated sector. If that string is greater in length  than
one sector, then only as much as will fit will be stored.

In  the foregoing expression "X" represents a list of numbers in
"X" base where each number  in  the  list  is  preceded  by  the
current argument separator (usually a comma).


231 - |sw,s1,s2,s3,...,s|     Switches

Special system dependent function for user definition.

232 - |sy,s1,s2,...,s|        System functions

Special system dependent function for user definition.


233 - |dif,filename|          Designate Input File

This  function serves to open a file from the currently selected
"directory" unit for access through use of the  "rfr"  function,
or  via  channel control assignment of "FIL" to any of the SAM76
language functions that are designed to accept input.


234 - |dof,filename|          Designate Output File

This  null  valued  function  is used to open a file for output.
Such output is attained through use  of  the  "wfr"  write  file
record  function.  If  the  "soc,FIL" function is used, then any
SAM76 language functions which delivers output will  go  to  the
file.

A  file  is closed through execution of %dof/ with no arguments.
Exit using "control C" or "ex" function will  not  close  output
files.


235 - |rfr|                   Read File Record

The  value of this function is one record from a file previously
opened using the "dif" function.  Typically  this  will  be  128
characters,  except for the last record of the file which may be
shorter.


236 - |wfr,s|                 Write File Record

This  null  valued  function  will  write  out  to  a previously
properly opened file the string symbolized by "s". There  is  no
limit as to the number of characters in string "s".


237 - |@t|                    wh@ is processor Title

The  value  of  this  function  provides  information  as to the
authorship of the processor being used; a typical example is:

	&@@t/=<ncra>   indicating that the authors are:

"Neil Colvin Claude Roichel Roger Amidon.


238 - |@f,s0|                 wh@ are Functions

The  value  of  this  function  is  a list of built-in functions
available within the system. Each function mnemonic is  preceded
by  the string of characters symbolized by "s0". It is advisable
to use the "neutral" form of expression as shown below:

	&@@f, /=(Value will be list of functions)

Note use of two "@"; since that symbol is a warning character it
must be protected, and in the above example it is  used  as  the
single character protector to protect itself.

239 - |@n|                    wh@ is processor ser. Number

The  value  returned  through  execution of this function is the
version number of the  processor  being  used.  This  number  is
tested  by  some of the functions - and may also be so tested by
the user - to ascertain compatibility between  scripts  and  run
time load modules that may be moved between systems and users.


240 - |@cn,current,new|       Change function Name

This  function  allows  the  user  to rename any of the resident
function "current" names to any desired "new"  name;  these  new
names  must  consist  of  two or three alphabetic characters; in
changing names the user should be particularly  careful  in  his
command sequence. Usually "os" and "is" should not be changed.


241 - |lic,s0|                List Input Channels

The  value  of this function is a list of channel names that may
be used in the "sic" select input channel function; each name in
the value returned is preceded by the string symbolized by "s0".
Typical of these channel names are the following:

CON	Console, normally the user keyboard
RDR	Reader, paper tape, cassette &c.
FIL	A disk file, opened with the "dif" function
USR	Device, user software driver address at "PUI"

242 - |loc,s0|                List Output Channels

The  value  of this function is a list of the channel names that
may be used in the "soc" select output  channel  function.  Each
name  is  preceded  with  the string symbolized by "s0". Typical
symbol names returned by this function are:

CON	Normally the user display unit
PUN	Punch, Cassette, &c.
FIL	A disk file properly opened with the "dof" function
USR	Device whose user software address is at "PUO"
LST	a Listing device

243 - |rf,filname|            Read File

The  value  of  this function is the contents of the file, whose
name is denoted by "filname". This file is assumed to be in  the
normal format used by the host system for USASCII files.

244 - |wf,filname,s|          Write File

This  function  writes out in the normal format used by the host
system for USASCII files,  a  file  whose  name  is  denoted  by
"filname" containing the string symbolized by "s".

245 - |sic,sym|               Select Input Channel

This  null  valued function assigns to the channel whose name is
symbolized by "sym" one of the two groups of functions; if  this
function  is  executed actively the assignment is of the Group 1
functions, if  neutrally  the  assignment  is  of  the  Group  2
functions.  [see  246  for  definition  of  Group  1 and Group 2
functions].

246 - |soc,sym|               Select Output Channel

This  null  valued function assigns to the channel whose name is
symbolized by "sym" one of the two groups of  output  functions.
If  this  function is executed actively, then the assignnment is
of the Group 1 functions, if neutrally then the assignment is of
the Group 2 functions.

Group 1 functions are those  normally  initialized  to  interact
with  the user console; these are: "is", "os", "ic", "id", "im",
"vt", and "tm". Group 2 functions are those normally initialized
to interact with the "Reader/Punch" devices;  these  are:  "it",
"ot", "idt".

247 - |rj,s,s1,d,s2|          Return Justified lines

To be defined and coded.

248 - |rp,s,s1,d,s2|          Return Paddded lines

To be defined and coded.

249 - |etb,s|                 Erase Trailing Blanks

This  function,  which  Neil  Colvin insisted be made available,
serves to delete from the character string symbolized by "s" all
blanks which immediately precede the  occurence  of  "new  line"
codes;  particularly useful when reading punched cards with many
trailing blank columns. [Note: Not usually provided]

250 - |cwc,s1|                Change Warning Character
      \cwc, ... \             Change Warn. Char. (initial)

The  purpose  of  this  function  is to allow the user to select
other  symbols  for  syntactic  purposes  than  those  initially
defined  in  the  language;  see  [qwc]. The active form of this
function changes the current user tables while the neutral  form
changes the initial table; see [cnb].

251 - |qwc,a2,a1,...,a|       Query Warning Characters

The  value of this function is a list of the currently specified
and functional warning characters of the language.

252 - |rn,n|                  Random Number

The  value  of  this  function is a number ranging between 0 and
"n", randomly selected through a  computational  algorithm;  see
[srn].

253 - |srn,n|                 Seed Random Number

Through  use of this function the automatic generation of random
numbers is initiated; the user  seed number is symbolized by "n"
in the above expression.

254 - |xqs,s0|                X Query work Space

The  value  of  this  function  is  a  set of two numbers in the
current "X" base which identify the first and last addresses  of
the  user  work  space.  Each number is preceded with the string
symbolized by "s0". The work space so indicated includes all  of
the  variables  that may have been set by the user. If this work
space is saved, then subsequently reloaded and a "hot" entry  is
made  into  the  SAM76  interpreter,  then  whatever process was
interrupted at the time of exit and save will be  resumed.  [See
261/cws and 112/ex].

255 - |xi,port|               eXperimental Input

The  value  of  this  function is that number in the current "X"
base which results from an attempted input from the  port  whose
designation in the "X" base is symbolized by "port".

256 - |xo,x,port|             eXperimental Output

Execution  of  this function enable output of the "X" base value
of "x" to the port whose "X" base id is symbolized by "port".

257 - |ti,s1,s2|              Time

The  value  of  this function is the current time of day derived
from a system clock, in the format HH MM SS, where HH  represent
Hours,  MM  represent Minutes and SS seconds; these elements are
separated in the value string by the string symbolized by "s1".

258 - |sti,t1,t2,t3|          Set Time

Through  use  of this function the correct current (or incorrect
if desired) time of day is established in the system.

259 - |da,s0|                 Date

The  value  of this function is the current calendar date in the
sequence of "day, month, and year"; each of  these  elements  is
preceded  by  the string of characters denoted by "s0". The date
may be either user entered (using the "sda" function) or may  be
automatically  generated  by  a  system  clock  or calendar; see
[sda].

260 - |sda,da,mo,yr|          Set Date

This  function  enables  the  user  to  set  into the system the
current ( or any other) desired date.

261 - |cws,d|                 Change Work Space
      \cws,x\

This  function  allows  a  respecification of the upper limit of
space required for function  execution  and  text  storage;  the
neutral  form is used to allow a binary (hex, octal ... ) number
denoted by "x" to be entered; the active form uses  the  decimal
number  system  instead;  see  [qws].  The  use of this function
without any arguments serves to reduce the  work  space  to  its
practical minimum size.

262 - |qws|                   Query Work Space
      \qws\

The  value  of this function is the upper limit of the user work
space; active form of this expression  yields  the  value  as  a
decimal number; neutral form yields the value in the current "X"
base.

263 - |rcp,d1,d2,s|           Return Character Picture

To be coded.

264 - |qio|                   Query current IO assignments

The  value of this function is in the current "X" base the value
of "IOBYTE" as defined by the monitor - if such  a  facility  is
provided.

265 - |sio,iobyte|            Set IObyte

This  null  valued  function  is  used  to reasssign the monitor
"IOBYTE" if provided for. It should be noted that a "cold" start
entry into the processor carries with  it  the  current  monitor
assignment;  if this function is used then a "control C" or "ex"
exit causes restoration  back  to  the  original  assignment.  A
"warm"  reentry  or  a "hot" continue causes reassignment to the
setting in force at the time of exit.

266 - |cpc,x1,t1,...tn|       Change Protection Class

Execution of this function changes the protection class of texts
whose  names  are  symbolized  by "t1",... to the "X" base value
symbolized by "x1".

267 - |qpc,s0,t1,t2,...,t|    Query Protection Class

The  value  of this function is a list of the protection classes
of the texts named "t1", "t2", ... , each protection class value
is preceded by the string symbolized by "s0".

Protection class of "HEX 80" is reserved for texts which contain
machine code; Classes 1 through 8 are for user  use.  Texts  are
always given a protection class of 8 at time of definition.

268 - |nud,func,arguments|    Null Display mode

The "nud" primitive serves to modify the scanner to the end that
no  value  is returned by the function whose name or mnemonic is
symbolized by "func" (with its appropriate  arguments).  Instead
the currently assigned console device displays the value.

269 - |xfs,unit,trk,sec,s0|   X Fetch Sector

The  value  of  this  function  is  the contents, in the form of
actual 8 bit bytes of the  identified  sector.  Each  "byte"  is
preceded by the string symbolized by "s0".

270 - |xss,unit,trk,sec,D|    X Specify Sector parameters

This  null  valued  function enables the specification of sector
formats  other  than  128  bytes/sector.  Details  are  somewhat
machine dependent and defined where relevant.

271 - |xu,sub,arguments|      Xperimental User

This  function,  through the use of subfunctions whose mnemonics
are symbolized by "sub", with appropriate additional  arguments,
provides  a  variety  of  machine  dependent  debugging software
tools. Explicitly defined are the following:

-01 |xu,lf,s0|             List "xu" functions
-02 |xu,dm,from,to,with|   Duplicate Memory
-03 |xu,fm,from,to,s0|     Fetch Memory
-04 |xu,tm,from,to|        Type Memory
-05 |xu,rl,label|          Read contents of "label"
-06 |xu,wl,label,Xval|     Write in "label" "Xval"
-07 |xu,mm,from,until,to|  Move Memory
-08 |xu,vm,from,til,from|  Verify Memory
-09 |xu,dt,t,x1,x2,..|     Define Text to contain x1..
-10 |xu,ft,t,s0|           Fetch text "X" contents
-11 |xu,sum,from,to|       Check Sum from to incl.

272 - |xqf,s|                 eXperimental Query Function

The  value  of  this  function is the machine adress in "X" base
radix of the entry point for  the  function  whose  mnemonic  is
denoted by the string "s".

273 - |xcf,s,x|               eXperimental Change Function

This  function  is  used to assign a user defined machine adress
symbolized by the "X" base number "x" for the built in  function
whose mnemonic is denoted by "s".

274 - |trs,sub,arguments|     TRS-80 Computer Functions

This  function provides access to a number of subfunctions whose
mnemonics are symbolized by "sub" above. A list of typical  such
subfunctions particularized for the TRS-80 is given below:

-01  |trs,lf,s0|             List Functions
-02  |trs,bof,f|             Bring Overlay File
-03  |trs,idt,d|             Input "d" Texts
-04  |trs,it|                Input Text
-05  |trs,qfl|               Query Flags
-06  |trs,rcv,f,x1,x2,x3|    Receive
-07  |trs,run,f|             Run program
-08  |trs,sfl,x|             Set Flags
-09  |trs,sds,d|             Set Display Speed
-10  |trs,sws,f|             Save Work Space
-11  |trs,sof,f,x1,x2|       Save Overlay File
-12  |trs,xmt,f,x1,x2,x3|    Transmit.