DMSPRT: Determines the record size to be printed and sets up an appropriate buffer area via a call to DMSFRE. Obtains storage space to be used as a buffer. DMSPRT: Determines whether the file to be printed is a library member or an-input file. Reads a record; continues reading until the buffer is filled. When the buffer is filled* calls DMSPIO to issue the SIO instruction to
begin the print operation. Issues the print SIO instruction and then calls DMSIOW to wait
until the the 1/0 operation completes. DMSIOi: Sets the wa1t D1t for tne virtual printer device and load the I/O-old PSW from NUCON. This causes CMS to enter a wait state until the Ensures that the is for the printer. If not, the I/O old PSi is reloaded, returning CMS to a wait state. If the interrupt is
for the printer, DMSITI resets the WAIT bit in the I/O old PSi and loads
that PSi, returning control to DMSIOW. Places the symbolic name of the device in the last word of the PLIST and passes control to DMSPIO. Performs channel testing and handles errors. TIO instructions
and sense SIO instructions are issued during the test processing@ These
operations are synchronized using DMSIOi and DHSITI in the manner
described above. When the I/O completes successfully, control returns
to DMSPRT. DMSPRT: Determines whether all file records have been printed. If so, control returns to the caller. Otherwise, the address of the buffer is
updated and more print operations are performed. CMS supports the use of ASCII control characters and machine carriage
control characters for the printed output. Part of the CMS implementation depends upon the fact that the set of ASCII control
characters has almost nothing in common with the set of machine control
characters. There are two exceptions to this, the characters X'Cl' and
I'C3'. These two characters, when interpreted as ASCII control
characters, have the following meanings:
Cl Skip to channel 10 before print.
C3 = Skip to channel 12 before print.
The same characters, when interpreted as .achine control characters,
have the following meanings:
C1 Write, then skip to channel 8 after print.
C3 = Do not write, but skip to channel 8 immediately. In printing lines containing carriage control characters, CMS has the
capability of operating in two modes. In the first mode, which may be
called ASCII control characters or machine control characters of either
type are recognized and properly interpreted, except that the two CMS Method of Operation and program Organization 2-97
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
Previous Page Next Page