diff --git a/books/bookvol0.pamphlet b/books/bookvol0.pamphlet
index 8505132..4410502 100644
--- a/books/bookvol0.pamphlet
+++ b/books/bookvol0.pamphlet
@@ -16419,28 +16419,28 @@ choosing the toroidal coordinate system.
 
 \subsection{Axiom Images}
 \newpage
-\center{\includegraphics{ps/v0page1.eps}}
+{\center{\includegraphics{ps/v0page1.eps}}}
 
 \newpage
-\center{\includegraphics{ps/v0page2.eps}}
+{\center{\includegraphics{ps/v0page2.eps}}}
 
 \newpage
-\center{\includegraphics{ps/v0page3.eps}}
+{\center{\includegraphics{ps/v0page3.eps}}}
 
 \newpage
-\center{\includegraphics{ps/v0page4.eps}}
+{\center{\includegraphics{ps/v0page4.eps}}}
 
 \newpage
-\center{\includegraphics{ps/v0page5.eps}}
+{\center{\includegraphics{ps/v0page5.eps}}}
 
 \newpage
-\center{\includegraphics{ps/v0page6.eps}}
+{\center{\includegraphics{ps/v0page6.eps}}}
 
 \newpage
-\center{\includegraphics{ps/v0page7.eps}}
+{\center{\includegraphics{ps/v0page7.eps}}}
 
 \newpage
-\center{\includegraphics{ps/v0page8.eps}}
+{\center{\includegraphics{ps/v0page8.eps}}}
 
 \newpage
 \subsection{Three-Dimensional Options}
@@ -61681,36 +61681,6 @@ constructor name {\tt VectorFunctions2} from the system:
 \par\noindent{\bf Also See:}
 {\tt )compile} \index{ugSysCmdcompile} 
 
-\section{)boot}
-\index{ugSysCmdboot}
-
-\index{boot}
-
-
-\par\noindent{\bf User Level Required:} development
-
-\par\noindent{\bf Command Syntax:}
-\begin{list}{}
-\item {\tt )boot} {\it bootExpression}
-\end{list}
-
-\par\noindent{\bf Command Description:}
-
-This command is used by Axiom system developers to execute
-expressions written in the BOOT language.
-For example,
-\begin{verbatim}
-)boot times3(x) == 3*x
-\end{verbatim}
-creates and compiles the Common Lisp function ``times3''
-obtained by translating the BOOT code.
-
-\par\noindent{\bf Also See:}
-{\tt )fin} \index{ugSysCmdfin},
-{\tt )lisp} \index{ugSysCmdlisp},
-{\tt )set} \index{ugSysCmdset}, and
-{\tt )system} \index{ugSysCmdsystem}.
-
 \section{)browse}
 \index{browse}
 \par\noindent{\bf User Level Required:} interpreter
@@ -62680,6 +62650,190 @@ command may be used to  drop out  of Axiom  into Common Lisp.
 
 This command is obsolete. Use {\tt )library} instead.
 
