so to clarify

this is the version i know of

i use it on a 64mhz osc - giving TIPS = 4 from memory for a 2.5ms tick


Code:
; -------------- calc timer reload Constants -------------------------------
 ASM
T1PS = 1                             ; start with 1:1 postscaler
TimerConst = ((OSC*1000000)/4/100)   ; how many timer ticks will it take
    while TimerConst > 65400          ; if it's more than the timer can count
T1PS = T1PS * 2                      ; double the postscaler
TimerConst = TimerConst / 2          ; halve the count
    endw
 
                    
TimerConst = 65536 - TimerConst +8   ; add the 8 cycles to constant 
  
; -----------------  ADD TimerConst to TMR1H:TMR1L -------------------------
ADD2_TIMER   macro
     BCF     T1CON,TMR1ON, 0       ;  1 Turn off timer
     MOVLW   LOW(TimerConst)       ;  1
     ADDWF   TMR1L,F, 0            ;  1    
     BTFSC   STATUS,C              ;  1/2
     INCF    TMR1H,F, 0            ;  1
     MOVLW   HIGH(TimerConst)      ;  1
     ADDWF   TMR1H,F, 0            ;  1
     endm

; -----------------  ADD TimerConst to TMR1H:TMR1L and restart TIMER1 ------
RELOAD_TIMER  macro
     ADD2_TIMER
     BSF     T1CON,TMR1ON, 0       ;  1   Turn TIMER1 back on  (8 cycles)
     endm

; -----------------  Load TimerConst into TMR1H:TMR1L ----------------------
LOAD_TIMER  macro
     MOVE?CT  0, T1CON,TMR1ON
     MOVE?CB  0, TMR1L
     MOVE?CB  0, TMR1H
     ADD2_TIMER
     endm
 ENDASM