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 the PSW provide a means of disabling
all maskable interruptions; thus, subsequent inter­
ruptions can be disallowed by the new PSW 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 new PSW 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 the CPU for some
sources and disabling it for others within the same
class.
Instruction-Length Code
The instruction-length code OLC) 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 old PSW designates the next sequential in­
struction. The ILC is provided also by the BRANCH
AND LINK instructions.
In an old PSW 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. For I/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 the PSW stored during
execution of the store-status function and when the PSW is displayed.
When the old PSW 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.
For I/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 code 0, 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 a PSW format error, other than
one due to an odd instruction address, and the
invalid PSW 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 new PSW. 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 new PSW introduced by LOAD PSW or a supervisor-call interruption has a format error,
Interruptions 71
Mask Bits PSW Mask in Control Source Interruption
Bits Registers
Execution of Instruction
Identification Code
BC EC Register Bit ILC Set Identified by Old PSW ----
Machine check (old PSW 48, new PSW 112)
Exigent condition mmmmmmmm mmmmmmmm
1
13 13 x terminated or nullified
7
Repressible condo mmmmmmmm mmmmmmmm
1
13 13 14 4-7 x unaffected
7
Supervisor call (old PSW 32, new PSW 96) I nstruction bits 00000000 rrrrrrrr 1,2 completed
Program (old PSW 40, new PSW 104) Operation 00000000 nOOOOO01 1,2,3 suppressed
Privileged oper. 00000000 nooOO010 1,2 suppressed
Execute 00000000 nOOOO011 2 suppressed
Protection 00000000 riOOO0100 0,1,2,3 suppressed or terminated
Addressing 00000000 nOOO0101 0,1,2,3 suppressed or terminated
Specification 00000000 nOOO0110 0,1,2,3 suppressed or completed
Data 00000000 nOOOOlll 2,3 suppressed or terminated
Fixed-pt. overflow 00000000 nOO01000 36 20 1,2 completed
Fixed-point divide 00000000 nOO01001 1,2 suppressed or completed
Deci mal overflow 00000000 nOO01010 37 21 2,3 completed
Decimal divide 00000000 nOO01011 2,3 suppressed
Exponent overflow 00000000 nOO01100 1,2 completed
Exponent underflow 00000000 nOO01101 38 , 22 1,2 completed SignificancE! 00000000 nOOOll10 39 23 1,2 completed
Floating-pt. divide 00000000 nOO01111 1,2 suppressed
Segment transl. 00000000 n0010000 1,2,3 nullified
Page translation 00000000 n0010001 1,2,3 nullified
Translation spec 00000000 n0010010 1,2,3 suppressed
Special opelration 00000000 n00100ll 0 2 suppressed
Monitor event 00000000 nl000000 8 16+ 2 completed
Program evont 00000000 leOeeeee
2
9 0-3 0,1,2,3 completed
3
External (old PSW 24, new PSW 88) Interval timer 00000000 lnnnnnnn 7 7 0 24 x unaffected I Interrupt kE!y 00000000 nlnnnnnn 7 7 0 25 x unaffected
External signal 2 00000000 nn1nnnnn 7 7 0 26 x unaffected
External signal 3 00000000 nnnlnnnn 7 7 0 26 x unaffected
External signal 4 00000000 nnnn1nnn 7 7 0 26 x unaffected
External signal 5 00000000 nnnnn1nn 7 7 0 26 x uriaffected
External signal 6 00000000 nnnnnn1n 7 7 0 26 x unaffected
External signal 7 00000000 nnnnnnn1 7 7 0 26 x unaffected
Malfunction alert 00010010 00000000 7 7 0 16 x unaffected
Emergency signal 00010010 00000001 7 7 0 17 x unaffected
External call 00010010 00000010 7 7 0 18 x unaffected TOO clock sync chk 000.10000 00000011 7 7 0 19 x unaffected
Clock comparator 00010000 00000100 7 7 0 20 x unaffected
CPU timer 00010000 00000101 7 7 0 21 x unaffected Input/Output (old PSW 56, new PSW 120) Channel 0 00000000 dddddddd
4 0 6 2 0
5
x unaffected
Channell 00000001 dddddddd
4
1 6 2 1
5
x unaffected
Channel 2 00000010 dddddddd
4
2 6 2 2
5
x unaffected
Channel 3 00000011 dddddddd
4
3 6 2 3
5
x unaffected
Channel 4 00000100 dddddddd
4
4 6 2 4
5
x unaffected
Channel 5 00000101 dddddddd
4
5 6 2 55 x unaffected
Channels 6 c31 on cccccccc dddddddd
4
6 6 2 6+ x unaffected
Restart (old PSW 8, new PSW 0) Restart key 00000000 00000000
6
x unaffected
Interruption Action
72 System/370 Principles of Operation
Previous Page Next Page