]> thyrsus.com Git - mad.git/commitdiff
Index up yo Identification (Card Format).
authorEric S. Raymond <esr@thyrsus,com>
Mon, 28 Jun 2004 03:09:04 +0000 (03:09 +0000)
committerEric S. Raymond <esr@thyrsus,com>
Mon, 28 Jun 2004 03:09:04 +0000 (03:09 +0000)
doc/mad-manual.xml

index 0464fcd3c85d95d0966760d62377f9daea047227..21568d83def47cab083e75cbb881b5c64ff07cdc 100644 (file)
@@ -1105,11 +1105,12 @@ x<subscript>0</subscript>, &epsi;<subscript>1</subscript>,
 format of the input information is to be found in a block of storage
 labelled "CARD" whose values are set later in the program by a VECTOR
 VALUES statement.  The vector CARD actually has as values the format
-information in alphabetic form (sometimes called HOllerith, or
-binary-coded decimal
-(BCD)<indexterm><primary>BCD</primary></indexterm> form). The
+information in alphabetic form (sometimes called Hollerith, or
+binary-coded decimal (BCD)
+<indexterm><primary>BCD</primary></indexterm>
+<indexterm><primary>Hollerith (BCD)</primary></indexterm> form). The
 con&shy;struction and analysis of format information is thoroughly
-discussed in Chapter II.</para> 
+discussed in Chapter II.</para>
 
 <!-- beginpage I.14 at the soft hyphen above -->
 
@@ -1275,6 +1276,8 @@ the additional cards.</para>
 
 <sect2 id='functions'><title>Functions</title> 
 
+<indexterm><primary>Function Name</primary></indexterm>
+
 <para>The name of a function consists of one to six letters or digits
 followed by a period "." which must be written.  The first character
 of a function name must be a letter.  If the function is
@@ -1478,10 +1481,11 @@ otherwise indicated by parentheses.</para>
 <para>The kind of arithmetic performed on a constant, variable or
 function value is determined by its mode.  There are five modes in
 MAD; floating point, integer, Boolean, statement label, and function
-name.  Floating point, integer, and Boolean constants were described
-in <xref linkend='constants'/>.  Alphabetic constants are assumed to
-be of integer mode.  <xref linkend='mode_declaration'/> describes how
-the modes of variables and functions are specified.</para>
+name.<indexterm><primary>Function Name</primary></indexterm> Floating
+point, integer, and Boolean constants were described in <xref
+linkend='constants'/>.  Alphabetic constants are assumed to be of
+integer mode.  <xref linkend='mode_declaration'/> describes how the
+modes of variables and functions are specified.</para>
 
 <para>If an expression consists entirely of one constant, one
 variable, or one function value, the mode is that of the constant,
@@ -1595,7 +1599,8 @@ floating point mode if the expression were written:</para>
 originally stated just to achieve the "truncation" effect.</para>
 
 <para>A statement label (appearing in the label field of a statement)
-is a constant of statement label mode.  A function name with no
+is a constant of statement label mode.  A function
+name<indexterm><primary>Function Name</primary></indexterm> with no
 arguments (e.g. SIN.) is a constant of a function name mode.  A single
 constant, variable, or function value of statement label (function
 name) mode is an expression of statement label (function name) mode.
@@ -1831,7 +1836,8 @@ END OF CONDITIONAL
 </programlisting>
 
 <para>The indentation of the statements between the conditional statements
-is not required but contributes to the readability.</para>
+is not required but contributes to the readability.
+<indexterm><primary>Indentation of Statements</primary></indexterm></para>
 </sect2>
 
 <sect2><title>CONTINUE Statement</title>
@@ -2183,6 +2189,8 @@ exhausted.</para>
 </sect2>
 <sect2><title>Function return</title>
 
+<indexterm><primary>FUNCTION RETURN Statement</primary></indexterm>
+
 <programlisting>
 FUNCTION RETURN &scriptN;
 </programlisting>
@@ -2810,7 +2818,8 @@ case.</para>
 
 <para>Several specifications may be condensed into one larger one by
 the use of the character "/".  Each appearance of "/" (except as part
-of a Hollerith field-see <xref linkend='hollerith_fields'/>) indicates
+of a Hollerith field-see <xref linkend='hollerith_fields'/>)
+<indexterm><primary>Hollerith (BCD)</primary></indexterm> indicates
 that the specification of a new line (or card) is to be started with
 what follows.  A pair "//" causes a blank line (or card), three "///"
 cause two blank lines (or cards), etc.  Thus, the specification</para>
@@ -3081,8 +3090,9 @@ linkend='constants'/><indexterm><primary>Constants</primary></indexterm>
 assigned statement label mode (see <xref
 linkend='statement_labels'/>).</para></listitem>
 
-<listitem><para>A function name constant is assigned function name mode (see
-<xref linkend='funcdefs'/>).</para></listitem>
+<listitem><para>A function name<indexterm><primary>Function
+Name</primary></indexterm> constant is assigned function name mode
+(see <xref linkend='funcdefs'/>).</para></listitem>
 
 <listitem><para>A vector appearing as the dimension vector of some
 array<indexterm><primary>Array Variables</primary></indexterm> in a
@@ -3351,6 +3361,9 @@ vector, i.e., using linear subscripts) may be preset by a declaration
 <!-- beginpage II.41 -->
 of the following form:</para>
 
+<!-- not clear what this is referring to -->
+<indexterm><primary>Hollerith (BCD)</primary></indexterm> 
+
 <para>(a) VECTOR VALUES &scriptV; = c<subscript>0</subscript>,
 c<subscript>1</subscript>, ... c<subscript>&scriptL;</subscript></para>
 
