User Tools

Site Tools


ibm:vm370-lib:cms:dmsfch.assemble_abs

โˆ’Table of Contents

DMSFCH Abstract

Statistics

Type ASSEMBLE
Source Lines : 1,022
Fixes Applied : 2
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [R09200DS]

Synopsis

Module

       DMSFCH  ( FETCH ROUTINE )

Function

       PROVIDE THE FACILITY TO BRING INTO STORAGE A
       SPECIFIED PHASE FROM THE SYSTEM/PRIVATE CORE
       IMAGE LIBRARY OR FROM A CMS 'DOSLIB' LIBRARY.
       THIS ROUTINE IS ENTERED AS A RESULT OF AN SVC
       1, 2, OR 4 (DOS/VS SVC) FROM A DOS/VS PROGRAM,
       OR FROM THE CMS/DOS 'FETCH' COMMAND.

Attributes

       CMSDOS SEGMENT RESIDENT MODULE
       REENTRANT

Operation

       1. SET UP NECESSARY ADDRESSABILITIES AND SAVE
          SOME REGISTERS. ACQUIRE WORK AREA FROM FREE
          STORAGE. INITIALIZE WORK AREA AND CHECK IF
          USER DOES NOT WANT THE PHASE LOADED ( USED
          TO VERIFY IF THE PHASE EXISTS ).

       2. VERIFY IF THE PRIVATE CORE IMAGE LIBRARY IS
          ASSIGNED, AND IF SO, LOCATE THE LIBRARY DOSCB.
          CALL STATE TO VERIFY IF THE LIBRARY EXISTS AND
          USING THE LIBRARY OSFST, GET THE STARTING DISK
          ADDRESS OF THE LIBRARY AND THE VIRTUAL DEVICE
          ADDRESS OF WHERE THE LIBRARY RESIDES.

       3. IF THE PRIVATE CORE IMAGE LIBRARY IS NOT ACTIVE
          OR DOES NOT CONTAINS THE PHASE TO BE LOADED,
          THE DOSLIB DCB IS OPENED TO SEARCH THROUGH THE
          CHAIN OF DOSLIB'S GLOBALED. IF THE DCB DID OPEN
          OK, A 'FIND' ( O/S SVC ) IS ISSUED TO SEE IF THE
          PHASE RESIDES ON ANY OF THE GLOBALED DOSLIB'S.

       4. IF NEITHER PRIVATE CORE IMAGE LIBRARY OR DOSLIB
          LIBRARIES CONTAIN THE PHASE TO BE LOADED, DMSFCH
          VERIFIES IF THE SYSRES VOLUME IS ACTIVE. IF THE
          VOLUME IS ACTIVE, A SEARCH IS MADE TO LOCATE THE
          SPECIFIED PHASE ON THE SYSTEM CORE IMAGE LIBRARY.

       5. ONCE THE PHASE HAS BEEN LOCATED, THE PHASE HEADER
          (DIRECTORY) RECORD IS READ. THE NUMBER OF TEXT
          BLOCKS IN THE PHASE IS COMPUTED AND THE LENGTH OF
          THE PHASE IS DETERMINED. IF THE PHASE RESIDES ON
          A DOS/VS FORMATTED DISK, THE DISK ADDRESS OF THE
          PHASE IS COMPUTED.

       6. THE PHASE LOAD POINT AND ENTRY POINT IS COMPUTED
          USING THE INFORMATION ON THE PHASE HEADER RECORD
          AND THE USER SPECIFIED LOAD ADDRESS, IF ANY. THE
          RELOCATION FACTOR  (IF THE PHASE IS RELOCATABLE)
          IS THEN COMPUTED AND THE ENDING ADDRESS OF THE
          PHASE IS SAVED IN THE COMMUNICATIONS REGION.
          NEXT, THE SIZE OF THE USER'S VIRTUAL PARTITION IS
          COMPUTED (USING THE SPECIFIED DOSKPART - IF ANY).
          IF THE PHASE TO BE LOADED WILL EXCEED 'PPEND'- THE
          FETCH IS NOT ALLOWED AND MESSAGE 777S IS PRODUCED.


       7. ALL OF THE PHASE'S TEXT BLOCKS (DATA BLOCKS) ARE
          READ AND MOVED TO THEIR SPECIFIC LOCATION IN THE
          VIRTUAL PARTITION. IF THE PHASE IS RELOCATABLE,
          THE NUMBER OF 'RLD' ITEMS TO RELOCATE IS ACQUIRED
          FROM THE HEADER RECORD, AND THE PHASE IS RELOCATED
          BY READING THE RLD ITEMS AND USING THE RELOCATION
          FACTOR COMPUTED EARLY TO RELOCATE ALL OF THE PHASE'S
          RELOCATABLE ITEMS.

       8. WHEN THE PHASE HAS BEEN LOADED (AND RELOCATED IF
          NEEDED) THE DOSLIB DCB IS CLOSED, THE DMSFCH WORK
          AREA IS RETURN TO FREE STORAGE, AND A RETURN TO
          CALLER IS MADE PASSING BACK THE FOLLOWING INFO.
              R0.  POINTS TO THE UPDATED PHASE DIRECTORY
              R1.  CONTAINS THE PHASE ENTRY POINT
              R15. CONTAINS THE RETURN CODE OF THIS ROUTINE.

Calls to Other Routines

       DMSFRE, DMSSTT, DMSSOP, DMSSVT
       DMSSBS, DMSSCT, DMKGIO, DMSERR
ibm/vm370-lib/cms/dmsfch.assemble_abs.txt ยท Last modified: 2023/08/06 13:35 by Site Administrator