So the character 'G' would mean 16. I'm not sure whether anything depends on this, but it should reject (or at least skip over) things that are below '0', larger than '9' and below 'A', and anything above 'Z'.
Interesting...I did not know that the "number" after the %X is suppose to be "hex" -ish. From a user-perspective who does not know the internal working this is kind of confusing.
eval '? LFORMAT "%X*N" --> seems like this should throw an error like OS4.
eval '? LFORMAT "%X0*N" --> outputs same as "%X1*N". Seems like "%X0" should be thrown out as anything valid (i.e. error) since 0 does not make sense as a qualifier anyways and it is producing single digit output.
For 'G' to 'Z', these are not real hex numbers in the normal sense though these are "nice' to have so that longer number strings are possible. So not sure what to say there...