ORG 0h
LOOP: LD SP,M1 ; Setup stack
RET ; Run at the stack
PROC1: POP HL ; Get parameters
POP BC ; for procedure
...
RET ; Next procedure
PROC5: CP A,20h ; Check if a space
RET Z ; Continue on stack if space
LD SP,M2 ; Else setup new stack
RET ; And run at the new stack
M1: DW proc1,v1,v2,proc1,v1,v3,proc5,...,loop
M2: DW proc1,v1,v8,...
A sort of high-level code was written in the stack. And the code only contained subroutines and pop's to get the parameters. Beginning was done by return.
The stack calculated by hand was an efficient way to make high-efficient programming and it was more effiecient than using call's, load and push, etc as in typical systems with memory.