Application programming for assembler language

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

In assembler language programs, all DL/I call parameters that are passed as addresses can be passed in a register, which, if used, must be enclosed in parentheses.

Format

Read syntax diagramSkip visual syntax diagram1 CALL ASMTDLI,(parmcount,function, i/o_pcbAB, alternate_pcbAC)AIBTDLI,(parmcount,function, aibABC),VL
A
Read syntax diagramSkip visual syntax diagram, i/o_area, mod_name, token, options_list, feedback area
B
Read syntax diagramSkip visual syntax diagram, i/o_area_ length, i/o_area, area_length, area
C
Read syntax diagramSkip visual syntax diagram, destination_name, options_list, feedback_area
Notes:
  • 1 Assembler language programs must use either parmcount or VL.

Parameters

parmcount
Specifies the address of a 4-byte field in user-defined storage that contains the number of parameters in the parameter list that follows parmcount. Assembler language application programs must use either parmcount or VL.
function
Specifies the address of a 4-byte field in user-defined storage that contains the call function to be used. The call function must be left-justified and padded with blanks. For example, (GUbb) is a call function.
i/o pcb
Specifies the address of the I/O program communication block (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 address of the alternate PCB to be used for the call. The PCB address must be one of the PCB addresses passed on entry to the application program in the PCB list.
aib
Specifies the address of the application interface block (AIB) in user-defined storage.
i/o area
Specifies the address of the I/O area in user-defined storage used for the call. The I/O area must be large enough to contain the returned data.
i/o area length
Specifies the address of a 4-byte field in user-defined storage that contains the I/O area length (specified in binary).
area length
Specifies the address of a 4-byte field 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 address of the area in user-defined storage to be checkpointed. Up to seven area length/area pairs can be specified.
token
Specifies the address of a 4-byte field in user-defined storage that contains a user token.
options list
Specifies the address of the options list in user-defined storage that contains processing options used with the call.
feedback area
Specifies the address of the feedback area in user-defined storage that receives information about options list processing errors.
mod name
Specifies the address of an 8-byte area in user-defined storage that contains the user-defined MOD name used with the call. The mod name parameter is used only with MFS.
destination name
Specifies the address of an 8-byte field in user-defined storage that contains the name of the logical terminal or transaction code to which messages resulting from the call are sent.
VL
Signifies the end of the parameter list. Assembler language programs must use either parmcount or VL.

Example DL/I call formats

DL/I AIBTDLI interface:
         CALL  AIBTDLI,(function,aib,i/o area),VL
DL/I language-specific interface:
         CALL  ASMTDLI,(function,i/o pcb,i/o area),VL