ibm:vm370-lib:cms:dmsvib.assemble_src
Table of Contents
DMSVIB Source
References
- Fixes Applied : 1
- This Source Date : Tuesday, December 12, 1978
- Last Fix ID : [R12931DS]
Source Listing
- DMSVIB.ASSEMBLE.txt
- VIB TITLE 'DMSVIB (CMS) VM/370 - RELEASE 6' 00001000
- *********************************************************************** 00002000
- * * 00003000
- * * 00004000
- * MODULE NAME: * 00005000
- * * 00006000
- * DMSVIB - CMS VSAM INTERFACE BOOTSTRAP ROUTINE * 00007000
- * * 00008000
- * * 00009000
- * FUNCTION: * 00010000
- * * 00011000
- * TO LOAD THE CMS VSAM SAVED SYSTEM (IF NOT ALREADY DONE) * 00012000
- * AND TO PASS CONTROL TO THE CMS VSAM INTERFACE ROUTINE * 00013000
- * (DMSVIP). * 00014000
- * * 00015000
- * ATTRIBUTES: * 00016000
- * * 00017000
- * NUCLEUS RESIDENT, REENTRANT * 00018000
- * * 00019000
- * ENTRY POINTS: * 00020000
- * * 00021000
- * DMSVIB - SEE FUNCTION DESCRIPTION * 00022000
- * * 00023000
- * ENTRY CONDITIONS: * 00024000
- * * 00025000
- * BALR'D TO BY USER PROGRAM DURING FIRST EXECUTION OF OS * 00026000
- * VSAM MACROS GENCB, TESTCB, SHOWCB, OR MODCB, OR DURING * 00027000
- * OPEN BY CMS OPEN ROUTINE (DMSSOP) * 00028000
- * * 00029000
- * EXIT CONDITIONS: * 00030000
- * * 00031000
- * NORMAL - CONTROL IS PASSED TO CMS INTERFACE ROUTINE (DMSVIP).* 00032000
- * REGISTERS ARE UNCHANGED, EXCEPT FOR REGISTER 15 WHICH 00033000
- * CONTAINS THE BRANCH ADDRESS. * 00034000
- * * 00035000
- * ERROR - CONTROL IS PASSED TO CMS ABEND ROUTINE (DMSABN) * 00036000
- * FOR THE FOLLOWING ERROR CONDITIONS: * 00037000
- * SYSTEM DOES NOT EXIST, SYSTEM PREVIOUSLY SAVED IN * 00038000
- * NUCLEUS STORAGE RATHER THAN USER AREA, OR PAGING * 00039000
- * I/O ERRORS ENCOUNTERED. * 00040000
- * FOR EACH OF THE ABOVE CASES, PROGRAM EXECUTION * 00041000
- * IS TERMINATED. * 00042000
- * * 00043000
- * CALLS TO OTHER ROUTINES: * 00044000
- * * 00045000
- * DMSVIP - (UPON EXIT) PROCESS VSAM REQUESTS * 00046000
- * * 00047000
- * EXTERNAL REFERENCES: * 00048000
- * * 00049000
- * DMSKEY - FOR CORRECT PROTECT KEY * 00050000
- * DMSERR - FOR CMS ERROR MESSAGES * 00051000
- * DMSFREE - FOR NUCLEUS FREE STORAGE * 00052000
- * DMSABN - FOR ABNORMAL TERMINATION OF RUN * 00053000
- * REGEQU - FOR SYMBOLIC REGISTER NAMES * 00054000
- * NUCON - FOR NUCLEUS STORAGE AREA DSECT * 00055000
- * SYSNAMES - FOR SAVED SYSTEM NAMES DSECT * 00056000
- * * 00057000
- * TABLES/WORK AREAS: * 00058000
- * * 00059000
- * NONE * 00060000
- * * 00061000
- * REGISTER USAGE: * 00062000
- * * 00063000
- * GPR0 - NUCLEUS DSECT * 00064000
- * GPR1, GPR2, GPR3, GPR5 - WORK REGS * 00065000
- * GPR12 - DMSVIB ADDRESSABILITY * 00066000
- * GPR15 - TEMP ADDRESSABILITY UPON ENTRY * 00067000
- * * 00068000
- * NOTES: * 00069000
- * IN ORDER TO ALLOW DMSVIB TO GET CONTROL AFTER OS GENCB, * 00070000
- * TESTCB, MODCB, OR SHOWCB MACRO EXECUTION, THE VIB ADCON * 00071000
- * MUST BE AT RELATIVE LOCATION 12(C). * 00072000
- * THE FOLLOWING OS VSAM MACRO EXPANSION LOADS THE ENTRY POINT * 00073000
- * ADDRESS SET IN THE SIMULATED CVT AT INITIAL PROGRAM * 00074000
- * LOAD: * 00075000
- * * 00076000
- * + L 15,16 POINT TO CVT * 00077000
- * + L 15,256(,15) POINT TO AMCBS * 00078000
- * + L 15,12(,15) POINT TO CB MANIPULATION ROUTINE 00079000
- * XX REPRESENTS VARIOUS *VA12931 00080000
- * ENTRY POINTS 0 TO 80 *VA12931 00080300
- * + BAL 14,XX(,15) BRANCH TO ROUTINE *VA12931 00080600
- * * 00081000
- * OPERATION: * 00082000
- * * 00083000
- * DMSVIB ISSUES A 'FINDSYS' TO DETERMINE WHETHER OR NOT * 00084000
- * THE VSAM SAVED SYSTEM EXISTS, AND IF SO, HAS BEEN * 00085000
- * LOADED. IF NOT, A 'LOADSYS' IS ISSUED TO LOAD THE * 00086000
- * VSAM SYSTEM INTO THE USER AREA. * 00087000
- * * 00088000
- * UPON SUCCESSFUL COMPLETION, THE ADDRESS OF THE VSAM * 00089000
- * INTERFACE ROUTINE (DMSVIP) IS STORED AT CVT+256 SO THAT * 00090000
- * SUBSEQUENT VSAM REQUESTS CAN BALR DIRECTLY TO THE LOADED * 00091000
- * INTERFACE ROUTINE RATHER THAN TO THE BOOTSTRAP. * 00092000
- * * 00093000
- * A REGISTER SAVE/WORK AREA IS RESERVED IN NUCLEUS FREE * 00094000
- * STORAGE VIA A DMSFREE REQUEST FOR USE BY THE INTERFACE * 00095000
- * ROUTINE AND ITS ADDRESS IS STORED IN THE NUCLEUS (AVIPWORK). * 00096000
- * * 00097000
- * CONTROL IS THEN PASSED TO DMSVIP. * 00098000
- * * 00099000
- *********************************************************************** 00100000
- EJECT 00101000
- DMSVIB START , @V305174 00102000
- * 00103000
- * THE FOLLOWING CODE FROM *XX TO *XY MUST REMAIN INTACT (SEE NOTES) 00104000
- * 00105000
- *XX 00106000
- USING NUCON,R0 @V305174 00107000
- BALR R15,0 SET ADDRESSABILITY *VA12931 00108000
- USING *,R15 *VA12931 00109000
- L R15,ADMSVIB1 SET TEMP BASE REG *VA12931 00110000
- BR R15 BRANCH AROUND ADCON *VA12931 00111000
- ORG DMSVIB+12 MUST BE AT DISPLACEMENT 12 *VA12931 00112000
- DROP R15 @V305174 00114000
- *********************************************************************** 00115000
- * * 00116000
- * VIB ADCON - MUST BE AT RELATIVE LOCATION 12(C) - SEE NOTES * 00117000
- * * 00118000
- *********************************************************************** 00119000
- ADMSVIB1 DC A(DMSVIB1) SECOND MACRO ENTRY POINT *VA12931 00120000
- SPACE 2 *VA12931 00120020
- * *VA12931 00120040
- * ENHANCED OS/VS VSAM CONTROL BLOCK MANIPULATION MACROS USE *VA12931 00120060
- * BRANCH TABLE ENTRIES TO SUPPORT THE APPROPRIATE VSAM FUNC- *VA12931 00120080
- * TION. THE FOLLOWING TABLE SUPPORTS BRANCH TABLE ENTRY. *VA12931 00120100
- * *VA12931 00120120
- DMSVIB1 DS 0H VSAM MACRO SECOND ENTRY ADDR *VA12931 00120140
- USING DMSVIB1,R15 *VA12931 00120160
- SPACE 2 *VA12931 00120180
- B DMSVIB2 + 0 *VA12931 00120200
- B DMSVIB2 + 4 *VA12931 00120220
- B DMSVIB2 + 8 GENCB = ACB *VA12931 00120240
- B DMSVIB2 + 12 GENCB = RPL *VA12931 00120260
- B DMSVIB2 + 16 GENCB = EXLST *VA12931 00120280
- B DMSVIB2 + 20 ** RESERVED ** *VA12931 00120300
- B DMSVIB2 + 24 MODCB AN ACB *VA12931 00120320
- B DMSVIB2 + 28 MODCB AN RPL *VA12931 00120340
- B DMSVIB2 + 32 MODCB AN EXLST *VA12931 00120360
- B DMSVIB2 + 36 ** RESERVED ** *VA12931 00120380
- B DMSVIB2 + 40 SHOWCB = ACB *VA12931 00120400
- B DMSVIB2 + 44 SHOWCB = RPL *VA12931 00120420
- B DMSVIB2 + 48 SHOWCB = EXLST *VA12931 00120440
- B DMSVIB2 + 52 ** RESERVED ** *VA12931 00120460
- B DMSVIB2 + 56 TESTCB AN ACB *VA12931 00120480
- B DMSVIB2 + 60 TESTCB AN RPL *VA12931 00120500
- B DMSVIB2 + 64 TESTCB AN EXLST *VA12931 00120520
- B DMSVIB2 + 68 ** RESERVED ** *VA12931 00120540
- B DMSVIB2 + 72 SHOWCB/TESTCB (KEYWORDS) *VA12931 00120560
- B DMSVIB2 + 76 SHOWCB (RECLEN OF RPL) *VA12931 00120580
- B DMSVIB2 + 80 MODCB (RECLEN OF RPL) *VA12931 00120600
- SPACE 2 *VA12931 00120620
- DMSVIB2 DS 0H *VA12931 00120640
- DMSKEY NUCLEUS GET NUCLEUS STORAGE KEY *VA12931 00120660
- DROP R15 *VA12931 00120680
- *********************************************************************** 00121000
- *XY 00122000
- STM R0,R14,BALRSAVE SAVE USER'S REGS *VA12931 00123000
- BALR R12,0 SET ADDRESSABILITY *VA12931 00123600
- USING *,R12 *VA12931 00124200
- * 00125000
- L R5,ASYSNAMS ADDRESS SYSTEM NAMES LIST @V305174 00126000
- USING SYSNAMES,R5 @V305174 00127000
- LA R2,CMSVSAM POINT AT SAVED SYSTEM NAME @V305174 00128000
- LA R3,FINDSYS AND USE 'FINDSYS' CODE @V305066 00129000
- DC X'83230064' FIND SAVED SYSTEM @V305174 00130000
- BC 8,LOADED CC=0, ALREADY LOADED @V305174 00131000
- BC 4,LOADIT CC=1, EXISTS BUT NOT LOADED @V305174 00132000
- SPACE 1 00133000
- ERRORS CH R3,FORTY4 RC = 44? @V305174 00134000
- BE ERR400S IF SO, NO SUCH SYSTEM @V305174 00135000
- B ERR410S OTHERWISE, PAGING I/O ERRORS@V305174 00136000
- SPACE 1 00137000
- LOADIT C R2,VMSIZE OVERLAY VM STOR IF LOADSYS? @V305174 00138000
- BL ERR401S YES, ERROR @V305174 00139000
- LA R2,CMSVSAM POINT TO NAME AGAIN @V305174 00140000
- XR R3,R3 R3=0 FOR SHARED COPY @V305174 00141000
- DC X'83230064' LOAD THE SHARED SYSTEM @V305174 00142000
- BC 2,ERRORS ERRORS (SHOULDN'T HAPPEN) @V305174 00143000
- DROP R5 @V305174 00144000
- SPACE 1 00145000
- LOADED EQU * @V305174 00146000
- OI VSAMFLG1,VSAMRUN VSAM LOADED @V305174 00147000
- ST R2,AVSAMSYS VSAM DCSS ADDR IN NUCON @V305174 00148000
- L R2,12(,R2) INTFC ADDR FRM VSAM DCSS@V305174 00149000
- L R5,ACMSCVT POINT TO SIMULATED CVT @V305174 00150000
- LA R5,256(,R5) PT TO VSAM INTFC ADDR CELL @V305174 00151000
- ST R2,0(,R5) STORE ADDR OF DMSVIP @V305174 00152000
- * 00153000
- * RESERVE A WORK AREA IN NUCLEUS FREE STORAGE FOR USE BY DMSVIP 00154000
- * 00155000
- LA R0,CON37 LOAD SIZE OF AREA (NO. DWORDS@V305174 00156000
- DMSFREE DWORDS=(0),TYPE=NUCLEUS,ERR=ERR109S @V305174 00157000
- ST R1,AVIPWORK SAVE ADDR OF AREA IN NUCLEUS @V305174 00158000
- XC 0(256,R1),0(R1) INITIALIZE WORK AREA @V305174 00159000
- XC 256(40,R1),256(R1) @V305174 00160000
- * 00161000
- DMSKEY RESET @V305174 00162000
- * 00163000
- * EXIT TO DMSVIP 00164000
- * 00165000
- LR R15,R2 LOAD BRANCH REG @V305174 00166000
- LM R0,R14,BALRSAVE RESTORE USER'S REGS @V305174 00167000
- BR R15 EXIT TO VSAM INTERFACE RTN @V305174 00168000
- EJECT 00169000
- ERR400S EQU * @V305174 00170000
- DMSERR MF=(E,'SYS'),NUM=400,LET=S,SUB=(CHARA,(R2)), @V305174*00171000
- TEXT='SYSTEM ''........'' DOES NOT EXIST' @V305174 00172000
- B ABEND @V305174 00173000
- SPACE 2 00174000
- ERR401S EQU * @V305106 00175000
- L R5,ASYSNAMS ADDR SYSTEM NAMES LIST @V305174 00176000
- USING SYSNAMES,R5 @V305174 00177000
- DMSERR MF=(E,'SYS'),LET=S,NUM=401,SUB=(HEXA,VMSIZE,CHARA,CMSVS*00178000
- AM,HEX,(R2)),TEXT='V.M. SIZE (......) CANNOT EXCEED ''..*00179000
- ......'' START ADDRESS (......)' @VA04739 00180100
- DROP R5 @V305174 00181000
- LA R3,ABEND104 ABEND CODE @V305066 00182000
- B ABEND @V305174 00183000
- ERR109S DMSERR NUM=109,LET=S,TEXT='VIRTUAL STORAGE CAPACITY EXCEEDED' 00184000
- LA R3,ABEND177 ABEND CODE @V305066 00185000
- B ABEND @V305174 00186000
- EJECT 00187000
- ERR410S EQU * @V305174 00188000
- DMSERR LET=S,NUM=410,SUB=(DEC,(R3)),TEXT='CONTROL PROGRAM ERRO*00189000
- R INDICATION ''....''' @V305174 00190000
- LA R3,ABEND174 ABEND CODE @V305066 00191000
- ABEND DMSABN (R3),TYPCALL=SVC @V305174 00192000
- SPACE 2 00193000
- DS 0D @V305174 00194000
- FORTY4 DC H'44' CP RC FOR 'SYSTEM NOT FOUND'@V305174 00195000
- SPACE 2 00196000
- * EQUATES 00197000
- SPACE 2 00198000
- FINDSYS EQU 12 FINDSYS CODE @V305066 00199000
- CON37 EQU 37 @V305066 00200000
- ABEND104 EQU X'104' ABEND CODE @V305066 00201000
- ABEND177 EQU X'177' ABEND CODE @V305066 00202000
- ABEND174 EQU X'174' ABEND CODE @V305066 00203000
- EJECT 00204000
- REGEQU @V305174 00205000
- NUCON @V305174 00206000
- SYSNAMES @V305174 00207000
- END 00208000
ibm/vm370-lib/cms/dmsvib.assemble_src.txt ยท Last modified: 2023/08/06 13:36 by Site Administrator