Longword /ZAP
#^xF0
_______________________________________________________________________
(1)--Unsigned 32-bit integers are normally passed using the /L argument
qualifier. Therefore, Digital does not recommend that you use the /UL
argument qualifier.
_______________________________________________________________________
SET_ARG_INFO
An optional argument to indicate whether $CALL should
set the Argument Information (AI) register (R25) with
the appropriate argument information or not. By default,
or if you specify SET_ARG_INFO=TRUE, $CALL stores the
appropriate argument information in R25. If you specify
SET_ARG_INFO=FALSE, $CALL does not affect R25.
If you want to conform to the OpenVMS Calling Standard, you
must store the appropriate information in R25 yourself before
invoking $CALL. If you do not need to conform to the OpenVMS
Calling Standard, and if the called routine does not need
argument information in R25, you can specify SET_ARG_INFO=FALSE
and make no change in R25. By making no change in R25, you
avoid the overhead involved when either you or $CALL load
argument information into R25 at the expense of calling standard
conformance.
STACK_RETURN_VALUE
An optional argument to indicate that the called routine returns
a value on the stack. By default, $CALL assumes that the called
routine does not return a value on the stack. In this case, $CALL
removes any arguments passed to the called routine from the stack
when the called routine returns.
If the called routine returns a value on the stack, the returned
value is placed at a lower address than the arguments on the
stack. In this case, you must specify STACK_RETURN_VALUE=TRUE
to prevent $CALL from removing the arguments to the called
routine from the stack and erasing the value returned by the
called routine. You must retrieve the return value and remove it
from the stack. Then you can remove the arguments to the called
routine using the $STACK_ARG_SIZE symbol defined by $CALL.
SCRATCH_REGS
An optional list of scratch registers for $CALL to use when
processing arguments passed to the called routine with the ARGS
argument. If you pass more than six arguments to the called
routine, $CALL may need to use scratch registers to process the
call.
By default, $CALL uses R0, R1, F0, and F1. You can cause $CALL to
use different scratch registers with the SCRATCH_REGS argument.
If you are passing integer arguments, you should specify at
least one integer register. If you are passing floating-point
arguments, you should specify at least one floating-point
register.
$CALL can process arguments to the called routine more
efficiently if you specify two or more scratch registers of the
type or types appropriate to the arguments you are passsing.
TIE
A Boolean value (TRUE or FALSE) that specifies whether $CALL
should generate a call sequence that is compatible with both
native routines and the Translated Image Environment (TIE). By
default, $CALL generates a faster call sequence that is only
compatible with native routines. If you specify TIE=TRUE, $CALL
generates a call sequence that works with both native routines
and translated routines. If you are calling a VAX routine in a
shareable image that has been translated with the DECmigrate
image translator, specify TIE=TRUE. If you are calling a native
routine, Digital recommends you default the TIE argument or
specify TIE=FALSE. While $CALL generates a call sequence that
is compatible with native routines when you specify TIE=TRUE,
that call sequence is slower than when you specify or default
TIE=FALSE.
FUNC_RETURN
An optional argument used to indicate the type of function return
when you also specify TIE=TRUE. This argument is ignored unless
you also specify TIE=TRUE. Specify one of I64, D64, I32, U32,
FF, FD, FG, FS, FT, FFC, FDC, FGC, FSC, or FTC. These values
correspond to the RASE$K_FR_* signature encodings described
in Table 3-7 in the OpenVMS Calling Standard. If you specify
TIE=TRUE and do not specify a function return type with FUNC_
RETURN, the default function return type is I64.
NOTE
Specification of the FUNC_RETURN argument does not in itself
cause $ROUTINE to generate a procedure signature block.
However, if you specify either or both the ARGLIST or USES_
VAX_ARGLIST arguments, any value you specify with the FUNC_
RETURN argument is recorded in both the procedure descriptor
and the procedure signature block.
USES_VAX_ARGLIST
An optional argument to indicate whether the called routine uses
a VAX argument list. This argument is ignored unless you also
specify TIE=TRUE. By default, $CALL assumes the called routine
does not use a VAX argument list. Specify USES_VAX_ARGLIST=TRUE
to indicate that the called routine uses a VAX argument list.
SIGNATURE_BLOCK
An optional argument that you can use to supply the address of
the call signature block. This argument is ignored unless you
also specify TIE=TRUE. Note that you cannot specify a SIGNATURE_
BLOCK argument in combination with either of the FUNC_RETURN
or USES_VAX_ARGLIST arguments. By default, $CALL generates a
call signature block for you when you specify TIE=TRUE, and you
can in part control the contents of that signature block with
the FUNC_RETURN and USES_VAX_ARGLIST arguments. If you wish to
define your own call signature block, do not specify either of
the FUNC_RETURN or USES_VAX_ARGLIST arguments and supply the
address of your call signature block with the SIGNATURE_BLOCK
argument.
NONSTANDARD
A Boolean value (TRUE or FALSE) that specifies whether $CALL
should suppress warning and informational messages concerning
nonstandard usage. By default, $CALL issues warning and
informational messages to indicate you are using $CALL in a
way that violates the OpenVMS Calling Standard or in a way
that requires special programming considerations. Specify
NONSTANDARD=TRUE if you wish to suppress these messages.