CALL is a non-motion instruction that causes the robot to halt progression of its current running program, throw all of the currently-in-use data about that program into the processor's stack, and start another program.
Call instructions are special in that they're intended to return once they have been completed. Once the END instruction is reached within the called program, the program will end, all the stored information in the stack will be pulled back out, and the original program will continue with the line immediately following the CALL instruction.
For situations where certain instructions are repetitive or may be seen in many programs, small operation programs may be made for the purpose of being called in larger programs.
When placing a CALL instruction, you are given a list of all available programs to choose from.
RO[4:Vacuum] = OFF
RO[4:Vacuum] = ON
In this example the program has three lines. The first line turns the vacuum system off to let go of a part on the robot's tool. Since there may be a delay in response, a wait instruction is added to ensure the vacuum tool has had a chance to let go of the object. The third line returns the vacuum to its prior state, ready to pick up a new object.
The called program must eventually reach "END" and not simply CALL the original, as the processor's stack will simply continue filling up and a STACK OVERFLOW error may result.
The END instruction is included at the bottom of teach pendant programs, but additional instances can be added through the [INST] - CALL - END option.