A SERVICE OF

logo

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.