Version

This help file reflects DECmail/MS version 11(2365), running
under TOPS-10.

The SHOW VERSION command will display MS's  version  number,
GLXLIB's version number (GLXLIB is a subroutine library used
by MS), and a list of optional features  which  the  current
version supports (such as networks).

Introduction

        DECmail/MS is a product that provides facilities for
sending  and receiving messages, and for filing, retrieving,
editing, and discarding these messages.  This help file  ex-
plains  how  to use MS.  MS is that part of DECmail/MS which
provides a command-mode user interface;  it is the only pro-
gram  that  you actually communicate directly with (although
there are other programs performing tasks invisibly  in  the
background).    MS  is  extensively tailorable to individual
taste and styles of usage, and yet is easy for the novice or
infrequent  user  to use.  The structured HELP command makes
it self-documenting.  This file (MS.HLP) is  separated  into
pages, one page per topic.  The name of the topic appears on
the first line of each page.  This is how the  HELP  command
in  MS  can select that part of the documentation pertaining
to a single topic.

o       If this is  your  first  exposure  to  TOPS-10,  you
        should give the command HELP NOVICE first.

o       If  you  are  familiar  with  TOPS-20-style  command
        parsers  (that  is,  you know about the functions of
        the ESC and ?  keys), but not with  electronic  mail
        systems   similar   to   MS,  you  should  say  HELP
        VOCABULARY and HELP COMMAND-LEVELS first.

o       If  you  are  already  familiar  with  TOPS-20-style
        command  parsers  and you have used other electronic
        mail systems before, you probably need only to  type
        ?  a lot and feel your way around.

        For all users, it is recommended that you  read  the
documentation  under  HELP COMMAND-LEVELS before first using
MS.

Novice

If you've gotten this far, you already know how to get  into
MS  and  how to use the HELP command.  This section explains
elementary usage of MS.  But first, a little terminology.

YOUR KEYBOARD

        The keyboard of the terminal you're using is  almost
exactly  like  that  of  a  modern electric typewriter.  The
major difference is that there are a few new keys,  and  one
or two with different meanings.

CARRIAGE-RETURN or RETURN (sometimes called CR, RET,  <ret>,
or <return>)

        This key  has  the  usual  meaning  of  telling  the
terminal  that you're done with the current line of text and
wish to move on to the next line.  It also indicates  to  MS
that you're finished typing a command, and would now like MS
to act upon the command.  All MS commands must  be  finished
with  RETURN  and  MS  will  not  act upon the command until
you've pressed the RETURN key.

ESCAPE (sometimes called ESC, or ALTMODE on older terminals)

        This key, usually found at the upper lefthand corner
of  the  keyboard,  performs  a particularly useful function
called RECOGNITION.  Many M commands have long  names,  and
to have to type the name out in entirety would become rather
dreary.  In order to save you some typing, MS will allow you
to  type only as much of the command name as is necessary to
uniquely specify it.  For example:  suppose there  are  only
three commands beginning with the letter T:  TAKE, TAPE, and
TWIST.  If you typed only TA, MS  cannot  know  whether  you
mean  TAKE  or TAPE, since both begin with TA.  If, however,
you type TW, MS knows you mean TWIST.  Similarly, TAK  could
be a valid abbreviation for TAKE and TAP for TAPE.
        Using  abbreviations  at  all  times  can  save  you
typing,  but  can  look  rather  cryptic.  And you sometimes
don't know how much of a command you need to type before  MS
will  be  able  to recognize it, especially when you're just
starting out.
        The ESCAPE key makes all this much easier.   If  you
think  you've typed enough of a command for MS to recognize,
press the ESCAPE key.  If you have typed enough of the name,
MS  will  finish  typing  the  name for you.  If you haven't
typed enough, so that what you have typed is  ambiguous,  MS
will ring the terminal's bell.  And if there are no commands
beginning with the abbreviation you've typed, MS  will  tell
you that.
        Returning to our previous example,  where  the  only
three  commands beginning with the letter T were TAPE, TAKE,
and TWIST, if you were to type TW and then press the  ESCAPE
key,  MS  would  type  the letters IST, to complete the word
TWIST.
        Using recognition has one additional advantage:   if
the  command  whose  name is being typed requires additional
information, pressing the ESCAPE key will cause MS  to  type
"guide  words",  in  parentheses, which hint at what you are
expected to  type  next.   In  our  example,  if  you  typed
TW<ESC>, you might see this on your screen:

        MS>TWist (and shout)

        The words "and shout" are the guide  words  for  the
TWIST  command.   This  example is a bit whimsical, but does
illustrate how recognition and guide words act  together  to
help lead you through the commands.

CONTROL CHARACTERS

        Another key on your terminal which is not  found  on
typewriter  keyboards  is  the  CONTROL key, which is usally
labelled CTRL.  This works much like the SHIFT key, in  that
it  does  nothing  by itself, but modifies the action of any
key you press while holding the CTRL key  down.   Characters
typed  while  holding  the  CTRL key down are called CONTROL
CHARACTERS;  for instance, the character you  generate  when
you  hold  the CTRL key down and type the letter A is called
ctrl-A.  The most useful control character to you right  now
is ctrl-Z.  You use ctrl-Z to tell MS that you have finished
typing the text of a message you're sending and that MS  can
now  send  the  message.   You  would  not  want  to use any
ordinary text character for this purpose, because that  text
then  would  not  be allowed in the text of a message you're
sending.  Since control characters  don't  ordinarily  print
anything  on  your screen, but simply instruct the system to
do something for you, they are the only  good  way  to  type
commands  to  the system while you're entering the text of a
message.

QUESTION MARK

        At any time, if you are not sure  what  commands  or
arguments MS has available, you can type a question mark and
MS will list them all for you.   This  is  very  similar  to
"menu  mode" in other systems, except that the menu is shown
only when you request it by typing a question mark.  For in-
stance, when you first run MS, it prompts you by typing

MS>

and awaits your first command.  This is  called  TOP  LEVEL.
At  this point, to get a list of all the available top level
commands, type a question mark, and they will be displayed.

        You give MS a command by typing the command's  name,
possibly  followed  by  additional information (depending on
the particular command), and  then  typing  a  RETURN.   The
additional  information you supply is called the "arguments"
to the command.  If MS prompts you with anything other than

