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