]> thyrsus.com Git - mad.git/commitdiff
One step forward.
authorEric S. Raymond <esr@thyrsus,com>
Fri, 6 Feb 2004 05:39:28 +0000 (05:39 +0000)
committerEric S. Raymond <esr@thyrsus,com>
Fri, 6 Feb 2004 05:39:28 +0000 (05:39 +0000)
doc/mad-manual.xml

index 4b476bcf486923cc6e3d1c75b18c7f86dfdf2c04..873fd343b2a3481cc5cc007132b592fbe52bc3b0 100644 (file)
@@ -231,7 +231,7 @@ word.</para>
 
 <para>A few typos in the original have been fixed; if you're really
 curious, comments in the XML source describe them.  Variant spellings
-such as <quote>imbedded</wquote> have vbeen preserved.</para>
+such as <quote>imbedded</quote> have been preserved.</para>
 
 <para>The original was not continuously page-numbered.  Instead the
 pages were numbered within each chapter with the chapter number as
@@ -2029,6 +2029,88 @@ executable statement labelled &scriptS; when an end-of-file is
 encountered.  If the statement EXECUTED SETEOF. (0) is executed the
 read routines will be reset to enter SYSTEM. when an end-of-file is
 encountered.</para>
+
+<para>Normally, if an end-of-tape is encountered while executing a
+WRITE BCD TAPE or WRITE BINARY TAPE statement, the tape is rewound, a
+comment indicating this is printed for the operator, and the computer
+is halted so that the operator can replace the tape.  The program is
+then continued from where the end-of-tape was detected.  Thus, no
+information is lost and the new tape is a continuation of the old one.
+This action can be changed by executing the statement EXECUTE
+SETETT. (&scriptS;).  The subroutine SETETT. sets the write tape
+routines to transfer to the executable statement labelled &scriptS;
+when an end-of-tape is encountered.  The tape is not rewound nor is
+any comment printed for the operator and the computer does not stop
+before this transfer occurs.  Executing EXECUTE SETETT.(0) will reset
+the write tape routines to the normal action.</para>
+
+<para>The subroutines SETEOF. and SETETT. may be executed as many
+times as desired.  Only one setting is in effect for end-of-file (that
+specified by the latest execution of SETOFF.) and end-of-tape (that
+specified by the latest execution of SETETT.), i.e., each setting
+cancels the previous one.</para>
+</sect3>
+</sect2>
+<sect2><title>FORMAT SPECIFICATIONS</title>
+
+<para>When information is read from (or punched in) a card into (or from) a
+computer, it is necessary to know how this information has been
+allocated among the available columns of the card.  Similarly,
+whenever information is to be printed by a printer (either on-line of
+off-line), it is necessary to know how this information has been
+allocated among the columns available on the printer.  A description
+of each allocation is called a format specification.  Usually, but not
+always, such a specification is accompanied by a list of variables
+whose values are to be printed or punched or whose values are to be
+read.  (Occasionally, the information is contined entirely in the
+format specification, so the list may be empty.)  A format
+specification is a string of alphabetic characters (as described
+below) terminated by an "*".  This string is stored six characters per
+computer word in a vector with integer mode.  This vector may be
+preset (see section 3.7), computed, or read in as data.</para>
+
+<sect3><title>Carriage Control</title>
+
+<para>Every format specification consists of a description of the allocation
+of available columns, and the form in which the particular information
+is to appear.  Specifications for reading or punching cards and
+printing of information are identical, whith the following exceptions:</para>
+
+<para>(a) A card has only 72 available
+columns<footnote><para>Actually, 80 columns may be usd, provided the
+proper computer hardware configuration is available.  The use of 72
+columns is always safe, however, and strongly
+recommended. </para></footnote> while a line of print has 120
+available columns.  Any attempt to allocate more than the available
+number of columns will cause an error return (see section
+2.14.1).</para>
+
+<para>(b) The first columnof a card has no special significance.  The first
+(left-most) character of a line of print is treated differently.  This
+character governs printer carriage control, much as skipping to a new
+page, double spacing, etc.  and should not contin information to be
+printed.  The user has effectively 119 available columns on a line of
+print, but he must always include the first character as a code to
+control the vertical spacing for that line.</para>
+
+<para>For example, the specification</para>
+
+<programlisting>
+S16, 6HBETA =I2*
+</programlisting>
+
+<para>will indicate that the line (or card) starts with a skip of 16 columns
+and then prints (or reads or punches) the characters "BETA =" followed
+by an integer field of two columns.  If a card is involved, the letter
+"B" in "BETA" will be found in column 17, due to the skip of 16
+columns.  However, if a line is to be printed, the "B" will print in
+column 16 of the printed page, since the first character of the line
+(in this case, the first of the 16 columns to be skipped) is detached,
+to be interpreted as carriage control leaving an effective skip of 15
+columns.  The effect of a "blank" character on carriage control is to
+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>
 </sect3>
 </sect2>
 </sect1>