"

I'm not sure if you're serious about this, or if you're being condescending.

"

No, I didn't mean to be condescending. More like trying to get my bearings.

I would have thought that "double dabble" would be better known than

"nonrestoring division" but I don't (didn't) think of either of them as

particularly obscure.

For division by shifting and subtracting, you align the most significant bits

of the remainder (dividend) and the divisor by shifting the remainder

left and then you subtracting the divisor from it. If the result is negative you,

"restore" the remainder by adding the divisor back in and shifting again

and then do your subtraction. You keep the remainder positive and

reduce it towards zero

For nonrestoring you keep the negative remainder and continue to shift,

reducing it towards zero by adding the divisor if the remainder is negative

and subtracting the divisor if the remainder is positive. If the remainder is

negative when you're done with your shifting, you have to fix things up.

Having said that, I was half joking when I suggested nonrestoring in BCD.

I'm sure it can be done, and it would probably be an interesting exercise,

but I suspect and/or assume it would be more trouble than it would be

worth (how ever I don't know that)

I didn't find anything on line that looked very good but here's a couple links

http://cs.uns.edu.ar/~jechaiz/arquitect ... oring.html
http://www.computer-engineering.org/alg ... ision.html
"Programing the 6502" by Rodnay Zaks Has some code in it. I haven't

tryed it. (and I've heard that some of the code from that book is no good)

I'll dig it out and post it here.