1 – OTS$CALL_PROC
(Alpha and I64 only.) The Call Special Procedure routine performs a call to a procedure that may be either in native code or in a translated image. Format OTS$CALL_PROC target-func-value ,target-sig-info ,standard-args ,...
1.1 – Returns
None.
1.2 – Arguments
target-func-value OpenVMS usage:function value type: quadword address access: read only mechanism: by value in register R23 (Alpha). by value in register R17 (I64). Function value for the procedure to be called. target-sig-info OpenVMS usage:TIE signature information type: TIE signature block access: read only mechanism: by reference in register R24 (Alpha). by value in register R17 (I64). Signature information is used to transform the standard arguments into the form required by a translated image (if needed). The representation of signature information is described in the OpenVMS Calling Standard. standard-args type: access: mechanism: 0 Zero or more arguments to be passed to the called routine, passed using standard conventions (including the AI register).
1.3 – Description
When translated code support is requested, the compiled code must call the special service routine, OTS$CALL_PROC. The actual parameters to the target function are passed to OTS$CALL_PROC as though the target routine is native code that is being invoked directly. OTS$CALL_PROC first determines whether the target routine is part of a translated image. If the target is in native code, then OTS$CALL_PROC completes the call in a way that makes its mediation transparent (that is, control need not pass back through it for the return). The native parameters are used without modification. If the target is in translated code, then OTS$CALL_PROC passes control to the Translated Image Environment (TIE).
1.4 – Condition Values Returned
None.
2 – OTS$CNVOUT
The Convert Floating to Character String routines convert a D-floating, G-floating, H-floating, IEEE S-floating, or IEEE T-floating number to a character string in the Fortran E format. Format OTS$CNVOUT D-G-H-S-or-T-float-pt-input-val ,fixed-length-resultant-string ,digits-in-fraction OTS$CNVOUT_G D-G-H-S-or-T-float-pt-input-val ,fixed-length-resultant-string ,digits-in-fraction OTS$CNVOUT_H D-G-H-S-or-T-float-pt-input-val ,fixed-length-resultant-string ,digits-in-fraction (VAX only) OTS$CNVOUT_S D-G-H-S-or-T-float-pt-input-val ,fixed-length-resultant-string ,digits-in-fraction (VAX only) OTS$CNVOUT_T D-G-H-S-or-T-float-pt-input-val ,fixed-length-resultant-string ,digits-in-fraction (VAX only)
2.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
2.2 – Arguments
D-G-H-S-or-T-float-pt-input-val OpenVMS usage:floating_point type: D_floating, G_floating, H_floating, IEEE S_floating, IEEE T_floating access: read only mechanism: by reference Value that OTS$CNVOUT converts to a character string. For OTS$CNVOUT, the D-G-H-S-or-T-float-pt-input-val argument is the address of a D-floating number containing the value. For OTS$CNVOUT_G, the D-G-H-S-or-T-float-pt-input-val argument is the address of a G-floating number containing the value. For OTS$CNVOUT_S, the D-G-H-S-or-T-float-pt-input-val argument is the address of an IEEE S-floating number containing the value. For OTS$CNVOUT_T, the D-G-H-S-or-T-float-pt-input-val argument is the address of an IEEE T-floating number containing the value. fixed-length-resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor, fixed length Output string into which OTS$CNVOUT writes the character string result of the conversion. The fixed-length-resultant-string argument is the address of a descriptor pointing to the output string. digits-in-fraction OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Number of digits in the fractional portion of the result. The digits-in-fraction argument is an unsigned longword containing the number of digits to be written to the fractional portion of the result.
3 – OTS$CVT_L_TB
The Convert an Unsigned Integer to Binary Text routine converts an unsigned integer value of arbitrary length to binary representation in an ASCII text string. By default, a longword is converted. Format OTS$CVT_L_TB varying-input-value,fixed-length-resultant-string [,number-of-digits] [,input-value-size]
3.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
3.2 – Arguments
varying-input-value OpenVMS usage:varying_arg type: unspecified access: read only mechanism: by reference Unsigned byte, word, or longword that OTS$CVT_L_TB converts to an unsigned decimal representation in an ASCII text string. (The value of the input-value-size argument determines whether varying-input-value is a byte, word, or longword.) The varying- input-value argument is the address of the unsigned integer. fixed-length-resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor, fixed length ASCII text string that OTS$CVT_L_TB creates when it converts the integer value. The fixed-length-resultant-string argument is the address of a descriptor pointing to this ASCII text string. The string is assumed to be of fixed length (CLASS_S descriptor). number-of-digits OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Minimum number of digits in the binary representation to be generated. The number-of-digits argument is a signed longword containing this minimum number. If the minimum number of digits is omitted, the default is 1. If the actual number of significant digits is less than the minimum number of digits, leading zeros are produced. If the minimum number of digits is zero and the value of the integer to be converted is also zero, OTS$CVT_L_TB creates a blank string. input-value-size OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Size of the integer to be converted, in bytes. The input-value- size argument is a signed longword containing the byte size. This is an optional argument. If the size is omitted, the default is 4 (longword).
4 – OTS$CVT_L_TI
The Convert Signed Integer to Decimal Text routine converts a signed integer to its decimal representation in an ASCII text string. This routine supports Fortran Iw and Iw.m output and BASIC output conversion. Format OTS$CVT_L_TI varying-input-value ,fixed-length-resultant-string [,number-of-digits] [,input-value-size] [,flags-value]
4.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
4.2 – Arguments
varying-input-value OpenVMS usage:varying_arg type: unspecified access: read only mechanism: by reference, fixed length A signed integer that OTS$CVT_L_TI converts to a signed decimal representation in an ASCII text string. The varying-input-value argument is the address of the signed integer. On VAX systems, the integer can be a signed byte, word, or longword. The value of the input-value-size argument determines whether varying-input-value is a byte, word, or longword. On Alpha and I64 systems, the integer can be a signed byte, word, longword, or quadword. The value of the input-value-size argument determines whether varying-input-value is a byte, word, longword, or quadword. fixed-length-resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Decimal ASCII text string that OTS$CVT_L_TI creates when it converts the signed integer. The fixed-length-resultant-string argument is the address of a CLASS_S descriptor pointing to this text string. The string is assumed to be of fixed length. number-of-digits OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Minimum number of digits to be generated when OTS$CVT_L_TI converts the signed integer to a decimal ASCII text string. The number-of-digits argument is a signed longword containing this number. If the minimum number of digits is omitted, the default value is 1. If the actual number of significant digits is smaller, OTS$CVT_L_TI inserts leading zeros into the output string. If number-of-digits is zero and varying-input-value is zero, OTS$CVT_L_TI writes a blank string to the output string. input-value-size OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Size of the integer to be converted, in bytes. The input-value- size argument is a signed longword containing this value size. If the size is omitted, the default is 4 (longword). On VAX systems, the value size must be 1, 2, or 4. If value size is 1 or 2, the value is sign-extended to a longword before conversion. On Alpha and I64 systems, the value size must be 1, 2, 4, or 8. If the value is 1, 2, or 4, the value is sign-extended to a quadword before conversion. flags-value OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Caller-supplied flags that you can use if you want OTS$CVT_L_TI to insert a plus sign before the converted number. The flags- value argument is an unsigned longword containing the flags. The caller flags are described in the following table: Bit Action if Set Action if Clear 0 Insert a plus sign Omit the plus sign. (+) before the first nonblank character in the output string. If flags-value is omitted, all bits are clear and the plus sign is not inserted.
5 – OTS$CVT_L_TL
The Convert Integer to Logical Text routine converts an integer to an ASCII text string representation using Fortran L (logical) format. Format OTS$CVT_L_TL longword-integer-value ,fixed-length-resultant-string
5.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
5.2 – Arguments
longword-integer-value OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by reference Value that OTS$CVT_L_TL converts to an ASCII text string. The longword-integer-value argument is the address of a signed longword containing this integer value. fixed-length-resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor, fixed length Output string that OTS$CVT_L_TL creates when it converts the integer value to an ASCII text string. The fixed-length- resultant-string argument is the address of a descriptor pointing to this ASCII text string. The output string is assumed to be of fixed length (CLASS_S descriptor). If bit 0 of longword-integer-value is set, OTS$CVT_L_TL stores the character T in the rightmost character of fixed-length- resultant-string. If bit 0 is clear, it stores the character F. In either case, it fills the remaining characters of fixed- length-resultant-string with blanks.
6 – OTS$CVT_L_TO
The Convert Unsigned Integer to Octal Text routine converts an unsigned integer to an octal ASCII text string. OTS$CVT_L_TO supports Fortran Ow and Ow.m output conversion formats. Format OTS$CVT_L_TO varying-input-value ,fixed-length-resultant-string [,number-of-digits] [,input-value-size]
6.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
6.2 – Arguments
varying-input-value OpenVMS usage:varying_arg type: unspecified access: read only mechanism: by reference Unsigned byte, word, or longword that OTS$CVT_L_TO converts to an unsigned decimal representation in an ASCII text string. (The value of the input-value-size argument determines whether varying-input-value is a byte, word, or longword.) The varying- input-value argument is the address of the unsigned integer. fixed-length-resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor, fixed length Output string that OTS$CVT_L_TO creates when it converts the integer value to an octal ASCII text string. The fixed-length- resultant-string argument is the address of a descriptor pointing to the octal ASCII text string. The string is assumed to be of fixed length (CLASS_S descriptor). number-of-digits OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Minimum number of digits that OTS$CVT_L_TO generates when it converts the integer value to an octal ASCII text string. The number-of-digits argument is a signed longword containing the minimum number of digits. If it is omitted, the default is 1. If the actual number of significant digits in the octal ASCII text string is less than the minimum number of digits, OTS$CVT_L_TO inserts leading zeros into the output string. If number-of-digits is 0 and varying-input-value is 0, OTS$CVT_L_TO writes a blank string to the output string. input-value-size OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Size of the integer to be converted, in bytes. The input-value- size argument is a signed longword containing the number of bytes in the integer to be converted by OTS$CVT_L_TO. If it is omitted, the default is 4 (longword).
7 – OTS$CVT_L_TU
The Convert Unsigned Integer to Decimal Text routine converts an unsigned integer value to its unsigned decimal representation in an ASCII text string. Format OTS$CVT_L_TU varying-input-value ,fixed-length-resultant-string [,number-of-digits] [,input-value-size]
7.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
7.2 – Arguments
varying-input-value OpenVMS usage:varying_arg type: unspecified access: read only mechanism: by reference An unsigned integer that OTS$CVT_L_TU converts to an unsigned decimal representation in an ASCII text string. The varying- input-value argument is the address of the unsigned integer. On VAX systems, the integer can be an unsigned byte, word, or longword. (The value of the input-value-size argument determines whether varying-input-value is a byte, word, or longword.) On Alpha and I64 systems, the integer can be an unsigned byte, word, longword, or quadword. (The value of the input-value-size argument determines whether varying-input-value is a byte, word, longword, or quadword.) fixed-length-resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor, fixed length Output string that OTS$CVT_L_TU creates when it converts the integer value to unsigned decimal representation in an ASCII text string. The fixed-length-resultant-string argument is the address of a descriptor pointing to this ASCII text string. number-of-digits OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Minimum number of digits in the ASCII text string that OTS$CVT_ L_TU creates. The number-of-digits argument is a signed longword containing the minimum number. If the minimum number of digits is omitted, the default is 1. If the actual number of significant digits in the output string created is less than the minimum number, OTS$CVT_L_TU inserts leading zeros into the output string. If the minimum number of digits is zero and the integer value to be converted is also zero, OTS$CVT_L_TU writes a blank string to the output string. input-value-size OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Size of the integer to be converted, in bytes. The input-value- size argument is a signed longword containing this value size. If the size is omitted, the default is 4 (longword). On VAX systems, the value size must be 1, 2, or 4. On Alpha and I64 systems, the value size must be 1, 2, 4, or 8.
8 – OTS$CVT_L_TZ
The Convert Integer to Hexadecimal Text routine converts an unsigned integer to a hexadecimal ASCII text string. OTS$CVT_ L_TZ supports Fortran Zw and Zw.m output conversion formats. Format OTS$CVT_L_TZ varying-input-value ,fixed-length-resultant-string [,number-of-digits] [,input-value-size]
8.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
8.2 – Arguments
varying-input-value OpenVMS usage:varying_arg type: unspecified access: read only mechanism: by reference Unsigned byte, word, or longword that OTS$CVT_L_TZ converts to an unsigned decimal representation in an ASCII text string. (The value of the input-value-size argument determines whether varying-input-value is a byte, word, or longword.) The varying- input-value argument is the address of the unsigned integer. fixed-length-resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor, fixed length Output string that OTS$CVT_L_TZ creates when it converts the integer value to a hexadecimal ASCII text string. The fixed- length-resultant-string argument is the address of a descriptor pointing to this ASCII text string. The string is assumed to be of fixed length (CLASS_S descriptor). number-of-digits OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Minimum number of digits in the ASCII text string that OTS$CVT_ L_TZ creates when it converts the integer. The number-of-digits argument is a signed longword containing this minimum number. If it is omitted, the default is 1. If the actual number of significant digits in the text string that OTS$CVT_L_TZ creates is less than this minimum number, OTS$CVT_L_TZ inserts leading zeros in the output string. If the minimum number of digits is zero and the integer value to be converted is also zero, OTS$CVT_ L_TZ writes a blank string to the output string. input-value-size OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Size of the integer that OTS$CVT_L_TZ converts, in bytes. The input-value-size argument is a signed longword containing the value size. If the size is omitted, the default is 4 (longword).
9 – OTS$CVT T x
The Convert Numeric Text to D-, F-, G-, H-, IEEE S-, or IEEE T- Floating routines convert an ASCII text string representation of a numeric value to a D-floating, F-floating, G-floating, H- floating, IEEE S-floating, or IEEE T-floating value. Format OTS$CVT_T_D fixed-or-dynamic-input-string ,floating-point-value [,digits-in-fraction] [,scale-factor] [,flags-value] [,extension-bits] OTS$CVT_T_F fixed-or-dynamic-input-string ,floating-point-value [,digits-in-fraction] [,scale-factor] [,flags-value] [,extension-bits] OTS$CVT_T_G fixed-or-dynamic-input-string ,floating-point-value [,digits-in-fraction] [,scale-factor] [,flags-value] [,extension-bits] OTS$CVT_T_H fixed-or-dynamic-input-string ,floating-point-value [,digits-in-fraction] [,scale-factor] [,flags-value] [,extension-bits] OTS$CVT_T_S fixed-or-dynamic-input-string ,floating-point-value [,digits-in-fraction] [,scale-factor] [,flags-value] [,extension-bits] OTS$CVT_T_T fixed-or-dynamic-input-string ,floating-point-value [,digits-in-fraction] [,scale-factor] [,flags-value] [,extension-bits]
9.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
9.2 – Arguments
fixed-or-dynamic-input-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor, fixed-length or dynamic string Input string containing an ASCII text string representation of a numeric value that OTS$CVT_T_x converts to a D-floating, F- floating, G-floating, H-floating, IEEE S-floating, or IEEE T- floating value. The fixed-or-dynamic-input-string argument is the address of a descriptor pointing to the input string. The syntax of a valid input string is as follows: [blanks][+ or -][digits][.][digits][+ or -][digits] or [blanks][+ or -][digits][.][digits][ X ][digits] where X = {E e D d Q q}[blanks][+ or -] E, e, D, d, Q, and q are the possible exponent letters. They are semantically equivalent. Other elements in the preceding syntax are defined as follows: Term Description blanks One or more blanks digits One or more decimal digits floating-point-value OpenVMS usage:floating_point type: D_floating, F_floating, G_floating, H_floating, IEEE S_floating, IEEE T_floating access: write only mechanism: by reference Floating-point value that OTS$CVT_T_x creates when it converts the input string. The floating-point-value argument is the address of the floating-point value. The data type of floating- point-value depends on the called routine as shown in the following table: Routine floating-point-value Data Type OTS$CVT_T_D D-floating OTS$CVT_T_F F-floating OTS$CVT_T_G G-floating OTS$CVT_T_H H-floating OTS$CVT_T_S IEEE S-floating OTS$CVT_T_T IEEE T-floating digits-in-fraction OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Number of digits in the fraction if no decimal point is included in the input string. The digits-in-fraction argument contains the number of digits. If the number of digits is omitted, the default is zero. scale-factor OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Scale factor. The scale-factor argument contains the value of the scale factor. If bit 6 of the flags-value argument is clear, the resultant value is divided by 10**scale-factor unless the exponent is present. If bit 6 of flags-value is set, the scale factor is always applied. If the scale factor is omitted, the default is zero. flags-value OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value User-supplied flags. The flags-value argument contains the user- supplied flags described in the following table: Bit Action if Set Action if Clear 0 Ignore blanks. Interpret blanks as zeros. 1 Allow only E or e Allow E, e, D, d, Q and q exponents. exponents. (This (This is consistent with BASIC is consistent with semantics.) Fortran semantics.) 2 Interpret an Do not interpret an underflow as an underflow as an error. error. 3 Truncate the value. Round the value. 4 Ignore tabs. Interpret tabs as invalid characters. 5 An exponent must The exponent letter can be omitted. begin with a valid exponent letter. 6 Always apply the Apply the scale factor only if there scale factor. is no exponent present in the string. If you omit the flags-value argument, OTS$CVT_T_x defaults all flags to clear. extension-bits (D-, F-floating, IEEE S-floating) OpenVMS usage:byte_unsigned type: byte (unsigned) access: write only mechanism: by reference extension-bits (G-, H-floating, IEEE T-floating) OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Extra precision bits. The extension-bits argument is the address of a word containing the extra precision bits. If extension- bits is present, floating-point-value is not rounded, and the first n bits after truncation are returned left-justified in this argument, as follows: Number of Bits Routine Returned Data Type OTS$CVT_T_D 8 Byte (unsigned) OTS$CVT_T_F 8 Byte (unsigned) OTS$CVT_T_G 11 Word (unsigned) OTS$CVT_T_H 15 Word (unsigned) OTS$CVT_T_S 8 Byte (unsigned) OTS$CVT_T_T 11 Word (unsigned) A value represented by extension bits is suitable for use as the extension operand in an EMOD instruction. The extra precision bits returned for H-floating may not be precise because OTS$CVT_T_H carries its calculations to only 128 bits. However the error should be small.
10 – OTS$CVT_TB_L
The Convert Binary Text to Unsigned Integer routine converts an ASCII text string representation of an unsigned binary value to an unsigned integer value. The integer value can be of arbitrary length but is typically a byte, word, longword, or quadword. The default size of the result is a longword. Format OTS$CVT_TB_L fixed-or-dynamic-input-string ,varying-output-value [,output-value-size] [,flags-value]
10.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
10.2 – Arguments
fixed-or-dynamic-input-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Input string containing the string representation of an unsigned binary value that OTS$CVT_TB_L converts to an unsigned integer value. The fixed-or-dynamic-input-string argument is the address of a descriptor pointing to the input string. The valid input characters are blanks and the digits 0 and 1. No sign is permitted. varying-output-value OpenVMS usage:varying_arg type: unspecified access: write only mechanism: by reference Unsigned integer of specified size that OTS$CVT_TB_L creates when it converts the ASCII text string. The varying-output-value argument is the address of the integer. The value of the output- value-size argument determines the size in bytes of the output value. output-value-size OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Arbitrary number of bytes to be occupied by the unsigned integer output value. The output-value-size argument contains a value that equals the size in bytes of the output value. If the value of output-value-size is zero or a negative number, OTS$CVT_TB_L returns an input conversion error. If you omit the output-value- size argument, the default is 4 (longword). flags-value OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value User-supplied flag that OTS$CVT_TB_L uses to determine how to interpret blanks within the input string. The flags-value argument contains this user-supplied flag. OTS$CVT_TB_L defines the flag as follows: Bit Action if Set Action if Clear 0 Ignore blanks. Interpret blanks as zeros. If you omit the flags-value argument, OTS$CVT_TB_L defaults all flags to clear.
11 – OTS$CVT_TI_L
The Convert Signed Integer Text to Integer routine converts an ASCII text string representation of a signed decimal number to a signed integer value. The default size of the result is a longword. Format OTS$CVT_TI_L fixed-or-dynamic-input-string ,varying-output-value [,output-value-size] [,flags-value]
11.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
11.2 – Arguments
fixed-or-dynamic-input-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor, fixed-length or dynamic string Input ASCII text string that OTS$CVT_TI_L converts to a signed integer. The fixed-or-dynamic-input-string argument is the address of a descriptor pointing to the input string. [+ or -]<integer-digits> OTS$CVT_TI_L always ignores leading blanks. varying-output-value OpenVMS usage:varying_arg type: unspecified access: write only mechanism: by reference Signed integer that OTS$CVT_TI_L creates when it converts the ASCII text string. The varying-output-value argument is the address of the signed integer. The value of the output-value-size argument determines the size of varying-output-value. output-value-size OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Number of bytes to be occupied by the value created when OTS$CVT_ TI_L converts the ASCII text string to an integer value. The output-value-size argument contains the number of bytes in varying-output-value. On VAX systems, valid values for the output-value-size argument are 1, 2, and 4. The value determines whether the integer value that OTS$CVT_TI_L creates is a byte, word, or longword. On Alpha and I64 systems, valid values for the output-value- size argument are 1, 2, 4, and 8. The value determines whether the integer value that OTS$CVT_TI_L creates is a byte, word, longword, or quadword. For VAX and Alpha systems, if you specify a 0 (zero) or omit the output-value-size argument, the size of the output value defaults to 4 (longword). If you specify any other value, OTS$CVT_TI_L returns an input conversion error. flags-value OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value User-supplied flags that OTS$CVT_TI_L uses to determine how blanks and tabs are interpreted. The flags-value argument is an unsigned longword containing the value of the flags. Bit Action if Set Action if Clear 0 Ignore all Ignore leading blanks but interpret blanks blanks. after the first legal character as zeros. 4 Ignore tabs. Interpret tabs as invalid characters. If you omit the flags-value argument, OTS$CVT_TI_L defaults all flags to clear.
12 – OTS$CVT_TL_L
The Convert Logical Text to Integer routine converts an ASCII text string representation of a FORTRAN-77 L format to a signed integer. Format OTS$CVT_TL_L fixed-or-dynamic-input-string ,varying-output-value [,output-value-size]
12.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
12.2 – Arguments
fixed-or-dynamic-input-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor, fixed-length or dynamic string Input string containing an ASCII text representation of a FORTRAN-77 L format that OTS$CVT_TL_L converts to a signed integer value. The fixed-or-dynamic-input-string argument is the address of a descriptor pointing to the input string. Common ASCII text representations of a FORTRAN-77 logical are .TRUE., .FALSE., T, t, F, and f. In practice, an OTS$CVT_TL_L input string is valid if it adheres to the following syntax: <blanks> or [<blanks>][.]{T t F f}[<characters>] One of the letters T, t, F, or f is required. Other elements in the preceding syntax are defined as follows: Term Description blanks One or more blanks characters One or more of any character varying-output-value OpenVMS usage:varying_arg type: unspecified access: write only mechanism: by reference Signed integer that OTS$CVT_TL_L creates when it converts the ASCII text string. The varying-output-value argument is the address of the signed integer. The value of the output-value-size argument determines the size in bytes of the signed integer. OTS$CVT_TL_L returns -1 as the contents of the varying-output- value argument if the character denoted by "letter" is T or t. Otherwise, OTS$CVT_TL_L sets varying-output-value to zero. output-value-size OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Number of bytes to be occupied by the signed integer created when OTS$CVT_TL_L converts the ASCII text string to an integer value. The output-value-size argument contains a value that equals the size in bytes of the output value. If output-value- size contains a zero or a negative number, OTS$CVT_TL_L returns an input conversion error. On VAX systems, valid values for the output-value-size argument are 1, 2, and 4. The value determines whether the integer value that OTS$CVT_TL_L creates is a byte, word, or longword. On Alpha and I64 systems, valid values for the output-value- size argument are 1, 2, 4, and 8. This value determines whether the integer value that OTS$CVT_TL_L creates is a byte, word, longword, or quadword. For VAX, Alpha, and I64 systems, if you omit the output-value- size argument, the default is 4 (longword).
13 – OTS$CVT_TO_L
The Convert Octal Text to Unsigned Integer routine converts an ASCII text string representation of an unsigned octal value to an unsigned integer. The integer value can be of arbitrary length but is typically a byte, word, longword, or quadword. The default size of the result is a longword. Format OTS$CVT_TO_L fixed-or-dynamic-input-string ,varying-output-value [,output-value-size] [,flags-value]
13.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
13.2 – Arguments
fixed-or-dynamic-input-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor, fixed-length or dynamic string Input string containing the string representation of an unsigned octal value that OTS$CVT_TO_L converts to an unsigned integer. The fixed-or-dynamic-input-string argument is the address of a descriptor pointing to the input string. The valid input characters are blanks and the digits 0 through 7. No sign is permitted. varying-output-value OpenVMS usage:varying_arg type: unspecified access: write only mechanism: by reference Unsigned integer of specified size that OTS$CVT_TO_L creates when it converts the ASCII text string. The varying-output-value argument is the address of the unsigned integer. The value of the output-value-size argument determines the size in bytes of the output value. output-value-size OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by value Arbitrary number of bytes to be occupied by the unsigned integer output value. The output-value-size argument contains a value that equals the size in bytes of the output value. If the value of output-value-size is zero or a negative number, OTS$CVT_TO_L returns an input conversion error. If you omit the output-value- size argument, the default is 4 (longword). flags-value OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value User-supplied flag that OTS$CVT_TO_L uses to determine how to interpret blanks within the input string. The flags-value argument contains the user-supplied flag described in the following table: Bit Action if Set Action if Clear 0 Ignore all Interpret blanks as zeros. blanks. If you omit the flags-value argument, OTS$CVT_TO_L defaults the flag to clear.
14 – OTS$CVT_TU_L
The Convert Unsigned Decimal Text to Integer routine converts an ASCII text string representation of an unsigned decimal value to an unsigned integer value. By default, the size of the result is a longword. Format OTS$CVT_TU_L fixed-or-dynamic-input-string ,varying-output-value [,output-value-size] [,flags-value]
14.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
14.2 – Arguments
fixed-or-dynamic-input-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Input string containing an ASCII text string representation of an unsigned decimal value that OTS$CVT_TU_L converts to an unsigned integer value. The fixed-or-dynamic-input-string argument is the address of a descriptor pointing to the input string. Valid input characters are the space and the digits 0 through 9. No sign is permitted. varying-output-value OpenVMS usage:varying_arg type: unspecified access: write only mechanism: by reference Unsigned integer that OTS$CVT_TU_L creates when it converts the ASCII text string. The varying-output-value argument is the address of the unsigned integer. The value of the output-value- size argument determines the size of varying-output-value. output-value-size OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by value Number of bytes occupied by the value created when OTS$CVT_ TU_L converts the input string. The output-value-size argument contains the number of bytes in varying-output-value. On VAX systems, valid values for the output-value-size argument are 1, 2, and 4. The value determines whether the integer value that OTS$CVT_TU_L creates is a byte, word, or longword. On Alpha and I64 systems, valid values for the output-value- size argument are 1, 2, 4, and 8. The value determines whether the integer value that OTS$CVT_TU_L creates is a byte, word, longword, or quadword. For VAX, Alpha, and I64 systems, if you specify a 0 (zero) or omit the output-value-size argument, the size of the output value defaults to 4 (longword). If you specify any other value, OTS$CVT_TU_L returns an input conversion error. flags-value OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value User-supplied flags that OTS$CVT_TU_L uses to determine how blanks and tabs are interpreted. The flags-value argument contains the user-supplied flags as described in the following table: Bit Action if Set Action if Clear 0 Ignore all Ignore leading blanks but interpret blanks blanks. after the first legal character as zeros. 4 Ignore tabs. Interpret tabs as invalid characters. If you omit the flags-value argument, OTS$CVT_TU_L defaults all flags to clear.
15 – OTS$CVT_TZ_L
The Convert Hexadecimal Text to Unsigned Integer routine converts an ASCII text string representation of an unsigned hexadecimal value to an unsigned integer. The integer value can be of arbitrary length but is typically a byte, word, longword, or quadword. The default size of the result is a longword. Format OTS$CVT_TZ_L fixed-or-dynamic-input-string ,varying-output-value [,output-value-size] [,flags-value]
15.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
15.2 – Arguments
fixed-or-dynamic-input-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor, fixed-length or dynamic string Input string containing the string representation of an unsigned hexadecimal value that OTS$CVT_TZ_L converts to an unsigned integer. The fixed-or-dynamic-input-string argument is the address of a descriptor pointing to the input string. The valid input characters are blanks, the digits 0 through 7, and the letters A through F. Letters can be uppercase or lowercase. No sign is permitted. varying-output-value OpenVMS usage:varying_arg type: unspecified access: write only mechanism: by reference Unsigned integer of specified size that OTS$CVT_TZ_L creates when it converts the ASCII text string. The varying-output-value argument is the address of the unsigned integer. The value of the output-value-size argument determines the size in bytes of the output value. output-value-size OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Arbitrary number of bytes to be occupied by the unsigned integer output value. The output-value-size argument contains a value that equals the size in bytes of the output value. If the value of output-value-size is zero or a negative number, OTS$CVT_TZ_L returns an input conversion error. If you omit the output-value- size argument, the default is 4 (longword). flags-value OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value User-supplied flags that OTS$CVT_TZ_L uses to determine how to interpret blanks within the input string. The flags-value argument contains these user-supplied flags as described in the following table: Bit Action if Set Action if Clear 0 Ignore all Interpret blanks as zeros. blanks. If you omit the flags-value argument, OTS$CVT_TZ_L defaults the flag to clear.
16 – OTS$DIVCx
The Complex Division routines return a complex result of a division on complex numbers. Format OTS$DIVC complex-dividend ,complex-divisor OTS$DIVCD_R3 complex-dividend ,complex-divisor (VAX only) OTS$DIVCG_R3 complex-dividend ,complex-divisor OTS$DIVCS complex-dividend ,complex-divisor OTS$DIVCT_R3 complex-dividend ,complex-divisor
16.1 – Returns
OpenVMS usage:complex_number type: F_floating complex, D_floating complex, G_floating complex, IEEE S_floating complex, IEEE T_floating complex, access: write only mechanism: by value Complex result of complex division. OTS$DIVC returns an F- floating complex number. OTS$DIVCD_R3 returns a D-floating complex number. OTS$DIVCG_R3 returns a G-floating complex number. OST$DIVCS returns an IEEE S-floating complex number. OTS$DIVCT_R3 returns an IEEE T-floating complex number.
16.2 – Arguments
complex-dividend OpenVMS usage:complex_number type: F_floating complex, D_floating complex, G_floating complex, IEEE S_floating complex, IEEE T_floating complex access: read only mechanism: by value Complex dividend. The complex-dividend argument contains a floating-point complex value. For OTS$DIVC, complex-dividend is an F-floating complex number. For OTS$DIVCD_R3, complex- dividend is a D-floating complex number. For OTS$DIVCG_R3, complex-dividend is a G-floating complex number. For OTS$DIVCT_ R3, complex-dividend is an IEEE T-floating complex number. complex-divisor OpenVMS usage:complex_number type: F_floating complex, D_floating complex, G_floating complex, IEEE S_floating complex, IEEE T_floating complex access: read only mechanism: by value Complex divisor. The complex-divisor argument contains the value of the divisor. For OTS$DIVC, complex-divisor is an F-floating complex number. For OTS$DIVCD_R3, complex-divisor is a D-floating complex number. For OTS$DIVCG_R3, complex-divisor is a G-floating complex number. For OTS$DIVCS, complex-divisor is an IEEE S- floating complex number. For OTS$DIVCS, complex-dividend is an IEEE S-floating complex number. For OTS$DIVCT_R3, complex-divisor is an IEEE T-floating complex number.
17 – OTS$DIV_PK_LONG
The Packed Decimal Division with Long Divisor routine divides fixed-point decimal data, which is stored in packed decimal form, when precision and scale requirements for the quotient call for multiple precision division. The divisor must have a precision of 30 or 31 digits. Format OTS$DIV_PK_LONG packed-decimal-dividend ,packed-decimal-divisor ,divisor-precision ,packed-decimal-quotient ,quotient-precision ,precision-data ,scale-data
17.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
17.2 – Arguments
packed-decimal-dividend OpenVMS usage:varying_arg type: packed decimal string access: read only mechanism: by reference Dividend. The packed-decimal-dividend argument is the address of a packed decimal string that contains the shifted dividend. Before being passed as input, the packed-decimal-dividend argument is always multiplied by 10**c, where c is defined as follows: c = 31 - prec(packed-decimal-dividend) Multiplying packed-decimal-dividend by 10**c makes packed- decimal-dividend a 31-digit number. packed-decimal-divisor OpenVMS usage:varying_arg type: packed decimal string access: read only mechanism: by reference Divisor. The packed-decimal-divisor argument is the address of a packed decimal string that contains the divisor. divisor-precision OpenVMS usage:word_signed type: word (signed) access: read only mechanism: by value Precision of the divisor. The divisor-precision argument is a signed word that contains the precision of the divisor. The high- order bits are filled with zeros. packed-decimal-quotient OpenVMS usage:varying_arg type: packed decimal string access: write only mechanism: by reference Quotient. The packed-decimal-quotient argument is the address of the packed decimal string into which OTS$DIV_PK_LONG writes the quotient. quotient-precision OpenVMS usage:word_signed type: word (signed) access: read only mechanism: by value Precision of the quotient. The quotient-precision argument is a signed word that contains the precision of the quotient. The high-order bits are filled with zeros. precision-data OpenVMS usage:word_signed type: word (signed) access: read only mechanism: by value Additional digits of precision required. The precision-data argument is a signed word that contains the value of the additional digits of precision required. OTS$DIV_PK_LONG computes the precision-data argument as follows: precision-data = scale(packed-decimal-quotient) + scale(packed-decimal-divisor) - scale(packed-decimal-dividend) - 31 + prec(packed-decimal-dividend) scale-data OpenVMS usage:word_signed type: word (signed) access: read only mechanism: by value Scale factor of the decimal point. The scale-data argument is a signed word that contains the scale data. OTS$DIV_PK_LONG defines the scale-data argument as follows: scale-data = 31 - prec(packed-decimal-divisor)
18 – OTS$DIV_PK_SHORT
The Packed Decimal Division with Short Divisor routine divides fixed-point decimal data when precision and scale requirements for the quotient call for multiple-precision division. Format OTS$DIV_PK_SHORT packed-decimal-dividend ,packed-decimal-divisor ,divisor-precision ,packed-decimal-quotient ,quotient-precision ,precision-data
18.1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value
18.2 – Arguments
packed-decimal-dividend OpenVMS usage:varying_arg type: packed decimal string access: read only mechanism: by reference Dividend. The packed-decimal-dividend argument is the address of a packed decimal string that contains the shifted dividend. Before being passed as input, the packed-decimal-dividend argument is always multiplied by 10**c, where c is defined as follows: c = 31 - prec(packed-decimal-dividend) Multiplying packed-decimal-dividend by 10**c makes packed- decimal-dividend a 31-digit number. packed-decimal-divisor OpenVMS usage:varying_arg type: packed decimal string access: read only mechanism: by reference Divisor. The packed-decimal-divisor argument is the address of a packed decimal string that contains the divisor. divisor-precision OpenVMS usage:word_signed type: word (signed) access: read only mechanism: by value Precision of the divisor. The divisor-precision argument is a signed word integer that contains the precision of the divisor; high-order bits are filled with zeros. packed-decimal-quotient OpenVMS usage:varying_arg type: packed decimal string access: write only mechanism: by reference Quotient. The packed-decimal-quotient argument is the address of a packed decimal string into which OTS$DIV_PK_SHORT writes the quotient. quotient-precision OpenVMS usage:word_signed type: word (signed) access: read only mechanism: by value Precision of the quotient. The quotient-precision argument is a signed word that contains the precision of the quotient; high- order bits are filled with zeros. precision-data OpenVMS usage:word_signed type: word (signed) access: read only mechanism: by value Additional digits of precision required. The precision-data argument is a signed word that contains the value of the additional digits of precision required. OTS$DIV_PK_SHORT computes the precision-data argument as follows: precision-data = scale(packed-decimal-quotient) + scale(packed-decimal-divisor) - scale(packed-decimal-dividend) - 31 + prec(packed-decimal-dividend)
19 – OTS$JUMP_TO_BPV
I64 only. The Jump to Bound Procedure Value routine transfers control to a bound procedure. Format OTS$JUMP_TO_BPV bound-func-value ,standard-args ,...
19.1 – Returns
None.
19.2 – Arguments
bound-func-value OpenVMS usage:quadword address type: address access: read only mechanism: by value in register R1 (GP) Function value for the procedure being called. standard-args type: access: mechanism: 0 Zero or more arguments to be passed to the called routine, passed using standard conventions (including the AI register).
19.3 – Description
When a procedure value that refers to a bound procedure descriptor is used to make a call, the routine designated in the OTS_ENTRY field (typically OTS$JUMP_TO_BPV) receives control with the GP register pointing to the bound procedure descriptor (instead of a global offset table). This routine performs the following steps: 1. Load the "real" target entry address into a volatile branch register, for example, B6. 2. Load the dynamic environment value into the appropriate uplevel-addressing register for the target function, for example, OTS$JUMP_TO_BPV uses R9. 3. Load the "real" target GP address into the GP register 4. Transfer control (branch, not call) to the target entry address. Control arrives at the real target procedure address with both the GP and environment register values established appropriately. Support routine OTS$JUMP_TO_BPV is included as a standard library routine. The operation of OTS$JUMP_TO_BPV is logically equivalent to the following code: OTS$JUMP_TO_BPV:: add gp=gp,24 ; Adjust GP to point to entry address ld8 r9=[gp],16 ; Load target entry address mov b6=r9 ld8 r9=[gp],-8 ; Load target environment value ld8 gp=[gp] ; Load target GP br b6 ; Transfer to target Note that there can be multiple OTS$JUMP_TO_BPV-like support routines, corresponding to different target registers where the environment value should be placed. The code that creates the bound function descriptor is also necessarily compiled by the same compiler that compiles the target procedure, thus can correctly select an appropriate support routine.
19.4 – Condition Values Returned
None.
20 – OTS$MOVE3
The Move Data Without Fill routine moves up to 2**31-1 bytes (2,147,483,647 bytes) from a specified source address to a specified destination address. Format OTS$MOVE3 length-value ,source-array ,destination-array
20.1 – Corresponding JSB Entry Point
OTS$MOVE3_R5
20.2 – Returns
None.
20.3 – Arguments
length-value OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Number of bytes of data to move. The length-value argument is a signed longword that contains the number of bytes to move. The value of length-value may range from 0 to 2,147,483,647 bytes. source-array OpenVMS usage:vector_byte_unsigned type: byte (unsigned) access: read only mechanism: by reference, array reference Data to be moved by OTS$MOVE3. The source-array argument contains the address of an unsigned byte array that contains this data. destination-array OpenVMS usage:vector_byte_unsigned type: byte (unsigned) access: write only mechanism: by reference, array reference Address into which source-array will be moved. The destination- array argument is the address of an unsigned byte array into which OTS$MOVE3 writes the source data.
21 – OTS$MOVE5
The Move Data with Fill routine moves up to 2**32-1 bytes (2,147,483,647 bytes) from a specified source address to a specified destination address, with separate source and destination lengths, and with fill. Overlap of the source and destination arrays does not affect the result. Format OTS$MOVE5 longword-int-source-length ,source-array ,fill-value ,longword-int-dest-length ,destination-array
21.1 – Corresponding JSB Entry Point
OTS$MOVE5_R5
21.2 – Returns
None.
21.3 – Arguments
longword-int-source-length OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Number of bytes of data to move. The longword-int-source- length argument is a signed longword that contains this number. The value of longword-int-source-length may range from 0 to 2,147,483,647. source-array OpenVMS usage:vector_byte_unsigned type: byte (unsigned) access: read only mechanism: by reference, array reference Data to be moved by OTS$MOVE5. The source-array argument contains the address of an unsigned byte array that contains this data. fill-value OpenVMS usage:byte_unsigned type: byte (unsigned) access: read only mechanism: by value Character used to pad the source data if longword-int-source- length is less than longword-int-dest-length. The fill-value argument contains the address of an unsigned byte that is this character. longword-int-dest-length OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Size of the destination area in bytes. The longword-int-dest- length argument is a signed longword containing this size. The value of longword-int-dest-length may range from 0 through 2,147,483,647. destination-array OpenVMS usage:vector_byte_unsigned type: byte (unsigned) access: write only mechanism: by reference, array reference Address into which source-array is moved. The destination-array argument is the address of an unsigned byte array into which OTS$MOVE5 writes the source data.
22 – OTS$MULCx
The Complex Multiplication routines calculate the complex product of two complex values. Format OTS$MULCD_R3 complex-multiplier ,complex-multiplicand (VAX only) OTS$MULCG_R3 complex-multiplier ,complex-multiplicand OTS$MULCT_R3 complex-multiplier ,complex-multiplicand OTS$MULCS complex-multiplier ,complex-multiplicand
22.1 – Returns
OpenVMS usage:complex_number type: D_floating complex, G_floating complex, IEEE S_floating complex, IEEE T_floating complex, access: write only mechanism: by value Complex result of multiplying two complex numbers. OTS$MULCD_ R3 returns a D-floating complex number. OTS$MULCG_R3 returns a G-floating complex number. OTS$MULCS returns an IEEE S-Floating complex number. OTS$MULCT_R3 returns an IEEE T-floating complex number.
22.2 – Arguments
complex-multiplier OpenVMS usage:complex_number type: D_floating complex, G_floating complex, S_floating complex, S_floating complex access: read only mechanism: by value Complex multiplier. The complex-multiplier argument contains the complex multiplier. For OTS$MULCD_R3, complex-multiplier is a D-floating complex number. For OTS$MULCG_R3, complex-multiplier is a G-floating complex number. For OTS$MULCS, complex-multiplier is a IEEE S-Floating complex number. For OTS$MULCT_R3, complex- multiplier is an IEEE T-floating complex number. complex-multiplicand OpenVMS usage:complex_number type: D_floating complex, G_floating complex, IEEE S_floating complex, IEEE T_floating complex access: read only mechanism: by value Complex multiplicand. The complex-multiplicand argument contains the complex multiplicand. For OTS$MULCD_R3, complex-multiplicand is a D-floating complex number. For OTS$MULCG_R3, complex- multiplicand is a G-floating complex number. For OTS$MULCS, complex-multiplicand is an IEEE S-floating complex number. For OTS$MULCT_R3, complex-multiplicand is an IEEE T-floating complex number.
23 – OTS$POWCxCx
The Raise a Complex Base to a Complex Floating-Point Exponent routines raise a complex base to a complex exponent. Format OTS$POWCC complex-base ,complex-exponent-value OTS$POWCDCD_R3 complex-base ,complex-exponent-value (VAX only) OTS$POWCGCG_R3 complex-base ,complex-exponent-value OTS$POWCSCS complex-base ,complex-exponent-value OTS$POWCTCT_R3 complex-base ,complex-exponent-value
23.1 – Returns
OpenVMS usage:complex_number type: F_floating complex, D_floating complex, G_floating complex, IEEE S_floating complex, IEEE T_floating complex access: write only mechanism: by value Result of raising a complex base to a complex exponent. OTS$POWCC returns an F-floating complex number. OTS$POWCDCD_R3 returns a D-floating complex number. OTS$POWCGCG_R3 returns a G-floating complex number. OTS$POWCSCS returns an IEEE S-floating complex number. OTS$POWCTCT_R3 returns an IEEE T-floating complex number.
23.2 – Arguments
complex-base OpenVMS usage:complex_number type: F_floating complex, D_floating complex, G_floating complex, IEEE S_floating complex, IEEE T_floating complex access: read only mechanism: by value Complex base. The complex-base argument contains the value of the base. For OTS$POWCC, complex-base is an F-floating complex number. For OTS$POWCDCD_R3, complex-base is a D-floating complex number. For OTS$POWCGCG_R3, complex-base is a G-floating complex number. For OTS$POWCSCS, complex-base is an IEEE S-floating complex number. For OTS$POWCTCT_R3, complex-base is an IEEE T- floating complex number. complex-exponent-value OpenVMS usage:complex_number type: F_floating complex, D_floating complex, G_floating complex, IEEE S_floating complex, IEEE T_floating complex access: read only mechanism: by value Complex exponent. The complex-exponent-value argument contains the value of the exponent. For OTS$POWCC, complex-exponent-value is an F-floating complex number. For OTS$POWCDCD_R3, complex- exponent-value is a D-floating complex number. For OTS$POWCGCG_ R3, complex-exponent-value is a G-floating complex number. For OTS$POWCSCS, complex-exponent-value is an IEEE S-floating complex number. For OTS$POWCTCT_R3, complex-exponent-value is an IEEE T-floating complex number.
24 – OTS$POWCxJ
The Raise a Complex Base to a Signed Longword Integer Exponent routines return the complex result of raising a complex base to an integer exponent. Format OTS$POWCJ complex-base ,longword-integer-exponent OTS$POWCDJ_R3 complex-base ,longword-integer-exponent (VAX only) OTS$POWCGJ_R3 complex-base ,longword-integer-exponent (VAX only) OTS$POWCSJ complex-base ,longword-integer-exponent OTS$POWCTJ_R3 complex-base ,longword-integer-exponent
24.1 – Returns
OpenVMS usage:complex_number type: F_floating complex, D_floating complex, G_floating complex, IEEE S_floating complex, IEEE T_floating complex access: write only mechanism: by value Complex result of raising a complex base to an integer exponent. OTS$POWCJ returns an F-floating complex number. OTS$POWCDJ_R3 returns a D-floating complex number. OTS$POWCGJ_R3 returns a G- floating complex number. OTS$POWCGS_R3 returns an IEEE S-floating complex number. OTS$POWCGT_R3 returns an IEEE T-floating complex number. In each format, the result and base are of the same data type.
24.2 – Arguments
complex-base OpenVMS usage:complex_number type: F_floating complex, D_floating complex, G_floating complex, S_floating complex, T_floating complex, access: read only mechanism: by value Complex base. The complex-base argument contains the complex base. For OTS$POWCJ, complex-base is an F-floating complex number. For OTS$POWCDJ_R3, complex-base is a D-floating complex number. For OTS$POWCGJ_R3, complex-base is a G-floating complex number. For OTS$POWCSJ, complex-base is an IEEE S-floating complex number. For OTS$POWCTJ_R3, complex-base is an IEEE T- floating complex number. longword-integer-exponent OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Exponent. The longword-integer-exponent argument is a signed longword containing the exponent.
25 – OTS$POWDD
The Raise a D-Floating Base to a D-Floating Exponent routine raises a D-floating base to a D-floating exponent. Format OTS$POWDD D-floating-point-base ,D-floating-point-exponent
25.1 – Returns
OpenVMS usage:floating_point type: D_floating access: write only mechanism: by value Result of raising a D-floating base to a D-floating exponent.
25.2 – Arguments
D-floating-point-base OpenVMS usage:floating_point type: D_floating access: read only mechanism: by value Base. The D-floating-point-base argument is a D-floating number containing the base. D-floating-point-exponent OpenVMS usage:floating_point type: D_floating access: read only mechanism: by value Exponent. The D-floating-point-exponent argument is a D-floating number that contains the exponent.
26 – OTS$POWDJ
The Raise a D-Floating Base to a Longword Exponent routine raises a D-floating base to a longword exponent. Format OTS$POWDJ D-floating-point-base ,longword-integer-exponent
26.1 – Returns
OpenVMS usage:floating_point type: D_floating access: write only mechanism: by value Result of raising a D-floating base to a longword exponent.
26.2 – Arguments
D-floating-point-base OpenVMS usage:floating_point type: D_floating access: read only mechanism: by value Base. The D-floating-point-base argument is a D-floating number containing the base. longword-integer-exponent OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Exponent. The longword-integer-exponent argument is a signed longword that contains the signed longword integer exponent.
27 – OTS$POWDR
The Raise a D-Floating Base to an F-Floating Exponent routine raises a D-floating base to an F-floating exponent. Format OTS$POWDR D-floating-point-base ,F-floating-point-exponent
27.1 – Returns
OpenVMS usage:floating_point type: D_floating access: write only mechanism: by value Result of raising a D-floating base to an F-floating exponent.
27.2 – Arguments
D-floating-point-base OpenVMS usage:floating_point type: D_floating access: read only mechanism: by value Base. The D-floating-point-base argument is a D-floating number containing the base. F-floating-point-exponent OpenVMS usage:floating_point type: F_floating access: read only mechanism: by value Exponent. The F-floating-point-exponent argument is an F-floating number that contains the exponent.
28 – OTS$POWGG
The Raise a G-Floating Base to a G-Floating Exponent routine raises a G-floating base to a G-floating exponent. Format OTS$POWGG G-floating-point-base ,G-floating-point-exponent
28.1 – Returns
OpenVMS usage:floating_point type: G_floating access: write only mechanism: by value Result of raising a G-floating base to a G-floating exponent.
28.2 – Arguments
G-floating-point-base OpenVMS usage:floating_point type: G_floating access: read only mechanism: by value Base that OTS$POWGG raises to a G-floating exponent. The G- floating-point-base argument is a G-floating number containing the base. G-floating-point-exponent OpenVMS usage:floating_point type: G_floating access: read only mechanism: by value Exponent to which OTS$POWGG raises the base. The G-floating- point-exponent argument is a G-floating number containing the exponent.
29 – OTS$POWGJ
The Raise a G-Floating Base to a Longword Exponent routine raises a G-floating base to a longword exponent. Format OTS$POWGJ G-floating-point-base ,longword-integer-exponent
29.1 – Returns
OpenVMS usage:floating_point type: G_floating access: write only mechanism: by value Result of raising a G-floating base to a longword exponent.
29.2 – Arguments
G-floating-point-base OpenVMS usage:floating_point type: G_floating access: read only mechanism: by value Base that OTS$POWGJ raises to a longword exponent. The G- floating-point-base argument is a G-floating number containing the base. longword-integer-exponent OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Exponent to which OTS$POWGJ raises the base. The longword- integer-exponent argument is a signed longword containing the exponent.
30 – OTS$POWHH_R3
On VAX systems, the Raise an H-Floating Base to an H-Floating Exponent routine raises an H-floating base to an H-floating exponent. Format OTS$POWHH_R3 H-floating-point-base ,H-floating-point-exponent
30.1 – Returns
OpenVMS usage:floating_point type: H_floating access: write only mechanism: by value Result of raising an H-floating base to an H-floating exponent.
30.2 – Arguments
H-floating-point-base OpenVMS usage:floating_point type: H_floating access: read only mechanism: by value Base. The H-floating-point-base argument is an H-floating number containing the base. H-floating-point-exponent OpenVMS usage:floating_point type: H_floating access: read only mechanism: by value Exponent. The H-floating-point-exponent argument is an H-floating number that contains the H-floating exponent.
31 – OTS$POWHJ_R3
On VAX systems, the Raise an H-Floating Base to a Longword Exponent routine raises an H-floating base to a longword exponent. Format OTS$POWHJ_R3 H-floating-point-base ,longword-integer-exponent
31.1 – Returns
OpenVMS usage:floating_point type: H_floating access: write only mechanism: by value Result of raising an H-floating base to a longword exponent.
31.2 – Arguments
H-floating-point-base OpenVMS usage:floating_point type: H_floating access: read only mechanism: by value Base. The H-floating-point-base argument is an H-floating number containing the base. longword-integer-exponent OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Exponent. The longword-integer-exponent argument is a signed longword that contains the signed longword exponent.
32 – OTS$POWII
The Raise a Word Base to a Word Exponent routine raises a word base to a word exponent. Format OTS$POWII word-integer-base ,word-integer-exponent
32.1 – Returns
OpenVMS usage:word_signed type: word (signed) access: write only mechanism: by value Result of raising a word base to a word exponent.
32.2 – Arguments
word-integer-base OpenVMS usage:word_signed type: word (signed) access: read only mechanism: by value Base. The word-integer-base argument is a signed word containing the base. word-integer-exponent OpenVMS usage:word_signed type: word (signed) access: read only mechanism: by value Exponent. The word-integer-exponent argument is a signed word containing the exponent.
33 – OTS$POWJJ
The Raise a Longword Base to a Longword Exponent routine raises a signed longword base to a signed longword exponent. Format OTS$POWJJ longword-integer-base ,longword-integer-exponent
33.1 – Returns
OpenVMS usage:longword_signed type: longword (signed) access: write only mechanism: by value Result of raising a signed longword base to a signed longword exponent.
33.2 – Arguments
longword-integer-base OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Base. The longword-integer-base argument is a signed longword containing the base. longword-integer-exponent OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Exponent. The longword-integer-exponent argument is a signed longword containing the exponent.
34 – OTS$POWLULU
The Raise an Unsigned Longword Base to an Unsigned Longword Exponent routine raises an unsigned longword integer base to an unsigned longword integer exponent. Format OTS$POWLULU unsigned-lword-int-base, unsigned-lword-int-exponent
34.1 – Returns
OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value Result of raising an unsigned longword integer base to an unsigned longword integer exponent.
34.2 – Arguments
unsigned-lword-int-base OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Unsigned longword integer base. The unsigned-lword-int-base argument contains the value of the integer base. unsigned-lword-int-exponent OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Unsigned longword integer exponent. The unsigned-lword-int- exponent argument contains the value of the integer exponent.
35 – OTS$POWRD
The Raise an F-Floating Base to a D-Floating Exponent routine raises an F-floating base to a D-floating exponent. Format OTS$POWRD F-floating-point-base ,D-floating-point-exponent
35.1 – Returns
OpenVMS usage:floating_point type: D_floating access: write only mechanism: by value Result of raising an F-floating base to a D-floating exponent.
35.2 – Arguments
F-floating-point-base OpenVMS usage:floating_point type: F_floating access: read only mechanism: by value Base. The F-floating-point-base argument is an F-floating number containing the base. D-floating-point-exponent OpenVMS usage:floating_point type: D_floating access: read only mechanism: by value Exponent. The D-floating-point-exponent argument is a D-floating number that contains the exponent.
36 – OTS$POWRJ
The Raise an F-Floating Base to a Longword Exponent routine raises an F-floating base to a longword exponent. Format OTS$POWRJ F-floating-point-base ,longword-integer-exponent
36.1 – Returns
OpenVMS usage:floating_point type: F_floating access: write only mechanism: by value Result of raising an F-floating base to a longword exponent.
36.2 – Arguments
F-floating-point-base OpenVMS usage:floating_point type: F_floating access: read only mechanism: by value Base. The F-floating-point-base argument is an F-floating number containing the base. longword-integer-exponent OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Exponent. The longword-integer-exponent argument is a signed longword that contains the longword exponent.
37 – OTS$POWRR
The Raise an F-Floating Base to an F-Floating Exponent routine raises an F-floating base to an F-floating exponent. Format OTS$POWRR F-floating-point-base ,F-floating-point-exponent
37.1 – Returns
OpenVMS usage:floating_point type: F_floating access: write only mechanism: by value Result of raising an F-floating base to an F-floating exponent.
37.2 – Arguments
F-floating-point-base OpenVMS usage:floating_point type: F_floating access: read only mechanism: by value Base. The F-floating-point-base argument is an F-floating number containing the base. F-floating-point-exponent OpenVMS usage:floating_point type: F_floating access: read only mechanism: by value Exponent. The F-floating-point-exponent argument is an F-floating number that contains the exponent.
38 – OTS$POWSJ
The Raise an IEEE S-Floating Base to a Longword Exponent routine raises an IEEE S-floating base to a longword exponent. Format OTS$POWSJ S-floating-point-base ,longword-integer-exponent
38.1 – Returns
OpenVMS usage:floating_point type: S_floating access: write only mechanism: by value Result of raising an IEEE S-floating base to a longword exponent.
38.2 – Arguments
S-floating-point-base OpenVMS usage:floating_point type: S_floating access: read only mechanism: by value Base. The S-floating-point-base argument is an IEEE S-floating number containing the base. longword-integer-exponent OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Exponent. The longword-integer-exponent argument is a signed longword that contains the longword exponent.
39 – OTS$POWSS
The Raise an IEEE S-Floating Base to an IEEE S-Floating Exponent routine raises a IEEE S-floating base to an IEEE S-floating exponent. Format OTS$POWSS S-floating-point-base ,S-floating-point-exponent
39.1 – Returns
OpenVMS usage:floating_point type: IEEE S_floating access: write only mechanism: by value Result of raising an IEEE S-floating base to an IEEE S-floating exponent.
39.2 – Arguments
S-floating-point-base OpenVMS usage:floating_point type: IEEE S_floating access: read only mechanism: by value Base that OTS$POWSS raises to an IEEE S-floating exponent. The S-floating-point-base argument is an IEEE S-floating number containing the base. S-floating-point-exponent OpenVMS usage:floating_point type: IEEE S_floating access: read only mechanism: by value Exponent to which OTS$POWSS raises the base. The S-floating- point-exponent argument is an IEEE S-floating number containing the exponent.
40 – OTS$POWTJ
The Raise a T-Floating base to a Longword Exponent routine raises an IEEE T-floating base to a longword exponent. Format OTS$POWTJ T-floating-point-base ,longword-integer-exponent
40.1 – Returns
OpenVMS usage:floating_point type: IEEE T_floating access: write only mechanism: by value Result of raising an IEEE T-floating base to a longword exponent.
40.2 – Arguments
T-floating-point-base OpenVMS usage:floating_point type: IEEE T_floating access: read only mechanism: by value Base. The T-floating-point-base argument is an IEEE T-floating number containing the base. longword-integer-exponent OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by value Exponent. The longword-integer-exponent argument is a signed longword that contains the longword exponent.
41 – OTS$POWTT
The Raise an IEEE T-Floating Base to an IEEE T-Floating Exponent routine raises an IEEE T-floating base to an IEEE T-floating exponent. Format OTS$POWTT T-floating-point-base ,T-floating-point-exponent
41.1 – Returns
OpenVMS usage:floating_point type: IEEE T_floating access: write only mechanism: by value Result of raising an IEEE T-floating base to an IEEE T-floating exponent.
41.2 – Arguments
T-floating-point-base OpenVMS usage:floating_point type: IEEE T_floating access: read only mechanism: by value Base that OTS$POWTT raises to an IEEE T-floating exponent. The T-floating-point-base argument is an IEEE T-floating number containing the base. T-floating-point-exponent OpenVMS usage:floating_point type: IEEE T_floating access: read only mechanism: by value Exponent to which OTS$POWTT raises the base. The T-floating- point-exponent argument is an IEEE T-floating number containing the exponent.
42 – OTS$POWxLU
The Raise a Floating-Point Base to an Unsigned Longword Integer Exponent routines raise a floating-point base to an unsigned longword integer exponent. Format OTS$POWRLU floating-point-base ,unsigned-lword-int-exponent OTS$POWDLU floating-point-base ,unsigned-lword-int-exponent OTS$POWGLU floating-point-base ,unsigned-lword-int-exponent OTS$POWSLU floating-point-base ,unsigned-lword-int-exponent OTS$POWTLU floating-point-base ,unsigned-lword-int-exponent OTS$POWHLU_R3 floating-point-base ,unsigned-lword-int-exponent (VAX only)
42.1 – Returns
OpenVMS usage:floating_point type: F_floating, D_floating, G_floating, H_floating, IEEE S_floating, IEEE T_floating access: write only mechanism: by value Result of raising a floating-point base to an unsigned longword integer exponent. OTS$POWRLU returns an F-floating number. OTS$POWDLU returns a D-floating number. OTS$POWGLU returns a G-floating number. OTS$POWSLU returns an IEEE S-floating number. OTS$POWTLU returns an IEEE T-floating number. On VAX systems, OTS$POWHLU_R3 returns an H-floating number.
42.2 – Arguments
floating-point-base OpenVMS usage:floating_point type: F_floating, D_floating, G_floating, H_floating, IEEE S_floating, IEEE T_floating access: read only mechanism: by value Floating-point base. The floating-point-base argument contains the value of the base. For OTS$POWRLU, floating-point-base is an F-floating number. For OTS$POWDLU, floating-point-base is a D-floating number. For OTS$POWGLU, floating-point-base is a G- floating number. For OTS$POWHLU_R3, floating-point-base is an H-floating number. For OTS$POWSLU, floating-point-base is an IEE S-floating number. For OTS$POWTLU, floating-point-base is an IEEE T-floating number. unsigned-lword-int-exponent OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Integer exponent. The unsigned-lword-int-exponent argument contains the value of the unsigned longword integer exponent.
43 – OTS$SCOPY_DXDX
The Copy a Source String Passed by Descriptor to a Destination String routine copies a source string to a destination string. Both strings are passed by descriptor. Format OTS$SCOPY_DXDX source-string ,destination-string
43.1 – Corresponding JSB Entry Point
OTS$SCOPY_DXDX6
43.2 – Returns
OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by value Number of bytes not moved to the destination string if the length of source-string is greater than the length of destination- string. The value is 0 (zero) otherwise.
43.3 – Arguments
source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Source string. The source-string argument is the address of a descriptor pointing to the source string. The descriptor class can be unspecified, fixed length, dynamic, scalar decimal, array, noncontiguous array, or varying. destination-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Destination string. The destination-string argument is the address of a descriptor pointing to the destination string. The class field determines the appropriate action.
44 – OTS$SCOPY_R_DX
The Copy a Source String Passed by Reference to a Destination String routine copies a source string passed by reference to a destination string. Format OTS$SCOPY_R_DX word-int-source-length-val ,source-string-address ,destination-string
44.1 – Corresponding JSB Entry Point
OTS$SCOPY_R_DX6
44.2 – Returns
OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by value Number of bytes not moved to the destination string if the length of the source string pointed to by source-string-address is greater than the length of destination-string. Otherwise, the value is 0 (zero).
44.3 – Arguments
word-int-source-length-val OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by value Length of the source string. The word-int-source-length-val argument is an unsigned word integer containing the length of the source string. source-string-address OpenVMS usage:char_string type: character string access: read only mechanism: by reference Source string. The source-string-address argument is the address of the source string. destination-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Destination string. The destination-string argument is the address of a descriptor pointing to the destination string. OTS$SCOPY_R_DX determines the appropriate action based on the descriptor's CLASS field. The descriptor's LENGTH field alone or both the POINTER and LENGTH fields can be modified if the string is dynamic. For varying strings, the string's current length (CURLEN) is rewritten.
45 – OTS$SFREE1_DD
The Strings, Free One Dynamic routine returns one dynamic string area to free storage. Format OTS$SFREE1_DD dynamic-descriptor
45.1 – Corresponding JSB Entry Point
OTS$SFREE1_DD6
45.2 – Returns
None.
45.3 – Argument
dynamic-descriptor OpenVMS usage:quadword_unsigned type: quadword (unsigned) access: modify mechanism: by reference Dynamic string descriptor. The dynamic-descriptor argument is the address of the dynamic string descriptor. The descriptor is assumed to be dynamic and its class field is not checked.
46 – OTS$SFREEN_DD
The Free n Dynamic Strings routine takes as input a vector of one or more dynamic string areas and returns them to free storage. Format OTS$SFREEN_DD descriptor-count-value ,first-descriptor
46.1 – Corresponding JSB Entry Point
OTS$SFREEN_DD6
46.2 – Returns
None.
46.3 – Arguments
descriptor-count-value OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Number of adjacent descriptors to be flagged as having no allocated area (the descriptor's POINTER and LENGTH fields contain 0) and to have their allocated areas returned to free storage by OTS$SFREEN_DD. The descriptor-count-value argument is an unsigned longword containing this number. first-descriptor OpenVMS usage:quadword_unsigned type: quadword (unsigned) access: modify mechanism: by reference First string descriptor of an array of string descriptors. The first-descriptor argument is the address of the first string descriptor. The descriptors are assumed to be dynamic, and their class fields are not checked.
47 – OTS$SGET1_DD
The Get One Dynamic String routine allocates a specified number of bytes of dynamic virtual memory to a specified string descriptor. Format OTS$SGET1_DD word-integer-length-value ,dynamic-descriptor
47.1 – Corresponding JSB Entry Point
OTS$SGET1_DD_R6
47.2 – Returns
None.
47.3 – Arguments
word-integer-length-value OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by value Number of bytes to be allocated. The word-integer-length-value argument contains the number of bytes. The amount of storage allocated is automatically rounded up. If the number of bytes is zero, a small number of bytes is allocated. dynamic-descriptor OpenVMS usage:quadword_unsigned type: quadword (unsigned) access: modify mechanism: by reference Dynamic string descriptor to which the area is to be allocated. The dyn-str argument is the address of the dynamic string descriptor. The CLASS field is not checked but it is set to dynamic (CLASS = 2). The LENGTH field is set to word-integer- length-value and the POINTER field is set to the string area allocated (first byte beyond the header).