ctrstr OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Control string passed to $FAO that contains the text to be output together with one or more $FAO directives. $FAO directives are used to specify repeat counts or the output field length, or both, and they are preceded by an exclamation point (!). The ctrstr argument is the 32- or 64-bit address of a character string descriptor pointing to the control string. There is no restriction on the length of the control string or on the number of $FAO directives it can contain; however, if an exclamation point must appear in the output string, it must be represented in the control string by a double exclamation point (!!). A single exclamation point in the control string indicates to $FAO that the next characters are to be interpreted as FAO directives. When $FAO processes the control string, it writes to the output buffer each character that is not part of an $FAO directive. If the $FAO directive is valid, $FAO processes it. If the directive requires a parameter, $FAO processes the next consecutive parameter in the specified parameter list. If the $FAO directive is not valid, $FAO terminates and returns a condition value in R0. The $FAO service reads parameters from the argument list specified in the call; these arguments have the names p1, p2, p3, and so on, up to p17. Each argument specifies one parameter. Because $FAO accepts a maximum of 17 parameters in a single call, you must use $FAOL if the number of parameters exceeds 17. The $FAOL service accepts any number of parameters used with the prmlst argument. outlen OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by 32- or 64-bit reference Length in bytes of the fully formatted output string returned by $FAO. The outlen argument is the 32- or 64-bit address of a word containing this value. outbuf OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by 32- or 64-bit descriptor-fixed-length string descriptor Output buffer into which $FAO writes the fully formatted output string. The outbuf argument is the 32- or 64-bit address of a character string descriptor pointing to the output buffer. The maximum number of bytes written is limited to 64K. p1 to pn OpenVMS usage:varying_arg type: quadword (signed) access: read only mechanism: by value $FAO directive parameters. The p1 argument is a quadword containing the parameter needed by the first $FAO directive encountered in the control string, the p2 argument is a quadword containing the parameter needed for the second $FAO directive, and so on for the remaining arguments up to p17. If an $FAO directive does not require a parameter, that $FAO directive is processed without reading a parameter from the argument list. Depending on the directive, a parameter can be a value to be converted, a 32- or 64-bit address of a string to be inserted into the output string, or a length or argument count. Each directive in the control string might require a corresponding parameter or parameters. prmlst OpenVMS usage:vector_longword_unsigned type: longword (unsigned) access: read only mechanism: by 32- or 64-bit reference List of $FAO directive parameters to be passed to $FAOL. The prmlst argument is the 32- or 64-bit address of a list of longwords wherein each longword is a parameter. The $FAOL service processes these parameters sequentially as it encounters, in the control string, $FAO directives that require parameters. The parameter list can be a data structure that already exists in a program and from which certain values are to be extracted.