ibm:vm370-lib:dumpscan:dmmdir.assemble_src
Table of Contents
DMMDIR Source
References
- Fixes Applied : 1
- This Source Date : Monday, December 11, 1978
- Last Fix ID : [R08980DM]
Source Listing
- DMMDIR.ASSEMBLE.txt
- DIR TITLE 'DMMDIR (IPCS) VM/370 - RELEASE 6' 00001000
- * 00002000
- * MODULE NAME: 00003000
- * DUMPSCAN 00004000
- * 00005000
- * FUNCTION: 00006000
- * FORMAT AND DISPLAY THE DUMP FOR 'DSC' AND 'SCR' 00007000
- * 00008000
- * ATTRIBUTES: 00009000
- * REUSABLE 00010000
- * NON-REENTRANT 00011000
- * 00012000
- * ENTRY POINTS: 00013000
- * DMMDIR 00014000
- * 00015000
- * ENTRY CONDITIONS: 00016000
- * R2 POINTS TO THE AREA TO BE DISPLAYED 00017000
- * R7 CONTAINS THE DUMP ADDRESS TO BE DISPLAYED 00018000
- * 00019000
- * EXIT CONDITIONS: 00020000
- * RETURN CODE IN R15 0 - GOOD 00021000
- * 4 - WARNING 00022000
- * 8 - FATAL 00023000
- * 00024000
- * CALLS TO OTHER ROUTINES: 00025000
- * DMMINT TRANSLATE 00026000
- * 00027000
- * EXTERNAL REFERENCES: 00028000
- * BUFF1 DATA AREA 00029000
- * CMDINFO HEADER 00030000
- * TYPEFLAG TERMINAL TYPE 00031000
- * 00032000
- * TABLES/WORKAREAS: 00033000
- * SCREEN DISPLAY AREA 00034000
- * 00035000
- * REGISTER USAGE: 00036000
- * 00037000
- * R15 ADDRESSES OF EXTERNAL ROUTINES 00038000
- * R14 RETURNS FROM EXTERNAL ROUTINES 00039000
- * R13 SAVE AREA ADDRESS 00040000
- * R12 BASE 00041000
- * R11,R10 NOT USED 00042000
- * R9-R2 WORK REGISTERS 00043000
- * 00044000
- * NOTES: 00045000
- * 00046000
- * 00047000
- * OPERATION: 00048000
- * DIR FIRST CLEARS THE SCREEN WORK AREA. 00049000
- * THE INTENT IS TO PUT THE REQUESTED ADDRESS ON 00050000
- * LINE 8 OF THE SCREEN. SO, ALLOWING 16 TRANSLATED 00051000
- * BYTES TO A LINE THE STARTING AND ENDING ADDRESSES 00052000
- * ARE CALCULATED. THE 16 BYTES OF DATA, ALONG WITH 00053000
- * THE TRUE, IN-DUMP ADDRESS IS THEN TRANSLATED AND LAID 00054000
- * OUT ON THE SCREEN. WHEN THE SCREEN IS FILLED, IT IS 00055000
- * WRITTEN OUT BY A DIAGNOSE UNLESS THE TERMINAL IS 00056000
- * A 2741. IN THIS CASE, ONLY ONE LINE AT THE REQUESTED 00057000
- * ADDRESS IS WRITTEN. 00058000
- * 00059000
- * ERROR MESSAGES: 00060000
- * NONE 00061000
- * 00062000
- * * * * * * * *------- -------- -------- -------- ------* 00063000
- DMMDIR CSECT @VA04250 00064000
- ENTRY SCRNAREA DISPLAY AREA @VA04250 00065000
- ENTRY INCORE ADDRESS IN CORE OF LAST DISP AREA@V4075A2 00066000
- ENTRY DMMDIRLN COMMON WRTERM/PRINT ROUTINE @V4075A2 00067000
- EXTRN PRINTSW PRINT ON/OFF STATUS @V4075A2 00068000
- ENTRY HEXAD LAST ADDRESS DISPLAYED @VA04250 00069000
- EXTRN BUFF1 DUMP DATA @VA04250 00070000
- EXTRN DMMINT TRANSLATE @VA04250 00071000
- EXTRN CMDINFO HEADER @VA04250 00072000
- EXTRN TYPEFLAG TYPE OF TERMINAL @VA04250 00073000
- EXTRN CONSOLE VIRT CONS ADDR. @VA04250 00074000
- EXTRN PRINTONE ONE-SHOT PRINT SWITCH @V4075A2 00075000
- STM R14,R12,SAVEDISP(R13) CALLER SAVE @VA04250 00076000
- LR R12,R15 ADDRESS. @VA04250 00077000
- USING DMMDIR,R12 USE @VA04250 00078000
- LA R11,SCRNAREA ADDRESSABILITY TO @VA04250 00079000
- USING SCREEN,R11 SCREEN DSECT @VA04250 00080000
- ST R13,SAVEBACK CALLER SAVE PTR @VA04250 00081000
- B EYECATCH BYPASS EYECATCHER @VA04250 00082000
- DS 0D ALIGN @VA04250 00083000
- DC CL8'DMMDIR' EYECATCH @VA04250 00084000
- RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00085000
- EYECATCH LA R13,SAVEAREA OUR SAVE PTR @VA04250 00086000
- * * * * * * * *-----------------------------------------* 00087000
- * * * * * * * * DIR IS PASSED AN ADDRESS TO BE FORMATTED 00088000
- * * * * * * * * AND DISPLAYED ON THE SCREEN. AT THE TIME 00089000
- * * * * * * * * HE GETS CONTROL, THE RECORD IS IN CORE IN 00090000
- * * * * * * * * BUFF1. 00091000
- * * * * * * * * R2 HAS THE IN-CORE ADDRESS OF THE 00092000
- * * * * * * * * REQUIRED PART OF THE DUMP. 00093000
- * * * * * * * * R7 HAS THE IN-DUMP ADDRESS TO FORMAT. 00094000
- * * * * * * * *-----------------------------------------* 00095000
- ST R7,HEXAD SAVE REQUESTED ADDRESS @VA04250 00096000
- XC RETCODE,RETCODE CLEAR RETURN @VA04250 00097000
- LR R9,R2 GET IN CORE ADDRESS @VA04250 00098000
- L R2,BUFF1ADD GET PAGE LOWER BOUNDARY @VA04250 00099000
- LA R8,SCREEN START OF SCREEN @VA04250 00100000
- STM R6,R9,CLEARSAV SAVE REGS THROUGH CLEAR @VA04250 00101000
- LA R6,SCREEN START OF SCREEN @VA04250 00102000
- LA R7,SCREENSZ 1760 BYTES IN SCREEN @VA04250 00103000
- LA R9,BLANKPAD PAD @VA04830 00104000
- SLL R9,HIORD PUT PAD CHAR IN HI ORDER @VA04830 00105000
- MVCL R6,R8 CLEAR SCREEN @VA04250 00106000
- LM R6,R9,CLEARSAV RESTORE REGS @VA04250 00107000
- ST R9,INCORE SAVE THE ADDRESS TO BE DISPLAYED @V4075A2 00108000
- SH R9,EIGHTY POINT TO FIRST LINE TO BE SCREE @VA04250 00109000
- SH R7,EIGHTY KEEP REAL ADDRESS IN STEP @VA04250 00110000
- LR R6,R9 GET FIRST LINE @VA04250 00111000
- AH R6,ONETIRTY R6 NOW POINTS TO END OF SCREEN @VA04250 00112000
- AH R2,ONEK R2 POINTS TO TOP OF PAGE @VA04250 00113000
- CR R6,R2 IS TOP OF SCREEN OFF PAGE? @VA04250 00114000
- BNH OFFPAGE NO @VA04250 00115000
- LR R6,R2 YES - USE LOWER FIGURE @VA04250 00116000
- OFFPAGE SH R2,ONEK RESTORE R2 @VA04250 00117000
- OFFCOMP CR R2,R9 CURRENT LINE PTR OFF PAGE? @VA04250 00118000
- BNH KEEPON NO - PRINT IT. @VA04250 00119000
- LA R9,EBCOUT(R9) NEXT LINE ON PAGE @VA04250 00120000
- LA R7,EBCOUT(R7) BUMP REAL ADDRESS @VA04250 00121000
- LA R8,LINEL(R8) NEXT LINE ON SCREEN @VA04250 00122000
- B OFFCOMP GO CHECK NEXT LINE @VA04250 00123000
- KEEPON LA R3,TRANL GET LENGTH FOR TRANSLATE - 19 @VA04250 00124000
- TRANSLAT MVC TRANLINE+TDAT(L'TRANLINE-TDAT),0(R9) TRANS DATA @VA04250 00125000
- ST R7,TRANLINE LOAD ADDRESS FOR TRANS @VA04250 00126000
- LA R4,TRANLINE+ONE GET ADDRESS FOR TRANS @VA04250 00127000
- L R15,INTADD GO DO IT @VA04250 00128000
- BALR R14,R15 LINK @VA04250 00129000
- LA R8,FOUR(R8) POINT TO ADDR AREA @VA04250 00130000
- MVC 0(TRANADL,R8),0(R5) PLUG ADDRESS @VA04250 00131000
- LA R5,SIX(R5) POINT TO DATA @VA04250 00132000
- LA R2,FOUR COUNT SLOTS ON LINE @VA04250 00133000
- LA R8,TEN(R8) MIDDLE OF SCREEN @VA04250 00134000
- MOVEBLOK MVC 0(TRANOUT,R8),0(R5) MOVE XLATED 8 BYTES TO SCRN @VA04250 00135000
- LA R8,TEN(R8) NEXT OUTPUT BLOCK @VA04250 00136000
- LA R5,EIGHT(R5) NEXT INPUT BLOCK @VA04250 00137000
- BCT R2,MOVEBLOK MOVE NEXT BLOK @VA04250 00138000
- LA R8,TWO(R8) POINT TO EBCDIC AREA @VA04250 00139000
- MVC 0(EBCOUT,R8),0(R9) WRITE EBCDIC @VA04250 00140000
- TR 0(EBCOUT,R8),TRTABLE TRANSLATE UNPRINTABLES @VA04250 00141000
- LA R8,TWENTYFO(R8) BUMP SCREEN LINE PTR @VA04250 00142000
- CR R6,R9 OFF END OF SCREEN? @VA04250 00143000
- BL SCRNFULL YES - GO WRITE IT @VA04250 00144000
- LA R9,EBCOUT(R9) BUMP PAGELINE PTR @VA04250 00145000
- LA R7,EBCOUT(R7) BUMP ADDRESS CTR @VA04250 00146000
- B KEEPON GET NEXT LINE @VA04250 00147000
- * * * * * * * *-----------------------------------------* 00148000
- * * * * * * * * THIS ROUTINE WRITES TO THE SCREEN 00149000
- * * * * * * * *-----------------------------------------* 00150000
- SCRNFULL MVC SCRNL21(LINEL),BLANKOUT CLEAR READY LINE @VA04830 00151000
- MVC SCRNL21(L'READYMSG),READYMSG '*** READY ***' @VA04250 00152000
- L R2,CIADD INFO LINE @VA04250 00153000
- MVC SCRNL1(LINEL),0(R2) POST ANY ADDITIONAL INFO @VA04250 00154000
- MVC 0(LINEL,R2),BLANKOUT CLEAR MESSAGE AREA @VA04830 00155000
- L R2,TFLAGADD GET DEVICE TYPE @VA04250 00156000
- CLI 0(R2),TYPER TYPER? @VA04250 00157000
- BNE SCREENIT NO - GO DISPLAY IT @VA04250 00158000
- LA R8,SCRNL9 YES TYPE 1 LINE. GET ADDRESS @VA04250 00159000
- LA R9,SHRTLINE LENGTH - 72 @VA04250 00160000
- BAL R10,WRTERM GO WRITE ONE LINE @VA04250 00161000
- B RETURN GO BACK @VA04250 00162000
- SCREENIT MVC SCRNL9(L'ASTS),ASTS FLAG ACTIVE ADDRESS @VA04250 00163000
- MVC SCRNL9+LREADY(L'ASTS),ASTS DITTO @VA04250 00164000
- MVI CCW1CTL,ON SET ERASE CONTROL BYTE ON @VA04250 00165000
- MVI CCW2CTL,LINE1 START WRITE LINE 1 @VA04250 00166000
- LA R3,CCWD CCW FOR DIAGNOSE @VA04250 00167000
- L R4,CONSADD VIRT CONS ADDRESS @VA04250 00168000
- L R4,0(R4) DEVICE ADDRESS @VA04250 00169000
- B DISBRENT GO TO BRANCH ENTRY TO DISPLAY @V4075A2 00170000
- * * * * * * * * ------- -------- -------- ------- * 00171000
- * * * * * * * * WRTERM 00172000
- * * * * * * * * ------- -------- -------- ------- * 00173000
- WRTERM ST R8,PARMLIS1 SAVE MSG TEXT PTR IN PARM LIST @V4075A2 00174000
- ST R9,PARMLIS2 AND TEXT LENGTH @V4075A2 00175000
- LA R1,PARMLIS1 POINTER TO PASS @V4075A2 00176000
- L R15,FEDLNADD ADDRESS OF DMMFEDLN - LINE WRITER@V4075A2 00177000
- BALR R14,R15 GO WRITE THE LINE @V4075A2 00178000
- BR R10 AND RETURN @V4075A2 00179000
- PARMLIS1 DS F PARM1 @V4075A2 00180000
- PARMLIS2 DS F PARM2 @V4075A2 00181000
- FEDLNADD DC V(DMMFEDLN) LINE WRITER ROUTINE @V4075A2 00182000
- * * * * * * * * ------- -------- -------- ------- * 00183000
- * * * * * * * * CONSTANTS FOR FORMAT 00184000
- * * * * * * * *------- -------- -------- -------- ------* 00185000
- DS 0F ALIGN @VA04250 00186000
- TRANLINE DS CL20 LINE FROM DUMP TO BE TRANSLATED @VA04250 00187000
- HEXAD DC 4X'FF' LAST ADDRESS DISPLAYED @VA04250 00188000
- ONEK DC X'0FE0' ONE PAGE @VA04250 00189000
- EIGHTY DC X'0080' 8 LINES FORMATTED @VA04250 00190000
- ONETIRTY DC X'0130' ONE SCREEN FORMATTED @VA04250 00191000
- * * * * * * * * ------- -------- -------- ------- * 00192000
- * * * * * * * * MISC CONSTANTS 00193000
- * * * * * * * * ------- -------- -------- ------- * 00194000
- RETCODE DS F RETURN CODE @VA04250 00195000
- TYPER EQU X'FF' TYPER DEVICE FLAG @VA04250 00196000
- NULL EQU X'00' CLEAR REGS @VA04250 00197000
- LINE1 EQU X'01' FIRST SCREEN LINE @VA04250 00198000
- ONE EQU 1 THIS AND @VA04250 00199000
- TWO EQU 2 THESE ARE NUMERIC EQUATES @VA04250 00200000
- FOUR EQU 4 USED IN THE TRANSLATE AND @VA04250 00201000
- SIX EQU 6 FORMAT ROUTINE @VA04250 00202000
- EIGHT EQU 8 AND REPRESENT THE ARRANGEMENT @VA04250 00203000
- TEN EQU 10 OF THE OUTPUT AREA. @VA04250 00204000
- TWENTYFO EQU 24 ON THE SCREEN @VA04250 00205000
- * * * * * * * * ------- -------- -------- ------- * 00206000
- SCREENSZ EQU 1760 SIZE OF SCREEN IN BYTES @VA04250 00207000
- MAXTRIES EQU 100 MAX NUMBER OF WRITE TRIES @VA04250 00208000
- TRANL EQU 19 LENGTH TO TRANSLATE @VA04250 00209000
- TRANADL EQU 6 LENGTH OF TRANSLATED ADDRESS @VA04250 00210000
- TRANOUT EQU 8 LENGTH OF OUTPUT BLOCK @VA04250 00211000
- EBCOUT EQU 16 LENGTH OF EBCDIC OUTPUT AREA @VA04250 00212000
- SHRTLINE EQU 72 LENGTH OF DATA ON OUT LINE @VA04250 00213000
- LINEL EQU 80 LENGTH OF OUTPUT LINE @VA04250 00214000
- ON EQU X'FF' ON - SWITCH STATUS @VA04250 00215000
- ASTS DC CL3'***' ASTERISKS FOR 'CURRENT LINE' @VA04250 00216000
- TDAT EQU 4 LENGTH OF DATA TO TRANSLATE @VA04250 00217000
- LREADY EQU 11 LENGTH OF FIRST PART OF 'READY' @VA04250 00218000
- SAVEDISP EQU 12 DISP INTO SAVEAREA FOR REGS @VA04250 00219000
- SAVREG15 EQU 16 DISP INTO SAVAREA FOR R15 @VA04250 00220000
- BLANKPAD EQU 64 PAD CHAR FOR LONG CLEAR @VA04830 00221000
- HIORD EQU 24 BITS TO GET TO HI ORD BYTE @VA04830 00222000
- * * * * * * * * ------- -------- -------- ------- * 00223000
- * * * * * * * * SAVEAREA 00224000
- * * * * * * * * ------- -------- -------- ------- * 00225000
- SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 00226000
- SAVEUSR DS F USER WORD @VA04250 00227000
- SAVEFWD DS F FORWARD POINTER @VA04250 00228000
- SAVEBACK DS F BACKWARD POINTER @VA04250 00229000
- SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 00230000
- SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 00231000
- SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 00232000
- SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 00233000
- SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 00234000
- SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 00235000
- SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 00236000
- SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 00237000
- SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 00238000
- SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 00239000
- SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 00240000
- SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 00241000
- SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 00242000
- SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 00243000
- SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 00244000
- * * * * * * * * ------- -------- -------- ------- * 00245000
- CLEARSAV DS 4F SAVE REGS ACROSS MVCL @VA04250 00246000
- BUFF1ADD DC AL4(BUFF1) DUMP DATA @VA04250 00247000
- CIADD DC AL4(CMDINFO) HEADER @VA04250 00248000
- TFLAGADD DC AL4(TYPEFLAG) DEVICE TYPE @VA04250 00249000
- CONSADD DC AL4(CONSOLE) ADDRESS OF VIRT CONSOLE CUU @VA04250 00250000
- INTADD DC AL4(DMMINT) TRANSLATE @VA04250 00251000
- * * * * * * * * ------- -------- -------- ------- * 00252000
- * * * * * * * * TRANSLATE TABLE FOR SCREEN 00253000
- * * * * * * * * ------- -------- -------- ------- * 00254000
- TRTABLE DS CL256 TRANSLATE TABLE @VA04250 00255000
- ORG TRTABLE @VA04250 00256000
- DC 64C'.' 64 UNPRINTABLE CHARACTERS @VA04250 00257000
- DC C' ' DISPLAY BLANK AS BLANK @VA04250 00258000
- DC 9C'.' 9 UNPRINTABLE CHARACTERS @VA04250 00259000
- DC X'4A4B4C4D4E4F50' 7 'ยข.<(+|&' @VA04250 00260000
- DC 9C'.' 9 UNPRINTABLE CHARACTERS @VA04250 00261000
- DC X'5A5B5C5D5E5F6061' 8 '!$*);ยฌ-/' @VA04250 00262000
- DC 9C'.' 9 UNPRINTABLE CHARACTERS @VA04250 00263000
- DC X'6B6C6D6E6F' 5 ',%_>?' @VA04250 00264000
- DC 10C'.' 10 UNPRINTABLE CHARACTERS @VA04250 00265000
- DC X'7A7B7C7D7E7F' 6 ':#@'="' @VA04250 00266000
- DC C'.' 1 UNPRINTABLE CHARACTER @VA04250 00267000
- DC X'818283848586878889' 9 'ABCDEFGHI' LOWER CASE @VA04250 00268000
- DC 7C'.' 7 UNPRINTABLE CHARACTERS @VA04250 00269000
- DC X'919293949596979899' 9 'JKLMNOPQR' LOWER CASE @VA04250 00270000
- DC 8C'.' 8 UNPRINTABLE CHARACTERS @VA04250 00271000
- DC X'A2A3A4A5A6A7A8A9' 8 'STUVWXYZ' LOWER CASE @VA04250 00272000
- DC 23C'.' 23 UNPRINTABLE CHARACTERS @VA04250 00273000
- DC X'C1C2C3C4C5C6C7C8C9' 9 'ABCDEFGHI' UPPER @VA04250 00274000
- DC 7C'.' 7 UNPRINTABLE CHARACTERS @VA04250 00275000
- DC X'D1D2D3D4D5D6D7D8D9' 9 'JKLMNOPQR' UPPER @VA04250 00276000
- DC 8C'.' 8 UNPRINTABLE CHARACTERS @VA04250 00277000
- DC X'E2E3E4E5E6E7E8E9' 8 'STUVWXYZ' UPPER @VA04250 00278000
- DC 6C'.' 6 UNPRINTABLE CHARACTERS @VA04250 00279000
- DC X'F0F1F2F3F4F5F6F7F8F9' 10 '0123456789' @VA04250 00280000
- DC 6C'.' 6 UNPRINTABLE CHARACTERS @VA04250 00281000
- * * * * * * * * ------- -------- -------- ------- * 00282000
- * * * * * * * * 'SCREEN CONSTANTS 00283000
- * * * * * * * * ------- -------- -------- ------- * 00284000
- READYMSG DC C'*** READY ***' @VA04250 00285000
- CCWD CCW X'19',SCRNAREA,X'60',1760 ERASE CCW @VA04250 00286000
- CCW X'19',SCRNAREA,X'20',1680 WRITE CCW @VA04250 00287000
- CCW1CTL EQU CCWD+5 CCW1 CONTROL BYTE - ERASE @VA04250 00288000
- CCW2CTL EQU CCWD+13 CCW2 CTL BYTE - START LINE @VA04250 00289000
- BLANKOUT DC CL80' ' FILL CHAR @VA04830 00290000
- SCRNAREA DS CL1760 DISPLAY AREA @VA04250 00291000
- ************************************************************** @V4075A2 00292000
- * COMMON SCREEN WRITE ROUTINE @V4075A2 00293000
- * ALSO CHECKS FOR 'PRINT' ON, AND @V4075A2 00294000
- * WRITES TO THE VIRTUAL PRTR @V4075A2 00295000
- ************************************************************** @V4075A2 00296000
- DMMDIRLN STM R14,R12,SAVEDISP(R13) SAVE CALLERS REGS @V4075A2 00297000
- DROP R12 @V4075A2 00298000
- USING DMMDIRLN,R15 @V4075A2 00299000
- L R12,DIRADDR GET START OF THIS MODULE @V4075A2 00300000
- B THISBASE AROUND ADCON @V4075A2 00301000
- DIRADDR DC AL4(DMMDIR) BASE FOR ENTRY @V4075A2 00302000
- DROP R15 GET READY FOR 12 @V4075A2 00303000
- USING DMMDIR,R12 @V4075A2 00304000
- THISBASE ST R13,SAVEBACK CALLERS SAVE AREA @V4075A2 00305000
- LA R13,SAVEAREA HEX SAVEAREA @V4075A2 00306000
- DISBRENT XC PRETCODE,PRETCODE CLEAR PRINT RETURN CODE @V4075A2 00307000
- * IF THIS IS A REISSUE, DONT DISPLAY. @V4075A2 00308000
- L R6,PRINT1AD IS THIS A ONE-SHOT DEAL? @V4075A2 00309000
- CLI 0(R6),NOSUBC INDICATING PRINT PREV CMD @V4075A2 00310000
- BE GETPRTSW YES - DONT DISPLAY. @V4075A2 00311000
- WAITT WAIT FOR ANY SCREEN ACTIVITY. @V4075A2 00312000
- LA R6,100 SET MAX RETRY COUNT @V4075A2 00313000
- SPLASH DC X'83340058' DIAGNOSE @V4075A2 00314000
- BZ GETPRTSW OK - GO CHECK THE PRINT SWITCH @V4075A2 00315000
- BCT R6,SPLASH TRY A FEW MORE TIMES @V4075A2 00316000
- ************************************************************** @V4075A2 00317000
- * NOW LOOK SEE IF WE MUST ALSO PRINT THIS @V4075A2 00318000
- ************************************************************** @V4075A2 00319000
- GETPRTSW L R2,PRTSWADD POINT TO THE PRINT STATUS SW @V4075A2 00320000
- CLI 0(R2),ON SHOULD WE PRINT THIS TOO ? @V4075A2 00321000
- BNE RETURN NO @V4075A2 00322000
- ************************************************************** @V4075A2 00323000
- * SINCE PRINT IS ON WE WILL WRITE THIS TO '00E' @V4075A2 00324000
- * R3 POINTS TO THE DIAG CCW CHAIN. GO THERE TO GET @V4075A2 00325000
- * THE ADDRESS OF THE DATA TO WRITE, AND THE NUMBER OF @V4075A2 00326000
- * BYTES. FROM THIS FIGURE THE NUMBER OF LINES TO WRITE. @V4075A2 00327000
- ************************************************************** @V4075A2 00328000
- L R4,0(R3) GET THE SCREEN ADDR FROM THE CCW @V4075A2 00329000
- LA R4,0(R4) AND CLEAR OUT THE HI BYTE @V4075A2 00330000
- L R7,4(R3) GET THE BYTE COUNT @V4075A2 00331000
- SLL R7,16 CLEAR OUT THE FLAG AND CNTRL FLDS@V4075A2 00332000
- SRL R7,16 AND RESTORE THE COUNT @V4075A2 00333000
- LA R5,80 BYTES/LINE @V4075A2 00334000
- LA R6,0 CLEAR TOP OF DIVIDEND @V4075A2 00335000
- DR R6,R5 FIND NUM. LINES @V4075A2 00336000
- ************************************************************** @V4075A2 00337000
- * NOW CHECK FOR A REMAINDER AND CORRECT THE LINES. @V4075A2 00338000
- * ALSO CHECK FOR A MAX OF 22 LINES @V4075A2 00339000
- ************************************************************** @V4075A2 00340000
- LTR R6,R6 ANY REMAINDER? @V4075A2 00341000
- BZ COUNTRT IF NOT - DONT ADJUST @V4075A2 00342000
- LA R7,1(R7) YES - ADD A LINE @V4075A2 00343000
- COUNTRT C R7,TWENTY2 SEE IF MORE THAN 22 LINES REMAIN @V4075A2 00344000
- BNH COUNTDON NO - DONT SET TO 22 @V4075A2 00345000
- L R7,TWENTY2 TOO MANY - SET TO 22 @V4075A2 00346000
- ************************************************************** @V4075A2 00347000
- * NOW CLEAR THE PRINT LINE TO BLANKS, AND MOVE IN @V4075A2 00348000
- * AND THE PRINT THE SET NUMBER OF LINES. @V4075A2 00349000
- ************************************************************** @V4075A2 00350000
- COUNTDON MVI PRINTLIN,BLANK SET UP TO CLEAR PRINT LINE @V4075A2 00351000
- MVC PRINTLIN+ONE(L'PRINTLIN-ONE),PRINTLIN TO BLANKS @V4075A2 00352000
- LA R9,L'PRINTLIN-1 SET TO MOVE 80 BYTES @V4075A2 00353000
- MOVEX EX R9,MOVEPRTL GET THE LINE @V4075A2 00354000
- LA R2,CARRCTRL POINT TO THE CARRAIGE CONTROL @V4075A2 00355000
- PRINTL (R2),81,ERROR=PRINTERR WRITE TO VIRT PRINTER @V4075A2 00356000
- PRINTOK LA R4,L'PRINTLIN(R4) BUMP TO NEXT LINE @V4075A2 00357000
- BCT R7,COUNTDON GO PRINT ANOTHER LINE @V4075A2 00358000
- B RETURN GET OUT @V4075A2 00359000
- MOVEPRTL MVC PRINTLIN(0),0(R4) MOVE DATA TO THE PRINT LINE @V4075A2 00360000
- ************************************************************** @V4075A2 00361000
- * RETURN @V4075A2 00362000
- ************************************************************** @V4075A2 00363000
- RETURN L R13,SAVEBACK @V4075A2 00364000
- MVC SAVREG15(L'RETCODE,R13),RETCODE PLUG THE RETURN @V4075A2 00365000
- LM R14,R12,SAVEDISP(R13) CALLERS REGS @V4075A2 00366000
- BR R14 RETURN @V4075A2 00367000
- ************************************************************** @V4075A2 00368000
- * THIS HANDLES NON ZERO RETURNS FROM PRINTL @V4075A2 00369000
- ************************************************************** @V4075A2 00370000
- PRINTERR ST R15,PRTERRCD SAVE THE CODE @V4075A2 00371000
- L R2,PRTERRCD GET IT FOR PRINTL @V4075A2 00372000
- C R2,CHAN9 3211 VIRTUAL CARR TAPE HOLE? @V4075A2 00373000
- BE PRINTOK YES - MAY IGNORE THIS @V4075A2 00374000
- C R2,CHAN12 ANOTHER VIRTUAL HOLE? @V4075A2 00375000
- BE PRINTOK RIGHT @V4075A2 00376000
- LINEDIT TEXT='DMMDSC500S ERROR ''...'' WRITING TO THE VIRTUAL X00377000
- PRINTER',SUB=(DEC,(2)) @V4075A2 00378000
- MVC RETCODE,CODE4 SET WARNING CODE @V4075A2 00379000
- B RETURN AND GO BACK @V4075A2 00380000
- ************************************************************** @V4075A2 00381000
- * CONSTANTS @V4075A2 00382000
- NOSUBC EQU X'0F' 'DONT-DISPLAY' FLAG @V4075A2 00383000
- ************************************************************** @V4075A2 00384000
- BLANK EQU X'40' BLANK TO CLEAR PRINT LINE @V4075A2 00385000
- CARRCTRL DC C' ' CARRIAGE CONTROL CHARACTER @VA08980 00386000
- PRINTLIN DS CL80 PRINTED TEXT * DO NOT SEPARATE @V4075A2 00387000
- CHAN9 DC F'2' CHANNEL 2 @V4075A2 00388000
- CHAN12 DC F'3' CHANNEL 3 FROM CARR TAPE @V4075A2 00389000
- PRINT1AD DC AL4(PRINTONE) ONE-SHOT FLAG ADDRESS @V4075A2 00390000
- PRTERRCD DS F PRETCODE FROM PRINTL @V4075A2 00391000
- PRTSWADD DC AL4(PRINTSW) ADDRESS OF PRINT SW IN DMMDSC @V4075A2 00392000
- INCORE DC F'0' IN CORE ADDRESS OF LATEST DATA DISPLAYED@V4075A2 00393000
- PRETCODE DS F RETURN TO CALLER @V4075A2 00394000
- CODE4 DC F'4' WARNING RETURN @V4075A2 00395000
- TWENTY2 DC F'22' SCREEN FULL OF LINES @V4075A2 00396000
- PATCH DC 50F'0' PATCH AREA @VA04250 00397000
- LTORG @VA04250 00398000
- REGEQU @VA04250 00399000
- SCREEN DSECT @VA04250 00400000
- SCRNL1 DS CL80 @VA04250 00401000
- SCRNL2 DS CL80 @VA04250 00402000
- SCRNL3 DS CL80 @VA04250 00403000
- SCRNL4 DS CL80 @VA04250 00404000
- SCRNL5 DS CL80 @VA04250 00405000
- SCRNL6 DS CL80 @VA04250 00406000
- SCRNL7 DS CL80 @VA04250 00407000
- SCRNL8 DS CL80 @VA04250 00408000
- SCRNL9 DS CL80 @VA04250 00409000
- SCRNL10 DS CL80 @VA04250 00410000
- SCRNL11 DS CL80 @VA04250 00411000
- SCRNL12 DS CL80 @VA04250 00412000
- SCRNL13 DS CL80 @VA04250 00413000
- SCRNL14 DS CL80 @VA04250 00414000
- SCRNL15 DS CL80 @VA04250 00415000
- SCRNL16 DS CL80 @VA04250 00416000
- SCRNL17 DS CL80 @VA04250 00417000
- SCRNL18 DS CL80 @VA04250 00418000
- SCRNL19 DS CL80 @VA04250 00419000
- SCRNL20 DS CL80 @VA04250 00420000
- SCRNL21 DS CL80 @VA04250 00421000
- SCRNL22 DS CL80 @VA04250 00422000
- END 00423000
ibm/vm370-lib/dumpscan/dmmdir.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator