Type ASSEMBLE
Source Lines : 736
Fixes Applied : 4
Most Recent Version : Thursday, December 14, 1978
Last Fix ID : [HRC013DK]
Module
DMKPRG
Function
TO PROVIDE THE PROPER HANDLING FOR VARIOUS TYPES OF PROGRAM INTERRUPTS WHICH MAY OCCUR.
Attributes
REUSEABLE, RESIDENT, FIRST-LEVEL INTERRUPT HANDLER
Operation
DMKPRGIN DETERMINES THE MODE OF THE MACHINE (PROBLEM OR SUPERVISOR STATE), AND THE CAUSE OF THE PROGRAM INTERRUPTION IF A PROGRAM INTERRUPT OCCURRED WITH THE MACHINE IN THE SUPERVISOR STATE, REGISTERS ARE STORED IN THE DMKDMPGR AREA, AND CONTROL IS TRANSFERRED TO DMKDMPDK TO DUMP THE MACHINE. IF THE INTERRUPT WAS CAUSED BY A PRIVILEGED OR INVALID OPERATION, DMKPRGIN TRANSFERS TO DMKPRVLG FOR SIMULATION. ANY PROGRAM INTERRUPT RECEIVED WHILE THE VIRTUAL MACHINE IS IN PROBLEM STATE IS REFLECTED TO THE VIRTUAL MACHINE. IF ANY PROGRAM INTERRUPT OCCURRS SUCH THAT THE OLD PSW ADDRESS, MINUS THE INSTRUCTION LENGTH CODE, EQUALS THE ADDRESS IN THE PROGRAM NEW PSW, A WARNING MESSAGE: DMKPRG453W CP ENTERED; PROGRAM INTERRUPT LOOP IS ISSUED, THE PSW'S ARE EXCHANGED AS IF THE INTERRUPT WERE TO BE REFLECTED, AND THE VIRTUAL MACHINE IS PLACED IN CP CONSOLE FUNCTION MODE VIA A CALL TO DMKCFMBK. A PAGE EXCEPTION INTERRUPT IS HANDLED VIA A CALL TO DMKPTRAN TO BRING IN THE REQUIRED VIRTUAL STORAGE PAGE. AN ADDRESSING EXCEPTION IS GENERATED IF THE REFERENCED ADDRESS IS OUTSIDE OF VIRTUAL STORAGE. IF THE INTERRUPT WAS FOR AN EC-MODE VIRTUAL MACHINE RUNNING IN VIRTUAL TRANSLATE MODE, DMKVATPX IS INVOKED VIA GOTO. IF A VIRTUAL ECMODE MACHINE HAS REQUESTED PSEUDO PAGE FAULT HANDLING AND IS ENABLED, A PSEUDO PAGE FAULT MAY BE GENER- ATED IF THE 2ND LEVEL MEMORY PAGE IS NOT AVAILABLE. THE PAGE FAULT IS HANDLED VIA A GOTO TO DMKVATPF. OR AN ECMODE MACHINE RUNNING NON-TRANSLATE IS TREATED IN THE SAME MANNER AS A PAGE EXCEPTION INDICATES A VIRTUAL ADDRESSING ERROR HAS BEEN MADE, AND AN ADDRESSING EXCEPTION IS GENERATED FOR THE VIRTUAL IF THE VIRTUAL MACHINE IS RUNNING IN VIRTUAL TRANSLATE MODE, DMKVATSX IS INVOKED VIA GOTO TO FIELD THE INTERRUPT. THE DMKPRGRF ENTRY POINT (INVOKED FROM DMKPSASV) PERFORMS THE NECESSARY FUNCTIONS TO REFLECT AN SVC-INTERRUPT TO THE VIRTUAL MACHINE (SEE LATER SECTION FOR DETAILS). THE DMKPRGSM ENTRY POINT IS INVOKED VIA GOTO WHENEVER A PROGRAM INTERRUPT MUST BE GENERATED FOR A VIRTUAL MACHINE. THE VIRTUAL OLD PSW AND ILC DATA IS CONTAINED IN THE VMBLOK - VMPSW AND VMPRGIL FIELDS. EXIT IS VIA GOTO DMKDSPB.
Calls to Other Routines
DMKPTRAN - TO HANDLE PAGING EXCEPTION DMKPRVLG - TO HANDLE PRIVILEGED INSTRUCTIONS DMKDSPCH - TO DISPATCH A USER DMKCFMBK - TO PLACE A VIRTUAL MACHINE IN CP CONSOLE MODE DMKQCNWT - TO TYPE WARNING MESSAGE AT USER TERMINAL DMKDMPDK - TO DUMP CORE IF PROGRAM INTERRUPT FROM CP DMKVATPX - TO PROCESS PAGING EXCEPTION FOR V370R DMKVATSX - TO PROCESS SEGMENT EXCEPTION FOR V370R DMKVATPF - TO SIMULATE PSEUDO PAGE FAULT FOR V370R DMKDSPB - TO NEW PSW ENTRY IN DISPATCHER DMKDSPA - TO (POTENTIALLY) FAST RE-DISPATCH CURRENT USER DMKPERIL -