Thanks very much for your help Steve, this is exactly what i wanted and it is a good platform to expand from.

One question, is it possible to permantly monitor the switch input.

For example, when the switch is pressed, the program BRANCHes to a preset routine. However, if this preset routine is a long one , ie multiple LED flashes etc, it will only look at the switch input at the end of this preset routine (when it 'goto START') and not during the routine.

ie.

Blink:
Low PORTC.0
If delay<50 then
High PORTC.1
else
If delay<100 then
low PORTC.1
else
delay=0
endif
endif
pause 10
Delay=delay+1
goto start *** ONLY LOOKS AT SWITCH INPUT HERE AND NOT DURING ROUTINE ***

Does this make sense, i need to permantly monitor the switch input no matter what else the code is doing elsewhere.

Many thanks again,

Steve