Migration to the new server completed.

Please add any new defect you notice here!


Die Migration auf den neuen Server ist abgeschlossen.

Bitte neue Defekte hier vermerken!

EXEC

Aus C64-Wiki
Wechseln zu: Navigation, Suche
EXEC
Format: EXEC <label>
Parameter
label: Name einer Prozedur
Einordnung
Typ: Anweisung
Kontext: Strukturkontrolle
Aufgabe: Aufrufen einer Prozedur
Shortcut: keiner
Verwandte Befehle
CALL - PROC - END PROC



Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort EXEC.

Typ: Anweisung 
Syntax: EXEC <label>

In Simons' Basic können Unterprogramme mit einem Namen versehen werden (siehe PROC). Sie werden dadurch unabhängig von ihrer Lage im Programm und der Programmierer kann leichter den Überblick bewahren (Namen lassen sich leichter einem Zweck zuordnen als Zeilennummern). Der Befehl EXEC ruft ein solches Unterprogramm auf, arbeitet es ab und kehrt an seinen Ausgangsort zurück. Er entspricht damit weitgehend dem BASIC-V2-Befehl GOSUB.

In Simons' Basic dürfen in der Zeile, in der EXEC verwendet wird, keine weiteren Basic-Befehle eingegeben werden. Leerzeichen am Anfang eines Labels (die eventuelle Lücke zwischen PROC und dem Labelnamen wie im Beispiel unten) dürfen bei EXEC nicht weggelassen werden.

Wird das Label hinter EXEC im Programm nicht gefunden, so erscheint die Fehlermeldung ?PROC NOT FOUND ERROR. Wenn ein Simons'-Basic-Programm auf ein Prozedurende (END PROC) trifft, ohne eine Prozedur aufgerufen zu haben, erscheint die Meldung ?END PROC WITHOUT EXEC ERROR. Bei zu vielen Verschachtelungen (schon bei mehr als fünf, statt wie im Handbuch angegeben bei mehr als zehn) meldet Simons' Basic ?STACK TO LARGE ERROR (mit einem Rechtschreibfehler, es sollte wohl eigentlich "TOO LARGE" heißen).

Beispiel: 

10 PRINT "bitte eine taste druecken!"
20 EXEC warten
30 PRINT "danke"
999 END

1000 PROC warten
1010 POKE 198,0: WAIT 198,1
1020 END PROC

(Nach der Aufforderung, eine Taste zu drücken, wartet das Programm und gibt schließlich
eine Rückmeldung aus)

Dieser Befehl wurde in TSB um weitere Funktionen erweitert, siehe EXEC (TSB).