ibm:vm370-lib:dumpscan:dmmhex.assemble_src
Table of Contents
DMMHEX Source
References
- Fixes Applied : 0
- This Source Date : Friday, December 8, 1978
- Last Fix ID : [Unmodified]
Source Listing
- DMMHEX.ASSEMBLE.txt
- HEX TITLE 'DMMHEX (IPCS) VM/370 - RELEASE 6' 00001000
- * 00002000
- * 00003000
- * MODULE NAME: 00004000
- * DMMHEX SUBROUTINE OF DUMPSCAN 00005000
- * 00006000
- * FUNCTION: 00007000
- * TRASLATE EBCDIC TO HEX AND CHECK HEX VALIDITY 00008000
- * 00009000
- * ATTRIBUTES: 00010000
- * REUSABLE 00011000
- * NON-REENTRANT 00012000
- * 00013000
- * ENTRY POINTS: 00014000
- * DMMHEX 00015000
- * 00016000
- * ENTRY CONDITIONS: 00017000
- * R4 POINTS TO LEFT MOST BYTE OF EBCDIC 00018000
- * R3 CONTAINS COUNT IN BYTES 00019000
- * 00020000
- * EXIT CONDITIONS: 00021000
- * R5 POINTS TO LEFTMOST BYTE OF HEX 00022000
- * 00023000
- * CALLS TO OTHER ROUTINES: 00024000
- * 00025000
- * 00026000
- * EXTERNAL REFERENCES: 00027000
- * 00028000
- * 00029000
- * TABLES/WORKAREAS: 00030000
- * 00031000
- * 00032000
- * REGISTER USAGE: 00033000
- * 00034000
- * 00035000
- * NOTES: 00036000
- * 00037000
- * 00038000
- * OPERATION: 00039000
- * 00040000
- * 00041000
- * ERROR MESSAGES: 00042000
- * DMMHEX714I NON-HEX CHARACTER IN INPUT - RETRY 00043000
- * 00044000
- * 00045000
- * * * * * * * *------- -------- -------- -------- ------* 00046000
- DMMHEX CSECT @VA04250 00047000
- STM R14,R12,SAVEDISP(R13) SAVE CALLERS REGS @VA04250 00048000
- LR R12,R15 ADDRESSABILITY @VA04250 00049000
- USING DMMHEX,R12 @VA04250 00050000
- ST R13,SAVEBACK CALLERS SAVE AREA @VA04250 00051000
- B EYECATCH BYPASS EYECATCHER @VA04250 00052000
- DS 0D ALIGN @VA04250 00053000
- DC CL8'DMMHEX' EYECATCHER @VA04250 00054000
- RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00055000
- EYECATCH LA R13,SAVEAREA HEX SAVEAREA @VA04250 00056000
- XC RETCODE,RETCODE CLEAR RETURN CODE @VA04250 00057000
- * * * * * * * *------- -------- -------- -------- ------* 00058000
- * * * * * * * * THIS ROUTINE ACCEPTS IN R4 THE ADDRESS OF 00059000
- * * * * * * * * AN ADDRESS LEFT JUSTIFIED IN A PLIST. 00060000
- * * * * * * * * IT CHECKS THAT ALL THE CHARACTERS ARE 00061000
- * * * * * * * * HEX, AND TRANSLATES THE ADDRESS INTO HEX 00062000
- * * * * * * * * AND PASSES IT BACK IN R5. 00063000
- * * * * * * * *------- -------- -------- -------- ------* 00064000
- ADFETCH LA R2,INL(R4) +7 - LAST BYTE OF ADDRESS @VA04250 00065000
- MVC ADDRESS,CZEROS SET ADRESS TO ZEROS @VA04250 00066000
- LA R4,PLISTENT COUNT 8 BYTES OF INPUT @VA04250 00067000
- LA R3,ADDRESS+LOUT LAST BYTE OF OUTPUT @VA04250 00068000
- COMPR CLI 0(R2),BLANK IS IT BLANK @VA04250 00069000
- BE BUMP YES - GET NEXT LETTER @VA04250 00070000
- MOVEIT CLI 0(R2),A BELOW 'A' @VA04250 00071000
- BL BADIN NOT HEX @VA04250 00072000
- CLI 0(R2),F ABOVE 'F' @VA04250 00073000
- BH HICHEK SO FAR SO GOOD @VA04250 00074000
- B VALID GOOD @VA04250 00075000
- HICHEK CLI 0(R2),ZERO BELOW '0' @VA04250 00076000
- BL BADIN NOT HEX @VA04250 00077000
- CLI 0(R2),X9 ABOVE '9' @VA04250 00078000
- BH BADIN NOT HEX @VA04250 00079000
- VALID MVC 0(CHARL,R3),0(R2) MOVE THE CHAR @VA04250 00080000
- BCTR R3,R0 BACK UP OUTPUT PTR @VA04250 00081000
- BUMP BCTR R2,R0 BACK UP INPUT PTR @VA04250 00082000
- BCT R4,COMPR GET ANOTHER @VA04250 00083000
- B TRANADD GOOD - GO TRANSLATE IT @VA04250 00084000
- BADIN MVC RETCODE,CODE4 BAD RETURN @VA04250 00085000
- LA R8,ERMSG714 ADDRESS @VA04250 00086000
- LA R9,L'ERMSG714 AND LENGTH @VA04250 00087000
- BAL R10,WRTERM 'NON-HEX CHARACTER IN ADDRESS' @VA04250 00088000
- B RETURN TRY AGAIN @VA04250 00089000
- * * * * * * * *------- -------- -------- -------- ------* 00090000
- * * * * * * * * NOW THE ADDRESS IS RIGHT JUSTIFIED IN THE 00091000
- * * * * * * * * 'ADDRESS' FIELD, AND WILL BE TRANSLATED 00092000
- * * * * * * * * TO HEX FOR THE GETREC ROUTINE. 00093000
- * * * * * * * *------- -------- -------- -------- ------* 00094000
- TRANADD LA R4,ADDRESS SET UP FOR CONVERT @VA04250 00095000
- LA R6,L'ADDRESS COUNT ADDRESS BYTES @VA04250 00096000
- TEST TM 0(R4),NUMZONE NUMERIC? @VA04250 00097000
- BNO ADDNINE NO - FIX IT UP @VA04250 00098000
- LA R4,ONE(R4) NEXT BYTE @VA04250 00099000
- BCT R6,TEST IF NOT ALL DONE @VA04250 00100000
- B ALLDONE BUT ON THE OTHER HAND @VA04250 00101000
- ADDNINE MVC REGLOAD+LORD(CHARL),0(R4) ADD A BINARY @VA04250 00102000
- L R7,REGLOAD NINE TO ANY @VA04250 00103000
- AH R7,NINE ALPHA DIGIT @VA04250 00104000
- ST R7,REGLOAD PLUG IT BACK INTO ADDRESS @VA04250 00105000
- MVC 0(CHARL,R4),REGLOAD+LORD INTO ADDRESS @VA04250 00106000
- LA R4,ONE(R4) GET NEXT BYTE @VA04250 00107000
- BCT R6,TEST NEXT BYTE @VA04250 00108000
- ALLDONE PACK HEXADEC(HEXL),ADDRESS(ADL) STRIP OFF ZONES @VA04250 00109000
- B RETURN GET OUT @VA04250 00110000
- * * * * * * * * ------- -------- -------- ------- * 00111000
- * * * * * * * * WRTERM 00112000
- * * * * * * * * ------- -------- -------- ------- * 00113000
- WRTERM ST R8,PARMLIS1 SAVE MSG TEXT PTR IN PARM LIST @V4075A2 00114100
- ST R9,PARMLIS2 AND TEXT LENGTH @V4075A2 00114200
- LA R1,PARMLIS1 POINTER TO PASS @V4075A2 00114300
- L R15,FEDLNADD ADDRESS OF DMMFEDLN - LINE WRITER@V4075A2 00114400
- BALR R14,R15 GO WRITE THE LINE @V4075A2 00114500
- BR R10 AND RETURN @V4075A2 00114600
- PARMLIS1 DS F PARM1 @V4075A2 00114700
- PARMLIS2 DS F PARM2 @V4075A2 00114800
- FEDLNADD DC V(DMMFEDLN) LINE WRITER ROUTINE @V4075A2 00114900
- * * * * * * * * ------- -------- -------- ------- * 00116000
- * * * * * * * * CLOSE 00117000
- * * * * * * * * ------- -------- -------- ------- * 00118000
- RETURN L R13,SAVEBACK RESTORE CALLER SAVE PTR @VA04250 00119000
- MVC SAVEREG5(L'HEXADEC,R13),HEXADEC PLUG HEX INTO R5@VA04250 00120000
- MVC SAVREG15(L'RETCODE,R13),RETCODE PLUG RETCODE @VA04250 00121000
- LM R14,R12,SAVEDISP(R13) RESTORE CALLERS REGS @VA04250 00122000
- BR R14 RETURN @VA04250 00123000
- * * * * * * * * ------- -------- -------- ------- * 00124000
- * * * * * * * * CONSTANTS 00125000
- * * * * * * * * ------- -------- -------- ------- * 00126000
- * * * * * * * * ------- -------- -------- ------- * 00127000
- * * * * * * * * SAVEAREA 00128000
- * * * * * * * * ------- -------- -------- ------- * 00129000
- SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 00130000
- SAVEUSR DS F USER WORD @VA04250 00131000
- SAVEFWD DS F FORWARD POINTER @VA04250 00132000
- SAVEBACK DS F BACKWARD POINTER @VA04250 00133000
- SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 00134000
- SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 00135000
- SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 00136000
- SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 00137000
- SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 00138000
- SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 00139000
- SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 00140000
- SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 00141000
- SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 00142000
- SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 00143000
- SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 00144000
- SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 00145000
- SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 00146000
- SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 00147000
- SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 00148000
- * * * * * * * * ------- -------- -------- ------- * 00149000
- CODE4 DC F'4' BAD RETURN CODE @VA04250 00150000
- SAVHEX DS 18F OUR SAVE AREA @VA04250 00151000
- RETCODE DS F RETURN CODE @VA04250 00152000
- PADADD DS H OVERFLOW FOR ADDRESS HI ORD @VA04250 00153000
- ADDRESS DS CL6 RIGHT ALIGNED ADDRESS @VA04250 00154000
- CZEROS DC 6C'0' INITIALIZE ADDRESS @VA04250 00155000
- REGLOAD DS F WORK AREA @VA04250 00156000
- HEXADEC DS 2F HEX TRANSLATED OUTPUT @VA04250 00157000
- NINE DC H'9' ADJUST HEX ALPHA CHAR @VA04250 00158000
- ERMSG714 DC C'DMMHEX714I NON-HEX CHARACTER IN INPUT - RETRY' 00159000
- BLANK EQU X'40' BLANK TEST @VA04250 00160000
- A EQU X'C1' THESE ARE FOR @VA04250 00161000
- F EQU X'C6' THE HEX VALIDITY @VA04250 00162000
- ZERO EQU X'F0' TESTS MADE ON @VA04250 00163000
- X9 EQU X'F9' THE INPUT DATA @VA04250 00164000
- NUMZONE EQU X'F0' ZONE FOR A NUMERIC CHAR @VA04250 00165000
- CHARL EQU 1 LENGTH OF A SINGLE CHARACTER @VA04250 00166000
- ONE EQU 1 BUMP CTR @VA04250 00167000
- LORD EQU 3 LO - ORD BYTE @VA04250 00168000
- LOUT EQU 5 LENGTH OF OUTPUT @VA04250 00169000
- HEXL EQU 5 PACKED ADDRESS @VA04250 00170000
- ADL EQU 7 UNPACKED ADDRESS @VA04250 00171000
- INL EQU 7 INPUT LENGTH @VA04250 00172000
- PLISTENT EQU 8 LENGTH OF A PLIST ENTRY @VA04250 00173000
- SAVEDISP EQU 12 REGS IN SAVE AREA @VA04250 00174000
- SAVREG15 EQU 16 REG 15 IN SAVE AREA @VA04250 00175000
- SAVEREG5 EQU 40 REG 5 IN SAVE AREA @VA04250 00176000
- PATCH DC 50F'0' PATCH @VA04250 00177000
- LTORG @VA04250 00178000
- REGEQU @VA04250 00179000
- END 00180000
ibm/vm370-lib/dumpscan/dmmhex.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator