PL/I プログラムにアテンション割り込みを認識させるには、 次の 2 つの操作が可能でなければなりません。
この方法でコンパイルすると、PLIXOPT で INTERRUPT(OFF) を明示的に 指定していない限り、INTERRUPT(ON) が有効になります。
割り込みを作成する手順は、使用しているオペレーティング・システムと端末に 関する IBM マニュアルに記載されています。
割り込み (オペレーティング・システムがユーザーの要求を認識すること) と、ATTENTION 条件の 発生とは異なります。
割り込み とは、オペレーティング・システムが 実行中のプログラムに通知するユーザーの要求のことです。 INTERRUPT コンパイル時オプションが 指定されて PL/I プログラムがコンパイルされた場合は、 プログラム内の個別の位置に内部割り込みスイッチをテストする命令が組み込まれます。 この内部割り込みスイッチは、ロード・モジュール内の任意の プログラムが INTERRUPT コンパイル時オプションを指定して コンパイルされた場合に設定することができます。
内部スイッチは、割り込み要求が出されたことを オペレーティング・システムが認識した時に設定されます。 特殊テスト命令 (ポーリング) の実行によって、ATTENTION 条件が発生します。 ポーリングが起きる前にデバッグ・ツール・フック (つまり CALL PLITEST) が 検出されると、ATTENTION 条件の処理が始まる前に デバッグ・ツールに制御が与えられるようにすることができます。
ポーリングにより、ATTENTION 条件は、PL/I ステートメントの内部ではなく、 ステートメントとステートメントの間で発生します。
図 102 に、骨組みプログラム、ATTENTION ON ユニット、 およびポーリング命令が生成されるいくつかの状況を示してあります。 プログラム内では、次の位置でポーリングが発生します。
%PROCESS INTERRUPT;
.
.
.
ON ATTENTION
BEGIN;
DCL X FIXED BINARY(15);
PUT SKIP LIST ('Enter 1 to terminate, 0 to continue.');
GET SKIP LIST (X);
IF X = 1 THEN
STOP;
ELSE
PUT SKIP LIST ('Attention was ignored');
END;
.
.
.
LABEL1:
IF EMPNO ...
.
.
.
DO I = 1 TO 10;
.
.
.
END;
.
.
.