CALLing intrinsics

The INTRINSIC phrase is used to indicate that the CALL statement is calling an operating system intrinsic function, rather than a subprogram. When the INTRINSIC phrase is used, literal-1 must be used and must name an operating system intrinsic. The USING phrase specifies the various parameters to be passed to the intrinsic. When the intrinsic is a "typed procedure," the GIVING phrase specifies the parameter to be returned by the intrinsic.

As with subprograms, the parameters passed to intrinsics are specified by position. If a parameter of an intrinsic is optional, and you do not want to pass a value for that parameter, you must specify two consecutive backslashes ("\\") in the position within the USING phrase of the CALL statement that corresponds to that parameter's position.

Unlike subprograms, if an intrinsic expects a parameter to be passed by value rather than by reference, you don't need to enclose the literal or identifier in backslashes. The intrinsic automatically assumes that the parameter is being passed by value.

The special register CONDITION-CODE holds the condition code returned by the intrinsic function. The following special relation operators can be used after the call to check the condition code:

mnemonic-name { [ NOT ] { <  } } 0
              {         { =  } }
              {         { >  } }
              {         { >= } }
              {         { <= } }
              {         { <> } }

When CALL INTRINSIC is used for intrinsics in a system file:

Note: On HP e3000 emulators, ACUCOBOL-GT supports calls to most system intrinsic functions. Nothing in ACUCOBOL-GT's CALL interface limits support for intrinsics. However, we have not tested support for all intrinsic functions. In particular we have not tested the more obscure functions or variants of functions that take unusual or undocumented parameter types. Should you encounter unexpected behavior, please contact Micro Focus SupportLine.