conflicting characters are always interpreted as ASCII control
characters. In the second lIode, which may be called machine-only, only
.achine control characters are recognized, and the two conflicting
characters are treated as machine.
The DMSPIO function uses a bit in the plist to indicate which of the
two modes is in effect for printing.
The PRINTL macro always uses ASA control character or machine control
character mode.
The PRINT command with the CC option always runs in ASCII control
character or machine control character mode.
os simulation output, which is used, for example, by the "OVEFILE command, uses the RECFM field in the DCB or in the FILEDEF command to
determine which mode is to be used. If FA, VA, or UA is specified, then ASCII control character or machine control character mode is used. If FM, VM, or UM is specified, then machine-only mode is used. If no
control character specification is included with the RECFM, then it is
assumed that thp linp bpgins with a valid data character, rather than with a control character, and single spacing is always usefi. Handling Interruptions
Figure 9 lists the modules that process interruptions for CMS. CMS modules are described briefly in Module Description." SVC 9
interruption processing is described in "Maintaining an Interactive Console Environment."
Disk I/O in eMS Files residing on disk are read and written using DMSDIO. DMSDIO has
two entry points: DMSDIOR, which is entered for a read I/O operation,
and DMSDIOW, which is entered for a write operation.
The actual disk I/O operation is performed using the DIAGNOSE code 18
instruction. A return code of 0 from CP indicates a successful
completion of the I/O operation. If the I/O is not successful, CP performs error recording, retry, recovery, or AEEND procedures for the
virtual machine. READ OR WRITE DISK I/O Initializes the ccw to perform read operations. Obtains the address of the disk from which to read or write. Determines the size of the record to be read or written. Gets enough storage to contain the record if the request is for
a record longer than 800 bytes. DMSDIO: Reads records continually until all records for the file have been-read. 2-98 IBM VM/370 System Logic and Program Determination--Volume 2
Returns the buffer to free storage if the record was longer than 800 bytes. Returns to the caller.
Managing eMS Storage DMSFRE handles requests for CMS free storage. The sections of CMS storage have the following uses: DMSNUC (X'OOOOO' to approximately X'03000') - This is
constant area. It contains pointers, flags, and
maintained by the various system routines.
the nucleus
other data - LOw-core DMSFREE free storage area X'03000' to X'OEOOO') - This area is a free storage area, from which requests
from DMSFREE are allocated. The top part of this area contains the
file directory for the system disk (SSTAT). If there is enough room (as there will be in most cases), the FREETAB table also occupies
this area, just below the SSTAT. Transient program area (X' OEOOO' to X 110000 ') Because it is not
essential to keep all nucleus functions resident in storage all the
time, some of them are made "transient." This means that when they
are needed, they are loaded from the disk into the transient program
area. Such programs may not be longer than two pages, because that
is the size of the transient area.. (A page is 4096 bytes of virtual
storage. ) CMS nucleus (X'10000' to X'20000') - Segment 1 of storage contains
the reentrant code for the eMS nucleus routines. In shared CMS systems, this is the protected segment. That is, this segment must
consist only of reentrant code, and may not be modified under any
circumstances. This fact implies certain system restrictions for
functions which require that storage be mOdified, such as the fact
that DEBUG breakpoints or CP ADSTOP commands cannot te placed in this
segment, in a saved system. User program area (1'20000' to loader tableS) - User programs are
loaded into this area by the LOAD command. Storage allocated by means of the GETMAIN macro instruction is taken from this area,
starting from the high address of the user program. In addition,
this storage area can be allocated from the top down by DMSFREE, if
not enough storage is available in the low-core DMSFREE storage area.
Thus, the effective size of the user program area is reduced by the
amount of free storage which has been allocated from it by DMSFREE. Loader tables (top pages of storage) -The top of storage is occupied
by the loader tables, which are required by the CMS loader. These
tables indicate which modules are currently loaded in the user
program area (and the transient program area after a LOAD command).
The size of the loader tables can be varied by the SET LDRTBLS command. TYPES OF ALLOCATED FREE STORAGE Free storage can be allocated by means of the GETMAIN or DMSFREE macros. Storage allocated by means of the GETMAIN macro is taken fro. the
user program area, beginning with the high address of the user program. CMS Method of Operation and Program Organization 2-99
Previous Page Next Page