OVERLAY キーワードは、1 つのサブフィールドの記憶域に別のサブフィールド の記憶域、またはデータ構造自体の記憶域をオーバーレイ させます。 このキーワードを使用することができるのは、データ構造サブフィールドの場合 だけです。
「名前」記入項目のサブフィールドが、「位置」パラメーターによって 指定された位置で、名前パラメーターによって指定された記憶域にオーバーレイします。 位置が指定されていない場合には、デフォルトの値として 1 が使用されます。
OVERLAY(名前:*NEXT) を指定すると、サブフィールドを、オーバーレイされたフィールド 内の次に使用可能な位置に置きます。 (これは、このサブフィールドより前にあり、同じサブフィールドをオーバーレイ する他のすべてのサブフィールドを過ぎた後の、最初のバイトです。)
キーワード OVERLAY には次の規則が適用されます。
D MsgInfo DS QUALIFIED D MsgId 7 D MsgPrefix 3 OVERLAY(MsgId)
OVERLAY キーワードの最初のパラメーターとして指定されたサブフィールド名が 配列で、その要素の長さが定義中のサブフィールドの長さより長い場合には、定 義中のサブフィールドの配列要素は連続して記憶されません。 このような配列は、PARM 命令の結果のフィールドとして、または MOVEA 命令の 演算項目 2 または結果のフィールドの中では使用することができません。
例
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... * DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords++++++++++++++++++++++++++++ D DataStruct DS D A 10 DIM(5) D B 5 OVERLAY(A) D C 5 OVERLAY(A:6)
記憶域でのフィールドの割り振り:
A(1) | A(2) | A(3) | A(4) | A(5) | |||||
B(1) | C(1) | B(2) | C(2) | B(3) | C(3) | B(4) | C(4) | B(5) | C(5) |
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... * DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++ D DataStruct DS D A 5 D B 1 OVERLAY(A) DIM(4)
記憶域でのフィールドの割り振り:
A | ||||
B(1) | B(2) | B(3) | B(4) |
次の例は、サブフィールドのオーバーレイ位置を定義する ための方法を 2 つ、すなわち、(名前:位置) を指定して明示的 に行う方法と、(名前:*NEXT) を指定して暗黙的に行う方法を示しています。
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... * DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++ * Define subfield overlay positions explicitly D DataStruct DS D PartNumber 10A D Family 3A OVERLAY(PartNumber) D Sequence 6A OVERLAY(PartNumber:4) D Language 1A OVERLAY(PartNumber:10)
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... * DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++ * Define subfield overlay positions with *NEXT D DataStruct DS D PartNumber D Family 3A OVERLAY(PartNumber) D Sequence 6A OVERLAY(PartNumber:*NEXT) D Language 1A OVERLAY(PartNumber:*NEXT)
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.