How do you know presetting TMR0 doesn't work?
It looks to me like you're doing it (and clearing the interrupt flag) all the time (ie outside of the IF/ENDIF block).....
I guess what you actually want to do is:
Code:
mainloop:

if INTCON.2=1 THEN 
  INTCON.2=0
  toggle portb.2 
  TMR0 = 128 'yes work 
endif

goto mainloop
/Henrik.