DMKSPLCV ---oueue closed virtual printer or punch spool file to the real spool
output device, or transfer the file to another user's virtual reader. Ilso update the SFBLOK with number of copies printed/punched,
distribution code, hold status, and file owner ID. If VSPXBLOK with TIG data exists for the spool device, copy the TIG data to the TIG record in the first spool file data buffer. TX!!!! If a "spooled to" file, queue to the end of the reader file chain.
Otherwise, chain the SFBLOK to the designated real spool printer or
punch. DMKCKSPL ---checkpoint the new spool file block. DMKSPL, For a "spooled to" file find a virtual reader with the proper class
and in the ready state with no active file, and no pending
interrupts. Then build an IOBLOK with IOBIRI of DMKVIOIN. DMKSTKIO Stack the IOBLOK. 12 MK SPl!, Exit to DMKVSP. DMKSPL, TSTHQl!12 For not "spooled to" files and not in user or system hold, find
printer or punch with the proper class. Then build an IOBLOK with IOBIRI of DMKRSPEX. DMKSTKIO ---Stack the IOBLOK. DMKSPL, TSTHOLD to-DMiisp. ]MKVSP, OP]!!!]! Entry to open a spool input file. If VDEVSPL=O the file needs to be
opened. Build VSPLCTL block and a work buffer. Search the system reader file chain per PSI linkage lRSPRD for a file with appropriate
user and class. 12 MK V.§.f, On file-found condition, place first DISD page address in VSPLCTL, VSPDP1GE. Obtain a virtual buffer and retain its address in the VSPLCTL block. DMKVSP, REIDER for validity, move and expand the data back to its
original size and the data is moved from the work buffer to user's
virtual storage. DMKVSP, RD!£QQ!! On EOF, set SFBEOF bit in SFBLOK and return to caller. DMKYSPCR ---per-CiOSE operation requested via console command and the device is
busy, initiate a delayed close by constructing and stacking the CPEXBLOK for the CLOSE. DMKVSP, For normal end of file and VDEVSFLG indicates continuous read. OPE!!£Q!! Locate the next file and continue reading. CP Method of Operation and Program Organization 1-211
For last file, post end status in RDEVBLOK .Ql1 KVSf, For HOLD status file (VDEVSFLG=VDEVHOLD), call DMKCKSPL. DMKCKSPL ---Checkpoints the file. DMKVSP, FILECLR ----Unchain-the-file (except hold files) from the reader queue and call DMKSPLDL. DMKSPLDL ---oelete the file. DMKVSP, DVICECLR call DMKRPAGT. DMKRPAGT ---aeleases the storage page. DMKPGTVR ---aeleases the virtual buffer. DMKFRET ---aeleases storage for the work buffer and VSPLCTL block. SPOOLING TO THE REAL PRINTER/pUNCH OUTPUT DEVICE DMKRSPEX from the dispatcher when an IOBLOK is un stacked with and
interrupted for spooling unit record device. IOBRIDD points to the RDEVBLOK RDEVTYPC input or output class. DMKRSP, RSPLOUT an available spool device (not active), Get storage for a work buffer and build a RSPLCTL block and link it
to RDEVBLOK. DMKRSP, PRNXTFIL -- search-prInter and punch SFBLOK chains for corresponding device and
class. On a found condition, unchain the block, put its address in RSPSFBLK. The FLASH name specified in the SPOOL command, if FLASH is
specified, must match the flash overlay name for a 3800 printer. DMKSEPSP provides separators for output pages or cards. DMKTCSET device is a 3800 printer, call this module to set it up Bring first spool data DASD page to the work buffer and convert ccw
addresses to real device addresses Start the spool device .QMKRSP, Repeat the process until done .QMKRSf, Reprocess and reaccess the buffer, if multiple copies are specified. DMKCKSPL ---Checkpoint records the change to COpy count. DMKSPLDL ---nelete the file on completion (unless HOLD specified). If the device
is a 3800 printer, check for delayed purge Locate the next spool file to process. Processing for the device is complete as there are no more SFBLOK, for this device or the device was drained. DMKFRET ---aelease work area and completed IOBLOK storage. DMKDSPCH the dispatcher.
1-218 IBM VM/370 System Logic and Problem Determination--Volume 1
Previous Page Next Page