Type ASSEMBLE
Source Lines : 643
Fixes Applied : 6
Most Recent Version : Thursday, December 7, 1978
Last Fix ID : [HRC106DK]
Module
DMKCFHSV
Function
TO SAVE A PAGE FORM VERSION OF A SYSTEM'S VIRTUAL STORAGE SPAC INCLUDING REGISTERS AND PSW AS THEY CURRENTLY EXIST. THE NAME OF THE SYSTEM AND THE DASD LOCATION AT WHICH IT IS TO BE SAVED IS DEFINED IN THE CP MODULE DMKSNT.
Attributes
REENTRANT, PAGEABLE, CALLED VIA SVC
Operation
1. CALL DMKSCNFD TO GET THE SYSTEM-NAME ARGUMENT. IF NONE IS FOUND, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCFH026E. 2. TRANS IN AND LOCK THE SYSTBL. THEN SCAN THE SYSTBL TO FIND THE ENTRY FOR THE SPECIFIED NAME. IF NONE IS FOUND, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCFH044E. 3. IF THE VIRTUALSTORAGE IS NOT LARGE ENOUGH TO CONTAIN THE NAMED SYSTEM, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCFH170E. 4. CALL DMKSCNVS TO FIND THE VOLUME CONTAINING THE VIRTUAL SYSRES. IF NOT FOUND, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCFH171E. 5. CALL DMKSCNVU TO GET THE VIRTUAL DEVICE BLOKS FOR THE VIRTUAL SYSRES. IF NOT FOUND, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCFH173E. IF HAVE THE DEVICE BLOKS, BUT THE MINI DISK IS NOT AT THE CYLINDER SPECIFIED IN THE SYSTBL, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCFH172E. 6. CALL DMKSCNVS TO FIND THE VOLUME THAT IS TO CONTAIN THE SAVED SYSTEM. IF NOT FOUND, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCFH171E. IF THIS VOLUME IS NOT A CP OWNED VOLUME, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCFH179E. IF ALL OK, CHECK FOR ANY PENDING INTERRUPTS IN THE VIRTUAL MACHINE. IF NONE ARE FOUND, GO TO STEP 9. 7. CALL DMKQCNWT TO SEND THE INTERRUPT PENDING MESSAGE. THEN CALL DMKQCNRD TO READ THE REPLY. 8. IF THE REPLY WAS YES, CONTINUE - ELSE GO TO STEP 13. 9. SET UP THE NEXT GROUP OF PAGES (SPECIFIED IN THE SYSTBL) TO BE SAVED. CALL DMKFREE TO OBTAIN FREE STORAGE FOR A STORAGE KEY BUFFER. 10.TRANS IN THE NEXT PAGE TO BE SAVED. CALL DMKRPAPT TO WRITE THE PAGE TO THE SYSVOL. SAVE THE STORAGE KEYS FOR THIS PAGE. 11.IF ALL THE PAGES IN THIS GROUP HAVE BEEN PROCESSED, GO TO STEP 12. ELSE - BUMP TO THE NEXT PAGE AND GO BACK TO STEP 10. 12.IF THERE ARE MORE PAGE GROUPS TO PROCESS, GO BACK TO STEP 9. IF NOT, TRANS IN USER PAGE ZERO. STORE THE VIRTUAL PSW,REGISTERS, AND KEYS IN THIS PAGE. THEN CALL DMKRPAPT TO WRITE THIS PAGE OUT TO THE SYSVOL. 13.CALL DMKPTRUL TO UNLOCK THE SYSTBL. IF THE SAVE WAS NOT COMPLETED DUE TO AN ERROR - EXIT. IF IT WAS A GOOD SAVE, CALL DMKQCNWT TO SEND THE 'SYSTEM SAVED' MESSAGE AND EXIT.
Calls to Other Routines
DMKCVTBH - TO CONVERT BINARY TO HEX DMKERMSG - TO SEND ERROR MESSAGES TO TERMINAL DMKFREE - TO OBATIN BUFFER SPACE FOR STORAGE KEYS DMKFRET - TO RETURN FREE STORAGE USED FOR BUFFER SPACE DMKPTRAN - LOCATE AND FETCH A PAGE OF VIRTUAL STORAGE DMKPTRLK - TO LOCK A PAGE IN CORE DMKPTRUL - TO UNLOCK A PAGE DMKQCNRD - TO READ RESPONSE FROM A CONSOLE DMKQCNWT - TO WRITE A MESSAGE TO CONSOLE DMKRPAGT - TO GET A PAGE FROM BACKING DEVICE DMKRPAPT - TO WRITE A PAGE TO BACKING DEVICE DMKSCNFD - LOCATE THE NEXT ARGUMENT ON THE COMMAND LINE DMKSCNVS - TO FIND A VOLUME DMKSCNVU - TO FIND A VIRTUAL UNIT