Reference information for special parameters on call or transfer statements

You can do as follows: 

The following sections provide details.

Format of a text or print form passed on a call

Text or print forms that you pass on a call are defined with 8 bytes of adjunct fields preceding each field data content area. The first 6 bytes of the adjunct field are set to blanks. The last 2 bytes of the adjunct field contain the length of the data. The field length is set to the length of the field defined in the form. It does not include the 8-byte prefix. If the receiving structure in the called program is not a form, the structure should have space for the 8 bytes before each data item. A called program can only change the data in the variable fields in the passed form. For example, a called program cannot change the attributes of form variable.

Figure 1. Format of the form area passed using the call statement
The adjunct field has 6 bytes of blanks and 2 bytes containing the length of the form field.

When passing a form as a parameter from an AIX® system to a non-AIX system and vice versa, the 2-byte binary fields must be aligned on a 2-byte boundary, which starts at the third byte of the 8-byte field.

Format of the dliLib.psbData structure

EGL-generated COBOL programs use the dliLib.psbData structure for passing PSB information between programs. Refer to the online help system for additional information about dliLib.psbData. dliLib.psbData is a 12-byte structure consisting of an 8-byte PSB name followed by a 4-byte address.

On CICS®, the address points to the user interface block (UIB). The UIB is 6 bytes long. The first 4 bytes contain the address of the PCB address list for the PSB. The last 2 bytes contain status information (for example, an indication of whether the PSB contains status information).

On non-CICS systems, the address points to a simulated UIB. The simulated UIB is 6 bytes long. The first 4 bytes contain the address of the PCB address list for the PSB. The last 2 bytes must contain binary zeros. The PCB address list must be the list pointed to by register 1 when the IMS™ or the DL/I region controller invoked the first program in the DL/I run unit.

The figure below shows the format of dliLib.psbData.

Figure 2. Format of dliLib.psbData
Format of dliLib.psbData

Format of a PCBRecord

A PCB record parameter is always passed using a 4-byte pointer because the called program must point to the actual DL/I PCB in DL/I calls. The called program cannot use a copy of the PCB. When COMMDATA is specified, the 4-byte pointer is moved into the COMMAREA at the position to be occupied by the PCB record argument.

The above considerations are true for both AIBTDLI and CBLTDLI interfaces. If you specified the AIBTDLI interface (the default) in the callInterface field corresponding to the @DLI program property, EGL uses the AIB control block to look up the PCB address that corresponds to the AIB PCB name, then issues a CBLTDLI call against that address.


Feedback