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