Table of Contents

DMSITS Abstract

Statistics

Type ASSEMBLE
Source Lines : 1,452
Fixes Applied : 5
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [R14550DS]

Synopsis

Module

       DMSITS (INTSVC)

Function

       HANDLE SVC INTERRUPTS.

Attributes

       NUCLEUS RESIDENT, RE-ENTRANT

Operation

       DMSITS -- WHEN CONTROL COMES HERE BY 'BALR' LINKAGE, THEN
       THE DOUBLE WORD RESERVED FOR THE SVC OLD PSW IS SET UP IN LOW
       CORE AS IF SVC 202 LINKAGE HAD OCCURRED, AND CONTROL DROPS
       THROUGH TO DMSITS1.

       DMSITS1 -- A SAVE AREA IS ALLOCATED, THE OLDPSW IS SAVED,
       AND ALL REGISTERS ARE SAVED.  THE EXACT SVC TYPE IS
       DETERMINED, AND THE NAME OF THE APPROPRIATE NUCLEUS OR
       OR DISK-RESIDENT ROUTINE IS DETERMINED.  (THE EXACT
       METHOD FOR DOING THIS IS DESCRIBED IN 'SVC HANDLING' SECTION
       OF THE CMS PROGRAM LOGIC MANUAL.)

       CONTROL IS PASSED TO THE 'CALLEE' ROUTINE.

       WHEN CONTROL RETURNS FROM THE APPROPRIATE 'CALLEE' ROUTINE,
       THEN REGISTERS ARE RESTORED TO THEIR VALUES WHEN THE ORIGINAL
       CALL WAS MADE (EXCEPT FOR REG 15 IN THE CASE OF CMS SVC
       CALLS).

       MODIFICATIONS TO THE ABOVE PROCEDURE MAY OCCUR.
       HERE ARE SOME OF THE WAYS THAT THAT CAN HAPPEN:

       IF A CALLEE FOR A CMS SVC GIVES AN ERROR RETURN, THE USER
       MUST BE EXPECTING ONE.  IF HE IS NOT, THEN DMSITS CALLS
       DMSABN TO ABEND.

       IF SVCTRACE IS IN EFFECT, THEN DMSITS WILL CALL THE TRACE
       ROUTINE.


       DMSITSR -- RE-INITIALIZES THE SVC HANDLER WHEN ABEND RECOVERY
       OCCURS.  THIS ROUTINE FREES ALL SAVE AREAS, AND INITIALIZES
       ALL POINTERS TO ZERO.

       DMSITSK -- THIS ROUTINE PERFORMS PROCESSING SPECIFIED BY THE
       'DMSKEY' MACRO.  IF 'NUCLEUS' IS SPECIFIED, THEN A KEY OF
       0 IS INSERTED INTO THE OLDPSW.  IF 'USER' IS SPECIFIED, THEN
       THEN A KEY OF X'E' IS INSERTED INTO THE OLDPSW.

       THERE IS A KEY STACK ASSOCIATED WITH EACH SYSTEM SAVE AREA,
       AND WHEN 'USER' OR 'NUCLEUS' ARE SPECIFIED, THEN THE OLD KEY
       IS SAVED IN THE KEY STACK.  HOWEVER, THIS PROCESSING CAN
       BE AVOIDED BY SPECIFYING 'NOSTACK'.  WHEN 'RESET' IS
       SPECIFIED, THEN THE TOP KEY FROM THE KEY STACK IS RE-INSERTED
       INTO THE OLDPSW.

       DMSITSXS -- PROCESSING ASSOCIATED WITH THE 'DMSEXS' MACRO.
       THE SPECIFIED INSTRUCTION IS EXECUTED WITH A ZERO PROTECTION
       KEY.

Calls to Other Routines

       DMSMOD -- TO 'LOADMOD' A COMMAND, IF NECESSARY.

       DMSERR (CALLED BY 'DMSERR' MACRO) -- TO TYPE OUT ERROR
       MESSAGES

       DMSFREB (CALLED BY 'DMSFREE' AND 'DMSFRET' MACROS) -- TO
       ALLOCATE AND RELEASE SAVE AREAS.

       DMSABNGO -- TO ABEND, WHEN PROCESSING CANNOT CONTINUE.

       SVC 'CALLEE' ROUTINES:  MANY, MANY NUCLEUS ROUTINES AND
       COMMANDS CAN BE CALLED BY DMSITS, DEPENDING UPON THE TYPE
       OF SVC CALL.