This instruction, provided that certain conditions are met,
deactivates a non-bound program
or a bound program activated for non-bound program compatibility.
Subsequent invocations of the program within
the same activation group
will cause a new activation to be created.
Operand 1 specifies a program activation entry which is
to be deactivated, if permitted. The activation entry is
inferred by one of two means:
operand 1 is null -- the target activation entry
is that associated with the current invocation
operand 1 is not null -- the target
activation entry associated with the program system pointer
is selected from one of the two default
activation groups
The target activation entry is deactivated if permitted.
An activation in use by invocation (hex 2C05) exception
is signaled if the deactivation is not permitted.
If the target activation entry does not exist, then
no operation is performed.
If the program specified is a bound program
and not activated like a non-bound program,
an invalid operation for program (hex 2C15) exception
is signaled.
In general, only those activations with a zero invocation count can be
deactivated. The following two exceptions apply:
A program can deactivate itself if it is the only
invocation of that program in the process (its invocation
count must be 1.)
An invocation exit program can deactivate the program
on whose behalf it is running provided that the invocation
count of that program is no more than 1.