* /* START OF SPECIFICATIONS **** 00140000 *02* PROCESSOR = ASSEMBLER 00150000 **** END OF SPECIFICATIONS ***/ 00160000 MACRO 00170000 BLDPRM &SW,&PARM 00180000 .* THIS MACRO IS USED TO BUILD THE ASSEMBLER OPTIONS PRINT LINES FOR 00270000 .* THE STATISTICS PRINT ROUTINE. 00360000 GOIF &SW,ON=MV&PARM CHECK OPTION SWITCH 00450000 EX R0,MVNO IF OFF MOVE IN THE WORD NO 00540000 LA COUNT,L'NO(COUNT) BUMP PRINT LINE INDEX 00630000 MV&PARM LA R2,P&PARM GET ADDRESS AND 00720000 LA R1,L'P&PARM.-D1(R0) LENGTH OF PARM 00810000 EX R1,MVPARM MOVE IN PARM 00900000 AR COUNT,R1 BUMP PRINT LINE INDEX 00990000 LA COUNT,D1(COUNT) ADD 1 TO PRINT LINE INDEX 01080000 MEND 01170000 SPACE 5 01260000 GBLC &COMPNM,&ASMID GLOBAL VARIABLES 01310000 SPACE 5 01360000 JHEAD 'DIAGNOSTIC PHASE - PROLOG', C12960000 PHASEID=X6B, C13050000 LEVEL=10 13140000 *FUNCTION/OPERATION- * 13230000 * THE DIAGNOSTIC PROCESSOR PHASE DECODES ERROR RECORDS AND LISTS * 13320000 * THE ASSOCIATED ERROR MESSAGES COMPLETE WITH DATA APPENDED TO THE * 13410000 * ERROR RECORDS INSERTED INTO THE MESSAGES AT THE POINTS NECESSARY * 13500000 * FOR INTELLEGENT READING. IF THE RELOCATABLE YCON OR RE-ENTRANT * 13590000 * TEST FAILURE FLAGS ARE SET, THEIR ASSOCIATED WARNINGS ARE ALSO * 13680000 * LISTED. OPTION STAT PRODUCES THE FOLLOWING STATISTICS AT THE * 13770000 * END OF THE ASSEMBLY LISTING- * 13860000 * * 13950000 * 1. HIGHEST SEVERITY CODE ENCOUNTERED (IF ANY). * 14040000 * 2. OPTIONS FOR THE ASSEMBLY. * 14130000 * 3. TOTAL RECORDS READ FROM SYSIN. * 14220000 * 4. TOTAL RECORDS READ FROM SYSLIB. * 14310000 * 5. TOTAL LINES PRINTED. * 14400000 * 6. TOTAL CARDS PUNCHED. * 14490000 * * 14580000 * FINALLY IF OPTION DECK IS EXERCISED AND THE ASSEMBLY HAS * 14670000 * PRODUCED OBJECT OUTPUT, AN END CARD WILL BE PUNCHED CONTAINING * 14760000 * THE FOLLOWING INFORMATION- * 14850000 * * 14940000 * COLUMNS CONTENTS * 15030000 * 1 12-2-9 PUNCH * 15120000 * 2-4 END * 15210000 * 5 BLANK * 15300000 * 6-8 ENTRY ADDRESS FROM SOURCE DECK END CARD OPERAND * 15390000 * (BLANK IF NO OPERAND) * 15480000 * 9-14 BLANK * 15570000 * 15-16 ESDID OF ENTRY POINT (BLANK IF NO OPERAND) * 15660000 * 17 - 32 BLANK * 15750000 * 33 NUMBER OF IDR ITEMS FOLLOWING * 15800000 * 34 - 43 TRANSLATOR IDENTIFICATION, PADDED * 15810000 * 44 - 45 VERSION LEVEL OF PROCESSOR * 15820000 * 46 - 47 MODIFICATION LEVEL OF PROCESSOR * 15830000 * 48 - 49 LAST TWO DIGITS OF YEAR * 15840000 * 50 - 52 DAY OF YEAR * 15890000 * 53 - 71 SAME AS 34 - 52 FOR SECOND IDR IF PRESENT * 15900000 * 72 BLANK * 15910000 * 73-76 DECK ID (FROM FIRST TITLE CARD) * 16740000 * 77-80 CARD SEQUENCE NUMBER * 16830000 * * 16920000 * * 17010000 * * 17100000 * * 17190000 *ENTRY POINT- * 17280000 * BEGIN * 17370000 * * 17460000 * * 17510000 *INPUT- * 17550000 * ERROR RECORDS. THE RECORD FORMAT IS- * 17640000 * * 17730000 * BYTE CONTENTS * 17820000 * 0-1 RECORD LENGTH * 17910000 * 2 FLAG A * 18000000 * 3 FLAG B * 18090000 * 4 INTERNAL OP CODE * 18180000 * 5 COLUMN POINTER * 18270000 * 6-7 ERROR NUMBER CODE * 18360000 * 8-9 STATEMENT NUMBER * 18450000 * 10 NUMBER OF APPENDED 8-BYTE DATA ITEMS (MAXIMUM 10) * 18540000 * 11-90 APPENDED 8-BYTE DATA ITEMS * 18630000 * * 18720000 *OUTPUT- * 18810000 * ERROR MESSAGES, NUMBER OF STATEMENTS FLAGGED, AND ASSEMBLY * 18900000 * STATISTICS WRITTEN TO THE PRINT FILE. END CARD WRITTEN TO THE * 18990000 * PUNCH FILE. * 19080000 * * 19170000 *EXTERNAL ROUTINES- * 19260000 * N/A * 19350000 *EXITS, NORMAL- * 19440000 * JRETURN * 19530000 * * 19620000 *EXITS, ERROR- * 19710000 * NONE * 19800000 * * 19890000 *ATTRIBUTES- * 19980000 * REFRESHABLE * 20070000 * * 20160000 * * 20250000 * * 20340000 SPACE 3 20430000 PRINT OFF DON'T PRINT JCOMMON COPY CODE 20480000 COPY JCOMMON 20520000 PRINT OFF DON'T PRINT JTEXT COPY CODE 20610000 COPY JTEXT 20700000 PRINT OFF DON'T PRINT JERRCD COPY CODE 20790000 COPY JERRCD 20880000 PRINT ON THAT'S ALL THE COPY CODE 20970000 SPACE 2 21150000 TITLE '&COMPNM&ASMID - DIAGNOSTIC PHASE - X6B COMMON AREA (X6BCOM)' 21200000 X6BCOM DSECT X6B COMMON AREA 21330000 STRTCOM DS 0D START OF X6B COMMON 21420000 DWORD1 DS D DOUBLEWORD1 21450000 DWORD2 DS D DOUBLEWORD2 21480000 DBLWD1 DS D WORK 21510000 DBLWD2 DS 0D AREAS 21600000 DS CL3 21690000 CSTMT DS 0CL5 CONVERTED STATEMENT NUMBER 21780000 DS C 21870000 CERROR DS 0CL4 CONVERTED ERROR CODE 21960000 CPAGE DS 0CL4 CONVERTED PAGE NUMBER 22050000 DS CL1 22140000 CCOLPTR DS CL3 CONVERTED COLUMN POINTER 22230000 SAVERTN1 DS F SAVE AREAS FOR 22320000 SAVERTN2 DS F RTN REGISTER 22410000 SVPRTBAS DS F PRINT BUFFER BASE SAVE AREA 22500000 ERDATADR DS F SAVE AREA FOR APPENDED DATA ADDR 22590000 FLDSAVE DS F SAVE AREA 22620000 STRADR DS F STRING ADDRESS 22650000 LSTMTNO DS F LAST STATEMENT NUMBER SAVE AREA 22660000 PGLINES DS H LINES PRINTED ON CURRENT PAGE 22680000 ERRQTY DS H COUNT OF STATEMENTS FLAGGED 22770000 CDSTMT DS H CARD WITHIN STMT 22880000 HWD DS H HALFWORD SAVE AREA 22900000 COLSAV DS H COLUMN SAVE AREA 22920000 SWITCHES DSW STATSW, TO CONTROL STMT-ERROR-MSG HDNG X22950000 NOBLK, LEFT ZERO SUPPRESSION CONTROL *23040000 ERRSW, UNDEFINED ERROR CODE SWITCH X23070000 ERLIT, ERROR AFTER LITERAL X23100000 COLOVLP COLUMN OVERLAP CHECK BIT 23130000 CARDP DSW CDPTR1 CARD PTR FLAG 23160000 TSPRINT EQU 12 TSO PRINT 23190000 SEVCDE DS C SEVERITY CODE SAVE AREA 23220000 PRTLNSAV DS CL120 PRINT LINE SAVE AREA 23310000 BUFTERM DS 31F 124 BYTES FOR TERMINAL BUFFER 23350000 MNDX EQU R2 MESSAGE INDEX 23400000 MTABPTR EQU R3 MTABLE BASE 23490000 COUNT EQU R4 COUNTING REGISTER 23580000 RTN EQU R5 INTERNAL RETURN LINKAGE 23670000 INBASE EQU R6 JGETL BUFFER BASE REGISTER 23760000 FILEREG EQU R10 JGETL FILENAME PARAMETER REG 23850000 MSGLN EQU R10 MESSAGE LENGTH 23940000 PRTBASE EQU R11 PRINT BUFFER BASE REGISTER 24030000 EJCT EQU X'00' EJECT THEN PRINT 24120000 SPACE1 EQU X'01' SINGLE SPACE THEN PRINT 24210000 SPACE2 EQU X'02' DOUBLE SPACE THEN PRINT 24300000 SPACE3 EQU X'03' TRIPLE SPACE THEN PRINT 24390000 ENDCOM EQU * END OF X6BCOM COMMON AREA 24570000 TITLE '&COMPNM&ASMID - DIAGNOSTIC PHASE - TERMINAL BUFFER DSECT ANDX24572000 JTEXTA DSECT' 24572400 TERMBUF DSECT 24576000 BUFC DS C BUFFER RECORD LENGTH 24579000 PRTIMG DS 0CL120 LENGTH OF PRINTLINE 24582000 SEQNO DS CL8 SEQUENCE NUMBER 24585000 BLNK1 DS CL4 BLANKS 24588000 STMTNO DS CL5 STMT NUMBER 24591000 GENFLG DS CL1 GENERATED STMT FLAG 24594000 SOURCE DS CL80 SOURCE IMAGE 24597000 ORG SOURCE+72 24600000 SEQNUM DS CL8 SEQ NUM FROM SOURCE 24603000 ORG PRTIMG 24606000 ERCDE DS CL6 ERROR CODE 24609000 BLNK2 DS CL1 BLANK 24612000 ERMSG DS CL101 ERROR MESSAGE 24615000 SPACE 5 24618000 JTEXTA DSECT JTEXTA DSECT 24621000 ORG JTOCO 24624000 OPTR DSW CDPTR CARD PTR FLAG 24627000 ORG JTOCO REORG FOR OTHER PTRS 24630000 OCPTR DS C OUTPUT COLUMN PTR 24633000 LENGTH DS C LENGTH OF FIELD 24636000 FIELD EQU * FIELD IN TEXT RECORD 24639000 SPACE 3 24660000 TITLE '&COMPNM&ASMID - DIAGNOSTIC PHASE - PRINT BUFFER DSECT AX24710000 ND PUNCH BUFFER DSECT' 24720000 * GENERAL MESSAGE LINE HEADING 24750000 PRTBUF DSECT 24840000 USING PRTBUF,R11 USING FOR ALL PRINT LINES 24930000 CNTRL DS C CONTROL BYTE 25020000 PRTLINE DS 0CL120 GENERAL PURPOSE PRINT LINE 25110000 DS CL19 25200000 MSGBEG DS CL101 MESSAGE BEGINING 25290000 * 25380000 * PAGE HEADING FORMAT 25470000 * 25560000 ORG PRTLINE 25650000 HLDIAG2 DS 0C STMT - ERROR-CODE - MESSAGE 25740000 HLTITLE DS CL4 TITLE ID 25830000 DS CL46 25920000 HLDIAG DS CL11 DIAGNOSTIC HEADING 26010000 DS CL35 26100000 HLDATE DS CL15 DATE 26190000 HLPAGE DS CL4 PAGE 26280000 DS C 26370000 HLPGENO DS CL4 PAGE NUMBER 26460000 * 26550000 * ERROR MESSAGE FORMAT 26640000 * 26730000 ORG PRTLINE 26820000 ELSTMTNO DS CL5 ERROR STATEMENT NUMBER 26910000 DS CL2 27000000 ELERPFIX DS CL2 COMPONENT PREFIX 27090000 ELERRCDE DS CL4 ERROR CODE 27180000 DS CL6 27270000 ELERMSG DS CL101 BEGINING OF ERROR MESSAGE 27360000 SPACE 3 27450000 PCHBUF DSECT 27540000 PCNTRL DS C 12-2-9 PUNCH 27630000 PCLINE DS 0CL71 PUNCH LINE 27720000 PCEND DS CL3 END 27810000 DS C BLANK 27900000 PCENTAD DS CL3 ENTRY FROM SOURCE END CD OPND 27990000 DS CL6 BLANK 28080000 PCESDID DS CL2 ESDID OF ENTRY POINT 28170000 DS CL16 BLANK 28260000 PCCOMP DS CL(L'JIDR) IDR 28310000 MTBLE DSECT 28370000 MADDR DS H MESSAGE ADDRESS 28390000 MLN DS H MOVE LENGTH OF MESSAGE 28410000 SPACE 2 28440000 TITLE '&COMPNM&ASMID - DIAGNOSTIC PHASE ' 28490000 JCSECT (X6B00) 28530000 * VS1 RELEASE 5.0 CHANGES 28580005 *A560304,680370 @OX09734 28590005 *C669600 @OX09734 28600005 *A664600 @OX12916 28610006 *A557024,557028,557081-557083,667520,600400-600820 @AZ13738 28610400 *A681400,560305-560408 @AZ13738 28610500 *C681700,680370 @AZ13738 28610800 JMODID 28620000 *********************************************************************** 28710000 * THIS IS THE MAIN LINE OF THE PHASE. IT PERFORMS ANY * 28800000 * INITIALIZATION NECESSARY AND CHECKS THE OPTIONS * 28890000 * DESIRED (LIST, DECK, LINK). IF NONE OF THESE OPTIONS * 28980000 * ARE REQUESTED, IT TERMINATES. IN ADDITION, IF THE * 29070000 * FLAG IS SET TO INDICATE THE PRESENCE OF A RELOCATABLE * 29160000 * YCON, THAT MESSAGE IS CREATED. IT THEN CHECKS THE * 29250000 * ERROR FLAG FOR OTHER ERRORS. IF IT IS OFF, CONTROL IS * 29340000 * PASSED TO THE NO-ERROR ROUTINE. OTHERWISE IT BEGINS * 29430000 * GETTING RECORDS FROM THE INPUT FILE AND CHECKING THEM * 29520000 * FOR END-OF-DATA OR ERROR-RECORD FLAGS. IF NEITHER OF * 29610000 * THESE FLAGS IS PRESENT, IT GETS ANOTHER RECORD. OTHER-* 29700000 * WISE IT TRANSFERS CONTROL TO THE APPROPRIATE SUBROUTINE* 29790000 *********************************************************************** 29880000 BEGIN JSAVE 29970000 JENTRY (X6B01=BEGIN) 30060000 USING X6BCOM,R7 USING FOR X6B COMMON 30240000 LA R10,(ENDCOM-STRTCOM+D7)/D8 SIZE OF COMMON 30330000 JGETCORE DBL=(R10) 30420000 LR R7,R10 BASE FOR X6B COMMON 30510000 LA R15,D1(R0) INIT LINE CNT TO FORCE PG HDNG 30600000 STH R15,PGLINES ON FIRST PRINT ATTEMPT 30690000 L R0,=H'-1' 30780000 ST R0,LSTMTNO SET TO NEG TO COUNT STMT 0 ERR 30830000 SR R0,R0 CLEAR REGISTER 30840000 ST R0,JFWORD1 CLEAR WORK AREA 30900000 STH R0,ERRQTY INITIALIZE ERROR COUNT TO ZERO 30960000 MVC SEVCDE(L'SEVCDE),JSEVER AND SEVERITY CODE 31050000 STC R0,SWITCHES SET ALL SWITCHES TO OFF 31140000 GOIF (JDECK,JLINK),NONE=NPCH IF NODECK NOLINK SKIP END CARD 31230000 GOIF JENDCHK,OFF=NPCH IF END CARD SW OFF DONT PCH 31320000 BAL RTN,PUNCHEC ELSE GO TO END CARD ROUTINE 31410000 NPCH GOIF JTERM,OFF=SKTERM1 BRANCH IF TERM OFF 31460000 USING TERMBUF,R11 SET UP USING FOR TERM BUFEER 31520000 BAL RTN,BUFINIT INITIALIZE BUFFER 31530000 MVI BUFC,EJCT MAKE A NEW PAGE 31532000 MVC PRTIMG(L'ASMXF),ASMXF PRINT XF DONE MESSAGE 31540000 JTPRINT GET TERMINAL BUFFER 31550000 BAL RTN,BUFINIT CLEAR BUFFER 31552000 SKTERM1 EQU * BRANCH LABEL 31560000 USING PRTBUF,R11 SET UP USING FOR PRINTBUF 31570000 LA R11,BUFTERM PT TO TERM BUF INCASE NOLIST 31576000 GOIF JLIST,OFF=NPRT BRANCH IF LIST OFF 31582000 JPRINT 31590000 NPRT GOIF (JMISLIN,JMISPCH,JINVOPT,JMISPRT,JMISTERM,JMISLIB), *31680000 NONE=REYCONCK CHECK FOR JCL ERRORS 31730000 GOIF JMISLIB,OFF=CKLDDER SYSLIB DD CARD MISSING 31820000 MVC ELERRCDE+1(L'ELERRCDE-1),=AL1(J2,J6,J9) SET UP ERR CDE 31830000 MVC ELERPFIX(L'JPREFIX),JPREFIX AND PREFIX 31840000 MVC ELERMSG(L'S269),S269 MOVE MESSAGE TO PRINT LINE 31850000 BAL RTN,TERMERR PRINT ON SYSTERM TOO 31852000 BAL RTN,PRINT GO TO PRINT ROUTINE 31854000 CLI SEVCDE,X'10' IS SEVCDE HIGHER THAN 16 31856000 BNL CKLDDER YES - DON'T SAVE SEV CODE 31858000 MVI SEVCDE,X'10' NO - SAVE SEV CODE 31858400 SPACE 31858800 CKLDDER GOIF JMISLIN,OFF=CKPRTER SYSLIN DD CARD ERROR TEST 31860000 MVC ELERRCDE+1(L'ELERRCDE-1),=AL1(J2,J5,J6) SET UP ERR CDE 31950000 MVC ELERPFIX(L'JPREFIX),JPREFIX AND PREFIX 32040000 MVC ELERMSG(L'S256),S256 MOVE MESSAGE TO PRINT LINE 32130000 BAL RTN,TERMERR PRINT ON SYSTERM IF SO 32180000 BAL RTN,PRINT GO TO PRINT ROUTINE 32220000 CLI SEVCDE,X'10' IS SEV CODE HIGHER THAN 16 32310000 BNL CKPRTER YES - DON'T SACE SEV CODE 32312000 MVI SEVCDE,X'10' NO - SAVE SEVERITY CODE 32314000 SPACE 32320000 CKPRTER GOIF JMISPRT,OFF=CKPDDER SYSPRINT DD CARD ERROR TEST 32330000 MVC ELERRCDE+1(L'ELERRCDE-1),=AL1(J2,J6,J7) SET UP ERR CODE 32340000 MVC ELERPFIX(L'JPREFIX),JPREFIX AND PREFIX 32350000 MVC ELERMSG(L'S267),S267 MOVE MSG TO PRINT LINE 32360000 BAL RTN,TERMERR PRINT ON SYSTERM IF SO 32362000 BAL RTN,PRINT GO TO PRINT ROUTINE 32370000 CLI SEVCDE,X'10' IS SEV CODE HIGHER THAN 16 32380000 BNL CKPDDER YES - DONT SAVE SEV CODE 32390000 MVI SEVCDE,X'10' NO - SAVE SEVERITY CODE 32392000 SPACE 32400000 CKPDDER GOIF JMISPCH,OFF=CKTDDER SYSPUNCH DD CARD ERROR TEST 32490000 MVC ELERRCDE+1(L'ELERRCDE-1),=AL1(J2,J5,J7) SET UP ERR CDE 32580000 MVC ELERPFIX(L'JPREFIX),JPREFIX AND PREFIX 32670000 MVC ELERMSG(L'S257),S257 MOVE MESSAGE TO PRINT LINE 32760000 BAL RTN,TERMERR PRINT ON SYSTERM IF SO 32810000 BAL RTN,PRINT GO TO PRINT ROUTINE 32850000 CLI SEVCDE,X'10' IS SEV CODE HIGHER THAN 16 32940000 BNL CKTDDER YES - DON'T SAVE SEV CODE 32990000 MVI SEVCDE,X'10' NO - SAVE SEVERITY CODE 33000000 SPACE 33030000 CKTDDER GOIF JMISTERM,OFF=CKOPTER SYSTERM DD CARD MISSING 33080000 MVC ELERRCDE+1(L'ELERRCDE-1),=AL1(J2,J6,J8) SET UP ERR CDE 33090000 MVC ELERPFIX(L'JPREFIX),JPREFIX AND PREFIX 33100000 MVC ELERMSG(L'S268),S268 MOVE MESSAGE TO PRINT LINE 33110000 BAL RTN,TERMERR PRINT ON SYSTERM IF SO 33112000 BAL RTN,PRINT GO TO PRINT ROUTINE 33114000 CLI SEVCDE,X'10' IS SEV CODE HIGHER THAN 16 33116000 BNL CKOPTER YES - DON'T SAVE SEV CODE 33118000 MVI SEVCDE,X'10' NO - SAVE SEVERITY CODE 33118400 SPACE 33118800 CKOPTER GOIF JINVOPT,OFF=REYCONCK INVALID OPTION ERROR TEST 33120000 MVC ELERRCDE+1(L'ELERRCDE-1),=AL1(J2,J5,J8) SET UP ERR CDE 33210000 MVC ELERPFIX(L'JPREFIX),JPREFIX AND PREFIX 33300000 MVC ELERMSG(L'S258),S258 MOVE MESSAGE TO PRINT LINE 33390000 BAL RTN,TERMERR PRINT ON SYSTERM IF SO 33440000 BAL RTN,PRINT GO TO PRINT ROUTINE 33480000 CLI SEVCDE,X'10' IS SEV CODE HIGHER THAN 16 33570000 BNL REYCONCK YES - DON'T SAVE SEV CODE 33620000 MVI SEVCDE,X'10' NO - SAVE SEVERITY CODE 33630000 SPACE 33660000 REYCONCK GOIF JESDOFLO,OFF=YCONCHK BRANCH IF NO ESDID OVERFLOW 33710000 MVC ELERRCDE+D1(L'ELERRCDE-D1),=AL1(J2,J6,J4) SETUP ERR CODE 33720000 MVC ELERPFIX(L'JPREFIX),JPREFIX SETUP PREFIX 33730000 MVC ELERMSG(L'S264),S264 MOVE MSG TO PRINT LINE 33740000 BAL RTN,TERMERR PRINT ON SYSTERM IF SO 33740400 BAL RTN,PRINT GO TO PRINT ROUTINE 33742000 CLI SEVCDE,X'10' IS SEV CODE HIGHER THAN 16 33744000 BNL YCONCHK YES - DON'T SAVE SEV CODE 33744400 MVI SEVCDE,X'10' NO - SAVE SEVERITY CODE 33744800 SPACE 33746000 YCONCHK GOIF JYCON,OFF=ERRCHK IF YCON SW OFF GO TEST ERROR SW 33750000 MVC ELERRCDE+1(L'ELERRCDE-1),=AL1(J2,J5,J9) SET UP ERR CDE 33840000 MVC ELERPFIX(L'JPREFIX),JPREFIX AND PREFIX 33930000 MVC ELERMSG(L'S259),S259 MOVE MESSAGE TO PRINT LINE 34020000 BAL RTN,TERMERR PRINT ON SYSTERM IF SO 34070000 BAL RTN,PRINT GO TO PRINT ROUTINE 34110000 CLI SEVCDE,X'04' IS SEV CODE HIGHER THAN 4 34200000 BH ERRCHK YES - DON'T SAVE SEV CODE 34290000 MVI SEVCDE,X'04' NO - SAVE SEVERITY CODE 34380000 ERRCHK EQU * 34470000 TM JPRTONLY,JPRONLY SYMBOL TABLE OVERFLOWED 34520000 BZ ERRCHK1 BRANCH IF NOT 34530000 MVC ELERRCDE+D1(L'ELERRCDE-D1),=AL1(J2,J6,J5) SETUP ERRCDE 34540000 MVC ELERPFIX(L'JPREFIX),JPREFIX AND PREFIX 34550000 MVC ELERMSG(L'S265),S265 MOVE MSG TO PRINT LINE 34552000 BAL RTN,TERMERR PRINT ON SYSTERM IF SO 34552400 BAL RTN,PRINT GO PRINT MSG 34554000 CLI SEVCDE,X'10' IS SEV CODE HIGHER THAN 16 34556000 BNL ERRCHK1 YES - DON'T SAVE SEV CODE 34556400 MVI SEVCDE,X'10' NO - SAVE SEVERITY CODE 34556800 ERRCHK1 EQU * BRANCH LABEL 34558000 GOIF JERRCHK,OFF=NOERR IF NO ERRORS GO TO NO ERROR RTN 34560000 GETRCD EQU * 34650000 LH FILEREG,JINFILE GET NAME OF INPUT FILE 34740000 ST PRTBASE,SVPRTBAS SAVE PRINT BUFFER BASE REG 34830000 JGETL FILE=(FILEREG) 34920000 LR INBASE,R11 ESTABLISH BASE FOR INPUT RCD 35010000 USING JERRCD,INBASE USING FOR INPUT RECORD 35100000 L PRTBASE,SVPRTBAS RESTORE PRINT BUFFER BASE REG 35190000 GOIF JEEOF,EQ=EODRTN CHECK FOR END-OF-DATA FLAG 35280000 GOIF JTERM,OFF=GETRCD1 TSO ON? 35290000 CLI D4(INBASE),JT IS IT A TEXT RECORD 35300000 BNE GETRCD1 BRANCH IF NOT EQUAL 35310000 LH R1,D14(,INBASE) GET STRING POINTER 35320000 AR R1,INBASE POINT TO STRING GROUP 35330000 ST R1,STRADR SAVE STRING GROUP POINTER 35340000 MVC CDSTMT,=H'1' RESET CARD-WITHIN-STMT 35350000 JCALL PRINTEXT CALL PRINT TEXT RECORD 35360000 L PRTBASE,SVPRTBAS RE-RESTORE PRINT BUF BASE REG 35365000 SET ERLIT,OFF RESET ERROR-AFTER LITERAL BIT 35370000 B GETRCD GO GET NEXT RECORD 35380000 GETRCD1 EQU * BRANCH LABEL 35390000 GOIF JEOPCOD,NE=GETRCD2 IS IT ERROR RECORD? 35400000 BAL RTN,ERRORTN GO PROCESS ERROR RECORD 35410000 B GETRCD GET NEXT RECORD 35420000 GETRCD2 EQU * BRANCH LABEL 35430000 GOIF JTERM,OFF=GETRCD TSO ON? 35440000 CLI D4(INBASE),JY IS IT A LITERAL XREF 35450000 BNE GETRCD BRANCH TO GET RECORD IF NOT 35460000 CLI D4(INBASE),BIT6 IS IT LITERAL REFERENCE 35470000 BE GETRCD YES,GO GET NEXT RECORD 35480000 SET ERLIT,ON START OF LITERALS 35490000 B GETRCD GET NEXT RECORD 35500000 BUFINIT EQU * INITIALIZE BUFFER 35510000 USING TERMBUF,R11 USING FOR TERMINAL BUFFER 35520000 LA R11,BUFTERM GET ADDRESS OF BUFFER 35530000 MVI BUFC,SPACE1 DO SINGLE SPACE 35532000 MVI PRTIMG,JBLANK SET 1ST CHAR TO BLANK 35540000 MVC PRTIMG+D1(L'PRTIMG-D1),PRTIMG BLANK OUT BUFFER 35550000 BR RTN RETURN TO CALLER 35560000 EODRTN EQU * 35640000 USING PRTBUF,R11 SET UP USING FOR PRINTBUF 35721000 B STATRTN GO TO STATISTICS ROUTINE 35921000 EJECT 36270000 ERRORTN EQU * 36360000 * THIS ROUTINE RECEIVES CONTROL FROM THE MAIN LINE ONLY * 36450000 * IF THE ERROR FLAG (JERRCHK) IS ON. IT PERFORMS THE * 36540000 * FOLLOWING FUNCTIONS- * 36630000 * * 36720000 * 1. INCREMENT COUNT OF STATEMENTS FLAGGED. * 36810000 * 2. STORE HIGHEST SEVERITY CODE FROM ERROR RECORDS.* 36900000 * 3. SET UP PRINT LINE WITH STATEMENT NUMBER, ERROR * 36990000 * CODE AND COMPONENT PREFIX, AND ERROR MESSAGE. * 37080000 * 4. INSERT A COLUMN POINTER OR APPENDED DATA FROM * 37170000 * ERROR RECORD WHERE INDICATED IN MESSAGE. * 37260000 * 5. TRANSFER CONTROL TO THE PRINT ROUTINE. * 37350000 * 6. RETURN TO MAIN LINE. * 37440000 * * 37530000 * INPUT- * 37620000 * * 37710000 * 1. ERROR RECORD POINTED TO BY INBASE. * 37800000 * 2. OUTPUT BUFFER POINTED TO BY PRTBASE. * 37890000 *********************************************************************** 37980000 ST RTN,SAVERTN1 SAVE RETURN LINKAGE 38070000 MVC JFWORD1+D4-L'JESTMTNO(L'JESTMTNO),JESTMTNO GET 38170000 L COUNT,JFWORD1 STATEMENT NUMBER 38270000 C COUNT,LSTMTNO IF SAME STATEMENT NUMBER 38370000 BE NOCOUNT DON'T COUNT IT AGAIN 38520000 ST COUNT,LSTMTNO ELSE SAVE IT IF DIFFERENT 38610000 LH R0,ERRQTY INCREMENT NUMBER OF STATEMENTS 38700000 AH R0,=H'01' FLAGGED AND 38790000 STH R0,ERRQTY STORE IT BACK 38880000 SPACE 38970000 NOCOUNT BAL RTN,CONVERT CONVERT IT 39060000 MVC ELSTMTNO(L'CSTMT),CSTMT MOVE IT TO PRINT LINE 39150000 CONTINUE SR COUNT,COUNT CLEAR COUNT REGISTER 39420000 IC COUNT,JERCDE GET ERROR CODE FROM RECORD 39510000 SET NOBLK,ON TURN OFF LEFT ZERO SUPPRESSION 39600000 BAL RTN,CONVERT CONVERT IT 39690000 SET NOBLK,OFF TURN ON LEFT ZERO SUPPRESSION 39780000 MVC ELERRCDE(L'CERROR),CERROR MOVE IT TO PRINT LINE 39870000 MVC ELERPFIX(L'JPREFIX),JPREFIX MOVE IN COMPONENT PREFIX 39960000 SLL COUNT,D2 COMPUTE OFFSET IN MSG ADDT TBLE 40050000 L MNDX,=A(ERRMSGS) GET ADDR OF START OF MSGS 40140000 L MTABPTR,=A(MTABLE) BASE FOR MSG ADDR INDEX TABLE 40230000 USING MTBLE,MTABPTR USING FOR MSG ADDR INDEX TABLE 40320000 AH MNDX,MADDR(COUNT) ADD OFFSET FOR MESSAGE 40410000 LH MSGLN,MLN(COUNT) GET MESSAGE LENGTH 40500000 GOIF (MSGLN),NOTZERO=MOVEIT TEST FOR UNDEFINED ERROR CODE 40590000 SR COUNT,COUNT UNDEFINED ERROR- GET LGTH 40680000 LH MSGLN,MLN(COUNT) OF UNDEFINED ERR CDE MSG 40770000 SET ERRSW,ON TURN ON UNDEFINED ERROR CODE SW 40860000 CLI SEVCDE,X'10' USE SEV OF 16 40910000 BNH MOVEIT 40920000 MVI SEVCDE,X'10' SAVE HIGHEST SEVERITY CODE 40930000 DROP MTABPTR 40950000 MOVEIT EQU * 41040000 STH MSGLN,HWD SAVE MESSAGE LENGTH 41090000 EX MSGLN,MOVEMSG MOVE MSG TO PRINT LINE 41130000 LA R14,ELERMSG INITIALIZE REG FOR TRT SCAN 41220000 GOIF ERRSW,OFF=GOODERCD CHECK UNDEFINED ERROR CODE SW 41310000 SET ERRSW,OFF TURN IT OFF IF IT IS ON 41400000 AR R14,MSGLN FIND END OF UNDEFINED ERROR 41490000 MVC D2(D7,R14),ELERPFIX MOVE UNDEF ERR CODE TO MESS 41540000 MVC ELERRCDE+D1(D3),=F'0' MESSAGE NUMBER SHOULD BE ZERO 41550000 LA MSGLN,D8(MSGLN) ADD ERROR NUMBER LENGTH 41560000 STH MSGLN,HWD SAVE IT 41570000 LH R14,JERECL GET RECORD LENGTH 41580000 B ENDSCAN GO PRINT MESSAGE 41760000 GOODERCD EQU * 41850000 GOIF JESEV,SEVCDE,LE=APPDATA CHECK SEVERITY CODE 41900000 MVC SEVCDE(L'JESEV),JESEV SAVE HIGHEST SEVERITY CODE 41910000 APPDATA EQU * 41920000 LA R0,JEDATA GET INITIAL APPENDED DATA ADDR 41940000 ST R0,ERDATADR AND SAVE IT 42030000 SCANMSG SR MNDX,MNDX CLEAR FUNCTION REGISTER 42120000 EX MSGLN,SCANTRT SCAN MSG FOR DATA INSERT FLAGS 42210000 BZ ENDSCAN SCAN COMPLETED 42300000 BAL RTN,BRTABLE(MNDX) GO TO BRANCH TABLE 42390000 LR COUNT,R1 CHECK TO DETERMINE IF ALL OF 42480000 SR COUNT,R14 MSG HAS BEEN SCANNED 42570000 GOIF (COUNT),(MSGLN),GE=ENDSCAN IF SO TERMINATE SCAN 42660000 SR MSGLN,COUNT IF NOT COMPUTE REMAINING LENGTH 42750000 LR R14,R1 AND SCAN CONTINUE POINT 42840000 B SCANMSG AND RESUME SCAN 42930000 MOVEMSG MVC ELERMSG(0),0(MNDX) EXECUTED MOVE FOR ERROR MSG TXT 43020000 SCANTRT TRT 0(0,R14),TRTABLE EXECUTED TRT FOR POUND OR DOLLR 43110000 MOVEDATA EQU * 43200000 L MNDX,ERDATADR GET ADDR OF APPENDED DATA 43290000 MVC D0(D8,R1),D0(MNDX) MOVE APPENDED DATA TO OVLAY FLG 43380000 LA MNDX,D8(MNDX) INCREMENT TO NEXT APPENDED ITEM 43470000 ST MNDX,ERDATADR AND SAVE IT 43560000 LA R1,D8(,R1) INCREMENT BY 8 FOR '$ ' 43650000 BR RTN RETURN TO CALLER 43740000 MOVECOL EQU * 43830000 ST RTN,SAVERTN2 SAVE RETURN LINKAGE 43920000 LNR COUNT,R1 COMPUTE REMAINING LENGTH OF 44010000 AR COUNT,R14 MESSAGE NOT YET SCANNED 44100000 AR COUNT,MSGLN THEN SUBTRACT 1 BECAUSE NOT 44190000 LR MNDX,COUNT MOVING FLAG ITSELF 44280000 BCTR COUNT,R0 SAVE LENGTH OF REMAINING MSG 44370000 AR MNDX,R1 ADD ADDRESS OF FLAG = MSG END 44460000 LR R15,MNDX SAVE BEGINING ADDR OF MOVE 44550000 A MNDX,=A(L'COLMSG) ADD COLMSG LGTH TO TARGET ADDR 44640000 SHIFTMSG MVC D0(D1,MNDX),D0(R15) SHIFT LAST BYTE OF MSG TO RIGHT 44730000 BCTR MNDX,R0 DECREMENT TO AND FROM ADDRESSES 44820000 BCTR R15,R0 TO GET NEXT BYTE TO LEFT 44910000 BCT COUNT,SHIFTMSG IF ALL OF MSG SHIFTED - STOP 45000000 MVC D0(L'COLMSG,R1),COLMSG MOVE COL MSG TO VACATED AREA 45090000 LH COUNT,HWD GET SAVED MSG LENGTH 45140000 A COUNT,=A(L'COLMSG) MAKE LENGTH INCLUDE COLMSG 45150000 STH COUNT,HWD SAVE NEW LENGTH FOR ENDSCAN 45160000 SR COUNT,COUNT CLEAR COUNT REGISTER 45180000 IC COUNT,JECOLPTR GET COLUMN POINTER 45270000 BAL RTN,CONVERT CONVERT IT 45360000 MVC L'COLMSG(L'CCOLPTR,R1),CCOLPTR MOVE IT TO PRINT LINE 45450000 LA R1,D2(,R1) INCREMENT BY 2 FOR '# ' IN MSG 45540000 L RTN,SAVERTN2 RETURN TO 45630000 BR RTN CALLER 45720000 ENDSCAN LH MNDX,HWD PICK UP SAVED MESSAGE LENGTH 45810000 LA R1,ELERMSG GET ADDRESS OF MESSAGE IN TWO 45820000 LR R3,R1 REGISTERS 45822000 AR MNDX,R1 COMPUTE END OF MESSAGE 45824000 ENDSCANA CLI D0(R3),X'2F' IS CHAR A BLANK 45826000 BNE ENDSCANB NO - GO MOVE CHAR 45828000 CLI D1(R3),X'2F' IS THERE A SECOND BLANK 45828400 BNE ENDSCANB NO - GO MOVE CHAR 45828800 LA R3,D1(R3) UPDATE SCAN INDEX 45829200 CR R3,MNDX END OF MESSAGE REACHED 45829600 BNH ENDSCANA NO 45829700 B ENDSCANC YES 45829800 ENDSCANB MVC D0(D1,R1),D0(R3) MOVE ONE CHAR 45829900 LA R1,D1(R1) UPDATE INSERT INDEX 45836600 LA R3,D1(R3) UPDATE SCAN INDEX 45838600 CR R3,MNDX END OF MESSAGE ? 45840600 BNH ENDSCANA NO - GO SCAN NEXT CHAR 45842600 ENDSCANC MVI D0(R1),X'2F' YES - FILL WITH BLANKS 45843000 LA R1,D1(R1) UPDATE INSERT INDEX 45843100 CR R1,MNDX END OF MESSAGE REACHED 45843200 BNH ENDSCANC NO 45849900 ENDSCAN2 BAL RTN,TERMERR GO PRINT ON SYSTERM IF SO 45870000 BAL RTN,PRINT GO PRINT LINE 45890000 L RTN,SAVERTN1 RETURN TO 45990000 BR RTN CALLER 46080000 EJECT 46130000 * PRINT ERROR MESSAGE ON SYSTERM DATA SET 46140000 * TAKE MESSAGE FROM SYSPRINT BUFFER AND 46150000 * REMOVE UNNESSASARYBLANKS 46160000 USING TERMBUF,R11 ESTABLISH BASE FOR TERM BUFFER 46162000 TERMERR GOIF JTERM,OFF=(RTN) RETURN IF NOTERMINAL USED 46164000 LR R4,R11 SAVE SYSPRINT BUFFER POINTER 46166000 LR R3,RTN SAVE RETURN REGISTER 46168000 LA R11,BUFTERM GET TERM BUFFER ADDR 46168400 MVC ERCDE,D8(R4) MOVE MESSAGE NUMBER 46168800 MVC ERMSG,D20(R4) MOVE MESSAGE TEXT 46169200 JTPRINT PRINT BUFFER 46169600 BAL RTN,BUFINIT INITIALIZE BUFFER 46169700 LR RTN,R3 RESTORE RETURN REGISTER 46169800 LR R11,R4 RESTORE BUFFER POINTER 46169900 BR RTN RETURN TO CALLER 46170000 SPACE 3 46199900 * PRINT STATISTICS LINES ON SYSTERM IF TERM OPTION USED 46209900 TERMSTAT GOIF JTERM,OFF=(RTN) RETURN IF NOTERMINAL USED 46219900 LR R4,R11 SAVE SYSPRINT BUFFER POINTER 46229900 ST R3,JFWORD2 SAVE THIS REGISTER IF SYSPARM 46231900 LR R3,RTN SAVE RETURN REGISTER 46239900 LA R11,BUFTERM GET TERM BUFFER ADDR 46249900 MVC PRTIMG(L'PRTLINE),D1(R4) MOVE LINE TO SYSTERM BUF 46253200 JTPRINT PRINT IT 46255200 BAL RTN,BUFINIT INITIALIZE BUFFER 46255300 LR RTN,R3 RESTORE RETURN REG 46255600 LR R11,R4 RESTORE BUFFER POINTER 46256000 L R3,JFWORD2 RESTORE REG AGAIN 46256100 BR RTN RETURN TO CALLER 46256400 EJECT 46256700 USING PRTBUF,R11 ESTABLISH BASE 46258700 PRINT EQU * 46260000 *********************************************************************** 46350000 * THE PRINT ROUTINE CONTROLS PAGE SKIPPING AND PAGE * 46440000 * HEADING. * 46530000 *********************************************************************** 46620000 GOIF JLIST,OFF=(RTN) RETURN IF LIST IS OFF 46660000 ST RTN,SAVERTN2 SAVE RETURN LINKAGE 46710000 LH COUNT,PGLINES CHECK FOR END OF PAGE. IF NOT 46800000 BCT COUNT,WRITEMSG END OF PAGE GO WRITE MSG. 46890000 * ELSE SET UP AND PRINT NEW 46980000 * PAGE HEADING ON NEW PAGE. 47070000 LH COUNT,JPAGENO GET PAGE NUMBER 47160000 AH COUNT,=H'01' INCREMENT PAGE NUMBER 47250000 STH COUNT,JPAGENO PUT BACK NEW PAGE NUMBER 47340000 MVC PRTLNSAV(L'PRTLINE),PRTLINE SAVE PRINT LINE IN BUFFER 47430000 MVI PRTLINE,JBLANK BLANK PRINT BUFFER 47520000 MVC PRTLINE+D1(L'PRTLINE-D1),PRTLINE 47610000 MVI CNTRL,EJCT INSERT EJECT CONTROL CHARACTER 47700000 MVC HLTITLE(L'JDECKID),JDECKID TITLE PART OF FIRST HDNG LINE 47790000 MVC HLDIAG(L'HDNG1),HDNG1 MOVE IN HDNG PART OF FIRST LINE 47880000 MVC HLPAGE(L'PAGE),PAGE MOVE IN 'PAGE' 47970000 BAL RTN,CONVERT CONVERT PAGE NUMBER 48060000 MVC HLPGENO(L'CPAGE),CPAGE MOVE IN PAGE NUMBER 48150000 JPRINT 48240000 GOIF STATSW,ON=STATONLY CHECK STATSW BEFORE NEXT INSTR 48330000 MVC HLDIAG2(L'HDNG2),HDNG2 STMT-ERROR-CODE-MESSAGE HEADING 48420000 STATONLY MVI CNTRL,SPACE3 TRIPLE SPACE 48510000 MVC HLDATE(L'JLVTMDT),JLVTMDT COMP-LEVEL-TIME-DATE 48600000 JPRINT 48690000 MVI CNTRL,SPACE2 INSERT DOUBLE SPACE CHAR 48780000 MVC PRTLINE(L'PRTLNSAV),PRTLNSAV RESTORE ORIG PRINT LINE 48870000 LH COUNT,JLNCT RESET LINE COUNT PER PAGE 48960000 WRITEMSG EQU * 49050000 JPRINT 49140000 STH COUNT,PGLINES SAVE LINE COUNT PER PAGE 49230000 L RTN,SAVERTN2 RESTORE LINKAGE TO CALLER 49320000 BR RTN RETURN TO CALLER 49410000 EJECT 49500000 CONVERT EQU * 49590000 *********************************************************************** 49680000 * THE CONVERT ROUTINE RECIEVES A BINARY NUMBER IN COUNT * 49770000 * (REGISTER 4) AND CONVERTS IT TO INTERNAL FORMAT IN * 49860000 * DBLWD2. IT ALSO SUPPRESSES LEADING ZEROS BASED UPON * 49950000 * THE SETTING OF THE FLAG NOBLK. * 50040000 *********************************************************************** 50130000 CVD COUNT,DBLWD1 CONVERT BINARY NO. TO DECIMAL 50220000 UNPK DBLWD2,DBLWD1 UNPACK IT 50310000 NC DBLWD2,=X'0F0F0F0F0F0F0F0F' STRIP ZONES FOR INTL FORMAT 50400000 GOIF NOBLK,ON=GOBACK IF LEFT ZERO SUPP OFF EXIT 50490000 LA R15,DBLWD2 ADDRESS OF NUMBER 50580000 LA R14,L'DBLWD2-1 LENGTH OF NUMBER 50670000 SZEROS CLI D0(R15),J0 SCAN FOR LEADING ZERO 50760000 BNE GOBACK IF NOT ZERO EXIT 50850000 MVI D0(R15),JBLANK IF ZERO - BLANK IT 50940000 LA R15,D1(R15) INDEX TO NEXT CHARACTER 51030000 BCT R14,SZEROS GO BACK AND SCAN IT 51120000 GOBACK BR RTN RETURN TO CALLER 51210000 * SUPPRESS LEADING BLANKS IN THE FLAG AND LINECOUNT OPTION VALUES 51260000 * IN THE OPTIONS PRINT BUFFER AND RETURNS WITH R1 POINTING TO THE 51270000 * LAST CHARACTER IN THE VALUE 51280000 BLNKSUP EQU * 51290000 LA COUNT,L'CPAGE-1 GET MOVE LENGTH OF FIELD 51292000 SBLANKS GOIF D0(R1),JBLANK,NE=BACK RETURN ON FIRST NONBLANK 51294000 EX COUNT,MVFIELD DELETE ONE BLANK CHAR 51298800 BCT COUNT,SBLANKS DECREMENT MOVE LENGTH 51310200 BACK AR R1,COUNT POINT TO LAST CHAR IN VALUE 51333000 LA R1,D1(R1) 51344400 BR RTN RETURN TO CALLER 51355800 MVFIELD MVC D0(COUNT,R1),D1(R1) MOVE ONE CHAR TO THE LEFT 51367200 EJECT 51378600 NOERR EQU * 51390000 USING PRTBUF,R11 SET UP USING FOR PRINTBUF 51460000 STATRTN EQU * 52740000 SET STATSW,ON TURN ON STATISTICS SWITCH 53550000 LH R0,PGLINES CHECK NUMBER OF LINES LEFT ON 53640000 CH R0,=H'15' PAGE. IF GT/EQ TO THE REQ'D 53730000 BNL DSKIP NUMBER DONT EJECT PAGE. 53820000 LA COUNT,D1(R0) FORCE SKIP TO 53910000 STH COUNT,PGLINES NEW PAGE 54000000 DSKIP MVI CNTRL,SPACE2 SET UP DOUBLE SPACE 54090000 LH COUNT,ERRQTY GET TOTAL COUNT OF ERRORS 54120000 GOIF (COUNT),ZERO=NOERRS ANY ERRORS. BRANCH IF NONE 54150000 MVC PRTLINE(L'ERCTMSG),ERCTMSG SET UP NR OF ERRS MSG 54180000 BAL RTN,CONVERT CONVERT NUMBER OF ERRORS 54280000 MVC PRTLINE+L'ERCTMSG(L'CSTMT),CSTMT MOVE IT TO PRINT LINE 54450000 B NOEPRINT BRANCH TO PRINT IT 54490000 NOERRS MVC PRTLINE(L'NOERMSG),NOERMSG NO ERROR MSG 54530000 NOEPRINT BAL RTN,TERMSTAT PRINT ON SYSTERM TOO 54550000 BAL RTN,PRINT GO PRINT MESSAGE 54600000 MVC PRTLINE(L'SEVMSG),SEVMSG SET UP SEVERITY CODE MESSAGE 54695800 SR COUNT,COUNT CLEAR COUNT REGISTER 54720000 IC COUNT,SEVCDE GET HIGHEST SEVERITY CODE 54810000 BAL RTN,CONVERT AND CONVERT IT 54900000 MVC PRTLINE+L'SEVMSG(L'CPAGE),CPAGE MOVE IT TO PRINT LINE 54990000 BAL RTN,TERMSTAT PRINT ON SYSTERM TOO 55040000 BAL RTN,PRINT GO PRINT IT 55080000 MVC PRTLINE(L'OPTM1),OPTM1 MOVE IN ASM OPTNS MESSAGE 55170000 BAL RTN,TERMSTAT PRINT ON SYSTERM TOO 55220000 BAL RTN,PRINT PRINT IT 55260000 LA COUNT,PRTLINE+D2(R0) START OF MESSAGE 55350000 BLDPRM JALGN,ALGN 55440000 BLDPRM JALOGIC,ALOGIC 55530000 LA R2,PBUF GET ADDRESSS AND LENGTH OF PARM 55580000 LA R1,L'PBUF-D1(R0) 55630000 EX R1,MVPARM MOVE IN PARM 55680000 AR COUNT,R1 BUMP PRINT LINE INDEX 55690000 TM JPARM3,JMINBUF MINIMUM BUFFER SIZE 55700000 BO MVMIN YES 55702000 TM JPARM4,JMBUF BR IF MULTIPEL- @AZ13738 55702400 BO MVMAX BUFFERS USED. @AZ13738 55702800 MVC D0(L'STD,COUNT),STD STANDARD BUFFER SIZE USED 55704000 LA COUNT,L'STD(COUNT) BUMP PRINT LINE INDEX 55706000 B MVBUF TAKE NEXT OPTION 55708000 MVMAX MVC D0(L'MAX,COUNT),MAX MBUF USED @AZ13738 55708100 LA COUNT,L'MAX(COUNT) BUMP PRINT LINE INDEX @AZ13738 55708200 B MVBUF TAKE NEXT OPTION @AZ13738 55708300 MVMIN MVC D0(L'MIN,COUNT),MIN MINIMUM BUFFER SIZE USED 55708400 LA COUNT,L'MIN(COUNT) BUMP PRINT LINE INDEX 55708800 MVBUF LA COUNT,D1(COUNT) ADD 1 TO PRINT LINE INDEX 55709200 BLDPRM JDECK,DECK 55710000 BLDPRM JESD,ESD 55760000 LR R1,COUNT TRANSFER POSITION PTR TO R1 55810000 MVC D0(L'PFLAG,R1),PFLAG MOVE IN FLAG( 55860000 LA R1,L'PFLAG(R1) BUMP PRINT LINE INDEX 55960000 SR COUNT,COUNT CLEAR COUNT REGISTER 55970000 IC COUNT,JMSGL GET MESSAGE LEVEL 55972000 BAL RTN,CONVERT AND CONVERT IT 55974000 MVC D0(L'CPAGE,R1),CPAGE MOVE IN CONVERTED MSGLEVEL 55976000 BAL RTN,BLNKSUP SUPRESS LEADING BLANKS 55978000 MVI D0(R1),JRPARN SUPPLY RIGTH PAREN 55978800 LA R1,D1(R1) ADD 1 TO PRINT LINE INDEX 55979200 MVC D0(L'PLC,R1),PLC MOVE IN ', LINECOUNT(' 55979600 LA R1,L'PLC(R1) BUMP PRINT LINE INDEX 55979700 LH COUNT,JLNCT GET LINE COUNT 55979800 BAL RTN,CONVERT AND CONVERT IT 55979900 MVC D0(L'CPAGE,R1),CPAGE MOVE IN CONVERTED LINE COUNT 55996600 BAL RTN,BLNKSUP SUPRESS LEADING BLANKS 56006600 MVI D0(R1),JRPARN SUPPLY RIGTH PAREN 56010600 MVI D1(R1),JCOMMA AND COMMA 56011000 MVI D2(R1),JBLANK AND A BLANK 56011400 LA R1,D3(R1) ADD 1 TO PRINT INE INDEX 56012600 LR COUNT,R1 RESTORE PRINT LINE INDEX 56022600 BLDPRM JLIST,LIST 56024400 BLDPRM JCALLS,CALLS 56030000 BLDPRM JYFLAG,YFLAG @OX09734 56030405 LR R1,COUNT TRASF.PRT LINE INDX @AZ13738 56030500 MVC D0(L'PSIZE,R1),PSIZE MOVE IN 'WORKSIZE(' @AZ13738 56030800 LA R1,L'PSIZE(R1) BUMP PRINT LINE INDEX @AZ13738 56031200 L COUNT,CORESIZE GET REQUESTED CORE @AZ13738 56031600 BAL RTN,CONVERT CONVERT VALUE @AZ13738 56031700 MVC D0(L'DBLWD2,R1),DBLWD2 MOVE VALUE TO PRINT LN @AZ13738 56031800 LA COUNT,L'DBLWD2-1 GET MOVE LENGH @AZ13738 56031900 BAL RTN,SBLANKS SUPPR LEADING BLANKS @AZ13738 56036400 MVI D0(R1),JRPARN SUPPLY RIGHT PAREN @AZ13738 56038400 LA R1,D1(,R1) ADD 1 TO PRINT INDEX @AZ13738 56040400 LR COUNT,R1 RESTORE PRINT LINE NDX @AZ13738 56040800 BAL RTN,TERMSTAT PRINT ON SYSTERM 56041000 BAL RTN,PRINT PRINT THIS OPTION LINE 56045500 LA COUNT,PRTLINE+D2 START OF MESSAGE LINE 56050000 BLDPRM JMLOGIC,MLOGIC 56070000 BLDPRM JNUM,NUM 56080000 BLDPRM JLINK,LOAD 56120000 BLDPRM JRENT,RENT 56160000 BLDPRM JRLD,RLD 56250000 BLDPRM JSTMT,STMT 56300000 BLDPRM JSYSMAC,SYSMAC 56430000 BLDPRM JTERM,TERM 56480000 BLDPRM JTEST,TEST 56520000 BLDPRM JXREF,XREF 56610000 GOIF JMINXREF,OFF=XRFPRT SHORT XREF 56660000 BCTR COUNT,R0 DECR COUNT TO GET NO BLANK 56860000 MVC D0(L'SHORT,COUNT),SHORT YES TELL IT 57060000 LA COUNT,L'SHORT+D1(COUNT) UPDATE POINTER 57260000 XRFPRT BAL RTN,TERMSTAT PRINT ON SYSTERM 57460000 BAL RTN,PRINT GO PRINT IND LINE OF ASM OPTNS 58050000 LA R1,PRTLINE+D2 START OF MESSAGE LINE 58140000 MVC D0(L'PSYSPARM,R1),PSYSPARM MOVE IN 'SYSPARM = ' 58230000 LA R1,L'PSYSPARM(R1) BUMP PRINT LINE INDEX 58320000 L R2,JSYSPARM GET ADDRESS OF SYSPARM 58410000 GOIF (R2),ZERO=PRTSTAT IF NO SYSPARM SKIP CODE TO MOVE-58500000 IT TO PRINT LINE. 58590000 SR COUNT,COUNT CLEAR COUNT REGISTER 58680000 IC COUNT,D0(R2) GET LENGTH OF SYSPARM 58770000 SH COUNT,=H'01' COMPUTE MV LGTH OF SYSPARM 58860000 LA R3,L'PRTLINE-L'PSYSPARM-D2(R0) COMPUTE LGTH OF PRT LINE-58950000 AVAILABLE FOR SYSPARM MSG 59040000 SR COUNT,R3 DETERMINE NO OF LINES NEEDED 59130000 BNM LINE2 BRANCH IF 2 OR 3 59180000 AR COUNT,R3 MAKE COUNT EQUAL TO MOVE LENGTH 59190000 B LPRT PRIMT 59200000 LINE2 EX R3,MSYSPARM MOVE LINE 1 TO BUFFER 59210000 STH COUNT,HWD SAVE LENGTH OF REMAINDER 59220000 BAL RTN,TERMSTAT PRINT ON SYSTERM 59230000 BAL RTN,PRINT PRINT 59270000 AR R2,R3 UPDATE SYSPARM MESSAGE INDEX 59280000 LA R1,PRTLINE+D2 MAKE 2 BLANKS FIRST IN LINE 59290000 LA R3,L'PRTLINE-D2(R0) COMPUTE LENGTH OF FULL LINE 59300000 LH COUNT,HWD RESTORE LENGTH OF REMAINDER 59310000 SR COUNT,R3 IS 3 LINES NEEDED 59360000 BNM LINE3 BRANCH IF YES 59370000 AR COUNT,R3 MAKE COUNT MOVE LENGTH OF REM 59380000 B LPRT PRIMT 59390000 LINE3 EX R3,MSYSPARM MOVE 2ND LINE OF 3 59400000 STH COUNT,HWD SAVE LENGTH OF REMAINDER 59450000 BAL RTN,TERMSTAT PRINT ON SYSTERM 59452000 BAL RTN,PRINT PRINT 59460000 AR R2,R3 UPDATE SYSPARM MESSAGE INDEX 59470000 LA R1,PRTLINE+D2 POINT TO BUFFER +2 59480000 LH COUNT,HWD RESTORE LENGTH OF REMAINDER 59490000 LPRT EX COUNT,MSYSPARM MOVE REMAINING CHARATERS 59540000 AR R1,COUNT BUMP PRINT LINE INDEX 59590000 LA R1,D1(R1) BUMP PRINT LINE INDEX 59600000 PRTSTAT MVI D0(R1),JRPARN SUPPLY RIGTH PAREN 59640000 BAL RTN,TERMSTAT PRINT ON SYSTERM 59650000 BAL RTN,PRINT GO PRINT SYSPARM 59690000 LA R1,PRTLINE GET BUFFER ADDRESS 59740000 MVC D0(L'PBUFSIZE,R1),PBUFSIZE MOVE BUFSIZE MSG 59790000 LA R1,L'PBUFSIZE(R1) BUMP PRINT LINE INDEX 59840000 LH COUNT,JMAXRL GET BUGFER SIZE 59890000 BAL RTN,CONVERT CONVERT IT 59940000 MVC D0(L'CSTMT,R1),CSTMT MOVE NUMBER INTO PRINT LINE 59990000 LA R1,L'CSTMT(R1) BUMP PRINT LINE INDEX @AZ13738 60040000 MVI D0(R1),JSLASH MOVE SLASH TO PRINT @AZ13738 60050000 LA R1,D1(R1) BUMP PRINT LINE INDEX @AZ13738 60060000 LH COUNT,NRMBUF GET NR OF MBUF @AZ13738 60070000 BAL RTN,CONVERT CONVERT IT @AZ13738 60080000 MVC D0(D2,R1),CSTMT+D3 MOVE OUT NUMBER @AZ13738 60082000 BAL RTN,PRINT PRINT WORKFILE BUFFER SIZE 60090000 MVC PRTLINE(L'TSYSIN),TSYSIN TOTAL RCDS FROM SYSTEM INPUT 60300000 L COUNT,JRECIN GET NUMBER OF RECORDS READ FROM 60390000 BAL RTN,CONVERT SYSTEM INPUT AND CONVERT IT 60480000 MVC PRTLINE+L'TSYSIN(L'DBLWD2),DBLWD2 MOVE IT TO PRINT LINE 60570000 BAL RTN,PRINT GO PRINT IT 60660000 MVC PRTLINE(L'TSYSLIB),TSYSLIB TOTAL RCDS FROM SYSTEM LIB 60750000 L COUNT,JRECLIB GET NUMBER OF RECORDS READ FROM 60840000 BAL RTN,CONVERT SYSTEM LIBRARY & CONVERT IT 60930000 MVC PRTLINE+L'TSYSLIB(L'DBLWD2),DBLWD2 MOVE IT TO PRT LINE 61020000 BAL RTN,PRINT GO PRINT IT 61110000 MVC PRTLINE(L'TSYSPCH),TSYSPCH TOTAL RECORDS PUNCHED 61200000 L COUNT,JRECPCH GET NUMBER OF RECORDS PUNCHED 61290000 BAL RTN,CONVERT AND CONVERT IT 61380000 MVC PRTLINE+L'TSYSPCH(L'DBLWD2),DBLWD2 MOVE IT TO PRINT LN 61470000 BAL RTN,PRINT GO PRINT IT 61560000 MVC PRTLINE(L'TSYSPRT),TSYSPRT TOTAL LINES PRINTED 61650000 L COUNT,JRECPRT GET NUMBER OF LINES PRINTED AND 61740000 LA COUNT,D1(COUNT) ADD 1 FOR LINE TO BE PRINTED 61830000 BAL RTN,CONVERT AND CONVERT IT 61920000 MVC PRTLINE+L'TSYSPRT(L'DBLWD2),DBLWD2 MOVE IT TO PRINT LIN 62010000 RETURN EQU * 62190000 SR COUNT,COUNT CLEAR COUNT REGISTER 62280000 IC COUNT,SEVCDE GET HIGHEST SEVERITY CODE 62370000 JFRECORE ADDR=(R7) FREE X6BCOM COMMON AREA 62460000 LR R10,COUNT RETURN HIGHEST SEVERITY CODE 62550000 RTRN JRETURN RETURN TO CALLER 62640000 EJECT 62730000 MVNO MVC D0(L'NO,COUNT),NO EXECUTED MOVE FOR 'NO' 62820000 MVPARM MVC D0(R1,COUNT),D0(R2) EXECUTED MOVE FOR ASM OPTIONS 62910000 MSYSPARM MVC D0(R0,R1),D1(R2) EXECUTED MOVE FOR SYSPARM MSG 63000000 PUNCHEC EQU * 63090000 *********************************************************************** 63180000 * THE PUNCH ROUTINE RECEIVES CONTROL FROM THE MAIN LINE * 63270000 * ONLY IF THE DECK OR LINK OPTION FLAGS ARE ON. IT SETS * 63360000 * UP THE 'END' CARD FOR PUNCHING AND RETURNS TO THE MAIN * 63450000 * LINE. * 63540000 *********************************************************************** 63630000 ST PRTBASE,SVPRTBAS SAVE PRINT BUFFER BASE REGISTER 63720000 JPUNCH 63810000 USING PCHBUF,R11 USING FOR PUNCH BUFFER 63900000 MVI PCNTRL,X'02' 12-2-9 PUNCH 63990000 MVC PCEND(L'END),END MOVE IN END 64080000 MVC PCCOMP(L'JIDR),JIDR IDR 64170000 TR PCLINE(L'PCLINE),JTRTABLE TRANSLATE TO EXTERNAL FORMAT 64260000 GOIF JESDCHK,OFF=NOESD IF ESD SWITCH OFF DONT MOVE ESD 64350000 MVC PCENTAD(L'JENTRYPT-D1),JENTRYPT+D1 MOVE IN ENTRY PT ADR 64440000 MVC PCESDID(L'JESDID),JESDID MOVE IN ESDID 64530000 NOESD L PRTBASE,SVPRTBAS RESTORE PRINT BUFFER BASE 64620000 BR RTN RETURN TO CALLER 64710000 EJECT 64800000 * 64890000 ******************************** CONSTANTS AND DATA ***************** 64980000 * 65070000 BRTABLE DS F DATA INSERTION BRANCH TABLE 65160000 B MOVEDATA GO TO DATA INSERT ROUTINE 65250000 B MOVECOL GO TO COL POINTER INSERT RTN 65340000 TRTABLE DC XL51'00' TRANSLATE TABLE TO SCAN MSGS 65430000 ORG TRTABLE+JPOUND FOR COL PTR INSERT 65520000 DC X'08' OR 65610000 ORG TRTABLE+JDOLLAR FOR APPENDED DATA INSERT 65700000 DC X'04' CHARATERS 65790000 ORG , TO RESUME LOC CTR 65880000 ZMASK DC X'0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F' 65970000 BLANKS JGENIN ' ' 66060000 HDNG1 JGENIN 'ASSEMBLER DIAGNOSTICS AND STATISTICS' 66150000 HDNG2 JGENIN 'STMT ERROR CODE MESSAGE' 66240000 PAGE JGENIN 'PAGE' 66330000 NOERMSG JGENIN 'NO STATEMENTS FLAGGED IN THIS ASSEMBLY' 66420000 ASMXF JGENIN 'ASSEMBLER (XF) DONE' @OX12916 66460006 ERCTMSG JGENIN 'NUMBER OF STATEMENTS FLAGGED IN THIS ASSEMBLY = ' 66510000 OPTM1 JGENIN 'OPTIONS FOR THIS ASSEMBLY' 66600000 NO JGENIN 'NO' 66690000 MIN JGENIN '(MIN),' 66740000 STD JGENIN '(STD),' 66750000 MAX JGENIN '(MAX),' @AZ13738 66752000 SHORT JGENIN '(SHORT)' 66760000 PALGN JGENIN 'ALIGN, ' 66780000 PALOGIC JGENIN 'ALOGIC, ' 66870000 PCALLS JGENIN 'MCALL, ' @OX09734 66960005 PDECK JGENIN 'DECK, ' 67050000 PESD JGENIN 'ESD, ' 67140000 PLOAD JGENIN 'OBJECT, ' 67230000 PLIST JGENIN 'LIST, ' 67320000 PMLOGIC JGENIN 'MLOGIC, ' 67410000 PRENT JGENIN 'RENT, ' 67500000 PRLD JGENIN 'RLD, ' 67590000 PSYSMAC JGENIN 'LIBMAC, ' 67770000 PTEST JGENIN 'TEST, ' 67860000 PXREF JGENIN 'XREF ' 67950000 PBUF JGENIN 'BUFSIZE ' 68020000 PTERM JGENIN 'TERMINAL, ' 68025000 PNUM JGENIN 'NUMBER, ' 68030000 PSTMT JGENIN 'STMT, ' 68035000 PYFLAG JGENIN 'YFLAG, ' @AZ13738 68037000 PFLAG JGENIN 'FLAG(' 68040000 PLC JGENIN ', LINECOUNT(' 68130000 PSIZE JGENIN 'WORKSIZE(' @AZ13738 68140000 PBUFSIZE JGENIN 'WORK FILE BUFFER SIZE/NUMBER =' @AZ13738 68170000 PSYSPARM JGENIN 'SYSPARM(' 68220000 TSYSIN JGENIN 'TOTAL RECORDS READ FROM SYSTEM INPUT ' 68310000 TSYSLIB JGENIN 'TOTAL RECORDS READ FROM SYSTEM LIBRARY ' 68400000 TSYSPRT JGENIN 'TOTAL RECORDS PRINTED ' 68490000 TSYSPCH JGENIN 'TOTAL RECORDS PUNCHED ' 68580000 COLMSG JGENIN 'NEAR OPERAND COLUMN ' 68670000 SEVMSG JGENIN 'HIGHEST SEVERITY WAS ' 68760000 S259 JGENIN 'RELOCATABLE Y-TYPE ADDRESS CONSTANT IN THIS ASSEMBLY' 68850000 S256 JGENIN 'SYSGO DD CARD MISSING - NOOBJECT OPTION USED' 69030000 S257 JGENIN 'SYSPUNCH DD CARD MISSING - NODECK OPTION USED' 69120000 S258 JGENIN 'INVALID ASSEMBLER OPTION ON EXEC CARD -- OPTION IGNOREX69210000 D' 69220000 S264 JGENIN 'TOO MANY ESD ENTRIES' 69240000 S265 JGENIN 'SYMBOL RESOLUTION DATA AREA HAS BEEN EXHAUSTED' 69270000 S267 JGENIN 'SYSPRINT DD CARD MISSING - NOLIST OPTION USED' 69280000 S268 JGENIN 'SYSTERM DD CARD MISSING - NOTERMINAL OPTION USED' 69290000 S269 JGENIN 'SYSLIB DD CARD MISSING' 69292000 END JGENIN 'END' 69300000 JPATCH X6B00,ED7 5% PATCH AREA 73300000 JEXTRN (X6C01=ERRMSGS) ADDR OF BEGINNING OF ERR MSGS 77390000 JEXTRN (X6C02=MTABLE) ADDR OF ERR MSG INDEX TABLE 85390000 EJECT 93540000 JCSECT (X6B20) DEFINE CSECT 93570000 PRINTEXT JSAVE BASE=YES SAVE REGISTER 93600000 JENTRY (X6B21=PRINTEXT) DEFINE ENTRY POINT 93630000 *LISTSOURCE 93660000 * THIS ROUTINE RECONSTRUCT THE SOURCE RECORDS IN THE PRINT AREA AND 93690000 * DETERMINE WHETHER SEQUENCE NUMBER NEEDS TO BE ATTACHED OR NOT 93720000 * 93750000 * 93780000 USING JTEXT,R5 SET USING FOR TEXT 93810000 USING JTEXTA,R4 SET UP USING FOR JTEXTA 93840000 USING TERMBUF,R11 USING FOR TERMINAL BUFFER 93870000 LR R5,INBASE SET R5 FOR TEXT PTR 93900000 BAL R6,INITBUF GO TO INITIALIZE BUFFER 93930000 GOIF JSTMT,OFF=LST100 DO WE PRINT STMT NUM? 93960000 TM D16(R5),BIT2 TEST SAVED FLAGB FOR JNOCNT 93970000 BO LST100 IF SO DO NOT ASSIGN STMTNR 93980000 LH R1,JTFLGA GET STMT NUMBER 93990000 BAL R6,PRN800 CONVERT TO DECIMAL 94020000 MVC STMTNO,DWORD2 MOVE TO PRINT LINE 94050000 LST100 EQU * BRANCH LABEL 94080000 CLI D5(R5),JM IS THIS AN MNOTE MESSAGE 94100000 BE LSTMNOTE THAN HANDLE IT SEPARATELY 94102000 SET COLOVLP,OFF TURN OVERLAP CHECK BIT OFF 94110000 XC COLSAV,COLSAV CLEAR SAVEAREA 94140000 * MOVE NAME FIELD 94170000 LH R4,JTNMP GET NAME POINTER 94200000 BAL R6,FLDMOVE GO MOVE NAME FIELD 94230000 * MOVE OPCODE FIELD 94260000 LH R4,JTOCP GET OPCODE POINTER 94290000 BAL R6,FLDMOVE MOVE OPCODE 94320000 * MOVE OPERAND FIELD 94350000 LH R4,JTOPP GET OPERAND POINTER 94380000 BAL R6,FLDMOVE MOVE OPERAND 94410000 * MOVE COMMENT FIELD 94440000 LH R4,JTCPR GET COMMENT POINTER 94470000 BAL R6,FLDMOVE MOVE COMMENT 94500000 * MOVE PRE-BEGIN POST-END FIELDS 94530000 LST200 BAL R6,STRING INSERT STRING 94560000 GOIF JNUM,OFF=LIST6 DO WE PRINT SEQ NUM? 94590000 MVC SEQNO(8),SEQNUM YES MOVE IN SEQ NUM 94620000 MVI SEQNUM,JBLANK SET BLANK CHARACTER 94650000 MVC SEQNUM+1(7),SEQNUM BLANK OUT SEQNUM 94680000 BAL R6,ZEROSUP SUPRESS LEADING ZEROS 94682000 LIST6 EQU * BRANCH LABEL 94710000 JTPRINT CALL TERMINAL PRINT 94720000 BAL R6,INITBUF CLEAR BUFFER 94730000 RTPOINT JRETURN EXIT 94740000 * LSTMNOTE HANDELS MNOTE PROCESSING FOR CORRECT MNOTES TO SYSTERM 94750000 LSTMNOTE EQU * 94760000 LH R4,JTOPP GET OPERAND POINTER 94762000 AR R4,R5 MAKE IT AN ADDRESS 94764000 LA R3,SOURCE GET OUTPUT POINTER 94768000 SR R14,R14 CLEAR REGISTER 94768400 IC R14,LENGTH GET OPERAND LENGTH 94768800 GOIF (R14),NOTZERO=LSTMN10 SCAN OPERAND 94769200 B LST200 FINISH MNOTE 94769600 LSTMN10 BCTR R14,0 MAKE IT MOVE LENGTH 94769700 AR R14,R4 GET END OF OPERAND 94769800 L R1,JCTCHR GET END COL -1 94769900 AR R1,R3 POINT TO END OF BUFFER 94772000 LSTMN15 CLI FIELD,JASTER COMMENT MNOTE 94779900 BE LSTMN20 YES, HANDEL IT 94789900 CLI FIELD,JCOMMA SEV CODE OMITTED 94793200 BE LSTMN30 YES, HANDEL 94795200 CLI FIELD,JBLANK BLANK SEV CODE 94795600 BNE LSTMN40 NO, TAKE CARE 94796000 LA R4,D1(R4) STEP UP INPUT 94796400 B LSTMN15 CONTINUE SCAN FOR SEV CODE 94796500 LSTMN20 MVC D0(D2,R3),FIELD MOVE *, 94796600 LA R4,D2(R4) STEP UP INPUT 94806900 LA R3,D2(R3) STEP UP OUTPUT 94808900 B LSTMN50 HANDEL MESSAGE 94810900 LSTMN30 MVC D5(D1,R3),FIELD MOVE , 94812900 LA R3,D6(R3) STEP UP OUTPUT 94813300 LA R4,D1(R4) STEP UP INPUT 94822600 B LSTMN50 HANDEL MESSAGE 94824600 LSTMN40 LR R6,R4 SAVE INPUT POINTER 94826600 LSTMN42 LA R4,D1(R4) STEP UP ONE CHAR 94828600 CLI FIELD,JCOMMA COUNT CHAR BEFORE COMMA 94830600 BNE LSTMN42 CONT NOT COMMA 94831000 SR R4,R6 NO OF CHAR PAST 94831400 LA R3,D5(R3) 5 MAX NO 94831800 SR R3,R4 MINUS NO OF CHAR =NO BLANKS 94831900 LR R4,R6 BACK UP INPUT POINTER 94832000 LSTMN46 MVC D0(D1,R3),FIELD MOVE SEV CODE 1 CHAR AT A TIME 94841600 LA R4,D1(R4) STEP UP INPUT 94843600 LA R3,D1(R3) STEP UP OUTPUT 94845600 CLI FIELD,JCOMMA NEXT CHAR A COMMA? 94847600 BNE LSTMN46 CONT IF NOT 94849600 MVC D0(D1,R3),FIELD MOVE THE COMMA 94850000 LA R3,D1(R3) STEP UP OUTPUT 94850400 LA R4,D1(R4) STEP PAST COMMA 94850800 LSTMN50 LA R4,D1(R4) STEP PAST FIRST QOUTE 94851200 LSTMN55 CLI FIELD,JQUOTE TERMINATING QUOTE? 94851300 BE LSTMN70 ELIMINATE DOUBLE QUOTE 94851400 CLI FIELD,JAMPER ELIMINATE DOUBLE AMPERSANDS 94851500 BE LSTMN80 CHECK IF TWO 94854300 CR R4,R14 END OF OPERAND 94856300 BNL LST200 FINISH MNOTE PROC IF YES 94858300 LSTMN60 MVC D0(D1,R3),FIELD MOVE CHAR TO OUTPUT 94858700 LA R3,D1(R3) STEP UP OUTPUT 94859100 LA R4,D1(R4) STEP UP INPUT 94859500 CR R3,R1 END OF BUFFER 94859900 BNL LSTMN90 YES, HANDEL IT 94868400 B LSTMN55 NO CONT SCAN 94870400 LSTMN70 CLI FIELD+D1,JQUOTE DOUBLE QUOTE 94872400 BNE LST200 NO- TERMINATE STRING 94874400 LSTMN75 LA R4,D1(R4) STEP PAST 1 QUOTE 94876400 B LSTMN60 OUPUT 1 QUOTE 94876800 LSTMN80 CLI FIELD+D1,JAMPER A 2ND AMPERSAND 94877200 BNE LSTMN60 OUTPUT THE SINGLE AMPER 94877300 B LSTMN75 STEP BY 1 OF 2 94877400 LSTMN90 CLI FIELD,JQUOTE NEXT CHAR A QUOTE 94878400 BE LSTMN95 YES - END OF STRING? 94878800 LSTMN92 MVI D0(R3),JX INSERT CONT CHAR 94879200 BAL R6,STRING GET STRINGS 94879600 GOIF JNUM,OFF=LSTMN94 NUM OPTION ON 94880000 MVC SEQNO(D8),SEQNUM MOVE SEQNO TO PROPER PLACE 94880100 MVI SEQNUM,JBLANK INSERT BLANK 94880200 MVC SEQNUM+D1(D7),SEQNUM BLANK SEQNUM FIELD 94880300 BAL R6,ZEROSUP SUPRESS LEADING ZEROS 94882700 LSTMN94 JTPRINT 94884700 BAL R6,INITBUF INITIALIZE TERM BUFFER 94886700 LA R3,SOURCE GET OUTPUT POINTER 94887100 L R1,JCTCHR GET END COL - 1 94887200 AR R1,R3 POINT TO END OF BUFFER 94887300 B LSTMN55 CONTINUE SCAN 94887500 LSTMN95 CLI FIELD+D1,JQUOTE A 2ND QUOTE 94895300 BNE LST200 NO STRING TERMINATED 94897300 B LSTMN92 YES PRINT THE LINE 94899300 *FLDMOVE THIS ROUTINE MOVE THE NAME,OPERATION,OPERAND OR COMMENTS TO 94903200 * THE PRINT LINE.IT TAKES CARE OF PRINTING TO CONTINUATION LINES 94911000 * THE ROUTINE IS CALLED BY BAL FLDMOVE WITH REG R4 POINTING TO 94918800 * THE FIELD TO BE MOVED. 94926600 * 94934400 * 94942200 FLDMOVE ST R6,FLDSAVE SAVE LINK REGISTER 94950000 AR R4,R5 TURN POINTER INTO ADDRESS 94980000 GOIF CDPTR,OFF=FLD1 CARD PTR? 95010000 * HANDLE CARD POINTER 95040000 MVC CARDP,OPTR SAVE CARD POINTER 95070000 SET CDPTR1,OFF TURN OFF FLAG BIT 95100000 FLD01 SR R1,R1 CLEAR REGISTER 95130000 IC R1,CARDP GET CARD PTR 95160000 SH R1,CDSTMT SUBTRACT CURR-CARD-WITHIN STMT 95190000 BNH FLD02 NOT IN NEW CARD 95220000 BAL R6,STRING GO INSERT STRING 95250000 GOIF JNUM,OFF=FLD03 DO WE PRINT SEQ NUMBER? 95280000 MVC SEQNO(8),SEQNUM YES,MOVE SEQNUM TO PROPER PLACE 95310000 MVI SEQNUM,JBLANK SET BLANK CHARACTER 95340000 MVC SEQNUM+1(7),SEQNUM BLANK OUT SEQNUM 95430000 BAL R6,ZEROSUP SUPRESS LEADING ZEROS 95440000 FLD03 EQU * BRANCH LABEL 95460000 JTPRINT CALL TERMINAL PRINT 95470000 BAL R6,INITBUF INITIALIZE BUFFER 95480000 XC COLSAV,COLSAV CLEAR SAVE AREA FOR COL PTR 95490000 SET COLOVLP,OFF TURN OVERLAP CHECK BIT OFF 95520000 B FLD01 GO TEST NEXT CARD 95550000 FLD02 LA R4,L'OPTR(,R4) POINT TO COLUMN POINTER 95580000 FLD1 SR R3,R3 CLEAR REGISTER 95610000 IC R3,OCPTR GET OUTPUT COL PTR 95640000 SR R14,R14 CLEAR REGISTER 95670000 IC R14,LENGTH GET FIELD LENGTH 95700000 GOIF (R14),NOTZERO=FLD10 CHECK IF OPERAND LENGTH ZERO 95730000 L R6,FLDSAVE RESTORE LINKAGE REGISTER 95760000 BR R6 95790000 * R14 NOW CONTAINS TRUE LENGTH,R3 CONTAINS OUTPUT COLUMN POINTER 95820000 FLD10 BCTR R14,0 DECREASE TO MOVE LENGTH 95850000 GOIF COLOVLP,OFF=FLD20 BRANCH IF OVERLAP BIT OFF 95880000 CH R3,COLSAV DID FIELDS OVERLAPPED? 95910000 BNL FLD20 NO,BRANCH AROUND 95940000 LH R3,COLSAV GET ADJUSTED COLUMN PTR 95970000 FLD20 EQU * BRANCH LABEL 96000000 SET COLOVLP,ON TURN OVERLAP CHECK BIT ON 96030000 L R1,JCTCHR GET END COLUMN - 1 96060000 SR R1,R3 GET MAXIMUM MOVE LENGTH 96090000 LA R15,D2(R3,R14) COMPUTE NEXT FIELD PTR 96120000 STH R15,COLSAV SAVE COLUMN PTR FOR NXT FIELD 96150000 CR R14,R1 WILL FIELD FIT INTO THIS LINE 96180000 LA R3,SOURCE-D1(R3) GET PRINT POSITION 96210000 BH FLD100 BRANCH IF LINE WONT FIT 96240000 EX R14,MOVE MOVE IT 96270000 L R6,FLDSAVE RESTORE LINK REGISTER 96300000 BR R6 RETURN 96330000 * MOVE PART OF FIELD 96360000 FLD100 EX R1,MOVE MOVE PART OF FIELD 96390000 SR R14,R1 GET LENGTH OF REMAINDER 96420000 STH R14,HWD SAVE LENGTH 96450000 LA R4,D1(R1,R4) GET ADDR OF REMAINING PART 96480000 BAL R6,STRING INSERT STRINGS INTO PRINT LINE 96510000 GOIF JNUM,OFF=FLD30 DO WE PRINT SEQ NUMBER? 96540000 MVC SEQNO(8),SEQNUM YES,MOVE SEQNUM TO PROPER PLACE 96570000 MVI SEQNUM,JBLANK SET BLANK CHARACTER 96600000 MVC SEQNUM+1(7),SEQNUM BLANK OUT SEQNUM 96630000 BAL R6,ZEROSUP SUPRESS LEADING ZEROS 96640000 FLD30 EQU * BRANCH LABEL 96660000 JTPRINT CALL TERMINAL PRINT 96690000 BAL R6,INITBUF INITIALIZE BUFFER 96720000 * 96750000 LH R14,HWD GET LENGTH AGAIN 96810000 L R3,JCTBGN SET OUTPUT COLUMN POINTER 96830000 LA R3,D1(,R3) TO CONTINUE COLUMN 96850000 XC COLSAV,COLSAV ZEROED OUT SAVEAREA 96870000 SET COLOVLP,OFF TURN OFF OVERLAP CHECK BIT 96900000 B FLD10 GO MOVE REMAINING PART 96930000 *STRING 96960000 * EXTRACT STRINGS FROM TEXT RECORD AND INSERT THEM INTO THE CURRENT 96990000 * PRINT LINE. STRADR(ADDRESS OF STRING GROUP) AND CDSTMT(CARD WITHIN 97020000 * START COUNTER) ARE UPDATED 97050000 STRING EQU * BRANCH LABEL 97080000 LH R1,CDSTMT GET CARD WITHIN STMT COUNTER 97110000 LA R1,D1(R1) INCREMENT 1 97140000 STH R1,CDSTMT UPDATE IT 97170000 TM JTSYMCNT,JGEN IS STMT GENERATED? 97200000 BZ STR050 NO,BRANCH AROUND 97230000 MVI GENFLG,JPLUS YES,PUT IN + SIGN 97260000 STR050 EQU * BRANCH LABEL 97290000 L R15,STRADR GET STRING GROUP POINTER 97320000 DROP R4 DROP USING FOR JTEXTA 97350000 USING JTEXTA,R15 SET NEW USING FOR JTEXTA 97380000 SR R1,R1 CLEAR REGISTER 97410000 IC R1,JTSTC GET STRING COUNT 97440000 LTR R1,R1 IS IT ZERO? 97470000 BCR 8,R6 YES,RETURN 97500000 LA R15,JTSTO POINT TO OUTPUT COL PTR 97530000 STR100 SR R14,R14 CLEAR REGISTER 97560000 IC R14,JTSTL2 GET STRING LENGTH 97590000 BCTR R14,0 DECREASE MOVE 97620000 SR R3,R3 CLEAR REGISTER 97650000 IC R3,JTSTO2 GET OUTPUT COLUMN POINTER 97680000 LA R3,SOURCE-D1(R3) POINT TO PRINT POSITION 97710000 EX R14,STRMOVE MOVE STRING TO OUTPUT 97740000 LA R15,JTSTR2+D1(R14) POINT TO NEXT STRING 97770000 BCT R1,STR100 GO BACK IF MORE 97800000 ST R15,STRADR 97860000 BR R6 97890000 STRMOVE MVC D0(0,R3),JTSTR2 EXECUTED STRING MOVE 97920000 DROP R15 DROP USING FOR JTEXTA 97950000 USING JTEXTA,R4 BACK TO OLD USING 97980000 MOVE MVC D0(0,R3),FIELD EXECUTED MOVE TO PRINT 98010000 INITBUF EQU * F BRANCH LABEL 98040000 LA R11,BUFTERM GET BUFFER ADDRESS 98070000 MVI BUFC,SPACE1 DO SINGLE SPACE 98080000 MVI PRTIMG,JBLANK BLANK FIRST BYTE 98100000 MVC PRTIMG+D1(L'PRTIMG-D1),PRTIMG BLANK THE REST 98130000 BR R6 RETURN TO CALLER 98160000 * CONVERT TO DECIMAL 98190000 * 98220000 PRN800 CVD R1,DWORD1 CONVERT NUMBER TO DECIMAL 98250000 UNPK DWORD2(5),DWORD1 UNPACK NUMBER 98280000 NC DWORD2(5),MASK1 MASKED OUT ZONE BITS 98310000 LA R1,D4 GET MAXIMUM BLANKS TO ADD 98340000 LA R15,DWORD2 POINT TO NUMBER 98370000 PRN810 CLI D0(R15),J0 IS LEADING DIGIT ZERO 98400000 BNE PRN820 NO 98430000 MVI D0(R15),JBLANK YES,BLANK OUT 98460000 LA R15,D1(R15) BUMP POINTER 98490000 BCT R1,PRN810 GO BACK IF MORE 98520000 PRN820 BR R6 RETURN 98550000 * SUPRESS LEADING ZEROS IN SEQUENCE NUMBER 98552000 ZEROSUP LA R3,D8 GET LENGTH OF NUM FIELD 98560000 LA R2,SEQNO GET ADDRESS 98570000 ZEROS CLI D0(R2),J0 LEADING ZERO ? 98572000 BNE ZERORET NO 98574000 MVI D0(R2),JBLANK SUPRESS LEADING ZERO 98576000 LA R2,D1(R2) POINT TO NEXT DIGIT 98578000 BCT R3,ZEROS DECREMENT COUNT 98578400 ZERORET BR R6 RETURN TO CALLER 98578800 MASK1 DC 5X'0F' MASK TO REMOVE ZONE BITS 98580000 JPATCH X6B20,256 5% PATCH AREA 98590000 END BEGIN 98610000