Table of Contents

DMKVSP Abstract

Statistics

Type ASSEMBLE
Source Lines : 2,712
Fixes Applied : 20
Most Recent Version : Friday, February 2, 1979
Last Fix ID : [HRC106DK]

Synopsis

Module

       DMKVSP

Function

       TO HANDLE THE SIMULATION OF ALL USER SIO'S TO A VIRTUAL UNIT
       RECORD DEVICE (CARD READER, PUNCH, PRINTER, OR PSEUDO
       TIMER) THAT IS SPOOLED RATHER THAN DEDICATED.  ALSO, TO
       HANDLE CONTROL PROGRAM REQUESTS THAT WISH TO PRINT ON THE
       USERS VIRTUAL PRINTER

Attributes

       REENTRANT, RESIDENT, ENTERED VIA GOTO FROM DMKVIOEX

Operation

       1. IF THE DEVICE IS CP BUSY (VDEVSVC=1): BAL TO
          STKCPBLK ROUTINE TO BUILD AND STACK A CPEXBLOK
          ON VSPSTK ANCHOR CHAIN TO DELAY THE REQUEST.
          WHEN THE CPEXBLOK IS UNSTACKED CONTROL WILL BE
          GIVEN TO ROUTINE AT LABEL RETCPEX.
          MARK THE VIRTUAL DEVICE AND SUBCHANNEL BUSY, CLEAR THE
          CSW AND SAVE THE STORAGE KEY; THEN, IF THE SIO IS TO
          PSEUDO TIMER DEVICE, GO HANDLE THAT CASE; OTHERWISE,
          CONTINUE

       2. FOR SIO'S TO VIRTUAL READERS, PRINTERS AND PUNCHES, TEST
          TO SEE IF A FILE IS ALREADY OPEN ON THE DEVICE; IF ONE IS
          OPEN, BRANCH TO HANDLE THE PARTICULAR DEVICE TYPE,
          OTHERWISE, GO OPEN THE FILE.

       3. IF A FILE IS SUCCESFULLY OPENED, CONTINUE PROCESSING FOR
          THE GIVEN DEVICE TYPE; OTHERWISE RETURN AN ERROR CON-
          DITION TO THE USER

Calls to Other Routines

       DMKPGTSG - TO OBTAIN DASD PAGE BUFFER SPACE
       DMKRPAGT - TO READ A PAGE BUFFER INTO VIRTUAL MEMORY
       DMKRPAPT - WRITE A BUFFER FROM VIRTUAL MEMORY TO DASD
       DMKSCNVD - TO GET FULL VIRTUAL DEVICE ADDRESS
       DMKSCNVU - TO LOCATE THE VCUBLOK AND VCHBLOK IN ORDER TO POST
                  ANY PENDING INTERRUPT AFTER INTERPRETATION IS COM-
                  PLETED
       DMKSPLOV - TO OPEN A NEW DASD OUTPUT SPOOL FILE
       DMKSPLCV - TO CLOSE A NEW DASD OUTPUT SPOOL FILE
       DMKSPLDL - TO PURGE A PARTIALLY COMPLETE FILE
       DMKSTKCP - TO QUEUE A CP EXEC BLOK
       DMKCVTBH - CONVERT DEVICE ADDRESS FOR ERROR MESSAGES
       DMKTMRPT - TO GET USER'S TOTAL PROBLEM TIME USED
       DMKERMSG - TO WRITE ERROR MESSAGES
       DMKPGTVR - TO RELEASE VIRTUAL BUFFER
       DMKPGTVG - TO GET A VIRTUAL BUFFER
       DMKPSASC - CHECK IF CCW'S ARE WRITTING INTO A SHARED PAGE
       DMKPSACC - TO TEST IF A SHARED PAGE WAS CHANGED BY RUNUSER
       DMKVMAPS - TO UNSHARE A NAMED SYSTEM FROM RUNUSER
       DMKFREE, DMKFRET, DMKQCNWT, AND DMKCVTDT FOR THE USUAL REASONS
       DMKCKSPL - CHECKPOINT THE SFBLOK