BSAM を使用したファイル処理

アセンブラー サポートには、データ セット編成 PS および PSU を使用する、BSAM スタイルのファイル処理があります。ファイルを DCB マクロで定義し、そのファイルを OPEN、CLOSE、READ および WRITE の要求マクロで処理します。BSAM ファイル処理は、READ、WRITE または READ/WRITER の MACRF のオプション R、W または R,W によって DCB で識別されます。2 バイト COBOL ANSI 85 ファイル ステータス コードは、データ制御ブロック (DCB) のバイト 6 のすべてのファイル操作後に利用できます。

BSAM の READ および WRITE 操作は、一度に 1 ブロックのレコードに作用します。アセンブラー プログラムは、個々のレコードのブロック化解除とブロック化に必要な処理を行います。 ただし、PC のオペレーティング システムでは、ブロック化されたレコード ファイルを現在サポートしていません。すべての PC ファイルは、個々の論理レコードで構成されなければなりません。このようにメインフレームと PC との間で互換性がない場合、2 つの解決方法があります。どちらの場合も、特別に作成されたプログラムやサードパーティ ユーティリティのいずれかを使用して、メインフレームでファイルを非ブロック化フォーマットに変換する必要があります。2 つの解決方法は、次のとおりです。

ブロック化されるファイルのフォーマットは、固定レコード、可変レコード、または Micro Focus 行順次レコードになります。固定長のレコードは固定長のブロックに保持され、可変長のレコードは可変長のブロックに保持されます。行順次レコードは、可変長のブロックにブロックにつき 1 つのレコードが保持されます。

可変長ブロックの場合、各ブロックの先頭には、4 バイトのメインフレーム互換ブロック記述語が付けられます。各レコードの先頭には、通常、その独自のレコード記述語が付けられますが、この処理はアセンブラー プログラムが行います。

Micro Focus 行順編成ファイルの編成を使用するには、RECFM=T を DCB で指定します。 各ブロックの 1 つのレコードは、ANSI 改行復帰文字 (x"0D0A") で終わらなければなりません。