Robert

I am wondering if you can do the following. Bruce already suggested this. I am just reminding you of the possibility (to catch a problem) of debugging this technique offers.

Code:
GOTO Start 

INI:
assembly block (with return) to setup the chip

Setup:
routine (with return) to set initial state of variables, etc

Start:
   Led = 1:pause 1000:Led = 0
GOSUB INI 
   Led = 1:pause 1000:Led = 0
GOSUB Setup
   Led = 1:pause 1000:Led = 0

Splash screen is displayed here.

Some initail instrument checks ( proper hookup, etc) are performed here

Switch polling routine here

rest of code body
if you see 3 flashes of the led, you have reached the splash screen code.

Perhaps this will help you find if you are missing a return / stacking too deep. You may have a problem due to the limited caller stack size. Have you looked into this too?

Jerson