User Tools

Site Tools


ibm:vm370-lib:cms:dmshds.assemble_abs

Table of Contents

DMSHDS Abstract

Statistics

Type ASSEMBLE
Source Lines : 382
Fixes Applied : 0
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [Unmodified]

Synopsis

Module

       DMSHDS (HNDSVC)

Function

       TO INITIALIZE THE SVCINT SVC INTERRUPT HANDLER TO TRANSFER
       CONTROL TO A GIVEN LOCATION FOR A SPECIFIC SVC NUMBER
       (OTHER THAN 202) OR TO CLEAR SUCH PREVIOUS HANDLING

Attributes

       DISK RESIDENT, REENTRANT AND EXECUTES IN THE TRANSIENT AREA

Operation

       1.  CHECKS THE PARAMETER LIST FOR ERRORS.

       2.  IF 'CLR' CALL, GOT 'CLR'.  ELSE 'SET'.

       SET -
       1.  IF AN OLD USER SVC TABLE DOES NOT EXIST, HNDSVC SIMPLY
           STORES THE USER'S FIRST ADCON AND LAST ADCON  INTO THE
           APPROPRIATE SLOTS OF SVCSECT, AND EXITS.

       2.  IF AN OLD USER SVC TABLE DOES EXIST, FREE IS CALLED TO
           GET ENOUGH STORAGE(ROUNDED UP TO A DOUBLE WORD BOUNDARY)
           TO HOLD BOTH THE EXISTING TABLE AND THE NEW TABLE.

       3.  THE OLD TABLE IS MOVED INTO THE FREE STORAGE.  THEN EACH
           SVC NUMBER SPECIFIED IS COMPARED WITH EACH SVC IN THE OLD
           TABLE.  IF A MATCH IS FOUND, THE SVC IN THE OLD TABLE IS
           REPLACED BY THE SVC IN THE PLIST.  IF NO MATCH IS FOUND
           THE SVC IS ADDED TO THE END OF THE TABLE.  THIS CONTINUES
           UNTIL ALL SVC'S IN THE PLIST REPLACE OR ARE
           ADDED TO THE SVC'S IN THE OLD SVC TABLE.

       4.  IF A PREVIOUS OLD TABLE HAD EXISTED, IT'S SPACE
           IS RETURNED TO FREE STORAGE (VIA FRET) AND EXIT.

       CLR -
       1.  HNDSVC CHECKS TO SEE IF A USER SVC TABLE EXISTS.  IF IT
           DOES NOT, EXIT WITH ERROR CODE.

       2.  CHECKS TO SEE IF THE TABLE OF SVC'S TO BE CLEARED EXACTLY
           MATCHES THE EXISTING TABLE OF USER SVC'S.  IF IT DOES,
           IT'S SPACE IS RETURNED TO FREE STORAGE (VIA FRET) AND
           STORES 0 INTO JNUMB, JFIRST AND JLAST OF SVCSECT.
           EXIT.

       3.  IF THERE IS NOT AN EXACT MATCH, JNUMB IS CHECKED FOR 0.
           IF JNUMB = 0, THEN ENOUGH FREE STORAGE IS GOTTEN TO HOLD
           THE OLD USER SVC TABLE (VIA FREE) AND THE OLD TABLE IS
           MOVED IN.

       4.  EACH SVC IN THE 'CLR' PLIST IS MATCHED AGAINST EACH ENTRY
           FOR THE SVC IN THE OLD TABLE IS ZEROED.  DO THIS FOR
           EACH ENTRY IN THE PLIST.  IF A MATCH
           IS NOT FOUND FOR A PLIST ENTRY OR WHEN ALL ENTRIES HAVE
           BEEN MATCHED, COMPACT THE SVC TABLE.  IF NO ENTRIES
           REMAIN, RETURN THE SVC TABLE TO FREE STORAGE (VIA FRET),
           SET JNUMB, JFIRST AND JLAST TO 0
           AND EXIT.  ELSE RESET JNUMB, JFIRST AND JLAST AND EXIT.

Calls to Other Routines

       FREE - GET FREE STORAGE
       FRET - RETURN FREE STORAGE
       TYPLIN - TYPE A MESSAGE TO THE TERMINAL
ibm/vm370-lib/cms/dmshds.assemble_abs.txt ยท Last modified: 2023/08/06 13:35 by Site Administrator