MM REFERENCE MANUAL

       Electronic Mail Facility on the Context DECsystem-20
                        at Stanford Universtiy















        Adapted from the University of Chicago Computation Center's
                       MM Reference Manual.













                           September 1981


                                                               PAGE 2



                           TABLE OF CONTENTS


1.0  INTRODUCTION

    1.1  Starting MM............................................  3
    1.2  Giving Commands to MM..................................  4
    1.3  Message Sequences......................................  5


2.0  TOP LEVEL

    2.1  Available Commands.....................................  7
    2.2  Description of Commands................................  8
    2.3  Commands Which Default................................. 13
    2.4  Command Parser and Getting Help........................ 13
    2.5  TOP LEVEL Summary...................................... 13


3.0  READ MODE

    3.1  What is READ MODE?..................................... 14
    3.2  Invoking READ MODE..................................... 14
    3.3  Commands in READ MODE.................................. 14


4.0  SEND MODE

    4.1  What is SEND MODE?..................................... 17
    4.2  Commands in SEND MODE.................................. 19
    4.3  Distribution List...................................... 23
    4.4  Sending Messages to a File............................. 24


5.0  CONCLUDING THOUGHTS......................................... 24


                                                               PAGE 3


1.0  INTRODUCTION

1.1  Starting MM

MM can be started by simply typing MM to the  operating  system  top
level  command  handler, called the EXEC.  The EXEC is identified by
the @ prompt.  So to start MM you would type:

    @MM [RETURN]
     -- --------

MM then checks to see if you have new mail.  If you do, it displays a
line indicating what the message number is, the receive date, who the
message is from, the subject and the length of the message in characters:

   @MM [RETURN]
    -- --------
   N   20  6 Feb Jon Sandelin <JCSAN  Meeting cancelled (426 chars)

    Last read:  6-Feb-81 16:16:49, 20 msgs (19 old), 10 pages

In this example, the user types MM.  The first line  indicates  that
the  user has new mail.  The next line, beginning "Last read:..." is
a summary of the contents of the file.  The MM> prompt  is  what  MM
types to show that it is waiting to receive a command from you.  Let
us examine each of these lines in detail.

The first line is called a header.  It is a condensation of what the
new  message  is  about.   The N means that the message is NEW (i.e.
you haven't seen it before and it is recent).  The 20 indicates that
it  is message number 20 in the file.  The file is simply a group of
messages one after the other.  If you have 19 messages in your  file
and  a  new one arrives then it would be the 20th and have a 20 next
to it.  The "6 Feb" is the date, February 6th.  The  "Jon Sandelin
<JCSAN"  tells who the message is from.  The "<JCSAN" is simply part
of the user name.  The rest is too long to easily fit on the line so
it is chopped off in the header;  however in the message body itself
it is completely visible.  "Meeting cancelled" is the subject of the
message.    The  "(426  chars)"  means  that  the  message  has  426
characters in it.  This is merely a gauge for you  since  you  might
prefer  to look at it later if it is very long and you are on a slow
terminal.

Notice the single letter N at the beginning of the header line.  Not
all  messages  have  a letter next to their header like this.  There
are several different flavors of letter:  A,  D,  F,  N,  R  and  U.
                                                             Page 4


These  mean  ANSWERED,  DELETED,  FLAGGED,  NEW,  RECENT, and UNSEEN
respectively.  A means you've answered the message.  D means it is a
deleted  message  which  will  be erased from your message file next
time you give the EXIT or EXPUNGE commands.  F  means  it  has  been
marked  to  draw  attention  to  it  via  the FLAG command.  We will
discuss this later.  N means that it is recent and unseen.  R  means
that  it  has just arrived as of this MM session.  And, of course, U
means that it has never been TYPEd or READ.  (No letter in front of
a header means the message has already been seen.)

The next line begins with "Last read:  6-Feb-81 16:16:49...".   This
means  that  your  mail  file was last read on February 6th, 1981 at
16:16:49 (or 4:16:49 in the afternoon -- MM uses a "24-hour" clock.).
There are 20 messages in the file, 19 of which  are  old, and the file
is 10 pages long.



1.2  Giving Commands To MM

When you see the MM> prompt,  this  means  that  MM  is  awaiting  a
command.   A command simply consists of an English word, or several,
typed to the MM> prompt followed by  a  carriage  return.   MM  then
attempts  to  interpret that command.  If it understands it, then it
executes it.  If not, it will complain  to  you  about  the  command
error.   MM  has a large list of commands that it understands.  Each
one does a different thing.  Not all of them are necessary for using
MM  effectively,  but  they  make a flexible whole for MM to operate
with.

One way of approaching MM is in the following manner.

    1.  You notice you have new mail.  Either the system  has  told
        you that you have new mail when you logged in or perhaps it
        has told you with a message like 'You have a  message  from
        ...'

    2.  You invoke MM by giving the MM command to the EXEC.

    3.  MM outputs the headers of the new messages.

    4.  At the MM> prompt you type READ followed by carriage return
        and  proceed  to  read  the  new messages in a special mode
        called READ Mode which is invoked via the READ command.  As
        you  process each message, you might delete it, or save it,
        or reply to it, or any of a number of different things.

    5.  After processing the last of the new messages, MM takes you
        out  of READ mode and back to the MM> prompt (also known as
        the Top Level.)

    6.  Perhaps you now want to send some mail.  You  type  MM>SEND
        followed by a carriage return, and type in the people you
        want to send it to, the subject, and the text, and then when
        satisfied, you send it off.
                                                             Page 5


    7.  You then end your message session via the EXIT command.

    8.  Having returned to the EXEC, you are now free  to  do  your
        usual work.


The above is what a typical sample session with MM might look  like.
We have purposely generalized some of the finer points, such as what
exactly is done while you are READing or  SENDing  messages.   These
details will be considered later.

Remember that MM has an extensive internal help  facility.   At  any
point  in  MM you can type a ?  and get an informative message about
what is available to you at that point.  Also, at any level you  can
type HELP <command> where <command> is one of the things that MM can
give you help on.  To find out what things it can give you  help  on
type HELP ?  at Top Level, READ level or SEND level.



1.3  Message Sequences

One very important notion  is  that  of  the  message  sequence.   A
message  sequence  is  some group of messages that have a particular
trait in common (or which are just considered a sequence because you
talk  to MM about them using their numbers -- e.g.  5:100 would be a
message sequence of the 5th through 100th message).  There are  many
message sequences.  They are:


ALL             This represents every message in your file, whether
               deleted or not.

CURRENT         The current message is the message that MM is
               currently pointing at.  MM keeps a  pointer  to  the
               message  last  READ  or  JUMPed to so that you don't
               always have to know its message number to  refer  to
               it.   You may substitute a period wherever you would
               ordinarily  use  CURRENT.    This   is   merely   an
               abbreviation.

DELETED         This represents messages that have been deleted via
               the DELETE command.  On a subsequent EXPUNGE or EXIT
               command,  the  deleted  messages  will be physically
               removed  from  your  mail  file  and  gone  forever.
               Generally,  when  you process new messages and reply
               to them, you are finished with them and want to  get
               rid  of  them.   You  would DELETE them so that your
               mail file doesn't become unnecessarily cluttered  by
               old messages.

                                                             Page 6


FLAGGED         Sometimes you will want to keep old messages for
               awhile because they have some relevance to immediate
               tasks which you are doing.  MM can make a particular
               set of messages 'stand out' like a sore thumb.  When
               you  FLAG  a  message  it  tells MM to remember that
               particular  message  as  a  flagged  message.    The
               headers   of  FLAGGED  messages  will  be  displayed
               whenever you start MM, and all  flagged  messages
               are accessible via the FLAGGED message sequence.

FROM            You may want to have some way of looking at or
               processing all messages from  a  particular  person.
               This  message sequence is for that purpose.  Suppose
               you want to delete all messages in your message file
               from  a user named S.SILVERMAN.  The way to do that
               would be MM>DELETE  FROM  S.SILVERMAN.   Note  that
               after FROM you type the user-name of the person that
               you are interested in.  So  'FROM  S.SILVERMAN'  or
               more   generally  'FROM  <user-name>'  accesses  all
               messages from <user-name>.

INVERSE         This message sequence accesses all messages in
               an inverse order (most recent message first).

LAST            If you are interested in the most recent message
               use the  LAST  message  sequence.   You  may  use  a
               percentage  mark,  % , instead of the word LAST when
               specifying the last  message.   This  is  merely  an
               abbreviation.

NEW             This refers to messages which are both RECENT and
               UNSEEN.  Generally  this  is  a  message  which  has
               arrived  while  you  were away from the computer, or
               perhaps one that has just  arrived  while  you  were
               working.

ON              Suppose you would like to access the messages
               received on 4-Jul-76.  The  sequence  'ON  4-JUL-76'
               will do that.

RECENT          Any message which is new as of this session with MM
               is RECENT.  If you have  5  new  messages  when  you
               login,  then  they  would all be marked RECENT until
               you've ended your session with MM.

SEEN            Most messages are marked SEEN since you've usually
               seen most messages in your file.  Any message  which
               you have looked at at some earlier date is marked as
               SEEN.  A message that is marked SEEN will not have a
               letter next to its header.

SINCE           If you want to access all the messages received
               since a given date you can use 'SINCE <date>'.   For
               example,  to see all the messages since 4-JUL-76 you
               could say TYPE SINCE 4-JUL-76.
                                                             Page 7


SUBJECT         Suppose you are interested in all messages that
               have a Subject including the word 'computer'.   Then
               you  can  access  them  via  SUBJECT COMPUTER.  More
               generally 'SUBJECT <topic>' means a message sequence
               with  all  messages  including the phrase <topic> in
               their Subject line.

TEXT            If you are interested in messages which deal with
               COMPUTER but may not have  that  as  part  of  their
               Subject  line,  then  you  can use the TEXT COMPUTER
               message sequence.   More  generally,  TEXT  <phrase>
               will  mean  a  message  sequence  with  all messages
               including the phrase <topic>  in  the  body  of  the
               message.

UNANSWERED      Any message which has not been ANSWER'd or REPLY'd.

UNDELETED       messages not DELETEd.

UNFLAGGED       messages not FLAGged.

UNSEEN          messages which have never been TYPEd or READ.

 or a SEQUENCE OF MESSAGE NUMBERS denoting specific messages
    in the file: example 1:5, 7, 10:17, etc.


                             EXAMPLES

MM>READ FLAGGED [RETURN] would start READ  Mode with all  the
  ---- ------- --------
FLAGGED messages.

MM>TYPE FROM  H.HENDERSON  [RETURN] would  display  all the messages
  ---- ----  -----------  --------
from H.HENDERSON.

MM>TYPE 3:8 [RETURN] would display messages 3 through 8 individually.
  ---- --- --------



2.0  TOP LEVEL

2.1  Available Commands

When you start MM you are at the Top Level.  This is  identified  by
the  MM> prompt being displayed.  At this level, all the power of MM
is available to you via a large number of commands which enable  you
to manage your messages, read them, send new ones, reply to old ones
and so forth.
                                                              Page 8


Commands available at this level are:  Alias, Answer,  Append, BBoard,
Blank,  Bug,  Check, Continue, Copy,  Count, Create-init,  Daytime,
Delete,  Edit, Enable, Examine, Exit, Expunge, File-list, Flag, Forward,
Get, Headers, Help, Jump, Keywords, List, Literal-type, Logout,  Mark,
Move, Net-mail, Next,  Previous,  Profile,  Push,  Quit,  Read,  Remail,
Restore-draft, Send,  Set, Status, System-msgs, Type, Unanswer, Undelete,
Unflag, Unmark, Version.


We will now describe the functions and  use  of  each  of  these  in
detail.   You will probably want to refer to these as you use MM the
first few times.  These are essentially the descriptions  you  would
get  by  typing  HELP  <command> while in MM.  Some of these mention
that they take arguments.  What is meant by this is that  you  would
type  first the command and then the argument, for example MM>ANSWER
3.  In this example, ANSWER is the command and 3  is  the  argument.
The argument that ANSWER takes is a message sequence.  As you recall
from the earlier description of a message sequence, the person could
have substituted 4:10 or 2,5,7 or FROM S.SILVERMAN for 3 above.



2.2  Description Of Commands

ALIAS           takes a single argument, a username.  It then causes
               MM to behave as if you were that user; all mail sent
               will be "from" that user (your login name will be the
               "sender"), and MM will be reading the aliased user's
               mail file.

ANSWER          takes 1 argument, a message sequence you would like
               to answer.  So, to reply to message 3 you would  say
               MM>ANSWER  3  where 3 is the message number.  Or you
               could answer  any  other  message  sequence.   After
               typing  MM>ANSWER 3 and then carriage return it asks
               you "Reply msg #3 to:" and awaits one  of  "ALL"  or
               "SENDER".  If you respond with ALL, then your answer
               will go to everyone in the header  of  the  message:
               the person who sent it to you and everyone CCed.  If
               you respond with SENDER, then your answer will  only
               go to the sender of the message.

APPEND          takes a message sequence, and appends those messages
               together into one message.

BBOARD          types the bulletin board file <BBOARD>mail.txt.

BLANK           blanks your screen, if you are on a video display
               terminal.  If not, then it does nothing.

BUG             can be used to report problems or suggestions to the
               maintainers of MM.  BUG puts you into SEND MODE with
               a  predefined  list of addresses to send the bug to.
               You send it the normal way you would send a message.
               The  response may take a short while, e.g.  a day or
               two.
                                                              Page 9

CHECK           used to check for new messages that may have arrived
               while you are using MM.

CONTINUE        resumes a SEND which was interrupted by QUIT.

COPY            takes two arguments.  The first is a filename and
               the second is a message  sequence.   It  copies  the
               specified  message  sequence  into  the  given  file
               leaving it intact in your mail file.

CREATE-INIT     makes a file, MM.INIT in your directory which MM
               subsequently reads when you start up a new  MM.   In
               it,  you  can  set  various switches to make your MM
               environment more comfortable and  easy  to  use  for
               your  own  personal  tastes.   You  can  change  the
               settings by editing the file with  your  editor,  or
               you  can use the SET command in MM.  The following are
               the settings possible:


       BLANK-SCREEN-STARTUP ..number..
         If 0, blanks screen on startup and between messages.
       CONTROL-N-ABORT  ..number..
         If negative, never aborts on [CTRL]-N.
         If positive, always aborts.
         If 0, asks for confirmation before aborting.
       DEFAULT-CC-LIST ...user-names...
         A list of addresses to always  CC your outgoing
         messages to
       EDITOR  ...editor name...
         The editor you want to use
       ESCAPE-AUTOMATIC-SEND ..number..
         If 0, both [ESC] and [CTRL]-Z return to SEND level when
         inputting text.  This is the default.
         If positive, [ESC] sends the message and [CTRL]-Z returns to
         SEND level.
         If negative, [CTRL]-Z sends the message and [ESC] returns to
         SEND level.
       GET-CONNECTED-DIRECTORY ..number..
         If 0, ask which mail file to read from if connected
         to another directory.
         If positive, then connected directory always.
         If negative, then login directory always.
       PERSONAL-NAME ...your name..
         Used for outgoing  messages
       READ-PROMPT ...read mode prompt...
       REPLY-CC-OTHERS ..number..
         If 0, REPLY CC's everyone other than original sender.
       REPLY-INCLUDE-ME ..number..
         If negative, you receive a copy of REPLYs.
       REPLY-INITIAL-DISPLAY ..number..
         If negative, header of REPLY is displayed before
         input prompt.
       REPLY-SENDER-ONLY-DEFAULT ..number..
         If negative, REPLY sent only to sender, unless
         otherwise specified.
                                                              Page 10

       SAVED-MESSAGES-FILE ..filename..
         File to receive copies of your outgoing messages
       SEND-PROMPT ...send mode prompt..
       SEND-VERBOSE-FLAG ..number..
         If negative, delivery of mail not confirmed.
         If positive, delivery of messages confirmed.
       TOP-LEVEL-PROMPT ...top level prompt...
       USER-NAME ...your user name...

COUNT           takes a message sequence, and prints out the number of
               messages in that sequence.

DAYTIME         tells you the current date and time.

DELETE          takes one argument, a message sequence and marks it
               for deletion.  The messages are not erased until the
               EXIT or EXPUNGE command is given.

EDIT            takes one argument, a message sequence.  It proceeds
               to edit each message in that message sequence  using
               the editor specified in your MM.INIT file.

ENABLE          enables your capabilities (if you have any.)

EXAMINE         takes one argument, a filename.  It is like the GET
               command except that the file is read-only, and the
               file reference date is not updatad.

EXIT            used to erase any deleted messages in the current
               message file and end a session with MM.

EXPUNGE         used to erase deleted messages from the current
               message file and write out a new copy of the file.

FILE-LIST       is like the LIST command, except that it will ask
               you which file you would like to list to.  After
               the file argument, it takes a message sequence
               (rather than the lineprinter).

FLAG            takes one argument, a message sequence.  It marks
               the messages in that sequence with the FLAG bit,  so
               with  other  commands that take message sequences as
               arguments, the FLAGGED sequence  will  access  those
               messages.

FORWARD         takes one argument, a message sequence.  It forwards
               the messages in the sequence to an address which you
               specify after hitting carriage return.

GET             takes one argument, a filename.  It will read in
               that message file, parse the messages and act as  if
               that  were  the  default message file.  All commands
               now apply to that file.

                                                              Page 11

HEADERS         takes one argument, a message sequence.  It will
               then output all the  headers  of  that  sequence  in
               order of lowest message number to highest.

HELP            lets you get help on various topics including all
               the commands at the level at  which  HELP  is  being
               invoked.  So to find out the things you can get help
               on do HELP ?

JUMP            allows you to specify a message in the current
               message file to jump to.  It resets that message  to
               be  the  CURRENT  message.  For instance, MM>JUMP 10
               will make message number 10 be the current message.

KEYWORDS        takes two arguments, a keywords list and a message sequence.
               It will then marks the message in that sequence as being
               included in the keyword.  To define a keyword, put a line
               in your MM.INIT of the form:

                          KEYWORDS list-of-keywords

               This feature is useful for classifying old messages.

LIST            prints a message sequence on device LPT:  (usually the
               lineprinter).

LITERAL-TYPE    takes a single argument, a message sequence.  It then types
               out the bodies of those messages, without regard to
               ONLY-TYPE-HEADERS or DONT-TYPE-HEADERS.

LOGOUT          logs you out from the system after expunging and
               updating your message file.

MARK            takes one argument, a message sequence.  It will
               then mark the messages in that sequence as SEEN.

MOVE            takes two arguments.  The first is a filename and
               the second is a  message  sequence.   It  moves  the
               specified  message  sequence into the given file and
               deletes the sequence from your mail file.

NET-MAIL        the NET-MAIL command will attempt to send any messages
               that may be queued in your directory.

NEXT            goes to the next message in the file and types it if
               undeleted.  The next message is considered to be the
               one directly after the current one.

PREVIOUS        goes to the previous message in the file and types
               it if undeleted.  The previous message is considered
               to be the one directly before the current one.

PROFILE         helps you set up an environment for using MM
               corresponding to your desires in  message  handling.
               It  asks you a series of questions and then makes MM
               remember your responses (via the MM.INIT file).
                                                              Page 12


PUSH            gives you a new EXEC.  This means that you'll get a
               fresh copy of the TOPS-20 command interpreter, which
               prompts  you  with @.  At this point you can then do
               anything, and you may get back to MM by typing POP.

QUIT            exits MM without expunging messages marked for deletion.

RE-MAIL         is similar to forward, except instead of inserting the
               message after typein, the message is sent as is with
               the headers modified to indicate who did the remailing.

READ            takes one argument, a message sequence and starts
               reading the messages in  that  sequence  in  special
               READ  Mode.  For more information see the chapter on
               READ MODE.

RESTORE-DRAFT   takes a single argument, a file name created by the
               SAVE-DRAFT command, and restores the state of the send
               from that draft.

SEND            starts sending a message.  It prompts for the
               addresses, subject and text of the message.  To send
               the  message, type [ESC] after typing the text in.  For
               more information, see the chapter on SEND MODE.

SET             allows you to change certain defaults that MM uses
               in handling your messages.   The  various  arguments
               that  you  can  give  to  SET  are  listed under the
               CREATE-INIT command above.  This command can be used
               in  conjunction  with  the CREATE-INIT command.  You
               could first  type  CREATE-INIT  and  then  edit  the
               resultant  MM.INIT  in your directory or you can SET
               variables and then type CREATE-INIT which  will  put
               those defaults in MM.INIT.

STATUS          tells you relevant information and statistics about
               your current message file, i.e.  how  many  messages
               are deleted, unseen, how large the file is, etc.

SYSTEM-MSGS     reads in the system message file <SYSTEM>MAIL.TXT.

TYPE            takes a single argument, a message sequence.  It
               then types out each message in the sequence if it is
               undeleted.

UNANSWER        takes a single argument, a message sequence and then
               removes the answered status from all the messages in
               that sequence.

UNDELETE        takes a single argument, a message sequence and then
               undeletes all the messages in  that  sequence,  i.e.
               makes  them so that they won't be physically removed
               from the file when you  give  the  EXIT  or  EXPUNGE
               commands.
                                                              Page 13


UNFLAG          takes a single argument, a message sequence and
               unflags all the  messages  in  that  sequence,  i.e.
               makes  them  so  that  they are no longer accessible
               through the FLAGGED message sequence.

UNMARK          takes a single argument, a message sequence and then
               unmarks all the  messages  in  that  sequence,  i.e.
               makes them appear unseen.

VERSION         tells you the version number of the current MM program.



2.3  Commands Which Default

Commands such as HEADERS and TYPE, etc.  which take  arguments  such
as  a  message sequence also default to the CURRENT message.  If, at
any point, you want to know whether a command that takes an argument
defaults  to  one of its arguments, you can just type an [ESC] where
you would normally type the argument.  If it has a default, it  will
type  it  out  and  you  can  confirm that you want that argument by
typing a carriage return (otherwise you can abort with a [CTRL]-U or
backspacing).  If it doesn't have a default, your terminal will beep
at you.



2.4  Command Parser And Getting Help

When you are prompted by the MM> (or for that matter in READ MODE by
R> or in SEND MODE by S>) you will be using a command parser that is
just like the one you are used to  with  TOPS-20.   Partially  typed
commands  can  be completed by typing [ESC].  Also, at any point you
can usually type a question-mark and get some useful  help  message.
This is completely separate from the HELP facility MM has built into
it already.  So the important thing to remember is that  you  should
type  ?   and  [ESC]  whenever  you are not sure of what to do next.
Also, typing HELP should be of some assistance.



2.5  TOP LEVEL Summary

Of the above commands, by far the ones you will use most  frequently
are  READ and SEND.  Each of these invokes its own special mode that
is identified by a different prompt from the Top Level  MM>  prompt.
You  should  carefully study the following chapters on READ MODE and
SEND MODE.
                                                            Page 14


3.0  READ MODE

3.1  What Is READ MODE?

READ MODE is a special way of reading and processing the messages in
your  message  file.  It has a number of commands, many of them very
similar to the ones in TOP LEVEL, but different in that  they  refer
only  to  the  message being read.  So, for instance, if you were to
type READ 3, then the commands in READ  MODE  would,  for  the  most
part,  apply  to message 3.  If you typed READ 3:10 (meaning to read
messages 3 through 10, individually and one right after the  other),
then  the  commands  in READ MODE would apply, for the most part, to
each message between 3 and 10 inclusive as you read it.  This  turns
out  to  be very useful for managing your message file since you will
usually be dealing with individual messages.



3.2  Invoking READ MODE

READ MODE is invoked simply by typing READ at the TOP LEVEL followed
by an argument.  (If the argument is left out, READ is taken to mean
READ NEW and it will read any new messages you may  have.   If  none
exist,  then  it  simply  returns  you  to the Top Level).  When you
start MM and it tells you you have new messages, you should  type
READ in order to process the new messages one at a time.



3.3  Commands In READ MODE

Following is a list of the commands available to you while  in  READ
MODE.   READ  MODE  is identified by the R> prompt.  At that prompt,
any of the following commands can  be  used:   Blank, Continue, Copy,
Delete,  Edit, Flag,  Forward,  Header, Help,  Keywords, List,
Literal-type, Move,  Net-mail, Next, Previous, Push, Quit, Re-mail,
Reply, Send, Type, Unanswer, Undelete, Unflag, Unkeywords, Unmark.

The following descriptions are basically what you would see  if  you
typed R>HELP <command>.  Notice that these commands are very similar
to the TOP LEVEL commands, except that  they  do  not  take  message
sequence  arguments.   Instead,  they apply to the message currently
being read:

BLANK           blanks the terminal screen.

CONTINUE        resumes a SEND which was interrupted by QUIT.

COPY            takes one argument, a filename and copies the
               message currently being read into that file.

DELETE          deletes the message currently being read.

                                                              Page 15

EDIT            edits the message currently being read with the
               editor specified by the EDITOR variable in  your
               MM.INIT

FLAG            makes the message currently being read be FLAGged
               so that the FLAGGED message sequence will contain
               this message.

FORWARD         forwards this message to other users.  Suppose
               you  are  READing   a   message   that   you   think
               S.SILVERMAN  should  also  see.   Then  you  could
               FORWARD him the message.

HEADER          outputs the one-line header summary of the current
               message sequence.

HELP            Allows you to get help on a specific topic of
               interest in READ MODE.  HELP <command> gets help  on
               that   particular  command.   HELP, followed by a
               carriage return, gives you a general HELP for READ MODE.

KEYWORDS        takes one argument, a keywords list. It will then
               mark the current message with the designated keyword(s).
               To define a keyword, put a line in your MM.INIT of
               the form:

                            KEYWORDS list-of-keywords

               This feature is useful for classifying old messages.

LIST            This prints the current message on the lineprinter.

LITERAL-TYPE    types out the body of the current message, without
               regard to ONLY-TYPE-HEADERS or DONT-TYPE-HEADERS.

NET-MAIL        the NET-MAIL command will attempt to send any messages
               that may be queued in your directory.

MOVE            takes 1 argument, a filename.  So R>MOVE MESSAGES
               [RETURN] would move the message  currently  being
               read  into that  file and then subsequently delete
               the message. Note that this is similar to  the  COPY
               command  in READ  MODE  which  moves  it into a file
               but doesn't delete it from your mail file.

NEXT            proceeds to read the next message in the sequence
               currently being  read.   So  if  you  are  currently
               READing  3  and  you had specified MM>READ 3:6, then
               typing R>NEXT would go on to read  message  4.   (You
               can  also  just  type  a  carriage  return at the R>
               prompt.  This is the same as typing NEXT.)
                                                              Page 16

PREVIOUS        goes to the previous message in the file and types it
               if undeleted.

PUSH            gives you a fresh copy of the TOPS-20 command
               language interpreter, heralded by the @ prompt.
               (To get back into READ mode, type POP at the @ prompt.)

QUIT            gets you out of READ MODE and back to the TOP LEVEL.

RE-MAIL         is similar to FORWARD, except instead of inserting the
               message after typein, the message is sent as is with the
               header modified to indicate who did the remailing.

REPLY           Suppose you are READing message 3 and think it
               warrants a reply on your part.  Then you should type
               REPLY.  It will automatically setup to reply back to
               the sender of message 3.  End your reply with  [ESC]
               just like in SEND MODE.

SEND            puts you into SEND MODE so you can send a message.
               If you are READing a message and it reminds  you  to
               send  a  message  to someone, you would type SEND at
               that point.  You get out of SEND MODE via [ESC], which
               sends the message gets you back to READ MODE.

TYPE            displays the current message.

UNANSWER        removes the answered status from the message currently
               being read.

UNDELETE        undeletes the message currently being read, assuming
               it has been DELETED earlier at some point.

UNFLAG          unflags the message currently being read, assuming
               it has been FLAGged earlier at some point.

UNKEYWORDS      unmarks the messages currrently being readk, as not being
               included in the keyword.

UNMARK          unmarks the message currently being read, i.e., makes
               it appear unseen.
                                                            Page 17


4.0  SEND MODE

4.1  What Is SEND MODE?

SEND MODE is invoked by the SEND command at TOP  LEVEL  or  in  READ
LEVEL.   In  the  following  examples, underlined words in uppercase
are those which you would type.  Whenever you SEND a message, REPLY
or  ANSWER a  message, or send a BUG report, SEND MODE is invoked in
some form. Suppose you type SEND followed by a carriage return:

       MM>SEND [RETURN]
          ---- --------
       To:

At this point, MM is awaiting  a  list  of  addresses  to  send  the
message   to.    Legal   addresses  are  of  the  form  USERNAME  or
USERNAME,USERNAME,USERNAME (i.e.,  several  usernames  separated  by
commas).   Suppose  you  want  to  send  a  message to S.SILVERMAN,
JHSIEGMAN, and JCSANDELIN.  You would say

       MM>SEND [RETURN]
          ---- --------
       To: S.SILVERMAN, JHSIEGMAN, JCSANDELIN [RETURN]
           ------------ ---------- ---------- --------

The list of addresses is terminated with a carriage return.   Notice
that  space  will  be  ignored.   You  could  just as well have said
'S.SILVERMAN,JHSIEGMAN,JCSANDELIN'.  They are  separated  by  space
here  only for readability.  This is known as specifying the TO-LIST
in sending a message.  The next thing it  will  ask  you  for  is  a
CC-LIST:

       MM>SEND [RETURN]
          ---- --------
       To: S.SOLOMON [RETURN]
           --------- --------
       cc:

At this point you can specify a set of legal addresses as  described
above.   These  people  will be sent a 'carbon copy' of the message.
Usually you carbon copy people who, although you aren't sending them
the  message  specifically,  you  would like them to see the message
anyway.  Suppose you would like to send  a  message  to  S.SOLOMON,
M.MCLURE  and would like VLAKANA to also receive a copy but you
don't want her to feel as if he should respond.  Then you would type:

       MM>SEND [RETURN]
          ---- --------
       To: S.SOLOMON, M.MCLURE [RETURN]
           ---------- -------- --------
       cc: VLAKANA [RETURN]
           ------- --------
                                                              Page 18

After specifying the CC-LIST you will then be asked for the  subject
of  the message.  Usually this is just a few words or a phrase which
describes the topic of  your  message.   For  example,  if  you  are
sending  a message to the above people about the recent difficulties
involved with your project, you might say something like

       MM>SEND [RETURN]
          ---- --------
       To: S.SOLOMON, M.MCLURE [RETURN]
           ---------- -------- --------
       Cc: VLAKANA [RETURN]
           ------- --------
       Subject: DIFFICULTIES ENCOUNTERED WITH PROJECT [RETURN]
                ------------ ----------- ---- ------- --------


After specifying all of the above information, you will be asked  to
actually  type  in the body of the message itself.  Suppose you want
to send a message to the above people,  saying  'I  AM  ENCOUNTERING
PROBLEMS  WITH  ACCESSING THE COMPUTER ON A REGULAR BASIS DUE TO THE
EXTENDED PERIODS OF DOWNTIME.  WHAT, IF ANYTHING,  CAN  BE  DONE  TO
INSURE THE STABILITY OF THE COMPUTER?'.  To do this you should type:

       MM>SEND [RETURN]
          ---- --------
       To: S.SOLOMON, M.MCLURE [RETURN]
           ---------- -------- --------
       cc: VLAKANA [RETURN]
           ------- --------
       Subject: DIFFICULTIES ENCOUNTERED WITH PROJECT [RETURN]
                ------------ ----------- ---- ------- --------
       Message (end with ESCAPE or ^Z):
       I AM ENCOUNTERING PROBLEMS WITH ACCESSING THE COMPUTER ON A [RETURN]
       - -- ------------ -------- ---- --------- --- -------- -- - --------
       REGULAR BASIS DUE TO THE EXTENDED PERIODS OF DOWNTIME. WHAT,[RETURN]
       ------- ----- --- -- --- -------- ------- -- --------- -------------
       IF ANYTHING, CAN BE DONE TO INSURE THE STABILITY OF THE [RETURN]
       -- --------- --- -- ---- -- ------ --- --------- -- --- --------
       COMPUTER? [RETURN]
       --------- --------
       [ESC]
       -----
       S.SOLOMON -- ok
       M.MCLURE -- ok
       VLAKANA -- ok
       MM>

In the above example, the message is  typed  in  and  ended  with
[ESC].  MM responds by confirming the delivery to S.SOLOMON and
M.MCLURE and VLAKANA.  Thereafter, it returns back to  the  TOP
LEVEL MM> prompt.
                                                              Page 19

While typing the text of your message,  there  are  a  number  of
useful commands that can be used.  The commands are:

[CTRL]-B        insert a file into the place where you are currently
               typing.  You will be prompted with INSERT FILE:   at
               which point you should type the name of the file you
               want inserted and then a carriage return.   You  can
               then continue typing more of the message or send it.

[CTRL]-C        clobber MM and return to the TOPS-20 command
(or [CALL])     language interpreter, heralded by the @ prompt.   If
               you  run a program at this point, you will lose your
               MM core image.  To get back to it type @CONTINUE.

[CTRL]-E        invoke the editor specified in the EDITOR variable
               entry in your  MM.INIT  file  on  the  text  of  the
               message as typed so far.  (The default is TVEDIT.)

[CTRL]-I        inserts a tab into the text at the point where you
or [TAB]        are currently typing text in.

[CTRL]-K        types out the text of the message as it appears thus
               far.

[CTRL]-R        retypes the line that you are typing, from
               leftmost character to rightmost.

[CTRL]-U        erases the line that you are typing, from
               leftmost character to rightmost.

[CTRL]-W        erases the last word you typed.

[DELETE]        delete the last character.

[ESC]  or       escape to SEND MODE heralded by the S> prompt at
[CTRL]-Z        which point any of the SEND MODE commands apply.
               To send the messgage, type SEND and then a carriage
               return.



4.2  Commands In SEND MODE

As you see above, simply typing MM>SEND will not immediately put you
into  SEND  MODE with the S> prompt.  What will do this is finishing
the text of your message with an [ESC] or [CTRL]-Z.  However, if
you  want to change some attribute (e.g.  add or subtract an address
from the header, change the subject, etc.) you will need to  get  to
the  S> prompt with an [ESC] or [CTRL]-Z.  If you do this, then you
can use any of the SEND MODE commands.  They  are:   BCC,  BLANK, CC,
DISPLAY, EDIT,  ERASE,  HEADERS,  HELP,  INSERT,  LITERAL-TYPE, PUSH,
QUIT,  REMOVE, RESTORE-DRAFT, SAVE-DRAFT, SEND, SUBJECT, TEXT, TO,
TYPE, USER-HEADER.
                                                              Page 20

Following is a description of each of the above commands:

BCC             A blind-carbon copy is like a carbon-copy except
               that anyone who is not blind-carbon copied does  not
               see  the people who are.  This is useful if you want
               to send  a  note  to  S.SILVERMAN  and  would  like
               VLAKANA to  see  the  message  but  don't  want
               S.SILVERMAN  to  know  that  VLAKANA  is   also
               receiving  a  copy  of  the message.  To do this you
               would put S.SILVERMAN as the To:  recipient and [ESC]
               to  SEND LEVEL and say S>BCC VLAKANA  followed by
               a carriage return.

BLANK           blanks the terminal screen.

CC              This is used to add more carbon-copy addresses to
               the CC-LIST.  To add JHSIEGMAN and JCSANDELIN, you
               would say S>CC JHSIEGMAN, JCSANDELIN.

DISPLAY         If you want to show the message you've typed thus
               far, its addresses, and the subject  line,  you  can
               say S>DISPLAY followed by a carriage return.  If the
               message is very long and you just  want  to  display
               one  of  the  fields,  you  can  say S>DISPLAY TO or
               S>DISPLAY CC or S>DISPLAY SUBJECT or S>DISPLAY  TEXT
               and a carriage return to show the corresponding field.

EDIT            A very useful feature that you will have occasion to
               use is to edit the text  of  your  message.   To  do
               this,  simply  type  S>EDIT  followed  by a carriage
               return.  MM will then invoke  the  editor  specified
               after  the EDITOR variable in your MM.INIT file
               (If you specify none, the system default is TVEDIT.).
               To get back to MM you will have  to use the standard
               exit  from  your  editor ([ESC] [ESC] F if TVEDIT).

ERASE           Suppose you want to completely erase some field of
               your message, either TO, CC, SUBJECT, TEXT  or  ALL.
               You  can  use  the  ERASE command to do that.  So to
               erase the text of your message,  S>ERASE  TEXT and a
               carriage return.   MM will not let you send a message
               that doesn't have at least some TO:  entry so if you
               S>ERASE TO, you will have to specify some other
               address(es) with the S>TO command in order to send it.

HEADERS         This command is identical to the one at TOP LEVEL.  It
               lets you type out the headers  of  any  messages  in
               your  message  file.  It takes a message sequence as
               an argument.  However, it defaults  to  the  current
               message.

HELP            This is the SEND MODE HELP command.  You can use it
               to get general help about SENDing  (by  just  saying
               S>HELP)  or  you can get more specific help by doing
               S>HELP <topic>.  You can get a  list  of  topics  by
               saying S>HELP ?.
                                                              Page 21

INSERT          If you would like to insert the contents of a file
               as an addendum to your message, you should use  this
               command.  So  to insert the file ADDENDUM, you would
               say S>INSERT ADDENDUM followed by a carriage return.

LITERAL-TYPE    This will type out the bodies of messages, without
               regard to ONLY-TYPE-HEADERS or DONT-TYPE-HEADERS
               informatin in your MM.INIT.

PUSH            This is identical to the PUSH commands at TOP LEVEL
               and READ LEVEL.  It gives you a fresh  copy  of  the
               TOPS-20  command  language  interpreter, heralded by
               the @ prompt.  To get back to SEND mode, type
               POP.

QUIT            Similar to the QUIT commands at TOP and SEND levels.
               This takes you to the level immediately  above  your
               current  SEND  LEVEL.   So it could take you back to
               TOP LEVEL if you had just previously been there.  Or
               if  you  had given the SEND command at READ LEVEL it
               would take you back  there.   Note  that  this  will
               abort  the  current  message  so  you  will lose any
               partially completed message you have been typing.

REMOVE          Suppose you have a long list of addresses in your
               TO-LIST and you want to remove  one  of  them.   You
               certainly  don't  want to ERASE TO since then you'll
               have to type them all in again.  Rather  you'd  like
               to  REMOVE  the  appropriate  address.   REMOVE is the
               command to do that.  So suppose your  TO-LIST  looks
               like    To:     RDLAI,  M.MCLURE,   S.SILVERMAN,
               JCSANCELIN, SONDRA.  You can remove JCSANDELIN by
               simply typing S>REMOVE JCSANDELIN [RETURN].

RESTORE-DRAFT   If you were interrupted in the middle of a SEND and
               you saved a copy of the partial message with the
               SAVE-DRAFT command (see below), you can recall that
               message and finish it with this command.

SAVE-DRAFT      If you are interrupted in the middle of sending a
               message, you can save the draft and return to it
               later by using the SAVE-DRAFT filename command.
               Your message will be stored in a file which is saved
               in your directory.  A copy of this draft stays in
               this file until you delete the file from your directory.

SEND            If you have decided that you want to send off the
               current state of your message,  you  can  do  so  by
               typing  S>SEND followed by a carriage return, or you
               can just type a carriage return at the S>  prompt.

SUBJECT         This is used to change the subject of the current
               message you are  sending.   To change the current
               subject  to  be  BUDGETS you should say S>SUBJECT
               BUDGETS.  BUDGETS, of course, can consist of more than
               one word, if you so desire.
                                                              Page 22

TEXT            If you want to add text on to the end of the text as
               it currently exists, you can use this  command.   To
               add  'THE  GREY  DOG  JUMPED OVER THE LAZY SWAN' you
               would simply say

               S>TEXT [RETURN]
                 ---- --------
               THE GREY DOG JUMPED OVER THE LAZY SWAN [ESC]
               --- ---- --- ------ ---- --- ---- ---- -----

TO              To add more addresses to the TO-LIST, use this
               command.    For   example,   to   add   JEMARCUS,
               M.MCLURE,  RDLAI  to  the  TO-LIST,  you would
               simply type

               S>TO JEMARCUS, M.MCLURE, RDLAI [RETURN]
                 -- --------- --------- ----- --------

TYPE            This displays the message which would be typed out
               by the MM>TYPE CURRENT command at  TOP  LEVEL.   For
               example, suppose you are at TOP LEVEL, give the TYPE
               command followed by a message number.  It types  out
               that  message,  and perhaps you desire to send off a
               message to someone since you  have  just  remembered
               something  that the message reminded you of.  So you
               type MM>SEND.  Then, while typing in  your  message,
               you want to refer back to that message again.  To do
               that, simply get to  the  S>  prompt  and  say  TYPE
               followed  by a carriage return.  This types out that
               message.

                                                            Page 23


4.3  Distribution Lists

Thus far, we have dealt with short  TO-LIST's  and  CC-LIST's.   But
what  happens  if  you have 50 people you want to send a message to,
and perhaps you send messages to this group of people fairly  often.
Clearly,  you  don't  want  to  have to type the names in each time.
Besides, if you had to do this, the header of the message  would  be
extraordinarily   long.   There  is  a  facility  in  MM  for  using
distribution lists.

A distribution list is simply a file, created with an editor, containing
user  names  in  it.  For example, suppose you send a message to a
group of users who head their projects.  So you would create a file
called  PROJECT.LEADERS consisting of:

   PROJECT-LEADERS: PENTTI_KANERVA, SONDRA, S.SILVERMAN,
   VLAKANA, JEMARCUS, JHSIEGMAN

If a file called PROJECT.LEADERS contains the above  text,  you  can
then  use the file as a distribution list.  So when you are prompted
with 'To:' or 'cc:' you can  say  '@PROJECT.LEADERS'  and  have  the
above  file  inserted  at  that  point.   If  you  subsequently do a
S>DISPLAY to see what has been put in the header, you'll  note  that
only  the text up to the colon is put in.  So, for the above example
if you did:

       MM>SEND [RETURN]
          ---- --------
       To: @PROJECT.LEADERS [RETURN]
           ---------------- --------
       cc: [RETURN]
           --------
       Subject: SUMMARY OF WORK [RETURN]
                ------- -- ---- --------
       Message (end with ESCAPE or ^Z):

       A SUMMARY OF THE WORK DONE SO FAR ON OUR RESPECTIVE [RETURN]
       - ------- -- --- ---- ---- -- --- -- --- ---------- --------
       PROJECTS CAN BE FOUND IN <PROJECTS>SUMMARY.TEXT. [RETURN]
       -------- --- -- ----- -- ----------------------- --------
       [ESC]
       -----
       S>

and now if you do a S>DISPLAY TO, you would see

       S>DISPLAY TO [RETURN]
         ------- -- --------
       To: mailing-list:
       S>

This is done so that you don't have to  have  the  entire  group  of
people  in  the header of the message.  Rather, they are referred to
collectively by the title appearing before the first  colon  in  the
PROJECT.LEADERS  file.   Of  course,  if  you  just  have  usernames
separated by commas, then they will all be included in  the  header.
Note  that  this distribution list capability works for the TO-LIST,
CC-LIST, and BCC-LIST.
                                                            Page 24


4.4  Sending Messages To A File

You can also send messages to  a  file.   This  is  done  by  simply
specifying  *<FILENAME>  when you are prompted with the To:  or cc:.
For instance, if you wanted to send a copy  of  the  above  note  to
those  project  leader people and also CC a copy of the message to a
file called MESSAGE.PROCEEDINGS in your directory, you could say:

       S>SEND [RETURN]
         ---- --------
       To: @PROJECT.LEADERS [RETURN]
           ---------------- --------
       cc: *MESSAGE.PROCEEDINGS [RETURN]
           -------------------- --------
               :
               :



5.0  CONCLUDING THOUGHTS

The best way to learn how to use MM is to look at this manual while
you use MM.  As you desire to read or send a message, look up the
corresponding chapters on READ MODE and SEND MODE and use the
information contained in them to learn more during your first MM
sessions.  Trying to remember all the different possibilities is
just a waste of your time, since you certainly won't need to use
them all.

If, after you have used MM extensively, you feel that something has
been left out of the program, feel free to use the BUG command.  We
are willing to listen to reasonable suggestions and let you know if
anything can be done.