Copyright Digital Equipment Corp. All rights reserved.

Directives

   Specify an FAO directive using any one of the following formats:

   Format        Function

   !DD           One directive
   !n(DD)        A directive repeated a specified number of times
   !lengthDD     A directive that places its output in a field of a
                 specified length
   !n(lengthDD)  A directive that is repeated a specified number of
                 times and generates output fields of a specified
                 length

   The exclamation point (!)  indicates that the following character
   or characters are to be interpreted as an FAO directive. DD
   represents a 1- or 2-character uppercase code indicating
   the action that F$FAO is to perform. When specifying repeat
   counts, n is a decimal value specifying the number of times the
   directive is to be repeated. The length value is a decimal number
   that instructs F$FAO to generate an output field of "length"
   characters.

   Repeat counts and output lengths may also be specified by using
   a number sign (#)  in place of absolute numeric value. If you use
   a number sign, you must specify the numeric value as an integer
   expression in the corresponding place in the argument list.

   When a variable output field is specified with a repeat count,
   only one length parameter is required, because each output string
   has the specified length.

   Here is a summary of the FAO directives you can specify in a
   control string.

                                  NOTE

      Two types of directives that are supported by the $FAO
      system service are not supported by the DCL F$FAO lexical
      function. These types are:

      o  Quadword numeric directives, which are not supported
         in DCL because all DCL numeric values are stored and
         manipulated as longwords.

      o  String directives other than the !AS directive, which are
         not supported in DCL because all DCL strings are stored
         and manipulated by descriptor.

      For further information on the $FAO system service
      directive, see the VSI OpenVMS System Services Reference
      Manual.

             Argument
   Directive Type           Description

   Character string insertion:
   !AS       String         Inserts a character string as is.

   Zero-filled numeric conversion:
   !OB       Integer        Converts a byte to octal notation.
   !OW       Integer        Converts a word to octal notation.
   !OL       Integer        Converts a longword to octal notation.
   !XB       Integer        Converts a byte to hexadecimal notation.
   !XW       Integer        Converts a word to hexadecimal notation.
   !XL       Integer        Converts a longword to hexadecimal
                            notation.
   !ZB       Integer        Converts a byte to decimal notation.
   !ZW       Integer        Converts a word to decimal notation.
   !ZL       Integer        Converts a longword to decimal notation.

   Blank-filled numeric conversion:
   !UB       Integer        Converts a byte to decimal notation
                            without adjusting for negative numbers.
   !UW       Integer        Converts a word to decimal notation
                            without adjusting for negative numbers.
   !UL       Integer        Converts a longword to decimal notation
                            without adjusting for negative numbers.
   !SB       Integer        Converts a byte to decimal notation
                            with negative numbers converted
                            properly.
   !SW       Integer        Converts a word to decimal notation
                            with negative numbers converted
                            properly.
   !SL       Integer        Converts a longword to decimal notation
                            with negative numbers converted
                            properly.

   Special formatting:
   !/        None           Inserts a carriage return and a line
                            feed.
   !_        None           Inserts a tab.
   !^        None           Inserts a form feed.
   !!        None           Inserts an exclamation point (!).
   !%I       Integer        Converts a longword integer to a named
                            UIC in the format
                            [group-identifier,member-identifier].
   !%S       None           Inserts an "s" if the most recently
                            converted number is not 1. (Not
                            recommended for use with multilingual
                            products.)
   !%U       Integer        Converts a longword integer to a numeric
                            UIC in the format [g,m], where g is the
                            group number and m is the member number.
                            The directive inserts the brackets and
                            the comma.
   !n<...!>  None           Left-justifies and blank-fills all data
                            represented by the instructions . . . in
                            fields n characters wide.
   !n*c      None           Repeats the character represented
                            by c for n times.
   !n%C      String         Inserts a character string when the
                            most recently evaluated argument has
                            the value n. (Recommended for use with
                            multilingual products.)
   !%E       String         Inserts a character string when the
                            value of the most recently evaluated
                            argument does not match any preceding
                            !n%C directives. (Recommended for use
                            with multilingual products.)
   !%F       None           Marks the end of a plurals statement.
   !%T       Integer        Inserts the current time.
             equal to 0
   !%D       Integer        Inserts the current date/time.
             equal to 0

   Argument interpretation:
   !-        None           Reuses the last argument.
   !+        None           Skips the next argument.