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