Decimal computer


Decimal computers are computers which can represent numbers and addresses in decimal as well as providing instructions to operate on those numbers and addresses directly in decimal, without conversion to a pure binary representation. Some also had a variable wordlength, which enabled operations on numbers with a large number of digits.

Early computers

Early computers that were exclusively decimal include the ENIAC, IBM NORC, IBM 650, IBM 1620, IBM 7070. In these machines, the basic unit of data was the decimal digit, encoded in one of several schemes, including binary-coded decimal, bi-quinary and two-out-of-five code. Except for the IBM 1620 and 1710, these machines used word addressing. When non-numeric characters were used in these machines, they were encoded as two decimal digits.
Other early computers were character oriented, providing instructions for performing arithmetic on character strings of decimal numerals, using BCD or excess-3 for decimal digits. On these machines, the basic data element was an alphanumeric character, typically encoded in six bits. UNIVAC I and UNIVAC II used word addressing, with 12-character words. IBM examples include IBM 702, IBM 705, the IBM 1400 series, IBM 7010, and the IBM 7080.

Later computers

The IBM System/360, introduced in 1964 to unify IBM's product lines, used per character binary addressing, and also included instructions for packed decimal arithmetic as well as binary integer arithmetic, and binary floating point. It used 8-bit characters and introduced EBCDIC encoding, though ASCII was also supported.
The Burroughs B2500 introduced in 1966 also used 8-bit EBCDIC or ASCII characters and could pack two decimal digits per byte, but it did not provide binary arithmetic, making it a decimal architecture.

More modern computers

Several microprocessor families offer limited decimal support. For example, the 80x86 family of microprocessors provide instructions to convert one-byte BCD numbers to binary format before or after arithmetic operations
. These operations were not extended to wider formats and hence are now slower than using 32-bit or wider BCD 'tricks' to compute in BCD. The x87 FPU has instructions to convert 10-byte packed decimal data, although it then operates on them as floating-point numbers.
The Motorola 68000 provided instructions for BCD addition and subtraction; as does the 6502. In the much later 68000 family-derived processors, these instructions were removed when the Coldfire instruction set was defined, and all IBM mainframes also provide BCD integer arithmetic in hardware. The Zilog Z80, Motorola 6800 and its derivatives, together with other 8-bit processors, and also the Intel x86 family have special instructions that support conversion to and from BCD. The Psion Organiser I handheld computer’s manufacturer-supplied software implemented its floating point operations in software using BCD entirely. All later Psion models used binary only, rather than BCD.
Decimal arithmetic is now becoming more common; for instance, three decimal types with two binary encodings were added to the 2008 IEEE 754r standard, with 7-, 16-, and 34-digit decimal significands.
The IBM Power6 processor and the IBM System z9 have implemented these types using the Densely Packed Decimal binary encoding, the first in hardware and the second in microcode.