USER AND TRANSIENT PROGRAM AREAS
Two areas bold programs that are loaded from disk. These areas are
called the user program area and the transient program area. (See Pigure 27 for a description of CMS storage usage.)
The user program area starts at location X'20000' and extends upward
to the loader tables. Generally, all user programs and certain syste. commands (sucb as EDIT, and COPYFILE) are executed in the user program
area. Since only one program can be executing in the user program area
at anyone time, it is impossible (without unpredictable results) for
one program being executed in the user program area to invoke, by means of SVC 202, a module tbat is also intended to be executed in the user
program area.
The transient program area is two pages long, extending from locaticn X'EOOO' to location X'FFFF'. It provides an area for system commands
tbat may also be invoked from the user program area by means of an SVC 202 call. When a transient module is called by an SVC, it is normally
executed with the PSW system mask disabled for IIO and external
interrupts.
The transient program area is also used to handle certain OS macro
simulation SVC calls. OS SVC calls are handled by the as simulation
routines located either in the CMSSEG discontiguous shared segment or in
the user program area, as close to the loader tables as possible. If
DMSITS cannot find the address of a supported as SVC handling routine.
then it loads the file DMSSVT MODULE into the transient area, and lets
that routine handle the SVC. A program being executed in the transient program area may not invoke
another program intended for execution in the transient program area.
including OS macro simulation SVC calls that are handled by For
example, a program being executed in the transient program area may not
invoke the RENAME command. In it may not invoke the as macro iTO, which generates an SVC 35, which is handled by DMSSVT. DMSITS starts the programs to be executed in the user program area
enabled for all interrupts but starts the programs to be executed in the
transient program area disabled for all interrupts. The individual
program may have to use the SSM (Set System Mask) instruction to change
the current status of its system mask. Part 3. Conversational Monitor System (CMS) 263
CALLED ROUTINE START-UP TABLE
Figures 29 and 30 show how the PSW and registers are set up when the
called routine is entered. I ------------------------------------------------------------, I "Called" Type System Mask Storage Key Problem Bit 1-------- ISVC 202 or 203 I - Nucleus I resident , ISVC 202 or 203 I - Transient I area MODULE SVC 202 or 203 User area User-handled as - DOS/VS Nucleus
resident
as - DOS/VS Transient
area module
Disabled System Off Disabled User Off Enabled User Off Enabled User Off Disabled system Off Disabled system Off Figure 29. PSi Fields When Called Routine Starts
Registers Registers Register RegisterlRegister
Type o -1 2 -11 12 13 I 14
----- I SVC 202 Same as Unpre- Address User IReturn or 203 caller dictable of save I address
called area I to
routine I DftSITS I Other Same as Same as Address User IReturn caller caller of save I address
caller area I to I tftSITS Figure 30. Register Contents When Called Routine Starts RETURNING TO THE CALLING ROUTINE ,
Register I 15 I I Address I of I called I routinel I Same as I caller , I I .J When the called routine finishes processing, control is returned to DMSITS, which in turn returns control to the calling routine.
The return
was saved
is accomplished by loading
at the time DMSITS was
the original SVC old PSW (which
first entered), after possibly
264 IBM VM/370 System programmer's Guide
Previous Page Next Page