ibm:vm370-lib:dumpscan:dmmmod.assemble_src
Table of Contents
DMMMOD Source
References
- Fixes Applied : 0
- This Source Date : Friday, December 8, 1978
- Last Fix ID : [Unmodified]
Source Listing
- DMMMOD.ASSEMBLE.txt
- MOD TITLE 'DMMMOD (IPCS) VM/370 - RELEASE 6' 00001000
- * 00002000
- * MODULE NAME: 00003000
- * DMMMOD SUBROUTINE OF DUMPSCAN 00004000
- * 00005000
- * FUNCTION: 00006000
- * LOCATE MODULES AND ENTRY POINTS IN THE LOAD MAP. 00007000
- * IDENTIFY THE MODULE CONTAINING A GIVEN ADDRESS 00008000
- * 00009000
- * ATTRIBUTES: 00010000
- * REUSABLE 00011000
- * NON-REENTRANT 00012000
- * 00013000
- * ENTRY POINTS: 00014000
- * DMMMOD 00015000
- * 00016000
- * ENTRY CONDITIONS: 00017000
- * R2 POINTS TO PLIST WITH 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
- * DMMMOD GETS DUMP AREAS INTO CORE 00026000
- * DMMDIR DISPLAYS GOTTEN AREAS 00027000
- * 00028000
- * EXTERNAL REFERENCES: 00029000
- * DUMPFSCB 00030000
- * BUFF2 ITEM TABLE 00031000
- * ISW ITEM-TABLE-READ SWITCH 00032000
- * CMDINFO HEADER LINE 00033000
- * 00034000
- * TABLES/WORKAREAS: 00035000
- * BUFF LOAD MAP READ AREA 00036000
- * 00037000
- * REGISTER USAGE: 00038000
- * R15 ADDRESSES OF EXTERNAL ROUTINES 00039000
- * R14 RETURNS FROM EXTERNAL ROUTINES 00040000
- * R13 SAVE AREA ADDRESS 00041000
- * R12 BASE 00042000
- * R11,R10 INTERNAL LINKS 00043000
- * R9-R2 WORK REGISTERS 00044000
- * R2 PASSES ADDRESS OF PLIST TO SUBROUTINES 00045000
- * 00046000
- * NOTES: 00047000
- * 00048000
- * 00049000
- * OPERATION: 00050000
- * TYPE 1 - LOCATE A MODULE 00051000
- * DUMPSCAN PASSES 'MOD' THE ADDRESS OF THE PLIST 00052000
- * THIS POINTS TO A MODULE NAME. MOD READS IN A SHORT 00053000
- * FORM OF THE LOAD MAP FROM THE END OF THE DUMP, 00054000
- * SCANS FOR THE NAME, GETS THE ADDRESS OF THE MODULE AT 00055000
- * IPL TIME, CHECKS THROUGH THE SEGMENT AND PAGE TABLES 00056000
- * TO FIND WHERE IT WAS LOADED AT DUMP TIME. 00057000
- * IT THEN CALLS GETREC TO FETCH THAT AREA INTO CORE, 00058000
- * AND CALLS DIR TO DISPLAY IT. 00059000
- * TYPE 2 - FIX AN ADDRESS 00060000
- * DUMPSCAN PASSES MOD AN ADDRESS. THIS IS VALIDITY 00061000
- * CHECKED THEN A SEARCH IS MADE TO FIND THE CODE WHICH 00062000
- * CONTAINS THE ADDRESS. FIRST THE ADDRESS IS CHECKED 00063000
- * TO SEE IF IT IS ABOVE DMKCPEND. IF NOT, THE NAME IS 00064000
- * EXTRACTED FROM THE LOAD MAP. IF IT IS, THEN THE PAGE 00065000
- * CONTAINING THE ADDRESS IS BROUGHT INTO CORE. THE PAGE 00066000
- * IS SCANNED FROM THE ADDRESS BACK, UNTIL A MODULE NAME 00067000
- * IS FOUND. THE MESSAGE IS CONSTRUCTED TO GIVE THE 00068000
- * MODULE NAME AND DISPLACEMENT. 00069000
- * 00070000
- * ERROR MESSAGES: 00071000
- * DMMMOD705E ERROR IN ITEM TABLE 00072000
- * DMMMOD706I 'ENTRY' NOT FOUND IN LOAD MAP 00073000
- * DMMMOD707I 'MODULE' PAGE NOT VALID 00074000
- * 00075000
- * * * * * * * *------- -------- -------- -------- ------* 00076000
- DMMMOD CSECT @VA04250 00077000
- EXTRN DMMDIR FORMAT/DISPLAY @VA04250 00078000
- EXTRN DMMINT TRANSLATE @VA04250 00079000
- EXTRN DMMGET DUMP FETCH @VA04250 00080000
- EXTRN DMMHEX HEX TO EBC TRANS. @VA04250 00081000
- EXTRN SCRNAREA DISPLAY AREA @VA04250 00082000
- EXTRN DUMPFSCB FSCB OF DUMP @VA04250 00083000
- EXTRN ISW ITEM-TAB-READ SWITCH @VA04250 00084000
- EXTRN BUFF2 ITEM TABLE @VA04250 00085000
- EXTRN CMDINFO HEADER LINE @VA04250 00086000
- EXTRN TYPEFLAG DEVICE TYPE @VA04250 00087000
- EXTRN CONSOLE VIRT CONS ADDR @VA04250 00088000
- ENTRY BUFF BUFFER @VA04250 00089000
- ENTRY MAPREDSW HAS THE MAP BEEN READ @VA04250 00090000
- STM R14,R12,SAVEDISP(R13) CALLER REGS @VA04250 00091000
- LR R12,R15 ADDRESSABILITY @VA04250 00092000
- USING DMMMOD,R12 USE IT @VA04250 00093000
- ST R13,SAVEBACK CALLER SAVE PTR @VA04250 00094000
- B EYECATCH BYPASS EYECATCH @VA04250 00095000
- DS 0D ALIGN @VA04250 00096000
- DC CL8'DMMMOD' EYECATCHER @VA04250 00097000
- RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00098000
- EYECATCH LA R13,SAVEAREA OUR SAVE PTR @VA04250 00099000
- * * * * * * * *------- -------- -------- -------- ------* 00100000
- * * * * * * * * FIRST READ THE ITEM TABLE WHICH MAPS THE 00101000
- * * * * * * * * PAGES IN THE DUMP AGAINST RECORDS IN THE 00102000
- * * * * * * * * DUMP FILE. VMFDUMP READS THE LOAD MAP 00103000
- * * * * * * * * AND PRODUCES A SHORT VERSION WITH NAMES 00104000
- * * * * * * * * AND ADDRESSES ONLY. THIS IS TACKED ON 00105000
- * * * * * * * * AS THE THREE RECORDS AT THE END OF THE 00106000
- * * * * * * * * REGULAR DUMP. BY COUNTING THE ENTRIES 00107000
- * * * * * * * * IN THE ITEM TABLE, AND ADDING 5, WE GET 00108000
- * * * * * * * * THE RECORD NUMBER OF THE FIRST MAP PAGE. 00109000
- * * * * * * * *------- -------- -------- -------- ------* 00110000
- XC RETCODE,RETCODE CLEAR RETURN @VA04250 00111000
- L R3,CIADD COMMAND INFO LINE @VA04250 00112000
- MVC HDRNAME(PLISTENT,R3),0(R2) GET MOD FROM PLIST @VA04250 00113000
- L R3,BUFF2ADD INFO. RECORD @VA04250 00114000
- L R4,DFSCBADD DUMP FSCB @VA04250 00115000
- L R5,ISWADD ITEM-TABLE-READ? SWITCH @VA04250 00116000
- CLI 0(R5),ON IS ITEM TABLE IN BUFF2 ? @VA04250 00117000
- BE TABSCAN YES - GO COUNT ENTRIES @VA04250 00118000
- FSREAD FSCB=(R4),BUFFER=(R3),ERROR=RDERR,RECNO=2 @VA04250 00119000
- MVI 0(R5),ON TURN ON 'ITEM TABLE READ' SWITC @VA04250 00120000
- TABSCAN LA R3,ITEMINDX(R3) POINT TO ITEM TABLE @VA04250 00121000
- LA R6,NULL SET TABLE ENTRY COUNTER @VA04250 00122000
- L R7,MAXCOUNT MAX 1792 ENTRIES VALID @VA04250 00123000
- EOTAB CLC 0(L'FOXES,R3),FOXES IS THIS THE END-OF-TABLE? @VA04250 00124000
- BE READMAP YES - GO READ IN THE LOAD MAP @VA04250 00125000
- LA R3,TWO(R3) BUMP TABLE POINTER @VA04250 00126000
- LA R6,ONE(R6) BUMP ENTRY COUNTER @VA04250 00127000
- BCT R7,EOTAB LOOK AT THE NEXT ONE @VA04250 00128000
- LA R8,ERMSG705 ADDRESS AND @VA04250 00129000
- LA R9,L'ERMSG705 LENGTH FOR WRTERM @VA04250 00130000
- BAL R10,WRTERM GO WRITE IT @VA04250 00131000
- MVC RETCODE,CODE4 SET ACCEPTABLE RETURN CODE @VA04250 00132000
- B RETURN GO HANDLE IT @VA04250 00133000
- READMAP CLI MAPREDSW,RED HAS THE MAP BEEN READ? @VA04250 00134000
- BE MAPRED YES - DONT READ IT @VA04250 00135000
- LA R3,LMRECS NO-COUNT THREE LOAD MAP RECORDS @VA04250 00136000
- LA R6,DUMMYREC(R6) CORRECT FOR EXTRA RECORDS @VA04250 00137000
- LA R5,BUFF ADDRESS OF WORK BUFFER @VA04250 00138000
- READ FSREAD FSCB=(R4),BUFFER=(R5),RECNO=(R6),ERROR=LMERR @VA04250 00139000
- A R5,FOURK NEXT AREA IN BUFFER @VA04250 00140000
- LA R6,ONE(R6) NEXT RECORD @VA04250 00141000
- BCT R3,READ READ THREE RECORDS @VA04250 00142000
- MVI MAPREDSW,RED SET MAP READ SWITCH @VA04250 00143000
- * * * * * * * *------- -------- -------- -------- ------* 00144000
- * * * * * * * * NOW THE SORTED MAP IS IN CORE IN 00145000
- * * * * * * * * BUFF. FIRST CHECK TO SEE IF THIS IS A 'DMK?' 00146000
- * * * * * * * * TYPE, AND GO TO 'QREQUEST' IF IT IS. 00147000
- * * * * * * * * IF NOT, IT IS A REQUEST TO LOCATE A MODULE. 00148000
- * * * * * * * * SCAN ON THE FIRST 6 CHARS OF THE ENTERED NAME 00149000
- * * * * * * * * UNTIL WE GET A HIT, THEN CHECK FOR 8. 00150000
- * * * * * * * * GET A HIT, THEN CHECK FOR 8. 00151000
- * * * * * * * * IF WE GET A 6 CHAR HIT, BUT NO 8, GO WITH 00152000
- * * * * * * * * THE 6, WHICH REPRESENTS THE MODULE 00153000
- * * * * * * * * CONTAINING THE ENTRY POINT WHOSE NAME 00154000
- * * * * * * * * WAS ENTERED. 00155000
- * * * * * * * *------- -------- -------- -------- ------* 00156000
- MAPRED CLC DMKQ,0(R2) LOCATE AN ADDRESS? @VA04250 00157000
- BE QREQUEST YES - GO CHANGE ADDRESS TO HEX @VA04250 00158000
- LA R3,BUFF NO - LOCATE A NAME @VA04250 00159000
- LA R4,MAXMAP 4095 MAX MAP ENTRIES @VA04250 00160000
- XC MODADD,MODADD CLEAR ADDRESS @VA04250 00161000
- NAME6 CLC 0(MODL,R2),0(R3) HIT ON MODULE NAME? @VA04250 00162000
- BNE NEXTNAME NO - GET THE NEXT ONE @VA04250 00163000
- NAME8 MVC SIXNAME(MAPENT),0(R3) SAVE 6 HIT IN CASE NO 8 @VA04250 00164000
- ENTRNAME CLC 0(ENTRL,R2),0(R3) HIT ON ALL 8? @VA04250 00165000
- BE EIGHTHIT YES - GO FETCH IT @VA04250 00166000
- LA R3,MAPENT(R3) TRY NEXT @VA04250 00167000
- BCT R4,ENTRNAME TRY ALL EIGHT @VA04250 00168000
- B ANYHIT GO SEE IF WE EVER HAD A HIT @VA04250 00169000
- NEXTNAME LA R3,MAPENT(R3) NO - TRY NEXTY @VA04250 00170000
- BCT R4,NAME6 TRY AGAIN @VA04250 00171000
- ANYHIT CLC MODADD,XZERO HAVE WE HAD A HIT ON 6? @VA04250 00172000
- BE MODNF NO - EXIT WITH ERROR MSG @VA04250 00173000
- L R6,CIADD YES- SET UP IN HEADER LINE TO @VA04250 00174000
- MVC HDRNAME(ENTRL,R6),SIXNAME NAME SAVED FROM 6 HIT @VA04250 00175000
- B MOD6 AND GO WITH A 6 CHAR HIT @VA04250 00176000
- MODNF MVC MSGMODNM(ENTRL),0(R2) PLUG MODNAME INTO ERR MSG @VA04250 00177000
- LA R8,ERMSG706 ADDRESS FOR WRTERM @VA04250 00178000
- LA R9,E706L LENGTH @VA04250 00179000
- BAL R10,WRTERM WRITE IT @VA04250 00180000
- MVC RETCODE,CODE4 PLUG RETURN CODE @VA04250 00181000
- B RETURN GO BACK @VA04250 00182000
- * * * * * * * *------- -------- -------- -------- ------* 00183000
- * * * * * * * * NOW WE HAVE A HIT ON THE INPUT MODULE 00184000
- * * * * * * * * NAME. GET THE IPL ADDRESS FROM THE MAP, 00185000
- * * * * * * * * AND FIND OUT WHERE IT WAS LOADED AT 00186000
- * * * * * * * * DUMP TIME 00187000
- * * * * * * * *------- -------- -------- -------- ------* 00188000
- EIGHTHIT MVC MODADD,ADDR(R3) THIS IS IT - SAVE ADDRESS @VA04250 00189000
- MOD6 LA R4,MODADD+ONE SET DATA UP FOR TRANSLATE @VA04250 00190000
- LA R3,ADRL SET UP LENGTH @VA04250 00191000
- L R15,INTADD TRANSLATE IT @VA04250 00192000
- BALR R14,R15 LINK @VA04250 00193000
- L R6,CIADD ADDRESS OF INFORMATION HEADER @VA04250 00194000
- MVC HDRMAP(L'MAP,R6),MAP SET 'MAP' IN HEADER @VA04250 00195000
- MVC HDRADD(TRANSADL,R6),0(R5) PLUG XLAT ADD IN MSG @VA04250 00196000
- B GETREAL AND GO FIND IT IN THE DUMP @VA04250 00197000
- * * * * * * * *------- -------- -------- -------- ------* 00198000
- * * * * * * * * THIS ROUTINE TAKES THE MODULE ADDRESS 00199000
- * * * * * * * * AS RECORDED IN THE LOAD MAP, AND FINDS 00200000
- * * * * * * * * THE ADDRESS AT WHICH IT WAS LOADED AT DUMP 00201000
- * * * * * * * * TIME. IT READS THAT PAGE IN AND FORMATS IT 00202000
- * * * * * * * *------- -------- -------- -------- ------* 00203000
- GETREAL LA R2,SYSVMBAD OFFSET OF SYSTEM VMBLOCK - 892 @VA04250 00204000
- BAL R10,GOGET GO TO GETREC @VA04250 00205000
- L R4,MODADD PICK UP ADDRESS FROM LOAD MAP @VA04250 00206000
- MVC ALIGNER,0(R2) ALIGN ADDRESS @VA04250 00207000
- L R2,ALIGNER GET SYS VMBLOK ADDRESS @VA04250 00208000
- BAL R10,GOGET GETREC ADDRESS @VA04250 00209000
- L R2,SEGTAB(R2) FIRST SEG TAB ADDRESS @VA04250 00210000
- BAL R10,GOGET GET IT INTO CORE @VA04250 00211000
- LR R5,R4 CONVERT THE SYM TAB ADDRESS @VA04250 00212000
- SRL R5,16 TO A SEGMENT NO. @VA04250 00213000
- SLL R5,2 CONVERT TO WORDS, ADD TO START @VA04250 00214000
- AR R2,R5 NOW R2 HAS DESIRED SEG TAB ADD @VA04250 00215000
- L R2,0(R2) DITTO PAGE TABLE @VA04250 00216000
- BAL R10,GOGET GETREC ADDRESS @VA04250 00217000
- LR R5,R4 GET ADDRESS AGAIN AND @VA04250 00218000
- SLL R5,16 CONVERT TO A PAGE WITHIN @VA04250 00219000
- SRL R5,28 THE SEGMENT. @VA04250 00220000
- SLL R5,1 DOUBLE FOR HALF WD. ENTRIES @VA04250 00221000
- AR R2,R5 POINT TO HALFWD WITH REAL @VA04250 00222000
- TM VALBYT(R2),VALPAGE PAGE VALID? @VA04250 00223000
- BZ GETIT YES- GO PICK IT UP @VA04250 00224000
- L R3,CIADD INFO RECORD @VA04250 00225000
- MVC INVMOD,HDRNAME(R3) MOVE MOD NAME @VA04250 00226000
- MVC INVPAGE,INVP(R3) MOVE IN 'INVALID PAGE' MSG @VA04250 00227000
- LA R8,ERMSG707 ADDRESS AND @VA04250 00228000
- LA R9,E707L LENGTH @VA04250 00229000
- BAL R10,WRTERM GO WRITE IT @VA04250 00230000
- MVC RETCODE,CODE4 RETURN CODE @VA04250 00231000
- L R2,CIADD INFO LINE @VA04250 00232000
- MVC 0(LINELEN,R2),BLANKOUT CLEAR IT @VA04830 00233500
- B RETURN LET HIM TRY AGAIN @VA04250 00234000
- GETIT L R2,0(R2) PAGE NO. PICK IT UP, STRIP @VA04250 00235000
- SRL R2,16 OFF SPARE HALF WORD, CONVERT @VA04250 00236000
- SLL R2,8 IT TO A PAGE ADDRESS @VA04250 00237000
- LR R5,R4 GET THE ADDRESS AND REDUCE @VA04250 00238000
- SLL R5,20 IT TO A DISPLACEMENT @VA04250 00239000
- SRL R5,20 AND LOAD R2 WITH THE DUMP ADDRE @VA04250 00240000
- AR R2,R5 S OF THE REQUIRED MODULE @VA04250 00241000
- ST R2,REALADD SAVE THE REAL ADDRESS @VA04250 00242000
- SRL R2,4 ROUND TO A QUAD WORD BOUNDARY @VA04250 00243000
- SLL R2,4 AND RESTORE @VA04250 00244000
- LR R7,R2 SAVE REAL ADDRESS FOR SCREEN @VA04250 00245000
- ST R2,HEXAD SAVE FOR SCROLL @VA04250 00246000
- LA R4,REALADD+ONE SET UP TO TRANSLATE DATA @VA04250 00247000
- LA R3,ADRL AND LENGTH @VA04250 00248000
- L R15,INTADD TRANSLATE @VA04250 00249000
- BALR R14,R15 LINK @VA04250 00250000
- L R3,CIADD INFO HEADER @VA04250 00251000
- MVC REALREAL(L'REAL,R3),REAL PLUG 'REAL' TAG @VA04250 00252000
- MVC REELADD(TRANSADL,R3),0(R5) PLUG REAL ADD IN MSG @VA04250 00253000
- L R4,TYPEADD ADDRESS OF DEVICE TYPE FLAG @VA04250 00254000
- CLI 0(R4),TYPER TYPEWRITER? @VA04250 00255000
- BE TYPE YES - GO TYPE HEADER ONLY @VA04250 00256000
- BAL R10,GOGET GETREC ADDRESS @VA04250 00257000
- L R15,DIRADD GO TO FORMAT AND SCREEN IT @VA04250 00258000
- BALR R14,R15 LINK @VA04250 00259000
- B RETURN BACK TO DX @VA04250 00260000
- * * * * * * * * ------- -------- -------- ------- * 00261000
- * * * * * * * * THIS ROUTINE ACCEPTS AN ADDRESS, AND SCANS 00262000
- * * * * * * * * THE LOAD MAP FOR THE ENTRY ADDRESS CLOSEST 00263000
- * * * * * * * * TO, AND BELOW THE GIVEN ADDRESS. THE 00264000
- * * * * * * * * ADDRESS IS RETURNED WITH THE ENTRY NAME AND 00265000
- * * * * * * * * THE DISPLACEMENT OF THE ADDRESS FROM IT. 00266000
- * * * * * * * * FIRST FIND DMKCPEND. THIS IS USED LATER 00267000
- * * * * * * * * AS PAGEABLE PAGES MAY NOT BE AT THEIR 00268000
- * * * * * * * * LOAD MAP ADDRESSES. ADDRESSES WILL BE FOUND 00269000
- * * * * * * * * BY SCANNING THE ACTUAL PAGE FOR 'DMKXXX ' 00270000
- * * * * * * * * ------- -------- -------- ------- * 00271000
- QREQUEST CLI FIRSTIME,ON FIRST TIME THIS CODE? @VA04250 00272000
- BNE GETCPE NO - CONTINUE @VA04250 00273000
- MVI FIRSTIME,OFF YES - TURN IT OFF AND @VA04250 00274000
- XC CPENDADD,CPENDADD ZERO THE ADDRESS @VA04250 00275000
- GETCPE L R3,CPENDADD GET IN CORE ADDR OF CPEND @VA04250 00276000
- CLC DMKCPEND,0(R3) IS THIS REALLY IT? @VA04250 00277000
- BE TRANSADD YES - BYPASS SEARCH @VA04250 00278000
- LA R3,BUFF NO - SCAN LOADMAP FOR 'DMKCPEND' @VA04250 00279000
- CPEND CLC DMKCPEND,0(R3) 'CPEND'? @VA04250 00280000
- BE GOTEND GOT IT - GO SAVE IT @VA04250 00281000
- LA R3,MAPENT(R3) BUMP BY 12 FOR NEXT ENTRY @VA04250 00282000
- B CPEND TRY AGAIN @VA04250 00283000
- * * * * * * * * ------- -------- -------- ------- * 00284000
- * * * * * * * * GOT THE LOCATION - NOW SAVE THE 00285000
- * * * * * * * * IN CORE ADDRESS OF CPEND AND THE 00286000
- * * * * * * * * NEXT PAGE, WHICH IS THE FIRST 00287000
- * * * * * * * * PAGEABLE PAGE. 00288000
- * * * * * * * * ------- -------- -------- ------- * 00289000
- GOTEND ST R3,CPENDADD IN CORE ADDRESS OF CPEND @VA04250 00290000
- L R3,ENTRL(R3) REAL ADD OF CPEND @VA04250 00291000
- SRL R3,12 PAGE @VA04250 00292000
- LA R3,ONE(R3) NEXT PAGE @VA04250 00293000
- SLL R3,12 NEXT PAGE ADDRESS @VA04250 00294000
- ST R3,PAGEADD SAVE FIRST PAGEABLE PAGE @VA04250 00295000
- * * * * * * * * ------- -------- -------- ------- * 00296000
- * * * * * * * * NOW TRANSLATE THE GIVEN ADDRESS TO HEX 00297000
- * * * * * * * * ------- -------- -------- ------- * 00298000
- TRANSADD LA R4,PLISTENT(R2) GET ADDRESS TO TRANSLATE @VA04250 00299000
- L R15,HEXADD ADDRESS OF TRANS ROUTINE @VA04250 00300000
- BALR R14,R15 LINK @VA04250 00301000
- LTR R15,R15 TEST RETURN @VA04250 00302000
- BNZ CODECHEK FIND HOW BAD @VA04250 00303000
- * * * * * * * * ------- -------- -------- ------- * 00304000
- * * * * * * * * NOW R5 CONTAINS THE GIVEN ADDRESS 00305000
- * * * * * * * * IN HEXADECIMAL. FIRST CHECK IT AGAINST 00306000
- * * * * * * * * PAGEADD TO SEE IF IT IS PAGEABLE 00307000
- * * * * * * * * ------- -------- -------- ------- * 00308000
- C R5,PAGEADD REQUESTED ADD PAGEABLE? @VA04250 00309000
- BNL PAGEMOD YES - GO GET PAGE TO SCAN @VA04250 00310000
- LA R3,BUFF START OF MAP @VA04250 00311000
- LA R5,0(R5) CLEAR HI ORDER BYTE @VA04250 00312000
- LA R6,MAPENT LOAD WITH 12 TO BACK UP POINTER @VA04250 00313000
- COMPDMK CLC DMK,0(R3) IS THIS A VALID ENTRY? @VA04250 00314000
- BNE ENDOFMAP NO - WERE OFF THE END OF THE MAP @VA04250 00315000
- C R5,ENTRL(R3) YES - COMPARE THE ADDRESSES @VA04250 00316000
- BNH WRITELOC GO DISPLAY, IF NO LONGER HIGH @VA04250 00317000
- LA R3,MAPENT(R3) BUMP BY 12 FOR NEXT ENTRY @VA04250 00318000
- B COMPDMK AND TRY AGAIN @VA04250 00319000
- * * * * * * * * ------- -------- -------- ------- * 00320000
- * * * * * * * * THE SEARCH IS OVER. NOW SET UP THE RESULTS 00321000
- * * * * * * * * ------- -------- -------- ------- * 00322000
- WRITELOC BE BACKEMUP DONT BACK UP IF ADDRESSES EQUAL @VA04250 00323000
- ENDOFMAP SR R3,R6 TO NEXT LOWER ENTRY @VA04250 00324000
- * * * * * * * * ------- -------- -------- ------- * 00325000
- * * * * * * * * R3 POINTS TO THE ENTRY/MODNAME AT OR 00326000
- * * * * * * * * IMMEDIATELY BELOW THE GIVEN ADDRESS. 00327000
- * * * * * * * * NOW SCAN BACK TO THE MODULE NAME 00328000
- * * * * * * * * WHICH CORRESPONDS TO THIS ENTRY POINT 00329000
- * * * * * * * * ------- -------- -------- ------- * 00330000
- BACKEMUP SR R3,R6 PREVIOUS ENTRY IN MAP @VA04250 00331000
- CLC 0(MODL,R3),MAPENT(R3) FIRST SIX LETTERS MATCH? @VA04250 00332000
- BE BACKEMUP YES - BACK UP ONE MORE @VA04250 00333000
- CLC DMKFEIBM,0(R3) OR IS IT FEIBM? @VA04250 00334000
- BE BACKEMUP YES - IGNORE IT @VA04250 00335000
- CLC DMKFEIBM,MAPENT(R3) OR WAS IT FEIBM? @VA04250 00336000
- BE BACKEMUP IGNORE IT AGAIN @VA04250 00337000
- AR R3,R6 NO - ADD 12 BACK ON TO POINTER @VA04250 00338000
- * * * * * * * * ------- -------- -------- ------- * 00339000
- * * * * * * * * NOW CALCULATE THE DISPLACEMENT OF THE 00340000
- * * * * * * * * GIVEN ADDRESS FROM THE ENTRY POINT 00341000
- * * * * * * * * ------- -------- -------- ------- * 00342000
- NAMEHIT L R6,ENTRL(R3) MOVE ADDR FROM MAP TO WORKAREA @VA04250 00343000
- LA R6,0(R6) CLEAR HI ORD @VA04250 00344000
- SR R5,R6 GET DISPL. IN R5 @VA04250 00345000
- ST R5,HEXDISP AND SAVE IT TO TRANSLATE @VA04250 00346000
- MVC ADDOUT(MSGLEN),BLANKOUT CLEAR MESSAGE AREA @VA04830 00347500
- MVC TEXT1(L'TEXT1TEX),TEXT1TEX PLUG IN TEXT OF MSG @VA04250 00348000
- MVC MODOUT,0(R3) PLUG MOD/ENTRY NAME IN MSG @VA04250 00349000
- LA R4,ENTRL+ONE(R3) ADDRESS OF HEX ADDR IN MAP @VA04250 00350000
- LA R3,ADRL THREE BYTE HEX ADDRESS LENGTH @VA04250 00351000
- L R15,INTADD ADDRESS OF TRANS ROUTINE @VA04250 00352000
- BALR R14,R15 LINK @VA04250 00353000
- MVC MAPADOUT,0(R5) PLUG TRANS MAP ADDRESS IN MSG @VA04250 00354000
- LA R3,ADRL LENGTH TO TRANSLATE @VA04250 00355000
- LA R4,HEXDISP+ONE ADDRESS OF DATA @VA04250 00356000
- L R15,INTADD ADDRESS OF TRANS ROUTINE @VA04250 00357000
- BALR R14,R15 LINK @VA04250 00358000
- MVC DISPOUT,0(R5) PLUG THE CALCULATED DISP @VA04250 00359000
- MVC ADDOUT,PLISTENT(R2) PLUG THE ADDRESS @VA04250 00360000
- LA R8,ADDOUT ADDRESS OF MESSAGE @VA04250 00361000
- LA R9,MSGLEN LENGTH @VA04250 00362000
- BAL R10,WRTERM GO WRITE IT @VA04250 00363000
- L R2,TYPEADD CHECK IF TYPER OR SCREEN @V4075A2 00363150
- CLI 0(R2),TYPER TYPEWRITER @V4075A2 00363200
- BE SHORTRDY YES GO WRITE *R @V4075A2 00363250
- LA R8,LNGRDY NO - LONG *** READY *** @V4075A2 00363300
- LA R9,L'LNGRDY AND LENGTH @V4075A2 00363350
- B GOWRITE GO TO GO TO WRITE IT @V4075A2 00363400
- SHORTRDY LA R8,SHRTRDY SHORT MSG @V4075A2 00363450
- LA R9,L'SHRTRDY AND LENGTH @V4075A2 00363500
- GOWRITE BAL R10,WRTERM AND WRITE THE CHOSEN WORDS @V4075A2 00363550
- B RETURN BACK TO CALLER @VA04250 00364000
- * * * * * * * * ------- -------- -------- ------- * 00365000
- * * * * * * * * THIS TYPES THE HEADER TO A 2741 00366000
- * * * * * * * * ------- -------- -------- ------- * 00367000
- TYPE LR R8,R3 ADDRESS OF HEADER @VA04250 00368000
- LA R9,LINELEN/2 40 - HALF A LINE LENGTH @VA04250 00369000
- BAL R10,WRTERM WRITE THE HEADER @VA04250 00370000
- LA R8,RDY SHORT READY @VA04250 00371000
- LA R9,L'RDY LENGTH @VA04250 00372000
- BAL R10,WRTERM GO WRITE SHORT READY @VA04250 00373000
- B RETURN GO BACK @VA04250 00374000
- * * * * * * * * ----------------------------------* 00375000
- * * * * * * * * ADDRESS IS PAGEABLE, SCAN THE PAGE 00376000
- * * * * * * * * ----------------------------------* 00377000
- PAGEMOD ST R2,PLISTADD SAVE PLIST ADDRESS @VA04250 00378000
- LR R2,R5 PASS TO GETREC @VA04250 00379000
- BAL R10,GOGET GET IT INTO CORE @VA04250 00380000
- ST R2,INCOREQ SAVE IN CORE REQ-ADDR ADDRESS @VA04250 00381000
- SRL R2,3 ROUND TO A DOUBLE WORD BOUNDARY @VA04250 00382000
- SLL R2,3 RESTORE @VA04250 00383000
- LR R3,R5 GET THE ADDRESS @VA04250 00384000
- SLL R3,20 AND CONVERT IT TO THE NUMBER OF @VA04250 00385000
- SRL R3,23 DBLEWORDS DOWN TO THE PAGE BOUND @VA04250 00386000
- LA R3,ONE(R3) PLUS 1 GIVES THE NUMBER OF TRIES @VA04250 00387000
- * * * * * * * * ------- -------- -------- ------- * 00388000
- * * * * * * * * NOW SEARCH THE INCORE PAGE FOR 'DMK' 00389000
- * * * * * * * * IT WILL EITHER BE 'DMKXXXYY' - A MODULE 00390000
- * * * * * * * * NAME, OR DMKXXXNNNX, - A MESSAGE NUMBER 00391000
- * * * * * * * * THE THIRD POSSIBILITY IS THAT THE ADDRESS 00392000
- * * * * * * * * DOES NOT FALL WITHIN A CP MODULE. 00393000
- * * * * * * * * ------- -------- -------- ------- * 00394000
- LA R4,ENTRL '8' TO DECREMENT PAGE POINTER. @VA04250 00395000
- MODCOMP CLC DMK,0(R2) DMK? @VA04250 00396000
- BE GOTDMK GO CHECK IF MOD OR MESSAGE @VA04250 00397000
- BUMPDMK SR R2,R4 DECREMENT POINTER @VA04250 00398000
- BCT R3,MODCOMP TRY NEXT @VA04250 00399000
- L R2,PLISTADD RESTORE PLIST PTR @VA04250 00400000
- MVC NOTMODAD(PLISTENT),PLISTENT(R2) GET INPUT ADDR @VA04250 00401000
- LA R8,NOTMODAD 'ADDRESS NOT IN MODULE' MSG @VA04250 00402000
- LA R9,NOTMODL LENGTH @VA04250 00403000
- BAL R10,WRTERM WRITE IT @VA04250 00404000
- B RETURN @VA04250 00405000
- * * * * * * * * ------- -------- -------- ------- * 00406000
- * * * * * * * * GOT A HIT ON 'DMK'. CHECK IF IT IS 00407000
- * * * * * * * * A MESSAGE OR A MODULE NAME 00408000
- * * * * * * * * ------- -------- -------- ------- * 00409000
- GOTDMK TM ENTRL(R2),FOXZ IS THE NEXT BYTE NUMERIC? @VA04250 00410000
- BO BUMPDMK YES - MESSAGE - KEEP LOOKING @VA04250 00411000
- CLC DMKMAC,0(R2) NO - THEN IS IT DMKMAC @VA04250 00412000
- BE BUMPDMK YES - THIS IS NOT A MODULE NAME @VA04250 00413000
- L R3,INCOREQ NO - GOT A MODULE - CALCULATE @VA04250 00414000
- SR R3,R2 DISPLACEMENT IN R3 @VA04250 00415000
- ST R3,HEXDISP AND SAVE IT @VA04250 00416000
- SR R5,R3 NOW R5 HAS THE REAL START ADDR @VA04250 00417000
- ST R5,REALSTAR SAVE IT @VA04250 00418000
- MVC ADDOUT(MSGLEN),BLANKOUT CLEAR MESSAGE AREA @VA04830 00419500
- MVC TEXT1(L'TEXT1TEX),TEXT1TEX PLUG IN TEXT OF MSG @VA04250 00420000
- MVC MODOUT,0(R2) PLUG MOD/ENTRY NAME IN MSG @VA04250 00421000
- LA R4,REALSTAR+ONE ADDR OF REAL START ADDR @VA04250 00422000
- LA R3,ADRL THREE BYTE HEX ADDRESS LENGTH @VA04250 00423000
- L R15,INTADD ADDRESS OF TRANS ROUTINE @VA04250 00424000
- BALR R14,R15 LINK @VA04250 00425000
- MVC MAPADOUT,0(R5) PLUG TRANS REALSTART ADDR IN MSG @VA04250 00426000
- LA R3,ADRL LENGTH TO TRANSLATE @VA04250 00427000
- LA R4,HEXDISP+ONE ADDRESS OF DATA @VA04250 00428000
- L R15,INTADD ADDRESS OF TRANS ROUTINE @VA04250 00429000
- BALR R14,R15 LINK @VA04250 00430000
- MVC DISPOUT,0(R5) PLUG THE CALCULATED DISP @VA04250 00431000
- L R2,PLISTADD RESTORE PLIST ADDR @VA04250 00432000
- MVC ADDOUT,PLISTENT(R2) PLUG THE ADD FROM THE PLIST @VA04250 00433000
- LA R8,ADDOUT ADDRESS OF MESSAGE @VA04250 00434000
- LA R9,MSGLEN LENGTH @VA04250 00435000
- BAL R10,WRTERM GO WRITE IT @VA04250 00436000
- B RETURN BACK TO CALLER @VA04250 00437000
- * * * * * * * * ------- -------- -------- ------- * 00438000
- * * * * * * * * COMMON ROUTINE TO LINK TO GETREC 00439000
- * * * * * * * * AND CHECK RETURN CODES 00440000
- * * * * * * * * ------- -------- -------- ------- * 00441000
- GOGET L R15,GETADD GETREC ADDRESS @VA04250 00442000
- BALR R14,R15 LINK @VA04250 00443000
- LTR R15,R15 CHECK RETURN CODE @VA04250 00444000
- BNZ CODECHEK GO FIND OUT JUST HOW BAD @VA04250 00445000
- BR R10 RETURN TO CALLER @VA04250 00446000
- CODECHEK C R15,CODE4 WARNING? @VA04250 00447000
- BNE FATAL NO - BAD STUFF @VA04250 00448000
- MVC RETCODE,CODE4 SET WARNING @VA04250 00449000
- B RETURN RETURN @VA04250 00450000
- FATAL MVC RETCODE,CODE8 FATAL @VA04250 00451000
- B RETURN GO BACK @VA04250 00452000
- * * * * * * * * ------- -------- -------- ------- * 00453000
- * * * * * * * * RETURN 00454000
- * * * * * * * *------- -------- -------- -------- ------* 00455000
- RETURN L R13,SAVEBACK CALLER SAVE POINTER @VA04250 00456000
- MVC SAVREG15(L'RETCODE,R13),RETCODE RETURN CODE @VA04250 00457000
- LM R14,R12,SAVEDISP(R13) CALLERS REGS @VA04250 00458000
- BR R14 RETURN @VA04250 00459000
- * * * * * * * *------- -------- -------- -------- ------* 00460000
- * * * * * * * * THIS ROUTINE TRANSLATES R15 RETURN CODES 00461000
- * * * * * * * * AND PLUGS THEM IN A MESSAGE TO THE USER. 00462000
- * * * * * * * * FIRST SEE IF THE ERROR IS DUE TO THE LACK 00463000
- * * * * * * * * OF A LOAD MAP ON THE END OF THE DUMP. 00464000
- * * * * * * * *------- -------- -------- -------- ------* 00465000
- LMERR C R15,NOMAP WAS IT END OF FILE, IE NO MAP? @VA04250 00466000
- BNE RDERR NO - PROCESS ERROR NORMALLY @VA04250 00467000
- LA R8,NOMAPMSG GET ADDRESS OF 'NO LOAD MAP' MSG @VA04250 00469000
- LA R9,L'NOMAPMSG AND LENGTH @VA04250 00470000
- BAL R10,WRTERM WRITE MSG @VA04250 00471000
- MVC RETCODE,CODE4 SET WARNING RETURN @V4075A2 00472300
- B RETURN AND GO ROUND AGAIN @V4075A2 00472600
- RDERR XC DEPACK(L'DEPACK+L'DECODE),DEPACK CLEAR WORKAREA @VA04250 00473000
- CVD R15,DECODE GET RET CODE IN DECIMAL @VA04250 00474000
- UNPK DEPACK+FIV(L'DEPACK-FIV),DECODE+SIX(L'DECODE-SIX) 00475000
- OI DEPACK+SEV,NUMZONE FIX UP SIGN TO PRINT @VA04250 00476000
- MVC ERRMSGCD,DEPACK+FIV PLUG ERROR CODEINTO MSG @VA04250 00477000
- L R6,DFSCBADD TO GET AT FILE ID @VA04250 00478000
- MVC ERRMSGFN,FN(R6) PLUG FILE NAME @VA04250 00479000
- MVC ERRMSGFT,FT(R6) AND TYPE @VA04250 00480000
- MVC ERRMSGM(L'ERRMSGM-ONE),FM(R6) AND MODE @VA04250 00481000
- BAL R10,CLEAR CLEAR SCREEN @VA04250 00482000
- LA R8,ERMSG100 ADDRESS @VA04250 00483000
- LA R9,E100L LENGTH @VA04250 00484000
- BAL R10,WRTERM GO WRITE IT @VA04250 00485000
- MVC RETCODE,CODE8 SET BAD RET CODE @VA04250 00486000
- B RETURN GIVE IN @VA04250 00487000
- * * * * * * * * ------- -------- -------- ------- * 00488000
- * * * * * * * * THIS CLEARS THE SCREEN AND ALLOWS THE 00489000
- * * * * * * * * NEXT OPERATION TO BE POSITIONED 00490000
- * * * * * * * * AT THE TOP OF THE SCREEN 00491000
- * * * * * * * *------- -------- -------- -------- ------* 00492000
- CLEAR STM R8,R9,SAVCLR SAVE REGS @VA04250 00493000
- L R8,SCRNADD GET THE ADDRESS OF THE SCREEN @VA04250 00494000
- ST R8,CCWC PLUG ADDRESS IN CCW @VA04250 00495000
- LA R8,CCWC CCW ADD @VA04250 00496000
- L R9,CONSADD VIRT CONS ADDRESS LOCATION @VA04250 00497000
- L R9,0(R9) VIRT CON CUU @VA04250 00498000
- MVI CCWC,FSWRITE RESTORE CMD CODE @VA04250 00499000
- MVI CCWCTL,ON SET ERASE BYTE ON @VA04250 00500000
- WAITT WAIT FOR TERMINAL TO QUIESCE @VA04250 00501000
- DC X'83890058' DIAGNOSE @VA04250 00502000
- LM R8,R9,SAVCLR RESTORE REGS @VA04250 00503000
- BR R10 RETURN @VA04250 00504000
- * * * * * * * * ------- -------- -------- ------- * 00505000
- * * * * * * * * THIS ROUTINE REMOVES EXCESS BLANKS 00506000
- * * * * * * * * AND HEX ZEROS FROM AN OUTPUT LINE 00507000
- * * * * * * * * THEN WRITES IT. AT INPUT R8 POINTS 00508000
- * * * * * * * * TO THE START OF THE TEXT TO BE 00509000
- * * * * * * * * WRITTEN, AND R9 HAS THE BYTE COUNT. 00510000
- * * * * * * * * RETURN IS ON R10. 00511000
- * * * * * * * * ------- -------- -------- ------- * 00512000
- WRTERM STM R8,R10,WR8SAVE SAVE PASSED PARMS @VA04250 00513000
- MVC OUTLINE,BLANKOUT CLEAR THE OUTPUT AREA @VA04830 00514500
- MVI ZBSWITCH,OFF SET SWITCH OFF @VA04250 00515000
- LA R10,OUTLINE OUTPUT POINTER @VA04250 00516000
- ZBTEST CLI 0(R8),BLANK IS IT A BLANK? @VA04250 00517000
- BE ZBCHECK IF SO, IS IT THE FIRST? @VA04250 00518000
- CLI 0(R8),HEXZERO OR A HEX '00'? @VA04250 00519000
- BE ZBCHECK FIRST? @VA04250 00520000
- MVI ZBSWITCH,OFF NEITHER - SET SWITCH OFF @VA04250 00521000
- MOVEBYTE MVC 0(ONE,R10),0(R8) MOVE A BYTE TO OUTPUT @VA04250 00522000
- LA R10,ONE(R10) BUMP OUTPUT PTR @VA04250 00523000
- BUMPIN LA R8,ONE(R8) BUMP INPUT PTR @VA04250 00524000
- BCT R9,ZBTEST TRY NEXT CHAR @VA04250 00525000
- B WRITESET ALL DONE - SET UP WRITE @VA04250 00526000
- ZBCHECK CLI ZBSWITCH,ON IS THIS NOT THE FIRST ZERO? @VA04250 00527000
- BE BUMPIN YES - SKIP IT @VA04250 00528000
- MVI ZBSWITCH,ON NO - SET IT ON @VA04250 00529000
- B MOVEBYTE BUT MOVE IT ANYWAY @VA04250 00530000
- * * * * * * * * ------- -------- -------- ------- * 00531000
- * * * * * * * * NOW ALL BYTES ARE MOVED. R10 POINTS 00532000
- * * * * * * * * TO THE LAST CHAR IN THE COMPRESSED LINE 00533000
- * * * * * * * * FIND ITS LENGTH, AND THEN WRITE IT. 00534000
- * * * * * * * * ------- -------- -------- ------- * 00535000
- WRITESET LA R9,OUTLINE-ONE START OF LINE @VA04250 00536000
- SR R10,R9 LENGTH OF LINE @VA04250 00537000
- LR R9,R10 PUT IT IN R9 @VA04250 00538000
- LA R8,OUTLINE START OF LINE @VA04250 00539000
- L R10,WR10SAVE RESTORE RETURN REG @VA04250 00540000
- ST R8,PARMLIS1 SAVE MSG PTR IN PARM LIST @V4075A2 00541100
- ST R9,PARMLIS2 AND LENGTH @V4075A2 00541200
- LA R1,PARMLIS1 POINTER TO PASS @V4075A2 00541300
- L R15,FEDLNADD ADDRESS OF DMMFEDLN - LINE WRITER 00541400
- BALR R14,R15 GO WRITE THE LINE @V4075A2 00541500
- BR R10 AND RETURN @V4075A2 00541600
- PARMLIS1 DS F PARM1 @V4075A2 00541700
- PARMLIS2 DS F PARM2 @V4075A2 00541800
- FEDLNADD DC V(DMMFEDLN) LINE WRITER ROUTINE @V4075A2 00541900
- * * * * * * * *------- -------- -------- -------- ------* 00543000
- * * * * * * * * CONSTANTS 00544000
- * * * * * * * *------- -------- -------- -------- ------* 00545000
- RETCODE DC F'0' RETURN CODE @VA04250 00546000
- CIADD DC AL4(CMDINFO) HEADER LINE @VA04250 00547000
- ISWADD DC AL4(ISW) ITEM - TABLE - READ @VA04250 00548000
- BUFF2ADD DC AL4(BUFF2) DUMP DATA BUFFER @VA04250 00549000
- DFSCBADD DC AL4(DUMPFSCB) FSCB FOR DUMP @VA04250 00550000
- GETADD DC AL4(DMMGET) DUMP DATA FETCH @VA04250 00551000
- INTADD DC AL4(DMMINT) TRANSLATOR @VA04250 00552000
- DIRADD DC AL4(DMMDIR) DISPLAY AND FORMAT @VA04250 00553000
- HEXADD DC AL4(DMMHEX) HEX TO EBC TRANS ROUTINE @VA04250 00554000
- TYPEADD DC AL4(TYPEFLAG) DEVICE TYPE @VA04250 00555000
- CONSADD DC AL4(CONSOLE) VIRT VCONS ADDRESS @VA04250 00556000
- * * * * * * * * ------- -------- -------- ------- * 00557000
- * * * * * * * * SAVEAREA 00558000
- * * * * * * * * ------- -------- -------- ------- * 00559000
- SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 00560000
- SAVEUSR DS F USER WORD @VA04250 00561000
- SAVEFWD DS F FORWARD POINTER @VA04250 00562000
- SAVEBACK DS F BACKWARD POINTER @VA04250 00563000
- SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 00564000
- SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 00565000
- SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 00566000
- SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 00567000
- SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 00568000
- SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 00569000
- SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 00570000
- SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 00571000
- SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 00572000
- SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 00573000
- SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 00574000
- SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 00575000
- SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 00576000
- SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 00577000
- SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 00578000
- * * * * * * * * ------- -------- -------- ------- * 00579000
- MAXCOUNT DC F'1792' MAX COUNT BEFORE LOOPING @VA04250 00580000
- FOXES DC XL2'FFFF' END OF ITEM TABLE @VA04250 00581000
- XZERO DC F'0' JUST ZERO @VA04250 00582000
- RDY DC CL2'*R' SHORT READY FOR TYPER @VA04250 00583000
- BLANKS DC 4C' ' JUST BLANKS @VA04250 00584000
- FOURK DC F'4096' BUFFER INCREMENT @VA04250 00585000
- HEXAD DC F'0' LAST ADDRESS DISPLAYED @VA04250 00586000
- MAP DC CL4'MAP-' HEADER @VA04250 00587000
- REAL DC CL5'REAL-' HEADER @VA04250 00588000
- MAPREDSW DC X'00' MAP READ SWITCH @VA04250 00589000
- NULL EQU X'00' CLEAR REGS @VA04250 00590000
- TYPER EQU X'FF' TYPE WRITER @VA04250 00591000
- RED EQU X'FF' MAP IS READ @VA04250 00592000
- ON EQU X'FF' ON STATUS OF SWITCH @VA04250 00593000
- VALPAGE EQU X'0F' PAGE MARKED VALID IN TABLE @VA04250 00594000
- NUMZONE EQU X'F0' ZONE FOR NUMERICS @VA04250 00595000
- FSWRITE EQU X'19' CMD CODE IN WRITE CCW @VA04250 00596000
- PLISTENT EQU 8 LENGTH OF A PLIST ENTRY @VA04250 00597000
- MODL EQU 6 LENGTH OF A MODULE NAME @VA04250 00598000
- ENTRL EQU 8 LENGTH OF AN ENTRY POINT @VA04250 00599000
- TRANSADL EQU 6 LENGTH OF A TRANSLATED ADDRESS @VA04250 00600000
- LINELEN EQU 80 LENGTH OF HEADER LINE @VA04250 00601000
- * * * * * * * * ------- -------- -------- ------- * 00602000
- VALBYT EQU 1 PAGE VALID @VA04250 00603000
- ONE EQU 1 BUMP POINTER @VA04250 00604000
- HDRNAME EQU 2 DISP IN HDR TO MODNAME @VA04250 00605000
- TWO EQU 2 BUMP POINTER @VA04250 00606000
- ADRL EQU 3 LENGTH OF ADDRESS TO TRANSLATE @VA04250 00607000
- LMRECS EQU 5 NUMBER OF LOAD MAP RECORDS @VA08369 00608100
- DUMMYREC EQU 5 FUDGE TO FIRST DUMP DATA RECORD @VA04250 00609000
- FIV EQU 5 UNPACK CONST @VA04250 00610000
- SIX EQU 6 UNPACK CONST @VA04250 00611000
- SEV EQU 7 UNPACK CONST @VA04250 00612000
- ADDR EQU 8 DISP TO ADDRESS @VA04250 00613000
- FN EQU 8 DISP TO FILE NAME @VA04250 00614000
- HDRMAP EQU 11 MAP IN HDR @VA04250 00615000
- SAVEDISP EQU 12 REGS IN SAVE AREA @VA04250 00616000
- MAPENT EQU 12 LENGTH OF A LOAD MAP ENTRY @VA04250 00617000
- HDRADD EQU 16 ADDRESS IN HDR @VA04250 00618000
- SEGTAB EQU 16 DISP TO SEGTAB @VA04250 00619000
- INVP EQU 16 INVALID PAGE IN HDR @VA04250 00620000
- SAVREG15 EQU 16 REG 15 IN SAVE AREA @VA04250 00621000
- FT EQU 16 FILE TYPE @VA04250 00622000
- FM EQU 24 FILE MODE DISP @VA04250 00623000
- REALREAL EQU 26 REAL TAG IN HEADER @VA04250 00624000
- REELADD EQU 32 REAL ADD IN HDR @VA04250 00625000
- ITEMINDX EQU 512 ITEM TABLE OFFSET IN INFO REC @VA04250 00626000
- SYSVMBAD EQU 892 OFFSET TO SYSTEM VMBLOK ADDRESS @VA04250 00627000
- MAXMAP EQU 4095 MAX MAP ENTRIES IN 3 PAGES @VA04250 00628000
- * * * * * * * * ------- -------- -------- ------- * 00629000
- SIXSAVE DS 3F SAVES THE NAME AND ADDRESS @VA04250 00630000
- ORG SIXSAVE OF ANY SIX CHARACTER MATCH @VA04250 00631000
- SIXNAME DS 2F SAVE NAME OF A HIT ON 6 CHARS @VA04250 00632000
- MODADD DS F ADDRESS @VA04250 00633000
- ALIGNER DS F ALIGN FOR LOAD @VA04250 00634000
- REALADD DS F REAL ADDDRESS FROM DUMP @VA04250 00635000
- DMK DC CL3'DMK' IDENTIFY AN ENTRY @VA04250 00636000
- DMKQ DC CL4'DMK?' ADDRESS LOCATE REQUEST @VA04250 00637000
- HEXDISP DS F CALCULATED DISP IN HEX @VA04250 00638000
- * * * * * * * * ------- -------- -------- ------- * 00639000
- * * * * * * * * TEXT OF REPLY TO ADDRESS LOCATE REQUEST 00640000
- * * * * * * * * ------- -------- -------- ------- * 00641000
- ADDOUT DS CL8 ADDRESS GIVEN @VA04250 00642000
- SPACE1 DS CL2 SPACES @VA04250 00643000
- TEXT1 DS CL4 TEXT @VA04250 00644000
- DISPOUT DS CL6 DISPLACEMENT @VA04250 00645000
- TEXT2 DS CL8 MORE TEXT @VA04250 00646000
- MODOUT DS CL8 MOD/ENTRY NAME @VA04250 00647000
- TEXT3 DS CL6 MORE TEXT @VA04250 00648000
- MAPADOUT DS CL6 ADDRESS FROM MAP @VA04250 00649000
- MSGLEN EQU *-ADDOUT LENGTH OF MESSAGE @VA04250 00650000
- TEXT1TEX DC C'IS INTO AT ' @VA04250 00651000
- * * * * * * * * ------- -------- -------- ------- * 00652000
- * * * * * * * * CONSTANTS FOR RDERR 00653000
- * * * * * * * * ------- -------- -------- ------- * 00654000
- CODE4 DC F'4' NON FATAL RETURN @VA04250 00655000
- CODE8 DC F'8' FATAL RET @VA04250 00656000
- DEPACK DS D UNPACKED RET CODE @VA04250 00657000
- DECODE DS D DECIMAL RET CODE @VA04250 00658000
- ERMSG100 DC C'DMMMOD100S ERROR ''' TEXT OF ERR MSG @VA04423 00659000
- ERRMSGCD DC CL3' ' * @VA04250 00660000
- ERRMSGT2 DC C''' READING FILE ''' * @VA04250 00661000
- ERRMSGFN DC CL8' ' * @VA04250 00662000
- DC CL2' ' FILLER @VA04250 00663000
- ERRMSGFT DC CL6' ' * @VA04250 00664000
- ERRMSGM DC CL3' ''' * @VA04250 00665000
- E100L EQU *-ERMSG100 LENGTH @VA04250 00666000
- CPENDADD DS F IN CORE ADDRESS OF CPEND @VA04250 00667000
- PAGEADD DS F FIRST PAGEABLE STORAGE ADDRESS @VA04250 00668000
- INCOREQ DS F INCORE ADDR OF REQUESTED ADDR @VA04250 00669000
- PLISTADD DS F SAVE ADDRESS OF PLIST @VA04250 00670000
- REALSTAR DS F REAL ADDRESS START OF MOD @VA04250 00671000
- DMKMAC DC CL6'DMKMAC' LOOKS LIKE A MOD NAME BIT ISNT @VA04250 00672000
- DMKCPEND DC CL8'DMKCPEND' NAME OF LAST NON PAGEABLE MODULE @VA04250 00673000
- DMKFEIBM DC CL8'DMKFEIBM' ENTRY IN DMKPSA TO BE BYPASSED @VA04250 00674000
- TWOBLANK DC CL2' ' CHECK FOR MOD NAME @VA04250 00675000
- * * * * * * * * MESSAGE IF ADDRESS NOT WITHIN MODULE 00676000
- NOTMODAD DC CL8' ' ADDRESS IN 'NOT IN MOD' MSG @VA04250 00677000
- NOTMODTX DC C'IS NOT WITHIN A CP MODULE' TEXT OF MSG @VA04250 00678000
- NOTMODL EQU *-NOTMODAD LENGTH @VA04250 00679000
- * * * * * * * * ------- -------- -------- ------- * 00680000
- ERMSG705 DC C'DMMMOD705E ERROR IN ITEM TABLE' @VA04250 00681000
- * * * * * * * * ------- -------- -------- ------- * 00682000
- ERMSG706 DC C'DMMMOD706I ''' ERROR @VA04250 00683000
- MSGMODNM DC CL9' ''' MESSAGE @VA04250 00684000
- MSGMSG06 DC C' NOT FOUND IN LOAD MAP' TEXT @VA04250 00685000
- E706L EQU *-ERMSG706 LENGTH @VA04250 00686000
- * * * * * * * * ------- -------- -------- ------- * 00687000
- ERMSG707 DC CL12'DMMMOD707I ''' ERROR 707 @VA04250 00688000
- INVMOD DC CL8' ' MODULE @VA04250 00689000
- INVHIK DC C''' ''' HICKEYS @VA04250 00690000
- INVPAGE DC CL6' ' PAGE @VA04250 00691000
- INVMSG DC CL19''' PAGE NOT VALID' TEXT @VA04250 00692000
- E707L EQU *-ERMSG707 LENGTH @VA04250 00693000
- * * * * * * * * ------- -------- -------- ------- * 00694000
- NOMAPMSG DC C'DMMMOD718I THIS DUMP HAS NO LOAD MAP - SEE ''MAP'' SUBX00695300
- COMMAND' NO MAP WARNING MSG. @V4075A2 00695600
- NOMAP DC F'12' END OF FILE RETCODE @VA04250 00696000
- LNGRDY DC C'*** READY ***' LONG READY MSG @V4075A2 00696300
- SHRTRDY DC C'*R' SHORT READY @V4075A2 00696600
- * * * * * * * * ------- -------- -------- ------- * 00697000
- * * * * * * * * CONSTANTS FOR WRTERM 00698000
- * * * * * * * * ------- -------- -------- ------- * 00699000
- ZBSWITCH DC X'00' ZERO/BLANK SWITCH @VA04250 00700000
- FIRSTIME DC X'FF' FIRST TIME IN THIS CODE @VA04250 00701000
- OUTLINE DS CL80 OUTPUT LINE @VA04250 00702000
- WR8SAVE DS F REG8 SAVE AREA @VA04250 00703000
- WR9SAVE DS F REG9 @VA04250 00704000
- WR10SAVE DS F REG10 @VA04250 00705000
- OFF EQU X'00' SWITCH 'OFF' @VA04250 00706000
- BLANK EQU X'40' BLANK @VA04250 00707000
- HEXZERO EQU X'00' HEX ZERO @VA04250 00708000
- FOXZ EQU X'F0' MASK FOR NUMERIC TEST @VA04250 00709000
- * * * * * * * * ------- -------- -------- ------- * 00710000
- * * * * * * * * CONSTANTS FOR CLEAR 00711000
- * * * * * * * * ------- -------- -------- ------- * 00712000
- CCWC CCW X'19',X'0',X'20',1760 ERASE CCW @VA04250 00713000
- CCWCTL EQU CCWC+5 CONTROL BYTE @VA04250 00714000
- SAVCLR DS 2F SAVE FOR CLEAR SUBR. @VA04250 00715000
- SCRNADD DC AL4(SCRNAREA) ADDRESS OF AREA TO BE DISPLAYED @VA04250 00716000
- BLANKOUT DC CL80' ' PAD CHARACTER @VA04830 00716500
- PATCH DC 50F'0' PATCH @VA04250 00717000
- LTORG KEEP LITERALS ADDRESSABLE @VA04250 00718000
- BUFF DS 2560D FIVE PAGE BUFFER FOR LOAD MAP @VA08369 00719100
- REGEQU @VA04250 00720000
- END 00721000
ibm/vm370-lib/dumpscan/dmmmod.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator