, eMS Abend Recovery
If no ABEND exit routine exists, or if the ABEND exit routine returns to eMS to
continue ABEND processing, DMSABN types out the abend message followed by
the line: CMS This line indicates to the user that the next command can be entered.
Now, there are two options available: Type in the DEBUG command. DMSABN passes control to DMSDBG to
make the facilities of DEBUG available. DEBUG's PSW and registers are as
they were at the time the recovery routine was invoked. In DEBUG mode, you
may alter the PSW or registers. Then, type GO to continue processing, or type
RETURN to return to DMSABN. DMSABN continues the abend recovery. Type in any command (other than DEBUG). DMSABN performs its abend
recovery function, and then passes control to DMSINT to execute the com­
mand that was typed in.
Introduction To CMS 311
Interrupt Handling In eMS SV C Interruptions
Internal Linkage SVCs Other SVCs CMS receives virtual SVC, input/output, program, machine, and external inter­
ruptions and passes control to the appropriate handling program.
The Conversational Monitor System is SVC (supervisor call) driven. SVC inter­
ruptions are handled by the DMSITS resident routines. Two types of SVCs are
processed by DMSITS: internal linkage SVC 202 and 203, and any other SVCs. The internal linkage SVC is issued by the command and function programs of the
system when they require the services of other CMS programs. (Commands
entered by the user from the terminal are converted to the internal linkage SVC by DMSINT). The OS SVCs are issued by the processing programs (for example, the
Assembler).
When DMSITS receives control as a result of an internal linkage SVC (202 or 203), it saves the contents of the general registers, floating-point registers, and the SVC old PSW, establishes the normal and error return addresses, and passes con­
trol to the specified routine. (The routine is specified by the first 8 bytes of the
parameter list whose address is passed in register 1 for SVC 202, or by a halfword
code following SVC 203.) For SVC 202, if the called program is not found in the internal function table of
nucleus (resident) routines, then DMSITS attempts to call in a module (a CMS file
with filetype MODULE) of this name via the LOADMOD command.
If the program was not found in the function table, nor was a module successfully
loaded, DMSITS returns an error code to the caller.
To return from the called program, DMSITS restores the calling program's
registers, and makes the appropriate normal or error return as defined by the call­
ing program.
The general approach·taken by DMSITS to process other SVCs supported under CMS is essentially the same as that taken for the internal linkage SVCs. However,
rather than passing control to a command or function program, as is the case with
the internal linkage SVC, DMSITS passes control to the appropriate routine. The SVC number determines the appropriate routine.
In handling non-CMS SVC calls, DMSITS refers first to a user-defined SVC table
(if one has been set up by the DMSHDS program). If the user-defined SVC table
is present, any SVC number (other than 202 or 203) is looked for in that table. If
it is found, control is transferred to the routine at the specified address.
If the SVC number is not found in the user-defined SVC table (or if the table is
nonexistent), DMSITS either transfers control to the CMSDOS shared segment (if SET DOS ON has been issued), or the standard system table (contained in DMSSVT) of OS calls is searched for that SVC number. If the SVC number is
found, control is transferred to the corresponding address in the usual manner. If
the SVC is not in either table, then the supervisor call is treated as an abend call.
312 VM/SP System Programmer's Guide
Previous Page Next Page