Saving Return Address on User Stack

I've read the article that there is no support in the C167 KEIL compiler. Hence, I've tried to use MACRO assembler as follows.

*DEFINE ( calls(Rx, Ry) ) LOCAL RETURN_LBL (
MOV R13, #SOF %RETURN_LBL
MOV [-R0], R13
MOV #%Rx, #SEG %RETURN_LBL
MOV [-R0], R13
JMPS SEG #%Rx, SOF #%Ry
RETURN_LBL:
)

I have no translate error. However, it doesn't work. Is it possible to define an operation to another set of operations?

More questions in this forum