MS>

then you have  entered  another  command  level.   The  QUIT
command always returns you to the previous level.       This
is the end of the NOVICE part of MS's documentation.  We re-
commend  now  that  you  skim  the  information  under  HELP
COMMAND-LEVELS and HELP VOCABULARY;  there is a lot  of  in-
formation there, but for now just try to skim it once.  Then
try HELP SEND and HELP READ, and try sending  yourself  some
mail.  That should get you started.

Vocabulary

MESSAGE
MS sends, receives, and files messages.  These  are  exactly
analagous to office memos;  they are sent "To:" some people,
and "cc:" to others.  They have a subject,  and  some  text.
They  also have a date, which is supplied automatically when
you send the message.  A message is composed of  two  parts:
the "header area", at the top of the page in which a message
occurs, contains things like the date, subject,  to  and  cc
lists,  and  other identifying information;  the "text part"
contains the actual text of the message.

MESSAGE HEADER
The first few lines of a message are called the header area,
or  message  header.   The header area is separated from the
text of the message  by  a  blank  line.   The  header  area
consists  of several "header-items".  A header-item consists
of the header-item's  name,  a  colon,  and  then  the  data
portion  of the header-item (which may extend over more than
one line).  Typical header-items that MS always supplies in-
clude  the date the message was sent, the subject, to and cc
lists, and the name of the sender.  You may use  the  DEFINE
HEADER-ITEM command to define your own header-items.    Here
is a sample message:

Date: 12 Sep 86 1445-EST
From: Larry Campbell <LCampbell@DEC-MARLBORO>
To: Joe Newcomer@CMU-10A, Hurley@KL2102
cc: Fred the New Guy@MIT-XX, Engel@KL2102, Hall@KL2102,
    Purretta@KL2102, Another User@MIT-XX
Subject: This is a test

Hi!  This is just a test of this system.
This is the message text.
    -------

        In this example, the first six lines, beginning with
"Date:"  and  ending  with  "Subject:", are the header area.
Next is a blank line, which separates the header  area  from
the  message  text.   Finally there are two lines of message
text and the closing line,  contain  a  string  of  hyphens.
There   are  five  header-items  present  in  this  message:
"Date:", "From:", "To:", "cc:", and "Subject:".   The  "cc:"
item  in  this message illustrates the case of a header-item
which  is  too  long  to  fit  on  one  line.   The  strings
DEC-MARLBORO,  MIT-XX, KL2102, and CMU-10A are all the names
of different computers in a network.  To  fully  specify  an
address,  you  need both the user's name and the name of the
computer that he or she uses.

FILE
A file is similar  to  the  contents  of  an  ordinary  file
folder.   A  file  has  a name, called a FILESPEC (short for
file specification).  Although a filespec  can  have  up  to
four  parts  (the  DEVICE,  DIRECTORY, NAME, and EXTENSION),
ordinarily you can ignore the device and directory  and  use
only  the  name and extension.  A file name or extension can
consist of any sequence of uppercase letters and numbers  up
to  six  characters  long;   the extension can only be three
characters long.  For example, "MEMO1", "JULY",  and  "OPEN"
are  all valid names;  "REPORTS" is not (contains seven cha-
racters), and "JUL-81" is  not  (the  hyphen  is  neither  a
letter  nor  a number).  The extension is separated from the
name by a dot, so that MAIL.TXT is a file whose name is MAIL
and  whose  extension  is  TXT.   For more information about
filespecs, see the DECsystem-10  Operating  System  Commands
Manual.

MESSAGE FILE
MS deals with message files, one at a time.  A message  file
is  simply  a  file containing one or more messages.  MS can
only handle one file at a time, but it is simple to put  one
file  away and take another out to look at.  Each message in
a file has a MESSAGE NUMBER;  the messages are numbered from
one on up to however many messages there are in the file.

CURRENT MESSAGE FILE
Since MS can only handle one message file at a time, the one
you are currently dealing with is called the current message
file.  You may think of MS as  a  desk  which  is  only  big
enough to hold one file folder.

MAIL FILE
Every user has his or her own personal message  file.   This
is exactly analogous to an in basket.  All incoming messages
go into your message file.  It is called MAIL.TXT (the  name
is MAIL and the extension is TXT).

USERNAMES
You send messages to, and receive them from, users of a com-
puter.  Each user of a computer has a username, which is the
name by which the computer knows that person.  When  sending
to  another  TOPS-10  system, or a TOPS-20 system, usernames
are composed of up to 39 characters of letters, digits,  and
hyphens.   When  sending  to  a  system  which  does not run
TOPS-10 or TOPS-20, the rules for forming usernames  may  be
different.  If you are sending to a user whose username con-
tains characters not allowed  in  TOPS-10/TOPS-20  usernames
(like  parentheses, spaces, and the like), then you must en-
close the username inside double quotes.

ADDRESSES
An address tells MS where to send a message.  There are  two
kinds  of  address,  depending on whether the person you are
sending to  uses  the  same  computer  that  you  do  (LOCAL
ADDRESS)  or a different one (NETWORK ADDRESS, because their
computer is connected to yours through a computer  network).
A  local  address is just a username.  A network address has
two parts:  a username (just like a local user), and a  HOST
NAME, which names the computer that they use.  For instance,
somebody who uses a computer called  HOST2  and  who  has  a
username of Joe would have a NETWORK ADDRESS of "Joe@HOST2".

Command-levels

MS has three command levels:  top  level,  read  level,  and
send  level.  Each command level has a different prompt, and
each level has is own set of commands.  TOP LEVEL, which is
the  level  you  see when you first run MS, has commands for
dealing with message files as a whole, or  for  manipulating
entire  groups  of  messages  at  once.  READ LEVEL operates
after you have selected a message to read, and has  commands
for  dealing  with  the  current message (the default) along
with any other message sequence.  And  SEND  LEVEL  contains
commands  for  composing, editing, and filing drafts of mes-
sages, and for finally sending the message once it  is  com-
plete.   At  all levels, the QUIT command always returns you
to the previous level;  typing QUIT at top level  causes  MS
to stop.

When you first run MS, you are at top level.  MS prompts you
for a command by typing

MS>

The next command level you are likely to see is read  level.
It prompts you for a command by typing

MS Read>>

