Implementing Stack-based Call and Return

Here are two routines that can be used to implement stack-based subroutines.
One register will be needed to point to the call routine, and another to the
ret routine. Register RF is used by both routines for temporary storage.
Both routines assume R[2] is pointing to a stack.

Due to the short branches in each routine, each routine must not cross
page boundaries.