NAME
The name of the routine to call. This argument is required.
Rls
Linkage section register to use when generating the LDQ, LDQ, JSR
instruction sequence. This argument is optional.
If Rls is omitted, $CALL assumes that you entered a .BASE
directive before invoking $CALL that establishes the value of a
base register pointing into the linkage section. If you omit the
Rls argument and you do not enter such a .BASE directive before
invoking $CALL, the assembler issues the following error message
during the $CALL macro expansion:
"Argument 2 invalid" The assembler failed to find a
base register specified with a previous .BASE directive
to form a register expression of the form offset(Rn)"
LS
LS is the address of the linkage section. If you use $CALL within
a routine defined by the $ROUTINE macro, the LS argument defaults
to the $LS symbol defined by $ROUTINE. If you use $CALL outside
of a routine defined by the $ROUTINE macro, there are two ways
that you can indicate the location of the linkage section to
$CALL. First, you can specify the LS argument to $CALL as a
relocatable address expression that indicates the base of the
linkage section. In this case you must also specify the Rls
argument. Second, you can specify both the linkage-section base
register and the linkage-section address in a .BASE directive
before invoking $CALL. In this case, you must omit both the Rls
and LS arguments to $CALL.
Digital recommends that you omit this argument if you use $CALL
within a routine defined by the $ROUTINE macro.
LOCAL
A Boolean value (TRUE or FALSE) that specifies whether the
routine to be called is local to the module or globally visible.
By default, $CALL generates a call to a globally visible routine.
To generate a call to a routine that is not globally visible, you
must specify LOCAL=TRUE.
ARGS
An optional list of arguments to pass to the called routine.
Enclose the argument list within angle brackets (<>) and
separate the arguments with commas (,). You can use the
following qualifiers with each argument you specify with the
ARGS argument. These qualifiers are described in the following
table.
Each argument is an address expression (which may include a
register) followed by a qualifier. The table also contains
the argument type, the instruction used to load the argument
into a register, the instruction used to store the argument on
the stack, and the encodings used in the Argument Information
Register (R25) in the call signature block when you specify
TIE=TRUE. See the OpenVMS Calling Standard for more information
on these encodings. Note that arguments are only stored on
the stack if there are more than six arguments provided to the
routine.
ARGS Arguments
_________________________________________________________________________
Argument
Argument LOAD STORE AI Reg Arg Mem Arg
Qualifier Type Instruction Instruction Encoding Signature Signature
_________________________________________________________________________
Additional Information:
explode
extract