GET TITLE 'DMMGET (IPCS) VM/370 - RELEASE 6' 00001000
* 00002000
* MODULE NAME: 00003000
* DMMGET SUBROUTINE OF DUMPSCAN 00004000
* 00005000
* FUNCTION: 00006000
* FETCHES PORTIONS OF THE DUMP INTO CORE 00007000
* 00008000
* ATTRIBUTES: 00009000
* REUSABLE 00010000
* NON-REENTRANT 00011000
* 00012000
* ENTRY POINTS: 00013000
* DMMGET 00014000
* 00015000
* ENTRY CONDITIONS: 00016000
* R2 CONTAINS THE REQUIRED DUMP ADDRESS 00017000
* 00018000
* EXIT CONDITIONS: 00019000
* R2 CONTAINS THE INCORE ADDRESS OF THE REQUESTED AREA 00020000
* R15 CONTAINS A RETURN CODE 0 - GOOD 00021000
* 4 - WARNING 00022000
* R2 X'00' - PAGE WITHIN DUMP 00023000
* BUT NOT DUMPED 00024000
* R2 X'FF' - PAGE OUTSIDE 00025000
* RANGE OF DUMP 00026000
* 8 - FATAL 00027000
* CALLS TO OTHER ROUTINES: 00028000
* DMMINT TRANSLATE 00029000
* 00030000
* EXTERNAL REFERENCES: 00031000
* SCRNAREA DISPLAY AREA 00032000
* 00033000
* TABLES/WORKAREAS: 00034000
* BUFF1 WORK BUFFER 00035000
* BUFF2 ITEM TABLE BUFFER 00036000
* 00037000
* REGISTER USAGE: 00038000
* R15 ADDRESSES OF EXTERNAL ROUTINES 00039000
* R14 RETURNS FROM EXTERNAL ROUTINES 00040000
* R13 SAVE AREA ADDRESS 00041000
* R12 BASE 00042000
* R11 DUMP FSCB ADDRESS 00043000
* R10 INTERNAL LINKS 00044000
* R9-R2 WORK REGISTERS 00045000
* R2 INPUT AND OUTPUT PARAMETERS 00046000
* 00047000
* NOTES: 00048000
* 00049000
* 00050000
* OPERATION: 00051000
* THE REQUIRED ADDRESS IS PASSED IN R2. 00052000
* GET READS IN THE ITEM TABLE RECORD 00053000
* AND SCANS THE ITEM TABLE LOOKING FOR THE 00054000
* PHYSICAL RECORD CONTAINING THE REQUIRED PAGE 00055000
* IT READS IN THE PAGE TO BUFF1 AND LOADS 00056000
* R2 WITH THE INCORE ADDRESS CORRESPONDING TO 00057000
* THE REQUESTED ADDRESS. THIS IS PASSED BACK 00058000
* TO THE CALLER 00059000
* 00060000
* ERROR MESSAGES: 00061000
* DMMGET100S ERROR ' ' READING ' ' DUMP 00062000
* DMMGET708I THIS PAGE NOT FOUND IN THE DUMP 00063000
* 00064000
* * * * * * * *-----------------------------------------* 00065000
SPACE 2 00066000
DMMGET CSECT @VA04250 00067000
ENTRY BUFF1 DUMP DATA @VA04250 00068000
ENTRY BUFF2 ITEM TABLE @VA04250 00069000
ENTRY ISW ITEM TABL READ? @VA04250 00070000
ENTRY RECORDNO LAST RECORD READ @VA04250 00071000
EXTRN SCRNAREA DISPLAY AREA @VA04250 00072000
EXTRN DUMPFSCB FSCB FOR DUMP @VA04250 00073000
EXTRN DMMINT TRANSLATE @VA04250 00074000
EXTRN CONSOLE VIRT CONS ADDR. @VA04250 00075000
STM R14,R12,SAVEDISP(R13) CALLER REGS @VA04250 00076000
LR R12,R15 ADDRESS @VA04250 00077000
USING DMMGET,R12 USE IT @VA04250 00078000
ST R13,SAVEBACK CALLER SAVE PTR @VA04250 00079000
B EYECATCH BYPASS EYECATCHER @VA04250 00080000
DS 0D ALIGN @VA04250 00081000
DC CL8'DMMGET' EYECATCHER @VA04250 00082000
RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00083000
EYECATCH LA R13,SAVEAREA OUR SAVE PTR @VA04250 00084000
XC RETCODE,RETCODE CLEAR RETURN CODE @VA04250 00085000
L R11,DFSCBADD CATCH THE APPROPRIATE DUMP @VA04250 00086000
CLI ISW,ON HAVE WE READ THE ITEM TABLE ? @VA04250 00087000
L R7,BUFF2ADD SET UP BUFFER ADDRESSABILITY @VA04250 00088000
BE GOTITEM YES - SKIP THE READ @VA04250 00089000
FSREAD FSCB=(R11),ERROR=RDERR,BUFFER=BUFF2,RECNO=2 @VA04250 00090000
MVI ISW,ON SET 'ITEM TABLE READ' SW. @VA04250 00091000
GOTITEM LA R7,BITMAP(R7) INCREMENT TO BIT MAP @VA04250 00092000
LA R2,NULL(R2) CLEAR HI-ORDER BYTE @VA04250 00093000
LR R4,R2 LOAD WORK REG @VA04250 00094000
SRL R4,12 GET PAGE NO. IN R4 @VA04250 00095000
LA R5,RECSTART START REC - 5 @VA04250 00096000
LA R6,REC2END SET 'TOO FAR'. 1792 END OF REC2 @VA04250 00097000
GETENTRY CH R4,0(R7) PAGE# = ITEM TBL ENTRY? @VA04250 00098000
BE GOTPAGE YES - GOT IT @VA04250 00099000
BL NOTINDMP PAGE NOT DUMPED?? @VA04250 00100000
LA R7,TWO(R7) BUMP ITEM TBL PTR @VA04250 00101000
LA R5,ONE(R5) BUMP REC @VA04250 00102000
CLC 0(L'FOXES,R7),FOXES END OF ITEM TABLE? @VA04250 00103000
BE OFFEND OFF END - SET FLAG IN R2 @VA04250 00104000
BCT R6,GETENTRY TRY AGAIN IF NOT TOO FAR @VA04250 00105000
OFFEND LA R2,OFFENDER SET R2 TO SHOW '0FF' @VA04250 00106000
B MSGITEND GO WRITE MESSAGE @VA04250 00107000
NOTINDMP SR R2,R2 CLEAR R2 TO PASS BACK @VA04250 00108000
B MSGITEND GO WRITE MSG @VA04250 00109000
GOTPAGE C R5,RECORDNO WAS THIS RECORD ALREADY READ? @VA04250 00110000
BE NOREAD YES - BYPASS THE READ @VA04250 00111000
FSREAD FSCB=(R11),ERROR=RDERR,BUFFER=BUFF1,RECNO=(R5) @VA04250 00112000
ST R5,RECORDNO SAVE THE RECORD NUMBER. @VA04250 00113000
NOREAD LR R9,R2 LOAD WORKREG9 @VA04250 00114000
SRL R9,12 ROUNDS R9 DOWN TO @VA04250 00115000
SLL R9,12 NEXT LOWER PAGE @VA04250 00116000
SR R2,R9 NOW R2 HAS OFFSET INTO BUFF2 @VA04250 00117000
L R5,BUFF1ADD ADDRESSABILITY FOR BUFF1 @VA04250 00118000
LA R2,0(R2,R5) NOW R2 HAS IN CORE ADDRESS @VA04250 00119000
* * * * * * * * ------- -------- -------- ------- * 00120000
* * * * * * * *RETURN 00121000
* * * * * * * * ------- -------- -------- ------- * 00122000
RETURN L R13,SAVEBACK GET SAVE REG @VA04250 00123000
MVC SAVREG15(L'RETCODE,R13),RETCODE AND RETURN CODE @VA04250 00124000
ST R2,SAVEREG2(R13) PLUG 'IN CORE' ADDRESS @VA04250 00125000
LM R14,R12,SAVEDISP(R13) RESTORE REGS @VA04250 00126000
BR R14 GO BACK TO CALLER @VA04250 00127000
* * * * * * * *------- -------- -------- -------- ------* 00128000
MSGITEND SLL R4,12 CONVERT PAGE # BACK TO ADDRESS @VA04250 00129000
ST R4,NFPAGE PLUG IT TO TRANSLATE IT @VA04250 00130000
LA R3,XADDL COUNT OF BYTES - 3 @VA04250 00131000
LA R4,NFPAGE+ONE ADDRESS OF DATA @VA04250 00132000
L R15,INTADD ADDRESS OF TRANSLATE ROUTINE @VA04250 00133000
BALR R14,R15 LINK @VA04250 00134000
MVC PNFMSGPA(LPAGE),0(R5) PLUG TRANSLATED PAGE @VA04250 00135000
LA R8,ERMSG708 ADDRESS @VA04250 00136000
LA R9,E708L AND LENGTH @VA04250 00137000
BAL R10,WRTERM GO WRITE IT @VA04250 00138000
MVC RETCODE,CODE4 SET POOR RET CODE @VA04250 00139000
B RETURN LINK @VA04250 00140000
* * * * * * * *------- -------- -------- -------- ------* 00141000
* * * * * * * * THIS CLEARS THE SCREEN AND ALLOWS THE 00142000
* * * * * * * * NEXT OPERATION TO BE POSITIONED 00143000
* * * * * * * * AT THE TOP OF THE SCREEN 00144000
* * * * * * * *------- -------- -------- -------- ------* 00145000
CLEAR STM R8,R9,SAVCLR SAVE REGS @VA04250 00146000
L R8,SCRNADD GET THE ADDRESS OF THE SCREEN @VA04250 00147000
ST R8,CCWC PLUG ADDRESS IN CCW @VA04250 00148000
LA R8,CCWC CCW ADD @VA04250 00149000
L R9,CONSADD VIRT CONS ADDRESS LOCATION @VA04250 00150000
L R9,0(R9) VIRT CONS CUU @VA04250 00151000
MVI CCWC,FSWRITE RESTORE CMD CODE @VA04250 00152000
MVI CCWCTL,ON SET ERASE BYTE ON @VA04250 00153000
WAITT WAIT FOR TERMINAL TO QUIESCE @VA04250 00154000
DC X'83890058' DIAGNOSE @VA04250 00155000
LM R8,R9,SAVCLR RESTORE REGS @VA04250 00156000
BR R10 RETURN @VA04250 00157000
* * * * * * * *------- -------- -------- -------- ------* 00158000
* * * * * * * * THIS FORMATS THE RETURN CODE INTO THE MESSAGE 00159000
* * * * * * * *------- -------- -------- -------- ------* 00160000
RDERR XC DEPACK(L'DEPACK+L'DECODE),DEPACK CLEAR WORKAREA @VA04250 00161000
CVD R15,DECODE GET RET CODE IN DECIMAL @VA04250 00162000
UNPK DEPACK+FIV(L'DEPACK-FIV),DECODE+SIX(L'DECODE-SIX) 00163000
OI DEPACK+SEV,NUMZONE FIX UP SIGN TO PRINT @VA04250 00164000
MVC ERRMSGCD,DEPACK+FIV PLUG ERROR CODEINTO MSG @VA04250 00165000
MVC ERRMSGFN,FN(R11) PLUG FILE NAME @VA04250 00166000
MVC ERRMSGFT,FT(R11) AND TYPE @VA04250 00167000
MVC ERRMSGM(L'ERRMSGM-ONE),FM(R11) AND MODE @VA04250 00168000
BAL R10,CLEAR LINK @VA04250 00169000
LA R8,ERMSG100 ADDRESS @VA04250 00170000
LA R9,E100L @VA04250 00171000
BAL R10,WRTERM WRITE IT @VA04250 00172000
MVC RETCODE,CODE8 SET BAD RET CODE @VA04250 00173000
B RETURN GET OUT @VA04250 00174000
* * * * * * * * ------- -------- -------- ------- * 00175000
* * * * * * * * WRTERM ROUTINE 00176000
* * * * * * * * ------- -------- -------- ------- * 00177000
WRTERM ST R8,PARMLIS1 SAVE MSG TEXT PTR IN PARM LIST @V4075A2 00178100
ST R9,PARMLIS2 AND TEXT LENGTH @V4075A2 00178200
LA R1,PARMLIS1 POINTER TO PASS @V4075A2 00178300
L R15,FEDLNADD ADDRESS OF DMMFEDLN - LINE WRITER@V4075A2 00178400
BALR R14,R15 GO WRITE THE LINE @V4075A2 00178500
BR R10 AND RETURN @V4075A2 00178600
PARMLIS1 DS F PARM1 @V4075A2 00178700
PARMLIS2 DS F PARM2 @V4075A2 00178800
FEDLNADD DC V(DMMFEDLN) LINE WRITER ROUTINE @V4075A2 00178900
* * * * * * * * ------- -------- -------- ------- * 00180000
* * * * * * * * CONSTANTS 00181000
* * * * * * * * ------- -------- -------- ------- * 00182000
* * * * * * * * SAVEAREA 00183000
* * * * * * * * ------- -------- -------- ------- * 00184000
SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 00185000
SAVEUSR DS F USER WORD @VA04250 00186000
SAVEFWD DS F FORWARD POINTER @VA04250 00187000
SAVEBACK DS F BACKWARD POINTER @VA04250 00188000
SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 00189000
SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 00190000
SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 00191000
SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 00192000
SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 00193000
SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 00194000
SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 00195000
SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 00196000
SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 00197000
SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 00198000
SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 00199000
SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 00200000
SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 00201000
SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 00202000
SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 00203000
* * * * * * * * ------- -------- -------- ------- * 00204000
OFFENDER EQU X'FF' OFF END OF DUMP FLAG @VA04250 00205000
ON EQU X'FF' ON SWITCH STATUS @VA04250 00206000
FSWRITE EQU X'19' WRITE CCW CMD CODE @VA04250 00207000
NUMZONE EQU X'F0' NUMERIC ZONE @VA04250 00208000
NULL EQU X'00' CLEAR REGS @VA04250 00209000
ONE EQU 1 BUMP CTR @VA04250 00210000
TWO EQU 2 BUMP CTR @VA04250 00211000
XADDL EQU 3 LENGTH OF HEX ADDRESS @VA04250 00212000
RECSTART EQU 5 BYPASS FIRST 4 RECORDS @VA04250 00213000
FIV EQU 5 UNPACK CONSTS @VA04250 00214000
SIX EQU 6 UNPACK CONSTS @VA04250 00215000
LPAGE EQU 6 LENGTH OF TRANSLATED PAGE ADDR @VA04250 00216000
SEV EQU 7 UNPACK CONSTS @VA04250 00217000
FN EQU 8 FILE NAME IN FSCB @VA04250 00218000
SAVEDISP EQU 12 SAVE REGS @VA04250 00219000
SAVREG15 EQU 16 DISP TO REG 15 @VA04250 00220000
FT EQU 16 FILE TYPE IN FSCB @VA04250 00221000
FM EQU 24 FILE MODE IN FSCB @VA04250 00222000
SAVEREG2 EQU 28 DISP TO REG 2 IN SAVEAREA @VA04250 00223000
BITMAP EQU 512 DISP OF BIT MAP INTO RECORD 2 @VA04250 00224000
REC2END EQU 1792 SEARCH LIMIT @VA04250 00225000
RECORDNO DC F'0' LAST RECORD READ @VA04250 00226000
FOXES DC X'FFFF' END OF ITEM TABLE @VA04250 00227000
ISW DC X'00' ITEM TABLE READ? @VA04250 00228000
RETCODE DS F RETURN CODE @VA04250 00229000
NFPAGE DS F WORK AREA FOR PAGE NOT FOUND @VA04250 00230000
BUFF1ADD DC AL4(BUFF1) DUMP DATA BUFFER @VA04250 00231000
BUFF2ADD DC AL4(BUFF2) DUMP INFORMATION RECORD @VA04250 00232000
DFSCBADD DC AL4(DUMPFSCB) FSCB @VA04250 00233000
INTADD DC AL4(DMMINT) TRANSLATE @VA04250 00234000
CONSADD DC AL4(CONSOLE) VIRT CONS ADDRESS @VA04250 00235000
* * * * * * * * ------- -------- -------- ------- * 00236000
* * * * * * * * RDERR CONSTANTS 00237000
* * * * * * * * ------- -------- -------- ------- * 00238000
CODE4 DC F'4' NON FATAL RETURN @VA04250 00239000
CODE8 DC F'8' FATAL RET @VA04250 00240000
DEPACK DS D UNPACKED RET CODE @VA04250 00241000
DECODE DS D DEC RET CODE @VA04250 00242000
ERMSG100 DC C'DMMGET100S ERROR ''' TEXT OF ERROR MSG @VA04423 00243000
ERRMSGCD DC CL3' ' * @VA04250 00244000
ERRMSGT2 DC C''' READING FILE ''' * @VA04250 00245000
ERRMSGFN DC CL8' ' * @VA04250 00246000
DC CL2' ' FILLER @VA04250 00247000
ERRMSGFT DC CL6' ' * @VA04250 00248000
ERRMSGM DC CL3' ''' * @VA04250 00249000
E100L EQU *-ERMSG100 * @VA04250 00250000
* * * * * * * * ------- -------- -------- ------- * 00251000
ERMSG708 DC C'DMMGET708I PAGE ''' ERROR @VA04250 00252000
PNFMSGPA DC CL6' ' MESSSAGE @VA04250 00253000
PNFMSGMS DC CL62''' NOT FOUND IN THE DUMP' @VA04250 00254000
E708L EQU *-ERMSG708 LENGTH @VA04250 00255000
* * * * * * * * ------- -------- -------- ------- * 00256000
* * * * * * * * CLEAR CONSTANTS 00257000
* * * * * * * * ------- -------- -------- ------- * 00258000
CCWC CCW X'19',X'0',X'20',1760 ERASE CCW @VA04250 00259000
CCWCTL EQU CCWC+5 CONTROL BYTE @VA04250 00260000
SAVCLR DS 2F SAVE FOR CLEAR SUBR. @VA04250 00261000
SCRNADD DC AL4(SCRNAREA) ADDRESS OF AREA TO BE DISPLAYED @VA04250 00262000
* * * * * * * * ------- -------- -------- ------- * 00263000
PATCH DC 50F'0' PATCH @VA04250 00264000
LTORG @VA04250 00265000
BUFF1 DS 512D @VA04250 00266000
BUFF2 DS 512D @VA04250 00267000
REGEQU @VA04250 00268000
END 00269000