202 call. For example, a program in the user program area may invoke
the RENAME command, because this command is loaded into the transient
program area.
The transient program area also handles certain as macro simulation SVC calls. If DMSITS cannot find the address of a supported as macro
simulation SVC handling routine, it calls LOADMOD to load the file DMSSVT module into the transient area, and lets that routine handle the SVC. A program in the transient program area may not invoke another
program intended to execute in the transient program area, including os
macro simulation SVC calls that are handled by DMSSVT. Thus, for
example, a program in the transient program area may not invoke the RENAME command. In addition, it may not invoke the as macro iTO, which
generates an svc 35, which is handled by nMSSVT. There is one further functional difference between the use of the two
program areas. DMSITS starts a program in the user program area so
that it is enabled for all interruptions. It starts a program in the
transient program area so that it is disabled for all interruptions.
Thus, the individual program may have to use the SSM (Set System Mask) instruction to change the current status of its system mask.
CALLED ROUTINE START-UP TABLE
Figures 10 and 11 show how the PSi and registers are set up when the
called routine is entered.
r I System Storage Problell I Called Type Mask Key Bit SVC 202 or 203 I Disabled System Off - Nuc resident I SVC 202 or 203 Disabled User Off - Transient
area MODULE SVC 202 or 203 Enabled User Off - User Area U ser-handled Enabled User Off as -Nuc res Disabled System Off as -in DMSSVT Disabled Systell Off Figure 10. PSi Fields when Called Routine is Started RETURNING TO THE CALLER ihen the called routine is finished processing it returns control to DMSITS, which then must return control to the caller. RETURN LOCATION: The return is effected by loading the original SVC old psW--cwhich-was saved at the time DMSITS was first entered), after CMS Method of Operation and Program Organization 2-69
Type SVC 202 or 203 Other o -1 Same as
caller Same as
caller
2 -11 I I I IUnpredict-1 lable I I I I I Same as
caller
12 13 14
Address User Return
of save address
called area to
routine DftSITS Address User Return
of save address
called area to
routine DftSITS Figure 11. Register Contents when Called Routine is Started 15
Address
of
called
routine Same as
caller possibly modifying the address field. How the address field is modified depends upon the type of SVC call, and on whether the called routine
indicated an error return address.
For SVC 202 and 203, the called routine indicates a normal return by means of a zero returned in register and an error return by means of
a nonzero in register 15. If the called routine indicates a normal return, then DftSITS makes a normal return to the caller. If the called
routine indicates an error return, then DftSITS returns to the caller's
error return address, if one was specified, and abnormally terminates if
none was specified.
For SVC 202 not followed by "DC AL4(address}ft, a normal return is made to the instruction following the SVC instruction, and an error
return causes an abnormal termination. For SlC 202 followed by nDC lL4 (address)", a normal return is made to the instruction following the
DC, and an error return is made to the address specified in the DC. In
either case, register 15 contains the return code passed by the called
routine.
For SVC 203 with a positive halfword code, a normal return is made to the instruction following the halfword code, and an error return
causes an ahnormal termination. For SVC 203 with a negative halfword
code, both normal and error returns are made to the instruction
following the halfword code. In any case, register 15 contains the
return code passed hack by the called routine.
For OS macro simulation SVC calls, and for user-handled SVC calls, no
error return is recognized by DftSITS. As a result, DftSITS always
returns to the caller by loading the SVC old PSi that was saved when DMSITS was first entered. Upon entry to DMSITS, all registers are saved as
they were when the SVC instruction was first executed. Upon exiting from DMSITS, all registers are restored to the values that were saved at entry_ The exception to this is register
return to the caller, register 15
register 15 when the called routine
completed processing. SYSTEM AND USER SAVE AREA FORMATS 15 for SVC 202 and 203. Upon contains the value that was in
returned to DftSITS after it had
Whenever an SVC call is made, DMSITS allocates two save areas for that
particular SVC call. 2-70 IBM VM/370 System Logic and Program 2
Previous Page Next Page