Application programming for Pascal

Application programs in Pascal use the following format, parameters, and DL/I calls to communicate with the IMS Transaction Manager.

Format

Read syntax diagramSkip visual syntax diagram1PASTDLI(A,VARi/o_pcbBC,VARalt_pcbBDAIBTDLI(A,VARaib,BCD ) ;
A
Read syntax diagramSkip visual syntax diagram CONSTparmcount, CONST function
B
Read syntax diagramSkip visual syntax diagram ,VAR i/o_area ,VARmod_name,CONSTtoken,VARoptions_list,VARfeedback_area
C
Read syntax diagramSkip visual syntax diagram ,VAR i/o_area_length ,VAR i/o_area ,VARarea_length,area
D
Read syntax diagramSkip visual syntax diagram ,VARdestination_name ,VARoptions_list,VARfeedback_area
Notes:
  • 1 For AIBTDLI, parmcount is required for applications.

Parameters

parmcount
specifies the address of a fixed-binary (31) variable in user-defined storage that contains the number of parameters in the parameter list that follows parmcount.
function
Specifies the name of a character (4) variable, left-justified, in user-defined storage, which contains the call function to be used. The call function must be padded with blanks. For example, (GUbb) is a call function.
i/o pcb
Specifies the address of the program communication block (I/O PCB). The I/O PCB address is the first address passed on entry to the application program in the PCB list, given the following circumstances:
  • A program executing in DLI or database management batch (DBB) regions where CMPAT=YES is coded on the PSB.
  • Any program executing in batch message processing program (BMP), message processing program (MPP), or IMS Fast Path (IFP) regions regardless of the CMPAT= value.
alternate pcb
Specifies the name of a pointer variable that contains the address of the I/O PCB defined in the call procedure statement.
aib
Specifies the name of a pointer variable that contains the address of the structure that defines the application interface block (AIB) in user-defined storage.
i/o area
Specifies the name of a pointer variable to a major structure, array, or character string that defines the I/O area in user-defined storage to be used for the call. The I/O area must be large enough to contain the returned data.
i/o area length
Specifies the name of a fixed-binary (31) variable in user-defined storage that contains the I/O area length.
area length
Specifies the name of a fixed binary (31) variable in user-defined storage that contains the length (specified in binary) of the area immediately following it in the parameter list. Up to seven area length/area pairs can be specified.
area
Specifies the name of a pointer variable that contains the address of the structure that defines the area in user-defined storage to be checkpointed. Up to seven area length/area pairs can be specified.
token
Specifies the name of a character (4) variable in user-defined storage that contains a user token.
options list
Specifies the name of a pointer variable that contains the address of the structure that defines the user-defined storage that contains processing options used with the call.
feedback area
Specifies the name of the pointer variable that contains the address of the structure that defines the user-defined storage that receives information about options list processing errors.
mod name
Specifies the name of a character (8) variable in user-defined storage that contains the user-defined MOD name used with the call.
destination name
Specifies the name of a character (8) variable in user-defined storage that contains the name of the logical terminal or transaction code to which messages resulting from the call are sent.

Example DL/I call formats

DL/I AIBTDLI interface:
AIBTDLI(CONST function,
        VAR aib,
        VAR I/O area);
DL/I language-specific interface:
PASTDLI(CONST function,
area    VAR I/O PCB
        VAR I/O area);