


                                                            Price: $1.00




                            Mathlab Memo #3


                 Massachusetts Institute of Technology

                             Mathlab Group
                    Laboratory for Computer Science
                    Cambridge, Massachusetts, 02139




              An Introduction to ITS for the MACSYMA User





                                   by
                            V. Ellen Golden






                                revised
                             April 14, 1981








              An Introduction to ITS for the MACSYMA User


Contents

I.        Introduction . . . . . . . . . . . . . . . . . . . . . . . . 1
II.       Getting onto the System . . . . . . . . . . . . . . . . . . .3
     A.   Getting an Account . . . . . . . . . . . . . . . . . . . . . 3
     B.   Establishing a Connection . . . . . . . . . . . . . . . . . .3
     C.   Logging In . . . . . . . . . . . . . . . . . . . . . . . . . 6
     D.   Loading a MACSYMA . . . . . . . . . . . . . . . . . . . . . .6
     E.   Logging Out . . . . . . . . . . . . . . . . . . . . . . . . .7
     F.   INQUIR . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
     G.   INIT files . . . . . . . . . . . . . . . . . . . . . . . . . 8
     H.   Experienced User Login Protocol . . . . . . . . . . . . . . .9
III.      DDT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
     A.   Program Loading and Execution . . . . . . . . . . . . . . . 10
     B.   "Jobs" . . . . . . . . . . . . . . . . . . . . . . . . . . .11
     C.   Moving From One Job to the Next . . . . . . . . . . . . . . 12
     D.   Getting Rid of Jobs . . . . . . . . . . . . . . . . . . . . 12
     E.   Disowned and Detached Jobs . . . . . . . . . . . . . . . . .12
     F.   Quit Commands  . . . . . . . . . . . . . . . . . . . . . . .13
     G.   Communication . . . . . . . . . . . . . . . . . . . . . . . 14
     H.   Messages and Mail . . . . . . . . . . . . . . . . . . . . . 17
     I.   MACSYM Mail . . . . . . . . . . . . . . . . . . . . . . . . 18
     J.   Other DDT Commands . . . . . . . . . . . . . . . . . . . . .18
IV.       Introduction to and Description of Files . . . . . . . . . .20
     A.   File Names . . . . . . . . . . . . . . . . . . . . . . . . .20
     B.   Directories . . . . . . . . . . . . . . . . . . . . . . . . 21
     C.   File Manipulation: Printing, Copying, Renaming, Deleting . .23
     D.   FIND. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
     E.   Altmode, or Defaults made easy . . . . . . . . . . . . . . .25
V.        TECO. . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
     A.   File Preparation . . . . . . . . . . . . . . . . . . . . . .27
     B.   Editing Commands . . . . . . . . . . . . . . . . . . . . . .29
     C.   Filing in Teco . . . . . . . . . . . . . . . . . . . . . . .30
     D.   TECO Example . . . . . . . . . . . . . . . . . . . . . . . .32
     E.   Other TECO Facilities . . . . . . . . . . . . . . . . . . . 33
VI.       Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . 36
     A.   NAME. . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
     B.   WHOIS . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
     C.   PEEK. . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
     D.   TIME. . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
VII.      Additional Sources of Information . . . . . . . . . . . . . 38
     A.   Running MACSYMA Demo files. . . . . . . . . . . . . . . . . 38
     B.   SHARE Directory . . . . . . . . . . . . . . . . . . . . . . 38
     C.   The INFO Program and further information about the system . 39
VIII.     Terminals . . . . . . . . . . . . . . . . . . . . . . . . . 40
     A.   The TCTYP Program . . . . . . . . . . . . . . . . . . . . . 40

                                   i



     B.   CRTSTY . . . . . . . . . . . . . . . . . . . . . . . . . . .41
     C.   A Word About Keyboards . . . . . . . . . . . . . . . . . . .41
     D.   OCTPUS . . . . . . . . . . . . . . . . . . . . . . . . . . .42
     E.   TIP commands . . . . . . . . . . . . . . . . . . . . . . . .47
IX.       Possible Problems . . . . . . . . . . . . . . . . . . . . . 48
     A.   Problems with your terminal . . . . . . . . . . . . . . . . 48
     B.   Problems with the system . . . . . . . . . . . . . . . . . .48
     C.   If Your Typing Appears . . . . . . . . . . . . . . . . . . .49
     D.   If Your Typing Does Not Appear . . . . . . . . . . . . . . .50
Index of DDT Commands. . . . . . . . . . . . . . . . . . . . . . . . .53
General Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . .55












































                                   ii








                            Acknowledgements


The  original  outline for  this  memo was  prepared  by  Richard Bogen.
Corrections and editorial comments were provided by the Mathlab Group.



Work  reported herein  was supported  in part  by the  Advanced Research
Projects Agency of  the Department of Defense  and was monitored  by the
Office of  Naval Research under  Contract #N00014-75-C-0661, in  part by
the United States Department of Energy under Contract #E(11-1)-3070, and
in part by the National Aeronautics and Space Administration under Grant
NSG 1323.




































                                  iii
Introduction to ITS                                                    1


I. Introduction

        The  MACSYMA algebraic  manipulation system  is a  collection of
programs embedded in a  LISP interpreter.  The purpose of  this document
is to describe how to gain access to MACSYMA as it exists on the MC PDP-
10 at the Laboratory for Computer Science at M.I.T.  and how to interact
with the environment in which it exists, i.e. operating system, monitor,
editor, and other programs, so that successful use can be made of it.

        To use MACSYMA effectively you  will also need a "Primer"  and a
MACSYMA Manual.  These may be obtained from:

                    Laboratory for Computer Science
                    Publications Department
                    Room 112
                    545 Technology Square
                    Cambridge, MA 02139


There  is a  $5.00 charge  for the  manual, plus  $1.00 for  postage and
handling.  The primer  is free, and  comes with the  manual.  Additional
copies of the Primer may be obtained from:

                    Secretary, Mathlab Group
                    Laboratory for Computer Science
                    Room 828
                    545 Technology Square
                    Cambridge, MA 02139
Additional copies of this document may be obtained from Publications for
$1.00/each.




Before continuing we should  establish some conventions for  notation in
this document.


the character $ will be used to denote the "altmode" (ascii 27 (decimal)
     or  33  (octal)),  often labelled  "escape"  or  "esc"  on terminal
     keyboards.

control characters will be denoted by being prefixed by an uparrow, thus
     ^Z, ^A.  They are typed  by holding down the key  marked "control",
     "ctrl" or "cntl"  on the keyboard as  one would the shift  key, and
     typing the indicated character.

<something>  will be  used to  denote variables  in examples  of command
     lines.  Thus

              :login <name><carrige return>

     The entire <name>  is to be replaced  with whatever login  name you
     select, e.g.

                                   1
I. Introduction                                      Introduction to ITS


              :login ellen

     and the <carriage return>  (often shortened to <cr>)  indicates the
     key labelled "return".



















































                                   2
Introduction to ITS                          II. Getting onto the System


II. Getting onto the System


II.A. Getting an Account

        To  log in  to  the system  you will  need  a login  name  and a
password.  A  login name is  any identifier of  up to six  characters in
length.   Most  people choose  their  initials, but  any  combination of
letters or digits is acceptable, provided (a) the last character  is not
a  digit, and  (b) the  particular  name is  not already  being  used by
someone  else.   The  INQUIR  program will  check  whether  or  not your
proposed login name is "taken", and ask you to select another if  it is.
The login name you select should be used each time you log in.

        A password  is any combination  of letters and  digits up  to 12
characters in length.   If you do not  have a password, then  you should
apply for one.  The procedure will be started automatically for you when
you first  connect to  the machine and  attempt to  log in.   Answer the
questions which the Password program asks, and your  account application
will be automatically  be sent to  the USER-ACCOUNTS group.   If someone
from  USER-ACCOUNTS  is logged  in  at  the time,  your  account  may be
initialized within a few minutes.  It will certainly be processed within
24 hours.  If you have any questions or problems, you may call (617)253-
5891 for assistance.

        The  first  time  you  log  in  after  your  account   has  been
initialized, you  will be  asked to  run the  INQUIR program  (see II.F.
below)  and  answer  its  questions,  giving  your  full  name, address,
position, field of interest, and login name.  The INQUIR program will be
started up for you automatically.   It will appear to duplicate  some of
the  questions  from  the  account application,  but  it  is  a separate
database, so please bear with us and answer its questions.


II.B. Establishing a Connection

        There  are  4  different  ways  in  which  one  can  establish a
connection to the MC computer:


   (1)  Using a  terminal which  is directly  connected to  the machine.
        These  are  on the  8th  floor of  the  Laboratory  for Computer
        Science at M.I.T.

   (2)  Using a dialup line, directly connect to the machine.

   (3)  Dialing the number of a Terminal Interface Processor (or TIP) on
        the ARPA Network, and connecting to the machine from there.

   (4)  Connecting to another computer  on the ARPA Network either  by a
        direct line or  a direct dialup line,  and running a  program on
        that computer which makes network connections.



                                   3
II. Getting onto the System                          Introduction to ITS


        For local terminals (option 1), turn to section II.C below.

        The  protocol  for  (4) will  vary  widely  with  the particular
computer you have access to.   However, no matter what the  protocol you
will have to specify either the  name of the MC computer, which  is MIT-
MC, or its host number, which is 236 decimal, or 354 octal.

        The protocols for (2) and (3) are given here:















































                                   4
Introduction to ITS                          II. Getting onto the System


         Dialup protocol                         TIP protocol

1. Make  sure your console  is set    1. Make  sure your console  is set
   for 30  cps (300 baud),  or 120       for  30  cps  (300  baud), full
   cps  (1200  baud)  full duplex,       duplex,  the parity  switch, if
   the parity switch, if  there is       there is one, does not matter.
   one, does not matter.              2. Dial the number of the Tip.
2. Dial the number of the machine.    3.  When you  hear the  tone place
3.  When you  hear the  tone place       the  receiver  in  the acoustic
   the  receiver  in  the acoustic       coupler  headset  or  press the
   coupler  headset  or  press the       data button on the  dataset and
   data button on the  dataset and       hang up the receiver.
   hang up the receiver.              4. Type the appropriate letter for
4.  Type  an  <cr>.   The response       your  console  type.   For most
   should be                             ascii consoles that  operate at
                                         300  baud,  this  is  E.   Some
         Connected to MC                 response will then be printed.
                                      5. Type  @OPEN 236.   (The  236 is
   Now  you may  proceed  with the       the number of the MC computer.)
   standard     login    procedure       Most commands to the  TIP begin
   (Section  II.C)  starting  with       with  @ and  are never  seen by
   (2) below.                                          1
                                         the MC system.  The response to
                                         the  @OPEN command  may  be any
                                         one of the following:
                                      CANT  -  this  means  the  line is
                                         already open and the TIP cannot
                                         make the  connection. (Probable
                                         reason is the last user did not
                                         close  the  connection  when he
                                         logged  out).  Type  @CLOSE and
                                         then  repeat the  @OPEN command
                                         again.
                                      TRYING... - this means the  TIP is
                                         attempting   to   complete  the
                                         connection.  Wait,  and usually
                                         it will be successful.
                                      OPEN -  this means  the connection
                                         has been completed.
                                      REFUSED - this means all available
                                         ports  are in  use.   Try again
                                         later.
                                      Now  you  may  proceed   with  (2)
                                         below.








_______________
1. If you  want to type an  @ that
is  not  the  beginning  of  a TIP
command, then type @@.             5
II. Getting onto the System                          Introduction to ITS


II.C. Logging In

(1)  Type Control-Z.  (Control characters are typed by holding  down the
     key  labelled  "control"  (or  "Ctrl")  while  typing  the  desired
     character.  From here on they will be represented in print by being
     prefixed with "^".)  After ^Z  is typed the MC system  will respond
                                                               2
     with "MC ITS nnnn DDT mmm" and tell how many users are on.

(2)  Type :LOGIN, a space, your  login name, and a carriage  return. For
     example,

     :LOGIN JRN

     The system  will then  ask for your  password.  Type  your password
     followed by a carriage return.

The system will then print the date and time, and the message

Welcome to ITS

If you have any mail (see III.H), it will be offered to you  for reading
and if there are any systems  messages you have not seen yet,  they will
also be offered.


II.D. Loading a MACSYMA

        To load  a MACSYMA  simply type :MACSYM  followed by  a carriage
return  or  :A followed  by  a carriage  return  (A is  a  pseudonym for
MACSYMA).  Several  seconds later  MACSYMA will  acknowledge that  it is
ready by printing

This is MACSYMA 296


(or whatever the current version is), loading a "fix" file, if  any, and
labeling the first input line


(C1)


Now commands (terminated by a semicolon or dollar sign) may be  typed to
MACSYMA. (See the MACSYMA manual.)

        If you have never used  MACSYMA before, you may wish to  run the
on-line PRIMER.  To do this, give MACSYMA the command

PRIMER();
_______________
2. The nnnn and mmm are  version numbers for the system and  DDT program
respectively,  and  are useful  for  connecting bugs  with  a particular
version.

                                   6
