EXCPマクロ

EXCPは、EXecute Channel Programのことで、入出力デバイスの直接の操作指令であるCCW(Channel Command Word)を実行するためのアセンブラー・サービス(API)で、EXCPマクロは、EXCPサービスを呼び出すためのアセンブラー・マクロ命令です。現在では、一般のプログラムが直接EXCPを使うことはまずありません。

BSAMやQSAMなど、予め用意されているアクセス方式がサポートしていないデバイス(例えばCTCA:チャネル間結合装置など、特別な目的で使われるデバイス)をアクセスしたり、特殊な編成やレコード長を持つデータセット(レコード長が32760バイトを超えるなど)をアクセスしたりする場合に利用されます。一部のシステム・ソフトウェアにおいて、デバイスのアクセス速度を上げるために、OSのアクセス方式を使わずに、独自のアクセス方式を実装するようなこともありますが、データセットをアクセスするためにEXCPを使うことはほとんどなく、DASDやTAPEなどのボリューム全体の中から任意の位置をランダムにアクセスしなければできない機能を提供するような場合などに利用されることが多いです。

  • 簡単なEXCP発行プログラム:DASDのデバイス特性を得る(問題プログラムで動作可能)


実行後のRDCHAREAの内容
======================
3990C233 9006D000 00022027 08B2000F
E000E5A2 05940222 13090674 00000000
00000000 00000000 27271000 DFEE0000
06770800 00000000 FFFF0000 00000000

SYSUT1 DDステートメントで指定されたDASDボリュームに、EXCPマクロによってチャネル・コマンド「Read Device Characteristics」を発行しています。コマンドの結果、指定された領域RDCHAREAに64バイトのデバイス特性情報が読み込まれます。(関連する技術情報の詳細はマニュアル等を参照して下さい)

  • z/OS DFSMSdfp拡張サービス:SD88-6462
  • IBM 3990 Storage Control Reference:GA32-0099