ibm:vm370-lib:dumpscan:dmmwrt.assemble_src
Table of Contents
DMMWRT Source
References
- Fixes Applied : 0
- This Source Date : Friday, December 8, 1978
- Last Fix ID : [Unmodified]
Source Listing
- DMMWRT.ASSEMBLE.txt
- WRT TITLE 'DMMWRT (IPCS) VM/370 - RELEASE 6' 00001000
- *************************************************************** 00002000
- * 00003000
- * MODULE NAME: 00004000
- * 00005000
- * DMMWRI 00006000
- * 00007000
- * FUNCTION: 00008000
- * 00009000
- * TO CREATE A PROBLEM REPORT ON DISK AND ADD THIS PROBLEM TO 00010000
- * THE SYMPTOM SUMMARY. DATA TO CREATE REPORT PASSED BY CALLER 00011000
- * 00012000
- * ATTRIBUTES: 00013000
- * 00014000
- * NON-REENTRANT 00015000
- * NON-REUSABLE 00016000
- * 00017000
- * ENTRY POINTS: 00018000
- * 00019000
- * DMMWRI 00020000
- * 00021000
- * ENTRY CONDITIONS: 00022000
- * 00023000
- * R1 POINTS TO PARM LIST 00024000
- * 00025000
- * WD1 POINTER TO INTERNAL DATA (DSECT INTSECT) 00026000
- * WD2 POINTER TO KEYWORDED DATA (VAR BLK FORMAT) 00027000
- * WD3 POINTER TO TEXT DESCRIPTION (HLFWD LNGTH PREFIX) 00028000
- * WD4 POINTER TO SUPLEMENTARY DATA (HLFWD LNGTH PREFIX) 00029000
- * 00030000
- * EXIT CONDITIONS: 00031000
- * 00032000
- * RETURN CODE IN R15 00033000
- * 00034000
- * 0 NORMAL SUCCESSFUL COMPLETION 00035000
- * 8 ERROR OCCURRED 00036000
- * 00037000
- * CALLS TO OTHER ROUTINES: 00038000
- * 00039000
- * NONE 00040000
- * 00041000
- * EXTERNAL REFERENCES: 00042000
- * 00043000
- * NONE 00044000
- * 00045000
- * TABLES/WORKAREAS: 00046000
- * 00047000
- * INTERNAL DATA AREA (INTSECT DSECT) 00048000
- * CMS LOW CORE (NUCON DSECT) 00049000
- * SYMPTOM SUMMARY CONTROL RECORD (SYMSECT DSECT) 00050000
- * 00051000
- * REGISTER USAGE: 00052000
- * 00053000
- * R13 REGISTER SAVE AREA 00054000
- * R12 BASE REGISTER 00055000
- * R11 00056000
- * R10 INTSECT DSECT (INTERNAL DATA) 00057000
- * R9 SYMSECT DSECT (SYMPTOM SUMMARY CONTROL RECORD) 00058000
- * R8 PARMS DSECT (PARMS PASSED BY CALLER) 00059000
- * R7-R2 WORK 00060000
- * 00061000
- * NOTES: 00062000
- * 00063000
- * KEYWORDED DATA IS PASSED IN VARIABLE BLOCKED FORMAT. 00064000
- * 00065000
- * |TT00|LL00|..DATA1..|LL00|..DATA2..|......... 00066000
- * 4 4 LL-4 4 LL-4 00067000
- * 00068000
- * 00069000
- * WHERE TT IS THE TOTAL LENGTH OF THE BLOCK INCLUDING 00070000
- * LENGTH FIELDS, AND EACH LL IS THE LENGTH OF THAT 00071000
- * LOGICAL RECORD INCLUDING ITS LENGTH FIELD. 00072000
- * 00073000
- * OPERATION: 00074000
- * 00075000
- * I. PROBLEM REPORT RECORDS 1,2, AND 3 CREATED 00076000
- * II. KEYWORDED DATA ADDED 00077000
- * III. SUPPLEMENTARY FILE DESCRIPTIONS ADDED 00078000
- * IV. TEXTUAL DESCRIPTION DATA ADDED 00079000
- * V. SYMPTOM SUMMARY CTL RCD ADDED TO SYMPTOM SUMMARY FILE 00080000
- * VI. KEYWORD DATA ADDED TO SYMPTOM SUMMARY 00081000
- * VII. OPERATION OF FSWRITE SUBROUTINE 00082000
- * 00083000
- * 00084000
- * 00085000
- * I. INFO FROM THE INTERNAL DATA AREA AND DATE AND TIME 00086000
- * STAMPS FROM CMS LOW CORE ARE PUT IN THE FIRST 2 RCDS 00087000
- * THE 3RD RCD IS AN INDICATOR RCD MARKING THE START OF 00088000
- * THE KEYWORDED SYMPTOMS. 00089000
- * 00090000
- * A. 1ST RCD DATA CONSISTS OF THE PROBLEM NUMBER, CURRENT 00091000
- * DATE, AND CURRENT TIME. 00092000
- * B. SECOND RECORD DATA CONSISTS OF THE DATE THE PROBLEM 00093000
- * OCCURRED, THE CPU TYPE, AND THE CPU SERIAL. 00094000
- * C. AFTER THE DATA HAS BEEN PLACED IN THE OUTPUT RECORDS 00095000
- * ROUTINE FSWRITE IS LINKED TO FOR CREATION OF THE PROBLEM 00096000
- * REPORT WITH THIS MUCH DATA. 00097000
- * 00098000
- * 00099000
- * II. KEYWORDED INFO HAS BEEN PASSED IN VARIABLE BLOCKED 00100000
- * RECORD FORMAT. KEYWORDS AND ASSOCIATED DATA WILL BE PUT ON 00101000
- * SEPARATE RECORDS IN THE PROBLEM REPORT. 00102000
- * 00103000
- * A. POINTER TO END OF KEYWORD DATA IS CALCULATED AND SAVED. 00104000
- * B. NEXT LENGTH FIELD MINUS ITS LENGTH (4) IS THE LENGTH OF 00105000
- * KEYWORD+DATA. THE KYWD+DATA IS MOVED TO THE NEXT 80 BYTE 00106000
- * OUTPUT RECORD. 00107000
- * C. THE NEXT LOGICAL RCD LENGTH FIELD IS LOCATED BY ADDING 00108000
- * THE CURRENT LENGTH FIELD TO THE CURRENT POINTER. 00109000
- * D. IF THE END OF DATA HAS NOT BEEN REACHED GO TO B. 00110000
- * E. THE NEXT OUTPUT RCD IS MARKED WITH AND END OF KYWRDED 00111000
- * DATA INDICATOR. 00112000
- * F. THE FSWRITE SUBROUTINE IS CALLED TO ADD THIS MUCH 00113000
- * MORE DATA TO THE OUTPUT PROBLEM REPORT. 00114000
- * 00115000
- * 00116000
- * III. OUTPUT SUPPORTING DATA RCDS. THE DATA HAS BEEN PASSED 00117000
- * PREFIXED BY A HALFWORD LEN FIELD. THIS LENGTH IS QUARANTEED 00118000
- * BY THE CALLER TO BE A MULTIPLE OF 80 CHAR RECORDS. 00119000
- * 00120000
- * A. IF THE LENGTH FIELD IS ZERO GO TO IV. 00121000
- * B. AN INDICATOR RCD MARKING THE START OF SUPPTING DATA IS 00122000
- * ADDED TO THE PROBLEM REPORT VIA A LINK TO FSWRITE. 00123000
- * C. THE NUMBER OF SUPPORTING DATA RECORDS IS CALCULATED AND 00124000
- * THESE ARE ADDED TO THE PROBLEM REPORT VIA LINK TO FSWRITE 00125000
- * D. AN INDICATOR RCD MARKING THE END OF SUPPORTING DATA IS 00126000
- * ADDED TO THE PROBLEM REPORT VIA LINK TO FSWRITE 00127000
- * 00128000
- * 00129000
- * IV. ADD TEXTUAL DESCRIPTION. TEXT DATA IS PASSED PREFIXED 00130000
- * BY A LENGTH FIELD. THE LENGTH IS GUARANTEED BY CALLER TO BE 00131000
- * A MULTIPLE OF 80 BYTES. 00132000
- * 00133000
- * A. IF LENGTH IS ZERO GO TO V. 00134000
- * B. FSWRITE IS CALLED TO ADD AN INDICATOR RCD MARKING THE 00135000
- * THE START OF TEXTUAL DATA. 00136000
- * C. THE NUMBER OF TEXT DESCRIPTION RCDS IS CALCULATED AND 00137000
- * FSWRITE IS LINKED TO TO ADD THEM TO THE PROBLEM REPORT. 00138000
- * D. FSWRITE IS LINKED TO TO ADD AN END OF TEXT DESCRIPTION 00139000
- * MARKER. 00140000
- * 00141000
- * 00142000
- * V. ADD A CTL RCD FOR THE PROBLEM TO THE SYMPTOM SUMMARY. 00143000
- * 00144000
- * A. DATA FROM THE INTERNAL DATA AREA, DATE STAMPS FROM CMS 00145000
- * LOW CORE, AND INITIAL STATUS FIELDS ARE MOVED TO AN 80 00146000
- * BYTE OUTPUT RECORD. 00147000
- * B. FSWRITE IS LINKED TO TO ADD THE CONTROL RECORD TO THE 00148000
- * SYMPTOM SUMMARY FILE. 00149000
- * 00150000
- * 00151000
- * VI. ADD KEYWORDED DATA TO THE SYMPTOM SUMMARY FILE. 00152000
- * 00153000
- * A. THE BLOCK LENGTH OF THE DATA IS OBTAINED AND ROUNDED UP 00154000
- * TO AN EVEN MULTIPLE OF 80 CHAR RECORDS. 00155000
- * B. FSWRITE IS CALLED TO ADD THE KEYWORDED SYMPTOMS TO THE 00156000
- * SYMPTOM SUMMARY FILE. 00157000
- * 00158000
- * 00159000
- * VII. OPERATION OF THE FSWRITE SUBROUTINE. 00160000
- * 00161000
- * A. FSWRITE MACRO IS ISSUED AND THE RETURN CODE IS SAVED. 00162000
- * B. AN IMMEDIATE FSCLOSE IS ISSUED. 00163000
- * C. THE FSWRITE RETURN CODE IS NOW CHECKED AND IF ZERO 00164000
- * THE CALLER IS RETURNED TO. 00165000
- * D. IF NON ZERO RETURN FROM FSWRITE MESSAGE DMMWRT200S IS 00166000
- * FILLED IN WITH THE PROPER INFORMATION AND WRITTEN TO THE 00167000
- * TERMINAL. RETURN CODE 8 EXIT IS TAKEN. 00168000
- * 00169000
- * ERROR MESSAGES: 00170000
- * 00171000
- * DMMWRT200S ERROR 'NNN' WRITING FILE 'FILENAME FILETYPE FM' 00172000
- * 00173000
- *************************************************************** 00174000
- EJECT 00175000
- DMMWRT CSECT @VA04250 00176000
- USING DMMWRT,R15 TEMPORARY ADDRESSABILITY @VA04250 00177000
- B START GO AROUND EYECATCHER @VA04250 00178000
- DS 0D @VA04250 00179000
- DC C'DMMWRT ' EYECATCHER @VA04250 00180000
- RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00181000
- START STM R14,R12,12(R13) SAVE CALLER'S REGS @VA04250 00182000
- LR R12,R15 LOAD OUR BASE REG @VA04250 00183000
- DROP R15 @VA04250 00184000
- USING DMMWRT,R12 ESTABLISH OUR ADDRESSABILITY @VA04250 00185000
- ST R13,SAVEBACK SAVE CALLER'S POINTER @VA04250 00186000
- LA R13,SAVEAREA POINT TO OUR SAVEAREA @VA04250 00187000
- USING INTSECT,R10 INTERNAL DATA @VA04250 00188000
- USING SYMSECT,R9 SYMPTOM SUMMARY CONTROL RECORD @VA04250 00189000
- USING PARMS,R8 PARMS PASSED BY CALLER @VA04250 00190000
- USING NUCON,R0 CMS LOW CORE @VA04250 00191000
- MAINLINE LR R8,R1 SAVE PARMS POINTER @VA04250 00192000
- L R10,INTDATA POINT TO INTERNAL DATA @VA04250 00193000
- *************************************************************** 00194000
- * MOVE INTDATA TO FIRST 2 OUTPUT RECORDS 00195000
- *************************************************************** 00196000
- INTOUT MVC R1PROB,INTPNUM MOVE PROBLEM NUMBER TO OUTPUT @VA04250 00197000
- MVC PROBNUM,INTPNUM SAVE IT IN FILE NAME OF REPORT @VA04250 00198000
- MVC R1DATE,CURRDATE REPORT CREATION DATE TO OUTPUT @VA04250 00199000
- MVC R1TIME,CURRTIME CURRENT TIME TO OUTPUT @VA04250 00200000
- CLI INTBYPS,YES BYPASS REQUESTED BY USER? @VA04250 00201000
- BNE INTOUT1 NO @VA04250 00202000
- MVC R1BYPASS,BYPASS INDICATE IN REPORT @VA04250 00203000
- INTOUT1 CLC INTED,BLANKS DID THE USER SUPPLY A FAIL DATE @VA04250 00204000
- BNE MVCUDATE YES, USE HIS @VA04250 00205000
- MVC R2DATE,CURRDATE MOVE CURRENT DATE TO OUTPUT @VA04250 00206000
- B INTCONT1 CONTINUE @VA04250 00207000
- MVCUDATE MVC R2DATE,INTED MOVE USER SUPPLIED DATE TO OUTPUT@VA04250 00208000
- INTCONT1 MVC R2CPUT,INTCPUT MOVE CPU TYPE TO OUTPUT @VA04250 00209000
- MVC R2CPUS,INTSER MOVE CPU SERIAL TO OUTPUT @VA04250 00210000
- MVC R2TIME,INTET ERROR TIME TO OUTPUT @VA04250 00211000
- MVC R2SEVIN,INTSEV MOVE SEVERITY TO OUTPUT @VA04250 00212000
- *************************************************************** 00213000
- * PUT EACH KYWD AND ASSOCIATED DATA ON A SEPERATE OUTPUT CARD 00214000
- *************************************************************** 00215000
- KEYOUT LA R7,OUTCONT POINT TO NEXT OUTPUT RECORD @VA04250 00216000
- L R6,KYDATA GET POINTER TO KEY DATA @VA04250 00217000
- LH R5,0(R6) GET LENGTH OF KEY DATA @VA04250 00218000
- AR R5,R6 POINT TO END OF DATA @VA04250 00219000
- ST R5,ENDKEY SAVE ADDRESS FOR LATER @VA04250 00220000
- LA R6,LNFLDLN(R6) POINT TO FIRST KEY LENGTH FIELD @VA04250 00221000
- KEYLOOP C R6,ENDKEY PROCESSED ALL DATA? @VA04250 00222000
- BNL KEYDONE YES @VA04250 00223000
- LH R4,0(R6) GET THIS LOGICAL RECORD LENGTH @VA04250 00224000
- LA R5,LNFLDLN(R6) POINT PAST LENGTH FIELDS TO DATA @VA04250 00225000
- AR R6,R4 POINT TO NEXT RECORD FOR LATER @VA04250 00226000
- SH R4,=H'5' SUBTRACT LENGTH OF LENGTH FIELD @VA04250 00227000
- * PLUS 1 (FOR EXECUTE INSTRUCTION) 00228000
- EX R4,KYMVC MOVE KEY PLUS DATA TO OUTPUT @VA04250 00229000
- LA R7,RSIZE(R7) POINT TO NEXT OUTPUT RECORD @VA04250 00230000
- B KEYLOOP OUTPUT ALL KEYWORDED DATA @VA04250 00231000
- KYMVC MVC 0(0,R7),0(R5) MOVE KEY PLUS DATA TO OUTPUT RCD @VA04250 00232000
- KEYDONE MVC 0(RSIZE,R7),KYMARK1 '- END OF KEY WORDED DATA-' @VA04250 00233000
- LA R7,RSIZE(R7) POINT TO NEXT OUTPUT RECORD @VA04250 00234000
- LA R2,OUTPUT POINT TO START OF OUTPUT AREA @VA04250 00235000
- LR R5,R7 GET END OF OUTPUT SO FAR @VA04250 00236000
- SR R5,R2 GET AMOUNT OF OUTPUT SO FAR @VA04250 00237000
- LR R3,R5 SAVE LENGTH FOR FSWRITE @VA04250 00238000
- SR R4,R4 SET FOR DIVIDE @VA04250 00239000
- D R4,=F'80' GET NUMBER OF RECORDS SO FAR @VA04250 00240000
- LA R4,REPORTFN POINT TO REPORT FN FT FM @VA04250 00241000
- BAL R6,FSWRITE OUTPUT THIS MUCH @VA04250 00242000
- *************************************************************** 00243000
- * WRITE SUPPORTING DATA TO OUTPUT 00244000
- *************************************************************** 00245000
- SUPPOUT L R4,SUPPDATA GET POINTER TO SUPPLEMENTARY DATA@VA04250 00246000
- LH R3,0(R4) GET LENGTH OF DATA @VA04250 00247000
- LTR R3,R3 ANY SUPPLEMENTARY DATA? @VA04250 00248000
- BZ TEXTOUT NO, GO DO TEXT OUTPUT @VA04250 00249000
- LA R5,ONE PUT OUT START-OF-SUPP-DATA CARD @VA04250 00250000
- LA R4,REPORTFN POINT TO FN FT FM @VA04250 00251000
- LA R3,RSIZE LENGTH @VA04250 00252000
- LA R2,SUPMARK1 POINT TO ACTUAL DATA @VA04250 00253000
- BAL R6,FSWRITE GO ADD THIS CARD @VA04250 00254000
- L R4,SUPPDATA POINT TO SUPPLEMENTARY DATA @VA04250 00255000
- LH R3,0(R4) GET LENGTH OF DATA @VA04250 00256000
- LA R2,TWO(R4) POINT PAST LENGTH FIELD @VA04250 00257000
- SR R4,R4 SET FOR DIVIDE @VA04250 00258000
- LR R5,R3 GET LENGTH @VA04250 00259000
- D R4,=F'80' GET NUMBER OF 80 BYTE RECORDS @VA04250 00260000
- LA R4,REPORTFN POINT TO FN FT FM OF OUTPUT FILE @VA04250 00261000
- BAL R6,FSWRITE ADD ON THIS MUCH @VA04250 00262000
- LA R5,ONE 1 CARD TO MARK END OF SUPP DATA @VA04250 00263000
- LA R3,RSIZE LENGTH OF 1 CARD OF DATA @VA04250 00264000
- LA R2,SUPMARK2 END-OF-SUPPLEMENTARY-DATA @VA04250 00265000
- BAL R6,FSWRITE GO PUT THE END CARD OUT @VA04250 00266000
- *************************************************************** 00267000
- * WRITE OUT TEXT PORTION OF REPORT 00268000
- *************************************************************** 00269000
- TEXTOUT L R4,TXTDATA POINT TO TEXT DATA (COUNT) @VA04250 00270000
- LH R3,0(R4) GET LENGTH OF TEXT DATA @VA04250 00271000
- LTR R3,R3 ANY TEXT DATA? @VA04250 00272000
- BZ CNTRLOUT NO, GO ADD TO SYMPTOM SUMMARY @VA04250 00273000
- LA R5,ONE 1 CARD INDICATING START-OF-TEXT @VA04250 00274000
- LA R4,REPORTFN POINT TO FN FT FM OF FILE @VA04250 00275000
- LA R3,RSIZE LENGTH OF DATA, 80 BYTES @VA04250 00276000
- LA R2,TXTMARK1 START-OF-TEXT-DATA @VA04250 00277000
- BAL R6,FSWRITE GO MARK START OF TEXT IN FILE @VA04250 00278000
- L R4,TXTDATA POINT TO TEXT AREA (COUNT FIELD) @VA04250 00279000
- LH R3,0(R4) GET LENGTH OF DATA AGAIN @VA04250 00280000
- LA R2,TWO(R4) POINT PAST COUNT TO ACTUAL DATA @VA04250 00281000
- LR R5,R3 DATA COUNT TO R5 @VA04250 00282000
- SR R4,R4 SET FOR DIVIDE @VA04250 00283000
- D R4,=F'80' NUMBER OF 80 BYTE RECORDS @VA04250 00284000
- LA R4,REPORTFN POINT TO FN FT FM @VA04250 00285000
- BAL R6,FSWRITE ADD TEXT TO PROBLEM REPORT @VA04250 00286000
- LA R5,ONE WRITE 1 RECORD (END-OF-TEXT) @VA04250 00287000
- LA R3,RSIZE BUFFER SIZE @VA04250 00288000
- LA R2,TXTMARK2 POINT TO END-OF-TEXT-DATA @VA04250 00289000
- BAL R6,FSWRITE GO WRITE THE END MARKER RECORD @VA04250 00290000
- EJECT 00291000
- *************************************************************** 00292000
- * THE PROBLEM REPORT IS NOW COMPLETE. NEXT WE WILL ADD THIS 00293000
- * PROBLEM TO THE SYMPTOM SUMMARY FILE. 00294000
- *************************************************************** 00295000
- CNTRLOUT LA R9,OUTCONT POINT TO BUFFER AREA @VA04250 00296000
- MVI 0(R9),BLANK BLANK FIRST BYTE @VA04250 00297000
- MVC ONE(RSIZE-ONE,R9),0(R9) CLEAR ONE 80 BYTE RECORD@VA04250 00298000
- MVC SYMPNUM,INTPNUM PROBLEM NUMBER TO CONTROL RCD @VA04250 00299000
- MVC SYMCREAT,CURRDATE TODAY'S DATE TO CREATION FLD @VA04250 00300000
- MVC SYMLACT,CURRDATE TODAY'S DATE IN LAST ACTIVITY @VA04250 00301000
- MVC SYMLFCT,=C'CREATE ' POST CREATE AS LAST ACT @VA04250 00302000
- MVC SYMSTAT,=C'OPENUSER' POST STATUS AS OPENUSER @VA04250 00303000
- MVC SYMSEV,INTSEV MOVE SEVERITY TO CONTROL RECORD @VA04250 00304000
- MVC SYMPLC,INTPLC MOVE PLC LEVEL TO COLTROL RECORD @VA04250 00305000
- MVC SYMFAIL,INTX1 MAJOR FAILURE DESCRIPTION @VA04250 00306000
- MVC SYMENVIR,INTX2 GENERAL ENVIRON AT TIME OF FAIL @VA04250 00307000
- L R4,KYDATA POINT TO KYWD DATA AREA (COUNT) @VA04250 00308000
- LH R5,0(R4) GET LENGTH OF DATA @VA04250 00309000
- LA R5,RSIZE-ONE(R5) SET TO ROUND TO NEXT HIGHEST @VA04250 00310000
- SR R4,R4 SET FOR DIVIDE @VA04250 00311000
- D R4,=F'80' NUMBER OF 80 BYTE RCDS OF KEYWDS @VA04250 00312000
- STC R5,SYMCCNT SAVE COUNT IN CONTROL RECORD @VA04250 00313000
- LA R5,ONE CONTROL RECORD ONLY FIRST @VA04250 00314000
- LA R4,SYMFNAME POINT TO 'SYMPTOM SUMMARY A1' @VA04250 00315000
- LA R3,RSIZE 1 80 BYTE RECORD @VA04250 00316000
- LA R2,OUTCONT POINT TO OUTPUT @VA04250 00317000
- BAL R6,FSWRITE GO ADD CNTRL RECORD @VA04250 00318000
- SR R5,R5 SET FOR IC @VA04250 00319000
- IC R5,SYMCCNT GET CARD COUNT OF DATA @VA04250 00320000
- LA R2,RSIZE SET FOR MULTIPLY @VA04250 00321000
- MR R2,R5 GET LENGTH OF DATA IN R3 @VA04250 00322000
- L R2,KYDATA POINT TO KEY DATA AREA (COUNT) @VA04250 00323000
- LH R6,0(R2) GET LENGTH OF VALID DATA @VA04250 00324000
- LR R1,R3 GET LENGTH OF TOTAL DATA @VA04250 00325000
- SR R1,R6 GET DIFFERENCE @VA04250 00326000
- LTR R1,R1 ANY DIFFERENCE? @VA04250 00327000
- BNP KYWRTOUT NO @VA04250 00328000
- AR R6,R2 POINT TO FIRST TRASH BYTE @VA04250 00329000
- KYTRASH MVI 0(R6),BLANK BLANK OUT ANY RESIDUAL TRASH @VA04250 00330000
- LA R6,ONE(R6) POINT TO NEXT BYTE @VA04250 00331000
- BCT R1,KYTRASH CLEAR TO END OF 80 BYTE BOUNDRY @VA04250 00332000
- KYWRTOUT BAL R6,FSWRITE GO ADD KEY DATA TO SYMTOM SUMMARY@VA04250 00333000
- B NORMEXIT WE'RE ALL DONE, RETURN TO CALLER @VA04250 00334000
- EJECT 00335000
- *************************************************************** 00336000
- * ROUTINE TO WRITE TO A DISK FILE 00337000
- * 00338000
- * ENTRY CONDITIONS: 00339000
- * 00340000
- * R6 RETURN REGISTER 00341000
- * R5 NUMBER OF 80 CHAR RECORDS TO WRITE 00342000
- * R4 POINTER TO FILENAME FILETYPE FILEMODE 00343000
- * R3 BUFFER SIZE 00344000
- * R2 BUFFER POINTER 00345000
- * 00346000
- * RETURN CONDITIONS: 00347000
- * 00348000
- * NORMAL RETURN ON R6. R2 IS ONLY ALTERED REGISTER 00349000
- * 00350000
- * ERROR EXIT TO RETCOD8 AFTER ISSUING MSG DMMWRT200S 00351000
- * 00352000
- *************************************************************** 00353000
- FSWRITE FSWRITE (R4),BSIZE=(R3),NOREC=(R5),BUFFER=(R2) @VA04250 00354000
- LR R2,R15 SAVE RETURN CODE @VA04250 00355000
- FSCLOSE (R4) DO THIS EVEN IF WE HAD ERROR @VA04250 00356000
- LTR R2,R2 CHECK FSWRITE RETURN CODE @VA04250 00357000
- BZ 0(R6) RETURN TO CALLER IF GOOD RET CODE@VA04250 00358000
- CVD R2,WKDWD HEX RETURN CODE TO PACKED @VA04250 00359000
- UNPK MSGNNN,WKDWD+SIX(RCCNT) UNPACK TO MESSAGE @VA04250 00360000
- OI MSGNNN+2,NUMERIC MAKE IT READABLE @VA04250 00361000
- MVC MSGFILE,0(R4) MOVE FN FT FM TO MESSAGE @VA04250 00362000
- MVC MSGFTYPE,FTDISP(R4) MOVE FILE TYPE TO MESSAGE @VA04250 00363000
- MVC MSGFMODE,FMDISP(R4) MOVE FILE TYPE TO MESSAGE @VA04250 00364000
- LA R3,MSG200 POINT TO MESSAGE @VA04250 00365000
- LA R4,MSG200L GET TOTAL LENGTH @VA04250 00366000
- WRTERM (R3),(R4) PUT MESSAGE ON TERMINAL @VA04250 00367000
- B RETCOD8 TAKE ERROR EXIT @VA04250 00368000
- * DMMWRT200S ERROR 'NNN' WRITING 'FILENAME FILETYPE FILEMODE' 00369000
- MSG200 DC C'DMMWRT200S ERROR ''' @VA04250 00370000
- MSGNNN DS CL3 ERROR RETURN CODE @VA04250 00371000
- DC C''' WRITING FILE ''' @VA04250 00372000
- MSGFILE DS CL8 FN FT FM @VA04250 00373000
- DC C' ' FILLER @VA04250 00374000
- MSGFTYPE DS CL8 FILE TYPE @VA04250 00375000
- DC C' ' FILLER @VA04250 00376000
- MSGFMODE DS CL2 FILE MODE @VA04250 00377000
- DC C'''' @VA04250 00378000
- MSG200L EQU *-MSG200 LENGTH OF MESSAGE @VA04250 00379000
- EJECT 00380000
- *************************************************************** 00381000
- * EXIT ROUTINES 00382000
- * RETURN CODES IN R15 OF 0 NORMAL 00383000
- * 8 ERROR ENCOUNTERED 00384000
- *************************************************************** 00385000
- NORMEXIT L R13,SAVEBACK GET CALLER'S SAVE AREA POINTER @VA04250 00386000
- LM R14,R12,12(R13) RESTORE HIS REGISTERS @VA04250 00387000
- SR R15,R15 RETURN CODE 0 @VA04250 00388000
- BR R14 RETURN TO CALLER @VA04250 00389000
- RETCOD8 L R13,SAVEBACK GET CALLER'S SAVE AREA POINTER @VA04250 00390000
- LM R14,R12,12(R13) RESTORE HIS REGISTERS @VA04250 00391000
- LA R15,8 RETURN CODE OF 8 @VA04250 00392000
- BR R14 RETURN TO CALLER @VA04250 00393000
- EJECT 00394000
- *************************************************************** 00395000
- * SAVEAREAS CONSTANTS AND EQUATES 00396000
- *************************************************************** 00397000
- DS 0F @VA04250 00398000
- SAVEAREA EQU * OUR REGISTER SAVE AREA @VA04250 00399000
- SAVEUSR DS F USER WORD @VA04250 00400000
- SAVEFWD DS F FORWARD POINTER @VA04250 00401000
- SAVEBACK DS F BACK CHAIN POINTER @VA04250 00402000
- SAVER14 DS F CALLER'S R14 @VA04250 00403000
- SAVER15 DS F CALLER'S R15 @VA04250 00404000
- SAVER0 DS F CALLER'S R0 @VA04250 00405000
- SAVER1 DS F CALLER'S R1 @VA04250 00406000
- SAVER2 DS F CALLER'S R2 @VA04250 00407000
- SAVER3 DS F CALLER'S R3 @VA04250 00408000
- SAVER4 DS F CALLER'S R4 @VA04250 00409000
- SAVER5 DS F CALLER'S R5 @VA04250 00410000
- SAVER6 DS F CALLER'S R6 @VA04250 00411000
- SAVER7 DS F CALLER'S R7 @VA04250 00412000
- SAVER8 DS F CALLER'S R8 @VA04250 00413000
- SAVER9 DS F CALLER'S R9 @VA04250 00414000
- SAVER10 DS F CALLER'S R10 @VA04250 00415000
- SAVER11 DS F CALLER'S R11 @VA04250 00416000
- SAVER12 DS F CALLER'S R12 @VA04250 00417000
- WKDWD DS D DOUBLE WORD WORK AREA @VA04250 00418000
- ENDKEY DS F AREA FOR PTR TO END OF KEY DATA @VA04250 00419000
- BLANKS DC C' ' BLANKS TO USE @VA04250 00420000
- FNAME DS 0CL8 FILENAME OF REPORT @VA04250 00421000
- REPORTFN EQU * FILENAME OF REPORT @VA04250 00422000
- DC C'PRB' @VA04250 00423000
- PROBNUM DS CL5 PROBLEM NUMBER @VA04250 00424000
- FTYPE DC C'REPORT ' FILETYPE OF REPORT @VA04250 00425000
- FMODE DC C'A1' FILE MODE OF OUTPUT REPORT @VA04250 00426000
- SYMFNAME DC C'SYMPTOM SUMMARY A1' @VA04250 00427000
- KYMARK1 DC CL80'--- END-OF-KEYWORDED-DATA ---' @VA04250 00428000
- SUPMARK1 DC CL80'--- START-OF-SUPPLEMENTARY-DATA-FILE-DESCRIPTIONS ---' 00429000
- SUPMARK2 DC CL80'--- END-OF-SUPPLEMENTARY-DATA-FILE-DESCRIPTIONS ---' 00430000
- TXTMARK1 DC CL80'--- START-OF-TEXT-DESCRIPTION ---' @VA04250 00431000
- TXTMARK2 DC CL80'--- END-OF-TEXT-DESCRIPTION ---' @VA04250 00432000
- BYPASS DC C'**** BYPASS REQUESTED' @VA04250 00433000
- PATCH DC 50F'0' PATCH AREA @VA04250 00434000
- YES EQU C'Y' USED TO CHECK FOR 'YES' @VA04250 00435000
- BLANK EQU C' ' BLANK @VA04250 00436000
- NUMERIC EQU X'F0' MASK FOR UNPACKED NUMERICS @VA04250 00437000
- ONE EQU 1 FOR LA DISPLACEMENTS ETC. @VA04250 00438000
- TWO EQU 2 SIZE OF HALFBYTE COUNT FIELD @VA04250 00439000
- RCCNT EQU 2 SIZE OF USABLE RETURN CODE @VA04250 00440000
- LNFLDLN EQU 4 LENGTH FIELD LENGTH @VA04250 00441000
- SIX EQU 6 DISP TO RETURN CODE IN WORK AREA @VA04250 00442000
- FTDISP EQU L'MSGFILE USED TO MOVE FILETYPE TO MSG @VA04250 00443000
- FMDISP EQU L'MSGFILE+L'MSGFTYPE WHERE FILE MODE GOES @VA04250 00444000
- RSIZE EQU 80 SIZE OF RECORDS @VA04250 00445000
- LTORG @VA04250 00446000
- OUTPUT EQU * PROBLEM REPORT OUTPUT AREA @VA04250 00447000
- *************************************************************** 00448000
- RECORD1 DS 0CL80 FIRST OUTPUT RECORD @VA04250 00449000
- R1LIT1 DC C'PROBLEM ' @VA04250 00450000
- R1PROB DS CL5 PROBLEM NUMBER @VA04250 00451000
- DC 16C' ' FILLER @VA04250 00452000
- R1LIT2 DC C'CREATED ' @VA04250 00453000
- R1DATE DS CL8 REPORT CREATION DATE MM/DD/YY @VA04250 00454000
- DC 3C' ' FILLER @VA04250 00455000
- R1TIME DS CL5 TIME OF REPORT @VA04250 00456000
- DC 5C' ' FILL TO 80 CHARACTERS @VA04250 00457000
- R1BYPASS DC C' ' BYPASS REQD GOES HERE @VA04250 00458000
- *************************************************************** 00459000
- RECORD2 DS 0CL80 SECOND OUTPUT RECORD @VA04250 00460000
- R2LIT1 DC C'FAILURE DATE ' @VA04250 00461000
- R2DATE DS CL8 DATE OF FAILURE MM/DD/YY @VA04250 00462000
- DC C' ' FILLER @VA04250 00463000
- R2TIME DC CL5' ' ERROR TIME @VA04250 00464000
- DC CL2' ' FILLER @VA04250 00465000
- R2LIT2 DC C'CPU TYPE ' @VA04250 00466000
- R2CPUT DS CL3 CPU TYPE @VA04250 00467000
- DC 8C' ' FILLER @VA04250 00468000
- R2LIT3 DC C'CPU SERIAL ' @VA04250 00469000
- R2CPUS DS CL6 CPU SERIAL @VA04250 00470000
- DC 4C' ' FILLER @VA04250 00471000
- R2SEV DC C'SEV ' @VA04250 00472000
- R2SEVIN DC C' ' THIS PROBLEM'S SEVERITY @VA04250 00473000
- DC 5C' ' FILLER @VA04250 00474000
- *************************************************************** 00475000
- RECORD3 DS 0CL80 THIRD OUTPUT RECORD @VA04250 00476000
- DC C'--- KEYWORDED SYMPTOMS ---' @VA04250 00477000
- DC 54C' ' BLANK FILLER @VA04250 00478000
- *************************************************************** 00479000
- OUTCONT DC 3200C' ' THE REST OF THE OUTPUT AREA @VA04250 00480000
- *************************************************************** 00481000
- * DSECTS AND REGISTER EQUATES 00482000
- *************************************************************** 00483000
- * DSECTS 00484000
- SPACE 1 00485000
- COPY INTSECT @VA04250 00486000
- SPACE 1 00487000
- COPY SYMSECT @VA04250 00488000
- SPACE 1 00489000
- PARMS DSECT @VA04250 00490000
- INTDATA DS F POINTER TO INTERNAL DATA AREA @VA04250 00491000
- KYDATA DS F POINTER TO KEY WORDED DATA @VA04250 00492000
- TXTDATA DS F POINTER TO TEXT DESCRIPTION DATA @VA04250 00493000
- SUPPDATA DS F PTR TO SUPPLEMENTARY FILE DATA @VA04250 00494000
- NUCON @VA04250 00495000
- SPACE 1 00496000
- REGEQU @VA04250 00497000
- END 00498000
ibm/vm370-lib/dumpscan/dmmwrt.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator