diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet
index f906c5f..344a8e0 100644
--- a/books/bookvol10.3.pamphlet
+++ b/books/bookvol10.3.pamphlet
@@ -141788,6 +141788,371 @@ UniversalSegment(S: Type): SegmentCategory(S) with
 
 \end{chunk}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{domain U8VEC U8Vector}
+
+\begin{chunk}{U8Vector.input}
+)set break resume
+)sys rm -f U8Vector.output
+)spool U8Vector.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 12
+t1:=empty()$U8Vector
+--R
+--R   (1)  []
+--R                                                              Type: U8Vector
+--E 1
+
+--S 2 of 12
+t2:=new(10,10)$U8Vector
+--R
+--R   (2)  [10,10,10,10,10,10,10,10,10,10]
+--R                                                              Type: U8Vector
+--E 2
+
+--S 3 of 12
+t3:=qelt(t2,2)
+--R
+--R   (3)  10
+--R                                                        Type: PositiveInteger
+--E 3
+
+--S 4 of 12
+t4:=elt(t2,2)
+--R
+--R   (4)  10
+--R                                                        Type: PositiveInteger
+--E 4
+
+--S 5 of 12
+t5:=t2.2
+--R
+--R   (5)  10
+--R                                                        Type: PositiveInteger
+--E 5
+
+--S 6 of 12
+t6:=qsetelt!(t2,2,5)
+--R
+--R   (6)  5
+--R                                                        Type: PositiveInteger
+--E 6
+
+--S 7 of 12
+t2.2
+--R
+--R   (7)  5
+--R                                                        Type: PositiveInteger
+--E 7
+
+--S 8 of 12
+t7:=setelt(t2,3,6)
+--R
+--R   (8)  6
+--R                                                        Type: PositiveInteger
+--E 8
+
+--S 9 of 12
+t2.3
+--R
+--R   (9)  6
+--R                                                        Type: PositiveInteger
+--E 9
+
+--S 10 of 12
+#t2
+--R
+--R   (10)  10
+--R                                                        Type: PositiveInteger
+--E 10
+
+--S 11 of 12
+t8:=fill!(t2,7)
+--R
+--R   (11)  [7,7,7,7,7,7,7,7,7,7]
+--R                                                              Type: U8Vector
+--E 11
+
+--S 12 of 12
+)show U8Vector
+--R U8Vector  is a domain constructor
+--R Abbreviation for U8Vector is U8VEC 
+--R This constructor is exposed in this frame.
+--R Issue )edit bookvol10.3.pamphlet to see algebra source code for U8VEC 
+--R
+--R------------------------------- Operations --------------------------------
+--R concat : List(%) -> %                 concat : (%,%) -> %
+--R concat : (Integer,%) -> %             concat : (%,Integer) -> %
+--R construct : List(Integer) -> %        copy : % -> %
+--R delete : (%,Integer) -> %             ?.? : (%,Integer) -> Integer
+--R empty : () -> %                       empty? : % -> Boolean
+--R entries : % -> List(Integer)          eq? : (%,%) -> Boolean
+--R index? : (Integer,%) -> Boolean       indices : % -> List(Integer)
+--R insert : (%,%,Integer) -> %           qelt : (%,Integer) -> Integer
+--R reverse : % -> %                      sample : () -> %
+--R #? : % -> NonNegativeInteger if $ has finiteAggregate
+--R ?<? : (%,%) -> Boolean if Integer has ORDSET
+--R ?<=? : (%,%) -> Boolean if Integer has ORDSET
+--R ?=? : (%,%) -> Boolean if Integer has SETCAT
+--R ?>? : (%,%) -> Boolean if Integer has ORDSET
+--R ?>=? : (%,%) -> Boolean if Integer has ORDSET
+--R any? : ((Integer -> Boolean),%) -> Boolean if $ has finiteAggregate
+--R coerce : % -> OutputForm if Integer has SETCAT
+--R convert : % -> InputForm if Integer has KONVERT(INFORM)
+--R copyInto! : (%,%,Integer) -> % if $ has shallowlyMutable
+--R count : (Integer,%) -> NonNegativeInteger if $ has finiteAggregate and Integer has SETCAT
+--R count : ((Integer -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate
+--R delete : (%,UniversalSegment(Integer)) -> %
+--R ?.? : (%,UniversalSegment(Integer)) -> %
+--R elt : (%,Integer,Integer) -> Integer
+--R entry? : (Integer,%) -> Boolean if $ has finiteAggregate and Integer has SETCAT
+--R eval : (%,List(Integer),List(Integer)) -> % if Integer has EVALAB(INT) and Integer has SETCAT
+--R eval : (%,Integer,Integer) -> % if Integer has EVALAB(INT) and Integer has SETCAT
+--R eval : (%,Equation(Integer)) -> % if Integer has EVALAB(INT) and Integer has SETCAT
+--R eval : (%,List(Equation(Integer))) -> % if Integer has EVALAB(INT) and Integer has SETCAT
+--R every? : ((Integer -> Boolean),%) -> Boolean if $ has finiteAggregate
+--R fill! : (%,Integer) -> % if $ has shallowlyMutable
+--R find : ((Integer -> Boolean),%) -> Union(Integer,"failed")
+--R first : % -> Integer if Integer has ORDSET
+--R hash : % -> SingleInteger if Integer has SETCAT
+--R insert : (Integer,%,Integer) -> %
+--R latex : % -> String if Integer has SETCAT
+--R less? : (%,NonNegativeInteger) -> Boolean
+--R map : (((Integer,Integer) -> Integer),%,%) -> %
+--R map : ((Integer -> Integer),%) -> %
+--R map! : ((Integer -> Integer),%) -> % if $ has shallowlyMutable
+--R max : (%,%) -> % if Integer has ORDSET
+--R maxIndex : % -> Integer if Integer has ORDSET
+--R member? : (Integer,%) -> Boolean if $ has finiteAggregate and Integer has SETCAT
+--R members : % -> List(Integer) if $ has finiteAggregate
+--R merge : (%,%) -> % if Integer has ORDSET
+--R merge : (((Integer,Integer) -> Boolean),%,%) -> %
+--R min : (%,%) -> % if Integer has ORDSET
+--R minIndex : % -> Integer if Integer has ORDSET
+--R more? : (%,NonNegativeInteger) -> Boolean
+--R new : (NonNegativeInteger,Integer) -> %
+--R parts : % -> List(Integer) if $ has finiteAggregate
+--R position : (Integer,%,Integer) -> Integer if Integer has SETCAT
+--R position : (Integer,%) -> Integer if Integer has SETCAT
+--R position : ((Integer -> Boolean),%) -> Integer
+--R qsetelt! : (%,Integer,Integer) -> Integer if $ has shallowlyMutable
+--R reduce : (((Integer,Integer) -> Integer),%) -> Integer if $ has finiteAggregate
+--R reduce : (((Integer,Integer) -> Integer),%,Integer) -> Integer if $ has finiteAggregate
+--R reduce : (((Integer,Integer) -> Integer),%,Integer,Integer) -> Integer if $ has finiteAggregate and Integer has SETCAT
+--R remove : ((Integer -> Boolean),%) -> % if $ has finiteAggregate
+--R remove : (Integer,%) -> % if $ has finiteAggregate and Integer has SETCAT
+--R removeDuplicates : % -> % if $ has finiteAggregate and Integer has SETCAT
+--R reverse! : % -> % if $ has shallowlyMutable
+--R select : ((Integer -> Boolean),%) -> % if $ has finiteAggregate
+--R setelt : (%,UniversalSegment(Integer),Integer) -> Integer if $ has shallowlyMutable
+--R setelt : (%,Integer,Integer) -> Integer if $ has shallowlyMutable
+--R size? : (%,NonNegativeInteger) -> Boolean
+--R sort : % -> % if Integer has ORDSET
+--R sort : (((Integer,Integer) -> Boolean),%) -> %
+--R sort! : % -> % if $ has shallowlyMutable and Integer has ORDSET
+--R sort! : (((Integer,Integer) -> Boolean),%) -> % if $ has shallowlyMutable
+--R sorted? : % -> Boolean if Integer has ORDSET
+--R sorted? : (((Integer,Integer) -> Boolean),%) -> Boolean
+--R swap! : (%,Integer,Integer) -> Void if $ has shallowlyMutable
+--R ?~=? : (%,%) -> Boolean if Integer has SETCAT
+--R
+--E 12
+
+)spool
+)lisp (bye)
+\end{chunk}
+\begin{chunk}{U8Vector.help}
+====================================================================
+U8Vector examples
+====================================================================
+
+t1:=empty()$U8Vector
+  []
+
+t2:=new(10,10)$U8Vector
+  [10,10,10,10,10,10,10,10,10,10]
+
+t3:=qelt(t2,2)
+  10
+
+t4:=elt(t2,2)
+  10
+
+t5:=t2.2
+  10
+
+t6:=qsetelt!(t2,2,5)
+  5
+
+t2.2
+  5
+
+t7:=setelt(t2,3,6)
+  6
+
+t2.3
+  6
+
+#t2
+  10
+
+t8:=fill!(t2,7)
+  [7,7,7,7,7,7,7,7,7,7]
+
+See Also:
+o )show U8Vector
+o )show U16Vector
+o )show U32Vector
+
+\end{chunk}
+\pagehead{U8Vector}{U8VEC}
+\pagepic{ps/v103u8vector.eps}{U8VEC}{1.00}
+{\bf See}\\
+\pageto{Segment}{SEG}
+\pageto{SegmentBinding}{SEGBIND}
+
+{\bf Exports:}\\
+\begin{tabular}{lllll}
+\cross{U8VEC}{\#{}?} &
+\cross{U8VEC}{?.?} &
+\cross{U8VEC}{?.?} &
+\cross{U8VEC}{?$<=$?} &
+\cross{U8VEC}{?$<$?} \\
+\cross{U8VEC}{?=?} &
+\cross{U8VEC}{?$>=$?} &
+\cross{U8VEC}{?$>$?} &
+\cross{U8VEC}{?\~{}=?} &
+\cross{U8VEC}{any?} \\
+\cross{U8VEC}{coerce} &
+\cross{U8VEC}{concat} &
+\cross{U8VEC}{construct} &
+\cross{U8VEC}{convert} &
+\cross{U8VEC}{copy} \\
+\cross{U8VEC}{copyInto!} &
+\cross{U8VEC}{count} &
+\cross{U8VEC}{delete} &
+\cross{U8VEC}{elt} &
+\cross{U8VEC}{empty} \\
+\cross{U8VEC}{empty?} &
+\cross{U8VEC}{entries} &
+\cross{U8VEC}{entry?} &
+\cross{U8VEC}{eq?} &
+\cross{U8VEC}{eval} \\
+\cross{U8VEC}{every?} &
+\cross{U8VEC}{fill!} &
+\cross{U8VEC}{find} &
+\cross{U8VEC}{first} &
+\cross{U8VEC}{hash} \\
+\cross{U8VEC}{index?} &
+\cross{U8VEC}{indices} &
+\cross{U8VEC}{insert} &
+\cross{U8VEC}{latex} &
+\cross{U8VEC}{less?} \\
+\cross{U8VEC}{map} &
+\cross{U8VEC}{map!} &
+\cross{U8VEC}{max} &
+\cross{U8VEC}{maxIndex} &
+\cross{U8VEC}{member?} \\
+\cross{U8VEC}{members} &
+\cross{U8VEC}{merge} &
+\cross{U8VEC}{min} &
+\cross{U8VEC}{minIndex} &
+\cross{U8VEC}{more?} \\
+\cross{U8VEC}{new} &
+\cross{U8VEC}{parts} &
+\cross{U8VEC}{position} &
+\cross{U8VEC}{qelt} &
+\cross{U8VEC}{qsetelt!} \\
+\cross{U8VEC}{reduce} &
+\cross{U8VEC}{remove} &
+\cross{U8VEC}{removeDuplicates} &
+\cross{U8VEC}{reverse} &
+\cross{U8VEC}{reverse!} \\
+\cross{U8VEC}{sample} &
+\cross{U8VEC}{select} &
+\cross{U8VEC}{setelt} &
+\cross{U8VEC}{size?} &
+\cross{U8VEC}{sort} \\
+\cross{U8VEC}{sort!} &
+\cross{U8VEC}{sorted?} &
+\cross{U8VEC}{swap!} &&
+\end{tabular}
+
+\begin{chunk}{domain U8VEC U8Vector}
+)abbrev domain U8VEC U8Vector
+++ Author: Waldek Hebisch
+++ Description: This is a low-level domain which implements vectors
+++ (one dimensional arrays) of unsigned 8-bit numbers.  Indexing
+++ is 0 based, there is no bound checking (unless provided by
+++ lower level).
+U8Vector() : OneDimensionalArrayAggregate Integer == add
+   Qsize   ==> QVLENU8$Lisp
+   Qelt    ==> ELTU8$Lisp
+   Qsetelt ==> SETELTU8$Lisp
+   Qnew    ==> GETREFVU8$Lisp
+
+   #x                          == Qsize x
+     ++ returns the length of the vector
+     ++
+     ++X t1:=new(10,10)$U8Vector
+     ++X #t1
+
+   minIndex x                  == 0
+     ++ minIndex returns the minimum index of the vector
+     ++
+     ++X t1:=new(10,10)$U8Vector
+     ++X minIndex t1
+
+   empty()                     == Qnew(0$Lisp, 0$Lisp)
+     ++ empty() returns a new vector of length 0
+     ++
+     ++X t1:=empty()$U8Vector
+
+   new(n, x)                   == Qnew (n, x)
+     ++ new(n, x) returns a new vector of length n filled with x
+     ++
+     ++X t1:=new(10,7)$U8Vector
+
+   qelt(x, i)                  == Qelt(x, i)
+     ++ qelt(x, i) returns the i-th element of x
+     ++
+     ++X t1:=new(10,7)$U8Vector
+     ++X qelt(t1,3)
+
+   elt(x:%, i:Integer)         == Qelt(x, i)
+     ++ elt(x, i) returns the i-th element of x
+     ++
+     ++X t1:=new(10,7)$U8Vector
+     ++X elt(t1,3)
+
+   qsetelt_!(x, i, s)          == Qsetelt(x, i, s)
+     ++ qsetelt(x, i, s) modifies the i-th element of x to be s
+     ++
+     ++X t1:=new(10,7)$U8Vector
+     ++X qsetelt!(t1,3,9)
+
+   setelt(x:%, i:Integer, s:Integer) == Qsetelt(x, i, s)
+     ++ setelt(x, i, s) modifies the i-th element of x to be s
+     ++
+     ++X t1:=new(10,7)$U8Vector
+     ++X setelt(t1,3,9)
+
+   fill_!(x, s) == (for i in 0..((Qsize x) - 1) repeat Qsetelt(x, i, s); x)
+     ++ fill!(x, s) modifies a vector x so every element has value s
+     ++
+     ++X t1:=new(10,7)$U8Vector
+     ++X fill!(t1,9)
+
+\end{chunk}
+\begin{chunk}{U8VEC.dotabb}
+"U8VEC" [color="#88FF44",href="bookvol10.3.pdf#nameddest=U8VEC"]
+"A1AGG" [color="#4488FF",href="bookvol10.2.pdf#nameddest=A1AGG"]
+"U8VEC" -> "A1AGG"
+
+\end{chunk}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{domain U16VEC U16Vector}
 
 \begin{chunk}{U16Vector.input}
