diff --git a/books/bookvol10.5.pamphlet b/books/bookvol10.5.pamphlet
index 9a76229..8c23f76 100644
--- a/books/bookvol10.5.pamphlet
+++ b/books/bookvol10.5.pamphlet
@@ -1954,6 +1954,12 @@ c
 
 \end{chunk}
 
+Compile with
+\begin{verbatim}
+gcc -c daxpy.f
+gcc -o daxpyEx daxpyEX.f -lgfortran daxpy.o
+\end{verbatim}
+
 \begin{chunk}{daxpy example}
        program daxpyEX
 *      Tim Daly April 24, 2012
@@ -1971,6 +1977,7 @@ c
  102   format("b(1)=",f6.3," b(2)=",f6.3," b(3)=",f6.3)
        write(6,103)b(4),b(5),b(6)
  103   format("b(4)=",f6.3," b(5)=",f6.3," b(6)=",f6.3)
+
        call daxpy(3,2.0d0,a,1,b,1)
        write(6,200)
  200   format(/,"t200 is (/ 3.0, 6.0, 9.0, 4.0, 5.0, 6.0, 7.0 /)")
@@ -1978,36 +1985,42 @@ c
  201   format("b(1)=",f6.3," b(2)=",f6.3," b(3)=",f6.3)
        write(6,202)b(4),b(5),b(6),b(7)
  202   format("b(4)=",f6.3," b(5)=",f6.3," b(6)=",f6.3," b(7)=",f6.3)
+
        write(6,300)
  300   format(/,"t300 is (/ 3.0, 6.0, 9.0, 12.0, 15.0, 18.0, 21.0 /)")
        b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0, 7.0D0 /)
        call daxpy(7,2.0d0,a,1,b,1)
        write(6,201)b(1),b(2),b(3)
        write(6,202)b(4),b(5),b(6),b(7)
+
        write(6,302)
  302   format(/,"t302 is (/ 3.0, 2.0, 3.0, 12.0, 5.0, 6.0, 21.0 /)")
        b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0, 7.0D0 /)
        call daxpy(3,2.0d0,a,3,b,3)
        write(6,201)b(1),b(2),b(3)
        write(6,202)b(4),b(5),b(6),b(7)
+
        write(6,303)
  303   format(/,"t303 is (/ 3.0, 2.0, 9.0, 4.0, 15.0, 6.0, 21.0 /)")
        b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0, 7.0D0 /)
        call daxpy(4,2.0d0,a,2,b,2)
        write(6,201)b(1),b(2),b(3)
        write(6,202)b(4),b(5),b(6),b(7)
+
        write(6,305)
  305   format(/,"t305 is (/  3.0, 2.0, 9.0, 4.0, 15.0, 6.0, 7.0 /)")
        b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0, 7.0D0 /)
        call daxpy(3,2.0d0,a,2,b,2)
        write(6,201)b(1),b(2),b(3)
        write(6,202)b(4),b(5),b(6),b(7)
+
        write(6,306)
  306   format(/,"t306 is (/ -1.0, 2.0, -1.0, 4.0, -1.0, 6.0, 7.0 /)")
        b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0, 7.0D0 /)
        call daxpy(3,-2.0d0,a,1,b,2)
        write(6,201)b(1),b(2),b(3)
        write(6,202)b(4),b(5),b(6),b(7)
+
        write(6,307)
  307   format(/,"t307 is (/ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0 /)")
        b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0, 7.0D0 /)
@@ -2430,6 +2443,78 @@ c
 
 \end{chunk}
 