You enter read level by using the READ  command.   You  give
the  READ  command  a message sequence, which tells MS which
messages you want to read.  It then types the first  message
in the sequence, and prompts you for a command.  You may now
type a command to do something with that  message,  or  type
carriage-return  to  go  on to the next message.  When there
are no more messages to read, MS returns to top level.   For
more details on read level, give the command HELP READ.

Most top level commands which act upon  a  message  sequence
are also available in read level.

SEND LEVEL is sometimes invoked as part of  the  process  of
sending  a  message,  or  composing a message draft prior to
sending it.  Send level is invoked in one of  the  following
four ways:

1)      You ask MS to put you there, by typing an ESC  while
        entering the text of a message you are sending;

2)      You use the RETRIEVE DRAFT (q.v.)  command  to  con-
        tinue  working  on  a draft which you had previously
        saved with the SAVE DRAFT command (q.v.);

3)      You use the RETRIEVE LAST-MESAGE (q.v.) command  to
        retrieve the draft of the last message you sent;

4)      MS puts you there automatically, because it  encoun-
        tered some problem while sending a message.

The send level prompt is:

MS Send>>

The commands available in send level allow you to modify any
part  of  a message which you are in the process of sending.
You can add or delete users to the  "To:"  or  "cc:"  lists,
change  the  subject line, edit the text of the message, and
so forth.  If MS encounters any difficulties in sending  the
message,  it  will automatically put you into send level, so
that you have a chance to fix the part of the message  which
caused  the  problem.   At send level, you can return to the
previous level without sending the  message  by  giving  the
QUIT  command, or you can give the SEND command, which sends
the message and then returns to the previous command level.

Message-sequence

Most MS commands perform some action on  one  or  more  mes-
sages.   You  need  to tell MS which message or messages you
want to act upon, and you do this with a  MESSAGE  SEQUENCE.
A message sequence simply specifies a group of messages.

The simplest sequence  is  a  message  number,  or  list  of
numbers.   For instance, the following is a message sequence
which specifies the first six messages in a file:

1,2,3,4,5,6

For example, to read the first six messages in a  file,  you
might say:

        MS>read 1,2,3,4,5,6

A shorthand way to specify the same thing is "1:6".  You can
mix  these:   the message sequence "1:4,7:10" means the same
as "1,2,3,4,7,8,9,10".

You can also select messages based on their  contents.   For
instance, the message sequence

SUBJECT BUDGET

selects all messages with the word "budget" in the  subject.
So the command:

        MS>read subject monthly

would be used to read all messages with the  word  "monthly"
in their subject.  Similarly,

        MS>read first 9

would let you read the first 9 messages in your current mes-
sage file.      One  particularly useful message sequence is
called "same".  This directs MS to use the same message  se-
quence  that  you  used in your last command.  For instance,
suppose you want to  delete  all  essages  from  a  certain
person  named  Jones.   However,  before deleting them you'd
really like to check and be sure that they are all the  mes-
sages  you  think  they are.  To do this, you might give the
command:

        MS>headers from Jones

to get a one-line summary of each message from Jones.   Once
you're  satisfied  that  you really want to delete all these
messages, you could then say:

        MS>delete same

        Messages can be selected by date and time, using the
SINCE  and  BEFORE  keywords;   by  the SUBJECT, FROM and TO
fields;  by searching for words in the message text with the
KEYWORD  command;   by  message  size  with  the SMALLER and
LARGER commands;  and so on.  To get a complete list of  all
the  possible  ways to select messages, type a question mark
when MS prompts you for a message sequence.

Send

The SEND command is used to compose and send a message.   It
prompts  you  for  the  required information, which includes
"To:", "cc:" (which may be blank), and "Subject:".  It  then
prompts you for the text of the message.  When you have com-
pleted the text of the  message,  type  ctrl-Z,  which  will
cause the message to be sent immediately.

If, at some point while you are typing the text of the  mes-
sage,  you realize that you've made a mistake, like omitting
somebody from the "To:" list, you  can  easily  correct  it.
Hit  the  ESC key.  This will put you into send level, which
prompts with "MS Send>>", and has several commands which you
can  use  to  alter the current draft of the message.  Among
these are the REMOVE command, which removes  addresses  from
the  "To:"  or  "cc:" list;  the ERASE command, which erases
entire fields in the header (like an entire cc  list);   and
the  TEXT command, which returns you to text mode so you can
add text to the draft of the message.   If  you're  at  send
level and decide that you really don't want to send the mes-
sage after all, use the QUIT command, which will return  you
to  the level from which you came.  Otherwise, give the SEND
command, which will send the message and then return you  to
the previous command level.

Read

The read command is used to read  a  sequence  of  messages.
You  specify  a  message sequence after the READ command, or
you can just type READ, in which case you will be shown  all
the messages which you have not yet seen.  For example,

MS>read subject evaluations

would  be  used  to  read  all  messages   with   the   word
"evaluations" in the subject field, while

MS>read

would be used to read all "new" (that is, not yet seen) mes-
sages.  After each message is displayed, MS is at read level
and prompts with:

MS Read>>

In previous versions of MS, at read level, commands such  as
DELETE and READ only applied to the current (just displayed)
message.  That is still the default, but you  can  now  give
arguments  to  these  commands, as if you were at top level.
For example:

    MS READ>>DELETE FROM BRONSON

You can also give the READ command, to branch off  and  read
another  entirely different sequence of messages before con-
tinuing with the current sequence:

    MS READ>>READ FROM OLSEN

After such a command, you will enter a recursive read  level
and  read the messages you specified.  Recursive read levels
prompt with:

    MS READ(n) >>

where n is the depth of recursion, a number that starts at 1
and  increases by 1 every time you go one read level deeper.
This tells you, for example, how many QUIT commands would be
required  to  return  to  top level (since each Quit command
backs up exactly one level).

When you've finished reading all the messages you  specified
in  the  READ  command,  typing  carriage-return  to the "MS
Read>>" prompt will return ou to the previous command level
(this is usually top level).

Reply

The REPLY command allows you to send a reply  to  a  message
which  you  have  received.   MS determines from the message
being replied to who the sender was, and thus who the  reply
should  go  to, so that you need not type in the name of the
recipient.  The reply  command  is  available  both  at  top
level,  where  it  takes a message sequence specifying which
messages to reply to, and at read level, in  which  case  it
assumes that you wish to reply to the current message.

