Ja ich hab mal nur überflogen und festgestellt das du Sub und Sprünge durcheinander nutzt.

Entweder (Nur angerissen)

Code:
Declare Sub soundso
Do
If irgendwas then  Call Sub Soundos
Loop

Sub soundso
Dein Code
End Sub

oder



Code:
Do
If irgendwas then Gosub blabla
Loop


:blabla
Dein Code
Return.

Alles andere endet in Confusion.


Sub ist sehr gut wenn man lokale Variablen nutzt (Achtung.Stack muß ausreichen.Entsprechend einstellen).