Introduction to ITS                          II. Getting onto the System


The on-line  PRIMER is also  available from DDT  level with  the command
:TEACHM.

The "QUIT" command for MACSYMA is ^G (control-G).

        If you need  help, you can use  the SEND(); command  in MACSYMA.
Type

SEND("message");


and message will be sent to the Mathlab group people who are  logged in.
One of them  will then contact you  and help you.  Notice  the quotation
marks, they are part of the command.

        Other on-line HELP commands for MACSYMA  are DESCRIBE(command);,
OPTIONS(); and APROPOS(string);.  The DESCRIBE command takes the name of
a command and prints out the portion of the manual which  describes that
command.  The OPTIONS command  enters a network of topics,  which allows
you to find the commands which exist in MACSYMA for dealing with certain
                                                          3
types of  expressions or to  perform particular functions.   The APROPOS
command takes a character string as an argument and prints out  the list
of commands which contain  that string.  E.g. APROPOS(tr_);  would print
out all the switches  which are associated with the  MACSYMA translator,
since they  all have  "TR_" in their  names.  To  see how  some commands
work, there is an EXAMPLE(command);  command, which runs a demo  file of
sample calculations.


II.E. Logging Out

        In order to logout you should be at system command  level.  That
is, you should be talking to DDT (see III. below) and not to  MACSYMA or
any other programs.  Usually  it is only necessary  to type a ^Z  to get
back to DDT level.  If you are already there then the system  prints ??.
To  logout from  MC, type  the command  :LOGOUT and  a  carriage return.
Next, if you are using a  TIP, close the connection by typing  @C.  Then
it is only necessary to hang up the phone and turn off the terminal.

        Occasionally,  attempting  to logout  will  produce  the message
--KILL RUNNING INFERIORS?--.  This means that a program you  have loaded
is still running.  If you do not want the program (i.e. want to  kill it
                                                  4
and logout), respond by hitting the space bar once .  If you do not want
to kill  the program, you  can type  :LISTJ (see III.B)  to see  what is
going on and proceed accordingly.
_______________
3. This network is not quite complete, but is being worked on currently.
The  command  is usable,  however,  and the  areas  covered  will expand
rapidly.

4. If  you don't know  about the  program or what  this all  means, then
probably it is quite safe to type a space.

                                   7
II. Getting onto the System                          Introduction to ITS


II.F. INQUIR

        The INQUIR program assists us in identifying our users.  It will
be started  for you automatically  the first time  you log in.   It will
explain itself fairly well; however, please note the following:

        You do not need to give your Social Security Number if you would
prefer not to, nor your birthday.  To avoid any question you feel is too
prying or  does not apply,  simply type a  carriage return.  We  do need
your full name and an address, however.  You may give your place of work
as "home address" if  you wish.  Your "Group"  is U (MACSYMA User)  or Nî                                                             _
(Non-Consortium  MACSYMA  User), depending  on  whether or  not  you areî _
funded by one of the  MACSYMA Consortium organizations.  If you  are not
sure  about this,  speak to  ELLEN or  another member  of USER-ACCOUNTS.
When you have  answered all the questions  and it says "What  now boss?"
You signify that you are finished by typing

DONE


If you need to update the information in your INQUIR entry you can start
up INQUIR by typing

:INQUIR


(followed by a carriage return, of course).  And the system will look up
your entry and allow you to edit it.


II.G. INIT files

        It is possible to have a special file which does  certain things
when you log in, like give  :TCTYP commands for you (see below),  or set
the defaults to  a particular directory (see  Section IV.B on  files and
directories), or print out the date and time.  Such a file is  called an
INIT (INITialization) file.  If you  have a directory, it is  located on
your directory and is called

<login name>;<login name> LOGIN


If you do not have a  directory, it is located on your  "home directory"
(see IV.A below) and has the name

<directory>;<login name> LOGIN


Such  a file  can  eliminate many  of  the frustrations  of  logging in,
assuming  you always  use the  same type  of console  and want  the same
things to happen each time.  To have one of these files created for you,
contact ELLEN or  another member of the  Mathlab group.  (See  III.G and
III.H below).


                                   8
Introduction to ITS                          II. Getting onto the System


II.H. Experienced User Login Protocol

        When  you have  become quite  familiar with  the  login protocol
given above, and know fairly well the material in the DDT  section which
follows, you  may wish  to change  slightly the  way you  log in  to the
system.   Using :LOGIN  sets certain  variables within  the  DDT program
which are  intended to protect  novice users from  accidently destroying
their programs or  otherwise doing things  they might regret.   Once you
are sufficiently familiar with the various commands, and  appreciate the
^K  command and  the :  command for  loading programs,  you may  find it
irritating to be asked each time you use one

--CLOBBER EXISTING JOB?--
or
--CREATE ADDITIONAL JOB?--

with the attendent delays to answer with a space.  Well, when  you reach
this point, you  are ready to graduate  to the "experienced  user" login
protocol which is

<login name>$U


$  represents the character  altmode (or escape, ascii 27  (decimal), 33
(octal)).  This method  of logging in  replaces :LOGIN <login  name> and
does not set the variables  which protect you from loading  excess jobs,
etc.  DDT will continue to tell you what the default file names  are for
^O, however.



























                                   9
III. DDT                                             Introduction to ITS


III. DDT

        After typing ^Z you are communicating with a program  called DDT
(also called HACTRN) which is  the monitor level under ITS  that accepts
system commands for  performing various functions like  program loading,
program control, and copying and printing files.  There are  two formats
for commands  at DDT level;  the first is  called "Monitor"  format, and
this  format  is what  will  be  meant by  the  general  expression "DDT
command".   These  commands  begin  with  a  colon  and  are immediately
followed by the mnemonic name of the command with no intervening spaces.
Some commands take arguments, which are separated from the command  by a
space.  A command ends with a carriage return which causes DDT  to begin
execution.

        The second format for commands is a short form, consisting  of a
single character,  possibly prefixed  by 1 or  2 altmodes.   These short
commands  perform the  same  functions as  the  corresponding mnemonics.
When short form commands take arguments, these precede the  command with
no space  between the  argument and the  command.  Altmode,  (or escape)
which is ascii 27 (decimal), 33 (octal), will be represented in print by
$.  It  differs from "control"  in that  it is not  held down,  but just
typed.  The succeeding command character is not separated from  it, e.g.
$P.   On some  terminals altmode may not  be standard.  Right  brace, },
(ascii octal 175, or 176) is what you get when you push the key labelled
"altmode"   on   some   of  these   terminals.    The   :TCTYP  command,
:TCTYP STANDARDIZE tells the system to interpret ascii 175 and 176 as an
altmode.

        A few short form DDT commands are control-characters.

        The short forms  are easier to type,  of course, but  the novice
user is urged to become  familiar with the mnemonic DDT  commands first.
This permits the simple rule of thumb:

All commands to DDT begin with : and end with carriage return.


III.A. Program Loading and Execution

        One way to load and execute programs has already been mentioned,
e.g.  :MACSYM.   That is,  colon  followed  by the  program  name  and a
carriage return.   This is  consistent with  the rule  of thumb  for DDT
commands.   There is,  however, another  way to  load programs  which is
frequently  preferable:  type  the program  name  followed  by  ^K, e.g.
MACSYM^K.   The  reason  this  is  preferable  is  that  ^K  causes  the
replacement of any  existing program you  may have loaded  called MACSYM
                    1
with a new  MACSYMA.   :MACSYM will load  a second MACSYMA, if  you have

_______________
1. However, DDT may first ask you if you are sure this is what  you want
to do by typing --CLOBBER  EXISTING JOB?--.  You answer yes by  typing a
space. Typing anything else will "flush" the command, so if you  did not
mean to replace your MACSYMA, you get a second chance.

                                   10
Introduction to ITS                                             III. DDT


            2
one already.   In those rare circumstances where two copies of a program
are necessary, use the colon-type command, or better yet, load  one with
MACSYM^K and the other with A^K (and expect to be questioned about it by
a systems programmer at M.I.T.).

        To exit from a program, type ^Z.  This will bring you back up to
DDT level.  For  the remainder of this  section it will be  assumed that
you are at DDT level, so if you wish to issue one of these  commands and
are not at DDT level, first type ^Z to get up to DDT, and then  type the
command.  If you are  not sure what level you  are at, type ^Z.   If you
were already at DDT  level, the system will  respond ?? and if  you were
not, you will be brought up to DDT and an interrupt message of some kind
will appear, usually [DDT] (but if you were in a TECO under your MACSYMA
it might say "(Console connected  to MACSYMA)", in which case  you would
need still another ^Z to get to DDT).

        To re-enter a program, type :CONTIN.  $P is a short, easier form
for this.

        When you exit from a program, it stops running.  If you  want to
have  a program  resume  running while  you  remain at  DDT  level, type
:PROCEED after ^Z.  ^P is the short form for this.


III.B. "Jobs"

        The programs running "under" your DDT are referred to as "jobs".
It is possible  to have more than  one job and to  move from one  job to
another, leaving the first (a long computation in MACSYMA, for instance)
to run while you do something  else.  DDT will permit you to have  up to
eight jobs at one time,  but since the system can only  accomodate about
120  jobs  for  all  users  (including  the  systems  jobs),  it  is not
recommended to have more than two or three.  (Your DDT is one job, so as
soon as you load a MACSYMA  you have two jobs, your "top level"  DDT and
one "inferior").  When you have more than one job under your DDT,  it is
necessary to be able to tell which job is the "current" one, so  that if
you type :CONTIN  or $P you will be "in" it.  To see a list of  the jobs
you own at any  given time, type :LISTJ  (the short form is  $$V).  This
will give a list of all your jobs, with the current one marked by  an *.
Each job will be  followed by its status,  R for running, P  for stopped
but  "proceedable", or  W  for waiting  to  print out  something  on the
console.  The status will be followed by the index number for  that job,
which  is  a unique  number  assigned to  the  job by  the  system.  For
example:

        *TECO P 14
         MACSYM R 23



_______________
2.  But  since  you  rarely  want to  do  this,  DDT  will  ask --CREATE
ADDITIONAL JOB?--, and you reply space for yes, anything else for no.

                                   11
III. DDT                                             Introduction to ITS


III.C. Moving From One Job to the Next

        To move from one job to  the next, i.e. to make another  job the
current job, type :JOB.  The system will then tell you which job is then
current  by responding,  for example,  MACSYM$J.  Typing  a  sequence of
:JOB's  will cause  each job  to become  the current  job, in  turn.  An
alternative  to this  shuffling  through all  your  jobs to  get  to the
desired one  is to type  :JOB followed by  a space and  the name  of the
desired job, e.g.

:JOB MACSYM

This will cause the job with  this name to become the current  one.  The
short form of this command is $J, preceded by the job name to  specify a
particular  job,  e.g.  MACSYM$J.  Notice  that  :JOB  only  selects the
current job; you  still must type :CONTINUE  to enter it.   Warning:  if
you misspell the name of the  job, :JOB will create a new job  which you
                  3
will have to kill.

        There is a shorthand for :JOB followed by :CONTINUE.  That is to
                                                                 4
type the  name of the  job you  wish to re-enter  followed by  ^H , e.g.
MACSYM^H.

        If you have left a job running with :PROCEED, it will inform you
when it is ready to print out by sending you a message, e.g.  JOB MACSYM
WANTS THE TTY.  It will then  wait for you to exit whatever job  you are
in, and enter it using ^H or :JOB and :CONTINUE.


III.D. Getting Rid of Jobs

        To dispose of a job  that you no longer want, the  command :KILL
is used.  This kills the current job, so obviously care should  be taken
to assure that  the job you  want to KILL  is the current  job.  (:LISTJî                                           __
will help you).  After a :KILL command, DDT will inform you which job is
then  current.  For  example if  you just  :KILLed your  TECO,  DDT will
select your MACSYMA (or whatever the next job is) and print

MACSYM$J


III.E. Disowned and Detached Jobs

        Occasionally it may  be necessary to  logout in order  to switch
terminals, or to permit someone  else to use your terminal, but  you may
have a job you  do not want to  lose, or which hasn't  finished running.
The thing to do is to detach yourself, or to disown the job.  There is a

_______________
3. DDT will type "!" when a new job is created, as a warning.

4. ^H is "backspace"

                                   12
Introduction to ITS                                             III. DDT


difference between  these two.  Disowning  a job is  to merely  "cut" it
loose from your DDT while you are logged in.  It can be thought  of then
as floating loose in the system.   To do it, exit from the job  with ^Z,
then type :DISOWN (If you want to leave it running, type :PROCEED before
:DISOWN).  If you log out while a job is disowned, it will wait  for you
to log  back in  and reclaim  it.  To  reclaim it  use the  :JOB command
followed by the job name.  The system will respond by typing

:$ REOWNED $

