Subsystem maintenance utilities
This package is a collection of utility commands which are primarily
intended for supporting and maintaining the Edinburgh Subsystem.
Subjects covered are:
1 Updating members of pdfiles
2 Messages of the day
3 Altering the ALERT time
4 Subsystem basefiles
5 Subsystem option files
6 Handling of user suggestions
7 Checking partitioned files
Updating members of pdfiles
The command UPDATEPD is used to add a new member to, update an
existing member in, or delete a member from, a pdfile which may be in
use by other processes.
The command takes the form:
UPDATEPD(pdfile_member,option)
where:-
pdfile_member - specifies the member to be operated on
option - if null, the member must already exist
- if N, the member must not already
exist
- if D, the old member is simply deleted.
It is assumed that any file which is to be a replacement for a member
has the same name as the member itself, and resides in the same
process.
Since the most common use of this utility is to update members of
SUBSYS.SYSTEM, the pdfile part of the parameter defaults to SYSTEM.
Messages of the day
Three commands are provided to alter the 'messages of the day' which
are displayed at process start-up. These are described in the
following Sections:
Changing the foreground message
The command SETFMESS is used to change the 'message of the day'
displayed to foreground users when they log on. This special command
is necessary to avoid problems if the file is currently in use, and
to avoid disturbing the first line of the message, which always
carries the date and time of the most recent ALERT text.
SETFMESS takes no parameters. The user is prompted for the message,
which should be terminated by a colon (:) on a line on its own. An
opportunity is then given to amend the message if it is not
satisfactory.
Changing the background message
The command SETBMESS is used to change the 'message of the day'
displayed to background users when their job starts. This special
command is necessary to avoid problems if the file is currently in
use, and to avoid disturbing the first line of the message, which
always carries the date and time of the most recent ALERT text.
SETBMESS takes no parameters. The user is prompted for the message,
which should be terminated by a colon (:) on a line on its own. An
opportunity is then given to amend the message if it is not
satisfactory.
Changing both messages
The command SETBOTH is used to change both 'messages of the day'
displayed to users on process start-up. This special command is
necessary to avoid problems if the file is currently in use, and
to avoid disturbing the first line of the message, which always
carries the date and time of the most recent ALERT text.
SETBOTH takes no parameters. The user is prompted for the message,
which should be terminated by a colon (:) on a line on its own. An
opportunity is then given to amend the message if it is not
satisfactory.
Altering the ALERT time
The command SETALERT is used to alter the date and time given in the
'Latest ALERT' message which forms a permanent part of the message
of the day, for both foreground and background users.
SETALERT takes up to two parameters:-
1) The time to be used in the message. Exactly four characters are
expected, i.e.: hhmm. If this parameter is omitted, a prompt
is issued for it.
2) The date to be used in the message. Standard EMAS date format is
assumed, i.e.: dd/mm/yy. If this parameter is omitted, the
current date is assumed.
Subsystem basefiles
The Edinburgh Subsystem resides in a file which is commonly called
the 'basefile'.
This Section describes the structure of the basefile, and how to
create a new one.
Basefile structure
The basefile for the Edinburgh Subsystem is a partitioned file which
contains three members:
a) The subsystem object file, with the code fixed up (using the FIX
utility) to start at segment 32, and the GLA fixed up to start at
the next free segment after the code.
b) A default 'option' file, connected and used in the absence of the
user's own option file. When the user sets a non-default option,
a copy of the default file is made (as SS#OPT), and the modified
option included in the copy.
c) A directory file, containing the entry points found in the
subsystem object file. This is the first directory searched by the
loader.
The MAKEBASEFILE command
This command takes up to three parameters. These are:
1) The name of the subsystem object file to be used for input.
2) The name of the default option file to be included in the
completed basefile.
3) The destination of the completed basefile.
If any of these parameters is omitted, a prompt is issued for it.
Subsystem option files
The Edinburgh Subsystem makes use of a file containing 'options' set
by the user to tailor his process to his own needs. This Section
describes how the initial option file used by the Subsystem is
created, and explains the entries in it.
Making the file
The command MAKEOPTIONFILE takes a single parameter, which is the name
of the option file to be generated. If this parameter is omitted, a
prompt is issued for it.
A series of prompts is then issued. A value for the appropriate option
may then be given, or the default setting invoked by simply typing
'return'. In the latter case, the actual value used is displayed,
for information.
The only exception to all this is the initial PARM setting - see
Section 5.2.1.
Description of options
Some of the values stored in the option file are integers, and others
are strings. Generally, they describe items such as the size of
a particular workfile, terminal characteristics, directory search
lists, etc.
The rest of this Section describes each option in detail.
Initial PARM setting
The value of this option is made the current PARM setting at log-on.
MAKEOPTIONFILE uses the value actually in force when the option file
is being created, as this saves it from having to decode large numbers
of PARM keywords.
Auxiliary stack size
The auxiliary stack is a separate file which is used to store large
data areas in user programs, due to the limitations on the size of the
run-time stack in the ICL 2900 series.
Keyword: AUXSTACKSIZE
Default value: 128 Kbytes
User stack size
The user stack contains all local variables needed by a normal user
program.
Keyword: USERSTACKSIZE
Default value: 252 Kbytes
Initialised stack size
The initialised stack is a pre-allocated part of the user stack. It
must be at least 32 Kbytes smaller than the user stack as a whole.
It is used as a data area by FORTRAN programs, but need only be
pre-allocated if it is intended to load FORTRAN programs from other
programs.
Keyword: INITSTACKSIZE
Default value: 100 Kbytes
Interactive terminal width
Subsystem commands such as ANALYSE and FILES assume the terminal
width given by this option when planning their output.
Keyword: ITWIDTH
Default value: 72
Array diagnostic level
When a diagnostic traceback is given for a program, the number of
elements of each array which are actually printed is given by this
option.
Keyword: ARRAYDIAG
Default value: 10
The session workfile
Many subsystem commands (particularly the compilers) make use of a
common workfile. The size of the workfile is determined by this
option setting.
Keyword: INITWORKSIZE
Default value: 256 Kbytes
Interactive terminal buffers
The subsystem requires two buffers for interactive terminal I/O.
One is used solely for input, and the other solely for output.
Two options are provided in order that the sizes of these buffers
may be altered.
Keyword (input): ITINSIZE
Default value (input) : 1 Kbyte
Keyword (output): ITOUTSIZE
Default value (output): 3 Kbytes
Terminal type
The terminal/screen control package (used by screen editors, etc.)
uses this option to determine how an interactive terminal is to be
driven.
In general, this option will not be set by means of the OPTION
command, although the keyword TERMINAL is provided. It is expected
that users will select the appropriate terminal type (which is an
integer) by means of a special command.
The default value supplied is zero, which should correspond to
'unspecified terminal'. This means that a user dialogue will be
entered when the screen control package is first used.
Brackets/Nobrackets
There are two different command formats which are accepted by the
subsystem:
a) Spaces in commands are not significant, and any parameters must
be enclosed in brackets.
b) Spaces in commands are not allowed, since one or more spaces are
used to separate the command from its parameters, which should
not be enclosed in brackets.
The actual format accepted depends on this option.
Keywords: BRACKETS and NOBRACKETS
Default value: BRACKETS
Recall of terminal I/O
The subsystem provides facilities for storing and retrieving
transactions on an interactive terminal. The three possible values
for this option are:
NORECALL - nothing is stored
TEMPRECALL - the current session is stored
PERMRECALL - the last few sessions are stored
Default value: TEMPRECALL
Suppression of blank lines
This option is provided to enable all blank lines output to the
terminal to be suppressed.
Keywords: BLANKLINES and NOBLANKLINES
Default value: BLANKLINES
Echoing of OBEY files
When an OBEY file is being processed, the subsystem may or may not
'echo' the resulting transactions on the user's terminal. This option
controls the amount echoed. The possible settings are:
NOECHO - nothing at all is echoed
PARTECHO - only 'Command:' lines are echoed
FULLECHO - all input is echoed, including program input
Batch jobs are treated by the subsystem as if they are effectively
OBEY files for the purposes of this option.
Foreground start-up file
This option allows the user to nominate a file of commands which are
to be OBEYed on foreground process start-up.
Keywords: NOFSTARTFILE and FSTARTFILE
Default value: NOFSTARTFILE
Background start-up file
This option allows the user to nominate a file of commands which are
to be OBEYed on background process start-up.
Keywords: NOBSTARTFILE and BSTARTFILE
Default value: NOBSTARTFILE
Pre-loading file
This option allows the user to nominate object files which are to
be 'pre-loaded' on process start-up. It is not currently implemented.
Active directory
This option selects the file which is to be used as the 'active
directory' for the INSERT and REMOVE commands, and associated actions.
This is the first user directory searched by the loader, immediately
after searching the session directory (see Section 4.1).
Keyword: ACTIVEDIR
Default value: SS#DIR
Compiler fault file
This option allows the user to select another file, in addition to the
compiler listing file, to which compilation fault messages may be
sent.
Keyword: CFAULTS
Default value: .OUT
Search directories
Up to 16 additional directories may be added to the search list for
a process. They are searched immediately after the active directory.
Keywords: SEARCHDIR and REMOVEDIR
Default value: No search directories
The suggestion file
The Edinburgh Subsystem supports the SUGGESTION command, which
provides a simple way for users to make comments for improvements to
the system. Two utility commands are used in the administration of
this file.
Making a suggestion file
The command MAKESUGGESTIONFILE takes up to one parameter, this being
the name of the empty suggestion file to be created. If this parameter
is omitted, the name SUBSYS.SUGGESTION is assumed.
Listing the suggestion file
The command LISTSUGGESTIONFILE takes up to one parameter, this being
the file or device to which the suggestion listing is to be written.
If this parameter is omitted, a prompt is issued for it.
Additional facilities
If there are no suggestions in the file, the subsystem return code is
set to -1, otherwise it is set to zero (or some error code). This
allows suggestions to be checked and listed, if present, by suitable
Job Control statements.
Checking partitioned files
Partitioned files greater than 256 Kbytes in size present special
problems if they contain members which are object files. An object
file that crosses a 256 Kbyte boundary may not execute correctly,
so the action of the subsystem loader is to make a copy of such a
member, and execute that. This is clearly inefficient.
The CHECKPD command provides facilities for identifying such problem
members. It also flags other conditions which cause the loader to make
a copy of an object file.
The command takes exactly one parameter, the meaning of which is
given in the following subsections.
Finding the offsets of members
If CHECKPD is given the name of a partitioned file, it simply lists
the relative offset (in hexadecimal) of each member of that file.
Checking for possible problems
If CHECKPD is given the name of a single member of a partitioned file,
it determines whether either of two conditions would force the
subsystem to copy the file when attempting to load it. These
conditions are:
a) The code of the member crosses a 256 Kbyte boundary
b) The code of the member is not shareable (possible for converted
ICL object files)