VMS Help  —  RTL Routines, OTS$

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).
Close Help