SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
STANFORD ARTIFICIAL INTELLIGENCE LABORATORY - SEPTEMBER 25, 1970
OPERATING NOTE NUMBER 54.2
STANFORD A-I PROJECT MONITOR MANUAL
CHAPTER I - CONSOLE COMMANDS
by Andy Moorer
This is the first chapter of the STANFORD A-I MONITOR MANUAL.
This covers basically console commands. Part A is a description of
how to get on the machine for people who have never seen our system
or one like it before. There are inaccuracies, little white lies, in
this part, but it is purely for reasons of simplicity. Part B has
the complete explainations and is meant to be all-inclusive in every
respect.
On format of this manual, the section word system was adopted to
eliminate references to page numbers. In this manner, the manual may
grow or shrink without having to change all these references.
Examples of commands are often given in double-quotes ("). You never
(hardly ever) type double-quotes in a command to the system, so
please ignore their appearance in the manual. They are for
punctuation purposes only.
In this manual, the term K is used to mean 1024 (decimal) words,
so when one says a program is 10K long, that means it is 10240
(decimal) words long, not ten thousand words long. All numbers are
octal except where noted and where it is obvious.
If you are not a beginner, you may skip directly to part B. If
you wish to use this manual for reference, you may want just the
command summary, part I.E.1, the COMPILE switch index, part
I.B.4.f.6, or any of the various other summaries.
You can get the latest corrections to this chapter by using the
UPDATE program. The entire manual is on a file called
"S54.ON[S,DOC]".
This work was supported by the Advanced Research Projects Agency of
the Department of Defence under Contract SD-183.
1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
KEYWORD INDEX TO CHAPTER I
I.A BEGINNER'S GUIDE TO CONSOLE COMMANDS
I.A.1 GETTING ON AND OFF THE MACHINE
Definition of logging in.
Turning your teletype on and off.
The login ritual.
Definition of project-programmer names.
Logging out.
Example of loging in and out
i.A.2 ELEMENTARY CONSOLE COMMANDS
I.A.2.a OVERVIEW OF PROGRAMMING
I.A.2.b DEFINITION OF FILE.
I.A.2.c CREATING, EDITING, AND MANIPULATING FILES
DIRECTORY command, prints out your files
DELETE command to eliminate files.
CREATE command to generate files.
Notes on the text editor.
Examples of the usage of the above commands.
I.A.2.d TRANSLATION, LOADING, AND DEBUGGING OF PROGRAMS
TRY command
Translator errors.
Loading and running your program.
I.A.2.e RE-EDITING AND LISTING OF PROGRAM FILE
EDIT command.
TYPE command.
LIST command.
I.A.2.f A NOTE ON THE DIFFERENCE BETWEEN MONITOR
COMMANDS AND USER COMMANDS.
I.A.3 SPECIAL TELETYPE CHARACTERS
I.A.3.a STOPPING YOUR PROGRAM.
I.A.3.b LINE EDITING - RUBOUT KEY.
I.A.3.c LINE EDITING - CONTROL-U
I.A.4 A TYPICAL SHORT SESSION WITH THE COMPUTER
I.B REFERENCE MANUAL ON CONSOLE COMMANDS
I.B.1 DEFINITION OF FILE DESCRIPTOR
I.B.2 COMMANDS TO LOG IN AND LOG OUT
LOGIN command.
KJOB command.
I.B.3 COMMANDS TO MANIPULATE FILES
DIRECTORY command
ZERO command.
DELETE command.
RENAME command.
LIST command.
TYPE command.
CREATE command.
EDIT command.
COPY command.
2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
TRANSFER command.
SEND command.
I.B.4 COMMANDS TO EFFECT TRANSLATION AND PROGRAM LOADING
I.B.4.a COMPILE command.
I.B.4.b DEBUG command.
I.B.4.c TRY command.
I.B.4.d EXECUTE command.
I.B.4.e LOAD command.
I.B.4.f COMPILE OPTIONS AND FEATURES
I.B.4.f.1 GENERATION OF .REL FILES
Standard file name extensions.
Overriding file name extension.
Non-standard processors.
Creation date checking.
Compiling multiple files as one.
Naming the .REL file.
Using brockets (<>) for multiple files
I.B.4.f.2 PRODUCING SYMBOLIC LISTINGS
/LIST and /NOLIST specifications.
/CREF specification.
I.B.4.f.3 COMMAND FILES
Definition and usage.
Recursive properties.
Semi-colon feature.
I.B.4.f.4 GENERATION OF CORE IMAGES
The Loader.
Dump files.
Library searches.
Loader switches.
I.B.4.f.5 NONSTANDARD PROCESSOR FEATURES
Suppression of loading.
.REL file existance.
I.B.4.f.6 INDEX OF COMPILE SWITCHES
i.b.4.f.7 INTERNAL WORKINGS
I.B.5 COMMANDS TO MANIPULATE CORE IMAGES
SAVE command.
RUN command.
GET command.
R command.
I.B.6 COMMANDS TO START A PROGRAM
START command.
DDT command.
REENTER command.
CONTINUE command.
CSTART command.
CCONTINUE command.
I.B.7 COMMANDS TO GET INFORMATION FROM THE SYSTEM
SYSTAT command
COREX command.
3
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
DAYTIME command
TIME command.
PJOB command.
PPPN command.
RESOURCES command.
HELP command.
I.B.8 COMMANDS TO ASSIGN AND RELEASE RESOURCES
I.B.8.a DEFINITION OF ASSIGNING A DEVICE.
I.B.8.b DEFINITION OF LOGICAL DEVICE NAME.
I.B.8.c ASSIGN COMMAND.
List of physical device names.
Usage of logical names.
I.B.8.d DEASSIGN COMMAND
I.B.8.e FINISH COMMAND
I.B.8.f REASSIGN COMMAND
I.B.8.g SLEVEL COMMAND
I.B.8.h CORE COMMAND
I.B.9 COMMANDS TO MANIPULATE YOUR TELETYPE ASSIGNMENT.
TALK command.
DETACH command.
ATTACH command.
I.B.10 SPECIAL TELETYPE CHARACTERS
Control-C.
Rubout key.
Control-U.
Control-O.
Control-Z.
Control-P.
Control-F.
Control-B.
I.B.11 COMMANDS TO DUMP AND RESTORE THE DISK
DUMP command.
RESTORE command.
BACKSPACE command.
ADVANCE command.
REWIND command.
DAMMIT option.
PICKUP option.
IDUMP command.
TLIST command.
EOT command.
I.C USAGE OF CONSOLES OTHER THAN THE MODEL 33 TELETYPE
I.C.1 MODEL 35 TELETYPE
I.C.2 MODEL 37 TELETYPE
I.C.3 III DISPLAY CONSOLES
I.C.4 ARDS STORAGE-TUBE DISPLAY
I.C.5 STANFORD CHARACTER SET
I.D HANDLING OF OTHER DEVICES
I.D.1 CARE AND FEEDING OF THE LINE PRINTER
4
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.D.2 MOUNTING DECTAPES
I.D.3 MOUNTING MAGNETIC TAPES
I.E SUMMARIES
I.E.1 ALPHABETICAL COMMAND INDEX
I.E.2 LOADER SWITCHES
I.E.3 ERROR MESSAGE INDEX
5
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.A BEGINNER'S GUIDE TO CONSOLE COMMANDS
I.A.1 GETTING ON AND OFF THE MACHINE
The first step in using the computer is learning how to get on
and off the machine. For beginners, I suggest you direct your
efforts toward a teletype, rather than a display console, for reasons
of simplicity.
The process of getting on the machine is called "logging in".
Once you have a job in mind that you wish the machine to do, you go
to a teletype and be seated. There is a grey plastic knob on the
lower right-hand side of the teletype that is the power switch. It
has three positions: on, off, and local, in that order turning
clockwise. In the local position, the teletype is not talking to the
computer, but is little more than a typewriter! To talk to the
computer, turn the switch to the "on" position. When it is in this
position, typing "carriage-return" will cause the computer to type
back a period, to let you know it is listening. At this point, you
are talking to a program that the computer is executing called the
monitor, or the time-sharing system.
The terms "monitor" and "system" will be used interchangeably to
mean the time-sharing system. You can always tell if you are talking
to the monitor because it types a period when you type a
carriage-return. The monitor is not very smart and is only good for
calling in programs for you.
The first program you should call in is the log-in program. You
do this by typing "LOGIN" (may be abbreviated "L") followed by a
carriage-return. All commands to the monitor must be followed by a
carriage-return, or the monitor will not know that you have finished
typing a command and expect it to do something!
The monitor will read the login program from the disk into core
memory and will transfer control of your teletype to the login
program so everything you type now will go to the login program, not
to the monitor. Before the login program is called in, the monitor
will assign you a job number for system bookkeeping purposes, but you
do not have to be concerned with it. You will then get typeout from
the computer that looks something like this:
JOB 5 STANFORD 3.27/13
#
Now in these two lines, it has told you your job number, the place
where the computer is, and the system number, 3.27/13, which changes
every time a modification is made to the monitor. The sharp sign (#)
is typed by the login program and it means it is waiting for you to
type your identification.
Our identification scheme is in the form of project names and
programmer names. If you are working with the hand-eye project, your
I.A.1-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
project designation is "H", if you work for the systems group, your
project designation is "S", and so on. Your programmer
identification is a unique set of one to three letters that are
assigned to you by Les Earnest. People usually use their personal
nicknames or initials for this.
The login program expects you to type your project name followed
by a comma, followed by your programmer name, followed by a
carriage-return. For example, I work for the systems group and my
initials are J.A.M. I would then type "S,JAM" followed by a
carriage-return. The machine will signify its acceptance of your
identification by typing your teletype identification, the time and
date, the message of the day, and then finally this:
↑C
.
This signifies that the login program has taken the standard exit and
has returned you to the monitor. You are now logged in and may call
in other programs.
When you are ready to leave, you type "KJOB" (may be abbreviated
"K") to tell the monitor that you are leaving so it can give your job
number to the next person who needs it. It will respond by typing
"KJOB" back at you, confirming that you are officially logged off and
the teletype is now free. You should then turn off the teletype by
returning the grey plastic knob to the center position.
To review, I will represent the things you type by lower case
letters and the things the machine types by upper case letters,
whereas in reality, a common teletype has only upper case.
To log in:
login
JOB 2 STANFORD 3.27/13
#s,jam
1005 2-JUN-69
CONSOLE: TTY6
THE CHECKERS PROGRAM IS NOW PART OF THE SYSTEM. YOU GET
IT BY TYPING "R CHECKE"
↑C
.
I.A.1-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
To log out:
kjob
KJOB
I.A.1-3
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.A.2 ELEMENTARY CONSOLE COMMANDS
I.A.2.a OVERVIEW OF PROGRAMMING
Now that you know how to get on and off the machine, let me
describe how you do some elementary things. I assume you got on the
machine in order to write a program of some sort. There are
basically three phases to programming. You start by typing in your
program in symbolic notation and storing the symbolic on the disk.
This is done with a program called the text editor. The second phase
is translation of your symbolic program into binary machine language
and the loading of the binary into core memory to form what is called
a "core image" of your program. The third phase is testing and
debugging. When errors are found, you go back to the text editor to
make corrections in your symbolic program which is still on the disk.
You go through this sequence again and again until your program works
properly. Then you stop.
This description is a bit oversimplified, for there are at least
two other schemes of programming which you may decide to use,
depending entirely on your particular application. First of all,
there is the LISP system. This is a powerful programming and editing
system all to itself. The reference manual on the LISP system is
SAILON number 28.2 entitled "STANFORD LISP 1.6 MANUAL" by Lynn Quam.
You may decide that your needs are not complex enough to justify
your learning a formal programming language. If this is the case,
you may be interested in AID, an interpretive language designed for
people who really want little more than a very sophistocated desk
calculator. AID is an essentially numerical language and allows
quick and easy arithmetic.
If you wish to run a program, you first type your program in to
the text editor. You also make up a name for your program. You tell
the text editor the name you have decided upon and it will store your
program as you type it on the disk and give it that name. You can
then translate the program by calling in a translator and giving it
the name of the program you wish to translate.
I.A.2.b FILES AND FILE NAMES
Some discussion is in order at this point about how to store data
on the disk. Data is stored on the disk in what are called "files".
When you first type your program in to the text editor, the editor
keeps itself busy by taking the characters you are typing and
generating a disk file from them. When you translate your program,
the translator reads this file you have created and generates a core
image from it. Now since each person may have dozens of files and
there may be lots of people on the machine at any given time, there
must be a system for keeping all these files separate. We do this by
giving each user a unique area on the disk that is identified by his
project-programmer name, and each file you create must be named so
you can keep your own files straight.
Files have a first name and a last name. The first name is the
I.A.2-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
actual name of the file and the last name is to indicate what is in
the file. The first and last names are separated by a period. The
first name may be 1 to 6 characters long. Now, if you were writing a
program in SAIL, our version of ALGOL, the last name of your file has
to be SAI. If you are writing in FORTRAN, the last name has to be
F4. So, if you are working on, let us say, the two-point boundary
value problem and the program is in SAIL, you might call your file
"TPBVP.SAI". If you are writing a program in SAIL that computes the
sine of an angle, you might call it "SINE.SAI". The only time you do
not need a last name is when you are writing a program in our
assembly language, called FAIL. The last name of a file is called
the "file name extension" in the literature. It might be noted here
that since files are identified by their complete name and by the
project-programmer name, two different users could use the same file
name and as long as they had different project-programmer names, the
files would be entirely separate and distinct.
I.A.2.c CREATING, EDITING, AND MANIPULATING FILES
Now I shall describe some of the basic commands for manipulating
files. Lists of files belonging to each user are kept on the disk.
These are called the users "directories". You can find out what
files you have by asking the machine to type out your directory. You
do this by typing "DIRECTORY" (may be abbreviated "DIR") followed by
a carriage return. This will type out the names of all your files,
their creation dates, and their length in PDP-10 words. There may
also appear in your directory files which you didn't explicitly
create. Don't worry about these, because intermediate files are
often created for temporary storage purposes by programs you may have
used.
For example, if you have a file "COSINE.SAI" and you translate
it, SAIL will generate a file called "COSINE.REL", which is the
relocatable binary image of your file. The text editor makes up file
names to store partially edited files. The text editor`s names are
like "#M@[&.TMP" and are deliberately unpronouncable. You may
recognize the above two types of intermediate files by their last
names REL and TMP.
You can delete a file by typing "DELETE" followed by a space
followed by the name of the file you wish to delete followed by a
carriage-return.
You create a file by saying "CREATE" followed by a space followed
by the name of the file you wish to create followed by a
carriage-return. This calls in the text editor and has it initialize
that file name and accept input from your teletype. From this point
on, you are expected to type in your program, line by line. The
editor will type a line number at the beginning of each line that you
can use later to reference a given line to make corrections to it.
At this point it might be wise to read the manual on the text
editor. The manual is called "STOPGAP" by William Weiher and is
SAILON (Stanford Artificial Intelligence Laboratory Operating Note)
I.A.2-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
number 50. Copies are available at the A.I. Laboratory in the
alcove outside the Xerox room.
On a subsequent session with the computer, you may modify an
existing text file by typing "EDIT" (may be abbreviated "ED")
followed by a space followed by the name of the file, followed by a
carriage-return. This will call in the text editor and tell it you
wish to make corrections to that file. The editor will respond with
an asterisk and await your corrections. You may not edit files whose
last name is REL or TMP, for these are not really complete text
files. The following is an example of the usage of the CREATE and
DELETE commands. In this example, a two line SAIL program called FOO
is created and then deleted. Again, the things you would type are in
lower case and the things the computer would type are in upper case.
create foo.sai
00100 begin title foo;
00200 end;
00300 $
*e
EXIT
↑C
.delete foo.sai
DELETED: FOO.SAI
EXIT
↑C
.
In the above example, I have used two commands that I have not
defined. I have used the alt-mode (which prints as dollar sign ($),
on line 00300), and the "E" command. These are commands to the text
editor. If you have read the manual on the text editor, (SAILON
number 50 entitled "STOPGAP" by William Weiher) you will know about
these commands.
I.A.2.d TRANSLATION, LOADING, AND DEBUGGING OF PROGRAMS
OK. Now that you know how to get on and off the machine, how to
generate the text file of a program, how to list your directory, and
how to edit a file, we move on to the translation and debugging of
your program. You may try out your program by typing "TRY" followed
by a space, followed by the name of the file that is the program you
wish to try, followed by a carriage-return. This command does a
bunch of things. First, it calls in the apropriate translator for
I.A.2-3
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
your file. You can tell this has happened because the translator
will type out its name followed by the name of the file it is
translating. For instance, if you said "TRY TPBVP.SAI" the machine
would type back, two lines down, "SAIL: TPBVP" At this point, you
may get error messages from SAIL, such as "UNDECLARED IDENTIFIER" or
some such. At this point, you should refer to the appropriate manual
and see if you can detect your error. These are syntax errors at
this point, and it means your program must be changed in some way
before it will successfully translate. The appropriate manuals are
"GOGOL III" by Dan Swinehart, SAILON number 48 for GOGOL, "SAIL" by
Dan Swinehart, SAILON number 57 for SAIL, and for the assembly
language, "FAIL" by Phil Petit, SAILON number 26.1.
Assuming your program contains no syntax errors, the machine will
proceed by typing "LOADING". This means SAIL (or whatever) has
finished successfully. At this point, there will be a file on your
disk area with a last name REL and the same first name as the text
file that is your program. This is where SAIL stores the results of
its translation. This is called the "relocatable" binary image of
your program. A program called the Loader now converts your REL file
into a core image. When that is done, it will type "LOADER #K CORE"
which means it successfully generated a core image which was #
thousand words long. At this point, your freshly compiled program is
started and what happens next depends on the compiler and you. You
now enter the magic world of program debugging, which I will discuss
later.
I.A.2.e RE-EDITING AND LISTING OF PROGRAM FILES
Now, if you find an error in your program, you may go back and
correct it with the text editor by typing control-C (see part I.A.3.a
below) to get back to the monitor followed by "EDIT" (may be
abbreviated "ED") followed by a space followed by the file name
followed by a carriage-return. When you finish making the
corrections, you can try out your program again by typing "TRY"
again, and so on. After you have typed an EDIT and a TRY command
once giving the file name with each one, you may omit the file name
from subsequent EDITs and TRYs and it will continue to take the same
file each time.
If you decide you need a new printout of your program, you may
get one by either of two commands. "TYPE" followed by a space
followed by the name of the file followed by a carriage-return will
have the machine type out the file on your teletype. If the file is
very long, this may be a rather lengthy process.
An alternative is to use the line printer, which is about 50
times as fast as a teletype. To do this, you should first have read
Section I.D.1, entitled "The Care and Feeding of the Line Printer".
If no one else is using the line printer, type "LIST" followed by a
space followed by the name of the program you want listed followed by
a carriage-return. This will type your program out on the line
printer and return to the monitor.
I.A.2-4
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.A.2.f A NOTE ON THE DIFFERENCE BETWEEN MONITOR AND USER COMMANDS
Please note at this point that all of the commands I have
described in this section can only be typed to the monitor, which
means they are not valid until the monitor has typed a period to you,
signifying that it is waiting for you to type one of these commands.
When you are editing a file, you cannot just type "DIR", for example,
and expect to get anything. It will just say "* COMMAND ERROR *" and
go on. This is because if you are editing, you are talking to the
editor, not to the monitor, and "DIR" is a monitor command, not an
editor command. You get from the editor to the monitor by typing "E"
and waiting for the monitor to type a period. You may then type
another command. These commands are called monitor commands, because
only the monitor will recognize them.
I.A.2-5
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.A.3 SPECIAL TELETYPE CHARACTERS
I.A.3.a CONTROL-C, STOPPING YOUR JOB.
Now that you know how to translate, test, and list your file, let
me describe some of the finer points of communicating with the
monitor. On the teletype, there is a key marked "CTRL". This is
called the "control" key. If you press the control key and keep it
depressed while you press any other key, it will not type the letter
that is printed on the key, but rather the "other meaning" of that
key, if any. In this way, we may use twice as many characters as
there are keys on the keyboard.
For example, control-A (which means the "CTRL" key depressed
while you type the letter "A") is actually a "↓", or downarrow.
While these characters do not print on a teletype, they do print on
the line printer and the display screens. There are special
provisions in the text editor for typing all the special characters
without having to type the control key. See the STOPGAP manual for a
complete description of this. There is affixed to most teletypes a
list of the special characters and their representations that the
text editor recognizes.
There are many special characters that are recognized by the
System, which is constantly monitoring all the characters you type.
Most of the time, the System just passes all the characters on to the
program you are using, but there are four notable exceptions.
Control-C (which the monitor recognizes and tells you it has
recognized it by typing back "↑C") causes the monitor to stop the
program that is currently running and take control of your teletype.
You may then type another monitor command. Sometimes the monitor
will not respond and requires you type control-C twice to make sure
you really mean it.
I.A.3.b LINE EDITING - RUBOUT KEY
Another special character is the rubout key, which permits typing
errors to be corrected. The monitor intercepts the character and
deletes the character you typed just before the rubout. Typing many
rubouts will cause that many characters to be deleted. For example,
if you were trying to type DIRECTORY and you got as far as DIREKG,
you could correct your error by typing two rubouts and then the
correct letters. The monitor inserts some extra typeout while you
are doing this to make your copy more legible. In the above example,
your typeout would end up like this: DIREKG\GK\CTORY. Notice that
all you typed was two rubouts, but "\GK\" was printed, which shows
the letters that were deleted in reverse order!
I.A.3.c LINE EDITING - CONTROL-U
If you decide that you have completly mistyped the line and you
wish to start over again, typing control-U (CTRL key depressed while
typing the letter "U") will cause the entire line to be erased so you
can try again. Be careful, because once you have typed
I.A.3-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
carriage-return, your command has been taken, and line editing
features are no longer valid. I mean, you can't edit a line that has
already been read by the computer, and lines generally get read when
you type carriage-return.
I.A.4 A TYPICAL SHORT SESSION WITH THE COMPUTER
To summarize this section, I will give you a sample session with
the computer that uses most of the commands in this section. As
always, your characters will be lower case and the computers will be
upper case:
I.A.4-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
login
JOB 3 STANFORD 3.27/13
#s,jam
1005 2-JUN-69
CONSOLE: TTY2
THERE WILL BE A USER'S MEETING AT 2:00 TODAY
↑C
.create test.sai
00100 begin title test;
00200 comment ⊗ Test program for illustration purposes only. Do not
00300 take seriously⊗;
00400 end;
00500 $
*e
EXIT
↑C
.try test
SAIL: TEST
LOADING
LOADER 12K CORE
EXIT
↑C
.edit test.sai
*p100
00100 BEGIN TITLE TEST;
*e
EXIT
↑C
.delete test.sai
DELETED: TEST.SAI
EXIT
↑C
I.A.4-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
.kjob
KJOB
I.A.4-3
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B REFERENCE MANUAL ON CONSOLE COMMANDS
I.B.1 DEFINITION OF FILE DESCRIPTOR
Let me begin our discussion of the advanced commands by defining
a few terms. First, a "file descriptor" is the way you identify a
file. In its simplest form, a file descriptor may be just a file
name, like "FOO" or "FOO.REL". In these two cases, your file is
assumed to be on the disk. Dectapes have a file system all their
own, so there must be a way of specifying this to the system. This
is done by typing the device name followed by a colon followed by the
file name. The standard name for the disk is DSK, so the file "FOO"
can be identified as "DSK:FOO" and mean the same thing. The standard
name for a dectape is DTA followed by the dectape number, 1 through
4. So "DTA2:FOO" is the way we would specify a file named FOO on
dectape drive 2.
We may also reference other user's files on the disk by
specifying the file name and the project-programmer name of the user
who owns the file. So if you wanted to refer to a file JOB.REL that
belonged to user S,JAM, you could do so by typing this:
"JOB.REL[S,JAM]". You could have preceeded that with "DSK:", but it
is generally not necessary. Thus, if you wanted to get a listing of
the file "TPBVP.SAI" that belonged to "H,HE", the command
"LIST TPBVP.SAI[H,HE]" would do just that.
In summary, a generalized file descriptor then is in the form
"DEV:FIL.EXT[PJ,PR]" where DEV stands for a standard device name (if
ommitted DSK is assumed), FIL stands for any legal file name, EXT is
the file name extension if any, PJ,PR is a project-programmer name
(if ommitted, the one used when you logged in will be used).
I.B.1-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B.2 COMMANDS TO LOG IN AND LOG OUT . . .
LOGIN
May be abbreviated "L". Monitor assigns you a job number and
calls in the log-in program. This program types a sharp sign (#) and
expects you to type your project-programmer name. If you separate
your project and programmer names with a comma, it will type the
message of the day. If you type your project and programmer names
separated by a slash (/) it will type the message for you once, but
will not type it again until the message has been changed.
You may also have a message from some other user waiting for you.
If so, you may have it printed out at this time. The login program
will then ask you if you wish to delete the message. You should
delete the message as soon as you are done with it.
To leave a message for someone, you log in under the
project-programmer name 2,2 and create a file whose name is his
programmer name and whose extension is MSG. For example, if I wanted
to leave a message for a user whose project-programmer name is S,DCS,
I would log in under 2,2 and create a file called "DCS.MSG" which
contained the message. He could receive the message the next time he
logged in.
There is an easier way to send a message to somebody. For
details, see the SEND command at the end of section I.B.3.
If there exists a file called "OPTION.TXT" on your directory when
you log in, and if it contains a line of text that looks like
"LOGIN: CHECK;", then the LOGIN program will type out "checksum
today?" and will wait for you to respond. If you type "Y", a
checksum will be formed of each of your files and will be placed in a
file called "CKSUM.DAT" on your disk area. If this file already
exists, it will be read, and as the checksum of each file is
computed, it is compared to the value in CKSUM.DAT. If there is a
discrepancy and if the file has not been rewritten since the creation
of the checksum, the file name is typed out. In this manner, you may
tell if one of your files has become garbaged.
KJOB
May be abbreviated "K". Causes your job to be cleared, your job
number to be deassigned, your assigned devices to be deassigned, and
your teletype to be detached. Responds by typing "KJOB".
If there exists a file called "OPTION.TXT" on your directory when
you log out and if it contains a line of text that looks like
"LOGOUT: CHECK;", then the LOGOUT program will type out "Checksum
today?". If you respond with a "Y", the checksums of your files will
be computed and compared as with the LOGIN program. If you do not
respond within one minute, the program will assume the negative
answer and finish logging you out.
I.B.2-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B.2-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B.3 COMMANDS TO MANIPULATE FILES . . .
DIRECTORY
May be abbreviated "DIR". If no argument is given, prints a list
of the files on your disk area, with their creation dates and length
in words. If followed by a project-programmer name (as in
"DIR [S,SYS]") will type the directory of that user. If followed by
a dectape number (as in "DIR DTA4:") will type the directory of that
dectape. The colon after the device name is optional. It is
included here for historical purposes.
This command has two other options. Including the characters
"/L" in the command line will cause the output to go to the line
printer, rather than to the teletype. For example, "DIR [S,DWP]/L"
will list S,DWP's directory on the line printer. Including the
characters "/F" in the command string will cause only the file names,
not the dates or lengths, to be printed.
ZERO
May be abbreviated "Z". Must be followed by a device name whose
directory you wish cleared. At Stanford, this means the disk or a
dectape. For example, you can clear the directory of dectape drive
one by saying "ZERO DTA1". You can delete all your disk files by
saying "ZERO DSK".
DELETE
May be abbreviated "DEL". Must be followed by a file descriptor,
or may be followed by several file descriptors separated by commas.
For example, "DELETE FOO" and "DELETE FOO,TPBVP.SAI,COSINE.REL" are
both legal commands and will cause the named files to be deleted from
your area. The command also has some level of generality, in that
either the file name or the file name extension may be replaced by an
asterisk, meaning any file name. For example, the command
"DEL *.SAI" will cause all files with file extension SAI to be
deleted. The names of the files will by typed as they are deleted.
The command "DEL FOO.*" will cause all files with first name FOO to
be deleted. This includes FOO.REL, FOO.SAI, or just plain FOO. The
command "DEL *.*" will cause all your files to be deleted! If you
have leftover .TMP files from the text editor, since you cannot type
their names, "DEL *.TMP" is just about the only way to get rid of
them.
RENAME
May be abbreviated "REN". If followed by the command string
I.B.3-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
FILE1=FILE2, where FILE1 and FILE2 are legal file descriptors, will
cause the file named FILE2 to be renamed to the name FILE1, provided
that there is not already a file named FILE1. For example, the
command "REN FOO.TXT=FOO.SAI" would cause the file named FOO.SAI to
be renamed to FOO.TXT. This means that FOO.SAI would no longer
appear in your directory, and FOO.TXT would show up in your directory
containing exactly, word for word, the same data as was in FOO.SAI,
because it is the same file. Only the name has been changed.(To
protect the innocent?)
The asterisk convention may be used here also. For instance, the
command "REN *.SAI=*" would cause all your files that have no file
name extensions to have the extension ".SAI".
LIST
May be followed by a file descriptor, or a list of file
descriptors separated by commas. This will cause the named files
(must be text files, not binary files) to be typed out on the line
printer with headings at the top of each page which tell page number,
name of file, and date of printing. For example "LIST FOO" will
cause the file named FOO to be printed. "LIST FOO,TPBVP.SAI[S,JAM]"
will cause the files FOO and TPBVP.SAI to be printed, the latter on
S,JAM's disk area. The command "LIST DTA4:BAZ" will cause the file
named BAZ on dectape drive 4 to be listed.
You may list only certain pages if you wish by enclosing a list
of page numbers in parentheses, separated by commas. A continuous
range of pages may be listed by giving the starting and terminating
page numbers separated by a colon. For example, to list pages 1, 3,
and 5 through 7 of the file FOO, the command "LiST FOO(1,3,5:7)"
would do just that.
TYPE
This has the same command format as the LIST command, the
diference is that the output comes out on the teletype rather than
the line printer.
CREATE
This command, when followed by a file name, calls in STOPGAP, the
text editor and tells it to initialize a file of that name and to
enter insert mode immediately. The response to this command is the
first line number, 00100. You may then begin entering your file.
For example, the command "CREATE MANUAL.P02" was used to begin typing
in this manual! For further reference on this, you should refer to
the STOPGAP manual, SAILON number 50.
I.B.3-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
EDIT
May be abbreviated "ED". This command should be followed by a
file name. The monitor calls in the text editor, STOPGAP, and
directs it to the named file.
If you subsequently type ED and omit the file name, the System
will remember the name of the last file you edited and bring it in
again. If you have not edited anything before, you get an error
message.
This command has another interesting option. If you wish to use
the editor not to edit a file, but simply to locate and inspect
certain parts of a file, you may do this in what is called
"read-only" mode. You get this by typing "/R" after the file name,
such as "EDIT FOO.SAI/R". In this mode, all of the true editing
commands are illegal. You may only find and print text in this mode.
You may also include a project-programmer name in the command
line. This will have the effect of copying the file to your disk
area and then editing it. For example, if I typed
"EDIT SINE.SAI[S,DWP]" and then ended the edit normally, I would find
the edited copy of SINE.SAI on my disk area, and the copy on S,DWP's
area would have remained unchanged.
COPY
This command expects a file descriptor followed by a left arrow
(←) followed by a list of files. The file on the left hand side of
the arrow is called the "destination file" and the list of files on
the right hand side of the arrow is called the "source file list".
This command has the general effect of reproducing the files
specified by the source list under the names and disk areas specified
by the destination list. For example, the command
"COPY BAZ[S,JAM]←FOO.TMP[S,SYS]" will cause a duplicate of the file
FOO.TMP on S,SYS's disk area to be made on S,JAM's disk area and
called BAZ.
You must put either one descriptor in the destination list, or
omit the destination list and left arrow entirely. These two cases
have the following effects:
If you put several file descriptors in the source list and one
descriptor in the destination list, all the files in the source list
will be copied and concatenated into one large file and will be
located under the file specified by the destination file descriptor.
For example, if I wanted to combine the files FOO, BAZ, and BAR on my
disk area into one large file called PROG also on my disk area, the
command "COPY PROG←FOO,BAZ,BAR" would do just that. Since both the
source and destination files are on my disk area, I may omit the
I.B.3-3
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
project-programmer names from the file lists. By inserting
project-programmer names in square brackets after file names, I can
copy files to or from any area on the disk, subject only to
protection and password restrictions.
If the destination list and the left arrow are ommitted entirely,
the files are copied one at a time, individually, and are located
under their original names. For example, the command "COPY
FOO[S,SYS],BAZ[S,DCS]" would cause the file FOO on S,SYS's disk area
to be duplicated under the same name on my disk area, and the file
BAZ on S,DCS's disk area to be duplicated under the same name on my
disk area. So when you are copying files from someone's disk area to
your disk area and you wish them to retain their original names, you
may omit the destination list and the left arrow.
An asterisk (*) may be used in place of the file name, the file
name extension, the project name, or the programmer name. If an
asterisk is used in the source list, it will match anything. For
example, if instead of giving a file name you give an asterisk, all
first names will be specified. If an asterisk is used in the
destination list, it implies the same name as the corresponding entry
in the source list. For example, the command COPY *.REL[S,SYS]"
would cause all the .REL files on S,SYS's disk area to be copied to
your disk area and have the same names as the did on S,SYS's area.
The command "COPY *.FOO←*[S,SYS]" would cause all files on S,SYS's
disk area that have a blank file name extension to be copied to your
disk area and given the same file name but all the extensions would
be .FOO.
Now, if the file name and extension of any file in the source
list is *.*, which would imply all files on that disk area, only the
project-programmer name in brackets need be included. For example,
to copy all the files on S,SYS's area to my area, all I am required
to say is "COPY [S,SYS]". This implies that all files on S,SYS are
to be separately copied onto my area and are to have the same names
on my area as they do on S,SYS's disk area.
You may copy files to or from devices other than the disk by
placing the device name followed by a colon in front of the file name
in question. For example, the command "COPY DTA1:←*.*" would copy
all your files onto dectape drive one. The command "COPY DTA1:"
would cause all the files on dectape drive one to be copied onto your
disk area.
If you are copying several files from a disk area to your disk
area, you only have to specify the project-programmer name once in
the source list. It will stick until another project-programmer name
appears. For instance, the command "COPY F1[S,SYS],F2,F3,F4[S,RFS]"
would copy onto my disk area the files F1, F2, and F3 from S,SYS's
disk area and the file F4 from S,RFS's disk area.
If you copy a file onto another disk area and that file already
exists and you ask to write over it (update it), you may get a
protection violation if you are not in the same project as the owner
of the file, or if the file is specially protected against you.
I.B.3-4
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
If you are copying lots of files from a device other than the
disk, you only have to specify the device name once. For example,
the command "COPY DTA1:F1,F2,F3,DTA2:F4,F5" would copy onto your disk
area the files F1, F2 and F3 from dectape drive one and F4 and F5
from dectape drive two.
An asterisk may be substituted for the file name, the file name
extension, the project name, or the programmer name, or any
combination. It may not be substituted for the device name. For
example, "COPY FOO←[*,*]" would combine all the files on every disk
area into one enormous file and put it on your area and call it FOO.
This is not recommended. The command "COPY [S,JAM]←[*,SYS]" would
copy all the files on all disk areas whose programmer name is SYS
onto S,JAM's disk area.
If you try to copy files onto a disk area which requires that you
give a password to log in under that project-programmer name, if you
are not logged in under that project-programmer name already, you
will be asked to give the password for the area. This is to prevent
unauthorized persons from writing over the system files.
Device names and project-programmer names are sticky, that is,
once they appear in a command line, they are assumed in effect for
the remainder of the command line, unless specifically countermanded
by another device name or project-programmer name. For example, the
commands "COPY DTA1:FOO,DTA1:BAZ" and "COPY DTA1:FOO,BAZ" have
exactly the same effect, which is that the files FOO and BAZ on
dectape drive one are copied onto the disk under their same names.
If a file you asked to copy already exists, you will be asked
whether you really want to write over the file or not.
If any of the files you have specified in the source list do not
exist (this applies only where an asterisk is not used for the file
name or file name extension) you will be given the option of
reconsidering.
There are further specifications you may make by including a
slash (/) followed by one of the following terms, followed by a
space. You only need to type enough characters of the switch name to
uniquely distinguish it from the other switches.
The following is taken from the COPY SAILON, number 61, and
describes the switches. For more complete information on COPY and
its features, one should read SAILON 61, the COPY manual.
Switches appearing in the destination term are always
sticky. Switches appearing in the source term are sticky
only if they preceed the term with which they appear.
Otherwise they apply only to the curent term and must
follow it. Only the first six characters of a switch are
scanned, the rest are thrown away. It is only necessary
to use enough characters to uniquely specify the switch.
The following switches are now available:
I.B.3-5
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
SWITCH *** ABBREV *********** MEANING ***************************
DUMP DU This causes each 36 bit word from the
input device to be converted to the ascii
representation of the octal number it
represents and to then be sent to the output
device. The following format is used. A
"word number" is sent to the output device
which indicates which word in the file is the
first word in this row. Then 8 data words
are transfered. Then a <cr><lf> is inserted.
If the input device cannot do image mode
transfers the switch is ignored.
QUIET Q This switch merely prevents you from
getting the message "File already
exists........." . If the output file
already exists it is deleted without a sound.
Also if this switch appears with /SEARCH then
only the p,pn and the size on that p,pn are
printed.
LIST L This causes the names of the files
transfered during that term to be listed. If
the input device is the disk the [p,pn] are
also listed. Non-directory devices will
obviously list nothing. The output will go
to the "list term". If the list term is
absent the output will go to the TTY.
PROTECTION=nnn P This causes the output file to have the
protection nnn where n is a digit from 0 to
7. If no protection switch is specified the
protection of the input file is used(for
non-disk input 000 is used). All three n's
must be present. This switch applies only to
disk output. When concatinating files the
protection applicable to the first file
transfered is used.
NONUMBERS N This deletes line numbers from files
that have them (If the file appears to be of
stopgap format) and compresses what is left.
DENSITY=n DE This sets the density in bpi to n where
n equals 800, 556, or 200. This switch is
ignored for devices other than magtapes.
I.B.3-6
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
The default density is 556.
ODD OD This sets magtape transfers to odd
parity. This mode is standard and is the
default option.
EVEN EV This sets magtape transfers to even
parity.
BLOCKED B This causes records to be ended on
output whenever they are ended on input.
This switch overrides the NONUMBERS switch
unless the output device doesn't know about
records (e.g. the line printer).
MLENGTH=nnnn M This allows the user to specify variable
length records for magtape IO where nnnn is a
1 to 4 digit number interpreted in octal
which specifies the number of data words per
record.
ASCII A This forces transfers to be in ascii.
It overides switches that require the image
mode. Beware! This switch will cause stopgap
line numbers to become part of the text.
SEARCH SE This switch overides all other switches.
It gives you more information than /LIST and
suppresses any transfers. Added to the /LIST
info you get the size of the file in 1K
blocks, the date and time it was last
written, the protection, and the mode it was
written in. This is preceeded by a suitable
heading. The whole smear is preceeded by the
current date and time. If the information
does not exist it is not listed. If you try
to SEARCH a non-directory device you will get
a strange answer. The output goes to the
same place as with /LIST with the following
variation. If the "list term" is omitted the
listing goes to the TTY and the information
and heading for disk input will be truncated
to FILENAME.EXT, [P,PN], and SIZE. If /QUIET
is used with this switch and no list term was
specified only the p,pn and the total size of
each disk area is printed.
RENAME R A rename is done on the input file with
the output file information. /QUIET applies
I.B.3-7
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
when the output filnam.ext already exists.
FAST F All the names specified by the source
term are listed (no size or other info).
This switch is therefore much faster than
/SEARCH.
KILL KI The input file is deleted after the
transfer is finished, even if the output
filename is the same as the input filename.
OPTIMIZE OP This forces copy to believe that a file
is of stopgap format and therefore performs
all the proper magic.
TITLE T This causes a "title page" to be put out
in large block letters followed by a form
feed. The title is of this form:
FILNAM.EXT
P,PN
TIME
DATE
The date and time are when the file was
last written. The only legal input devices
are disk and dectape, or magtape with the
/SAVE switch, all others will be ignored.
SAVE SA If the output device is a magtape four
words of directory info are written. If the
input device is a magtape four words of
directory info are read and compared with the
source name specified. If they don't match
that file is skipped and the next examined
until a match is found or the end of tape is
reached.
HEADER H This causes a header to be put out at
what would be the top of each page on the
line printer. The header looks like this:
PAGE N-M FILNAM.EXT P,PN DATE TIME
The current date and time are used.
Where N is the logical page number (number of
I.B.3-8
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
form feeds seen plus one). And M is the
physical page of that logical page.
CONVERT C This causes copy to treat the character
following a line feed as a fortran control
character. Be careful, this happens on output.
EXTRA=n EX Whenever a line feed is seen n extra
line feeds are put out, n must be an unsigned
decimal integer.
KTOTAL KT At the beginning of the execution of a
term the term is printed. At the end of the
term the TOTAL= is forced out, if any.
This is only legal for /SEARCH.
Thus ends the description of the COPY switches. There are two
more file manipulating commands which are related to copy. They are
as follows:
TRANSFER
This is the same as COPY except that it deletes the source files
as it copies.
SEND
This command is to send a personal message. If one types "SEND
DCS" followed by a carriage-return, you may then type your message,
followed by a control-Z. The person whose programmer name is DCS
will get the message the next time he logs in.
I.B.3-9
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B.4 COMMANDS TO EFFECT TRANSLATION AND PROGRAM LOADING . . .
I.B.4.a COMPILE
May be abbreviated "COM". This command should be followed by one
or more file descriptors, separated by commas. It causes the
appropriate translator to be called in to translate each of the
files. It determines the appropriate translator by the file name
extension, SAI for SAIL, F4 for FORTRAN, and so on. It decides
whether the file must be compiled by comparing the date of creation
of the file with the date of creation of the REL file with the same
first name. If there is no REL file, or if the text file has been
edited, signified by having a more recent date of creation, the
program will be translated again. If the REL file is up to date, the
command exits immediately. There are several options this command
has. For a more complete writeup on all the various options, see
SAILON number 51, entitled "RPG: RAPID PROGRAM GENERATION" by William
Weiher, or see part I.B.4.f for a longer explaination.
This command, like the EDIT command, remembers the file name. If
you do not type a file name, it uses the last one you typed, but the
editing file name and the compiling file names are kept separate. I
mean, if you say "ED FOO" and then "COM BAZ", and then "ED", you will
end up editing FOO. If you then say "COM", the file BAZ will be
compiled if necessary.
There is another interesting option. You can generate assembly
listings of your translations by including "/L" or "/C" in the
command line. "/L" produces a file with the same first name as the
one you asked to compile and a last name LST. This file may be
printed out to get your assembly listing. "/C" produces a
cross-referencing in addition to a listing, but cannot be listed
directly. To list a cross-referenced listing, you may type "CREF"
when your translation is done and get your listing.
Please note that this command does not generate a core image.
You will have to use one of the following commands to do so.
I.B.4.b DEBUG
May be abbreviated DEB. This is the same as COMPILE, except that
it loads a copy of DDT (Dynamic Debugging Technique) with your
program. Instead of jumping directly into your program, it starts
DDT. You may then give a command to DDT to start your program. I
suggest you read the DEC manual on DDT before you attempt to use this
or the next command. This command generates a core image and starts
DDT.
I.B.4.c TRY
I.B.4-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
This is like COMPILE, except it loads a copy of DDT with your
program. This command generates a core image and starts your
program.
I.B.4.d EXECUTE
May be abbreviated EX. This is like TRY, except it does not load
DDT. This command generates a core image and starts your program.
I.B.4.e LOAD
This is like COMPILE except that it generates a core image and
then exits to the monitor. It does not load DDT, it does not start
your program.
I.B.4.f COMPILE OPTIONS AND FEATURES
I.B.4.f.1 GENERATION OF .REL FILES
The simplest way to translate a bunch of programs is to create
them with file name extensions which define the processor to be used,
and give a single COMPILE command with all these names separated by
commas. The standard processors and their recognized file name
extensions are as follows:
EXTENSION PROCESSOR
blank FAIL
.FAI FAIL
.SAI SAIL
.GOG GOGOL
.MAC MACRO
.F4 FORTRAN
Please note that you are not required to type the file name
extensions explicitly. If you type "COM FOO", it will look for any
file with the first name FOO and check it's extension to see if it is
one of the standard file name extensions and act accordingly.
If you do not have the right file name extension for your file,
you can cause the correct processor to be used anyway by giving that
information in the command string, preceeded by a slash (/). For
example, to use SAIL to translate the file SINE, you could say "COM
SINE/SAIL". If you are giving a list of several file names, you may
put the processor name after each file name, or before the entire
list. For example, "COM FOO/SAIL,BAZ/SAIL" is the same as "COM /SAIL
FOO,BAZ". If the processor name preceeds a file name, it is used as
the default option. If it follows a file name and is before a break
character (comma, carriage-return, etcetera) then it only applies to
I.B.4-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
that file and does not change the default option. For example, "COM
/SAIL SINE,IOPACK/FAIL,TJ" would use SAIL on SINE and TJ, and would
use FAIL on IOPACK.
Every time you put a switch like "/FORTRAN" in front of a file
name, it changes the normal mode. For example, "COM /SAIL SINE,
COSINE, /FORTRAN TANGNT, COSEC" would cause SINE and COSINE to be
translated by SAIL, and TANGENT and COSEC to be translated by
FORTRAN.
Perhaps at this point, I should remind you that you do not type
any double-quote marks (") in an actual command line. I put them in
for punctuation purposes only.
You may specify a processor other than MACRO, FAIL, FORTRAN,
GOGOL, or SAIL by using the non-standard processor feature. If you
include "/NONSTANDARD DEV:NAME" in the command line, where "DEV" is
the device where this file, NAME, is located and is assumed to be DSK
if omitted (see part I.B.8.c for discussion of the device name), then
it will recognize anywhere after that on the command line the
extension ".NAM" and the switch "/NAME" and use that processor on the
file. The processor must be a saved core image (see SAVE and RUN
commands in part I.B.5) and have the file name extension ".DMP", and
must be on your disk area, unless the device is "SYS:", in which case
it is assumed to be on the system library, where FAIL and SAIL and
all the rest are.
To repeat, if you wished to translate the program SINE using a
processor named PROC on your disk area, you could do that by typing
"COM SINE/NONSTANDARD PROC".
Please be warned that the processor you wish to use has to be
specifically designed for this usage. Not just any program will
work. To learn how to write programs which may be used in this
manner, see section I.B.4.f.7, entitled "INTERNAL WORKINGS".
The compilations you request will not take place if there already
exists a .REL file whose creation date is more recent than all of the
files used in producing that .REL file. If you edit any one of the
source files, it will then automatically get its creation time and
date updated so that it will force re-compilation. You may force
re-compilation if you wish by including "/COMPILE" in the command
line. What I mean is that if you say "COM /COMPILE FOO", the file
FOO will be translated regardless of its creation date. You may
force date checking again by including "/NOCOMPILE" in the command
line. If it appears before the file name, it forces date checking
for the rest of the command, or until "/COMPILE" appears again. If
it appears after the file name, it forces re-compilation of that file
only. Including "/REL" will cause it to forget about looking for
source files at all and just proceed to generating a core image from
the .REL files (see section I.B.4.f.4).
It is often desirable to break a program up into two separate
files so that there is only one END statement at the last of the
second file. You can process two files together as one big
translation by separating their names by a plus sign rather than a
I.B.4-3
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
comma. For example, the command "COM DATA+PROGRM" would treat the
files DATA and PROGRM as if they were one large file and produce one
relocatable binary file called "PROGRAM.REL".
Normally, the REL file will have the name of the last file in the
command string, but you may give it any name you wish by putting the
desired name followed by an equals sign (=) at the first of the
command string. To illustrate, "COM FOO=SYMS+PROGRM+IOPACK" would do
one translation as if SYMS, PROGRM and IOPACK were one large file and
produce relocatable binary output on a file called "FOO.REL".
When you are assembling files this way, you may find that there
is one file you wish to assemble in front of several different
programs. You might accomplish this by giving the command "COM
ACUMS+SINE,ACUMS+COSiNE,ACUMS+TANGENT" which would make three
separate assemblies, each with a copy of the file ACUMS. You may
give this same command more simply by using the brokets (<>) feature.
The command "COM ACUMS+<SINE,COSINE,TANGENT>" would do the same thing
as the previous command.
I.B.4.f.2 PRODUCING SYMBOLIC LISTINGS
One may want an assembly listing of certain of the files he is
translating. Such a listing has the original code as it appears in
the file plus the octal values the code represents and the relative
locations that the octal values go in. One may get such a listing by
including the characters "/LIST" in the command string. Again, if
the string appears after a file name, only that file's translation is
listed. If it appears before a file name, listings are made from
that point to the end of the command, unless "/NOLIST" appears. If
"/NOLIST" appears after a file name, it only inhibits listing for
that file. If it appears before a file name, it inhibits listing for
the remainder of the command, unless "/LIST" appears again. The
listing is put out on the disk and has the same first name as the REL
file, but has the file name extension "LST".
If the string "/CREF" appears, rather than "/LIST", it generates
an expanded listing that includes a list of all the symbols
(identifiers) your programs used and the numbers of the lines on
which each symbol appeared. This is called a "cross-reference"
listing. You cannot print out the listing file directly, as you
could with a normal listing. Instead, you must call in a special
cross-reference lister. You do this by typing the command "CREF",
which prints out on the line printer all the cross-reference listings
you have generated since the last time you typed "CREF". Please note
that not all the processors can produce a cross-reference listing.
Consult the appropriate manual to find out if a given processor is
capable of generating one.
I.B.4.f.3 COMMAND FILES
If you have a COMPILE command that is too lengthy to fit on one
I.B.4-4
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
line, or that is too long to expect to be able to type it correctly
every time, you may create a file with the command in it and cause
the contents of that file to be used as the command.
For example, if you had 26 files named A,B,C, to X,Y, and Z, then
you could create a file named, for example, "COMAND" which contained
the line "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z", and
you could compile all of those files with the command "COM @COMAND".
The at sign (@) means that the remainder of the command line should
come from the file whose name follows the "@" sign. This procedure
is recursive in that the command file may contain an "@" sign and yet
another command file name.
The command file may contain any and all features that a COMPILE
command itself may contain and more. If your command is too long to
fit in one line, you may place a semi-colon (;) at the physical end
of the line, then continue the command on the next line.
I.B.4.f.4 GENERATION OF CORE IMAGES
If you give either the EXECUTE, DEBUG, LOAD, or TRY command,
rather than the basic COMPILE command, a core image of some sort will
be generated. This is done by first translating the files the same
way the COMPILE command does, and then calling in a program called
the Loader. This program takes .REL files and produces a core image
from it.
With DEBUG and TRY, the Loader is instructed to load a copy of
DDT and the symbol table with your core image.
If "/MAP" is included in the command string, the absolute values
of all your symbols are listed in a legible way on a file called
"MAP.MAP".
You may produce a disk dump (See SAVE and GET commands, section
I.B.5) of your core image by either including "/DUMP" in the command
string, in which case it will create a dump copy of your core image
with the same first name as the .REL file and with the file name
extension ".DMP", or you may explicitly name the dump file by putting
the desired name followed by a left arrow (←) in the command string,
but you still have to put "/DUMP" in somewhere. For example, the
command "TRY DUMP←SINE,COSINE/DUMP" would first translate the
programs SINE and COSINE individually to produce SINE.REL and
COSINE.REL, then it would call in the Loader, load DDT.REL from the
system library files because it is a "TRY" command, load SINE.REL and
COSINE.REL, produce a dumped copy of the core image entitled
"DUMP.DMP", and then start up your program
Asking for dump copies to be produced has another interesting
effect. If there already exists a .DMP file of the right name and if
it has a creation date more recent than those of the source file, no
loading will be done. Instead, the dump copy itself will be called
in. You may force reloading by including "/NODUMP" in the command
line. You may include both an equals sign and a left arrow in a
command string. This example will help to clarify what is happening:
I.B.4-5
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
COMMAND .REL .DMP
TRY SINE+COS/DUMP COS.REL COS.DMP
TRY DUMP←SINE+COS/DUMP COS.REL DUMP.DMP
TRY DUMP=SINE+COS/DUMP DUMP.REL DUMP.DMP
TRY FOO←DUMP=SINE+COS/DUMP DUMP.REL FOO.DMP
Often, one wishes to combine many .REL files into one large .REL
file and extract only certain routines at a time. For instance, you
might make sine, cosine, and tangent routines and combine them into
one file called "TRIG.REL". If in the future you had a use for just
the sine routine, but did not wish to load the entire package, you
could ask the loader to search a file and extract only the
appropriate routines as needed by including "/LIBRARY" before or
after the name of the file that you wish searched. For example, if I
had a program called NLT which used SINE.REL which was a part of
TRIG.REL, I could give the command "LOAD NLT,TRIG/LIBRARY". The
Loader would notice that NLT was asking for SINE.REL and would search
TRIG.REL for it. The program you use to combine many .REL files into
one library file is called FUDGE2. It's usage is described in a DEC
manual. You may suppress library searching by including "/NOSEARCH".
If either of these switches (/LIBRARY or /NOSEARCH) is inserted after
a file name, it only effects that file. If inserted before a file
name, it persists until the end of the command or until counteracted
by the inverse switch. For example, if I had a program NLT which
used routines from the library files TRIG.REL and IOPACK.REL, and I
also wanted to load another program called LT, here are three ways I
could cause this to happen:
LOAD NLT,LT,/LIBRARY TRIG,IOPACK
LOAD /LIBRARY NLT/NOSEARCH,LT/NOSEARCH,TRIG,IOPACK
LOAD NLT,LT,TRIG/LIBRARY,IOPACK/LIBRARY
Note that the programs that use the library files must be placed
before the library file names themselves, because the Loader cannot
know in advance what routines to extract from each library until it
reaches the programs that use these library routines.
The Loader has many options all its own. For instance, if you
wanted to load a copy of RAID, a version of DDT which uses the III
consoles for dynamic register display, you may do this. Normally,
your symbol table is not loaded unless DDT or RAID is also loaded,
but you may override this convention too and cause your symbol table
to be loaded anyway. Normally, if DDT or RAID is not loaded, your
core will be contracted to the minimum point so part of your symbol
table may be lost. We specify all these various options to the
Loader by including what are called "Loader switches" in the command
line. A switch to the Loader consists of a percent sign (%) followed
by one character, such as "%H", or a percent sign followed by a
number, followed by a letter, such as "%140O". There is a
I.B.4-6
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
description of all these switches and their usage in part I.E.2,
entitled "LOADER SWITCHES".
I.B.4.f.5 NONSTANDARD PROCESSOR FEATURES
When a standard processor is used, it is known that it will take
a text source file and produce a binary .REL file, and possibly a
text .LST file. When using a nonstandard processor, there is no such
guarantee. You might dream up a usage for a processor which took a
text file, produced another text file from it that was input to a
standard processor. This is sort of the way pre-processors work. It
is possible to specify all this in a COMPILE command.
First off, if your nonstandard processor generates a text file,
instead of a .REL file, you must inhibit loading of that file. You
do this by putting "/NOLOAD" in the command string. For example, if
I were using a nonstandard processor called NSP to translate a text
file BAZ into another text file FOO, and if I also wanted to load a
copy of MAIN.REL, the command "LOAD FOO=BAZ/NONSTANDARD
NSP/NOLOAD,MAIN" would do it.
Now let us consider a more interesting case. Let us say that the
preprocessor, NSP, translated the file BAZ into a file, FOO, which
was a FAIL program! This means that we want to specify that FOO is to
be translated when NSP is done. In this way we get the effect of two
processors (three if you count the Loader) passing over the same file
in sequence. Let us also say that we wanted to translate MAIN and
SINE and load them into the core image too. We could do all this,
incredible as it may seem, in one command by use of the "/FORWARD"
switch. First let me explain why it won't work without the switch.
When you give the command, it will look for a file called MAiN, it
will find it and translate it, it will look for a file called SINE,
it will find it and translate, but then before NSP has been called,
it will look for a file FOO. Since FOO is produced by NSP, it does
not exist yet! This will result in an error message of the form "FILE
NOT FOUND: FOO". If you include the "/FORWARD" switch, it will not
try to look for FOO, but will assume that it will appear magically by
the time the Loader is called. So our command line looks like this:
"LOAD FOO=BAZ/NONSTANDARD NSP/NOLOAD,MAIN,SINE,FOO/FORWARD". As
usual, if "/FORWARD" appears before a file name, it sticks until the
end of the command or until its inverse, "/NOTFORWARD" appears.
To repeat, the "/NOLOAD" switch inhibits loading of a file. You
use this when you know that a particular file will not be a .REL file
when its processor is done, but is instead text and possibly input
for yet another processor. Its inverse is "/LOAD". The "/FORWARD"
switch is used when you know a given source file will not exist at
the time the command is typed, but will appear sometime during the
processing of the command. Its inverse is "/NOTFORWARD".
I.B.4-7
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B.4.f.6 INDEX OF COMPILE SWITCHES
Those switches which have inverses will stick if placed before a
file name and will not if placed after one. The normal cases, or
default options, are the inverses of the switches which have
inverses. Each of these switches has a legal abbreviation also.
SWITCH ABBREV INVERSE ABBREV SECTION
/COMPILE /COM /NOCOMPILE /NOC I.B.4.f.1
/CREF /C /NOLIST /N I.B.4.f.2
/DUMP /D I.B.4.f.4
/FAIL /F I.B.4.f.1
/FORTRAN /FORT I.B.4.f.1
/FORWARD /FORW /NOTFORWARD /NOT I.B.4.f.5
/SAIL /S I.B.4.f.1
/GOGOL /G I.B.4.f.1
/LOAD /LO /NOLOAD /NOLO I.B.4.f.5
/LIBRARY /LIB /NOSEARCH /NOS I.B.4.f.4
/LIST /L /NOLIST I.B.4.f.2
/MACRO /M I.B.4.f.1
/MAP I.B.4.f.4
/NODUMP /NOD I.B.4.f.4
/NONSTANDARD /NON I.B.4.f.5
/REL /R I.B.4.f.4
I.B.4.f.7 INTERNAL WORKINGS
When you type one of the COMPILE commands, a great deal of
invisible screwing around goes on. For example, when you type "COM
A,B" and A and B are SAIL programs, the monitor does not call SAIL in
directly, instead the monitor calls in a program called RPG. This
program reads your command line and generates from it a file called
QQSAIL.RPG (if A and B were FAIL programs, the file would be called
QQFAIL.RPG) which contains these commands:
A←A
B←B
RPG then calls in SAIL. Now, if you call in SAIL yourself (by typing
"R SAIL", see part I.B.5) it will expect to read its commands from
the teletype. However when RPG reads SAIL in, it starts it up at a
different place, one past its usual starting address to be exact,
which lets SAIL know that it should take its command from the file
QQSAIL.RPG. After it reads the .RPG file, it will delete it. It
then types out its name and the name of the file it is currently
translating.
If you are using a nonstandard processor, the .RPG file has the
name QQNAME.RPG where NAME is the first four characters of the
processor name. If the processor name is four characters or less, it
is the entire processor name. For example, if the nonstandard
I.B.4-8
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
processor name were NSP, its commands would be on QQNSP.RPG. If its
name were PREPRO, its commands would be on QQPREP.RPG.
You notice that the commas were changed into carriage-returns.
There are several other mappings of this nature, for instance, equals
sign (=) gets mapped into left arrow (←). Perhaps it would be most
clear if I gave you the general form for the commands to the
processors.
All the standard processors accept commands in this general form:
DEV:OFILE,DEV:LFILE←DEF:FILE1,DEV:FILE2, . . . ,DEV:FILEn
Where DEV is any standard device name (see section I.B.8.c). If
omitted, DSK is assumed. LFILE is the name of the file the listing
is written on. If omitted, with its preceeding comma, means no
listing is to be produced. OFILE is the name of the .REL file. If
no extension is given, .REL will be used.
It is difficult to give the exact algorithim for translating the
command line, because RPG itself does many of the various options.
Let me give one more point and then a list of common commands and
their .RPG file representations.
When you give a TRY, EXECUTE, DEBUG or LOAD command, a QQLOAD.RPG
file is produced which tells the loader what files to load and what
to do when it is done. The processor is told what to do next by
placing a file name followed by an exclaimation point (!) at the end
of the .RPG file, which is the file name of the next processor to
call in.
To repeat, a file name followed by an exclaimation point means
the program whose name this is is to be called in next and started at
its starting address plus one.
I.B.4-9
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
COMMAND QQxxxx.RPG QQLOAD.RPG
COM A A←A none
LOAD A A←A A/G
LOADER!
DEBUG A A←A /TA/G
LOADER!
TRY A,B A←A /D/EA,B/G
B←B
LOADER!
EX A=B+C A←B,C /EA/G
LOADER!
COM A/LIST,B,C A,A←A none
B←B
C←C
COM /LIST A,B,C A,A←A none
B,B←B
C,C←C
COM /CREF A,B A,A/C←A none
B,B/C←B
LOAD A/F,B/G {on QQFAIL.RPG} A,B/G
A←A
SAIL!
{on QQSAIL.RPG}
B←B
LOADER!
I hope this is an adequate description. All other features, such
as creation date checking, brokets (<>), etc., are handled by RPG
itself.
If you write a nonstandard processor, you must write it so that
when it is started at its starting address plus one, it will read its
command line from the .RPG file, then delete the .RPG file. It must
accept its commands in the above form, and it must accept the
exclaimation point feature.
Notice that this is all you need to know to write a compiler,
assembler, editor, or any other system program. Your program must
accept commands in standard form, must accept the exclaimation point
feature, and must read its command from a file when it is started at
its starting address plus one. It is a simple modification to RPG to
add new standard processors. All the "@" sign handling is done by
RPG itself, so your processor will never receive one.
I.B.4-10
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B.5 COMMANDS TO MANIPULATE CORE IMAGES . . .
SAVE
This command must be followed by a file descriptor, such as
"SAVE DSK:SINE". This causes your current core image to be saved on
the disk under the given file name. The monitor will give you the
file name extension DMP if you do not specify one. You may specify
the amount of core you wish your file to be saved in if you like by
typing a decimal number between 0 and 76 after the file descriptor.
For example, if you wanted to save your core image under the name
"JOB" and you wanted to save it in 10K of core, you might type
"SAVE DSK:JOB 10". This would create a file called JOB.DMP and store
your core image on it. When you listed your directory, the length of
the file would be something slightly over 10,000 words long.
You can also save on dectape, just by typing "DTAn" instead of
DSK, where "n" is the number of the dectape drive you wish to save
your core image on.
This command does not save your accumulators, and it resets your
IO status before it is done. This means you may not continue
executing your program after you use this command. You may only
restart the program from the beginning.
RUN
This command, when followed by a file descriptor, reads the file
in and generates a core image, and starts the program. The file must
have been saved previously by a SAVE command for this to work right.
If the file is not a program, it will type "NOT A DUMP FILE". You
may run programs you previously have saved on the disk or dectapes by
means of this command. Again, you may specify the amount of core you
wish the program to run in by typing the decimal number after the
file descriptor.
GET
This is the same as RUN, except it does not start the program, it
merely generates the core image and exits.
R
This is a special form of the RUN command which runs programs
that are on the system library area on the disk, rather than on your
disk area. You may not specify a device name or a project-programmer
name for this command. A typical usage of this would be "R CHESS",
which would run the chess program for you.
I.B.5-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B.5-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B.6 COMMANDS TO START A PROGRAM . . .
START
May be abbreviated "S". This command is valid only if you have a
core image. START causes the program to be started at its so-called
starting address. This address is automatically assembled into most
programs. All SAIL programs have starting addresses. A "GET"
command followed by a "START" command is the same as a "RUN" command.
You may specify another address to start it at by typing the octal
address after the command. For example, to just start up a program,
you type "START". To start a program at octal location 547, you may
type "START 547".
DDT
If you have DDT or RAID in your core image, this command will
start it up. If you do not have DDT in your core image, it will type
"NO DDT".
REENTER
May be abbreviated "REE". Some programs have re-entry address
for certain types of error conditions. If the program has such an
address, this command will cause the program to be started there. To
set the reenter address, the program must deposit the address in
JOBREN in core. See the chapter on user programming for details.
Only the manuals on the programs can tell you whether a given program
has a reentry address.
CONTINUE
May be abbreviated "CONT". If you have stopped your job by
typing control-C, then you may proceed by typing "CONTINUE". The
system keeps track of whether you exited by typing control-C and will
not allow you to continue unless this is the way you exited. If the
program exits on an error condition of some sort, the system will not
let you continue and will type "CAN'T CONTINUE" if you try. You may
type "CONTINUE", however, if your program has halted and given the
typeout "HALT AT USER #", because a halt instruction is not
necessarily an error. To review, if your program has halted, or if
you have typed control-C, you may proceed by typing "CONTINUE".
CSTART
I.B.6-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
May be abbreviated "CS". If your program does not attempt to
read from or type on your teletype, you may, if you wish, start it by
typing "CSTART" which will do the same thing as "START", except it
will leave your teletype in monitor mode. This means that everything
you type will continue to go to the monitor. One use for this might
be to start your program this way and type "TIME" (see the "TIME"
command further on) occaisionally to see how your program is
proceeding.
CCONTINUE
May be abbreviated "CC". This is the same as "CONTINUE", except
that it leaves the teletype in monitor mode. This is useful if you
wanted the teletype in monitor mode, but forgot or were unable to
type "CSTART", you may type control-C and then "CCONTINUE" to get
into monitor mode.
I.B.6-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B.7 COMMANDS TO GET INFORMATION FROM THE SYSTEM . . .
SYSTAT
This command may be typed without logging in. This command also
destroys your core image, if you have one. This means you may not
type control-C, "SYSTAT", and expect to continue! You must reload
your core image.
This command types a list of the jobs that are currently logged
in along with their project-programmer names, the name of the disk
file their last core image came from, their core size, and a list of
what devices and files they are currently using. You will have to
try it yourself to see exactly what it does tell you.
COREX
This command is an abbreviated version of SYSTAT. It too may be
typed whether you are logged in or not, and it discards your core
image. COREX prints out just the number of active jobs, how long the
system has been up, and how much core is remaining or how heavily
overloaded the system is. This types only about 5 lines, whereas
SYSTAT types 20 to 30 lines.
Note that SYSTAT and COREX are the only two information commands
that destroy your core image. All other information commands may be
typed without any fear of damage.
DAYTIME
May be abbreviated "DA". This prints out the time of day and the
date.
TIME
This prints out two numbers: the amount of compute time you have
accumulated since you logged in, and the amount of compute time you
have accumulated since you last typed "TIME". The numbers come out
in the form M:S, where M is the number of minutes and S is the number
of seconds to two decimal places. For example, one of the two times
it types might look like "34:14.22" which means 34 minutes and 14.22
seconds. If the number of minutes is three or more digits long, the
first digit or two represents the number of hours. For instance, the
time "122:35.22" means one hour, 22 minutes, and 35.22 seconds. The
time "2136:41.34" means 21 hours 36 minutes, and 41.34 seconds.
PJOB
I.B.7-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
This causes your job number to be printed out.
PPPN
This causes your project-programmer name to be printed out. If
followed by an arguement consisting of a decimal number, that number
is taken to be a job number and the project-programmer name of that
job is typed, if there is a job logged in. In other words, the
command "PPPN 5" would either print the project-programmer name of
whoever is logged in as job 5, or would type "JOB NOT LOGGED IN".
RESOURCES
May be abbreviated "RESO". This types out a list of the devices
that are currently free, and the number of disk blocks that are still
free. A disk block is 128 words long. Notice that this number
decreases if you create a file, and increases if you delete a file.
HELP
This command is used for a quick reference to documentation.
Typing "HELP" followed by a carriage-return will tell you what help
files are available. Typing "HELP" followed by a help file name
followed by a carriage-return will type out a short summary of the
usage of the program or command whose name is the help file name.
For instance, typing "HELP SAIL" followed by a carriage return will
print out a summary of the SAIL command format and the name and
location of the SAIL manual.
I.B.7-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B.8 COMMANDS TO ASSIGN AND RELEASE RESOURCES . . .
I.B.8.a DEFINITION OF ASSIGNING A DEVICE
Let me preface this discussion by telling you what is meant by
assigning a device. There are, on the computer, magnetic tapes,
dectapes, disks, a line printer, and other IO devices. Each device
has a unique three or four character name that the system will
recognize. When you assign a device, your job number is placed in
the device's data area inside the monitor so that no other user may
access the device while you are using it. The exception to this is
the disk, which is always open to all users. If you assign the disk,
it only assigns you a fraction of the disk, not the entire unit.
A device may be assigned in two ways. First, you may assign it
by giving the "ASSIGN" command (see below). This is a permanent
assignment and is in effect until you log out or explicitly release
it by giving the "DEASSIGN" or "FINISH" command. This type of
assignment is called "assignment by console". The second type of
assignment occurs when you write a program to use a given device.
When you begin using it, it is assigned to you on a temporary basis
if you have not already assigned it by console, and it is released
when your program is finished with it. This is called "assignment by
program".
I.B.8.b DEFINITION OF LOGICAL DEVICE NAME
It is important at this point that you know about so-called
"logical" names for devices. Whereas a device has a
system-recognized three or four letter name, such as DSK for the
disk, you may assign it an alias, called a logical name. This means
that you can then refer to it by its alias, as well as its physical
name. The alias takes priority over the physical name, however, and
if you assign a dectape the logical name DSK, then every program you
try to run which attempts to use the disk will end up using the
dectape instead! Giving any device the logical name DSK is dangerous,
for then you may not use any of the COMPILE commands, because they
make extensive usage of special features which the disk has but other
devices do not have. You may, however, assign any device any other
logical name you wish.
Logical names are one to six characters long. For example,
"DISK" is a valid logical name. So is "FOO", "P2", or even "NAME".
I.B.8.c ASSIGN
May be abbreviated "A". This command should be followed by the
name of the device you wish to assign. This must be a legal physical
device name. Here is a list of the legal physical device names:
LPT - line printer
DTAn - dectape drive "n", for example, "DTA1" is
I.B.8-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
dectape drive 1. "n" may be 1 to 4.
MTAn - Magnetic tape drive "n". "n" may be 1 to 7.
AD - Analog to digital (and digital to analog) converter
PTP - Paper tape punch, also the CALCOMP plotter
PTR - Paper tape reader
TV - Television camera
DSK - Disk file
SYS - Refers to the disk, like DSK, but more
specifically, to the part of the disk that
contains the system library files.
TTY - Your teletype.
TTYn - Teletype number "n".
CTY - The PDP-10 console teletype.
UDP - The spare disk pack on the 2314.
These are all the devices we have on our machine that can be
referenced this way.
Typing "A DTA" asks the system to assign you one of the four
dectape drives. The system would respond by saying "DTA1 ASSIGNED"
if dectape drive 1 were free when you gave the command, or "NO SUCH
DEVICE" if there were no drives available. You may assign a specific
drive by saying something like "A DTA3" which would respond "DTA3
ASSIGNED" if drive 3 were free, or "ALREADY ASSIGNED TO JOB #" if it
were not free. You may attempt to assign the line printer by typing
"A LPT", but it is not necessary to assign it this way to use it.
The LIST command will assign it for you on a temporary basis.
You may give the device a logical name with the assign command by
following the physical name with the name you want it to have. For
example, if you wanted to assign magnetic tape drive 1 and you wanted
it to have the name "TAPE", you might do so by typing "A MTA1 TAPE",
and the system would respond "MTA1 ASSIGNED" if it were free, and the
system would then store the logical name you typed. You may then
refer to the tape by the name "TAPE" until you log out or explicitly
release the device. Since you may assign any device any logical
name, you might write a program which uses magnetic tape drive 1 (or
"MTA1") and refers to it by its physical name. If when you decided
to run this program, you found that the only magnetic tape available
was MTA2, you might type "A MTA2 MTA1", which will make it so that
when your program refers to the device name "MTA1", it is really
referring to "MTA2". This is sort of the purpose of logical names.
Notice that your logical name assignments are all your own, and are
completely distinct from any logical names that anyone else has set.
It is as if you had your own private set of devices and names. The
devices remain separate even though there may be several people using
the same logical name.
I.B.8.d DEASSIGN
I.B.8-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
May be abbreviated "D". This command, when followed by a logical
or physical device name, releases the console assignment you may have
had on this device. If the device was not assigned to you, it will
type "DEV WASN'T ASSIGNED?". You may deassign all your devices in
one blow by simply typing "D". This does not affect any temporary
assignment your program may have on the device.
I.B.8.e FINISH
May be abbreviated "F". This command, when followed by a logical
or physical device name, releases the program assignment your program
may have had on this device. If your program was not using the
device you asked to finish, it will type "FINISH WHAT???". This also
releases any console assignment you may have had on the device.
A possible usage for this command is if you were using the "/L"
option to the "COMPILE" command and decided that you didn't want the
entire listing but just the first part of it. You might then type
control-C and "F DSK", which would complete writing of what there was
of your listing and release the disk. You might have to type this
command several times, because the assembler might have many disk
files open at the same time and you wouldn't know which one the
listing was. You can just type "F DSK" again and again until it
types "FINISH WHAT???" at you, indicating that there are no more disk
files to be finished.
I.B.8.f REASSIGN
This may be abbreviated "REA". This must be followed by a
logical or physical device name and a job number. The effect is that
if the named device were assigned to you, it would no longer be
assigned to you, but to the job whose job number you typed. For
instance, if you had the line printer and the person who was job 3
wanted it, you could give it to him by saying "REA LPT 3". This is
the same as if you had said "D LPT" and he had said "A LPT"
immediately thereafter.
I.B.8.g SLEVEL COMMAND
This command allocates processor service. You follow this
command with a decimal number between 0 and 85 that represents the
amount of processor service you have signed up for followed by a
carriage-return. If you just type SLEVEL followed by a
carriage-return, it will type out the amount of service you currently
have assigned. The service level is not just the amount of compute
power you get, for it is dependant upon your total active core size.
Active core is defined as core that is either running or locked in
I.B.8-3
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
due to IO or spacewar activity. One percent is subtracted from your
service level assignment for every 5K of active core. The remaining
level is the percentage of compute time plus IO time your job uses.
For example, if a job does no IO and is less than 5K in length, his
service level will indeed be the processing level he receives. If he
does IO that locks him in core, such as disk or magnetic tape IO, the
time he is locked in is counted for scheduling purposes exactly like
compute time. The effect is that using the disk is
service-level-wise identical to using the computer itself.
If several jobs are logged in with the same programmer name, they
all get the same service level, and all of their active core is added
together.
I.B.8.h CORE
May be abbreviated "C". This command allows you to change the
size of your program. This command should be followed by a decimal
number, 0 to 76, which represents the amount of core, in K (1024 word
blocks), that you want your program to have. For example, if you
wanted your your program to have 10K of core, you might say "C 10".
If you want your program to go away entirely, you might say "C 0".
If this command is followed immediately by a carriage return
instead of a decimal number and a carriage return, the size of your
job is not altered in any way, but instead the monitor types out the
size of your job and the size of your second segment, if your have
one, for you. In this manner, without damaging your program, you may
find out your job size by interrupting your program with a control-C,
typing "C" followed by a carriage return, and then when the monitor
has typed out your job size, typing "CONTINUE" which will resume your
program.
I.B.8-4
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B.9 COMMANDS TO MANIPULATE YOUR TELETYPE ASSIGNMENT . . .
TALK
This command, when followed by the physical name of a teletype,
causes your teletype to be connected to the named teletype directly.
This means everything you type will be printed on his teletype, and
everything he types will be printed on your teletype. If you know
that the name of the console teletype is "CTY", you may use this
command from a remote teletype to interrogate or direct people in the
computer room. This is useful if you are on a remote teletype and
want someone to mount a dectape for you or something. You get out of
this mode by typing control-C. As an example, to talk to the console
teletype, you could type "TALK CTY" and then begin typing your
message.
If you are calling in from a remote teletype, you should ring the
bell a bit and type "Is anyone there" to get the attention of someone
in the computer room.
DETACH
May be abbreviated "DET". This causes your program to be
disconnected from your teletype and your teletype to be released.
This means that while your job is disconnected, you may use your
teletype to log in again and do something else! There is a hazard
here, for if your detached job attempts to type something, and there
is no teletype there, it will be stopped. Detaching is generally
used only when you wish to go to another teletype.
ATTACH
May be abbreviated "ATT". This command, when followed by a job
number and a project-programmer name, causes the named job to be
attached to your teletype, just as if you had logged in there. If
the project-programmer name you typed do not agree with the
project-programmer name that was associated with the job whose job
number you typed, it will type "PROJECT-PROGRAMMER NUMBER MISMATCH".
If the job whose job number you typed is already attached to a
teletype, it will type "CAN'T ATTACH", because only one teletype may
be attached to a job at any time.
If you were using "ATTACH" and "DETACH" to switch your job from
one teletype to another and in the process you forgot your job
number, you may use "SYSTAT" to find out what it was.
As an example of the usage of this command, if your job number
were 3 and you were user S,JAM then you might type "ATT 3 [S,JAM]".
Note that the project-programmer name must be enclosed in square
brackets ([]) for this command to work.
I.B.9-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B.9-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B.10 SPECIAL TELETYPE CHARACTERS
There is a key on a teletype marked "CTRL". When you depress
this key and while it is depressed type a character, you get what is
called a "control" character. This means that if you type the CTRL
key with the letter "A", you do not get that letter, but you get the
"other meaning" of that character, which in this case is "↓", or
downarrow. In this manner, we can type twice as many characters as
there are keys on the teletype. The III display consoles have
roughly twice as many keys as a teletype does, so there is no need
for a CTRL key on them. Nevertheless, they have two.
CONTROL-C
If you type control-C while a job (like SAIL, or maybe the text
editor) is running, the monitor will type "↑C" and the job will be
stopped. You may proceed by typing CONTINUE. The system will
sometimes make you type control-C twice in a row to make sure you
really mean it.
This point needs further explaining. If you type control-C once
(or <CTRL 1>CALL on a III display keyboard), it does not necessarily
stop the job immediately. What it does is place that character in
the monitor with all the other characters, so that the next time your
program reads a character from the teletype, the control-C will go in
and the job will exit. You may override this delay by typing it
twice.
This is a very handy feature, for with this, you may stack
several commands, including control-C's, and they will be processed
as the program (or the monitor) is ready for them.
RUBOUT KEY
Typing this key causes the last character you typed to be
deleted. Typing it N times causes the last N characters you typed to
be deleted, or back to the last carriage-return, line-feed, or
alt-mode. Rubout will not delete characters further back than one of
those characters. Rubout will also not work if the program has
gobbled up the characters you wanted to delete, for there is no way
the system can make the program to vomit back those characters! You
can tell if rubout is working right because it types the character it
deleted, delimited by backslashes (\), for each character you delete
this way. You can tell if rubout did not take because it will not
type a character, but will give a carriage-return.
CONTROL-U
This prints as "↑U" and causes the entire line you had been
typing, back to the last carriage-return, line-feed, or alt-mode, to
be deleted. The system types a carriage-return so you may start a
I.B.10-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
new line. Again, if the program has already accepted part of the
line, control-U will only delete that which still remains in the
system.
To find out how you type control-U on the III display consoles,
see section I.C.3.
CONTROL-O
This prints as "↑O" and tells the computer to shut up. More
specifically, this suppresses teletype output until the next INPUT
UUO (See chapter II). For instance, if you had started the editor
printing out 2000 pages of text and decided you really didn't want to
wait for all that, you could type control-O and the printout would
cease. You may then type another command as if the printout had
terminated normally.
To find out how you type control-O on the III display consoles,
see section I.C.3.
CONTROL-Z
This prints as "↑Z" and is the end-of-file character for the
teletype. If you think of a string of characters as a file, like a
disk file, then you know that there must be something to tell when
there is no more data. On the disk, there is kept information as to
how long the file is and where it ends. To accomplish this on the
teletype, we use control-Z. Programs like the text editor do not
require the usage of this character, for they have other conventions
for recognizing end of input. There do exist programs (MACRO and PIP
for example) that depend on this character to tell when to stop
listening to the teletype. You must consult the program writeup to
determine whether a given program does or does not need this
character. Usually, a carriage-return is the character used.
To find out how you type control-Z on the III display consoles,
see section I.C.3.
CONTROL-P
This prints nothing, but changes the effect of the TAB character.
When you type the TAB key (control-I) on a model 33 teletype, the
system calculates the number of spaces to the next position that is a
multiple of 8 characters away from the left-hand margin and types
that many spaces. There exist teletypes with a hardware feature
which allows the system to send just the tab character, rather than
converting to spaces as it must for the model 33. The model 35 and
some model 37s have hardware tabbing mechanisms. To tell the system
that it need not expand tabs into spaces, you type control-P.
This character, along with control-F and control-B, are inverting
characters. That is, they invert the state of the system in that
respect. If you type control-P an even number of times, it will be
I.B.10-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
as if you never typed it at all. The same is true of control-F and
control-B.
CONTROL-F
This prints nothing, but changes the way in which lower case
characters are handled. The system normally converts all lower case
letters it receives from a teletype to upper case letters. On the
model 33 teletype, it doesn't make any difference, because you can
only type upper case letters anyway. On the display keyboards or on
a model 37 teletype, it makes a difference, because they are capable
of transmitting lower case letters as well as upper case. To permit
the entry of lower case letters, type control-F. (an odd number of
times!)
CONTROL-B
This prints nothing, but changes the duplexing of teletype
inputs. When you type a key on your teletype, the printer portion
does not just automatically type the thing you typed, instead each
character you type must be sent back to your teletype so that what
you typed will be printed. This process is called "duplexing". Some
teletypes, however, do have an internal connection that prints
automatically what is typed. For one of these, it is necessary to
inhibit the system's duplexing. This is done by typing control-B.
(an odd number of times)
CONTROL-Q
This character does not print, but has the interesting feature of
causing the automatic line-feed after carriage-return to go away. In
other words, it inhibits duplexing of line-feeds. This is only
useful if you are using the paper tape reader which can be attached
to a model 33 or 35 teletype. It is included here because if you
type it by accident, you ought to know what has happened! You can
tell it is happened by noticing that the system does not appear to be
listening to you. This is because the system triggers on a
line-feed, not a carriage-return, and if one is not either explicitly
typed or duplexed, it will not trigger. The inverse of this
character is control-S.
CONTROL-S
This prints nothing but causes the system to once again duplex
line-feeds after carriage-returns. It is the inverse of control-Q.
I.B.10-3
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.B.11 COMMANDS TO DUMP AND RESTORE THE DISK
DUMP
This command may be followed by a file descriptor, or a list of
file descriptors separated by commas. If no file descriptors are
typed, it will dump everything on your area. Asterisks may be used
as file names, file name extensions, project names, or programmer
names. An asterisk means any name will work. For example, the
command "DUMP" and "DUMP *.*" will both cause everything on your disk
area to be dumped. The command "DUMP *.REL,*.DMP" will cause just
your .REL files and your .DMP files to be dumped. The command "DUMP
[S,SYS]" will cause everything on S,SYS's disk area to be dumped.
Normally, the files are written on magnetic tape drive 0. This
may be changed by including "ON MTAn" at the end of the command line
where MTAn is the name of the magnetic tape drive you wish to use.
For example, the command "DUMP FOO,BAZ,SINE ON MTA1" would cause the
files FOO, BAZ, and SINE to be written on magnetic tape drive 1. The
command "DUMP ON ON MTA1" would cause the file named ON to be written
on drive 1.
If the magnetic tape drive remote-local switch is in the local
position, or if the wrong number is dialed at the top, the system
will type "DEVICE MTAn OK?" which means it has detected something
wrong with the tape before it attempted to write on it. You may
proceed by remedying the error condition and by typing CONTINUE.
The DUMP command as well as the RESTORE command have the command
file option (see section I.B.4.f.3). You may say "DUMP @FOO" and if
the file FOO contained the line "SINE[S,DWP],BAZ" then the file SINE
on S,DWP's disk area and the file BAZ would be dumped.
RESTORE
This command causes a mag. tape to be read and all the files
written on your disk area. Normally, it will only restore files that
have the same project-programmer name as the one you logged in under.
You may override this and have it restore any files by typing the
project-programmer name in brackets after the command, or by typing
file names with project-programmer names. For instance, the command
"RESTORE [1,FOO],[S,SYS]" would search the tape for any file with the
project-programmer name 1,FOO or S,SYS and restore all those files on
your disk area. The command "RESTORE A,SINE[S,DWP]" would restore
the file A from your disk area and the file SINE from S,DWP's disk
area.
This command normally reads from MTA0, but you may cause it to
read from any drive by including "FROM MTAn" at the end of the
command line, where MTAn is the name of the magnetic tape drive you
wish to restore from. For example, the command "RESTORE FROM MTA1"
would cause everything with your project-programmer name on MTA1 to
be restored onto your area. The command
I.B.11-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
"RESTORE FOO,*.REL,SINE[S,DWP] FROM MTA2" would cause the file FOO
from your area, all .REL files from your area, and the file SINE from
S,DWP's disk area all to be read from magnetic tape drive 2 onto your
disk area.
There is also a command file option on this command. See section
I.B.4.f.3 for details about command files.
BACKSPACE
This command causes magnetic tape drive 0 to be backspaced by one
file. You may make it backspace several, let us say n, files by
typing the number, n, after the command. You may backspace a
different tape drive by including the name of the drive after the
command. You may cause it to backspace several records, instead of
several files, by including the word "RECORD" in the command string.
For example, "BACKSPACE 5" would cause MTA0 to be backspaced 5
files."BACKSPACE MTA1 3" would cause magnetic tape drive 1 to be
backspaced 3 files. "BACKSPACE RECORD 2" would cause MTA0 to be
backspaced 2 records. The three arguments, RECORD, number of
backspaces, and tape name, may come in any order, and any
combination. If RECORD is ommitted, backspacing is done by files.
If the number is ommitted, 1 is assumed. If the tape name is
ommitted, MTA0 is assumed.
ADVANCE
This is the same as BACKSPACE in every way, except that it causes
the tape to be advanced over records or files rather than backspacing
over them.
REWIND
This command causes magnetic tape drive 0 to be rewound. You may
rewind any tape drive by including the name of the drive you wish to
rewind after the command. The command "REWIND MTA1" would cause
drive 1 to be rewound. The command "REWIND" would cause drive 0 to
be rewound.
If you are logged in under 1,2 when you give a DUMP command, the
entire disk will be dumped regardless of the exact command. Any file
descriptors you may type will be ignored. Under 1,2 the command
assumes a file descriptor *.*[*,*]. You may dump on any tape by
including "ON MTAn" as usual. When you are dumping the entire disk,
there are two options you may be interested in.
Normally, the dumper will not allow you to dump the disk twice in
one day. This is because it uses the date last dumped to tell how
I.B.11-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
far it has gotten if you have to restart it after a system crash.
You may override this check by including the word DAMMIT in the
command string. "DUMP DAMMIT" will cause the entire disk to be
dumped regardless of how many times it has been dumped that day.
If you restart dumping the entire disk after a system crash, you
may find that it takes quite a while for the dumper to figure out
exactly where it was. You may speed this process up by telling it
where it was by giving the file name and project-programmer name
followed by the word PICKUP. The command "DUMP [1,FOO] PICKUP" would
cause the dump to be restarted at the first file on 1,FOO's
directory. The command "DUMP SINE[S,JAM] PICKUP" would cause dumping
to resume at the file SINE on S,JAM's disk area.
IDUMP
This command causes an incremental dump of the disk to be made.
In this mode, only the files which have been created since the last
total dump are dumped. This command is subject to the DAMMIT and
PICKUP specifications also.
If you are a random user, this command does an incremental dump
of your area, and the DAMMIT and PICKUP switches are not applicable.
If you are logged in under 1,2 this command does an incremental dump
of the entire disk and is subject to the switches.
TLIST
This command causes the contents of an entire tape to be printed
out on the teletype. You may put the listing out to the line printer
or to a file by including the device name and file name in the
command line. The command "TLIST LPT:" will cause the listing to
appear on the line printer. The command "TLIST DSK:FOO" will cause
the listing to be put out to a file called FOO on your disk area.
You may list another tape besides MTA0 by including the tape name
in the command line. "TLIST MTA1 will cause MTA1 to be listed on the
teletype. "TLIST MTA1 LPT:" will list MTA1 on the line printer.
You do not have to list the entire tape if you do not want to.
You may specify the number of files you want listed by including a
number in the command line. The command "TLIST 3" will list the
names of the first three files from MTA0 on the teletype. All of
these specifications may be used at once. "TLIST 2 MTA2
DSK:BAZ[1,FOO]" will list the names of the first two files from MTA2
on a file called BAZ on 1,FOO's disk area.
EOT
This command causes the tape to be spaced to a position beyond
the end of the last file. A tape drive may be specified. "EOT MTA1"
will cause tape drive 1 to be spaced to the end of tape. "EOT" by
I.B.11-3
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
itself will assume you mean drive 0. The position of the tape is the
'logical' (as opposed to physical) end of tape. It is not the last
six inches of the physical tape, but is just beyond the last data on
the tape. The position is such that if you do a DUMP after an EOT,
you will have to give two RESTORE commands to get all the files on
the tape. The effect is that you have two 'logical' tapes on one
physical reel. If you wish to concatenate the logical tapes into one
logical tape, you must give a BACKSPACE command before you give the
DUMP command.
I.B.11-4
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.C USAGE OF CONSOLES OTHER THAN THE MODEL 33 TELETYPE
I.C.1 MODEL 35 TELETYPE
The only difference between the models 33 and 35 teletypes is
that the model 35 has a hardware tabbing and page eject (form feed)
mechanism, plus the keyboard is arranged slightly differently. The
paper it uses has holes along the edges, rather than being a
continuous roll.
When using the model 35, you should type control-P to the system
to inform it that you are using this teletype so it will not attempt
to type spaces when you type a TAB.
I.C.2 MODEL 37 TELETYPE
This machine can type and print both lower and upper case
letters. If you want to use lower case, you must first type
control-F to tell the system to pass lower case letters unchanged.
There are discrepancies between the inscriptions on the keys of
the model 37 and the actual characters those keys type. The
following is a list of the character typed and the inscription on the
key:
CHARACTER INSCRIPTION
← US
↑ RS
alt-mode PREFIX
rubout DELETE
I.C.3 III DISPLAY CONSOLES
These devices have no "CTRL" keys. There are two keys marked
CONTROL-1 and CONTROL-2, but they don't do the same thing as the
"CTRL" key on the teletype. Instead, you type the actual character
that the control character stands for. Section I.C.5 has a complete
list of teletype characters, their display console character
representation, and their octal values.
Please notice that all the keys on the III display keyboards are
legal characters and that depressing ctrl 1 or ctrl 2 with (for
example) the letter "O" is not the same as control-O. Control-O on
the teletype is ∂ on the III keyboard, and typing ∂ on the III
display keyboard does not produce the effect of control-O.
Since there is no actual CTRL key, there are special provisions
for typing the various special characters. This is a short list of
the methods. The symbol <ESC> will be used to denote <ctrl 1>VT,
which means the ctrl 1 key depressed simultaneously with the vertical
tab key.
control-U
I.C.3-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
To get the effect of control-U, that is, deleting the line you
just typed, type <ctrl 1>LF, which is the CTRL 1 key depressed
simultaneously while typing a line feed.
control-O
This can be done by typing <ctrl 2>LF, which is the CTRL 2 key
held down while typing line feed. You can get out of control-O mode
by typing <ESC>-O, that is, the escape character followed by a minus
sign followed by the letter "O".
control-Z
You get the effect of control-Z by typing <ctrl 1, ctrl 2>LF,
which is both CTRL keys held down while a line feed is typed.
control-F
To get lower characters, type <ESC>F, which is the escape
character followed by the letter "F". To return to upper-case only
mode, you type either another <ESC>F or you may also type <ESC>-F.
The display consoles also have discrepancies between the
inscriptions on the keys and the characters those keys type. This
list covers them all:
CHARACTER INSCRIPTION
\ upper case ¬
rubout BS
alt-mode blank key
control-C CALL
There is another good feature of the III displays. Before you
type an activation character (carriage-return, line-feed, etc.), and
if your program is reading in line mode like most do, you may edit
your line before you send it to the program. In addition to the
usual rubout and control-U type functions, you may insert in the
middle of the line or whatever. All this is controled by special
characters typed with ctrl-1 or ctrl-2 (or both) keys held down.
Any line editor command where it makes sense may be preceeded by
a number (typed while ctrl-1 is held down) which is a decimal repeat
arguement. The command is executed that many times. The default
option is, of course, 1.
If you are in the middle of a line and type characters with no
control key held down, the characters you type will overwrite the
characters on the line.
<ctrl-1>SPACE
Spaces you forward in the line.
I.C.3-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
<ctrl-1>BACKSPACE
Moves you backwards through the line.
BACKSPACE
This, of course, deletes previous characters, but it is included
here because it applies when you are in the middle of a line also.
<ctrl-1>I
This command is only valid in the middle of a line, because if it
were at the end of a line, it would represent a 9-bit character for
the program, not a line editor command. This command allows you to
insert extra characters in the middle of a line. To get out of
insert mode, type any <ctrl-1> command.
<ctrl-1>D
This command is only valid in the middle of a line. This deletes
the character at the current editing position forward, as opposed to
<ctrl-1>BACKSPACE, which works backwards.
<ctrl-1>TAB
This spaces you to the end of the current line.
<ctrl-1>S<character>
This causes the current editing position, hereafter called the
"pointer", to be advanced to just before the first occurance of the
character <character>.
<ctrl-1>K<character>
This causes the deletion of all the characters from and including
the character at the pointer position and up to but not including the
character <character>.
<ctrl-1>carriage-return
This gets back the last line you typed, if it is still around.
This way you may type a line twice if you wish. Or you may get the
previous line back and edit it.
I.C.4 ARDS STORAGE-TUBE DISPLAY
The ARDS storage-tube display is very similar to a model 37
teletype when the display features are not used, in that it is
capable of typing both upper and lower case letters, and it has a
"CTRL" key.
The principal difference between this device and a teletype is
that the printout may run off the bottom of the screen! If it does
so, you may press the "ERASE" button on the keyboard, which will
discard your current printout and reposition the cursor at the top of
the screen. The page eject (form feed) character will do this also.
Again, there is a difference between what key you type and what
I.C.4-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
character is printed, as is shown here:
CHARACTER INSCRIPTION
alt-mode ~ (or control-[, or })
← _
↑ ~
I.C.5 STANFORD CHARACTER SET
I shall now present a list of the available characters at
Stanford. All of these characters may be printed on the III display
consoles and on the line printer. There are representations of each
of these characters to the text editor, STOPGAP, which allow entry of
characters which would normally be intercepted by the system. The
octal values of the characters is included for completeness' sake.
An uparrow (↑) will be used to indicate a control character, that is,
↑C will be used to mean control-C.
CHARACTER TELETYPE STOPGAP OCTAL
null none none 000
↓ ↑A ?! 001
α ↑B ?" 002
β ↑C ?# 003
∧ ↑D ?$ 004
¬ ↑E ?% 005
ε ↑F ?& 006
π ↑G ?' 007
λ ↑H ?( 010
tab ↑I tab 011
line-feed line-feed line-feed 012
vertical tab vertical tab vertical tab 013
form-feed ↑L form-feed 014
carr.-ret. return none 015
∞ ↑N ?) 016
∂ ↑O ?* 017
⊂ ↑P ?+ 020
⊃ ↑Q ?, 021
∩ ↑R ?- 022
∪ ↑S ?. 023
∀ ↑T ?/ 024
∃ ↑U ?0 025
⊗ ↑V ?1 026
↔ ↑W ?2 027
_ ↑X ?9 030
→ ↑Y ?6 031
~ ~ ?3 032
≠ ↑[ ?= 033
≤ ↑\ ?< 034
≥ ↑] ?> 035
I.C.5-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
≡ ↑↑ ?7 036
∨ ↑← ?8 037
space space space 040
! ! ! 041
" " " 042
# # # 043
$ $ $ 044
% % % 045
& & & 046
' ' ' 047
( ( ( 050
) ) ) 051
* * * 052
+ + + 053
, , , 054
- - - 055
. . . 056
/ / / 057
0 0 0 060
1 1 1 061
2 2 2 062
3 3 3 063
4 4 4 064
5 5 5 065
6 6 6 066
7 7 7 067
8 8 8 070
9 9 9 071
: : : 072
; ; ; 073
< < < 074
= = = 075
> > > 076
? ? ?? 077
@ @ @ 100
A A A 101
B B B 102
C C C 103
D D D 104
E E E 105
F F F 106
G G G 107
H H H 110
I I I 111
J J J 112
K K K 113
L L L 114
M M M 115
N N N 116
I.C.5-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
O O O 117
P P P 120
Q Q Q 121
R R R 122
S S S 123
T T T 124
U U U 125
V V V 126
W W W 127
X X X 130
Y Y Y 131
Z Z Z 132
[ [ [ 133
\ \ \ 134
] ] ] 135
↑ ↑ ↑ 136
← ← ← 137
` none ?@ 140
a a ?A 141
b b ?B 142
c c ?C 143
d d ?D 144
e e ?E 145
f f ?F 146
g g ?G 147
h h ?H 150
i i ?I 151
j j ?J 152
k k ?K 153
l l ?L 154
m m ?M 155
n n ?N 156
o o ?O 157
p p ?P 160
q q ?Q 161
r r ?R 162
s s ?S 163
t t ?T 164
u u ?U 165
v v ?V 166
w w ?W 167
x x ?X 170
y y ?Y 171
z z ?Z 172
{ none ?[ 173
| | ?: 174
alt-mode alt-mode none 175
⎇ ⎇ ?] 176
rubout rubout none 177
I.C.5-3
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
At this point, it should be pointed out that the special
characters mentioned in section I.B.10 are intercepted if typed on a
teletype by the system. The only way to get them in from a teletype
is to use the STOPGAP representation. Also, there are three
different characters recognized by the system as alt-mode. These are
character codes 032, 175, and 176. The only way to get these
characters into a program unless you are a III display keyboard is
through their STOpGAP representations.
I.C.5-4
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.D HANDLING OF OTHER DEVICES
I.D.1 CARE AND FEEDING OF THE LINE PRINTER
The line printer is a strange beast with many lurking ailments.
First of all, it has three buttons on one side (labled START, STOP,
and TOP OF FORM) and it has numerous buttons on the other side,
including a duplication of the mentioned three. If your listing
fails to come out, check the following things: Is the START light on?
If not, press START to make it come on. If it still refuses to
print, check the side with all the buttons to see if there is an
error condition. There are two error conditions you should take note
of. One is when the PAPER LOW ALERT light is on. This is as good as
being out of paper, in which case, the NO PAPER light will come on.
In either of these two cases, the paper supply must be replenished.
You do this by either calling a technician, or doing it yourself.
The only tricks here are to get all four sprocket wheels engaged with
the paper, get the yoke open and closed successfully, and get the top
of a form near the crease in the paper guide behind the yoke. When
all this is done, you may restart the printer by hitting START, and
typing CONTINUE to your program.
There exists a 'hung' condition on the line printer. It can be
identified by the MANUAL PRINT light coming on when you press START.
This condition is called START-STOP-MANUAL PRINT. It is cured by
pressing STOP then MANUAL PRINT, then START again and again in that
order until the condition goes away. If the condition persists,
there is a true CLEAR button on the inside of the machine. You open
the right-most (as you face the side with the many buttons) panel.
You will see in the upper left corner of this panel a button called
CLEAR. If that doesn't do the trick, call a technician.
There is another red light that may come on. If ALARM STATUS
comes on, call a technician immediately, and shut the line printer
power off. This is a real no-no. The YOKE OPEN light will come on
if you decide to change the paper yourself, but it should go away
when you close the yoke.
When your listing is done, you can eject extra blank pages, if
you wish, by pressing STOP, then the TOP OF FORM button, then
pressing START again. IF YOU DO NOT PRESS START AGAIN, EVERYONE IN
THE COMPUTER ROOM WILL GET VERY MAD AT YOU!!!!
I.D.2 MOUNTING DECTAPES
To mount a dectape, first place it on the left-hand reel of one
of the four drives. A drive is a pair of reels. You thread the tape
over the top of the silvery tape guide, and around the take up reel.
You have to wind it around the take up reel yourself. Be sure there
are plenty of turns or the tape will come off the take up reel. When
you are sure it is secure, then direct your attention to the two
switches. One switch has three positions: off, write-lock, and
I.D.2-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
write. You flip this switch to write-lock if you just want to read
the tape, or to write if you wish to read and write the tape. You
may then space the tape forward if you like by means of the other
switch.
Dismounting dectapes is a bit harder. First you use the
direction switch to wind your tape all the way off the take up reel,
then you throw the other switch to the off position. You can then
take your tape off by hand (with difficulty) or you can use the
little black piece of metal to pry it off. This is usually quicker.
I.D.3 MOUNTING MAGNETIC TAPES
First, you must decide whether you want to write on the tape or
not. If you do, you must place one of the yellow write-enable rings
in your tape. After that, you place your tape on the top hub and
twist the handle in the hub clockwise to tighten your reel down.
There is a switch between the two reels with three positions: brakes,
neutral, and start. You will soon notice that you cannot turn either
of the reels by hand. You must first set the switch to the brakes
position to release the reel brakes. Then unwind about a yard of
tape to thread the machine with. Run the tape through the slot and
over the top of the take up reel. The take up reel turns clockwise,
so wind some tape on by hand and give it several turns, holding the
switch to the brake position all this time. When this is done, take
the slack out of the tape then throw the switch to the start
position. The tape will hiss and spin and position itself. You have
to hold the start switch down for a while, until it stops hissing, or
it will not finish positioning itself.
Now we are ready to look at the buttons. There is an on-off
button. If the drive were off, you would not get any response when
you set the other switch to start or brakes. The next button is the
remote-local button. When this is in local, you will not be able to
use the drive from the computer, but the forward-reverse-rewind
buttons work. You may rewind your tape by putting the remote-local
switch in local and pressing the rewind button. To allow the
computer to access the tape, you must put the remote-local switch in
remote. The forward-reverse-rewind buttons are disabled in this
position.
Note: do not attempt to take the bottom reel off, you can't.
When you are done, you should rewind your tape. You dismount the
tape by pressing the start-brakes switch to brakes and waiting until
the hiss has gone. You may then wind your tape off by hand. You
dismount the tape reel by unscrewing the hub, by turning it in the
counter-clockwise direction.
I.D.3-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
I.E SUMMARIES
I.E.1 ALPHABETICAL COMMAND INDEX
A few definitions are in order concerning this part. DEV will be
used to designate a legal device name. LDEV will designate a logical
device name. FILE is any file name. EXT is any file extension.
[PJ,PG] is a project-programmer name enclosed in brackets. Fn (or
F1, F2, and so on) represent file descriptors, which follow the form:
{DEV:} FILE {.EXT} {[PJ,PG]}, where braces ({}) represent optional
arguments. If DEV is missing, DSK is assumed. If .EXT is missing,
blank extension is assumed (except for the COMPILE commands). If
[PJ,PG] is missing, the project-programmer name you logged in under
is assumed.
COMMAND ABBREV FORM SECTION
ADVANCE AD {RECORD} {MTAn} {n} I.B.11
ASSIGN A DEV {LNAME} I.B.8.c
ATTACH ATT JOB [PJ,PG] I.B.9
BACKSPACE BA {RECORD} {MTAn} {n} I.B.11
CCONTINUE CC I.B.6
COMPILE COM {F1}{,F2} . . . {,Fn} I.B.4.a
CONTINUE CONT I.B.6
COPY COP {F1←}F2{,F3} . . . {,Fn} I.B.3
CORE C {n⎇ I.B.8.h
COREX I.B.7
CREATE F1 I.B.3
CREF I.B.4.f.2
CSTART CS {n} I.B.6
DAYTIME DA I.B.7
DDT DD I.B.6
DEASSIGN D {DEV} I.B.8
DEBUG DEB {F1}{,F2} . . . {,Fn} I.B.4.b
DELETE DEL I.B.3
DETACH DET I.B.9
DIRECTORY DIR {DEV}{[PJ,PG]} I.B.3
DUMP DU {F1}{,F2} . . . {,Fn} {ON MTAn} I.B.11
EDIT ED {F1} I.B.3
EOT EO {MTAn} I.B.11
EXECUTE EX {F1}{,F2} . . . {,Fn} I.B.4.d
FINISH F DEV I.B.8.e
GET DEV:FILE{.EXT}{[PJ,PG]}{n} I.B.5
IDUMP I {F1}{,F2} . . . {,Fn} {ON MTAn} I.B.11
KJOB K I.B.2
LIST LI F1{,F2} . . . {,Fn} I.B.3
LOAD {F1}{,F2} . . . {,Fn} I.B.4.e
LOGIN L I.B.2
PJOB PJ I.B.7
PPPN PP I.B.7
R FILE{.EXT} {n} I.B.5
I.E.1-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
REASSIGN REA DEV n I.B.8
REENTER REE I.B.6
RENAME REN F1=F2 I.B.3
RESOURCES RESO I.B.7
RESTORE REST {F1}{,F2} . . {,Fn} {FROM MTAn} I.B.11
REWIND REW {MTAn} I.B.11
RUN RU DEV:FILE{.EXT}{[PJ,PG]}{n} I.B.5
SAVE SA DEV:FILE{.EXT}{[PJ,PG]}{n} I.B.5
SEND SE PG I.B.3
SLEVEL SL {n} I.B.8.g
START S {n} I.B.6
SYSTAT SYS I.B.7
TALK TA TTYn I.B.9
TLIST TL {n} {MTAn} {F1} I.B.11
TRANSFER TRA {F1←}F2{,F3} . . . {,Fn} I.B.3
TRY {F1}{,F2} . . . {Fn} I.B.4.c
TYPE TY F1{,F2} . . . {Fn} I.B.3
ZERO Z DEV I.B.3
I.E.2 LOADER SWITCHES
By including a percent sign (%) followed by a letter, or a number
and a letter, in the command string of one of the LOAD, TRY, EXECUTE,
or DEBUG commands, one can give instructions to the loader in a
direct manner. This is a list of the legal letters and their
meanings.
%A - Causes a listing of all global symbols to be printed.
%B - Do not shrink core when done loading.
%nB - Adjust to nK of core when done loading.
%D - Load DDT.
%E - Start up program when done loading.
%F - Enter library search mode.
%G - Begin loading, make final links and exit.
%H - Load and start RAID.
%I - Ignore starting address of this program.
%K - Save 16 words of symbol table space for DDT defined symbols.
%nK - Save n words of symbol table space.
%L - Enter library search mode.
%M - Print storage map.
%N - Leave library search mode.
%nO - Set starting address to n, absolute.
%P - Inhibit automatic library search for undefined globals.
%Q - Allow automatic library search.
%S - Load symbol table also.
%T - Load and start DDT.
%U - Print current list of undefined globals.
%V - Load RAID.
%W - Do not list all globals.
I.E.2-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
%X - Rewind tape before use.
%Z - Reinitialize loader.
I.E.3 ERROR MESSAGE INDEX
This is a short summary of the error messages the system can
give. The convention used below is that the symbol "XXX" stands for
a device name, such as "LPT" or "DTA3" or "DSK" or any legal device
name. The symbol "FNAM.EXT" stands for any legal file name and file
name extension that you may have typed in a command. The symbol "#"
stands for a number. Some of these messages are self-explainatory.
Messages from the system itself . . .
ADDRESS CHECK FOR DEVICE XXX
This means you were operating device "XXX" and one of
the associated addresses (like buffer ring addresses, or
dump mode command addresses or such) lies outside
the bounds of your program.
ALREADY ASSIGNED TO JOB #
If you try to assign a device that some
other job (job # to be exact) has already
assigned, you get this message.
BAD DIRECTORY FOR DEVICE XXX
You get this only from dectapes, and it can occur if
the system can not read or write the directory without
getting some kind of error. Note that this can occur
if you write on a write-locked tape.
BUSY
If you try to talk to a teletype that is in use
you get this message.
CAN'T ATT DEV
If devices have been detached from the system
and you mistype their name when you try to
re-attach them, you get this message.
CAN'T CONTINUE
This means your program was terminated with
an error and is not allowed to continue.
CAN'T DET DEV
When you attempt to detach a device from the
system that is still being used by someone, or
is still assigned to someone, you get this.
CONS TRAP
You get this if your program is running on the PDP-6 and
executes a "CONS" instruction that causes either the
free storage list to be exhausted, or causes the cons
counter to overflow.
CORE IS FULL
I.E.3-1
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
You get this in the non-disk system
if you typed a command which requires more
core than is available.
DEVICE XXX Has No Output Buffer Header, UUO AT USER #
DEVICE XXX Has no Input Buffer Header, UUO AT USER #
DEVICE XXX Buffer header address check, UUO AT USER #
DEVICE XXX BUFFER TOO LARGE, UUO
DEVICE XXX OK?
This message means the device "XXX" was disabled at the
time you requested it. For the line printer, it means it is
turned off or out of paper or something. For the mag. tapes,
it means there is no tape mounted, or the switch is in "LOCAL",
or something. And for the disk, it means there is no more
disk space left. If you correct the ailing situation, you
can proceed (retry the operation) by saying "CONTINUE".
DEVICE XXX NOT AVAILABLE
This results from attempting to save a program
on a device that some else is using.
DIRECTORY FULL
This results from attempting to save a file on
a tape that can't hold any more file names.
In other words, you get this when your dectape
is full.
DISK ERROR; SENSE DATA IS:
This message, followed by a bunch of numbers, means the
disk cannot read (or write) your file right now.
ERROR IN JOB #
This usually proceeds some error message the system is
about to print out. "#" is probably your job number.
ERROR IN MONITOR
This is usually preceeded and followed by a system
crash and means the system is not feeling well.
Finish What?????
When you attempt to finish a device that is
not initialized by your program, you will
get this message.
FNAM.EXT NOT FOUND
If you attempt to get or run a program that is
not on the device you said it was on, or under a different
project-programmer number, you can get this.
FNAM.EXT NOT A DUMP FILE
This occurs from trying to get or run a file
that is not a saved program but is something
else, like perhaps a text file.
HALT AT USER #
This means your program halted. You can proceed by
typing "CONTINUE".
HUNG DEVICE XXX
This results from your referencing a device which
I.E.3-2
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
did not respond within a certain length of time, usually
about 30 seconds. The system then decides that
this device is not functioning and gives you this
message.
ILL INST. AT USER #
Virtually the same as ILLEGAL UUO.
ILL MEM REF
This message and the following few occur if your
program does something silly. In this case, if your
program references a memory location outside of
its bounds.
ILLEGAL DATA MODE FOR DEVICE XXX
This means you tried to "INIT" or "OPEN" a device
in a mode that is not legal, such as, dump mode for
teletype and line printer is illegal. Modes 0,1, and
10 are usually legal.
ILLEGAL JOB NUMBER
To attach a job or get a job's run time, you
have to type a job number. If that number is
greater than the maximum number of jobs the
system can hold, you get this message.
ILLEGAL UUO AT USER #
This means your program executed an illegal instruction
at location "#" in your core image.
INPUT DEVICE XXX CANNOT DO OUTPUT
If you try to do output on a device that can only
do input, you get this.
IO TO UNASSIGNED CHANNEL
This comes from trying to do an "OUTPUT", "INPUT",
"OUT" or "IN" to a device that your program
has not initialized.
JOB CAPACITY EXCEEDED
This occurs when you type a command which
attempts to log you in ("L" or "SYS")
and the machine cannot handle any more jobs.
JOB NEVER WAS INITIATED
If you say "KJOB" to a virgin console, or
two times in a row to another console, you
get this message because you are not logged
in. You can also get this from trying to attach a
job that is not logged in.
LOGICAL NAME ALREADY IN USE,
If you try to assign two devices
to the same logical name, you get this.
It assigns the device anyway and clears the logical
name. It types "XXX ASSIGNED" after that.
LOGIN PLEASE
You get this message if you type a command
to the monitor which requires you to be
I.E.3-3
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
logged in and you are not logged in.
NO CORE ASSIGNED
You get this in the non-disk system if the
command you typed requires core.
You get this in the disk system when you give
a program start command, (S, CS, REE, or DDT)
when you have no core.
NO DDT
This is typed if you typed DDT and there is not
really a copy of DDT or RAID in your core image.
NO REENTER ADDRESS
If you say "REENTER" or "REE" when the job
has not specified a reentry address, you
get this.
NO STARTING ADDRESS
If you type S, CS, or REE when the starting
address or reenter address of your program is zero,
you will get this message.
NO SUCH DEVICE
This results from attempting to assign a
device that the system does not know about
or whose name is misspelled.
NON EX MEM
You get this usually due to an error in the monitor itself.
OUT OF BOUNDS
This occurs when you try to examine a location
in memory that is not in your core image.
OUTPUT DEVICE XXX CANNOT DO INPUT
If you attempt to to input on an output device you
get this message. Such as, input from the line printer
is meaningless and gives you this message.
PC EXCEEDS MEM BOUND
This occurs if your program jumps outside of its bounds.
PDL OV
This means your program did a "PUSH" or a "POP" that
made the pushdown list either underflow or overflow, i.e.
made the left half of your pushdown pointer change
sign.
PLEASE KJOB OR DETACH
If you try to attach a job when you
already have a job initialized at that
teletype, this message is typed.
PLEASE TYPE ↑C FIRST
If you are running a job and you type a command
which requires that you not be running,
it will type this message.
Project-programmer number mismatch
When you attach a job, you must type a
project-programmer number. If this does
I.E.3-4
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
not agree with the system's copy of the
project programmer number for that job,
it will print this message.
SPACEWAR LOSSAGE
If you get an ILL MEM REF, a PDL OV, a CONS TRAP, or
a NXM from your spacewar job. You also get
it from trying to start two spacewar jobs on the same
processor, or from trying to start a spacewar job with
a 0 tick time.
SWAP UUO ERROR - Starting address out of bounds.
SWAP UUO ERROR - Address check for goodie table
TOO FEW ARGUMENTS
You get this if you type a command and the system
is expecting you to type in more than you did.
See the manual or ask someone.
TRANSMISSION ERROR
If during a save, get, or run command, the system
gets parity errors from the device, or
is unable to read your file in some other
way, this message is typed. It can mean something
as simple as trying to write on a write-locked
tape.
TTY# ALREADY ATTACHED
When you attempt to attach a job to a teletype
and the job is already attached to some teletype,
(TTY# to be exact) you get this message.
UUO AT EXEC #
This occurs when you typed a command that causes the
monitor to execute its own UUOs (finish, save, get, etc)
and an error occured during one of them.
UUO AT USER #
This also accompanies error messages and tells the location
in your program where the UUO was that was the last
instruction your program executed before the error occured.
XXX WASN'T ASSIGNED
You can get this from attempting to deassign
device "XXX" when you did not previously assign
it with a console command. You also get this from
trying to reassign a device you don't own.
XXX CAN'T BE REASSIGNED
If you try to reassign a device that your
program is not finished with, you get this.
WASN'T DET
You get this if you attempt to attach a device
that has not been detached from the system.
#K OF CORE NEEDED
In the non-disk system, you get this message if
the program you are trying to get or run needs
more core than you have assigned at the moment.
I.E.3-5
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
Error messages that originate in the III display routines . . .
illegal piece of paper
Illegal page size spec.
I am sorry. The DPY you have requested ...
This occurs if you attempt to execute display UUOs
and you are not at a display.
dpy prgm too big.
Illegal instr. address.
JMS not legal; use JSR.
Total DPY buffer space exceeded.
$$ Error in user dpy prgm; dpy instr at
Errors that originate in the disk service routine . . .
DISK IS FULL - EVERYBODY LOOSES!!
BAD RETRIEVAL
This means the file you were trying to read or write
is garbaged on the disk in such a way that you may
no longer access it. The only thing you can do is
delete it, and the only way you can do that is to do
an ENTER on it (see section πII.D.3π).
LOOKUP AND ENTER HAVE DIFFERENT NAMES
Errors from COMPILE commands . . .
NO SUCH FILE - FNAM.EXT
This is given when it can't locate a particular
source or .REL file. The extension it types out
is not necessarily accurate.
TOO MANY SWITCHES
The COMPILE commands can only handle a
finite number of switches. This means you
have exceeded the limit.
TOO MANY NAMES
This occurs only using the plus sign (+)
construction and means what it says.
DISK NOT AVAILABLE
This is evil and should be brought to someone's
attention if it happens.
OUTPUT ERROR
Equally evil. Means it got an error while writine
a QQxxxx.RPG file.
INPUT ERROR
Means the file following your at sign (@) has
I.E.3-6
SAILON NUMBER 54.2 MONITOR MANUAL - CHAPTER I
errors on it. It should be rewritten.
PROCESSOR CONFLICT
This happens when you give inconsistant processor
declarations, like "COM FOO.MAC+BAZ.F4". This
means treat like one big assembly, but in two
different languages. (???)
COMMAND ERROR
General catch-all error response. Means the syntax of
your command is screwed up somehow. Alter the
syntax and try again.
NESTING TOO DEEP
Means the depth of the at sign (@) construction
has gone too far.
UNRECOGNIZABLE SWITCH
You have given it a switch it did not recognize.
FILE IN USE OR PROTECTED
It could not delete or write one of the
QQxxxx.RPG files. Can happen if two people are
running logged in as the same project-programmer
name.
DEVICE NOT AVAILABLE - XXX
Means someone is already using the device. Should
not happen with the disk.
I.E.3-7