ibm:vm370-lib:dumpscan:dmmint.assemble_src
Table of Contents
DMMINT Source
References
- Fixes Applied : 0
- This Source Date : Friday, December 8, 1978
- Last Fix ID : [Unmodified]
Source Listing
- DMMINT.ASSEMBLE.txt
- INT TITLE 'DMMINT (IPCS) VM/370 - RELEASE 6' 00001000
- * 00002000
- * MODULE NAME: DMMINT 00003000
- * 00004000
- * 00005000
- * FUNCTION: TRANSLATE BINARY DATA TO PRINTABLE FORMAT 00006000
- * 00007000
- * 00008000
- * ATTRIBUTES: REUSABLE 00009000
- * NON-REENTRANT 00010000
- * 00011000
- * 00012000
- * ENTRY POINTS: DMMINT 00013000
- * 00014000
- * 00015000
- * ENTRY CONDITIONS: R3 CONTAINS BYTE COUNT, R4 POINTS TO 00016000
- * LEFTMOST BYTE OF INPUT STRING. 00017000
- * 00018000
- * 00019000
- * EXIT CONDITIONS: R5 POINTS TO TRANSLATED DATA 00020000
- * 00021000
- * 00022000
- * CALLS TO OTHER ROUTINES: NONE 00023000
- * 00024000
- * 00025000
- * EXTERNAL REFERENCES: NONE 00026000
- * 00027000
- * 00028000
- * TABLES/WORKAREAS: 00029000
- * 00030000
- * 00031000
- * REGISTER USAGE: R15 BASE 00032000
- * R14 RETURN 00033000
- * R13 CALLER'S SAVEAREA 00034000
- * R6 - R9 WORK 00035000
- * R5 OUTPUT DATA ADDRESS 00036000
- * R4 INPUT DATA ADDRESS 00037000
- * R3 INPUT BYTE COUNT 00038000
- * 00039000
- * 00040000
- * NOTES: A 200 BYTE PATCH AREA EXISTS AT LABEL 'PATCH' 00041000
- * 00042000
- * 00043000
- * OPERATION: THE INPUT DATA IS OPERATED ON 1 BYTE AT A TIME 00044000
- * PRODUCING 2 OUTPUT BYTES PER 1 INPUT BYTE (2 HEX DIGITS PER 00045000
- * BYTE).THE TOTAL OUTPUT RESULT IS THEN TRANSLATED TO EBCDIC. 00046000
- * 00047000
- * 00048000
- * ERROR MESSAGES: NONE 00049000
- * 00050000
- * 00051000
- DMMINT CSECT @VA04250 00052000
- STM R14,R12,12(R13) SAVE CALLERS REGS @VA04250 00053000
- LR R12,R15 LOAD BASE @VA04250 00054000
- USING DMMINT,R12 TEMPORARY ADDRESSABILITY @VA04250 00055000
- ST R13,SAVEBACK CALLERS REG PTR @VA04250 00056000
- B EYECATCH BRANCH AROUND EYECATCHER @VA04250 00057000
- DS 0D @VA04250 00058000
- MODNAME DC C'DMMINT ' MODULE NAME @VA04250 00059000
- RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00060000
- EYECATCH LA R13,SAVEAREA POINT TO OUR SAVE @VA04250 00061000
- *************************************************************** 00062000
- * SET UP 00063000
- *************************************************************** 00064000
- XC RETCODE,RETCODE CLEAR RETURN CODE @VA04250 00065000
- XC OUTPUT,OUTPUT SET OUTPUT TO BINARY ZERO @VA04250 00066000
- SR R2,R2 CLEAR WORK FOR IC @VA04250 00067000
- LR R5,R3 GET LENGTH OF DATA TO BE XLATED @VA04250 00068000
- C R5,MAX64 VALID DATA LENGTH? @VA04250 00069000
- BNH ZEROCHEK YES @VA04250 00070000
- L R5,MAX64 NO, USE MAX ALLOWED (64) @VA04250 00071000
- ZEROCHEK LTR R5,R5 TEST FOR ZERO @VA04250 00072000
- BNZ CONTINUE NOT ZERO - OK @VA04250 00073000
- LA R5,DEFAULT DEFAULT TO 4 @VA04250 00074000
- CONTINUE ST R5,INCOUNT SAVE IT @VA04250 00075000
- LA R3,OUTPUT POINT TO OUTPUT AREA @VA04250 00076000
- LOOP IC R2,0(R4) NEXT INPUT BYTE @VA04250 00077000
- SRL R2,4 ISOLATE 1ST 4 BITS (1 HEX DIGIT) @VA04250 00078000
- STC R2,0(R3) PUT IT IN OUTPUT @VA04250 00079000
- MVN 1(1,R3),0(R4) MOVE SECOND 4 BITS TO NEXT BYTE @VA04250 00080000
- LA R3,TWO(R3) UP OUTPUT POINTER 2 BYTES @VA04250 00081000
- LA R4,ONE(R4) UP INPUT POINTER 1 BYTE @VA04250 00082000
- BCT R5,LOOP SET UP ALL OUTPUT @VA04250 00083000
- *************************************************************** 00084000
- * THE OUTPUT AREA NOW HAS ALL THE INPUT DATA. 00085000
- * E.G. X'1234' ON INPUT NOW IS X'01020304' IN THE OUTPUT AREA 00086000
- * WE NEED TO TRANSLATE THIS TO X'F1F2F3F4' AND WE ARE DONE. 00087000
- *************************************************************** 00088000
- L R5,INCOUNT GET LENGTH OF DATA AGAIN @VA04250 00089000
- SLL R5,1 MULTIPLY BY 2 (2 HEX DIGITS/BYTE)@VA04250 00090000
- BCTR R5,0 SET UP FOR EXECUTE INSTRUCTION @VA04250 00091000
- EX R5,TRNSLATE TRANSLATE THE DATA TO EBCDIC @VA04250 00092000
- RETURN L R13,SAVEBACK GET CALLERS SAVE @VA04250 00093000
- MVC 16(L'RETCODE,R13),RETCODE PLUG RETURN CODE @VA04250 00094000
- LA R2,OUTPUT RETURN RESULTS TO CALLER @VA04250 00095000
- ST R2,40(R13) PLUG ADDRESS OF DATA @VA04250 00096000
- LM R14,R12,12(R13) RESTORE CALLER'S REGS @VA04250 00097000
- BR R14 RETURN TO CALLER @VA04250 00098000
- TRNSLATE TR OUTPUT(0),TRTABLE EXECUTED TRANSLATE INSTRCTN @VA04250 00099000
- *************************************************************** 00100000
- * CONSTANTS SAVEAREAS AND EQUATES 00101000
- *************************************************************** 00102000
- RETCODE DS F RETURN CODE @VA04250 00103000
- * * * * * * * * ------- -------- -------- ------- * 00104000
- * * * * * * * * SAVEAREA 00105000
- * * * * * * * * ------- -------- -------- ------- * 00106000
- SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 00107000
- SAVEUSR DS F USER WORD @VA04250 00108000
- SAVEFWD DS F FORWARD POINTER @VA04250 00109000
- SAVEBACK DS F BACKWARD POINTER @VA04250 00110000
- SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 00111000
- SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 00112000
- SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 00113000
- SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 00114000
- SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 00115000
- SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 00116000
- SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 00117000
- SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 00118000
- SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 00119000
- SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 00120000
- SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 00121000
- SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 00122000
- SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 00123000
- SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 00124000
- SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 00125000
- * * * * * * * * ------- -------- -------- ------- * 00126000
- MAX64 DC F'64' MAXIMUM VALID TRANSLATION REQUEST@VA04250 00127000
- OUTPUT DS CL128 OUTPUT AREA FOR TRANSLATED DATA @VA04250 00128000
- INCOUNT DS F STORE FOR INPUT LENGTH @VA04250 00129000
- TRTABLE DC C'0123456789ABCDEF' HEX TO CHAR HEX XLATE TABLE @VA04250 00130000
- ONE EQU 1 BUMP PTR @VA04250 00131000
- TWO EQU 2 BUMP PTR @VA04250 00132000
- DEFAULT EQU 4 DEFAULT LENGTH @VA04250 00133000
- PATCH DC 50F'0' PATCH AREA @VA04250 00134000
- LTORG @VA04250 00135000
- REGEQU @VA04250 00136000
- END 00137000
ibm/vm370-lib/dumpscan/dmmint.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator