Bob Fehrenbach wrote: > Dmitry Kiryashov wrote: > >> Andy Shaw wrote: > >> >Does anyone out there have any code for a reasonably > >> >fast divide by 10 routine. Yes , you right Bob . 26/256 is better aproximation than 25/256 . 1/10 = 25.6/256 ;) err1 = 26/256-25.6/256 = 0.4/256 err2 = 25/256-25.6/256 = -0.6/256 abs(err1) < abs(err2) > Dmitry's creative solution with a suggestion: > > >;+1/2 > > clrc > > rrf X,W > > movwf Y > > > >;+1/16 > > swapf X,W > > andlw 0xF > > addwf Y,F Few modification according Bob improvement > ; *** New code inserted *** > addwf Y,F ; 1/16 + 1/16: improves round off > >;+1 > > movfw X > > addwf Y,F > > > >;/16 > > swapf Y,W > > andlw 0xF > > > > skpnc > > addlw 0x10 > > movwf Y > > -- > Bob Fehrenbach Wauwatosa, WI bfehrenb@execpc.com WBR Dmitry.