Google
 

Trailing-Edge - PDP-10 Archives - decus_20tap5_198111 - decus/20-0147/format.rnd
There are no other files named format.rnd in the archive.
.nofill
.title ^^FORMAT, a FORTRAN FORMAT Statement Generator
FFFFFFFF  OOOOO    RRRRRR    MM     MM     AA  TTTTTTTT
FF       OO   OO   RR    RR  MMM   MMM    AAAA    TT
FF      OO     OO  RR    RR  MMMM MMMM   AA  AA   TT
FFFFF   OO     OO  RRRRRR    MM MMM MM  AA    AA  TT
FF      OO     OO  RR  RR    MM  M  MM  AAAAAAAA  TT
FF       OO   OO   RR   RR   MM     MM  AA    AA  TT
FF        OOOOO    RR    RR  MM     MM  AA    AA  TT
  FFFFFFFF     OOOO  RRRR  RR  MMMMM  MM  AAAA  AA  TTT
   FFFFFFF  OOO  OOO  RRR  RRR  MMMMM  MM  AAAA  AA  TTT
    FFFFFF  OOOOO  OO  RR  RRRR  MM MM  MM        AA  TTT
        FFF  OOOOO  OO      RRRR  M   M  MM  AAAA  AA  TTT
      FFFFFF  OOOOO  OO  RRRR  RR    M    MMM  AA  AAA  TTT
       FFFFFFF  OOO  OOO  RRRR  RR   MMM   MMMM    AAAA  TTT
              FF     OOOO      RRRR  MMMMM  MMMMM  AA
27 May 1980
.fill
.skip
.center
FORMAT, a FORTRAN FORMAT Statement Generator
.center
------##-#------- ------ --------- ---------
.skip
The FORMAT program reads a sample form or a rough version of
messages, and generates FORTRAN FORMAT statements which can be used
by a FORTRAN program to reproduce the form complete with embedded
variables, or to generate the messages with lines of uniform length.
The case conventions, the structure of the commands, and the
meanings of many of the commands which are recognized by the FORMAT
program are identical to those accepted by the DECsystem-10 text
processing program RUNOFF. When text containing only those commands
which are recognized by both the FORMAT and RUNOFF programs is
processed by the FORMAT program, then the use of the resulting
FORMAT statements generates the text which would have been produced
directly by RUNOFF. Although the FORMAT program provides many of the
same capabilities as RUNOFF, the FORMAT program is itself written in
a system independent subset of FORTRAN and is not an extended
version of RUNOFF. If a RUNOFF capability is not described in this
documentation, then this capability is not provided by the FORMAT
program. In particular, the FORMAT program does not provide any
paging, footnoting, indexing or underlining capabilities.
.skip
For example, the word FORMAT as it appears in large letters at the
top of this page, but without the shadows, would be converted to the
following FORTRAN FORMAT statement if processed by the FORMAT
program with the initial commands
.break
.nofill
_.no fill.output width 60.no offset.use H
.skip
.nofill
    1 FORMAT(43HFFFFFFFF  OOOOO    RRRRRR    MM     MM     ,
     112HAA  TTTTTTTT/2HFF,7X,26HOO   OO   RR    RR  MMM   ,
     217HMMM    AAAA    TT/2HFF,6X,21HOO     OO  RR    RR  ,
     323HMMMM MMMM   AA  AA   TT/23HFFFFF   OO     OO  RRRR,
     429HRR    MM MMM MM  AA    AA  TT/2HFF,6X,9HOO     OO,
     535H  RR  RR    MM  M  MM  AAAAAAAA  TT/2HFF,7X,4HOO  ,
     639H OO   RR   RR   MM     MM  AA    AA  TT/2HFF,8X,
     742HOOOOO    RR    RR  MM     MM  AA    AA  TT)