@@ -3431,6 +3444,8 @@ III.</para>
 
 <indexterm><primary>EXTERNAL FUNCTION</primary></indexterm>
 
+<indexterm><primary>Function Name</primary></indexterm>
+
 <!-- In the original, "variables and functions in the main program"
 was typoed as "variables and function in the main program" (incorrect
 singular).  --> 
@@ -3565,6 +3580,8 @@ number to arguments in the definition.</para>
 <para>The general form of all function definition programs is as
 follows:</para>
 
+<indexterm><primary>Function Return</primary></indexterm>
+
 <programlisting>
 INTERNAL FUNCTION (X)
 ENTRY TO COS.
@@ -3603,8 +3620,9 @@ program.  (In an external
 
 function definition this is also the last statement in the program.)
 An entry must provided for each function being defined, but several
-functions may share any number of FUNCTION RETURN statements.  An
-entry statement merely marks a point of entry, and does not effect the
+functions may share any number of FUNCTION RETURN statements.  
+<indexterm><primary>Function Return</primary></indexterm>
+An entry statement merely marks a point of entry, and does not effect the
 sequence of computation in any way.  The expression after the word
 "RETURN" indicates that on this return the value of the function is to
 be the value of that expression. This expression must agree in mode
@@ -3678,12 +3696,13 @@ will usually occur with subscripts.</para>
 defines a single-valued function of X, called INVSF..  Since no mode
 declaration is given it is assumed by the translator that X is
 floating point.  The value of INVSF.(X) is computed by the use of a
-compound conditional.  If 0 &lt; x &le; 1, (statement G) then statement C
-is executed, causing a return to the calling program with the value
-1/x.  If the condition 0 &lt; x &le; 1 is not true, then the condition X
-> 1 is tested (statement H).  If X &gt; 1, statement D is executed.
-Finally, if neither of the conditions 0 &lt; x &le; 1 or x &gt; 1 is true,
-then statement I finds that X &le; 0 and statement E (the error
+compound conditional.  If 0 &lt; x &le; 1, (statement G) then
+statement C is executed, causing a return<indexterm><primary>Function
+Return</primary></indexterm> to the calling program with the value
+1/x.  If the condition 0 &lt; x &le; 1 is not true, then the condition
+X > 1 is tested (statement H).  If X &gt; 1, statement D is executed.
+Finally, if neither of the conditions 0 &lt; x &le; 1 or x &gt; 1 is
+true, then statement I finds that X &le; 0 and statement E (the error
 return) is executed.  If</para>
 
 <!-- beginpage II.48 after Z = T(I) + INVSP.(Y) *T(I-1) -->
@@ -3717,6 +3736,7 @@ Statement</primary></indexterm> control transfers to statement ER
 (and then going on to S).  Note that the END OF FUNCTION statement
 will never be executed, but must be present in the definition.</para>
 <indexterm><primary>END OF FUNCTION Statement</primary></indexterm>
+<indexterm><primary>Function Return</primary></indexterm>
 
 </sect3>
 </sect2>
@@ -4913,12 +4933,14 @@ exception of characters enclosed between "$" spaces are not relevant.
 (Spaces may not be relevant even if they are so enclosed (see section
 2.15) on format specifications).</para>
 
-<para>1.4 The identification information in cols. 73-80 is not used by the
-computer for any purpose but printing during translation and is
+<para>1.4 The identification information in cols. 73-80 is not used by
+the computer for any purpose but printing during translation and is
 arbitrary.  Actually, it is good practice to use the first four of the
 available eight columns for the first four digits of the project
 number (i.e., for R10AN use R10A).  Presumably, the last four would
-contain some sequence code.</para>
+contain some sequence code.<indexterm><primary>Identification (Card
+Format)</primary></indexterm>
+</para>
 
 </sect1>
 <sect1><title>Diagnostics</title>
@@ -5036,6 +5058,9 @@ DELTA, Z(10)...Z(20)).  The calling sequence would be</para>
 </programlisting>
 <!-- beginpage IV.4 -->
 
+<!-- not clear what this is referring to -->
+<indexterm><primary>Hollerith (BCD)</primary></indexterm> 
+
 <para>It is important to notice that in this example, as well as in the
 first, the parameters&dd;if executed as instructions&dd;would produce no
 operation.</para>
@@ -5095,7 +5120,8 @@ BCD information to be written on tape.  The arguments are: (1)
 location of the format specification, (2) tape number, and (3) a list of
 <!-- beginpage IV.5 -->
 variables to be written.  The WRITE BCD TAPE ... statement produces
-a call for this subroutine.</para></listitem>
+a call for this subroutine.
+<indexterm><primary>Hollerith (BCD)</primary></indexterm></para></listitem>
 </varlistentry>
 
 <varlistentry>
@@ -6134,6 +6160,10 @@ example, if A is a 4 x 3 matrix (m = 4, n = 3) and b = 1, then V(1) =
 <indexterm><primary>FOR</primary><see>Iteration Statement</see></indexterm>
 <indexterm><primary>FOR VALUES OF</primary><see>Iteration Statement</see></indexterm>
 <indexterm><primary>Function Arguments</primary><see>Arguments of Functions</see></indexterm>
+<indexterm><primary>Function Statement</primary><see>Execute Statement</see></indexterm>
+<indexterm><primary>Function Value</primary><see>Value of a Function</see></indexterm>
+<indexterm><primary>Hierarchy of Parrentheses</primary><see>Parentheses</see></indexterm>
+
 
 <index/>
 </appendix>