[label] READ decb
,SF|SB
,dcb-address
,area-address
[,length|'S']
パラメータ
- decb
- 生成されるデータ・イベント制御ブロックに使用するラベル
- dcb-address
- 読み取るファイルの DCB のアドレス
- area-address
- データを受け取るバッファのアドレス
- length|'S'
- 転送するバイト数、またはブロック全体を読み取ることを示す 'S' (デフォルト)。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 つのブロックを読み取ります。