Professional Documents
Culture Documents
USER’S GUIDE
Revised
January 1997
Version 4.0
COPYRIGHT 1984-1997
DISCLAIMER
Micronetics Design Corporation makes no representations or warranties
with respect to this manual. Further, Micronetics Design Corporation
reserves the right to make changes in the specification of the product
described within this manual and without obligation of Micronetics
Design Corporation to notify any person of such revision or changes.
iii
TABLE OF CONTENTS
iv
TABLE OF CONTENTS
CHAPTER 6 GLOBALS
v
TABLE OF CONTENTS
vi
TABLE OF CONTENTS
vii
TABLE OF CONTENTS
viii
LIST OF TABLES
ix
LIST OF TABLES
LIST OF FIGURES
x
Acknowledgment
xi
DOCUMENTATION CONVENTIONS
Convention Description
RET The Carriage Return Key (normally labeled
RETURN, RET, ENTER, etc.).
xii
CHAPTER 1
THE MSM SYSTEM
This chapter provides a general overview of the MSM system as it has
been implemented for Personal Computers (e.g., IBM-PC, and
compatibles) operating under MS-DOS, most Unix, Xenix, and Ultrix
based systems, and VAX systems operating under VMS. It includes
information about the basic components that make up the system.
Languge
Compiler
Operating System Database
Monitor Management
Micronetics
Input/Output
Standard Utility Program
Supervisor Library
MUMPS
For example, pressing the CTRL key at the same time as the C key
generates a CTRL/C sequence. The CTRL key behaves in much the
same way as the SHIFT key. Table 2-1 below lists the special characters
and the control characters that are supported by MSM.
TAB The tab function moves the cursor to the next tab
position (tabs stops are every 8 positions). It is also
used as the separator between the line label and the
line body when entering MUMPS code into a
program. This key is equivalent to entering the
CTRL/I sequence.
CTRL/R Reprints the current input line and leaves the cursor
positioned at the end of the line.
If any of the information that has been entered is not correct, the system
terminates the logon and displays an ERROR message. The user is given
a total of three attempts to complete the logon. After the third invalid
attempt, the user is logged off the MSM system. In the single-user
version of MSM-PC and all versions of MSM-UNIX and MSM-VX,
this returns the user to the host operating system (i.e., MS-DOS, Unix,
and VMS). In the multi-user version of MSM-PC, the terminal is
returned to an inactive state and the system waits for the next terminal
interrupt. In both cases, the system behaves as it would if a HALT
command had been entered.
If partition size is not specified, the default system partition size is used.
After the logon, additional information, if any, is solicited by the routine
selected for execution.
The system responds with the standard logon prompt as described in the
previous sections. The user can logon to any of the UCIs that are defined
in the system using any of the valid logon modes (i.e., programmer mode
or run mode). All of the normal rules and conventions for logging onto
the system apply when a user changes UCIs in this manner.
You can enter command lines that are not immediately processed by the
interpreter by using the following format:
ZREMOVE StartLine:EndLine
The starting line and ending line arguments are labels (e.g., ABC), labels
plus (+) an offset (e.g., ABC+3), or simply an offset (e.g., +7) within
the routine. All lines beginning with the line specified by StartLine
through and including the line specified by EndLine are removed. If the
ending line number is not specified, only the starting line is removed.
If either the starting line or the ending line does not exist, no lines are
removed and a line error (ie., a <LINER> error) is produced.
All changes are affected through an interactive dialogue with the editor.
HELP information can be obtained by entering a question mark (?) in
response to editor prompts. To invoke the editor, first load the routine
to be edited into your partition and then enter the following command:
XECUTE ^%
In response to this, the editor prompts with the following:
Edit line:
The editor then waits for the user to enter the label of the line to be edited,
an editor command, a question mark (?) to obtain HELP information, or
a period (.) to exit the editor. Refer to Appendix B (MSM Program
Editor) for complete information on how to use the MSM program editor.
XECUTE ^ %G
Upon entry, the full screen editor checks to see if a program is currently
loaded in the user’s partition. If not, the editor creates an empty work
area where a new program can be created. Please refer to Appendix E
(CUA Full Screen Editor) of this manual for a complete description of
the CUA full screen editor.
If the line reference is omitted, execution begins at the first line within
the routine. If the circumflex (^) and the routine name are omitted, the
routine must have been previously loaded into the partition.
It is important to note that when you enter a routine and do not save it
on disk, if you then execute the program and it executes a different
program, the original program is lost. To avoid this situation, be sure
to save your routine if you intend to run it repeatedly.
After an error has been trapped and processed by the specified routine,
a number of different techniques can be used to exit from the error trap
routine. For example, one method is to use a GOTO command; when
it is used, control passes to a new routine and program processing remains
at the same execution level. This is the most common form of error
recovery used.
Another method is to use a QUIT command. When a QUIT command
is used, program execution continues at the next higher execution level
(i.e., the current execution level minus 1). This behaves the same as if
the DO or XECUTE terminated normally with a QUIT command.
Alternately, the ZQUIT command can be used to back up to the next
higher execution level that contains an error trap. Figure 2-1 below
illustrates how the QUIT and ZQUIT commands can be used in
conjunction with the error trapping mechanism to control the processing
flow during error recovery.
B ;Routine B
. . .
NO $ZTRAP SET
. . .
DO ^C
. . .
. . .
Any applications that depend upon the DO/XECUTE stack being cleared
as it was in previous versions of MSM will not work properly. The
recommended solution to this problem is to modify the error trapping
code to use the new style of trapping. However, this may not be practical
is all cases. As a convenience to our users, a compatibility mode has
been provided to allow error processing to behave just as it did in previous
MSM releases.
The default value in effect when a job is started is the Version 2.1 mode
of error processing (i.e., BREAK -2). If the old style of error trapping
is desired, a BREAK command with an argument 2 (i.e., BREAK 2)
should be inserted at the beginning of the application before any other
code is executed. It is strongly recommended that applications be
modified to take advantage of the new error processing capabilities.
The system responds with a menu of options that are available. The
utility program includes complete on-line help information and is
extremely easy to use. Refer to the MSM Utility Manual for additional
information.
Note that the command line editor is always in insert mode. Whenever
a character is entered, it will be inserted before the character that is under
the cursor. When the cursor is at the end of the input line, this has the
effect of adding a character at the end of the line.
3.1 Overview
The MSM system includes support for a wide assortment of physical as
well as logical devices. The physical devices include terminals, modems,
printers, and sequential devices such as floppy disks, cartridge disks and
tape drives. The logical devices can be used to examine or modify the
contents of main memory and auxiliary disk storage, and exchange data
between active partitions.
Every user of the system (i.e., every job on the system) can access any
of these devices. In order to access a device, the job must first gain
ownership of the device. This is done by issuing an OPEN command
directed to the device. If the device is available, it is immediately added
to the list of devices owned by the job. In a multi-user environment, if
the device is not available, execution of the job is suspended until the
device becomes available.
When a device is OPENed, the user can also specify the amount of time
to wait if the device is not immediately available. After the specified
time interval, the OPEN command is terminated if the device is still not
available. The OPEN mechanism permits a job to gain ownership of
more than one device at a time.
The system provides a facility to specify which device is to be used for
input and output operations since each job can access only one device
at a time. Each job directs input and output to a specific device with the
USE command. The USE command makes the specified device the
current device. The current device is used for all subsequent input or
output operations until explicitly changed by another USE command or
until the user logs off the system.
Note that in this example, the slash (i.e., /) is required, but the operands
are optional. Within a READ or WRITE command, a Mnemonic Control
can be used anywhere that a Format character can be used. In fact, by
definition, Mnemonic Controls are considered to be Format characters.
The MSM system can support multiple Mnemonic Namespaces. The
supported Namespaces can be system-supplied (e.g., ANSI X3.64-1979
for terminals, ZWINTERM for windows on dumb terminals, etc.) or
user-defined. Through the USE command, the application identifies the
namespace associated with the device. Finally, MSM also provides
$DEVICE and $KEY Special Variables to further enhance the
capabilities of Mnemonic Namespaces. Refer to the MSM Language
Reference Manual for additional information on the USE command, the
READ and WRITE commands, Format characters, and the $DEVICE
and $KEY Special Variables.
As previously stated, Mnemonic Namespaces fall into two separate
categories: system-supplied Namespaces and user-defined Namespaces.
System-supplied Namespaces and user-defined Namespaces function
identically. They only differ in the way that they are created. Refer to
Appendix F (Mnemonic Namespaces) for a list of the Namespaces
supplied with the system. User-defined Namespaces are created and
maintained using the SYSGEN utility. Refer to the appropriate MSM
System Manager’s Guide (Generating the System) for additional
information on the SYSGEN utility and user-defined Namespaces.
23 PASS ALL - If this bit is set, the system does not interpret any
characters received other than user-specified READ
terminators (see Opt9) or ESC if ESCAPE processing is
enabled. If this bit is not set, the system-defined control
characters are interpreted. (Decimal value = 8388608)
2 CRT - If this bit is set, it indicates that the terminal being used
is a CRT and characters are to be erased from the screen on
backspace. If this bit is not set, it indicates that the terminal
is a hardcopy device and \ is echoed on backspace. (Decimal
value = 4)
The value is a 16 bit number where the first 4 bits specify the parity, the
second 4 bits specify flow control, the third 4 bits specify the number
of data bits and stop bits, and the fourth 4 bits specify the baud rate. The
initialization value must be specified using the full 16 bits. For example,
if the baud rate is changed, the parity, data bits, and stop bit values must
be specified again.
To determine the option value, use the indicated parity check value times
4096, plus the indicated value for data bits and stop bits times 16, plus
the indicated value for the baud rate. Stated differently:
(Parity*4096)+(Flow*256)+((Data & Stop)*16)+Baud
To access the SBP device, OPEN the device and specify the starting
block number where processing is to begin. An offset within the block
can also be specified, with 0 being the first byte in the block. All
subsequent accesses to the device are in sequential order. That is, the
next input or output operation begins at the byte immediately following
the last byte of the previous input or output operation.
When accessing the SBP device, input and output operations can be
intermixed. Also, the device can be accessed in random-access mode.
If the device is being used as a random-access device, then prior to each
access you must specify the location from which data is to be retrieved.
This is done by specifying the new block location with the USE
command. As was the case with the OPEN command, an offset into the
block where the transfer is to begin can be specified. When the SBP
device is CLOSEd, all modified blocks are written back to the disk device
at the appropriate locations.
OPEN{:Cond} Dev{:(Opt1:Opt2:Opt3:Opt4:Opt5)}{:Time}
USE{:Cond} Dev{:(Opt1:Opt2:Opt3:Opt4:Opt5)}
CLOSE{:Cond} Dev
The VIEW device does not need to be the current device in order to use
the VIEW command or $VIEW function.
To access an HFS device, OPEN the device specifying the name of the
file and the mode in which the file is to accessed (i.e., read, write, both
read and write, or append). As an option, a byte offset into the file can
be specified. All subsequent accesses to the file are in sequential order.
That is, each input or output operation begins at the byte immediately
following the last byte of the previous input or output operation. If
necessary, the byte location within the file for the next read or write
operation can be altered by specifying an optional parameter on the USE
command before accessing the file.
OPEN{:Cond} Dev{:(Opt1:Opt2:...:Opt6)}{:Time}
USE{:Cond} Dev{:(Opt1:Opt2:...:Opt6)}
CLOSE{:Cond} Dev{:Opt1}
In each of these commands, the Cond operand is a post-conditional
statement used to control execution of the command. If the
post-conditional is true, then the command is executed. If it is false,
then the command is not executed.
The Time operand on the OPEN command indicates the maximum
amount of time, in seconds, to wait for the specified device to become
available. Upon completion of the OPEN command, when the time has
been specified, the $TEST Special Variable contains a 1 if the OPEN
was successful; otherwise, it contains a 0. $TEST remains unchanged
if a timeout value is not specified. The remaining OPEN and USE
parameters are described in the following sections.
In any other mode, this field specifies the type of offset used in option
3. Valid types are 0 to indicate offsets from the beginning of the file, 1
to indicate offsets from the current position in the file, and 2 to indicate
offsets from the end of the file. If this option is omitted, a value of 0 is
assumed.
To use the Interjob Communication facility, a job opens and uses one
of the transmitters and then writes one or more messages. To receive
messages, a job opens and uses the corresponding receiver and reads
each message that has been sent. All transmissions are fully buffered
which means that the receiving job does not need to have the device
open at the time the sending job writes to the device.
Also, the sending job can continue putting information into the device
until the buffer becomes full. Once the buffer is full, execution of the
sending job is suspended until information is removed from the buffer
by the receiving job. Similarly, the receiving job can retrieve information
from the buffer after the sending job has CLOSEd the transmitter. This
allows multiple jobs to send messages to a single job by opening the
device, sending a message, and then closing the device.
Care should be taken when using the Interjob Communication device
since there is no way to predict the order in which multiple jobs execute.
If a job reads from an Interjob Communication device and never receives
a message, it waits indefinitely unless a timeout value is specified on
the READ.
OPEN{:Cond} Dev{::Time}
USE{:Cond} Dev
CLOSE{:Cond} Dev
In each of these commands, the Cond operand is a post-conditional
statement used to control execution of the command. If the
post-conditional is true, then the command is executed. If it is false,
then the command is not executed.
The Time operand on the OPEN command indicates the maximum
amount of time, in seconds, to wait for the specified device to become
available. If Time is specified, then after the command completes, the
$TEST Special Variable contains 1 if the OPEN was successful,
otherwise it contains a 0. $TEST remains unchanged if a timeout value
is not specified.
The tape devices are assigned device designators of 47 through 50. None,
one, or more tape devices may be present on the system. The commands
which are valid for the Magnetic Tape devices are:
To access a Magnetic Tape device, OPEN the device and specify any
appropriate parameters such as Access Mode, logical record size, or
physical block size. All READ and WRITE accesses to the device are
in sequential order unless the device is repositioned with a WRITE
*Code command (where Code is a positioning command). That is, the
next input or output operation begins at the byte immediately following
the last byte of the previous input or output operation.
When accessing the Magnetic Tape device, input and output operations
cannot be intermixed. The first READ or WRITE operation sets the
mode. Once it is set, it cannot be changed except by repositioning the
tape or closing and re-opening the tape. When the Magnetic Tape device
is CLOSEd, any unwritten data is written to the tape and then a tape
mark (i.e., an end-of-file indicator) is written.
Mode Description
A ASCII Character Set - The ASCII character set is used for
all input and output operations.
To change the access mode, the device must be CLOSEd and then opened
with the new values. If this option is omitted, a value of "ASU" is
assumed by MSM.
Some commands can only be used in Shared Buffer mode where the
tape device shares the buffer with the View device (i.e., device 63). In
this mode, only block type READ and WRITE operations are allowed.
The block type operations are issued in the same manner as described
above using the WRITE *Code commands where Code is the action to
be performed.
The following table defines all of the *Code commands that can be used
for Magnetic Tape from within MSM. Except for those commands that
are specifically identified as block mode-only commands, all of the
commands can be used regardless of the tape mode that was specified
when the device was OPENed.
Any attempt to issue a block mode Read command (i.e., *6) or Write
command (i.e., *4) when the device was not opened for buffer mode,
results in a <MODER> error. A <VWERR> error occurs if you attempt
to open the device in block mode without first opening the View device.
OPEN{:Cond} Dev{:Opt1}{:Time}
USE{:Cond} Dev{:Opt1}
CLOSE{:Cond} Dev{:Opt1}
For USE commands, the value of this option can only be in the following
form:
FileNum This form is used to make the specified file
the current file on the Spool device. This
is used when a job has more than one spool
file opened at a time. When switching
between devices, this parameter can be
omitted if only one spool file has been
opened. The value of FileNum must be
between 1 and 255 inclusive.
For CLOSE commands, the value of this option can be in any one of the
following forms:
It is important to remember that the values of $ZA $ZB, and $ZC are
always returned for the current device. However, after an OPEN
command, $ZA is set even though a USE is not issued.
To access the Host System Spool device, OPEN the device and specify
any appropriate parameters for the print spooler within the Host
Operating System. When accessing the Spool device, only output
operations are permitted. When a new spool file is opened, data may be
written to the file until it is CLOSEd. When the file is CLOSEd, any
unwritten data will be written to the spool area as part of the CLOSE
operation.
The actual parameters supported by the spooler are specific to the Host
Operating System implementation being used. Consult the appropriate
Unix, Xenix, or VMS documentation for additional information on the
parameters that are supported. Note that these parameters are likely to
be different between different implementations of Unix and Xenix. Also,
they may change from release to release of Unix, Xenix, and VMS.
When the utility completes, the job is automatically logged off the
system.
Routine Description
Name
%ACTJOB Returns a string containing the job numbers,
separated by circumflexes (^), of all jobs that are
currently executing on the system.
Routine Description
Name
BCS Broadcasts a message to any or all active users.
5.1 Overview
The operating system component of MSM is responsible for initiation
and termination of jobs, allocation and de-allocation of devices, memory
management, and task management (i.e., evenly dividing CPU resources
between jobs). In order to carry out these functions, the operating system
maintains several internal tables and control blocks. These tables and
control blocks contain status information relative to the function being
controlled by the operating system. Table 5-1 below lists the primary
control blocks used in the MSM operating system.
The information contained in these tables and control blocks can be used
to determine the status of individual system components, as well as the
status of the entire system. The $VIEW function can be used to read
the contents of these tables and the VIEW command can be used to
modify their contents. Since these tables are critical to the operation of
the system, modifying their contents with incorrect information may
cause unpredictable results, including database corruption.
Note that in the tables above, all fields beginning at offset 40 are only
valid for local volume groups. For remote volume groups, the fields are
maintained on the system where the volume group exists as a local
volume group.
The following fields are repeated for each volume within the volume
group. In the section that follows, the value of n is calculated as 8 times
the volume number. Volumes are relative to zero (i.e., the first volume
is 0, the second volume is 1, etc.).
Note that the expansion/limit fields in the UCI table are not supported
for Remote Volume Groups. A utility program (UCIMGR) is supplied
with MSM to format the contents of the UCI Table. Refer to Chapter 4
(Utility Programs) for additional information on this utility.
At the top of the pyramid, there is one block of indices. Below that there
may be one or more blocks of second level indices. This can continue
on for as many levels as necessary to describe the actual data. Below
the last index level, there is one layer of blocks that contain the actual
data being stored. This level of data blocks represents the bottom of the
pyramid.
Globals 6-1
The Global Name consists of a circumflex (^) followed by one to eight
characters. The first character must be alphabetic or a percent sign (%).
Following the name, the reference may include zero, one, or more
subscripts. Subscripts may be alphabetic or numeric and may include
punctuation and control characters. If the subscript is not a canonic
number, it must be enclosed in quotes. A canonic number has no leading
zeros before the decimal point and no trailing zeros after the decimal
point. Also, it does not contain a decimal point if one is not required.
When subscripts are included, they are appended to the global name,
enclosed in parentheses, and separated by commas. The total length of
the global reference (i.e., name and subscripts) cannot exceed 255
characters. Each subscript may be up to 252 characters when using string
collation and 251 characters when using numeric collation and may
contain any value except ASCII null (i.e., decimal 0).
For globals where a collating sequence type of string has been specified,
all subscripts (numeric and non-numeric) are treated as character strings
and stored in ASCII collating sequence. Assume that a global variable
X has subscripts of -10, -2, -1, 1, 0, 1.1, 2, 3, 10, 20, 30, and "ABC"
defined. In string collating sequence, the subscripts of X would be stored
in the following order:
^X(-1)
^X(-10)
^X(-2)
^X(0)
^X(1)
^X(1.1)
^X(10)
^X(2)
^X(20)
^X(3)
^X(30)
^X("ABC")
6-2 Globals
In globals where the collating sequence is numeric, the system stores
canonic numbers (i.e., numeric values with no leading zeroes or trailing
zeroes after the decimal point) first, followed by the non-numeric values
in ASCII collating sequence. Assuming that global variable X has the
same subscripts as before and that it has been assigned numeric collating
sequence, then the subscript values would be stored in the following
order.
^X(-10)
^X(-2)
^X(-1)
^X(0)
^X(1)
^X(1.1)
^X(2)
^X(3)
^X(10)
^X(20)
^X(30)
^X("ABC")
Globals 6-3
Table 6-1 - MSM Block Types
6-4 Globals
The following sections contain descriptions of the commonly used block
types including the Map Block, Global Directory, Pointer Blocks, and
Data Blocks. For a description of the Routine Header Block and the
Routine Data Block, refer to Chapter 7 (Routine Data Structure).
Globals 6-5
Decimal Field Description of Field Offset
Offset Length
1021 1 Contains the secondary block type. The
high-order bit (i.e., hex ’80’) indicates a
bottom-level pointer block.
Since a Map block describes 512 blocks and is the second block in the
group, the Map Block location can be computed. The first Map is block
1 (i.e., describes block 0 to 511), the second is 513, etc. The internal
format and contents of a Map Block are described in Table 6-3 below.
Table 6-3 - Map Block
6-6 Globals
Decimal Field Description of Field Offset
Offset Length
512 2 Contains the offset of the first free block
within the map.
Within the Map Block, there is a block type indicator to identify the Map
Block to the system. The system can also determine a block is a Map
Block by its relative position on the disk. The VERIFY utility may be
used to validate map blocks. Refer to the MSM Utility Manual for
additional information on the VERIFY utility.
Globals 6-7
Table 6-4 - Global Directory Element
6-8 Globals
When all space in the Global Directory block is exhausted and an attempt
is made to create a new global, the system automatically creates two
new bottom-level Global Directory blocks, each containing about half
of the globals from, and using the same format as, the original. The
original Global Directory block is converted to a top-level Global
Directory block which has the same format as a Pointer block (described
below). The information contained in the UCI Table relating to pointer
growth is used to determine where the new blocks should be allocated.
For any given global, the block number of the Top-Level Pointer block
is contained in the Global Directory. Each Pointer block in the global
then points to either a Bottom-Level Pointer block or to another Pointer
block. Every Bottom-Level Pointer block points to Data blocks. Thus,
by searching the Global Directory and Pointer blocks, the system can
determine the exact location of any data node within the global.
A Pointer block consists of one or more Pointer Elements. Each element
includes the global name, subscripts if they exist, and a pointer to another
Pointer block or the data block. The global reference in the element is
the first reference that exists in the next level pointer block or data block.
To reduce the amount of disk storage required by globals, the system
compresses the information in these elements. The table below describes
the format and contents of a Pointer Element and the technique used to
compress the information contained in the global reference.
Globals 6-9
Table 6-5 - Pointer Element
6-10 Globals
Table 6-6 - Data Element
Globals 6-11
6.3 Global Expansion Areas
MSM allows the user a great deal of flexibility in determining where
global data is to be stored on the disk. A utility program (GLBPLACE)
is supplied with the system that creates a global at a specified location
on the disk. The user specifies the global name, UCI name, volume
group name, block number (i.e., volume number and relative block
number) for the pointer block, and block number for the data block. For
additional information on this utility, refer to Chapter 5 (MSM Utility
Programs).
Once a global has been created, additional controls within the system
allow the user to specify what areas of the disk are available to it as it
grows. These areas are referred to as global expansion areas. When
additional space is required, the system looks for free blocks with
numbers greater than or equal to the map number specified for global
expansion. If no free space is found, a <DKFUL> error occurs.
Global expansion areas can be specified for each individual global in a
UCI. A utility program (%GCH) is supplied with the system to allow
users to specify growth areas on an individual global basis. To define
the growth area for a specific global, the user must be logged onto the
UCI containing the global when the utility is run. The utility prompts
the user for the global name and block number where expansion is to
begin.
If an expansion area has not been specified for a particular global, the
system uses the expansion parameters defined in the UCI Table. For
additional information on the UCI Table, refer to Chapter 6 (System
Tables). The expansion parameters for a UCI are specified as part of
the SYSGEN process. They can also be modified at any time through
the SYSGEN. For additional information on modifying the UCI
expansion parameters, refer to Chapter 9 (Generating the System).
6-12 Globals
Figure 6-1 - Global Organization
BLOCK BLOCKS
GL =Data
GL(1,1)=Data
GL(1,2)=Data
Right Link
GL(2,3)=Data
GL(2,7)=Data
GL(3) =Data
Right Link
GL GL(4) =Data
GL(2,3) GL(4,3)=Data
GL(4,4)=Data
Right Link Right Link
GL(8,2) GL(7,1)=Data
GL(9) GL(7,2)=Data
GL(8,1)=Data
Right Link=0 Right Link
GL(8,2)=Data
GL(8,5)=Data
GL(8,7)=Data
Right Link
GL(9) =Data
GL(9,1)=Data
GL(9,3)=Data
Right Link
Globals 6-13
6.5 Cross-UCI Global References
The MSM system allows users to not only access globals stored in their
own UCI’s but to access globals stored in different UCI’s on the same
volume group as well. This is done using an extended global reference
notation that includes, in addition to the global name, the name of the
UCI where the global is stored. The notation for referencing globals in
a different UCI is:
^|UCI|Global Reference
The UCI Name specified in this notation is the name of the UCI where
the global is stored. It can be a variable containing the name or the actual
three character name itself (e.g., "FMR"). In either case, the specified
UCI must exist or a <NOUCI> error occurs. If the actual UCI name is
specified, it must be enclosed in quotes. The Global Reference specified
in this notation is the name of the global to be accessed. It may be a
simple global name, may include subscripts or may be a naked reference.
Any error message or error condition that may occur is returned by the
operating system just as if the reference had been to a global in the current
UCI. The most common error returned as a result of a Cross-UCI global
reference is the <PROT > error. This occurs whenever an attempt is
made by a program or a user in programmer mode to access a global
that it is not authorized to access.
6-14 Globals
6.7 Cross-System Global References
As an optional feature, the MSM system supports Distributed Data
Processing (DDP), which allows information that resides on a physically
different system to be accessed directly by a MUMPS program. If DDP
has been installed on the system, then remote data can be accessed by
explicitly specifying the UCI name and the remote system name in the
global reference. This is done using the following syntax:
^|UCI,SYS|Global Reference
In this example, SYS is the three-character name of the volume group
on the remote system which contains the global being referenced. This
name can be specified as a variable or the actual external system name.
The system must be active on the network at the time of the request, or
an error (i.e., <NOSYS>) occurs. The same rules described above for
accessing data in a different UCI on the same volume group apply when
accessing data on a remote system.
Globals 6-15
6.10 High Availability Databases
To ensure database integrity, the MSM system supports a concept known
as bullet-proof databases. This means that in the event of a failure, the
system can be restarted and MSM will ensure that the database has logical
integrity. Using this feature, it is no longer necessary to VALIDATE
the structure of the database. This is achieved using a combination of
Before-Image Journaling (BIJ) and After-Image Journaling (AIJ). Refer
to Chapter 8 (Global Journaling) for additional information on this
feature.
6-16 Globals
Separate protection codes can be assigned for each class of user and may
be changed via the SYSGEN utility. Within a class, one of the four
following types of protection can be specified.
READ This allows users within the specified class to
look at the global, but no modifications are
permitted.
WRITE This allows users within the specified class to
look at and modify the global. The user is not
permitted to delete (i.e., KILL) the global or
nodes within the global.
DELETE This allows users within the specified class to
look at, modify, and delete the global.
Globals 6-17
This page is intentionally left blank.
6-18 Globals
CHAPTER 7
ROUTINE DATA STRUCTURE
This chapter describes the internal structure used to store routines on
disk.
7.1 Overview
The MSM system stores routines on disk as a collection of routine files.
The internal structure that is used to maintain these routines consists of
a two-level data hierarchy.
At the highest level, the system maintains a directory of routine names.
Each routine name known to the system is physically stored within a
directory block. The collection of all directory blocks containing routine
names is referred to as the Routine Directory. One routine directory
exists for each UCI defined to the system.
At the lowest level, the system maintains one or more routine blocks for
each routine that is stored on disk. The first block contains the routine
name, the routine body, and additional control information describing
the routine. This block is referred to as the Routine Header Block. If
the routine being stored is too large to fit into one block, then the system
chains multiple routine blocks together to store the remainder of the
routine. The second and subsequent routine blocks are referred to as
Routine Data Blocks.
As part of the SYSGEN process, the system manager specifies the block
number for the first routine directory block in each UCI. This block
number is stored in the resident UCI table. For additional information
on the UCI table, refer to Chapter 5 (System Tables).
When a routine directory block becomes full and a new entry must be
inserted into the block, the system splits the block into two pieces. When
this occurs, the new block is allocated using the routine expansion area
information supplied during the SYSGEN. The system begins a
sequential search for a free disk block using the map block designated
as the start of the routine expansion area. The first free block that is
found is assigned to the directory.
If the volume group where the routine is saved specifies that more than
one type of P-Code is to be maintained, there will be a separate chain
of routine blocks for each P-Code type. Each routine header block
contains a field in the control information area which points to the routine
header block containing the different P-Code type.
8.1 Overview
As users become more and more dependent on computerized
applications, the impact of system failures significantly increases. At
the very least, each failure is an annoyance that users do not patiently
tolerate. In the worst case, a failure can severely damage a company’s
ability to operate. To solve this problem, system administrators look for
ways to construct systems that minimize these disruptions in service.
When a system failure occurs, the system will roll-back the database to
the start of the current generation. Any previous generations that are
still open will also be rolled-back. If After-Image Journaling is active,
then the system will automatically roll-forward the database using
information from this journal.
The result of this combined use of Before-Image and After-Image
Journaling is a database that has logical consistency and contains all
transactions up to the point of the last journal entry written to the
After-Image Journal. For additional information on After-Image
Journaling, refer to Section 8.3 (After-Image Journaling) in this chapter.
For additional information on configuring and using Before-Image
Journaling, refer to Chapter 4 (MSM System Operations) in the
appropriate MSM System Manager’s Guide.
Select Option:
• The name of the UCI and volume group that contains the global
being SET or KILLed
• The name of the UCI and volume group where the job was
running when the SET or KILL command was issued
Select Option:
In the event that the backup system is not available, the copy operation
will be suspended until the backup system is again available. When the
system becomes available, the background job will transfer all journal
entries (even if they span multiple journal files) that have occurred since
the last successful transfer to the backup system.
Using this technique, on MSM-PC and MSM-PC/PLUS systems where
there is no multi-user host operating system, the backup system can be
shutdown to perform database maintenance functions (i.e., backup,
compress, etc.). Then, when the system is started again, it will
automatically catch up to the current transaction.
Select Option:
Select Option:
8.6 Summary
While MSM does not provide complete fault tolerance in the strict sense
of the term, it does allow high-availability systems to be constructed
using relatively inexpensive and readily available off-the-shelf
components. In most applications, systems constructed using these
features will provide the degree of system availability required by the
users. In addition, the MSM resilient system features can be augmented
by hardware components such as mirrored disks, RAID disk arrays, UPS
devices, etc. These features will serve to further increase system
availability.
ERROR CONDITIONS
This appendix describes methods for trapping errors during program
execution and error messages generated during program execution.
If the $ZTRAP variable has not been established, then the routine is
terminated and descriptive information about the error is displayed on
the terminal that initiated the job. If the job was initiated from
programmer mode, the terminal is returned to programmer mode after
the information is displayed. If the program was not initiated from
programmer mode, the user is logged off after the information is
displayed. The format of this descriptive information is:
<Code>Offset^RouName:Cmnd:Arg:Major:Minor:AddInfo Line
In this display, Code is the error code (See Table A-1), Cmnd is the
relative number of the command in the line in error, Arg is the number
of the argument within the command, Major and Minor are the internal
error numbers (See Table A-2), Offset is the location (i.e., relative line
number or label+offset) within the routine, RouName is the name of the
routine, and Line is a reprint of the line in error.
The Cmd and Arg parameters are only maintained by the system when
the debugger (i.e., %DEBUG) is active. Refer to the MSM Utility Manual
for additional information on the %DEBUG utility. Finally, AddInfo
contains additional information about the error. It is not maintained for
all types of errors. When it is maintained, it provides relevant
information about the error. For example, for a disk error (i.e.,
<DKHER>) it is the block number that received the error.
Message Explanation
<ASYNC> Indicates an error occurred during the asynchronous
processing of a previous SET or KILL operation on
a Remote Volume Group. This error is suppressed
unless it is specifically allowed by a mode flag set
through SYSGEN or the %MODESET utility. The
type of error is indicated in the additional information
field of $ZERROR. This is a number formed by
major*256*+minor.
<DKSER> Indicates that a block read in from the disk was not
the type expected by the system or the block’s internal
structure was invalid. The latter can occur if the global
database is corrupted by a hard system failure (e.g.,
a power failure) or hardware malfunction (e.g., an
unrecoverable disk error on a write operation).
1 Unrecognized command
1 Missing parenthesis
2 Missing or bad colon
3 Missing or bad equals
4 Missing or bad local variable
5 Missing or bad global variable
6 Missing or bad function
7 Missing or bad routine name
8 Missing or bad routine label
9 Missing or bad routine offset
10 Indirect argument error
11 Argument condition error
12 Bad argument delimiter
13 Bad command
To invoke the editor, execute the code stored in the ^% global. This is
done by entering the following line of MUMPS code.
X ^%
If the partition is empty, then the editor allows you to create a new routine.
To do this, the editor prompts with the following:
No routine in partition
Enter label for first line of new routine:
The response that is entered is used to create the first line of the routine
with the label you specify. The editor then responds with the following
prompt:
Edit line:
The editor then waits for the user to enter a response. If a default line
reference exists, the editor displays the following prompt:
Edit line: DefLine //
The program editor, as distributed with MSM, assumes that the output
device is a CRT, that the screen has a width of 80 characters, and that
there are 24 lines which can be used for display purposes. Whenever
the program editor displays information on the screen (i.e., in response
to a Display command or in response to a question mark), it pauses when
the screen becomes full. Whenever the program editor pauses because
of a full screen condition and there is more information to display, it
prompts with "< >". In response to this prompt, RET can be entered to
have the editor display the remaining information, or any of the responses
that are valid for the "Edit line: " prompt can be entered.
5. a single plus or minus sign to indicate the last line edited, plus
or minus 1 (e.g., +,-).
The editor continues to ask for ’Replace:’ and ’With:’ strings until a null
response (i.e., a carriage return) to the ’Replace:’ prompt is entered.
When a null response is entered, the editor returns to the "Edit line: "
prompt.
.FX Files the program and exits the editor. This function
is identical to the .F function; however, upon
completion, it exits the editor.
LOADING APPLICATIONS
This appendix describes the process for installing Application Packages
that have been supplied by Micronetics Design Corporation. The process
is the same regardless of the hardware configuration of the system where
the package is to be installed.
C.1 Overview
Application packages supplied by Micronetics are distributed on floppy
disk (5.25-inch) or removable disk, cartridge tape, or magnetic tape
depending on the configuration of the user’s system. Each application
package is supplied with user documentation as well as instructions on
how to initialize the package, if required. The application package is
distributed in a format that is designed to be self-loading. The actual
loading of the package is initiated using the %PACKAGE utility
program. Upon completion of the process, all appropriate routines and
globals are loaded.
DO ^%PACKAGE
This begins the process of loading the application package into the
current UCI. The system prompts for the device number and file name
associated with the package. For additional information on selecting
the appropriate input device, refer to Chapter 4 (Using Peripheral
Devices). The system prompts you for all necessary information. In
response to any prompt, a question mark (?) can be entered to obtain
additional information.
DO YOU WISH TO INSTALL THE MANAGER ROUTINES AND GLOBALS <Y> ? RET
DO YOU WISH TO INSTALL THE MANAGER ROUTINES AND GLOBALS <Y> Y RET
DO YOU WISH TO INSTALL THE HOST ROUTINES AND GLOBALS <Y> Y RET
OK? Y RET
FileMan V.19.00
INITIALIZATION COMPLETED!
NOTE: THIS PACKAGE ALSO CONTAINS PRINT TEMPLATES
>
This prompt is to make sure that you really do want to create a new
program. If you inadvertently misspelled the program name or for some
other reason do not want to create a new program, enter N followed by
the RET key. This returns you to the EDIT program name prompt. If
you are creating a new program, enter Y followed by the RET key. You
could also just enter RET since the default response to this question is
Y.
The editor commands can be broken down into groups according to the
functions they perform. The groups include cursor movement, scrolling,
editing, mark, delete, search, transfer/copy, and miscellaneous
commands. The following sections describe each of the commands
supported by the editor.
Command Function
Backspace Moves the cursor one position to the left. If the cursor
is in column 1 of the screen, the terminal bell rings and
no action takes place.
Command Function
CTRL/E Scroll the screen up one line. This causes the next line
into the program to be displayed on the bottom of the
screen.
CTRL/D Scroll the screen up one half screen. This moves the
line closest to the middle of the screen to the top of the
screen and display as many additional lines of program
that fits on the screen.
CTRL/F Scroll the screen up one full screen. This moves the
last line of the display to the first line and display as
many additional lines of the program that fits on the
screen.
CTRL/Y Scroll the screen down one line. This causes the line
that immediately precedes the first line on the screen
to be displayed at the top of the screen.
CTRL/U Scroll the screen down one half screen. This moves
the line closest to the middle of the screen to the bottom
of the screen and display as many previous lines of
program that fit on the screen.
CTRL/B Scroll the screen down one full screen. This moves
the first line of the display to the last line and display
as many previous lines of the program that fit on the
screen.
Command Function
nX Deletes the character at the current cursor position.
This command can be preceded by a number to
indicate the number of consecutive characters to delete
beginning with the cursor position. If the number
specified exceeds the number of remaining characters
in the line then only the characters through the end of
the line are deleted.
Command Function
M Mark an area of the program. The default mark is from
the current cursor position to the end of the line. Only
one mark can be active at a time. The mark may be
in the current program or in a program previously
edited using the .E command. When the mark is not
in the current program, a mark command replaces the
old mark. If a mark is active in the current program
and this command is entered, the terminal bell rings
and no action takes place. Also, edit commands are
not allowed within a marked area.
Command Function
DE Delete from cursor to end of line. This command
deletes all characters from the cursor (including the
cursor) to the end of the line of MUMPS code that
contains the cursor.
Command Function
.S Search labels and text within the program for the
specified string. If the string is not found, the terminal
bell rings to indicate that the string was not found and
the cursor returns to the location where the command
was entered.
Command Function
TM Move the marked area after the cursor. This command
moves (i.e., copy and delete) the area presently marked
within the routine so that it begins on the line
immediately following the cursor. The marked area
need not be visible on the screen. If no area within the
program is marked, the terminal bell rings and no
action takes place.
Command Function
.Q Quit from editing the current routine. This command
is used to terminate editing of a program. If the
program was edited using the .E command, then the
editor returns to the previous program that was being
edited. If there is no previous program, then the editor
exits and return to direct mode in MSM. If the program
has been modified, the editor displays a message and
prompt the user to verify that the editor is to terminate
without saving the changes.
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
F1=Help F9=Select F10=Menu Bar 7:02am
The Ins key is used to toggle between Insert mode and Overlay mode.
When the editor is in insert mode, pressing the Ins key will switch the
editor into Overlay mode. When this occurs, the letter O will appear on
the right hand side of the status line. In this mode, a character that is
entered will overlay the character under the current cursor position. If
the Ins key is pressed again, the editor switches to Insert mode. When
this occurs, the letter O in the status line is replaced with a blank.
To perform editing operations, first position the cursor to the appropriate
spot in the program. Then, select the desired function using the menu,
the function keys, or the accelerator keys. Table E-1 below shows the
various cursor positioning keys and their associated actions.
Accelerator Description
Ctrl-A Inserts line above current line
Ctrl-B Inserts line below current line
Ctrl-C Closes the current window
Ctrl-D Escapes to the DOS Shell (MSM-PC/PLUS only)
Ctrl-E Escapes to the MSM Programmer Shell
Ctrl-F Finds an occurrence of a specified string
Ctrl-G Finds the next occurrence of a specified string
Ctrl-J Jumps to a Label or a Label+Offset
Ctrl-K Marks the current or the next word in the line
Ctrl-L Marks the current line
Ctrl-N Switches to the next open window
Ctrl-O Opens a new window
Ctrl-P Prints the routine in the current window
Ctrl-R Loads a routine into the current window
Ctrl-S Saves the routine in the current window
Ctrl-T Checks syntax of the routine in the current window
Ctrl-U Undoes all editing changes to the current line
Ctrl-V Views the list of open windows
Ctrl-W Functions the same as Ctrl-S
New - This option is used to create a new routine. If the current window
contains a routine that is modified, then a new window will be created;
otherwise, the current window is used. When this option is selected, a
dialog box is displayed to prompt the user for the name of the routine
to be created.
Shell - This option is used to invoke the MSM programmer shell. Once
in the shell, the user can enter MUMPS commands in the same way that
they would be entered in direct programmer mode. To return to the
editor, the QUIT command is entered. The Ctrl-E key can be used
as an accelerator to access this option.
DOS - On MSM-PC/PLUS systems, this option is used to invoke the
standard DOS shell (i.e., COMMAND.COM). When the shell is
invoked, all other MUMPS processes are suspended. When the user has
completed work in DOS, the EXIT command is entered to return to
MUMPS. The Ctrl-D key can be used as an accelerator to access this
option.
Undo - This option is used to undo the last editing operation. For
example, if the last operation was a Cut, then the undo option will restore
the deleted text. If the undo option is then immediately selected again,
the restored text will be deleted. The F5 key and the Ctrl-U key can
be used as an accelerator to access this option. Note that Undo only
undoes changes to the current line and only if the cursor has not left the
line since the changes were made.
Select - This option is used to mark text within the workspace. When
this option is selected, the character under the cursor will be marked.
This will be indicated by highlighting the character with reverse video
or the color red. The mark can be extended by using the arrow keys or
the arrow keys in combination with the Ctrl and Alt keys. Once an
area is marked, it can be Cut, Copied, or Deleted. The F9 key can be
used as an accelerator to access this option.
Copy - This option is used to copy the marked text to the Paste buffer.
After completion of the operation, the text becomes unmarked. The F2
key can be used as an accelerator to access this option.
Cut - This option is used to delete the marked text and to place it in the
Paste buffer. The F3 key can be used as an accelerator to access this
option.
Change - This option is used to search for a specified string of text and
to replace it with a new text string. When this option is selected, a dialog
box is displayed to prompt the user for the search string, the replace
string, the match case (any case or match the exact specified case), the
search direction (forward or backward) and what to do when the end of
routine is reached (wrap around to the beginning or stop). The F6 key
can be used as an accelerator to access this option.
When the Change operation finds an occurrence of the search string in
the program, it displays a pop-up window to prompt the user for the
appropriate change action. The user can specify Change to replace the
highlighted occurrence and search for the next occurrence, Once to
change the highlighted occurrence and quit, Skip to leave the highlighted
occurrence unchanged and to search for the next occurrence, All to
replace the highlighted occurrence and all other occurrences without
further prompting, or Quit to terminate the change operation.
Open - This option is used to open a new window within the editor.
When this option is selected, the editor creates a new window with an
empty workspace and then switches the user to the new window. Also,
the count of open windows in the status bar will be increased by one.
The Ctrl-O key can be used as an accelerator to access this option.
Close - This option is used to close the current window within the editor.
Before closing the window, the editor checks to see if the window
contains a modified program. If it does, a dialog box will be displayed
to prompt the user for the action to be taken. The user can choose to
save or discard the program. The Ctrl-C key can be used as an
accelerator to access this option.
Next - This option is used to switch to the next open window in the chain
of active windows. When the end of the chain is reached, the operation
will wrap to the start of the chain. The Ctrl-N key can be used as an
accelerator to access this option.
View - This option is used to display a list of all open windows. The
list includes the name of the program being edited, the number of lines
in the program, and program status (i.e., read-only or modified). If
desired, the user can position the cursor in the list using the arrow keys
and then press the RET key to switch to the highlighted window. The
Ctrl-V key can be used as an accelerator to access this option.
About - This option displays the current release level of the CUA style
full screen editor.
MNEMONIC NAMESPACES
This appendix describes the system-supplied Mnemonic Namespaces
provided with MSM.
Attributes
The ZWINTERM Mnemonic Namespace supports attributes for setting
text attributes (Bold, Blink, Underline, Reverse) and colors (Background
and Foreground) within a window, within a border, and within a title.
Table F-2 below describes the various attributes that are supported.
Table F-2 ZWINTERM Display Attributes
Attribute Description
0 Restores normal text attributes
1 Sets Bold Attribute for text
2 Sets Underline Attribute for text
5 Sets Blink Attribute for Text
Note that all of the text attributes can be reset with a single operation.
This is done by specifying a zero (0) attribute value. However, the
background and foreground colors are not affected by a zero attribute
value. The colors must be explicitly changed.
Erase Operations
The ZWINTERM Mnemonic Namespace supports several types of erase
operations within a window. These erase operations are specified as an
operand on several of the ZWINTERM Control Mnemonics. Table F-3
below describes the various erase operations that are supported.
Table F-3 ZWINTERM Erase Attributes
The erase values can be specified on the /ED, /EL, /WCMD, and /WCML
Control Mnemonics. The /ED and /EL functions clear the memory buffer
and the screen. The /WCMD and /WCML functions only clear the
memory buffer. If desired, the /WDSP function can be used after these
functions to refresh the screen with the contents of the memory buffer.
When multiple updates are required to a screen, the program can use
functions that only update the memory buffer followed by a refresh. This
approach prevents unnecessary repaints of the screen and improves
performance.
This function is used to set the wrap mode for the current window.
When autowrap is on, a carriage return/linefeed sequence will
automatically be inserted when a text line reaches the right margin.
If autowrap if off, the line will be truncated.
Functions $ZZUname({Parm1}{,...{,Parmn}})
Variables $ZZUname
In these examples, Uname is the user defined name for the command,
function, or special variable and Parm1 through Parmn are parameters
to be passed to the command or function. When invoking the command
or function or referencing the special variable, the entire name must be
specified. Abbreviations are not allowed.
ANSI
The American National Standard Institute.
Argument
Background Job
A job that was started by the JOB command. This process runs
in parallel with the process which contained the JOB command.
Baud
Describes the bit ordering of integer values when they are stored
in memory. In Big-Endian format, the most significant digits
precede the least significant digits.
Break
Glossary-1
Canonic Number
A numeric value which has no leading or trailing zeros after the
decimal point.
Carriage Return
A keyboard instruction, often used to indicate the end of a
command. This key is commonly marked RETURN, ENTER, or
CR.
Collating Sequence
An order that is assigned to a grouping of subscripts. This sorting
can be done in either string or numeric sequence.
String - All subscripts are treated as character strings and are stored
in ASCII sequence.
Command
2-Glossary
CONFIG.MSM
A file found in the root directory or the local directory which
contains information about the MSM system you are running.
When MSM is started, this file is read to determine how MSM is
to be setup.
Configuration
The collection of hardware and software that comprises the entire
computer system.
Control Characters
Cursor
The on-screen marker, usually a box or an underline, which
indicates the location where the next data entry will occur.
Data
The information (letters, numbers, symbols) that is entered into
the system for processing or storage.
Database
The location where storage of the data takes place in global arrays.
In MSM, this is where the MSM system has been installed
(database 0).
Default
The value which is assumed as the entry to a prompt if the carriage
return is depressed. In MSM default values are displayed within
greater than and less than signs, (<DEFAULT>).
Glossary-3
Descendant
Any array node on a lower subscript level which is reachable from
that node and shares the first ’x’ subscripts in common. An
example would be the nodes R(3,4,5) and R(3,6,4,7), which are
descendants of R(3).
Device
Any part of the computer other than the CPU, the memory, or any
associated architectural part; for example, a printer, terminal, or
modem is considered a device.
Expression
A character string which yields a value upon execution.
Function
Global
The permanent storage medium utilized by MUMPS. The
information is stored in a global array or a simple global variable
and is generally placed on a disk system.
Global Variable
A reference name for data stored in a global on the disk. These
variables are accessible or changeable by any user on the system
with the proper protection level.
Hardware
4-Glossary
Indirection
A method of using the value of an expression rather than the
expression itself. The symbol used to indicate that indirection is
being used is the at-sign (@), followed by the value which
represents the expression.
I/O Supervisor
The section of MSM responsible for the input, error detection,
error correction, and output operation of each device attached to
the system. For each device type, the I/O supervisor coordinates
all data transfers and synchronizes them with job execution.
Interpreter
That part of the MSM system that processes the pseudo-machine
code which has been generated by the compiler.
Job
Any use of the MSM system which requires a partitioned work
space.
Journaling
A method of recording global sets and kills while the system is in
use. All information is recorded in a journal entry which can be
used to reconstruct the database if necessary. This option does
not apply to single-user versions of MSM.
LAT
A Local Area Transport protocol developed by Digital Equipment
Corporation to support networked terminals and printers.
Line
Glossary-5
Literal
A string, enclosed in quotations, which can be acted upon but not
changed by a command. The literal may contain any valid ASCII
character; however, certain of these may be excluded because they
have special meaning to the MSM system.
Little-Endian
Describes the bit ordering of integer values when they are stored
in memory. In Little-Endian format, the least significant digits
precede the most significant digits.
Local Variable
Any variable that exists within memory only. These variables are
unique to a particular user and are valid only for the duration of
the user’s login.
Map
The space allocated for disk storage. Each map consists of 512
blocks (each 1024 bytes in size).
Modem
Acronym for MOdulator DEModulator. This device is used to
convert data to a form which can be transmitted via a phone line
to a remote site, and then re-converted to a form usable by the
remote site processing system.
MUMPS
Acronym for Massachusetts General Hospital Utility
Multi-Programming System. This system was developed in the
late 1960s to handle storage, retrieval, and manipulation of large
amounts of medical data. It is one of only four ANSI standard
languages.
Naked Reference
A shortcut method for referring to a particular global node. The
naked reference can generally be used wherever a global reference
is permitted. The naked reference can be specified for a previously
referenced node by using a circumflex (^), followed by the unique
portion of the descendant’s subscript.
6-Glossary
Node
That element of a global array addressed by the name common to
all members of the array and a unique subscript.
Operating System Monitor
That system which provides an interface between the host
operating system and MSM. The monitor also ensures that all
system resources are properly allocated among users and
maintains the overall efficiency and throughput of the system.
Programmer Access Code (PAC)
Partition
Peripherals
A collection of devices, both physical and logical, which are
associated with the MSM system. These can be used to gain access
to printers, terminals, and sequential devices, as well as for
examining or modifying memory contents or alternate disk
storage.
Programmer Mode
Glossary-7
Remote Volume Group
A Volume Group which belongs to a remote system, but is
mounted for use on the local system. The Volume Group is
accessed through DDP.
Routines
Library Routines - That group of utility programs accessible to all
users on the system.
System Manager Routines - Those routines that are only accessible
via the manager’s UCI.
Run Mode
An array which contains space only for those elements which are
actually defined.
Special Variables
A group of variables ($ZA, $ZB, and $ZC) which have special
meaning to the MSM system. These variables are used to indicate
status information about the results of the last operation
performed.
Stack
That area of the MSM system set aside for nesting of subroutines
resulting from execution commands.
Stap
The area of the MSM system set aside for complex expression
nesting.
String
Any set of ASCII characters with a maximum length of 255
characters.
8-Glossary
String Literal
A string of characters enclosed in double quotes within the context
of a line.
Subroutine
A collection of commands which together allow control to pass
from the routine to the subroutine and back to the main routine.
Subroutines are generally used where multiple recurring tasks are
required for execution of the main routine.
Subscripts
SYSGEN
The system generation utility used to specify one or more
configurations to the MSM system. These configurations are used
by the system at startup to initialize the system with the defined
parameters. This is done via an interactive dialogue with MSM
which supports on-screen help for any prompted value.
Terminators
Tied Terminal
The mode used to force a particular terminal to automatically start
up a particular routine in a specified UCI.
Glossary-9
Timeout
A timing convention which allows the user to specify how long
the system should attempt to perform a given command before
proceeding. It is expressed in the format of a colon (:), followed
by an integer which is then appended to a READ, OPEN, or JOB
command.
User Class Identifier (UCI)
The three letter designation (upper case) for a work area within
the MSM system. Each UCI created has its own unique routine
and global directory.
Utilities
Library Utilities - A group of utilities used to aid in the
development of application programs where commonly
performed functions are required.
System Manager Utilities - Those utilities intended for use by the
system manager to ensure proper performance of the system.
These can be accessed only from the manager’s UCI.
Variable
A symbolic name for a location where data is stored. In MSM
there are three type of variables:
10-Glossary
INDEX
$HOROLOG, 4-4, 4-5, 4-10 Access Modes
$IO, 3-4 HFS Devices, 3-33
$JOB, 3-4 Magnetic Tape, 3-43, 3-44
$VIEW Function, 3-28 Accessing Devices, 3-4
$X Variable, 3-6 Active Jobs
$Y Variable, 3-6 %ACTJOB Utility, 4-4
$ZA Values After-Image Journaling, 6-16,
HFS Devices, 3-35 8-4, 8-5
Host System Spool, 3-61 Angle Brackets
IJC Devices, 3-39 See Chapter 4
Magnetic Tape, 3-50 ANSI Standard, 1-1
SBP Devices, 3-26 ANSI Type Terminals, 3-12
Spool Device, 3-57 ANSI X3.64-1979
Terminal Devices, 3-20 Mnemonic Namespaces, 3-7,
$ZB Values F-1
HFS Devices, 3-35 Application Loading
Host System Spool, 3-61 Appendix C
IJC Devices, 3-39 Arrays, Sparse, 1-4
Magnetic Tape, 3-51 ASCII Characters, 2-1, 3-2, 3-6,
SBP Devices, 3-26 3-11, 3-44
Spool Device, 3-57 ASCII Collating Sequence, 6-2
Terminal Devices, 3-20 ASYNC Error, A-3
$ZC Values Asynchronous Error
HFS Devices, 3-35 See ASYNC Error
Host System Spool, 3-61
Magnetic Tape, 3-51 Backspace Block, 3-48
SBP Devices, 3-26 Backward Space Tape, 3-49
Spool Device, 3-57 Baud Rate
Terminal Devices, 3-21 Terminals, 3-15, 3-16
$ZERROR, 2-14 - 2-16, 2-18 Baud Rate Setting
$ZREFERENCE, 2-18 SETBAUD Utility, 4-13
$ZTRAP, 2-14 - 2-18 Before-Image Journaling, 6-16
$ZTRAP Variable, 2-15 Buffers, 8-2
Concepts, 8-2, 8-3
%DEBUG Utility, 2-19 Files, 8-2
%ER Utility, 2-18 Generations, 8-2
%ET Utility, 2-14, 2-18 BIJ Status Block, 6-4
%GCH Utility, 6-3, 6-16, 8-4 BIJ Utility, 8-3
%HELP Utility, 4-3 BKERR Error, A-3
Block Dump
Index-1
BLKDMP Utility, 4-11 %GCH Utility, 4-6
Block Offset Change Global Values
SBP Devices, 3-24 %GCHANGE Utility, 4-6
Block Types Changing Job Priority
BIJ Status Block, 6-4 %HL Utility, 4-7
Data, 6-4, 6-10, 6-11 Changing UCIs, 2-7
Global Directory, 6-4, 6-7, Character Echo, 3-14
6-9 Checksums, 4-4
Journal, 6-4 %CHKSUM Utility, 4-4
Label, 6-4 Circumflex, 1-4, 2-6, 2-13, 4-4,
Map, 6-4, 6-6 A-2
OLB Status Block, 6-4 See Chapter 4
Pointer, 6-4, 6-9 Clobber Error
Routine Block, 7-4 See CLOBR Error
Routine Data, 6-4, 7-1, 7-2 CLOBR Error, A-3
Routine Directory, 6-4, 7-1 CLOSE Command
Routine Header, 6-4, 7-1 - 7-3 HFS Devices, 3-32
SBP, 6-4 Host System Spool, 3-60
Spool Data, 6-4 IJC Devices, 3-38
Spool Directory, 6-4 Magnetic Tape, 3-43
UCI Directory, 6-4 Routine Interlocks, 3-41
Boldface Type, xii SBP Devices, 3-24
Bottom-Level Pointer, 6-9, 7-2 Spool Device, 3-54
BREAK Terminal Devices, 3-8
Key, 2-2 VIEW Device, 3-28
Levels, 2-19 CMMND Error, A-3
Recognition, 2-13 Collating Sequence, 6-2, 6-3
Break Error Command Error
See BKERR Error See CMMND Error
Broadcast A Message Commands
BCS Utility, 4-11 CLOSE, 3-8, 3-24, 3-28,
Buffer Cache, 1-5, 6-5 3-32, 3-38, 3-41, 3-43, 3-54,
Buffer Mode 3-60
HFS Devices, 3-33 Input And Output, 3-5
Magnetic Tape, 3-44 LOCK, 5-1, 5-6
Buffer Offset OPEN, 3-8, 3-24, 3-28, 3-32,
HFS Devices, 3-34 3-38, 3-41, 3-43, 3-54, 3-60
Magnetic Tape, 3-47 READ, 3-4, 3-5, 3-7
USE, 3-8, 3-24, 3-28, 3-32,
Cache, Buffer, 1-5 3-38, 3-43, 3-54, 3-60
Canonic Numbers, 6-2, 6-3 User-Defined, G-1, G-2
Change Global Characteristics VIEW, 3-28, 5-2
2-Index
WRITE, 3-4, 3-5, 3-7, 3-11 Copying Globals
Common Utility Routines, 4-4 %GCOPY Utility, 4-6
Communication Failure Creating Routines, 2-8
See MSMCX Error Cross-System Global
Compile Routines, 1-3 Reference, 6-15
%RELOAD Utility, 4-9 Cross-System Journaling, 6-16,
Compression, 6-7, 6-9 8-7
Control Blocks Cross-UCI Global
Device Descriptor Block, 5-2, Reference, 6-14
5-12 Cross-Volume Global
Lock Table, 5-1, 5-6 Reference, 6-14
PVECTOR, 5-1, 5-4 CTRL
SVECTOR, 5-1, 5-2 See Control Characters
UCI Table, 5-2, 5-10 CUA Full Screen Editor
Volume Group Table, 5-1, 5-8 Invoking, E-1
Control Characters, 2-1 - 2-3, Overview, E-1
3-11 Cursor Positioning, 3-13
Backspace, 2-2
Break, 2-2 Data Bits
CTRL/C, 2-2 Terminals, 3-15, 3-16
CTRL/H, 2-2 Data Block, 6-4, 6-10, 6-11
CTRL/I, 2-2, 2-3 Data Element, 6-11
CTRL/J, 2-3 Data Length
CTRL/L, 2-3 Terminals, 3-11
CTRL/M, 2-2, 2-3 Database Integrity
CTRL/O, 3-11, 3-14 VALIDATE Utility, 4-14
CTRL/Q, 2-3, 3-14 VERIFY Utility, 4-14
CTRL/R, 2-3 Database Maintenance
CTRL/S, 2-3, 3-14 DBMAINT Utility, 4-12
CTRL/U, 2-3 Database Management System,
CTRL/X, 2-3 1-3
DEL, 2-2 Database Repair
ESC, 2-2 DBFIX Utility, 4-11, 4-12
RET, 2-2, 2-3 Date And Time
TAB, 2-2, 2-3 %D Utility, 4-4
Control Key, xii, 2-1 %T Utility, 4-10
Control Terminal Functions, DDB
3-10 See Device Descriptor Block
Conventions DDP
Documentation, xii See Distributed Data
Convert Hex To Decimal Processing
%HD Utility, 4-7
Index-3
DDP Link Failure Disk Block Number
See DSTDB Error HFS Devices, 3-34
DDP Server Error SBP Devices, 3-25
See DDPER Error Disk Buffers, 6-5
DDPER Error, A-3 Disk Database, 6-3
Decimal To Hex Disk Full Error
%DH Utility, 4-5 See DKFUL Error
Defining UCIs Disk Hard Error
See MSM System Manager’s See DKHER Error
Guide Disk Map
Delete Characters, 2-2 DISKMAP Utility, 4-12
Delete Globals Display Error Codes
%GDEL Utility, 4-6 %ERRCODE Utility, 4-5
Delete Input Line, 2-3 Display Error Log
Delete Routines %ER Utility, 4-5
%RDEL Utility, 4-9 Distributed Data Processing,
Deleting Lines, 2-10 6-15
Deleting Routines, 2-12 DDP Utility, 4-12
Delimiter String DIVER Error, A-3
Magnetic Tape, 3-46 Divide Error
Destination Code See DIVER Error
Spool Device, 3-55, 3-56 DKFUL Error, 6-12, A-4
Device Characteristics DKHER Error, 3-25, 3-26, 3-29,
Terminals, 3-10 3-33, A-4
Device Descriptor Block DKRES Error, A-4
Layout, 5-2, 5-12 DKSER Error, 6-7, A-4
Device Designators, 3-3 DO, 2-13
Device Not Open Error Do Command
See NOPEN Error See Chapter 4
Device Parameters Documentation
See OPEN/USE Parameters Conventions, xii
Device Selection Downlevel Error Trapping, 2-18
%SDEV Utility, 4-10 DPARM Error, A-4
Device Special Variables DSCON Error, A-4
See $X, $Y, $ZA, $ZB, And DSTDB Error, A-4
$ZC DTR Signal, 3-13
Directory Dump And Restore
Routine, 7-1 MSMDR Utility, 4-13
Disallowing Logons
Terminals, 3-13 EBCDIC Character Set, 3-44
Disconnect Error Echo Characters
See DSCON Error %ECHO Utility, 4-5
4-Index
Terminal Devices, 3-14 Extended Global Directory List
Editing Routines, 2-9 %GDE Utility, 4-6
Editing Specific Lines, 2-11 Extended Global Reference,
Editors 6-14, 6-15
Global Editor (%GEDIT), 4-6 External To Internal Date
Efficiency Of Globals %DI Utility, 4-5
%GE Utility, 4-6 External To Internal Time
Empty Line Delete, 3-11 %TI Utility, 4-10
Environmental Flags
%MODESET Utility, 4-8 Fast Global Restore
Erase Tape, 3-49 %FGR Utility, 4-5
Error Codes Fast Global Save
%ERRCODE Utility, 4-5 %FGS Utility, 4-5
Error Conditions File Designator
Appendix A Spool Device, 3-55
Error Messages, xii, A-3, A-4, File Listing
A-6 - A-8 %FLIST Utility, 4-5
Format, A-1 File Name
Error Numbers, A-9 - A-12 DOS, 3-33
Error Trapping, 2-13 Unix, 3-33
DO/XECUTE Level, 2-15 VMS, 3-33
Down Level, 2-18 File Number
Error Conditions, A-1 Spool Device, 3-55, 3-56
Interactive Debugging, 2-19 File Offset
Standard, 2-14 HFS Devices, 3-34
System Supplied, 2-18 Fixed Length READ
User Defined, 2-15 Terminals, 3-9
Escape Processing, 2-2, 3-11, Fixed Length Records
3-13, 3-18, 3-20, 3-21 Magnetic Tape, 3-44
Examine A Job Flow Control
JOBEXAM Utility, 4-12 Terminals, 3-15, 3-16
Executing Routines, 2-13 Flush Input Buffer, 3-10
Execution Traceback, A-2 Form Feed, 2-3
Exit Message, 2-4, 2-8 Forward Space Block, 3-48
Expansion Areas Forward Space Tape, 3-49
Global, 6-12 Free Space
EXPER Error, A-4 %SP Utility, 4-10
Exponentiation Error Full Screen Editor, 2-11
See EXPER Error See also CUA Full Screen
Editor
Index-5
Commands, D-2 Save (%GS), 4-7
Cursor Movement, D-2, D-4 Search (%GSE), 4-7
Delete Commands, D-10 Select (%GSEL), 4-7
Editing Commands, D-7 Global Directory Block, 6-4,
Invoking, D-1 6-7, 6-9
Mark Commands, D-9 Global Expansion Areas, 6-12
Miscellaneous Commands, Global Name
D-13, D-14 Definition, 6-2
Overview, D-1 Global Organization, 6-12, 6-13
Scrolling Commands, D-5, Global Protection, 6-16
D-6 Global Reference
Search Commands, D-11 Cross-System, 6-15
Summary Of Commands, Cross-UCI, 6-14
D-15 Cross-Volume, 6-14
Transfer/Copy Commands, Global Select
D-12 %GSEL Utility, 4-7
FUNCT Error, A-4 Global Size
Function Keys, 3-19 %GSIZE Utility, 4-7
Functions Global Transfer
User Defined, G-1, G-2 %TRANS Utility, 4-11
$VIEW, 3-28, 5-2 Global Variables, 1-3, 1-4
Collating Sequence, 6-2
Generating The System Overview, 6-1
SYSGEN Utility, 4-14 Usage, 6-1
Global
Changing Values HALT, 2-8
(%GCHANGE), 4-6 Hardcopy Devices
Characteristics (%GCH), 4-6 Terminals, 3-14
Copy (%GCOPY), 4-6 Help Information
Delete (%GDEL), 4-6 Utilities, 4-3, 4-7
Directory List (%GD), 4-6 HFS
Editor (%GEDIT), 4-6 See Host File Server, 3-31
Efficiency (%GE), 4-6 Host Commands
Extended Directory List %HOSTCMD Utility, 4-7
(%GDE), 4-6 Host File Listing
Fast Restore (%FGR), 4-5 %FLIST Utility, 4-5
Fast Save (%FGS), 4-5 Host File Server, 3-31
List (%G), 4-6 $ZA Values, 3-35
List (%GL), 4-6 $ZB Values, 3-35
Maintain (GBMAINT), 4-12 $ZC Values, 3-35
Place (GBPLACE), 4-12 Device Numbers, 3-3
Restore (%GR), 4-7 Examples, 3-36
6-Index
Ownership Commands, 3-32 Interpreter
Host System Spool P-Code, 1-3
$ZA Values, 3-61 Interrupt Error
$ZB Values, 3-61 See INTRP Error
$ZC Values, 3-61 Interrupts
Device Numbers, 3-3 Terminals, 3-12
Examples, 3-62 Invalid Negative Number
Ownership Commands, 3-60 See MINUS Error
Invalid P-Code Error
I/O Supervisor, 1-5 See PLDER Error
IJC IRQ Levels
See Interjob Communication, STUIRQ Utility, 4-14
3-37 Issuing Host Commands
INDER Error, A-5 %HOSTCMD Utility, 4-7
Index Routines ISYNT Error, A-5
%INDEX Utility, 4-7
Indirection Error Job Priority
See INDER Error %HL Utility, 4-7
INHIB Error, A-5 Journal Block, 6-4
Initialization Values Journal Maintenance
Terminals, 3-15, 3-16 JRNL Utility, 4-12
INRPT Error, A-5 Journaling
Insert Error After-Image, 8-4, 8-5
See ISYNT Error Before-Image, 8-2, 8-3
Inserting Lines, 2-10 BIJ Utility, 8-3
Inspect Memory, 3-28 Cross-System, 8-7
Integrity Checker JRNL Utility, 8-5, 8-8
VALIDATE Utility, 4-14 OLB Utility, 8-10
VERIFY Utility, 4-14 JRNL Utility, 8-5, 8-8
Interactive Debugging, 2-19
%DEBUG Utility, 4-4 Killing A Job
Interjob Communication KILLJOB Utility, 4-12
$ZA Values, 3-39
$ZB Values, 3-39 Label Block, 6-4
$ZC Values, 3-39 Label Processing, 3-48, 3-49
Device Numbers, 3-3 Labeled Tape, 3-44
Examples, 3-40 Language Compiler, 1-3
Ownership Commands, 3-38 LAT
Internal To External Date See Local Area Transport
%DO Utility, 4-5 Layout Of System Tables
Internal To External Time See Chapter 5
%TO Utility, 4-10
Index-7
LCNSE Error, A-5 $ZB Values, 3-51
Library Utilities, 4-3 $ZC Values, 3-51
License Error %MTCHK Utility, 4-8
See LCNSE Error Access Modes, 3-44
Line By Line Editor, 2-11 Device Numbers, 3-3
Edit Specific Lines, B-2 Examples, 3-52
Overview, B-1 Ownership Commands, 3-43
Special Functions, B-4 - B-8 WRITE Commands, 3-47,
Line Carrier, 3-13 3-48
Line Error Magnetic Tape Error
See LINER Error See MTERR Error
Line Feed, 2-3, 3-12 Maintenance Routines, 1-6
Line Labels, 2-10 Major Number, A-1
LINER Error, 2-10, A-5 Map Block, 6-4, 6-6
List Global Directory Map Block Error
%GD Utility, 4-6 See MAPER Error
List Globals Map Control Plocks
%G Utility, 4-6 MAPnnn Utilities, 4-13
%GL Utility, 4-6 MAPER Error, A-5
Loading Applications Mathematical Functions
Appendix C %MFUNC Utility, 4-8
%PACKAGE Utility, 4-8 Maximum Memory Error
Loading Routines, 2-9 See MXMEM Error
Local Area Transport, 2-1 Maximum Number Error
Local Variables, 1-3 See MXNUM Error
Lock Table Maximum String Error
Layout, 5-1, 5-6 See MXSTR Error
Logging Errors Memory Dump
%ET Utility, 4-5 %MDMP Utility, 4-8
Logging Off The System, 2-8 Merge Command Error
Logging Onto The System, 2-4 See MERGE Error
- 2-6 MERGE Error, A-5
%LOGON Utility, 4-8 Messages
Logical Record Length Between Jobs, 3-37
Magnetic Tape, 3-46 Minor Number, A-1
Lost Block Recovery MINUS Error, A-5
RECOVER Utility, 4-13 Minus Sign
Lower Case Setup See Chapter 4
Terminals, 3-12 Mnemonic Controls, 3-7, F-1
Mnemonic Namespaces, 3-7
Magnetic Tape, 3-42 ANSI X3.64-1979, 3-7, F-1
$ZA Values, 3-50
8-Index
ZWINTERM, 3-7, F-5 No Journal Allowed
Mode Error See NOJRN Error
See MODER Error No Open Error
Mode Flags See NOPEN Error
%MODESET Utility, 4-8 No Program
SWREG Utility, 4-14 See NOPGM
Mode Switches No Program Error
VIEW Device, 3-29 See NOPGM Error
Modem Control, 3-14 No System Error
MODER Error, 3-45, 3-49, A-5 See NOSYS Error
Modes No UCI Error
Programmer, 2-5, 2-13 See NOUCI Error
Run, 2-6, 2-13 NODEV Error, 3-38, A-6
Tied Terminal, 2-6 NOJRN Error, A-6
Modify Disk Blocks, 3-28 NOPEN Error, 3-21, 3-33, A-6
Monitor, Operating System, 1-4 NOPGM Error, 2-9, A-7
Monitoring A Job NOSYS Error, 6-15, A-7
PEEK Utility, 4-13 NOUCI Error, 6-14, A-7
Mouse Control Null Characters, 3-44
%MOUSE Utility, 4-8
MSM System OLB Status Block, 6-4
Database Management, 1-3 OLB Utility, 8-10
Functional Description, 1-2 Omitted Items, xii
I/O Supervisor, 1-5 OPEN/USE Parameters
Language Compiler, 1-3 HFS Devices, 3-32
Operating System Monitor, Host System Spool, 3-60
1-4 IJC Devices, 3-38
Utility Program Library, 1-5 Magnetic Tape, 3-43
MSMCX Error, A-6 Routine Interlocks, 3-41
MTERR Error, 3-45, 3-50, A-6 SBP Devices, 3-24
MUMPS, 1-1 Spool Device, 3-54
Acknowledgement, xi Terminal Devices, 3-8
MXMEM Error, A-6 VIEW Device, 3-28
MXNUM Error, A-6 OPEN Command
MXSTR Error, A-6 HFS Devices, 3-32
Host System Spool, 3-60
NAKED Error, A-6 IJC Devices, 3-38
Naked Indicator Error Magnetic Tape, 3-43
See NAKED Error Routine Interlocks, 3-41
Namespaces,Mnemonic, F-1 SBP Devices, 3-24
No Device Error Spool Device, 3-54
See NODEV Error Terminal Devices, 3-8
Index-9
VIEW Device, 3-28 Pass All
Open Devices Terminals, 3-11
%DEVUSE Utility, 4-5 PCERR Error, A-7
Operating Modes Percent Character, 2-9
Programmer, 2-5, 2-13 Percent Editor, 2-11
Run, 2-6, 2-13 Percent Sign, 4-3
Tied Terminal, 2-6 See Chapter 4
Operating System, 1-1 Performance Monitor
Operating System Functions RTHIST Utility, 4-13
%OS Utility, 4-8 Peripheral Devices
Operating System Monitor, 1-4 Accessing, 3-4
Output Only Overview, 3-1
Terminals, 3-14 Using, 3-1
Overview PGMOV Error, A-7
MSM System, 1-1 Physical Block Size
Peripheral Devices, 3-1 Magnetic Tape, 3-46
Routine Structure, 7-1 Placing A Global
System Design, 1-1 GBPLACE Utility, 4-12
System Tables, 5-1 PLDER Error, A-7
Using The System, 2-1 Pointer Block, 6-4, 6-9
Ownership Commands Post Conditional Error
HFS Devices, 3-32 See PCERR Error
Host System Spool, 3-60 Print Routines
IJC Devices, 3-38 %RPRT Utility, 4-9
Magnetic Tape, 3-43 Processing Trapped Errors, 2-15
Routine Interlocks, 3-41 Program Editor
SBP Devices, 3-24 Edit Specific Lines, B-2
Spool Device, 3-54 Overview, B-1
Terminal Devices, 3-8 Special Functions, B-4 - B-8
VIEW Device, 3-28 Program Overflow Error
See PGMOV Error
P-Code, 1-3 Programmer Access Code, 2-5
PAC Programmer Mode, 2-5, 2-13
See Programmer Access Code Programmer Prompt, 2-5, 2-7,
Parameter Passing Error 2-8
See DPARM Error Prompted READ, 3-10
Parity PROT Error, 6-14, A-7
Terminals, 3-15, 3-16 Protection
Partition Size, 2-5 - 2-7, 5-4, 5-5 Classes, 6-16
%PARTSIZ Utility, 4-8 Global, 6-16
Partition Vector Protection Error
Layout, 5-1, 5-4 See PROT Error
10-Index
Pseudo-code, 1-3 Rewind Tape, 3-48
PVECTOR Right Link, 6-5, 6-12, 7-2
See Partition Vector Right Margin
Terminals, 3-9
Question Mark, 4-3 Routine
See Chapter 4 Change (%RCHANGE), 4-9
QUIT, 2-13 Compare (%RCMP), 4-9
Quotes, 2-10 Compile (%RELOAD), 4-9
Copy (%RCOPY), 4-9
Read Disk Blocks, 3-28 Delete (%RDEL), 4-9
READ Terminator Directory (%RD), 4-9
HFS Devices, 3-35 First Line List (%FL), 4-5
SBP Devices, 3-25 Print (%RPRT), 4-9
Terminal Devices, 3-11, 3-17 Restore (%RR), 4-9
Record Format Save (%RS), 4-9
HFS Devices, 3-34 Search (%RSAND), 4-9
SBP Devices, 3-26 Search (%RSE), 4-9
Recording Density Select (%RSEL), 4-10
Magnetic Tape, 3-45, 3-46 Size (%RSIZE), 4-10
Relative Block Numbers, 6-3 Routine Data, 6-4
Remote Volume Group, 6-15 Routine Data Block, 7-1, 7-4
Definition, 6-15 Routine Data Block Format, 7-2
Remove Lock Table Entry Routine Data Blocks, 7-1, 7-2
RECOVLK Utility, 4-13 Routine Data Structure, 7-1, 7-2
Repeated Items, xii Routine Directory, 6-4, 7-1
Replication, 6-15 Routine Editor Date
Replication Tables %NEWED Utility, 4-8
TRANSLAT Utility, 4-14 Routine Header, 6-4
Reprint Current Line, 2-3 Routine Header Block, 7-1 - 7-3
Reset A Terminal Device, 4-12 Routine Index
Resetting Device Values %INDEX Utility, 4-7
Terminals, 3-15 Routine Interlocks, 3-41
Resilient Systems Device Numbers, 3-3
See Chapter 8 Examples, 3-41
Restore Globals Ownership Commands, 3-41
%GR Utility, 4-7 Routine Transfer
Restore Routines %TRANS Utility, 4-11
%RR Utility, 4-9 Routines
Resume Output, 2-3 Creation Of, 2-8
Retension Tape, 3-49 Deleting From Disk, 2-12
Return Key, xii Deleting Lines, 2-10
Rewind And Unload Tape, 3-49 Editing, 2-9
Index-11
Executing, 2-13 Special Variables
Library $DEVICE, 3-7
See Chapter 4 $IO, 3-4
System Manager $JOB, 3-4, 5-5
See Chapter 4 $KEY, 3-7
Tied To A Terminal, 2-6 $X, 3-6, 3-12, 5-12
RS-232 Interface, 2-1 $Y, 3-6, 3-12, 5-12
Run Mode, 2-6, 2-13 $ZA, 3-6
$ZB, 3-6
Save Globals $ZC, 3-6
%GS Utility, 4-7 $ZERROR, 2-14 - 2-16, 2-18,
Save Routines A-1, A-2
%RS Utility, 4-9 $ZREFERENCE, 2-18
SBP Block, 6-4 $ZTRAP, 2-14 - 2-18, A-1,
SBP Devices A-2
$ZA Values, 3-26 Device Values, 3-6
$ZB Values, 3-26 User Defined, G-1, G-2
$ZC Values, 3-26 Spool Data, 6-4
Device Numbers, 3-3 Spool Device, 3-53
Examples, 3-27 $ZA Values, 3-57
Ownership Commands, 3-24 $ZB Values, 3-57
SBP Maintenance $ZC Values, 3-57
SBP Utility, 4-13 Device Number, 3-3
SBP Status Examples, 3-58
%SBP Utility, 4-10 Ownership Commands, 3-54
SBSCR Error, A-7 Spool Directory, 6-4
Search Globals Spooler Parameters
%GSE Utility, 4-7 Host System Spool, 3-60
Search Routines Spooling Maintenance
%RSAND Utility, 4-9 SPL Utility, 4-14
%RSE Utility, 4-9 Square Root
Select Device %SQRT Utility, 4-10
%SDEV Utility, 4-10 Stack Overflow Error
Select Routines See STKOV Error
%RSEL Utility, 4-10 Standard Error Processing, 2-14
Sequential Block Processor Standard Tape Labels, 3-44
See SBP Devices Status Information
Setting Up Tied Terminals HFS Devices, 3-35
See MSM System Manager’s Host System Spool, 3-61
Guide IJC Devices, 3-39
Slash Commands, 3-7, F-1 Magnetic Tape, 3-50
Sparse Arrays, 1-4 SBP Devices, 3-26
12-Index
Spool Device, 3-57 Language Compiler, 1-3
Terminal Devices, 3-20 Operating System Monitor,
STKOV Error, A-7 1-4
Stop Bits Utility Program Library, 1-5
Terminals, 3-15, 3-16 System Error
Stream Mode See SYSTM Error
HFS Devices, 3-34 System Error Trap, 2-18
Magnetic Tape, 3-45 System Manager Utilities, 4-3
SBP Devices, 3-26 System Shutdown
Structured Program Listing SSD Utility, 4-14
%INDSTR Utility, 4-8 System Startup
Subscript Error STU Utility, 4-14
See SBSCR Error System Startup Exit
Supported Terminals, 2-1 STUSER Utility, 4-14
Suspend Output, 2-3 System Tables
SVECTOR See Chapter 5
See System Vector System Vector
Syntax Error Layout, 5-1, 5-2
See SYNTX Error SYSTM Error, A-8
SYNTX Error, 3-25, A-8
System TAB Control, 3-12
Broadcast (BCS), 4-11 Tape Mark Errors
Dump And Restore Inhibit, 3-45
(MSMDR), 4-13 Tape Status
Examine Job (JOBEXAM), Update, 3-49
4-12 TCP/IP, 2-1
Free Space (%SP), 4-10 Terminal Control Characters
Generation (SYSGEN), 4-14 See Control Characters
Integrity (VALIDATE), 4-14 Terminal Devices, 3-8
Journaling (JRNL), 4-12 $ZA values, 3-20
Kill Job (KILLJOB), 4-12 $ZB values, 3-20
Lock Table (LOCKTAB), $ZC values, 3-21
4-13, 5-7 Device Numbers, 3-3
Map Control Blocks, 4-13 Escape Processing, 3-18
Overview, 1-1 Examples, 3-22
Performance (RTHIST), 4-13 Initialization Values, 3-15,
Status (%SS), 4-10 3-16
System Activity Ownership Commands, 3-8
COUNTERS Utility, 4-11 Terminal Emulator
System Components, 1-2 %XMIT Utility, 4-11
Database Management, 1-3 Terminals Supported, 2-1
I/O Supervisor, 1-5 Terminate Input, 2-2, 2-3
Index-13
Terminator Characters, 3-17 SBP Devices, 3-24
Text Buffer Size Spool Device, 3-54
Terminals, 3-17 Terminal Devices, 3-8
Tied Terminal Mode, 2-6 VIEW Device, 3-28
Time And Date User Class Identifier
%D Utility, 4-4 See UCI
%T Utility, 4-10 Manager’s
Timeout On Logon, 2-4 See Chapter 4
Top-Level Pointer, 6-9 User Error Processing, 2-15
TPROC Error, A-8 Using Peripheral Devices, 3-1
Transaction Error Utilities, 1-5
See TPROC Error Common Routines, 4-4
Translation Tables Library, 4-3
TRANSLAT Utility, 4-14 Supplied With System, 4-4
Trapping Errors System Manager, 4-3
See Error Trapping Utility Menu
Typeahead, 3-10 %UTL Utility, 4-11
Utility Program Library, 1-5
UCI, 2-4, 2-5 Utility Programs
Changing, 2-7 See Chapter 4
UCI Directory, 6-4 See MSM Utility Manual
UCI Maintenance Initiate Execution
UCIMGR Utility, 4-14 See Chapter 4
UCI Number Interrupt Execution
%GUCI Utility, 4-7 See Chapter 4
UCI Table Library, 4-4
Layout, 5-2, 5-10 Utility Routines
UCI Translation, 6-15 Conventions
UNDEF Error, A-8 See Chapter 4
Undefined Function Error
See FUNCT Error Variable Length Mode
Undefined Variable Error HFS Devices, 3-34
See UNDEF Error Magnetic Tape, 3-45
Unix lp Spooler, 3-60 SBP Devices, 3-26
Unlabeled Tapes, 3-45 Variables
Update $X and $Y Global, 1-3, 1-4, 6-1
Terminals, 3-12 Local, 1-3
USE Command Locking, 5-6
HFS Devices, 3-32 Video Buffer
Host System Spool, 3-60 %VIDEO Utility, 4-11
IJC Devices, 3-38 VIEW Command, 3-28
Magnetic Tape, 3-43 VIEW Device, 3-28
14-Index
Device Number, 3-3
Examples, 3-30
Ownership Commands, 3-28
VIEW Device Error
See VWERR Error
VIEW Error
See VWERR Error
VMS Print Spooler, 3-60
Volume Group
Table Layout, 5-1, 5-8
Volume Group Number, 3-25
VWERR Error, 3-49, A-8
Window Placement
Terminals, 3-18
Window Size
Terminals, 3-18
Write Tape Mark, 3-48
XECUTE, 2-11
Z Commands, 2-8
ZALLOCATE, 5-1, 5-6
ZINSERT, 2-10, 2-11
ZLOAD, 2-9, 3-5
ZPRINT, 2-10, 3-5
ZQUIT, 2-16
ZREMOVE, 2-9 - 2-12
ZSAVE, 2-12
ZUSE, 3-11
ZWRITE, 3-5
ZCALL Error, A-8
See ZCERR Error
ZCERR Error, A-8
ZSAVE Error, A-8
See ZSVGP Error
ZSVGP Error, A-8
ZWINTERM
Mnemonic Namespace, 3-7,
F-5
Index-15
This page is intentionally left blank.
16-Index