Rockwell Automation 57C610 Enhanced Basic Language, AutoMax User Manual
Page 51

6Ć11
When BASIC executes a GOSUB, it stores the return location of the
statement following a GOSUB.
Each time a GOSUB is executed, BASIC stores another location.
Each time a RETURN is executed,BASIC retrieves the last location
and transfers control to it. In this way, no matter how many
subroutines there are or how many times they are called, BASIC
always knows where to transfer control.
100 IF MOTOR_SPEED% 110 GOSUB 200 120... 130... 140... . . . 200 ! THIS IS A COMMENT 210 MOTOR_SPEED%=MOTOR_SPEED%+(GAIN%/2) . . . 290 RETURN The ON GOSUB statement has the following format: ON integer_expression GOSUB line number_1,...,line number_N where: integer_expression = any arithmetic expression that results in an integer value line_number_1,..., line_number_N = line numbers to which control is transferred depending on the evaluated expression Line numbers always correspond to the value of the expression. The value 1 transfers control to the first line number listed. The value 2 transfers control to the second line number listed, etc. There is no corresponding line number for zero (0). Fractional numbers are truncated to an integer value. If no corresponding line number exists for the result of the integer expression, control falls to the next sequential statement after the ON GOSUB. When a RETURN is executed from one of the subroutines referenced in the ON GOSUB, it returns to the next statement after the ON GOSUB. 20 ON (A% + B% + C%) GOSUB 103,220,475,650 30 ON GAIN% GOSUB 200,300,400,500
The following are valid ON GOSUB statements: