ALL ROUTINES IN HERE ARE MACHINE INDEPENDENT

The C interface to the ctype functions is not useful from asm
language so a parallel set of routines meant to be called from
asm appear with leading "asm_" in their names.

Then the C routines were modified to call the asm ones; this
saves on memory when both routines are used in a program and
helps to keep things consistent but they are a bit slower as
a result.  Nevermind: code size is a bigger issue than losing
a few cycles in ctype functions.
