Hola Amigos!, como dice el titulo del post, hoy he tenido una mala pasada

Un programa de una especie de cronometro, que escribí y funcionaba hace 4 años atrás , pero hoy no quería saber nada!!!
Lo primero que pensé, en la placa,... revise todo...
La cuestión es que el valor de precarga del timer0 , para un micro 16f628 de 20 Mhz era
org 4 ;interrupcion
movwf SALVAW ;Salva W
swapf STATUS,W ;Invierte STATUS --> W
movwf SALVASTATUS ;Salva STATUS
MOVLW .12
MOVWF TMR0
y resulta que no funcionaba...
cambié el valor a 160 y ya funcionaba, pero logicamente con un notable retraso...
y si le colocaba 159 ya no funcionaba más..
Cargue el programa en un micro de 4 Mhz... y ocurria lo mismo.... ¿pueden ser micros "remarcados" y que en realidad no son de 20 mhz???
a alguien le ocurrio algo similar?
Gracias
Norberto