There are no other files named exc3-20.doc in the archive.
EXEC.DOC -- Changes from V2(333) to V3(414)
COPYRIGHT (C) 1976,1977,1978 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
EXC3.DOC Page 2
EXEC.DOC -- Changes from V2(333) to V3(414)
The EXEC is the TOPS20 command processor. The EXEC also performs
certain system functions such as: listing directories, copying files,
giving program status, and controlling running jobs.
EXEC version 3 runs on TOPS20 Release 3.
The EXEC does not depend on any other software.
The EXEC is documented in the TOPS20 User's Guide.
2.0 EXTERNAL CHANGES
The EXEC was changed to use the COMND JSYS to parse its commands. The
QUEUE class commands were also incorporated into the EXEC. See
Appendix A for a description of the differences between Release 2 and
3.0 KNOWN BUGS AND DEFICIENCIES
As of 1-Jan-78, the EXEC possesses no known restrictions or
4.0 INSTALLATION INSTRUCTIONS
4.1 Files Needed to Run the EXEC
The EXEC consists of the file EXEC.EXE which resides on SYSTEM:.
EXC3.DOC Page 3
4.2 Instructions for Installing the EXEC
Mount the tape labeled Distribution Tape on MTA0: and type the
RESTORE <*>EXEC.EXE (TO) SYSTEM:EXEC.EXE
5.0 INTERNAL CHANGES
Refer to EXEC.TCO for detailed information about changes.
EXC3.DOC Page 4
Differences of R2 EXEC and R3 EXEC (with reasons for change)
1. ^E always echoes with the R3 EXEC. This makes EXEC more
standard, as the standard is for commands to echo.
2. ^ECREATE command never types "[NEW]" or "[OLD]" until the
command line is confirmed with carriage return. This allows
the line to be edited. Also, ^ECREATE always goes into
3. The "/" and "\" have been replaced with EXAMINE and DEPOSIT.
They may be abbreviated "E" and "D". This was done so that
the EXEC wouldn't have to wake up on the "/", but can now
wait for end of line like other commands. There was also a
problem with determining whether a number is a number or a
E 5 examines location 5
D 6 7 puts a 7 in location 6
D 5 4 3 puts 4000003 in location 5
D 5 4,,3 is the same.
4. ^EPRINT doesn't allow anything on the first line except
^EPRINT directory-name. That is, you now have to type
VERBOSE in subcommands. This makes the command more
5. Colons are always required after device names, including
devices under SMOUNT and DEFINE. Under DEFINE, the name
being defined must have a colon after it. The COMND JSYS
insists on colons in device names.
6. PRINT and SUBMIT don't replace memory with a program anymore.
Hence you can ^C out of a running program, do a PRINT or
SUBMIT, then CONTINUE the program.
7. No commands may contain internal carriage returns. In
particular, the entire LOGIN command must be on one line.
This standarizes the command language.
8. SUBMIT and PRINT take standard TOPS20 file specs now, and
allow escape for recognition, just like other commands.
9. For listing the queues, modifying them, and removing entries,
the INFORMATION (ABOUT) BATCH-REQUESTS, INFORMATION (ABOUT)
OUTPUT-REQUESTS, MODIFY, and CANCEL commands have been added.
10. There's no more SET ERROR-RETRY command or SET NO
ERROR-RETRY. Instead, type CTRL/H after getting an error.
The last partial command will come back.
EXC3.DOC Page 5
11. The COMPILE-class commands allow "?" for help now.
12. CTRL/F may be typed to complete any field now, not only
13. Comments starting with "!" end on next "!". Comments
starting with ";" encompass the rest of the line.
14. Hyphen, "-", may be typed as last character on line, to allow
command to be continued on new line. This is again the COMND
JSYS implementing this.
15. Two temporary commands exist for allow old PRINT and SUBMIT
commands to work. The commands are SET OLD-QUEUE-COMMANDS
and SET NEW-QUEUE-COMMANDS. This feature is only temporary
to give folks time to convert batch files over to conform to
the new style. Note that most files won't need any
conversion, as the new style is quite similar to the old. In
particular, if no switches are typed, printing or submitting
a file is the same in new as old. The default is SET
NEW-QUEUE-COMMANDS to encourage transformation. These
temporary commands will go away in a future release.
16. The CREF command may now optionally take a command line after
it, as advertised in the TOPS10 documentation. Just typing
CREF followed by carriage return continues to work just the
same as in R2. This modification solves the problem of users
typing CREF<cr> followed by typeahead, and having the
typeahead echo and be absorbed prematurely.
17. Escapes never go into commands, let alone echo as $ anymore.
Escape always either causes some sort of recognition, or
causes a ding. Specifically, this prevents escapes from
being passed to programs in command lines. This is a
COMND-JSYS imposed restriction.
18. TAKE commands may now be nested. For instance, you may put a
"TAKE" command in your LOGIN.CMD so as to take a standard
TAKE file, as well as doing special things in your own.
19. After the subcommand "list" to the "^ECREATE" command,
"VERBOSE" or "FAST" may be typed. The default is "FAST". In
old EXEC, "FAST" as also the default, but you couldn't type
20. In COMPILE-class commands, spaces are now always legal in
front of "+" signs and commas. In particular,
@COMP FOO ,BAR
is legal, and equivalent to
EXC3.DOC Page 6
Old EXEC used to say "?Null filespec in object field" in
21. Recognition always works on directly and user names now.
Under R2 EXEC, recognition didn't work under user name on
LOGIN, ATTACH, UNATTACH. COMND JSYS provides no way of
saying "don't allow recognition".
22. All dates and times, where typed in to commands, must contain
no spaces, except to seperate the date from the time. This
is in old EXEC, the following was acceptable:
$^ECEASE (TIMESHARING AT) 4 MAR 1977 2200
Under R3 EXEC, error would occur, so type it like this
$^ECEASE (TIMESHARING AT) 4-MAR-1977 2200
23. Directory name at start of printout of DIRECTORY command
always has the structure name included. This prevents
confusion of knowing which structure the directory is on that
you are looking at.
24. In the output of INFO TERMINAL command, the message which
used to say "!Terminal speed unknown (probably because this
is a PTY!)", has been changed to "!Terminal speed unknown!".
This was done because people on dial-up lines were seeing it,
and they weren't on PTY's. Also, when executing SET TERMINAL
SPEED command, EXEC no longer reads the speed back after
setting it. It assumes that if the MTOPR setting the speed
succeeds, then the speed got set. The message was changed
because apparently there are often times other than on PTY's
that the speed can't be read with MTOPR JSYS.
25. Another noticable change due to the removing of SET ERROR
RETRY command, is that output on INFORMATION COMMAND-LEVEL
now no longer has the line about SET ERROR RETRY.
26. Errors never happen in "the middle" of command typein
anymore. That is, the EXEC waits for carriage return or
escape before printing error message. This allows commands
to be edited without premature error occurring.
27. The HELP command is a standard TOPS20 command now. That is,
it doesn't run a program, standard recognition and "?" works,
etc. This allows for the HELP facility to be expanded, makes
it more convenient to use, and standardizes it, not to
mention that you can now ^C out of a program, get HELP on it,
and CONTINUE it. With old HELP, HELP was an entire program,
hence erasing the program you wanted to CONTINUE.
28. The TRANSL program has been replaced by a new EXEC command,
the TRANSLATE command, which takes directory name or PPN and
translates to the other.
EXC3.DOC Page 7
29. Messages-of-the-day are always printed now. In old EXEC,
they were not printed if login was on a PTY. That had the
problem that if first login after message was created was on
a PTY, message would never be seen.
30. Messages-of-the-day are printed after LOGIN.CMD and
COMAND.CMD are executed. This solves the problem of the
messages flying off the screen on VT50's before you get a
chance to type ^S. (Now, your TERMINAL PAGE 12 command gets
executed before the messages get typed.) To prevent the
problem of Message-of-the-day never being seen because
LOGIN.CMD or COMAND.CMD causes a program to be run that never
returns to EXEC, the EXEC checks for Message-of-the-day
before program starts running.
31. If the ^ECREATE command fails, the EXEC puts you back into
subcommand mode and lets you fix the incorrect subcommands.
This solves the problem we used to have, of operators having
to retype all the subcommands, just because one or two things
32. In all places in the EXEC where a time and date are accepted,
the "+" construction may be used. Two examples with meaning
@SUBMIT FOO/AFTER:+5:0:0 !Run batch job five hours from now
$^ECEASE +5:0:0 !Stop timesharing in 5 hours.
This standardizes time input, more than other solutions, such
as only allowing "+" construction on /AFTER in SUBMIT
33. The new SUBMIT and PRINT don't read SWITCH.INI anymore.
Please see SET DEFAULT command description further in this
34. The format of the ATTACH and UNATTACH commands have been
changed to allow the password to be input with echoing off.
The new format is:
@ATTACH/UNATTACH (USER) name (JOB #) n
That is, you no longer type the password on the initial line.
Instead, the system prompts you for it if it is needed on the
35. The CONNECT and ACCESS commands will prompt you for a
password if you don't give one (i.e., you hit RETURN
instead), but one is required.
36. To solve echoing problems, the SET DIRECTORY PASSWORD command
inputs its password on separate lines, one for each password.
The new format is:
EXC3.DOC Page 8
@SET DIRECTORY PASSWORD (FOR WHICH DIRECTORY) str:[name]
Old password: word
New password: word
Retype new password: word
Notice that you type RETURN after the directory name and the
EXEC prompts you for each of the passwords.
37. To solve password echoing problems, the SET DIRECTORY
commands now input the password on a separate line from the
rest of the command. The new format is:
@SET DIRECTORY parameter (OF WHICH DIRECTORY) str:[name] (TO) something
That is, you press RETURN before and after typing in the
38. The output of INFORMATION (ABOUT) SYSTEM-STATUS now contains
a line which says one of:
Account validation is enabled
Account validation is disabled
When account validation is enabled, only system-recognized
valid accounts will be accepted for the LOGIN command, the
SET ACCOUNT command, and for the ;A attribute of file
The new PRINT command, available with Release 3, is explained herein.
Its main differences from the old PRINT command are:
1. It is only used to print files. Another command, INFORMATION
(ABOUT) OUTPUT-REQUESTS, will be provided to list the queues.
2. The new PRINT command is more standard, in that "?" may be
typed for help, and escape may be typed for recognition.
Also, any TOPS20 file specifications may be typed.
3. The command doesn't effect memory, so you may ^C out of a
program, print something, and then continue your program.
@PRINT (FILES) ...filespecs and switches...
Filespecs are any standard TOPS20 filespecs, which are the names of
the files you want printed.
Switches are one of two types, "job" switches and "file" switches.
Unless you have some special application, you needn't understand about
switches. Just give the command
EXC3.DOC Page 9
to print particular files.
Job switches affect the entire printing job, which encompasses all
files listed under one PRINT command. Job switches may appear
anywhere on the command line after the "PRINT (FILES)". The job
Followed by a date-and-time, specifies the earliest date-and-time
at which the PRINT request should get printed. Without this
switch, the request gets processed ASAP.
Followed by a forms type, specifies the type of paper to use for
the request. The types are words of six or less characters in
length. For instance, "/FORMS:NARROW" or "/FORMS:YELLOW" are
Followed by a six or fewer alphanumeric character name for the
print request. Normally, the job name is the first six
characters of the name of the first file in the request, so you'd
only use this switch if you really don't like that name.
Followed by a decimal number, specifies how many pages of
lineprinter paper to allow. Omitting this switch is usually
alright, however, as a limit will then be computed from the size
of the file(s), which tends to be a limit large enough to include
the entire file(s).
Forces the output to go to a printer capable of printing upper
and lowercase characters.
Followed by up to twelve characters, specifies a special note to
appear on the header page of the output. The note must be in
quotes if it contains spaces. Examples (two of them):
Followed by a positive integer from 0-63 decimal, specifies
urgency of the print request. A job with /PRIORITY:12 will get
EXC3.DOC Page 10
printed before one with /PRIORITY:10. /PRIORITY:10 is assumed if
you don't specify a switch.
Followed by a decimal sequence number, specifies an
identification number for the request. This switch generally
isn't needed, as the system assigns a unique sequence number to
Guarantees that the job only gets printed on a lineprinter which
only prints uppercase characters.
Only useful for an enabled wheel or operator. Allows a user name
to be specified as the owner of the request. Thus, an operator
saying PRINT [JONESEZ]FOO.BAR /USER:JONESEZ is just like user
JONESEZ having said PRINT FOO.BAR. Notice that the /USER
argument has nothing to do with whose directory the files being
printed are read from.
File switches are a seperate list of switches which control specific
files being printed. File switches have different effects depending
on whether they are "global" or "local". A file switch typed before
any files have been specified is considered global, which means it
will effect all files listed in the command. Any other file switches
typed in the PRINT command, that is, file switches typed after a file
specification, only effect files referred to by that file
specification. Consider the following example:
@PRINT /COPIES:2 A.*,FOO.MAC/COPIES:7 FREEBIES.SLEAZY
In the above example, /COPIES:2 precedes any file specifications, so
it causes two copies of every file to get printed. However, the
/COPIES:7 causes file FOO.MAC to get printed seven times. So all
files named A.* will get printed twice, and file FREEBIS.SLEAZY will
also get printed twice. In that example, the /COPIES:2 is a global
file switch, and the /COPIES:7 is local to file FOO.MAC.
Here's the list of file switches:
Followed by a decimal number, designates that the file should be
printed starting on the specified page number rather than at the
Followed by decimal number of copies causes that many copies of
the pertinent files to be printed.
EXC3.DOC Page 11
Specifies that the file is to be deleted after being printed.
This is assumed for files with extension .LST. To prevent a .LST
file from being deleted when you print it, use the /PRESERVE
Followed by a file type, specifies what type of file the file is.
The types are: ASCII, COBOL, ELEVEN, and FORTRAN.
Causes two header pages containing the beginning of the file's
name to appear before the file.
Prevents the header pages from appearing. This is useful in
conjunction with /COPIES to save paper, by not having two pages
in front of every copy.
Prevents the file from being deleted after being printed. This
is the default for files other than .LST files. Use the /DELETE
switch if you want a file deleted after being printed.
Followed by word designating what style to print the file in.
SUPRESS causes all control characters to be omitted when printing
the file, except for cr and lf. OCTAL causes the file to be
output as a list of octal intergers. ASCII causes the file to go
to the printer "as is". ARROW causes all control characters
except ASCII codes 11-15 and 20-24 to be printed as uparrow
followed by the appropriate non-control character. (11-15 and
20-24 get printed literally). ARROW is the default if this
switch is not given.
Followed by a report code of up to twelve characters causes COBOL
files to be scanned and only reports with the specified name to
be printed. Put the report code in quotes if it contains spaces.
Followed by SINGLE, DOUBLE or TRIPLE, specifies how you want the
output spaced, just like a typewriter.
EXC3.DOC Page 12
The SUBMIT command submits files to be run as batch jobs. The file
submitted is called the control file, and contains, amongst other
things, the actual typing you would do, if you were doing the job as a
regular interactive user. After the batch job is run, a typescript of
the batch job is stored in a log file. Most usually, the file type of
batch control files is .CTL, and the file type of the resultant log
file is .LOG.
Also, unless specified with /LOGNAME switch, the first name of the log
file will be the same as the control file.
The general format of the SUBMIT command is:
@SUBMIT (BATCH JOB) /sw/sw/sw... file /sw/sw/sw file ...
Note that switches may appear intermingled with files on the line.
The "file"s on that line are the names of the control files being
Switches for SUBMIT command:
Followed by date and time designates earliest time at which job
may be run.
Followed by a decimal line number designating which line of the
control file to start processing on. Without this switch,
processing starts at the beginning of the file. See /TAG switch
also, which allows for staring at symbolic entry points.
Followed by decimal maximum number of cards batch job is allowed
Followed by a positive decimal number, which becomes the
dependency count for the batch request. Batch requests don't get
processed until their dependency count is 0. If you submit a
request with a certain dependency count, you can then later do
MODIFY commands to modify the dependency count. When it has been
modified such that it becomes 0, the batch job will run. In this
manner, batch jobs which depend on certain other events happening
can be controlled from running prematurely, by setting their
dependency counts to positive values, and only modifying them to
0 after the critical events have taken place.
Followed by decimal number designating maximum number of feet of
paper tape job is allowed to punch.
On systems without paper tape punches, this switch is irrelevant.
EXC3.DOC Page 13
Followed by six or less alphanumeric characters of job name for
the batch request. Normally, the job name is the first six
characters of the control file name, so only use this switch if
for some reason you don't like that name.
Followed by special name for log file. Normally the log file has
the type .LOG and name of the control file. Use this switch if
you don't like that name.
The default file type for the name following /LOGNAME: is .LOG.
Followed by NOLOG, ERRORS or ALWAYS. The default when the switch
is omitted is ALWAYS, which causes the log file to always get
printed. NOLOG causes the log file to never be printed. ERRORS
causes the log file to be printed only if errors occured during
the batch job.
Followed by decimal number of pages specifies that batch job is
not allowed to print more than this number of pages of
Followed by non-negative positive number, specifies priority for
this batch request. If this switch is not given, the default
priority value of 10 is assumed. Requests are processed from
higher priority to lower. Hence you might use.
11 to cause your request to get granted before others that are
also in the queue.
Followed by either YES or NO, specifies whether job should get
restarted or not after the system crashes and comes back up.
Without this switch, the answer assumed is NO.
Followed by decimal sequence number for request. Every batch
request in the queue is identified by both a job name and a
sequence number. This switch generally isn't needed, as the
system assigns a unique sequence number by default.
EXC3.DOC Page 14
Followed by a six or fewer alphanumeric character tag name at
WHICH TO start processing within the control file. For instance,
if within the file, a line started with BOO::, you could cause
the commands preceding that point in the file to be skipped, by
issuing /TAG:BOO in your SUBMIT command.
Followed by a time limit in the form hh:mm:ss specifies how much
CPU time the batch job is allowed to use before being terminated.
Without this switch, 5 minutes is assumed.
Followed by a decimal number of seconds, specifies how much
plotter time the job is allowed to use.
Unless your system has a plotter, this switch is irrelevant.
Followed by 0 or 1, specifies uniqueness value for the batch job.
0 means other batch jobs submitted by you are allowed to run
concurrently with the one you're submitting. 1 means the one
you're submitting must run uniquely, that is, with no other batch
jobs that were also submitted by you. You would want to specify
/UNIQUE:1 if you were submitting two batch jobs which both wrote
into the same file, if you wanted to make sure they didn't both
write the file at the same time.
Followed by a user name, specifies an alternate owner of the
batch request than the actually creating it. This switch is only
legal for ENABLEd WHEELs and OPERATORs. Thus an operator saying
SUBMIT [SMITH]FOO/USER:SMITH is just as though user SMITH logged
in and said SUBMIT FOO.
Use the modify command to change the value of one or more switches
previously specified in a SUBMIT or PRINT command.
The format of the command is:
@MODIFY (REQUEST TYPE) type (JOBNAME) name /sw/sw/sw
Type is one of: PLOT, PRINT, PUNCH, BATCH, depending on what type of
request is being modified.
Name is the jobname of the request. When you list the queues with
INFORMATION (ABOUT) BATCH-REQUESTs or INFORMATION (ABOUT)
OUTPUT-REQUESTs, the jobname appearing in the JOB column is the
one you should specify for the JOBNAME field in the MODIFY
EXC3.DOC Page 15
/Sw The switches are typed in exactly the same format as you would
have typed them in the original command used to create the
request. There are some exceptions...
1) The switches under MODIFY are really broken into two lists,
depending on whether you are modifying a batch job or not.
Type "?" after the request type to see what the lists are.
2) Not all switches may be modified. Only these may, and note
difference in meanings of /DEPENDENCY-COUNT, /USER and
Under MODIFY command, this switch may take a + or - in front
of the number. The + or - means that the number being
specified isn't a new dependency count, but rather a change.
For instance /DEP:+2 causes the old dependency count,
whatever it was, to be increased by 2. The other form,
without the sign, like /DEP:4 still works, and will set the
dependency count to 4.
You can't really modify the sequence number. What this
switch does in the MODIFY command is specify which of several
jobs should be modified, in case several have the same name.
In the more common case where you omit this switch, if
several jobs all have the same name as the jobname you
specified, they will all be modified.
This switch is only allowable by ENABLEd WHEELs and
OPERATORs. Such a person by specifying /USER:username may
MODIFY "user"'s request.
Suppose a PRINT request has been made, but you forgot that it is
supposed to come out on narrow paper. You can fix the problem
(assuming it hasn't started printing yet!), with this command
(assuming the jobname is FOO):
@MODIFY (REQUEST TYPE) PRINT (JOBNAME) FOO /FORMS:NARROW
Use the CANCEL command to remove requests from the queue if you've
decided you don't really want those requests processed.
EXC3.DOC Page 16
@CANCEL (REQUEST TYPE) type (JOB) name
Type the type of request being canceled, usually either BATCH or
Name Jobname as listed in the queues on INFORMATION (ABOUT)
OUTPUT-REQUESTS or INFORMATION (ABOUT) BATCH-REQUESTS. Instead
of a jobname, you may type /SEQUENCE: followed by the sequence
number of the job you want to cancel, also as shown by
INFORMATION (ABOUT) .... The jobname may be entered as * to mean
cancel all jobs in the queue.
ENABLEd WHEELs and OPERATORs may also specify a /USER:user switch
to cancel requests originally created by "user".
INFORMATION (ABOUT) BATCH-REQUESTS command
INFORMATION (ABOUT) OUTPUT-REQUESTS
Use these commands to see what jobs are in the queue, and what special
parameters are associated with them.
Both listings include columns labelled Job, Seq, and User. Job is the
jobname of the request. Seq is the sequence number of the request.
These two parameters are the ones you would use in a MODIFY or CANCEL
command to refer to the jobs. The user name listed under the User
column shows the user name of the user who originally created the
The listing of the OUTPUT-REQUESTs contains two other columns, Queue
and Limit. The Queue column shows what output queue the request is
in. PRINT requests will usually show up as LPT. Plotter requests as
PLT, paper tape as PTP, card punch as CDP. The Limit column shows how
many pages, cards, seconds, or feet allowed in the request.
Output requests currently being processed when the queues are listed
will have the phrase "Being output on yyy:" where "yyy:" is the
particular device being used for the request.
Batch jobs which are currently running will say "Now running" at the
righthand end of the line.
A request waiting for a particular structure to be mounted will say
"Waiting for structure zzz:" to be mounted.
Certain switches, if specified in the PRINT, SUBMIT, or MODIFY
commands, will show up in the queue listing. They will be listed
exactly as they could have been originally typed. For output
requests, the switches get listed on a seperate line.
The switches only get listed if their value is not the default.
The switches that get listed are:
EXC3.DOC Page 17
Three switches may be typed after the command:
@INFORMATION (ABOUT) OUTPUT-REQUESTS
The switches are:
Followed by a user whose entries you want to list. The name
defaults to your name. Unless this switch is issued, entries for
all users are listed.
Causes all parameters in the above list to be shown. Without
/ALL, only /AFTER, /FORMS, /DEPENDENCY-COUNT, /PRIORITY, and
/TIME are listed.
Makes the list complete much faster, as no switches are shown.
Also, the column headings are omitted.
These control whether or not you see system-wide messages on your
terminal. The default setting is to RECEIVE such messages. Messages
you won't see anymore if you issue REFUSE SYSTEM-MESSAGES are ones
[CAUSTION--DISK SPACE LOW]
[CAUTION--SWAPPING SPACE LOW]
[SYSTEM GOING DOWN IN 1 MINUTE!!]
[DELETED FILES WILL BE EXPUNGED IN 30 SECONDS]
[SYSTEM EXPUNGE COMPLETED]
A new line has been added to the output of INFORMATION (ABOUT)
TERMINAL. The new line shows either RECEIVE SYSTEM-MESSAGES or REFUSE
New subcommands to DIRECTORY-class commands
These subcommands accept a decimal number, and cause only files
EXC3.DOC Page 18
whose sizes are smaller or larger than specified size to be
listed. Using both subcommands allows only files in a certain
range to be listed. For instance, to list all your files whose
size is exactly 3 pages, you could do:
@@BEFORE (DATE AND TIME)
@@SINCE (DATE AND TIME)
These two allow files written before or after specified date and
time to be listed. When used in conjunction, they allow files
written within a certain time period to be listed. For instance,
to list only your files written in January of this year:
This new command waits for confirmation and then prompts you for
remarks, which it continues to accept until you type CTR/Z. It
is useful when you are TALKing to another user, and don't want
all your messages to be interpreted as commands. Example:
LINK FROM USER OSMAN, TTY4
Type remark. End with CTRL/Z
HI DAN. THIS IS A DEMONSTRATION OF THE REMARK COMMAND.
NOTICE HOW THE EXEC LETS ME TYPE MESSAGES TO YOU WITHOUT
REQUIRING ME TO TYPE "!" IN FRONT OF EVERY LINE.
NOW I WILL TYPE CTRL/Z TO END THIS REMARK.^Z
Subcommands to TAKE command
Two subcommands now exist to the TAKE command:
@@DISALLOW (ERRORS DURING "TAKE" FILE)
This subcommand is the default condition, and causes a TAKE
file to be aborted if an error occurs while processing it.
@ALLOW (ERRORS DURING "TAKE" FILE)
This allows TAKE files to continue despite errors. The
standard error message just gets put in the output stream,
and the TAKE continues.
These subcommands prevail for as long as you are logged in. Hence, if
you give the ALLOW subcommand, ALLOW will be assumed for all
EXC3.DOC Page 19
subsequent TAKE commands until a DISALLOW subcommand is given.
SET PAGE-ACCESS (OF PAGES) range (ACCESS) access-type
This command allows you to control the accessibility of memory pages
of your program.
Range This is a range or set of page numbers of pages whose
accessibility is to be modified. Seperate ranges with commas.
Use a colon to seperate beginning and end of range. For example,
to refer to pages 1 and 2 through 5, you'd type:
@SET PAGE-ACCESS 1,2:5 ...
The numbers are interpreted as octal integers, and may not be
negative. When the form n:m is used, n must be less than or
equal to m.
The accessibilities possible in this field are:
READ Allow page to be read.
WRITE Allow page to be written.
Allow page to be copied to another area if program attempts
to write into it. Then the write-request is allowed to the
EXECUTE Allows machine instructions in the
page of memory to be executed.
Causes the page to be erased from memory entirely.
NO The word NO may precede any of the accessibilities except
NONEXISTENT. For instance:
@SET PAGE-ACCESS 5 NO WRITE NO COPY-ON-WRITE
That command prevents page 5 from being modified by the
The SET PAGE-ACCESS command only modifies page accessibility, rather
than completely changing it. For instance, in the above example, even
though you didn't say READ, the page is still readable if it was
before the command was given. Also, in contradictory cases, the last
on the line prevails. Hence:
@SET PAGE-ACCESS 6:10 WRITE NO WRITE
is equivalent to:
@SET PAGE-ACCESS 6:10 NO WRITE
EXC3.DOC Page 20
This command works exactly like ^ECREATE, except that you needn't have
special privileges to use it, although depending on your privileges,
you may or may not be able to do too much with it. It is intended for
creating and modifying subdirectories.
INFORMATION (ABOUT) DIRECTORY name
This is exactly the same as <Eprint command, except you don't have to
be privileged to issue the command. Note, however, that depending on
your privileges, the monitor may curtail your use of this command. It
is intended for use in bookkeeping subdirectories.
New subcommands under ^ECREATE, and enhancement of ^EPRINT
Under ^ECREATE, to specify how many subdirectories are allowed under a
directory, give the following subcommand:
$SUBDIRECTORY MAXIMUM (ALLOWED) n
To allow subdirecotries under a directory to be put into user group n,
give this subcommand:
$SUBDIRECTORY USER (GROUP ALLOWED) n
To disallow subdirectories for a directory to be put into a particular
user group, do this:
$NOT SUBDIRECOTRY USER (GROUP ALLOWED) n
^EPRINT will now show the values of the above subcommands.
INFORMATION (ABOUT) NETWORK-STATUS
This command gives the status of any networks on the system.
Currently it only gives status for the ARPANET. If the system does
not support any networks the message "No information available" is
If the system supports the ARPANET two to four lines are typed as
described below. The first line typed is the status of the ARPANET
service and it is either "ARPANET service in enabled" or "ARPANET
service is disabled". The second line is the IMP status and is either
"The IMP interface is up", "The IMP interface is down" or "The IMP
interface is initializing". The third line gives the date and time of
the last time the monitor and the IMP preformed their synchronization
and recognized each other as being up. This line looks like "Most
recent IMP ready line on-transition: dd-Mmm-yy hh:mm:ss". If this
process has not occured the line is ommitted. The last line gives the
date and time of the last time that the IMP and monitor lost
synchronization. No more data can be transmitted until the
synchronization and reognition process is preformed again. This line
looks like "Most recent IMP ready line off-transition: dd-Mmm-yy
hh:mm:ss". If this event has not occured the line is ommitted.
INFORMATION (ABOUT) MAIL (FOR USER) name
EXC3.DOC Page 21
This command gives status of the users MAIL.TXT file and types one of
the following messages:
New mail exist
No new mail exist
No such USER
The user name may be ommited and defaults to the logged in user name.
The command may be given. It should also be noted that if the user's
directory protection and the protection of the MAIL.TXT file must be
such that everyone has list access to the MAIL.TXT file for the
command to work without being logged in.
SET NO MAIL-WATCH
Since the ARPANET mail system does not announce new mail a method of
announcing new mail was needed. The "SET MAIL-WATCH" commands causes
the EXEC to check each time before inputing a command to see if it has
been five minutes since the mail file was checked for new mail. If it
has been over five minutes since the mail file was checked, it is
checked and if there is new mail "[you have new mail]" is typed on the
user's terminal. The "SET NO MAIL-WATCH" command is used to turn off
this checking and is the default mode.
^E SET ARPANET ON
^E SET ARPANET OFF
These commands turn the ARPANET service on and off. "ON" is the
default for the "^E SET ARPANET" command.
ADDITION OF ARPANET-terminals
The "^E SET LOGINS-ALLOWED (ON)" and the "^ESET NO LOGINS-ALLOWED
(ON)" commands have had an additional terminal type
"ARPANET-terminal": added as a possible argument.
In addition the "INFORMATION (ABOUT) SYSTEM-STATUS" command now types
an additional line, either "ARPANET-terminal logins allowed" or
"ARPANET-TERMINAL logins not allowed".
SET DEFAULT (FOR) ...
This command allows commonly used arguments of command to be declared
as a default, hence relieving the user of having to type those
arguments every time the command is issued.
For RELEASE 3, the only commands for which defaulting is available are
SUBMIT and PRINT. Hence in Release 3, the only valid uses of the SET
DEFAULT command are the following:
@SET DEFAULT (FOR) SUBMIT /sw/sw/sw...
@SET DEFAULT (FOR) PRINT /sw/sw/sw...
EXC3.DOC Page 22
To avoid having to give the SET DEFAULT SUBMIT, the valid switches are
all the ones in the switch lists for the PRINT and SUBMIT commands.
As an example of using these commands, suppose you usually want your
batch jobs to be allowed one hour of run time. To make one hour be
the default, put the following in your COMMAND.CMD file:
@SET DEFAULT SUBMIT /TIME:1:0:0
As another example, if you always want your line printer listings to
be printed on a printer capable of printing lowercase letters, put the
following command into COMAND.CMD:
@SET DEFUALT PRINT /LOWERCASE
As a last example, to prevent your .LOG files from being printed
automatically when your batch jobs are run unless the batch job gets a
fatal error, the following command in COMAND.CMD will achieve the
desired default setting:
@SET DEFAULT SUBMIT /OUTPUT:ERROR
Switches may be put more than one to a line like this:
@SET DEFAULT SUBMIT /AFTER:MAY 4, 1977 /OUTPUT:NOLOG
(That particular example makes the default be for batch jobs not be
run until after May 4, and for .LOG files never to be printed.) Note
that defaults are accumulative. Hence giving many defaults on one
line is equivalent to giving seperate commands for each switch.
as though you typed them immediately after the command to which they
apply. For instance, suppose you usually want your .LOG files not
printed, so you've said (in COMAND.CMD):
@SET DEFAULT SUBMIT /OUTPUT:NOLOG
If you now type a SUBMIT command such as:
it's exactly as though you typed
@SUBMIT /OUTPUT:NOLOG FOO
This allows for defaults to be overrideen. For instance, again
assuming that /OUTPUT:NOLOG has been set up as the default, you can
force the .LOG file for a particular job, FOO in the following
example, to be printed. Merely type:
@SUBMIT /OUTPUT:ALWAYS FOO
Since the defaults get applied at the beginning of the line, this is
EXC3.DOC Page 23
@SUBMIT /OUTPUT:NOLOG/OUTPUT:ALWAYS FOO
and the most recent switch seen by the EXEC applies.
SET NO DEFAULT (FOR) command
This command allows clearing any previously set defaults for a
command. For Release 3, the only versions of this command implemented
SET NO DEFAULT SUBMIT
SET NO DEFAULT PRINT
SET DIRECTORY ACCOUNT-DEFAULT (OF WHICH DIRECTORY) dir (TO) account
This command allows directories to be given default accounts.
If you log in under a directory that has a default account, you
needn't type an account at all in your LOGIN line.
Here's an example of a user (ESTEY in this example) setting up her
directory with a default account of STRAWBERRY:
@SET DIR ACC PS:[ESTEY] STRAWBERRY
After issuing the above command, user ESTEY may log in without
specifying an account, in which case STRAWBERRY will be assumed.
Example of user taking advantage of default account:
JOB 4 ...
Note that only the user name and password were typed:
If ESCAPE is typed in lieu of an account, the default is displayed by
the system (just as defaults as usually displayed in response to
CONTINUE (PROGRAM) STAY (AT COMMAND LEVEL WHILE PROGRAM RUNS)
The CONTINUE command takes one of two keywords after it, so that every
CONTINUE command is now regarded as either
@CONTINUE (PROGRAM) NORMALLY
@CONTINUE (PROGRAM) STAY (AT COMMAND LEVEL WHILE PROGRAM RUNS)
The default is "CONTINUE NORMALLY" which is what is assumed when you
EXC3.DOC Page 24
The other command, "CONTINUE STAY", is exactly like "CONTINUE
NORMALLY", except that the EXEC doesn't wait while the program
continues, but instead the EXEC goes back to command level, allowing
you to issue EXEC commands while your program runs.
Two useful applications of CONTINUE STAY are
1) Issuing INFORMATION commands while your program is running to
monitor its progress. For instance, if the program is
writing a file, then CONTINUE STAY followed by intermittent
INFORMATION (ABOUT) FILE-STATUS commands will show how much
of the file has been written.
2) Running more than one program simultaneously. For instance,
after doing CONTINUE STAY, you can then do a PUSH command,
and then RUN another program. Now you've got two programs
running at once.
Here's an example of a user employing CONTINUE STAY to allow himself
to EDIT a file while simultaneously COMPILing a program. In this
particular example, the user is assembling a MACRO program called
NEWTV, and while it assembles, he creates a new file called FOO.BAR.
@COMPILE (FROM) NEWTV/COMPILE
@CONTINUE (PROGRAM) STAY (AT COMMAND LEVEL WHILE PROGRAM RUNS)
@PUSH (COMMAND LEVEL)
TOPS-20 COMMAND PROCESSOR 3(363)
00100 HERE IS A FILE
00200 THAT I AM CREATING
00300 WHILE THE COMPILATION PROGRESSES
@POP (COMMAND LEVEL)
Pitfalls to watch out for with the CONTINUE STAY command:
1) If you CONTINUE STAY a program, and then PUSH to another EXEC
level, and the CONTINUE STAY'd program tries to input a
command from the terminal, your job is now in an
indeterminate state in that you don't know whether you EXEC
will receive typed characters, or the program will receive
them, since both programs are now competing for terminal
input. If you get into this state, try typing ^C a few times
and then issuing a POP command. Once you get the EXEC to
read the POP command, you will be back at the higher level
EXEC, which is guaranteed to receive input instead of the
EXC3.DOC Page 25
CONTINUE STAY'd program, since it's a higher level process.
(The PUSH'd EXEC was at the same level as the CONTINUE STAY'd
program, and hence the confusion as to who gets the terminal
2) If a CONTINUE STAY'd program types out information on the
terminal, it will mix with whatever else is being typed on
the terminal, i.e. from the command or program being
executed simultaneously with the CONTINUE STAY'd program.
This is not particularly bad, as long as you are aware of it
and don't get baffled by the various mixtures that may occur
and be hard to read.
3) A program running due to CONTINUE STAY does not get stopped
when you type ^C. To stop the program, issue a command which
erases its memory, such as RUN, RESET or LOGOUT. Another way
is to say CONTINUE (without STAY), and then type ^C.
Remember that if you did a subsequent PUSH after the CONTINUE
STAY, you'll have to POP back before doing the CONTINUE.
(LOGOUT will work without POPing, however!)
4) Usually, giving a CONNECT command to connect to another
directory will get you into trouble if a program is CONTINUE
STAY'd. This is because the program isn't prepared for its
default directory to suddenly change.
[End of EXC3.DOC]