INI TITLE 'DMMINI (IPCS) VM/370 - RELEASE 6' 00001000
* MODULE NAME - 00002000
* 00003000
* DMMINI 00004000
* 00005000
* CONTENTS - 00006000
* 00007000
* DMMINI - VMFDUMP INTERFACE AND PROBLEM NUMBER ASSIGNMENT 00008000
* DMMEXT - DATA EXTRACTION INITIALIZATION 00009000
* DMMPRG - CP PROGRAM CHECK DATA EXTRACTION 00010000
* DMMCPA - CP CODED ABEND DATA EXTRACTION 00011000
* DMMMNM - MODULE NAME SEARCH 00012000
* DMMRMV - MOVE REGISTERS TO PROBLEM REPORT 00013000
* DMMMAP - COMPRESS LOAD MOD MAP 00014000
* DMMTRN - TRANSLATE DATA FROM BINARY TO ZONED FORMAT 00015000
* DMMGRC - READ IN SPECIFIED DUMP RECORD 00016000
* DMMPRM - PROMPT USER FOR ADDITIONAL PROBLEM INFORMATION 00017000
* 00018000
EJECT 00019000
* SUBROUTINE NAME - 00020000
* 00021000
* DMMINI 00022000
* 00023000
* FUNCTION - 00024000
* INTERFACE TO VMFDUMP PROGRAM 'DMKEDM' 00025000
* IF A DUMP NAME WAS SPECIFIED IN THE OPTIONS LIST 00026000
* CONTROL IS RETURNED TO DMKEDM FOR NORMAL PROCESSING. 00027000
* IF A DUMP NAME WAS NOT SPECIFIED A UNIQUE PROBLEM 00028000
* NUMBER IS ASSIGNED TO THE DUMP AND CONTROL IS RETURNED 00029000
* TO DMKEDM TO READ THE DUMP FROM THE CP SPOOL FILE AND 00030000
* CREATE A CMS FILE TO BE USED BY THE DATA EXTRACTION 00031000
* ROUTINES. 00032000
* 00033000
* ENTRY CONDITIONS - 00034000
* 00035000
* GPR1 = VMFDUMP PARAMETER LIST 00036000
* GPR14 = RETURN ADDRESS OF DMKEDM 00037000
* EXIT CONDITIONS - 00038000
* 00039000
* NORMAL - TO DMKEDM TO PROCESS THE CP SPOOL FILE 00040000
* ABNORMAL - IF THE PROBLEM NUMBER FILE (SUMMFILE) 00041000
* RETRIEVAL RESULTS IN AN ERROR 00042000
* RETURN TO DMKEDM AND HALT VMFDUMP PROCESSING 00043000
* 00044000
* CALLS TO OTHER ROUTINES - 00045000
* 00046000
* NONE 00047000
* 00048000
* EXTERNAL REFERENCES - 00049000
* 00050000
* DUMPLIST - DMKEDM LIST OF DUMP NAMES 00051000
* EDMRET - DMKEDM RETURN TO CMS 00052000
* 00053000
* TABLES AND WORK AREAS - NONE 00054000
* 00055000
* REGISTER USAGE - 00056000
* 00057000
* GPR1 = VMFDUMP PARAMETER LIST 00058000
* GPR12 = BASE REGISTER 00059000
* ERROR MESSAGES: 00060000
* 00061000
* DMMINI100S ERROR 'NNN' READING FILE 'SUMMARY RECORD A1' 00062000
* DMMINI200S ERROR 'NNN' WRITING FILE 'SUMMARY RECORD A1' 00063000
* DMMINI300S ERROR 'NNN' FINDING FILE 'SUMMARY RECORD A1' 00064000
* DMMINI400S ERROR 'NNN' CLOSING FILE 'SUMMARY RECORD A1' 00065000
EJECT 00066000
* 00067000
* 00068000
DMMINI CSECT @VA04250 00069000
ENTRY SUMBUF PROBLEM NUMBER BUFFER @VA04250 00070000
USING *,R15 TEMPORARY ADDRESSABILITY @VA04250 00071000
B START BRANCH AROUND EYECATCHER @VA04250 00072000
DS 0D @VA04250 00073000
MODNAME DC C'DMMINI ' MODULE NAME @VA04250 00074000
RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00075000
START STM R0,R15,PRBSAVE UNCONVENTIONAL SAVE FOR EDM @VA04250 00076000
LR R12,R15 ESTABLISH BASE @VA04250 00077000
USING DMMINI,R12 @VA04250 00078000
DROP R15 @VA04250 00079000
LA R6,EIGHT(R1) SAVE PLIST FROM DMKEDM @VA04250 00080000
*************************************************************** 00081000
* FIRST LOADMOD THE REMAINDER OF THE VMFDUMP EXTENSION CODE 00082000
*************************************************************** 00083000
LA R1,LOADMOD POINT TO PLIST @VA04250 00084000
SVC CMSCALL CALL CMS TO LOADMOD VMFDUMP2 @VA04250 00085000
DC AL4(ERR202) ERROR RETURN @VA04250 00086000
*************************************************************** 00087000
* NOW SEE IF WE HAVE TO ASSIGN A PROBLEM NUMBER 00088000
*************************************************************** 00089000
CLC =C'DUMP',0(R6) WAS DUMPXX OPTION PASSED? @VA04250 00090000
BE EDMPROC GO LET DMKEDM PROCESS @VA04250 00091000
CLC =C'PRB',0(R6) WAS A NAME PASSED ? @VA04250 00092000
BNE PRBASIGN NO, LETS ASSIGN ONE @VA04250 00093000
EDMPROC LM R0,R15,PRBSAVE YES @VA04250 00094000
BR R14 RETURN TO DMKEDM @VA04250 00095000
PRBASIGN FSSTATE FSCB=SUMMFILE,ERROR=PRBNOSUM @VA04250 00096000
FSREAD FSCB=SUMMFILE,ERROR=PRBQUITR,RECNO=1 @VA04250 00097000
FSCLOSE FSCB=SUMMFILE,ERROR=PRBQUITC @VA04250 00098000
PRBDUMNO L R6,DUMPLADD DUMPLIST ADDRESS IN DMKEDM @VA04250 00099000
MVC 0(THREE,R6),=C'PRB' INDICATE DUMP NAME PRBXXXX @VA04250 00100000
MVC THREE(FIVE,R6),SUMBUF NEXT AVAIL INTO DUMPLIST @VA04250 00101000
PACK IDSUM,SUMBUF(FIVE) PROBLEM NUMBER TO DECIMAL @VA04250 00102000
CP IDSUM,TENK DUMP NUMBER EXCEED MAX? @VA04250 00103000
BL PRBBUMP NO - CONTINUE @VA04250 00104000
SP IDSUM,IDSUM YES - RESET ID TO ZERO @VA04250 00105000
PRBBUMP AP IDSUM,WUN BUMP NEXT AVAIL PROB NO @VA04250 00106000
UNPK SUMBUF(FIVE),IDSUM PUT NEW NEXT AVAIL INTO SUMM @VA04250 00107000
OI LASTBYTE,NUMERIC FIX UP LOW ORDER TO PRINT @VA04250 00108000
MVC DUMPTEST(EIGHT),0(R6) GET DUMP FILE NAME @VA04250 00109000
LA R2,DUMPTEST POINT TO DUMP FN FT FM @VA04250 00110000
FSSTATE (R2),ERROR=DOUPDATE @VA04250 00111000
B PRBDUMNO GO INCREMENT DUMP NUMBER @VA04250 00112000
DOUPDATE FSWRITE FSCB=SUMMFILE,ERROR=PRBWRTER,RECNO=1 @VA04250 00113000
FSCLOSE FSCB=SUMMFILE,ERROR=PRBQUITC @VA08731 00113500
LM R0,R15,PRBSAVE RESTOR THE REGISTERS @VA04250 00114000
BR R14 GO BACK TO EDM @VA04250 00115000
PRBNOSUM CH R15,TWENTY8 NO SUMMARY FILE @VA04250 00116000
BNE PRBQUITF NO - SOME OTHER ERROR - GO PUT @VA04250 00117000
MVC SUMBUF(FIVE),NTEN A ZONED '1' INTO THE BUFFER @VA04250 00118000
FSWRITE FSCB=SUMMFILE,ERROR=PRBWRTER @VA04250 00119000
B PRBDUMNO GO ASSIGN NUMBER FOR DMKEDM @VA04250 00120000
PRBWRTER MVC ERRMSGTY,WRITING MOVE WRITING TO ERROR MSG @VA04250 00121000
MVC ERRMSGNO,WRITERR MOVE 200S INTO MSG @VA04250 00122000
B PRBRC GET RETURN CODE @VA04250 00123000
PRBQUITF MVC ERRMSGTY,FINDING MOVE FINDING TO ERROR MSG @VA04250 00124000
MVC ERRMSGNO,STATERR MOVE 300S INTO MESSAGE @VA04250 00125000
B PRBRC CONTINUE @VA04250 00126000
PRBQUITR MVC ERRMSGTY,READING MOVE READING TO ERROR MESSAG @VA04250 00127000
MVC ERRMSGNO,READERR MOVE 100 INTO MESAGE @VA04250 00128000
B PRBRC CONTINUE @VA04250 00129000
PRBQUITC MVC ERRMSGTY,CLOSING MOVE CLOSING TO ERROR MSG @VA04250 00130000
MVC ERRMSGNO,CLOSERR MOVE CLOSE TO ERROR MSG @VA04250 00131000
PRBRC CVD R15,ERRCODE GET RETURN CODE FOR MESSAGE @VA04250 00132000
UNPK ERRCODEZ,ERRCODE+FOUR(FOUR) UNPACK IT @VA04250 00133000
OI LOWCODE,NUMERIC MAKE IT READABLE @VA04250 00134000
MVC ERRMSGCD,CDPLUS1 AND PLUG IT IN @VA04250 00135000
WRTERM ERRMSG,ERRMSGL WRITE MESSAGE @VA04250 00136000
GOBACK L R14,RETNEDM GET EDM EXIT TO CMS ROUTINE @VA04250 00137000
LM R0,R13,PRBSAVE RESTORE EDM'S REGS @VA04250 00138000
LA R15,EIGHT SET RETURN CODE TO EIGHT @VA04250 00139000
BR R14 RETURN TO DMKEDM @VA04250 00140000
*************************************************************** 00141000
* ERROR TRYING TO LOADMOD VMFDUMP2 MODULE 00142000
*************************************************************** 00143000
ERR202 CVD R15,WKDWD STORE RETURN CODE IN WORK AREA @VA04250 00144000
UNPK MSG202CD(THREE),WKDWD+SIX(TWO) RET. CODE IN MSG @VA04250 00145000
OI MSG202CD+TWO,NUMERIC MAKE CODE READABLE @VA04250 00146000
LA R2,MSG202L GET LENGTH OF MESSAGE @VA04250 00147000
WRTERM MSG202,(R2) @VA04250 00148000
B GOBACK RETURN TO EDM @VA04250 00149000
EJECT 00150000
* 00151000
* CONSTANT AREA - 00152000
* 00153000
PRBSAVE DS 16F REGISTER SAVE AREA @VA04250 00154000
RETNEDM DC V(RETN) DMKEDM CMS RETURN ROUT. ADDR @VA04250 00155000
LOADMOD DC C'LOADMOD VMFDUMP2' SECOND MODULE OF SPLIT MOD @VA04250 00156000
DC X'FFFFFFFFFFFFFFFF' @VA04250 00157000
WKDWD DS D DOUBLE WORD WORK AREA @VA04250 00158000
DUMPLADD DC V(DUMPLIST) ADDR. OF LIST OF DUMPS IN DMKEDM @VA04250 00159000
DS 0F @VA04250 00160000
TWENTY8 DC X'001C' @VA04250 00161000
DS 0D @VA04250 00162000
ERRCODE DS CL8 ERROR CODE FOR FILE ERROR MSG @VA04250 00163000
ERRCODEZ DS CL4 @VA04250 00164000
FINDING DC C'FINDING' ERROR DEF. FOR STATE @VA04250 00165000
READING DC C'READING' ERROR DEF. FOR FILE READ @VA04250 00166000
WRITING DC C'WRITING' ERROR DEF. FOR FILE WRITE @VA04250 00167000
CLOSING DC C'CLOSING' ERROR DEF. FOR FILE CLOSE @VA04250 00168000
*************************************************************** 00169000
* PROTOTYPE ERROR MESSAGE 00170000
*************************************************************** 00171000
ERRMSG DC C'DMMINI' @VA04250 00172000
ERRMSGNO DS CL3 ERROR MESSAGE NUMBER @VA04250 00173000
DC C'S ERROR ''' @VA04250 00174000
ERRMSGCD DS CL3 ERROR MESSAGE RETURN CODE @VA04250 00175000
DC C''' ' @VA04250 00176000
ERRMSGTY DS CL7 FUNCTION WHICH ERRED @VA04250 00177000
DC C' FILE' @VA04250 00178000
DC C' ''' @VA04250 00179000
ERRMSGFN DC C'SUMMARY RECORD A1''' @VA04250 00180000
ERRMSGL EQU *-ERRMSG LENGTH OF ERROR MESSAGE @VA04250 00181000
*************************************************************** 00182000
STATERR DC C'300S' MESSAGE NO. FOR STATE ERROR @VA04250 00183000
WRITERR DC C'200S' MESSAGE NO. FOR WRITE ERROR @VA04250 00184000
CLOSERR DC C'400S' MESSAGE NO. FOR CLOSE ERROR @VA04250 00185000
READERR DC C'100S' MESSAGE NO. FOR READ ERROR @VA04250 00186000
*************************************************************** 00187000
* ERROR MESSAGE DMMINI803S 00188000
*************************************************************** 00189000
MSG202 DC C'DMMINI803S ERROR ''' @VA04250 00190000
MSG202CD DS CL3 @VA04250 00191000
DC C''' ATTEMPTING LOADMOD FOR VMFDUMP2' @VA04250 00192000
MSG202L EQU *-MSG202 @VA04250 00193000
*************************************************************** 00194000
TENK DC X'000099999C' CONSTANT FOR HIGHEST DUMP NUMBER @VA04250 00195000
WUN DC X'001C' CONSTANT FOR CREATING DUMP NO. 1 @VA04250 00196000
IDSUM DS CL5 DUMP NUMBER WORK FIELD @VA04250 00197000
SUMBUF DC 80C' ' PROBLEM NUMBER BUFFER @VA04250 00198000
SUMMFILE FSCB 'SUMMARY RECORD',BUFFER=SUMBUF,BSIZE=80 @VA04250 00199000
DUMPTEST DC C'PRB00000DUMP A1' PROSPECTIVE DUMP FN FT FM @VA04250 00200000
NTEN DC C'00001' @VA04250 00201000
ONE EQU 1 FOR MVC LENGTHS ETC. @VA04250 00202000
TWO EQU 2 FOR MVC LENGTHS ETC. @VA04250 00203000
THREE EQU 3 FOR MVC LENGTHS ETC. @VA04250 00204000
FOUR EQU 4 FOR MVC LENGTHS ETC. @VA04250 00205000
FIVE EQU 5 FOR MVC LENGTHS ETC. @VA04250 00206000
SIX EQU 6 FOR MVC LENGTHS ETC. @VA04250 00207000
SEVEN EQU 7 FOR MVC LENGTHS ETC. @VA04250 00208000
EIGHT EQU 8 FOR MVC LENGTHS ETC. @VA04250 00209000
LASTBYTE EQU SUMBUF+4 LAST BYTE OF RECORD NUMBER @VA04250 00210000
LOWCODE EQU ERRCODEZ+3 LOW ORDER OF ERR CODE @VA04250 00211000
CDPLUS1 EQU ERRCODEZ+1 ERR CODE LOCATION @VA04250 00212000
LTORG @VA04250 00213000
EJECT 00214000
* 00215000
* SUBROUTINE NAME - 00216000
* 00217000
* DMMEXT 00218000
* 00219000
* FUNCTION - 00220000
* 00221000
* SECONDARY ENTRY POINT FROM DMKEDM. AT ENTRY IT HAS BEEN 00222000
* DETERMINED VMFDUMP WAS STARTED FOR DATA EXTRACTION. 00223000
* AND A PROBLEM NUMBER HAS BEEN ASSIGNED TO THE DUMP. 00224000
* THIS ROUTINE WILL DETERMINE THE CAUSE OF THE DUMP. 00225000
* 00226000
* 00227000
* OPERATION - 00228000
* 00229000
* 1. READ RECORD 1 FROM THE DUMP (SYMBOL TABLE) INTO 00230000
* 'WRKBUF' TO DETERMINE THE HIGHEST RESIDENT PAGE ADD. 00231000
* AND EXTRACT THE PLC AND SCP LEVEL FOR THE PROBLEM 00232000
* REPORT. 00233000
* 00234000
* 2. READ RECORD 2 FROM THE DUMP (DUMP INFORMATION RECORD) 00235000
* INTO 'EXTINREC' BUFFER FOR LATER RETRIEVAL OF GENERAL 00236000
* REGISTERS AND USE OF THE DUMP FILE PAGE BIT MAP. 00237000
* THE DATE AND TIME OF THE FAILURE IS ALSO TAKEN FROM 00238000
* RECORD 2 AND STORED IN THE PROBLEM REPORT. 00239000
* 00240000
* 3. READ RECORD 5 FROM THE DUMP, FOR PSA REFERENCE, INTO 00241000
* BUFFER 'EXTPSA'. 00242000
* 00243000
* 4. THE RUNUSER VALUE IS TAKEN FROM THE PSA AND THE 00244000
* VMBLOK ADDRESS AND USER I.D. IS MOVED TO THE PROBLEM 00245000
* REPORT. 00246000
* 00247000
* 5. A CALL IS MADE TO ROUTINE 'DMMMAP' TO COMPRESS 00248000
* AND ADDRESS SORT THE LOAD MODULE MAP (NUC MAP A) 00249000
* FOR LATER MODULE NAME SEARCH. 00250000
* 00251000
* 6. DETERMINE THE CAUSE OF THE DUMP BY VARIOUS 00252000
* EXAMINATIONS OF THE PSA (PROGRAM CHECK,CP CODED ABEND 00253000
* LOOP OR WAIT) AND CALLS THE APPROPRIATE ROUTINE. 00254000
* 00255000
* A. TEST THE PROGRAM OLD PSW FOR A PROGRAM 00256000
* CHECK. IF THE PSW IS SYSTEM STATE AND NOT 00257000
* MONITOR CALL THE PRG. CHECK IS CONSIDERED 00258000
* TO BE IN THE CONTROL PROGRAM. 00259000
* B. TEST THE MACHINE CHECK PSW. INDICATE IN 00260000
* PROBLEM REPORT THE PRESENCE OF A MACHINE 00261000
* CHECK WHETHER OR NOT THIS IS THE CAUSE OF 00262000
* THE PROBLEM. 00263000
* C. TEST THE SVC OLD PSW IF IT IS IN THE SYSTEM 00264000
* STATE AND THE INTERRUPT CODE IS '0' (SVC 0) 00265000
* THE ABEND IS CONSIDERED A CONTROL PROGRAM 00266000
* CODED ABEND. 00267000
* D. IF NEITHER PRG.CHECK OR CP CODED ABEND 00268000
* A CHECK IS MADE FOR A 'PSA002' ABEND 00269000
* INDICATING THE DUMP WAS THE RESULT 00270000
* OF DEPRESSING THE SYSTEM RESTART 00271000
* BUTTON. IF THE DUMP WAS OPERATOR INITIATED 00272000
* THE CURRENT PSW WAIT BIT IS TESTED,IF ON 00273000
* A WAIT STATE CONDITION IS ASSUMED. IF OFF 00274000
* THE DUMP WAS THE RESULT OF A LOOP OR OTHER 00275000
* CONDITION. 00276000
* E. FOR WAIT,LOOP AND OTHER CONDITIONS THE LAST 00277000
* FOUR TRACE ENTRIES ARE MOVED INTO THE TEXT 00278000
* AREA OF THE PROBLEM REPORT. IF THERE IS A 00279000
* WAIT CODE ASSOCIATED WITH THE WAIT IT IS 00280000
* MOVED TO THE PROBLEM REPORT. FOR LOOP OR 00281000
* OTHER CONDITION THE CURRENT PSW IS MOVED TO 00282000
* THE PROBLEM REPORT TEXT AREA. 00283000
* F. THE APPROPRIATE ROUTINE IS NOW CALLED TO 00284000
* FURTHER PROCESS THE DUMP. 00285000
* 00286000
* ATTRIBUTES: NON-REUSABLE 00287000
* NON-REENTERABLE 00288000
* 00289000
* ENTRY CONDITIONS: ADDR. CONSTANT DUMPLIST POINTS TO THE DUMP 00290000
* NUMBER BEING PROCESSED BY DMKEDM(VMFDUMP). 00291000
* 00292000
* EXIT CONDITIONS: 'TYPESW' SWITCH IS SET INDICATING THE NATURE 00293000
* OF THE DUMP AS FOLLOWS: 00294000
* 00295000
* 1. TYPESW X'01' WAIT 00296000
* 2. X'02' LOOP 00297000
* 3. X'04' PROGRAM CHECK 00298000
* 4. X'08' C.P. CODED ABEND 00299000
* 5. X'80' INDICATES PROCESSING ERROR 00300000
* IN DATA EXTRACTION. 00301000
* 00302000
* CALLS TO OTHER ROUTINES: DMMTRN - PROCESS BINARY DATA TO 00303000
* BE MOVED TO THE PROBLEM REPORT. 00304000
* DMMGRC - TO READ DUMPFILE RECORD 00305000
* DMMMAP - TO COMPRESS AND ADDRESS SORT 00306000
* THE LOAD MOD MAP FOR LATER 00307000
* PROCESSING. 00308000
* DMMPRG - CALLED IF DUMP WAS THE RESULT 00309000
* OF A PROGRAM CHECK IN CP. 00310000
* DMMCPA - CALLED IF DUMP WAS THE RESULT 00311000
* OF A CP CODED ABEND. 00312000
* DMMPRM - CALLED IF DUMP WAS LOOP 00313000
* OR WAIT 00314000
* EXTERNAL REFERENCES: DUMPLIST - ADDR. OF DUMP NAME IN DMKEDM 00315000
* RETN - RETURN ADDRESS TO CMS IN DMKEDM 00316000
* 00317000
* TABLES/WORKAREAS: 00318000
* 00319000
* REGISTER USAGE: R13 SAVEAREA 00320000
* R12 BASE REGISTER 00321000
* R11 ADDRESS OF BUFFER CONTAINING PSA 00322000
* R10 ADDRESS OF DUMP INFORMATION RECORD 00323000
* R9 ADDRESS OF WORK BUFFER 00324000
* R8 ADDRESS OF INTERNAL DATA AREA 00325000
* R7 ADDRESS OF SHARED CONSTANT AREA 00326000
* R2 - R6 WORK REGISTERS 00327000
* R1 PARAMETER REGISTER 00328000
* 00329000
* 00330000
* NOTES: A 200 BYTE PATCH AREA EXISTS AT LABEL 'PATCH' 00331000
* 00332000
* 00333000
* 00334000
* 00335000
* ERROR MESSAGES: 00336000
* 00337000
* DMMINI100S ERROR 'NNN' READING 'PRBXXXXX DUMP A1 @V4075A1 00338000
* DMMINI400S ERROR 'NNN' READING 'PRBXXXXX DUMP A1' @V4075A1 00339000
* DMMINI800S DATA EXTRACTION FAILURE @V4075A1 00340000
* 00341000
* 00342000
EJECT 00343000
ENTRY WRKBUF @VA04250 00344000
DMMEXT CSECT @VA04250 00345000
USING *,R15 @VA04250 00346000
STM R0,R15,HOLDSAVE UNCONVENTIONAL SAVE FOR DMKEDM @VA04250 00347000
LR R12,R15 RE-ESTABLISH ADDRESSABILITY @VA04250 00348000
USING DMMEXT,R12 @VA04250 00349000
DROP R15 @VA04250 00350000
L R11,=A(EXTPSA) ADDRESS OF PSA BUFFER @VA04250 00351000
USING PSA,R11 ADDRESS OF PSA BUFFER @VA04250 00352000
L R10,=A(EXTINREC) @VA04250 00353000
USING DMPINREC,R10 DUMP FILE DUMP INFO. REC ADDR. @VA04250 00354000
L R9,=A(WRKBUF) ADDRESS OF WORK BUFFER @VA04250 00355000
USING WRKBUF,R9 @VA04250 00356000
L R8,=A(INTDATA) INTERNAL DATA AREA @VA04250 00357000
USING INTSECT,R8 @VA04250 00358000
L R7,=A(SHARECON) ADDRESS SHARED CONSTANTS @VA04250 00359000
USING SHARECON,R7 @VA04250 00360000
ST R14,EDMRET SAVE DMKEDM RETURN ADDRESS @VA04250 00361000
LA R6,DUMPFILE GET ADDRESS OF DUMP FSCB @VA04250 00362000
ST R6,DMPFSCB SAVE IT IN SHARED CONST. @VA04250 00363000
MVC EDMSAVE(SIXTY4),HOLDSAVE SAVE DMKEDM REGS @VA04250 00364000
LA R13,EXTSAVE ESTABLISH SAVE AREA FOR CALLERS @VA04250 00365000
L R3,DLISTAD GET THE ADDRESS OF EDM DUMPLIST @VA04250 00366000
MVC DUMPFILE+EIGHT(EIGHT),0(R3) DUMP NAME TO FSCB @VA04250 00367000
MVC DUMPNUM(EIGHT),0(R3) DUMP NAME TO CONSTANT @VA04250 00368000
LA R3,DUMPFILE GET DUMPFILE FSCB ADDRESS @VA04250 00369000
ST R3,DMPFSCB STORE IN SHARED CONSTANT AREA @VA04250 00370000
EJECT 00371000
************************************ 00372000
* INITIALIZE THE BUFFERS 00373000
************************************ 00374000
* 00375000
* DUMPFILE BUFFER INITIALIZATION 00376000
* 00377000
EXTREAD FSREAD FSCB=DUMPFILE,BUFFER=EXTINREC,ERROR=EXTERR,RECNO=2 00378000
L R2,DMPPRFRG TERMINATING PSA ADDRESS @V4075A1 00379000
SRL R2,12 SHIFT DOWN TO GET PAGE NO. @V4075A1 00379050
LA R3,MAPSTART START OF PAGE MAP @V4075A1 00379100
L R5,PAGEZERO PUT 5 IN R5 THIS IS PAGE ZERO @V4075A1 00379150
LA R6,MAPEND SET R6 TO COUNT COMPARES @V4075A1 00379200
RECOMP BCT R6,MAPCOMP COUNT COMPARES @V4075A1 00379250
B EXTERR QUIT WERE PAST THE END @V4075A1 00379300
MAPCOMP CH R2,0(R3) COMP REQ'D PAGE TO MAP @V4075A1 00379350
BE GOTREC IS THIS IT @V4075A1 00379400
CLC 0(FOUR,R3),ALLF END OF TABLE? @V4075A1 00379450
BE EXTERR GO TO READ ERROR RTN @V4075A1 00379500
LA R3,TWO(R3) BUMP THE MAP REGISTER @V4075A1 00379550
LA R5,ONE(R5) BUMP THE PAGE NUMBER @V4075A1 00379600
B RECOMP GO COMPARE AGAIN @V4075A1 00379650
GOTREC FSREAD FSCB=DUMPFILE,BUFFER=EXTPSA,ERROR=EXTERR,RECNO=(R5) 00379700
DUMCL FSCLOSE FSCB=DUMPFILE,ERROR=EXTERRC @V4075A1 00380000
************************************************************* 00381000
* GET RUNUSER NAME AND VMBLOK ADDRESS AND MOVE TO REPORT 00382000
************************************************************* 00383000
MVC TEXTA(L'USER),USER MOVE USER HEADING TO TEXT @VA04250 00384000
L R2,RUNUSER GET RUNUSER ADDRESS @VA04250 00385000
LA R2,0(,R2) RESET HIGH ORDER BYTE @VA04250 00386000
LTR R2,R2 TEST FOR NO ADDRESS @VA04250 00387000
BZ EXTDATE BYPASS RUNUSER ROUTINE @VA04250 00388000
LA R2,RUNUSER RUNUSER ADDRESS FOR TRANS. @VA04250 00389000
ST R2,TRNPARM1 STORE ADDRESS FOR TRANSLATE @VA04250 00390000
LA R2,FOUR BYTE COUNT FOR TRANSLATE @VA04250 00391000
ST R2,TRNPARM STORE BYTE COUNT FOR TRANS. @VA04250 00392000
CALL DMMTRN TRANSLATE ADDRESS TO PRINTABLE @VA04250 00393000
MVC TEXTA+L'USER(EIGHT),0(R1) RUNUSER ADDR.TO TEXT @VA04250 00394000
USING VMBLOK,R0 @VA04250 00395000
L R2,RUNUSER GET RUNUSER ADDRESS @VA04250 00396000
LA R2,VMUSER(R2) ADDRESS OF VIRT MACH NAME @VA04250 00397000
ST R2,GRCPARM SAVE IT IN PARM LIST @VA04250 00398000
CALL DMMGRC CALL RECORD READ ROUTINE @VA04250 00399000
MVC TEXTUSER(EIGHT),0(R1) VMACH ID TO TEXT @VA04250 00400000
*************************************************************** 00401000
* MOVE DATE AND TIME OF THE FAILURE TO THE INTERNAL DATA AREA 00402000
*************************************************************** 00403000
EXTDATE MVC INTED,DMPPGMAP+DATEDISP GET DATE FOR SKELETON @VA04250 00404000
MVC INTET,DMPPGMAP+DISPTIME GET TIME @VA04250 00405000
*************************************************************** 00406000
* FIND THE ADDRESS OF DMKCPEND IN THE SYMBOL TABLE - HIGHEST 00407000
* NON-PAGEABLE ADDRESS OF CP NUCLEUS 00408000
* FIND THE ADDRESS OF DMKSYSRM AND SAVE IT FOR CALCULATING THE 00409000
* THE BEGINNING OF THE TRACE TABLE. 00410000
*************************************************************** 00411000
FSREAD FSCB=DUMPFILE,BUFFER=WRKBUF,ERROR=EXTERR,RECNO=1 00412000
LA R6,WRKBUF SYMBOL TABLE ADDRESS IN R6 @VA04250 00413000
EXTFIND CLC EEND,0(R6) IS NAME 'DMKCPEND'? @VA04250 00414000
BE EXTREND YES @VA04250 00415000
CLC EXTCPID,0(R6) IS IT DMKCPEID? @V4075A1 00415100
BNE EXTTABRM NO, GO ON @V4075A1 00415200
L R4,EIGHT(R6) YES, GET HIS ADDRESS @V4075A1 00415300
ST R4,GRCPARM SAVE IT FOR RECORD READ @V4075A1 00415400
EXTTABRM CLC STORSIZE,0(R6) IS IT DMKSYSRM? @V4075A1 00416000
BNE EXTRESUM NO, GO ON @VA04250 00417000
L R5,EIGHT(,R6) YES, GET ADDRESS @VA04250 00418000
ST R5,EXTSYSRM SAVE FOR TRACE START CALC @VA04250 00419000
EXTRESUM LA R6,TWELVE(R6) BUMP TO NEXT ENTRY @VA04250 00420000
B EXTFIND GO BACK AND COMPARE AGAIN @VA04250 00421000
EXTREND L R6,EIGHT(R6) CPEND ADDRESS @VA04250 00422000
ST R6,REALEND 'DMKCPEND' TO SHARED CONS @VA04250 00423000
LA R3,CPBACK BACK UP R6 48 BYTES @VA05444 00424100
CALL DMMGRC GO FIND THE PAGE FOR THIS ADDR. @VA04250 00427000
LR R2,R1 RECORD ADDRESS FROM GRC @VA04250 00428000
MVC VMSCPLV1,RELLEV1(R2) MOVE REL LEV TO KEY @VA04250 00429000
MVC INTPLC,FIVE(R2) SAVE PLC IN INTSECT @VA04250 00430000
MVC VMPLC1,FIVE(R2) MOVE PLC LEVEL TO KEY AREA @VA04250 00431000
LA R3,FIVE LOAD COUNT FOR TRANSLATE OF @VA04250 00432000
ST R3,TRNPARM BYTE COUNT FOR TRN @VA04250 00433000
LA R4,CPUID+ONE SERIAL AND CPU TYPE. POINT TO @VA04250 00434000
ST R4,TRNPARM1 DATA ADDRESS FOR TRN @VA04250 00435000
CALL DMMTRN INPUT BYTES AND GO TO EXTRANS. @VA04250 00436000
LR R5,R1 TRANSLATED DATA ADDRESS @VA04250 00437000
MVC INTSER,0(R5) MOVE TRANSLATED DATE AND TIME @VA04250 00438000
MVC INTCPUT,SEVEN(R5) TO THE REPORT AREA @VA04250 00439000
*************************************************************** 00440000
* CALL DMMMAP TO COMPRESS THE NUC. MAP FOR MODULE NAME SEARCH 00441000
*************************************************************** 00442000
L R6,MAPBUFF ADDRESS OF NUC. MAP BUFFER @VA04250 00443000
ST R6,MAPPARM PUT BUFFER IN PARM @VA04250 00444000
MVC MAPPARM1,DUMPNUM PUT DUMP NUMBER IN PARM @VA04250 00445000
LA R1,MAPPARM INITIALIZE PARM REGISTER @VA04250 00446000
CALL DMMMAP ADD A SORTED NUC MAP TO DUMP @VA04250 00447000
LTR R15,R15 CHECK RETURN CODE @VA04250 00448000
BNZ MAPERROR GO TO ERROR ROUTINE @VA04250 00449000
EJECT 00450000
************************************************************* 00451000
* CHECK OLD PSWS FOR MACHINE CHECK,PROGRAM CHECK OR SVC 0 00452000
************************************************************* 00453000
EXTPSWCK CLC PROPSW,NOCHECK HAS THERE BEEN A PROG CHK? @VA04250 00454000
BE EXTSVCHK NO , HOW ABOUT A MACHINE CHK. @VA04250 00455000
TM PCPROPSW,PROB P.C OLD PSW IN PROB STATE @VA04250 00456000
BO EXTSVCHK YES, GO CHECK MACHINE CHECK OLD @VA04250 00457000
TM CPMONPER,X'40' MONITOR CALL ? @VA08707 00458100
BO EXTSVCHK YES @VA08707 00458200
OI TYPESW,PRGCKSW INDICATE PROGRAM CHECK @VA04250 00460000
CALL DMMPRG GO TO PROGRAM CHECK ROUTINE @VA04250 00461000
EXTSVCHK TM SVCPROB,PROB SVC OLD IN PROBLEM STATE? @VA04250 00462000
BO EXTPSCHK YES - GO CHECK FOR PSA02 @VA04250 00463000
CLI SVCINTCD,SVC0 IS IT SVC 0? @VA04250 00464000
BE EXTPSCHK YES - CHECK FOR PSA02 @VA04250 00465000
CLC DMPABEND(FOUR),PSA02 IS THIS A PSA02? @V4075A1 00466000
BE EXTLPWT YES, GO TO LOOP-WAIT RTN @VA04250 00467000
OI TYPESW,CPABSW INDICATE CODED ABEND @VA04250 00468000
CALL DMMCPA @VA04250 00469000
EXTPSCHK CLC DMPABEND(FOUR),PSA02 IS THIS A PSA02? @V4075A1 00470000
BE EXTLPWT YES - SOMEONE BLUE-BUTTONED IT @VA04250 00471000
CLI NUCERR,NUCERRON WAS THERE A NUC MAP ERROR? @VA04250 00472000
BE EXTCPA YES, GO TO CODED ABEND RTN. @VA04250 00473000
OI TYPESW,CPABSW INDICATE CODED ABEND @VA04250 00474000
EXTCPA CALL DMMCPA CALL CODED ABEND ROUTINE @VA04250 00475000
EXTLEAV CALL DMMPRM CALL PROMPTING ROUTINE @VA04250 00476000
EJECT 00477000
************************************************************** 00478000
* ENTER HERE IF DUMP WAS CAUSED BY RESTART BUTTON - PSA002 - 00479000
* AND CHECK FOR A LOOP OR WAIT 00480000
************************************************************** 00481000
EXTLPWT LA R4,IPLCCW1 MOVE CURRENT PSW FOR TRANS @VA04250 00482000
LA R3,EIGHT SET BYTE COUNT FOR TRANSLATE @VA04250 00483000
ST R4,TRNPARM1 PUT DATA ADDRESS IN PARM @VA04250 00484000
ST R3,TRNPARM STORE BYTE COUNT IN PARM @VA04250 00485000
CALL DMMTRN CALL TRANSLATE ROUTINE @VA04250 00486000
LR R5,R1 GET TRANSLATED DATA ADDRESS @VA04250 00487000
MVC CURPSWHD(L'CURRPSW),CURRPSW HEADING TO TEXT @VA04250 00488000
MVC TXCURPSW(SIXTEEN),0(R5) CURR PSW TO TEXT @VA04250 00489000
LA R2,SEVEN SHORTEN KEY LENGTH FOR WAIT-LOOP @VA04250 00490000
LH R3,KEY GET CURRENT KEY LENGTH @VA04250 00491000
SR R3,R2 ADD NEW LENGTH @VA04250 00492000
STH R3,KEY UPDATE KEY LENGTH @VA04250 00493000
LH R3,FAILLN GET PRESENT FAILURE KEY LNGTH @VA04250 00494000
SR R3,R2 REDUCE BY SEVEN @VA04250 00495000
STH R3,FAILLN STORE NEW LENGTH @VA04250 00496000
TM IPLCCW1+ONE,WAIT CURRENT PSW IN WAIT? @VA04250 00497000
BNO EXTLPTST NO MUST BE LOOP @VA04250 00498000
MVC VMFAIL1(L'WAITFAIL),WAITFAIL 'WAIT' TO KEY @VA04250 00499000
MVC INTX1(L'WAITFAIL),WAITFAIL FAILURE TO INTSECT @VA04250 00500000
OI TYPESW,WAITSW INDICATE WAIT @VA04250 00501000
CLC CURRWTCD(THREE),WTCODE1 WAIT CODE 1 OR MORE @VA04250 00502000
BL EXTTRTAB GO GET LAST FOUR TRACE ENTRIES @VA04250 00503000
LA R3,TWO SET UP & GO TO @VA04250 00504000
ST R3,TRNPARM BYTE COUNT FOR TRN @VA04250 00505000
LA R4,WTCDTWO TRANSLATE THE @VA04250 00506000
ST R4,TRNPARM1 DATA ADDRESS FOR TRN @VA04250 00507000
CALL DMMTRN WAIT CODE. @VA04250 00508000
LR R5,R1 TRANSLATED DATA ADDRESS @VA04250 00509000
MVC FAILWTCD(THREE),ONE(R5) WAIT CODE TO SHARE CON @VA04250 00510000
MVC INTX1(SEVEN),VMFAIL1 FAILURE TO INT.DATA AREA @VA04250 00511000
LA R2,THREE WAIT CODE LENGTH @VA04250 00512000
LH R3,KEY CURRENT KEY LENGTH @VA04250 00513000
AR R3,R2 ADD CURRENT TO NEW @VA04250 00514000
STH R3,KEY UPDATE KEY LENGTH @VA04250 00515000
LH R3,FAILLN FAILURE KEY LENGTH @VA04250 00516000
AR R3,R2 ADD THREE @VA04250 00517000
STH R3,FAILLN STORE NEW LENGTH @VA04250 00518000
EXTTRACE B EXTTRTAB GO GET LAST FOUR TRACE ENTRIES @VA04250 00519000
EJECT 00520000
************************************************************** 00521000
* THIS ROUTINE MOVES THE LAST FOUR TRACE TABLE ENTRIES TO THE 00522000
* SHARED CONSTANT TEXT AREA 00523000
*************************************************************** 00524000
EXTTRTAB L R2,EXTSYSRM GET ADDRESS OF DMKSYSRM @VA04250 00525000
ST R2,GRCPARM SAVE IT FOR RECORD READ RTN. @VA04250 00526000
CALL DMMGRC CALL RECORD READ ROUTINE @VA04250 00527000
L R2,0(,R1) R2 NOW HAS IPL STORAGE SIZE @VA04250 00528000
A R2,EXTROUND ROUND OFF TO NEXT 256K @VA04250 00529000
LA R2,0(R2) RESET HIGH ORDER BYTE @VA04250 00530000
SRL R2,18 DIVIDE BY 256K @VA04250 00531000
SLL R2,12 MULTIPLY BY 4096 @VA04250 00532000
L R3,ENDTRAC GET END OF TRACE TABLE @V4075A1 00533000
SR R3,R2 R3 SHOULD NOW HAVE STARTING ADDR.@VA04250 00534000
ST R3,EXTRBEG SAVE TRACE START ADDR. @VA04250 00535000
L R3,CURRTRAC CURRENT TR TBL POINTER @V4075A1 00536000
SRL R3,12 SHIFT DOWN TO GET PAGE NUMBER @VA04250 00537000
SLL R3,12 @VA04250 00538000
L R4,EXTRBEG TRACE START ADDRESS @VA04250 00539000
SRL R4,12 SHIFT DOWN TO GET PAGE NUMBER @VA04250 00540000
SLL R4,12 @VA04250 00541000
CR R4,R3 CURRENT IN FIRST PAGE? @VA04250 00542000
BNE EXTTRGO NO,GO TO NORMAL START CALCULATION@VA04250 00543000
L R3,CURRTRAC CURRENT TR TBL POINTER @V4075A1 00544000
SLL R3,20 SHIFT UP TO GET DISPLACEMNET @VA04250 00545000
SRL R3,20 @VA04250 00546000
C R3,TRPAGE1 SEE IF MORE THAN FOUR ENTRIES IN @VA04250 00547000
BC 10,EXTTRGO R3 EQUAL OR HIGH NORMAL CALC. @VA04250 00548000
MVI PAGE1SW,ON SET PAGE ONE SWITCH @VA04250 00549000
LA R4,SIXTY4 SET R4 TO MAXIMUM TRACE BYTES @VA04250 00550000
SR R4,R3 HOW MUCH FROM TRACE END? @VA04250 00551000
L R2,ENDTRAC POINTER TO END OF TR TBL @V4075A1 00552000
SR R2,R4 BACK UP BY CALCULATION @VA04250 00553000
B EXTBYPAS GO STORE PARM FOR RECORD RTN. @VA04250 00554000
EXTTRGO L R2,CURRTRAC CURRENT TR TBL POINTER @V4075A1 00555000
LA R6,SIXTY4 BACK UP @VA04250 00556000
SR R2,R6 FOUR ENTRIES @VA04250 00557000
EXTBYPAS LA R6,FOUR SET MOVE COUNT TO FOUR @VA04250 00558000
ST R2,GRCPARM RECORD ADDRESS FOR GRC @VA04250 00559000
CALL DMMGRC GET TRACE TABLE INTO CORE @VA04250 00560000
LA R5,TRACBUFF GET ADDRESS OF TRACE BUFFER @VA04250 00561000
CLI PAGE1SW,ON ARE WE WORKING WITH TRACE PAGE 1?@VA04250 00562000
BE EXTEXEC YES, GO EXECUTE THE MOVE TO BUFF @VA04250 00563000
SLL R2,20 SHIFT R2 TO GET @VA04250 00564000
SRL R2,20 DISPLACEMENT OF TRACE START @VA04250 00565000
C R2,TRCSTRT ARE WE AT THE END OF THE PAGE? @VA04250 00566000
BL EXTRCNRM NO,GO TO NORMAL TRACE ROUTINE @VA04250 00567000
L R3,TRCEND GET TRACE END CONSTANT @VA04250 00568000
SR R3,R2 SUBTRACT TRACE POINTER DISPL. @VA04250 00569000
LA R3,ONE(,R3) BUMP COUNT BY ONE @VA04250 00570000
LA R5,TRACBUFF ADDRESS OF TRACE ENTRY BUFFER @VA04250 00571000
B EXTEXEC GO EXECUTE TRACE MOVE @VA04250 00572000
EXTTRCR CALL DMMGRC GO READ TRACE ENTRY FROM DUMP @VA04250 00573000
EXTEXEC EX R3,EXTSHRTR MOVE PORTION OF TRACE TABLE @VA04250 00574000
CLI TRACESW,ON IS THIS THE SECOND MOVE? @VA04250 00575000
BE EXTEND YES,WRAP IT UP @VA04250 00576000
CLI PAGE1SW,ON DID WE OVERLAP TO START OF TRACE?@VA04250 00577000
BNE EXTGRC NO, GET ADDRESS FROM GRCPARM @VA04250 00578000
L R2,EXTRBEG YES, GET TRACE START ADDRESS @VA04250 00579000
B EXT64 @VA04250 00580000
EXTGRC L R2,GRCPARM ADDRESS OF FIRST READ @VA04250 00581000
EXT64 LA R4,SIXTY4 MAXIMUM TRACE BYTE COUNT @VA04250 00582000
SR R4,R3 REDUCE BY FIRST MOVE AMOUNT @VA04250 00583000
CLI PAGE1SW,ON < THAN 4 ENTRIES ON 1ST PAGE? @VA04250 00584000
BE EXTNOADD YES,BR AROUND FOLLOWING ADDITION @VA04250 00585000
AR R2,R3 ADD TO FIRST READ ADDRESS @VA04250 00586000
EXTNOADD AR R5,R3 BUMP BUFFER BY FIRST MOVE AMOUNT @VA04250 00587000
ST R2,GRCPARM STORE NEXT PAGE ADDR. IN PARM @VA04250 00588000
LA R3,0(,R4) SET EXECUTE REG @VA04250 00589000
MVI TRACESW,ON TURN ON TRACE SECOND SWITCH @VA04250 00590000
B EXTTRCR GO GET NEXT RECORD @VA04250 00591000
EXTEND LA R2,TRACBUFF ADDRESS OF TRACE ENTRY BUFFER @VA04250 00592000
B EXTRANTR GO TRANSLATE TRACE ENTRIES @VA04250 00593000
EXTSHRTR MVC 0(0,R5),0(R1) MOVE TRACE ENTRIES TO BUFFER @VA04250 00594000
EXTRCNRM LR R2,R1 RECORD ADDRESS FROM GRC @VA04250 00595000
EXTRANTR LA R3,SIXTY4 SET BYTE COUNT FOR TRANSLATE @VA04250 00596000
ST R3,TRNPARM BYTE COUNT FOR TRN @VA04250 00597000
LA R4,0(,R2) SET R4 TO POINT TO DATA @VA04250 00598000
ST R4,TRNPARM1 DATA ADDRESS FOR TRN @VA04250 00599000
CALL DMMTRN CALL THE TRANSLATE ROUTINE @VA04250 00600000
LR R5,R1 TRANSLATED DATA ADDRESS @VA04250 00601000
MVC TEXT1(L'TTHEAD),TTHEAD MOVE TRACE HEADER TO TEXT@VA04250 00602000
LA R3,TEXTENTR POINT R3 TO TEXT ENTRY @VA04250 00603000
SR R2,R2 CLEAR R2 @VA04250 00604000
EXTMVTR MVC 0(EIGHT,R3),0(R5) MOVE TRACE ENTRIES TO TEXT @VA04250 00605000
LA R2,ONE(,R2) INCREMENT MOVE COUNT @VA04250 00606000
LA R5,EIGHT(,R5) INCREMENT DATA POINTER @VA04250 00607000
LA R3,TEN(,R3) INCREMENT TEXT POINTER @VA04250 00608000
BCT R6,EXTMVTR @VA04250 00609000
EXUPDAT ST R2,MOVCNT STORE TOTAL IN MOVE COUNT FIELD @VA04250 00610000
CLC MOVCNT,=X'00000010' SEE IF SIXTEEN MOVES @VA04250 00611000
BL EXTTEXT GO MOVE SOME MORE @VA04250 00612000
BE EXTLEAV EXIT IF ALL ENTRIES MOVED @VA04250 00613000
EXTTEXT LA R3,FORTY(,R3) SET TEXT NEXT LINE ADDRESS @VA04250 00614000
LA R6,FOUR RESET ENTRY COUNTER @VA04250 00615000
B EXTMVTR @VA04250 00616000
MAPERROR OI TYPESW,PROCERR INDICATE PROCESSING ERROR @VA04250 00617000
MVI NUCERR,NUCERRON SET NUC MAP ERROR SWITCH @VA04250 00618000
B EXTPSCHK GO SEE IF THIS IS LOOP OR WAIT @VA04250 00619000
CALL DMMCPA CALL THE PROMPTING RTN. @VA04250 00620000
DS 0F @VA04250 00621000
MOVCNT DC F'0' COUNTER FOR TRACE ENTRY MOVE @VA04250 00622000
TRACBUFF DS 16F WORK BUFFER FOR TRACE ENTRIES @VA04250 00623000
TRCEND DC X'00000FFF' TRACE PAGE END CONSTANT @VA04250 00624000
PAGE1SW DC X'00' INDICATE TRACE ENTRIES IN PAGE 1 @VA04250 00625000
DS 0F @VA04250 00626000
TRPAGE1 DC X'00000040' COMPARE DISP. FOR PAGE 1 @VA04250 00627000
TRCSTRT DC X'00000FC0' COMPARE DISP. FOR END OF PAGE @VA04250 00628000
STORSIZE DC C'DMKSYSRM' IPL STORAGE SIZE CONSTANT @VA04250 00629000
EXTROUND DC X'0003EFFF' CONS.TO ROUND TO NEXT FULL PAGE @VA04250 00630000
EXTSYSRM DC F'0' SAVE AREA FOR IPL STORAGE SIZE @VA04250 00631000
EXTRBEG DC F'0' SAVE AREA FOR START OF TRACE @VA04250 00632000
ON EQU X'FF' SWITCH ON @VA04250 00633000
TRACESW DC X'00' TRACE SWITCH @VA04250 00634000
CURRPSW DC C'CURRENT PSW ' @VA04250 00635000
TTHEAD DC C'LAST FOUR TRACE ENTRIES' @VA04250 00636000
EXTLPTST OI TYPESW,LOOPSW TURN ON LOOPSWIT FOR DMMPRM @VA04250 00637000
B EXTTRTAB GO GET TRACE ENTRIES @VA04250 00638000
EXTERR CH R15,EOF IS IT END OF FILE? @V4075A1 00639000
BE DUMCL YES, ITS OK @V4075A1 00639100
CVD R15,ERRWK CONVERT FSREAD RETURN CODE @V4075A1 00639200
UNPK RCDE,ERRWK+SIX(TWO) UNPACK TO MESSAGE @VA04250 00640000
OI RCDE+TWO,NUMERIC MAKE IT READABLE @VA04250 00641000
MVC PRBERR,DUMPNUM MOVE DUMP NUMBER TO MSG @VA04250 00642000
LA R2,READMSG DMMEXT100S MESSAGE @VA04250 00643000
LA R3,READMSGL LENGTH OF MESSAGE @VA04250 00644000
BAL R4,WRTMSG GO WRITE READ ERROR MSG @VA04250 00645000
WRTMSG WRTERM (R2),(R3) @VA04250 00646000
WRTERM 'DMMINI800S DATA EXTRACTION FAILURE' @V0475A1 00647000
*************************************************************** 00648000
* IF AN ERROR IS ENCOUNTERED ATTEMPTING TO READ THE DUMPFILE 00649000
* GET DMKEDM'S CMS RETURN ADDRESS AND QUIT. 00650000
*************************************************************** 00651000
EXTCAT L R14,EXTDSKER LOAD RETURN ADDRESS TO CMS @VA04250 00652000
L R13,EDMSAVE+52 RESTORE REG 13 FOR DMMEDM @VA10450 00652500
BR R14 @VA04250 00654000
*************************************** 00655000
* CLOSE ERROR ROUTINE 00656000
**************************************** 00657000
EXTERRC CVD R15,ERRWK CONVERT FSCLOSE RETURN TO DEC @VA04250 00658000
UNPK CCODE,ERRWK+SIX(TWO) UNPACK TO MSG @VA04250 00659000
OI CCODE+TWO,NUMERIC MAKE IT READABLE @VA04250 00660000
LA R2,CLOSMSG DMMEXT400S MESSAGE @VA04250 00661000
LA R3,CLMSGL GET LENGTH OF MESSAGE @VA04250 00662000
MVC CLPRBNM,DUMPNUM MOVE DUMP NAME TO MSG @VA04250 00663000
BAL R4,WRTMSG COMMON WRITE ROUTINE @VA04250 00664000
B EXTCAT RETURN TO CMS @VA04250 00665000
WAITFAIL DC C'WAIT' FAILURE KEYWORD FOR WAIT @VA04250 00666000
PSA02 DC X'D7E2C102' PSAO2 ABEND CODE @VA04250 00667000
ERRWK DS D DOUBLE FOR WORK AREA @VA04250 00668000
*********************************** 00669000
* MESSAGE CONSTANT AREA 00670000
*********************************** 00671000
READMSG DC C'DMMINI100S ERROR ''' @V4075A1 00672000
RCDE DS CL3 FSREAD RETURN CODE @VA04250 00673000
DC C''' READING FILE ''' @VM04421 00674000
PRBERR DS CL8 @VA04250 00675000
PRBNAME DC C' DUMP A1''' @VM04421 00676000
READMSGL EQU *-READMSG @VA04250 00677000
CLOSMSG DC C'DMMINI400S ERROR ''' @V4075A1 00678000
CCODE DS CL3 FSCLOSE RETURN CODE @VA04250 00679000
DC C''' CLOSING FILE ''' @VM04421 00680000
CLPRBNM DS CL8 @VA04250 00681000
DC C' DUMP A1''' @VM04421 00682000
CLMSGL EQU *-CLOSMSG @VA04250 00683000
*************************************** 00684000
* CONSTANT AREA 00685000
**************************************** 00686000
DS 0F @VA04250 00687000
EXTCPID DC C'DMKCPEID' DMKCPEID IN SYMBOL TABLE @V4075A1 00687100
EEND DC C'DMKCPEND' SYMB.TAB NAME FOR LAST FIXED PAGE@VA04250 00688000
USER DC C'RUNUSER ADDRESS AND NAME-' @VA04250 00689000
DS 0F @VA04250 00690000
NOCHECK DC 8F'00' COMPARE CONSTANT FOR OLD PSW @VA04250 00691000
EXTSAVE DS 18F REGISTER SAVE AREA @VA04250 00692000
DLISTAD DC V(DUMPLIST) DMKEDM'S LIST OF DUMP NAMES @VA04250 00693000
EXTDSKER DC V(RETN) DMKEDM'S CMS RETURN ADDRESS @VA04250 00694000
NUCERR DC C' ' SWITCH FOR NUC MAP ERROR @VA04250 00695000
NUCERRON EQU X'FF' NUC MAP ERROR SW ON INDICATOR @VA04250 00696000
********************* 00697000
* DUMPFILE FSCB 00698000
******************** 00699000
DUMPFILE FSCB 'PRB00000 DUMP A1',BSIZE=4096 @VA04250 00700000
HOLDSAVE DS 16F TEMPORARY REGISTER SAVE AREA @VA04250 00701000
MAPBUFF DC V(EXTMAP1) ADDRESS OF NUC MAP BUFFER @VA04250 00702000
MAPPARM DS F PARM FOR DMMMAP (ADDR.OF BUFF) @VA04250 00703000
MAPPARM1 DS CL8 PARM FOR DMMMAP (DUMP NAME) @VA04250 00704000
WTCODE1 DC X'000001' COMPARE CONSTANT FOR WAIT CODE @VA04250 00705000
PATCH DC 50F'0' MAINTENANCE AREA @VA04250 00706000
********************** 00707000
* EQUATES 00708000
********************** 00709000
NINE EQU 9 FOR MVC LENGTHS ETC. @VA04250 00710000
TEN EQU 10 FOR MVC LENGTHS ETC. @VA04250 00711000
ELEVEN EQU 11 FOR MVC LENGTHS ETC. @VA04250 00712000
TWELVE EQU 12 FOR MVC LENGTHS ETC. @VA04250 00713000
FIFTEEN EQU 15 FOR MVC LENGTHS ETC. @VA04250 00714000
SIXTEEN EQU 16 FOR MVC LENGTHS ETC. @VA04250 00715000
CPBACK EQU 48 DISPLACEMENT TO FIND DMKCPEND @VA05444 00716100
FORTY EQU 40 FOR MVC LENGTHS ETC. @VA04250 00717000
THIRTY EQU 30 FOR MVC LENGTHS ETC. @VA04250 00718000
CMSCALL EQU 202 CMS SVC NUMBER @VA04250 00719000
FIFTY EQU 50 FOR MVC LENGTHS ETC. @VA04250 00720000
DATEDISP EQU 40 FOR FINDING DATE IN DUMP @V4075A1 00721000
DISPTIME EQU 48 FOR FINDING TIME IN DUMP @V4075A1 00722000
SIXTY4 EQU 64 DISPLACEMENT FOR LOAD ADDRESS @VA04250 00723000
VMDISPA EQU 272 DISPLACEMENT INTO VMBLOK @VA04250 00724000
DS F @V4075A1 00724100
PAGEZERO DC FL4'5' @V4075A1 00724200
ALLF DC X'FFFF' END OF PAGEMAP POINTER @V4075A1 00724300
MAPEND EQU X'700' INDICATOR FOR BCT ON END OF M AP @V4075A1 00724400
EOF DC H'12' RETURN CODE 12 @V4075A1 00724500
LTORG @VA04250 00725000
*-------------------------------------------------------------- 00726000
INTDATA DC 200C' ' INTERNAL DATA AREA @VA04250 00727000
ENTRY INTDATA @VA04250 00728000
*************************************************************** 00729000
* THIS CSECT CONTAINS CONSTANTS SHARED BETWEEN SUBROUTINES 00730000
*************************************************************** 00731000
* 00732000
SHARECON CSECT @VA04250 00733000
WAITSW EQU X'01' DUMP TYPE - WAIT @VA04250 00734000
LOOPSW EQU X'02' DUMP TYPE - LOOP OR PERFORMANCE @VA04250 00735000
PRGCKSW EQU X'04' DUMP TYPE - PROGRAM CHECK @VA04250 00736000
CPABSW EQU X'08' DUMP TYPE - C.P. CODED ABEND @VA04250 00737000
PROCERR EQU X'80' INDICATES DATA EXT. PROCESS ERR @VA04250 00738000
TYPESW DC X'00' DUMP TYPE SWITCH - ONE OF ABOVE @VA04250 00739000
DUMPNUM DC C'PRB00000' UNIQUE PROBLEM I.D. ASSIGNED @VA04250 00740000
DMPFSCB DC F'0' ADDRESS OF DUMP READ FSCB @VA04250 00741000
GRCPARM DC F'0' GETREC PARM LIST (ADDRESS) @VA04250 00742000
TRNPARM DC F'0' TRANSLATE RTN PARM1 (ADDRESS) @VA04250 00743000
TRNPARM1 DC F'0' TRANSLATE RTN PARM2 (DATA LENGTH)@VA04250 00744000
MODDISP DS F DISPLACEMENT OF FAILURE IN MOD. @VA04250 00745000
REALEND DS F HIGHEST ADDRESS OF FIXED STORAGE @VA04250 00746000
EDMRET DS F RETURN ADDRESS IN DMKEDM(VMFDUMP)@VA04250 00747000
EDMSAVE DS 16F SAVE AREA FOR DMKEDM @VA04250 00748000
EJECT 00749000
**** THE PROBLEM REPORT KEYWORD AREA FOLLOWS **** 00750000
KEY DC AL2(VMKEYS-KEY),X'0000' SET INITIAL LENGTH @VA04250 00751000
COMPLN DC X'00160000' LENGTH OF COMPONENT ID KEYWORD @VA04250 00752000
VMCOMPID DC C'VMCOMPID=' COMPONENT ID KEYWORD @VA04250 00753000
VCOMP1 DC C'5749DMK00' VM/370 COMPONENT ID @VA04250 00754000
VMENVL DC X'000E0000' LENGTH OF ENVIRONMENT KEY @VA04250 00755000
VMENV DC C'VMENVIR=CP' ENVIRONMENT KEYWORD @VA04250 00756000
PLCLN DC X'000D0000' LENGTH OF PLC KEYWORD @VA04250 00757000
VMPLC DC C'VMPLC=' PLC KEYWORD @VA04250 00758000
VMPLC1 DC CL3'???' PLC LEVEL @VM04425 00759000
SCPLN DC X'000F0000' LENGTH OF SCP KEY WORD AREA @VA04250 00760000
VMSCPLV DC C'VMSCPLV=' SCP KEYWORD @VA04250 00761000
VMSCPLV1 DC CL3'???' SCP LEVEL @VM04425 00762000
FAILLN DC X'00190000' LENGTH OF FAILURE KEYWORD AREA @VA04250 00763000
VMFAIL DC C'VMFAILURE=' FAILURE KEYWORD @VA04250 00764000
VMFAILLP EQU *+4 END OF VMFAIL IF LOOP OR PERF @VA04250 00765000
VMFAILOT EQU *+5 END OF VMFAIL IF OTHER @VA04250 00766000
VMFAIL1 DC CL11'????' FAILURE TYPE @VM04425 00767000
VMKEYS EQU * LENGTH OF BASE KEYS @VA04250 00768000
* OTHER KEYWORDS WHICH MAY OR MAY NOT BE USED FOLLOW 00769000
MODLN DC X'00130000' LENGTH OF MODULE NAME KEY AR @VA04250 00770000
VMMOD DC C'VMMODULE=' MODULE NAME KEYWORD @VA04250 00771000
VMMOD1 DS CL6 FAILING MODULE NAME @VA04250 00772000
DISPLN DC X'000F0000' DISPLACEMENT KEY AREA LENGTH @VA04250 00773000
VMDISP DC C'VMDISP=' DISPLACEMENT KEYWORD @VA04250 00774000
VMDISP1 DS CL4 DISPLACEMENT @VA04250 00775000
ENTRYLN DC X'00140000' ENTRY POINT KEY AREA LENGTH @VA04250 00776000
VMENTRY DC C'VMENTRY=' ENTRY POINT KEYWORD @VA04250 00777000
VMENTRY1 DS CL8 ENTRY POINT ADDRESS @VA04250 00778000
DC 80C' ' PADDED FOR ADDITIONAL KEY AR @VA04250 00779000
**** THE PROBLEM REPORT SUPPORTING DATA AREA FOLLOWS: **** 00780000
SUPPORT DS F @VA04250 00781000
SUPPLN DC X'0050' SUPP. DATA AREA LENGTH INIT @VA04250 00782000
SUPP1 DC 80C' ' SUPPORTING DATA RESERVED FOR @VA04250 00783000
SUPP2 DC 320C' ' USER SUPPORTING DATA AREA @VA04250 00784000
**** THE PROBLEM REPORT TEXT AREA FOLLOWS: **** 00785000
TEXT DC X'01E0' TEXT AREA LENGTH INIT. SET 480 @VA04250 00786000
**** THE FIRST 480 BYTES RESERVED FOR THE EXTRACTION PROGRAM*** 00787000
TEXTA DC 80C' ' @VA04250 00788000
TEXT1 DC 80C' ' @VA04250 00789000
TEXT2 DC 80C' ' @VA04250 00790000
TEXT3 DC 80C' ' @VA04250 00791000
TEXT4 DC 80C' ' @VA04250 00792000
TEXT5 DC 80C' ' @VA04250 00793000
**** USER TEXT AREA UP 15 LINES OF 80 BYTE ENTRIES **** 00794000
TEXT6 DC 80C' ' @VA04250 00795000
TEXT7 DC 80C' ' @VA04250 00796000
TEXT8 DC 80C' ' @VA04250 00797000
TEXT9 DC 80C' ' @VA04250 00798000
TEXT10 DC 80C' ' @VA04250 00799000
DC 800C' ' @VA04250 00800000
TEXTENDO EQU * END OF TEXT OUTPUT AREA MARKER @VA04250 00801000
EJECT 00802000
ENTRY EXTPSA @VA04250 00803000
EXTPSA DS 1024F VM PSA BUFFER @VA04250 00804000
ENTRY EXTINREC @VA04250 00806000
EXTINREC DS 1024F DUMP INFORMATION BUFFER @VA04250 00807000
WRKBUF DS 1024F WORK BUFFER FOR DMMGRC @VA04250 00808000
DC 32X'00BAD000' BUFFER OVERFLOW INDICATOR @VA04250 00809000
COPY INTSECT @VA04250 00810000
PSA @VA04250 00811000
PUSH PRINT @VA04250 00812000
DSECT @VA04250 00813000
COPY DMPBLOKS @VA04250 00814000
ENDTRAC EQU DMPLCORE+16 @V4075A1 00814100
MAPSTART EQU DMPPGMAP+56 START OF DMMEDM PAGE MAP @V4075A1 00814200
CURRTRAC EQU DMPLCORE+20 @V4075A1 00814300
PUSH PRINT @VA04250 00815000
COPY VMBLOK @VA04250 00816000
NUMERIC EQU X'F0' MAKE UNPACKED READABLE @VA04250 00817000
WTCDTWO EQU IPLCCW1+6 LOW ORDER 2 BYTES OF WT CD @VA04250 00818000
CURRWTCD EQU IPLCCW1+5 CURRENT PSW WAIT CODE @VA04250 00819000
TXCURPSW EQU TEXTA+L'CURRPSW+45 TEXT LOCATION OF CURR PSW @VA04250 00820000
CURPSWHD EQU TEXTA+45 LOC. OF PSW HEADING @VA04250 00821000
PCPROPSW EQU PROPSW+1 PROB STATE BIT IS PSW @VA04250 00822000
SVCINTCD EQU CPULOG+11 SVC INT. CODE LOCATION @VA04250 00823000
RELLEV1 EQU 1 RECORD DISPL FOR REL LEV @VA04250 00824000
CPMONPER EQU CPULOG+15 PER OR MONITOR CALL IND @VA04250 00825000
TEXTUSER EQU TEXTA+L'USER+9 ADDRESS OF USER ID @VA04250 00826000
PROB EQU X'01' PSW PROBLEM STATE BIT @VA04250 00827000
FAILWTCD EQU VMFAIL1+4 WAIT CODE LOCATION IN TEXT @VA04250 00828000
TEXTENTR EQU TEXT1+30 TRACE START TEXT ENTRY @VA04250 00829000
SVCPROB EQU SVCOPSW+1 SVC OLD PSW WAIT BIT @VA04250 00830000
MON EQU X'C0' PER OR MONITOR CALL BIT @VA04250 00831000
SVC0 EQU X'00' SVC 0 INTERRUPT CODE @VA04250 00832000
WAIT EQU X'02' PSW WAIT BIT @VA04250 00833000
R0 EQU 0 R0 EQUALS REGISTER 0 @VA04250 00834000
R1 EQU 1 R1 EQUALS REGISTER 1 @VA04250 00835000
R2 EQU 2 R2 EQUALS REGISTER 2 @VA04250 00836000
R3 EQU 3 R3 EQUALS REGISTER 3 @VA04250 00837000
R4 EQU 4 R4 EQUALS REGISTER 4 @VA04250 00838000
R5 EQU 5 R5 EQUALS REGISTER 5 @VA04250 00839000
R6 EQU 6 R6 EQUALS REGISTER 6 @VA04250 00840000
R7 EQU 7 R7 EQUALS REGISTER 7 @VA04250 00841000
R8 EQU 8 R8 EQUALS REGISTER 8 @VA04250 00842000
R9 EQU 9 R9 EQUALS REGISTER 9 @VA04250 00843000
R10 EQU 10 R10 EQUALS REGISTER 10 @VA04250 00844000
R11 EQU 11 R11 EQUALS REGISTER 11 @VA04250 00845000
R12 EQU 12 R12 EQUALS REGISTER 12 @VA04250 00846000
R13 EQU 13 R13 EQUALS REGISTER 13 @VA04250 00847000
R14 EQU 14 R14 EQUALS REGISTER 14 @VA04250 00848000
R15 EQU 15 R15 EQUALS REGISTER 15 @VA04250 00849000
END 00850000