Hello Everyone
This is my first post here and hope to get some help from someone. I recently bought PICBasic Pro and tried few programs and now I feel it is time to jump into something more useful and exciting.
I want to make a fan regulator using two rf modules and my PIC12f629. I found the following code on the net posted by someone, I can understand some of it but need some help to understand it completely:

DEVICE 12F629
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, BODEN_OFF, CP_OFF, MCLRE_OFF
;XTAL 4
ALL_DIGITAL = TRUE
; 76543210
TRISIO = %00011100 ;1-input, 0-output
PORTB_PULLUPS OFF
CMCON = 7 ;comparator off
;************************************************* ******************************
;pull-up initialization
;OPTION_REG.7 = 0 ;enable pull-ups
;WPU.4 = 1 ;pull-up on GPIO.4 pin
OPTION_REG = %11010101 ;presc 1:64 ,External Interrupt Edge to rising edge

;I/O symbols
SYMBOL Triac_out = GPIO.0 ;pin for fiering triac
SYMBOL IR_Receiver = GPIO.3 ;pin for receiving ir-data from ir-module
SYMBOL Zero_cross = GPIO.2 ;pin for detecting zero-cross point
SYMBOL Dim_UP_Button = GPIO.4
SYMBOL Dim_DOWN_Button = GPIO.5

;interrupt symbols
SYMBOL GIE = INTCON.7 ; Global Interrupt Enable 1 = enable, 0 = disable
SYMBOL T0IE = INTCON.5 ;TMR0 Overflow Interrupt Enable bit
SYMBOL INTE = INTCON.4 ;GP2/INT External Interrupt Enable 1 = enable, 0 = disable
SYMBOL T0IF = INTCON.2 ;TMR0 Overflow Interrupt Flag bit
SYMBOL INTF = INTCON.1 ;External Interrupt Flage 1 = external interrupt occurred (must be cleared in software)


DIM Load_Value AS WORD
DIM I AS BYTE

;Clear interrupt sources flages and enable them
T0IF = 0 ;Clear TMR0 overflaw interrupt flag
INTF = 0 ;Clear External Interrupt Flag
;T0IE = 1 ;Enable TMR0 overflaw interrupt
;INTE = 1 ;Enable External Interrupt
;GIE = 1 ;Enable Global interrupt ( 0 disable)


Load_Value = 155

ON_INTERRUPT Interrupt_Detect

GOTO MAIN

Interrupt_Detect:
IF INTF = 1 THEN
TMR0 = Load_Value
T0IE = 1
INTF = 0 ;Clear INT Flag (be ready for the next)
ENDIF

IF T0IF = 1 THEN
ASM
Bsf GPIO,0
Nop
Nop
Nop
Nop
Nop
Nop
Nop
Nop
Nop
Nop
Bcf GPIO,0
ENDASM
T0IF = 0
ENDIF
CONTEXT RESTORE


MAIN:

GIE = 0 ' Turn off global interrupts
While GIE = 1:GIE = 0:Wend ' Make sure they are off

;T0IE = 1 ' Enable TMR0 overflow interrupt
INTE = 1
GIE = 1 ' Enable global interrupts

IF Dim_UP_Button = 1 THEN GOSUB DIM_UP
IF Dim_DOWN_Button = 1 THEN GOSUB DIM_DOWN

GOTO Main


DIM_UP:
Load_Value = Load_Value + 8
IF Load_Value >= 155 THEN Load_Value = 155
FOR I = 0 TO 5000 : DELAYUS 100 : NEXT
RETURN


DIM_DOWN:
Load_Value = Load_Value - 8
IF Load_Value <= 67 THEN Load_Value = 67
FOR I = 0 TO 5000 : DELAYUS 100 : NEXT
RETURN
-----------------------------------------------------
Just to put some light on the above program, I want to add that this code was written in some proton (to me it looks very similar to PBP). It is meant to be an IR operated unit ( I will try RF modules).

I just need some help on understanding timers & their role in above program along with the role of Load_Value as I dont understand the following as well in the code:

" Load_Value = Load_Value - 8
IF Load_Value <= 67 THEN Load_Value = 67" & also

"Load_Value = Load_Value + 8
IF Load_Value >= 155 THEN Load_Value = 155"

Many Thanks