@@ -142002,6 +142367,7 @@ t8:=fill!(t2,7)
   [7,7,7,7,7,7,7,7,7,7]
 
 See Also:
+o )show U8Vector
 o )show U16Vector
 o )show U32Vector
 
@@ -142376,8 +142742,9 @@ t8:=fill!(t2,7)
 \end{thebibliography}
 \end{document}
 See Also:
-o )show U32Vector
+o )show U8Vector
 o )show U16Vector
+o )show U32Vector
 
 \end{chunk}
 \pagehead{U32Vector}{U32VEC}
@@ -153482,6 +153849,7 @@ Note that this code is not included in the generated catdef.spad file.
 \getchunk{domain UTSZ UnivariateTaylorSeriesCZero}
 \getchunk{domain UNISEG UniversalSegment}
 
+\getchunk{domain U8VEC U16Vector}
 \getchunk{domain U16VEC U16Vector}
 \getchunk{domain U32VEC U32Vector}
 \getchunk{domain VARIABLE Variable}
diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index d1949eb..35d7805 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -24644,6 +24644,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed.
    (|UniversalSegment| . UNISEG)
    (|UniversalSegmentFunctions2| . UNISEG2)
    (|UserDefinedVariableOrdering| . UDVO)
+   (|U8Vector| . U8VEC)
    (|U16Vector| . U16VEC)
    (|U32Vector| . U32VEC)
    (|Vector| . VECTOR)
