Table of Contents

DMKPRG Abstract

Statistics

Type ASSEMBLE
Source Lines : 736
Fixes Applied : 4
Most Recent Version : Thursday, December 14, 1978
Last Fix ID : [HRC013DK]

Synopsis

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 -