and it will then be reconnected to your DDT, and you can reenter it with
:CONTINUE.   Disowning running  jobs  is inconsiderate,  however.   If a
disowned job wants to  print out, it will not  be able to and  will just
stop.  This defeats the purpose of its existence and takes up a job slot
in the system.  What this  means is you should only disown  running jobs
when it is absolutely necessary.

        Detaching affects the entire  DDT and all the jobs  connected to
it.  Typing :DETACH will  log you out of  the system but leave  your DDT
and all your jobs sitting there.  This takes up several job slots in the
                                                             5
system, so it should only  be used when absolutely necessary.   When you
log back in,  (assuming the system has  not crashed in the  interim) you
will receive the message --ATTACH YOUR DETACHED JOB--  and should answer
this by typing  a space as explained  in section IX.D, below.   When you
log back in after disowning a  job, you will not receive a  message, but
the continued existence of your job can be confirmed by using :PEEK (see
Section VI.C), and you can then reclaim it with :JOB.


III.F. Quit Commands

        There are three Quit commands for DDT, ^D  , ^S, and  ^G.  These
three have different functions.  ^D  will abort a command that  you have
not completed typing.  This is useful if the wrong command was selected,
or a typing error has been made.  DDT will print "XXX?" and you may then
retype  the command.   ^G will  stop the  execution of  a  command.  DDT
responds with  "QUIT?" and  execution stops.  This  is a  "panic button"
type  of  command, and  will  stop  infinite loops.   ^S  will  stop the
printout which results from the execution of a command, e.g. the listing
of a directory.  ^G is also the "quit" command for MACSYMA and TECO.

        However, when using any "quit" command, at DDT level or inside a
program, it should  be noted that due  to network delay typing  a "quit"
command from a TIP will not cause instant cessation of execution; rather
it may take  several seconds (or even  minutes) before the  quit command
takes effect.  It should also be  noted that a TIP has a  limited number
of  bits to  hold its  "interrupt" character,  so although  it  may seem
psychologically satisfying to type a long string of ^G's,  they overflow

_______________
5. During the afternoon  system people usually kill detached  trees that
have been idle for over half an hour, since the system is too  loaded to
make it possible to retain them.

                                   13
III. DDT                                             Introduction to ITS


                                                                  6
(and clear) the interrupt bit, actually cancelling each other out.


III.G. Communication

        A  very  useful  aid  to  a  MACSYMA  user  is  the  ability  to
communicate on-line and receive assistance in this fashion.  This is the
best way to get help  with specific MACSYMA problems, because  a MACSYMA
Programmer at MIT  can have access to  your current MACSYMA  and examine
your expressions.   He (or she)  can also use  your console  remotely to
demonstrate various solutions for you.

        There are two ways to communicate: one-way  communication, using
the command :SEND, and two-way communication in which the user links his
terminal to that of another user and the typing of either one appears on
both.  A list of people  who can answer questions for you  is available.
Type

:PRINT ALJABR;MACSYM HELP

        Of course, to  communicate with someone,  he must be  logged in.
To determine who is logged in at any given time, type :USERS and  a list
of the current users will  be printed out.  Alternatively, :NAME  can be
used, which is described in section VI.A, below.

        To send a one-way  message to another user, type  :SEND followed
by a space and the login name of the person to whom the message is being
sent.  Then type the message.  It  may be more than one line  long.  End
it with ^C.  For example:

:SEND JPG HOW DO I GET MACSYMA TO
INVERT A MATRIX?^C

This will result in a message on JPG's terminal that says

[MESSAGE FROM <login name> at <machine name><time>]
HOW DO I GET MACSYMA TO
INVERT A MATRIX?

:SEND can also be used to send messages to people who are not logged in.
In this case, DDT will add (MAIL) either after the login name or  at the
end of the message and the message will be saved as MAIL until  the user
logs in (see H. below).  To explicitly send someone mail (whether or not
they are logged  in), :MAIL is  used.  It has  the same format  as :SEND
except that the message is saved as MAIL for the addressee.

        Often, it is more convenient to interrupt another user and enter




_______________
6. Thus re-affirming that 'Patience is a virtue.'

                                   14
Introduction to ITS                                             III. DDT


                                       7
direct two way  communication with him.    This resembles a  typed phone
call.   Once the  "link"  is established,  you simply  type,  no special
prefix or terminator is required.  It is customary to indicate  that you
have  finished what  you are  saying by  typing a  > sign  as  the first
character on a new line so that the other person knows it is his turn to
type.   Some  people  use  2 carriage  returns  in  succession  for this
purpose.

        To enter two-way communication,  type ^_C and the login  name of
the user you  wish to communicate  with.  That is  control-backarrow, or
control-underscore, followed  immediately with  a C  and then  the login
name of the user to be communicated with and a carriage return.  On many
terminals ^_  will be  control-shift-of-the-letter-O.  However,  on some
terminals the  backarrow or  underscore may not  have the  proper effect
when used as control characters.  On some Texas Instrument Silent 700's,
for example, the effect of ^_ is achieved with ^?.  On a CDI Teleterm it
is control-shift of zero. (The  octal ascii value for ^_ is  37, decimal
    8
31.)  The  normal response  by the system  to the  command is  OK, which
means  your console  is linked  to the  other user's  and the  typing on
either one  appears on  both.  To  terminate the  link type  ^_N.  Other
responses to ^_C<login name>  may be QUERYING, meaning the  other person
is in "Query mode"  and may accept or  reject your link (while  you wait
for him to  decide you may  simply wait, type  ^G (bell) to  attract his
attention, or  type ^_N  and try  again later),  or IN  COMMUNICATE WITH
____, BREAK IN? (to  answer that affirmatively, type Y;  negatively, N).
The response "?" means that the person is not logged in, or  you spelled
his login name wrong.

        Two way communication  (or communicate  mode) may  be recognized
when a message appears on your console saying

                       9
LINK FROM <login name> 

A one way (:SEND) message always says

[MESSAGE FROM <login name> at <machine>]
        or
_______________
7.  When  asking  for  help  on  complex  MACSYMA  questions,  :SEND  is
preferred,  since  all  messages  sent by  :SEND  are  saved  during the
recipient's console session in a file on the .TEMP.; directory.  Thus he
or she will have a record of any pertinent information relative  to your
problem.  The MACSYMA  Programmer will very likely  communicate directly
with you, however.

8. See VIII.D  below for help in  locating this or other  characters you
cannot find on your keyboard.

9. Note, although two  way communications announce themselves  with LINK
FROM, they are in no way related to the :LINK command, which links files
together.

                                   15
III. DDT                                             Introduction to ITS


TTY MESSAGE FROM <login name>

On printing terminals a one way message will appear only once, but  on a
display (CRT) terminal  the message may continue  to repeat itself  if a
job has control  of the console  (i.e. the user is  in a job)  since the
output of  the job could  write over and  obliterate the  message.  This
repetition can be stopped by simply typing ^Z :CONTIN, i.e. by  going up
to DDT level (at which point  DDT will print the message one  last time)
and then re-entering  the job.  If DDT  has control of the  console, the
message will appear only once.   Note, if you "lose" a  message (because
output from a job obliterates it, or your paper jams), it is  not really
lost.  All  messages sent  to you  are saved  in the  file .TEMP.;<login
name> SENDS, and you can read  them by printing this file, or  simply be
typing (at DDT level)

:PRSENDS
        or
^A


        Communications of any sort do  not disrupt the job which  may be
running, in control  of your console.  It  will resume any print  out as
soon  as  you  are  finished.   Remember,  to  respond  to  a   one  way
communication, you must first be at DDT level (i.e. type ^Z)

        Occasionally you may find you want to print out a  long function
or a file and you do  not want the printout interrupted by  any messages
which might be sent to you.  This can be accomplished using the command

:GAG 0

which  will inhibit  all  communications to  you.  Then  print  out your
material.  After your print out is completed, type

:GAG 17

to reset  things.  Any  messages sent to  you during  the time  you were
"gagged" will be saved as MAIL for you.

        If for some  reason you do  not wish to  be bothered by  two way
communications from  other users,  there are  commands to  control them.
The first is the default,  ^_A, (which stands for "Accept").  It  is the
standard state and means that you can be communicated with.   The second
is ^_Q  (which stands for  "Query").  Typing ^_Q  will set your  DDT and
your jobs in a state such that if someone tries to communicate with you,
you will just be told  about it.  You type ^_Y to  accept communication,
^_Z to refuse, and ^_Q to  ask who is querying.  To reset things  to the
standard state, type ^_A.  The third is ^_R (which stands for "Refuse").
Typing ^_R  at DDT level  will cause all  communications to  be refused.
^_A  resets   things.   Novice   users  are   advised  not   to  inhibit
communications, since they may  accidently cut themselves off  from help
thereby.



                                   16
Introduction to ITS                                             III. DDT


        One other method of communication should also be  mentioned.  It
is called  :SHOUT.  As the  name implies,  it is a  message sent  to all
currently logged in  users.  Its syntax is  similar to that of  :SEND or
:MAIL,  except  that  no  login  name  is  specified.   A  SHOUT  can be
recognized because it will contain the word EVERYBODY,

[MESSAGE FROM <login name> EVERYBODY:]

These messages often appear when the system is being used heavily and 1)
                                                           10
all the job slots are in use, or 2) disk space is very low.   Obviously,
if you have an  extra job you are not  using, or three copies of  a file
you don't need, heed such a message.


III.H. Messages and Mail

        Messages of  general interest are  sometimes put on  the system.
When you log in for the first time the message

TO SEE SYSTEM MESSAGES DO ":MSGS<CR>"

will be printed on the terminal.  Once you have typed :MSGS  followed by
a carriage return, the system will set up a message date for  your login
name.  The  next time you  log in,  if there are  any new  messages, the
system will print --MSGS-- and you have only to type a space to have the
messages displayed (each time  it says --MORE--, type space  to continue
the  display). Typing  carriage  return will  cause the  messages  to be
"postponed" until the next time.  Typing rub-out will cause that message
to be skipped over (i.e. you will never see it).  A message is something
sent to the user community at large.

        If when you  log in the system  prints --MAIL-- this  means that
there is  a private communication  just for you,  and once  again typing
space will cause  the mail to be  displayed, while typing  anything else
will postpone it.  To check someone else's mail, for instance to  see if
he has seen a message you sent him, type :PRMAIL followed by a space and
the login name of the user whose mail you want to check.  Typing :PRMAIL
with your  own login name  will display your  own mail.   Typing :PRMAIL
with no  login name will  also display your  own mail.  The  system will
then offer  to delete  your mail for  you.  Typing  a space  will answer
"yes";  a carriage  return will  answer "no"  (i.e.  your  mail  will be
deleted if you type a space,  and saved if you type a  carriage return).
                                                         11
Note, typing :PRMAIL SKL will not delete SKL's MAIL file. 

_______________
10. :SHOUT should not be used except in such emergency situations, as in
other situations it can be extremely bothersome to other users.

11. The file on the .TEMP.; directory in which all the messages  sent to
you with :SEND are saved during your console session is deleted when you
log out.  If you wish to re-read these messages before you log out, type
:PRINT .TEMP.;<login name> SENDS, :PRSENDS, or ^A.

                                   17
III. DDT                                             Introduction to ITS


        There is a program  specially designed for reading  mail, :RMAIL
(Read MAIL).  It will show you one message at a time, permitting  you to
delete or save messages selectively, as well as peruse previous mail for
replying or  other action.   When you exit  from it  (or should  you get
disconnected, log out accidently, or otherwise "screwup") it  writes the
file <directory>;<login name> RMAIL, so it is very hard to  "lose" mail.
For  more information  about  it use  the :INFO  program  (section VII.C
below).


III.I. MACSYM Mail

        There  is a  special MAIL  file for  MACSYMA, in  which  you may
report bugs,  questions, problems, or  suggestions for features.   To do
this, you type :MAIL  MACSYM followed by the  message and end it  with a
                                         12
^C, just as for any other :MAIL  or :SEND  .  This file is checked daily
by system  programmers. They  will answer your  questions or  attempt to
locate and fix  any bugs you report.   When bugs are fixed,  your report
will be deleted from MACSYMA mail,  and mail will be sent to you  by the
person who fixes the bug.   To read the MACSYMA mail file,  type :PRMAIL
MACSYM.

        When new features are added to MACSYMA, this will be reported in
the update file.  To read this file, type :PRINT MACSYM;UPDATE >.


III.J. Other DDT Commands

        A complete list of the DDT commands can be obtained by typing

:?

        To respond to questions or messages from DDT of the form

--Message--

you should type a space for yes, and carriage return or  rubout (delete)
for no.

        A note about question marks:  a ? at DDT level is not  a request
for an answer from the user (things requiring an answer are of  the form
--Question?-- as  mentioned in the  preceding paragraph).   The question
mark is a  prompt indicating that the  machine is waiting for  your next
command.  A particularly confusing sequence occurs when the system asks

        --CLOBBER EXISTING JOB?--


and the user,  realizing he wants to  type :CONTINUE instead  of loading
the job again, hits a carriage return.  The system responds

_______________
12. You can also use the MAIL("message"); command in MACSYMA.

                                   18
Introduction to ITS                                             III. DDT


FLUSHED?


