I guess I should've been more specific on my
position. It *should*
be an I/O thing. Doing arithmetic in BCD is not something I'd thought
of...but being inherently tied to decimal, it likely wouldn't be the
best choice for the underlying computational engine for a calculator
which is supposed to support multiple bases.
I think most handheld calculators use BCD arithmetic.
The HP RPL machines (28, 48, etc) use several different object types. A
real number is stored in a floating point BCD form. User binary numbers
(which can be displayed in hex, octal, bianry or decimal) are stored as
64 bit binary numbers. Some commands work on both types of object (but of
course the first operation in such a command is to check the object type
and go to a different internal routine as appropriate), most mathematical
functions work on reals but not binaries, logical functions work on
binaries but not reals. Of course there are commands to convert between
various object types. But non-integral binary numbers are not implements.
On the other hand, the HP41, when fitted with an Advantage Pac (ROM
module) can do bitwise logical operations, but I am pretty sure all
numbers are stored in the normal floating point BCD format, and converted
to binary for the operation, then converted back again. Hmmm...
-tony