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