ibm:vm370-lib:dumpscan:dmmgrc.assemble_src
Table of Contents
DMMGRC Source
References
- Fixes Applied : 0
- This Source Date : Friday, December 8, 1978
- Last Fix ID : [Unmodified]
Source Listing
- DMMGRC.ASSEMBLE.txt
- GRC TITLE 'DMMGRC (IPCS) VM/370 - RELEASE 6' 00001000
- * 00002000
- * MODULE NAME: DMMGRC 00003000
- * 00004000
- * 00005000
- * FUNCTION: GIVEN AN ADDRESS READS THE DUMP RECORD CONTAINING 00006000
- * THE DATA AT THAT ADDRESS AND PASSES THE DATA BACK TO THE 00007000
- * CALLER. 00008000
- * 00009000
- * ATTRIBUTES: REUSABLE 00010000
- * NON-REENTRANT 00011000
- * 00012000
- * 00013000
- * ENTRY POINTS: DMMGRC 00014000
- * 00015000
- * 00016000
- * ENTRY CONDITIONS: SHARED CONSTANT AREA CONTAINS AN ADDRESS AT 00017000
- * GRCPARM WHICH IS THE REQUESTED DATA ADDRESS 00018000
- * 00019000
- * 00020000
- * EXIT CONDITIONS: NORMAL -- R1 POINTS TO DATA READ FROM DUMP 00021000
- * ERROR RETURN -- TO DMMPRM TO PROMPT USER FOR 00022000
- * INFORMATION BEFORE QUITTING. 00023000
- * 00024000
- * 00025000
- * CALLS TO OTHER ROUTINES: DMMPRM IF ERROR ENCOUNTERED 00026000
- * (DMMPRM WILL NOT RETURN TO DMMGRC). 00027000
- * 00028000
- * 00029000
- * EXTERNAL REFERENCES: WRKBUF (COMMON 4K WORK BUFFER) 00030000
- * EXINREC (COMMON 4K INPUT AREA) 00031000
- * EXCONST (COMMON CONSTANT AREA) 00032000
- * 00033000
- * 00034000
- * TABLES/WORKAREAS: 00035000
- * 00036000
- * 00037000
- * REGISTER USAGE: R14 RETURN REGISTER 00038000
- * R13 SAVEAREA POINTER 00039000
- * R12 BASE REGISTER 00040000
- * R10 INPUT RECORD POINTER 00041000
- * R8 WRKBUF POINTER (COMMON WORK BUFFER) 00042000
- * R7 COMMON SHARED CONSTANT AREA POINTER 00043000
- * R2-R6 WORK 00044000
- * 00045000
- * 00046000
- * NOTES: A 200 BYTE PATCH AREA EXISTS AT LABEL 'PATCH' 00047000
- * 00048000
- * 00049000
- * OPERATION: 00050000
- * 00051000
- * I. TAKE ADDRESS SUPPLIED BY THE CALLER AND LOCATE WHICH 00052000
- * DUMP RECORD CONTAINS THE DATA AT THE GIVEN ADDRESS. 00053000
- * II. READ IN THE RECORD WHICH CONTAINS THE DATA. 00054000
- * III. CALCULATE WHERE IN THE REC. THE DATA REQUESTED BY THE 00055000
- * CALLER RESIDES. 00056000
- * IV. RETURN TO CALLER WITH R1 POINTING TO THE DATA. 00057000
- * ERROR MESSAGES: 00058000
- * DMMGRC100S ERROR 'NNN' READING FILE 'PRBNNNNN DUMP A1' 00059000
- * DMMGRC809S REQUESTED ADDRESS NOT IN DUMP 00060000
- * 00061000
- * 00062000
- EJECT 00063000
- DMMGRC CSECT @VA04250 00064000
- USING DMMGRC,R15 TEMPORARY ADDRESSABILITY @VA04250 00065000
- B START BRANCH AROUND EYECATCHER @VA04250 00066000
- DS 0D @VA04250 00067000
- MODNAME DC C'DMMGRC ' MODULE NAME @VA04250 00068000
- RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00069000
- START STM R14,R12,12(R13) SAVE CALLER'S REGISTERS @VA04250 00070000
- DROP R15 @VA04250 00071000
- LR R12,R15 ESTABLISH OUR BASE @VA04250 00072000
- USING DMMGRC,R12 @VA04250 00073000
- ST R13,SAVEAREA+8 CALLER'S SAVEAREA POINTER @VA04250 00074000
- LA R13,SAVEAREA POINT TO OUR SAVEAREA @VA04250 00075000
- EXTRN WRKBUF SYSTEM WORK BUFFER (4K) @VA04250 00076000
- L R9,VWRKBUF POINT TO COM WRK BUFFER @VA04250 00077000
- USING WRKBUF,R9 @VA04250 00078000
- L R7,VEXCON POINT TO COMMON AREA @VA04250 00079000
- USING SHARECON,R7 @VA04250 00080000
- L R10,VINREC POINT TO INPUT AREA @VA04250 00081000
- USING DMPINREC,R10 @VA04250 00082000
- *************************************************************** 00083000
- * START BY FINDING WHERE IN THE DUMP THE DATA ASSOCIATED 00084000
- * WITH THE ADDRESS SUPPLIED BY THE CALLER IS LOCATED (WHICH 00085000
- * RECORD NUMBER). 00086000
- *************************************************************** 00087000
- L R2,GRCPARM GET ADDR SUPPLIED BY CALLER @VA04250 00088000
- LA R2,0(R2) HIGH ORDER BYTE OFF @VA04250 00089000
- LA R3,PAGEMAP POINT TO PAGE MAP @VA04250 00090000
- LR R4,R2 WORK REG WITH USER ADDRESS @VA04250 00091000
- SRL R4,12 GET PAGE NUMBER @VA04250 00092000
- LA R5,RECORD5 START REC NUMBER AT 5 @VA04250 00093000
- * (PREVIOUS RECORDS ARE CONTROLS AND TABLES) 00094000
- LA R6,MAXCOUNT TO INSURE WE DON'T LOOP @VA04250 00095000
- GETENTRY CH R4,0(R3) FOUND THE REQUESTED PAGE? @VA04250 00096000
- BE GOTPAGE YES - GOT IT @VA04250 00097000
- LA R3,ISIZE(R3) BUMP ITEM TBL PTR @VA04250 00098000
- LA R5,NEXTREC(R5) BUMP RECORD NUMBER @VA04250 00099000
- CLC FOXES,0(R3) END OF ITEM TABLE? @VA04250 00100000
- BE MSGITEND YES - GO WRITE ABOUT IT @VA04250 00101000
- BCT R6,GETENTRY TRY AGAIN IF NOT TOO FAR @VA04250 00102000
- B MSGITEND DIDN'T FIND END OF ITEM TBL @VA04250 00103000
- *************************************************************** 00104000
- * WE NOW KNOW THE REC NUMBER IN THE DUMP WHERE THE DATA 00105000
- * EXISTS. NOW READ IT IN, CALCULATE WHERE THE DATA THE USER 00106000
- * REQUESTED IS IN THE BUFFER, AND RETURN TO HIM. 00107000
- *************************************************************** 00108000
- GOTPAGE L R3,DMPFSCB POINT OT FSCB OF DUMP FILE @VA04250 00109000
- FSREAD FSCB=(R3),BUFFER=WRKBUF,RECNO=(R5) @VA04250 00110000
- LR R6,R15 RETURN CODE FROM FSWRITE @VA04250 00111000
- FSCLOSE FSCB=(R3) @VA04250 00112000
- LTR R6,R6 GOOD RETURN FROM FSREAD? @VA04250 00113000
- BNZ RDERROR NO, GO PROCESS ERROR @VA04250 00114000
- LR R4,R2 LOAD WORK REG @VA04250 00115000
- SRL R4,12 ROUNDS R4 DOWN TO @VA04250 00116000
- SLL R4,12 START OF THIS PAGE @VA04250 00117000
- SR R2,R4 NOW R2 HAS OFFSET INTO BUFF @VA04250 00118000
- *************************************************************** 00119000
- * ALL PROCESSING HAS BEEN SUCCESSFUL. RETURN TO CALLER WITH 00120000
- * ADDRESS OF DATA REQUESTED IN R1. 00121000
- *************************************************************** 00122000
- LA R1,WRKBUF START OF BUFFER TO R1 @VA04250 00123000
- AR R1,R2 R1 POINTS TO THE REQ DATA @VA04250 00124000
- GRCRET L R13,SAVEAREA+8 RESTORE CALLER'S SAVEAREA @VA04250 00125000
- LM R14,R0,12(R13) RESTORE REGISTERS @VA04250 00126000
- LM R2,R12,28(R13) PRESERVING R1 @VA04250 00127000
- SR R15,R15 RETURN CODE ZERO @VA04250 00128000
- BR R14 GO BACK TO CALLER @VA04250 00129000
- *************************************************************** 00130000
- * ISSUE MESSAGE AND THEN GO TO PROMPTING ROUTINE 00131000
- * DMMGRC809S REQUESTED ADDRESS NOT IN DUMP 00132000
- *************************************************************** 00133000
- MSGITEND LA R2,MSGEND POINT TO MESSAGE TEXT @VA04250 00134000
- LA R3,MSGENDL LENGTH OF MESSAGE @VA04250 00135000
- MVC TEXT5(L'MSGEND),MSGEND MOVE MESSAGE TO TEXT @VA04250 00136000
- B NOPAGE GO WRITE MESSAGE @VA04250 00137000
- *************************************************************** 00138000
- * ISSUE MESSAGE: 00139000
- * DMMGRC100S ERROR 'NNN' READING 'PRBNNNNN DUMP A1' 00140000
- * WE WILL THEN GO DIRECTLY TO PROMPT WHO WILL RETURN TO DMMEDM 00141000
- *************************************************************** 00142000
- RDERROR CVD R6,WKDWD CONVERT RET CODE TO DECIMAL @VA04250 00143000
- UNPK RDCODE,PACKED(TWO) UNPACK INTO MESSAGE @VA04250 00144000
- OI RDCODE2,NUMERIC MAKE IT READABLE @VA04250 00145000
- MVC FNAME,DUMPNUM MOVE 'PRBNNNNN' TO MSG @VA04250 00146000
- LA R2,MSGREAD POINT TO MESSAGE @VA04250 00147000
- LA R3,MSGREADL LENGTH OF MESSAGE @VA04250 00148000
- MVC TEXT5(MSGREADL),MSGREAD MOVE MESSAGE TO TEXT @VA04250 00149000
- NOPAGE WRTERM (R2),(R3) @VA04250 00150000
- *************************************************************** 00151000
- * CALL DMMPRM (HE WILL NOT RETURN HERE BUT RETURN TO DMMEDM) 00152000
- *************************************************************** 00153000
- GRCQUIT2 OI TYPESW,PROCERR SET PROCESS ERROR SWITCH @VA04250 00154000
- CALL DMMPRM CALL PROMPTING ROUTINE @VA04250 00155000
- EJECT 00156000
- *************************************************************** 00157000
- * CONSTANTS SAVEAREAS AND EQUATES 00158000
- *************************************************************** 00159000
- SAVEAREA DS 18F OUR SAVEAREA @VA04250 00160000
- WKDWD DS D DOUBLE WORD WORK AREA @VA04250 00161000
- VEXCON DC V(SHARECON) POINTER TO COMMON CONSTANTS @VA04250 00162000
- VINREC DC V(EXTINREC) DUMP RECORD INPUT AREA @VA04250 00163000
- VWRKBUF DC V(WRKBUF) POINTER TO WORKBUFFER @VA04250 00164000
- FOXES DC X'FFFF' @VA04250 00165000
- MSGEND DC C'DMMGRC809S REQUESTED ADDRESS NOT IN DUMP' @VA04250 00166000
- MSGENDL EQU *-MSGEND LENGTH OF MESSAGE @VA04250 00167000
- *************************************************************** 00168000
- * DMMGRC100S ERROR 'NNN' READING 'FILENAME FILETYPE FM' 00169000
- *************************************************************** 00170000
- MSGREAD DC C'DMMGRC100S ERROR ''' @VA04250 00171000
- RDCODE DS CL3 FSREAD RETURN CODE @VA04250 00172000
- DC C''' READING FILE ''' @VA04250 00173000
- FNAME DS CL8 DUMP FILE NAME @VA04250 00174000
- DC C' DUMP A1''' @VA04250 00175000
- MSGREADL EQU *-MSGREAD LENGTH OF MESSAGE @VA04250 00176000
- PATCH DC 50F'0' PATCH AREA @VA04250 00177000
- NUMERIC EQU X'F0' MASK TO INSURE NUMERICS @VA04250 00178000
- ISIZE EQU 2 LENGTH ITEM TABLE ENTRY @VA04250 00179000
- RECORD5 EQU 5 FIRST VALID DUMP DATA RECD @VA04250 00180000
- RDCODE2 EQU RDCODE+2 LOW ORDER BYTE OF RET CODE @VA04250 00181000
- MAXCOUNT EQU 1792 MAX DUMP RECORDS POSSIBLE @VA04250 00182000
- NEXTREC EQU 1 INCREMENT VALUE FOR MAP @VA04250 00183000
- TWO EQU 2 VALUE FOR MOVE COUNT ETC. @VA04250 00184000
- PACKED EQU WKDWD+6 RETURN CODE AFTER CVD @VA04250 00185000
- LTORG @VA04250 00186000
- COPY DMPBLOKS @VA04250 00187000
- PAGEMAP EQU DMPPGMAP+56 PAGE MAP LOC IN DMPINREC @V4075A1 00188000
- COPY EXCONST @VA04250 00189000
- REGEQU @VA04250 00190000
- END 00191000
ibm/vm370-lib/dumpscan/dmmgrc.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator