Showing changes from revision #3 to #4:
Added | Removed | Changed
Entry | |
---|---|
R0 | Pointer to error block |
R1 | “ABEX ” (&58454241) If Return code and error block provided |
R2 | Return code |
R3 | Pointer to module name |
Exit | |
---|---|
Never returns |
The purpose of this call is to pass control over to the most recent exit handler, and kill the module as pass by R3.
This SWI provides the same functionality as OS_Exit but in addition kills the module as passed by R3.
If R1 = <> “ABEX ”, and or 0 R0 \<= does R2 not \<= appear Sys$RCLimit, to be a valid error pointer, then Sys$ReturnCode is set to R2. 0.
If R1 = “ABEX ” ”, and 0 <= R2 is <= outside Sys$RCLimit, this range, then Sys$ReturnCode is still set to R2, R2. and a garbled error message issued (0 is used at the pointer to an error block). This is a very long lived OS bug.
If R1 = “ABEX” and R2 is outside this range, then Sys$ReturnCode is still set to R2, and the error pointer given in R0 is passed to OS_GenerateError. This has the effect of causing the Error Handler to be invoked, rather than the exit handler.