Caution: Multiple write access under eMS can produce unpredictable results. Problem programs that execute in CMS tape in any record and block size; the
variable, or undefined.
Program Development
can create files on unlabeled
record format can be fixed, Conversational Monitor System includes commands to create and
compile source programs, to modify and correct source programs, to build
test files, to execute test programs and to debug from the terminal.
The commands of CMS are especially useful for as and DOS/VS program
development, but also may be used in combination with other operating
systems to provide a virtual machine program development tool. CMS utilizes the as and DOS/VS compilers via interface modules; the
compilers themselves normally are not changed. In order to provide
suitable interfaces, CMS includes a certain degree of as and DOS/iS simulation. The sequential, direct, and partitioned access methods are
logically simulated; the data records are physically kept in the chained 800-byte blocks that are standard to CMS, and are processed internally
to simulate as data set characteristics. CMS supports VSAM catalogs,
data spaces, and files on as and DOS disks using the DOS/VS Access
Method Services. as Supervisor Call functions such as GETMAIN/FREEMAIN and TIME are simulated. The simulation restrictions concerning what
types of as object programs can be executed under CMS are primarily
related to the as/pcP, MFT, and MiT Indexed Sequential Access Method (ISAM) and the telecommunications access methods, while functions
related to multitasking in as and DOS/VS are ignored by CMS. For more
information, see "aS Macro Simulation under CMS" and "DOS/VS Support under CMS." Part 3. Conversational Monitor System (CMS) 235
Interrupt Handling In eMS CMS receives virtual SVC, input/output, program, machine, and external
interruptions and passes control to the appropriate handling program. SVC Interruptions
The Conversational Monitor System is SVC (supervisor call) driven. SVC interruptions 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 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).
INTERNAL LINKAGE SVCS ihen DMSITS receives control as a result of an internal linkage SVC (202 or 203), it saves the contents of the general registers, floating-paint
registers, and the SVC old PSi, establishes the normal and error return
addresses, and passes control 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 SiC 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 calling program. OTHER SVCs 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 functicn
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.
236 IBM VM/370 System Programmer's Guide
Previous Page Next Page