h6. [[OS SWI Calls]] h6(. » OS_CallASWIR12 h2. OS_CallASWIR12 h5. (SWI &71) |_<^{width:4em}. Entry | | |<^. R0–R9 |<^. As required for target SWI | |<^. R12 |<^. Target SWI number | |_<^{width:4em}. Exit | | |<^. R0–R9 |<^. As defined for target SWI | |<^. R12 |<^. Preserved | h4. Use The purpose of this call, is to call a run-time determined SWI. h4. Notes This call is identical to [[OS_CallASWI]], except that it uses R12 to specify the target SWI. This may be more convenient in some environments. In particular under APCS-R, R10 is the stack limit pointer, which must be preserved at all times. If a SWI called using [[OS_CallASWI]] were to abort or generate an error the run-time library would usually examine R10 and decide that it had no stack to handle the abort or error. Therefore APCS-R libraries must use OS_CallASWIR12 (R12 being a scratch register under APCS-R). The CallASWI module provides this functionality for versions of RISC OS 3.70 or earlier. h4. See also * [[OS_BreakPt]] * [[OS_CallASWI]] * [[OS_CallAVector]]