Wahrscheinlich über einen Software-Stack.
Geht ungefähr so:
Beim Unterprogramm-Aufruf wird die momentane Adresse (die der Compiler ja kennt) in einem Bereich des RAM abgelegt. Eine andere RAM-Adresse bildet den Index in diesen Bereich und wird um eins erhöht. Jetzt erfolgt der Unterprogramm-Aufruf, aber nicht per CALL sondern per GOTO.

Wenn das Unterprogramm zurückkehren soll, holt es die Adresse aus dem RAM-Bereich (nachdem der Index um 1 verringert wurde) und schreibt diese Adresse in PCL und PCH (den Programm-Zähler). Die Stack-Tiefe ist so nur durch das RAM begrenzt.

Nachteile:
- Ist natürlich langsamer. Vor allem, wenn man auch noch auf Stack-Overflow und Underflow testen will.
- Der Stack ist nicht mehr geschützt. Ein wildgewordener Programmteil kann irgendwelche Sachen in den Stack-Bereich oder den Index-Pointer schreiben und die zurückkehrenden Unterprogramme landen im Nirvana.