+Compile with
+\begin{verbatim}
+gcc -c dcopy.f
+gcc -o dcopyEx dcopyEX.f -lgfortran dcopy.o
+\end{verbatim}
+
+\begin{chunk}{dcopy example}
+       program dcopyEX
+*      Tim Daly April 27, 2012
+*      unit tests for BLAS dcopy 
+       double precision a(7)
+       double precision b(7)
+       a = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0, 7.0D0 /)
+       b = (/ 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0 /)
+       write(6,100)a(1),a(2),a(3)
+ 100   format("a(1)=",f6.3," a(2)=",f6.3," a(3)=",f6.3)
+       write(6,101)a(4),a(5),a(6)
+ 101   format("a(4)=",f6.3," a(5)=",f6.3," a(6)=",f6.3)
+       write(6,102)b(1),b(2),b(3)
+ 102   format("b(1)=",f6.3," b(2)=",f6.3," b(3)=",f6.3)
+       write(6,103)b(4),b(5),b(6)
+ 103   format("b(4)=",f6.3," b(5)=",f6.3," b(6)=",f6.3)
+
+       call dcopy(3,a,1,b,1)
+       write(6,200)
+ 200   format(/,"t200 is (/ 1.0 2.0 3.0 0.0 0.0 0.0 0.0 /)")
+       write(6,201)b(1),b(2),b(3)
+ 201   format("b(1)=",f6.3," b(2)=",f6.3," b(3)=",f6.3)
+       write(6,202)b(4),b(5),b(6),b(7)
+ 202   format("b(4)=",f6.3," b(5)=",f6.3," b(6)=",f6.3," b(7)=",f6.3)
+
+       write(6,300)
+ 300   format(/,"t300 is (/ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0 /)")
+       b = (/ 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0 /)
+       call dcopy(7,a,1,b,1)
+       write(6,201)b(1),b(2),b(3)
+       write(6,202)b(4),b(5),b(6),b(7)
+
+       write(6,302)
+ 302   format(/,"t302 is (/ 1.0, 0.0, 0.0, 4.0, 0.0, 0.0, 7.0 /)")
+       b = (/ 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0 /)
+       call dcopy(3,a,3,b,3)
+       write(6,201)b(1),b(2),b(3)
+       write(6,202)b(4),b(5),b(6),b(7)
+
+       write(6,303)
+ 303   format(/,"t303 is (/ 1.0, 0.0, 3.0, 0.0, 5.0, 0.0, 7.0 /)")
+       b = (/ 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0 /)
+       call dcopy(4,a,2,b,2)
+       write(6,201)b(1),b(2),b(3)
+       write(6,202)b(4),b(5),b(6),b(7)
+
+       write(6,305)
+ 305   format(/,"t305 is (/ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 0.0 /)")
+       a = (/ 1.0D0, 2.0D0, 3.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0 /)
+       b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 0.0D0, 0.0D0 /)
+       call dcopy(3,a,1,b,1)
+       write(6,201)b(1),b(2),b(3)
+       write(6,202)b(4),b(5),b(6),b(7)
+
+       write(6,306)
+ 306   format(/,"t306 is (/ 1.0, 2.0, 2.0, 4.0, 3.0, 0.0, 0.0 /)")
+       a = (/ 1.0D0, 2.0D0, 3.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0 /)
+       b = (/ 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 0.0D0, 0.0D0 /)
+       call dcopy(3,a,1,b,2)
+       write(6,201)b(1),b(2),b(3)
+       write(6,202)b(4),b(5),b(6),b(7)
+
+       stop
+       end 
+\end{chunk}
+
 \begin{chunk}{BLAS 1 dcopy}
 (defun dcopy (n dx incx dy incy)
  (declare (type (simple-array double-float) dy dx)
@@ -2455,6 +2540,33 @@ c
    dy)
 
 \end{chunk}
+
+\begin{chunk}{BLAS 1 dcopy lisp test}
+(setq a (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0 6.0d0 7.0d0))
+(setq b (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0))
+(dcopy 3 a 1 b 1)
+(setq b (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0))
+(dcopy 7 a 1 b 1)
+(setq b (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0))
+(dcopy 8 a 1 b 1)
+(setq b (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0))
+(dcopy 3 a 3 b 3)
+(setq b (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0))
+(dcopy 4 a 2 b 2)
+(setq b (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0))
+(dcopy 5 a 2 b 2)
+(setq b (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0))
+(dcopy 3 a 2 b 2)
+(setq a (vector 1.0d0 2.0d0 3.0d0))
+(setq b (vector 0.0d0 0.0d0 3.0d0 4.0d0 5.0d0))
+(dcopy 3 a 1 b 1)
+b
+(setq b (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0))
+(dcopy 3 a 1 b 2)
+(setq a (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0))
+(setq b (vector 1.0d0 2.0d0 3.0d0))
+(dcopy 5 a 1 b 1)
+\end{chunk}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{ddot BLAS}
 %\pagehead{ddot}{ddot}
diff --git a/changelog b/changelog
index 2893cef..405da15 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20120427 tpd src/axiom-website/patches.html 20120427.01.tpd.patch
+20120427 tpd books/bookvol10.5 BLAS1 dcopy test cases
 20120425 tpd src/axiom-website/patches.html 20120425.01.tpd.patch
 20120425 tpd books/bookvol10.5 BLAS1 daxpy test cases
 20120423 tpd src/axiom-website/patches.html 20120423.01.tpd.patch
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 03e5e07..e783c66 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3890,5 +3890,7 @@ books/bookvol10.5 add LAPACK reference code<br/>
 books/bookvol10.5 add missing lapack routines<br/>
 <a href="patches/20120425.01.tpd.patch">20120425.01.tpd.patch</a>
 books/bookvol10.5 BLAS1 daxpy test cases<br/>
+<a href="patches/20120427.01.tpd.patch">20120427.01.tpd.patch</a>
+books/bookvol10.5 BLAS1 dcopy test cases<br/>
  </body>
 </html>
