tions that are controlled by a hierarchy of masks are
allowed only when all mask bits in the hierarchy are
ones.
Programming Note
Mask bits in thePSW provide a means of disabling
all maskable interruptions; thus, subsequent inter
ruptions can be disallowed by the newPSW intro
duced by an interruption. Furthermore, the mask
bits can be used to establish a hierarchy of interrup
tion priorities, where a condition in one class can
interrupt the program handling a condition in anoth
er class but not vice versa. To prevent an
interruption-handling routine from being interrupted
before the necessary housekeeping steps are per
formed, the newPSW must disable the CPU for
further interruptions within the same class or within
a class of lower priority.
Since the mask bits in control registers are not
changed as part of the interruption procedure, these
masks cannot be used to prevent an interruption
immediately after a previous interruption in the same
class. The mask bits in control registers provide a
means for selectively enabling theCPU for some
sources and disabling it for others within the same
class.
Instruction-Length Code
The instruction-length codeOLC) occupies two bit
positions and provides the length of the last instruc
tion executed. It permits identifying the instruction
causing the interruption when the instruction address
in the oldPSW designates the next sequential in
struction. The ILC is provided also by the BRANCH
AND LINK instructions.
In an oldPSW specifying the BC mode, the
instruction-length code is stored in bit positions 32
and 33. It is meaningful, however, only after a pro
gram or supervisor-call interruption. ForI/O, exter
nal, machine-check, and restart interruptions, the
code does not indicate the length of the last
executed instruction and is unpredictable. Similarly,
the ILC is unpredictable in thePSW stored during
execution of the store-status function and when thePSW is displayed.
When the oldPSW specifies the EC mode, the
instruction-length code for supervisor-call and pro
gram interruptions is stored in bit positions 5 and 6
of the bytes at locations 137 and 141, respectively.
ForI/O, external, machine-check, and restart inter
ruptions the code is not stored.
For supervisor-call and program interruptions, a
nonzero instruction-length code identifies in half
words the length of the instruction that was last ex
ecuted. Whenever an instruction is executed by
means of EXECUTE, instruction-length code 2 is
set to indicate the length of EXECUTE and not that
of the subject instruction.
The value of a nonzero instruction-length code is
related to the leftmost two bits of the instruction.
The value is not contingent on whether the operation
code is assigned or on whether the instruction is
installed. The following table summarizes the mean
ing of the instruction-length code:ILC Decimal Binary Instruction Bits 0-1 I nstruction Length 0 00 Not available 01 00 One halfword 2 10 01 Two halfwords 2 10 10 Two halfwords 3 11 11 Three halfwords Zero ILC
Instruction-length code0, after a program interrup
tion, indicates that the location of the instruction
causing the interruption is not made available to the
program. Instruction-length code° occurs only in
the following cases:
1. When a specification exception is recognized
that is due to aPSW format error, other than
one due to an odd instruction address, and the
invalidPSW has been introduced by LOAD PSW or an interruption. In the case of LOAD PSW, the address of the instruction has been
replaced by the newPSW. When the invalid PSW is introduced by an interruption, the for
mat error cannot be attributed to an instruc
tion.
2.On some models, when an addressing exception
(excluding those detected during implicit refer
ences to dynamic-address-translation-table
entries) or a protection exception is recognized
during a store-type reference. In these cases
the interruption due to the exception is de
layed, the length of time or number of instruc
tions of the delay being unpredictable. Neither
the location of the instruction causing the ex
ception nor the length of the last-executed in
struction is made available to the program.
When the newPSW introduced by LOAD PSW or a supervisor-call interruption has a format error,
Interruptions 71
allowed only when all mask bits in the hierarchy are
ones.
Programming Note
Mask bits in the
all maskable interruptions; thus, subsequent inter
ruptions can be disallowed by the new
duced by an interruption. Furthermore, the mask
bits can be used to establish a hierarchy of interrup
tion priorities, where a condition in one class can
interrupt the program handling a condition in anoth
er class but not vice versa. To prevent an
interruption-handling routine from being interrupted
before the necessary housekeeping steps are per
formed, the new
further interruptions within the same class or within
a class of lower priority.
Since the mask bits in control registers are not
changed as part of the interruption procedure, these
masks cannot be used to prevent an interruption
immediately after a previous interruption in the same
class. The mask bits in control registers provide a
means for selectively enabling the
sources and disabling it for others within the same
class.
Instruction-Length Code
The instruction-length code
positions and provides the length of the last instruc
tion executed. It permits identifying the instruction
causing the interruption when the instruction address
in the old
struction. The ILC is provided also by the BRANCH
AND LINK instructions.
In an old
instruction-length code is stored in bit positions 32
and 33. It is meaningful, however, only after a pro
gram or supervisor-call interruption. For
nal, machine-check, and restart interruptions, the
code does not indicate the length of the last
executed instruction and is unpredictable. Similarly,
the ILC is unpredictable in the
execution of the store-status function and when the
When the old
instruction-length code for supervisor-call and pro
gram interruptions is stored in bit positions 5 and 6
of the bytes at locations 137 and 141, respectively.
For
ruptions the code is not stored.
For supervisor-call and program interruptions, a
nonzero instruction-length code identifies in half
words the length of the instruction that was last ex
ecuted. Whenever an instruction is executed by
means of EXECUTE, instruction-length code 2 is
set to indicate the length of EXECUTE and not that
of the subject instruction.
The value of a nonzero instruction-length code is
related to the leftmost two bits of the instruction.
The value is not contingent on whether the operation
code is assigned or on whether the instruction is
installed. The following table summarizes the mean
ing of the instruction-length code:
Instruction-length code
tion, indicates that the location of the instruction
causing the interruption is not made available to the
program. Instruction-length code
the following cases:
1. When a specification exception is recognized
that is due to a
one due to an odd instruction address, and the
invalid
replaced by the new
mat error cannot be attributed to an instruc
tion.
2.
(excluding those detected during implicit refer
ences to dynamic-address-translation-table
entries) or a protection exception is recognized
during a store-type reference. In these cases
the interruption due to the exception is de
layed, the length of time or number of instruc
tions of the delay being unpredictable. Neither
the location of the instruction causing the ex
ception nor the length of the last-executed in
struction is made available to the program.
When the new
Interruptions 71