+\section{)regress}
+\index{regress}
+\par\noindent{\bf User Level Required:} development
+\par\noindent{\bf Command Syntax:}
+\begin{list}{}
+\item {\tt )regress} {\it filename}
+\item {\tt )regress} {\it filename.output}
+\item {\tt )regress} {\it /path/filename}
+\item {\tt )regress} {\it /pathfilename.output}
+\end{list}
+
+\par\noindent{\bf Command Description:}
+
+\begin{verbatim}
+The regress command will run the regress function that was compiled
+as part of the lisp image build process. This function expects an
+input filename, possibly containing a path prefix. 
+
+If the filename contains a period then we consider it a fully formed
+filename, otherwise we append ``.output'', which is the default file
+extension.
+
+  )regress matrix
+  )regress matrix.output
+  )regress /path/to/file/matrix
+  )regress /path/to/file/matrix.output
+ 
+will test the contents of the file matrix.output.
+
+The idea behind regression testing is to check that the results
+we currently get match the results we used to get. In order to
+do that we create input files with a special comment format that
+contains the prior results. These are easy to create as all you
+need to do is run the Axiom function, capture the results, and
+turn them input specially formed comments using the -- comment.
+
+A regression file caches the result of an Axiom function so we
+can automate the testing process. It is a file of many tests,
+each with their own output.
+
+The regression file format uses the Axiom -- comment syntax to keep
+a copy of the expected output from an Axiom command. This expected
+output is compared character by character against the actual output.
+
+The regression file is broken into numbered blocks, delimited by
+a --S for the beginning and a --E for the end. The total number of
+blocks is also given so missing or failed tests also raise an error.
+
+There are 4 special kinds of -- comments in regression files:
+
+  --S n of M        this is test n of M tests in this file
+  --E n             this marks the end of test n
+  --R any output    this marks the actual expected output line
+  --I any output    this line is compared but ignored
+
+A regression test file looks like:
+
+  )set break resume
+  )spool foo.output
+  )set message type off
+  )clear all
+
+  --S 1 of 3
+  2+3
+  --R                     this is the exact Axiom output
+  --R   (1)  5
+  --E 1
+
+  --S 2 of 3
+  2+3
+  --R                     this should fail to match
+  --R   (2)  7
+  --E 2
+
+  --S 3 of 3
+  2+3
+  --R                     this fails to match but we
+  --I   (3)  7            use --I to ignore this line
+  --E 3
+
+We can now run this file with
+
+  )read foo.input
+
+Note that when this file is run it will create a spool file called
+"foo.output" because of the lines:
+  
+  )spool foo.output
+  )spool
+
+The "foo.output" file contains the console image of the result. 
+It will look like:
+
+  Starts dribbling to foo.output (2012/2/28, 12:25:7).
+  )set message type off
+  )clear all
+
+  --S 1 of 3
+  2+3
+  
+     (1)  5
+  --R
+  --R   (1)  5
+  --E 1
+  
+  --S 2 of 3
+  2+3
+  
+     (2)  5
+  --R
+  --R   (2)  7
+  --E 2
+
+  --S 3 of 3
+  2+3
+  
+     (3)  5
+  --R
+  --I   (3)  7
+  --E 3
+
+  )spool
+
+This "foo.output" file can now be checked using the )regress command.
+ 
+When we run the )regress foo.output we see;
+
+  testing foo
+  passed foo  1 of 3
+  MISMATCH
+  expected:"   (2)  7"
+       got:"   (2)  5"
+  FAILED foo  2 of 2
+  passed foo  3 of 3
+  regression result FAILED 1 of 3 stanzas file foo
+
+Tests either pass or fail. A passing test generates the message:
+
+    passed foo  1 of 3
+
+A failing test will give a reversed printout of the expected vs
+actual output as well as a FAILED message, as in:
+
+  MISMATCH
+  expected:"   (2)  7"
+       got:"   (2)  5"
+  FAILED foo  2 of 3
+
+The last line of output is a summary:
+
+  regression result FAILED 1 of 3 stanzas file foo
+
+\end{verbatim}
+
+\par\noindent{\bf Also See:}
+{\tt )tangle} 
+
+\section{)tangle}
+\index{ugSysCmdboot}
+\index{tangle}
+\par\noindent{\bf User Level Required:} development
+\par\noindent{\bf Command Syntax:}
+\begin{list}{}
+\item {\tt )tangle} {\it filename}
+\item {\tt )tangle} {\it filename.output}
+\item {\tt )tangle} {\it /path/filename}
+\item {\tt )tangle} {\it /pathfilename.output}
+\end{list}
+
+\par\noindent{\bf Command Description:}
+
+\begin{verbatim}
+This command is used to tangle pamphlet files.
+ 
+)tangle matrix.input.pamphlet
+ 
+will tangle the contents of the file matrix.input.pamphlet into 
+matrix.input. The ``.input.pamphlet'' is optional.
+ 
+\end{verbatim}
+
+\par\noindent{\bf Also See:}
+{\tt )regress} 
+
 \section{)trace}
 \label{ugSysCmdtrace}
 \label{ugSysCmdltrace}
diff --git a/changelog b/changelog
index 6b41130..dc1e1d1 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20120302 tpd src/axiom-website/patches.html 20120302.01.tpd.patch
+20120302 tpd books/bookvol0 add )tangle and )regress commands
 20120301 tpd src/axiom-website/patches.html 20120301.01.tpd.patch
 20120301 tpd src/algebra/Makefile add Pade regression test
 20120301 tpd books/bookvol10.4 document and regression test PadeApproximants
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index b59565d..c7274b9 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3832,5 +3832,7 @@ buglist fix bug 7217<br/>
 books/bookvol5 add )tangle and )regress commands<br/>
 <a href="patches/20120301.01.tpd.patch">20120301.01.tpd.patch</a>
 books/bookvol10.4 document and regression test PadeApproximants<br/>
+<a href="patches/20120302.01.tpd.patch">20120302.01.tpd.patch</a>
+books/bookvol0 add )tangle and )regress commands<br/>
  </body>
 </html>
