Rational Developer for System z
Enterprise COBOL for z/OS, Version 4.1, Compiler and Runtime Migration Guide


DL/I call interface

You can convert your programs to avoid the use of BLL cells for DL/I calls as well. To do so, review your programs and make the following changes:

  1. Remove BLL cells for addressing the user interface block (UIB) and program communication blocks (PCBs).
  2. In the LINKAGE SECTION, retain the DLIUIB declaration and at least one PCB declaration.
  3. Change the PCB call to specify the UIB directly, as follows:
    CALL "CBLTDLI" USING PCB-CALL,
                         PSB-NAME,
                         ADDRESS OF DLIUIB
  4. Obtain the address of the required PCB from the address list in the UIB.
The following example shows how to get the address of the PCBs into PCB1-ADDR and 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
⋮
Note: In the code above, lines "SET ADDRESS OF PCB-ADDRESSES TO PCBADDR" through "SET ADDRESS OF VAC-PCB TO PCB2-ADDR" are the commands that obtain the addresses of the required PCB from the address list in the UIB.

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)