the isr counts edges , an indented re has 4 edges per indent . you would expect to increment counter by 4
don't forget the display routine and the isr are asynchronous .
if you are trying to count indents then


Code:
 cnt_f var bit

Main:
  PAUSE 10

  IF cnt_f THEN

 gosub get_cnt:
     DEBUG DEC counter,13,10
  
  ENDIF
  
GOTO Main





enc_isr:
    ev=ev<<2              ;shift last reading into position
    ev=ev|((portb&48)>>4)  ;read enc pins 4,5  mask off others then  combine this reading with last reading
    LOOKUP (ev&15),[0,255, 1, 0, 1, 0, 0, 255, 255, 0, 0, 1, 0, 1, 255, 0],tmp;lookup the decision matrix
    if tmp then         ; decide to inc , dec or ignore 
        if tmp.7 then
           cnt=cnt-1
           cnt_f=1
        else
            cnt=cnt+1
            cnt_f=1
        endif
    endif
    intcon.0=0                   ; clean up and exit
@ INT_RETURN
    


  
get_cnt :
intcon.3=0
    counter=cnt/4          
    cnt_f=0 
  intcon.3=1 
return