ibm:vm370-lib:dumpscan:dmmfex.assemble_src
Table of Contents
DMMFEX Source
References
- Fixes Applied : 0
- This Source Date : Friday, December 8, 1978
- Last Fix ID : [Unmodified]
Source Listing
- DMMFEX.ASSEMBLE.txt
- FEX TITLE 'DMMFEX (IPCS) VM/370 - RELEASE 6' 00001000
- * 00002000
- * MODULE NAME: 00003000
- * DMMFEX SUBROUTINE OF DUMPSCAN 00004000
- * 00005000
- * FUNCTION: 00006000
- * DISPLAY X'130' BYTES OF THE DUMP IN RESPONSE 00007000
- * TO A REQUEST OF THE FORM 'DISPLAY HEXLOC' 00008000
- * 00009000
- * ATTRIBUTES: 00010000
- * REUSABLE 00011000
- * NON-REENTRANT 00012000
- * 00013000
- * ENTRY POINTS: 00014000
- * DMMFEX 00015000
- * 00016000
- * ENTRY CONDITIONS: 00017000
- * R2 POINTS TO PLIST CONTAINING TOKENIZED INPUT 00018000
- * 00019000
- * EXIT CONDITIONS: 00020000
- * RETURN CODE IN R15 0 - GOOD 00021000
- * 4 - WARNING 00022000
- * 8 - FATAL 00023000
- * 00024000
- * CALLS TO OTHER ROUTINES: 00025000
- * DMMDIR TO FORMAT AND DISPLAY THE DATA 00026000
- * 00027000
- * EXTERNAL REFERENCES: 00028000
- * BUFF1 DMMGET'S BUFFER 00029000
- * 00030000
- * TABLES/WORKAREAS: 00031000
- * 00032000
- * 00033000
- * REGISTER USAGE: 00034000
- * R15 ADDRESSES OF EXTERNAL ROUTINES 00035000
- * R14 RETURNS FROM EXTERNAL ROUTINES 00036000
- * R13 SAVE AREA ADDRESS 00037000
- * R12 BASE 00038000
- * R10-R8 NOT USED 00039000
- * R7-R2 WORK REGISTERS 00040000
- * R2 POINTS TO PLIST 00041000
- * 00042000
- * NOTES: 00043000
- * 00044000
- * 00045000
- * OPERATION: 00046000
- * 00047000
- * THE PLIST ADDRESS IS PASSED IN R2 00048000
- * THIS ROUTINE MOVES THE EBCDIC ADDRESS FROM THE 00049000
- * THE PLIST, TRANSLATES IT TO HEX, CHECKING 00050000
- * FOR INDIRECT REQUESTS. IT FETCHES THE 00051000
- * NEEDED RECORD INTO CORE AND FORMATS AND 00052000
- * DISPLAYS IT USING GETREC AND DIR. 00053000
- * ERROR MESSAGES: 00054000
- * 00055000
- * 00056000
- DMMFEX CSECT @VA04250 00057000
- EXTRN DMMDIR FORMAT AND DISPLAY @VA04250 00058000
- EXTRN DMMGET FETCH THE DUMP INTO CORE @VA04250 00059000
- EXTRN CMDINFO HEADER @VA04250 00060000
- EXTRN INPUT INPUT LINE @VA04250 00061000
- STM R14,R12,SAVEDISP(R13) CALLERS REGS @VA04250 00062000
- LR R12,R15 ADDRESSABILITY @VA04250 00063000
- USING DMMFEX,R12 ADDRESSABILITY @VA04250 00064000
- ST R13,SAVEBACK CALLERS SAVE AREA PTR @VA04250 00065000
- B EYECATCH SKIP EYECATCHER @VA04250 00066000
- DS 0D ALIGN @VA04250 00067000
- DC CL8'DMMFEX' EYECATCHER @VA04250 00068000
- RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00069000
- EYECATCH LA R13,SAVEAREA OUR SAVE PTR @VA04250 00070000
- XC RETCODE,RETCODE CLEAR RETURN CODE @VA04250 00071000
- MVC ADDRESS,CZEROS SET ADRESS TO ZEROS @VA04250 00072000
- LA R4,PLENT COUNT BYTES OF INPUT @VA04250 00073000
- LA R2,PL2L(R2) LAST BYTE OF INPUT @VA04250 00074000
- LA R3,ADDRESS+5 LAST BYTE OF OUTPUT @VA04250 00075000
- COMPR CLI 0(R2),BLANK IS IT BLANK @VA04250 00076000
- BE BUMP YES - TRY NEXT @VA04250 00077000
- CLI 0(R2),T AS IN 'D T1000...' @VA04250 00078000
- BNE PCCHECK NO - CHECK FOR INDIRECT @VA04250 00079000
- MVI 0(R2),ZERO REPLACE IT WITH A ZERO @VA04250 00080000
- B VALID GO PLUG IT @VA04250 00081000
- PCCHECK CLI 0(R2),HEXPC IS IT A %? @VA04250 00082000
- BNE MOVEIT NO ITS A CHARACTER @VA04250 00083000
- MVI PCSW,ON TURN ON INDIRECT SW @VA04250 00084000
- B BUMP AND TRY NEXT @VA04250 00085000
- * * * * * * * *------- -------- -------- -------- ------* 00086000
- * * * * * * * * FIRST CHECK INPUT VALIDITY 00087000
- * * * * * * * *------- -------- -------- -------- ------* 00088000
- MOVEIT CLI 0(R2),A IS BELOW 'A' @VA04250 00089000
- BL BADIN NON HEX @VA04250 00090000
- CLI 0(R2),F ABOVE 'F' @VA04250 00091000
- BH HICHEK SO FAR @VA04250 00092000
- B VALID OK - USE IT @VA04250 00093000
- HICHEK CLI 0(R2),ZERO BELOW '0' @VA04250 00094000
- BL BADIN NON HEX @VA04250 00095000
- CLI 0(R2),I9 ABOVE '9' @VA04250 00096000
- BH BADIN NON HEX @VA04250 00097000
- VALID MVC 0(ONE,R3),0(R2) MOVE THE CHAR @VA04250 00098000
- BCTR R3,R0 BACK UP OUTPUT PTR @VA04250 00099000
- BUMP BCTR R2,R0 BACK UP INPUT PTR @VA04250 00100000
- BCT R4,COMPR TRY ANOTHER @VA04250 00101000
- B TRANADD GOT EM - NOW TRANSLATE EM @VA04250 00102000
- * * * * * * * * ------- -------- -------- ------- * 00103000
- * * * * * * * * BAD INPUT WAS DETECTED 00104000
- * * * * * * * * ------- -------- -------- ------- * 00105000
- BADIN LA R8,ERMSG704 ADDRESS @VA04250 00106000
- LA R9,L'ERMSG704 AND LENGTH @VA04250 00107000
- BAL R10,WRTERM NON-HEX CHARACTER IN ADDRESS @VA04250 00108000
- MVC RETCODE,CODE4 RETURN CODE 4 AFTER ERMSG @VA04422 00108500
- B RETURN GIVE IT BACK @VA04250 00109000
- * * * * * * * *------- -------- -------- -------- ------* 00110000
- * * * * * * * * NOW THE ADDRESS IS RIGHT JUSTIFIED IN THE 00111000
- * * * * * * * * 'ADDRESS' FIELD, AND WILL BE TRANSLATED 00112000
- * * * * * * * * TO HEX FOR THE GETREC ROUTINE. 00113000
- * * * * * * * *------- -------- -------- -------- ------* 00114000
- TRANADD LA R4,ADDRESS SET UP FOR CONVERT @VA04250 00115000
- LA R6,L'ADDRESS COUNT ADDRESS BYTES @VA04250 00116000
- TEST TM 0(R4),ZERO NUMERIC? @VA04250 00117000
- BNO ADDNINE NO - FIX IT UP @VA04250 00118000
- LA R4,ONE(R4) NEXT BYTE @VA04250 00119000
- BCT R6,TEST IF NOT ALL DONE @VA04250 00120000
- B ALLDONE GO PACK EM @VA04250 00121000
- ADDNINE MVC REGLOAD+LORD(ONE),0(R4) ADD A BINARY @VA04250 00122000
- L R7,REGLOAD NINE TO ANY @VA04250 00123000
- AH R7,NINE ALPHA DIGIT @VA04250 00124000
- ST R7,REGLOAD PLUG IT BACK INTO ADDRESS @VA04250 00125000
- MVC 0(ONE,R4),REGLOAD+LORD INTO ADDRESS @VA04250 00126000
- LA R4,ONE(R4) GET NEXT BYTE @VA04250 00127000
- BCT R6,TEST NEXT BYTE @VA04250 00128000
- ALLDONE PACK HEXAD(HEXL),ADDRESS(ADL) STRIP OFF ZONES @VA04250 00129000
- SCROLL L R2,HEXAD GET THE REAL ADDRESS @VA04250 00130000
- CLI PCSW,INDIRECT INDIRECT REQ? @VA04250 00131000
- BE NOROUND YES - DONT ROUND IT @VA04250 00132000
- SRL R2,4 NO - ROUND TO 16 BYTE BOUND @VA04250 00133000
- SLL R2,4 AND RESTORE @VA04250 00134000
- NOROUND SRL R2,2 ROUND ONLY TO A WORD FOR INDIR. @VA04250 00135000
- SLL R2,2 AND RESTORE @VA04250 00136000
- LR R7,R2 GET THE DISPLAY ADDRESS @VA04250 00137000
- L R15,GETADD GETREC @VA04250 00138000
- BALR R14,R15 GO GET RECORD INTO CORE @VA04250 00139000
- LTR R15,R15 HOW WAS IT? @VA04250 00140000
- BZ INDIR OK @VA04250 00141000
- ST R15,RETCODE SAVE THE RETURN @VA04250 00142000
- B RETURN BACK TO DX @VA04250 00143000
- INDIR CLI PCSW,INDIRECT INDIRECT REQUEST ? @VA04250 00144000
- BNE DIRECT NO @VA04250 00145000
- L R2,0(R2) YES, GO AROUND AGAIN. @VA04250 00146000
- LA R2,0(R2) CLEAR HI-ORDER BYTE @VA04250 00147000
- SRL R2,4 NOW ROUND THE ADDRESS @VA04250 00148000
- SLL R2,4 TO A QUAD WORD @VA04250 00149000
- ST R2,HEXAD SAVE THE ADDRESS FOR SCROLL @VA04250 00150000
- LR R7,R2 GET REAL ADDRESS FOR SCREEN. @VA04250 00151000
- MVI PCSW,OFF TURN OFF INDIRECT SW. @VA04250 00152000
- L R15,GETADD GET READY TO GO AGAIN. @VA04250 00153000
- BALR R14,R15 GO @VA04250 00154000
- LTR R15,R15 HOW WAS IT? @VA04250 00155000
- BZ DIRECT OK @VA04250 00156000
- ST R15,RETCODE SAVE BAD RETURN @VA04250 00157000
- B RETURN BACK TO CALLER @VA04250 00158000
- * * * * * * * *-----------------------------------------* 00159000
- * * * * * * * * NOW THE CORRECT RECORD IS IN CORE 00160000
- * * * * * * * * THIS CODE FORMATS THE REQUIRED PORTION OF 00161000
- * * * * * * * * THE DUMP WITH ADDRESSES 00162000
- * * * * * * * *-----------------------------------------* 00163000
- DIRECT L R3,CIADD HEADER @VA04250 00164000
- L R4,INPUTADD INPUT LINE @VA04250 00165000
- MVC 0(LINEL,R3),0(R4) PLUG INPUT LINE @VA04250 00166000
- L R15,DIRADD FORMAT AND DISPLAY @VA04250 00167000
- BALR R14,R15 GO @VA04250 00168000
- ST R15,RETCODE PASS IT TO DSC @VA04250 00169000
- B RETURN AND GO BACK @VA04250 00170000
- * * * * * * * * ------- -------- -------- ------- * 00171000
- * * * * * * * * WRTERM ROUTINE 00172000
- * * * * * * * * ------- -------- -------- ------- * 00173000
- WRTERM ST R8,PARMLIS1 SAVE MSG TEXT PTR IN PARM LIST @V4075A2 00174100
- ST R9,PARMLIS2 AND TEXT LENGTH @V4075A2 00174200
- LA R1,PARMLIS1 POINTER TO PASS @V4075A2 00174300
- L R15,FEDLNADD ADDRESS OF DMMFEDLN - LINE WRITER@V4075A2 00174400
- BALR R14,R15 GO WRITE THE LINE @V4075A2 00174500
- BR R10 AND RETURN @V4075A2 00174600
- PARMLIS1 DS F PARM1 @V4075A2 00174700
- PARMLIS2 DS F PARM2 @V4075A2 00174800
- FEDLNADD DC V(DMMFEDLN) LINE WRITER ROUTINE @V4075A2 00174900
- * * * * * * * * ------- -------- -------- ------- * 00176000
- * * * * * * * * RETURN 00177000
- * * * * * * * * ------- -------- -------- ------- * 00178000
- RETURN L R13,SAVEBACK HIS PTR @VA04250 00179000
- MVC SAVREG15(L'RETCODE,R13),RETCODE RETCODE IN R15 @VA04250 00180000
- LM R14,R12,SAVEDISP(R13) AND HIS REGS @VA04250 00181000
- BR R14 RETURN @VA04250 00182000
- * * * * * * * * ------- -------- -------- ------- * 00183000
- * * * * * * * * CONSTANTS 00184000
- * * * * * * * * ------- -------- -------- ------- * 00185000
- REGLOAD DS F WORK AREA TO ADD 9 TO ALPH DIGI @VA04250 00186000
- HEXAD DS 2F ADDRESS CONVERTED TO HEX @VA04250 00187000
- RETCODE DS F RETURN CODE @VA04250 00188000
- * * * * * * * * ------- -------- -------- ------- * 00189000
- * * * * * * * * SAVEAREA 00190000
- * * * * * * * * ------- -------- -------- ------- * 00191000
- SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 00192000
- SAVEUSR DS F USER WORD @VA04250 00193000
- SAVEFWD DS F FORWARD POINTER @VA04250 00194000
- SAVEBACK DS F BACKWARD POINTER @VA04250 00195000
- SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 00196000
- SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 00197000
- SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 00198000
- SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 00199000
- SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 00200000
- SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 00201000
- SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 00202000
- SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 00203000
- SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 00204000
- SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 00205000
- SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 00206000
- SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 00207000
- SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 00208000
- SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 00209000
- SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 00210000
- * * * * * * * * ------- -------- -------- ------- * 00211000
- DIRADD DC AL4(DMMDIR) FORMAT AND DISPLAY ROUTINE @VA04250 00212000
- GETADD DC AL4(DMMGET) FETCH DUMP INTO CORE @VA04250 00213000
- CIADD DC AL4(CMDINFO) HEADER @VA04250 00214000
- INPUTADD DC AL4(INPUT) INPUT LINE @VA04250 00215000
- * * * * * * * * ------- -------- -------- ------- * 00216000
- * * * * * * * * STANDARDS EQUATES 00217000
- * * * * * * * * ------- -------- -------- ------- * 00218000
- PCSW DC X'00' INDIRECT REQUEST SWITCH @VA04250 00219000
- INDIRECT EQU X'FF' INDIRECT REQUEST @VA04250 00220000
- ON EQU X'FF' SWITCH ON STATUS @VA04250 00221000
- OFF EQU X'00' OFF STATUS @VA04250 00222000
- BLANK EQU X'40' BLANK @VA04250 00223000
- T EQU X'E3' ALPHA 'T' @VA04250 00224000
- ZERO EQU X'F0' NUMERIC '0' @VA04250 00225000
- HEXPC EQU X'6C' PERCENT @VA04250 00226000
- A EQU X'C1' ALPHA 'A' @VA04250 00227000
- F EQU X'C6' ALPHA 'F' @VA04250 00228000
- ONE EQU X'01' LENGTH OF ONE BYTE @VA04250 00229000
- LORD EQU 3 LO ORD BYTE OF ADDRESS @VA04250 00230000
- HEXL EQU 5 FIVE @VA04250 00231000
- ADL EQU 7 SEVEN @VA04250 00232000
- PLENT EQU 8 LENGTH OF A PLIST ENTRY @VA04250 00233000
- SAVEDISP EQU 12 REGS IN SAVE AREA @VA04250 00234000
- PL2L EQU 15 DISP TO LAST BYTE 2ND ENTRY @VA04250 00235000
- SAVREG15 EQU 16 REG 15 IN SAVE AREA @VA04250 00236000
- LINEL EQU 80 LENGTH OF THE LINE @VA04250 00237000
- I9 EQU X'F9' ONE BYTE OF '9' FOR IMMEDIATES @VA04250 00238000
- CODE4 DC F'4' WARNING RET CODE @VA04422 00238500
- NINE DC H'9' ADD TO ALPHA DIGITS TO PRINT EM @VA04250 00239000
- PADADD DS H PADD FOR ADDRESS SPILL @VA04250 00240000
- ADDRESS DS CL6 WORK AREA TO CONVERT TO HEX @VA04250 00241000
- CZEROS DC 6C'0' ZEROS FOR ADDRESS @VA04250 00242000
- ERMSG704 DC C'DMMFEX704I NON-HEX CHARACTER IN ADDRESS - RETRY' 00243000
- PATCH DC 50F'0' PATCH @VA04250 00244000
- LTORG @VA04250 00245000
- REGEQU @VA04250 00246000
- END 00247000
ibm/vm370-lib/dumpscan/dmmfex.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator