Major hacks to get newlib libm test for SPU, so we have some math tests.

The current newlib math tests won't build for any targets.

Proper Makefile.am and more is needed for all targets (not just SPU), and
then maybe add spu specific changes (split into chunks, down-size some
print/string tests, add ppu open image).

Index: newlib-1.15.0/newlib/libm/test/test.mk
===================================================================
--- /dev/null
+++ newlib-1.15.0/newlib/libm/test/test.mk
@@ -0,0 +1,169 @@
+#
+# Hacked makefile.
+#
+SPU_CC=spu-gcc
+CC=$(SPU_CC)
+SPU_AR=spu-ar
+CROSS_LD=spu-gcc
+
+LIBC=../../../spu/newlib/libc.a
+LIBM=../../../spu/newlib/libm.a
+#LIBC=
+#LIBM=-lm
+TESTLIB=testlib.a
+LIBS=$(TESTLIB) $(LIBC) $(LIBM)
+LDFLAGS=$(LIBS)
+
+# XXX log2 doesn't exist, maybe add it
+
+ORIG_OFILES=test.o  string.o  convert.o conv_vec.o iconv_vec.o test_is.o dvec.o sprint_vec.o sprint_ivec.o math2.o test_ieee.o
+
+OFILES=test.o  string.o  convert.o conv_vec.o iconv_vec.o test_is_file.o \
+	dvec.o sprint_vec.o sprint_ivec.o math2.o
+
+OMIT=log2_vec.o log2f_vec.o
+
+VEC_OFILES= \
+	math.o atan2_vec.o atan2f_vec.o jn_vec.o jnf_vec.o yn_vec.o \
+	ynf_vec.o acos_vec.o acosf_vec.o acosh_vec.o acoshf_vec.o \
+	asin_vec.o asinf_vec.o asinh_vec.o asinhf_vec.o atan_vec.o \
+	atanf_vec.o atanh_vec.o atanhf_vec.o ceil_vec.o ceilf_vec.o \
+	cos_vec.o cosf_vec.o cosh_vec.o coshf_vec.o erf_vec.o erfc_vec.o \
+	erfcf_vec.o erff_vec.o exp_vec.o expf_vec.o fabs_vec.o fabsf_vec.o \
+	floor_vec.o floorf_vec.o gamma_vec.o gammaf_vec.o j0_vec.o \
+	j0f_vec.o j1_vec.o j1f_vec.o log10_vec.o log10f_vec.o log1p_vec.o \
+	log1pf_vec.o log_vec.o logf_vec.o sin_vec.o sinf_vec.o sinh_vec.o \
+	sinhf_vec.o sqrt_vec.o sqrtf_vec.o tan_vec.o tanf_vec.o tanh_vec.o \
+	tanhf_vec.o y0_vec.o y0f_vec.o y1_vec.o y1f_vec.o hypotf_vec.o \
+	hypot_vec.o fmod_vec.o fmodf_vec.o
+
+TEST_OBJ1= test_cvt.o test_math2.o test_string.o test_is.o
+
+TEST_PROGS=$(TEST_OBJ1:.o=)
+
+TEST_OBJ=$(TEST_OBJ1) test_math.o
+
+MATH_TEST_OBJ= \
+	test_acos.o test_acosf.o test_acosh.o test_acoshf.o test_asin.o \
+	test_asinf.o test_asinh.o test_asinhf.o test_atan.o test_atan2.o \
+	test_atan2f.o test_atanf.o test_atanh.o test_atanhf.o test_ceil.o \
+	test_ceilf.o test_cos.o test_cosf.o test_cosh.o test_coshf.o \
+	test_erf.o test_erfc.o test_erfcf.o test_erff.o test_exp.o \
+	test_expf.o test_fabs.o test_fabsf.o test_floor.o test_floorf.o \
+	test_fmod.o test_fmodf.o test_gamma.o test_gammaf.o test_hypot.o \
+	test_hypotf.o test_j0.o test_j0f.o test_j1.o test_j1f.o test_jn.o \
+	test_jnf.o test_log.o test_log10.o test_log10f.o test_log1p.o \
+	test_log1pf.o test_logf.o test_sin.o \
+	test_sinf.o test_sinh.o test_sinhf.o test_sqrt.o test_sqrtf.o \
+	test_tan.o test_tanf.o test_tanh.o test_tanhf.o test_y0.o \
+	test_y0f.o test_y1.o test_y1f.o test_ynf.o
+
+# No test_log2.o or test_log2f.o in above
+
+MATH_TEST=$(MATH_TEST_OBJ:.o=)
+
+ALL_TESTS=$(MATH_TEST) $(TEST_PROGS)
+
+all: $(OFILES) $(TESTLIB) $(ALL_TESTS)
+
+run:
+	@for t in $(ALL_TESTS) ; do \
+		echo ============ $$t =========== ; \
+		elfspe $$t ; \
+	done
+
+$(TEST_OBJ): %.o: test_template.c
+	$(CC) -c -DTEST_NAME=$* test_template.c -o $(@F)
+
+$(TEST_PROGS):
+	$(CC) $(@F).o -o $(@F) $(LIBS)
+
+$(MATH_TEST): test_math.o
+	$(CC) $(@F).o test_math.o -o $(@F) $(LIBS)
+
+$(MATH_TEST_OBJ): %.o: math_template.c
+	$(CC) -c -DTEST_NAME=$* math_template.c -o $(@F)
+
+$(TESTLIB): $(VEC_OFILES)
+	rm -f $(TESTLIB)
+	$(SPU_AR) rc $(TESTLIB) $(VEC_OFILES) \
+		convert.o sprint_vec.o sprint_ivec.o dvec.o conv_vec.o \
+		iconv_vec.o math2.o string.o test_is_file.o \
+
+clean:
+	$(RM) $(TEST_OBJ) $(ALL_TESTS) $(MATH_TEST_OBJ) \
+		$(OFILES) $(VEC_OFILES) $(TESTLIB) *~
+
+# XXX can't figure out an automatic way to force these dependencies:
+# test_math:	test_math.o
+# test_math.o:
+test_cvt: test_cvt.o
+test_math2: test_math2.o
+test_string: test_string.o
+test_is: test_is.o
+
+test_acos:	test_acos.o
+test_acosf:	test_acosf.o
+test_acosh:	test_acosh.o
+test_acoshf:	test_acoshf.o
+test_asin:	test_asin.o
+test_asinf:	test_asinf.o
+test_asinh:	test_asinh.o
+test_asinhf:	test_asinhf.o
+test_atan:	test_atan.o
+test_atan2:	test_atan2.o
+test_atan2f:	test_atan2f.o
+test_atanf:	test_atanf.o
+test_atanh:	test_atanh.o
+test_atanhf:	test_atanhf.o
+test_ceil:	test_ceil.o
+test_ceilf:	test_ceilf.o
+test_cos:	test_cos.o
+test_cosf:	test_cosf.o
+test_cosh:	test_cosh.o
+test_coshf:	test_coshf.o
+test_erf:	test_erf.o
+test_erfc:	test_erfc.o
+test_erfcf:	test_erfcf.o
+test_erff:	test_erff.o
+test_exp:	test_exp.o
+test_expf:	test_expf.o
+test_fabs:	test_fabs.o
+test_fabsf:	test_fabsf.o
+test_floor:	test_floor.o
+test_floorf:	test_floorf.o
+test_fmod:	test_fmod.o
+test_fmodf:	test_fmodf.o
+test_gamma:	test_gamma.o
+test_gammaf:	test_gammaf.o
+test_hypot:	test_hypot.o
+test_hypotf:	test_hypotf.o
+test_j0:	test_j0.o
+test_j0f:	test_j0f.o
+test_j1:	test_j1.o
+test_j1f:	test_j1f.o
+test_jn:	test_jn.o
+test_jnf:	test_jnf.o
+test_log:	test_log.o
+test_log10:	test_log10.o
+test_log10f:	test_log10f.o
+test_log1p:	test_log1p.o
+test_log1pf:	test_log1pf.o
+# test_log2:	test_log2.o
+# test_log2f:	test_log2f.o
+test_logf:	test_logf.o
+test_sin:	test_sin.o
+test_sinf:	test_sinf.o
+test_sinh:	test_sinh.o
+test_sinhf:	test_sinhf.o
+test_sqrt:	test_sqrt.o
+test_sqrtf:	test_sqrtf.o
+test_tan:	test_tan.o
+test_tanf:	test_tanf.o
+test_tanh:	test_tanh.o
+test_tanhf:	test_tanhf.o
+test_y0:	test_y0.o
+test_y0f:	test_y0f.o
+test_y1:	test_y1.o
+test_y1f:	test_y1f.o
+test_ynf:	test_ynf.o
Index: newlib-1.15.0/newlib/libm/test/math_template.c
===================================================================
--- /dev/null
+++ newlib-1.15.0/newlib/libm/test/math_template.c
@@ -0,0 +1,415 @@
+/*
+  Test the library maths functions using trusted precomputed test
+  vectors.
+
+  These vectors were originally generated on a sun3 with a 68881 using
+  80 bit precision, but ...
+
+  Each function is called with a variety of interesting arguments.
+  Note that many of the polynomials we use behave badly when the
+  domain is stressed, so the numbers in the vectors depend on what is
+  useful to test - eg sin(1e30) is pointless - the arg has to be
+  reduced modulo pi, and after that there's no bits of significance
+  left to evaluate with - any number would be just as precise as any
+  other.
+
+
+*/
+
+#include "test.h"
+#include <math.h>
+#include <ieeefp.h>
+#include <float.h>
+#include <math.h>
+#include <errno.h>
+#include <stdio.h>
+
+int inacc;
+
+int merror;
+double mretval = 64;
+int traperror = 1;
+char *mname;
+
+int verbose;
+
+/* To test exceptions - we trap them all and return a known value */
+int
+_DEFUN(matherr,(e),
+       struct exception *e)
+{
+  if (traperror)
+  {
+    merror = e->type + 12;
+    mname = e->name;
+    e->retval = mretval;
+    errno = merror + 24;
+    return 1;
+  }
+  return 0;
+}
+
+
+void _DEFUN(translate_to,(file,r),
+	    FILE *file _AND
+	    double r)
+{
+  __ieee_double_shape_type bits;
+  bits.value = r;
+  fprintf(file, "0x%08x, 0x%08x", bits.parts.msw, bits.parts.lsw);
+}
+
+int
+_DEFUN(ffcheck,( is, p, name, serrno, merror),
+       double is _AND
+       one_line_type *p _AND
+       char *name _AND
+       int serrno _AND
+       int merror)
+{
+  /* Make sure the answer isn't to far wrong from the correct value */
+  __ieee_double_shape_type correct, isbits;
+  int mag;
+  isbits.value = is;
+
+  correct.parts.msw = p->qs[0].msw;
+  correct.parts.lsw = p->qs[0].lsw;
+
+  mag = mag_of_error(correct.value, is);
+
+  if (mag < p->error_bit)
+  {
+    inacc ++;
+
+    printf("%s:%d, inaccurate answer: bit %d (%08x%08x %08x%08x) (%g %g)\n",
+	   name,  p->line, mag,
+	   correct.parts.msw,
+	   correct.parts.lsw,
+	   isbits.parts.msw,
+	   isbits.parts.lsw,
+	   correct.value, is);
+  }
+
+#if 0
+  if (p->qs[0].merror != merror)
+  {
+    printf("testing %s_vec.c:%d, matherr wrong: %d %d\n",
+	   name, p->line, merror, p->qs[0].merror);
+  }
+
+  if (p->qs[0].errno_val != errno)
+  {
+    printf("testing %s_vec.c:%d, errno wrong: %d %d\n",
+	   name, p->line, errno, p->qs[0].errno_val);
+
+  }
+#endif
+  return mag;
+}
+
+double
+_DEFUN(thedouble, (msw, lsw),
+       long msw _AND
+       long lsw)
+{
+  __ieee_double_shape_type x;
+
+  x.parts.msw = msw;
+  x.parts.lsw = lsw;
+  return x.value;
+}
+
+int calc;
+int reduce;
+
+
+_DEFUN(frontline,(f, mag, p, result, merror, myerrno, args, name),
+       FILE *f _AND
+       int mag _AND
+       one_line_type *p _AND
+       double result _AND
+       int merror _AND
+       int myerrno _AND
+       char *args _AND
+       char *name)
+{
+  if (reduce && p->error_bit < mag)
+  {
+    fprintf(f, "{%2d,", p->error_bit);
+  }
+  else
+  {
+    fprintf(f, "{%2d,",mag);
+  }
+
+
+  fprintf(f,"%2d,%3d,", merror,myerrno);
+  fprintf(f, "__LINE__, ");
+
+  if (calc)
+  {
+    translate_to(f, result);
+  }
+  else
+  {
+    translate_to(f, thedouble(p->qs[0].msw, p->qs[0].lsw));
+  }
+
+  fprintf(f, ", ");
+
+  fprintf(f,"0x%08x, 0x%08x", p->qs[1].msw, p->qs[1].lsw);
+
+
+  if (args[2])
+  {
+    fprintf(f, ", ");
+    fprintf(f,"0x%08x, 0x%08x", p->qs[2].msw, p->qs[2].lsw);
+  }
+	
+  fprintf(f,"},	/* %g=f(%g",result,
+  	  thedouble(p->qs[1].msw, p->qs[1].lsw));
+
+  if (args[2])
+  {
+    fprintf(f,", %g", thedouble(p->qs[2].msw,p->qs[2].lsw));
+  }
+  fprintf(f, ")*/\n");
+}
+
+#ifdef CRASH_SPU_GCC
+_DEFUN(finish,(f, vector,  result , p, args, name),
+       FILE *f _AND
+       int vector _AND
+       double result _AND
+       one_line_type *p _AND
+       char *args _AND
+       char *name)
+#else
+finish(FILE *f, int vector,  double result, one_line_type *p, char *args, char *name)
+#endif
+{
+  int mag;
+
+  mag = ffcheck(result, p,name,  merror, errno);
+  if (vector)
+  {
+    frontline(f, mag, p, result, merror, errno, args, name);
+  }
+}
+int redo;
+
+#ifdef CRASH_SPU_GCC
+_DEFUN(run_vector_1,(vector, p, func, name, args),
+       int vector _AND
+       one_line_type *p _AND
+       char *func _AND
+       char *name _AND
+       char *args)
+#else
+run_vector_1 (int vector, one_line_type *p, char *func, char * name, char *args)
+#endif
+{
+  FILE *f;
+  int mag;
+  double result;
+
+  if (vector)
+  {
+
+    VECOPEN(name, f);
+
+    if (redo)
+    {
+      double k;
+
+      for (k = -.2; k < .2; k+= 0.00132)
+      {
+
+	fprintf(f,"{1,1, 1,1, 0,0,0x%08x,0x%08x, 0x%08x, 0x%08x},\n",
+		k,k+4);
+
+      }
+
+      for (k = -1.2; k < 1.2; k+= 0.01)
+      {
+
+	fprintf(f,"{1,1, 1,1, 0,0,0x%08x,0x%08x, 0x%08x, 0x%08x},\n",
+		k,k+4);
+
+      }
+      for (k = -M_PI *2; k < M_PI *2; k+= M_PI/2)
+      {
+
+	fprintf(f,"{1,1, 1,1, 0,0,0x%08x,0x%08x, 0x%08x, 0x%08x},\n",
+		k,k+4);
+
+      }
+
+      for (k = -30; k < 30; k+= 1.7)
+      {
+
+	fprintf(f,"{2,2, 1,1, 0,0, 0x%08x,0x%08x, 0x%08x, 0x%08x},\n",
+		k,k+4);
+
+      }
+      VECCLOSE(f, name, args);
+      return;
+    }
+  }
+
+  newfunc(name);
+  while (p->line)
+  {
+    double arg1 = thedouble(p->qs[1].msw, p->qs[1].lsw);
+    double arg2 = thedouble(p->qs[2].msw, p->qs[2].lsw);
+
+    double r;
+    double rf;
+
+    errno = 0;
+    merror = 0;
+    mname = 0;
+
+
+    line(p->line);
+
+    merror = 0;
+    errno = 123;
+
+    if (strcmp(args,"dd")==0)
+    {
+      typedef double _EXFUN((*pdblfunc),(double));
+
+      /* Double function returning a double */
+
+      result = ((pdblfunc)(func))(arg1);
+
+      finish(f,vector, result, p, args, name);
+    }
+    else  if (strcmp(args,"ff")==0)
+    {
+      float arga;
+      double a;
+
+      typedef float _EXFUN((*pdblfunc),(float));
+
+      /* Double function returning a double */
+
+      if (arg1 < FLT_MAX )
+      {
+	arga = arg1;
+	result = ((pdblfunc)(func))(arga);
+	finish(f, vector, result, p,args, name);
+      }
+    }
+    else if (strcmp(args,"ddd")==0)
+     {
+       typedef double _EXFUN((*pdblfunc),(double,double));
+
+       result = ((pdblfunc)(func))(arg1,arg2);
+       finish(f, vector, result, p,args, name);
+     }
+     else  if (strcmp(args,"fff")==0)
+     {
+       double a,b;
+
+       float arga;
+       float argb;
+
+       typedef float _EXFUN((*pdblfunc),(float,float));
+
+
+       if (arg1 < FLT_MAX && arg2 < FLT_MAX)
+       {
+	 arga = arg1;
+	 argb = arg2;
+	 result = ((pdblfunc)(func))(arga, argb);
+	 finish(f, vector, result, p,args, name);
+       }
+     }
+     else if (strcmp(args,"did")==0)
+     {
+       typedef double _EXFUN((*pdblfunc),(int,double));
+
+       result = ((pdblfunc)(func))((int)arg1,arg2);
+       finish(f, vector, result, p,args, name);
+     }
+     else  if (strcmp(args,"fif")==0)
+     {
+       double a,b;
+
+       float arga;
+       float argb;
+
+       typedef float _EXFUN((*pdblfunc),(int,float));
+
+
+       if (arg1 < FLT_MAX && arg2 < FLT_MAX)
+       {
+	 arga = arg1;
+	 argb = arg2;
+	 result = ((pdblfunc)(func))((int)arga, argb);
+	 finish(f, vector, result, p,args, name);
+       }
+     }
+
+    p++;
+  }
+  if (vector)
+  {
+    VECCLOSE(f, name, args);
+  }
+}
+
+void
+_DEFUN_VOID(test_math)
+{
+  TEST_NAME(0);
+}
+
+/* These have to be played with to get to compile on machines which
+   don't have the fancy <foo>f entry points
+*/
+
+#if 0
+float _DEFUN(cosf,(a), float a) { return cos((double)a); }
+float _DEFUN(sinf,(a), float  a) { return sin((double)a); }
+float _DEFUN(log1pf,(a), float a) { return log1p((double)a); }
+float _DEFUN(tanf,(a), float a) { return tan((double)a); }
+float _DEFUN(ceilf,(a), float a) { return ceil(a); }
+float _DEFUN(floorf,(a), float a) { return floor(a); }
+#endif
+
+/*ndef HAVE_FLOAT*/
+#if 0
+
+float fmodf(a,b) float a,b; { return fmod(a,b); }
+float hypotf(a,b) float a,b; { return hypot(a,b); }
+
+float acosf(a) float a; { return acos(a); }
+float acoshf(a) float a; { return acosh(a); }
+float asinf(a) float a; { return asin(a); }
+float asinhf(a) float a; { return asinh(a); }
+float atanf(a) float a; { return atan(a); }
+float atanhf(a) float a; { return atanh(a); }
+
+float coshf(a) float a; { return cosh(a); }
+float erff(a) float a; { return erf(a); }
+float erfcf(a) float a; { return erfc(a); }
+float expf(a) float a; { return exp(a); }
+float fabsf(a) float a; { return fabs(a); }
+
+float gammaf(a) float a; { return gamma(a); }
+float j0f(a) float a; { return j0(a); }
+float j1f(a) float a; { return j1(a); }
+float log10f(a) float a; { return log10(a); }
+
+float logf(a) float a; { return log(a); }
+
+float sinhf(a) float a; { return sinh(a); }
+float sqrtf(a) float a; { return sqrt(a); }
+
+float tanhf(a) float a; { return tanh(a); }
+float y0f(a) float a; { return y0(a); }
+float y1f(a) float a; { return y1(a); }
+#endif
Index: newlib-1.15.0/newlib/libm/test/test_template.c
===================================================================
--- /dev/null
+++ newlib-1.15.0/newlib/libm/test/test_template.c
@@ -0,0 +1,268 @@
+#include <signal.h>
+#include  "test.h"
+#include <math.h>
+#include <ieeefp.h>
+#include <string.h>
+int verbose;
+static int count;
+int inacc;
+
+
+int
+_DEFUN(main,(ac, av),
+       int ac _AND
+       char **av)
+{
+  int i;
+  int math2 = 1;
+  int string= 1;
+  int is = 1;
+  int math= 1;
+  int cvt = 1;
+  int ieee= 1;
+bt();
+  for (i = 1; i < ac; i++) 
+  {
+    if (strcmp(av[i],"-v")==0) 
+     verbose ++;
+  }
+  TEST_NAME();
+  printf("Tested %d functions, %d errors detected\n", count, inacc);
+  return 0;
+}
+
+
+static _CONST char *iname = "foo";
+void 
+_DEFUN(newfunc,(string),
+       _CONST char *string)
+{
+  if (strcmp(iname, string)) 
+  {
+    printf("testing %s\n", string);
+    fflush(stdout);
+    iname = string;
+  }
+  
+}
+
+
+static int theline;
+
+void line(li)
+int li;
+{
+  if (verbose)  
+  {
+    printf("  %d\n", li);
+  }
+  theline = li;
+  
+  count++;
+}
+
+
+
+int redo = 0;
+int reduce = 0;
+
+int strtod_vector = 0;
+
+int 
+_DEFUN(bigger,(a,b),
+	   __ieee_double_shape_type *a  _AND
+	   __ieee_double_shape_type *b)
+{
+
+  if (a->parts.msw > b->parts.msw) 
+    {
+
+      return 1;
+    } 
+  else if (a->parts.msw == b->parts.msw) 
+    {
+      if (a->parts.lsw > b->parts.lsw) 
+	{
+	  return 1;
+	}
+    }
+  return 0;
+}
+
+
+
+/* Return the first bit different between two double numbers */
+int 
+_DEFUN(mag_of_error,(is, shouldbe),
+       double is _AND
+       double shouldbe)
+{
+  __ieee_double_shape_type a,b;
+  int i;
+  int a_big;
+  unsigned  int mask;
+  unsigned long int __x;
+  unsigned long int msw, lsw;						  
+  a.value = is;
+  
+  b.value = shouldbe;
+  
+  if (a.parts.msw == b.parts.msw 
+      && a.parts.lsw== b.parts.lsw) return 64;
+
+
+  /* Subtract the larger from the smaller number */
+
+  a_big = bigger(&a, &b);
+
+  if (!a_big) {
+    int t;
+    t = a.parts.msw;
+    a.parts.msw = b.parts.msw;
+    b.parts.msw = t;
+
+    t = a.parts.lsw;
+    a.parts.lsw = b.parts.lsw;
+    b.parts.lsw = t;
+  }
+
+
+
+  __x = (a.parts.lsw) - (b.parts.lsw);							
+  msw = (a.parts.msw) - (b.parts.msw) - (__x > (a.parts.lsw));
+  lsw = __x;								
+
+  
+
+
+  /* Find out which bit the difference is in */
+  mask = 0x80000000;
+  for (i = 0; i < 32; i++)
+  {
+    if (((msw) & mask)!=0) return i;
+    mask >>=1;
+  }
+  
+  mask = 0x80000000;
+  for (i = 0; i < 32; i++)
+  {
+    
+    if (((lsw) & mask)!=0) return i+32;
+    mask >>=1;
+  }
+  
+  return 64;
+  
+}
+
+ int ok_mag;
+
+
+
+void
+_DEFUN(test_sok,(is, shouldbe),
+       char *is _AND
+       char *shouldbe)
+{
+  if (strcmp(is,shouldbe))
+    {
+    printf("%s:%d, inacurate answer: (%s should be %s)\n",
+	   iname, 
+	   theline,
+	   is, shouldbe);
+    inacc++;
+  }
+}
+void
+_DEFUN(test_iok,(is, shouldbe),
+       int is _AND
+       int shouldbe)
+{
+  if (is != shouldbe){
+    printf("%s:%d, inacurate answer: (%08x should be %08x)\n",
+	   iname, 
+	   theline,
+	   is, shouldbe);
+    inacc++;
+  }
+}
+
+
+/* Compare counted strings upto a certain length - useful to test single
+   prec float conversions against double results
+*/
+void 
+_DEFUN(test_scok,(is, shouldbe, count),
+       char *is _AND
+       char *shouldbe _AND
+       int count)
+{
+  if (strncmp(is,shouldbe, count))
+    {
+    printf("%s:%d, inacurate answer: (%s should be %s)\n",
+	   iname, 
+	   theline,
+	   is, shouldbe);
+    inacc++;
+  }
+}
+
+void
+_DEFUN(test_eok,(is, shouldbe),
+       int is _AND
+       int shouldbe)
+{
+  if (is != shouldbe){
+    printf("%s:%d, bad errno answer: (%d should be %d)\n",
+	   iname, 
+	   theline,
+	   is, shouldbe);
+    inacc++;
+  }
+}
+
+void
+_DEFUN(test_mok,(value, shouldbe, okmag),
+       double value _AND
+       double shouldbe _AND
+       int okmag)
+{
+  __ieee_double_shape_type a,b;
+  int mag = mag_of_error(value, shouldbe);
+  if (mag == 0) 
+  {
+    /* error in the first bit is ok if the numbers are both 0 */
+    if (value == 0.0 && shouldbe == 0.0)
+     return;
+    
+  }
+  a.value = shouldbe;
+  b.value = value;
+  
+  if (mag < okmag) 
+  {
+    printf("%s:%d, wrong answer: bit %d ",
+	   iname, 
+	   theline,
+	   mag);
+     printf("%08x%08x %08x%08x) ",
+	    a.parts.msw,	     a.parts.lsw,
+	    b.parts.msw,	     b.parts.lsw);
+    printf("(%g %g)\n",   a.value, b.value);
+    inacc++;
+  }
+}
+
+#ifdef __PCCNECV70__
+kill() {}
+getpid() {}
+#endif
+
+bt(){
+
+  double f1,f2;
+  f1 = 0.0;
+  f2 = 0.0/f1;
+  printf("(%g)\n", f2);
+
+}
Index: newlib-1.15.0/newlib/libm/test/dvec.c
===================================================================
--- newlib-1.15.0.orig/newlib/libm/test/dvec.c
+++ newlib-1.15.0/newlib/libm/test/dvec.c
@@ -1,6 +1,7 @@
 #include "test.h"
 
 ddouble_type ddoubles[] = {
+#ifndef __SPU__
 __LINE__, 7.411456790099004e+08,"7411",4,9,0,"7411456790099",4,9,0,"7.411e+08",4,
 
 __LINE__, 6.779433073319225e-23,"6779433",7,-22,0,"6779433",7,-22,0,"6.779433e-23",7,
@@ -578,6 +579,7 @@ __LINE__, 1.368662469019739e+03,"1368662
 
 __LINE__, 4.744768215108924e-02,"474477",6,-1,0,"474477",6,-1,0,".047448",6,
 
+#endif
 __LINE__, 3.523947347400251e+10,"35",2,11,0,"3523947347400",2,11,0,"3.5e+10",2,
 
 __LINE__, 4.703989947348573e+08,"4704",4,9,0,"4703989947349",4,9,0,"4.704e+08",4,
Index: newlib-1.15.0/newlib/libm/test/sprint_ivec.c
===================================================================
--- newlib-1.15.0.orig/newlib/libm/test/sprint_ivec.c
+++ newlib-1.15.0/newlib/libm/test/sprint_ivec.c
@@ -2,6 +2,10 @@
 
 sprint_int_type sprint_ints[] = 
 {
+	/*
+	 * Skip a lot for SPU, as we don't have enough memory
+	 */
+#ifndef __SPU__
 __LINE__, 0x000838d2,	"838d2", "%.4x",
 __LINE__, 0x0063be46,	"63BE46", "%-6X",
 __LINE__, -0x1b236c0,	"-28456640", "%#0.d",
@@ -5005,7 +5009,7 @@ __LINE__, -0x00003e7,	"-999", "%+0.3d",
 __LINE__, 0x0a68ba6e,	"a68ba6e", "%3.1x",
 __LINE__, 0xfe29c810,	"FE29C810", "%+X",
 #endif
-
+#endif
 __LINE__, 0x00000000,	"0", "%o",
 __LINE__, 0000000123,	"123", "%o",
 __LINE__, 0000123456,	"0123456", "%#o",
Index: newlib-1.15.0/newlib/libm/test/sprint_vec.c
===================================================================
--- newlib-1.15.0.orig/newlib/libm/test/sprint_vec.c
+++ newlib-1.15.0/newlib/libm/test/sprint_vec.c
@@ -2,6 +2,10 @@
 
 sprint_double_type sprint_doubles[] = 
 {
+	/*
+	 * Skip a lot for SPU, as we don't have enough memory
+	 */
+#ifndef __SPU__
 __LINE__, -1.002121970718271e+29,	"-1.0E+29", "%.1E",
 __LINE__, -1.002126048612756e-02,	"-1.002126E-02", "%+#E",
 __LINE__, -1.002653755271637e+00,	"-1.00265", "%G",
@@ -3979,6 +3983,7 @@ __LINE__, 9.953892603540162e+07,	"9.9538
 __LINE__, 9.962084643867200e+14,	"+996208464386720.038419", "%+f",
 __LINE__, 9.977706708809947e-09,	"9.9777E-09", "%#.4E",
 #endif
+#endif
 __LINE__, 9.978034352999867e+15,	"9.978034e+15", "%2.6e",
 __LINE__, 9.998315286730175e-30,	"9.998315e-30", "%6e",
 0
Index: newlib-1.15.0/newlib/libm/test/test_ieee_file.c
===================================================================
--- /dev/null
+++ newlib-1.15.0/newlib/libm/test/test_ieee_file.c
@@ -0,0 +1,180 @@
+
+#include "test.h"
+#include <ieeefp.h>
+
+
+/* Test fp getround and fp setround */
+
+void
+_DEFUN_VOID(test_getround)
+{
+
+  newfunc("fpgetround/fpsetround");
+  line(1);
+  fpsetround(FP_RN);
+  test_iok(fpgetround(), FP_RN);
+  line(2);
+  fpsetround(FP_RM);
+  test_iok(fpgetround(), FP_RM);
+  line(3);  
+  fpsetround(FP_RP);
+  test_iok(fpgetround(), FP_RP);
+  line(4);  
+  fpsetround(FP_RZ);
+  test_iok(fpgetround(), FP_RZ);
+}
+
+/* And fpset/fpgetmask */
+void
+_DEFUN_VOID(test_getmask)
+{
+  newfunc("fpsetmask/fpgetmask");
+  line(1);
+  fpsetmask(FP_X_INV);
+  test_iok(fpgetmask(),FP_X_INV);
+  line(2);
+  fpsetmask(FP_X_DX);
+  test_iok(fpgetmask(),FP_X_DX);
+  line(3);
+  fpsetmask(FP_X_OFL );
+  test_iok(fpgetmask(),FP_X_OFL);
+  line(4);  
+  fpsetmask(FP_X_UFL);
+  test_iok(fpgetmask(),FP_X_UFL);
+  line(5);  
+  fpsetmask(FP_X_IMP);
+  test_iok(fpgetmask(),FP_X_IMP);
+}
+
+void
+_DEFUN_VOID(test_getsticky)
+{
+  newfunc("fpsetsticky/fpgetsticky");
+  line(1);
+  fpsetsticky(FP_X_INV);
+  test_iok(fpgetsticky(),FP_X_INV);
+  line(2);
+  fpsetsticky(FP_X_DX);
+  test_iok(fpgetsticky(),FP_X_DX);
+  line(3);
+  fpsetsticky(FP_X_OFL );
+  test_iok(fpgetsticky(),FP_X_OFL);
+  line(4);  
+  fpsetsticky(FP_X_UFL);
+  test_iok(fpgetsticky(),FP_X_UFL);
+  line(5);  
+  fpsetsticky(FP_X_IMP);
+  test_iok(fpgetsticky(),FP_X_IMP);
+}
+
+void
+_DEFUN_VOID(test_getroundtoi)
+{
+  newfunc("fpsetroundtoi/fpgetroundtoi");
+  line(1);
+  fpsetroundtoi(FP_RDI_TOZ);
+  test_iok(fpgetroundtoi(),FP_RDI_TOZ);
+
+  line(2);
+  fpsetroundtoi(FP_RDI_RD);
+  test_iok(fpgetroundtoi(),FP_RDI_RD);
+
+}
+
+double
+ _DEFUN(dnumber,(msw, lsw),
+	int msw _AND
+	int lsw)
+{
+  
+  __ieee_double_shape_type v;
+  v.parts.lsw = lsw;
+  v.parts.msw = msw;
+  return v.value;
+}
+
+  /* Lets see if changing the rounding alters the arithmetic.
+     Test by creating numbers which will have to be rounded when
+     added, and seeing what happens to them */
+ /* Keep them out here to stop  the compiler from folding the results */
+double n;
+double m;
+double add_rounded_up;
+double add_rounded_down;
+double sub_rounded_down ;
+double sub_rounded_up ;
+  double r1,r2,r3,r4;
+void
+_DEFUN_VOID(test_round)
+{
+  n =                dnumber(0x40000000, 0x00000008); /* near 2 */
+  m =                dnumber(0x40400000, 0x00000003); /* near 3.4 */
+  
+  add_rounded_up   = dnumber(0x40410000, 0x00000004); /* For RN, RP */
+  add_rounded_down = dnumber(0x40410000, 0x00000003); /* For RM, RZ */
+  sub_rounded_down = dnumber(0xc0410000, 0x00000004); /* for RN, RM */
+  sub_rounded_up   = dnumber(0xc0410000, 0x00000003); /* for RP, RZ */
+
+  newfunc("fpsetround");
+  
+  line(1);
+  
+  fpsetround(FP_RN);
+  r1 = n + m;
+  test_mok(r1, add_rounded_up, 64);
+  
+  line(2);
+  fpsetround(FP_RM);
+  r2 = n + m;
+  test_mok(r2, add_rounded_down, 64);
+  
+  fpsetround(FP_RP);
+  line(3);
+  r3 = n + m;
+  test_mok(r3,add_rounded_up, 64);
+  
+  fpsetround(FP_RZ);
+  line(4);
+  r4 = n + m;
+  test_mok(r4,add_rounded_down,64);
+
+
+  fpsetround(FP_RN);
+  r1 = - n - m;
+  line(5);
+  test_mok(r1,sub_rounded_down,64);
+  
+  fpsetround(FP_RM);
+  r2 = - n - m;
+  line(6);
+  test_mok(r2,sub_rounded_down,64);
+
+
+  fpsetround(FP_RP);
+  r3 = - n - m;
+  line(7);
+  test_mok(r3,sub_rounded_up,64);
+
+  fpsetround(FP_RZ);
+  r4 = - n - m;
+  line(8);
+  test_mok(r4,sub_rounded_up,64);
+}
+
+
+void
+_DEFUN_VOID(test_ieee)
+{
+  fp_rnd old = fpgetround();
+  test_getround();
+  test_getmask();
+  test_getsticky();
+  test_getroundtoi();
+
+  test_round();
+  fpsetround(old);
+
+  
+}
+
+
Index: newlib-1.15.0/newlib/libm/test/test_is.c
===================================================================
--- newlib-1.15.0.orig/newlib/libm/test/test_is.c
+++ /dev/null
@@ -1,2031 +0,0 @@
-#include "test.h"
-#include <ctype.h>
-
-int setascii;
-int setlower;
-int setupper;
-int myascii;
-int mycntrl;
-int myspace;
-int myprint;
-int myalnum;
-int mydigit;
-int myxdigit;
-int myalpha;
-int myupper;
-int mylower;
-int mygraph;
-int mypunct;
-
-void
-_DEFUN(test_is_single,(i),
-       int i)
-{
-  setascii = 0;
-  setlower = 0;
-  setupper = 0;
-
-  myascii = 0;
-  mycntrl = 0;
-  myspace = 0;
-  myprint = 0;
-  myalnum = 0;
-  mydigit = 0;
-  myxdigit = 0;
-  myalpha = 0;
-  myupper = 0;
-  mylower = 0;
-  mygraph = 0;
-  mypunct = 0;
-
-  switch (i) {
-    case 0000:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 0;
-      setlower = 0;
-      setupper = 0;
-      break;
-    case 0001:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 1;
-      setlower = 1;
-      setupper = 1;
-      break;
-    case 0002:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 2;
-      setlower = 2;
-      setupper = 2;
-      break;
-    case 0003:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 3;
-      setlower = 3;
-      setupper = 3;
-      break;
-    case 0004:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 4;
-      setlower = 4;
-      setupper = 4;
-      break;
-    case 0005:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 5;
-      setlower = 5;
-      setupper = 5;
-      break;
-    case 0006:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 6;
-      setlower = 6;
-      setupper = 6;
-      break;
-    case 0007:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 7;
-      setlower = 7;
-      setupper = 7;
-      break;
-    case 0010:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 8;
-      setlower = 8;
-      setupper = 8;
-      break;
-    case 0011:
-      myascii = 1;
-      mycntrl = 1;
-      myspace = 1;
-      setascii = 9;
-      setlower = 9;
-      setupper = 9;
-      break;
-    case 0012:
-      myascii = 1;
-      mycntrl = 1;
-      myspace = 1;
-      setascii = 10;
-      setlower = 10;
-      setupper = 10;
-      break;
-    case 0013:
-      myascii = 1;
-      mycntrl = 1;
-      myspace = 1;
-      setascii = 11;
-      setlower = 11;
-      setupper = 11;
-      break;
-    case 0014:
-      myascii = 1;
-      mycntrl = 1;
-      myspace = 1;
-      setascii = 12;
-      setlower = 12;
-      setupper = 12;
-      break;
-    case 0015:
-      myascii = 1;
-      mycntrl = 1;
-      myspace = 1;
-      setascii = 13;
-      setlower = 13;
-      setupper = 13;
-      break;
-    case 0016:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 14;
-      setlower = 14;
-      setupper = 14;
-      break;
-    case 0017:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 15;
-      setlower = 15;
-      setupper = 15;
-      break;
-    case 0020:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 16;
-      setlower = 16;
-      setupper = 16;
-      break;
-    case 0021:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 17;
-      setlower = 17;
-      setupper = 17;
-      break;
-    case 0022:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 18;
-      setlower = 18;
-      setupper = 18;
-      break;
-    case 0023:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 19;
-      setlower = 19;
-      setupper = 19;
-      break;
-    case 0024:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 20;
-      setlower = 20;
-      setupper = 20;
-      break;
-    case 0025:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 21;
-      setlower = 21;
-      setupper = 21;
-      break;
-    case 0026:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 22;
-      setlower = 22;
-      setupper = 22;
-      break;
-    case 0027:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 23;
-      setlower = 23;
-      setupper = 23;
-      break;
-    case 0030:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 24;
-      setlower = 24;
-      setupper = 24;
-      break;
-    case 0031:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 25;
-      setlower = 25;
-      setupper = 25;
-      break;
-    case 0032:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 26;
-      setlower = 26;
-      setupper = 26;
-      break;
-    case 0033:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 27;
-      setlower = 27;
-      setupper = 27;
-      break;
-    case 0034:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 28;
-      setlower = 28;
-      setupper = 28;
-      break;
-    case 0035:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 29;
-      setlower = 29;
-      setupper = 29;
-      break;
-    case 0036:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 30;
-      setlower = 30;
-      setupper = 30;
-      break;
-    case 0037:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 31;
-      setlower = 31;
-      setupper = 31;
-      break;
-    case ' ':
-      myascii = 1;
-      myprint = 1;
-      myspace = 1;
-      setascii = 32;
-      setlower = 32;
-      setupper = 32;
-      break;
-    case '!':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 33;
-      setlower = 33;
-      setupper = 33;
-      break;
-    case '"':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 34;
-      setlower = 34;
-      setupper = 34;
-      break;
-    case '#':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 35;
-      setlower = 35;
-      setupper = 35;
-      break;
-    case '$':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 36;
-      setlower = 36;
-      setupper = 36;
-      break;
-    case '%':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 37;
-      setlower = 37;
-      setupper = 37;
-      break;
-    case '&':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 38;
-      setlower = 38;
-      setupper = 38;
-      break;
-    case '\'':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 39;
-      setlower = 39;
-      setupper = 39;
-      break;
-    case '\(':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 40;
-      setlower = 40;
-      setupper = 40;
-      break;
-    case ')':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 41;
-      setlower = 41;
-      setupper = 41;
-      break;
-    case '*':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 42;
-      setlower = 42;
-      setupper = 42;
-      break;
-    case '+':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 43;
-      setlower = 43;
-      setupper = 43;
-      break;
-    case ',':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 44;
-      setlower = 44;
-      setupper = 44;
-      break;
-    case '-':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 45;
-      setlower = 45;
-      setupper = 45;
-      break;
-    case '.':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 46;
-      setlower = 46;
-      setupper = 46;
-      break;
-    case '/':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 47;
-      setlower = 47;
-      setupper = 47;
-      break;
-    case '0':
-      myalnum = 1;
-      myascii = 1;
-      mydigit = 1;
-      mygraph = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 48;
-      setlower = 48;
-      setupper = 48;
-      break;
-    case '1':
-      myalnum = 1;
-      myascii = 1;
-      mydigit = 1;
-      mygraph = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 49;
-      setlower = 49;
-      setupper = 49;
-      break;
-    case '2':
-      myalnum = 1;
-      myascii = 1;
-      mydigit = 1;
-      mygraph = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 50;
-      setlower = 50;
-      setupper = 50;
-      break;
-    case '3':
-      myalnum = 1;
-      myascii = 1;
-      mydigit = 1;
-      mygraph = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 51;
-      setlower = 51;
-      setupper = 51;
-      break;
-    case '4':
-      myalnum = 1;
-      myascii = 1;
-      mydigit = 1;
-      mygraph = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 52;
-      setlower = 52;
-      setupper = 52;
-      break;
-    case '5':
-      myalnum = 1;
-      myascii = 1;
-      mydigit = 1;
-      mygraph = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 53;
-      setlower = 53;
-      setupper = 53;
-      break;
-    case '6':
-      myalnum = 1;
-      myascii = 1;
-      mydigit = 1;
-      mygraph = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 54;
-      setlower = 54;
-      setupper = 54;
-      break;
-    case '7':
-      myalnum = 1;
-      myascii = 1;
-      mydigit = 1;
-      mygraph = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 55;
-      setlower = 55;
-      setupper = 55;
-      break;
-    case '8':
-      myalnum = 1;
-      myascii = 1;
-      mydigit = 1;
-      mygraph = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 56;
-      setlower = 56;
-      setupper = 56;
-      break;
-    case '9':
-      myalnum = 1;
-      myascii = 1;
-      mydigit = 1;
-      mygraph = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 57;
-      setlower = 57;
-      setupper = 57;
-      break;
-    case ':':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 58;
-      setlower = 58;
-      setupper = 58;
-      break;
-    case ';':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 59;
-      setlower = 59;
-      setupper = 59;
-      break;
-    case '<':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 60;
-      setlower = 60;
-      setupper = 60;
-      break;
-    case '=':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 61;
-      setlower = 61;
-      setupper = 61;
-      break;
-    case '>':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 62;
-      setlower = 62;
-      setupper = 62;
-      break;
-    case '?':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 63;
-      setlower = 63;
-      setupper = 63;
-      break;
-    case '@':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 64;
-      setlower = 64;
-      setupper = 64;
-      break;
-    case 'A':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      myxdigit = 1;
-      setascii = 65;
-      setlower = 97;
-      setupper = 65;
-      break;
-    case 'B':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      myxdigit = 1;
-      setascii = 66;
-      setlower = 98;
-      setupper = 66;
-      break;
-    case 'C':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      myxdigit = 1;
-      setascii = 67;
-      setlower = 99;
-      setupper = 67;
-      break;
-    case 'D':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      myxdigit = 1;
-      setascii = 68;
-      setlower = 100;
-      setupper = 68;
-      break;
-    case 'E':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      myxdigit = 1;
-      setascii = 69;
-      setlower = 101;
-      setupper = 69;
-      break;
-    case 'F':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      myxdigit = 1;
-      setascii = 70;
-      setlower = 102;
-      setupper = 70;
-      break;
-    case 'G':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 71;
-      setlower = 103;
-      setupper = 71;
-      break;
-    case 'H':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 72;
-      setlower = 104;
-      setupper = 72;
-      break;
-    case 'I':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 73;
-      setlower = 105;
-      setupper = 73;
-      break;
-    case 'J':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 74;
-      setlower = 106;
-      setupper = 74;
-      break;
-    case 'K':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 75;
-      setlower = 107;
-      setupper = 75;
-      break;
-    case 'L':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 76;
-      setlower = 108;
-      setupper = 76;
-      break;
-    case 'M':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 77;
-      setlower = 109;
-      setupper = 77;
-      break;
-    case 'N':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 78;
-      setlower = 110;
-      setupper = 78;
-      break;
-    case 'O':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 79;
-      setlower = 111;
-      setupper = 79;
-      break;
-    case 'P':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 80;
-      setlower = 112;
-      setupper = 80;
-      break;
-    case 'Q':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 81;
-      setlower = 113;
-      setupper = 81;
-      break;
-    case 'R':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 82;
-      setlower = 114;
-      setupper = 82;
-      break;
-    case 'S':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 83;
-      setlower = 115;
-      setupper = 83;
-      break;
-    case 'T':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 84;
-      setlower = 116;
-      setupper = 84;
-      break;
-    case 'U':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 85;
-      setlower = 117;
-      setupper = 85;
-      break;
-    case 'V':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 86;
-      setlower = 118;
-      setupper = 86;
-      break;
-    case 'W':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 87;
-      setlower = 119;
-      setupper = 87;
-      break;
-    case 'X':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 88;
-      setlower = 120;
-      setupper = 88;
-      break;
-    case 'Y':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 89;
-      setlower = 121;
-      setupper = 89;
-      break;
-    case 'Z':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      myupper = 1;
-      setascii = 90;
-      setlower = 122;
-      setupper = 90;
-      break;
-    case '[':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 91;
-      setlower = 91;
-      setupper = 91;
-      break;
-    case '\\':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 92;
-      setlower = 92;
-      setupper = 92;
-      break;
-    case ']':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 93;
-      setlower = 93;
-      setupper = 93;
-      break;
-    case '^':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 94;
-      setlower = 94;
-      setupper = 94;
-      break;
-    case '_':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 95;
-      setlower = 95;
-      setupper = 95;
-      break;
-    case '`':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 96;
-      setlower = 96;
-      setupper = 96;
-      break;
-    case 'a':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 97;
-      setlower = 97;
-      setupper = 65;
-      break;
-    case 'b':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 98;
-      setlower = 98;
-      setupper = 66;
-      break;
-    case 'c':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 99;
-      setlower = 99;
-      setupper = 67;
-      break;
-    case 'd':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 100;
-      setlower = 100;
-      setupper = 68;
-      break;
-    case 'e':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 101;
-      setlower = 101;
-      setupper = 69;
-      break;
-    case 'f':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      myxdigit = 1;
-      setascii = 102;
-      setlower = 102;
-      setupper = 70;
-      break;
-    case 'g':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 103;
-      setlower = 103;
-      setupper = 71;
-      break;
-    case 'h':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 104;
-      setlower = 104;
-      setupper = 72;
-      break;
-    case 'i':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 105;
-      setlower = 105;
-      setupper = 73;
-      break;
-    case 'j':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 106;
-      setlower = 106;
-      setupper = 74;
-      break;
-    case 'k':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 107;
-      setlower = 107;
-      setupper = 75;
-      break;
-    case 'l':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 108;
-      setlower = 108;
-      setupper = 76;
-      break;
-    case 'm':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 109;
-      setlower = 109;
-      setupper = 77;
-      break;
-    case 'n':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 110;
-      setlower = 110;
-      setupper = 78;
-      break;
-    case 'o':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 111;
-      setlower = 111;
-      setupper = 79;
-      break;
-    case 'p':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 112;
-      setlower = 112;
-      setupper = 80;
-      break;
-    case 'q':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 113;
-      setlower = 113;
-      setupper = 81;
-      break;
-    case 'r':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 114;
-      setlower = 114;
-      setupper = 82;
-      break;
-    case 's':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 115;
-      setlower = 115;
-      setupper = 83;
-      break;
-    case 't':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 116;
-      setlower = 116;
-      setupper = 84;
-      break;
-    case 'u':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 117;
-      setlower = 117;
-      setupper = 85;
-      break;
-    case 'v':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 118;
-      setlower = 118;
-      setupper = 86;
-      break;
-    case 'w':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 119;
-      setlower = 119;
-      setupper = 87;
-      break;
-    case 'x':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 120;
-      setlower = 120;
-      setupper = 88;
-      break;
-    case 'y':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 121;
-      setlower = 121;
-      setupper = 89;
-      break;
-    case 'z':
-      myalnum = 1;
-      myalpha = 1;
-      myascii = 1;
-      mygraph = 1;
-      mylower = 1;
-      myprint = 1;
-      setascii = 122;
-      setlower = 122;
-      setupper = 90;
-      break;
-    case '{':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 123;
-      setlower = 123;
-      setupper = 123;
-      break;
-    case '|':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 124;
-      setlower = 124;
-      setupper = 124;
-      break;
-    case '}':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 125;
-      setlower = 125;
-      setupper = 125;
-      break;
-    case '~':
-      myascii = 1;
-      mygraph = 1;
-      myprint = 1;
-      mypunct = 1;
-      setascii = 126;
-      setlower = 126;
-      setupper = 126;
-      break;
-    case 0177:
-      myascii = 1;
-      mycntrl = 1;
-      setascii = 127;
-      setlower = 127;
-      setupper = 127;
-      break;
-    case 0200:
-      setascii = 0;
-      setlower = 128;
-      setupper = 128;
-      break;
-    case 0201:
-      setascii = 1;
-      setlower = 129;
-      setupper = 129;
-      break;
-    case 0202:
-      setascii = 2;
-      setlower = 130;
-      setupper = 130;
-      break;
-    case 0203:
-      setascii = 3;
-      setlower = 131;
-      setupper = 131;
-      break;
-    case 0204:
-      setascii = 4;
-      setlower = 132;
-      setupper = 132;
-      break;
-    case 0205:
-      setascii = 5;
-      setlower = 133;
-      setupper = 133;
-      break;
-    case 0206:
-      setascii = 6;
-      setlower = 134;
-      setupper = 134;
-      break;
-    case 0207:
-      setascii = 7;
-      setlower = 135;
-      setupper = 135;
-      break;
-    case 0210:
-      setascii = 8;
-      setlower = 136;
-      setupper = 136;
-      break;
-    case 0211:
-      setascii = 9;
-      setlower = 137;
-      setupper = 137;
-      break;
-    case 0212:
-      setascii = 10;
-      setlower = 138;
-      setupper = 138;
-      break;
-    case 0213:
-      setascii = 11;
-      setlower = 139;
-      setupper = 139;
-      break;
-    case 0214:
-      setascii = 12;
-      setlower = 140;
-      setupper = 140;
-      break;
-    case 0215:
-      setascii = 13;
-      setlower = 141;
-      setupper = 141;
-      break;
-    case 0216:
-      setascii = 14;
-      setlower = 142;
-      setupper = 142;
-      break;
-    case 0217:
-      setascii = 15;
-      setlower = 143;
-      setupper = 143;
-      break;
-    case 0220:
-      setascii = 16;
-      setlower = 144;
-      setupper = 144;
-      break;
-    case 0221:
-      setascii = 17;
-      setlower = 145;
-      setupper = 145;
-      break;
-    case 0222:
-      setascii = 18;
-      setlower = 146;
-      setupper = 146;
-      break;
-    case 0223:
-      setascii = 19;
-      setlower = 147;
-      setupper = 147;
-      break;
-    case 0224:
-      setascii = 20;
-      setlower = 148;
-      setupper = 148;
-      break;
-    case 0225:
-      setascii = 21;
-      setlower = 149;
-      setupper = 149;
-      break;
-    case 0226:
-      setascii = 22;
-      setlower = 150;
-      setupper = 150;
-      break;
-    case 0227:
-      setascii = 23;
-      setlower = 151;
-      setupper = 151;
-      break;
-    case 0230:
-      setascii = 24;
-      setlower = 152;
-      setupper = 152;
-      break;
-    case 0231:
-      setascii = 25;
-      setlower = 153;
-      setupper = 153;
-      break;
-    case 0232:
-      setascii = 26;
-      setlower = 154;
-      setupper = 154;
-      break;
-    case 0233:
-      setascii = 27;
-      setlower = 155;
-      setupper = 155;
-      break;
-    case 0234:
-      setascii = 28;
-      setlower = 156;
-      setupper = 156;
-      break;
-    case 0235:
-      setascii = 29;
-      setlower = 157;
-      setupper = 157;
-      break;
-    case 0236:
-      setascii = 30;
-      setlower = 158;
-      setupper = 158;
-      break;
-    case 0237:
-      setascii = 31;
-      setlower = 159;
-      setupper = 159;
-      break;
-    case 0240:
-      setascii = 32;
-      setlower = 160;
-      setupper = 160;
-      break;
-    case 0241:
-      setascii = 33;
-      setlower = 161;
-      setupper = 161;
-      break;
-    case 0242:
-      setascii = 34;
-      setlower = 162;
-      setupper = 162;
-      break;
-    case 0243:
-      setascii = 35;
-      setlower = 163;
-      setupper = 163;
-      break;
-    case 0244:
-      setascii = 36;
-      setlower = 164;
-      setupper = 164;
-      break;
-    case 0245:
-      setascii = 37;
-      setlower = 165;
-      setupper = 165;
-      break;
-    case 0246:
-      setascii = 38;
-      setlower = 166;
-      setupper = 166;
-      break;
-    case 0247:
-      setascii = 39;
-      setlower = 167;
-      setupper = 167;
-      break;
-    case 0250:
-      setascii = 40;
-      setlower = 168;
-      setupper = 168;
-      break;
-    case 0251:
-      setascii = 41;
-      setlower = 169;
-      setupper = 169;
-      break;
-    case 0252:
-      setascii = 42;
-      setlower = 170;
-      setupper = 170;
-      break;
-    case 0253:
-      setascii = 43;
-      setlower = 171;
-      setupper = 171;
-      break;
-    case 0254:
-      setascii = 44;
-      setlower = 172;
-      setupper = 172;
-      break;
-    case 0255:
-      setascii = 45;
-      setlower = 173;
-      setupper = 173;
-      break;
-    case 0256:
-      setascii = 46;
-      setlower = 174;
-      setupper = 174;
-      break;
-    case 0257:
-      setascii = 47;
-      setlower = 175;
-      setupper = 175;
-      break;
-    case 0260:
-      setascii = 48;
-      setlower = 176;
-      setupper = 176;
-      break;
-    case 0261:
-      setascii = 49;
-      setlower = 177;
-      setupper = 177;
-      break;
-    case 0262:
-      setascii = 50;
-      setlower = 178;
-      setupper = 178;
-      break;
-    case 0263:
-      setascii = 51;
-      setlower = 179;
-      setupper = 179;
-      break;
-    case 0264:
-      setascii = 52;
-      setlower = 180;
-      setupper = 180;
-      break;
-    case 0265:
-      setascii = 53;
-      setlower = 181;
-      setupper = 181;
-      break;
-    case 0266:
-      setascii = 54;
-      setlower = 182;
-      setupper = 182;
-      break;
-    case 0267:
-      setascii = 55;
-      setlower = 183;
-      setupper = 183;
-      break;
-    case 0270:
-      setascii = 56;
-      setlower = 184;
-      setupper = 184;
-      break;
-    case 0271:
-      setascii = 57;
-      setlower = 185;
-      setupper = 185;
-      break;
-    case 0272:
-      setascii = 58;
-      setlower = 186;
-      setupper = 186;
-      break;
-    case 0273:
-      setascii = 59;
-      setlower = 187;
-      setupper = 187;
-      break;
-    case 0274:
-      setascii = 60;
-      setlower = 188;
-      setupper = 188;
-      break;
-    case 0275:
-      setascii = 61;
-      setlower = 189;
-      setupper = 189;
-      break;
-    case 0276:
-      setascii = 62;
-      setlower = 190;
-      setupper = 190;
-      break;
-    case 0277:
-      setascii = 63;
-      setlower = 191;
-      setupper = 191;
-      break;
-    case 0300:
-      setascii = 64;
-      setlower = 192;
-      setupper = 192;
-      break;
-    case 0301:
-      setascii = 65;
-      setlower = 193;
-      setupper = 193;
-      break;
-    case 0302:
-      setascii = 66;
-      setlower = 194;
-      setupper = 194;
-      break;
-    case 0303:
-      setascii = 67;
-      setlower = 195;
-      setupper = 195;
-      break;
-    case 0304:
-      setascii = 68;
-      setlower = 196;
-      setupper = 196;
-      break;
-    case 0305:
-      setascii = 69;
-      setlower = 197;
-      setupper = 197;
-      break;
-    case 0306:
-      setascii = 70;
-      setlower = 198;
-      setupper = 198;
-      break;
-    case 0307:
-      setascii = 71;
-      setlower = 199;
-      setupper = 199;
-      break;
-    case 0310:
-      setascii = 72;
-      setlower = 200;
-      setupper = 200;
-      break;
-    case 0311:
-      setascii = 73;
-      setlower = 201;
-      setupper = 201;
-      break;
-    case 0312:
-      setascii = 74;
-      setlower = 202;
-      setupper = 202;
-      break;
-    case 0313:
-      setascii = 75;
-      setlower = 203;
-      setupper = 203;
-      break;
-    case 0314:
-      setascii = 76;
-      setlower = 204;
-      setupper = 204;
-      break;
-    case 0315:
-      setascii = 77;
-      setlower = 205;
-      setupper = 205;
-      break;
-    case 0316:
-      setascii = 78;
-      setlower = 206;
-      setupper = 206;
-      break;
-    case 0317:
-      setascii = 79;
-      setlower = 207;
-      setupper = 207;
-      break;
-    case 0320:
-      setascii = 80;
-      setlower = 208;
-      setupper = 208;
-      break;
-    case 0321:
-      setascii = 81;
-      setlower = 209;
-      setupper = 209;
-      break;
-    case 0322:
-      setascii = 82;
-      setlower = 210;
-      setupper = 210;
-      break;
-    case 0323:
-      setascii = 83;
-      setlower = 211;
-      setupper = 211;
-      break;
-    case 0324:
-      setascii = 84;
-      setlower = 212;
-      setupper = 212;
-      break;
-    case 0325:
-      setascii = 85;
-      setlower = 213;
-      setupper = 213;
-      break;
-    case 0326:
-      setascii = 86;
-      setlower = 214;
-      setupper = 214;
-      break;
-    case 0327:
-      setascii = 87;
-      setlower = 215;
-      setupper = 215;
-      break;
-    case 0330:
-      setascii = 88;
-      setlower = 216;
-      setupper = 216;
-      break;
-    case 0331:
-      setascii = 89;
-      setlower = 217;
-      setupper = 217;
-      break;
-    case 0332:
-      setascii = 90;
-      setlower = 218;
-      setupper = 218;
-      break;
-    case 0333:
-      setascii = 91;
-      setlower = 219;
-      setupper = 219;
-      break;
-    case 0334:
-      setascii = 92;
-      setlower = 220;
-      setupper = 220;
-      break;
-    case 0335:
-      setascii = 93;
-      setlower = 221;
-      setupper = 221;
-      break;
-    case 0336:
-      setascii = 94;
-      setlower = 222;
-      setupper = 222;
-      break;
-    case 0337:
-      setascii = 95;
-      setlower = 223;
-      setupper = 223;
-      break;
-    case 0340:
-      setascii = 96;
-      setlower = 224;
-      setupper = 224;
-      break;
-    case 0341:
-      setascii = 97;
-      setlower = 225;
-      setupper = 225;
-      break;
-    case 0342:
-      setascii = 98;
-      setlower = 226;
-      setupper = 226;
-      break;
-    case 0343:
-      setascii = 99;
-      setlower = 227;
-      setupper = 227;
-      break;
-    case 0344:
-      setascii = 100;
-      setlower = 228;
-      setupper = 228;
-      break;
-    case 0345:
-      setascii = 101;
-      setlower = 229;
-      setupper = 229;
-      break;
-    case 0346:
-      setascii = 102;
-      setlower = 230;
-      setupper = 230;
-      break;
-    case 0347:
-      setascii = 103;
-      setlower = 231;
-      setupper = 231;
-      break;
-    case 0350:
-      setascii = 104;
-      setlower = 232;
-      setupper = 232;
-      break;
-    case 0351:
-      setascii = 105;
-      setlower = 233;
-      setupper = 233;
-      break;
-    case 0352:
-      setascii = 106;
-      setlower = 234;
-      setupper = 234;
-      break;
-    case 0353:
-      setascii = 107;
-      setlower = 235;
-      setupper = 235;
-      break;
-    case 0354:
-      setascii = 108;
-      setlower = 236;
-      setupper = 236;
-      break;
-    case 0355:
-      setascii = 109;
-      setlower = 237;
-      setupper = 237;
-      break;
-    case 0356:
-      setascii = 110;
-      setlower = 238;
-      setupper = 238;
-      break;
-    case 0357:
-      setascii = 111;
-      setlower = 239;
-      setupper = 239;
-      break;
-    case 0360:
-      setascii = 112;
-      setlower = 240;
-      setupper = 240;
-      break;
-    case 0361:
-      setascii = 113;
-      setlower = 241;
-      setupper = 241;
-      break;
-    case 0362:
-      setascii = 114;
-      setlower = 242;
-      setupper = 242;
-      break;
-    case 0363:
-      setascii = 115;
-      setlower = 243;
-      setupper = 243;
-      break;
-    case 0364:
-      setascii = 116;
-      setlower = 244;
-      setupper = 244;
-      break;
-    case 0365:
-      setascii = 117;
-      setlower = 245;
-      setupper = 245;
-      break;
-    case 0366:
-      setascii = 118;
-      setlower = 246;
-      setupper = 246;
-      break;
-    case 0367:
-      setascii = 119;
-      setlower = 247;
-      setupper = 247;
-      break;
-    case 0370:
-      setascii = 120;
-      setlower = 248;
-      setupper = 248;
-      break;
-    case 0371:
-      setascii = 121;
-      setlower = 249;
-      setupper = 249;
-      break;
-    case 0372:
-      setascii = 122;
-      setlower = 250;
-      setupper = 250;
-      break;
-    case 0373:
-      setascii = 123;
-      setlower = 251;
-      setupper = 251;
-      break;
-    case 0374:
-      setascii = 124;
-      setlower = 252;
-      setupper = 252;
-      break;
-    case 0375:
-      setascii = 125;
-      setlower = 253;
-      setupper = 253;
-      break;
-    case 0376:
-      setascii = 126;
-      setlower = 254;
-      setupper = 254;
-      break;
-    case 0377:
-      setascii = 127;
-      setlower = 255;
-      setupper = 255;
-      break;
-    default:
-      abort();
-      
-    }
-
-}
-
-
-int _DEFUN(def_isascii,(i), int i) { return isascii(i); }
-int _DEFUN(def_iscntrl,(i), int i) { return iscntrl(i); }
-int _DEFUN(def_isspace,(i), int i) { return isspace(i); }
-int _DEFUN(def_isprint,(i), int i) { return isprint(i); }
-int _DEFUN(def_isalnum,(i), int i) { return isalnum(i); }
-int _DEFUN(def_isdigit,(i), int i) { return isdigit(i); }
-int _DEFUN(def_isxdigit,(i), int i) { return isxdigit(i); }
-int _DEFUN(def_isalpha,(i), int i) { return isalpha(i); }
-int _DEFUN(def_isupper,(i), int i) { return isupper(i); }
-int _DEFUN(def_islower,(i), int i) { return islower(i); }
-int _DEFUN(def_isgraph,(i), int i) { return isgraph(i); }
-int _DEFUN(def_ispunct,(i), int i) { return ispunct(i); }
-int _DEFUN(def_tolower,(i), int i) { return tolower(i); }
-int _DEFUN(def_toupper,(i), int i) { return toupper(i); }
-int _DEFUN(def_toascii,(i), int i) { return toascii(i); }
-int _DEFUN(def__tolower,(i), int i) { return _tolower(i); }
-int _DEFUN(def__toupper,(i), int i) { return _toupper(i); }
-
-extern int inacc;
-void
-_DEFUN(test_is_set,(func, name, p),
-       int (*func)() _AND
-       char *name _AND
-       int *p)
-{
-  int i;
-  newfunc(name);
-  for (i = 0; i < 255; i++) {
-    int r = func(i) != 0;
-    line(i);
-    test_is_single(i);
-    if (*p  != r) 
-      {
-	printf("%s:%d wrong result, is %d shouldbe %d\n", name, i, r,*p);
-	inacc++;
-      }
-  }
-}
-void
-_DEFUN(test_to_set,(func, name, p, low, high),
-       int (*func)() _AND
-       char *name _AND
-       int *p _AND
-       int low _AND
-       int high)
-{
-  int i;
-  newfunc(name);
-  for (i = low; i <= high; i++) {
-    int r = func(i) ;
-    line(i);
-    test_is_single(i);
-    if (*p  != r) 
-      {
-	printf("%s:%d wrong result, is %d shouldbe %d\n", name, i, r,*p);
-	inacc++;
-      }
-  }
-}
-
-
-#undef isascii
-#undef iscntrl
-#undef isspace
-#undef isprint
-#undef isalnum
-#undef isdigit
-#undef isxdigit
-#undef isalpha
-#undef isupper
-#undef islower
-#undef isgraph
-#undef ispunct
-#undef tolower
-#undef toupper
-#undef toascii
-#undef _tolower
-#undef _toupper
-
-void
-_DEFUN_VOID(test_is)
-{
-  test_is_set(def_isalnum, "isalnum define", &myalnum);
-  test_is_set(def_isalpha, "isalpha define", &myalpha);
-  test_is_set(def_isascii, "isascii define", &myascii);
-  test_is_set(def_iscntrl, "iscntrl define", &mycntrl);
-  test_is_set(def_isdigit, "isdigit define", &mydigit);
-  test_is_set(def_isgraph, "isgraph define", &mygraph);
-  test_is_set(def_islower, "islower define", &mylower);
-  test_is_set(def_isprint, "isprint define", &myprint);
-  test_is_set(def_ispunct, "ispunct define", &mypunct);
-  test_is_set(def_isspace, "isspace define", &myspace);
-  test_is_set(def_isupper, "isupper define", &myupper);
-  test_is_set(def_isxdigit, "isxdigit define", &myxdigit);
-  test_is_set(isalnum, "isalnum function", &myalnum);
-  test_is_set(isalpha, "isalpha function", &myalpha);
-  test_is_set(isascii, "isascii function", &myascii);
-  test_is_set(iscntrl, "iscntrl function", &mycntrl);
-  test_is_set(isgraph, "isgraph function", &mygraph);
-  test_is_set(islower, "islower function", &mylower);
-  test_is_set(isprint, "isprint function", &myprint);
-  test_is_set(ispunct, "ispunct function", &mypunct);
-  test_is_set(isspace, "isspace function", &myspace);
-  test_is_set(isupper, "isupper function", &myupper);
-  test_is_set(isxdigit, "isxdigit function", &myxdigit);
-  test_to_set(_tolower, "_tolower function", &setlower, 'A','Z');
-  test_to_set(_toupper, "_toupper function", &setupper, 'a','z');
-  test_to_set(def__tolower, "_tolower define", &setlower, 'A','Z');
-  test_to_set(def__toupper, "_toupper define", &setupper, 'a','z');
-  test_to_set(def_toascii, "toascii define", &setascii, 0,255);
-  test_to_set(def_tolower, "tolower define", &setlower, 0,255);
-  test_to_set(def_toupper, "toupper define", &setupper, 0,255);
-  test_to_set(toascii, "toascii function", &setascii, 0,255);
-  test_to_set(tolower, "tolower function", &setlower, 0,255);
-  test_to_set(toupper, "toupper function", &setupper, 0,255);
-}
Index: newlib-1.15.0/newlib/libm/test/test_is_file.c
===================================================================
--- /dev/null
+++ newlib-1.15.0/newlib/libm/test/test_is_file.c
@@ -0,0 +1,2031 @@
+#include "test.h"
+#include <ctype.h>
+
+int setascii;
+int setlower;
+int setupper;
+int myascii;
+int mycntrl;
+int myspace;
+int myprint;
+int myalnum;
+int mydigit;
+int myxdigit;
+int myalpha;
+int myupper;
+int mylower;
+int mygraph;
+int mypunct;
+
+void
+_DEFUN(test_is_single,(i),
+       int i)
+{
+  setascii = 0;
+  setlower = 0;
+  setupper = 0;
+
+  myascii = 0;
+  mycntrl = 0;
+  myspace = 0;
+  myprint = 0;
+  myalnum = 0;
+  mydigit = 0;
+  myxdigit = 0;
+  myalpha = 0;
+  myupper = 0;
+  mylower = 0;
+  mygraph = 0;
+  mypunct = 0;
+
+  switch (i) {
+    case 0000:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 0;
+      setlower = 0;
+      setupper = 0;
+      break;
+    case 0001:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 1;
+      setlower = 1;
+      setupper = 1;
+      break;
+    case 0002:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 2;
+      setlower = 2;
+      setupper = 2;
+      break;
+    case 0003:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 3;
+      setlower = 3;
+      setupper = 3;
+      break;
+    case 0004:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 4;
+      setlower = 4;
+      setupper = 4;
+      break;
+    case 0005:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 5;
+      setlower = 5;
+      setupper = 5;
+      break;
+    case 0006:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 6;
+      setlower = 6;
+      setupper = 6;
+      break;
+    case 0007:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 7;
+      setlower = 7;
+      setupper = 7;
+      break;
+    case 0010:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 8;
+      setlower = 8;
+      setupper = 8;
+      break;
+    case 0011:
+      myascii = 1;
+      mycntrl = 1;
+      myspace = 1;
+      setascii = 9;
+      setlower = 9;
+      setupper = 9;
+      break;
+    case 0012:
+      myascii = 1;
+      mycntrl = 1;
+      myspace = 1;
+      setascii = 10;
+      setlower = 10;
+      setupper = 10;
+      break;
+    case 0013:
+      myascii = 1;
+      mycntrl = 1;
+      myspace = 1;
+      setascii = 11;
+      setlower = 11;
+      setupper = 11;
+      break;
+    case 0014:
+      myascii = 1;
+      mycntrl = 1;
+      myspace = 1;
+      setascii = 12;
+      setlower = 12;
+      setupper = 12;
+      break;
+    case 0015:
+      myascii = 1;
+      mycntrl = 1;
+      myspace = 1;
+      setascii = 13;
+      setlower = 13;
+      setupper = 13;
+      break;
+    case 0016:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 14;
+      setlower = 14;
+      setupper = 14;
+      break;
+    case 0017:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 15;
+      setlower = 15;
+      setupper = 15;
+      break;
+    case 0020:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 16;
+      setlower = 16;
+      setupper = 16;
+      break;
+    case 0021:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 17;
+      setlower = 17;
+      setupper = 17;
+      break;
+    case 0022:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 18;
+      setlower = 18;
+      setupper = 18;
+      break;
+    case 0023:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 19;
+      setlower = 19;
+      setupper = 19;
+      break;
+    case 0024:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 20;
+      setlower = 20;
+      setupper = 20;
+      break;
+    case 0025:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 21;
+      setlower = 21;
+      setupper = 21;
+      break;
+    case 0026:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 22;
+      setlower = 22;
+      setupper = 22;
+      break;
+    case 0027:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 23;
+      setlower = 23;
+      setupper = 23;
+      break;
+    case 0030:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 24;
+      setlower = 24;
+      setupper = 24;
+      break;
+    case 0031:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 25;
+      setlower = 25;
+      setupper = 25;
+      break;
+    case 0032:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 26;
+      setlower = 26;
+      setupper = 26;
+      break;
+    case 0033:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 27;
+      setlower = 27;
+      setupper = 27;
+      break;
+    case 0034:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 28;
+      setlower = 28;
+      setupper = 28;
+      break;
+    case 0035:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 29;
+      setlower = 29;
+      setupper = 29;
+      break;
+    case 0036:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 30;
+      setlower = 30;
+      setupper = 30;
+      break;
+    case 0037:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 31;
+      setlower = 31;
+      setupper = 31;
+      break;
+    case ' ':
+      myascii = 1;
+      myprint = 1;
+      myspace = 1;
+      setascii = 32;
+      setlower = 32;
+      setupper = 32;
+      break;
+    case '!':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 33;
+      setlower = 33;
+      setupper = 33;
+      break;
+    case '"':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 34;
+      setlower = 34;
+      setupper = 34;
+      break;
+    case '#':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 35;
+      setlower = 35;
+      setupper = 35;
+      break;
+    case '$':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 36;
+      setlower = 36;
+      setupper = 36;
+      break;
+    case '%':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 37;
+      setlower = 37;
+      setupper = 37;
+      break;
+    case '&':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 38;
+      setlower = 38;
+      setupper = 38;
+      break;
+    case '\'':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 39;
+      setlower = 39;
+      setupper = 39;
+      break;
+    case '\(':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 40;
+      setlower = 40;
+      setupper = 40;
+      break;
+    case ')':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 41;
+      setlower = 41;
+      setupper = 41;
+      break;
+    case '*':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 42;
+      setlower = 42;
+      setupper = 42;
+      break;
+    case '+':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 43;
+      setlower = 43;
+      setupper = 43;
+      break;
+    case ',':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 44;
+      setlower = 44;
+      setupper = 44;
+      break;
+    case '-':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 45;
+      setlower = 45;
+      setupper = 45;
+      break;
+    case '.':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 46;
+      setlower = 46;
+      setupper = 46;
+      break;
+    case '/':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 47;
+      setlower = 47;
+      setupper = 47;
+      break;
+    case '0':
+      myalnum = 1;
+      myascii = 1;
+      mydigit = 1;
+      mygraph = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 48;
+      setlower = 48;
+      setupper = 48;
+      break;
+    case '1':
+      myalnum = 1;
+      myascii = 1;
+      mydigit = 1;
+      mygraph = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 49;
+      setlower = 49;
+      setupper = 49;
+      break;
+    case '2':
+      myalnum = 1;
+      myascii = 1;
+      mydigit = 1;
+      mygraph = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 50;
+      setlower = 50;
+      setupper = 50;
+      break;
+    case '3':
+      myalnum = 1;
+      myascii = 1;
+      mydigit = 1;
+      mygraph = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 51;
+      setlower = 51;
+      setupper = 51;
+      break;
+    case '4':
+      myalnum = 1;
+      myascii = 1;
+      mydigit = 1;
+      mygraph = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 52;
+      setlower = 52;
+      setupper = 52;
+      break;
+    case '5':
+      myalnum = 1;
+      myascii = 1;
+      mydigit = 1;
+      mygraph = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 53;
+      setlower = 53;
+      setupper = 53;
+      break;
+    case '6':
+      myalnum = 1;
+      myascii = 1;
+      mydigit = 1;
+      mygraph = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 54;
+      setlower = 54;
+      setupper = 54;
+      break;
+    case '7':
+      myalnum = 1;
+      myascii = 1;
+      mydigit = 1;
+      mygraph = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 55;
+      setlower = 55;
+      setupper = 55;
+      break;
+    case '8':
+      myalnum = 1;
+      myascii = 1;
+      mydigit = 1;
+      mygraph = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 56;
+      setlower = 56;
+      setupper = 56;
+      break;
+    case '9':
+      myalnum = 1;
+      myascii = 1;
+      mydigit = 1;
+      mygraph = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 57;
+      setlower = 57;
+      setupper = 57;
+      break;
+    case ':':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 58;
+      setlower = 58;
+      setupper = 58;
+      break;
+    case ';':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 59;
+      setlower = 59;
+      setupper = 59;
+      break;
+    case '<':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 60;
+      setlower = 60;
+      setupper = 60;
+      break;
+    case '=':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 61;
+      setlower = 61;
+      setupper = 61;
+      break;
+    case '>':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 62;
+      setlower = 62;
+      setupper = 62;
+      break;
+    case '?':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 63;
+      setlower = 63;
+      setupper = 63;
+      break;
+    case '@':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 64;
+      setlower = 64;
+      setupper = 64;
+      break;
+    case 'A':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      myxdigit = 1;
+      setascii = 65;
+      setlower = 97;
+      setupper = 65;
+      break;
+    case 'B':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      myxdigit = 1;
+      setascii = 66;
+      setlower = 98;
+      setupper = 66;
+      break;
+    case 'C':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      myxdigit = 1;
+      setascii = 67;
+      setlower = 99;
+      setupper = 67;
+      break;
+    case 'D':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      myxdigit = 1;
+      setascii = 68;
+      setlower = 100;
+      setupper = 68;
+      break;
+    case 'E':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      myxdigit = 1;
+      setascii = 69;
+      setlower = 101;
+      setupper = 69;
+      break;
+    case 'F':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      myxdigit = 1;
+      setascii = 70;
+      setlower = 102;
+      setupper = 70;
+      break;
+    case 'G':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 71;
+      setlower = 103;
+      setupper = 71;
+      break;
+    case 'H':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 72;
+      setlower = 104;
+      setupper = 72;
+      break;
+    case 'I':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 73;
+      setlower = 105;
+      setupper = 73;
+      break;
+    case 'J':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 74;
+      setlower = 106;
+      setupper = 74;
+      break;
+    case 'K':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 75;
+      setlower = 107;
+      setupper = 75;
+      break;
+    case 'L':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 76;
+      setlower = 108;
+      setupper = 76;
+      break;
+    case 'M':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 77;
+      setlower = 109;
+      setupper = 77;
+      break;
+    case 'N':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 78;
+      setlower = 110;
+      setupper = 78;
+      break;
+    case 'O':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 79;
+      setlower = 111;
+      setupper = 79;
+      break;
+    case 'P':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 80;
+      setlower = 112;
+      setupper = 80;
+      break;
+    case 'Q':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 81;
+      setlower = 113;
+      setupper = 81;
+      break;
+    case 'R':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 82;
+      setlower = 114;
+      setupper = 82;
+      break;
+    case 'S':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 83;
+      setlower = 115;
+      setupper = 83;
+      break;
+    case 'T':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 84;
+      setlower = 116;
+      setupper = 84;
+      break;
+    case 'U':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 85;
+      setlower = 117;
+      setupper = 85;
+      break;
+    case 'V':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 86;
+      setlower = 118;
+      setupper = 86;
+      break;
+    case 'W':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 87;
+      setlower = 119;
+      setupper = 87;
+      break;
+    case 'X':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 88;
+      setlower = 120;
+      setupper = 88;
+      break;
+    case 'Y':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 89;
+      setlower = 121;
+      setupper = 89;
+      break;
+    case 'Z':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      myupper = 1;
+      setascii = 90;
+      setlower = 122;
+      setupper = 90;
+      break;
+    case '[':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 91;
+      setlower = 91;
+      setupper = 91;
+      break;
+    case '\\':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 92;
+      setlower = 92;
+      setupper = 92;
+      break;
+    case ']':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 93;
+      setlower = 93;
+      setupper = 93;
+      break;
+    case '^':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 94;
+      setlower = 94;
+      setupper = 94;
+      break;
+    case '_':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 95;
+      setlower = 95;
+      setupper = 95;
+      break;
+    case '`':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 96;
+      setlower = 96;
+      setupper = 96;
+      break;
+    case 'a':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 97;
+      setlower = 97;
+      setupper = 65;
+      break;
+    case 'b':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 98;
+      setlower = 98;
+      setupper = 66;
+      break;
+    case 'c':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 99;
+      setlower = 99;
+      setupper = 67;
+      break;
+    case 'd':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 100;
+      setlower = 100;
+      setupper = 68;
+      break;
+    case 'e':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 101;
+      setlower = 101;
+      setupper = 69;
+      break;
+    case 'f':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      myxdigit = 1;
+      setascii = 102;
+      setlower = 102;
+      setupper = 70;
+      break;
+    case 'g':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 103;
+      setlower = 103;
+      setupper = 71;
+      break;
+    case 'h':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 104;
+      setlower = 104;
+      setupper = 72;
+      break;
+    case 'i':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 105;
+      setlower = 105;
+      setupper = 73;
+      break;
+    case 'j':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 106;
+      setlower = 106;
+      setupper = 74;
+      break;
+    case 'k':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 107;
+      setlower = 107;
+      setupper = 75;
+      break;
+    case 'l':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 108;
+      setlower = 108;
+      setupper = 76;
+      break;
+    case 'm':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 109;
+      setlower = 109;
+      setupper = 77;
+      break;
+    case 'n':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 110;
+      setlower = 110;
+      setupper = 78;
+      break;
+    case 'o':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 111;
+      setlower = 111;
+      setupper = 79;
+      break;
+    case 'p':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 112;
+      setlower = 112;
+      setupper = 80;
+      break;
+    case 'q':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 113;
+      setlower = 113;
+      setupper = 81;
+      break;
+    case 'r':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 114;
+      setlower = 114;
+      setupper = 82;
+      break;
+    case 's':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 115;
+      setlower = 115;
+      setupper = 83;
+      break;
+    case 't':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 116;
+      setlower = 116;
+      setupper = 84;
+      break;
+    case 'u':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 117;
+      setlower = 117;
+      setupper = 85;
+      break;
+    case 'v':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 118;
+      setlower = 118;
+      setupper = 86;
+      break;
+    case 'w':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 119;
+      setlower = 119;
+      setupper = 87;
+      break;
+    case 'x':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 120;
+      setlower = 120;
+      setupper = 88;
+      break;
+    case 'y':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 121;
+      setlower = 121;
+      setupper = 89;
+      break;
+    case 'z':
+      myalnum = 1;
+      myalpha = 1;
+      myascii = 1;
+      mygraph = 1;
+      mylower = 1;
+      myprint = 1;
+      setascii = 122;
+      setlower = 122;
+      setupper = 90;
+      break;
+    case '{':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 123;
+      setlower = 123;
+      setupper = 123;
+      break;
+    case '|':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 124;
+      setlower = 124;
+      setupper = 124;
+      break;
+    case '}':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 125;
+      setlower = 125;
+      setupper = 125;
+      break;
+    case '~':
+      myascii = 1;
+      mygraph = 1;
+      myprint = 1;
+      mypunct = 1;
+      setascii = 126;
+      setlower = 126;
+      setupper = 126;
+      break;
+    case 0177:
+      myascii = 1;
+      mycntrl = 1;
+      setascii = 127;
+      setlower = 127;
+      setupper = 127;
+      break;
+    case 0200:
+      setascii = 0;
+      setlower = 128;
+      setupper = 128;
+      break;
+    case 0201:
+      setascii = 1;
+      setlower = 129;
+      setupper = 129;
+      break;
+    case 0202:
+      setascii = 2;
+      setlower = 130;
+      setupper = 130;
+      break;
+    case 0203:
+      setascii = 3;
+      setlower = 131;
+      setupper = 131;
+      break;
+    case 0204:
+      setascii = 4;
+      setlower = 132;
+      setupper = 132;
+      break;
+    case 0205:
+      setascii = 5;
+      setlower = 133;
+      setupper = 133;
+      break;
+    case 0206:
+      setascii = 6;
+      setlower = 134;
+      setupper = 134;
+      break;
+    case 0207:
+      setascii = 7;
+      setlower = 135;
+      setupper = 135;
+      break;
+    case 0210:
+      setascii = 8;
+      setlower = 136;
+      setupper = 136;
+      break;
+    case 0211:
+      setascii = 9;
+      setlower = 137;
+      setupper = 137;
+      break;
+    case 0212:
+      setascii = 10;
+      setlower = 138;
+      setupper = 138;
+      break;
+    case 0213:
+      setascii = 11;
+      setlower = 139;
+      setupper = 139;
+      break;
+    case 0214:
+      setascii = 12;
+      setlower = 140;
+      setupper = 140;
+      break;
+    case 0215:
+      setascii = 13;
+      setlower = 141;
+      setupper = 141;
+      break;
+    case 0216:
+      setascii = 14;
+      setlower = 142;
+      setupper = 142;
+      break;
+    case 0217:
+      setascii = 15;
+      setlower = 143;
+      setupper = 143;
+      break;
+    case 0220:
+      setascii = 16;
+      setlower = 144;
+      setupper = 144;
+      break;
+    case 0221:
+      setascii = 17;
+      setlower = 145;
+      setupper = 145;
+      break;
+    case 0222:
+      setascii = 18;
+      setlower = 146;
+      setupper = 146;
+      break;
+    case 0223:
+      setascii = 19;
+      setlower = 147;
+      setupper = 147;
+      break;
+    case 0224:
+      setascii = 20;
+      setlower = 148;
+      setupper = 148;
+      break;
+    case 0225:
+      setascii = 21;
+      setlower = 149;
+      setupper = 149;
+      break;
+    case 0226:
+      setascii = 22;
+      setlower = 150;
+      setupper = 150;
+      break;
+    case 0227:
+      setascii = 23;
+      setlower = 151;
+      setupper = 151;
+      break;
+    case 0230:
+      setascii = 24;
+      setlower = 152;
+      setupper = 152;
+      break;
+    case 0231:
+      setascii = 25;
+      setlower = 153;
+      setupper = 153;
+      break;
+    case 0232:
+      setascii = 26;
+      setlower = 154;
+      setupper = 154;
+      break;
+    case 0233:
+      setascii = 27;
+      setlower = 155;
+      setupper = 155;
+      break;
+    case 0234:
+      setascii = 28;
+      setlower = 156;
+      setupper = 156;
+      break;
+    case 0235:
+      setascii = 29;
+      setlower = 157;
+      setupper = 157;
+      break;
+    case 0236:
+      setascii = 30;
+      setlower = 158;
+      setupper = 158;
+      break;
+    case 0237:
+      setascii = 31;
+      setlower = 159;
+      setupper = 159;
+      break;
+    case 0240:
+      setascii = 32;
+      setlower = 160;
+      setupper = 160;
+      break;
+    case 0241:
+      setascii = 33;
+      setlower = 161;
+      setupper = 161;
+      break;
+    case 0242:
+      setascii = 34;
+      setlower = 162;
+      setupper = 162;
+      break;
+    case 0243:
+      setascii = 35;
+      setlower = 163;
+      setupper = 163;
+      break;
+    case 0244:
+      setascii = 36;
+      setlower = 164;
+      setupper = 164;
+      break;
+    case 0245:
+      setascii = 37;
+      setlower = 165;
+      setupper = 165;
+      break;
+    case 0246:
+      setascii = 38;
+      setlower = 166;
+      setupper = 166;
+      break;
+    case 0247:
+      setascii = 39;
+      setlower = 167;
+      setupper = 167;
+      break;
+    case 0250:
+      setascii = 40;
+      setlower = 168;
+      setupper = 168;
+      break;
+    case 0251:
+      setascii = 41;
+      setlower = 169;
+      setupper = 169;
+      break;
+    case 0252:
+      setascii = 42;
+      setlower = 170;
+      setupper = 170;
+      break;
+    case 0253:
+      setascii = 43;
+      setlower = 171;
+      setupper = 171;
+      break;
+    case 0254:
+      setascii = 44;
+      setlower = 172;
+      setupper = 172;
+      break;
+    case 0255:
+      setascii = 45;
+      setlower = 173;
+      setupper = 173;
+      break;
+    case 0256:
+      setascii = 46;
+      setlower = 174;
+      setupper = 174;
+      break;
+    case 0257:
+      setascii = 47;
+      setlower = 175;
+      setupper = 175;
+      break;
+    case 0260:
+      setascii = 48;
+      setlower = 176;
+      setupper = 176;
+      break;
+    case 0261:
+      setascii = 49;
+      setlower = 177;
+      setupper = 177;
+      break;
+    case 0262:
+      setascii = 50;
+      setlower = 178;
+      setupper = 178;
+      break;
+    case 0263:
+      setascii = 51;
+      setlower = 179;
+      setupper = 179;
+      break;
+    case 0264:
+      setascii = 52;
+      setlower = 180;
+      setupper = 180;
+      break;
+    case 0265:
+      setascii = 53;
+      setlower = 181;
+      setupper = 181;
+      break;
+    case 0266:
+      setascii = 54;
+      setlower = 182;
+      setupper = 182;
+      break;
+    case 0267:
+      setascii = 55;
+      setlower = 183;
+      setupper = 183;
+      break;
+    case 0270:
+      setascii = 56;
+      setlower = 184;
+      setupper = 184;
+      break;
+    case 0271:
+      setascii = 57;
+      setlower = 185;
+      setupper = 185;
+      break;
+    case 0272:
+      setascii = 58;
+      setlower = 186;
+      setupper = 186;
+      break;
+    case 0273:
+      setascii = 59;
+      setlower = 187;
+      setupper = 187;
+      break;
+    case 0274:
+      setascii = 60;
+      setlower = 188;
+      setupper = 188;
+      break;
+    case 0275:
+      setascii = 61;
+      setlower = 189;
+      setupper = 189;
+      break;
+    case 0276:
+      setascii = 62;
+      setlower = 190;
+      setupper = 190;
+      break;
+    case 0277:
+      setascii = 63;
+      setlower = 191;
+      setupper = 191;
+      break;
+    case 0300:
+      setascii = 64;
+      setlower = 192;
+      setupper = 192;
+      break;
+    case 0301:
+      setascii = 65;
+      setlower = 193;
+      setupper = 193;
+      break;
+    case 0302:
+      setascii = 66;
+      setlower = 194;
+      setupper = 194;
+      break;
+    case 0303:
+      setascii = 67;
+      setlower = 195;
+      setupper = 195;
+      break;
+    case 0304:
+      setascii = 68;
+      setlower = 196;
+      setupper = 196;
+      break;
+    case 0305:
+      setascii = 69;
+      setlower = 197;
+      setupper = 197;
+      break;
+    case 0306:
+      setascii = 70;
+      setlower = 198;
+      setupper = 198;
+      break;
+    case 0307:
+      setascii = 71;
+      setlower = 199;
+      setupper = 199;
+      break;
+    case 0310:
+      setascii = 72;
+      setlower = 200;
+      setupper = 200;
+      break;
+    case 0311:
+      setascii = 73;
+      setlower = 201;
+      setupper = 201;
+      break;
+    case 0312:
+      setascii = 74;
+      setlower = 202;
+      setupper = 202;
+      break;
+    case 0313:
+      setascii = 75;
+      setlower = 203;
+      setupper = 203;
+      break;
+    case 0314:
+      setascii = 76;
+      setlower = 204;
+      setupper = 204;
+      break;
+    case 0315:
+      setascii = 77;
+      setlower = 205;
+      setupper = 205;
+      break;
+    case 0316:
+      setascii = 78;
+      setlower = 206;
+      setupper = 206;
+      break;
+    case 0317:
+      setascii = 79;
+      setlower = 207;
+      setupper = 207;
+      break;
+    case 0320:
+      setascii = 80;
+      setlower = 208;
+      setupper = 208;
+      break;
+    case 0321:
+      setascii = 81;
+      setlower = 209;
+      setupper = 209;
+      break;
+    case 0322:
+      setascii = 82;
+      setlower = 210;
+      setupper = 210;
+      break;
+    case 0323:
+      setascii = 83;
+      setlower = 211;
+      setupper = 211;
+      break;
+    case 0324:
+      setascii = 84;
+      setlower = 212;
+      setupper = 212;
+      break;
+    case 0325:
+      setascii = 85;
+      setlower = 213;
+      setupper = 213;
+      break;
+    case 0326:
+      setascii = 86;
+      setlower = 214;
+      setupper = 214;
+      break;
+    case 0327:
+      setascii = 87;
+      setlower = 215;
+      setupper = 215;
+      break;
+    case 0330:
+      setascii = 88;
+      setlower = 216;
+      setupper = 216;
+      break;
+    case 0331:
+      setascii = 89;
+      setlower = 217;
+      setupper = 217;
+      break;
+    case 0332:
+      setascii = 90;
+      setlower = 218;
+      setupper = 218;
+      break;
+    case 0333:
+      setascii = 91;
+      setlower = 219;
+      setupper = 219;
+      break;
+    case 0334:
+      setascii = 92;
+      setlower = 220;
+      setupper = 220;
+      break;
+    case 0335:
+      setascii = 93;
+      setlower = 221;
+      setupper = 221;
+      break;
+    case 0336:
+      setascii = 94;
+      setlower = 222;
+      setupper = 222;
+      break;
+    case 0337:
+      setascii = 95;
+      setlower = 223;
+      setupper = 223;
+      break;
+    case 0340:
+      setascii = 96;
+      setlower = 224;
+      setupper = 224;
+      break;
+    case 0341:
+      setascii = 97;
+      setlower = 225;
+      setupper = 225;
+      break;
+    case 0342:
+      setascii = 98;
+      setlower = 226;
+      setupper = 226;
+      break;
+    case 0343:
+      setascii = 99;
+      setlower = 227;
+      setupper = 227;
+      break;
+    case 0344:
+      setascii = 100;
+      setlower = 228;
+      setupper = 228;
+      break;
+    case 0345:
+      setascii = 101;
+      setlower = 229;
+      setupper = 229;
+      break;
+    case 0346:
+      setascii = 102;
+      setlower = 230;
+      setupper = 230;
+      break;
+    case 0347:
+      setascii = 103;
+      setlower = 231;
+      setupper = 231;
+      break;
+    case 0350:
+      setascii = 104;
+      setlower = 232;
+      setupper = 232;
+      break;
+    case 0351:
+      setascii = 105;
+      setlower = 233;
+      setupper = 233;
+      break;
+    case 0352:
+      setascii = 106;
+      setlower = 234;
+      setupper = 234;
+      break;
+    case 0353:
+      setascii = 107;
+      setlower = 235;
+      setupper = 235;
+      break;
+    case 0354:
+      setascii = 108;
+      setlower = 236;
+      setupper = 236;
+      break;
+    case 0355:
+      setascii = 109;
+      setlower = 237;
+      setupper = 237;
+      break;
+    case 0356:
+      setascii = 110;
+      setlower = 238;
+      setupper = 238;
+      break;
+    case 0357:
+      setascii = 111;
+      setlower = 239;
+      setupper = 239;
+      break;
+    case 0360:
+      setascii = 112;
+      setlower = 240;
+      setupper = 240;
+      break;
+    case 0361:
+      setascii = 113;
+      setlower = 241;
+      setupper = 241;
+      break;
+    case 0362:
+      setascii = 114;
+      setlower = 242;
+      setupper = 242;
+      break;
+    case 0363:
+      setascii = 115;
+      setlower = 243;
+      setupper = 243;
+      break;
+    case 0364:
+      setascii = 116;
+      setlower = 244;
+      setupper = 244;
+      break;
+    case 0365:
+      setascii = 117;
+      setlower = 245;
+      setupper = 245;
+      break;
+    case 0366:
+      setascii = 118;
+      setlower = 246;
+      setupper = 246;
+      break;
+    case 0367:
+      setascii = 119;
+      setlower = 247;
+      setupper = 247;
+      break;
+    case 0370:
+      setascii = 120;
+      setlower = 248;
+      setupper = 248;
+      break;
+    case 0371:
+      setascii = 121;
+      setlower = 249;
+      setupper = 249;
+      break;
+    case 0372:
+      setascii = 122;
+      setlower = 250;
+      setupper = 250;
+      break;
+    case 0373:
+      setascii = 123;
+      setlower = 251;
+      setupper = 251;
+      break;
+    case 0374:
+      setascii = 124;
+      setlower = 252;
+      setupper = 252;
+      break;
+    case 0375:
+      setascii = 125;
+      setlower = 253;
+      setupper = 253;
+      break;
+    case 0376:
+      setascii = 126;
+      setlower = 254;
+      setupper = 254;
+      break;
+    case 0377:
+      setascii = 127;
+      setlower = 255;
+      setupper = 255;
+      break;
+    default:
+      abort();
+      
+    }
+
+}
+
+
+int _DEFUN(def_isascii,(i), int i) { return isascii(i); }
+int _DEFUN(def_iscntrl,(i), int i) { return iscntrl(i); }
+int _DEFUN(def_isspace,(i), int i) { return isspace(i); }
+int _DEFUN(def_isprint,(i), int i) { return isprint(i); }
+int _DEFUN(def_isalnum,(i), int i) { return isalnum(i); }
+int _DEFUN(def_isdigit,(i), int i) { return isdigit(i); }
+int _DEFUN(def_isxdigit,(i), int i) { return isxdigit(i); }
+int _DEFUN(def_isalpha,(i), int i) { return isalpha(i); }
+int _DEFUN(def_isupper,(i), int i) { return isupper(i); }
+int _DEFUN(def_islower,(i), int i) { return islower(i); }
+int _DEFUN(def_isgraph,(i), int i) { return isgraph(i); }
+int _DEFUN(def_ispunct,(i), int i) { return ispunct(i); }
+int _DEFUN(def_tolower,(i), int i) { return tolower(i); }
+int _DEFUN(def_toupper,(i), int i) { return toupper(i); }
+int _DEFUN(def_toascii,(i), int i) { return toascii(i); }
+int _DEFUN(def__tolower,(i), int i) { return _tolower(i); }
+int _DEFUN(def__toupper,(i), int i) { return _toupper(i); }
+
+extern int inacc;
+void
+_DEFUN(test_is_set,(func, name, p),
+       int (*func)() _AND
+       char *name _AND
+       int *p)
+{
+  int i;
+  newfunc(name);
+  for (i = 0; i < 255; i++) {
+    int r = func(i) != 0;
+    line(i);
+    test_is_single(i);
+    if (*p  != r) 
+      {
+	printf("%s:%d wrong result, is %d shouldbe %d\n", name, i, r,*p);
+	inacc++;
+      }
+  }
+}
+void
+_DEFUN(test_to_set,(func, name, p, low, high),
+       int (*func)() _AND
+       char *name _AND
+       int *p _AND
+       int low _AND
+       int high)
+{
+  int i;
+  newfunc(name);
+  for (i = low; i <= high; i++) {
+    int r = func(i) ;
+    line(i);
+    test_is_single(i);
+    if (*p  != r) 
+      {
+	printf("%s:%d wrong result, is %d shouldbe %d\n", name, i, r,*p);
+	inacc++;
+      }
+  }
+}
+
+
+#undef isascii
+#undef iscntrl
+#undef isspace
+#undef isprint
+#undef isalnum
+#undef isdigit
+#undef isxdigit
+#undef isalpha
+#undef isupper
+#undef islower
+#undef isgraph
+#undef ispunct
+#undef tolower
+#undef toupper
+#undef toascii
+#undef _tolower
+#undef _toupper
+
+void
+_DEFUN_VOID(test_is)
+{
+  test_is_set(def_isalnum, "isalnum define", &myalnum);
+  test_is_set(def_isalpha, "isalpha define", &myalpha);
+  test_is_set(def_isascii, "isascii define", &myascii);
+  test_is_set(def_iscntrl, "iscntrl define", &mycntrl);
+  test_is_set(def_isdigit, "isdigit define", &mydigit);
+  test_is_set(def_isgraph, "isgraph define", &mygraph);
+  test_is_set(def_islower, "islower define", &mylower);
+  test_is_set(def_isprint, "isprint define", &myprint);
+  test_is_set(def_ispunct, "ispunct define", &mypunct);
+  test_is_set(def_isspace, "isspace define", &myspace);
+  test_is_set(def_isupper, "isupper define", &myupper);
+  test_is_set(def_isxdigit, "isxdigit define", &myxdigit);
+  test_is_set(isalnum, "isalnum function", &myalnum);
+  test_is_set(isalpha, "isalpha function", &myalpha);
+  test_is_set(isascii, "isascii function", &myascii);
+  test_is_set(iscntrl, "iscntrl function", &mycntrl);
+  test_is_set(isgraph, "isgraph function", &mygraph);
+  test_is_set(islower, "islower function", &mylower);
+  test_is_set(isprint, "isprint function", &myprint);
+  test_is_set(ispunct, "ispunct function", &mypunct);
+  test_is_set(isspace, "isspace function", &myspace);
+  test_is_set(isupper, "isupper function", &myupper);
+  test_is_set(isxdigit, "isxdigit function", &myxdigit);
+  test_to_set(_tolower, "_tolower function", &setlower, 'A','Z');
+  test_to_set(_toupper, "_toupper function", &setupper, 'a','z');
+  test_to_set(def__tolower, "_tolower define", &setlower, 'A','Z');
+  test_to_set(def__toupper, "_toupper define", &setupper, 'a','z');
+  test_to_set(def_toascii, "toascii define", &setascii, 0,255);
+  test_to_set(def_tolower, "tolower define", &setlower, 0,255);
+  test_to_set(def_toupper, "toupper define", &setupper, 0,255);
+  test_to_set(toascii, "toascii function", &setascii, 0,255);
+  test_to_set(tolower, "tolower function", &setlower, 0,255);
+  test_to_set(toupper, "toupper function", &setupper, 0,255);
+}
Index: newlib-1.15.0/newlib/libm/test/iconv_vec.c
===================================================================
--- newlib-1.15.0.orig/newlib/libm/test/iconv_vec.c
+++ newlib-1.15.0/newlib/libm/test/iconv_vec.c
@@ -2,6 +2,7 @@
 #include "test.h"
 
 int_type ints[]={
+#ifndef __SPU__
 __LINE__,0x00000000, 3,0,0x00000000, 3,0,0x7fffffff,12,34,0x7fffffff,12,34,0x00000000, 3,0, " +0xa73231122",
 __LINE__,0x00000000, 3,0,0x00000000, 3,0,0x000000a7, 6,0,0x000000a7, 6,0,0x00000000, 3,0, " +0xa7w",
 __LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000a73, 7,0,0x00000a73, 7,0,0x00000000, 3,0, " +0xa73",
@@ -1143,6 +1144,7 @@ __LINE__,0x0000000f, 2,0,0x00000011, 2,0
 __LINE__,0x0000007b, 3,0,0x000000ad, 3,0,0x00000173, 3,0,0x000000ad, 3,0,0x0000035d, 3,0, "173",
 __LINE__,0x0000000f, 2,0,0x00000011, 2,0,0x00000017, 2,0,0x00000011, 2,0,0x00000021, 2,0, "17",
 __LINE__,0x542d3252,12,0,0x7fffffff,11,34,0x7fffffff,11,34,0x7fffffff,11,34,0x7fffffff, 8,34, "112413231122",
+#endif
 __LINE__,0x000012a1, 5,0,0x00002be9, 5,0,0x00011241, 5,0,0x00002be9, 5,0,0x00074369, 5,0, "11241w",
 __LINE__,0x0000950b, 6,0,0x0001b71d, 6,0,0x00112413, 6,0,0x0001b71d, 6,0,0x00bcd8ad, 6,0, "112413",
 __LINE__,0x000012a1, 5,0,0x00002be9, 5,0,0x00011241, 5,0,0x00002be9, 5,0,0x00074369, 5,0, "11241",
