EXCPマクロ

By 神居 - Posted: 2010/02/26 Last updated: 2010/02/26 - Leave a Comment
印刷用ページの表示 印刷用ページの表示

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

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

----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
         RDJFCB DCB                     READ JFCB OF SYSUT1 DD STMT
         MVC   JFCBAREA+JFCBDSNM-INFMJFCB(44),=44X'04'  SET VTOC DSNAME
         OPEN  DCB,TYPE=J               OPEN TARGET VOLUME
         L     R1,DCB+DCBDEBAD-IHADCB   LOAD DEB ADDRESS
         LA    R1,DEBBASND-DEBBASIC(,R1)  LOCATE TO DASD SECTION
         MVC   IOBCC,DEBSTRCC-DEBDASD(R1)  SET VTOC CCCC
         MVC   IOBHH,DEBSTRHH-DEBDASD(R1)  SET VTOC HHHH
         EXCP  IOBSTDRD                 ISSUE EXCP I/O
         WAIT  ECB=ECB                  WAIT FOR I/O COMPLETION
         CLOSE DCB                      CLOSE TARGET VOLUME
         :
         :
CCW      CCW   X'64',RDCHAREA,X'00',64  READ DEVICE CHARACTERISTICS CMD
RDCHAREA DC    XL64'00'                 DEVICE CHARACTERISTICS READAREA
ECB      DC    F'0'                     ECB
IOB      IEZIOB DSECT=NO                IOB
         ORG   IOBECBPB                 (REDEFINE TO SET ECB ADDR)
         DC    AL3(ECB)
         ORG   IOBSTRTB                 (REDEFINE TO SET IOB ADDR)
         DC    AL3(CCW)
         ORG   IOBDCBPB                 (REDEFINE TO SET DCB ADDR)
         DC    AL3(DCB)
DCB      DCB   DDNAME=SYSUT1,           DCB FOR EXCP                   +
               MACRF=E,EXLST=EXLST
EXLST    DC    X'87'                    (INDICATE TO READ JFCB)
         DC    AL3(JFCBAREA)
         DS    0F
JFCBAREA DC    XL176'00'                JFCB READ AREA
         :
         :
         IEFJFCBN ,                     JFCB
         DCBD  DEVD=DA                  DCB
         IEZDEB                         DEB
実行後の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バイトのデバイス特性情報が読み込まれます。

関連する技術情報の詳細はマニュアル等を参照して下さい。


Posted in キーワードから(何が知りたいですか) • • Top Of Page