There are no other files named mm.doc in the archive.
[Note: this documentation is only about 90% complete. Some features
and commands in MM are not explained herein.]
MM USER'S MANUAL
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:
followed by a carriage return. MM then proceeds to check to see if you have
new mail. If you do, it displays a condensed 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:
N 20 6 Feb McLure at SRI-KL (Stuart (426 chars)
Last read: 6-Feb-79 16:16:49, 20 msgs (19 old), 10 pages
In this example, the user types MM. It responds with a single line indicating
that the user has new mail. The line beginning with "N 20 ...and so on..." is
that line. The next line, beginning "Last read:...and so on..." 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
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. As we said earlier, 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 "McLure at SRI-KL (Stuart" is part of the "From:" line we saw earlier. It
means that the message is from McLure at the computer called SRI-KL. the
"(Stuart" is simply part of the user name. The rest is too long to easily fit
on the line so it is just chopped off in the header; however in the message
body itself it is completely visible. 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.
You 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. 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 FLAGGED message sequence. We will
discuss this later. N means that it is recent and unseen. R means that it is
just arrived as of this MM session. And, of course, U means that it has never
been TYPEd or READ.
The next line begins with "Last read: 6-Feb-79 16:16:49...". This means that
your mail file was last read on February 6th, 1979 at 16:16:49. There are 20
messages in the file, 19 of which are old, and the file is 10 pages long.
Obviously since 19 of them are old and you have 20 messages, then 1 of them is
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 and
sees if it understands it. If so, then it executes it. If not, it will complain
to you about the command error. MM has its own 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 an effective 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 new mail 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
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
and type in the people you want to send it to, the subject
and the text, and then when satisfied, you send it off
7. You then end your message session via the EXIT command.
8. Having returned to the EXEC, you are now free to do your
The above is what a typical sample session with MM might look like. We have
necessarily 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. More
generally, 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. You can find out what things it can give you help on by typing 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 perhaps
have no trait in common but 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
CURRENT The current message is the message that you are currently
pointing at. MM keeps a pointer to the current message so that
you don't always have to know the message number of the message
you are interested in. 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 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.
FLAGGED Sometimes you will want to keep old messages for awhile because
they might have some relevance for 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. All
flagged messages are then accessible via the 'flagged' message
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 wanted to delete all messages in
your message message file from a person named Silverman. The
way to do that would be MM>DELETE FROM SILVERMAN. Note that
after FROM you type the name of the user that you are
interested in. So 'FROM SILVERMAN' or more generally 'FROM
<person>' accesses all messages from <person>.
INVERSE Suppose you have many many messages in your file and you would
like to do something with them in reverse order (e.g. most
recent first). This message sequence accesses all messages in
an inverse order.
LAST If, for some reason, you are interested in the most recent
message you may use the LAST message sequence. You may also
substitute 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 and UNSEEN.
Generally this is simply 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 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 finished them and 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
SINCE If you want to access all the messages 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.
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.
For example, one could say MM>READ FLAGGED. This would put you into read
mode on all the flagged messages. Or MM>TYPE FROM HENDERSON to type out all the
messages from HENDERSON. Or MM>ANSWER 3:8 to answer each of the messages from
3 through 8 individually.
2. 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 possible commands. At this point you can manage your
messages, read them, send new ones, reply to old ones and so forth.
Commands available at this level are:
Answer, Blank, Bug, Check, Copy, Create-init, Daytime, Delete, Edit
Enable, Exit, Expunge, Flag, Forward, Get, Headers, Help, Jump, List
Logout, Mark, Move, Net-mail, Next, Previous, Profile, Push, Quit, Read
Send, Set, Status, System-msgs, Type, Undelete, Unflag, Unmark, Version
We will now describe each of these in detail, their functions and use. 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 SILVERMAN for 3 above.
2.2 Description of commands
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 else. If you respond with SENDER, then
your answer will only go to the sender of the message.
BLANK blanks your screen, if you are on a display terminal. If not,
then it does nothing.
BUG can be used to report problems or suggestions you have for MM
to the maintainers of MM. Basically, 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. several days.
CHECK used to check for new messages that may have arrived while you
are using MM.
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 the current 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. The following are the current settings
(if 0, don't blank screen on startup otherwise do blank)
(if negative, never abort on ^N, if zero, ask if should abort,
if positive, always abort)
DEFAULT-CC-LIST ...names here...
(A list of addresses to always cc your outgoing messages to)
EDITOR ...editor name here...
(The editor you want to use)
(If 0, then when typing the text of a message, an escape will
send it immediately and return you to top level... anything else
and it will act as ^Z returning you to send level)
(If 0, ask where to read in the mail file from if connected
to another directory, if positive then connected directory always,
if negative, then login directory always)
PERSONAL-NAME ...your name here..
(used for outgoing netmail messages)
READ-PROMPT ...the prompt meaning you're in read mode...
(if 0, reply cc's everyone other than from)
(if negative, then include me in replies)
(if negative then display text of reply initially)
(if negative then default to replying only to sender)
(if negative, use the RFC733 style 'John Doe <Doe at Site>'
style headers for outgoing netmail messages
(file to receive copies of your outgoing messages
SEND-PROMPT ...the prompt meaning you're in send mode..
(if negative, then superterse, say nothing about sending mail,
if 0 then tell of local delivery, if positive then super verbose)
TOP LEVEL-PROMPT ...the prompt meaning you're at top level...
USER-NAME ...your user name...
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.)
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.
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
typing 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.
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 the current message to be the one that you
specify to jump to. For instance, MM>JUMP 10 will make message
number 10 be the current message. It does nothing but reset the
current message pointer.
LIST prints the message currently being read on device LPT:
(usually the lineprinter).
LOGOUT logs you out from the system after expunging and updating your message
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 the current
NET-MAIL attempts to send any messages that may be queued in your
directory. All messages across the network are queued by
default. Any messages that can't be immediately delivered
locally are queued so that the MAILER (a job running all the
time) can then come along later and send them off.
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
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 setup an environment for using MM corresponding to
your desires in message handling. It asks you a series of
questions and then makes MM remember them (via the MM.INIT
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 returns you to the level immediately above this one. If given
while in READ or SEND modes, it will return you to TOP LEVEL.
If at top level then simply exits MM without modifying the mail
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.
SEND starts sending a message. It prompts for the addresses,
subjects and text of the message. To send the message, type ^Z
after finishing 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 out 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.
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.
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 sequnce 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 which you are
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
^U or <DELETE>'s. If it doesn't have a default, it will beep 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 itself. 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 assistence.
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.
3. 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 usually we will be dealing with
3.2 Invoking READ MODE
READ MODE is invoked by simply 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-up MM and it tells you you have new
messages, you should type READ in order to process the new messages one at a
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:
Copy, Delete, Edit, Flag, Forward, Help, List, Move, Net-Mail, Next,
Push, Quit, Reply, Send, Type, Undelete, Unflag
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 current message being read:
COPY takes one argument, a filename and copies the message currently
being read into that file.
EDIT edits the message currently being read, with the editor
specified in 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 addresses. Suppose you are
READing a message that you think SILVERMAN should also see.
Then you should FORWARD him the message.
HELP Allows you to get help on a specific topic of interest in READ
MODE. HELP <command> gets help on that particular command.
HELP<carriage return> gives you a general HELP for READ MODE.
LIST this prints the message currently being read onto the
MOVE takes 1 argument, a filename. So R>MOVE FOO.BAR 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.
NET-MAIL attempts to send off any queued netmail messages in your
NEXT proceed 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. Since we don't want to have to type this every time,
you can also just type a carriage return at the R> prompt. This
is the same as doing a NEXT
PUSH gives you a fresh copy of the TOPS-20 command language
interpreter heralded by the @ prompt.
QUIT gets you out of READ MODE back to TOP LEVEL
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. You end your
reply with a ^Z 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 ^Z which gets you back to READ MODE.
TYPE exactly like TYPE at TOP LEVEL. It will default to the current
message being read, however you can also supply it with an
argument of a message sequence to type out.
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
4. SEND MODE
4.1 What is SEND MODE?
SEND MODE is invoked by the SEND command at TOP LEVEL and in READ LEVEL. In
the following examples, things 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:
At this point, MM is awaiting a list of addresses to send the message to.
Legal addresses are of the form USERNAME@HOSTSITE or just USERNAME. They can be
separated by commas. Suppose you want to send a message to SILVERMAN@SRI-KL,
MCLURE@SRI-KL, and JOHN@MIT-AI. You would say
To: SILVERMAN@SRI-KL, MCLURE@SRI-KL, JOHN@MIT-AI
The list of addresses is terminated with a carriage return. Notice that
space will be ignored. You could have just as well said
'SILVERMAN@SRI-KL,MCLURE@SRI-KL,JOHN@SRI-KL'. They are separated by space here
only for readability. If, however, you wish to send a message to a person who
also works at your computer, you can just leave off the hostsite name. So to
send a message to SOLOMON who happens to work on your computer also, you can
This is known as specifying the TO-LIST in sending a message. The next thing
it will ask you for is to specify a CC-LIST:
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 in a message who, although you aren't sending them the message
specifically, you would still like them to see the message anyway. Suppose you
would like to send a message to SOLOMON, MCLURE@SRI-KL, and would like
DOE@SRI-KA to also receive a copy but you don't want him to feel as if he
should respond. Then you would do:
To: SOLOMON, MCLURE@SRI-KL
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
Subject: DIFFICULTIES ENCOUNTERED WITH PROJECT
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
Subject: DIFFICULTIES ENCOUNTERED WITH PROJECT
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
solomon -- ok
mclure at sri-kl -- queued
doe at sri-ka -- queued
In the above example, the message is typed in and ended with a CONTROL Z. MM
responds by confirming the local delivery to SOLOMON and the queueing of the
two messages to MCLURE and DOE. Thereafter, it returns back to the TOP LEVEL
While typing the text of your message in, there are a number of useful
commands that can be used. The commands are:
CONTROL-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.
CONTROL-C clobber MM and return to the TOPS-20 command 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
CONTROL-E invoke the editor specified in the EDITOR variable entry in
your MM.INIT file on the current text of the message as typed
CONTROL-I inserts a tab into the text at the point where you are
currently typing text in
CONTROL-K types out the text of the message as it appears thus far since
you've started typing it
CONTROL-R retypes the current line that you have just finished typing,
from leftmost character to rightmost
CONTROL-U erases the currently line that you have just finished typing,
from leftmost character to rightmost
CONTROL-W erases the last word you typed
CONTROL-Z end the message and have MM send it off
<DELETE> delete the last character
<ESCAPE> escape to SEND MODE heralded by the S> prompt at which point
any of the following SEND MODE commands apply
4.2 Commands in SEND MODE
As you see above, simply typing MM>SEND will not explicitly put you into SEND
MODE at the S> prompt. What will do this is finishing the text of your message
with an <ESCAPE>. A CONTROL-Z sends off the message and returns you to the
level above your SEND MODE which could be either TOP LEVEL or READ LEVEL.
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 <ESCAPE>. If you do this, then you can use any of the SEND MODE
commands. They are:
Bcc, Cc, Display, Edit, Erase, Headers, Help, Insert,
Push, Quit, Remove, Send, Subject, Text, To, Type
Following is a description of each of the above commands available at the S>
prompt at SEND LEVEL:
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 SILVERMAN and
would like DOE to see the message but don't want SILVERMAN to
know that DOE is also receiving a copy of the message. To do
this you would put SILVERMAN as the To: recipient and get to
SEND LEVEL and say S>BCC DOE followed by a carriage return.
CC This is used to add more carbon-copy addresses to the CC-LIST.
To add SARA and MUBWINKLE, you would say S>CC SARA, MUBWINKLE.
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 to show the
EDIT A very useful feature that you will have ocassion 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. To
get back to MM you will have to use the standard exit from your
editor. However, there are some editors in which you must save
the contents of your editing before you get back to MM. MM
will warn you if you have to write it back. Editors based on
TECO, such as EMACS, don't need to have it written out first
because MM can easily understand what EMACS is doing. Whereas,
with editors of unknown origin you may have to write it out.
Also, not all editors are known to work. It would be impossible
for us to try to make them all work with MM. Rather, if you are
curious whether your editor works with MM, just try it out.
ERASE Suppose you want to completely erase some field of your
message, either TO, CC, SUBJECT, or TEXT. You can use the ERASE
command to do that. So to erase the text of your message,
S>ERASE TEXT. Or if you want to erase the whole thing, S>ERASE
ALL. 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 addresses with the S>TO command in order to send
HEADERS This command is identical to the one at TOP. 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
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 ?.
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 FOO.BAR, you would say S>INSERT FOO.BAR
followed by a carriage return.
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.
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. This is
the command to do that. So suppose your TO-LIST looks like To:
John, McLure, Jeff, Jack, Sondra. You can remove Jack by simply
typing S>REMOVE JEFF.
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. Since we don't want to always have to type
that whole thing out, you can just type a carriage return at
the S> level to send off the message.
SUBJECT This is used to change the subject of the current message you
are sending. To change the current subject to be FOOBAR you
should say S>SUBJECT FOOBAR. FOOBAR, of course, can consist of
more than one word if you so desire.
TEXT If you want to add text on to the end of the text as it
currently exists, you can use this command. So add 'THE GREY
DOG JUMPED OVER THE LAZY SWAN' you would simply say S>TEXT
<carriage return> THE GREY DOG JUMPED OVER THE LAZY SWAN'
followed by a ^Z to send the message off or <ESCAPE> to get
back to the S> SEND LEVEL prompt.
TO To add more addresses to the TO-LIST, use this command. For
example, to add DOE, MCLURE, JACK to the TO-LIST, you would
simply type S>TO DOE, MCLURE, JACK followed by a carriage
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. Note, also, that you can give an argument (a
message sequence) to this particular TYPE.
4.3 ^Z vs. <ESC> while inputting text
The usual way to send a message once you have finished typing the text in is
via ^Z. However, if you have used <ESC> in the meantime, to get back to SEND
MODE subsequent ^Z's will act like <ESC>'s. The idea behind this is that if
you wanted to edit your message once, you may want to do so again. Getting to
SEND LEVEL you will probably want to change fields with commands other than the
S>TEXT command, so naturally you will want to send off the message by typing a
carriage return at S> level.
4.4 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 all the 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 containing user names in it. For
example, suppose you send a message to a group of users who head their
projects. You might call these people project leaders. So perhaps you would
create a file called PROJECT.LEADERS consisting of:
PROJECT-LEADERS: Murphy, Sondra, Silverman, Doe@SRI-KA, Mclure,
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:
Subject: SUMMARY OF WORK
A SUMMARY OF THE WORK DONE SO FAR ON OUR RESPECTIVE
PROJECTS CAN BE FOUND IN <PROJECTS>SUMMARY.TEXT.
and now if you do a S>DISPLAY TO, you would see
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 collectivelly as the text
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
4.5 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:. So 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:
5. 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
memorize 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, however we certainly don't guarantee that it will be
All message sequence 3
Answer 6, 7
Carbon copy 16
Cc 18, 19
Cc-list 16, 20, 21
Copy 7, 8, 13, 14
Create-init 7, 8, 11
Current message sequence 3
Daytime 7, 9
Delete 7, 9, 13
Deleted message sequence 3
Display 18, 19
Edit 7, 9, 13, 18, 19
Editor 13, 18, 19
Enable 7, 9
Erase 18, 19
Exec 1, 3
Exit 3, 7, 9, 11
Expunge 7, 9, 11
Flag 7, 9, 13
Flagged message sequence 4, 9, 11, 13
Forward 7, 9, 13
From message sequence 4
Get 7, 9
Headers 7, 9, 19
Help 3, 7, 10, 12, 13, 14, 18, 20
Init file 9, 10, 11, 13, 18, 19
Init variables 8
Insert 18, 20
Inverse message sequence 4
Jump 7, 10
Last message sequence 4
List 7, 10, 13, 14
Logout 7, 10
Mark 7, 10
Move 7, 10, 13, 14
Net-mail 7, 10
New message sequence 4
Next 7, 10, 13, 14
On message sequence 4
Previous 7, 10
Profile 7, 10
Push 7, 10, 13, 14, 18, 20
Queued messages 14
Quit 7, 11, 13, 14, 18, 20
Read 2, 6, 7, 11, 13, 14
Read level 16, 18, 20
Read mode 12, 13, 14, 23
Recent message sequence 5
Remove 18, 20
Reply 13, 14
Sample header 1
Sample mm session 2
Seen message sequence 5
Send 7, 11, 13, 14, 16, 18, 20
Send level 18, 20
Send mode 12, 14, 16, 18, 20, 23
Set 7, 11
Since message sequence 5
Status 7, 11
Subject 18, 20
Subject message sequence 5
System-msgs 7, 11
Text 18, 20
Text message sequence 5
To 18, 21
To-list 16, 20, 21
Top level 13, 14, 16, 17, 18, 19, 20, 21
TOPS-20 12, 14, 17, 20
Type 6, 7, 11, 13, 14, 18, 21
Unanswered message sequence 5
Undelete 7, 11, 13, 14
Undeleted message sequence 5
Unflag 7, 11, 13, 15
Unflagged message sequence 6
Unmark 7, 11
Unseen message sequence 6
Version 7, 12