GO B
Transfers control to the statement following the last M (mark) command executed.
Syntax
GO B
G B
Operation
The GO B command is used in conjunction with the M (mark) command.
The GO B command causes control to be transferred immediately to the M command last executed by the Proc processor.
The last M command executed may not be the last that occurs in the Proc. GO B goes to the last executed M command, no matter where it is located.
The GO B command is the fastest executing of all Proc branch commands.
If a 'mark' has not previously been executed, the Proc is exited and an error message is displayed:
[268] THE DESTINATION OF THE PROC "GO" STATEMENT: G B, CANNOT BE FOUND
Example 1
001 PQN
.
.
020 M
021 GO 30
022 M
023 ONAME?+
024 30 OSTATE?+
.
.
033 GO B
In this example, the GO B command at line 33 transfers control backward to line 20, which is the last 'mark' executed, not the last mark that occurs in the Proc. Program execution continues from there.
Example 2
001 PQN . . 020 MV #1 "SELECT ARDV WITH *A3" 021 STON 022 MV #1 "PQ-SELECT 1" 023 P 024 M 025 MV %3 !1 026 IF # %3 GO F 027 T "'",%3,"' meets criterion." 028 GO B 029 M (next select, and so forth)
In this example, the GO B command on line 28 and the M on line 24 form a loop that with the IF command on line 26 becomes a conditional loop. The loop is exited when select register 1 contains no more values.