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.