/ / Setexit and reset. / .globl setexi .globl reset sps: .blkw 1 / Save for `sp' r5s: .blkw 1 / Save for `r5' pcs: .blkw 1 / Save for `pc' / / These routines implement a limited / kind of non local transfer. / `Setexit' saves the stack depth in / a secret place and returns 0. / A call to `reset' makes the `setexit' / appear to return 1. / setexi: mov (sp),pcs mov sp,sps mov r5,r5s clr r0 return reset: mov sps,sp mov r5s,r5 mov pcs,(sp) mov $1,r0 return