There are two possible ways to  reply  to  a  message;   the
reply can be sent to the sender (only) of the message, or to
the sender and to all recipients of  the  message  as  well.
When using the reply command at top level, MS will first ask
you "Reply message  1 to:", to which you reply either ALL or
SENDER-ONLY.   When using the reply command from read level,
you can  optionally  follow  the  word  REPLY  with  ALL  or
SENDER-ONLY;   if  you  omit  the second part MS will assume
SENDER-ONLY.  (You may change this, and  many  more  assump-
tions  that  MS  makes  as  well,  by using the SET commands
(q.v.).)

Once you have given the REPLY command, it works just like  a
SEND  command,  except  that  since it knows who to send the
message to it doesn't ask for the "To:" or "cc:" lists.   If
you  decide that you would like to change the "To:" or "cc:"
lists, you can press the ESC key while entering the text  of
the message, which will put you at send level.  You can then
use the send level commands to edit the message.

Forward

The FORWARD command, available at both top  level  and  read
level,  allows  you  to  forward  a  message  which you have
received to another user.  Its usage is straightforward;  it
prompts  for  the  "To:"  and  "cc:" lists, just as the send
command does.  It does not prompt for the subject;   instead
it  supplies  the subject of the forwarded message.  It then
prompts you for text;  this text is inserted nfront of the
forwarded  message.   This  is  useful  for  adding your own
comments about the forwarded message.

Copy

The COPY command, available from both  top  level  and  read
level,  places  a  copy  of  a message into a file.  This is
useful if you wish to collect a set of related messages into
one  place.   The  COPY command requires that you supply the
name of the file in which to place the message.  The message
is  appended to the file you name;  the existing contents of
the file are preserved.  If the file does not exist,  it  is
created.   You  may  examine  and manipulate the contents of
message files which you create this way with the GET command
(q.v.).

Move

The MOVE command, available from both  top  level  and  read
level,  allows  you to move a message into a different file.
It works exactly as if you had used the COPY command  (q.v.)
to  copy  the message into the other file, and then used the
DELETE command to delete the message.

Delete

The DELETE command, available from both top level  and  read
level,  allows  you to delete messages from the current mes-
sage file.  Messages which you delete don't disappear  imme-
diately,  but  are  marked as deleted.  They do not actually
disappear until you give the EXPUNGE or  EXIT  command.   If
you  accidentally  delete a message which you really wish to
keep, you may use the  UNDELETE  command  to  get  it  back,
unless  an  expunge  has occurred.  Once you have expunged a
message, you cannot get it back.

Skim

The SKIM command works just  like  READ  but  only  types  a
header line for each message, not the whole message.

The SKIM command permits recursive calls.  The  prompt  will
show the level of recursion that SKIM is currently in.

Headers

The HEADERS command, available from both top level and  read
level,   gives  you  a  one-line  summary  of  each  message
specified.  The line looks something like this:

NFAD 12-Jul Fred@OFFICE-3           |This Monday's meeting (549 chars)

The letters at the beginning of the line are called the mes-
sage  flags.   Each  letter  has a meaning, and appears only
when it applies.  The letters' meanings are:

        F - the message is Flagged
        A - the message has been Answered
        D - the message is Deleted
        N - the message is New (that is, you haven't seen it yet)

The next column is the date of the  message.   Next  is  the
name  of  the  user  who  sent  the  message,  in this case,
Fred@OFFICE-3.  The next column, beginning at  the  vertical
bar  ()  character, is the subject of the message;  if it is
so long that it would run off the right margin, then  it  is
truncated.   And  last, in parentheses, is the length of the
message, in characters.

If the message was sent by you (this can happen if  you  are
saving  your  outgoing messages in your mail file, or if you
explicitly sent a copy to yourself), instead  of  displaying
the  "From:"  field in the third column, MS will display the
"To:" field of the message, preceded by the word "To:".  For
example:

NFAD 12-Jul To: Fred@OFFICE-3       |This Monday's meeting (549 chars)

For information on saving your outgoing messages,  give  the
command  HELP  SAVE.  HEADERS and DIRECTORY perform the same
function.

Flag

The FLAG command, available from both  top  level  and  read
level,  allows  you  to  flag certain messages as important.
You may wish, for instance, to read all your  mail  quickly,
and  flag the important messages, so that you can later come
back and say  READ  FLAGGED,  which  will  display  all  the
flagged  messages on your terminal.  The UNFLAG command will
turn off the flag on a message.

Init-file

An "init file" is a file which contains MS commands.   These
commands  are  executed by MS every time it starts up.  This
is useful  for  setting  parameters  (see  the  SET  command
description)  and  having  them remembered permanently.  You
can create an init file either with an editor, or  with  the
MS command CREATE-INIT-FILE.  If you create the file with an
editor, the file must be named MS.INI.  For  information  on
the CREATE-INIT command, give the command HELP CREATE-INIT.

There may also be  a  default,  system-wide  init  file  for
system-wide defaults and address lists.  This file is called
STD:MS.INI.

When you begin a mail  session,  the  system  init  file  is
processed  after your own.  If you do not have one, only the
system init file is processed.

Check

Every time MS updates your message file, and every  time  it
returns  to the top-level prompt, it checks the current mes-
sage file to see if any new messages have arrived.   If  new
messages  have  arrived,  MS  notifies  you  by displaying a
one-line summary of each new message.  To force MS to  check
immediately  for  new  messages, give the CHECK command.  If
new messages have arrived, MS will display the new state  of
the  message file, along with a one-line summary of each new
message.

Get

The GET command causes MS to read in a new message file.  It
expects,  as  an  argument, the name of the message file you
wish to read.  Once MS reads the file, it will type a couple
of lines of status information about the file.  You can then
use any of MS's top-level commands to manipulate the file.

Save

There are two SAVE  commands:   SAVE  OUTGOING-MESSAGES  and
SAVE DRAFT.

SAVE OUTGOING-MESSAGES

This command allows you to keep a  record  of  all  messages
which  you  send.   It  takes a filespec as an argument, and
once this command has been given, every  message  which  you
send is copied into the file you named.  You may examine the
contents of this file by using the GET command (q.v.).  This
command is most commonly placed into an init-file (q.v.).

SAVE DRAFT

The SAVE DRAFT command, available only at send level, allows
you  to  store  a  copy  of  the current draft which you are
working on.  The draft includes the "To:" and  "cc:"  lists,
the  subject, and the text of the message.  You may then use
the RETRIEVE DRAFT (q.v.) command to retrieve the draft  and
continue composing a message.

The SAVE DRAFT command will leave you at send level;  if you
wish  to send the draft as is, give the SEND command, and if
you wish to quit send level without sending the draft,  give
the QUIT command.

Blank

This command clears your  screen  if  you  are  on  a  video
terminal  and  have not previously given a SET NO VIDEO-MODE
command.  Some people place this  command  into  their  init
file  (q.v.)  so that when they enter MS for the first time,
they start with a clear screen.

Repair

This command is  only  applicable  to  DECNET  systems.   It
allows you to examine mail which has been returned to you as
undeliverable by the network.  It takes, as an argument, the
numeric  part  of the .RPR file specification referred to in
the Postmaster message sent to you.  Once you have  success-
fully  identified  a  dead letter to MS, the message is dis-
played on your terminal and you are placed  at  send  level.
You  may  then use any of the send level commands to correct
the problem with the message and try to send it again.

Set

The SET commands allow you to alter many of the  assumptions
which  MS  ordinarily makes on your behalf.  They also allow
you to customize MS's behavior, and make it  more  agreeable
with your own particular style of usage.  There are many SET
commands, and they are all listed here  alphabetically.   In
the   following   descriptions,  words  enclosed  in  square
brackets denote optional words;  for example:

SET [NO] VIDEO-MODE

This indicates that the  word  NO  is  optional.   Words  or
phrases in lowercase, inside angle brackets, denote the name
of an item which you must supply;  for example:

SET REPLY-TO <address list>

means that instead of  typing  "<address-list>",  you  would
actually  type  a  list  of  addresses.   And lists of items
inside curly brackets, separated by vertical bars, denote  a
list  of  choices from which only one must be selected.  For
example:

SET DEFAULT { REPLY-TO-ALL | REPLY-TO-SENDER-ONLY }

means you would type either SET DEFAULT REPLY-TO-ALL or  SET
DEFAULT REPLY-TO-SENDER-ONLY.


The available SET commands are:

SET AUTO-EXPUNGE (ON) {ANY-EXIT | EXIT-COMMAND-ONLY | NEVER}
        Controls automatic expunging  of  deleted  messages.
        The  default  is SET AUTO-EXPUNGE (ON) EXIT-COMMAND-
        ONLY.

SET AUTO-FILL
        The command SET AUTO-FILL  puts  MS  into  auto-fill
        mode.  This means that you can type messages without
        crlf's;  MS will handle that automatically.

SET [NO] BRIEF-ADDRESS-LIST-DISPLAY
        When brief-address-list-display  is  in  effect,  MS
        will  not type the contents of address lists in mes-
        sages being displayed, but instead only the name  of
        the address list.  This makes reading messages which
        have been sent to very long address lists less tire-
        some.   If a message contains a nested address list,
        only the name of the outermost list is displayed.

SET CLOSING-TEXT
        The command SET CLOSING-TEXT allows you to predefine
        a line of text that will subsequently be sent at the
        end of each message.

SET [NO] CONCISE-MODE
        Shortens some of the messages typed by  MS;   should
        only be set by experienced users.

SET DEFAULT CC-LIST <address list>
        Causes the users named in the  address  list  to  be
        cc'ed on every outgoing message.

SET    DEFAULT    DIRECTORY    (TO)     {CONNECTED-DIRECTORY
        |LOGGED-IN-DIRECTORY| <directory name>

        Sets the default directory into which created  files
        go.   For  more  information on directories, see the
        TOPS-10 Operating System Commands Manual.

SET DEFAULT { REPLY-TO-SENDER-ONLY | REPLY-TO-ALL }
        Sets  the  default  recipient  list  for  the  REPLY
        command.    SET  DEFAULT  REPLY-TO-SENDER-ONLY  will
        cause replies to go to the addressees named  in  the
        "Reply-to:"  field  of the message being replied to,
        or to the sender of the message, if  no  "Reply-to:"
        field  exists.   SET DEFAULT REPLY-TO-ALL will cause
        replies to also be sent to all users  in  the  "To:"
        and "cc:" lists as well.

SET EXPERIENCE-LEVEL
        Establishes you  as  either  an  expert  or  novice.
        Novices   can   use  only  the  following  commands:
        DELETE, EXIT, EXPUNGE, FILE, HEADERS,  HELP,  PRINT,
        READ, SEND, SET, SYSTEM-MESESAGES, UNDELETE.

SET [NO] FORCE-DIRECTORY-LOOKUP
        When set, verifies local addresses in the  TO:   and
        CC:  lists, and in address-list definitions.

SET [NO] SUMMARY-ON-PRINTER-OUTPUT
        When set, causes the first page of any line  printer
        listing  of messages created by the PRINT command to
        contain a one-line summary summary of  each  message
        listed.   This  information  is  the  same  as  that
        printed by the HEADERS command.

SET [NO] SUMMARY-PERSONAL-NAME-ONLY
        When set, causes the HEADERS command to display only
        the  personal  name of each message, rather than the
        full "From:" or "To:" field.  For  messages  without
        personal names, the entire field is displayed.

SET [NO] INCLUDE-ME-IN-REPLIES
        Controls whether you receive copies of your  replies
        to other users' messages.  Has no effect if you have
        also given the command SET DEFAULT  REPLY-TO-SENDER-
        ONLY.

SET ONLY-HEADERS-SHOWN <header-name> [, <header-name>, ...]
        Restricts the amount of header information displayed
        by  the  READ and TYPE commands.  If this command is
        given, only the headers  named  will  be  displayed.
        This  is  particularly useful on slow terminals when
        reading messages with large headers.  For instance,

                        SET ONLY-HEADERS-SHOWN to, subject, from

        will cause only the "To:", "Subject:",  and  "From:"
        fields  to  be  shown.   If  you wish to temporarily
        override the effect of this  command,  the  VERBOSE-
        TYPE command will show the entire message literally.
        A less restrictive, and somewhat more flexible,  way
        of  reducing  the  amount of header information dis-
        played is to use the SET SUPPRESSED-HEADERS  command
        (q.v.).

SET PERSONAL-NAME <your full name>
        Causes MS to add your real name to outgoing mail (in
        addition  to  your  username).   Bear  in  mind that
        certain special characters, including most  punctua-
        tion  characters,  are  allowed  only  inside quoted
        strings (text enclosed by  double  quotes).   For  a
        list of special characters, say HELP RFC822.

SET [NO] REPLY-TO <address list>
        Allows you to cause replies which other  users  send
        to  your  messages  to  go to a different place than
        they ordinarily would.   They  cause  the  following
        line to be inserted into every message you send:

                        Reply-to: <address list>

        When the recipient of such a message uses the  REPLY
        command to compose a reply, the reply will go to the
        address(es)  specified  in  the  "Reply-to:"   line,
        rather than to the sender of the message.

SET [NO]  SUPPRESSED-HEADERS  <header-name>,  <header-name>,
        ...
        This command  takes,  as  an  argument,  a  list  of
        header-names  separated by commas, and causes MS not
        to display the named  header-items  when  displaying
        messages  on  your  terminal.  The SET ONLY-HEADERS-
        SHOWN command, which is stronger, will override  the
        effect of this command.

SET [NO] TEXT-SCROLL-REGION [(TO) <number> (LINES)]
        On terminals capable of defining scroll regions (for
        example,  VT100 and VT200 series terminals), MS can,
        in read mode, scroll only the text of messages being
        displayed,  while  leaving the headers in place.  If
        the header area of a message is  too  long,  though,
        this  results in an annoyingly small number of lines
        being used to display the  message  text.   The  SET
        TEXT-SCROLL-REGION  command  instructs  MS to scroll
        the text of the message in this manner, but only  if
        <number>  lines are available in which to scroll the
        text.  If the headers are so big  as  to  not  leave
        <number>  lines available for text, then the headers
        are scrolled as well as  the  text.   SET  NO  TEXT-
        SCROLL-REGION  tells  MS  to display messages in the
        usual manner, without setting up  a  scroll  region.
        This is the default behavior.

SET [NO] TYPE-INITIAL-SUMMARY
        Controls whether, when MS starts up, it  prints  the
        initial  lines of status information about your mes-
        sage file.  This information is also printed by  the
        SHOW STATUS command.

SET [NO] VIDEO-MODE
        Turns on or off  MS's  video  display  features  for
        video terminals.  The default is SET VIDEO-MODE.

Net-mail

MS handles two kinds of mail:  local mail, which goes to and
from  users  of the same computer which you use, and network
mail, which goes to and from users of  other  (remote)  com-
puters.   Ordinarily, the only difference which is important
to you is that when you send mail to remote users, you  must
identify  the  computer which they use, by adding the phrase
"@NAME" to their username, where NAME is  the  name  of  the
computer they use.

When you send mail, it is not delivered immediately, but  is
queued  for later transmission ("Mail queued for delivery by
MX").  The system will send your  mail  almost  immediately,
though, if the destination host is accessible.  That host is
given fourteen days to become accessible.  After  that,  the
message is undeliverable.

Bad-format

Occasionally, a message file will get damaged, either  by  a
bug  in  MS,  a  bug  in the computer on which MS runs, or a
hardware problem.  If this happens, you will see one of  the
following messages from MS:

?File has bad format - last message has no size field
?File has bad format - cannot find start of last message
?File has bad format - message nn has no receive date

If you give a HEADERS ALL command, you will most likely  see
some  peculiar-looking  headers;   usually they will have no
Subject, From, or Date field, and the length of the  message
will either be zero, or ridiculously large.

MS can repair almost any kind of damage to a  message  file.
First,  make  a  copy  of  the  damaged  file using the COPY
command.  When MS creates a message file (with  either  COPY
or  MOVE),  it always writes a correctly-formatted file.  If
the file being copied is damaged, MS is forced to make  some
assumptions  about its format, but in all cases the new file
is correctly formatted.  Then use the GET command to read in
the  copy  you've  just  made.  You should get no error mes-
sages, but you may still have some peculiar-looking headers.
Read  the  messages  with these headers, and if they contain
only garbage, you can delete them.  If  they  contain  frag-
ments  of  real  messages, you may want to keep them, rather
than lose the fragments.

Once you have made a good copy  of  the  damaged  file,  you
should  delete  the  contents  of  the  damaged file to save
space.  Return to the damaged file (using the GET  command),
delete all the messages, and give the EXPUNGE command.

If the damaged file was your mail file, be aware  that  your
mail  file  is  now  empty (although you have a good copy of
your old mail in another file).  If you wish to put the good
copy  back  into  your mail file, use the GET command to get
the good copy, then use the MOVE command  to  move  all  the
messages  back  into your mail file.  The filespec of a mail
file is "MAIL.TXT";  Be sure to type  it  completely.   This
sequence of commands will look like:

MS>get (messages from file) good-copy

 Last read:  Monday, February 10, 1986 17:27-EST.
 182 messages (206873 characters), in 81 disk pages.
 Message 166 flagged.

MS>move (message sequence) all
 Into file: mail.txt
 1:53
MS>

In all cases, instances of damaged message files  should  be
reported  to  the  person  responsible for running your com-
puter, so that the cause can be eliminated.

Retrieve

There  are  two  RETRIEVE  commands:   RETRIEVE  DRAFT   and
RETRIEVE LAST-MESSAGE.

RETRIEVE DRAFT

This command, available only at top  level,  allows  you  to
retrieve  a  draft you previously stored with the SAVE DRAFT
(q.v.) command.  It retrieves the draft, displays the  draft
on  your  terminal,  and  leaves you at send level.  You may
then give any of the send level commands to  manipulate  the
draft;   most  commonly,  you would give the TEXT command to
add message text to the draft.

RETRIEVE LAST-MESSAGE

This command, available only at top level, allows you to re-
cover  a  copy of the last message you sent, so that you may
edit it and resend it.  This is typically used when you have
just  sent  a  message, and then realized that you forgot to
include someone in the address  lists.   This  command  will
display  the  message  and put you into send level.  You may
then use all the send level commands to add or delete  users
in the address lists, edit the text of the message, and send
it again.

This command does NOT retract mail;  that is,  if  you  have
sent  a  message to someone and then changed your mind, this
command does not remove the  message  from  the  recipient's
mailbox.   Once  a  message has been sent, it has been sent.
What this command does is retrieves the draft of the message
so you need not type it in again.

Define

The DEFINE command allows you to define extensions  to  MS's
basic capabilities.  You can define aliases for users, using
the DEFINE ALIAS command.   You  can  define  named  address
lists,  using  the DEFINE ADDRESS-LIST command.  And you can
define  new  header-items,  with  the   DEFINE   HEADER-ITEM
command.

DEFINE ALIAS

This command defines an  alias  for  an  address.   This  is
useful when you have a long or non-mnemonic address to which
you frequently send mail, or when you wish to refer to some-
one  by  other than their real username.  The command format
is:

        MS>DEFINE ALIAS John (TO BE) Purretta@KL2102

This command will define the alias "John" to be the same  as
"Purretta@KL2102".  You can now give the alias "John" in any
address specification, such as a to or cc list, and MS  will
convert  it  to  the full address for you.  Aliases may also
represent a list of addresses, as in:

        MS>DEFINE ALIAS Neffs (TO BE) LNeff@KL2102, DNeff@KL2116

To delete an alias definition, give the command DEFINE ALIAS
<name>,  where <name> is the name of the alias definition to
be deleted.  To  delete  all  alias  definitions,  give  the
command DEFINE ALIAS *.


DEFINE ADDRESS-LIST

This command allows  you  to  define  named  address  lists.
These  behave  almost  exactly like aliases, with one excep-
tion:  the name of the address list is shown in the message.
For example, if you defined the following address list:

    MS>DEFINE ADDRESS-LIST Task-force (TO BE) LCampbell, King, Jones, Dickson

and then sent mail to "Task-force", the mail received  would
have a "To:" field looking like:

    To: Task-force: LCampbell, King, Jones, Dickson;

System  administrators  may  find  this  command  useful  in
defining  mailbox  names  which  refer to subjects;  for in-
stance, rather than expecting users to know who maintains  a
particular  program,  the system administrator could put the
following commands in the system MS.INIT (init file):

        DEFINE ADDRESS-LIST MS-Bugs LCampbell@2102
        DEFINE ADDRESS-LIST EMACS-Bugs RMS@MIT-AI

To delete  an  address-list  definition,  give  the  command
DEFINE  ADDRESS-LIST <name>, where <name> is the name of the
address-list to be deleted.  To delete all address-list  de-
finitions, give the command DEFINE ADDRESS-LIST *.


DEFINE HEADER-ITEM

This command allows users to define header-items.  A header-
item  is  a  field  which appears in the header portion of a
message;  that is, the portion before the first blank  line.
These  fields  consist  of  a keyword, a colon, and possibly
some data.  MS has six header-items built in to it:   "To:",
"Subject:",  "Date:",  "From:",  "cc:", "In-reply-to:".  The
DEFINE HEADER-ITEM command allows you to define your own new
header-items.

To define a header-item,  you  must  supply  its  name,  its
flavor,  and its type.  If you wish the data for the header-
item to be predefined, you must enter that as well.

Header-items come in three flavors:   optional,  predefined,
and required.

1)      An optional header-item is one which you  may  elect
        to  include in an outgoing message, but which is not
        required.  MS will not prompt you for it, so to  in-
        clude  it,  you  must  ue the  send-level  command
        INCLUDE.

2)      A  predefined  header-item  is  one  whose  data  is
        defined  in advance.  MS will not prompt for it, but
        it will be included in all  outgoing  messages.   An
        example  of  a  predefined header-item might be your
        telephone number or postal address.

3)      A required header-item is one whose data is not sup-
        plied  in advance, and which must be supplied before
        sending any message.  MS will prompt you  for  these
        header-items every time you send a message.

