Assembler language application programming

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

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 diagram CALL ASMTDLI,(parmcount,function, db pcbA, tp pcbABCAIBTDLI,(parmcount,function,aibAB ) ,VL
A
Read syntax diagramSkip visual syntax diagram , i/o area ,, ssa, token, stat function, rsa, rootssa
B
Read syntax diagramSkip visual syntax diagram , i/o area length, i/o area ,, area length, area
C
Read syntax diagramSkip visual syntax diagram , psb name, uibptr , sysserve
Notes:

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. The call function must be left-justified and padded with blanks (such as GUbb).
db pcb
Specifies the address of the database 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.
tp pcb
Specifies the address of the I/O PCB or 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 that is 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 lengths or area pairs can be specified.
area
Specifies the address of the area in user-defined storage to be checkpointed. Up to seven area lengths or area pairs can be specified.
token
Specifies the address of a 4-byte field in user-defined storage that contains a user token.
stat function
Specifies the address of a 9-byte field in user-defined storage that contains the stat function to be performed.
ssa
Specifies the address in user-defined storage that contains the SSAs to be used for the call. Up to 15 SSAs can be specified, one of which is rootssa.
rootssa
Specifies the address of a root segment search argument in user-defined storage.
rsa
Specifies the address of the area in user-defined storage that contains the record search argument.
psb name
Specifies the address in user-defined storage of an 8-byte PSB name to be used for the call.
uibptr
Specifies the address in user-defined storage of the user interface block (UIB).
sysserve
Specifies the address of an 8-byte field in user-defined storage to be used for the call.
VL   
Signifies the end of the parameter list. Assembler language programs must use either parmcount or VL.

Example of a DL/I call format

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