which  appears  to  be a  question  (or  perhaps for  those  of  us more
anthropomorphically inclined, an incredulous comment by the system, "You
want that flushed?").  In fact, it is two outputs:  the report "FLUSHED"
refering to the user's request to load a job, and the prompt "?" meaning
"OK, now what?"  At  this point the appropriate  thing to do is  to type
:CONTINUE.  Another case similar to this is the

        --ATTACH YOUR DETACHED TREE--


problem.  The "FLUSHED?" in this  case is likewise two outputs,  and how
to proceed is explained in section IX.D.








































                                   19
IV. Introduction to and Description of Files         Introduction to ITS


IV. Introduction to and Description of Files

        A file is  simply an area on  a particular storage  device which
contains data or text.  The  only storage devices which are used  on the
MC machine are disks and tapes.

        Files on the disks are figuratively grouped  into "directories".
A directory is just a list of all the files stored under a given name.


IV.A. File Names

        Files in  the ITS system  possess two names,  each of at  most 6
characters.  They are referenced by giving the two names as well  as the
device (default is DSK:) and the directory name where the  file resides.
A device is  usually a machine name,  meaning the disk of  that machine.
The device name DSK: refers the disk of the machine you are using.  Thus
on MC, either  DSK: or MC:  means MC's disks.   A device name  is always
followed by a colon.

        A  directory  name is  always  followed by  a  semi-colon.  Your
directory is determined when you login: if you have a directory  of your
own, its name will be the  same as your login name; otherwise it  is the
default specified in  your INQUIR entry, if  one was specified;  if none
was specified, you will be assigned by the system to a  "home directory"
called USERSn; where n is a digit from 0 to 9.  You may  determine which
directory you have been assigned to by typing

:HSNAME


        File  names  are up  to  six characters  long  and  separated by
spaces.  A > sign  may be used for the  second file name and  stands for
the name which  is the largest numerically  if there exists a  file with
the given  first name and  a numeric second  name; otherwise the  > sign
represents the "greatest" name in  an alphanumeric sense.  A <  sign may
be similarly used for the "least" name.

        The device (followed by  a colon), the directory  name (followed
by a semi-colon), and the  file names (separated by a space)  may appear
anywhere in the file descriptor string.  Thus for example both

INTRO 4 DSK:RAB;
RAB;DSK:INTRO 4

are equivalent descriptions.  However, the most usual description is

DSK:RAB;INTRO 4.

Any of the four descriptors (1st name, 2nd name, device,  directory) may
be omitted  and either  the default, or  the value  given in  a previous
command (if there was one given) will be used.  Notice that at DDT level
the "usual" way to reference this file is:


                                   20
Introduction to ITS         IV. Introduction to and Description of Files


        DSK:RAB;INTRO 4


while in MACSYMA the two file names are given first and then  the device
and directory,

        (INTRO, 4, DSK, RAB).


i.e.  (filename1,filename2,device,directory), which  corresponds  to the
                                1
DDT ordering:  INTRO 4 DSK:RAB;.


IV.B. Directories

        A list of all the files on any directory can be seen  by typing,
:LISTF followed by  a space and the  directory name.  The short  form of
this is the  directory name followed by  ^F.  A typical  directory looks
like this:

MC      USERS0;
FREE BLOCKS #0=923 - #1=879 - #13=1585 - #14=2314 - #15=2098
  0     *       LOGIN   1   3/6/80 01:29:54
 13     AK      DATA    2   5/22/80 09:35:24
  1     AK      LOGIN   1  !9/14/80 08:34:29
  L     AK1     3       BACKUP TAPE GFR18
  0     BH      MAIL    1   9/1/80 14:21:09
 14     BQS     MATRIX  16  12/3/79 16:48:25
  1     CEH     F2      10  !9/14/80 11:48:30
 15     DUFF    A3      6   11/21/79 10:35:15

The top line shows the device (MC is a synonym for DSK, referring to the
MC machine) and the directory  name.  The next line shows the  number of
free blocks (for  all users) on  each of the  five disk drives.   If the
               2
numbers are low , it indicates that disk space is short, and  you should
be careful about creating files you really do not need.   Following this
there will be a line for each file on the directory, with  the following
information:  The  number  of  the  disk  on  which  that  file  resides
(0,1,13,14,15), the  two file  names of the  file (e.g.  DUFF A3,  or AK
LOGIN),  the length  of the  file in  blocks (a  "block" is  up  to 5120
characters,  or 1024  words, corresponding  to approximately  two single
spaced typed  pages), and  the date and  time of  creation of  the file.
Some files will have BACKUP  TAPE, with a number, instead of  a creation
date.  This  means that the  file has been  transferred to  tape (notice

_______________
1. A new feature in MACSYMA  allows you to type DDT style file  names in
MACSYMA commands which accept file names, by enclosing them in quotation
marks, and by preceding  the ";" with a "\",  e.g. LOADFILE("USERS0\;CEH
F2");  or SAVE(["USERS9\;ZHT OUTPUT"],FUNCTIONS);

2. In the case of the MC machine, less than 500 blocks per disk.

                                   21
IV. Introduction to and Description of Files         Introduction to ITS


that the file  above that is  listed as on BACKUP  TAPE does not  have a
disk number, but rather the letter L), and deleted from the disk. A file
on tape can be reloaded into the system.

        All files on the disk are copied onto tape (but not deleted from
the  disk) every  weekday.  Files  that have  not been  "accessed", i.e.
used, as indicated by the  date of last reference (not visible  when the
directory is listed, but available to the "Grim File Reaper") in  a week
are moved  to disk  #13, which is  a "secondary"  pack.  They  are still
accessible  in  exactly the  same  manner  as files  on  the  regular or
"primary" disks, however if a  disk drive is not working,  the secondary
pack may be demounted until  the drive is repaired, in which  case those
files on it  would not be accessible  temporarily.  Files that  have not
been accessed in a longer period of time are moved to disks #14 and #15.
Once again, they are still accessible in the same manner as files on the
primary disks,  but access may  be a little  slower as  these "tertiary"
disks  are connected  to  the machine  in a  slightly  different manner.
Files which have migrated  to disk pack #15  and have not been  used for
even  longer are  deleted in  "grim file  reaps", but  only  after being
               3
dumped on tape.  Such  a file can be  reloaded, if need be  (see below).
If a file is accidently deleted,  or somehow lost in a system  crash, it
can often be recovered from tape.  Notice the file above called  CEH F2.
Just before the date  there is an !.   That indicates that the  file has
not yet  been copied onto  tape.  Any file  that does not  have an  ! in
front of its date  will appear somewhere on  tape and if deleted  can be
reloaded.

        To have any file reloaded, send mail to FILE-RETRIEVE (which may
be abbreviated  FILE-R).  (See III.G  above for how  to send  mail.) You
must  specify the  directory  and both  file names.   Files  are usually
reloaded within 24 hours.

        The  USERSn directory  is  the default  for people  who  have no
directory of their  own or do not  have another group directory  to use.
When using a USERSn or any other group directory, the first file name of
any file you put there should be your login name.  This  permits quickly
figuring out  what belongs to  whom.  If you  allow MACSYMA to  select a
file name for you, it will  choose the first 3 characters of  your login
name, and append a digit to it (the lowest digit which insures  a unique
file name), using > as the second name, e.g. the file AK1 3  above.  You
are probably better  off specifying names  yourself, but you  can always
rename the files MACSYMA names for you.

        Directories tend to be fairly long.  The average group directory
may have something more than 100 files on it.  If your login name begins

_______________
3. Precise time periods vary  depending on how heavy the disk  usage is.
In general 2 or 3 months is the average lifetime of a file which  is not
being used.   In any case,  these files can  still be  retrieved.  Also,
note that it  is not necessary  to retain the  link in the  directory to
find the file on BACKUP TAPE, it is only necessary to remember  the file
name.

                                   22
Introduction to ITS         IV. Introduction to and Description of Files


with a W, you are going to have to watch a lot of paper roll past before
you get to your files if  you just use :LISTF.  There is another  way to
look at just those files with a certain first file name (your login name
in this case):  type

<login name>$$^F


and only those files on  your default directory with your login  name as
first    file    name    will   be    displayed.     That    is   <login
name><altmode><altmode><control-F>.


IV.C. File Manipulation: Printing, Copying, Renaming, Deleting

        Files may  be moved  from directory  to directory,  renamed, and
printed out.  To move a  file from one directory to another,  type :COPY
followed by  the directory name  and the two  file names and  a carriage
return.  The system will prompt  with TO: after which the  new directory
name should  be typed, followed  by a carriage  return.  If no  new file
names are designated, the system will assume the default names, i.e. the
same names; however,  a new name  may be given  the file if  so desired.
For example:  If RAB has files ITS 57, ITS 58, and ITS 59,

:COPY RAB;ITS >
TO:ELLEN;

will copy  the file ITS  59 from RAB's  directory to  ELLEN's directory,
still calling it  ITS >.  If  ELLEN doesn't have  a file called  ITS, it
will be ITS 1.

:COPY RAB;ITS >
TO:ELLEN;FOO >

will copy  the file ITS  59 from RAB's  directory to  ELLEN's directory,
(without deleting it from RAB's  directory) but name it FOO > on ELLEN's
directory.

        To remove a file from one directory and place it in another, the
:MOVE  command  is  used.   This  deletes  the  file  from  the original
directory, leaving only the copy in the new directory.  Since this  is a
command which does a deletion,  great care should be exercised  in using
it.

        To just rename a  file without moving it, type  :RENAME followed
by the directory and file names and a carriage return.  Once  again, the
                                                             4
system will prompt with TO: and the new name should be typed.


_______________
4. Note, this command works only to change the name of a file, and a new
directory may  not be  specified. If  you want  to change  the directory
(i.e. move the file) and give it a new name, use :COPY or :MOVE.

                                   23
IV. Introduction to and Description of Files         Introduction to ITS


        To print out a listing  of a file on your terminal,  type :PRINT
followed by the directory and the file names and a carriage return.  The
short form for this is ^R,  which is followed by the directory  and file
names as usual, e.g.

:PRINT ELLEN;FOO 29

or

^R ELLEN;FOO 29

        Files that are outdated or  no longer needed can be  deleted, of
course.  To do this type :DELETE followed by the directory and  the file
                                                      5
names, and  a carriage return.   A shorter form  is ^O  followed  by the
directory and file names.  Great  caution should be used with the  ^O or
:DELETE command, lest you delete a file you didn't intend  to.  However,
if  this should  happen,  it can  sometimes  be retrieved  from  tape as
described above.  If you type ^O by accident, type ^D to abort it.


IV.D. FIND

        Most directories are  quite long.  On  a slow terminal  they can
take a long  time to list  (and a lot  of paper).  To  locate particular
files, without listing  an entire directory,  there is a  program called
FIND.  :FIND takes 4 arguments, which are the device, the directory, and
the two file names (the default device is DSK: and the default directory
is "all directories").  Any of  the four arguments may be replaced  by *
and  FIND  will  proceed   to  locate  all  occurrences  of   the  given
specifications, taking the * as a "wild card" which will match anything.
For example:

     :FIND USERS4;SKL *


will  find  and  print on  your  console  all the  files  on  the USERS4
directory that have SKL as their first file name.  Similarly:

     :FIND SKL *


will find all the  files on any directory  with SKL as their  first file
name, and print out the list  on your console.  This is another  way for
people using a USERSn directory  (or any other group directory)  to list
just their own files with

:FIND USERSn;<login name> *


_______________
5. This is a dangerous command, and the default login init  is currently
set up so that ^O will not work. For people using the default  init, the
result of typing ^O will be "OP?"

                                   24
Introduction to ITS         IV. Introduction to and Description of Files


Of course,  as with  any :  type command,  a carriage  return terminates
that.

        Type

:FIND ?


to find out about additional features and options of FIND.


IV.E. Altmode, or Defaults made easy

        The  character  altmode  can  be typed  after  any  of  the file
manipulating commands (COPY, PRINT, DELETE, RENAME) and the  result will
be that the DDT will print out the default file specification.   If, for
instance, you type

:COPY $

DDT might respond, for example:

USERS3;JRN FOO

meaning that USERS3;JRN  FOO are the current  defaults.  If you  want to
COPY the file JRN FOO, you just type a carriage return.  However, if you
would like to COPY the file USERS3;FOO BAR, you simply type the new file
names, FOO  BAR, and then  the carriage return.   Suppose you  wanted to
COPY the  file JRN  OMAIL, but  it was  on FOO;  not USERS3;.   Then you
simply type FOO; and  a carriage return.  (If  you don't want to  COPY a
file after all, type ^D).

        Since  the  device  is  always  followed  by  a  colon,  and the
directory name by  a semi-colon, there can  be no confusion  about those
two.   The file  names  are always  separated  by spaces,  and  all that
remains is to  be able to  designate to DDT whether  it is the  first or
second file name we wish to change (assuming we are not  changing both).
Let us assume  that we do  not want to  COPY USERS3;JRN FOO,  but rather
USERS3;JRN 23.   The device  and the  directory are  correct, as  is the
first file name.  We  wish to change only  the second file name.   So we
type

^X23


Typing  ^X  is the  same  as typing  the  default first  file  name; ^Y,
represents the default second file name.  Thus in this case ^X23  is the
same as JRN 23.   If we had typed ^Y^X,  it would have been the  same as
FOO JRN, etc.  If you are skeptical (and it is wise to be), you may type
altmode again after you have altered the default file  specification, to
check that it is correct, changing it still further if so desired:


:COPY $

                                   25
IV. Introduction to and Description of Files         Introduction to ITS


DSK:USERS;JRN MAIL

to which you type

^X23$

to which the DDT responds

DSK:USERS;JRN 23

which is what you want, so you type carriage return.

        For certain "dangerous" commands, such as ^O (the short form for
:DELETE,   the  file   deletion  command),   DDT  supplies   an  altmode
automatically to be sure you realize what you are doing.








































                                   26
Introduction to ITS                                              V. TECO


V. TECO

        Teco is the text editor.  It is useful for preparing batch files
and/or papers.   After loading  it with TECO^K  or :TECO,  you are  in a
program that handles text strings  and operates on them.  You  have what
is called a  "buffer" into which you  insert text.  By  issuing commands
you  can add  to or  otherwise change  the contents  of the  buffer.  By
issuing other commands, you can  file the contents of the buffer  on the
disk.  For papers and reports there are a variety of formatting commands
which can be  used to justify the  text for output on  whatever printing
                          1
device you have available.   The commands typed do not enter the buffer;
only those characters following the "insert" command go into the buffer.
You can then correct typing, or other errors.  For instance, a series of
commands for  MACSYMA could  be prepared  thus, filed  on the  disk, and
finally loaded into MACSYMA using the BATCH command.

        The TECO  language itself was  originally designed partly  as an
editing  language  and  partly  as  a  programming  language,   so  that
repetitive  editing programs  could be  written.  When  display consoles
became  available,  special display  editing  packages  were implemented
using  the TECO  programming language.   They are  much better  than the
original TECO editing language  on display consoles, but they  work only
marginally  on  printing  consoles.   So  this  documentation  will deal
primarily with the  original TECO editing  language and only  in passing
with the display modes (commonly called "Control-R" modes).  If  you are
going to  be using  TECO from  a display  console you  should definitely
learn  how  to  use  one of  these  display  editing  packages  and take
advantage of all the capabilities of your console.  You can  learn about
the most commonly  used package on MC  by looking at  its documentation.
Type

:PRINT EMACS;EMACS CHART

You can try out EMACS or simply by typing

:EMACS

which will start up  a TECO for you (which  will be have its  "job name"
EMACS) using  that package.   (:E is the  short form  for this).   For a
primer on EMACS,  you can type  :TEACHE.  And more  complete information
can be gotten in the :INFO program (see section VII.C).


V.A. File Preparation

        TECO  may  be loaded  by  typing :TECO  followed  by  a carriage
return, or  by typing  TECO^K.  (:T and  T^K are  short forms  for these



_______________
1. For more elaborate writeup of results, there are also text justifying
programs available.  Speak to ELLEN for details.

                                   27
V. TECO                                              Introduction to ITS


     2
two).   In  standard  TECO the  full  set  of keys  on  the  keyboard is
available for editing commands.  Insertion of text is done by use of the
                                                                       3
command  "I" which  takes the  following text  string as  its argument.
Commands  in  TECO are  terminated  by two  altmodes.   The preprocessor
processes the string, handling rubouts, until it encounters  an altmode.
It does not begin  execution, however until it encounters  two altmodes.
Thus, single  altmodes may be  used within a  command string  to delimit
Search or Insert strings.î_         _

        Your location in the buffer is marked by a pointer,  referred to
as  "the cursor".   Initially its  position is  at the  very top  of the
       4
buffer.   Editing commands can change its position.  The  Insert command
inserts the following  text string and leaves  the cursor at the  end of
the inserted string.  The  Search command locates the  following string,
and leaves the cursor at the end of it.  The -S (reverse search) command
leaves the cursor at the beginning of the sought for string.

























_______________
2. In MACSYMA it is possible to load a TECO under your MACSYMA by giving
the MACSYMA command TECO();. Similarly EMACS(); starts up an EMACS under
your MACSYMA. In this case, ^Z  will bring you back up to  your MACSYMA,
and TECO(); again will return you to TECO.

3.  In  the special  display  packages, all  the  characters  are  self-
inserting and editing commands are available as "control" characters.

4. On a display console it will appear as /\

                                   28
Introduction to ITS                                              V. TECO


V.B. Editing Commands

        A list of  the most commonly  used editing commands,  in regular
mode, follows:

effect of command                           command
advance cursor one line                     L
go back one line                            -L
move one character to the right             C
move one character to the left              -C or R
delete one character                        D
   (the next character after the
   cursor)
kill from cursor position to end of         K
   line (including carriage return
   and line feed)
kill from cursor position to end of         :K
   line (retaining carriage return
   and line feed)
kill from cursor position to beginning      0K
   of line
move to the beginning of the line           0L
move to the end of the line                 :L
redisplay screen (on a display terminal)    ^L
move to the top of the buffer               J
move to the end of the buffer               ZJ
move right one word                         FWR
move left one word                          -FWR
kill to the end of the buffer               ZK

Commands that take string arguments:
   to insert text                           I
   to search forward                        S
    (i.e. over text beyond cursor position)
   to search backward                       -S
    (i.e. over text that is before cursor position)

Commands pertaining to printing terminals
   to type out the whole buffer             HT
   to type out the current line             0TT
     (without moving the cursor)
   to type out the current line             0LT
     (moving cursor to beginning of line)
   to type out n lines                      nTT
   to automatically type out three lines    :3^N
     each time two altmodes are typed

 Quit, or cancel command string typed       ^G
     (but not executed yet)






                                   29
V. TECO                                              Introduction to ITS


        Commands may be prefixed by a numerical argument  indicating the
number of repetitions, e.g. 4L would advance the cursor four  lines, -4L
would move it up four lines.

        The  Insert and  Search commands  take the  following  string ofî             _           _
characters, including spaces, carriage returns, and tabs, and  insert or
locate them respectively, e.g.  Iany string$$ would insert  "any string"
into the buffer.

        The  command :3^N  is a  switch (giving  it a  second  time will
reverse  the  condition).  It  is  given  once and  has  effect  for the
duration of the TECO you  have loaded (unless you turn it  off).  Notice
that in spite  of beginning with a  :, it is a  TECO command, not  a DDT
command.  It is particularly useful  because it prints out the  line the
cursor is on and the next  two lines, each time two altmodes  are typed,
if the cursor is in the middle of the text.  The position of  the cursor
will be shown by -!-.  If the cursor is at the end of the buffer  (as in
a file that you are in  the process of typing in) the last  three buffer
lines will be typed  out, and the cursor  position will be shown  by the
location of the ampersand that is the TECO "ready" symbol.

        ^G is a  quit command.  It will  stop an infinite loop  (e.g. an
iterative search without proper terminating conditions) or it will flush
an entire command string which you have not yet executed.

        There are approximately 400 other Teco commands; the most up-to-
date listing  of them can  be had by  printing out  DSK:.INFO.;TECORD >.
(This file is very long however,  so perhaps you want to ask  someone at
                                                                     5
MIT to list it for you on our high speed printer and mail it to you.)


V.C. Filing in Teco

        "Filing" is the process of  storing the edited text which  is in
your buffer  in a disk  file where it  will stay permanently  (until the
file is deleted).  If you do  not have your own directory, you  will use
the group or USERSi directory assigned to you (see  IV.A).  directories.
All the TECO commands that deal with files and filing begin with E.  The
ones you will need to deal with are EW, ER, EE, EF, EY, ET and  ED.  The
specifications for file names have  been given already.  By using  the >
convention  you  can  avoid  writing  over  and  thereby  obliterating a
previous  copy of  a  file.  This  is  especially useful  if  it becomes
necessary to return to a previous version to undo an  "improvement" that
didn't work out.  However, it  is "good manners" to delete  extra copies
of files before logging out.  There  is a rule of thumb that  two copies

_______________
5. Those familiar with the MACSYMA editor will note that it  was largely
based on TECO.  Note, however, that the commands which cause display and
printout in the MACSYMA editor  are quite different from those  in TECO,
there are  some commands  in the  MACSYMA editor  for insertion  of text
which do  not exist  in TECO,  and TECO's  commands for  manipulation of
parenthesized expressions are entirely different.

                                   30
Introduction to ITS                                              V. TECO


of the same source file are enough...and the GFR (Grim File Reaper) will
delete all but the two most recent if you don't do it yourself.

        There are  two common  protocols for filing  things from  a Teco
buffer.  The first is: EW<directory>;$EE<filename1> <filename2>$$.  This
files  the  whole buffer  in  the specified  directory.  The  second is:
EW<directory>;$HPEF<filename1> <filename2>$$.  This files a copy  of the
whole buffer in the specified  directory but leaves the contents  of the
buffer intact.  You are at the  same location in the buffer you  were at
previous to  filing and  can continue working.   On a  display terminal,
typing $$ will show you the buffer again.

        To "yank" a file from a directory into the buffer, the following
protocol is used:  ER<directory>;<filename1> <filename2>$^Y$$.  Note, in
this case  ^ is  uparrow (ascii decimal  value 94,  octal 136),  and not
control.  Once you have specified a directory name and some  file names,
they become the defaults.  Unless  you want to change them, they  can be
omitted from subsequent ER,EW,EE,EF, etc. commands.

        To list a directory while  you are in TECO, type EY  followed by
the directory name and a semi-colon, thus:

EYELLEN;$$

This does not disrupt or modify  your buffer; you are still in  the same
place ($$ will redisplay the buffer on a display console).

        When you are inputting a lot of data, it is advisable  to "file"
it away every fifteen minutes or  so to minimize the amount of  work you
will lose if the system crashes while it is all in your buffer.  Using >
as the second file name, you can set up a default file name with  the ET
command, thus:

ETUSERS4;JRN >$$

Then after you have inserted your  data for a few minutes, you  can type
EW$HPEF$$, and a copy of what  you have just done will be filed  on disk
in the appropriate USERSi directory as JRN 1 (it is recommended that you
make the first  file name of  a file you  place on any  USERSi directory
your login name; you can then rename it when it is complete to JRN DATA,
or  whatever name  you  find descriptive).   Then type  $$  and continue
inserting data.  This process  is repeated until you have  completed the
file.  Then you can delete  all but the largest file, renaming  that one
if you wish.  Note that it is possible to designate files to  be deleted
using < as the  second file name, but it  is very easy to  miscount <'s,
and using the specific file names, (e.g. USERS4;JRN 15) is safer.

        The :DELETE command is used at DDT level, but it is  possible to
delete  files while  you are  in TECO.  The ED  command followed  by the
directory and  file names  and terminated  by two  altmodes will  do it,
thus:

EDUSERS4;JRN 15$$


                                   31
V. TECO                                              Introduction to ITS


(Be sure to  do ETJRN >$$  so that your  default name doesn't  stay "JRN
15").


V.D. TECO Example

        Here  is an  example  showing how  to  create a  batch  file for
loading into MACSYMA.  Everything you would type on your console will be
shown in lower case, at the left margin, thus:

foo

Everything the system responds or  types out will be shown  indented, in
capital letters, thus:

     BAR

Explanatory comments will be  shown following a semi-colon, on  the line
they explain, thus:

                                        ;explanatory comment.


:teco                                   ;load TECO

    TECO 928.
    &

iexp(2*x)*sin(x)^2;                    ;insert a command line
dif(%,x);                              ;and another one
$$                                     ;end the Insert command
    &

-LTT$$                                 ;go back one line and type it out

    DIF(%,X);
    &

3c$$                                   ;move 3 characters to the right

                                                        6
if$$                                   ;insert another f

0tt$$                                   ;type out the line

    DIFF(%,X);
    &

ht$$                                   ;type out the entire buffer

_______________
6. Note  that the last  two commands could  have been  written together,
thus:
 3cif$$

                                   32
Introduction to ITS                                              V. TECO


    EXP(2*X)*SIN(X)^2;
    DIFF(%,X);
    &

ewusers4;$eejrn de$$                   ;file it away as JRN DE on USERS4


V.E. Other TECO Facilities

        There are numerous facilities available in the  TECO programming
language, but  two of the  more useful for  editing are  Q-registers and
Iteration.

        Q-registers can be thought of as pigeon holes in which  to stick
useful things, much  like the numbered holes  behind the desk at  an old
fashioned hotel.  The pigeon holes available to you in TECO are the keys
on your keyboard, that is to say that there are Q-registers 0  through 9
and A thru Z  (there are also registers  .A through .Z, and  ..A through
..Z, but these contain special  features of the TECO program  itself, or
of special macro packages).  You can copy something into a Q-register so
as to be able to insert it repetitively.  You can remove a piece of text
from  its  location,  store  it in  a  Q-register,  and  then  insert it
someplace  else.   You  can  use  Q-registers  for  various  bookkeeping
operations you might want to do (counting the number of lines in a file,
for example).  You  can use a  Q-register to store  a macro, such  as an
iterative  search,  which you  want  to have  operate  over  your entire
buffer, or a portion of your buffer.

        There are four basic commands which refer to Q-registers:

X       Copy text into Q-register
U       Place numeric value into Q-register
G       Get the contents of Q-register and insert in buffer
M       Execute (Macro) the contents of Q-register

The two commands X and U take arguments of the form

<what>X<where> or <number>U<where>


<where>  is the  name of  a  Q-register.  <what>  may be  either  of the
following

1. a number of lines (e.g. 3X1 -> copy the next three lines into
        Q-register 1)
2. A range of the buffer (e.g. Q2,.X4 -> copy from the point (location)
        in Q-register 2 to the current location into Q-register 4)

and the <number> may be either of the following:

1. an integer (e.g. 0U1 -> put zero into Q-register 1)

2. a location (e.g. .U2 -> put the current location into Q-register 2)


                                   33
V. TECO                                              Introduction to ITS


The location  of the cursor  in the buffer  is calculated  in characters
from the beginning of the buffer.

The two commands G and M take one argument following them, which  is the
name of a Q-register, e.g.

G8


inserts the contents  of Q-register 8 in  the buffer at the  location of
the cursor (leaving the cursor after the inserted text).

M8


executes the command string contained in Q-register 8.

        The command Q followed by the name of a Q-register  designates a
particular register for other commands, e.g.

Q1=           will show you the value in Q-register 1 (a number)
              (this does not insert the value in the buffer,
              just displays it for you to inspect)
Q1J           jump to the location contained in Q-register 1
Q1,.          designates a portion of the buffer from the
              location in Q-register 1 to the current location
              of the cursor (.)
Q1,.X2        copies the specified portion of the buffer
              into Q-register 2

The  command X  may be  preceded by  an F,  e.g. Q1,.FX2,  and  the text
designated  will be  copied  into the  Q-register and  deleted  from the
buffer.  It may also be preceded by ^, in which case text is appended to
what is already in the Q-register.

        Iteration  is  made  possible  because  TECO  is  a  programming
language.   Iterative  procedures   are  enclosed  in   angle  brackets,
<procedure> (notice  these are  "real" angle  brackets, you  type them),
which may be preceded by a number to indicate the number  of repetitions
(no number specified indicates the procedure is to iterate indefinitely,
beginning at the cursor location, until terminated by the ";" command).

        The  most commonly  used  iterative procedure  is  the iterative
search.  The format for an iterative search to change all occurrences of
X+3 to X+2 is

<SX+3$;-DI2$>$$


Notice the altmodes.  The  first one terminates the search  string, X+3.
The second one terminates the  insert string, 2.  -D, which  deletes the
3, does not need a terminator since it does not take a  string argument.
(Notice it is -D  since the cursor is at  the end of the string  X+3, soî              __


                                   34
Introduction to ITS                                              V. TECO


the 3 is  the character just before  the cursor).  Finally,  notice that
the ";" is not there for punctuation, but is the special  TECO character
that  says,  "if  you  find  no  occurrences  of  the  string,  exit the
iteration."  It provides the terminating condition for the search.



More examples:

0U1 J<S
$; %1> Q1=$$                       zero Q-register 1, then go to the top
                                   of  the  buffer  and  search  for all
                                   occurrences of <carriage  return> and
                                   increment the  value in  Q-register 1
                                   each  time  you  find   one;  finally
                                   display the contents of Q-register 1.
                                   This will  count the number  of lines
                                   in a file.

J .,.XA <SDIFF$; 0L ^XA L>$$       go to the top of the buffer,  and set
                                   up Q-register A, then search  for all
                                   occurrences  of DIFF;  when  you find
                                   one go to  the beginning of  the line
                                   it is on, and append that line  to Q-
                                   register A, then go to the  next line
                                   to insure you don't keep  finding the
                                                             7
                                   same line with DIFF in it.  This will
                                   create a list in Q-register A  of all
                                   the lines containing DIFF.

Either  of these  two  little procedures  could  be inserted  in  a TECO
buffer, then the command  HFXB$$ given, which would put the  contents of
the buffer (i.e. the procedure)  in Q-register B.  Then a file  could be
read into the  buffer, and the command  MB$$ given, which would  run the
procedure over that file.















_______________
7. Failure to do something like this is a very common "bug" in iterative
procedures, and is one of the easiest ways to produce infinite loops.

                                   35
VI. Miscellaneous                                    Introduction to ITS


VI. Miscellaneous

        There are  several other programs  which may be  of help  to the
MACSYMA user.  Two of them, NAME and WHOIS, identify other  users.  PEEK
permits you  to check on  your own or  someone else's status.   And TIME
gives you the current date and time.


VI.A. NAME

        NAME is loaded by typing :NAME followed by a carriage return, or
by NAME^K.  It prints out a  list of the users currently logged  in with
their full names and locations.  It also gives the idle time,  i.e.  the
length of time since the user last did something at his console.

        When  NAME  has  completed its  printout,  it  kills  itself and
returns you to DDT level.


VI.B. WHOIS

        Loading WHOIS has different effects depending upon the way it is
done.  Loading it with :WHOIS <carriage return> or WHOIS^K  will produce
the same print out as  :NAME, but with additional information  about the
users.  Loading it with :WHOIS JRN <carriage return> will print  out the
identity of  the user who  uses JRN as  his login  name.  Alternatively,
:WHOIS may be given a full  name, and the result will be to  provide the
login name of  that person.  The difference  from NAME here is  that not
only the full name of  the user is given but some  other identification,
e.g.   MACSYMA  user,  secretary,  graduate  student,  etc.   :WHOIS and
WHOIS^K give only those users logged  in, but by giving a login  name to
:WHOIS  any user's  identity can  be determined,  whether or  not  he is
logged in.   This is a  good way  to check if  someone already  uses the
login name you want to use.  A user who is not known to the system will,
of course,  not be identified,  and the system  will print "???"  or "No
Users".

        WHOIS also kills itself and leaves you at DDT level.


VI.C. PEEK

        PEEK  permits you  to check  on your  status, or  that  of other
users.  It is loaded by either :PEEK <carriage return> or PEEK^K (:P and
P^K are short forms of these two).  The printout is a listing of all the
current users  with all  the jobs  that they  currently possess  and the
status of each job.  This  printout will update itself every  20 seconds
on  a  display console,  and  you may  cause  it to  update  itself more
frequently  by typing  space.  On  a printing  console, the  printout is
updated only by explicitly typing  a space.  You kill PEEK by  typing Q.
This will return you  to DDT level (but  remember that from a  TIP, this
may still take a few  seconds).  There are several modes to  PEEK, which
are selected by a series  of single letter commands. A listing  of these
may be obtained by typing ? at PEEK.

                                   36
Introduction to ITS                                    VI. Miscellaneous


        The first  two lines  give statistics  about the  system itself.
The third line  gives the headings for  the information to  follow.  The
remaining give status information, one line for each job.  The number in
the first column is  the user index, followed  by the login name  of the
person, and the  name which is currently  the default for his  DDT.  The
next column gives  the status of the  job; HANG, RUN, WALK,  CRAWL, FLY,
PAGE, 10!0  and TTYI and  TTYO are  the most common.   HANG and  RUN are
sufficiently  descriptive;  WALK, CRAWL,  and  FLY are  variants  of RUN
                                                  1
intended to indicate roughly how your job is doing  ; PAGE means the job
is currently waiting its turn  in time sharing, and 10!0 means  that the
job has been interrupted (usually because you typed ^Z).  TTYI  and TTYO
will  be  next to  a  job that  has  control of  the  console,  and mean
"inputting" (or  waiting for input)  and "outputting"  respectively.  To
the right of this status indication there will be one of  three symbols:
<, >,  or Tn.   < means  that the  job has  relinquished control  of the
console to  a "superior"  procedure.  >  means that  control is  with an
"inferior"  procedure.   In the majority  of cases you  will find  the >
next to your DDT, and the < next to your MACSYMA.  The Tn indicates that
that job has control of the console (a bit of reflection will assure you
that if you  are looking at  a PEEK, your Tn  will be opposite  the PEEK
job).  The n is the number of  the line you are logged in on.   The next
two columns give the core units  the job is using.  The first  number is
the total amount  of core the  job takes, and  the second number  is the
amount of that that is on the disk.  The next column gives the % of time
the job is receiving from  the machine.  The remaining column  gives the
total machine time (CPU time) the job has received.  For each  user, the
line with his login name represents his DDT.  Then under  that, indented
slightly, will be a  line for each job, with  the job name in  the first
column, and the directory name that is the current default for  that job
in the second  column.  The status column  and the % time  are generally
the most useful in determining your status.

        On a printing console, running  a PEEK when the system  is being
used heavily can take a long  time.  To just see the status of  your own
jobs, load PEEK by typing

:PEEK J

This will cause it  to display only your  jobs.  If you have  a disowned
job, it will be shown, also, but next to <,  >, or Tn, it will say DSN.


VI.D. TIME

        :TIME or TIME^K  will give you a  print out of the  current time
and date, as well as the length of time the system has been running.



_______________
1. There are a few other varients of RUN: MULTIX, TENEX, and perhaps one
or two others.   These are actually names  of operating systems,  and in
PEEK mean "slow"; this is a bit of inter system sniping.

                                   37
VII. Additional Sources of Information               Introduction to ITS


VII. Additional Sources of Information


VII.A. Running MACSYMA Demo files.

        It is sometimes useful, as an adjunct to the information  in the
MACSYMA Manual, to see how some commands work on sample problems.  There
is a directory  called DEMO which contains  batch files used  for giving
demonstrations.   These  files illustrate  the  various  capabilities of
MACSYMA.  You can list the DEMO directory (see IV.B) and then run one of
these files yourself to see  how a particular command works, or  just to
get an idea of how MACSYMA operates in general.

        After you have chosen a file  (say it is BEGIN DEMO) you  load a
MACSYMA (see II.C) and, after it gives you a command line number, type:

BATCH(BEGIN, DEMO, DSK, DEMO);

or

DEMO(BEGIN, DEMO, DSK, DEMO);

BATCH will cause the file to be run right through without pauses between
command lines.  DEMO will cause the system to pause after  each command-
display line pair for you to  type a space, which will cause it  to type
and execute  the next command.   (On noisy phone  connections, sometimes
the  phone  line  will send  a  <cr>  for you,  which  the  DEMO command
interprets as "no",  and the DEMO  will terminate prematurely.   If this
happens, try it with the BATCH command.)


VII.B. SHARE Directory

        Another  directory  available  to  MACSYMA  users  is  the SHARE
          1
directory.   As the name implies, it is a directory of  routines written
by users which  may be useful  to other users.   There are at  least two
files for each  routine, one providing documentation  on the use  of the
routine, and the other  containing the actual routine ready  for loading
into MACSYMA.

        Users are invited to use the files on this directory and  to add
to it should they  develop some useful routine.  The  naming conventions
and  required file  formats are  explained in  a file  on  the directory
called -READ- -THIS-.  Please heed them.

        Note, when using programs on the SHAREi directories,  some files
have changed location since the last version of the MACSYMA  manual.  If
you attempt to load something advertised to be on SHARE, and get  a FILE
NOT FOUND message, try  the same file name  but SHARE1 or SHARE2  as the

_______________
1. As our users "SHARE" more and more, the original directory has gotten
full, and now there are also SHARE1 and SHARE2 directories.

                                   38
Introduction to ITS               VII. Additional Sources of Information


directory.   (Of course,  you could  also use  :FIND to  locate  the new
location.)


VII.C. The INFO Program and further information about the system

        The  :INFO  Program  contains  a  variety  of  information about
programs that  run on the  system.  You  can start it  up with  :INFO or
INFO^K.  It has  a self-teaching feature which  explains how to  use it:
type H the first  time you run it  and it will enter  this self-teaching
routine.

        A file which is interesting to look at is AI:GLS;JARGON >, which
you can print with the :PRINT command.  It is a glossary of some  of the
seemingly incomprehensible language some programmers use.








































                                   39
VIII. Terminals                                      Introduction to ITS


VIII. Terminals


VIII.A. The TCTYP Program

        ITS tries to identify the type of terminal which the user has in
order to send  characters to it in  an optimal fashion.  However,  it is
not always successful in doing  this, so sometimes you may have  to help
it.   If you  feel this  is the  case type  the command  :TCTYP DESCRIBE
followed by  a carriage  return.  This  printout will  show the  type of
terminal  ITS thinks  you  are using  and the  characteristics  which it
possesses.  The possible  terminal types are: DATAPOINT,  HP2640, OMRON,
TEKTRONIX,  VT52,  GT40,  IMLAC,  MEM  (memorex),  EXECUPORT,  TERMINET,
TELETYPE  (for  33 and  35  terminals), TISILENT,  PRINTING,  and  a few
others.   (See   .INFO.;TCTYP  ORDER  for   the  complete   list.)   The
designation PRINTING is used if none of the other types apply.

        For  example  typing  :TCTYP TISILENT  (followed  by  a carriage
return) will  inform ITS that  you have a  Texas Instruments  Silent 700
terminal.   Giving  the  name  of  the  terminal  causes   the  relevant
parameters to be set  to "reasonable values."  If these  are inadequate,
they can be  reset.  The command :TCTYP  HELP (carriage return)  gives a
brief explanation of  how to reset  them.  The principal  parameters are
LINEL (line length), PAGESIZE (the number of lines per page  or screen),
PADCR, PADLF,  and PADTAB (which  specify padding for  carriage returns,
linefeeds, or tabs respectively).  A value of 0 for PADCR and  PADLF and
1 for  PADTAB means  no padding after  carriage returns,  linefeeds, and
tabs respectively.  A value of 0 for PADTAB means the terminal is not to
tab at all.  The maximum padding value is 7.  (Try small  values first).
A  numerical value  of a  parameter should  be followed  by a  period to
indicate decimal base (otherwise it is taken as octal).

        ITS  does  not  pad carriage  returns  or  linefeeds  unless you
specify it explicitly.  TIPs, however, provide what is  usually adequate
padding  (2 pads  for  carriage return).   If the  padding  for carriage
returns  and  line feeds  on  a terminal  being  used from  a  TIP seems
inadequate, it  may be improved  by resetting the  padding value,  or by
adding PADDED  to its :TCTYP  command.  For example,  a T.I.  Silent 700
that is sometimes missing linefeeds may be improved by typing

:TCTYP TISILENT PADDED

This will slow  down its input response  a bit but will  greatly improve
legibility.

        A complete  description of  the :TCTYP program  may be  found by
typing

:PRINT .INFO.;TCTYP ORDER.

        The normal response by the system to any :TCTYP  command (except
DESCRIBE and HELP) is

:KILL

                                   40
Introduction to ITS                                      VIII. Terminals


In spite of the bloodthirsty look of this response, it does  not destroy
any programs you may have  running, but only indicates execution  of the
command.


VIII.B. CRTSTY

        For  display terminals  which are  not handled  directly  by the
system there exists a program called CRTSTY.  This provides the software
support to  permit these  terminals to take  advantage of  their display
characteristics.  Among the terminals supported by CRTSTY  are:  ADM3's,
Concept  100's,  Hazeltine  1500's,  Perkins  Elmer  FOX's,  Datamedias,
Control Data Corporation  713's, and a host  of others.  You  should try
:INFO CRTSTY and :INFO TERMS to see if your terminal is included.  If it
isn't, the maintainers of CRTSTY are usually willing to help you add it.
In the CRTSTY section of INFO the information you must provide to have a
new  terminal  supported  is  listed.   You  can  communicate  with  the
maintainers of CRTSTY by sending mail to BUG-CRTSTY.


VIII.C. A Word About Keyboards

        Unfortunately there  is no standard  ascii keyboard.   There are
many various keyboard layouts, and in some cases certain ascii codes may
not be assigned to the same key on any two keyboards.  Included  here is
a chart which give the ascii codes in octal and decimal, and the various
printing characters  most usually  associated with  them.  These  may be
helpful in trying to locate stray control characters on your console.

        The  keys usually  most  affected by  the whim  of  the keyboard
designer are  the control  functions which in  this document  are called
"control-backarrow" (^_) and "control-uparrow" (^^).  The first of these
is particularly useful on ITS for communicating (^_).


^_  On teletypes, the backarrow is the shift of the letter O, and on all
    upper case terminals, this is the first thing to try.  The backarrow
    on  more  modern  terminals  is "underscore",  so  the  key  on your
    keyboard which  would be used  to underline may  turn out to  be the
    elusive "backarrow".  A few consoles (notably the CDI Teleterm) have
    the function of control-underscore on control-shift-zero.

    DEC  Consoles:  Decwriters  (LA36),  Decscopes  (VT50,  VT52).   The
    backarrow on these consoles is the underline, which is the  shift of
    the dash,  i.e. the fifth  key from  the right in  the top  row.  On
    VT100's it is control-?.

    TIsilents.  There are  two main TI keyboard  types.  On one  of them
    there actually is  a key with  a backarrow on it  in the top  row of
    keys, and it is the backarrow for "control-backarrow".  On the other
    control-backarrow is control-question-mark.   If the obvious  key on
    your TI  console does not  work for control-backarrow,  try control-
    question-mark.  On some TI's the key "US" ("underscore") is  the key
    to use for control-backarrow.

                                   41
VIII. Terminals                                      Introduction to ITS


^^  On teletypes the uparrow is the shift of the letter N.  On all upper
    case terminals  that is  the first  thing to  try.  In  other cases,
    there seems to be no  particular scheme for what the uparrow  is.  A
    key with an arrow pointing up would be an obvious one to  try.  Some
    keyboards indicate uparrow with a large circumflex or caret.

    DEC Consoles.  On LA36's, VT50's and VT52's, uparrow is the shift of
    the number 6.  On VT100's it is control-tilde.

    TIsilents.  On one of the TI keyboards, the uparrow is  the uparrow,
    and is located in the top  row of keys.  On the other,  the control-
    uparrow function is achieved with control-greater-than.

        The table of  translation of strange control-characters  for the
TI silent  variant keyboard  is given  here, in  case any  other console
types use it:

    To get    ^_        Type      ^?
              ^^                  ^>
              ^]                  ^=
              ^\                  ^<


VIII.D. OCTPUS

        There is a program called :OCTPUS (for OCToPUS) which  will give
you the octal value of any character you type from your  keyboard.  This
will aid you in locating special characters which are eluding  you.  You
start  it with  :OCTPUS and  type characters  at it.   ^Z will  offer to
return you to DDT level, at  which point it kills itself and  leaves you
there.
























                                   42
Introduction to ITS                                      VIII. Terminals


ASCII CHAR       LPT VALUE TRANS  SAIL MEANING

null              ^@ 000
control A           001    vl    down arrow
control B           002    a_    alpha
control C (eof)   ^C 003    b_    beta
control D           004    ^    logical and (caret)
control E           005    ~    logical not
control F           006    e_    epsilon
control G           007    n-    pi
backspace         ^H 010    ^\    lambda
tab               ^I 011
line feed         ^J 012
vertical tab      ^K 013
form feed         ^L 014
carriage return   ^M 015
control N           016    %_    infinity
control O           017    @o    del (partial deriv.)
control P           020    (_    subset of
control Q           021    )_    contains
control R           022    n^    intersection
control S           023    U_    union
control T           024    V-    for all
control U           025    E|    for some
control V           026    O+    exclusive or
control W           027    <>    two-way arrow
control X           030    _       underbar
control Y           031    ->    right arrow
control Z           032    Z-    control Z (eof)
altmode            $  033    =/    not equal
control shift l     034    <_    less or equal
control shift m     035    >_    greater or equal
control shift n     036    =_    equivalent
control shift o     037    V_    logical or

space                 040
exclamation point  !  041
double quote       "  042
number sign        #  043
dollar sign        $  044
percent sign       %  045
ampersand          &  046













                                   43
VIII. Terminals                                      Introduction to ITS


single quote       '  047
left parenthesis   (  050
right parenthesis  )  051
asterisk           *  052
plus sign          +  053
comma              ,  054
minus sign (dash)  -  055
period             .  056
slash              /  057
zero               0  060
one                1  061
two                2  062
three              3  063
four               4  064
five               5  065
six                6  066
seven              7  067
eight              8  070
nine               9  071
colon              :  072
semicolon          ;  073
less than sign     <  074
equal sign         =  075
greater than sign  >  076
question mark      ?  077
at sign            @  100
capital A          A  101
capital B          B  102
capital C          C  103
capital D          D  104
capital E          E  105
capital F          F  106
capital G          G  107
capital H          H  110
capital I          I  111
capital J          J  112
capital K          K  113


















                                   44
Introduction to ITS                                      VIII. Terminals


capital L          L  114
capital M          M  115
capital N          N  116
capital O          O  117
capital P          P  120
capital Q          Q  121
capital R          R  122
capital S          S  123
capital T          T  124
capital U          U  125
capital V          V  126
capital W          W  127
capital X          X  130
capital Y          Y  131
capital Z          Z  132
left bracket       [  133
backslash          \  134
right bracket      ]  135
up arrow (caret)   ^  136    ^l    up arrow
back " (underbar)  _  137    <-    back arrow
accent grave       `  140
small a            a  141
small b            b  142
small c            c  143
small d            d  144
small e            e  145
small f            f  146
small g            g  147
small h            h  150
small i            i  151
small j            j  152
small k            k  153
small l            l  154
small m            m  155
small n            n  156
small o            o  157
small p            p  160


















                                   45
VIII. Terminals                                      Introduction to ITS


small q            q  161
small r            r  162
small s            s  163
small t            t  164
small u            u  165
small v            v  166
small w            w  167
small x            x  170
small y            y  171
small z            z  172
left brace         {  173
vertical bar       |  174
right brace        }  175    _    altmode
logical not        ~  176    }    right brace
rubout                177








































                                   46
Introduction to ITS                                      VIII. Terminals


VIII.E. TIP commands

        Under  certain  circumstances  it  may  be  necessary   to  give
additional commands to the TIP. Frequently used ones are as follows:

    @OPEN <number>          Open connection to host whose number is give

    @C            Close TIP connection.

    @D C E        Device code extra padding, for terminals with a slow c

    @D C A        Device code ascii padding, to undo @D C E.

    @E R          Echo remote, prevents TIP from echoing.

    @E A          Echo all, allows TIP to echo.

    @I L          Insert linefeed after carriage returns.

    @C I L        Clear insert linefeed, nullify @I L

    @T E 0        Enters one-character-at-a-time mode

    @R            Reset

    @S A Y T      Send Are You There, for those frustrating moments
                    when the system seems hung.  If MC is "there" it
                    will answer "YES" (other systems may acknowledge
                    differently).


























                                   47
IX. Possible Problems                                Introduction to ITS


IX. Possible Problems


IX.A. Problems with your terminal

        If the terminal is printing double or triple then it probably is
in half-duplex  mode.  If  the terminal  is capable  of working  in full
duplex then you should switch  it to full duplex.  If the  terminal must
operate  in  half-duplex  mode  then  the  following  procedure  must be
performed.  Type :TCTYP HALF followed  by a carriage return.   This will
prevent ITS  from echoing  (see VIII.A  above).  A  note to  people with
separate modems:  your modem must also be set to full duplex.  So if the
console is set to full duplex and things are still not right,  check the
      1
modem.  If the terminal  and modem are in  full duplex mode and  you are
getting still double printing, a good plan of action is to first type @E
R  to cause the TIP to cease echoing, and then type :TCTYP followed by a
carriage return.  If  the type of terminal  ITS thinks it is  talking to
does not correspond  to the type you  have, then the  appropriate :TCTYP
command  should  be selected  from  section VIII.A.   If  this  fails to
improve the problem, see section VIII above for further suggestions.

        If  the  terminal  is apparently  skipping  characters,  the TIP
command @T E 0 may help.  This causes the TIP to transmit each character
separately (also slowly).

        If your terminal does not line feed when the carriage return key
is struck, you may have to type a line feed after each carriage return.

        VT100's should be set in "ascii" mode (local setup B) for use on
ITS.  If you use a VT100 and its behavior is odd, check first that it is
not in "ansi" mode.


IX.B. Problems with the system

        The problems you may  encounter fall into two  major categories:
1) your  typing appears on  the console, but  the system  either doesn't
respond or it  gives you an  error message, or  2) your typing  does not
appear on the console, or you get a message such as ITS IS DOWN  (if you
are on a dialup  line) or HOST NOT RESPONDING  or HOST DEAD (if  you are
using a TIP)





_______________
1. A further anecdote:  my own  modem has its duplex switch next  to the
on/off switch and both are on the back of the modem.  I reach  around to
the back of the modem to turn it off, and every so often I get the wrong
switch, which may not always be apparent until I log in again and suffer
from double echo.  Now  of course I KNOW that  I have my console  set to
full duplex... how the mighty are fallen.

                                   48
Introduction to ITS                                IX. Possible Problems


IX.C. If Your Typing Appears

        The fact that your  typing appears indicates that the  system is
still operating, so you should first make sure you know what program you
are in.   A simple way  to do this  is to type  ^Z and then  :LISTJ (see
Section III.B).  PEEK may also be used (see Section VI.C).  If ^Z brings
no response, it may be that  you are already at DDT level, but  your DDT
is hung.   Try ^G to  unhang it.  Sometimes  the system will  be heavily
loaded and  the response will  therefore be slow.   Waiting a  couple of
minutes and trying ^G again often works.

        A  common problem  is characterized  by the  error  message JOB?
This means that there is no  current job, so the system can  not execute
your commands such as :KILL or :CONTIN, which refer to the  current job.
You will have no current job, of course, if you have not yet loaded one,
or under certain circumstances following error messages or ^G's  to quit
out of certain commands.  If you type :LISTJ you will see something like
this:

          MACSYM P 15
         *
Notice that the * which should be opposite the current job, is not.  (If
you have no jobs, the only print out from :LISTJ will be *,  of course).
The solution is once again fairly simple: type :JOB and then retype your
original command.

        Another common  problem, especially in  the afternoons  when the
system is loaded,  is characterized by  the message SYSTEM  FULL?.  When
this  happens,  it  means  that  your attempt  to  start  up  a  job was
unsuccessful because the  system couldn't hold  any more jobs.   This is
usually a temporary  phenomenon, so just waiting  and trying again  in a
minute or so will  usually work.  If you  already have one job,  and you
fail in loading a  second, when you decide  to go back to  your original
job you  may find yourself  in the situation  described in  the previous
paragraph.  Type :JOB, and all will be well.

        Sometimes  if  a  job which  is  running  gets  interrupted, for
instance your login  init trying to  run when the  system is full,  or a
MACSYMA SAVE command trying to  write out to a directory which  is full,
you will see the message :INPUSH.  You can tell the job to continue from
this halt (if the cause was a full directory, you had best clean up your
files a bit, or if it is a USERSn directory, ask someone at MIT to clean
up the directory for you, first) by typing :INPOP<cr>.

        Misspelling or other typographical errors will, of course, cause
problems.  The  response ?? at  DDT level is  not an error  message, but
only a response to  extra rubouts or extra  ^Z's.  It means that  DDT is
waiting for you to type  the next command.  The error message  ?U? means
that the system did not  understand what you typed and ignored  it.  The
message OP? means that you typed  a stray altmode (or one too few)  in a
short  form  command.   Sequences  of  apparently  random  numbers, e.g.
-137,,2640, are not error  messages, but the contents of  certain memory
locations which you have accidently opened for inspection.  This happens


                                   49
IX. Possible Problems                                Introduction to ITS


because  DDT is  also a  debugging language,  as well  as a  monitor for
program control.   Certain keys,  notably linefeed,  uparrow, backarrow,
semi-colon and  slash (there  are others)  are specially  interpreted by
DDT.  If  you type  one of  these, under  certain circumstances  it will
print out  what appears  to be gibberish.   This does  no harm,  but for
everyone's peace of mind do  not type sequences of linefeeds  to advance
your  paper,  for  example.   If you  see  some  of  these  numbers (and
occasionally assembly language instructions such as MOVEI), just  type a
carriage return, which will close the location, making it impossible for
you to accidently "write" anything into a random memory location.  After
you have  typed the carriage  return, you are  ready to  retype whatever
command you had started before the numbers were printed out.

        A syntactically correct but otherwise inoperable "command" (e.g.
one that is misspelled) will produce the message:

DSK:<login name>;TS <command>  NON-EXISTENT...

which only means that the  system was trying to locate a  program called
whatever you typed.   Retyping the command is  all that need be  done in
any of these  cases (with due attention  to spelling).  If, in  spite of
care with spelling and syntax, you are still not receiving  the response
you expect, refer to section  III.G for how to communicate  with someone
in the Mathlab group who can help you.

        If you feel you are hopelessly "lost" there is a  program called
LUSER which will send a  message requesting help for you.  All  you have
to do is type :LUSER (followed by a carriage return, of course).

        If at any time you happen to receive the error message

DDT BUG, PLEASE DO :BUG DDT ....


it means that  DDT has detected  a bug in  itself.  You should  tell the
systems  programmers  exactly what  commands  you gave,  and  what DDT's
response was.  To do this type

:BUG DDT <your info> ^C


IX.D. If Your Typing Does Not Appear

        If your typing does not  appear on your console then  either you
got  disconnected  or the  computer  has crashed.   If  the  terminal or
dataset is equipped  with a light  indicating whether the  connection is
still in force, check it.  You can try typing ^_  (control-backarrow, as
for initiating links) followed by rubout (or delete), and if  the system
does not respond ^_?  then it is indeed down.

        A TIP or Telnet Server will usually give some message indicating
that the host  computer has crashed, e.g.,  HOST NOT RESPONDING  or HOST
DEAD.  Wait ten minutes  and try to log in  again.  If you are  not sure


                                   50
Introduction to ITS                                IX. Possible Problems


who is dead, try @S A Y T (@Send Are You There).  MC will say  "YES" if
it is  still up.  If  it doesn't  answer "YES", then  you should  try to
connect again.

        If you  are on a  dialup line,  the system may  type out  ITS IS
DOWN.  You need only wait and in ten or fifteen minutes the  system will
either print the message MC ITS REVIVED!  or the message MC ITS  nnnn IN
OPERATION.  In  the former case,  you can continue  from where  you left
off, and in the latter you must type ^Z and log in again.  Note  to 1200
baud users:   When you are  using a  1200 baud line,  the "ITS  IS DOWN"
message will print if the system  crashes, but when it comes back  up it
will not  print "MC ITS  .... IN OPERATION"  but will print  some random
garbage characters, usually a row of X's.  This is because our 1200 baud
lines are actually  variable speed lines,  and when initialized  after a
system crash do not seek the  carrier at 1200 baud.  You must  then hang
up and dial again.  It is worth while to remain connected until  you see
the line of X's, however, so you know that the system is back up.

        If, when  you log back  in after such  a crash, you  receive the
message --ATTACH YOUR DETACHED JOB--, it means that you were  not logged
out by the system and can return to your job and continue from where you
were interrupted.  The way to  do this is very simple; just  depress the
space  bar once.   This will  set off  a sequence  of events  which will
result  in  restoring the  "detached  job".  The  following  sequence of
statements will be printed:

HACTRO$J! : $ REOWNED $
* :ATTACH

Notice that you do not type any of this; the system does it for you.  At
this point you  are right back where  you were before  the interruption.
If  you  are not  sure  where you  were,  type ^Z  and  then  :LISTJ, as
described  in  Section  III.B,  above.   Warning:  do  not  type :ATTACH
yourself, without  being VERY SURE  you know what  you are doing  or you
will regret it!

        Since   network  connections   can  on   occasion   be  somewhat
unreliable, you may sometimes find your connection breaks.  When you log
back in under these  circumstances, the computer will not  have crashed,
and your old jobs will still be there.  There are two possibilities:


1.   Your  jobs were  detached and  you get  the --ATTACH  YOUR DETACHED
     JOB?--message.  In this case proceed as above.

2.   When you  type :LOGIN  <login name>, the  system types  back <login
     name>$0U <login name>$$^S.   This means that while  your connection
     was broken, you were not detached.  At this point you are logged in
     twice.  To get back to your previous jobs you say
     :REATTACH <login name>/K
     and your previous jobs will be attached to your current console.

Occasionally when you attempt to answer the --ATTACH YOUR DETACHED JOB?-


                                   51
IX. Possible Problems                                Introduction to ITS


-message, you may be  unable to type a space,  or you might not  want to
type  a  space.   You may  be  unable  to type  a  space  if  your phone
connection is very noisy and a spurious character is  transmitted before
you hit the space bar.  You  might not want to attach your  detached job
immediately if  you have  an INIT  which initializes  your line  to some
particular terminal type (in that  case you want to run your  LOGIN INIT
file before recovering  your jobs).  In any  case, having typed  (or had
typed for you by the phone line) a <carriage return> or other character,
you will see the message

LEFT DETACHED?

You may still reclaim your old  job, however.  When you are ready  to do
so, proceed as in case 2 above, i.e. type

:REATTACH <login name>/K

If after trying  all these things, you  are still having trouble  do not
hesitiate to contact someone in the Mathlab group.




































                                   52
                                                       DDT Command Index


                         Index of DDT Commands

Entries in bold face type refer to most complete explanation.
Command       Short form     Function

:?                            lists DDT commands 18
:A            A^K            loads MACSYMA, 6
:CONTIN       $P             re-enter a job, 11
:CONTINUE                    re-enter a job, 12, 13
:COPY                        copies specified file 23
:DELETE       ^O             deletes a file 24
:DETACH                      disconnects but keeps jobs 13
:DISOWN                      disowns current job 13
:FIND                        locates files 24
:HSNAME                      finds your home directory 20
:INQUIR                      registers Users 8
:JOB          $J             selects job, 12, 13
:KILL         $^X.           kills current job, 12
:LISTF        ^F             lists a directory 21
:LISTJ        $$V            lists your jobs, 11, 49
:LOGIN        $U             logs you into system, 6
:LOGOUT       $$U            logs you out of system, 7
:MACSYM       MACSYM^K       loads MACSYMA, 6, 10
:MAIL                        sends mail 14
:MAIL MACSYM                 sends MACSYMA Mail 18
:MOVE                        moves a file 23
:NAME         NAME^K         loads NAME 36
:P            P^K            loads PEEK 36
:PEEK         PEEK^K         loads PEEK 36
:PEEK J       P^KJ           loads PEEK 37
:PRINT        ^R             prints out a file 24
:PRMAIL                      prints out Mail 17
:PRMAIL MACSYM                prints out MACSYMA Mail 18
:PROCEED      ^P             leaves a job running, 11
:PRSENDS                     Prints out messages sent to you 16
:RENAME                      renames a file 23
:SEND                        sends one-way message 14
:SHOUT                       sends message to all logged in users 17
:T            T^K            loads TECO 27
:TCTYP                       adjusts line to your console, 40, 48
:TCTYP HELP                  explains :TCTYP, 40
:TCTYP HALF                  for half-duplex consoles, 48
:TCTYP STANDARDIZE            standardizes altmode, 10
:TEACHE                      Starts EMACS tutorial 27
:TEACHM                      Starts MACSYMA Primer 7
:TECO         TECO^K         loads TECO 27
:TIME         TIME^K         gives current time 37
:USERS                       lists current users 14
:WHOIS        WHOIS^K        loads WHOIS 36

^C                           terminates messages 14
^D                           aborts type-in of a command, 13
^G                           stops execution of a command, 13
^H                           selects and re-enters job 12

                                   53
DDT Command Index


^S                           stops printout, 13, 13
^X                           defaults the first file name 25
^Y                           defaults second file name 25
^Z                           gets you to system command level 10, 11, 49
^_C                          initiate two-way communication 15
^_N                          terminates two way communication 15

















































                                   54
                                                           General Index


                                 Index

<login name>$$^F 23                    Filing 30
                                       FIND 24
:INPOP 49
:INPUSH 49                             Grim File Reaper 22, 31
                                       GT40 40
@S A Y T 51
                                       HACTRN 10
account 3                              half-duplex mode 48
account application 3                  Hazeltine 41
ADM3 41                                home directory 20
altmode 9                              HOST DEAD 48, 50
Altmode 10                             HOST NOT RESPONDING 48, 50
altmode 25                             host number 4
APROPOS(string); 7                     HP2640 40
assistance 14
                                       IMLAC 40
BACKUP TAPE 21                         INFO 39
BUG-CRTSTY 41                          INIT 8
                                       INQUIR 3, 8
check on your status 36                INQUIR entry 8
Concept 100 41                         interrupt message 11
Control characters 6                   ITS IS DOWN 48, 51
Control Data Corporation 713 41
control-backarrow 15, 41               JOB? 49
control-underscore 15                  jobs 11
control-uparrow 41
CRTSTY 41                              keyboard 41

Datamedia 41                           line length 40
DATAPOINT 40                           list a directory 31
DDT commands 10                        listing of a file 24
defaults 25                            login name 3
DEMO directory 38                      LUSER 50
DESCRIBE(command); 7
dialup line 3, 48, 51                  MACSYMA mail 18
Dialup protocol 5                      MAIL 14, 17
directories 20, 24, 30                 Manual 1
, 30                                   Messages 17
disowned job 13, 37                    MIT-MC 4
                                       monitor 10
echoing 48
editing commands 29                    NAME 36
EMACS 27, 27
error messages 49                      octal value of any character 42
escape 10                              OCTPUS 42
EXAMPLE(command); 7                    OMRON 40
EXECUPORT 40                           on-line PRIMER 6
                                       OPTIONS(); 7
FILE NOT FOUND message 38
FILE-RETRIEVE 22                       PADCR 40
Files 20                               padding 40


                                   55
General Index




PADLF 40
PADTAB 40
PAGESIZE 40
password 3
PEEK 36
Perkins Elmer FOX 41
Primer 1
PRIMER(); 6
printing double 48
PRMAIL 17
problems 48
PRSENDS 16

Query mode 15
question marks 18
Quit commands 13

REATTACH 51
rename a file 23
RMAIL 18

SEND(); 7
SENDS 16
SHARE directory 38
SHOUT 17
skipping characters 48
SYSTEM FULL? 49

TECO 27
TEKTRONIX 40
TELETYPE 40
Terminal Interface Processor 3
terminal types 40
TERMINET 40
TI keyboard 41
TIME 37
TIP 3, 7, 36, 40, 48, 50
TIP protocol 5
TISILENT 40

update file 18
USER-ACCOUNTS 3
USERSn directory 22, 24
USERSi directory 30, 31

VT100 48
VT52 40

WHOIS 36




                                   56