Header-items also come in six types.  These types are:   ad-
dress,  date, date-and-time, time, text-string, and keyword.
When defining a keyword header-item, you must supply a  list
of  legal keywords for that header-item.  Predefined keyword
header-items don't make much sense, and are not allowed.

Here is an example of defining your telephone number so that
it is always included in messages you send:

        MS>DEFINE HEADER-ITEM Phone (TYPE) predefined text-string 475-6446

Message which you send will now look something like this:

        Date: 14-Jan-86 15:33
        From: <your name>
        To:
        cc:
note -> Phone: 475-6446
        Subject: <subject>

        <text>
           -------

One possible use for keyword header-items is illustrated  by
the following example:

        MS>DEFINE HEADER-ITEM Priority REQUIRED KEYWORD urgent,high,medium,low

To delete a header-item definition, just  give  the  command
DEFINE  HEADER-ITEM  <name>, where <name> is the name of the
header-item.  To delete all  header-item  definitions,  give
the command DEFINE HEADER-ITEM *.

Show

Available SHOW commands are:

SHOW ALIASES
        Displays all currently defined aliases.

SHOW ADDRESS-LISTS
        Displays all currently defined address-lists.

SHOW DAYTIME
        Displays the current date and time.

SHOW DEFAULTS
        Shows the defaults (assumptions which  MS  makes  on
        your  behalf)  which  are currently in effect.  Each
        default is displayed by showing  the  exact  command
        which  would  cause  that  default  to be in effect.
        Most of the defaults shown by this  command  may  be
        changed with the SET command (q.v.).

