ibm:vm370-lib:dumpscan:dmmvmb.assemble_src
Table of Contents
DMMVMB Source
References
- Fixes Applied : 0
- This Source Date : Monday, December 11, 1978
- Last Fix ID : [Unmodified]
Source Listing
- DMMVMB.ASSEMBLE.txt
- VMB TITLE 'DMMVMB (IPCS) VM/370 - RELEASE 6' 00001000
- * 00002000
- * MODULE NAME: 00003000
- * DMMVMB SUBROUTINE OF DUMPSCAN 00004000
- * 00005000
- * FUNCTION: 00006000
- * DISPLAY ALL VMBLOCK ADDRESSES, USERIDS AND STATUS 00007000
- * 00008000
- * ATTRIBUTES: 00009000
- * REUSABLE 00010000
- * NON-REENTRANT 00011000
- * 00012000
- * ENTRY POINTS: 00013000
- * DMMVMB 00014000
- * 00015000
- * ENTRY CONDITIONS: 00016000
- * NONE 00017000
- * 00018000
- * EXIT CONDITIONS: 00019000
- * RETURN CODE IN R15 0 - GOOD 00020000
- * 4 - WARNING 00021000
- * 00022000
- * CALLS TO OTHER ROUTINES: 00023000
- * DMMGET FETCH DUMP INTO CORE 00024000
- * DMMINT TRANSLATE HEX TO EBCDIC 00025000
- * 00026000
- * EXTERNAL REFERENCES: 00027000
- * 00028000
- * 00029000
- * TABLES/WORKAREAS: 00030000
- * 00031000
- * REGISTER USAGE: 00032000
- * R15 ADDRESSES OF EXTERNAL ROUTINES 00033000
- * R14 RETURNS FROM EXTERNAL ROUTINES 00034000
- * R13 SAVE AREA ADDRESS 00035000
- * R12 BASE 00036000
- * R11-R7 NOT USED 00037000
- * R6-R2 WORK REGISTERS 00038000
- * R4 PASSES ADDRESS TO INT 00039000
- * R3 PASSES LENGTH TO INT 00040000
- * R2 PASSES ADDRESS TO GET 00041000
- * 00042000
- * NOTES: 00043000
- * 00044000
- * OPERATION: 00045000
- * * * * * * * * THIS ROUTINE PROCESSES 'VMB' REQUESTS. 00046000
- * * * * * * * * IT SEARCHES THE VMBLOCK CHAIN, LISTING 00047000
- * * * * * * * * THE USERID, BLOCK ADDRESS, AND THE 00048000
- * * * * * * * * 'VMR', 'VMD', 'VMO', AND 'VMQ' STATUS BYTES. 00049000
- * 00050000
- * ERROR MESSAGES: 00051000
- * DMMVMB711I LOOP IN VMBLOK CHAIN 00052000
- * 00053000
- * * * * * * * *------- -------- -------- -------- ------* 00054000
- * * * * * * * *------- -------- -------- -------- ------* 00055000
- DMMVMB CSECT @VA04250 00056000
- EXTRN DMMGET FETCH DUMP INTO CORE @VA04250 00057000
- EXTRN DMMINT TRANSLATE @VA04250 00058000
- EXTRN TRTABLE TRANSLATE TABLE @VA04830 00059000
- STM R14,R12,SAVEDISP(R13) SAVE CALLER REGS @VA04250 00060000
- LR R12,R15 ADDRESSABILITY @VA04250 00061000
- USING DMMVMB,R12 ADD @VA04250 00062000
- ST R13,SAVEBACK CALLERS SAVE AREA PTR @VA04250 00063000
- B EYECATCH BYPASS EYE CATCHER @VA04250 00064000
- DS 0D ALIGN @VA04250 00065000
- DC CL8'DMMVMB' EYECATCHER @VA04250 00066000
- RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00067000
- EYECATCH LA R13,SAVEAREA OUR SAVE PTR @VA04250 00068000
- XC RETCODE,RETCODE CLEAR RETURN @VA04250 00069000
- * * * * * * * *------- -------- -------- -------- ------* 00070000
- * * * * * * * * GO TO DMMGET TO GET THE SYSTEM 00071000
- * * * * * * * * VMBLOCK ADDRESS 00072000
- * * * * * * * *------- -------- -------- -------- ------* 00073000
- LA R2,ASYSVM-PSA ADD DISP TO SYSVMB POINTER @VA04250 00074000
- BAL R10,GOGET ADDRESS @VA04250 00075000
- L R2,0(R2) GET TRUE VMBLOCK ADDRESS @VA04250 00076000
- ST R2,BLOCKADD VMB ADDRESS FOR TRANS @VA04250 00077000
- MVC USERID(L'OUTLEFT),BLANKOUT CLEAR WORK AREAS @VA04830 00078000
- LA R2,VMRSTAT-VMBLOK(R2) ADD DISP TO STATUS @VA04250 00079000
- BAL R10,GOGET BRING STATUS INTO CORE @VA04250 00080000
- MVC VMBSTAT,0(R2) PLUG STATUS TO TRANSLATE @VA04250 00081000
- L R2,BLOCKADD ADDRESS OF VMBLOK @VA04250 00082000
- LA R2,VMUSER-VMBLOK(R2) ADD DISP TO USERID @VA04250 00083000
- BAL R10,GOGET GET USERID INTO CORE @VA04250 00084000
- MVC USERID,0(R2) PLUG USER TO TRANSLATE @VA04250 00085000
- LA R3,TRANIN 7 - TRANS LENGTH @VA04250 00086000
- LA R4,BLOCKADD+ONE TRANS ADDRESS @VA04250 00087000
- L R15,INTADD TRANSLATE @VA04250 00088000
- BALR R14,R15 GO @VA04250 00089000
- MVC ADDRESS,0(R5) PLUG TRANSLATED ADDRESS IN MSG @VA04250 00090000
- MVC VMRSTATE,STAT(R5) PLUG TRANSLATED STATUS @VA04250 00091000
- MVC OUTLEFT,USERID FILL LEFT HALF @VA04250 00092000
- MVI LRSW,R SET SWITCH RIGHT @VA04250 00093000
- L R2,BLOCKADD SYSTEM VMBLOK @VA04250 00094000
- LA R2,VMPNT-VMBLOK(R2) ADD DISP TO NEXT USER @VA04250 00095000
- BAL R10,GOGET ADDRESS INTO CORE @VA04250 00096000
- L R2,0(R2) ADDRESS OF NEXT VMBLOK @VA04250 00097000
- LTR R2,R2 IS IT ZEROS @VA04250 00098000
- BNZ SAVEOC NO - KEEP ON @VA04250 00099000
- LA R8,HEADER1 HEADER ADDRESS @VA04250 00100000
- LA R9,L'HEADER1 30 - LENGTH OF SHORT HEADER @VA04250 00101000
- BAL R10,WRTERM WRITE HEADER @VA04250 00102000
- LA R8,USERID ADDRESS @VA04250 00103000
- LA R9,L'OUTLEFT 28 - ENTRY LENGTH @VA04250 00104000
- BAL R10,WRTERM WRITE ONE ENTRY @VA04250 00105000
- B RETURN CHECK FOR RIGHT HALF @VA04250 00106000
- SAVEOC LA R8,HEADER1 HEADER ADDRESS @VA04250 00107000
- LA R9,L'HEADER1+L'HEADER2 60 - LENGTH @VA04250 00108000
- BAL R10,WRTERM WRITE HEADER @VA04250 00109000
- ST R2,OPVMADD SAVE 'END-OF-CHAIN' ADDRESS @VA04250 00110000
- ST R2,BLOCKADD VMB ADDRESS FOR TRANS @VA04250 00111000
- * * * * * * * *------- -------- -------- -------- ------* 00112000
- * * * * * * * * NOW PROCESS THE REMAINING VMBLOCKS 00113000
- * * * * * * * *------- -------- -------- -------- ------* 00114000
- LA R6,MAXUSER MAX USERS - 256 @VA04250 00115000
- BALGET MVC USERID(L'OUTLEFT),BLANKOUT CLEAR WORK AREAS @VA04830 00116000
- L R2,BLOCKADD ADDRESS OF NEXT VMBLOK @VA04250 00117000
- LA R2,VMRSTAT-VMBLOK(R2) ADD DISP TO STATUS @VA04250 00118000
- BAL R10,GOGET BRING STATUS INTO CORE @VA04250 00119000
- MVC VMBSTAT,0(R2) PLUG STATUS TO TRANSLATE @VA04250 00120000
- L R2,BLOCKADD ADDRESS OF VMBLOK @VA04250 00121000
- LA R2,VMUSER-VMBLOK(R2) ADD DISP TO USERID @VA04250 00122000
- BAL R10,GOGET GET USERID INTO CORE @VA04250 00123000
- MVC USERID,0(R2) PLUG USER TO TRANSLATE @VA04250 00124000
- LA R3,TRANIN 7 - TRANS LENGTH @VA04250 00125000
- LA R4,BLOCKADD+ONE TRANS ADDRESS @VA04250 00126000
- L R15,INTADD TRANSLATE @VA04250 00127000
- BALR R14,R15 LINK @VA04250 00128000
- MVC ADDRESS,0(R5) PLUG TRANSLATED ADDRESS IN MSG @VA04250 00129000
- MVC VMRSTATE,STAT(R5) PLUG TRANSLATED STATUS @VA04250 00130000
- CLI LRSW,L IS IT 'LEFT' @VA04250 00131000
- BE MOVEL YES - MOVE IN LEFT HALF @VA04250 00132000
- MVC OUTRIGHT,USERID NO - MOVE IT TO RIGHT @VA04250 00133000
- MVI LRSW,L SET SWITCH LEFT @VA04250 00134000
- LA R8,OUTLEFT ADDRESS @VA04250 00135000
- LA R9,L'HEADER1+L'HEADER2 LENGTH - 60 @VA04250 00136000
- BAL R10,WRTERM WRITE A LINE @VA04250 00137000
- B NBA GET ADDRESS OF NEXT BLOCK @VA04250 00138000
- MOVEL MVC OUTLEFT,USERID FILL LEFT OF LINE @VA04250 00139000
- MVI LRSW,R SET SWITCH RIGHT @VA04250 00140000
- NBA L R2,BLOCKADD SYSTEM VMBLOK @VA04250 00141000
- LA R2,VMPNT-VMBLOK(R2) ADD DISP TO NEXT USER @VA04250 00142000
- BAL R10,GOGET ADDRESS INTO CORE @VA04250 00143000
- L R2,0(R2) ADDRESS OF NEXT VMBLOK @VA04250 00144000
- ST R2,BLOCKADD VMB ADDRESS FOR TRANS @VA04250 00145000
- C R2,OPVMADD POINT TO END OF CHAIN? @VA04250 00146000
- BE LASTCHEK YES - CHECK FOR A HALF LINE @VA04250 00147000
- BCT R6,BALGET GET NEXT VMBLOCK @VA04250 00148000
- LA R8,ERMSG711 ADDRESS @VA04250 00149000
- LA R9,L'ERMSG711 LENGTH @VA04250 00150000
- BAL R10,WRTERM 'LOOP IN VMBLOCK CHAIN' @VA04250 00151000
- MVC RETCODE,CODE4 BAD RET @VA04250 00152000
- B RETURN GIVE UP @VA04250 00153000
- * * * * * * * * ------- -------- -------- ------- * 00154000
- * * * * * * * * CHECK FOR LEFT OR RIGHT 00155000
- * * * * * * * * ------- -------- -------- ------- * 00156000
- LASTCHEK CLI LRSW,R IS THERE STILL A HALF LINE? @VA04250 00157000
- BNE RETURN NO - RETURN @VA04250 00158000
- LA R8,OUTLEFT ADDRESS @VA04250 00159000
- LA R9,L'OUTLEFT AND LENGTH - 28 @VA04250 00160000
- BAL R10,WRTERM YES - WRITE IT @VA04250 00161000
- B RETURN CLOSE OUT @VA04250 00162000
- * * * * * * * * ------- -------- -------- ------- * 00163000
- * * * * * * * * COMMON WRTERM 00164000
- * * * * * * * * ------- -------- -------- ------- * 00165000
- WRTERM L R7,TRTABADD GET TR TABLE ADDRESS @VA04830 00166000
- MVI 0(R7),BLANK SET '00' TO TRANSLATE AS '40' @VA04830 00167000
- BCTR R9,R0 CORRECT COUNT FOR TR @VA04830 00168000
- EX R9,TRANSLAT GET OUT ALL BAD STUFF @VA04830 00169000
- MVI 0(R7),XZERO RESTORE TRANSLATE TABLE @VA04830 00170000
- LA R9,1(R9) CORRECT COUNT FOR WRITE @VA04830 00171000
- ST R8,PARMLIS1 SAVE MSG TEXT PTR IN PARM LIST @V4075A2 00172000
- ST R9,PARMLIS2 AND TEXT LENGTH @V4075A2 00173000
- LA R1,PARMLIS1 POINTER TO PASS @V4075A2 00174000
- L R15,FEDLNADD ADDRESS OF DMMFEDLN - LINE WRITER@V4075A2 00175000
- BALR R14,R15 GO WRITE THE LINE @V4075A2 00176000
- BR R10 AND RETURN @V4075A2 00177000
- PARMLIS1 DS F PARM1 @V4075A2 00178000
- PARMLIS2 DS F PARM2 @V4075A2 00179000
- FEDLNADD DC V(DMMFEDLN) LINE WRITER ROUTINE @V4075A2 00180000
- TRANSLAT TR 0(0,R8),0(R7) OBJCT TRANSLATE @VA04830 00181000
- * * * * * * * * ------- -------- -------- ------- * 00182000
- * * * * * * * * COMMON ROUTINE TO LINK TO GETREC 00183000
- * * * * * * * * AND CHECK RETURN CODES 00184000
- * * * * * * * * ------- -------- -------- ------- * 00185000
- GOGET L R15,GETADD GETREC ADDRESS @VA04250 00186000
- BALR R14,R15 LINK @VA04250 00187000
- LTR R15,R15 CHECK RETURN CODE @VA04250 00188000
- BNZ CODECHEK GO FIND OUT JUST HOW BAD @VA04250 00189000
- BR R10 RETURN TO CALLER @VA04250 00190000
- CODECHEK C R15,CODE4 WARNING? @VA04250 00191000
- BNE FATAL NO - BAD STUFF @VA04250 00192000
- MVC RETCODE,CODE4 SET WARNING @VA04250 00193000
- B RETURN RETURN @VA04250 00194000
- FATAL MVC RETCODE,CODE8 FATAL @VA04250 00195000
- B RETURN GO BACK @VA04250 00196000
- * * * * * * * * ------- -------- -------- ------- * 00197000
- * * * * * * * * RETURN 00198000
- * * * * * * * * ------- -------- -------- ------- * 00199000
- RETURN L R13,SAVEBACK CALLERS SAVE PTR @VA04250 00200000
- MVC SAVREG15(L'RETCODE,R13),RETCODE RET CODE IN R15 @VA04250 00201000
- LM R14,R12,SAVEDISP(R13) RESTORE REGS @VA04250 00202000
- BR R14 RETURN @VA04250 00203000
- * * * * * * * * ------- -------- -------- ------- * 00204000
- * * * * * * * * CONSTANTS 00205000
- * * * * * * * * ------- -------- -------- ------- * 00206000
- BLOCKADD DS F VMBLOCK ADDRESS @VA04250 00207000
- VMBSTAT DS F STATUS BYTES @VA04250 00208000
- OPVMADD DS F ADDRESS OPERATOR VMBLOK @VA04250 00209000
- RETCODE DS F RETURN CODE @VA04250 00210000
- GETADD DC AL4(DMMGET) DUMP PAGE FETCHER @VA04250 00211000
- INTADD DC AL4(DMMINT) TRANSLATOR @VA04250 00212000
- TRTABADD DC AL4(TRTABLE) TRANSLATE TABLE @VA04830 00213000
- CODE4 DC F'4' WARNING RETURN CODE @VA04250 00214000
- CODE8 DC F'8' FATAL RETURN CODE @VA04250 00215000
- * * * * * * * * ------- -------- -------- ------- * 00216000
- * * * * * * * * SAVEAREA 00217000
- * * * * * * * * ------- -------- -------- ------- * 00218000
- SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 00219000
- SAVEUSR DS F USER WORD @VA04250 00220000
- SAVEFWD DS F FORWARD POINTER @VA04250 00221000
- SAVEBACK DS F BACKWARD POINTER @VA04250 00222000
- SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 00223000
- SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 00224000
- SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 00225000
- SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 00226000
- SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 00227000
- SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 00228000
- SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 00229000
- SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 00230000
- SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 00231000
- SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 00232000
- SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 00233000
- SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 00234000
- SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 00235000
- SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 00236000
- SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 00237000
- * * * * * * * * ------- -------- -------- ------- * 00238000
- XZERO EQU X'00' HEX ZERO FOR TRANS TABLE @VA04830 00239000
- ONE EQU 1 COUNTER INCREMENT @VA04250 00240000
- STAT EQU 6 STAUS DISP @VA04250 00241000
- SAVEDISP EQU 12 REGS IN SAVE AREA @VA04250 00242000
- SAVREG15 EQU 16 REG 15 IN SAVE AREA @VA04250 00243000
- BLANK EQU X'40' BLANK FOR TRANSLATE TABLE @VA04830 00244000
- R EQU X'D9' RIGHT SWITCH STATUS @VA04250 00245000
- L EQU X'D3' LEFT SWITCH STATUS @VA04250 00246000
- MAXUSER EQU 256 MAX OF 256 USERS @VA04250 00247000
- TRANIN EQU 7 INPUT LENGTH TO TRANSLATE @VA04250 00248000
- LRSW DS C LEFT/RIGHT SWITCH @VA04250 00249000
- OUTLINE DS CL60 OUTPUT LINE @VA04250 00250000
- ORG OUTLINE LINE DESCRIPTION @VA04250 00251000
- OUTLEFT DS CL28 LEFT HALF @VA04250 00252000
- OUTSPACE DC CL4' ' SPACE @VA04250 00253000
- OUTRIGHT DS CL28 RIGHT HALF @VA04250 00254000
- USERID DS 1D USER ID @VA04250 00255000
- UIDSPACE DS CL2 PADDING @VA04250 00256000
- ADDRESS DS CL6 VMBLOCK ADDRESS @VA04250 00257000
- ADDSPACE DS CL4 PADDING @VA04250 00258000
- VMRSTATE DS CL8 STATUS @VA04250 00259000
- HEADER1 DC CL30'USERID ADDRESS VMRSTAT' @VA04250 00260000
- HEADER2 DC CL30' USERID ADDRESS VMRSTAT' @VA04250 00261000
- ERMSG711 DC C'DMMVMB711I LOOP IN VMBLOK CHAIN' @VA04428 00262000
- BLANKOUT DC CL30' ' FILL CHAR @VA04830 00263000
- PATCH DC 50F'0' PATCH @VA04250 00264000
- LTORG @VA04250 00265000
- PSA LOW CORE DSECT @VA04250 00266000
- COPY VMBLOK VBLOKS DSECT @VA04250 00267000
- R0 EQU 0 R0 EQUALS REGISTER 0 @VA04250 00268000
- R1 EQU 1 R1 EQUALS REGISTER 1 @VA04250 00269000
- R2 EQU 2 R2 EQUALS REGISTER 2 @VA04250 00270000
- R3 EQU 3 R3 EQUALS REGISTER 3 @VA04250 00271000
- R4 EQU 4 R4 EQUALS REGISTER 4 @VA04250 00272000
- R5 EQU 5 R5 EQUALS REGISTER 5 @VA04250 00273000
- R6 EQU 6 R6 EQUALS REGISTER 6 @VA04250 00274000
- R7 EQU 7 R7 EQUALS REGISTER 7 @VA04250 00275000
- R8 EQU 8 R8 EQUALS REGISTER 8 @VA04250 00276000
- R9 EQU 9 R9 EQUALS REGISTER 9 @VA04250 00277000
- R10 EQU 10 R10 EQUALS REGISTER 10 @VA04250 00278000
- R11 EQU 11 R11 EQUALS REGISTER 11 @VA04250 00279000
- R12 EQU 12 R12 EQUALS REGISTER 12 @VA04250 00280000
- R13 EQU 13 R13 EQUALS REGISTER 13 @VA04250 00281000
- R14 EQU 14 R14 EQUALS REGISTER 14 @VA04250 00282000
- R15 EQU 15 R15 EQUALS REGISTER 15 @VA04250 00283000
- END 00284000
ibm/vm370-lib/dumpscan/dmmvmb.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator