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.