ibm:vm370-lib:dumpscan:dmmtrn.assemble_src
Table of Contents
DMMTRN Source
References
- Fixes Applied : 0
- This Source Date : Friday, December 8, 1978
- Last Fix ID : [Unmodified]
Source Listing
- DMMTRN.ASSEMBLE.txt
- TRN TITLE 'DMMTRN (IPCS) VM/370 - RELEASE 6' 00001000
- * 00002000
- * MODULE NAME: DMMTRN 00003000
- * 00004000
- * 00005000
- * FUNCTION: TRANSLATE BINARY DATA TO PRINTABLE FORMAT 00006000
- * 00007000
- * 00008000
- * ATTRIBUTES: REUSABLE 00009000
- * NON-REENTRANT 00010000
- * 00011000
- * 00012000
- * ENTRY POINTS: DMMTRN 00013000
- * 00014000
- * 00015000
- * ENTRY CONDITIONS: COMMON CONSTANT AREA TRNPARM AND TRNPARM1 00016000
- * HAVE DATA LENGTH AND DATA ADDRESS RESPECTIVELY 00017000
- * 00018000
- * 00019000
- * EXIT CONDITIONS: R1 POINTS TO TRANSLATED DATA 00020000
- * 00021000
- * 00022000
- * CALLS TO OTHER ROUTINES: NONE 00023000
- * 00024000
- * 00025000
- * EXTERNAL REFERENCES: EXCONST (COMMON CONSTANT AREA) 00026000
- * 00027000
- * 00028000
- * TABLES/WORKAREAS: 00029000
- * 00030000
- * 00031000
- * REGISTER USAGE: R15 BASE 00032000
- * R14 RETURN 00033000
- * R13 CALLER'S SAVEAREA 00034000
- * R6 SHARECON DSECT USAGE 00035000
- * R2-R5 WORK 00036000
- * R1 ADDRESS RETURN 00037000
- * 00038000
- * 00039000
- * NOTES: A 200 BYTE PATCH AREA EXISTS AT LABEL 'PATCH' 00040000
- * 00041000
- * 00042000
- * OPERATION: DATA IS OPERATED ON 1 BYTE AT A TIME PRODUCING 00043000
- * 2 OUTPUT BYTES PER 1 INPUT BYTE (2 HEX DIGITS PER BYTE). 00044000
- * THE TOTAL OUTPUT RESULT IS THEN TRANSLATED TO EBCDIC. 00045000
- * 00046000
- * 00047000
- * ERROR MESSAGES: NONE 00048000
- * 00049000
- * 00050000
- DMMTRN CSECT @VA04250 00051000
- USING DMMTRN,R15 TEMPORARY ADDRESSABILITY @VA04250 00052000
- B START BRANCH AROUND EYECATCHER @VA04250 00053000
- DS 0D @VA04250 00054000
- MODNAME DC C'DMMTRN ' MODULE NAME @VA04250 00055000
- RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00056000
- START STM R2,R12,28(R13) SAVE REGISTERS @VA04250 00057000
- *************************************************************** 00058000
- * SET UP 00059000
- *************************************************************** 00060000
- L R6,VEXCON ADDRESSABILITY FOR CONSTANTS @VA04250 00061000
- USING SHARECON,R6 ESTABLISH ADDRESSABILITY @VA04250 00062000
- XC OUTPUT,OUTPUT SET OUTPUT TO BINARY ZERO @VA04250 00063000
- SR R2,R2 CLEAR WORK FOR IC @VA04250 00064000
- L R5,TRNPARM LENGTH OF DATA TO BE TRANSLATED @VA04250 00065000
- LA R5,0(R5) ZERO HI-ORDER BIT @VA05445 00065100
- L R4,TRNPARM1 GET DATA POINTER @VA04250 00066000
- C R5,MAX64 VALID DATA LENGTH? @VA04250 00067000
- BNH CONTINUE YES @VA04250 00068000
- L R5,MAX64 NO, USE MAX ALLOWED (64) @VA04250 00069000
- CONTINUE LTR R5,R5 ANY DATA AT ALL TO BE TRANSLATED?@VA04250 00070000
- BNZ CONT2 YES @VA04250 00071000
- L R5,MAX64 TRANSLATE 64 ANYWAY JUST IN CASE @VA04250 00072000
- CONT2 LA R3,OUTPUT POINT TO OUTPUT AREA @VA04250 00073000
- LOOP IC R2,0(R4) NEXT INPUT BYTE @VA04250 00074000
- SRL R2,4 ISOLATE 1ST 4 BITS (1 HEX DIGIT) @VA04250 00075000
- STC R2,0(R3) PUT IT IN OUTPUT @VA04250 00076000
- MVN ONE(ONE,R3),0(R4) MOVE 2ND 4 BITS TO NEXT BYTE @VA04250 00077000
- LA R3,TWO(R3) UP OUTPUT POINTER 2 BYTES @VA04250 00078000
- LA R4,ONE(R4) UP INPUT POINTER 1 BYTE @VA04250 00079000
- BCT R5,LOOP SET UP ALL OUTPUT @VA04250 00080000
- *************************************************************** 00081000
- * THE OUTPUT AREA NOW HAS ALL THE INPUT DATA. 00082000
- * E.G. X'1234' ON INPUT NOW IS X'01020304' IN THE OUTPUT AREA 00083000
- * WE NEED TO TRANSLATE THIS TO X'F1F2F3F4' AND WE ARE DONE. 00084000
- *************************************************************** 00085000
- L R5,TRNPARM GET LENGTH OF DATA AGAIN @VA04250 00086000
- SLL R5,1 MULTIPLY BY 2 (2 HEX DIGITS/BYTE)@VA04250 00087000
- BCTR R5,0 SET UP FOR EXECUTE INSTRUCTION @VA04250 00088000
- EX R5,TRNSLATE TRANSLATE THE DATA TO EBCDIC @VA04250 00089000
- LA R1,OUTPUT RETURN RESULTS TO CALLER @VA04250 00090000
- LM R2,R12,28(R13) RESTORE CALLER'S REGS @VA04250 00091000
- SR R15,R15 RETURN CODE ZERO @VA04250 00092000
- BR R14 RETURN TO CALLER @VA04250 00093000
- TRNSLATE TR OUTPUT(0),TRTABLE EXECUTED TRANSLATE INSTRUCTION@VA04250 00094000
- *************************************************************** 00095000
- * CONSTANTS SAVEAREAS AND EQUATES 00096000
- *************************************************************** 00097000
- MAX64 DC F'64' MAX. ALLOWED TRANSLATION REQUEST @VA04250 00098000
- VEXCON DC V(SHARECON) ADDRESS OF SHARED CONSTANT AREA @VA04250 00099000
- OUTPUT DS CL128 OUTPUT AREA FOR TRANSLATED DATA @VA04250 00100000
- TRTABLE DC C'0123456789ABCDEF' TRANSLATE TABLE @VA04250 00101000
- PATCH DC 50F'0' PATCH AREA @VA04250 00102000
- ONE EQU 1 FOR LOAD ADDRESS ETC. @VA04250 00103000
- TWO EQU 2 FOR LOAD ADDRESS ETC. @VA04250 00104000
- LTORG @VA04250 00105000
- COPY EXCONST @VA04250 00106000
- REGEQU @VA04250 00107000
- END 00108000
ibm/vm370-lib/dumpscan/dmmtrn.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator