Anweisung zum Aufruf einer Unterroutine.
Syntax: a)
GOSUB Ausdruck
b)
ON Ausdruck GOSUB Ausdruck1 [
,Ausdruck2Œ] [
ELSE Ausdruck3]
Argument: a)
Ausdruck sollte bei Auswertung eine Integerzahl zwischen 0 und 65279 ergeben, also eine legitime Zeilennummer. Wenn der Ausdruck nicht eine einfache Ganzzahl ist, muß er in runde Klammern gesetzt werden. Es wird dann auf die so angesprochene Zeile verzweigt, wobei die Kontrolle mit der nächsten
RETURN Anweisung direkt nach GOSUB zurückgeht.
b)
Ausdruck sollte bei Auswertung eine Integerzahl ergeben. Wenn die Integerzahl
n ist, dann wird auf die
nte Unterroutine nach GOSUB verzweigt. Wenn die Ganzzahl kleiner als 1 oder größer als die höchste Zeilennummer ist, gelangt die Anweisung nach
ELSE (wenn vorhanden) zur Ausführung.
Hinweise: Prozeduren sollte gegenüber Unterroutinen der Vorzug gegeben werden, da sie flexibler sind und eine bessere Programmstruktur ermöglichen. Die Zeilennummer nach GOSUB sollte eine Konstante sein, damit
RENUMBER ordnungsgemäß funktioniert.
Beispiele: a)
10 GOSUB 2000
20 GOSUB (2300+20*opt) : REM not nice
b) 30 ON x% GOSUB 100,200,300 ELSE PRINT "Out of range"