.skip
.fill
.left margin 0
For sections of text which are too long to be represented in a
single FORMAT statement, the FORMAT program can generate FORTRAN
output statements which reference each of the resulting FORMAT
statements. The statement numbers of the FORMAT statements and the
references to them are incremented as necessary. The lines of text
which are represented in the resulting FORMAT statements can include
output field descriptions which are kept separate from the text
which is represented in H, apostrophe or asterisk notation. A fixed
line of text can be superimposed upon each line of text which is
represented in the resulting FORMAT statements to rule vertical
lines of characters. If identical parallel forms are being
generated, then the input file only needs to specify the text for
the left form and this can be copied to the right as many times as
are desired.
.skip
Commands which are interspersed with the text which is to be
represented in the resulting FORMAT statements specify how this text
is to be processed, as well as some characteristics of the FORMAT
statements. In the line of commands which was shown above
.skip
.left margin 5
.indent -5
_.NO#FILL
.break
specifies that the spaces and the nonflag printing characters in
each line in the input file are to be regenerated exactly as read
when the resulting FORMAT statements are used. Otherwise, each line
of text which is represented in the resulting FORMAT statements
would be filled with words from the following lines until the next
word would extend beyond the current right margin.
.skip
.indent -5
_.OUTPUT#WIDTH#60
.break
specifies that the maximum width of the resulting FORMAT statements,
rather than the maximum width of the lines represented in the
resulting FORMAT statements, is 60 characters. Otherwise, the output
width would be 72 characters.
.skip
.indent -5
_.NO#OFFSET
.break
specifies that each line is not to include a carriage control
character. Otherwise, there would be an extra space as a carriage
control character at the start of each line which is represented in
the resulting FORMAT statements.
.skip
.indent -5
_.USE#H
.break
specifies that the text is to be represented in Hollerith or H
notation consisting of the letter H preceded by the number of
characters and followed by the characters themselves. The text can
also be represented in either apostrophe or asterisk notation.
.left margin 0
.skip
The FORMAT program produces 2 output files, a FORTRAN language file
and a proof file. The FORTRAN language file must be merged into an
existing program or else the input file must have specified the rest
of the FORTRAN statements, which together with the newly constructed
FORMAT statements, make up the program. The proof file contains the
text which would be generated when the resulting FORMAT statements
are used. The locations at which output field specifications are
inserted are indicated by dollar signs in this text. The actual
output field specifications are indicated in separate lines in the
proof file before the lines into which these output field
specifications are inserted. The proof file also contains an
indication of the location at which each FORMAT statement begins, a
copy of each of the commands in the input file, and a copy of each
of the FORTRAN statements which were specified directly by the input
file.
.skip 2
.test page 6
.fill
.left margin 0
.center
Command Structure
.center
------- ---------
.skip
Each line of the input file which does not start with a period in
the left column contains text which is to be represented in the
FORMAT statements or contains a FORTRAN statement or a FORTRAN
comment which is to be copied into the output file unchanged except
for possible case conversion of the alphabetic letters. Each line
which starts with a period in the left column is interpreted as a
command. A command consists of the leading period followed either by
a word or by a phrase which identifies the command, followed for
some commands by 1 or 2 numbers, by 1 or 2 characters, or by the
text which extends through the rightmost printing character on the
line. The alphabetic letters which form the word or phrase can be
supplied in lower case, in upper case, or in a mixture of upper and
lower cases. The word, or each of the words in a phrase, can be
abbreviated by truncation leaving at least the left letter in each
word if additional words or their abbreviations appear to the right.
Spaces are allowed before, between and after the words in a phrase
but are not required. Only enough letters must be typed to
unambiguously identify the word or phrase from all others. The
numbers, characters or line of text which follows the word or phrase
are referred to as the arguments of the command. The pairs of
numbers or pairs of characters which are arguments of some commands
can be separated by spaces and/or by a single comma, but the comma
is not required unless only the second number or second character of
the pair is supplied.
.skip
For example, a few of the many ways in which the command
.indent 5
_.FLAGS SPACE *
.break
could be specified are
.indent 5
_.FS* or .F S * or .FLS* or .FSP* or .FLSP* or .FL SP *
.break
.skip
Except for those commands in which the word or phrase can be
followed by the text which extends through the rightmost printing
character on the line, any command can be followed on the same line
by another command or by a semicolon which can be followed in turn
by whatever would have otherwise have appeared on the next line. If
2 commands are separated by a semicolon, then spaces can appear to
the left of the semicolon and to the right of the second period, but
cannot appear between the semicolon and the second period. If 2
commands appear on the same line but are not separated by a
semicolon, then spaces can appear between the first command and the
second period. A leading period or a command can be followed by an
exclamation point and then by a comment which extends through the
next semicolon on the same line or through the end of the line if a
semicolon does not appear on the same line to the right of the
exclamation point. A comment is not terminated by the appearance of
a period.
.skip
.test page 4
For example, the text
.left margin 5
.nofill
_.SKIP 2
_.CENTER
This is a Title
.fill
.left margin 0
.test page 6
could also be specified by any of the following single lines
.indent 5
_.SKIP 2.CENTER;This is a Title
.indent 5
_.SKIP 2;.CENTER;This is a Title
.break
or
.indent 5
_.SKIP 2!comment;.CENTER!comment;This is a Title
.skip
An underscore character can appear before any character, such as a
leading period in a noncommand line, or a semicolon, exclamation
point, comma or another underscore in a command line, which is to be
treated as an ordinary printing character.
.fill
.skip 2
.test page 6
.center
Case Notation for Alphabetic Letters
.center
---- -------- --- ---------- -------
.skip
This program can process text in which the letters A through Z are
already in the desired mixture of upper and lower cases (capital
letters and small letters, respectively), or in which the alphabetic
letters A through Z are all in one case with shift indications for
the other case.
.skip
An _.UPPER CASE command or 2 consecutive circumflexes anywhere in
the source text indicates that the cases of all subsequent
alphabetic letters which are not otherwise marked are to be
retained. An _.UPPER CASE command is considered to be in effect when
this program is started. A _.LOWER CASE command or 2 consecutive
back slashes anywhere in the source text indicates that all
subsequent alphabetic letters which are not otherwise marked are to
be converted to their lower case forms. Regardless of the overall
case setting, any single letter which is to be converted to its
upper case form can be preceded by a single circumflex, and any
single letter which is to be converted to its lower case form can be
preceded by a single back slash. If a _.FLAGS CAPITALIZE command has
been issued, then a less than sign can be used at the start of a
word to indicate that all of the following alphabetic letters are to
be converted to their upper case forms in the word which extends
either through the the last character on the line, or up to the next
space, or up to the next less than sign, whichever comes first. A
single underscore can precede any character, such as a circumflex or
a back slash or even another underscore, which is to be treated as a
nonalphabetic printing character. A space which is to be treated as
a nonalphabetic printing character can be indicated either by a
number sign or by a space which is preceded by an underscore. A
number sign which is to be kept as a number sign must be preceded by
a single underscore. Any of these flag characters can be changed or
temporarily disabled by commands in the source text.
.skip
If the source file contains only lower case letters, but both cases
are desired and can be processed by the FORTRAN compiler and
operating system, then, without any special action, all letters will
remain in their lower case forms except for those letters which
immediately follow a single circumflex or which are in words which
are preceded by a less than sign if a _.FLAGS CAPITALIZE command has
been issued.
.skip
If the source file contains only upper case letters, but both cases
are desired and can be processed by the FORTRAN compiler and
operating system, then the input file should contain a _.LOWER CASE
command or 2 consecutive back slashes so that subsequent letters
will be translated to their lower case forms except for those
letters which immediately follow a single circumflex or which follow
a single underscore or which are in words which are preceded by a
less than sign if a _.FLAGS CAPITALIZE command has been issued. If
there are sections of the source text which are to be kept primarily
in their original upper case forms, then these sections can be
preceded by an _.UPPER CASE command or by 2 consecutive
circumflexes, and then any individual letters which need to be
converted to their lower case forms can be preceded by single back
slashes.
.skip
For example, the source text
.skip
.nofill
.test page 8
_.preface       WRITE(1,$)
_.nofill.flags capitalize.output width 60.offset 0
_\_\_^ONLY THE FIRST LETTER IN THIS LINE REMAINS UPPER CASE.
<THE FIRST WORD IN THIS LINE WILL BE CAPITALIZED.
_^_^_^all but the first letter of this line remains lower case.
<the first word in this line will be capitalized.
Underscores precede ___^, ___\, __<, ___# or ____ which are kept.
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 8
      WRITE(1,1)
    1 FORMAT(43HOnly the first letter in this line remains ,
     111Hupper case./35HTHE first word in this line will be,
     213H capitalized./33HAll but the first letter of this ,
     324Hline remains lower case./22HTHE first word in this,
     426H line will be capitalized./20HUnderscores precede ,
     531H_^, _\, <, _# or __ which are kept.)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 5
Only the first letter in this line remains upper case.
THE first word in this line will be capitalized.
All but the first letter of this line remains lower case.
THE first word in this line will be capitalized.
Underscores precede _^, _\, <, _# or __ which are kept.
.fill
.skip 2
.test page 6
.left margin 0
.center
Short Descriptions of the Source Commands
.center
----- ------------ -- --- ------ --------
.left margin 5
.skip
.test page 5
.indent -5
_.BEGIN next statement number, statement number increment
.break
The following text is to be represented in a new FORMAT statement.
_.INSERT and _.PREFACE and _.PROGRAM commands are cancelled.
_.FORMAT is similar. _.BEGIN 1,1 is the default at the start of the
processing of the text.
.skip
.test page 3
.indent -5
_.BLANK number of extra blank lines to be generated
.break
The specified number of extra blank lines are to be represented in
the FORMAT statement. _.SKIP is similar.
.skip
.test page 4
.indent -5
_.BREAK
.break
No additional text is to be included in the line of text currently
being represented in the FORMAT statement. Blank lines requested by
_.BLANK or _.SKIP or implied by _.SPACING are not generated
immediately. Similar to _.EJECT which generates such blank lines
immediately.
.skip
.test page 4
.indent -5
_.CARRIAGE next carriage control character
.break
or
.indent -5
_.CARRIAGE next carriage control, subsequent carriage control
.break
The first specified character is to replace the space in the
leftmost column of the next line which is represented in the FORMAT
statements. If a second character is specified, it is to replace the
space in the leftmost column of each of the subsequent lines.
Opposite of _.NO CARRIAGE. _.NO CARRIAGE is the default.
.skip
.test page 7
.left margin 0
.nofill
_.CENTER width of region as unsigned number
_.CENTER offset from largest right margin as signed number
_.CENTRE width of region as unsigned number
     or
_.CENTRE offset from largest right margin as signed number
.fill
.left margin 5
.break
The following line of text is to be centered in the region given as
an unsigned number or in the region to the left of the sum of the
largest right margin plus the signed number. Except for the
insertion of the initial spaces, the line is to be represented with
the same number of spaces as in the original source.
.skip
.test page 2
.indent -5
_.COPY number of characters to copy, number of times to copy
.break
The indicated number of characters at the left end of each line
represented in the FORMAT statements, after the application of the
line of text specified by a _.MASK command if any, but before the
application of the character specified by the _.CARRIAGE command,
are to be copied the indicated number of additional times to the
right. Opposite of _.NO COPY. _.NO COPY is the default.
.skip
.test page 2
.indent -5
_.END OF FILE
.break
No additional text is to be processed.
.skip
.test page 4
.indent -5
_.EJECT
.break
No additional text is to be included in the line of text currently
being represented in the FORMAT statement. All blank lines which
have been requested by _.BLANK or _.SKIP or implied by _.SPACING are
generated immediately. Similar to _.BREAK which does not generate
such blank lines immediately.
.skip
.test page 5
.indent -5
_.FILL
.break
Multiple spaces are to be removed from the following text and words
are to be accumulated until the next word would extend beyond the
right margin. Opposite of _.NO FILL. _.FILL is the default.
.skip
.test page 4
.indent -5
_.FLAGS
.break
or
.indent -5
_.FLAGS ALL
.break
Most flag characters are enabled in the source text. Does not change
interpretation of flag characters specified by _.FLAGS FENCE,
_.FLAGS CONTROL and _.FLAGS REMARK commands. Opposite of _.NO FLAGS
ALL. _.FLAGS ALL is the default.
.skip
.test page 4
.indent -5
_.FLAGS CAPITALIZE character to precede capitalized words
.break
Words in which each letter is to be capitalized can be preceded by
the specified character. Less than sign is assumed if no character
follows the _.FLAGS CAPITALIZE command. Opposite of _.NO FLAGS
CAPITALIZE. _.NO FLAGS CAPITALIZE is the default.
.skip
.test page 4
.indent -5
_.FLAGS CONTROL character to precede commands
.break
Commands in the source file are indicated by having the specified
character in the first column. Opposite of _.NO FLAGS CONTROL.
_.FLAGS CONTROL ___. is the default.
.skip
.test page 4
.indent -5
_.FLAGS FENCE character to terminate and separate commands
.break
A command can be followed by the specified character and then by
whatever would have otherwise have appeared on the next line.
Opposite of _.NO FLAGS FENCE. _.FLAGS FENCE ___; is the default.
.skip
.test page 4
.indent -5
_.FLAGS INSERT character to indicate location of insertions
.break
The specified character can be used in program text to indicate the
locations at which statement numbers are to be inserted, and in text
being represented in the FORMAT statements to indicate the locations
at which output field descriptions as specified by the _.INSERT
command are to be inserted. Opposite of _.NO FLAGS INSERT. _.FLAGS
INSERT $ is the default.
.skip
.test page 4
.indent -5
_.FLAGS LOWER CASE character to precede lower case letters
.break
Letters in the source text which are to be translated into lower
case can each be preceded by a single appearance of the specified
character. Two adjacent appearances of this character are equivalent
to the _.LOWER CASE command. Opposite of _.NO FLAGS LOWER CASE.
_.FLAGS LOWER CASE ___\ is the default.
.skip
.test page 4
.indent -5
_.FLAGS QUOTE character to precede character to be used as is
.break
The specified character can precede any special character which is
to be treated as an ordinary character. Opposite of _.NO FLAGS
QUOTE. _.FLAGS QUOTE ____ is the default.
.skip
.test page 4
.indent -5
_.FLAGS REMARK character to separate commands from comments
.break
The specified character can precede a comment which appears to the
right of a command. Opposite of _.NO FLAGS REMARK. _.FLAGS REMARK
___! is the default.
.skip
.test page 4
.indent -5
_.FLAGS SPACE character to indicate a nonadjustable space
.break
The specified character can be used to represent a space which is to
be treated as a portion of a word rather than as a word boundary.
Opposite of _.NO FLAGS SPACE. _.FLAGS SPACE ___# is the default.
.skip
.test page 4
.indent -5
_.FLAGS UPPER CASE character to precede upper case letters
.break
Letters in the source text which are to be translated to upper case
can each be preceded by a single appearance of the specified
character. Two adjacent appearances of this character are equivalent
to the _.UPPER CASE command. Opposite of _.NO FLAGS UPPER CASE.
_.FLAGS UPPER CASE ___^ is the default.
.skip
.test page 4
.indent -5
_.FORMAT next statement number, statement number increment
.break
The following text is to be represented in a new FORMAT statement.
_.INSERT and _.PREFACE commands are retained. _.PROGRAM command is
cancelled. _.BEGIN is similar.
.skip
.test page 3
.indent -5
_.INDENT number of extra spaces to insert beyond left margin
.break
The following line of text is to be indented from the left margin by
the indicated number of spaces.
.skip
.test page 4
.indent -5
_.INPUT WIDTH maximum number of characters in any input line
.break
Only the indicated number of characters in each line in the input
file are to be read and processed. Maximum width is 300. _.INPUT
WIDTH 132 is the default.
.skip
.test page 3
.indent -5
_.INSERT output field specification to replace next $ signs
.break
The characters appearing to the right of the _.INSERT command form
an output field specification which is to replace the next group of
contiguous dollar signs. All unused groups of characters are
discarded if either a _.NO INSERT or a _.BEGIN command is issued.
.skip
.test page 5
.indent -5
_.JUSTIFY
.break
Extra spaces are to be inserted between the words in fill mode to
cause the lines to be flush with both the left and right margins.
Opposite of _.NO JUSTIFY. _.JUSTIFY is the default.
.skip
.test page 4
.indent -5
_.LEADING
.break
The FORMAT statements are to include initial blank lines requested
by _.BLANK and _.SKIP commands which appear before the text which is
to be represented. Opposite of _.NO LEADING. _.NO LEADING is the
default.
.skip
.test page 4
.indent -5
_.LEFT MARGIN number of spaces to left of text
.break
The following text is to begin in the column to the right of the
indicated column. _.LEFT MARGIN 0 is the default.
.skip
.test page 3
.indent -5
_.LENGTH maximum number of lines in each FORMAT statement
.break
FORMAT statements can be constructed from no more than the indicated
number of FORTRAN language lines. _.LENGTH 20 is the default, but
this program does not impose any upper limit upon this maximum.
.skip
.test page 5
.indent -5
_.LOWER CASE
.break
Upper case letters on the following lines are to be translated to
lower case unless preceded by circumflexes or underscores or, if in
flag capitalize mode, unless in words which are preceded by less
than signs. Equivalent to appearance of 2 back slashes. Opposite of
_.UPPER CASE which is the default.
.skip
.test page 4
.indent -5
_.MASK text to be superimposed onto each output line
.break
The printing characters appearing to the right of the _.MASK command
are to be superimposed onto each line of text which is represented
in the FORMAT statements. The _.MASK command is cancelled by a _.NO
MASK command. _.NO MASK is the default.
.skip
.test page 4
.indent -5
_.NO CARRIAGE
.break
No special character is to replace the space in the leftmost column
of each line which is represented in the FORMAT statements. Opposite
of _.CARRIAGE. _.NO CARRIAGE is the default.
.skip
.test page 5
.indent -5
_.NO COPY
.break
The characters in each line represented in the FORMAT statements are
not to be copied additional times to the right. Opposite of _.COPY.
_.NO COPY is the default.
.skip
.test page 7
.indent -5
_.NO FILL
.break
Except for the insertion of initial spaces required for the left
margin and indentation, and except for case conversions and removal
of underscores, each of the following lines of source text is to be
regenerated exactly when the resulting FORMAT statements are used.
Opposite of _.FILL. _.FILL is the default.
.skip
.test page 4
.indent -5
_.NO FLAGS
.break
or
.indent -5
_.NO FLAGS ALL
.break
Most flag characters are disabled in the source text. Does not
change interpretation of flag characters specified by _.FLAGS FENCE,
_.FLAGS CONTROL and _.FLAGS REMARK commands. Opposite of _.FLAGS
ALL. _.FLAGS ALL is the default.
.skip
.test page 4
.indent -5
_.NO FLAGS CAPITALIZE
.break
No special character can be used to indicate words in which each
letter is to be capitalized. Opposite of _.FLAGS CAPITALIZE. _.NO
FLAGS CAPITALIZE is the default.
.skip
.test page 4
.indent -5
_.NO FLAGS CONTROL
.break
Commands cannot be included in the source text. Opposite of _.FLAGS
CONTROL. _.FLAGS CONTROL ___. is the default.
.skip
.test page 4
.indent -5
_.NO FLAGS FENCE
.break
No special character can follow a command to indicate that the text
to its right is to be treated as though this text appeared on the
next line. Opposite of _.FLAGS FENCE. _.FLAGS FENCE ___; is the
default.
.skip
.test page 4
.indent -5
_.NO FLAGS INSERT
.break
No special character can be used in program text to indicate the
locations at which statement numbers are to be inserted, and in text
being represented in the FORMAT statements to indicate the locations
at which output field descriptions as specified by the _.INSERT
command are to be inserted. Opposite of _.FLAGS INSERT. _.FLAGS
INSERT $ is the default.
.skip
.test page 4
.indent -5
_.NO FLAGS LOWER CASE
.break
No special character can be used to indicate single letters which
are to be translated into lower case. Opposite of _.FLAGS LOWER
CASE. _.FLAGS LOWER CASE ___\ is the default.
.skip
.test page 4
.indent -5
_.NO FLAGS QUOTE
.break
No special character can precede any special character which is to
be treated as an ordinary printing character. Opposite of _.FLAGS
QUOTE. _.FLAGS QUOTE ____ is the default.
.skip
.test page 4
.indent -5
_.NO FLAGS REMARK
.break
A comment cannot appear to the right of a command. Opposite of
_.FLAGS REMARK. _.FLAGS REMARK ___! is the default.
.skip
.test page 4
.indent -5
_.NO FLAGS SPACE
.break
No special character can be used to represent a space which is to be
treated as a portion of a word rather than as a word boundary.
Opposite of _.FLAGS SPACE. _.FLAGS SPACE ___# is the default.
.skip
.test page 4
.indent -5
_.NO FLAGS UPPER CASE
.break
No special character can be used to indicate single letters which
are to be translated into upper case. Opposite of _.FLAGS UPPER
CASE. _.FLAGS UPPER CASE ___^ is the default.
.skip
.test page 3
.indent -5
_.NO INSERT
.break
All unused groups of characters specified by _.INSERT commands are
to be discarded.
.skip
.test page 3
.indent -5
_.NO JUSTIFY
.break
Extra spaces are not to be inserted between the words in fill mode.
Opposite of _.JUSTIFY. _.JUSTIFY is the default.
.skip
.test page 6
.indent -5
_.NO LEADING
.break
The FORMAT statements are to exclude initial blank lines requested
by _.BLANK and _.SKIP commands which appear before the text which is
to be represented. Opposite of _.LEADING. _.NO LEADING is the default.
.skip
.test page 6
.indent -5
_.NO MASK
.break
No line of text is to be superimposed onto each line which is
represented in the FORMAT statements. Opposite of _.MASK. _.NO MASK
is the default.
.skip
.test page 6
.indent -5
_.NO OFFSET
.break
No spaces are to be inserted at the left edge of each line in
addition to the normal left margin and indentation. Equivalent to
_.OFFSET 0. _.OFFSET 1 is the default.
.skip
.test page 6
.indent -5
_.NO PREFACE
.break
No line of text is to be inserted before each FORMAT statement.
Opposite of _.PREFACE. _.NO PREFACE is the default.
.skip
.test page 6
.indent -5
_.NO TRAILING
.break
Blank lines requested after the preceding text by _.BLANK or _.SKIP
commands or which are necessary for multiple line spacing are
discarded before _.BEGIN commands or when the end of the source file
is read. Opposite of _.TRAILING. _.NO TRAILING is the default.
.skip
.test page 4
.indent -5
_.OFFSET number of spaces to be inserted at left edge of text
.break
The indicated number of spaces is inserted at the left edge of each
line in addition to the normal left margin and indentation. _.OFFSET
0 is equivalent to _.NO OFFSET. _.OFFSET 1 is the default.
.skip
.test page 4
.indent -5
_.OUTPUT WIDTH most characters in each FORMAT statement line
.break
Each FORTRAN language line from which the FORMAT statements are
constructed can contain no more than the indicated number of
characters. Maximum is 72. _.OUTPUT WIDTH 72 is the default.
.skip
.test page 12
.indent -5
_.PARAGRAPH columns to indent, multiple of line spacing
.break
or
.indent -5
_.PARAGRAPH columns to indent, -1 times number of blank lines
.break
The next line of text is to be indented from the left margin by the
number of spaces indicated by the first argument. If the second
argument is greater than or equal to zero, then this times the
number most recently specified by a _.SPACING command is to be the
number of extra blank lines which are to precede the next line of
text. If the second argument is less than zero, then this without
its sign is the number of extra blank lines which are to precede the
next line of text.
.skip
.test page 4
.indent -5
_.PREFACE line of text to precede each new FORMAT statement
.break
The characters which appear to the right of the _.PREFACE command
are to be copied into the output file before each FORMAT statement.
The _.PREFACE command is cancelled either by a _.NO PREFACE or by a
_.BEGIN command. _.NO PREFACE is the default.
.skip
.test page 4
.indent -5
_.PROGRAM next statement number, statement number increment
.break
The following text, through the next _.BEGIN or _.FORMAT command, is
to be copied unchanged into the output file without being
represented in FORMAT statements.
.skip
.test page 3
.indent -5
_.RESET
.break
All variable conditions are to be returned to their initial settings.
.skip
.test page 4
.indent -5
_.RIGHT MARGIN rightmost column into which text is wrapped
.break
If in fill mode, words are wrapped around until the next word would
extend beyond the indicated column. _.RIGHT MARGIN 60 is the default.
.skip
.test page 5
.indent -5
_.SKIP multiple of extra line spacings to be generated
.break
A number of extra blank lines equal to the specified multiple of the
number which appeared to the right of the previous _.SPACING command
are to be represented in the FORMAT statement. _.BLANK is similar.
.skip
.test page 4
.indent -5
_.SPACING separation from top of one line to top of next line
.break
One less than the indicated number of blank lines are to be inserted
between the lines of text. _.SPACING 1 giving single spacing is the
default.
.skip
.test page 6
.indent -5
_.TRAILING
.break
Blank lines requested after the preceding text by _.BLANK or _.SKIP
commands or which are necessary for multiple line spacing are
generated before _.BEGIN commands or when the end of the source file
is read. Opposite of _.NO TRAILING. _.NO TRAILING is the default.
.skip
.test page 4
.indent -5
_.UPPER CASE
.break
The cases of letters on the following lines are to be retained.
Equivalent to appearance of 2 circumflexes. Opposite of _.LOWER
CASE. _.UPPER CASE is the default.
.skip
.test page 5
.indent -5
_.USE character implying text representation notation
.break
Hollerith (number H) notation is used to represent text in FORMAT
statements if the following character is an H. Apostrophe or
asterisk notation is used if the character is an apostrophe or an
asterisk respectively. _.USE H is the default.
.left margin 0
.left margin 0
.nofill
.page
If BREAK Implied, Argument Type and Corresponding NO Command
-- ----- -------##-------- ---- --- ------------- -- -------
.skip
              If .BREAK   Argument      Corresponding
                Implied   Type          NO Command
.skip
_.BEGIN              yes   2 numbers
_.BLANK              yes   1 number
_.BREAK              yes   none
_.CARRIAGE           no    2 characters  .NO CARRIAGE
_.CENTER or .CENTRE  yes   1 number
_.COPY               yes   2 numbers     .NO COPY
_.END OF FILE        yes   none
_.EJECT              yes   none
_.FILL               yes   none          .NO FILL
_.FLAGS ALL          no    none          .NO FLAGS ALL
_.FLAGS CAPITALIZE   no    1 character   .NO FLAGS CAPITALIZE
_.FLAGS CONTROL      no    1 character   .NO FLAGS CONTROL
_.FLAGS FENCE        no    1 character   .NO FLAGS FENCE
_.FLAGS INSERT       no    1 character   .NO FLAGS INSERT
_.FLAGS LOWER CASE   no    1 character   .NO FLAGS LOWER CASE
_.FLAGS QUOTE        no    1 character   .NO FLAGS QUOTE
_.FLAGS REMARK       no    1 character   .NO FLAGS REMARK
_.FLAGS SPACE        no    1 character   .NO FLAGS SPACE
_.FLAGS UPPER CASE   no    1 character   .NO FLAGS UPPER CASE
_.FORMAT             yes   2 numbers
_.INDENT             yes   1 number
_.INPUT WIDTH        no    1 number
_.INSERT             no    text          .NO INSERT
_.JUSTIFY            yes   none          .NO JUSTIFY
_.LEADING            no    none          .NO LEADING
_.LEFT MARGIN        yes   1 number
_.LENGTH             no    1 number
_.LOWER CASE         no    none
_.MASK               no    text          .NO MASK
_.OFFSET             yes   1 number      .NO OFFSET
_.OUTPUT WIDTH       no    1 number
_.PARAGRAPH          yes   2 numbers
_.PREFACE            no    text          .NO PREFACE
_.PROGRAM            yes   2 numbers
_.RESET              yes   none
_.RIGHT MARGIN       yes   1 number
_.SKIP               yes   1 number
_.SPACING            yes   1 number
_.TRAILING           no    none          .NO TRAILING
_.UPPER CASE         no    none
_.USE                no    1 character
.left margin 0
.page
.fill
.center
Detailed Descriptions of the Source Commands
.center
-------- ------------ -- --- ------ --------
.skip
.left margin 5
.indent -5
_.BEGIN next statement number, statement number increment
.skip
The _.BEGIN command indicates that no additional text is to be
represented by the FORMAT statement currently being constructed and
that the text appearing in subsequent lines in the source file is to
be represented in a new FORMAT statement. The preface line, if any,
indicated by a previous _.PREFACE command and all unused output
field descriptions previously specified by _.INSERT commands will be
discarded. If the _.BEGIN command is issued within the range of a
_.PROGRAM command, then the range of the _.PROGRAM command is
terminated. Blank lines which have not yet been generated, but which
have been requested by _.SKIP or _.BLANK commands or which are
necessary for multiple line spacing, will be appended to the FORMAT
statement currently being constructed if a _.TRAILING command is in
effect. Such trailing blank lines will be discarded before the new
FORMAT statement is begun if a _.NO TRAILING command is in effect or
if a _.TRAILING command has not been issued. If the _.BEGIN command
is followed by _.SKIP or _.BLANK commands before the next text which
is to be represented in the FORMAT statements, then these leading
blank lines will be represented only if a _.LEADING command is in
effect. Such leading blank lines are discarded if a _.NO LEADING
command is in effect or if a _.LEADING command has not been issued.
The _.BEGIN command is identical to the _.FORMAT command, except
that a _.FORMAT command would retain the previously specified
preface line and all previously specified but unused field
descriptions, and, providing that there is additional text to be
represented, a _.FORMAT command would represent all blank lines
which have not yet been generated.
.skip
The numbers which can follow the _.BEGIN command are identical to
those which can follow the _.FORMAT and _.PROGRAM commands. The
first number which can follow any of these commands modifies the
statement number of the next FORMAT statement. The second number
which can follow any of these commands becomes the statement number
increment after the generation of the next FORMAT statement. The
description of the _.FORMAT command describes the interpretation of
these numbers in detail. If the statement number of the FORMAT
statement following a section of program text indicated by an
initial _.PROGRAM command is to be modified, but the program text
includes dollar signs which are to be replaced by this statement
number, then this statement number should be modified by the
_.PROGRAM command rather than by the following _.BEGIN or _.FORMAT
command, since, if the modification is done by the _.BEGIN or
_.FORMAT command, then incorrect statement numbers will have been
inserted into the program text.
.skip
.test page 18
For example, the source text
.skip
.nofill
_.spacing 2.output width 55
_.begin 10,10;.preface       WRITE(1,$)
_.insert I2
_.insert F2
The quick red fox jumps $$ feet over the lazy brown dog
_.begin
The quick red fox jumps $$ feet over the lazy brown dog
_.skip;.begin +100.preface       WRITE(1,$)
_.insert I2
_.insert F2
_.insert A2
The quick red fox jumps $$ feet over the lazy brown dog
_.format,5
The quick red fox jumps $$ feet over the lazy brown dog
_.skip;.format
The quick red fox jumps $$ feet over the lazy brown dog
.skip
.fill
.test page 17
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
      WRITE(1,10)
   10 FORMAT(25H The quick red fox jumps ,I2,7H feet o,
     122Hver the lazy brown dog)
   20 FORMAT(25H The quick red fox jumps ,9H feet ove,
     120Hr the lazy brown dog)
      WRITE(1,120)
  120 FORMAT(25H The quick red fox jumps ,I2,7H feet o,
     122Hver the lazy brown dog)
      WRITE(1,130)
  130 FORMAT(/25H The quick red fox jumps ,F2,6H feet ,
     123Hover the lazy brown dog)
      WRITE(1,135)
  135 FORMAT(///25H The quick red fox jumps ,A2,4H fee,
     125Ht over the lazy brown dog)
.fill
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.BLANK number of extra blank lines to be generated
.skip
The _.BLANK command indicates that, after the representation in the
FORMAT statement of the previous text, the specified number of blank
lines are to be represented in the FORMAT statement, in addition to
any blank lines specified by other _.BLANK or _.SKIP commands, and,
if a _.SPACING command has been issued, in addition to the normal
line spacing of one less than the number which appeared to the right
of the previous _.SPACING command. If no number appears to the right
of the _.BLANK command, then the number 1 is assumed to appear to
the right of the _.BLANK command instead. If a _.SPACING 2 command
is in effect, then a _.BLANK 3 command would result in 3+(2-1) or 4
blank lines being generated. The _.BLANK command is similar to the
_.SKIP command, except that the _.SKIP command specifies the number
of extra blank lines as a multiple of the number which appeared to
the right of the previous _.SPACING command. The _.BLANK command
implies a _.BREAK command.
.skip
If no text has been represented in the FORMAT statements either
since this program was started or since the last _.BEGIN command was
issued, then the _.BLANK command, like the _.SKIP command and the
_.BLANK or _.SKIP command implied by the _.PARAGRAPH command, is
ignored unless a _.LEADING command is in effect. Blank lines which
have not been generated when the end of the source file is read or
when the next _.BEGIN command is issued, but which have been
requested by _.BLANK or _.SKIP commands or which are necessary for
the normal line spacing, will be appended to the FORMAT statement
being constructed if a _.TRAIL command is then in effect. Blank
lines will be discarded when the end of the source file is read or
the next _.BEGIN command is issued if a _.NO TRAIL command is then
in effect or if a _.TRAIL command has not by then been issued.
.skip
.test page 15
For example, the source text
.skip
.nofill
_.spacing 2.output width 55
_.blank
The quick red fox jumps over the lazy brown dog,
then runs into the forest.
_.blank
The quick red fox jumps over the lazy brown dog,
then runs into the forest.
_.blank 2
The quick red fox jumps over the lazy brown dog,
then runs into the forest.
_.blank 3
The quick red fox jumps over the lazy brown dog,
then runs into the forest.
.skip
.fill
.test page 11
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
    1 FORMAT(38H The quick red fox jumps over the lazy,
     123H brown dog,  then  runs//17H into the forest./
     2//43H The quick red fox jumps over the lazy brow,
     318Hn dog,  then  runs//17H into the forest.////
     445H The quick red fox jumps over the lazy brown ,
     516Hdog,  then  runs//17H into the forest./////
     645H The quick red fox jumps over the lazy brown ,
     716Hdog,  then  runs//17H into the forest.)
.fill
.skip 2
.left margin 5
.test page 6
.fill
.indent -5
_.BREAK
.skip
The _.BREAK command indicates that no additional text is to be
included in the line of text currently being represented in the
FORMAT statement. The line of text is assumed to be shorter than
normal, and so is not right justified by the insertion of extra
spaces between the groups of printing characters (words) on the
line. The _.BREAK command is similar to the _.EJECT command with the
exception that blank lines requested by _.BLANK commands or _.SKIP
commands or implied by _.SPACING commands are not generated
immediately when the _.BREAK command is issued if no printing
characters have been accumulated into the current line of text. The
representation of the line of text will be followed by a number of
blank lines equal to one less than the number which followed the
previous _.SPACING command if the _.TRAIL command has been issued or
if additional text is represented. A _.BREAK command is also implied
by most other commands which change the manner in which the source
text is represented.
.skip
.test page 11
For example, the source text
.skip
.nofill
_.output width 55.spacing 2
one
two three
_.break
four five six
seven eight nine ten
_.break
eleven twelve thirteen fourteen fifteen
sixteen seventeen eighteen nineteen twenty twenty-one
.skip
.fill
.test page 7
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
    1 FORMAT(14H one two three//19H four five six seve,
     116Hn eight nine ten//24H eleven twelve thirteen ,
     237Hfourteen  fifteen  sixteen  seventeen//4H eig,
     332Hhteen nineteen twenty twenty-one)
.fill
.skip 2
.left margin 5
.fill
.test page 8
.indent -5
_.CARRIAGE next carriage control character
.break
or
.indent -5
_.CARRIAGE next carriage control, subsequent carriage control
.skip
The first character in each line of text which is generated when the
resulting FORMAT statements are used can be interpreted by the
FORTRAN operating system to select the carriage motion on the output
device to which the text is written. The _.CARRIAGE command allows
the specification of these carriage control characters. If a
_.CARRIAGE command has not been issued, or if a _.CARRIAGE command
is issued without any following characters, or if a _.NO CARRIAGE
command is issued, then the leftmost character in each of the
subsequent lines of text which are being represented in the FORMAT
statements will be a space if a positive offset has been selected by
the combination of _.OFFSET, _.LEFT MARGIN and _.INDENT or
_.PARAGRAPH commands, and completely blank lines will be represented
in the FORMAT statements by consecutive slashes.
.skip
If the _.CARRIAGE command is followed by a printing character, or is
followed by a pair of printing characters optionally separated by
spaces and/or separated by a single comma, then the first character
following the _.CARRIAGE command is to replace the leftmost
character in the next line of text which is represented in the
resulting FORMAT statements, providing that the character which is
to be replaced is a space which was not quoted by an underscore and
was not specified by a number sign. If the next line of text which
is represented in the resulting FORMAT statements is a blank line,
regardless of whether this blank line has been requested by a
_.BLANK command or a _.SKIP command or has been implied by a
_.SPACING command or was encountered in text being copied in no fill
mode, then the line will contain only the character specified by the
_.CARRIAGE command. In order for a space, number sign, circumflex,
back slash, less than sign (if in flag capitalize mode), period,
comma, semicolon, exclamation point or underscore to be specified by
the _.CARRIAGE command as the carriage control character, this
character would have to be preceded by an underscore.
.skip
If a second printing character follows the _.CARRIAGE command, then,
after the next line of text has been generated, this second printing
character is to replace the leftmost character in each of the
subsequent lines of text, providing that the character which is to
be replaced is a space which was not quoted by an underscore and was
not specified by a number sign. If a printing character does not
appear between the _.CARRIAGE command and the following comma, then
the character following the comma is considered to have also
preceded the comma. Neither the _.CARRIAGE command nor the _.NO
CARRIAGE command implies a _.BREAK command. A _.BREAK command, or
some other command which implies a _.BREAK command, should usually
be issued before the _.CARRIAGE command since, if the lines of text
are being constructed in fill mode, the carriage control character
is applied to the current line of text only after this line of text
has otherwise been completed.
.skip
For example, the source text
.skip
.nofill
.test page 14
_.spacing 2.right margin 54.output width 55.paragraph
_.carriage 1*.preface       WRITE(1,$)
This is the first line in the demonstration of the
insertion of the carriage control character.
_.eject.carriage 1_#.paragraph
This is the second line in the demonstration of the
insertion of the carriage control character.
_.eject.carriage 1.paragraph
This is the third line in the demonstration of the
insertion of the carriage control character.
_.eject.no carriage.paragraph
This is the fourth line in the demonstration of the
insertion of the carriage control character.
_.eject.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 13
      WRITE(1,1)
    1 FORMAT(38H1     This is the first line in  the  ,
     117Hdemonstration  of/1H*/20H*the insertion of th,
     229He carriage control character./1H*/1H1/6X,2HTh,
     345His is the second line in the  demonstration  ,
     42Hof/1X/37H the insertion of the carriage contro,
     512Hl character./1X/1H1/6X,19HThis is the third l,
     630Hine in  the  demonstration  of//10H the inser,
     739Htion of the carriage control character.///6X,
     845HThis is the fourth line in the  demonstration,
     94H  of//37H the insertion of the carriage contro,
     112Hl character./)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 18
1     This is the first line in  the  demonstration  of
*
*the insertion of the carriage control character.
*
1
      This is the second line in the  demonstration  of
.skip
 the insertion of the carriage control character.
.skip
1
      This is the third line in  the  demonstration  of
.skip
 the insertion of the carriage control character.
.skip
.skip
      This is the fourth line in the  demonstration  of
.skip
 the insertion of the carriage control character.
.fill
.skip 2
.left margin 0
.test page 10
.nofill
_.CENTER width of region as unsigned number
_.CENTER offset from largest right margin as signed number
_.CENTRE width of region as unsigned number
     or
_.CENTRE offset from largest right margin as signed number
.fill
.left margin 5
.skip
The _.CENTER command indicates that the following line of source
text is to be centered and, except for the insertion of the initial
spaces needed to obtain centering, is to be represented in the
FORMAT statement with the same number of spaces as in the original
source. If no number follows the _.CENTER command, then the
following line is to be centered between column zero and the
farthest right margin which has yet been set. If the number
following the _.CENTER command is signed, then the following line is
to be centered between column zero and the column which is the sum
of the indicated number and the farthest right margin which has yet
been set, so that the line is shifted from its centered position by
half the signed number of columns. If the number following the
_.CENTER command is unsigned and greater than zero, then the
following line of text is to be centered between column zero and the
indicated column. If the number following the _.CENTER command is
unsigned and zero, then the following line is to be centered between
the current left and right margins. If the _.CENTER command was
preceded by an _.INDENT command, then the _.INDENT command is
ignored. The _.CENTER command implies a _.BREAK command both before
and after the following line of source text.
.skip
.test page 20
For example, the source text
.skip
.nofill
_.OFFSET 0;.OUTPUT WIDTH 55;.PREFACE       WRITE(1,$)
1234567890123456789012345678901234567890123456789012345
_.LEFT MARGIN 14;.RIGHT MARGIN 34
The quick red fox jumps over the lazy brown dog
_.CENTER 0;CENTER   0
_.CENTER 52;CENTER  52
_.CENTER -4;CENTER  -4
_.CENTER;CENTER   _#
_.CENTER;CENTER
_.CENTER;    CENTER
_.CENTER +12;CENTER +12
_.CENTER 76;CENTER  76
_.LEFT MARGIN 30;.RIGHT MARGIN 50;.CENTER 0
CENTER   0
The quick red fox jumps over the lazy brown dog
_.LEFT MARGIN 0
1234567890123456789012345678901234567890123456789012345
_.PROGRAM;      END
.skip
.fill
.test page 15
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
      WRITE(1,1)
    1 FORMAT(38H12345678901234567890123456789012345678,
     117H90123456789012345/14X,20HThe  quick  red  fox/
     214X,20Hjumps  over the lazy/14X,9Hbrown dog/19X,
     310HCENTER   0/21X,10HCENTER  52/23X,9HCENTER  -,
     41H4/25X,6HCENTER,4X/27X,6HCENTER/29X,6HCENTER/9X,
     522X,10HCENTER +12/33X,10HCENTER  76/35X,6HCENTER,
     63X,1H0/30X,20HThe  quick  red  fox/30X,7Hjumps  ,
     713Hover the lazy/30X,9Hbrown dog/12H123456789012,
     843H3456789012345678901234567890123456789012345)
      END
.skip
.fill
.test page 20
which would, in turn, generate the following text when run.
.skip
.nofill
1234567890123456789012345678901234567890123456789012345
              The  quick  red  fox
              jumps  over the lazy
              brown dog
                   CENTER   0
                     CENTER  52
                       CENTER  -4
                         CENTER
                           CENTER
                             CENTER
                               CENTER +12
                                 CENTER  76
                                   CENTER   0
                              The  quick  red  fox
                              jumps  over the lazy
                              brown dog
1234567890123456789012345678901234567890123456789012345
.fill
.skip 2
.fill
.left margin 5
.test page 6
.indent -5
_.COPY number of characters to copy, number of times to copy
.skip
The _.COPY command indicates that, to the immediate right of the
initial offset in each line of text which is copied in no fill mode
or which is constructed in fill mode, the number of characters
indicated by the first number is to be duplicated the number of
times indicated by the second number. The initial spaces requested
either by the _.OFFSET command or by the default _.OFFSET 1 command
cannot be duplicated and are not included in the character count.
The carriage control character specified by the _.CARRIAGE command
is not duplicated even if the initial offset is zero. If the _.MASK
command has specified a template line, then the same replacements of
nonquoted spaces are also made in the copies. If the line which is
being copied contains dollar signs which are being replaced by
output field specifications specified by the _.INSERT command, then
it is the dollar signs which are counted to determine the width of
the region being copied, not the characters inserted in place of the
dollar signs, and the same insertions are also made in the copies.
If the first number following the _.COPY command is less than the
number of characters to the right of the initial offset, including
the template characters which might have been defined by the _.MASK
command, then all of the characters to the right of the initial
offset will be copied. If the first number is greater than the
number of characters to the right of the initial offset then extra
spaces at the right will also be copied. The range of the _.COPY
command can be cancelled by a subsequent _.NO COPY command. A _.COPY
command issued within the range of a _.PROGRAM command applies to
the source text following the next _.BEGIN or _.FORMAT command. Both
the _.COPY command and the _.NO COPY command imply a _.BREAK command.
.skip
For example, the source text
.skip
.nofill
.test page 6
_.insert 5H01234
_.insert 5H56789
_.insert 6H111111
_.insert 6H222222
_.insert 6HPUBLIC
_.insert 6HSECRET
_.preface       WRITE(1,$)
_.offset 2.copy 29,1.output width 55.carriage 1,*
************************
_.left margin 2.right margin 22
_.mask *                      *
_.skip.center 0;Corporation: $$$$$
_.center 0;       Firm: $$$$$
_.skip;To gain initial access to the computer, you will
use the numbers $$$$$$ and $$$$$$ and password $$$$$$.
To run the programs, you will use the  password $$$$$$.
_.skip.left margin 0;************************
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 6
      WRITE(1,1)
    1 FORMAT(38H1 ************************     *******,
     117H*****************/3H* *,22X,7H*     *,22X,1H*/
     218H* *  Corporation: ,5H01234,15H  *     *  Corp,
     39Horation: ,5H01234,3H  */3H* *,9X,6HFirm: ,
     45H56789,9H  *     *,9X,6HFirm: ,5H56789,3H  */
     53H* *,22X,7H*     *,22X,1H*/17H* * To   gain    ,
     638Hinitial *     * To   gain    initial */4H* * ,
     745Haccess     to    the *     * access     to   ,
     86H the */36H* * computer,  you  will *     * com,
     919Hputer,  you  will */22H* * use    the   numbe,
     133Hrs *     * use    the   numbers */4H* * ,
     26H111111,8H  and   ,6H222222,9H *     * ,
     36H111111,8H  and   ,6H222222,2H */11H* * and pas,
     46Hsword ,6HPUBLIC,23H. *     * and password ,
     56HPUBLIC,3H. */30H* * To run the programs, *    ,
     625H * To run the programs, */16H* * you   will  ,
     739Huse  the *     * you   will  use  the */3H* *,
     810H password ,6HSECRET,22H.     *     * password,
     91H ,6HSECRET,7H.     */3H* *,22X,7H*     *,22X,
     11H*)
      WRITE(1,2)
    2 FORMAT(38H* ************************     *******,
     117H*****************)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.test page 16
.nofill
1 ************************     ************************
* *                      *     *                      *
* *  Corporation: 01234  *     *  Corporation: 01234  *
* *         Firm: 56789  *     *         Firm: 56789  *
* *                      *     *                      *
* * To   gain    initial *     * To   gain    initial *
* * access     to    the *     * access     to    the *
* * computer,  you  will *     * computer,  you  will *
* * use    the   numbers *     * use    the   numbers *
* * 111111  and   222222 *     * 111111  and   222222 *
* * and password PUBLIC. *     * and password PUBLIC. *
* * To run the programs, *     * To run the programs, *
* * you   will  use  the *     * you   will  use  the *
* * password SECRET.     *     * password SECRET.     *
* *                      *     *                      *
* ************************     ************************
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.END OF FILE
.skip
The _.END OF FILE command indicates that the processing of the
source text is complete. Any additional commands or additional text
appearing on the same line to the right of the _.END OF FILE command
are ignored. No additional source text is read. Blank lines which
have not yet been generated, but which have been requested by _.SKIP
or _.BLANK commands or which are necessary for multiple line
spacing, will be appended to the FORMAT statement currently being
constructed if a _.TRAIL command is in effect. Blank lines will be
discarded if a _.NO TRAIL command is in effect or if a _.TRAIL
command has not been issued. An _.END OF FILE command is necessary
at the end of the source file only if the system where this program
is being used does not support end of file tests in FORTRAN READ
statements.
.skip 2
.test page 6
.fill
.left margin 5
.indent -5
_.EJECT
.skip
The _.EJECT command indicates that no additional text is to be
included in the line of text currently being represented in the
FORMAT statement. The line of text is assumed to be shorter than
normal, and so is not right justified by the insertion of extra
spaces between the groups of printing characters (words) on the
line. The _.EJECT command is similar to the _.BREAK command with the
exception that all blank lines requested by _.BLANK commands or
_.SKIP commands or implied by _.SPACING commands will be generated
immediately when the _.EJECT command is issued even if no printing
characters have been accumulated into the current line of text. The
_.EJECT command can be issued before a _.CARRIAGE command to prevent
the newly specified carriage control character from being inserted
into the start of the lines which have been specified but not yet
forced into the FORMAT statement.
.skip
For example, the source text
.skip
.nofill
.test page 7
one
_.skip 2
_.carriage *,*
two
_.skip 2
_.eject
_.carriage @,@
three
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
    1 FORMAT(4H one/1H*/1H*/4H*two/1H*/1H*/6H@three)
.fill
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.FILL
.skip
The _.FILL command indicates that each line of text represented in
the FORMAT statements is to be filled with the next words which
appear in the source text until the following word would extend
beyond the current right margin. If the first word is wider than the
current separation between the left and right margins, then the
entire word is fitted onto the current line. A _.FILL command
terminates the range of the previous _.NO FILL command which would
have caused each line of text represented in the resulting FORMAT
statements to contain the same number of words per line and the same
number of spaces preceding and between words as in the source text.
A _.FILL command is assumed to be in effect when this program is
started. A _.FILL command issued within the range of a _.PROGRAM
command applies to the source text following the next _.BEGIN or
_.FORMAT command. The _.FILL command implies a _.BREAK command.
.skip
Within the range of the _.FILL command, a space separates adjacent
words which appear on the same line of text represented in the
FORMAT statements, regardless of whether these words appeared on
separate lines of the source text or appeared on the same line
separated by additional spaces. A second space follows each colon,
semicolon, exclamation point, question mark and period which is not
preceded by an underscore character but which is followed by another
word. If a _.NO JUSTIFY command has not been issued, or if a
_.JUSTIFY command has been issued more recently than a _.NO JUSTIFY
command, then additional spaces are inserted between the words to
cause the line of text to extend to the current right margin,
providing that a _.BREAK command does not follow and is not implied
to follow the rightmost word on the line.
.skip
.test page 18
For example, the source text
.skip
.nofill
_.FILL.OFFSET 0.RIGHT MARGIN 55.OUTPUT WIDTH 55
_.PREFACE       WRITE(1,$)
     The                    FILL                command
        indicates           that                each
           line             of               text
              represented   in             the
                 FORMAT     statements   is
                    to      be    filled
_.NO JUSTIFY;           with the  next
                    words   which appear
                 in         the      source
              text          until          the
           following        word            would
_.NOFILL;extend              beyond               the
     current                right               margin.
_.PROGRAM;      END
.skip
.fill
.test page 12
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
      WRITE(1,1)
    1 FORMAT(38HThe FILL command  indicates  that  eac,
     117Hh  line  of  text/24Hrepresented in the FORMA,
     228HT statements is to be filled/13Hwith the next,
     338H words which appear in the source text/4Hunti,
     426Hl the following word would/6Hextend,14X,3Hbey,
     53Hond,15X,3Hthe/5X,7Hcurrent,16X,5Hright,15X,1Hm,
     66Hargin.)
      END
.skip
.fill
.test page 9
which would, in turn, generate the following text when run.
.skip
.nofill
The FILL command  indicates  that  each  line  of  text
represented in the FORMAT statements is to be filled
with the next words which appear in the source text
until the following word would
extend              beyond               the
     current                right               margin.
.fill
.skip
In the above example, the first line in the text which is generated
when the FORTRAN text is run is justified since a _.BREAK command is
not implied following the rightmost word on the line. The second
line is not justified since a _.BREAK command is implied by the _.NO
JUSTIFY command which follows the rightmost word on the line. The
third and fourth lines are within the range of the _.NO JUSTIFY
command and so are not justified. The fifth and sixth lines are
within the range of the _.NOFILL command and so are direct copies of
the corresponding lines in the source text.
.skip 2
.test page 8
.fill
.left margin 5
.indent -5
_.FLAGS
.break
or
.indent -5
_.FLAGS ALL
.skip
The _.FLAGS ALL command indicates that all flag characters which
were initially active, or which have been individually activated by
the corresponding _.FLAGS commands, and which have not been
individually disabled by the corresponding _.NO FLAGS commands, are
to be active in the source text. The following flag characters are
activated by the _.FLAGS ALL command.
.skip
.left margin 10
.indent -3
$##(dollar sign) or whatever character has been most recently
selected by a _.FLAGS INSERT command.
.indent -3
_\##(back slash) or whatever character has been most recently
selected by a _.FLAGS LOWER CASE command.
.indent -3
__##(underscore) or whatever character has been most recently
selected by a _.FLAGS QUOTE command.
.indent -3
_###(number sign) or whatever character has been most recently
selected by a _.FLAGS SPACE command.
.indent -3
_^##(circumflex) or whatever character has been most recently
selected by a _.FLAGS UPPER CASE command.
.indent -3
<##(less than sign) if a _.FLAGS CAPITALIZE command has been issued,
or whatever character has been most recently selected by a _.FLAGS
CAPITALIZE command. This flag character will remain inactive if a
_.FLAGS CAPITALIZE command has not been issued.
.left margin 5
.skip
All of these flag characters can be temporarily disabled by the
issuing of a _.NO FLAGS or a _.NO FLAGS ALL command. The _.FLAGS ALL
command and the _.NO FLAGS ALL command do not change the
interpretation of the flag characters which identify and terminate
commands. The flag characters which are to be interpreted and acted
upon in a preface line defined by the _.PREFACE command or in a
field specification defined by the _.INSERT command must be those
which are active when the preface line or the field specification is
defined, regardless of what flag characters happen to be active when
the preface line or the field specification is used. Neither the
_.FLAGS ALL command nor the _.NO FLAGS ALL command implies a _.BREAK
command.
.skip
For example, the source text
.skip
.test page 16
.nofill
_.OUTPUT WIDTH 55.RIGHT MARGIN 55.OFFSET 0.NOFILL
_.UPPERCASE.INSERT 3_^_^H_\_\THE
_.FORMAT.PREFACE       _\_\WRITE(1,$)
_\_\_^THE QUICK_#__RED <FOX JUMPS OVER $$$ LAZY __BROWN <DOG.
_.PROGRAM
_\_\_^THE QUICK_#__RED <FOX JUMPS OVER $$$ LAZY __BROWN <DOG.
_.NO FLAGS
_.FORMAT.FLAGS CAPITALIZE.UPPER CASE.INSERT 3_^_^H_\_\THE
_\_\_^THE QUICK_#__RED <FOX JUMPS OVER $$$ LAZY __BROWN <DOG.
_.PROGRAM.PREFACE       _\_\WRITE(1,$)
_\_\_^THE QUICK_#__RED <FOX JUMPS OVER $$$ LAZY __BROWN <DOG.
_.FLAGS
_.UPPER CASE.FORMAT
_\_\_^THE QUICK_#__RED <FOX JUMPS OVER $$$ LAZY __BROWN <DOG.
_.PROGRAM
_\_\_^THE QUICK_#__RED <FOX JUMPS OVER $$$ LAZY __BROWN <DOG.
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.test page 12
.nofill
      write(1,1)
    1 FORMAT(30HThe quick Red <fox jumps over ,3Hthe,
     117H lazy Brown <dog.)
The quick Red <fox jumps over   2 lazy Brown <dog.
      write(1,2)
    2 FORMAT(38H_\_\_^THE QUICK_#__RED <FOX JUMPS OVER $$$ ,
     117HLAZY __BROWN <DOG.)
_\_\_^THE QUICK_#__RED <FOX JUMPS OVER $$$ LAZY __BROWN <DOG.
      _\_\WRITE(1,$)
    3 FORMAT(29HThe quick Red FOX jumps over ,
     13_^_^H_\_\THE,16H lazy Brown DOG.)
The quick Red FOX jumps over   4 lazy Brown DOG.
.fill
.skip
It should be noted that the final preface line and the final field
specification were defined in the above example while the flag
characters were inactive so these flag characters are treated as
nonflag characters even though the preface line and the field
specification are applied later when the flag characters are again
active.
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.FLAGS CAPITALIZE character to precede capitalized words
.skip
The _.FLAGS CAPITALIZE command indicates that the single character
appearing as its argument can be used in the following source text
at the start of words in which the alphabetic letters are to be
converted to upper case. The case mode which is in effect when the
specified capitalization flag character is found in the following
source text, regardless of whether this case mode is the default
retention of cases which can also be specified by double
circumflexes or by the _.UPPER CASE command, or is the translation
of upper case into lower case which is specified by double back
slashes or by the _.LOWER CASE command, will be restored following
the next space, the next end of line or the next appearance of the
specified capitalization flag character. The _.FLAGS CAPITALIZE
command does not imply a _.BREAK command.
.skip
The capitalization flag character specified by the _.FLAGS
CAPITALIZE command should not currently be active as some other flag
indication, and should not be one of the alphabetic letters A
through Z. The capitalization flag character is recognized in all of
the following source text, including the text being represented in
the FORMAT statements, the text within the range of _.PROGRAM
commands, and within commands and their arguments. Within the range
of the _.FLAGS CAPITALIZE command, underscores must precede all
appearances of the capitalization flag character which are to be
treated like other characters. If no capitalization flag character
is specified by the _.FLAGS CAPITALIZE command, then the last
character so specified by a previous _.FLAGS CAPITALIZE command will
be used, or the less than sign will be used if no character has
previously been specified by any _.FLAGS CAPITALIZE command.
.skip
No capitalization flag character is active when this program is
started. The capitalization flag character specified by the _.FLAGS
CAPITALIZE command can temporarily be treated as a nonflag character
if a _.NO FLAGS CAPITALIZE command is issued, but will again become
active when a _.FLAGS CAPITALIZE command is issued. The
capitalization flag character, like all other flag characters in the
source text, can also temporarily be treated as a nonflag character
if a _.NO FLAGS or _.NO FLAGS ALL command is issued, but will again
become active when a _.FLAGS or _.FLAGS ALL command is issued,
providing that a _.FLAGS CAPITALIZE command has been issued more
recently than a _.NO FLAGS CAPITALIZE command. Words which are
marked by the capitalization flag character in a preface line
defined by the _.PREFACE command or in a field specification defined
by the _.INSERT command are converted to upper case when the preface
line or the field specification is defined, regardless of what the
capitalization flag character happens to be when the preface line or
the field specification is used.
.skip
For example, the source text
.skip
.nofill
_.nofill.offset 0.out width 55.preface       WRITE(1,$)
_.flag capitalize
_^_^UPPER lower <Le_^S_^s_\T_\han<UPPERlower UPPER lower
UPPER lower <Le_^S_^s_\T_\han UPPER lower
UPPER lower <Le_^S_^s_\T_\han
UPPER lower
_.fcap %
_\_\UPPER lower %Le_^S_^s_\T_\han%UPPER*lower UPPER lower
UPPER lower %Le_^S_^s_\T_\han UPPER lower
UPPER lower %Le_^S_^s_\T_\han
UPPER lower
_.no flag
_^_^UPPER lower %Le_^S_^s_\T_\han%UPPERlower UPPER lower
_\_\UPPER lower %Le_^S_^s_\T_\han%UPPER*lower UPPER lower
_.flag
_^_^UPPER lower %Le_^S_^s_\T_\han%UPPERlower UPPER lower
_\_\UPPER lower %Le_^S_^s_\T_\han%UPPER*lower UPPER lower
_.no flag capitalize
_^_^UPPER lower %Le_^S_^s_\T_\han%UPPERlower UPPER lower
_\_\UPPER lower %Le_^S_^s_\T_\han%UPPER*lower UPPER lower
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
      WRITE(1,1)
    1 FORMAT(38HUPPER lower LESSthANUPPERlower UPPER l,
     14Hower/32HUPPER lower LESSthAN UPPER lower/3HUPP,
     217HER lower LESSthAN/11HUPPER lower/9Hupper low,
     334Her LESSthANupper*lower upper lower/8Hupper lo,
     424Hwer LESSthAN upper lower/17Hupper lower LESSt,
     53HhAN/11Hupper lower/24H_^_^upper lower %le_^s_^s_\t_\,
     626Hhan%upperlower upper lower/15H_\_\upper lower %,
     736Hle_^s_^s_\t_\han%upper*lower upper lower/6HUPPER ,
     836Hlower LESSthANUPPERlower UPPER lower/6Hupper ,
     937Hlower LESSthANupper*lower upper lower/5HUPPER,
     139H lower %LeSSthan%UPPERlower UPPER lower/3Hupp,
     242Her lower %leSSthan%upper*lower upper lower)
      end
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
UPPER lower LESSthANUPPERlower UPPER lower
UPPER lower LESSthAN UPPER lower
UPPER lower LESSthAN
UPPER lower
upper lower LESSthANupper*lower upper lower
upper lower LESSthAN upper lower
upper lower LESSthAN
upper lower
_^_^upper lower %le_^s_^s_\t_\han%upperlower upper lower
_\_\upper lower %le_^s_^s_\t_\han%upper*lower upper lower
UPPER lower LESSthANUPPERlower UPPER lower
upper lower LESSthANupper*lower upper lower
UPPER lower %LeSSthan%UPPERlower UPPER lower
upper lower %leSSthan%upper*lower upper lower
.fill
.skip 2
.fill
.test page 6
.left margin 5
.indent -5
_.FLAGS CONTROL character to precede commands
.skip
The _.FLAGS CONTROL command indicates that the single character
appearing as its argument can be used in the following source text
at the start of lines which are to be interpreted as commands rather
than as text which is to be represented in the FORMAT statements. If
no character is specified by the _.FLAGS CONTROL command, then the
last character so specified by a previous _.FLAGS CONTROL command
will be used, or the period will be used if no character has
previously been specified by any _.FLAGS CONTROL command. The
_.FLAGS CONTROL command does not imply a _.BREAK command.
.skip
The control flag character specified by the _.FLAGS CONTROL command
should not currently be active as some other flag indication, and
should not be one of the alphabetic letters A through Z. If the
_.FLAGS CONTROL command is followed on the same line by another
command, then these commands should be separated by a semicolon
rather than by the appearance of either the original control flag
character or of the new control flag character, since the new
control flag character is not active until after the _.FLAGS CONTROL
command is interpreted, and the original control flag character will
not be active when the next command is interpreted.
.skip
If the control flag character appears at the start of a line which
is not a command line or if the control flag character appears
within a command line but does not indicate the start of another
command, then the control flag character must be preceded by an
underscore. The control flag character specified by the _.FLAGS
CONTROL command can also be treated as a nonflag character if a _.NO
FLAGS COMMAND is issued. Of course, if the _.NO FLAGS CONTROL
command is issued, then no further commands can appear in the source
text.
.skip
For example, the source text
.skip
.nofill
.test page 3
_.flag control *.this is the first line
*output width 55;and this is the second line.
*flag control =;=preface       WRITE(1,$)
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
.test page 3
      WRITE(1,1)
    1 FORMAT(38H .this is the first line and this is t,
     115Hhe second line.)
.fill
.skip 2
.fill
.test page 6
.left margin 5
.indent -5
_.FLAGS FENCE character to terminate and separate commands
.skip
The _.FLAGS FENCE command indicates that the single character
appearing as its argument can be used in command lines in the
following source text to terminate any command except those which
take the rest of the line of text as their arguments. The text which
follows the use of the separation flag character can be any text
which could appear on the next line if nothing else appeared to the
right of the command. The separation flag character is required
between two commands on the same line only if the first command is
followed by an exclamation point and then by a comment. If no
character is specified by the _.FLAGS FENCE command, then the last
character so specified by a previous _.FLAGS FENCE command will be
used, or the semicolon will be used if no character has previously
been specified by any _.FLAGS FENCE command. The _.FLAGS FENCE
command does not imply a _.BREAK command.
.skip
The separation flag character specified by the _.FLAGS FENCE command
should not currently be active as some other flag indication, and
should not be one of the alphabetic letters A through Z. If the
 .FLAGS FENCE command is followed on the same line by another
command, then either the _.FLAGS FENCE command should not itself be
terminated by a separation flag character or else the _.FLAGS FENCE
command should be terminated by the original separation flag
character rather than by the appearance of the new separation flag
character since the new separation flag character is not active
until after the _.FLAGS FENCE command is interpreted.
.skip
If the separation flag character appears in a comment in a command
line but is not to terminate the comment, or appears as a character
argument of a command, then the separation flag character must be
preceded by an underscore. The separation flag character can
temporarily be treated as a nonflag character if a _.NO FLAGS FENCE
command is issued, but will again become active when a _.FLAGS FENCE
command is issued.
.skip
For example, the source text
.skip
.nofill
.test page 2
_.flag fence @!a comment;.indent 5@This text is to be
_.output width 55@represented in the FORMAT statement.
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.test page 2
.nofill
    1 FORMAT(6X,35HThis text is to be represented in t,
     120Hhe FORMAT statement.)
.skip 2
.fill
.test page 6
.left margin 5
.indent -5
_.FLAGS INSERT character to indicate location of insertions
.skip
The _.FLAGS INSERT command indicates that the single character
appearing as its argument can be used in the source text on the
lines following a _.PROGRAM command and in the text to the right of
a _.PREFACE command to indicate locations at which the statement
number of the next FORMAT statement is to be inserted. If more
contiguous appearances of the insertion flag character are found
than there are digits in the statement number, then additional
spaces are inserted to the left of the statement number so that the
total number of characters which are inserted equals the number of
insertion flag characters in the group. The character specified by
the _.FLAGS INSERT command can also be used within the source text
which is being represented in the resulting FORMAT statements to
indicate locations at which the output field descriptions specified
by the _.INSERT command are to be inserted. The number of contiguous
appearances of the insertion flag character in the text being
represented in the FORMAT statements indicates the number of
characters which will be generated when a FORTRAN variable is
written out using the field specification. The number of contiguous
appearances of the insertion flag character is the number of
character positions which must be reserved for the appearance of
this variable when the words in the source text are wrapped around
and justified by this program. The _.FLAGS INSERT command does not
imply a _.BREAK command.
.skip
The insertion flag character specified by the _.FLAGS INSERT command
should not currently be active as some other flag indication, and
should not be one of the alphabetic letters A through Z. Within the
range of the _.FLAGS INSERT command, underscores must precede all
appearances of the insertion flag character which are to be treated
like any other character. If no insertion flag character is
specified by the _.FLAGS INSERT command, then the last character so
specified by a previous _.FLAGS INSERT command will be used, or the
dollar sign will be used if no character has previously been
specified by any _.FLAGS INSERT command.
.skip
The insertion flag character specified by the _.FLAGS INSERT command
can temporarily be treated as a nonflag character if a _.NO FLAGS
INSERT command is issued, but will again become active when a
_.FLAGS INSERT command is issued. The insertion flag character, like
all other flag characters in the source text, can also temporarily
be treated as a nonflag character if a _.NO FLAGS or _.NO FLAGS ALL
command is issued, but will again become active when a _.FLAGS or
_.FLAGS ALL command is issued, providing that a _.NO FLAGS INSERT
command has not been issued more recently than a _.FLAGS INSERT
command. The character which is to be replaced by the statement
number in a preface line defined by the _.PREFACE command is the
insertion flag character which is active when the preface line is
defined, regardless of what the insertion flag character happens to
be when the preface line is used.
.skip
For example, the source text
.skip
.nofill
.test page 12
_.flags insert @.output width 55.program 100,10
_.insert 1I8
_.insert 1A8
_.preface       WRITE(1$2,@)
_^_^C     NEXT FORMAT STATEMENT IS @.
_.format;_\_\_^MAXIMUM AMOUNT OF LOAN IS $@@@@@@@@.
_.flags insert $.program
_^_^C     NEXT FORMAT STATEMENT IS $.
_.format;_\_\_^MAXIMUM AMOUNT OF LOAN IS __$$$$$$$$$.
_.no flags.program
_^_^C     NEXT FORMAT STATEMENT IS $.
_.format;_\_\_^MAXIMUM AMOUNT OF LOAN IS __$$$$$$$$$.
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
.test page 10
C     NEXT FORMAT STATEMENT IS 100.
      WRITE(1$2,100)
  100 FORMAT(28H Maximum amount of loan is $,1I8,1H.)
C     NEXT FORMAT STATEMENT IS 110.
      WRITE(1$2,110)
  110 FORMAT(28H Maximum amount of loan is $,1A8,1H.)
_^_^c     next format statement is $.
      WRITE(1$2,120)
  120 FORMAT(38H _\_\_^maximum amount of loan is __$$$$$$$,
     13H$$.)
.skip 2
.fill
.test page 6
.left margin 5
.indent -5
_.FLAGS LOWER CASE character to precede lower case letters
.skip
The _.FLAGS LOWER CASE command indicates that the single character
appearing as its argument can be used in the source text before any
alphabetic letter in the range A through Z which is to be converted
to its lower case form. Two adjacent lower case shift characters
indicate that all subsequent alphabetic letters are to be converted
to lower case, except for the next letter immediately following
either an underscore or a circumflex and except for all letters in
the word immediately following a less than sign if within the range
of a _.FLAGS CAPITALIZE command. The range of the lower case shift
lock indicated either by the 2 adjacent lower case shift characters
or by the equivalent _.LOWER CASE command can be terminated either
by 2 adjacent circumflexes or by the equivalent _.UPPER CASE
command. The _.FLAGS LOWER CASE command does not imply a _.BREAK
command.
.skip
The lower case shift character specified by the _.FLAGS LOWER CASE
command should not currently be active as some other flag
indication, and should not be one of the alphabetic letters A
through Z. Within the range of the _.FLAGS LOWER CASE command,
underscores must precede all appearances of the lower case shift
character which are to be treated like any other character. If no
lower case shift character is specified by the _.FLAGS LOWER CASE
command, then the last character so specified by a previous _.FLAGS
LOWER CASE command will be used, or the back slash will be used if
no character has previously been specified by any _.FLAGS LOWER CASE
command.
.skip
The lower case shift character specified by the _.FLAGS LOWER CASE
command can temporarily be treated as a nonflag character if a _.NO
FLAGS LOWER CASE command is issued, but will again become active
when a _.FLAGS LOWER CASE command is issued. The lower case shift
character, like all other flag characters in the source text, can
also temporarily be treated as a nonflag character if a _.NO FLAGS
or _.NO FLAGS ALL command is issued, but will again become active
when a _.FLAGS or _.FLAGS ALL command is issued, providing that a
_.NO FLAGS LOWER CASE command has not been issued more recently than
a _.FLAGS LOWER CASE command. Letters which are preceded by the
lower case shift character or which are within the range of a lower
case shift lock in a preface line defined by the _.PREFACE command
or in a field specification defined by the _.INSERT command are
converted to lower case when the preface line or the field
specification is defined, regardless of what the case shift
characters happen to be when the preface line or the field
specification is used.
.skip
For example, the source text
.skip
.nofill
.test page 6
_.flag capitalize.nofill.output width 55
_\_\_\T_\H_\I_\S _\l_\i_\n_\e WILL be _^_^_\A_\L_\L _\l_\o_\w_\e_\r case
_^_^_^t_^h_^i_^s _^L_^I_^N_^E WILL <be _\_\_^A_^L_^L _^u_^p_^p_^e_^r <CASE
_.flag lower case -.flag upper case +.flag capitalize @
---T-H-I-S -l-i-n-e WILL be ++-A-L-L -l-o-w-e-r case
+++t+h+i+s +L+I+N+E WILL @be --+A+L+L +u+p+p+e+r @CASE
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
.test page 4
    1 FORMAT(33H this line will be all lower case/2H T,
     131HHIS LINE WILL BE ALL UPPER CASE/10H this line,
     223H will be all lower case/18H THIS LINE WILL BE,
     315H ALL UPPER CASE)
.skip 2
.fill
.test page 6
.left margin 5
.indent -5
_.FLAGS QUOTE character ro precede character to be used as is
.skip
The _.FLAGS QUOTE command indicates that the single character
appearing as its argument can be used in the source text before any
character which is to be treated as an ordinary nonalphabetic
nonflag printing character. The _.FLAGS QUOTE command does not imply
a _.BREAK command.
.skip
The quotation flag character specified by the _.FLAGS QUOTE command
should not currently be active as some other flag indication, and
should not be one of the alphabetic letters A through Z. Within the
range of the _.FLAGS QUOTE command, the quotation flag character
must precede all appearances of the quotation flag character which
are to be treated like any other character. If no quotation flag
character is specified by the _.FLAGS QUOTE command, then the last
character so specified by a previous _.FLAGS QUOTE command will be
used, or the underscore will be used if no character has previously
been specified by any _.FLAGS QUOTE command.
.skip
The quotation flag character specified by the _.FLAGS QUOTE command
can temporarily be treated as a nonflag character if a _.NO FLAGS
QUOTE command is issued, but will again become active when a _.FLAGS
QUOTE command is issued. The quotation flag character, like all
other flag characters in the source text, can also temporarily be
treated as a nonflag character if a _.NO FLAGS or _.NO FLAGS ALL
command is issued, but will again become active when a _.FLAGS or
_.FLAGS ALL command is issued, providing that a _.NO FLAGS QUOTE
command has not been issued more recently than a _.FLAGS QUOTE
command. If characters within the definition of a preface line by
the _.PREFACE command or of a field specification by the _.INSERT
command are to be treated as nonflag printing characters in spite of
their usual interpretations, then these characters should be
preceded by the quotation flag character which is active when the
preface line or the field specification is defined, regardless of
what quotation flag character happens to be active when the preface
line or the field specification is used.
.skip
For example, the source text
.skip
.nofill
.test page12
_.flags quote *.left margin 3.output width 55
Some typical flag characters are
_.indent -3
*_#_#_#the number sign
_.indent -3
*_^_#_#the circumflex
_.indent -3
*_\_#_#the back slash
_.indent -3
*$_#_#the dollar sign
_.indent -3
___#_#the underscore
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
.test page 4
    1 FORMAT(4X,32HSome typical flag characters are/
     119H _#  the number sign/18H _^  the circumflex/1H ,
     217H_\  the back slash/19H $  the dollar sign/2H __,
     316H  the underscore)
.skip 2
.fill
.test page 6
.left margin 5
.indent -5
_.FLAGS REMARK character to separate commands from comments
.skip
The _.FLAGS REMARK command indicates that the single character
appearing as its argument can be used in command lines in the
following source text to indicate that the following text through
the end of the line or through the next appearance of a semicolon on
the same line is to be treated as a comment and is to be ignored.
Less than signs in the comment do not apply after the end of the
comment, but all case shift locks indicated in the comment by double
back slashes or by double circumflexes are applied to the text
following the comment. The remark flag character is inactive
following those commands which take the rest of the line of text as
their arguments. If no character is specified by the _.FLAGS REMARK
command, then the last character so specified by a previous _.FLAGS
REMARK command will be used, or the exclamation point will be used
if no character has previously been specified by any _.FLAGS REMARK
command. The _.FLAGS REMARK command does not imply a _.BREAK command.
.skip
The remark flag character specified by the _.FLAGS REMARK command
should not currently be active as some other flag indication, and
should not be one of the alphabetic letters A through Z. If the
_.FLAGS REMARK command is followed on the same line by a comment,
then the comment should be indicated by the original remark flag
character since the new remark flag character will not be active
until the _.FLAGS REMARK command is interpreted.
.skip
If the remark flag character appears within a command line but is
not to indicate the start of a comment, then the remark flag
character must be preceded by an underscore. The remark flag
character specified by the _.FLAGS REMARK command can also be
treated as a nonflag character if a _.NO FLAGS REMARK command is
issued, but will again become active when a _.FLAGS REMARK command
is issued.
.skip
For example, the source text
.skip
.nofill
.test page 9
_.!.indent 5!command which has been commented out
_.flags capitalize!comment separating commands;.offset 0
_.preface one<two!three four
FIRST LINE
_.format! 2_\_\back slashes;.preface five<six;seven eight
_.!capitalization stops at end of <comment;SECOND LINE
_.flag remark @!at sign inactive;.begin@ 2_^_^circumflexes
_.preface nine<ten.eleven twelve
THIRD LINE
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
.test page 6
oneTWO!THREE four
    1 FORMAT(10HFIRST LINE)
fiveSIX;SEVEN eight
    2 FORMAT(11Hsecond line)
nineTEN.ELEVEN twelve
    3 FORMAT(10HTHIRD LINE)
.fill
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.FLAGS SPACE character to indicate a nonadjustable space
.skip
The _.FLAGS SPACE command indicates that the single character
appearing as its argument can be used in the following source text
to indicate the location of a space which is to be treated as though
it were a printing character. The use of the space holding character
is completely equivalent to the use of a space preceded by an
underscore. The _.FLAGS SPACE command does not imply a _.BREAK
command.
.skip
The space holding character specified by the _.FLAGS SPACE command
should not currently be active as some other flag indication, and
should not be one of the alphabetic letters A through Z. The space
holding character is recognized in all of the following source text,
including the text being represented in the FORMAT statements, the
text within the range of _.PROGRAM commands, and within the
arguments of commands. Within the range of the _.FLAGS SPACE
command, underscores must precede all appearances of the space
holding character which are to be left unchanged rather than be
converted to spaces. If no space holding character is specified by
the _.FLAGS SPACE command, then the last character so specified by a
previous _.FLAGS SPACE command will be used, or the number sign will
be used if no character has previously been specified by any _.FLAGS
SPACE command.
.skip
The space holding character specified by the _.FLAGS SPACE command
can temporarily be treated as a nonflag character if a _.NO FLAGS
SPACE command is issued, but will again become active when a _.FLAGS
SPACE command is issued. The space holding character, like all other
flag characters in the source text, can also temporarily be treated
as a nonflag character if a _.NO FLAGS or _.NO FLAGS ALL command is
issued, but will again become active when a _.FLAGS or _.FLAGS ALL
command is issued, providing that a _.NO FLAGS SPACE command has not
been issued more recently than a _.FLAGS SPACE command.
Nonadjustable spaces in a preface line defined by the _.PREFACE
command or in a field specification defined by the _.INSERT command
should be indicated by the space holding character in effect when
the preface line or the field specification is defined, regardless
of what the space holding character happens to be when the preface
line or the field specification is used.
.skip
For example, the source text
.skip
.nofill
.test page 7
_.output width 55
_.insert 10Hthe   ___#_#_#_#
_.insert 10Hthe   *_#_#_#
_.preface _#_#_#_#_#_#write(1___#2,$)
This   demonstrates   $space_#_#_#holding   character.
_.flags space *.break
This   demonstrates   $space***holding   character.
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text.
.skip
.nofill
.test page 4
      write(1_#2,1)
    1 FORMAT(19H This demonstrates ,10Hthe   _#   ,2Hsp,
     124Hace   holding character./17H This demonstrate,
     22Hs ,10Hthe   *   ,26Hspace   holding character.)
.skip 2
.fill
.test page 6
.left margin 5
.indent -5
_.FLAGS UPPER CASE character to precede upper case letters
.skip
The _.FLAGS UPPER CASE command indicates that the single character
appearing as its argument can be used in the source text before any
alphabetic letter in the range A through Z which is to be converted
to its upper case form. Two adjacent upper case shift characters
indicate that the cases of all subsequent alphabetic letters are to
be left unchanged, except for the next letter immediately following
either a back slash or a single circumflex and except for all
letters in the word immediately following a less than sign if within
the range of a _.FLAGS CAPITALIZE command. The range of the retained
case shift lock indicated either by the 2 adjacent upper case shift
characters or by the equivalent _.UPPER CASE command can be
terminated either by 2 adjacent back slashes or by the equivalent
_.LOWER CASE command. The _.FLAGS UPPER CASE command does not imply
a _.BREAK command.
.skip
The upper case shift character specified by the _.FLAGS UPPER CASE
command should not currently be active as some other flag
indication, and should not be one of the alphabetic letters A
through Z. Within the range of the _.FLAGS UPPER CASE command,
underscores must precede all appearances of the upper case shift
character which are to be treated like any other character. If no
upper case shift character is specified by the _.FLAGS UPPER CASE
command, then the last character so specified by a previous _.FLAGS
UPPER CASE command will be used, or the circumflex will be used if
no character has previously been specified by any _.FLAGS UPPER CASE
command.
.skip
The upper case shift character specified by the _.FLAGS UPPER CASE
command can temporarily be treated as a nonflag character if a _.NO
FLAGS UPPER CASE command is issued, but will again become active
when a _.FLAGS UPPER CASE command is issued. The upper case shift
character, like all other flag characters in the source text, can
also temporarily be treated as a nonflag character if a _.NO FLAGS
or _.NO FLAGS ALL command is issued, but will again become active
when a _.FLAGS or _.FLAGS ALL command is issued, providing that a
_.NO FLAGS UPPER CASE command has not been issued more recently than
a _.FLAGS UPPER CASE command. Letters which are preceded by the
upper case shift character in a preface line defined by the
_.PREFACE command or in a field specification defined by the
_.INSERT command are converted to upper case when the preface line
or the field specification is defined, regardless of what the case
shift characters happen to be when the preface line or the field
specification is used.
.skip
For example, the source text
.skip
.nofill
.test page 10
_.flag capitalize.nofill.output width 55
_.upper case
_^this _\F_\O_\L_\L_\O_\W_\S _\a_\n .UPPER <case command.
_.lower case
_^THIS _\F_\O_\L_\L_\O_\W_\S a ._^L_^O_^W_^E_^R <case command.
_^_^_^this _\F_\O_\L_\L_\O_\W_\S _\t_\w_\o CIRCUM<flex characters.
_\_\_^THIS _\F_\O_\L_\L_\O_\W_\S two _^B_^A_^C_^K <slash characters.
_.flag lower case -.flag upper case+.flag capitalize @
+++this -F-O-L-L-O-W-S -t-w-o PLUS @sign characters.
--+THIS -F-O-L-L-O-W-S two +M+I+N+U+S @sign characters.
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
.test page 6
    1 FORMAT(37H This follows an .UPPER CASE command./
     136H This follows a .LOWER CASE command./6H This ,
     234Hfollows two CIRCUMFLEX characters./8H This fo,
     332Hllows two BACK SLASH characters./9H This fol,
     430Hlows two PLUS SIGN characters./11H This follo,
     529Hws two MINUS SIGN characters.)
.fill
.skip 2
.left margin 5
.test page 6
.indent -5
_.FORMAT next statement number, statement number increment
.skip
The _.FORMAT command indicates that no additional text is to be
represented by the FORMAT statement currently being constructed and
that the text appearing in subsequent lines in the source file is to
be represented in a new FORMAT statement. The preface line, if any,
indicated by a previous _.PREFACE command will be written into the
output before this next FORMAT statement. All unused output field
descriptions previously specified by _.INSERT commands will still be
available. The new FORMAT statement will include blank lines which
have been requested by _.SKIP or _.BLANK commands, or which are
necessary for multiple line spacing, but which have not yet been
generated. If the _.FORMAT command is issued within the range of a
_.PROGRAM command, then the range of the _.PROGRAM command is
terminated. The _.FORMAT command is identical to the _.BEGIN
command, except that a _.BEGIN command would discard the previously
specified preface line, would discard all output field descriptions,
and, unless the _.LEADING and _.TRAILING commands are in effect,
would discard all blank lines which have not yet been generated.
.skip
If a number follows the _.FORMAT command, then this number is used
to modify the statement number of the next FORMAT statement. If the
number is not signed, then the number will be used directly as the
statement number of the next FORMAT statement. If the number is
signed, then the statement number of the next FORMAT statement will
differ from the statement number of the previous FORMAT statement by
the indicated amount. If no number follows the _.FORMAT command, or
if a comma follows the _.FORMAT command but no number appears
between the _.FORMAT command and this comma, then the statement
number of the next FORMAT statement will differ from that of the
previous FORMAT statement by the current value of the statement
number increment.
.skip
Modifications of the statement number are cumulative such that if 2
or more _.BEGIN and/or _.FORMAT and/or _.PROGRAM commands are
issued, then the statement number of the next FORMAT statement will
be the result of the application of each of these commands in turn.
If the statement number of the FORMAT statement following a section
of program text indicated by an initial _.PROGRAM command is to be
modified, but the program text includes dollar signs which are to be
replaced by this statement number, then this statement number should
be modified by the _.PROGRAM command rather than by the following
_.BEGIN or _.FORMAT command, since, if the modification is done by
the _.BEGIN or _.FORMAT command, then incorrect statement numbers
will have been inserted into the program text. Statement numbers, if
any, inserted into a preface line defined by a _.PREFACE command
will, however, always be correct since the statement number of the
next FORMAT statement is known when the preface line is generated.
.skip
If the _.FORMAT command is followed either by 2 numbers or else by a
comma and then by a number, then the right number becomes the
statement number increment after the generation of the next FORMAT
statement. The increment can be either positive or negative. If the
number is unsigned, then the increment is assumed to be positive. If
the _.FORMAT command is followed by 2 numbers, then these numbers do
not need to be separated by a comma. If the _.FORMAT command is not
followed by any numbers, or is followed by a single number which is
not preceded by a comma, then the statement number increment is not
changed.
.skip
.test page 10
For example, the source text
.skip
.nofill
_.preface       WRITE(1,$)
_.format 10,5   ;This is a message in FORMAT 10
_.program       ;C     FORMAT statement $ follows
_.format,20     ;This is a message in FORMAT 15
_.format        ;This is a message in FORMAT 35
_.program 100-10;C     FORMAT statement $ follows
_.format        ;This is a message in FORMAT 100
_.format        ;This is a message in FORMAT 90
.skip
.test page 15
would be transformed into the following FORTRAN text when processed by this program.
.skip
      WRITE(1,10)
   10 FORMAT(31H This is a message in FORMAT 10)
C     FORMAT statement 15 follows
      WRITE(1,15)
   15 FORMAT(31H This is a message in FORMAT 15)
      WRITE(1,35)
   35 FORMAT(31H This is a message in FORMAT 35)
C     FORMAT statement 100 follows
      WRITE(1,100)
  100 FORMAT(32H This is a message in FORMAT 100)
      WRITE(1,90)
   90 FORMAT(31H This is a message in FORMAT 90)
.fill
.skip 2
.left margin 5
.test page 6
.fill
.indent -5
_.INDENT number of extra spaces to insert beyond left margin
.skip
The _.INDENT command indicates that the left end of the next line of
text which is represented in the FORMAT statement is to be indented
the indicated number of spaces from the left margin which is in
effect when the first word in the line is found. The number which
follows the _.INDENT command can be either positive indicating the
insertion of extra initial spaces, or negative indicating the
deletion of spaces from the left margin. If the number is missing,
then a positive indentation of 5 spaces is assumed. The indentation
is applied regardless of whether the next line is copied in no fill
mode or is constructed in fill mode. If the _.INDENT command was
preceded by a _.CENTER command, then the _.CENTER command is
ignored. The _.INDENT command implies a _.BREAK command before the
following line of source text.
.skip
For example, the source text
.skip
.nofill
.test page 12
_.offset 0.left margin 0.right margin 55.output width 55
_.indent 5.preface       WRITE(1,$)
The flag characters which are listed below are
deactivated by the .NO FLAGS command.
_.left margin 5
_.indent -3
__$_#_#(dollar sign) or whatever character has been
selected by a .FLAGS INSERT command.
_.indent -3
___#_#_#(number sign) or whatever character has been
selected by a .FLAGS SPACE command.
_.PROGRAM;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 9
      WRITE(1,1)
    1 FORMAT(5X,35HThe flag characters which  are  lis,
     115Hted  below  are/26Hdeactivated by the .NO FLA,
     211HGS command./30H  $  (dollar  sign)  or  whate,
     325Hver  character  has  been/5X,13Hselected by a,
     423H .FLAGS INSERT command./18H  _#  (number  sign,
     537H)  or  whatever  character  has  been/5X,2Hse,
     633Hlected by a .FLAGS SPACE command.)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 6
     The flag characters which  are  listed  below  are
deactivated by the .NO FLAGS command.
  $  (dollar  sign)  or  whatever  character  has  been
     selected by a .FLAGS INSERT command.
  _#  (number  sign)  or  whatever  character  has  been
     selected by a .FLAGS SPACE command.
.skip 2
.test page 6
.fill
.left margin 5
.indent -5
_.INPUT WIDTH maximum number of characters in any input line
.skip
The _.INPUT WIDTH command specifies the maximum number of characters
which are to be read from in each line in the input file. If an
input line contains more than the specified number of characters,
then the characters which appear to the right of the specified
number of characters are ignored. The input line width specified by
the _.INPUT WIDTH command applies to all following lines, but not to
the line in which it is specified. The _.INPUT WIDTH command does
not imply a _.BREAK command.
.skip
If the number which follows the _.INPUT WIDTH command is unsigned,
then this number will be used as the line width for the following
input lines. If the number which follows the _.INPUT WIDTH command
is signed, then the previous input line width is adjusted by the
indicated amount. The input line width is 132 when this program is
started. The input line width cannot exceed 300 characters.
.skip
For example, the source text
.skip
.nofill
.test page 4
_.input width 5.begin 10
12345This is not read
_.iw+5This is not read
1234567890This is not read
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
   10 FORMAT(17H 12345 1234567890)
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.INSERT output field specification to replace next $ signs
.skip
The _.INSERT command specifies the group of characters which is to
replace the next group of contiguous dollar signs which are not
preceded by underscores in the text being represented in the FORMAT
statements. The character to the immediate right of the _.INSERT
command must be a space. The group of characters which is to be
inserted starts with the second character to the right of the
_.INSERT command, whether or not this is a printing character, and
extends through the rightmost printing character on the line. If an
_.INSERT command has not been issued, or if no printing character
appears to the right of the _.INSERT command, then the next group of
contiguous dollar signs is removed, but the group of characters to
be inserted is of zero length so no characters are inserted in place
of the group of dollar signs. If 2 or more _.INSERT commands have
specified groups of characters which have not yet been used to
replace groups of contiguous dollar signs, then these groups of
characters are applied in the order in which they were defined.
Unless the lengths of 3 arrays in this program are increased, no
more than 50 groups of characters having an aggregate length of no
more than 500 characters can have been specified but remain unused
at any time. All unused groups of characters are discarded if either
a _.NO INSERT command or a _.BEGIN command is encountered. Neither
the _.INSERT command nor the _.NO INSERT command implies a _.BREAK
command.
.skip
The text on either side of the group of contiguous dollar signs
being replaced is represented in H or apostrophe notation, whichever
has been selected by the _.USE command. The characters which are
being inserted will be interpreted as an output field specification
when the FORMAT statements are used. If in fill mode, the number of
dollar signs in the group being replaced is used in determining the
length of the line being accumulated, so the number of dollar signs
in the group being replaced should equal the number of characters
which will be generated by the output field specification when the
FORMAT statements are used. For example, 9 dollar signs would be
used to mark the location in the text at which a 9 character date
representation such as 12-Jan-80 is to be generated using a
1I2,1H-,1A3,1H-,1I2 output field specification. Commas are inserted
on either side of the original location of the group of dollar signs
so the _.INSERT command should not specify commas at the start and
at the end of the text being inserted. The text being inserted can
be split onto the next continuation line of the FORMAT statement
following any comma in the text being inserted.
.skip
Within the text being inserted, an underscore character, which will
not be copied into the FORMAT statement, can appear before any
character, such as a comma, space, number sign, circumflex, back
slash, less than sign (if in flag capitalize mode) or another
underscore, which is to be treated as a nonflag character. If a
comma in the text being inserted is not at a location at which the
text being inserted can be split onto the next continuation line of
the FORMAT statement, then the comma should be preceded by an
underscore. If the text being inserted is to end with a space, then
this space should be preceded by an underscore. The _.INSERT command
cannot be followed on the same line either by a comment or by
another command, so semicolons and exclamation points in the text to
be inserted do not need to be preceded by underscores.
.skip
.test page 12
For example, the source text
.skip
.nofill
_.program 10
      DATA KOUNT,IDAY,IYEAR/12345,12,80/
      DATA IMONTH/3HJan/
      WRITE(1,$)KOUNT,IDAY,IMONTH,IYEAR
_.insert 1I5
_.insert 1I2,1H-,1A3,1H-,1I2
_.format.output width 55
$$$$$ items were produced on $$$$$$$$$.
_.program
      END
.skip
.fill
.test page 17
would, when processed by this program, be transformed into the
following proof file
.skip
.nofill
_.program 10
      DATA KOUNT,IDAY,IYEAR/12345,12,80/
      DATA IMONTH/3HJan/
      WRITE(1,10)KOUNT,IDAY,IMONTH,IYEAR
_.insert 1I5
_.insert 1I2,1H-,1A3,1H-,1I2
_.format
_.output width 55
   10 FORMAT(
1I5
1I2,1H-,1A3,1H-,1I2
 $$$$$ items were produced on $$$$$$$$$.
_.program
      END
.skip
.fill
.test page 9
and would also be transformed into the following FORTRAN text
.skip
.nofill
      DATA KOUNT,IDAY,IYEAR/12345,12,80/
      DATA IMONTH/3HJan/
      WRITE(1,10)KOUNT,IDAY,IMONTH,IYEAR
   10 FORMAT(1H ,1I5,24H items were produced on ,1I2,
     11H-,1A3,1H-,1I2,1H.)
      END
.skip
.fill
.test page 4
which would, in turn, generate the following text when run.
.skip
.nofill
 12345 items were produced on 12-Jan-80.
.fill
.skip 2
.left margin 5
.test page 6
.fill
.indent -5
_.JUSTIFY
.skip
The _.JUSTIFY command indicates that the lines of text which are
constructed in fill mode are to be extended to the right margin by
the addition of extra spaces between the words. The extra spaces are
added between the words starting at the right end in the first,
third and every other line following a _.BREAK command or following
any command which implies a _.BREAK command, and are added starting
at the left in the alternate lines. Extra spaces are, however, never
inserted in the final line before a _.BREAK command or before any
command which implies a _.BREAK command. The _.JUSTIFY command
implies a _.BREAK command
.skip
A _.JUSTIFY command is assumed to be in effect when this program is
started. A _.NO JUSTIFY command should be issued instead if lines
which are constructed in fill mode are not required to have exactly
the same lengths, but the lines are still to be filled with the most
words which do not extend beyond the right margin. If a _.NO JUSTIFY
command is in effect, then words are separated by single spaces and
sentences by two spaces. A _.JUSTIFY or a _.NO JUSTIFY command
issued within the range of a _.PROGRAM command applies to the lines
of text constructed in fill mode following the next _.BEGIN or
_.FORMAT command. A _.JUSTIFY or a _.NO JUSTIFY command issued
within the range of a _.NO FILL command applies to the lines of text
constructed following the next _.FILL command.
.skip
For example, the source text
.skip
.nofill
.test page 17
_.output width 55.right margin 55.offset 0
_.no justify.preface       WRITE(1,$)
The .JUSTIFY and the .NO JUSTIFY commands do not
apply to text which is within the range of .NO FILL
commands  and does not apply to the text which is
within the range of the .PROGRAM command.
_.justify.skip
The .JUSTIFY and the .NO JUSTIFY commands do not
apply to text which is within the range of .NO FILL
commands  and does not apply to the text which is
within the range of the .PROGRAM command.
_.nofill.skip
The .JUSTIFY and the .NO JUSTIFY commands do not
apply to text which is within the range of .NO FILL
commands  and does not apply to the text which is
within the range of the .PROGRAM command.
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 16
      WRITE(1,1)
    1 FORMAT(38HThe .JUSTIFY and the .NO JUSTIFY comma,
     116Hnds do not apply/25Hto text which is within t,
     229Hhe range of .NO FILL commands/12Hand does not,
     338H apply to the text which is within the/4Hrang,
     426He of the .PROGRAM command.//14HThe .JUSTIFY a,
     541Hnd the .NO JUSTIFY commands do not  apply/1Ht,
     645Ho  text which is within the range of .NO FILL,
     79H commands/33Hand does not apply to the  text  ,
     822Hwhich  is  within  the/19Hrange of the .PROGR,
     911HAM command.//29HThe .JUSTIFY and the .NO JUST,
     119HIFY commands do not/22Happly to text which is,
     229H within the range of .NO FILL/12Hcommands  an,
     337Hd does not apply to the text which is/5Hwithi,
     436Hn the range of the .PROGRAM command.)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 14
The .JUSTIFY and the .NO JUSTIFY commands do not apply
to text which is within the range of .NO FILL commands
and does not apply to the text which is within the
range of the .PROGRAM command.
.skip
The .JUSTIFY and the .NO JUSTIFY commands do not  apply
to  text which is within the range of .NO FILL commands
and does not apply to the  text  which  is  within  the
range of the .PROGRAM command.
.skip
The .JUSTIFY and the .NO JUSTIFY commands do not
apply to text which is within the range of .NO FILL
commands  and does not apply to the text which is
within the range of the .PROGRAM command.
.skip 2
.test page 6
.left margin 5
.fill
.indent -5
_.LEADING
.skip
The _.LEADING command indicates that blank lines which are requested
prior to the specification of any text which is to appear in the
FORMAT statements, either when this program is first started or
following a _.BEGIN command, are to be represented in the next
FORMAT statement if an _.EJECT command is issued or if some text
which is to be represented in the FORMAT statement is actually
specified. Such leading blank lines can be requested by _.BLANK,
_.SKIP or _.PARAGRAPH commands. Leading blank lines are discarded if
a _.NO LEADING command is in effect or if a _.LEADING command has
not been issued. Neither the _.LEADING command nor the _.NO LEADING
command implies a _.BREAK command.
.skip
For example, the source text
.skip
.nofill
.test page 12
_.spacing 2.output width 55.skip
The quick red fox jumps over the lazy brown dog, then
runs into the forest
_.begin.leading.skip
The quick red fox jumps over the lazy brown dog, then
runs into the forest
_.begin.trailing.skip
The quick red fox jumps over the lazy brown dog, then
runs into the forest
_.begin.no leading.skip
The quick red fox jumps over the lazy brown dog, then
runs into the forest
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
.test page 10
    1 FORMAT(38H The quick red fox jumps over the lazy,
     123H brown dog,  then  runs//16H into the forest)
    2 FORMAT(//36H The quick red fox jumps over the la,
     125Hzy brown dog,  then  runs//15H into the fores,
     21Ht)
    3 FORMAT(//36H The quick red fox jumps over the la,
     125Hzy brown dog,  then  runs//15H into the fores,
     21Ht/)
    4 FORMAT(38H The quick red fox jumps over the lazy,
     123H brown dog,  then  runs//16H into the forest/)
.skip 2
.fill
.left margin 5
.test page 6
.indent -5
_.LEFT MARGIN number of spaces to left of text
.skip
The _.LEFT MARGIN command specifies the number of spaces which are
to be inserted to the left of each of the lines of text which are
being represented in the FORMAT statements in either fill or no fill
modes. The left margin specified by the _.LEFT MARGIN command is in
addition to the leftmost spaces specified by the _.OFFSET command or
in addition to the single left space which is obtained if neither
the _.OFFSET command nor the _.NO OFFSET command has been issued. An
_.INDENT or _.PARAGRAPH command can be issued prior to a particular
paragraph to temporarily change the left margin for the leading line
in that paragraph. If the number which follows the _.LEFT MARGIN
command is unsigned, then this number will be used as the left
margin. If the number which follows the _.LEFT MARGIN command is
signed, then the previous left margin is adjusted by the indicated
amount. If no number follows the _.LEFT MARGIN command then the left
margin is reset to zero. The _.LEFT MARGIN command implies a _.BREAK
command.
.skip
If the lines of text are being constructed in fill mode, then the
left margin specified by the _.LEFT MARGIN command should be to the
left of the right margin specified by the _.RIGHT MARGIN command or
to the left of column 60 if a _.RIGHT MARGIN command has not been
issued. The right margin is ignored if the lines of text are being
copied in no fill mode. The only spaces which are inserted are those
which are specified by the _.OFFSET command if a signed number
following the _.LEFT MARGIN command causes the left margin to be
negative.
.skip
For example, the source text
.skip
.nofill
.test page 16
_.preface       WRITE(1,$)
_.output width 55;Default left margin and default offset
_.left margin 10 ;Left margin 10 obtained as .lm 10
_.left margin -5 ;Left margin 5 obtained as .lm-5
_.left margin -5 ;Left margin 0 obtained as .lm-5
_.left margin -5 ;Left margin -5 which is treated as 0
_.left margin +5 ;Left margin 0 obtained as .lm+5
_.left margin +5 ;Left margin 5 obtained as .lm+5
_.offset 6       ;Unchanged left margin and offset 6
_.left margin 10 ;Left margin 10 obtained as .lm 10
_.left margin -5 ;Left margin 5 obtained as .lm-5
_.left margin -5 ;Left margin 0 obtained as .lm-5
_.left margin -5 ;Left margin -5 which is treated as 0
_.left margin +5 ;Left margin 0 obtained as .lm+5
_.left margin +5 ;Left margin 5 obtained as .lm+5
_.program ;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 15
      WRITE(1,1)
    1 FORMAT(38H Default left margin and default offse,
     11Ht/11X,33HLeft margin 10 obtained as .lm 10/6X,
     231HLeft margin 5 obtained as .lm-5/10H Left marg,
     322Hin 0 obtained as .lm-5/19H Left margin -5 whi,
     418Hch is treated as 0/23H Left margin 0 obtained,
     59H as .lm+5/6X,30HLeft margin 5 obtained as .lm+,
     61H5/11X,34HUnchanged left margin and offset 6/9X,
     77X,33HLeft margin 10 obtained as .lm 10/11X,2HLe,
     829Hft margin 5 obtained as .lm-5/6X,9HLeft marg,
     922Hin 0 obtained as .lm-5/6X,16HLeft margin -5 w,
     120Hhich is treated as 0/6X,18HLeft margin 0 obta,
     213Hined as .lm+5/11X,24HLeft margin 5 obtained a,
     37Hs .lm+5)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 14
 Default left margin and default offset
           Left margin 10 obtained as .lm 10
      Left margin 5 obtained as .lm-5
 Left margin 0 obtained as .lm-5
 Left margin -5 which is treated as 0
 Left margin 0 obtained as .lm+5
      Left margin 5 obtained as .lm+5
           Unchanged left margin and offset 6
                Left margin 10 obtained as .lm 10
           Left margin 5 obtained as .lm-5
      Left margin 0 obtained as .lm-5
      Left margin -5 which is treated as 0
      Left margin 0 obtained as .lm+5
           Left margin 5 obtained as .lm+5
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.LENGTH maximum number of lines in each FORMAT statement
.skip
The _.LENGTH command specifies the maximum number of FORTRAN
language lines from which each FORMAT statement can be constructed.
The number of lines set by the _.LENGTH command should not be
greater than the maximum number of lines accepted by the compiler
which will be used to process the resulting FORMAT statements.
_.LENGTH 20 is the default, but this program does not impose any
upper limit upon this maximum. The combination of the _.LENGTH
command and the _.OUTPUT WIDTH command set the maximum number of
characters in a single FORMAT statement, but do not otherwise
restrict the maximum number of lines of text which can be
represented in each FORMAT statement. The _.LENGTH command, like
most other commands which merely describe the manner in which the
text is represented in the FORMAT statements, does not imply a
_.BREAK command.
.skip
.test page 16
For example, the source text
.skip
.nofill
_.offset 0.output width 55.length 3
_.preface       WRITE(1,$)
The FORMAT command indicates that no additional text
is to be represented by the FORMAT statement currently
being constructed and that the text appearing in
subsequent lines in the source file is to be
_.length 10
represented in a new FORMAT statement. The preface
line, if any, indicated by a previous PREFACE command
will be written into the output before this next FORMAT
_.length 3
statement. All unused output field descriptions
previously specified by INSERT commands will still be
available.
.skip
.fill
.test page 20
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
      WRITE(1,1)
    1 FORMAT(38HThe FORMAT command indicates that no a,
     122Hdditional text  is  to/19Hbe  represented  by,
     241H  the  FORMAT  statement  currently being)
      WRITE(1,2)
    2 FORMAT(38Hconstructed and that the text appearin,
     122Hg in subsequent  lines/19Hin  the  source  fi,
     241Hle  is  to be represented in a new FORMAT/1Hs,
     345Htatement.   The  preface  line,  if  any,  in,
     414Hdicated  by  a/27Hprevious  PREFACE  command ,
     533H will  be written into the output)
      WRITE(1,3)
    3 FORMAT(38Hbefore this next FORMAT statement.  Al,
     122Hl unused output  field/19Hdescriptions  previ,
     241Hously  specified  by INSERT commands will)
      WRITE(1,4)
    4 FORMAT(19Hstill be available.)
.fill
.skip 2
.fill
.left margin 5
.test page 6
.indent -5
_.LOWER CASE
.skip
The _.LOWER CASE command indicates that all upper case alphabetic
letters which are not specially marked are to be converted to their
lower case forms in the source text which follows the end of the
command or, if the _.LOWER CASE command is followed by a comment, in
the source text which follows the comment. The lower case conversion
selected by the _.LOWER CASE command is not applied to any letter
which is immediately preceded by an underscore indicating that its
case is to be retained, is not applied to any letter which is
immediately preceded by a circumflex indicating that it is to be
converted to upper case, and is not applied to letters which are
both within the range of a _.FLAGS CAPITALIZE command and within a
word which is preceded by a less than sign indicating that these
letters are to be converted to upper case. The _.LOWER CASE command
is equivalent to the appearance of 2 consecutive back slashes except
that the 2 back slashes can appear anywhere and that the lower case
conversion indicated by the 2 back slashes is applied immediately to
all of the following text. The cases of alphabetic letters are
retained unless the _.LOWER CASE command has been issued or unless 2
consecutive back slashes have been found. The retention of cases can
also be reselected either by the _.UPPER CASE command or by the
appearance of 2 consecutive circumflexes. Neither the _.LOWER CASE
command nor the _.UPPER CASE command implies a _.BREAK command.
.skip
For example, the source text
.skip
.nofill
.test page 11
_.nofill.output width 55.preface       WRITE(1,$)
_.noflags.flags capitalize;noflags
  UPPER lower U_^P_\P__ER l_^o_\w__er
  U<PPER l<ower U<PPE<R l<owe<r <U_^P_\P__ER <l_^o_\w__er
_.lower case.flags;lower case
  UPPER lower U_^P_\P__ER l_^o_\w__er
  U<PPER l<ower U<PPE<R l<owe<r <U_^P_\P__ER <l_^o_\w__er
_.upper case;upper case
  UPPER lower U_^P_\P__ER l_^o_\w__er
  U<PPER l<ower U<PPE<R l<owe<r <U_^P_\P__ER <l_^o_\w__er
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 9
      WRITE(1,1)
    1 FORMAT(8H noflags/3X,24HUPPER lower U_^P_\P__ER l_^o,
     15H_\w__er/3X,34HU<PPER l<ower U<PPE<R l<owe<r <U_^P,
     215H_\P__ER <l_^o_\w__er/11H lower case/3X,9Hupper low,
     314Her uPpEr lOwer/3X,24HuPPER lOWER uPPEr lOWEr ,
     411HUPpER LOweR/11H upper case/3X,12HUPPER lower ,
     511HUPpER lOwer/3X,27HUPPER lOWER UPPER lOWEr UPp,
     68HER LOweR)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.test page 9
.nofill
 noflags
   UPPER lower U_^P_\P__ER l_^o_\w__er
   U<PPER l<ower U<PPE<R l<owe<r <U_^P_\P__ER <l_^o_\w__er
 lower case
   upper lower uPpEr lOwer
   uPPER lOWER uPPEr lOWEr UPpER LOweR
 upper case
   UPPER lower UPpER lOwer
   UPPER lOWER UPPER lOWEr UPpER LOweR
.skip 2
.test page 6
.fill
.left margin 5
.indent -5
_.MASK text to be superimposed onto each output line
.skip
The printing characters which follow the _.MASK command on the same
line replace the nonquoted spaces to the right of the initial offset
in each line of text which is copied in no fill mode or which is
constructed in fill mode. All printing characters, all spaces which
were preceded by underscores or which were represented by number
signs, and all initial spaces requested by an _.OFFSET command or by
the default _.OFFSET 1, are left unchanged in each line of text
which is represented in the FORMAT statements. The character to the
immediate right of the _.MASK command must be a space. The group of
characters which is to be superimposed onto each output line starts
with the second character to the right of the _.MASK command,
whether or not this is a printing character, and extends through the
rightmost printing character on the line. No characters are
superimposed onto the output lines if the _.MASK command is issued
without any following characters, or if no _.MASK command has yet
been issued, or if a _.NO MASK command has been issued more recently
than a _.MASK command. A _.MASK command issued within the range of a
_.PROGRAM command applies to the source text following the next
_.BEGIN or _.FORMAT command. Neither the _.MASK command nor the _.NO
MASK command implies a _.BREAK command. A _.BREAK or _.EJECT command
should be issued before the _.MASK or _.NO MASK command unless it is
really desired to change the template line which is to be applied to
the line which is currently being accumulated in fill mode or to the
blank lines which have not yet been written out to the FORMAT
statements.
.skip
Within the text specified by the _.MASK command, an underscore
character, which will not be copied into the FORMAT statement, can
appear before any character, such as a number sign, circumflex, back
slash, less than sign (if in flag capitalize mode) or another
underscore, which is to be treated as a nonflag character. The
_.MASK command cannot be followed on the same line either by a
comment or by another command, so semicolons and exclamation points
in the text to be superimposed do not need to be preceded by
underscores.
.skip
For example, the source text
.skip
.test page 11
.nofill
_.left margin 2.right margin 13.preface       WRITE(1,$)
_.carriage 1.offset 5.copy 17,2.mask *             *
_.indent -1.output width 55;=============
_.insert 3Hhow
_.insert 5H.MASK
_.insert 3Hand
_.insert 5H.COPY
_.skip;This shows $$$ $$$$$ $$$ $$$$$ commands work.
_.skip.indent -1;=============
_.break.no mask.no copy.skip;Not in range of either.
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 15
      WRITE(1,1)
    1 FORMAT(38H1    *=============*  *=============* ,
     116H *=============*/5X,1H*,13X,4H*  *,13X,4H*  *,
     213X,1H*/5X,34H* This  shows *  * This  shows *  ,
     315H* This  shows */5X,2H* ,3Hhow,3X,5H.MASK,2H *,
     44H  * ,3Hhow,3X,5H.MASK,6H *  * ,3Hhow,3X,
     55H.MASK,2H */5X,2H* ,3Hand,3X,5H.COPY,6H *  * ,
     63Hand,3X,5H.COPY,6H *  * ,3Hand,3X,5H.COPY,2H */
     75X,42H* commands    *  * commands    *  * comman,
     87Hds    */5X,7H* work.,7X,10H*  * work.,7X,3H*  ,
     97H* work.,7X,1H*/5X,1H*,13X,4H*  *,13X,4H*  *,9X,
     14X,1H*/5X,35H*=============*  *=============*  *,
     214H=============*//7X,3HNot,6X,2Hin/7X,7Hrange  ,
     34H  of/7X,7Heither.)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 13
1    *=============*  *=============*  *=============*
     *             *  *             *  *             *
     * This  shows *  * This  shows *  * This  shows *
     * how   .MASK *  * how   .MASK *  * how   .MASK *
     * and   .COPY *  * and   .COPY *  * and   .COPY *
     * commands    *  * commands    *  * commands    *
     * work.       *  * work.       *  * work.       *
     *             *  *             *  *             *
     *=============*  *=============*  *=============*
.skip
       Not      in
       range    of
       either.
.skip 2
.fill
.left margin 5
.test page 6
.indent -5
_.NO CARRIAGE
.skip
The first character in each line of text which is generated when the
resulting FORMAT statements are used can be interpreted by the
FORTRAN operating system to select the carriage motion on the output
device to which the text is written. The _.NO CARRIAGE command
indicates that the leftmost character in the line of text which is
currently being constructed for representation in the FORMAT
statements, and in each of the subsequent lines of text, will be a
space if a positive offset has been selected by the combination of
_.OFFSET, _.LEFT MARGIN and _.INDENT or _.PARAGRAPH commands, and
completely blank lines will be represented in the FORMAT statements
by consecutive slashes. The _.NO CARRIAGE command terminates the
insertion of the carriage control character, if any, selected by the
previous _.CARRIAGE command. No carriage control character is in
effect when this program is first started. Neither the _.NO CARRIAGE
command nor the _.CARRIAGE command implies a _.BREAK command. A
_.BREAK command, or some other command which implies a _.BREAK
command, should usually be issued before the _.NO CARRIAGE command
since, if the lines of text are being constructed in fill mode, the
carriage control character is applied to the current line of text
only after this line of text has otherwise been completed.
.skip
For example, the source text
.skip
.nofill
.test page 10
_.carriage 1,*.right margin 54.output width 55
_.preface       WRITE(1,$)
The .NO CARRIAGE command terminates the generation of
the carriage control character specified by the
previous .CARRIAGE command.
_.break.no carriage
The .NO CARRIAGE command terminates the generation of
the carriage control character specified by the
previous .CARRIAGE command.
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 9
      WRITE(1,1)
    1 FORMAT(38H1The .NO CARRIAGE command terminates t,
     117Hhe generation  of/24H*the   carriage  control,
     231H  character  specified  by  the/10H*previous ,
     318H.CARRIAGE command./23H The .NO CARRIAGE comma,
     432Hnd terminates the generation  of/9H the   ca,
     545Hrriage  control  character  specified  by  th,
     61He/28H previous .CARRIAGE command.)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 6
1The .NO CARRIAGE command terminates the generation  of
*the   carriage  control  character  specified  by  the
*previous .CARRIAGE command.
 The .NO CARRIAGE command terminates the generation  of
 the   carriage  control  character  specified  by  the
 previous .CARRIAGE command.
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.NO COPY
.skip
The _.NO COPY command indicates that the text specified by the
source file is to be represented only once in the resulting FORMAT
statements instead of being duplicated to form 2 or more parallel
columns containing the same text. A _.NO COPY command issued within
the range of a _.COPY command terminates the production of the
parallel columns selected by the _.COPY command. A _.NO COPY command
issued within the range of a _.PROGRAM command applies to the source
text following the next _.BEGIN or _.FORMAT command. Both the _.COPY
command and the _.NO COPY command imply a _.BREAK command.
.skip
For example, the source text
.skip
.nofill
.test page 8
_.right margin 20.copy 25,1.carriage 1,*.offset 3
_.output width 55.preface       WRITE(1,$)
The .NO COPY command terminates the range of the
previous .COPY command.
_.no copy
Both the .COPY command and the .NO COPY command imply
a .BREAK command
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 9
      WRITE(1,1)
    1 FORMAT(38H1  The .NO COPY command     The .NO CO,
     110HPY command/31H*  terminates the range     ter,
     217Hminates the range/24H*  of   the    previous ,
     34X,20Hof   the    previous/17H*  .COPY command.,
     411X,14H.COPY command./23H*  Both    the    .COPY/
     523H*  command  and the .NO/18H*  COPY command im,
     65Hply a/17H*  .BREAK command)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 8
1  The .NO COPY command     The .NO COPY command
*  terminates the range     terminates the range
*  of   the    previous     of   the    previous
*  .COPY command.           .COPY command.
*  Both    the    .COPY
*  command  and the .NO
*  COPY command imply a
*  .BREAK command
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.NO FILL
.skip
The _.NO FILL command indicates that each line of source text which
is not within the range of a _.PROGRAM command and which does not
begin with a period is to be shifted to the right by the number of
spaces which has been selected by the combination of _.OFFSET,
_.LEFT MARGIN and _.INDENT or _.PARAGRAPH commands, and is then to
be represented in the FORMAT statements with the same number of
words per line and with the same number of spaces, in addition to
those inserted at the left, as in the source text. The right margin
is ignored. The _.NO FILL command terminates the range of the
previous _.FILL command which would have caused each line of text to
be filled with as many words as will fit on the line when separated
by at least single spaces. A _.FILL command is assumed to be in
effect when this program is started. A _.NO FILL command issued
within the range of a _.PROGRAM command applies to the source text
following the next _.BEGIN or _.FORMAT statement. A _.JUSTIFY, _.NO
JUSTIFY or _.RIGHT MARGIN command issued within the range of a _.NO
FILL command applies to the source text following the next _.FILL
command. Both the _.NO FILL command and the _.FILL command imply a
_.BREAK command.
.skip
For example, the source text
.skip
.nofill
.test page 14
_.output width 55.right margin 55.offset 0
_.nofill.preface       WRITE(1,$)
  The .NO FILL        command is       not   equivalent
  to  the combination of      a        .FILL command
  and a   .NO         JUSTIFY command.
_.fill
  The .NO FILL        command is       not   equivalent
  to  the combination of      a        .FILL command
  and a   .NO         JUSTIFY command.
_.no   justify
  The .NO FILL        command is       not   equivalent
  to  the combination of      a        .FILL command
  and a   .NO         JUSTIFY command.
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 11
      WRITE(1,1)
    1 FORMAT(14H  The .NO FILL,8X,10Hcommand is,7X,1Hn,
     115Hot   equivalent/24H  to  the combination of,
     26X,1Ha,8X,13H.FILL command/13H  and a   .NO,9X,
     316HJUSTIFY command./25HThe  .NO  FILL  command  ,
     430His  not  equivalent   to   the/11Hcombination,
     544H  of  a  .FILL  command  and  a  .NO JUSTIFY/
     68Hcommand./34HThe .NO FILL command is not equiva,
     711Hlent to the/30Hcombination of a .FILL command,
     818H and a .NO JUSTIFY/8Hcommand.)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 9
  The .NO FILL        command is       not   equivalent
  to  the combination of      a        .FILL command
  and a   .NO         JUSTIFY command.
The  .NO  FILL  command  is  not  equivalent   to   the
combination  of  a  .FILL  command  and  a  .NO JUSTIFY
command.
The .NO FILL command is not equivalent to the
combination of a .FILL command and a .NO JUSTIFY
command.
command.
The .NO FILL command is not equivalent to the
combination of a .FILL command and a .NO JUSTIFY
command.
.skip 2
.left margin 5
.fill
.test page 8
.indent -5
_.NO FLAGS
.break
or
.indent -5
_.NO FLAGS ALL
.skip
The _.NO FLAGS ALL command indicates that the flag characters which
are listed below are to be inactive in the source test. Every
appearance of these flag characters is to be left unchanged and is
to be treated like the appearance of any other nonflag printing
character.
.skip
.left margin 10
.indent -3
$##(dollar sign) or whatever character has been most recently
selected by a _.FLAGS INSERT command.
.indent -3
_\##(back slash) or whatever character has been most recently
selected by a _.FLAGS LOWER CASE command.
.indent -3
__##(underscore) or whatever character has been most recently
selected by a _.FLAGS QUOTE command.
.indent -3
_###(number sign) or whatever character has been most recently
selected by a _.FLAGS SPACE command.
.indent -3
_^##(circumflex) or whatever character has been most recently
selected by a _.FLAGS UPPER CASE command.
.indent -3
<##(less than sign) or whatever character has been most recently
selected by a _.FLAGS CAPITALIZE command. This flag character is
initially inactive and will remain inactive unless a _.FLAGS
CAPITALIZE command is issued.
.left margin 5
.skip
All flag characters which were initially active, or which have been
individually activated by the corresponding _.FLAGS commands, and
which have not been individually deactivated by the corresponding
_.NO FLAGS commands, will be reactivated if a subsequent _.FLAGS ALL
command is issued. The _.FLAGS ALL command and the _.NO FLAGS ALL
command do not change the interpretation of the flag characters
which identify and terminate commands. The flag characters which are
to be interpreted and acted upon in a preface line defined by the
_.PREFACE command or in a field specification defined by the
_.INSERT command must be those which are active when the preface
line or the field specification is defined, regardless of what flag
characters happen to be active when the preface line or the field
specification is used. Neither the _.FLAGS ALL command nor the _.NO
FLAGS ALL command implies a _.BREAK command.
.skip 2
.left margin 5
.test page 6
.fill
.indent -5
_.NO FLAGS CAPITALIZE
.skip
Every appearance of the less than sign, or of whatever character has
been most recently selected by a _.FLAGS CAPITALIZE command, is to
be left unchanged and is to be treated like the appearance of any
other character. No flag character is to be available to mark words
in which every letter is to be capitalized. The capitalization flag
character can be reactivated by a subsequent _.FLAGS CAPITALIZE
command. No capitalization flag character is active when this
program is started.
.skip 2
.left margin 5
.test page 6
.fill
.indent -5
_.NO FLAGS CONTROL
.skip
The source text contains no additional commands. Lines which start
with periods, or with whatever character has been most recently
selected by a _.FLAGS CONTROL command, are not to be interpreted as
commands. This command probably should not be issued.
.skip 2
.fill
.left margin 5
.test page 6
.indent -5
_.NO FLAGS FENCE
.skip
Every appearance in a command line of the semicolon, or of whatever
character has been most recently selected by a _.FLAGS FENCE
command, is to be treated as a part of the argument list or comment
in which it appears. No flag character is available which, when used
in a command line, causes the the text to the right of the flag
character to be treated as though this text were on the following
line. The separation flag character can be reactivated by a
subsequent _.FLAGS FENCE command.
.skip 2
.left margin 5
.test page 6
.fill
.indent -5
_.NO FLAGS INSERT
.skip
Every appearance of the dollar sign, or of whatever character has
been most recently selected by a _.FLAGS INSERT command, is to be
left unchanged and is to be treated like the appearance of any other
character. No flag character is available to mark locations in
preface lines and in program text at which the statement numbers of
the next FORMAT statements are to be inserted. No flag character is
available to mark locations in the text being represented in the
FORMAT statements at which the field specifications defined by the
_.INSERT command are to be inserted. The insertion flag character
can be reactivated by a subsequent _.FLAGS INSERT command.
.skip 2
.fill
.left margin 5
.test page 6
.indent -5
_.NO FLAGS LOWER CASE
.skip
Every appearance of the back slash, or of whatever character has
been most recently selected by a _.FLAGS LOWER CASE command, is to
be left unchanged and is to be treated like the appearance of any
other character. No flag character is available to mark individual
alphabetic letters which are to be converted to their lower case
forms. The lower case shift character can be reactivated by a
subsequent _.FLAGS LOWER CASE command.
.skip 2
.fill
.left margin 5
.test page 6
.indent -5
_.NO FLAGS QUOTE
.skip
Every appearance of the underscore, or of whatever character has
been most recently selected by a _.FLAGS QUOTE command, is to be
left unchanged and is to be treated like the appearance of any other
character. No flag character is available which can precede other
characters which are to be treated as nonflag printing characters.
The quotation flag character can be reactivated by a subsequent
_.FLAGS QUOTE command.
.skip 2
.fill
.left margin 5
.test page 6
.indent -5
_.NO FLAGS REMARK
.skip
Every appearance in a command line of the exclamation point, or of
whatever character has been most recently selected by a _.FLAGS
REMARK command, is to be treated as a part of the argument list in
which it appears. No flag character is available which can be used
in command lines to indicate that the following text, through the
end of the line or through the next appearance of a semicolon on the
same line, is to be treated as a comment and is to be ignored. The
remark flag character can be reactivated by a subsequent _.FLAGS
REMARK command.
.skip 2
.fill
.left margin 5
.test page 6
.indent -5
_.NO FLAGS SPACE
.skip
Every appearance of the number sign, or of whatever character has
been most recently selected by a _.FLAGS SPACE command, is to be
left unchanged and is to be treated like the appearance of any other
character. No flag character is available which can be used to
indicate the location of a space which is to be treated as though it
were a printing character. However, a space preceded by an
underscore can still be used for this purpose. The space holding
character can be reactivated by a subsequent _.FLAGS SPACE command.
.skip 2
.fill
.left margin 5
.test page 6
.indent -5
_.NO FLAGS UPPER CASE
.skip
Every appearance of the circumflex, or of whatever character has
been most recently selected by a _.FLAGS UPPER case command, is to
be left unchanged and is to be treated like the appearance of any
other character. No flag character is available to mark individual
alphabetic letters which are to be converted to their upper case
forms. The upper case shift character can be reactivated by a
subsequent _.FLAGS UPPER CASE command.
.skip 2
.fill
.left margin 5
.test page 6
.indent -5
_.NO INSERT
.skip
The _.NO INSERT command indicates that all groups of characters
which have been specified by the _.INSERT command since this program
was started, or since the last _.NO INSERT or _.BEGIN command was
issued, and which have not yet been used, are to be discarded. If a
group of contiguous dollar signs is encountered in the text which is
being represented in the FORMAT statements before a subsequent
_.INSERT command is issued, then the group of dollar signs will be
removed but nothing will be inserted into its place. The _.NO INSERT
command is usually not necessary since the groups of characters
which are defined by the _.INSERT command are always discarded after
use anyway.
.skip
Neither the _.NO INSERT command nor the _.INSERT command implies a
_.BREAK command. Insertions into lines of text which are being
constructed in fill mode are made after the line has otherwise been
completed, either when a command which implies a _.BREAK command is
encountered or when the first word which would overflow the line is
encountered. If the _.NO INSERT command is issued before the line
has been completed, then any groups of characters which would
otherwise have been available for insertion into the line will be
discarded instead.
.skip
For example, the source text
.skip
.nofill
.test page 8
_.output width 55
_.insert 7Hcommand
_.insert 6Hgroups
_.insert 3Hthe
The .NO INSERT $$$$$$$ discards $$$$$$ of characters
which were defined by $$$ .INSERT command, but which
_.no insert
remain unused.
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
.test page 4
    1 FORMAT(16H The .NO INSERT ,7Hcommand,9H discards,
     11H ,6Hgroups,22H of  characters  which/7H were  ,
     213Hdefined  by  ,28H  .INSERT  command,  but  wh,
     310Hich remain/8H unused.)
.skip
.fill
In the FORMAT statement shown above, merely a comma appears where
the word 3Hthe would have been inserted if the _.NO INSERT command
had not been issued.
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.NO JUSTIFY
.skip
The _.NO JUSTIFY command indicates that lines of text which are
constructed in fill mode are to have only one space between a pair
of words and two spaces between any of the punctuation marks colon,
semicolon, exclamation point, question mark and period and the
following word. If merely a single space is required between one of
these punctuation marks and the following word, then the punctuation
mark must be preceded by an underscore. The lines of text are not
extended to the right margin by the addition of extra spaces between
the words. The _.NO JUSTIFY command terminates the range of the
previous _.JUSTIFY command. A _.JUSTIFY command, which causes the
lines of text which are constructed in fill mode to be extended to
the right margin, is assumed to be in effect when this program is
started. A _.NO JUSTIFY or a _.JUSTIFY command issued within the
range of a _.PROGRAM command applies to the text following the next
_.BEGIN or _.FORMAT command. A _.NO JUSTIFY or a _.JUSTIFY command
issued within the range of a _.NO FILL command applies to the lines
of text constructed following the next _.FILL command. Both the _.NO
JUSTIFY command and the _.JUSTIFY command imply a _.BREAK command.
.skip
For example, the source text
.skip
.nofill
.test page 9
_.no justify.output width 55.right margin 55
_.offset 0.preface       WRITE(1,$)
Lines    of    text   which     are    constructed
   in  fill   mode,     but without justification,
 have   the   words wrapped  around          until
  the  next    word   would  extend         beyond
  the right margin,     but     the          lines
  are   not      of uniform length.
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 7
      WRITE(1,1)
    1 FORMAT(38HLines of text which are constructed in,
     115H fill mode, but/26Hwithout justification, hav,
     226He the words wrapped around/15Huntil the next ,
     334Hword would extend beyond the right/8Hmargin, ,
     440Hbut the lines are not of uniform length.)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 4
Lines of text which are constructed in fill mode, but
without justification, have the words wrapped around
until the next word would extend beyond the right
margin, but the lines are not of uniform length.
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.NO LEADING
.skip
The _.NO LEADING command indicates that blank lines requested by
_.BLANK, _.SKIP or _.PARAGRAPH commands are to be discarded if no
other text has been represented in the FORMAT statements since this
program was started or since a _.BEGIN command was issued. A _.NO
LEADING command is assumed to be in effect when this program is
started. Initial blank lines are represented only if a _.LEADING
command is issued before the blank lines are requested. Neither the
_.NO LEADING command nor the _.LEADING command implies a _.BREAK
command.
.skip
For example, the source text
.skip
.nofill
.test page 12
_.leading.paragraph.output width 55
Leading blank lines requested by .PARAGRAPH commands
are generated within the range of a .LEADING command
_.begin.skip
Leading blank lines requested by .SKIP commands are
generated within the range of a .LEADING command
_.begin.no leading.paragraph
Leading blank lines requested by .PARAGRAPH commands
are discarded within the range of a .NO LEADING command
_.begin.skip
Leading blank lines requested by .SKIP commands are
discarded within the range of a .NO LEADING command
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
.test page 12
    1 FORMAT(/6X,34HLeading blank lines requested  by ,
     121H .PARAGRAPH  commands/20H are generated withi,
     233Hn the range of a .LEADING command)
    2 FORMAT(/37H Leading  blank  lines  requested  by,
     124H  .SKIP   commands   are/17H generated within,
     232H the range of a .LEADING command)
    3 FORMAT(6X,35HLeading blank lines requested  by  ,
     120H.PARAGRAPH  commands/21H are discarded within,
     235H the range of a .NO LEADING command)
    4 FORMAT(38H Leading  blank  lines  requested  by ,
     123H .SKIP   commands   are/18H discarded within ,
     234Hthe range of a .NO LEADING command)
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.NO MASK
.skip
The _.NO MASK command indicates that the template line specified by
a previous _.MASK command is no longer to be superimposed onto each
line of text which is represented in the resulting FORMAT
statements. The _.NO MASK command is equivalent to a _.MASK command
issued without any text to its right. A _.NO MASK command is assumed
to be in effect when this program is started. Neither the _.NO MASK
command nor the _.MASK command implies a _.BREAK command. A _.BREAK
or _.EJECT command should be issued before the _.NO MASK or _.MASK
command unless it is really desired to change the template line
which is to be applied to the line which is currently being
accumulated in fill mode or to the blank lines which have not yet
been written out to the FORMAT statements.
.skip
For example, the source text
.skip
.nofill
.test page 9
_.output width 55.preface       WRITE(1,$)
_.left margin 5.right margin 45.carriage 1,*
_.mask  @                                              @
The .NO MASK command terminates the range of the
previous .MASK command.
_.mask  %                                              %
The .NO MASK command has no effect if a .MASK command
has not been issued.
_.nomask.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 7
      WRITE(1,1)
    1 FORMAT(38H1 @   The  .NO  MASK  command  termina,
     112Htes  the   @/29H* %   range  of  the  previou,
     221Hs  .MASK command.   %/20H* %   The .NO MASK c,
     330Hommand has no effect if  a   %/11H*     .MASK,
     429H command has not been issued.)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 4
1 @   The  .NO  MASK  command  terminates  the   @
* %   range  of  the  previous  .MASK command.   %
* %   The .NO MASK command has no effect if  a   %
*     .MASK command has not been issued.
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.NO OFFSET
.skip
The _.NO OFFSET command indicates that each line of text which is
represented in the FORMAT statements is not to be shifted further to
the right than is indicated by the combination of the _.LEFT MARGIN
and _.INDENT or _.PARAGRAPH commands. The _.NO OFFSET command is
equivalent to an _.OFFSET 0 command. An _.OFFSET 1 command is
assumed to be in effect when this program is started. Both the _.NO
OFFSET and _.OFFSET commands imply a _.BREAK command.
.skip
For example, the source text
.skip
.nofill
.test page 7
_.offset 1.indent 5.right margin 50.output width 55
_.preface       WRITE(1,$)
The default .OFFSET 1 command provides an empty column
for the carriage control character.
_.no offset.indent 5;The .NO OFFSET command prevents the
generation of this empty column.
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 7
      WRITE(1,1)
    1 FORMAT(6X,35HThe default .OFFSET  1  command  pr,
     110Hovides  an/31H empty column for the carriage ,
     218Hcontrol character./5X,20HThe   .NO   OFFSET  ,
     325H command   prevents   the/16Hgeneration of th,
     416His empty column.)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 4
      The default .OFFSET  1  command  provides  an
 empty column for the carriage control character.
     The   .NO   OFFSET   command   prevents   the
generation of this empty column.
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.NO PREFACE
.skip
The _.NO PREFACE command indicates that the preface line specified
by a previous _.PREFACE command is not to be generated before each
of the next FORMAT statements. The _.NO PREFACE command is
equivalent to a _.PREFACE command issued without any text to its
right. A _.NO PREFACE command is assumed to be in effect when this
program is started and after each new _.BEGIN command. Neither the
_.NO PREFACE command nor the _.PREFACE command implies either a
_.BREAK or a _.FORMAT command. The preface line specified by a
_.PREFACE command is not generated until enough lines of text have
been constructed to fill the first line of the next FORMAT
statement. If a _.NO PREFACE command is issued before enough lines
of text have been constructed to completely fill the first line of
the next FORMAT statement, then no preface line will be generated
even if a preface line was in effect when the first line of text
which is represented in the FORMAT statement was constructed.
.skip
For example, the source text
.skip
.test page 6
.nofill
_.preface       WRITE(1,$)
This is the first line
_.format
This is the second line
_.format.no preface
This is the third line
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
.test page 5
      WRITE(1,1)
    1 FORMAT(23H This is the first line)
      WRITE(1,2)
    2 FORMAT(24H This is the second line)
    3 FORMAT(23H This is the third line)
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.NO TRAILING
.skip
The _.NO TRAILING command indicates that the FORMAT statements are
not to include trailing blank lines resulting from _.SKIP or _.BLANK
commands issued after all other text has been represented in the
FORMAT statements and are not to include the blank lines implied by
multiple spacing after the final line of text represented in the
FORMAT statements. A _.NO TRAILING command is assumed to be in
effect when this program is first started. If, instead, a _.TRAILING
command has been issued more recently than a _.NO TRAILING command,
then each _.BEGIN command and the reading of the end of the file (or
the issuing of an _.END OF FILE command) generates all of the blank
lines which have been requested or which are necessary for multiple
line spacing following the final line of text represented in the
FORMAT statements. Neither the _.NO TRAILING command nor the
_.TRAILING command implies a _.BREAK command.
.skip
For example, the source text
.skip
.nofill
.test page 8
_.no trailing.spacing 1
This is the first line
_.skip.begin.spacing 2
This is the second line
_.begin.trailing.spacing 1
This is the third line
_.skip.begin.spacing 2
This is the fourth line
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
    1 FORMAT(23H This is the first line)
    2 FORMAT(24H This is the second line)
    3 FORMAT(23H This is the third line/)
    4 FORMAT(24H This is the fourth line/)
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.OFFSET number of spaces to be inserted at left edge of text
.skip
The _.OFFSET command indicates that each line of text which is
represented in the FORMAT statements is to be shifted to the right
by the insertion of the indicated number of extra spaces at the
left. If the number which follows the _.OFFSET command is unsigned,
then this number will be used as the number of extra spaces which
are to be inserted at the left end of each line in addition to the
spaces specified by the combination of _.LEFT MARGIN and _.INDENT or
_.PARAGRAPH commands. If the number which follows the _.OFFSET
command is signed, then the previous offset is adjusted by the
indicated amount. The carriage control character, if any, specified
by the _.CARRIAGE command will be superimposed upon the leftmost of
the spaces in the offset specified by the _.OFFSET command. A
template line specified by a _.MASK command would be applied to the
text to the right of the offset. A _.COPY command would duplicate
the characters to the right of the offset after application of the
template line, if any. An offset of 1 column which provides a space
as the carriage control character on each line is assumed to be in
effect when this program is started. No initial spaces other than
those specified by the combination of _.LEFT MARGIN and _.INDENT or
_.PARAGRAPH commands are inserted if an _.OFFSET 0 command or the
equivalent _.NO OFFSET command is issued. The _.OFFSET and _.NO
OFFSET commands both imply a _.BREAK command.
.skip
For example, the source text
.skip
.nofill
.test page 12
_.left margin 5.right margin 44.output width 55
_.preface       WRITE(1,$)
_.mask @                                               @
_.offset 1.indent 5.carriage 1,*
The offset specified by the .OFFSET command is in
addition to that specified by the .LEFT MARGIN
and .INDENT or .PARAGRAPH commands.
_.offset 6.indent 5.carriage 1,*
The offset specified by the .OFFSET command is in
addition to that specified by the .LEFT MARGIN
and .INDENT or .PARAGRAPH commands.
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 12
      WRITE(1,1)
    1 FORMAT(2H1@,9X,30HThe  offset   specified   by  ,
     19H the    @/33H*@    .OFFSET  command is in addi,
     217Htion to that    @/24H*@    specified  by  the,
     326H  .LEFT  MARGIN   and    @/15H*@    .INDENT o,
     422Hr .PARAGRAPH commands.,12X,1H@/7H1     @,9X,
     539HThe  offset   specified   by   the    @/3H*  ,
     63X,42H@    .OFFSET  command is in addition to th,
     77Hat    @/35H*     @    specified  by  the  .LEF,
     820HT  MARGIN   and    @/21H*     @    .INDENT or,
     921H .PARAGRAPH commands.,12X,1H@)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 8
1@         The  offset   specified   by   the    @
*@    .OFFSET  command is in addition to that    @
*@    specified  by  the  .LEFT  MARGIN   and    @
*@    .INDENT or .PARAGRAPH commands.            @
1     @         The  offset   specified   by   the    @
*     @    .OFFSET  command is in addition to that    @
*     @    specified  by  the  .LEFT  MARGIN   and    @
*     @    .INDENT or .PARAGRAPH commands.            @
.skip 2
.left margin 5
.test page 6
.fill
.indent -5
_.OUTPUT WIDTH most characters in each FORMAT statement line
.skip
The _.OUTPUT WIDTH command specifies the maximum number of
characters in each FORTRAN language line from which the FORMAT
statements are constructed, including the 5 characters in the
statement number field and the single character in the continuation
field. _.OUTPUT WIDTH 72 is the greatest width which can be
specified and is the default. The combination of the _.LENGTH
command and the _.OUTPUT WIDTH command set the maximum number of
characters in a single FORMAT statement, but do not otherwise
restrict the maximum number of lines of text which can be
represented in each FORMAT statement. The _.OUTPUT WIDTH command,
like most other commands which merely describe the manner in which
the text is represented in the FORMAT statements, does not imply a
_.BREAK command.
.skip
.test page 9
For example, the source text
.skip
.nofill
_.output width 35
The quick red fox jumps over the lazy brown dog,
then runs into the forest.
_.output width 45
The quick red fox jumps over the lazy brown dog,
then runs into the forest.
_.output width 55
.skip
.fill
.test page 9
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
    1 FORMAT(18H The quick red fox,
     125H jumps over the lazy brow,
     218Hn dog,  then  runs/13H into  the  f,
     335Horest.   The  quick  red fox jumps ,
     413Hover the lazy/28H brown dog, then runs into t,
     510Hhe forest.)
.fill
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.PARAGRAPH columns to indent, multiple of line spacing
.break
or
.indent -5
_.PARAGRAPH columns to indent, -1 times number of blank lines
.skip
The _.PARAGRAPH command indicates that the next line of text which
is represented in the FORMAT statements is to be indented by the
indicated number of spaces from the left margin which is effect when
the first word in the line is found. The indicated number of initial
spaces are added to the left margin if the first number following
the _.PARAGRAPH command is greater than or equal to zero. The
indicated number of spaces are deleted from the left margin if the
first number which follows the _.PARAGRAPH command is less than
zero. If the first number following the _.PARAGRAPH command is
missing, then the indentation specified by the previous _.PARAGRAPH
command will be applied or a positive indentation of 5 columns is
assumed if no previous _.PARAGRAPH command has specified a first
argument.
.skip
If the second argument following the _.PARAGRAPH command is greater
than or equal to zero, then a number of blank lines equal to the
specified multiple of the number which appeared to the right of the
previous _.SPACING command, or the specified number of blank lines
directly if a _.SPACING command has not yet been issued, are to be
represented in the FORMAT statement between the previous line of
text and the next line of text, in addition to any blank lines
specified by previous _.BLANK or _.SKIP commands, and, if a
_.SPACING command has been issued, in addition to a number of blank
lines equal to one less than the number which appeared to the right
of the previous _.SPACING command. If the second argument following
the _.PARAGRAPH command is less than zero, then the number of extra
blank lines is equal to the negative of the value specified by the
argument rather than to the multiple of the number which was
specified by the _.SPACING command. If the second argument following
the _.PARAGRAPH command is missing, then the second argument
specified by the previous _.PARAGRAPH command will be applied, or a
second argument of -1 indicating 1 extra blank line in addition to
the blank lines needed for the normal line spacing is assumed if no
previous _.PARAGRAPH command has specified a second argument. If no
text has been represented in the FORMAT statements either since the
start of the source was read or since the last _.BEGIN command was
issued, then the extra blank lines specified by the _.PARAGRAPH
command are not generated unless a _.LEADING command is in effect.
.skip
If the second argument following the _.PARAGRAPH command is greater
than zero, then the _.PARAGRAPH command is equivalent to the
combination of an _.INDENT command and a _.SKIP command. If the
second argument following the _.PARAGRAPH command is equal to zero,
then the _.PARAGRAPH command is equivalent to an _.INDENT command.
If the second argument following the _.PARAGRAPH command is less
than zero, then the _.PARAGRAPH command is equivalent to the
combination of an _.INDENT command and a _.BLANK command having as
its argument the second argument of the _.PARAGRAPH command without
its sign. If a _.SPACING 2 command is in effect, then a _.PARAGRAPH
5,3 command would result in (2-1)+(3*2) = 7 blank lines being
generated before the next line which would be indented 5 columns to
the right. A _.PARAGRAPH 5,-6 command would produce the same
results. The _.PARAGRAPH command implies a _.BREAK command.
.skip
For example, the source text
.skip
.nofill
.test page 16
_.output width 55.left margin 5.right margin 54
_.carriage 1,*.paragraph.preface       WRITE(1,$)
This line is at the start of the source and will only
be indented.
_.spacing 2.paragraph 10
(spacing-1)-(negative argument) = (1-1)-(-1) = 1 blank
line since the default .SPACING 1 command was in effect
at the end of the previous line.
_.paragraph
(2-1)-(-1) = 2 blank lines precede this paragraph since
the .SPACING 2 command was in effect at the end of the
previous line.
_.paragraph -5,2
(spacing-1)+(spacing*(positive argument)) = (2-1)+(2*2)
= 5 lines precede this paragraph.
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 14
      WRITE(1,1)
    1 FORMAT(1H1,10X,30HThis line is at the start of t,
     114Hhe source  and/27H*     will only be indented,
     21H./1H*/1H*,15X,29H(spacing-1)-(negative    argu,
     310Hment)    =/1H*/27H*     (1-1)-(-1)  =  1  bla,
     428Hnk  line  since  the default/1H*/9H*     .SP,
     545HACING 1 command was in effect at  the  end  o,
     61Hf/1H*/24H*     the previous line./1H*/1H*/1H*,
     715X,39H(2-1)-(-1) = 2 blank lines precede this/
     81H*/41H*     paragraph  since  the  .SPACING  2 ,
     914Hcommand was in/1H*/23H*     effect at the end,
     122H of the previous line./1H*/1H*/1H*/1H*/1H*/
     231H*(spacing-1)+(spacing*(positive,6X,8Hargument,
     32H)),7X,1H=/1H*/29H*     (2-1)+(2*2) = 5 lines p,
     422Hrecede this paragraph.)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 25
1          This line is at the start of the source  and
*     will only be indented.
*
*               (spacing-1)-(negative    argument)    =
*
*     (1-1)-(-1)  =  1  blank  line  since  the default
*
*     .SPACING 1 command was in effect at  the  end  of
*
*     the previous line.
*
*
*               (2-1)-(-1) = 2 blank lines precede this
*
*     paragraph  since  the  .SPACING  2 command was in
*
*     effect at the end of the previous line.
*
*
*
*
*
*(spacing-1)+(spacing*(positive      argument))       =
*
*     (2-1)+(2*2) = 5 lines precede this paragraph.
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.PREFACE line of text to precede each new FORMAT statement
.skip
The line of text which follows the _.PREFACE command on the same
line is to be copied into the output file unchanged before each new
FORMAT statement which is generated. The character to the immediate
right of the _.PREFACE command must be a space. The line of text
which is to be copied into the output file before each new FORMAT
statement starts with the second character to the right of the
_.PREFACE command, whether or not this is a printing character, and
extends through the rightmost printing character on the line. A
_.PREFACE command issued within the range of a _.PROGRAM command
applies to the source text following the next _.FORMAT command. No
line of text will be copied into the output file before each new
FORMAT statement if the _.PREFACE command is issued without any
following characters, or if a _.NO PREFACE or a _.BEGIN command has
been issued more recently than a _.PREFACE command, or if a
_.PREFACE command has not been issued since this program was
started. Neither the _.PREFACE command nor the _.NO PREFACE command
implies a _.BREAK command.
.skip
The _.PREFACE command would typically be used to insert single line
FORTRAN language WRITE statements before each of the FORMAT
statements which represents portions of a long section of text. In
the line of text specified by the _.PREFACE command, all groups of
contiguous dollar signs which are not preceded by underscores will
be replaced each time the line of text is copied into the output
file by the statement number of the following FORMAT statement. If
the group of dollar signs contains more dollar signs than there are
digits in the number, then additional spaces are inserted to the
left of the statement number so that the total number of characters
which are inserted equals the number of dollar signs in the group.
If the group of dollar signs does not contain more dollar signs than
there are digits in the number, then all of the digits are
represented, but no extra spaces are inserted.
.skip
Within the text specified by the _.PREFACE command, an underscore
character, which will not be copied into the output file, can appear
before any character, such as a number sign, circumflex, back slash,
less than sign (if in flag capitalize mode), a dollar sign or
another underscore, which is to be treated as a nonflag character.
The _.PREFACE command cannot be followed on the same line either by
a comment or by another command, so semicolons and exclamation
points in the line of text specified by the _.PREFACE command do not
need to be preceded by underscores.
.skip
For example, the source text
.skip
.nofill
.test page 5
_.length 2.output width 55.right margin 30.
_.preface       IF(KONTRL.EQ.1)WRITE(1,$$$)
The .PREFACE command allows several FORMAT statements
representing a single section of text to be used under
the same conditions.
.skip
.fill
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
.test page 8
      IF(KONTRL.EQ.1)WRITE(1,  1)
    1 FORMAT(31H The  .PREFACE  command  allows/4H sev,
     127Heral    FORMAT   statements)
      IF(KONTRL.EQ.1)WRITE(1,  2)
    2 FORMAT(31H representing a single  section/4H of ,
     127H text  to be used under the)
      IF(KONTRL.EQ.1)WRITE(1,  3)
    3 FORMAT(17H same conditions.)
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.PROGRAM next statement number, statement number increment
.skip
The _.PROGRAM command indicates that no additional text is to be
represented by the FORMAT statement currently being constructed and
that the source text appearing on the following lines of the input
file, through the next _.BEGIN or _.FORMAT command or through the
reading of the end of the file (or the issuing of an _.END OF FILE
command) is to be copied into the output file unchanged rather than
being represented in a FORMAT statement. No extra spaces are
inserted at the start of the lines within the range of the _.PROGRAM
command regardless of whether an _.OFFSET command has been issued,
and no extra blank lines are inserted between these lines even if a
_.SPACING command has been issued. Case conversions and removal of
underscores before characters to be copied literally continue to be
performed within the range of the _.PROGRAM command, and dollar
signs are replaced, as described below, by the number of the next
FORMAT statement which can be generated.
.skip
In the lines within the range of the _.PROGRAM command, an
underscore character, which will not be copied into the output file,
can appear before any character, such as a number sign, circumflex,
back slash, less than sign (if in flag capitalize mode), dollar
sign, another underscore, initial period, or rightmost space, which
is to be treated as though it were an ordinary printing character.
All lines beginning with a period in the left column will be
interpreted as commands. In order to output a line starting with a
period, this period must be preceded by an underscore character.
.skip
In the noncommand lines following the _.PROGRAM command, all groups
of contiguous dollar signs which are not preceded by underscore
characters will be replaced by the statement number of the FORMAT
statement which would be generated when either a _.BEGIN or a
_.FORMAT command is next encountered. If the group of dollar signs
contains more dollar signs than there are digits in the number, then
additional spaces are inserted to the left of the statement number
so that the total number of characters which are inserted equals the
number of dollar signs in the group. If the group of dollar signs
does not contain more dollar signs than there are digits in the
number, then all of the digits are represented, but no extra spaces
are inserted.
.skip
The numbers which can follow the _.PROGRAM command are identical to
those which can follow the _.BEGIN and _.FORMAT commands. The first
number which can follow any of these commands modifies the statement
number of the next FORMAT statement. The second number which can
follow any of these commands becomes the statement number increment
after the generation of the next FORMAT statement. The description
of the _.FORMAT command describes the interpretation of these
numbers in detail. If the statement number of the FORMAT statement
following a section of program text indicated by an initial
_.PROGRAM command is to be modified, but the program text includes
dollar signs which are to be replaced by this statement number, then
this statement number should be modified by the _.PROGRAM command
rather than by the following _.BEGIN or _.FORMAT command, since, if
the modification is done by the _.BEGIN or _.FORMAT command, then
incorrect statement numbers will have been inserted into the program
text.
.skip
.test page 12
For example, the source text
.skip
.nofill
_.spacing 2.output width 55.offset 0
_.begin 10,10   ;Statement ten
_.program       ;Next statement will be number $$$.
_.format        ;Statement twenty
_.program+5,100 ;Next statement will be number $$.
_.trail         !blank lines will now end statements
__.Underscore before initial period and dollar sign __$.
_.format        ;Statement twenty-five
_.program       ;Next statement will be number $.
_.format        ;Statement one hundred and twenty-five
.skip
.fill
.test page 11
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
   10 FORMAT(13HStatement ten)
Next statement will be number  20.
   20 FORMAT(/16HStatement twenty)
Next statement will be number 25.
_.Underscore before initial period and dollar sign $.
   25 FORMAT(/21HStatement twenty-five/)
Next statement will be number 125.
  125 FORMAT(37HStatement one hundred and twenty-five/)
.fill
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.RESET
.skip
The _.RESET command returns all conditions which can be changed by
commands and by case shift locks in the source text to their
original settings. If additional text appears on the same line to
the right of the _.RESET command then the original set of flag
characters will be recognized in this additional text, and the cases
of alphabetic letters will be retained at the start of this
additional text. The width of the line in which the _.RESET command
is found is set by the input line width in effect when the line was
read, but the next line read from the source file will be of the
original width.
.skip
The following commands are implied by the _.RESET command.
.left margin 10
.skip
.nofill
_.BEGIN 1,1
_.FILL
_.FLAGS ALL
_.FLAGS CONTROL __.
_.FLAGS FENCE __;
_.FLAGS INSERT $
_.FLAGS LOWER CASE ___\
_.FLAGS QUOTE ____
_.FLAGS REMARK __!
_.FLAGS SPACE ___#
_.FLAGS UPPER CASE ___^
_.INPUT WIDTH 132 (applies to next line read)
_.JUSTIFY
_.LEFT MARGIN 0
_.LENGTH 20
_.NO CARRIAGE
_.NO COPY
_.NO FLAGS CAPITALIZE
_.NO INSERT
_.NO LEADING
_.NO MASK
_.NO PREFACE
_.NO TRAILING
_.OFFSET 1
_.OUTPUT WIDTH 72
_.RIGHT MARGIN 60
_.SPACING 1
_.UPPER CASE
_.USE H
.left margin 5
.skip
.fill
A subsequent _.PARAGRAPH command issued without arguments would be
assumed to be equivalent to _.PARAGRAPH 5,-1.
.skip 2
.left margin 5
.test page 6
.fill
.indent -5
_.RIGHT MARGIN righmost column into which text is wrapped
.skip
The _.RIGHT MARGIN command specifies the maximum number of
characters in each line of text which is constructed in fill mode,
including the left margin specified by the _.LEFT MARGIN command,
the indentation which is specified either by an _.INDENT or a
_.PARAGRAPH command, and the words of text and the spacings between
words which are accumulated on the current line either until the
next word would cause the total number of characters in the line to
exceed the right margin specified by the _.RIGHT MARGIN command or
until a command which implies a _.BREAK command is encountered. If
the number which follows the _.RIGHT MARGIN command is unsigned,
then this number will be used as the right margin. The right margin
is assumed to be 60 if a _.RIGHT MARGIN command has not yet been
encountered. If the number which follows the _.RIGHT MARGIN command
is signed, then the previous right margin is adjusted by the
indicated amount. If no number follows the _.RIGHT MARGIN command
then the right margin is reset to the farthest right margin which it
has yet been set. The _.RIGHT MARGIN command implies a _.BREAK
command.
.skip
The right margin is the maximum length of the line of text before
the application of the template line specified by a _.MASK command
and before the line is duplicated by a _.COPY command. The right
margin does not include the leftmost spaces specified by the
_.OFFSET command or the single left space which is obtained if
neither the _.OFFSET command nor the _.NO OFFSET command has been
issued. The combination of the right margin and the initial offset
specified by the _.OFFSET command cannot exceed 300. The right
margin is always assumed to be large enough for the current line to
include at least 1 word. The right margin is ignored if the lines of
text are being represented in no fill mode.
.skip
For example, the source text
.skip
.nofill
.test page 8
_.output width 55.carriage 1,*.preface       WRITE(1,$)
_.left margin 5.right margin 30.indent 5
The .RIGHT MARGIN command implies a .BREAK command.
_.right margin 40.indent -5
The .RIGHT MARGIN command applies only to text which is
constructed in fill mode.
_.nofill;The right margin is ignored in no fill mode.
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 8
      WRITE(1,1)
    1 FORMAT(1H1,10X,20HThe  .RIGHT   MARGIN/7H*     c,
     124Hommand  implies a .BREAK/14H*     command./
     241H*The .RIGHT MARGIN command  applies  only/1H*,
     35X,35Hto  text  which  is  constructed in/4H*   ,
     412H  fill mode./29H*     The right margin is ign,
     521Hored in no fill mode.)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 7
1          The  .RIGHT   MARGIN
*     command  implies a .BREAK
*     command.
*The .RIGHT MARGIN command  applies  only
*     to  text  which  is  constructed in
*     fill mode.
*     The right margin is ignored in no fill mode.
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.SKIP multiple of extra line spacings to be generated
.skip
The _.SKIP command indicates that, after the representation in the
FORMAT statement of the previous text, a number of blank lines equal
to the specified multiple of the number which appeared to the right
of the previous _.SPACING command, or the specified number of blank
lines directly if a _.SPACING command has not yet been issued, are
to be represented in the FORMAT statement, in addition to any blank
lines specified by other _.BLANK or _.SKIP commands, and, if a
_.SPACING command has been issued, in addition to a number of blank
lines equal to one less than the number which appeared to the right
of the previous _.SPACING command. If no number appears to the right
of the _.SKIP command, then the number 1 is assumed to appear to the
right of the _.SKIP command instead. If a _.SPACING 2 command is in
effect, then a _.SKIP 3 command would result in (3*2)+(2-1) or 7
blank lines being generated. The _.SKIP command is similar to the
_.BLANK command, except that the _.BLANK command always specifies
the number of extra blank lines directly. The _.SKIP command implies
a _.BREAK command.
.skip
If no text has been represented in the FORMAT statements either
since this program was started or since the last _.BEGIN command was
issued, then the _.SKIP command, like the _.BLANK command and the
_.SKIP or _.BLANK command implied by the _.PARAGRAPH command, is
ignored unless a _.LEADING command is in effect. Blank lines which
have not been generated when the end of the source file is read or
when the next _.BEGIN command is issued, but which have been
requested by _.SKIP or _.BLANK commands or which are necessary for
the normal line spacing, will be appended to the FORMAT statement
being constructed if a _.TRAIL command is then in effect. Blank
lines will be discarded when the end of the source file is read or
the next _.BEGIN command is issued if a _.NO TRAIL command is then
in effect or if a _.TRAIL command has not by then been issued.
.skip
.test page 15
For example, the source text
.skip
.nofill
_.spacing 2.output width 55
_.skip
The quick red fox jumps over the lazy brown dog,
then runs into the forest.
_.skip
The quick red fox jumps over the lazy brown dog,
then runs into the forest.
_.skip 2
The quick red fox jumps over the lazy brown dog,
then runs into the forest.
_.skip 3
The quick red fox jumps over the lazy brown dog,
then runs into the forest.
.skip
.fill
.test page 11
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
    1 FORMAT(38H The quick red fox jumps over the lazy,
     123H brown dog,  then  runs//17H into the forest./
     2///42H The quick red fox jumps over the lazy bro,
     319Hwn dog,  then  runs//17H into the forest./////
     4/44H The quick red fox jumps over the lazy brown,
     517H dog,  then  runs//17H into the forest.///////
     6/44H The quick red fox jumps over the lazy brown,
     717H dog,  then  runs//17H into the forest.)
.fill
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.SPACING separation from top of one line to top of next line
.skip
The _.SPACING command specifies the separation from the top of one
line of text to the top of the next line of text when the resulting
FORMAT statements are used. The number specified by the _.SPACING
command is one greater than the number of blank lines which are to
separate lines of text which are constructed in fill mode or which
are copied in no fill mode. The intervening blank lines which are
required when the _.SPACING command has specified a value greater
than 1 are generated after each line of text, not before. No blank
lines follow the final line of text unless a _.TRAILING command is
in effect. The _.SPACING command implies a _.BREAK command. A
_.SPACING 1 command which gives single spacing with no intervening
blank lines is assumed to be in effect when this program is started.
If a line of text is being constructed when the _.SPACING command is
encountered, then the number of blank lines which follow that line
of text is determined by the line spacing which was in effect during
the construction of that line of text, not by the newly specified
spacing.
.skip
For example, the source text
.skip
.nofill
.test page 11
_.output width 55.right margin 54
_.carriage 1,*.preface       WRITE(1,$)
A .SPACING 1 command is assumed to be in effect when
this program is started.
_.spacing 2
No blank lines precede this since the .SPACING 2
command forced out previous line before taking effect.
_.blank 2;Normal spacing and 2 blank lines
_.skip 2;Normal spacing and 2 multiples of 2 blank lines
_.paragraph 5,2;Paragraph similar to .skip 2.indent 5
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 11
      WRITE(1,1)
    1 FORMAT(38H1A .SPACING 1 command is assumed to be,
     117H in  effect  when/24H*this program is started,
     21H./41H*No blank lines  precede  this  since  th,
     314He  .SPACING  2/1H*/23H*command forced out pre,
     432Hvious line before taking effect./1H*/1H*/1H*/
     533H*Normal spacing and 2 blank lines/1H*/1H*/1H*/
     61H*/1H*/37H*Normal spacing and 2 multiples of 2 ,
     711Hblank lines/1H*/1H*/1H*/1H*/1H*/10H*     Para,
     833Hgraph similar to .skip 2.indent 5)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 21
1A .SPACING 1 command is assumed to be in  effect  when
*this program is started.
*No blank lines  precede  this  since  the  .SPACING  2
*
*command forced out previous line before taking effect.
*
*
*
*Normal spacing and 2 blank lines
*
*
*
*
*
*Normal spacing and 2 multiples of 2 blank lines
*
*
*
*
*
*     Paragraph similar to .skip 2.indent 5
.skip 2
.left margin 5
.fill
.test page 6
.indent -5
_.TRAILING
.skip
The _.TRAILING command indicates that the FORMAT statements are to
include blank lines resulting from _.SKIP or _.BLANK commands issued
after all text has been represented in the FORMAT statements and are
to include the blank lines necessary for multiple line spacing
following the final line of text represented in the FORMAT
statements. If a _.TRAILING command has not been issued, or if a
_.NO TRAILING command has been issued more recently than a
_.TRAILING command, then each _.BEGIN command and the reading of the
end of the file (or the issuing of an _.END OF FILE command) instead
discards all blank lines which did not precede text which has been
represented in the FORMAT statements. Neither the _.TRAILING command
nor the _.NO TRAILING command implies a _.BREAK command.
.skip
.test page 15
For example, the source text
.skip
.nofill
_.spacing 2.output width 55.use'.offset 0.begin 10
The quick red fox jumps over the lazy brown dog,
then runs into the forest.
_.begin 20
The quick red fox jumps over the lazy brown dog,
then runs into the forest.
_.skip.begin 30.trail
The quick red fox jumps over the lazy brown dog,
then runs into the forest.
_.begin 40
The quick red fox jumps over the lazy brown dog,
then runs into the forest.
_.skip
.skip
.fill
.test page 11
would be transformed into the following FORTRAN text when processed
by this program.
.nofill
.skip
   10 FORMAT('The quick red fox jumps over the lazy b',
     1'rown dog,  then  runs'//'into the forest.')
   20 FORMAT('The quick red fox jumps over the lazy b',
     1'rown dog,  then  runs'//'into the forest.')
   30 FORMAT('The quick red fox jumps over the lazy b',
     1'rown dog,  then  runs'//'into the forest.'/)
   40 FORMAT('The quick red fox jumps over the lazy b',
     1'rown dog,  then  runs'//'into the forest.'///)
.fill
.skip 2
.fill
.left margin 5
.test page 6
.indent -5
_.UPPER CASE
.skip
The _.UPPER CASE command indicates that the cases of all alphabetic
letters which are not specially marked are to be retained in the
source text which follows the end of the command or, if the _.UPPER
CASE command is followed by a comment, in the source text which
follows the comment. Regardless of the issuing of the _.UPPER CASE
command, any letter which is preceded by a back slash is still
converted to its lower case form, any letter which is preceded by a
circumflex is still converted to its upper case form, and, providing
that a _.FLAGS CAPITALIZE command has been issued, any letter which
is in a word which is preceded by a less than sign is also converted
to its upper case form. The _.UPPER CASE command is equivalent to
the appearance of 2 consecutive circumflexes except that the 2
circumflexes can appear anywhere and that the retention of cases
indicated by the 2 circumflexes is applied immediately to all of the
following text. An _.UPPER CASE command is assumed to be in effect
when this program is started. Upper case letters will instead be
converted to their lower case forms if the _.LOWER CASE command or
the equivalent 2 consecutive back slashes are issued. Neither the
_.UPPER CASE command nor the _.LOWER CASE command implies a _.BREAK
command.
.skip
For example, the source text
.skip
.nofill
.test page 11
_.offset 0.right margin 55.output width 55
_.flags capitalize.preface       WRITE(1,$)
An <.upper _^c_^a_^s_^e _\C_\O_\M_\M_\A_\N_\D does not have to be
issued when this program is first started.
_.lower case
_^A <.LOWER _^C_^A_^S_^E _\C_\O_\M_\M_\A_\N_\D CAN BE ISSUED TO
CAUSE CONVERSION TO LOWER CASE.
_.upper case
The <.upper _^c_^a_^s_^e _\C_\O_\M_\M_\A_\N_\D can, of course, be
reissued at any time.
_.program;      END
.skip
.fill
would, when processed by this program, be transformed into the
following FORTRAN text
.skip
.nofill
.test page 8
      WRITE(1,1)
    1 FORMAT(38HAn .UPPER CASE command does not have t,
     117Ho be issued  when/24Hthis  program  is first ,
     231Hstarted.  A .LOWER CASE command/10Hcan be iss,
     345Hued to cause conversion to lower  case.   The/
     445H.UPPER  CASE command can, of course, be reiss,
     510Hued at any/5Htime.)
      END
.skip
.fill
which would, in turn, generate the following text when run.
.skip
.nofill
.test page 5
An .UPPER CASE command does not have to be issued  when
this  program  is first started.  A .LOWER CASE command
can be issued to cause conversion to lower  case.   The
_.UPPER  CASE command can, of course, be reissued at any
time.
.skip 2
.left margin 5
.test page 6
.fill
.indent -5
_.USE character implying text representation notation
.skip
The _.USE command specifies the notation which is to be used to
represent the text in the FORMAT statements being generated. If the
next printing character following the _.USE command is either an
upper or lower case letter H, then the text will be represented in
Hollerith notation as the number of characters followed by the
letter H in the case indicated and then by the characters of the
text. If the next printing character following the _.USE command is
not the letter H, then that character will be appended to both ends
of the text and will be doubled wherever it appears within the text.
_.USE' would select apostrophe notation, and _.USE* would select the
asterisk notation used by some computers which do not include the
aspostrophe in their character sets. The _.USE command, like most
other commands which merely describe the manner in which the text is
represented in the FORMAT statements, does not imply a _.BREAK
command.
.skip
One or more spaces can appear between the _.USE command and the
following printing character, but are not required. In order for a
space, number sign, circumflex, back slash, less than sign (if in
flag capitalize mode), period, semicolon, exclamation point or
underscore to be specified by the _.USE command as the delimiting
character, this character would have to be preceded by an underscore.
.skip
.test page 7
For example, the source text
.skip
.nofill
_.out width 55;one * two ** three ' four '' five
_.break.use'  ;one * two ** three ' four '' five
_.break.use * ;one * two ** three ' four '' five
_.break.useH  ;one * two ** three ' four '' five
_.break.use h ;one * two ** three ' four '' five
.skip
.fill
.test page 8
would be transformed into the following FORTRAN text when processed
by this program.
.skip
.nofill
    1 FORMAT(34H one * two ** three ' four '' five/' ',
     1'one * two ** three '' four '''' five'/* one ***,
     2* two **** three ' four '' five*/12H one * two *,
     322H* three ' four '' five/19h one * two ** three,
     415h ' four '' five)
.fill
.skip 2
.test page 8
.fill
.left margin 0
The FORMAT program and this documentation were written at the
Harvard Business School by Donald E_. Barth, who can be reached at
the following address.
.skip
.nofill
Baker Library 21
Graduate School of Business Administration
Harvard University, Soldiers Field
Boston, Massachusetts  02163