13–2 Programming Techniques
Calling Subroutines (XEQ, RTN)
A subroutine is a routine that is called from (executed by) another routine and
returns to that same routine when the subroutine is finished. The subroutine must
start with a LBL and end with a RTN. A subroutine is itself a routine, and it can call
other subroutines.
XEQ must branch to a label (LBL) for the subroutine. (It cannot branch to a line
number.)
At the very next RTN encountered, program execution returns to the line after
the originating XEQ.
For example, routine Q in the "Normal and Inverse–Normal Distributions"
program in chapter 16 is a subroutine (to calculate
Q(x)) that is called from routine
D by line
%
. Routine Q ends with a RTN instruction that sends
program execution back to routine D (to store and display the result) at line D0004.
See the flow diagrams below.
The flow diagrams in this chapter use this notation:
!
M
Program execution branches from this line to
the line marked
M
("from 1").
M
Program execution branches from a line
marked
M
("to 1") to this line.
Starts here.
"! %
%
M
Calls subroutine Q.
!
N
Returns here.
#$
!
Starts D again.
M
Starts subroutine.
.
.
.
!
N
Returns to routine D.