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 diagram
    (1)   
>>-------------------------------------------------------------->

>--+-PASTDLI--(--| A |--+----------------------------+-+--)----->
   |                    +-,--VAR--i/o_pcb--+-------+-+ |      
   |                    |                  +-| B |-+ | |      
   |                    |                  '-| C |-' | |      
   |                    '-,--VAR--alt_pcb--+-------+-' |      
   |                                       +-| B |-+   |      
   |                                       '-| D |-'   |      
   '-AIBTDLI--(--| A |--,--VAR--aib--,--+-------+------'      
                                        +-| B |-+             
                                        +-| C |-+             
                                        '-| D |-'             

>--;-----------------------------------------------------------><

A

|--+---------------------+--CONST--function---------------------|
   '-CONST--parmcount--,-'                    

B

|--,--VAR--i/o_area--------------------------------------------->

>--+-------------------------------------------------+----------|
   +-,--VAR--mod_name--------------------------------+   
   +-,--CONST--token---------------------------------+   
   '-,--VAR--options_list--+-----------------------+-'   
                           '-,--VAR--feedback_area-'     

C

|--,--VAR--i/o_area_length--,--VAR--i/o_area-------------------->

>--+----------------------------------+-------------------------|
   | .------------------------------. |   
   | V                              | |   
   '---,--VAR--area_length--,--area-+-'   

D

|--,--VAR--destination_name--+-------------------------------------------------+--|
                             '-,--VAR--options_list--+-----------------------+-'   
                                                     '-,--VAR--feedback_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);