SHOW HEADER-ITEMS
        Displays  all  currently-defined  header-items   and
        their  types,  and  for predefined header-items dis-
        plays the currently defined value.

SHOW STATUS
        Shows you the name and status of the current message
        file.   This  includes the number of messages in the
        file, the size of the  file  in  disk  blocks  (each
        block   contains  640  characters),  the  number  of
        deleted messages, the number of  unseen  (new)  mes-
        sages,  the  current  message  number, and a list of
        flagged messages.

SHOW VERSION
        Displays the version of MS currently running, and  a
        list  of  optional  features  which are supported by
        this version (such as network mail)
Expunge

The EXPUNGE command causes messages which have  been  marked
for  removal  with the DELETE command to actually disappear.
Until a message is expunged, you may get it  back  by  using
the UNDELETE command.  Once you have expunged it, though, it
is gone forever.  The EXIT command usually expunges  deleted
messages  automatically.   This can be changed, though, with
the SET AUTO-EXPUNGE command.

Mark

The MARK command marks a messages, or  messages,  as  having
been  seen.   Messages  are  marked  automatically  when you
examine them using the READ, TYPE, or VERBOSE-TYPE commands.
When  MS  first starts up, it will display a header line for
each message which is not marked as having been  seen.   The
UNMARK command will remove the "seen" mark from a message.