@@ -39273,6 +39274,35 @@ Given a form, $u$, we try to recover the input line that created it.
 
 \end{chunk}
 
+\section{U8Vector}
+
+\defmacro{qvlenU8}
+\begin{chunk}{defmacro qvlenU8}
+(defmacro qvlenU8 (v)
+ `(length (the (simple-array (unsigned-byte 8) (*)) ,v)))
+
+\end{chunk}
+
+\defmacro{eltU8}
+\begin{chunk}{defmacro eltU8}
+(defmacro eltU8 (v i)
+ `(aref (the (simple-array (unsigned-byte 8) (*)) ,v) ,i))
+
+\end{chunk}
+
+\defmacro{seteltU8}
+\begin{chunk}{defmacro seteltU8}
+(defmacro seteltU8 (v i s)
+ `(setf (aref (the (simple-array (unsigned-byte 8) (*)) ,v) ,i), s))
+
+\end{chunk}
+
+\defun{getRefvU8}{getRefvU8}
+\begin{chunk}{defun getRefvU8}
+(defun getRefvU8 (x n)
+  (make-array n :initial-element x :element-type '(unsigned-byte 8)))
+\end{chunk}
+
 \section{U16Vector}
 
 \defmacro{qvlenU16}
@@ -43874,6 +43904,7 @@ This needs to work off the internal exposure list, not the file.
 \getchunk{defmacro dlen}
 \getchunk{defmacro dsetaref2}
 \getchunk{defmacro dsetelt}
+\getchunk{defmacro eltU8}
 \getchunk{defmacro eltU16}
 \getchunk{defmacro eltU32}
 \getchunk{defmacro funfind}
@@ -43884,10 +43915,12 @@ This needs to work off the internal exposure list, not the file.
 \getchunk{defmacro make-double-matrix1}
 \getchunk{defmacro make-double-vector}
 \getchunk{defmacro make-double-vector1}
+\getchunk{defmacro qvlenU8}
 \getchunk{defmacro qvlenU16}
 \getchunk{defmacro qvlenU32}
 \getchunk{defmacro Rest}
 \getchunk{defmacro startsId?}
+\getchunk{defmacro seteltU8}
 \getchunk{defmacro seteltU16}
 \getchunk{defmacro seteltU32}
 \getchunk{defmacro trapNumericErrors}
@@ -44543,6 +44576,7 @@ This needs to work off the internal exposure list, not the file.
 \getchunk{defun mac0SubstituteOuter}
 \getchunk{defun make-appendstream}
 \getchunk{defun make-databases}
+\getchunk{defun getRefvU8}
 \getchunk{defun getRefvU16}
 \getchunk{defun getRefvU32}
 \getchunk{defun makeFullNamestring}
diff --git a/books/ps/v103u8vector.eps b/books/ps/v103u8vector.eps
new file mode 100644
index 0000000..5ed1746
--- /dev/null
+++ b/books/ps/v103u8vector.eps
@@ -0,0 +1,278 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: pic
+%%Pages: 1
+%%BoundingBox: 36 36 112 152
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 112 152
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 76 116 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+0.16355 0.45339 0.92549 graphcolor
+newpath -4 -5 moveto
+-4 112 lineto
+73 112 lineto
+73 -5 lineto
+closepath fill
+1 setlinewidth
+0.16355 0.45339 0.92549 graphcolor
+newpath -4 -5 moveto
+-4 112 lineto
+73 112 lineto
+73 -5 lineto
+closepath stroke
+% U8VEC
+gsave
+[ /Rect [ 2 72 66 108 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=U8VEC) >>
+  /Subtype /Link
+/ANN pdfmark
+0.27273 0.73333 1 nodecolor
+newpath 66 108 moveto
+2 108 lineto
+2 72 lineto
+66 72 lineto
+closepath fill
+1 setlinewidth
+filled
+0.27273 0.73333 1 nodecolor
+newpath 66 108 moveto
+2 108 lineto
+2 72 lineto
+66 72 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+9.5 86.4 moveto 49 (U8VEC) alignedtext
+grestore
+% A1AGG
+gsave
+[ /Rect [ 0 0 68 36 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=A1AGG) >>
+  /Subtype /Link
+/ANN pdfmark
+0.60606 0.73333 1 nodecolor
+newpath 68 36 moveto
+0 36 lineto
+0 0 lineto
+68 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0.60606 0.73333 1 nodecolor
+newpath 68 36 moveto
+0 36 lineto
+0 0 lineto
+68 0 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+8 14.4 moveto 52 (A1AGG) alignedtext
+grestore
+% U8VEC->A1AGG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 34 71.83 moveto
+34 64.13 34 54.97 34 46.42 curveto
+stroke
+0 0 0 edgecolor
+newpath 37.5 46.41 moveto
+34 36.41 lineto
+30.5 46.41 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 37.5 46.41 moveto
+34 36.41 lineto
+30.5 46.41 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF
diff --git a/changelog b/changelog
index 7f62e02..7f53725 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,8 @@
+20130223 tpd src/axiom-website/patches.html 20130223.03.tpd.patch
+20130223 tpd src/input/machinearithmetic.input unit test U8Vector
+20130223 tpd books/bookvol5 add lisp support for U8Vector
+20130223 tpd books/bookvol10.3 add U8Vector
+20130223 tpd books/ps/v103u8vector.eps added
 20130223 tpd src/axiom-website/patches.html 20130223.02.tpd.patch
 20130223 tpd src/algebra/Makefile add machinearithmetic.input
 20130223 tpd src/input/machinearithmetic.input test U16Vector
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index bedd7fc..a6e3dbf 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3981,5 +3981,7 @@ books/bookvol10.3 update U32Vector domain, add machinearithmetic
 books/bookvol5 fix exposure for MAGCDOC category
 <a href="patches/20130223.02.tpd.patch">20130223.02.tpd.patch</a>
 books/bookvol10.3 add U16Vector
+<a href="patches/20130223.03.tpd.patch">20130223.03.tpd.patch</a>
+books/bookvol10.3 add U8Vector
  </body>
 </html>
diff --git a/src/input/machinearithmetic.input.pamphlet b/src/input/machinearithmetic.input.pamphlet
index 79479fb..9edbf2b 100644
--- a/src/input/machinearithmetic.input.pamphlet
+++ b/src/input/machinearithmetic.input.pamphlet
@@ -18,160 +18,237 @@
 )set message auto off
 )clear all
  
---S 1 of 22
+--S 1 of 33
 t1:=empty()$U32Vector
 --R
 --R   (1)  []
 --R                                                              Type: U32Vector
 --E 1
 
---S 2 of 22
+--S 2 of 33
 t2:=new(10,10)$U32Vector
 --R
 --R   (2)  [10,10,10,10,10,10,10,10,10,10]
 --R                                                              Type: U32Vector
 --E 2
 
---S 3 of 22
+--S 3 of 33
 t3:=qelt(t2,2)
 --R
 --R   (3)  10
 --R                                                        Type: PositiveInteger
 --E 3
 
---S 4 of 22
+--S 4 of 33
 t4:=elt(t2,2)
 --R
 --R   (4)  10
 --R                                                        Type: PositiveInteger
 --E 4
 
---S 5 of 22
+--S 5 of 33
 t5:=t2.2
 --R
 --R   (5)  10
 --R                                                        Type: PositiveInteger
 --E 5
 
---S 6 of 22
+--S 6 of 33
 t6:=qsetelt!(t2,2,5)
 --R
 --R   (6)  5
 --R                                                        Type: PositiveInteger
 --E 6
 
---S 7 of 22
+--S 7 of 33
 t2.2
 --R
 --R   (7)  5
 --R                                                        Type: PositiveInteger
 --E 7
 
---S 8 of 22
+--S 8 of 33
 t7:=setelt(t2,3,6)
 --R
 --R   (8)  6
 --R                                                        Type: PositiveInteger
 --E 8
 
---S 9 of 22
+--S 9 of 33
 t2.3
 --R
 --R   (9)  6
 --R                                                        Type: PositiveInteger
 --E 9
 
---S 10 of 22
+--S 10 of 33
 #t2
 --R
 --R   (10)  10
 --R                                                        Type: PositiveInteger
 --E 10
 
---S 11 of 22
+--S 11 of 33
 t8:=fill!(t2,7)
 --R
 --R   (11)  [7,7,7,7,7,7,7,7,7,7]
 --R                                                              Type: U32Vector
 --E 11
 
---S 12 of 22
+--S 12 of 33
 ta:=empty()$U16Vector
 --R
 --R   (12)  []
 --R                                                              Type: U16Vector
 --E 12
 
---S 13 of 22
+--S 13 of 33
 tb:=new(10,10)$U16Vector
 --R
 --R   (13)  [10,10,10,10,10,10,10,10,10,10]
 --R                                                              Type: U16Vector
 --E 13
 
---S 14 of 22
+--S 14 of 33
 tc:=qelt(tb,2)
 --R
 --R   (14)  10
 --R                                                        Type: PositiveInteger
 --E 14
 
---S 15 of 22
+--S 15 of 33
 td:=elt(tb,2)
 --R
 --R   (15)  10
 --R                                                        Type: PositiveInteger
 --E 15
 
---S 16 of 22
+--S 16 of 33
 te:=tb.2
 --R
 --R   (16)  10
 --R                                                        Type: PositiveInteger
 --E 16
 
---S 17 of 22
+--S 17 of 33
 tf:=qsetelt!(tb,2,5)
 --R
 --R   (17)  5
 --R                                                        Type: PositiveInteger
 --E 17
 
---S 18 of 22
+--S 18 of 33
 tb.2
 --R
 --R   (18)  5
 --R                                                        Type: PositiveInteger
 --E 18
 
---S 19 of 22
+--S 19 of 33
 tg:=setelt(tb,3,6)
 --R
 --R   (19)  6
 --R                                                        Type: PositiveInteger
 --E 19
 
---S 20 of 22
+--S 20 of 33
 tb.3
 --R
 --R   (20)  6
 --R                                                        Type: PositiveInteger
 --E 20
 
---S 21 of 22
+--S 21 of 33
 #tb
 --R
 --R   (21)  10
 --R                                                        Type: PositiveInteger
 --E 21
 
---S 22 of 22
+--S 22 of 33
 th:=fill!(tb,7)
 --R
 --R   (22)  [7,7,7,7,7,7,7,7,7,7]
 --R                                                              Type: U16Vector
 --E 22
 
+--S 23 of 33
+t1a:=empty()$U8Vector
+--R
+--R   (23)  []
+--R                                                              Type: U8Vector
+--E 23
+
+--S 24 of 33
+t1b:=new(10,10)$U8Vector
+--R
+--R   (24)  [10,10,10,10,10,10,10,10,10,10]
+--R                                                              Type: U8Vector
+--E 24
+
+--S 25 of 33
+t1c:=qelt(t1b,2)
+--R
+--R   (25)  10
+--R                                                        Type: PositiveInteger
+--E 25
+
+--S 26 of 33
+t1d:=elt(t1b,2)
+--R
+--R   (26)  10
+--R                                                        Type: PositiveInteger
+--E 26
+
+--S 27 of 33
+t1e:=t1b.2
+--R
+--R   (27)  10
+--R                                                        Type: PositiveInteger
+--E 27
+
+--S 28 of 33
+t1f:=qsetelt!(t1b,2,5)
+--R
+--R   (28)  5
+--R                                                        Type: PositiveInteger
+--E 28
+
+--S 29 of 33
+t1b.2
+--R
+--R   (29)  5
+--R                                                        Type: PositiveInteger
+--E 29
+
+--S 30 of 33
+t1g:=setelt(t1b,3,6)
+--R
+--R   (30)  6
+--R                                                        Type: PositiveInteger
+--E 30
+
+--S 31 of 33
+t1b.3
+--R
+--R   (31)  6
+--R                                                        Type: PositiveInteger
+--E 31
+
+--S 32 of 33
+#t1b
+--R
+--R   (32)  10
+--R                                                        Type: PositiveInteger
+--E 32
+
+--S 33 of 33
+t1h:=fill!(t1b,7)
+--R
+--R   (33)  [7,7,7,7,7,7,7,7,7,7]
+--R                                                              Type: U8Vector
+--E 33
+
 )spool 
 )lisp (bye)
  
