ENDCAL - call function at end of another routine.

Usage:

endcal   FUNC,MOD

Where:

FUNC
is the name of the function you want to call.
MOD
are any modifiers required to find the address of the function you want to call.

Description:

Suppose function A calls B and that the last action B performs is to call another function C. B can use "endcal" to call C. "endcal" sets things up so that C returns to A instead of B. "endcal" can only be used when routine C does not need the NARGS value from B. (If C tries to get a NARGS value, it will get the NARGS that A used when calling B.)

The code generated by "endcal" is

inhib:  .inhibit  1  #inhib is local to "endcal"
        backup       #unbump stack
FUNC:   .symref      #if necessary
        eppr      p.entr,FUNC,MOD
        callop       #perform call operation
        .inhibit  inhib  #restore inhibit status

The "backup" and "callop" macros are described in separate explain files.

Copyright © 1996, Thinkage Ltd.