REG TITLE 'DMMREG (IPCS) VM/370 - RELEASE 6' 00001000 * 00002000 * MODULE NAME: 00003000 * DMMREG 00004000 * 00005000 * FUNCTION: 00006000 * DISPLAYS REGISTERS 00007000 * 00008000 * ATTRIBUTES: 00009000 * REUSABLE 00010000 * NON-REENTRANT 00011000 * 00012000 * ENTRY POINTS: 00013000 * DMMREG 00014000 * 00015000 * ENTRY CONDITIONS: 00016000 * R2 POINTS TO PLIST WITH TOKENIZED INPUT LINE. 00017000 * 00018000 * EXIT CONDITIONS: 00019000 * RETURN CODE IN R15 0 - GOOD 00020000 * 4 - WARNING 00021000 * 8 - FATAL 00022000 * 00023000 * CALLS TO OTHER ROUTINES: 00024000 * DMMINT TRANSLATE HEX TO EBCDIC 00025000 * 00026000 * EXTERNAL REFERENCES: 00027000 * DUMPFSCB FSCB FOR THE DUMP 00028000 * ISW ITEM-TABLE-READ SWITCH 00029000 * BUFF2 DUMP INFORMATION RECORD BUFFER 00030000 * SCRNAREA DISPLAY AREA 00031000 * 00032000 * TABLES/WORKAREAS: 00033000 * 00034000 * REGISTER USAGE: 00035000 * R15 ADDRESSES OF EXTERNAL ROUTINES 00036000 * R14 RETURNS FROM EXTERNAL ROUTINES 00037000 * R13 SAVE AREA ADDRESS 00038000 * R12 BASE 00039000 * R11 NOT USED 00040000 * R10 INTERNAL LINKS 00041000 * R9-R2 WORK REGISTERS 00042000 * R2 POINTS TO PLIST 00043000 * NOTES: 00044000 * 00045000 * 00046000 * OPERATION: 00047000 * REG READS IN RECORD 2 OF THE DUMP, 00048000 * WHICH HAS THE GENERAL REGS, 0 - 16 AND THE 00049000 * CONTROL REGS 0 - 16 IN THE FIRST 128 BYTES. 00050000 * IT FORMATS THESE, TRANSLATES THEM TO EBCDIC 00051000 * USING 'INT' AND WRITES THEM TO THE SCREEN. 00052000 * 00053000 * ERROR MESSAGES: 00054000 * 00055000 * * * * * * * *------- -------- -------- -------- ------* 00056000 DMMREG CSECT @VA04250 00057000 EXTRN SCRNAREA DISPLAY AREA @VA04250 00058000 EXTRN DMMINT TRANSLATE ROUTINE @VA04250 00059000 EXTRN DMMGET GETREC ROUTINE @VA04250 00060000 EXTRN ISW ITEM-TABLE-READ SW. @VA04250 00061000 EXTRN DUMPFSCB DUMP FSCB @VA04250 00062000 EXTRN BUFF2 READ IN AREA @VA04250 00063000 EXTRN CONSOLE VIRT CONS ADD @VA04250 00064000 EXTRN PRINTONE ONE-SHOT PRINT SWITCH @V4075A2 00065000 STM R14,R12,SAVEDISP(R13) SAVE CALLERS REGS @VA04250 00066000 LR R12,R15 ADDRESSABILITY @VA04250 00067000 USING DMMREG,R12 @VA04250 00068000 ST R13,SAVEBACK SAVEAREA PTR @VA04250 00069000 B EYECATCH BYPASS EYECATCHER @VA04250 00070000 DS 0D ALIGN @VA04250 00071000 DC CL8'DMMREG' EYECATCHER @VA04250 00072000 RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00073000 EYECATCH LA R13,SAVEAREA REG SAVE AREA @VA04250 00074000 XC RETCODE,RETCODE CLEAR RETURN CODE @VA04250 00075000 * * * * * * * *-----------------------------------------* 00076000 * * * * * * * THIS SECTION FILLS A REQUEST FOR THE REGISTERS 00077000 * * * * * * * R2 CONTAINS THE REQUEST FROM THE PLIST. 00078000 * * * * * * * * FIRST READ IN THE INFORMATION RECORD AND 00079000 * * * * * * * * FORMAT ALL 32 REGISTERS INTO 'FORMREGS' 00080000 * * * * * * * *-----------------------------------------* 00081000 L R3,DFSCBADD FSCB @VA04250 00082000 L R4,BUFF2ADD BUFFER @VA04250 00083000 FSREAD FSCB=(R3),ERROR=RDERR,BUFFER=(R4),RECNO=2 @VA04250 00084000 USING DMPINREC,R4 @V4075A2 00085000 MVC PSAFAIL,DMPPRFRG GET THE FAILING PSA ADDRESS @V4075A2 00086000 DROP R4 @V4075A2 00087000 ************************************************************ @V4075A2 00088000 * THE SOURCE OF THE REGS DISPLAY IS IN TWO PARTS. @V4075A2 00089000 * THE REGS AND CLOCKS COME FROM THE DUMP INFO RECORD, @V4075A2 00090000 * FOR A FAILING PROCESSOR OR FROM THE PSA, IF THE @V4075A2 00091000 * PROCESSOR IS GOOD. CSW, CAW, TIMER AND PSWS COME FROM @V4075A2 00092000 * THE APPROPRIATE PSA. THIS SORTS OUT THE MAIN OR ATT. @V4075A2 00093000 * PROCESSOR AND IF NECESSARY GETS THE RIGHT PSA INTO @V4075A2 00094000 * THE DUMPINREC BUFFER. @V4075A2 00095000 ************************************************************ @V4075A2 00096000 MVI CRHPFLAG,BLANK SET UP TO @V4075A2 00097000 MVC CRHPFLAG+1(L'CRHPFLAG-1),CRHPFLAG CLEAR CR FLAG @V4075A2 00098000 MVI GRHPFLAG,BLANK SET UP TO @V4075A2 00099000 MVC GRHPFLAG+1(L'GRHPFLAG-1),GRHPFLAG CLEAR GR FLAG @V4075A2 00100000 ST R2,PLISTADD SAVE R2. @V4075A2 00101000 LR R3,R2 FREE 2 FOR GETREC @V4075A2 00102000 SR R2,R2 ZERO R2 TO GET ABS PSA @V4075A2 00103000 BAL R10,GOGET FETCH ABSOLUTE PSA @V4075A2 00104000 USING PSA,R2 ADDRESS PSA @V4075A2 00105000 MVC PSAMAIN,PREFIXA SAVE PREFIXA POINTER @V4075A2 00106000 MVC PSAATT,PREFIXB SAVE PREFIXB POINTER @V4075A2 00107000 CLI 0(R3),AP ATTACH PROC REQUEST? @V4075A2 00108000 BNE MTEST NO - GO CHECK MAIN. @V4075A2 00109000 CLC PREFIXB,NOPREFIX IS A PREFIX ADDRESS ? @V4075A2 00110000 BE MPUPERR NO - AP REQ IN UP DUMP NOT VALID @V4075A2 00111000 CLC PSAFAIL,PREFIXB IS THE ATTACH PROC FAILING? @V4075A2 00112000 BE RED YES - GOODIES ARE IN DUMPINREC @V4075A2 00113000 L R2,PREFIXB NO - GET THE ATTACH PSA IN BUFF @V4075A2 00114000 B GETPRFIX GO MOVE IT @V4075A2 00115000 MTEST CLI 0(R3),MP IS THIS A MAIN REGS REQUEST? @V4075A2 00116000 BNE RED NO - MUST BE REG REGS BUFF IS OK @V4075A2 00117000 CLC PREFIXA,NOPREFIX IS THERE A PREFIX ADD ? @V4075A2 00118000 BE MPUPERR NO - MP REQU. IN UP DUMP @V4075A2 00119000 CLC PSAFAIL,PREFIXA IS MAIN THE FAILURE? @V4075A2 00120000 BE RED YES - DUMPINREC IS GOOD @V4075A2 00121000 L R2,PREFIXA NO - MUST GET PREFIXA IN BUFF @V4075A2 00122000 DROP R2 @V4075A2 00123000 GETPRFIX LTR R2,R2 IS THERE A VALID PREFIX ADDR? @V4075A2 00124000 BZ MPUPERR NO - GO ERROR MSG @V4075A2 00125000 BAL R10,GOGET GO FETCH IT INTO CORE @V4075A2 00126000 USING PSA,R2 @VA09089 00127000 USING DMPINREC,R4 @VA09089 00127100 MVC DMPGPRS(64),GRLOG MOVE NON-FAULT GREGS @VA09089 00127200 MVC DMPCRS(64),CRLOG MOVE NON-FAULT CREGS @VA09089 00127300 MVC DMPFPRS(32),FPRLOG MOVE NON-FAULT FPREGS @VA09089 00127400 MVC DMPCKCOM,CPULOG+96 MOVE NON-FAULT CLKCMP @VA09089 00127500 DROP R2,R4 @VA09089 00127600 RED L R2,PLISTADD RESTORE R2 @V4075A2 00128000 LA R3,TLENIN 4 - LENGTH FOR DMMINT @V4075A2 00129000 MVI FORMREGS,BLANK SET UP THE BLANK FILL TO @VA04250 00130000 MVC FORMREGS+ONE(HALFFORM),FORMREGS CLEAR OUT AREA @VA04250 00131000 MVC FORMREGS+HALFFORM+ONE(HALFFORM-ONE),FORMREGS @VA04250 00132000 LA R6,FORMREGS ADDRESS FOR TRANSLATED REGS @VA04250 00133000 LA R7,LOOP LOOP COUNT - 46 @VA04250 00134000 TRANS BAL R10,GOINT GO TO TRANSLATE @VA04250 00135000 MVC 0(REGL,R6),0(R5) PLUG - A - REG @VA04250 00136000 LA R4,TLENIN(R4) 4 - NEXT INPUT @VA04250 00137000 LA R6,TLENOUT(R6) 9 - NEXT OUTPUT @VA04250 00138000 BCT R7,TRANS GO ROUND AGAIN @VA04250 00139000 CLI 0(R2),C CTL REGS ONLY? @V4075A2 00140000 BE CREGS YES PRINT THEM @V4075A2 00141000 GRP MVC OUTLINE,FORMREGS FIRST LINE - 8 REGS @VA04250 00142000 BAL R10,CLEAR CLEAR SCREEN IF GRAFFIX @VA04250 00143000 LA R8,GRHEAD GEN REGS HEADER @VA04250 00144000 ************************************************************ @V4075A2 00145000 * SEE WHICH PROCESSOR FAILED AND FLAG IT IN THE HEADER LINE @V4075A2 00146000 ************************************************************ @V4075A2 00147000 LA R9,HEADLEN LENGTH OF HEADER - 60 @V4075A2 00148000 CLI 0(R2),MP IS THIS A MAIN REGS REQUEST ? @V4075A2 00149000 BE MAINMSG YES - GO PLUG MAIN @V4075A2 00150000 CLI 0(R2),AP ATTACH REGS REQU ? @V4075A2 00151000 BE ATTMSG PLUG ATTACH PROC MSG @V4075A2 00152000 CLC PSAFAIL,NOPREFIX PSAFAIL ? - IS THIS MP ? @V4075A2 00153000 BE GHEADWRT NO - UP - DONT PLUG PROCESSOR MSG@V4075A2 00154000 CLC PSAMAIN,PSAFAIL MAIN PROC FAIL? @V4075A2 00155000 BNE ATTMSG NO - MUST BE ATT. GO PLUG ATT MSG@V4075A2 00156000 MAINMSG MVC GRHPFLAG,MPROC YES - PLUG MAIN PROC MSG @V4075A2 00157000 B GHEADWRT GO WRITE HEADER @V4075A2 00158000 ATTMSG MVC GRHPFLAG,APROC FLAG THE ATT AS FAILING PROC @V4075A2 00159000 GHEADWRT BAL R10,WRTERM GO WRITE IT @V4075A2 00160000 LA R8,OUTLINE ADDRESS @VA04250 00161000 LA R9,L'OUTLINE 72 - LENGTH @VA04250 00162000 BAL R10,WRTERM WRITE A LINE @VA04250 00163000 MVC OUTLINE,FRLINE2 MOVE IN LINE 2 @VA04250 00164000 BAL R10,WRTERM GO WRITE ANOTHER LINE @VA04250 00165000 CREGS CLI 0(R2),C CONTROL REG REQUEST @VA04250 00166000 BE CRP YES SHOW THEM. @VA04250 00167000 CLI 0(R2),G GEN REGS ? @V4075A2 00168000 BE REGEND YES - ALL DONE @V4075A2 00169000 B CRPNC R OR A OR M - DONT CLEAR SCREEN @V4075A2 00170000 CRP BAL R10,CLEAR CLEAR IT @VA04250 00171000 CRPNC LA R8,CRHEAD ADDRESS @VA04250 00172000 ************************************************************ @V4075A2 00173000 * SEE WHICH PROCESSOR FAILED AND FLAG IT IN THE HEADER LINE @V4075A2 00174000 ************************************************************ @V4075A2 00175000 LA R9,HEADLEN LENGTH OF HEADER - 60 @V4075A2 00176000 CLI 0(R2),C IS THIS CREGS ONLY ? @V4075A2 00177000 BNE CHEADWRT NO - DONT WRITE A PROC FLAG @V4075A2 00178000 CLC PSAFAIL,NOPREFIX PSAFAIL ? - IS THIS MP ? @V4075A2 00179000 BE CHEADWRT NO - UP - DONT PLUG PROCESSOR MSG@V4075A2 00180000 CLC PSAMAIN,PSAFAIL MAIN PROC FAIL? @V4075A2 00181000 BNE ATTFAIL NO - MUST BE ATT. GO PLUG ATT MSG@V4075A2 00182000 MVC CRHPFLAG,MPROC YES - PLUG MAIN PROC MSG @V4075A2 00183000 B CHEADWRT GO WRITE HEADER @V4075A2 00184000 ATTFAIL MVC CRHPFLAG,APROC FLAG THE ATT AS FAILING PROC @V4075A2 00185000 CHEADWRT BAL R10,WRTERM GO WRITE IT @V4075A2 00186000 MVC OUTLINE,FRLINE3 THIRD LINE @VA04250 00187000 LA R8,OUTLINE ADDRESS @VA04250 00188000 LA R9,L'OUTLINE LENGTH @VA04250 00189000 BAL R10,WRTERM WRITE A LINE @VA04250 00190000 MVC OUTLINE,FRLINE4 FOURTH LINE @VA04250 00191000 BAL R10,WRTERM WRITE ANOTHER @VA04250 00192000 CLI 0(R2),C C REGS REQUEST? @V4075A2 00193000 BNE FPREGS NO - CONTINUE WITH DISPLAY @V4075A2 00194000 REGEND B RETURN YES - BACK TO WRAPUP. @V4075A2 00195000 * * * * * * * * ------- -------- -------- ------- * 00196000 * * * * * * * * THIS CODE FORMATS AND DISPLAYS THE FLOATING 00197000 * * * * * * * * POINT REGS, CLOCKS, CSW, CAW, TIMER, AND 00198000 * * * * * * * * OLD AND NEW PSWS. FIRST FORMAT THE FP REGS 00199000 * * * * * * * * AND CLOCKS FROM THE DUMPINREC. 00200000 * * * * * * * * ------- -------- -------- ------- * 00201000 FPREGS LA R8,FPHEADER 'FP REGS' @VA04250 00202000 LA R9,L'FPHEADER LENGTH @VA04250 00203000 BAL R10,WRTERM WRITE IT @VA04250 00204000 MVC OUTLINE,FRLINE5 REGS @VA04250 00205000 LA R8,OUTLINE REGS @VA04250 00206000 LA R9,L'OUTLINE LENGTH @VA04250 00207000 BAL R10,WRTERM WRITE LINE @VA04250 00208000 LA R8,BLANK8 SPACE @V4075A2 00209000 LA R9,L'BLANK8 LENGTH @V4075A2 00210000 BAL R10,WRTERM WRITE IT @VA04250 00211000 LA R8,CLOCKHD1 'CLOCKS' @VA04250 00212000 LA R9,TWO*L'CLOCKHD1 LENGTH @VA04250 00213000 BAL R10,WRTERM WRITE IT @VA04250 00214000 MVC OUTLINE,BLANKLIN CLEAR THE LINE @VA04250 00215000 MVC BLOCK1(L'TODCLK),TODCLK TIME-OF-DAY CLOCK @VA04250 00216000 MVC BLOCK4(L'CPUTMR),CPUTMR CPU TIMER @VA04250 00217000 MVC BLOCK7(L'CLKCMP),CLKCMP CLOCK COMPARATOR @VA04250 00218000 LA R8,OUTLINE CLOCKS @VA04250 00219000 LA R9,L'OUTLINE LENGTH @VA04250 00220000 BAL R10,WRTERM WRITE @VA04250 00221000 LA R8,BLANK8 SPACE @V4075A2 00222000 LA R9,L'BLANK8 LENGTH @V4075A2 00223000 BAL R10,WRTERM WRITE A SPACE @VA04250 00224000 ************************************************************ @V4075A2 00225000 * AN AREGS REQUEST NEEDS PREFIXB, AND AN MREGS REQUEST @V4075A2 00226000 * NEEDS PREFIXA. A REGS REQUEST NEEDS THE FAILING PSA. @V4075A2 00227000 * SORT IT ALL OUT @V4075A2 00228000 ************************************************************ @V4075A2 00229000 SR R2,R2 ZERO R2 TO GET ABS PSA @V4075A2 00230000 BAL R10,GOGET FETCH ABSOLUTE PSA INTO CORE @V4075A2 00231000 USING PSA,R2 ADDRESSABILITY @V4075A2 00232000 L R3,PLISTADD POINT AT PLIST @V4075A2 00233000 CLI 0(R3),MP MAIN PROC REQUEST? @V4075A2 00234000 BE GETPXA YES - GO GET THE MAIN PROC PSA @V4075A2 00235000 CLI 0(R3),AP ATTACH PROC REQUEST? @V4075A2 00236000 BE GETPXB GO GET THE ATTACH PSA @V4075A2 00237000 CLC PREFIXA,NOPREFIX IS THERE A PREFIXA - IS THIS MP ? 00238000 BE GOPSWS NO USE THE PSA WE HAVE @V4075A2 00239000 CLC PREFIXA,PSAFAIL DID THE MAIN PROCESSOR FAIL ? @V4075A2 00240000 BNE GETPXB NO - GO GET THE AP PSA @V4075A2 00241000 GETPXA L R2,PREFIXA ADDRESS OF MAIN PSA @V4075A2 00242000 B GETPSA GO TO GET IT @V4075A2 00243000 GETPXB L R2,PREFIXB GET THE AP PSA @V4075A2 00244000 GETPSA LTR R2,R2 FIRST SEE IF THERE IS A PREFIX @V4075A2 00245000 BZ MPUPERR NO - INVALID REQUEST @V4075A2 00246000 BAL R10,GOGET AND FETCH THE STUFF INTO CORE @V4075A2 00247000 B GOPSWS GO BUMP TO FIRST PSW TO TRANS @V4075A2 00248000 DROP R2 @V4075A2 00249000 * * * * * * * * ------- -------- -------- ------- * 00250000 * * * * * * * * NOW TRANSLATE THE LOW CORE AREA FOR 00251000 * * * * * * * * THE PSWS, AND CSW, CAW, AND TIMER 00252000 * * * * * * * * ------- -------- -------- ------- * 00253000 GOPSWS LA R2,EO1ADD(R2) BUMP 18 BYTES TO EXT OLD PSW @V4075A2 00254000 LOCOTRAN LA R3,HALFLOW 60 BYTES - FIRST HALF LOW CORE @V4075A2 00255000 LR R4,R2 TRANSLATE ADDRESS STARTS @VA04250 00256000 BAL R10,GOINT GO TRANSLATE @VA04250 00257000 MVC TRANAREA(TWO*HALFLOW),0(R5) MOVE IN FIRST HALF @VA04250 00258000 LA R4,HALFLOW(R4) NEXT HALF INPUT @VA04250 00259000 BAL R10,GOINT TRANSLATE @VA04250 00260000 MVC TRANAREA+TWO*HALFLOW(TWO*HALFLOW),0(R5) NEXT @VA04250 00261000 * * * * * * * * ------- -------- -------- ------- * 00262000 * * * * * * * * NOW FORMAT IT ONTO OUTPUT 00263000 * * * * * * * * ------- -------- -------- ------- * 00264000 LA R8,CSWHDR1 HEADER @VA04250 00265000 LA R9,TWO*L'CSWHDR1 LENGTH @VA04250 00266000 BAL R10,WRTERM WRITE HDR @VA04250 00267000 MVC OUTLINE,BLANKLIN CLEAR LINE @VA04250 00268000 MVC BLOCK1(L'CSW1),CSW1 FIRST HALF CSW @VA04250 00269000 MVC BLOCK2(L'CSW2),CSW2 SECOND HALF @VA04250 00270000 MVC BLOCK4(L'CAWD),CAWD CAW @V4075A2 00271000 MVC BLOCK7(L'TMR),TMR TIMER @VA04250 00272000 LA R8,OUTLINE CSW @VA04250 00273000 LA R9,L'OUTLINE LENGTH @VA04250 00274000 BAL R10,WRTERM WRITE CSWS @VA04250 00275000 LA R8,BLANK8 SPACE @V4075A2 00276000 LA R9,L'BLANK8 LENGTH @V4075A2 00277000 BAL R10,WRTERM WRITE A SPACE @VA04250 00278000 MVC OUTLINE,EXTHDR EXT PSW HEADER @VA04250 00279000 MVC BLOCK2(L'EXTEXT),EXTEXT EXT OLD EXTENSION @VA04250 00280000 MVC BLOCK2(ADL),BLANK8 CLEAR OUT FIRST 4 @V4075A2 00281000 MVC BLOCK3(L'EO1),EO1 EXT OLD FIRST HALF @VA04250 00282000 MVC BLOCK4(L'EO2),EO2 EXT OLD SECOND HALF @VA04250 00283000 MVC BLOCK7(L'EN1),EN1 EXT NEW FIRST HALF @VA04250 00284000 MVC BLOCK8(L'EN2),EN2 EXT NEW SECOND HALF @VA04250 00285000 LA R8,OUTLINE OUTLINE @VA04250 00286000 LA R9,L'OUTLINE LENGTH @VA04250 00287000 BAL R10,WRTERM WRITE EXT PSWS @VA04250 00288000 MVC OUTLINE,SVCHDR SVC PSW HEADER @VA04250 00289000 MVC BLOCK2(L'EXTSVC),EXTSVC SVC OLD EXTENSION @VA04250 00290000 MVC BLOCK2(ADL),BLANK8 CLEAR OUT FIRST 4 @V4075A2 00291000 MVC BLOCK3(L'SO1),SO1 SVC OLD FIRST HALF @VA04250 00292000 MVC BLOCK4(L'SO2),SO2 SVC OLD SECOND HALF @VA04250 00293000 MVC BLOCK7(L'SN1),SN1 SVC NEW FIRST HALF @VA04250 00294000 MVC BLOCK8(L'SN2),SN2 SVC NEW SECOND HALF @VA04250 00295000 LA R8,OUTLINE OUTLINE @VA04250 00296000 LA R9,L'OUTLINE LENGTH @VA04250 00297000 BAL R10,WRTERM WRITE SVC PSWS @VA04250 00298000 MVC OUTLINE,PGMHDR PGM PSW HEADER @VA04250 00299000 MVC BLOCK2(L'EXTPGM),EXTPGM PGM OLD EXTENSION @VA04250 00300000 MVC BLOCK3(L'PO1),PO1 PGM OLD FIRST HALF @VA04250 00301000 MVC BLOCK4(L'PO2),PO2 PGM OLD SECOND HALF @VA04250 00302000 MVC BLOCK7(L'PN1),PN1 PGM NEW FIRST HALF @VA04250 00303000 MVC BLOCK8(L'PN2),PN2 PGM NEW SECOND HALF @VA04250 00304000 LA R8,OUTLINE OUTLINE @VA04250 00305000 LA R9,L'OUTLINE LENGTH @VA04250 00306000 BAL R10,WRTERM WRITE PGM PSWS @VA04250 00307000 MVC OUTLINE,MCKHDR MCK PSW HEADER @VA04250 00308000 MVC BLOCK3(L'MO1),MO1 MCK OLD FIRST HALF @VA04250 00309000 MVC BLOCK4(L'MO2),MO2 MCK OLD SECOND HALF @VA04250 00310000 MVC BLOCK7(L'MN1),MN1 MCK NEW FIRST HALF @VA04250 00311000 MVC BLOCK8(L'MN2),MN2 MCK NEW SECOND HALF @VA04250 00312000 LA R8,OUTLINE OUTLINE @VA04250 00313000 LA R9,L'OUTLINE LENGTH @VA04250 00314000 BAL R10,WRTERM WRITE MCK PSWS @VA04250 00315000 MVC OUTLINE,INOHDR I/O PSW HEADER @VA04250 00316000 MVC BLOCK3(L'IO1),IO1 I/O OLD FIRST HALF @VA04250 00317000 MVC BLOCK4(L'IO2),IO2 I/O OLD SECOND HALF @VA04250 00318000 MVC BLOCK7(L'IN1),IN1 I/O NEW FIRST HALF @VA04250 00319000 MVC BLOCK8(L'IN2),IN2 I/O NEW SECOND HALF @VA04250 00320000 LA R3,ADL SET 4 FOR LENGTH TO GET I/O OLD @VA04250 00321000 LA R4,IOEXT(R2) EXT. FROM LOW CORE IN BUFFER @VA04250 00322000 BAL R10,GOINT TRANSLATE IT @VA04250 00323000 MVC BLOCK2(L'IN2),0(R5) IO OLD EXT. @VA04250 00324000 MVC BLOCK2(ADL),BLANK8 CLEAR OUT FIRST 4 @V4075A2 00325000 LA R8,OUTLINE OUTLINE @VA04250 00326000 LA R9,L'OUTLINE LENGTH @VA04250 00327000 BAL R10,WRTERM WRITE I/O PSWS @VA04250 00328000 B RETURN GET OUT @VA04250 00329000 * * * * * * * *------- -------- -------- -------- ------* 00330000 * * * * * * * * THIS FORMATS THE RETURN CODE INTO THE 00331000 * * * * * * * * ERROR MESSAGE IF A READ ERROR OCCURS 00332000 * * * * * * * *------- -------- -------- -------- ------* 00333000 * * * * * * * *------- -------- -------- -------- ------* 00334000 RDERR XC DEPACK(L'DEPACK+L'DECODE),DEPACK CLEAR WORKAREA @VA04250 00335000 CVD R15,DECODE GET RET CODE IN DECIMAL @VA04250 00336000 UNPK DEPACK+FIV(L'DEPACK-FIV),DECODE+SIX(L'DECODE-SIX) 00337000 OI DEPACK+SEV,NUMZONE FIX UP SIGN TO PRINT @VA04250 00338000 MVC ERRMSGCD,DEPACK+FIV PLUG ERROR CODEINTO MSG @VA04250 00339000 L R6,DFSCBADD TO GET AT FILE ID @VA04250 00340000 MVC ERRMSGFN,FN(R6) PLUG FILE NAME @VA04250 00341000 MVC ERRMSGFT,FT(R6) AND TYPE @VA04250 00342000 MVC ERRMSGM(L'ERRMSGM-ONE),FM(R6) AND MODE @VA04250 00343000 BAL R10,CLEAR CLEAR SCREEN IF 3270 @VA04250 00344000 LA R8,ERRMSG ADDRESS @VA04250 00345000 LA R9,ERRMSGL LENGTH @VA04250 00346000 BAL R10,WRTERM WRITE ERROR MSG @VA04250 00347000 MVC RETCODE,CODE8 SET BAD RET CODE @VA04250 00348000 B RETURN BACK TO DSC @VA04250 00349000 ************************************************************ @V4075A2 00350000 * THIS ERROR OCCURS IF AN MP OR AP REQUEST @V4075A2 00351000 * IS ISSUED AGAINST A UNIPROCESSOR DUMP @V4075A2 00352000 ************************************************************ @V4075A2 00353000 MPUPERR L R2,PLISTADD GET THE PLIST ADDRESS @V4075A2 00354000 CLI 0(R2),MP MAIN PROC REQUEST? @V4075A2 00355000 BNE PLUGAP NO - PLUG AP @V4075A2 00356000 MVI REQUEST,MP PLUG THE M @V4075A2 00357000 B ERRWRITE GO WRITE IT @V4075A2 00358000 PLUGAP MVI REQUEST,AP PLUG THE A @V4075A2 00359000 ERRWRITE LA R8,MPUPMSG MP UP ERROR MSG @V4075A2 00360000 LA R9,MPUPMSGL AND LENGTH @V4075A2 00361000 BAL R10,WRTERM WRITE ERR MSG @V4075A2 00362000 MVC RETCODE,CODE4 WARN USER @V4075A2 00363000 B RETURN AND BACK @V4075A2 00364000 * * * * * * * *------- -------- -------- -------- ------* 00365000 * * * * * * * *THIS CLEARS THE SCREEN AND ALLOWS THE 00366000 * * * * * * * * NEXT OPERATION TO BE POSITIONED 00367000 * * * * * * * * AT THE TOP OF THE SCREEN 00368000 * * * * * * * *------- -------- -------- -------- ------* 00369000 CLEAR STM R8,R9,SAVCLR SAVE REGS @VA04250 00370000 ***************************************************************@V4075A2 00371000 * IF THIS IS A REISSUE, DUE TO PRINT WITH NO @V4075A2 00372000 * SUBCOMMAND, DONT CLEAR THE SCREEN. @V4075A2 00373000 ***************************************************************@V4075A2 00374000 L R11,PRINT1AD IS THIS A ONE-SHOT DEAL? @V4075A2 00375000 CLI 0(R11),NOSUBC INDICATING PRINT PREV CMD @V4075A2 00376000 BE ALLCLEAR YES - DONT CLEAR DISPLAY. @V4075A2 00377000 L R8,SCRNADD GET THE ADDRESS OF THE SCREEN @VA04250 00378000 ST R8,CCWC PLUG ADDRESS IN CCW @VA04250 00379000 LA R8,CCWC CCW ADD @VA04250 00380000 LA R9,CONSADD 9 - CONS ADD @VA04250 00381000 L R9,CONSADD VIRT CONS ADDRESS LOCATION @VA04250 00382000 L R9,0(R9) VIRT CONS CUU @VA04250 00383000 MVI CCWC,FSWRITE RESTORE CMD CODE @VA04250 00384000 MVI CCWCTL,ON SET ERASE BYTE ON @VA04250 00385000 WAITT WAIT FOR TERMINAL TO QUIESCE @VA04250 00386000 DC X'83890058' DIAGNOSE SCREEN WRITE @VA04250 00387000 ALLCLEAR LM R8,R9,SAVCLR RESTORE REGS @V4075A2 00388000 BR R10 RETURN @VA04250 00389000 * * * * * * * * ------- -------- -------- ------- * 00390000 * * * * * * * * COMMON ROUTINE TO CALL GETREC 00391000 * * * * * * * * AND CHECK RETURN CODES 00392000 * * * * * * * * ------- -------- -------- ------- * 00393000 GOGET L R15,GETADD ADDRESS OF DMMGET @VA04250 00394000 BALR R14,R15 LINK @VA04250 00395000 LTR R15,R15 TEST RETURN @VA04250 00396000 BNZ CODECHEK GO TEST A NON ZERO RETURN @VA04250 00397000 BR R10 RETURN TO GO GETTER @VA04250 00398000 * * * * * * * * ------- -------- -------- ------- * 00399000 * * * * * * * * GOINT - COMMON BALR TO INTERPRET 00400000 * * * * * * * * ------- -------- -------- ------- * 00401000 GOINT L R15,INTADD INT ROUTINE @VA04250 00402000 BALR R14,R15 LINK @VA04250 00403000 LTR R15,R15 TEST RETURN @VA04250 00404000 BNZ CODECHEK TEST NON-ZERO RET @VA04250 00405000 BR R10 BACK TO CALLER @VA04250 00406000 * * * * * * * * ------- -------- -------- ------- * 00407000 * * * * * * * * CODECHECK 00408000 * * * * * * * * ------- -------- -------- ------- * 00409000 CODECHEK C R15,CODE4 IS IT A WARNING? @VA04250 00410000 BE WARNING PLUG A 4 @VA04250 00411000 MVC RETCODE,CODE8 PLUG 8 @VA04250 00412000 B RETURN FATAL RETURN @VA04250 00413000 WARNING MVC RETCODE,CODE4 PLUG A 4 @VA04250 00414000 B RETURN @VA04250 00415000 * * * * * * * * ------- -------- -------- ------- * 00416000 * * * * * * * * COMMON WRTERM ROUTINE 00417000 * * * * * * * * ------- -------- -------- ------- * 00418000 WRTERM ST R8,PARMLIS1 SAVE MSG TEXT PTR IN PARM LIST @V4075A2 00419000 ST R9,PARMLIS2 AND TEXT LENGTH @V4075A2 00420000 LA R1,PARMLIS1 POINTER TO PASS @V4075A2 00421000 L R15,FEDLNADD ADDRESS OF DMMFEDLN - LINE WRITER@V4075A2 00422000 BALR R14,R15 GO WRITE THE LINE @V4075A2 00423000 BR R10 AND RETURN @V4075A2 00424000 PARMLIS1 DS F PARM1 @V4075A2 00425000 PARMLIS2 DS F PARM2 @V4075A2 00426000 FEDLNADD DC V(DMMFEDLN) LINE WRITER ROUTINE @V4075A2 00427000 * * * * * * * *------- -------- -------- -------- ------* 00428000 * * * * * * * * RETURN 00429000 * * * * * * * *------- -------- -------- -------- ------* 00430000 RETURN L R13,SAVEBACK RESTORE CALLER SAVE AREA PTR @VA04250 00431000 MVC SAVREG15(L'RETCODE,R13),RETCODE PLUG RETCODE @VA04250 00432000 LM R14,R12,SAVEDISP(R13) RESTORE REGS @VA04250 00433000 BR R14 BACK TO DSC @VA04250 00434000 * * * * * * * *------- -------- -------- -------- ------* 00435000 * * * * * * * * CONSTANTS FOR 'CLEAR' SECTION 00436000 * * * * * * * *------- -------- -------- -------- ------* 00437000 CCWC CCW X'19',X'0',X'20',1760 ERASE CCW @VA04250 00438000 CCWCTL EQU CCWC+5 CONTROL BYTE @VA04250 00439000 SAVCLR DS 2F SAVE FOR CLEAR SUBR. @VA04250 00440000 SCRNADD DC AL4(SCRNAREA) ADDRESS OF AREA TO BE DISPLAYED @VA04250 00441000 * * * * * * * *------- -------- -------- -------- ------* 00442000 * * * * * * * * CONSTANTS FOR 'RDERR' 00443000 * * * * * * * *------- -------- -------- -------- ------* 00444000 CODE4 DC F'4' NON FATAL RETURN @VA04250 00445000 CODE8 DC F'8' FATAL RET @VA04250 00446000 DEPACK DS D DECIMAL RETCODE UNPACKED HERE @VA04250 00447000 DECODE DS D HEX RETCODE CONVERTED TO DEC @VA04250 00448000 ERRMSG DC C'DMMREG100S ERROR ''' TEXT OF ERROR MESSAGE @VA04423 00449000 ERRMSGCD DC CL3' ' * @VA04250 00450000 ERRMSGT2 DC C''' READING FILE ''' * @VA04250 00451000 ERRMSGFN DC CL8' ' * @VA04250 00452000 DC CL2' ' FILLER @VA04250 00453000 ERRMSGFT DC CL6' ' * @VA04250 00454000 ERRMSGM DC CL3' ''' * @VA04250 00455000 ERRMSGL EQU *-ERRMSG * @VA04250 00456000 * * * * * * * *------- -------- -------- -------- ------* 00457000 FIV EQU 5 UNPACK CONSTS @VA04250 00458000 SIX EQU 6 UNPACK CONSTS @VA04250 00459000 SEV EQU 7 UNPACK CONSTS @VA04250 00460000 FN EQU 8 FILE NAME DISP @VA04250 00461000 SAVEDISP EQU 12 REGS IN SAVE AREA @VA04250 00462000 SAVREG15 EQU 16 REG 15 IN SVE AREA @VA04250 00463000 FT EQU 16 FILE TYPE DISP @VA04250 00464000 FM EQU 24 FILE TYPE DISP @VA04250 00465000 ON EQU X'FF' ON STATUS @VA04250 00466000 BLANK EQU X'40' BLANK @VA04250 00467000 HALFFORM EQU 250 HALF THE RECEIVING FORMAT @VA04250 00468000 TLENIN EQU 4 LENGTH OF INPUT TO TRANSLATE @VA04250 00469000 ADL EQU 4 LENGTH OF AN ADDRESS @VA04250 00470000 REGL EQU 8 LENGTH OF AN TRAN REG ENTRY @VA04250 00471000 TLENOUT EQU 9 LENGTH OF OUTPUT BLOCK @VA04250 00472000 EO1ADD EQU X'18' OFFSET TO FIRST PSW @VA04250 00473000 ONE EQU 1 BUMP CTR @VA04250 00474000 TWO EQU 2 DOUBLER @VA04250 00475000 LOOP EQU 46 LOOP COUNT FORMATTING REGS @VA04250 00476000 HALFLOW EQU 60 HALF OF LOW CORE @VA04250 00477000 IOEXT EQU X'A0' OFFSET OF I/O EXT @VA04250 00478000 NUMZONE EQU X'F0' ZONE FOR A NUMERIC @VA04250 00479000 FSWRITE EQU X'19' WRITE CCW @VA04250 00480000 NOSUBC EQU X'0F' 'DONT-DISPLAY' FLAG @V4075A2 00481000 PRINT1AD DC AL4(PRINTONE) ONE-SHOT FLAG ADDRESS @V4075A2 00482000 BLANK8 DC CL8' ' BLANKS TO SPACE LINES @V4075A2 00483000 BLANKLIN DC CL72' ' LINE OF BLANKS @VA04250 00484000 CRHEAD DC C'CTL REGS 0 - 15' HEADER @VA04250 00485000 CRSPACE DC CL21' ' SPACE IN HEADER @V4075A2 00486000 CRHPFLAG DC CL20' ' CTL REG HDR PROCESSOR FLAG @V4075A2 00487000 GRHEAD DC C'GEN REGS 0 - 15' HEADER @VA04250 00488000 GRSPACE DC CL21' ' SPACER @V4075A2 00489000 GRHPFLAG DC CL20' ' GEN REG HEADER PROC. FLAG @V4075A2 00490000 C EQU X'C3' CONTROL REGS @VA04250 00491000 R EQU X'D9' ALL REGS @VA04250 00492000 G EQU X'C7' GENERAL REGS @VA04250 00493000 HEADLEN EQU L'CRHEAD+L'CRSPACE+L'CRHPFLAG LENGTH OF HEADER @V4075A2 00494000 MP EQU X'D4' MP REGS @V4075A2 00495000 AP EQU X'C1' AP REGS @V4075A2 00496000 NOPREFIX DC F'0' NULL PREFIXA ADDRESS @V4075A2 00497000 PLISTADD DC F'0' PLIST ADDRESS SAVE @V4075A2 00498000 PSAFAIL DC F'0' FAILING PSA ADDRESS @V4075A2 00499000 PSAMAIN DC F'0' MAIN PSA ADDRESS @V4075A2 00500000 PSAATT DC F'0' ATTACH PSA ADDRESS @V4075A2 00501000 MPUPMSG DC C'DMMREG724I ' PART OF MSG TEXT @V4075A2 00502000 REQUEST DC CL2' P' VARIABLE TEXT - MP OR AP @V4075A2 00503000 MSGEND DC C' REGISTERS REQUESTED IN UNIPROCESSOR DUMP' @V4075A2 00504000 MPUPMSGL EQU *-MPUPMSG LENGTH OF MSG @V4075A2 00505000 APROC DC CL20'ATTACHED PROCESSOR' @V4075A2 00506000 MPROC DC CL20'MAIN PROCESSOR' @V4075A2 00507000 FPHEADER DC C'F/P REGS 0 - 4' HEADER @VA04250 00508000 CLOCKHD1 DC CL36'TOD CLOCK CPU TIMER' HDR1 @VA04250 00509000 CLOCKHD2 DC CL36' CLOCK COMPARATOR' HDR2 @VA04250 00510000 CSWHDR1 DC CL36'CSW CAW' @VA04250 00511000 CSWHDR2 DC CL36' INT TIMER' @VA04250 00512000 EXTHDR DC CL36'EXT OLD' FIRST HALF HDR @VA04250 00513000 EXTHDR2 DC CL36' EXT NEW' SECOND @VA04250 00514000 SVCHDR DC CL36'SVC OLD' FIRST HALF HDR @VA04250 00515000 SVCHDR2 DC CL36' SVC NEW' SECOND @VA04250 00516000 PGMHDR DC CL36'PGM OLD' FIRST HALF HDR @VA04250 00517000 PGMHDR2 DC CL36' PGM NEW' SECOND @VA04250 00518000 MCKHDR DC CL36'MCH OLD' FIRST HALF HDR @VA04250 00519000 MCKHDR2 DC CL36' MCK NEW' SECOND @VA04250 00520000 INOHDR DC CL36'I/O OLD' FIRST HALF HDR @VA04250 00521000 INOHDR2 DC CL36' I/O NEW' SECOND @VA04250 00522000 OUTLINE DS CL72 OUTPUT LINE @VA04250 00523000 ORG OUTLINE REFORMAT OUTLINE @VA04250 00524000 BLOCK1 DS CL9 BLOCKS IN OUTPUT LINE @VA04250 00525000 BLOCK2 DS CL9 BLOCKS IN OUTPUT LINE @VA04250 00526000 BLOCK3 DS CL9 BLOCKS IN OUTPUT LINE @VA04250 00527000 BLOCK4 DS CL9 BLOCKS IN OUTPUT LINE @VA04250 00528000 BLOCK5 DS CL9 BLOCKS IN OUTPUT LINE @VA04250 00529000 BLOCK6 DS CL9 BLOCKS IN OUTPUT LINE @VA04250 00530000 BLOCK7 DS CL9 BLOCKS IN OUTPUT LINE @VA04250 00531000 BLOCK8 DS CL9 BLOCKS IN OUTPUT LINE @VA04250 00532000 TRANAREA DS CL500 AREA TO RECEIVE TRANSLATED DATA @VA04250 00533000 ORG TRANAREA REDEFINE AREA @VA04250 00534000 FORMREGS DS CL72 FORM. TRANS. REGS @VA04250 00535000 FRLINE2 DS CL72 LINE 2 @VA04250 00536000 FRLINE3 DS CL72 LINE 3 @VA04250 00537000 FRLINE4 DS CL72 LINE 4 @VA04250 00538000 FRLINE5 DS CL72 LINE 5 @VA04250 00539000 FRLINE6 DS CL72 LINE 6 @VA04250 00540000 ORG FRLINE6 REDEFINE THE LINE @VA04250 00541000 TODCLK DS CL18 TIME OF DAY CLOCK @VA04250 00542000 CPUTMR DS CL18 TIMER @VA04250 00543000 CLKCMP DS CL18 CLOCK COMPARATOR @VA04250 00544000 ORG FRLINE6+L'FRLINE6 END OF LINE @VA04250 00545000 FRLINEX DS CL40 PADDING @VA04250 00546000 ORG TRANAREA FORMAT FOR PSW DISPLAY @VA04250 00547000 EO1 DS CL8 HALF A PSW @VA04250 00548000 EO2 DS CL8 HALF A PSW @VA04250 00549000 SO1 DS CL8 HALF A PSW @VA04250 00550000 SO2 DS CL8 HALF A PSW @VA04250 00551000 PO1 DS CL8 HALF A PSW @VA04250 00552000 PO2 DS CL8 HALF A PSW @VA04250 00553000 MO1 DS CL8 HALF A PSW @VA04250 00554000 MO2 DS CL8 HALF A PSW @VA04250 00555000 IO1 DS CL8 HALF A PSW @VA04250 00556000 IO2 DS CL8 HALF A PSW @VA04250 00557000 CSW1 DS CL8 HALF A CSW @VA04250 00558000 CSW2 DS CL8 HALF A CSW @VA04250 00559000 CAWD DS CL8 CAW @V4075A2 00560000 FILLCAW DS CL8 CSW FILLER @VA04250 00561000 TMR DS CL8 INTERVAL TIMER @VA04250 00562000 FILLTMR DS CL8 TIMER FILLER @VA04250 00563000 EN1 DS CL8 HALF A PSW @VA04250 00564000 EN2 DS CL8 HALF A PSW @VA04250 00565000 SN1 DS CL8 HALF A PSW @VA04250 00566000 SN2 DS CL8 HALF A PSW @VA04250 00567000 PN1 DS CL8 HALF A PSW @VA04250 00568000 PN2 DS CL8 HALF A PSW @VA04250 00569000 MN1 DS CL8 HALF A PSW @VA04250 00570000 MN2 DS CL8 HALF A PSW @VA04250 00571000 IN1 DS CL8 HALF A PSW @VA04250 00572000 IN2 DS CL8 HALF A PSW @VA04250 00573000 FILLEXT DS CL8 FILLER @VA04250 00574000 EXTEXT DS CL8 EXT NEW EXTENSION @VA04250 00575000 EXTSVC DS CL8 SVC NEW EXTENSION @VA04250 00576000 EXTPGM DS CL8 PGM NEW EXTENSION @VA04250 00577000 ORG TRANAREA+L'TRANAREA GET OUT OF THE WORK AREA @VA04250 00578000 RETCODE DS F RETURN CODE @VA04250 00579000 CONSADD DC AL4(CONSOLE) VIRT CONS ADDR. @VA04250 00580000 * * * * * * * * ------- -------- -------- ------- * 00581000 * * * * * * * * SAVEAREA 00582000 * * * * * * * * ------- -------- -------- ------- * 00583000 SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 00584000 SAVEUSR DS F USER WORD @VA04250 00585000 SAVEFWD DS F FORWARD POINTER @VA04250 00586000 SAVEBACK DS F BACKWARD POINTER @VA04250 00587000 SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 00588000 SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 00589000 SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 00590000 SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 00591000 SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 00592000 SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 00593000 SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 00594000 SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 00595000 SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 00596000 SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 00597000 SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 00598000 SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 00599000 SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 00600000 SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 00601000 SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 00602000 * * * * * * * * ------- -------- -------- ------- * 00603000 DFSCBADD DC AL4(DUMPFSCB) FSCB FOR DUMP @VA04250 00604000 BUFF2ADD DC AL4(BUFF2) RECORD 2 BUFFER @VA04250 00605000 ISWADD DC AL4(ISW) ITEM TABLE READ SW. @VA04250 00606000 INTADD DC AL4(DMMINT) TRANSLATE ROUTINE @VA04250 00607000 GETADD DC AL4(DMMGET) GETREC ROUTINE @VA04250 00608000 PATCH DC 50F'0' PATCH @VA04250 00609000 LTORG @VA04250 00610000 R0 EQU 0 REGS @V4075A2 00611000 R1 EQU 1 REGS @V4075A2 00612000 R2 EQU 2 REGS @V4075A2 00613000 R3 EQU 3 REGS @V4075A2 00614000 R4 EQU 4 REGS @V4075A2 00615000 R5 EQU 5 REGS @V4075A2 00616000 R6 EQU 6 REGS @V4075A2 00617000 R7 EQU 7 REGS @V4075A2 00618000 R8 EQU 8 REGS @V4075A2 00619000 R9 EQU 9 REGS @V4075A2 00620000 R10 EQU 10 REGS @V4075A2 00621000 R11 EQU 11 REGS @V4075A2 00622000 R12 EQU 12 REGS @V4075A2 00623000 R13 EQU 13 REGS @V4075A2 00624000 R14 EQU 14 REGS @V4075A2 00625000 R15 EQU 15 REGS @V4075A2 00626000 PSA @V4075A2 00627000 COPY DMPBLOKS @V4075A2 00628000 END 00629000