[label] READ decb
,SF|SB
,dcb-address
,area-address
[,length|'S']
データ イベント制御ブロックの形式は次のとおりです。
バイト | 内容 |
---|---|
0 から 3 | ゼロの全語 |
4 | タイプ フラグ:パラメーター 'S' がマクロで使用される場合は x'80'、それ以外は x'00' |
5 | サブタイプ フラグ:常に x'20' |
6 から 7 | 'S' を指定する場合や、フィールドを 0 に設定する際にレジスタ表記を使用する場合を除き、2 バイト バイナリ フィールドは長さパラメーターの値に設定されます。 |
8 から 11 | DCB のアドレス |
12 から 15 | データを受け取る領域のアドレス |
BSAM ファイルの 1 つのブロックがファイルからメモリのバッファーに転送されます。ユーザー プログラムでは、ブロックに複数の論理レコードが含まれる場合に必要なブロック化解除などの処理を行います。
マクロで生成されるデータ イベント制御ブロック (DECB) はメインフレームと互換性がありますが、各 READ 操作は同期しています。つまり、操作が完了するまで制御は呼び出し元のプログラムに戻りません。
入力/出力パラメーター ブロックは生成されないか使用されません。
例 1:
QREAD READ INDECB,SF,INFILE,INBUF,'S'
この例では、INFILE の開いている DCB で識別されたファイルから、INBUF で識別されたバッファーに 1 つのブロック全体を読み取ります。
例 2:
READ RDECB5,SF,(*,FILEADDR),(3)
この例では、間接的な S タイプ アドレス定数 (*,FILEADDR) で識別された DCB から、アドレスがレジスタ 3 で保持されるバッファーへ 1 つのブロックを読み取ります。