Type ASSEMBLE
Source Lines : 2,712
Fixes Applied : 20
Most Recent Version : Friday, February 2, 1979
Last Fix ID : [HRC106DK]
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