GOSUB ===== Function -------- **GOSUB** causes execution to jump to a Basic subroutine located elsewhere in the applications program. Syntax ------ GOSUB line number GOSUB numeric expression Examples -------- :: GOSUB 150 causes program execution to jump to a subroutine located at 150. The argument can also be an argument or expression, for example: :: GOSUB SI or :: GOSUB SI+100*A This is illustrated by the program sequence: :: 10 INPUT A 20 SI=1000 30 GOSUB SI+100*A 40 STOP 1000 PRINT "THIS IS SUBROUTINE 1" 1010 RETURN 1100 PRINT "THIS IS SUBROUTINE 2" 1110 RETURN etc. If the number 0 is entered in line 10, the program will perform subroutine 1. Input of the number 1 will cause subroutine 2 to be executed. Remarks ------- A subroutine must always be terminated by a :doc:`return` statement. Program execution then continues from the statement immediately after the GOSUB. GOSUB always requires a line number as an argument.