Previous Topic: Calling COBOL in VSE BatchNext Topic: Performing Calculations


Calling a PL/I Subprogram

A PL/I subprogram is called from an Assembler program so the normal parameter lists are not constructed.

PL/I subprograms that a CA Ideal application calls must follow these guidelines:

Character String/Structures-The following coding allows access. You must refer to the structure as a based variable, but any data type is allowed in the structure.

USERPGM:  PROCEDURE (P1,P2)REORDER;
DCL P1              FIXED BIN(31);
DCL P2              FIXED BIN(31);
DCL PTR1            PTR;
DCL PTR2            PTR;
     PTR1 = ADDR(P1);
     PTR2 = ADDR(P2);
DCL  PARM1          CHAR(xx) BASED(PTR1);   /* Character String */
DCL1 PARM2          BASED(PTR2),           /* Structure */
     3  NAME        CHAR(xx),
     3  SSN         FIXED DEC(x)
     3  EMPLOYE#    FIXED BIN(31);

Numeric-The following coding allows access for the numeric types of half and fullword binary, fixed decimal, and zoned decimal.

USERPGM: PROCEDURE (FIX_BIN,FIX_DEC,ZONED) REORDER;
DCL FIX_BIN     FIXED BIN(xx);   /* Half of Fullword Binary */
DCL FIX_DEC     FIXED DEC(x);    /* Fixed Decimal */
DCL ZONED       PIC '(x)9';      /* Zoned Decimal */