標準形式またはリスト形式の SPIE マクロを展開すると、そこには プログラム割り込み制御域 (PICA) と呼ばれるシステム・パラメーター・リストが含まれています。 PICA には、PSW で無効にすることができる、割り込みタイプ用の新しいプログラム・マスク、 指定された割り込みのいずれかが発生したときに制御が渡される出口ルーチンのアドレス、および SPIE マクロで指定された割り込みタイプ (例外) 用のコードが含まれています。IHAPICA マッピング・マクロによって提供されるマッピングについては、z/OS Internet library の「z/OS MVS Data Areas」の『PICA』を参照してください。
システムは、最後に実行された SPIE マクロによって参照された PICA へのポインターを (PIE 内に) 維持します。この PICA は、最後の SPIE 自身が作成したものかもしれませんし、それ以前に作成されていて、 最後の SPIE はそれを参照しただけかもしれません。 呼び出し側プログラムに制御を戻す前に、または XCTL マクロまたは XCTLX マクロにより別のプログラムに制御を渡す前に、SPIE マクロを出した各プログラムはシステムに対して、SPIE 環境を以前の状態に合わせて調整するように要求するか、あるいは、 プログラムの入り口では SPIE 環境が存在していなかった場合は、SPIE 環境を削除するように要求する必要があります。 標準形式または実行形式の SPIE マクロを出して 新しい SPIE 環境を設定すると、システムは、以前の PICA アドレスをレジスター 1 に 戻します。 プログラムが制御を得たときに SPIE/ESPIE 環境が存在していないと、 システムはレジスター 1 に 0 を戻します。
パラメーターを付けずに SPIE マクロを出すことにより、 最後の SPIE マクロの結果を取り消すことができます。つまり、このマクロは以前の SPIE 環境を復元するのではなく、0 を含んでいる新しい PICA を作成します。そのような PICA よって、割り込みの処理に出口ルーチンを使用しないことが示されます。以前の SPIE 環境を復元するには、システムがレジスター 1 に戻した PICA アドレスを指定して、実行形式の SPIE マクロを出してください。その SPIE 環境の設定後にどのタイプの SPIE マクロがいくつ出されていても、この方法で以前の SPIE 環境を復元することができます。指定する PICA アドレスは依然として有効な (つまり、上書きされていない) ものでなければなりません。 PICA アドレスとしてゼロを指定すると、SPIE 環境が除去されます。
.
.
SPIE FIXUP,(8) Provide exit routine for fixed-point overflow
ST 1,HOLD Save address returned in register 1
.
.
L 5,HOLD Reload returned address
SPIE MF=(E,(5)) Use execute form and old PICA address
.
.
HOLD DC F'0'