Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 コンパイラーおよびランタイム 移行ガイド


DL/I 呼び出しインターフェース

プログラムを移行して、DL/I 呼び出し用の BLL セルの使用も回避することができま す。 これを行うためには、プログラムを調べて、以下の変更を行ってください。

  1. ユーザー・インターフェース・ブロック (UIB) およびプログラム連絡ブロッ ク (PCB) をアドレッシングするための BLL セルを削除します。
  2. LINKAGE SECTION で、DLIUIB 宣言と 少なくとも 1 つの PCB 宣言を保持します。
  3. PCB 呼び出しを、以下のように UIB を直接指定するように変更します。
    CALL "CBLTDLI" USING PCB-CALL,
                         PSB-NAME,
                         ADDRESS OF DLIUIB
  4. UIB 内のアドレス・リストから、必要な PCB のアドレスを入手します。
以下の例は、PCB のアドレスを取得して PCB1-ADDR および PCB2-ADDR に入れる方法を示 しています。
 LINKAGE SECTION.
     COPY DLIUIB.
 01  OVERLAY-DLIUIB REDEFINES DLIUIB.
     02  PCBADDR USAGE IS POINTER.
     02  FILLER  PIC XX.

 01  PCB-ADDRESSES.
     02  PCB1-ADDR    USAGE IS POINTER.
     02  PCB2-ADDR    USAGE IS POINTER.

* VACATION PCB
 01  VAC-PCB.
 COPY RDLICVP.

* HOTEL PCB
 01 HTL-PCB.
 COPY RDLICHT.
⋮
 PROCEDURE DIVISION.
⋮
     CALL 'CBLTDLI' USING PCB
                          PSBNAME
                          ADDRESS OF DLIUIB

     IF UIBFCTR IS NOT EQUAL TO LOW-VALUES
         MOVE 'PCB CALL FAILED.' TO MSG-TEXT
         PERFORM WRITE-MESSAGE-AND-AMEND
     ELSE
         SET ADDRESS OF PCB-ADDRESSES TO PCBADDR
         SET ADDRESS OF HTL-PCB TO PCB1-ADDR
         SET ADDRESS OF VAC-PCB TO PCB2-ADDR
     END-IF
⋮
注: 上記のコードで、行 "SET ADDRESS OF PCB-ADDRESSES TO PCBADDR" から 行 "SET ADDRESS OF VAC-PCB TO PCB2-ADDR" までが、必要な PCB のアドレスを UIB 内の アドレス・リストから取得するコマンドです。

ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)