* /* START OF SPECIFICATIONS **** 00010000 *02* PROCESSOR = ASSEMBLER 00020000 **** END OF SPECIFICATIONS ***/ 00030000 GBLC &COMPNM,&ASMID 00050000 JHEAD 'ASSEMBLY PHASE - ERROR LOGGING ROUTINE', X01000000 PHASEID=X5L, X02000000 LEVEL=10 03000000 * * 04000000 *FUNCTION/OPERATION * 05000000 * THIS ROUTINE IS CALLED TO GENERATE ERROR RECORDS FOR ANY ERRORS * 06000000 * DETECTED IN THE ASSEMBLY PHASE. THIS ROUTINE WILL ALSO CALL THE * 07000000 * PRINT ROUTINE TO PRINT *** ERROR *** FOLLOWING THE STATEMENT IN * 08000000 * ERROR. * 09000000 * * 10000000 *ENTRY POINT- * 11000000 * * 12000000 * LGR100 * 13000000 *INPUT- * 14000000 * ERROR CODE IN R10 * 15000000 * POINTER TO DATA IN ERROR IN R11 * 16000000 * * 17000000 *OUTPUT * 18000000 * ERROR RECORDS DEFINED IN THE DIAGNOSTIC PHASE * 19000000 * * 20000000 *EXTERNAL ROUTINES- * 21000000 * PRINT ROUTINE * 22000000 * * 23000000 *EXITS, NORMAL- * 24000000 * EXITS TO THE CALLING ROUTINE THROUGH THE JRETURN MACRO * 25000000 * * 26000000 *EXITS, ERROR- * 27000000 * NONE * 28000000 * * 29000000 *TABLES/WORK AREA * 30000000 * NONE * 31000000 * * 32000000 *ATTRIBUTES- * 33000000 * REFRESHABLE * 34000000 * * 35000000 *NOTES- * 36000000 * NONE * 37000000 * * 38000000 SPACE 5 38050000 PRINT OFF DON'T PRINT JCOMMON COPY CODE 38100000 COPY JCOMMON INCLUDE COMMON DSECT 39000000 PRINT OFF DON'T PRINT JTEXT COPY CODE 40000000 COPY JTEXT INCLUDE TEXT DSECT 41000000 PRINT OFF DON'T PRINT X5COM COPY CODE 42000000 COPY X5COM INCLUDE ASSEMBLY PHASE COMMON 43000000 PRINT OFF DON'T PRINT JERRCD COPY CODE 44000000 COPY JERRCD 45000000 PRINT ON THAT'S THE END OF THE COPY CODE 45050000 TITLE '&COMPNM&ASMID - ASSEMBLY PHASE - ERROR LOGGING ROUTINE X46000000 - RSYMRCD COPY CODE' 46050000 RSYMRCD DSECT 47000000 COPY RSYMRCD 48000000 TITLE '&COMPNM&ASMID - ASSEMBLY PHASE - ERROR LOGGING ROUTINE' 49000000 JCSECT (X5L00) START MODULE CSECT 50000000 * APAR CHANGES 50050005 *A830500-832000,950500 @OX08862 50100005 *C840000,850000 @OX08862 50250005 *A700500,702000 @OX10348 50300005 *A710500,712500 @OX10348 50302005 *A790500-792000 @AZ07356 50302406 JMODID , CREATE MODULE ID 51000000 USING JTEXT,R5 TEXT USING 52000000 USING JTEXTA,R4 VARIABLE TEXT USING 53000000 USING X5COM,R7 ASSEMBLY COMMON USING 54000000 LGR100 LR R0,R9 SAVE POINTER TO PARAMETER LIST 55000000 LA R9,D4(R9) SET UP RETURN REGISTER TO RETURN56000000 BEYOND THE PARAMETER LIST 57000000 LGR200 JSAVE BASE=NO SAVE CALLING REGISTERS 58000000 LR R8,R12 SET UP SUBRTN BASE 59000000 USING LGR100,R8 USING FOR SUBRTN 60000000 LR R3,R0 RETRIEVE POINTER TO PARAM LIST 60600000 L R5,TXTPTR GET TEXT RECORD POINTER 61200000 STM R10,R11,X5LSAV SAVE REGISTERS 10 AND 11 62000000 ST R14,X5LSAV+D8 SAVE REGISTER 14 63000000 JENTRY (X5L01=LGR100) DEFINE ENTRY 64000000 USING RSYMRCD,R2 USING FOR RSYMRCD DSECT 65000000 USING JERRCD,R11 ERROR RECORD USING 66000000 GOIF DUPEVAL,ON=LGR700 DO NOT LOG ERR IF DUP EVAL 66050000 * TSO CODE STARTS HERE 66080000 GOIF JTERM,OFF=LABL1 DO WE PRINT TO TERMINAL? 66160000 CLI D1(R3),ERR197 LOG MNOTE 66170000 BE LABL00 DO NOT CHECK MSGLEVEL 66180000 CLC D0(D1,R3),JMSGL CHECK MESSAGE LEVEL 66190000 BL LABL1 IF NOT TO BE LOGGED NO TERM 66200000 LABL00 GOIF ERRBIT,ON=LABL1 BRANCH AROUND IF ERRBIT ON 66240000 GOIF JGEN,OFF=LABL0 SHALL WE FETCH MODEL 66250000 LH R10,JOUTFILE GET FILE INDEX 66260000 JPUTM FILE=(R10),ADDR=MODEL OUTPUT MODEL STMT 66270000 MVC D4(,R11),=AL1(JT,J0) INDICATE TEXT RECORD 66280000 MVC D16(D1,R11),D3(R11) SAVE FLAGB 66290000 MVC D2(D2,R11),MODSTMT INSERT STMT NUMBER 66300000 LABL0 LH R10,JOUTFILE GET FILE INDEX 66320000 JPUTM FILE=(R10),ADDR=JTEXT WRITE OUT TEXT RECORD 66400000 MVC D4(,R11),=AL1(JT,J0) MOVE IN TEXT RECORD OPCODE 66480000 CLI D1(R3),ERR197 MNOTE? 66530000 BNE LABL05 NO NO CHANGE 66540000 MVI D5(R11),JM INDICATE MNOTE MESSAGE 66550000 LABL05 MVC D16(D1,R11),D3(R11) SAVE JTFLGB 66560000 MVC D2(D2,R11),STMTN+D2 SAVE STMNT NUMBER 66640000 SET ERRBIT,ON TURN ERRBIT ON 66720000 SPACE 66800000 * TSO CODE ENDS HERE 66880000 LABL1 L R5,TXTPTR GET TEXT POINTER 67000000 ERR197 EQU 197 ERROR NUMBER FOR MNOTE 67200000 CLI D1(R3),ERR197 IS THIS MNOTE ? 67400000 BE NOLEVT YES, LOG IT 67600000 CLC D0(D1,R3),JMSGL IF SEVERITY CODE LOWER THAN MSG 68300000 BL LGR900 LEVEL, RETURN TO CALLER 69000000 SET JERR,ON INDICATE ERROR FLAG 70000000 TM DUMSW,TESTER IS IT A DS @OX10348 70050005 BZ NOLEVT NO @OX10348 70100005 GOIF PGEN,ON=NOLEVT YES, IF PRT GEN ON @OX10348 70150005 MVI FSTPSW,D0 CLEAR FIRST PRINT SW @OX10348 70200005 NOLEVT SET JERRCHK,ON TURN ON ERROR FLAG IN COMMON 71000000 TM DUMSW,TESTER @OX10348 71050005 BZ LABL2 @OX10348 71100005 GOIF PGEN,ON=LABL2 @OX10348 71150005 MVI FSTPSW,X'00' @OX10348 71200005 LABL2 EQU * @OX10348 71250005 LH R10,JOUTFILE GET ADDRESS OF OUTPUT FILE 72000000 JPUTL FILE=(R10),BUFREQ=27 GET OUTPUT BUFFER 74000000 MVC JEFLGA(D3),=AL1(0,8,JTERROR) SET UP FIXED PART OF RCD 76000000 LH R1,=AL2(JEDATA-JERECL) ACCUMULATE RECORD LENGTH 77000000 MVC JESTMTNO,STMTN+D4-L'JESTMTNO PUT IN THE STATEMENT NUMBER 78000000 MVC JESEV(D2),D0(R3) MOVE ERROR & SEV CODE TO ERRRCD 79000000 GOIF EQUOPR,OFF=COLPTR1 BR IF NOT 2ND-3RD OPER @AZ07356*79050006 IN AN EQU STMT @AZ07356 79100006 MVI JESEV,X'04' RESET SEV CODE @AZ07356 79150006 COLPTR1 EQU * @AZ07356 79200006 L R2,ERRPTR GET ADDR OF COL PTR OR DATA 81000000 TM D2(R3),BIT0 CHECK FOR COLUMN POINTER 82000000 BZ DATACK IF SW OFF GO CHECK FOR DATA 83000000 TM DUMSW,TESTER IS IT DS OR DXD @OX08862 83050005 BZ COLPTR NO @OX08862 83100005 S R2,JFWORD2 YES, COMP OPR COL PTR @OX08862 83150005 B COLPTRDS @OX08862 83200005 COLPTR S R2,OPNADR COMP OPERANDCOL PTR @OX08862 84000005 COLPTRDS LA R2,D1(R2) CONV TO 1 ORIGON COUNT @OX08862 85000005 STC R2,JECOLPTR INSERT IN INTO ERROR RECORD 86000000 B LGREXIT EXIT 87000000 DATACK TM D2(R3),BIT1 CHECK FOR DATA TO APPEND 88000000 BZ LGREXIT IF NO DATA, EXIT 89000000 MVC JEDATA(D8),RNAME MOVE DATA TO ERROR RECORD 90000000 LA R1,D8(R1) ADD DATA LENGTH TO RCD LGTH 91000000 LGREXIT STH R1,JERECL PUT RECORD LENGTH INTO RECORD 92000000 LGR700 LM R10,R11,X5LSAV RESTORE REGISTERS 10 AND 11 93000000 L R14,X5LSAV+D8 RESTORE REGISTER 14 94000000 LGR900 JRETURN , EXIT 95000000 TESTER EQU X'F0' FLAG TEST MASK @OX08862 95050005 JPATCH X5L00,135 5% PATCH AREA 95200000 END 96000000