using n-bit math

result

ready v3
turns 23 f 489
33609 3664.3145
turns 23 f 486
33606 3663.9875
turns 23 f 484
33604 3663.7694



Code:
 Include "N-Bit_MATH.pbp" 
 
enc_new VAR BYTE   bank0
enc_old VAR BYTE   bank0
enc_counter VAR WORD   bank0
Flag var BYTE        bank0
tmp         var  byte[4]
res         var  byte[4]
tmp1        var  byte[4]
posn        var WORD
turns       var word
frac        var WORD
 
 
 
; Set variable value @ startup
Flag = 1                   ;preset a value    for testing
enc_new = 0
enc_old= 0
enc_counter = 33609      ;preset a value    for testing

 
Main_Loop:     
if Flag = 1 then
turns=  enc_counter /1440
frac=   enc_counter //1440
serout2 PORTa.0,84, [13,10,"turns ",#turns,9,"f ",#frac ] 
if frac then
@  MOVE?CP 157000, _tmp  
@  MOVE?WP _frac, _tmp1  
@  MATH_MUL  _tmp1, _tmp, _res 
@  MOVE?CP 1440000, _tmp
@  MATH_DIV  _res, _tmp, _tmp1
@  MOVE?PW _tmp1, _posn
@  MOVE?CP 144, _tmp
@  MATH_DIV  REG_Z, _tmp, _tmp1
@  MOVE?PW _tmp1, _frac
endif
posn=posn+turns*157
serout2 PORTa.0,84, [13,10,#enc_counter,9,dec4 posn,".",dec4 frac       ] 
 
 
 
Flag = 0
endif
goto Main_Loop
end