Added dxerr8 and dxerr9 libraries.

diff --git a/dlls/dxerr9/errors.awk b/dlls/dxerr9/errors.awk
new file mode 100644
index 0000000..f983367
--- /dev/null
+++ b/dlls/dxerr9/errors.awk
@@ -0,0 +1,65 @@
+BEGIN {
+	print "/* Machine generated. Do not edit. */"
+	print ""
+	lines = 0
+}
+{ 
+	split($0, array, FS)
+
+	if (NF > 0 && length(array[1]) > 0) {
+		lines++
+
+		# save the first word is the names array
+		names[lines] = array[1] 
+
+		# create the WCHAR version of the name
+		printf "static const WCHAR name%dW[] = { ", lines
+		i = 1
+		len = length(array[1]) + 1
+		while (i < len) {
+			printf "'%s',", substr(array[1],i,1)
+			i++
+		}
+		print  "0 };"
+	
+		# create the CHAR version of the description
+		printf "static const CHAR description%dA[] = \"", lines
+		word = 2
+		while (word < (NF + 1)) {
+			printf "%s", array[word]
+			if (word < NF )
+				printf " "
+			word++
+		}
+		print  "\";"
+	
+		# create the WCHAR version of the description
+		printf "static const WCHAR description%dW[] = { ", lines
+		word = 2
+		while (word < (NF + 1)) {
+			i = 1
+			len = length(array[word]) + 1
+			while (i < len) {
+				printf "'%s',", substr(array[word],i,1)
+				i++
+			}
+			if (word < NF )
+				printf "' ',"
+			word++
+		}
+		print  "0 };"
+	}
+}
+END {
+	print ""
+	print "static const error_info info[] = {"
+
+	i = 1 
+	while ( i <= lines) { 
+		printf "    { %s, \"%s\", name%dW, description%dA, description%dW },\n", 
+			names[i], names[i], i, i,i 
+		i++
+	}
+
+	print "};"
+}