So is the 3 seconds the test loop adds an accumulation of the timer1 count value above 40380 when the value is finally checked? I guess I didn't account for the overage if that is the case.

I did some more playing with timer2 last night and did the same test as I did with timer1. Regardless of what test loops I put in, the time appeared to stay the same. That had me looking for difference between timer 1 and 2. Is it fair to say the timer2 routine would also have an overage and is longer with the test loop but it isn't noticeable when timing with a stop watch?

Here is the timer2 code:

Include "modedefs.bas"
DEFINE OSC 16
OSCCON=%01111010
test var byte
PR2 = 249
time var word
msec var word
msec = 0
sec var byte
sec = 0
mint var byte
mint = 0
hour var byte
hour = 0
'pir1.1 match flag

tmr2=0
pr2 = 1

high portb.4
pause 500
low portb.4

'T2CON.2=1

t2con =%01111111
do
if pir1.1 = 1 then
pir1.1 = 0
msec = msec + 1
if msec = 1000 then
msec = 0
sec = sec +1
if sec = 60 then
sec = 0
mint = mint+1
endif
endif
endif

'test = 0
'do until test = 127
'test = test +1
'loop
if mint = 1 then
mint = 0
high portb.4
pause 500
low portb.4
endif
loop