<!ENTITY scriptL "<emphasis>L</emphasis>">
<!ENTITY scriptN "<emphasis>M</emphasis>">
<!ENTITY scriptS "<emphasis>S</emphasis>">
-<!-- also available; script H is ℋ -->
]>
<book>
<preface><title>Notes from the 21st century</title>
computed-transfer statement are not implemented. Neither are ERROR
RETURN, multiple ENTRY points, or TAPE and DRUM statements.</para>
-<para>All external function definition must precede
+<para>All external function definitions must precede
the program main line.</para>
<para>The generated C is self-contained and does not require any
of the items A, B, and the words "diamonds" and "rectangles" in item
D were corresponding shapes.</para>
-<para>The pic diagrams preserve the logic of the original hand-drawn
+<para>The PIC diagrams preserve the logic of the original hand-drawn
ones, but are not exact geometrical duplicates. The proportions of
the flowchart elements are slightly different.</para>
ε<subscript>2</subscript>, and stop the iteration when the
following condition is satisfied:</para>
-<blockquote><para>
+<blockquote role='centered'><para>
(|x<subscript>i+1</subscript> - x<subscript>i</subscript>| < ε<subscript>1</subscript>
and
-|f(x<subscript>i</subscript>| < ε<subscript>2</subscript>)
+|f(x<subscript>i</subscript>)| < ε<subscript>2</subscript>)
or
i ≤ n<subscript>0</subscript>
</para></blockquote>
<para>Examples:</para>
-<literallayout>
-(1) .ABS.(B - C) means |B - C|, while .ABS.B - C means |B| - C.
-(2) -B + C means (-B) + (C), while -(B + C) means the negation of
-the sum.
-(3) B.P. - X + Y means B<superscript>-X</superscript> + Y, while B.P.(-X + Y) means B<superscript>-X</superscript>+Y.
-(4) K2/Z - 3 (K2/Z) - 3, while K2/(Z - 3) implies that Z - 3 is
-the denominator.
-(5) A * B + C means (A * B) + C.
-(6) A.P.3/J means (A<superscript>3</superscript>)/J
-(7) X.L. Y + 3 means (X) .L. (Y + 3).
-(8) P.AND..NOT.P .EQV.Q means (P.AND.(.NOT.P)).EQV.Q.
-(9) Z = X + Y /QA means Z = (X + Y/QA))
-(10) A = -B.P.X means A = -(B<superscript>X</superscript>).
-</literallayout>
+<orderedlist>
+<listitem><para>.ABS.(B - C) means |B - C|, while .ABS.B - C means |B| - C.</para></listitem>
+<listitem><para>-B + C means (-B) + (C), while -(B + C) means the negation of the sum.</para></listitem>
+<listitem><para>B.P. - X + Y means B<superscript>-X</superscript> + Y, while B.P.(-X + Y) means B<superscript>-X</superscript>+Y.</para></listitem>
+<listitem><para>K2/Z - 3 (K2/Z) - 3, while K2/(Z - 3) implies that Z -
+3 is denominator.</para></listitem>
+<listitem><para>A * B + C means (A * B) + C.</para></listitem>
+<listitem><para>A.P.3/J means (A<superscript>3</superscript>)/J</para></listitem>
+<listitem><para>X.L. Y + 3 means (X) .L. (Y + 3).</para></listitem>
+<listitem><para>P.AND..NOT.P .EQV.Q means (P.AND.(.NOT.P)).EQV.Q.</para></listitem>
+<listitem><para>Z = X + Y /QA means Z = (X + Y/QA))</para></listitem>
+<listitem><para>A = -B.P.X means A = -(B<superscript>X</superscript>).</para></listitem>
+</orderedlist>
<para>(B) Within an expression operations appearing on the same line
of the list in (A) are to be performed from left to right, unless
<!-- beginpage -->
<para>Examples:</para>
-<literallayout>
-(1) A + B - C + D - E means (((A + B) - C) + D) - E.
-(2) X/Z * Y/R * S means (((X/Z) * Y/R) * S.
-</literallayout>
+<orderedlist>
+<listitem><para>A + B - C + D - E means (((A + B) - C) + D) - E.</para></listitem>
+<listitem><para>X/Z * Y/R * S means (((X/Z) * Y/R) * S.</para></listitem>
+</orderedlist>
</sect2>
<sect2 id='expression_modes'><title>Mode of Expressions</title>
variable name. &scriptN; is an expression whose value is to be either
a tape number or a drum number. &scriptL; is an input-output list.
Elements of &scriptL; may be: 1) single variable names or array names
-with subscripts;, 2) blocks of the form A(i<subscript>;i</subscript>;,
-..., i<subscript>;n</subscript>;) ... A(j<subscript>;i</subscript>;,
-...j<subscript>;n</subscript>;) where the i's and j's may be any
-subscript ;expression and n # 1. In addition, when &scriptL;
+with subscripts;, 2) blocks of the form A(i<subscript>i</subscript>,
+..., i<subscript>n</subscript>) ... A(j<subscript>i</subscript>,
+...j<subscript>n</subscript>) where the i's and j's may be any
+subscript expression and n ≥ 1. In addition, when &scriptL;
designates an output list, the elements of &scriptL; may be: 3)
constants or 4) expressions. Elements of a list are separated by
commas. Example of an output list: AB, D, 2.5, MTX(1) ... MTX(N),
move to the next line before printing, as will be seen from the
following table. In each case the carriage control character is
effective before the rest of the specification is carried out.</para>
+
+<informaltable frame='none' colsep='0' rowsep='0' role='centered'>
+<tgroup cols='2'>
+<tbody>
+<row><entry>Blank </entry> <entry>Single space</entry></row>
+<row><entry>0 </entry> <entry>Double space</entry></row>
+<row><entry>+ </entry> <entry>No space</entry></row>
+<row><entry>1 </entry> <entry>Skip to next page</entry></row>
+<row><entry>2 </entry> <entry>Skip to next half-page</entry></row>
+<row><entry>4 </entry> <entry>Skip to next quarter page</entry></row>
+</tbody>
+</tgroup>
+</informaltable>
+
+<para>As another example, the specification</para>
+
+<para role='centered'>
+6H1PHI = F6.3^*
+</para>
+
+<para>would cause a skip to the next page (because the first character is a
+"1"), and cause "PHI =" to be printed, followed by a fixed point
+number. As will be explained below, the "6H" that appears in the
+specification indicates that 6 Hollerith (or BCD) characters follow,
+e.g., "1PHI =". Note that blanks are counted as characters here. It
+should be understood that this special behavior with regard to column
+1 pertains to lines that are to be printed (either on-line or
+off-line), and not at all to cards.</para>
+
+</sect3>
+<sect3><title>The Basic Field Description</title>
+
+<para>Each specification describes successive fields across the available
+columns, starting fromthe left. If the specification describes fewer
+than the total number of available columns, the line (or card) will
+automatically be filled in with blanks. But, as indicated above, if
+more than the total number of available columns is included in the
+specification, an error return (see section 2.14.1) will result.</para>
+
+<para>The basic field description consists of a letter followed by an
+integer. The letter indicates the form of the information in the
+external medium as follows:</para>
+
+<informaltable frame='none' colsep='0' rowsep='0'>
+<tgroup cols='2'>
+<tbody>
+<row><entry>S</entry> <entry>Skip (or blank information)</entry></row>
+<row><entry>I</entry> <entry>Integer</entry></row>
+<row><entry>F</entry> <entry>Fixed point number (Internally floating point)</entry></row>
+<row><entry>E</entry> <entry>Floating point number</entry></row>
+<row><entry>K</entry> <entry>Octal number</entry></row>
+<row><entry>C</entry> <entry>Characters</entry></row>
+</tbody>
+</tgroup>
+</informaltable>
+
+<para>(For the purposes of input-output the Boolean values 0B, 1B are
+considered as integers and will be punched in cards and appear in
+print as 0, 1.) The integer indicates the size of the field; i.e.,
+the number of available columns to be used. For example, K3 indicates
+a 3-column octal field, C23 indicates a 23-column character field,
+andf S31 indicates a blank field of 31 columns.</para>
+
+<para>For F and E fields, i.e., fixed and floating point numbers, there is
+always the question of the placement of the decimal point, the form of
+the numbers, etc. in addition to the field size.</para>
+
+<para>For this reason, the basic field description for E and F fields
+requires an additional integer giving the number of places after the
+decimal point that are to be rounded and printed (or read, or
+punched). This integer is always taken <emphasis> mod 10 </emphasis>.
+For example, the specificaiton (F20.3) and the specification (F20.13)
+both describe a twenty column fixed point field in which a number will
+occur with three digits to the right of the decimal point. The
+decimal point <emphasis> in the specification itself </emphasis> must
+always be present for E and F fields.</para>
+
+<para>Within the <emphasis> numeric </emphasis> type fields, E, F, I, and K,
+"+" signs are not printed or punched, nor are they necessary on input
+cards. However, "-" signs may not be omitted on input, and are always
+printed and punched. If the field description gives a field size
+larger than the number requires, the number is pushed as far right as
+possible. If the field size given in a specification is too small,
+information is printed, punched, or read from the <emphasis> right
+</emphasis> end of the field until the field is exhausted, and the
+left end of the number is truncated, including sign. It is important,
+therefore, to be sure to provide a large enough field to handle the
+information required. In fact, some spacing can be achieved by giving
+large field sizes, since blanks automatically occur to the left of a
+number pushed to the right end of an over-sized field.</para>
+
+</sect3>
+<sect3><title>The Form of the Number</title>
+
+<para>Integers (I fields) and octal numbers (K fields) are printed, punched,
+etc., directly, without any decimal point. Numbers <emphasis> printed
+</emphasis> or <emphasis> punched in E fields </emphasis> have the
+form (if 5 decimal places are requested, for example):</para>
+
+<para role='centered'>
++0.x<subscript>1</subscript>x<subscript>2</subscript>x<subscript>3</subscript>x<subscript>4</subscript>x<subscript>5</subscript>E±n<subscript>1</subscript> n<subscript>2</subscript>
+</para>
+
+<para>where n<subscript>1</subscript>n<subscript>2</subscript> is the
+exponent. On <emphasis>input cards</emphasis> numbers in E fields
+must have an exponent of the form</para>
+
+<para role='centered'>
+E±n<subscript>1</subscript>n<subscript>2</subscript>
+</para>
+
+<para>although if the sign is punched, the "E" may be omitted. Similarly,
+if the "E" is punched, a "+" may be omitted, as well as a leading zero
+in the exponent. The exponent must be counted in the field size.</para>
+
+<para>Numbers to be <emphasis> printed or punched </emphasis> in
+<emphasis> F fields </emphasis> have the form (if 5 decimals digits
+are requested, for example):</para>
+
+<para role='centered'>
+±x<subscript>1</subscript>x<subscript>2</subscript>x<subscript>3</subscript>x<subscript>4</subscript>x<subscript>5</subscript>x<subscript>6</subscript>x<subscript>7</subscript>x<subscript>8</subscript>
+</para>
+
+<para>although "+" signs are not printed. <emphasis> On input cards
+</emphasis> "+" signs may be omitted, but not "-".</para>
+
+<para>On both E and F input data on cards, blanks are regarded as
+zeros, and any number of digits may be used, but only 8 digits of
+accuracy are retained. Moreover, E and F input data need not have the
+decimal point punched. If the decimal point is not punched, the field
+specification determines its position. For example, the punched
+number +9032 described by the specification F10.2 would be understood
+to be the number +90.32 because the 2 in the specification indicates 2
+decimal places to the right of the point. Similarly, the punched
+number +9032E3 described by the specification E10.4 would be
+understood to be the number +.9032E3. If the decimal point is
+punched, however, it completely overrides the setting of the point by
+the specification. The entire specification must be present,
+however.</para>
+
+</sect3>
+<sect3><title>Permissible Conversion</title>
+
+<para>It should be understood that there must be a relationship
+between the form of a number inside the computer and its external
+form. In other words, a number described by an I field specification
+is assumed to be an integer in storage. A number described by E or F
+specification is assumed to be in floating point form in storage.
+Similarly a number govern by a K specification will be handled by
+direct binary-octal conversion. Information decribed by a C
+specification is assumed to be in alphabetic (BCD) form both inside
+the computer and outside.</para>
+
+</sect3>
+<sect3><title>Repetition of Basic Field Specifications</title>
+
+<para>If several consecutive fields can be described by the same basic
+specification, reptition may be avoided by prefixing the basic
+specification by its multiplicity. For example, the
+specification</para>
+
+<para role='centered'>
+3F10.3, E18.4, 2E9.1, 3I2*
+</para>
+
+<para>is a short way of writing:</para>
+
+<para role='centered'>
+F10.3, F10.3, F10.3, E18.4, E9.1, E9.1, I2, I2, I2*.
+</para>
+
+<para>Either specification may be used, of course. A group of basic
+specifications may be repeated by enclosing the group in parentheses
+and preceding the left parenthesis by the multiplicity. Thus</para>
+
+<para role='centered'>
+3E10.3, 2(I2,3F10.1), 2C5*
+</para>
+
+<para>would be equivalent to the following:</para>
+
+<para role='centered'>
+E10.3, E10.3, E10.3, I2, F10.1, F10.1, F10.1, I2, F10.1, F10.1, F10.1, C5, C5*
+</para>
+
+<para>Such grouping parentheses may not be nested.</para>
+
+</sect3>
+<sect3><title>Scale Factors</title>
+
+<para>One extra feature is allowed when reading or printing E and F
+fields. A "scale factor" may be applied to an <emphasis> F number
+</emphasis> according to the formula</para>
+
+<para role='centered'>Printed number = Internal number x
+10<superscript>Scale factor</superscript></para>
+
+<para>(where the scaling is accomplished before the conversion is
+done). The "scale factor", followed by the letter "P" is prefixed to
+the basic field specification, as in the example</para>
+
+<para role='centered'>
+-2P2F7.3, F7.3*
+</para>
+
+<para>Thus, three numbers which would print 0.522 -1.567 93.671
+according to the specification 3F7.3* would print instead 0.005 -0.16
+93.671 if the specification -2P2F7.3, F7.3* were used. It must be
+noted that for <emphasis> F fields </emphasis> this scale factor
+actually changes the values of the numberse to which it applies. It
+affects only those numbers to which it is directly applied, however.
+For <emphasis> E fields </emphasis>, the "scale factor" causes the
+number itself to be modified, but the exponent is correspondingly
+modified so the true value of the number remains <emphasis> unchanged
+</emphasis>. Thus the number 0.9321E-3 would print as 0.9321E-03
+according to the specification E18.4*, but it would print as
+93.2100E-05 according to the specification 2PE18.4*. Unlike an F
+number, the <emphasis> value </emphasis> is the same in either
+case.</para>
</sect3>
</sect2>
</sect1>