Ist vielleicht nicht schön, aber funzt auch ohne.
im Prinzip isses eigentlich völlig egal, Hauptsache das Programm läuft

Ich mach's halt so, daß ich im Hauptprogramm eine Schleife habe, die dann weiter verzweigt.

Du mußt bei Tasterabfragen ja normalerweise immer wieder Abfragen, mußt also sowieso im Programm irgendwie zurückspringen.

Bei Gosub brauchst du ein Return, sonst läuft das Programm einfach weiter und springt nicht mehr zurück, wie es soll.

Ich mach's in etwa so:

Code:

Taster1 Alias Pind.0
Taster2 Alias Pind.1

Do
   Gosub Tasterabfrage
Loop
End                                                         'end program

Tasterabfrage:
  If Taster1 = 0 Then
      Gosub Label1
   End If

   If Taster2 = 0 Then
      Gosub Label2
   End If
Return



Label1:
   Cls
   Lcd "HAllo"
Return

Label2:
   Cls
   Lcd "TEST"
Return


'(Man sollte allerdings noch abfragen, ob der Menüpunkt schonmal abgefragt wurde,
'sonst flackert das Display durch die dauernden CLS während dem Tastendrücken und man sieht auch nicht viel ) ;).
'Oder nur eine Zeile löschen / überschreiben etc..



'Das Return läßt das Programm an der Stelle nach dem Gosub-Aufruf weiterarbeiten, springt also zurück.
' Im Gegesatz zum GOTO, bei dem lediglich zum Label gesprungen wird und nicht zurück.