Did you get the main program structure working?

If it still acts funny, it's probably because the GOTO MAIN in the subroutines always goes back to the top of the program. Only SUB1 will get executed.

What about something like this?

Code:
GOTO MAIN              ' Skip over subroutines

Sub1:
high portB.0
RETURN

Sub2:
high portB.1
RETURN

Sub3:
high portB.2
RETURN

MAIN:
  GOSUB Sub1
  GOSUB Sub2
  GOSUB Sub3
END
I would recommend starting with Port B for your testing. You can use Port A later once you have a simple program working.

Robert