OVERLAY キーワードは、1 つのサブフィールドの記憶域を別の記憶域によってオーバーレイするか、
または、固定形式定義では、データ構造自体の記憶域によってオーバーレイします。
このキーワードを使用することができるのは、データ構造サブフィールドの場合
だけです。 
OVERLAY(名前:*NEXT) を指定すると、サブフィールドを、オーバーレイされたフィールド 内の次に使用可能な位置に置きます。 (これは、このサブフィールドより前にあり、同じサブフィールドをオーバーレイ する他のすべてのサブフィールドを過ぎた後の、最初のバイトです。)
名前パラメーターは、現行データ構造内の前に定義済みのサブフィールドの名前か、
または、固定形式定義では現行データ構造の名前でなければなりません。
自由形式定義では、POS キーワードを
使用して、データ構造内のサブフィールドの位置を指定します。 
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) | |
*.. 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)