ibm:vm370-lib:dumpscan:dmmmap.assemble_src
Table of Contents
DMMMAP Source
References
- Fixes Applied : 1
- This Source Date : Monday, December 11, 1978
- Last Fix ID : [HRC001DM]
Source Listing
- DMMMAP.ASSEMBLE.txt
- MAP TITLE 'DMMMAP (IPCS) VM/370 - RELEASE 6' 00001000
- * 00002000
- * 00003000
- * MODULE NAME: DMMMAP 00004000
- * 00005000
- * 00006000
- * FUNCTION: APPEND COMPRESSED AND SORTED LOAD MAP AT END OF 00007000
- * DUMP FILE 00008000
- * 00009000
- * ATTRIBUTES: NON-REENTRANT 00010000
- * NON-REUSABLE 00011000
- * 00012000
- * 00013000
- * ENTRY POINTS: DMMMAP 00014000
- * 00015000
- * 00016000
- * ENTRY CONDITIONS: PARM POINTER IN R1 00017000
- * WD1 POINTER TO 12K OUTPUT BUFFER 00018000
- * 00019000
- * 00020000
- * EXIT CONDITIONS: RETURN CODE IN R15 00021000
- * 0 NORMAL COMPLETION (LOAD MAP INFO APPENDED TO DUMP) 00022000
- * 8 FUNCTION NOT PERFORMED (ERROR ENCOUNTERED) 00023000
- * 00024000
- * 00025000
- * CALLS TO OTHER ROUTINES: NONE 00026000
- * 00027000
- * 00028000
- * EXTERNAL REF: SHARECON (SHARED CONSTANT AREA FOR DMKINI) 00029000
- * 00030000
- * 00031000
- * TABLES/WORKAREAS: NONE 00032000
- * 00033000
- * 00034000
- * REGISTER USAGE: R12 BASE 00035000
- * R11 SHARECON DSECT 00036000
- * R10 NUCMAP DSECT 00037000
- * R9 OUTPUT BUFFER POINTER 00038000
- * R8 DYNAMIC POINTER INTO OUTPUT BUFFER 00039000
- * R2-R7 WORK 00040000
- * 00041000
- * 00042000
- * NOTES: A 200 BYTE PATCH AREA EXISTS AT LABEL 'PATCH' 00043000
- * 00044000
- * 00045000
- * OPERATION: 00046000
- * 00047000
- * I. READING THE LOAD MAP 'CPNUC MAP' HRC001DM 00048490
- * II. SORTING THE ENTRY POINT ADDRESSES 00049000
- * III. APPENDING THE SORTED LOAD MAP TO THE DUMP 00050000
- * IV. ERROR PROCESSING 00051000
- * 00052000
- * I. READING THE LOAD MAP 'CPNUC MAP' HRC001DM 00053490
- * 00054000
- * A. A RECORD IS READ FROM THE FILE 'CPNUC MAP * ' HRC001DM 00055490
- * B. THE RECORD IS EXAMINED FOR 'DMKAAAEE AT XXXXXX' OR HRC001DM 00055980
- * 'HDKAAAEE AT XXXXXX' WHICH HRC001DM 00056470
- * INDICATES THE RECORD CONTAINS A VALID MOD NAME AND ADDR 00057000
- * (DMKAAAEE IS ANY VALID MODULE NAME OR ENTRY POINT) 00058000
- * IF THE RECORD DOES NOT CONTAIN A VALID MODULE AND ENTRY THE 00059000
- * NEXT RECORD IS READ. 00060000
- * C. THE VALID RECORD MOD NAME IS MOVED TO THE OUTPUT BUFF. 00061000
- * D. THE EBCDIC HEX ENTRY POINT ADDRESS IS NOW CONVERTED 00062000
- * TO INTERNAL HEX AND STORED IN THE OUTPUT BUFFER. 00063000
- * E. THE MOD NAME IS EXAMINED FOR 'DMKCPEND' AND IF NOT 00064000
- * THE NEXT RECORD IS READ. (GO BACK TO A.) 00065000
- * IF IT IS DMKCPEND THE ADDRESS IS COMPARED WITH THE DMKCPEND 00066000
- * ADDRESS IN THE DUMP. IF THEY ARE DIFFERENT THE USER IS PROMPTED 00067000
- * TO ENTER THE FILE NAME - FILE TYPE - FILEMODE OF THE NUCLEUS LOAD 00068000
- * MAP OR ENTER A NULL IF THE NAME IS NOT KNOWN. 00069000
- * 00070000
- * II. SORTING THE ENTRY POINT ADDRESSES. 00071000
- * 00072000
- * A. SINCE THE ADDR. PRODUCED ARE SEQUENTIAL BY 00073000
- * MODULE BUT NOT NECESSARILY BY ENTRY POINT WITHIN MODULE A 00074000
- * SORT IS PERFORMED ON THE DATA IN THE BUFFER. 00075000
- * B. BECAUSE THE ADDR ARE CLOSE TO BEING IN ORDER ALREADY 00076000
- * THE BUFFER IS MERELY SCANNED SEQUENTIALLY SWAPPING 00077000
- * ADJACENT OUT OF SEQUENCE RECORDS. WHEN A SCAN OF THE 00078000
- * BUFFER REVEALS NO OUT OF SEQUENCE RECORDS THE SORT IS DONE. 00079000
- * 00080000
- * III. APPENDING THE COMPRESSED LOAD MAP TO THE DUMP FILE. 00081000
- * 00082000
- * THE 20K BUFFER IS WRITTEN TO THE END OF THE DUMP FILE 00083000
- * (PRBNNNNN DUMP A) IN 5 4096 BYTE WRITES. 00084000
- * 00085000
- * IV. ERROR PROCESSING 00086000
- * 00087000
- * ERRORS IN THIS ROUTINE MAY INHIBIT PROCESSING IN OTHER 00088000
- * ROUTINES WITHIN THE DMMEDM STRUCTURE NO ERROR 00089000
- * WILL TERMINATE PROCESSING. 00090000
- * 00091000
- * COMP. THE ADDR.OF DMKCPEND BETWEEN THE DUMP AND THE 00092000
- * LOAD MAP IS NOT A CERTAIN METHOD OF DETERMINING THE 00093000
- * VALIDITY OF A LOAD MAP BUT WILL BE EFFECTIVE IN MOST CASES. 00094000
- * 00095000
- * ERROR MESSAGES: 00096000
- * 00097000
- * DMKMAP810S ERROR 'NNN' READING FILE 'FILENAME FILETYPE FM' 00098000
- * DMMMAP200S ERROR 'NNN' WRITING FILE 'PRBNNNNN DUMP A1' 00099000
- * DMMMAP801I FILE 'CPNUC MAP' IS NOT VALID HRC001DM 00100490
- * DMMMAP802I PROCEEDING.... 00101000
- * DMMMAP806R ENTER FN FT FM OF THE NUCLEUS LOAD MAP 00102000
- * DMMMAP807I UNABLE TO LOCATE 'FN FT FM' 00103000
- * DMMMAP808I NUCLEUS MAP INVALID ' FN FT FM ' 00104000
- * 00105000
- EJECT 00106000
- DMMMAP CSECT @VA04250 00107000
- USING DMMMAP,R15 TEMPORARY ADDRESSABILITY @VA04250 00108000
- B START BRANCH AROUND EYECATCHER @VA04250 00109000
- DS 0D @VA04250 00110000
- MODNAME DC C'DMMMAP ' MODULE NAME @VA04250 00111000
- RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00112000
- START STM R14,R12,12(R13) SAVE CALLERS REGS @VA04250 00113000
- LR R12,R15 SET UP OUR BASE @VA04250 00114000
- DROP R15 @VA04250 00115000
- USING DMMMAP,R12 ESTABLISH OUR BASE @VA04250 00116000
- ST R13,SAVEAREA+8 SAVE CALLER'S SAVEAREA PTR @VA04250 00117000
- LA R13,SAVEAREA POINT TO OUR SAVEAREA @VA04250 00118000
- LA R10,INLINE SET R10 FOR USING @VA04250 00119000
- USING NUCMAP,R10 DSECT OF NUC MAP VALID DATA @VA04250 00120000
- L R11,VSHARE POINT TO SHARED CON AREA @VA04250 00121000
- USING SHARECON,R11 ADDRESSABILITY FOR SHARECON @VA04250 00122000
- MVC DUMPNAME,DUMPNUM SAVE DUMP NAME PASSED IN R1 @VA04250 00123000
- MVC WRFN,DUMPNUM SAVE FILENAME IN ERROR MSG @VA04250 00124000
- L R9,0(R1) ADDRESS OF MAP BUFFERS @VA04250 00125000
- ST R1,PARMSAVE SAVE PARM LIST ADDRESS @VA04250 00126000
- *************************************************************** 00127000
- * THIS ROUTINE READS AN EXISTING LOAD MAP WHICH MUST BE NAMED 00128000
- * 'NUC MAP A'. IT TRANSLATES THE ADDR FROM EBCDIC TO HEX, SORTS 00129000
- * THE ENTRY POINTS INTO ASCENDING ADDRESS ORDER, AND WRITES THE 00130000
- * SORTED LOAD MAP AT THE END OF THE DUMP FILE. 00131000
- *************************************************************** 00132000
- SPACE 1 00133000
- LR R8,R9 GET PASSED BUFFER POINTER @VA04250 00134000
- READ LA R2,NUCMAPFN POINT TO 'CPNUC MAP * ' HRC001DM 00135490
- FSREAD (R2),BUFFER=INLINE,ERROR=INERR,BSIZE=160 @VA04832 00136000
- CLC NCDMK,=C'HDK' IS THIS AN HRC MODULE ? HRC001DM 00136300
- BE CHKAT HRC001DM 00136600
- CLC NCDMK,=C'DMK' IS THIS A VALID MODULE NAME? @VA04250 00137000
- BNE READ NOT 'DMK' GO GET NEXT RECORD @VA04250 00138000
- CHKAT DS 0H HRC001DM 00138500
- CLC NCAT,=C'AT' IF NOT 'AT' THEN JUST TRASH @VA04250 00139000
- BNE READ NOT 'AT', GO GET NEXT RECORD @VA04250 00140000
- *************************************************************** 00141000
- * WE NOW HAVE A VALID ENTRY FROM THE NUC MAP OF THE FORM: 00142000
- * DMKAAABB AT XXXXXX OR HDKAAABB AT XXXXXX HRC001DM 00143490
- * WE WILL NOW TRANSLATE THE XXXXXX BACK TO HEXADECIMAL 00144000
- *************************************************************** 00145000
- MVC 0(L'NCMODULE,R8),NCMODULE MOD NAME TO BUFFER @VA04250 00146000
- LA R8,OUTADDR(R8) OUTPUT ADDRESS FIELD @VA04250 00147000
- LA R2,LASTBYTE POINT TO LAST BYTE OF ADDR. @VA04250 00148000
- LA R3,L'NCADDR EBCDIC ADDR IS 6 BYTES LONG @VA04250 00149000
- XLOOP IC R4,0(R2) GET A BYTE OF ADDRESS @VA04250 00150000
- TM 0(R2),NUMERIC IS THIS BYTE 0 TO 9? @VA04250 00151000
- BO XNOADD YES @VA04250 00152000
- LA R4,ADDNINE(R4) X'C1' BECOMES X'CA' (E.G.) @VA04250 00153000
- XNOADD SRDL R4,4 SAVE RESULT HEX DIGIT IN R5 @VA04250 00154000
- BCTR R2,0 POINT BACK TO NEXT BYTE @VA04250 00155000
- BCT R3,XLOOP DO THIS FOR 6 BYTES @VA04250 00156000
- SR R4,R4 CLEAR R4 @VA04250 00157000
- SRDL R4,8 HIGH ORDER X'00' TO R5 @VA04250 00158000
- ST R5,0(R8) SAVE RESULT HEX ADDR IN OUT @VA04250 00159000
- CLC NCMODULE,=C'DMKCPEND' CP END ADDRESS? @VA04250 00160000
- BE XCK YES, GO CHECK FOR VALID MAP @VA04250 00161000
- LA R8,BUFFNXT(R8) UPDATE BUFFER POINTER @VA04250 00162000
- B READ CONTINUE @VA04250 00163000
- XCK MVI ENDFOUND,SWITCHON DMKCPEND FOUND @VA04250 00164000
- C R5,REALEND NUC MAP CPEND SAME AS MAP @VA04250 00165000
- BNE MAPERROR NO, WE CAN'T USE IT @VA04250 00166000
- MVC TEXT5(RECLEN),TEXT7 CLEAR ANY MSGS OUT OF TEXT5 @VA04250 00167000
- LA R8,OUTNEXT(R8) POINT TO NEXT OUTPUT FIELD @VA04250 00168000
- B READ GET NEXT ENTRY @VA04250 00169000
- INERR CH R15,EOF END OF FILE? @VA04250 00170000
- BNE READERR NO, WE REALLY HAD AN ERROR @VA04250 00171000
- CLI ENDFOUND,SWITCHON DID WE FIND DMKCPEND? @VA04250 00172000
- BNE MAPERROR GO WRITE INVALID MESSAGE @VA04250 00173000
- FSCLOSE (R2) @VA04250 00174000
- *************************************************************** 00175000
- * WE NOW HAVE ALL ADDR. TRANSLATED AND ALL MOD NAMES AND THEIR 00176000
- * ADDR PUT IN OUTPUT BUFFER. WE WILL NOW SORT THE ENTRY POINT 00177000
- * ADDRESSES IN ASCENDING ORDER. 00178000
- * 00179000
- * THE LOAD MAP IS ALREADY IN SEQUENCE BY MOD NAME AND ONLY 00180000
- * THE ENTRY POINTS WITHIN MODS MAY BE OUT OF SEQUENCE THIS SORT 00181000
- * WILL GO THROUGH THE BUFFER SWAPPING OUT OF SEQUENCE RECORDS. 00182000
- * WHEN A PASS THROUGH THE BUFFER IS MADE WITHOUT ENCOUNTERING 00183000
- * AN OUT OF SEQUENCE CONDITION THE SORT IS DONE. 00184000
- *************************************************************** 00185000
- MAPSORT LA R4,SWITCH R4 WILL BE USED AS A SWITCH @VA04250 00186000
- * IF IT IS ZERO AT LEAST ONE OUT 00187000
- * OF SEQUENCE RECORD WAS FOUND. 00188000
- LR R2,R9 POINT TO START OF BUFFER @VA04250 00189000
- LA R3,NEXTREC(R2) POINT TO NEXT RECORD @VA04250 00190000
- MAPLOOP CLC PASTNAME(MAPADDR,R2),PASTNAME(R3) COMP. ADDR. @VA04250 00191000
- * OF THE TWO ADDRESSES 00192000
- BH MAPSWAP OUT OF SEQUENCE, BRANCH @VA04250 00193000
- LR R2,R3 NEXT RECORD @VA04250 00194000
- LA R3,NEXTREC(R3) NEXT RECORD @VA04250 00195000
- CR R3,R8 AT END? @VA04250 00196000
- BL MAPLOOP NO CONTINUE @VA04250 00197000
- LTR R4,R4 ANY OUT OF SEQUENCE FOUND? @VA04250 00198000
- BZ MAPSORT YES, GO MAKE ANOTHER PASS @VA04250 00199000
- B WRTOUT ALL DONE SORTING, CONTINUE @VA04250 00200000
- MAPSWAP LM R5,R7,0(R2) SAVE OLD MODNAME AND ADDRESS @VA04250 00201000
- MVC 0(NEXTREC,R2),0(R3) SWAP THE TWO ENTRIES @VA04250 00202000
- STM R5,R7,0(R3) DONE SWAPPING NOW @VA04250 00203000
- LR R2,R3 NEXT ENTRY @VA04250 00204000
- LA R3,NEXTREC(R2) NEXT ENTRY @VA04250 00205000
- SR R4,R4 SET OUT OF SEQUENCE SWITCH @VA04250 00206000
- CR R3,R8 AT END? @VA04250 00207000
- BL MAPLOOP NO @VA04250 00208000
- B MAPSORT START FROM BEGINNING AGAIN @VA04250 00209000
- *************************************************************** 00210000
- * NOW APPEND THE SORTED LOAD MAP TO THE END OF THE DUMP. 00211000
- * THREE 4096 CHARACTER RECORDS WILL BE WRITTEN. 00212000
- *************************************************************** 00213000
- WRTOUT LR R3,R9 POINT TO OUTPUT BUFFER @VA04250 00214000
- LA R4,WRITCNT COUNT WRITES TO DUMP @VA04250 00215000
- WRITE LA R2,DUMPNAME POINT TO 'PRBNNNNN DUMP A1' @VA04250 00216000
- FSWRITE (R2),BUFFER=(R3),ERROR=WRTERR,BSIZE=4096 @VA04250 00217000
- A R3,FOURK GET NEXT OUTPUT AREA @VA04250 00218000
- BCT R4,WRITE AND GO WRITE IT @VA04250 00219000
- FSCLOSE (R2) @VA04250 00220000
- B ALLDONE WE ARE FINISHED @VA04250 00221000
- *************************************************************** 00222000
- * TERMINAL WRITE 00223000
- *************************************************************** 00224000
- WRTERM WRTERM (R2),(R3) @VA04250 00225000
- BR R4 RETURN @VA04250 00226000
- *************************************************************** 00227000
- * THE CPEND ADDRESS IN THE DUMP IS NOT THE SAME AS THAT IN THE 00228000
- * 'CPNUC MAP ' FILE. HRC001DM 00229490
- * DMMMAP801I FILE 'NUC MAP IS NOT VALID FOR THIS DUMP' 00230000
- *************************************************************** 00231000
- MAPERROR MVC MSGMAP2,NUCMAPFN MOVE FILE NAME TO MSG @VA04250 00232000
- MVC MSGMAP3,NUCMAPFT MOVE FILE TYPE TO MSG @VA04250 00233000
- MVC MSGMAP4(L'NUCMAPFM),NUCMAPFM FILE MODE TO MSG @VA04250 00234000
- LA R2,MSGMAP DMMMAP801I MSG @VA04250 00235000
- LA R3,MSGMAPL LENGTH OF MESSAGE @VA04250 00236000
- BAL R4,WRTERM GO PUT MESSAGE ON TERMINAL @VA04250 00237000
- B CONTMSG GO ISSUE PROCEEDING MSG @VA04250 00238000
- *************************************************************** 00239000
- * READ ERROR ON FILE 'CPNUC MAP A' HRC001DM 00240490
- *************************************************************** 00241000
- READERR CVD R15,WKDWD CONVERT FSREAD RETURN TO DEC @VA04250 00242000
- UNPK RDCODE,DECNUM(DECLN) UNPK DECIMAL RC TO MSG @VA04250 00243000
- OI RDCODE2,NUMERIC MAKE IT READABLE @VA04250 00244000
- CLI RETRYSW,SWITCHON ARE WE IN SUBSEQUENT READ @VA04250 00245000
- BE RETRYMSG YES, BUILD DIFFERENT MSG @VA04250 00246000
- LA R2,MSGREAD DMMMAP810S ERROR MESSAGE @VA04250 00247000
- LA R3,MSGREADL LENGTH OF ERROR MESSAGE @VA04250 00248000
- MVC TEXT5(MSGREADL),MSGREAD ERR MSG TO REPT TEXT @VA04250 00249000
- BAL R4,WRTERM OUTPUT MESSAGE TO TERMINAL @VA04250 00250000
- LA R2,NUCMAPFN POINT TO NUC MAP FILENAME @VA04250 00251000
- FSCLOSE (R2) @VA04250 00252000
- B CONTMSG ISSUE DMMMAP802I MESSAGE @VA04250 00253000
- RETRYMSG MVC RETRYCD(L'RDCODE),RDCODE RETURN CODE TO MSG @VA04250 00254000
- MVC RETRYRD1(L'NUCMAPFN),NUCMAPFN FILE NAME TO MSG @VA04250 00255000
- MVC RETRYRD2(L'NUCMAPFT),NUCMAPFT FILE TYPE TO MSG @VA04250 00256000
- MVC RETRYRD3(L'NUCMAPFM),NUCMAPFM FILE MODE TO MSG @VA04250 00257000
- LA R2,RETRYRDM ADDRESS OF READ ERR MSG @VA04250 00258000
- LA R3,RETRYRDL LENGTH OF MESSAGE @VA04250 00259000
- BAL R4,WRTERM GO TO COMMON WRITE @VA04250 00260000
- B CONTMSG GO WRITE PROCEEDING MSG @VA04250 00261000
- WRTERR CVD R15,WKDWD CONVERT RET CODE TO DECIMAL @VA04250 00262000
- UNPK WRCODE,DECNUM(DECLN) UNPK DECIMAL RC TO MSG @VA04250 00263000
- OI WRCODE2,NUMERIC MAKE IT READABLE @VA04250 00264000
- LA R2,MSGWRT DMMMAP200S ERROR MESSAGE @VA04250 00265000
- LA R3,MSGWRTL MESSAGE LENGTH @VA04250 00266000
- MVC TEXT5(MSGWRTL),MSGWRT ERR MSG TO REPT TEXT @VA04250 00267000
- BAL R4,WRTERM PUT ERR MESSAGE ON TERMINAL @VA04250 00268000
- LA R2,DUMPNAME POINT TO FILE NAME @VA04250 00269000
- FSCLOSE (R2) @VA04250 00270000
- B RETCOD8A RETURN TO CALLER @VM04420 00271000
- CONTMSG LA R2,MSGCONT DMMMAP802I PROCEEDING... @VA04250 00272000
- LA R3,MSGCONTL MESSAGE LENGTH @VA04250 00273000
- BAL R4,WRTERM PUT MESSAGE ON TERMINAL @VA04250 00274000
- ************************************************************* 00275000
- * * PROMPT THE USER TO ENTER THE NAME OF THE NUCLEUS LOAD MAP 00276000
- ************************************************************* 00277000
- MAPNAME LA R2,MSGENT ADDRESS OF MESSAGE @VA04250 00278000
- LA R3,MSGENTLN LENGTH OF MESSAGE @VA04250 00279000
- BAL R4,WRTERM GO WRITE MESSAGE @VA04250 00280000
- MVI ENDFOUND,SWTCHOFF RESET CPEND FOUND SWITCH @VA04250 00281000
- RDTERM PROMPT READ USER REPLY @VA04250 00282000
- LTR R0,R0 CHECK FOR NO REPLY @VA04250 00283000
- BZ RETCOD8 IF NULL REPLY QUIT @VA04250 00284000
- B CHECKIN LETS BUILD A FN FT FM @VA04250 00285000
- ************************************************************* 00286000
- ** HERE TO CHECK USER INPUT. ALLOW UP TO 5 BLANKS PRECEDING 00287000
- ** FILE NAME AND FIVE BLANKS BETWEEN FILE TYPE AND FILE MODE. 00288000
- ** IF FILE MODE IS LEFT BLANK, DEFAULT TO MODE 'A1'. 00289000
- ************************************************************* 00290000
- CHECKIN LA R5,BLANKCNT SET BLANK COUNT TO FIVE @VA04250 00291000
- LA R6,PROMPT GET ADDRESS OF USER INPUT @VA04250 00292000
- FNCHK CLI 0(R6),BLANK IS FIRST CHARACTER BLANK? @VA04250 00293000
- BNE FNMOVE IF NOT MOVE 1ST CHAR FN @VA04250 00294000
- LA R6,ONEBYTE(R6) INCREMENT INPUT AREA @VA04250 00295000
- BCT R5,FNCHK IF BLANK CHECK NEXT CHAR. @VA04250 00296000
- B MAPNAME @VA04250 00297000
- FNMOVE MVC NUCMAPFN,FNCLEAR CLEAR FILE NAME AREA @VA04250 00298000
- LA R4,NUCMAPFN R4 HAS FN ADDRESS @VA04250 00299000
- FNMOVE1 MVC 0(ONEBYTE,R4),0(R6) MOVE ONE BYTE TO FN @VA04250 00300000
- LA R6,ONEBYTE(R6) INCREMENT INPUT AREA @VA04250 00301000
- LA R4,ONEBYTE(R4) INCREMENT OUTPUT AREA @VA04250 00302000
- LA R3,FNEND START OF FT ADDRESS @VA04250 00303000
- CR R4,R3 END OF FN? @VA04250 00304000
- BE FNINCR YES, GO MOVE FILE TYPE @VA04250 00305000
- CLI 0(R6),BLANK IS IT BLANK? @VA04250 00306000
- BNE FNMOVE1 NO, GO MOVE IT @VA04250 00307000
- FNINCR LA R6,ONEBYTE(R6) INCREMENT INPUT AREA @VA04250 00308000
- FTCHECK LA R5,BLANKCNT RESET BLANK COUNT AMOUNT @VA04250 00309000
- FTBLANK CLI 0(R6),BLANK IS IT BLANK? @VA04250 00310000
- BNE FTMOVE NO, GO MOVE IT @VA04250 00311000
- LA R6,ONEBYTE(R6) INCREMENT INPUT AREA @VA04250 00312000
- BCT R5,FTBLANK GO CHECK AGAIN FOR BLANK @VA04250 00313000
- B MAPNAME GO BACK AND LET HIM TRY AGAIN @VA04250 00314000
- FTMOVE MVC NUCMAPFT,FTCLEAR CLEAR FILE TYPE AREA @VA04250 00315000
- LA R4,NUCMAPFT R4 HAS FT ADDRESS @VA04250 00316000
- FTMOVE1 MVC 0(ONEBYTE,R4),0(R6) MOVE ONE BYTE TO FT @VA04250 00317000
- LA R6,ONEBYTE(R6) INCREMENT INPUT AREA @VA04250 00318000
- LA R4,ONEBYTE(R4) INCREMENT OUTPUT AREA @VA04250 00319000
- LA R3,FTEND END OF FILE NAME @VA04250 00320000
- BE FTINCR YES GO MOVE FILE MODE @VA04250 00321000
- CLI 0(R6),BLANK IS IT BLANK? @VA04250 00322000
- BNE FTMOVE1 NO, GO MOVE IT @VA04250 00323000
- FTINCR LA R6,ONEBYTE(R6) INCREMENT INPUT AREA @VA04250 00324000
- B FMCHECK GO GET FILE MODE @VA04250 00325000
- FMCHECK LA R5,BLANKCNT RESET BLANK COUNT @VA04250 00326000
- FMBLANK CLI 0(R6),BLANK IS IT BLANK? @VA04250 00327000
- BNE FMMOVE NO, GO MOVE IT @VA04250 00328000
- LA R6,ONEBYTE(R6) INCREMENT INPUT AREA @VA04250 00329000
- BCT R5,FMBLANK GO LOOK AT NEXT CHAR @VA04250 00330000
- MVC NUCMAPFM,FMDEF NO ENTRY, DEFAULT TO A1 @VA04250 00331000
- B MAPSTATE GO DO FSSTATE FOR MAP @VA04250 00332000
- FMMOVE MVC NUCMAPFM(ONEBYTE),0(R6) MOVE FILE MODE @VA04250 00333000
- MAPSTATE LA R2,NUCMAPFN GET FN-FT-FM FOR STATE @VA04250 00334000
- MVI RETRYSW,SWITCHON TURN ON READ RETRY SWITCH @VA04250 00335000
- FSSTATE (R2),ERROR=STATERR IS MAP NAME VALID? @VA04250 00336000
- MVI ENDFOUND,SWTCHOFF RESET CPEND FOUND SWITCH @VA04250 00337000
- L R9,PARMSAVE GET ADDRESS OF PARM SAVE @VA04250 00338000
- L R9,0(,R9) BUFF ADDRESS FROM PARM @VA04250 00339000
- LR R8,R9 PUT BUFF ADDRESS IN R8 @VA04250 00340000
- B READ IF YES GO READ IT @VA04250 00341000
- STATERR MVC MAPERR1(L'NUCMAPFN),NUCMAPFN FILE NAME TO MSG @VA04250 00342000
- MVC MAPERR2(L'NUCMAPFT),NUCMAPFT FILE NAME TO MSG @VA04250 00343000
- MVC MAPERR3(L'NUCMAPFM),NUCMAPFM FILE MODE TO MSG @VA04250 00344000
- MVC STATERRM(L'MAP807),MAP807 MOVE 807I TO MSG @VA04250 00345000
- LA R2,STATERRM MESSAGE TEXT @VA04250 00346000
- LA R3,STATERRL MESSAGE TEXT LENGTH @VA04250 00347000
- BAL R4,WRTERM GO WRITE STATE ERR MSG @VA04250 00348000
- B CONTMSG GO SET UP PROCEEDING MSG @VA04250 00349000
- RETCOD8 L R13,SAVEAREA+8 REST CALLER'S SAVEAREA PTR @VA04250 00350000
- MVC MSGMAP2,NUCMAPFN SET UP MSG FOR REPORT TEXT @VA04250 00351000
- MVC MSGMAP3,NUCMAPFT FILE TYPE TO MSG @VA04250 00352000
- MVC MSGMAP4,NUCMAPFM FILE MODE TO MSG @VA04250 00353000
- MVC TEXT5(MSGMAPL),MSGMAP ERROR MSG TO REPORT TEXT @VA04250 00354000
- RETCOD8A L R13,SAVEAREA+8 RESTORE SAVEAREA POINTER @VM04420 00355000
- LM R14,R12,12(R13) RESTORE CALLER'S REGISTERS @VM04420 00356000
- LA R15,RETCODE8 LOAD RETURN CODE 8 @VA04250 00357000
- BR R14 RETURN @VA04250 00358000
- ALLDONE L R13,SAVEAREA+8 REST CALLER'S SAVEAREA PTR @VA04250 00359000
- LM R14,R12,12(R13) CALLER'S REGISTERS @VA04250 00360000
- SR R15,R15 RETURN CODE ZERO @VA04250 00361000
- BR R14 RETURN @VA04250 00362000
- EJECT 00363000
- *************************************************************** 00364000
- * CONSTANTS SAVEAREAS AND EQUATES 00365000
- *************************************************************** 00366000
- SAVEAREA DS 18F OUR SAVEAREA @VA04250 00367000
- WKDWD DS D DOUBLE WORD FOR WORK AREA @VA04250 00368000
- ********* 00369000
- DUMPNAME DS CL8 PRBNNNNN DUMP NAME @VA04250 00370000
- DC C'DUMP A1' FILETYPE AND FILEMODE @VA04250 00371000
- ********* 00372000
- NUCMAPFN DC CL8'CPNUC ' NUC MAP FILE NAME HRC001DM 00373490
- NUCMAPFT DC CL8'MAP ' NUC MAP FILE TYPE @VA04250 00374000
- NUCMAPFM DC CL2'* ' NUC MAP FILE MODE HRC001DM 00375490
- PROMPT DC CL132' ' USER INPUT AREA @VA04250 00376000
- FNCLEAR DC CL8' ' 8 BLANKS TO CLEAR FILE NAME @VA04250 00377000
- FTCLEAR DC CL8' ' 8 BLANKS TO CLEAR FILE TYPE @VA04250 00378000
- FMDEF DC CL2'A1' DEFAULT FILE MODE A1 @VA04250 00379000
- DS F @VA04250 00380000
- PARMSAVE DC CL4' ' PARM ADDRESS SAVE AREA @VA04250 00381000
- RETRYSW DC CL1' ' READ RETRY SWITCH @VA04250 00382000
- ENDFOUND DC CL1' ' CPEND FOUND SWITCH @VA04250 00383000
- STATERRM DC C' ''' @VA04250 00384000
- MAPERR1 DC CL9' ' FILE NAME MESSAGE ENTRY @VA04250 00385000
- MAPERR2 DC CL9' ' FILE TYPE MESSAGE ENTRY @VA04250 00386000
- MAPERR3 DC CL2' ' FILE MODE ENTRY @VA04250 00387000
- DC X'7D' APOSTROPHE @VA04250 00388000
- STATERRL EQU *-STATERRM LENGTH OF MESSAGE @VA04250 00389000
- RETRYRDM DC C'DMMMAP810S Error ''' HRC001DM 00390490
- RETRYCD DS CL3 RETURN CODE @VA04250 00391000
- DC C''' reading file ''' HRC001DM 00392490
- RETRYRD1 DC CL9' ' FILE NAME LOCATION @VA04250 00393000
- RETRYRD2 DC CL9' ' FILE TYPE MSG LOCATION @VA04250 00394000
- RETRYRD3 DC CL2' ' FILE MODE MSG LOCATION @VA04250 00395000
- DC X'7D' APOSTROPHE @VA04250 00396000
- RETRYRDL EQU *-RETRYRDM LENGTH OF MESSAGE @VA04250 00397000
- MSGENT DC C'DMMMAP806R Enter FN FT FM of NUCLEUS LOAD MAP or enterX00398590
- null' HRC001DM 00399180
- MSGENTLN EQU *-MSGENT LENGTH OF MESSAGE @VA04250 00400000
- MAP807 DC C'DMMMAP807I Unable to locate ' HRC001DM 00401490
- VSHARE DC V(SHARECON) COMMON SHARED CONSTANTS @VA04250 00402000
- NUMERIC EQU X'F0' USED TO CHK FOR NUMER. DATA @VA04250 00403000
- ONE EQU 1 1 FOR LOAD ADDRESS ETC. @VA04250 00404000
- FOUR EQU 4 4 FOR LOAD ADDRESS ETC. @VA04250 00405000
- EIGHT EQU 8 8 FOR LOAD ADDRESS ETC. @VA04250 00406000
- NINE EQU 9 9 FOR LOAD ADDRESS ETC. @VA04250 00407000
- TWELVE EQU 12 12 FOR LOAD ADDRESS ETC. @VA04250 00408000
- FNEND EQU NUCMAPFT START OF FT IS END OF FN @VA04250 00409000
- FTEND EQU NUCMAPFM END OF FILE TYPE @VA04250 00410000
- INLINE DS CL160 NUC MAP INPUT RECORD @VA04832 00411000
- EOF DC H'12' END OF FILE @VA04250 00412000
- OUTADDR EQU 8 INCREMENT OUTPUT ADDRESS @VA04250 00413000
- ADDNINE EQU 9 TRANSLATE VALUE @VA04250 00414000
- BUFFNXT EQU 4 INCREMENT BUFFER ADDRESS @VA04250 00415000
- OUTNEXT EQU 4 DISPLACEMENT OF NEXT OUTPUT AREA @VA04250 00416000
- NEXTREC EQU 12 DISPL.FOR LOAD MAP ENTRIES @VA04250 00417000
- SWTCHOFF EQU X'00' SWITCH OFF INDICATOR @VA04250 00418000
- SWITCHON EQU X'FF' SWITCH ON INDICATOR @VA04250 00419000
- BLANKCNT EQU 5 BLANK COUNT = 5 @VA04250 00420000
- BLANK EQU C' ' EQUATE BLANK TO '40' @VA04250 00421000
- ONEBYTE EQU 1 COUNT FOR MOVING ONE BYTE @VA04250 00422000
- FOURK DC F'4096' CONSTANT OF 4K @VA04250 00423000
- *************************************************************** 00424000
- * ERROR MESSAGES 00425000
- *************************************************************** 00426000
- MSGMAP DC C'DMMMAP801I NUC MAP ' INVALID MSG NUMBER @VA04250 00427000
- MSGMAP1 DC X'7D' @VA04250 00428000
- MSGMAP2 DC CL8' ' FILE NAME FOR 801 MSG @VA04250 00429000
- DC CL1' ' @VA04250 00430000
- MSGMAP3 DC CL8' ' FILE TYPE FOR 801 MSG @VA04250 00431000
- DC CL1' ' @VA04250 00432000
- MSGMAP4 DC CL2' ' FILE MODE FOR 801 MSG @VA04250 00433000
- DC X'7D' APOSTROPHE FOR FN FT FM @VA04250 00434000
- MSGMAP5 DC C' not valid for this DUMP' HRC001DM 00435490
- MSGMAPL EQU *-MSGMAP LENGTH OF MESSAGE @VA04250 00436000
- MSGREAD DC C'DMMMAP810S Error ''' HRC001DM 00437490
- RDCODE DS CL3 FSREAD RETURN CODE @VA04250 00438000
- DC C''' reading file ''CPNUC MAP * ''' HRC001DM 00439490
- MSGREADL EQU *-MSGREAD LENGTH OF MESSAGE @VA04250 00440000
- MSGWRT DC C'DMMMAP200S Error ''' HRC001DM 00441490
- WRCODE DS CL3 FSWRITE RETURN CODE @VA04250 00442000
- DC C''' writing file ''' HRC001DM 00443490
- WRFN DS CL8 PRBNNNNN (DUMP FILENAME) @VA04250 00444000
- DC C' DUMP A1''' @VM04420 00445000
- MSGWRTL EQU *-MSGWRT LENGTH OF MESSAGE @VA04250 00446000
- MSGCONT DC C'DMMMAP802I Proceeding.....' HRC001DM 00447490
- MSGCONTL EQU L'MSGCONT LENGTH OF MESSAGE @VA04250 00448000
- PATCH DC 50F'0' PATCH AREA @VA04250 00449000
- LTORG @VA04250 00450000
- *************************************************************** 00451000
- * DSECT OF NUC MAP RECORD WHICH HAS VALID MOD NAME AND ADDR: 00452000
- * DMKAAAEE AT XXXXXX 00453000
- *************************************************************** 00454000
- NUCMAP DSECT @VA04250 00455000
- NUCMAP1 DS 0CL132 LENGTH OF PRINT RECORD @VA04250 00456000
- NC1 DS CL7 BLANKS @VA04250 00457000
- NCMODULE DS 0CL8 DMKAAAEE @VA04250 00458000
- NCDMK DS CL3 'DMK' INDICATOR @VA04250 00459000
- NCAAAEE DS CL5 REST OF MODULE NAME @VA04250 00460000
- NC2 DS CL1 BLANK @VA04250 00461000
- NCAT DS CL2 'AT' @VA04250 00462000
- NC3 DS CL1 BLANK @VA04250 00463000
- NCADDR DS CL6 EBCDIC HEX ADDRESS @VA04250 00464000
- LASTBYTE EQU NCADDR+L'NCADDR-1 LAST BYTE OF HEX ADDR. FIELD @VA04250 00465000
- SWITCH EQU 1 SWITCH SET @VA04250 00466000
- PASTNAME EQU 9 ADDRESS PORTION OF MAP RECORD @VA04250 00467000
- MAPADDR EQU 3 LENGTH OF MAP ADDRESS FIELD @VA04250 00468000
- WRITCNT EQU 5 NUMBER OF DISK WRITES @VA08369 00469000
- NC4 DS CL107 BLANKS @VA04250 00470000
- DECNUM EQU WKDWD+6 RET CODE DECIMAL FIELD @VA04250 00471000
- DECLN EQU 2 LENGTH OF DECIMAL FIELD @VA04250 00472000
- RDCODE2 EQU RDCODE+2 LOW ORDER OF RET CODE @VA04250 00473000
- WRCODE2 EQU WRCODE+2 LOW ORDER OF RET CODE @VA04250 00474000
- RETCODE8 EQU 8 RETURN CODE 8 @VA04250 00475000
- RECLEN EQU 80 LENGTH OF OUTPUT RECORD @VA04250 00476000
- SPACE 1 00477000
- COPY EXCONST @VA04250 00478000
- REGEQU @VA04250 00479000
- END 00480000
ibm/vm370-lib/dumpscan/dmmmap.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator