When I am trying to figure out how to express something algorithmically, I often find it helps for me to write out what I think it does in language that I am most familiar with (sort of like pseudo-code) with gaps to be filled in later for the parts that I'm not sure about.
You say that you can sort of see what d is doing--what is it that you can see, and where are the gaps that you can't see yet?
What happens if you repeat the "d" two or three times in a row? Does this have any effect on subsequent results? Or, what if you omit some (or all) of the "d" commands? I would suggest that what the "d" does is fairly simple, but much of the interesting action here occurs on "+" instead.
I'm also a bit mystified about why an RPN calculator would need a "=" at all. But that's mostly a side issue at the moment, I think.
"I'm not back." - Bill Harding, Twister
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com