Unmark

The UNMARK command removes the mark on a message which flags
it as having been seen (see the MARK command description).

Verbose-type

This command displays a message literally.  Even if you have
given  a SET ONLY-HEADERS-SHOWN command or a SET SUPPRESSED-
HEADERS command to restrict the amount of headers shown, the
whole message will be displayed.

Print

This command, which takes a message sequence as an argument,
causes  the  messages  specified  to  be printed on the line
printer.  The listing will be prefaced by a one-line summary
of  each  message  if  you  have  given  the SET SUMMARY-ON-
PRINTER-OUTPUT command.


                            NOTE

               This command  actually  causes
               MS  to  copy  the  message  to
               device  LL:   (lowercase  line
               printer);    if  that  doesn't
               work, MS  tries  device  LPT:.
               MS  does  this to try to print
               the message(s)  on  a  printer
               with lowercase capabilities.
               If you do  not  have  spooling
               set  for  device LPT:, MS will
               try  to  assign  the  physical
               line  printer.   It is highly
               recommended (and the usual de-
               fault)   that   you  run  with
               spooling for all devices  (SET
               SPOOL  ALL).   Your system ad-
               ministrator  (the  person  who
               assigned  you  your account on
               the system) can  set  this  up
               for you permanently.



System-messages

The system has a public mail file which contains messages of
interest to all users;  this is similar to a bulletin board.
The SYSTEM-MESSAGES command loads the public  message  file.
You  then  read it just like ordinary mail.  Unless you have
special privileges, though, you may not DELETE  messages  or
EXPUNGE deleted messages from this file.

Take

This command takes a filespec as an argument.  It reads  the
contents  of  the  file  and  executes  them as MS commands.
Command files may be nested;  that is, a  command  file  may
contain  TAKE  commands.   You create command files with any
editor;  for more information on editors, refer to  the  ap-
propriate user's manual.

RFC822

RFC822 (Request For Comments number 822) is the name of  the
ARPANET  mail  format  standard.   It is the oldest and most
widely-known electronic mail standard, and forms  the  basis
of  many  other  standards (usually subsets).  MS tries very
hard to adhere to  RFC822.   While  it  certainly  does  not
understand  everything  allowed  by  the standard, it should
never generate messages which violate it.

Those interested in the details of RFC822  should  read  the
RFC itself.  It is available online at SRI-KL on the ARPANET
and can be accessed through the NIC facility.  If you do not
have  access  to the ARPANET, you can obtain a document that
includes a description of RFC822.  The name of the  document
is   "ARPANET   Protocol  Handbook",  and  is  available  as
Publication no.  NIC 7104 from:

        National Technical Information Service (NTIS)
        5285 Port Royal Road
        Springfield, VA 22161


For the benefit of readers who may  have  been  referred  to
this  topic  by  the  reference  in  the  entry  for the SET
PERSONAL-NAME command, RFC822 defines  "special  characters"
(characters  which must be in a quoted string to appear in a
header-item) as follows:

specials:       (  )  <  >  @  ,  ;  :  \  " ! % []


Create-init-file

        The CREATE-INIT-FILE command, available only at  top
level,  provides  an easy way for you to create an init file
(for more information about init files, say HELP INIT-FILE).
When  you  give  the  CREATE-INIT-FILE  command,  MS  enters
create-init mode.  Instead of prompting  with  the  standard
prompt,

        MS>

MS prompts this way:

        MS Create-init>>

        While in this mode, every command you type goes into
the  init  file,  with  the  exception  of the HELP and TAKE
commands.  The HELP command is excluded so that you can  get
help  during  your create-init session without cluttering up
your init file with HELP commands.
       If you wish to add to an existing init file,  rather
than  creating  a  new  one from scratch, just give the fol-
lowing  command  at  some  point  during  your   create-init
dialogue:

        TAKE MS.INI

        If during create-init mode you change your mind  and
you  decide  you really don't want to change your init file,
give the QUIT command.  Or, when you are  finished  creating
your  init  file and wish to update the init file and return
to normal mode, give the FINISH command.

File

        The FILE command is similar to  both  the  MOVE  and
COPY  commands.   It allows you to copy a number of messages
(at top level) or the current message (at read  level)  into
another message file, and optionally can delete the original
message(s) from the current message file.  After copying the
message(s)  into  the  file you specify, MS will ask whether
you wish to delete the original copy of the message(s)  from
the  current  message file.  oureply either YES or NO;  NO
is the default and is assumed if you give a blank reply.

Unflag

        The  UNFLAG  command  removes  the  "flag"  from   a
message.   For  more information, see the description of the
FLAG command.

Undelete

        The UNDELETE command removes the "deleted" flag from
a  message.   For  more  detail,  see the description of the
DELETE command.

Type

        The TYPE command simply types the messages you  name
on  your  terminal.   No screen clearing is done, and if you
specify more than one message, they are typed  all  at  once
with no pauses.  This contrasts with the READ command, which
pauses  after  displaying  each  message  to  allow  you  to
manipulate the messages as they go by.

Exit

        The EXIT command is used to leave MS and  return  to
the   program   which   invoked  it  (the  command  language
processor).   In  addition,  unless  you   have   given   an
overriding  SET  AUTO-EXPUNGE command, the EXIT command will
do an implied EXPUNGE to discard deleted messages.

Quit

        The QUIT command causes  MS  to  leave  the  current
command  level  and  return  to  the level which invoked the
current level.  At top level then, the QUIT command  returns
you to the command language processor.

Push

        The PUSH command places your terminal  at  operating
system  command  level,  at  which point you can perform any
ordinary operating system function or command.   Giving  the
POP command will return you to MS.

Next

        The NEXT command causes MS  to  display  the  "next"
message, that is, the message following the current message.
If the current message is the last message in the file,  you
will receive an error message.

Directory

        The DIRECTORY command is equivalent to  the  HEADERS
command.

.KJOB
.Connection closed by foreign host.
$ r
telnet ks10.hs.washington.edu
Trying...
