The result was that the Atari's, without even trying, had more accurate decimal math algorithms than other contemporary computers. Something to do on the demo machines of the day in stores was to run this loop:
10 let x = 100
20 print x
30 let x = x - 0.01
40 goto 20
On an Atari this would accurately count down from 100 to zero with zero round off errors. The exact same loop on an IBM PC after about 5 steps started printing things like 99.94999999998 instead of 99.95.Edit: formatting
I only ever saw it used for game scores... and the following, which prints a byte as hex, and is a neat example of cute 6502 code. Saves a few bytes over having a table of hex digits, and you don't need to save X or Y.
HEX: PHA
LSR:LSR:LSR:LSR
JSR HEX2
PLA
AND #15
HEX2: CLC
SED:ADC #$90:ADC #$40:CLD
JMP PUTCH
(PUTCH takes an ASCII character in A.)The 68000 had BCD as well. Never used it and don't recall ever seeing it used. I think they only included it so they could have an instruction called ABCD.
Also would be useful for 7-segment LED displays.
[1] (PDF link) http://education.ti.com/guidebooks/sdk/83p/sdk83pguide.pdf see pages 22-23
I think the BCD instructions were never intended to be used outside of software arithmetic libraries, but they provide speedups for crucial operations in such libraries. Sort of like Intel's recently introduced AES instructions, which will probably only be used in encryption libraries.
Of course, it turns out that BCD-based arithmetic isn't much used, because IEEE-style floating-point has a fundamental advantage (you can store more precision in a given amount of space) and is also compatible with hardware FPU's.
[1] http://en.wikipedia.org/wiki/Floating-point_unit#Add-on_FPUs