<!ENTITY scope2 SYSTEM "scope2.xml">
<!ENTITY scope3 SYSTEM "scope3.xml">
<!ENTITY scope4 SYSTEM "scope4.xml">
+<!ENTITY retromuseum "http://catb.org/retro">
<!ENTITY scriptA "<emphasis>A</emphasis>">
<!ENTITY scriptF "<emphasis>B</emphasis>">
<para>Most of this document is a faithful transcription of the
reference manual for MAD (Michigan Algorithm Decoder), an early
academic computer language from 1962. The manual should be
-accompanied by an implementation. MAD has been revived as a work of
-reconstructive archeology, so that language connoisseurs of the
-present and future will be able to appreciate what computing life was
-like back in that day.</para>
+accompanied by an implementation; if not, it can be found at the <ulink
+url='&retromuseum;'>Retrocomputing Museum</ulink>. MAD has been revived
+as a work of reconstructive archeology, so that language connoisseurs
+of the present and future will be able to appreciate what computing
+life was like back in that day.</para>
<para>MAD was an extended dialect of ALGOL 58, first released in 1959
near the beginning of the great age of invention in compiled languages
of the items A, B, and the words "diamonds" and "rectangles" in item
D were corresponding shapes.</para>
+<para>In the original, each example in Chapter 3 was introduced by a
+centered numbered header "Example N" with no section numbering. These
+headers have been turned into second-level sections, and descriptive
+titles added because the Contents page looked awful without
+them. To remind the reader that these are additions by the redactor,
+they are highlighted like redactor's notes.</para>
+
<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. One detail we have not
<sect1><title>Scientific Examples</title>
-<sect2><title>Example 1</title>
+<sect2><title>Example 1<emphasis role='note'>: Compute roots of linear and quadratic equations</emphasis></title>
<para><emphasis>Problem:</emphasis> To solve the quadratic equation
ax<superscript>2</superscript> + bx + c = 0 for vartious sets of
</programlisting>
</sect2>
-<sect2><title>Example 2</title>
+<sect2><title>Example 2<emphasis role='note'>: Printting the truth table of a Boolean expression</emphasis></title>
<para><emphasis>Problem:</emphasis> A logical (Boolean) expression
such as (P .AND. Q) .OR.(.NOT. P .AND. R .AND. S).OR.(R .OR. P) will
</sect2>
<!-- beginpage -->
-<sect2><title>Example 3</title>
+<sect2><title>Example 3<emphasis role='note'>: Simpson's Rule approximation of a definite integral</emphasis></title>
<para><emphasis>Problem:</emphasis> To approximate
<subscript>a</subscript>∫<superscript>b</superscript> f(x) by Simpson's
</programlisting>
</sect2>
<!-- beginpage -->
-<sect2><title>Example 4</title>
+<sect2><title>Example 4<emphasis role='note'>: Find roots of a function by half-interval approximation</emphasis></title>
<!-- FIXME -->
-
<!-- beginpage -->
<para><emphasis>Flow diagram:</emphasis></para>
</programlisting>
</sect2>
<!-- pagebreak -->
-<sect2><title>Example 5</title>
+<sect2><title>Example 5<emphasis role='note'>: Compute the transpose of a matrix</emphasis></title>
<para><emphasis>Problem:</emphasis> Find the transpose A' of an n×n
matrix A = (a<subscript>ij</subscript>).</para>
form EXECUTE TRANS.(A, N).</para>
</sect2>
<!-- pagebreak -->
-<sect2><title>Example 6</title>
+<sect2><title>Example 6<emphasis role='note'>: Matrix multiplication</emphasis></title>
<para><emphasis>Problem:</emphasis> Multiply the matrix A =
(a<subscript>ij</subscript>) by the matrix B =