The POP PROC instruction provides you with a fast getaway, if you ever find yourself in need of escape. Try this:
E> ESCAPE
Procedure ESCAPE
For PRISON=1 To 1000000000
If PRISON=10 Then Pop Proc
Print "I am abandoned."
Next PRISON
End Proc
Print "I'm free!"
ON BREAK PROC
structure: jump to a procedure when break in program
On Break Proc NAME
A jump can also be made to a specified procedure when the program is interrupted. For example:
E> On Break Proc BROKEN
Do
Print "Unbroken" : Wait 50
Loop
Procedure BROKEN
Print "I am the procedure"
End Proc
Local and global variables
All of the variables that are defined inside a procedure work completely separately
from any other variables in your programs. We call these variables "local" to the procedure. All
local variables are automatically discarded after the procedure has finished executing, so that
in the following example the same value of 1 will always be printed, no matter how many times it
is called:
X> Procedure PLUS
A=A+1 : Print A
End Proc
All the variables OUTSIDE of procedures are known as "global" variables, and they are not affected by any instructions inside a procedure. So it is perfectly possible to have the same variable name referring to different variables, depending on whether or not they are local or global.
When the next example is run, it can be seen that the values given to the global variables are different to those of the local variables, even though they have the same name.