Implement zoned and packed-decimal numbers. See http://en.wikipedia.org/wiki/Binary-coded_decimal for more information. Note that this requires different code for different integer types (byte, short, int, long, BigInteger), signed and unsigned numbers and differentiation between EBCDIC and ASCII formatting (all be it with a lot of code reuse).
See the src/daffodil/grammar/Primitives.scala/ConvertTextNumberPrim class for an example for how to do this