IEBEDIT CSECT @YA02576 00020002 * /* START OF SPECIFICATIONS *** 00022002 *01* PROCESSOR = ASSEM; 00024002 **** END OF SPECIFICATIONS ***/ 00026002 TITLE 'IEBEDIT UTILITY' YL026VC 00030002 *********************************************************************** 00080002 *A 044700,045300,098100-098140,099300-099380,455540 @YA02576 00174002 *C 000200,012200,067200,248800 @YA02576 00176002 *A 268500-268520,275700-275720 @YA02589 00176202 *D 269000-269200,276000-276200 @YA02589 00176402 *A 035100,035900 @YA02593 00176602 *A 136300,136320 @ZA01659 00176702 *C 136000,136600 @ZA01659 00176802 *A 168500-168520,179300-179320,455524 @ZA04410 00176903 *C 177100,177800 @ZA04410 00177003 *C 275700 @ZA04414 00177103 *C 188800 /*NONE BLANK PROBLEM @ZA07327 00227199 *A 168540-168560,177120,189220-189340 /*NONE BLANK PROBLEM @ZA07327 00277199 *C 178800,179000 //JOBCAT PROBLEM @ZA07326 00287199 *A 179340-179380 //JOBCAT PROBLEM @ZA07326 00297199 *A 191300-191320 @ZA07353 00299199 *C 179360 @ZA07353 00299599 *D 179400-179800 @ZA07353 00299999 *A 189304,189308 /*EOF PROBLEM @ZA11930 00302499 *C 189000 /*EOF PROBLEM @ZA11930 00304499 *MODULE NAME IEBEDIT YL026VC* 00305002 * YL026VC* 00307502 *DESCRIPTIVE NAME IEBEDIT IS A SINGLE MODULE UTILITY. YL026VC* 00310002 * A DESCRIPTION OF EACH SUBROUTINE IS IN A PROLOG YL026VC* 00312502 * PRECEEDING IT. YL026VC* 00315002 * YL026VC* 00317502 *COPYRIGHT NONE YL026VC* 00320002 * YL026VC* 00322502 *STATUS VS2 REL2 PROGRAM MODIFICATION NOVEMBER 1972 YL026VC* 00325002 * * 00327502 *FUNCTION IEBEDIT IS THE INITIALIZATION ROUTINE FOR THE UTILITY * 00330002 * IEBEDIT. THIS ROUTINE PERFORMS THE FOLLOWING FUNCTIONS:* 00332502 * ESTABLISHES ADDRESSABILITY AND AN ACTIVE SAVE AREA, * 00335002 * REQUESTS MAIN STORAGE FOR WORK AREAS AND SWITCHES AND * 00337501 * ESTABLISHES ADDRESSABILITY FOR A DSECT TO REFERENCE * 00340001 * THIS AREA, ZEROS SWITCHES AND INITIALIZES THE WORK * 00360001 * AREA, OPENS DATA SETS, TESTS FOR GOOD OPENS, CHECKS * 00380001 * SPECIFICATION AND VALIDITY OF THE BLKSIZE PARAMETER * 00400001 * FOR EACH DATA SET, AND GETS THE FIRST RECORD OF THE * 00420001 * SYSUT1 DATA SET IF ALL ERROR CHECKING HAS BEEN SUCCESS-* 00440001 * FUL. THIS SECTION OF CODE ALSO CONTAINS EXIT LISTS AND * 00460001 * RELATED CODE FOR THE SYSUT1, SYSUT2 AND SYSIN DATA * 00480001 * SETS. * 00500001 * * 00520001 *ENTRY IEBEDIT- ENTRY FOR IEBEDIT UTILITY * 00540001 * * 00560001 *INPUT N/A * 00580001 * * 00600001 *OUTPUT ON AN EXIT TO THE PRINT ROUTINE, A CODE FOR THE * 00620001 * REQUESTED ERROR MSG TO BE PRINTED IS PASSED IN REGISTER* 00640001 * TWO(R2). * 00660001 * ON AN EXIT TO THE MAIN ROUTINE, THE ADDRESS OF THE * 00680001 * FIRST SYSUT1 RECORD IS PASSED IN REGISTER RCARD. * 00700001 * ON AN EXIT TO INBLK, THE BLOCKSIZE CHECK ROUTINE, THE * 00720001 * ERROR MSG CODE IS PASSED IN REGISTER R8 AND DATA SET * 00740001 * IDENTIFICATION CODE IS PASSED IN REGISTER RCARD. * 00760001 * * 00780001 *EXTERNAL ROUTINES THE PRINT ROUTINE, PRINT, IS USED TO PRINT ALL * 00800001 * ERROR AND NORMAL MESSAGES. CONTROL IS PASSED VIA; * 00820001 * BAL RLINK,PRINT INSTRUCTION. * 00840001 * THE BLOCKSIZE CHECK ROUTINE, INBLK, IS USED TO * 00860001 * CHECK FOR VALID BLKSIZE SPECIFICATION FOR THE * 00880001 * SYSUT1, SYSUT2, AND SYSIN DATA SETS. CONTROL IS * 00900001 * PASSED VIA, BAL RLINK,INBLK INSTRUCTION. * 00920001 * * 00940001 *EXITS-NORMAL AN EXIT IS MADE TO THE MAIN ROUTINE, MAIN, IF ALL ERROR* 00960001 * CHECKING DONE BY IEBEDIT HAS BEEN SUCCESSFULL. CONTROL * 00980001 * IS PASSED VIA, B MAIN INSTRUCTION. * 01000001 * -ERROR IF THE SYSPRINT DATA SET WAS NOT OPENED SUCCESSFULLY, * 01020001 * CONTROL IS PASSED TO THE CLOSE ROUTINE VIA, B PORT * 01040001 * INSTRUCTION. * 01060001 * IF ANY OTHER ERRORS HAVE BEEN FOUND IN PROCESSING THE * 01080001 * DATA SETS, CONTROL IS PASSED TO THE CLOSE ROUTINE VIA, * 01100001 * BAL RLINK,POST1 INSTRUCTION. * 01120001 * * 01140001 *NOTES N/A * 01160001 * * 01180001 *CHANGE ACTIVITY FOLLOWS THIS PROLOG YL026VC* 01190002 * YL026VC* 01192002 *********************************************************************** 01200001 * 247500 M4212 01210002 *3412021000,030000,046000-048000,059500,831500-832000,833500 BS0H 01212002 *230000 A29714 01214002 * 535000 A27599 01216002 *249500,250000,250500 A29712 01218002 *222500 A33351 01218402 *534800,535100 A38600 01218802 *C164600,188600 YL026VC 01218902 *A 161620-161680,177020,179020,195820-195900,455420-455440 YA01706 01219002 *C 161000-161600 YA01706 01219102 *********************************************************************** 01219202 SAVE (14,12) @YA02576 01220002 BALR RBASE,0 ESTABLISH ADDRESSABILITY 01240001 USING *,RBASE * 01260001 GETMAIN R,LV=72 01280001 ST RSAVE,4(R1) CHAIN SAVE AREAS 01300001 ST R1,8(RSAVE) * 01320001 LR RSAVE,R1 ESTABLISH ACTIVE SAVE AREA 01340001 * * 01360001 * VARIABLE GETMAIN ISSUED FOR WORK AREA AND SWITCHES * 01380001 * LA=INSIZE, WHER INSIZE IS TWO WORDS INDICATNG MAX ABD MIN * 01400001 * STORAGE REQUESTED * 01420001 * INPARA CONTAINS THE ADDRESS OF STORAGE ALLOCATED TO THE TASK* 01440001 * BY THE GETMAIN AND IS ONE FULL WORD * 01460001 * INPARA+4-(1 FULL WORD) CONTAINS THE LENGTH ACTUALLY * 01480001 * ALLOCATED BY THE GETMAIN * 01500001 * * 01520001 GETMAIN VC,LA=INSIZE,A=INPARA 01540001 LTR R15,R15 WAS GETMAIN OK 01560001 BZ VCOK YES 01580001 LA R15,8 NO, SET RETURN CODE 01600001 B RETCC2 AND EXIT 01620001 VCOK EQU * 01640001 L RWORK,INPARA GET ADDR OF STORAGE TO ADDR 01660001 USING IEBED,RWORK * SWITCHES, WORKAREAS 01680001 XC IEBED10(IEBED20-IEBED10),IEBED10 ZERO SWITCHES 01700001 XC IEBED46(16),IEBED46 CLEAR PUT PRINT AREA 01720001 XC SC4(4),SC4 CLEAR CARD SCAN AREA 01740001 LA R3,1 SET UP PAGE COUNT IF NO OVER RIDE 01760001 STH R3,HPAGE STORE PAGE COUNT OF ONE 01780001 L R6,INSYSIN RESTORE SYSIN DD NAME 01800001 MVC 40(8,R6),INSYSDD 01820001 L R6,INPRT RESTORE SYSPRINT DD NAME 01840001 MVC 40(8,R6),INPRTDD 01860001 L R6,INUT1 RESTORE SYSUT1 DD NAME 01880001 MVC 40(8,R6),INUT1DD 01900001 L R6,INUT2OT RESTORE SYSUT2 DD NAME 01920001 MVC 40(8,R6),INUT2DD 01940001 L R3,4(RSAVE) GET REG 1 POINTER 01960001 L R3,24(R3) TO INVOLKING LIST 01980001 L R4,0(R3) GET POINTER TO PARM FIELD 02000001 * R4 CONTAINS POINTER TO HALF WORD BEFORE PARM FIELD 02020001 * 02040001 TM 0(R3),X'80' END OF LIST 02060001 BO INPARM YES 02080001 LA R3,4(R3) GET DD POINTER 02100001 L R4,0(R3) 02120001 LA R4,0(R4) IS THERE I A DD LIST 02140001 LTR R4,R4 02160001 BZ INPARM1 NO 02180001 LR R5,R4 GET LENGTH OF LIST 02200001 AH R5,0(R4) END OF LIST 02220001 LA R5,1(R5) POINTER TO LAST USED BYTE 02240001 LA R4,34(R4) POINTER TO SYSIN OVERRIDE 02260001 CR R4,R5 SYSIN WITHIN LIST 02280001 BH INPARM1 NO 02300001 CLC 0(8,R4),=X'0000000000000000' OVER RIDE PRESENT 02320001 BE INPARM2 NO 02340001 L R6,INSYSIN 02360001 MVC 40(8,R6),0(R4) MOVE DD OVERRIDE 02380001 INPARM2 LA R4,8(R4) POINT TO SYSPRINT OVERRIDE 02400001 CR R4,R5 SYSPRINT WITHIN LIST 02420001 BH INPARM1 NO 02440001 CLC 0(8,R4),=X'0000000000000000' 02460001 BE INPARM3 SYSPRINT OVERRIDE PRESENT 02480001 * NO 02500001 L R6,INPRT 02520001 MVC 40(8,R6),0(R4) MOVE DD OVERRIDE 02540001 INPARM3 LA R4,16(R4) POINT TO SYSUT1 OVERRIDE 02560001 CR R4,R5 WITHIN LIST 02580001 BH INPARM1 NO 02600001 CLC 0(8,R4),=X'0000000000000000' 02620001 BE INPARM4 OVERRIDE PRESENT 02640001 L R6,INUT1 02660001 MVC 40(8,R6),0(R4) MOVE DD OVERRIDE 02680001 INPARM4 LA R4,8(R4) POINT TO SYSUT2 OVERRIDE 02700001 CR R4,R5 WITHIN LIST 02720001 BH INPARM1 NO 02740001 CLC 0(8,R4),=X'0000000000000000' 02760001 BE INPARM1 OVERRIDE PRESENT 02780001 L R6,INUT2OT 02800001 MVC 40(8,R6),0(R4) MOVE DD OVERRIDE 02820001 INPARM1 TM 0(R3),X'80' END OF LIST 02840001 BO INPARM YES 02860001 LA R3,4(R3) POINT TO PAGE COUNT OVERRIDE 02880001 L R4,0(R3) 02900001 LA R4,0(R4) GET PAGE COUNT 02920001 LTR R4,R4 PAGE PRESENT 02940001 BZ INPARM NO 02960001 PACK IEBED00(8),2(4,R4) 02980001 CVB R6,IEBED00 CONVERT TO BINARY THE PAGE COUNT 03000001 STH R6,HPAGE 03020001 OI IEBED13,PAGEOV INDICATE THAT MUST RETURN THE PAGE 03040001 INPARM EQU * 03060001 MVI INEXT1,X'85' SET UP CODE FOR EXLST 03080001 MVI INEXT12,X'85' 03100001 MVI OUTEXIT,X'85' BS0H 03120001 MVI INEXT13,X'85' * 03140001 LA R2,IEBED99 ESTABLISH POINTER TO 03160001 ST R2,IEBED61 TO PERMANENT WORK AREA 03180001 L R2,INUT1 SET UP DCB ADDRS FOR DATA SETS- 03200001 ST R2,IEBED21 * SYSUT1 03220001 L R2,INUT2OT * 03240001 ST R2,IEBED22 * SYSUT2 03260001 L R2,INPRT * 03280001 ST R2,IEBED23 * SYSPRINT 03300001 L R2,INSYSIN * 03320001 ST R2,IEBED20 * SYSIN 03340001 L R2,INPRT GET DCB FOR SYSPRINT 03360001 MVI DFLG,X'00' INITIALIZE ERROR FLAGS BS0H 03380001 MVI DFLAG,X'00' BS0H 03400001 OPEN ((R2),(OUTPUT)) OPEN SYSPRINT DCB 03420001 L R2,IEBED23 GET ADDR OF SYSPRINT DCB 03440001 USING IHADCB,R2 * TO REFERENCE DCB 03460001 TM DCBOFLGS,X'10' BRANCH IF DATA SET OPEN 03480001 BO FLAGTEST TEST FOR BLKSIZE ERROR BS0H 03500001 OI IEBED13,HIGHCODE SET RETURNCODE = 8 @YA02593 03510002 B PORT 03520001 FLAGTEST TM DFLG,X'10' TEST FOR BLOCKSIZE ERROR BS0H 03540001 BC 8,INPRTOP NO BLKSIZE ERROR - PROCESS BS0H 03560001 CLOSE ((R2)) IF THERE IS ONE PREPARE TO BS0H 03580001 OI IEBED13,HIGHCODE SET RETURNCODE = 8 @YA02593 03590002 B PORT EXIT BS0H 03600001 INNXTOP L R2,INUT1 GET ADDR OF SYSUT1 DCB 03620001 OPEN ((R2)) OPEN SYSUT1 DCB 03640001 TM DFLAG,X'08' WAS THERE A BLOCKSIZE ERROR 03660001 BZ INOPEN NO, OPEN REST OF DCB'S 03680001 LA R2,32 SET MESSAGE CODE 03700001 BAL RLINK,PRINT PRINT ERROR MESSAGE 03720001 OI IEBED11,X'08' SET SYSUT2 NOT OPEN FLAG 03740001 OI IEBED11,X'10' SET SYSIN NOT OPEN FLAG 03760001 OI IEBED11,NOOPEN SET NOT OPEN FLAGS FOR POST 03780001 OI IEBED13,X'04' SET HIGH SEVERITY CODE 03800001 B POST1 POST AND RETURN 03820001 INOPEN L R2,INSYSIN GET ADDRESS OF SYSIN DCB 03840001 L R3,INUT2OT GET ADDR OF SYSUT2 DCB 03860001 OPEN ((R3),(OUTPUT),(R2)) OPEN REMAINING DCBS 03880001 L R2,IEBED21 GET SYSUT1 DCB ADDR 03900001 TM DCBOFLGS,X'10' BRANCH IF SYSUT1 DCB 03920001 BZ INSW1 * NOT OPEN 03940001 INNXT1 LA RCARD,1 CODE FOR SYSUT1 DATA SET 03960001 LA R8,32 MSG CODE T 03980001 BAL RLINK,INBLK * TEST FOR VALID BLKSIZE 04000001 L R2,IEBED20 GET SYSIN DCB ADDR 04020001 TM DCBOFLGS,X'10' BRANCH IF SYSIN DCB 04040001 BZ INSW2 * NOT OPEN 04060001 TM DFLAG,X'10' TEST FOR INVALID SYSIN BLKSIZE BS0H 04080001 BC 8,INNXT21 IF NO ERROR CONTINUE PROCESS BS0H 04100001 CLOSE ((R2)) BS0H 04120001 BC 15,INSW2 BAD SYSIN OPEN - SET SW BS0H 04140001 INNXT2 LA RCARD,2 BRANCH TO TEST SYSIN BLKSIZE 04160001 LA R8,148 * 04180001 BAL RLINK,INBLKIN * BS0H 04200001 INNXT21 L R2,IEBED22 GET SYSUT2 DCB ADDR 04220001 TM DCBOFLGS,X'10' BRANCH IF SYSUT2 DCB 04240001 BZ INSW3 * NOT OPEN 04260001 INNXT3 LA RCARD,0 GET COD E FOR SYSUT2 DATA SET 04280001 TM DFLAG,X'04' TEST FOR BLOCKSIZE ERROR 04300001 BZ INNXT31 IF NO ERROR, CONTINUE 04320001 LA R2,152 OTHERWISE, SET UP MESSAGE CODE 04340001 BAL RLINK,PRINT PRINT ERROR MESSAGE 04360001 OI IEBED13,X'02' SET LOW SEVERITY CODE 04380001 INNXT31 TM IEBED11,X'FF' BRANCH IF SOME DCBS NOT OPEN 04400001 BNZ INMESS * TO PRINT MESSAGE AND ABEND 04420001 TM IEBED12,X'FF' BRANCH IF QUIT SWITCH ON 04440001 BNZ INMESS3 * TO POST 04460001 OI IEBED14,CARDUT1 SET ANY CARD SYSUT1SW @YA02576 04470002 L R4,IEBED21 GET SYSUT1 ADDR 04480001 GET (4) 04500001 LR RCARD,R1 GET SYSUT1 RECORD 04520001 NI IEBED14,OFF-CARDUT1 RESET CARDUT1SW @YA02576 04530002 B MAIN GO TO DETERMINE REQUEST 04540001 * TEST FOR SYSUT1 BLKSIZE * 04560001 INEXIT1 LR R2,R1 GET DCB ADDR- SYSUT1 04580001 OC DCBBLKSI(2),DCBBLKSI BRANCH IF BLOCKSIZE IS NOT 04600001 BZ INEXIT15 BRANCH IF ZERO TO SET DEFAULT 04620001 LH RODD,DCBBLKSI GET BLOCKSIZE TO TEST FOR 04640001 SR REVEN,REVEN 04660001 LA R7,80 * MULTIPLE OF 80 04680001 DR REVEN,R7 04700001 LTR REVEN,REVEN 04720001 BZ INEX1 IF MULTIPLE OF 80, RETURN 04740001 OI DFLAG,X'08' OTHERWISE, SET ERROR FLAG 04760001 INEXIT15 MVI DCBBLKSI+1,X'50' SET BLOCKSIZE DEFAULT OF 80 04780001 INEX1 RETURN 04800001 * TEST FOR SYSUT2 BLKSIZE * 04820001 INEXIT2 LR R2,R1 GET SYSUT1DCB ADDR 04840001 LA R3,IEBED00 GET ADDR OF VOLITAL WORK AREA 04860001 OC DCBBLKSI(2),DCBBLKSI TEST BLOCKSIZE FOR ZERO 04880001 BZ INEXIT22 IF ZERO, GO TO SET DEFAULT 04900001 LH RODD,DCBBLKSI GET BLOCKSIZE TO TEST FOR MULTIPLE 04920001 SR REVEN,REVEN * OF 80 04940001 LA R7,80 04960001 DR REVEN,R7 04980001 LTR REVEN,REVEN TEST FOR REMAINDER 05000001 BZ INEX2 IF NOT REMAINDER, RETURN 05020001 OI DFLAG,X'04' OTHERWISE, SET ERROR FLAG 05040001 INEXIT22 L R2,IEBED21 GET SYSUT1 DCB ADDRESS 05060001 OC DCBBLKSI(2),DCBBLKSI BRANCH IF SYSUT1 BLKSIZE 05080001 BC 8,INEXIT25 * IS ZERO 05100001 MVC 0(2,R3),DCBBLKSI GET SYSUT1 BLOCKSIZE 05120001 LR R2,R1 GET SYSUT2 DCB ADDR 05140001 MVC DCBBLKSI(2),0(R3) PUT AS SYSUT2 BLOCKSIZE-DEFAULT 05160001 B INEX2 05180001 INEXIT25 LR R2,R1 GET SYSUT2 DCB ADDR 05200001 MVI DCBBLKSI,X'50' PUT IN A BLKSIZE FOR OPEN 05220001 INEX2 RETURN 05240001 * TEST FOR SYSIN BLKSIZE * 05260001 INEXIT3 LH R5,DCBBLKSI LOAD BLKSIZE BS0H 05280001 LTR R5,R5 IS IT ZERO BS0H 05300001 BC 8,SETSIZE YES -- MUST INSERT SIZE BS0H 05320001 SR R4,R4 TEST FOR MULTIPLE OF 80 BS0H 05340001 LA R3,80 BS0H 05360001 DR R4,R3 BS0H 05380001 LTR R4,R4 BS0H 05400001 BCR 8,R14 IF OD RETURN BS0H 05420001 MVI DFLAG,X'10' OTHERWISE, SET ERROR FLAG BS0H 05440001 MVC DCBBLKSI(2),DCBLRECL MOVE LRECL TO BLKSIZE BS0H 05460001 RETURN 05480001 SETSIZE MVI DCBBLKSI+1,X'50' INSERT BLOCKSIZE - 80 BS0H 05500001 RETURN 05520001 * TEST FOR SYSPRINT BLKSIZE BS0H 05540001 DCBEXIT LR R2,R1 ADDRESS OF SYSPRINT BS0H 05560001 LH R5,DCBBLKSI GET BLKSIZE BS0H 05580001 LTR R5,R5 IS IT ZERO BS0H 05600001 BC 8,SETBLK IF SO INSERT BS0H 05620001 SR R4,R4 CHECK FOR MULTIPLE OF 121 BS0H 05640001 LA R3,121 BS0H 05660001 DR R4,R3 BS0H 05680001 LTR R4,R4 BS0H 05700001 BCR 8,R14 IF OK RETURN BS0H 05720001 MVI DFLG,X'10' OTERWISE - SET ERROR FLAG BS0H 05740001 MVC DCBBLKSI(2),DCBLRECL MOVE LRECL TO BLKSIZE BS0H 05760001 RETURN 05780001 SETBLK MVI DCBBLKSI+1,X'79' INSERT BLKSIZE -- 121 BS0H 05800001 RETURN 05820001 INPRTOP OI IEBED13,X'40' * CARD IS PRESENT 05840001 B INNXTOP 05860001 INSW1 OI IEBED11,X'04' SET SW FOR BAD SYSUT1 OPEN 05880001 B INNXT1 RETURN 05900001 INSW2 OI IEBED11,X'10' SET SW FOR BAD SYSIN OPEN 05920001 B INNXT2 RETURN 05940001 INSW3 OI IEBED11,X'08' SET SW FOR BAD SYSUT2 OPEN 05960001 B INNXT3 05980001 INMESS LA R2,0 06000001 IC R2,IEBED11 GET CODE FOR ERROR MSG 06020001 OI IEBED11,NOOPEN SET BAD OPEN SWITCH FOR POST 06040001 INMESS2 BAL RLINK,PRINT * ROUTINE AND GO 06060001 INMESS3 OI IEBED13,X'04' SET HIGH SEVERITY CODE 06080001 BAL RLINK,POST1 GO TO CLOSE ROUTINE 06100001 INBLKIN LA R3,IEBED00 BS0H 06120001 B INBLKON TEST SYSUT2 BLKSIZE BS0H 06140001 INBLK LA R3,IEBED00 GET ADDR OF VOLITAL WORK AREA 06160001 MVC 0(2,R3),DCBBLKSI GET DATA SET BLKSIZE 06180001 LH RODD,0(R3) * 06200001 LA R7,1 CLEAR EVEN REG 06220001 MR REVEN,R7 * TO DIVIDE 06240001 LA R7,80 TEST VALIDITY OF 06260001 DR REVEN,R7 *BLKSIZE 06280001 LTR REVEN,REVEN BRANCH IF BLKSIZE IS MULIPLE 06300001 BC 8,INBLK1 * OF RECORD LENGTH 06320001 INBLKON LTR RCARD,RCARD BRANCH IF SYSUT2 DATA SET BS0H 06340001 LA R3,121 BS0H 06360001 BC 8,INBLK2 *BLKSIZE INVALID 06380001 ST RLINK,SAVER 06400001 LR R2,R8 PUT OUT ERROR MESSAGE FOR 06420001 BAL RLINK,PRINT *INVALID BLKSZIE 06440001 OI IEBED12,X'10' SET SWITCH TO REMEMBER LKSIZE 06460001 L RLINK,SAVER * 06480001 INBLK1 BR RLINK * 06500001 INBLK2 L R2,IEBED21 GET SYSUT1 DCB ADDR 06520001 MVC 0(2,R3),DCBBLKSI GET SYSUT1 BLKSIZE 06540001 L R2,IEBED22 GET SYSUT2 DCB ADDR 06560001 MVC DCBBLKSI(2),0(R3) PUT AS SYSUT2 BLKSIZE 06580001 ST RLINK,SAVER 06600001 LR R2,R8 PUT OUT ERROR MSG FOR INVALID 06620001 BAL RLINK,PRINT * INVALID BLKSIZE 06640001 L RLINK,SAVER 06660001 BR RLINK RETURN 06680001 DCBD DSORG=(QS) 06700001 IEBEDIT CSECT @YA02576 06720002 DS 0F 06740001 OUTEXIT DC A(DCBEXIT) BS0H 06760001 INEXT1 DC A(INEXIT1) 06780001 INEXT12 DC A(INEXIT2) 06800001 INEXT13 DC A(INEXIT3) 06820001 INUT1 DC A(DCBUT1) 06840001 INPRT DC A(DCBPRT) 06860001 INUT2OT DC A(DCBUT2) 06880001 INSYSIN DC A(DCBSYS) 06900001 INSYSDD DC C'SYSIN ' 06920001 INPRTDD DC C'SYSPRINT' 06940001 INUT1DD DC C'SYSUT1 ' 06960001 INUT2DD DC C'SYSUT2 ' 06980001 SAVER DS 1F 07000001 DFLG DS X BLKSIZE ERROR FLAGS BS0H 07020001 DFLAG DS X BS0H 07040001 DS 0F 07060001 INSIZE DC F'4000' 07080001 DC F'8000' 07100001 INPARA DC F'0' 07120001 DC F'0' 07140001 *********************************************************************** 07160001 * * 07180001 *TITLE MAIN ROUTINE * 07200001 * * 07220001 * * 07240001 *FUNCTION THE MAIN ROUTINE READS THE SYSUT1 DATA SET, LINKS TO * 07260001 * THE PROPER SUBROUTINES TO ANALYZE THE TYPE OF RECORD * 07280001 * READ AND THEN DETERMINES WHETHER OR NOT THIS PARTICULAR* 07300001 * RECORD BELONGS IN THE SYSUT2 DATA SET. WHEN AN EOF * 07320001 * CONDITION HAS BEEN REACHED ON THE SYSUT1 DATA SET, THE * 07340001 * STEPNAME TABLE IS SEARCHED TO SEE IF ALL STEPNAMES * 07360001 * REQUESTED WHERE FOUND. APPROPRIATE MESSAGES ARE * 07380001 * PRINTED AND THEN CONTROL IS PASSED TO THE POST * 07400001 * PROCESSOR ROUTINE. * 07420001 * * 07440001 * * 07460001 *ENTRY MAIN FROM INITIALIZATION ROUTINE * 07480001 * MATYPE FROM STARTJOB ROUTINE * 07500001 * * 07520001 * * 07540001 *INPUT OPEN SYSUT1 AND SYSUT2 DATA SET * 07560001 * APPROPRIATE SWITCHES IN IEBED DSECT * 07580001 * * 07600001 * * 07620001 *OUTPUT ADDRESS OF RECORD TO BE PRINTED AND/OR PLACED IN SYSUT2* 07640001 * DATA SET * 07660001 * * 07680001 * * 07700001 *EXTERNAL SCANAD TO ANALYZE SYSIN DATA SET * 07720001 *REFERENCES STARTJOB TO PUT OUT JOB RECORD * 07740001 * UPDATE TO CHECK FOR ..* RECORDS * 07760001 * POST PROCESSOR AT EOF ON SYSUT1 OR EXIT * 07780001 * * 07800001 * * 07820001 *ERROR IF STEPNAMES HAVE BEEN REQUESTED AND ARE NOT FOUND, THE* 07840001 *CONDITIONS APPROPRIATE MESSAGE IS PRINTED * 07860001 * * 07880001 *********************************************************************** 07900001 MAIN L RLINK,SCANAD 07920001 BALR RLINK,RLINK CARD SCAN ROUTINE 07940001 TM IEBED13,TOTCOPY IS THIS A TOTAL COPY 07960001 BO MATOT 07980001 BAL RLINK,STARTJOB START ROUTINE - PUT OUT JOB CRD 08000001 MAGET BAL RLINK,MAEODAD INITIALIZE EODAD IN DCB 08020001 * 08040001 *** GET A RECORD AND DETERMINE TYPE 08060001 * 08080001 L R3,SYSUT1 GET A RECORD 08100001 GET (R3) * 08120001 LR RCARD,R1 LOAD POINTER TO RECORD 08140001 BAL RLINK,CARDTYPE DETERMINE TYPE OF RECORD 08160001 * 08180001 *** DETERMINE WHAT TYPE COPY TO BE DONE 08200001 * 08220001 MATYPE TM IEBED11,DDDATA DD DATA SWITCH ON? 08240001 BO MASLASH * YES 08260001 TM IEBED12,JOB IS IT A JOB RECORD ? 08280001 BO MAJOB1 * YES 08300001 TM IEBED12,DATA IS IT A DD DATA RECORD ? 08320001 BO MADATA * YES 08340001 TM IEBED11,POSCOPY IS POSITION COPY SWITCH ON ? 08360001 BO MAPUT * YES 08380001 TM IEBED12,EXEC IS IT AN EXEC RECORD ? 08400001 BO MASTEP * YES 08420001 MAEXIN TM IEBED11,IECOPY IS INCLUDE EXCLUDE SWITCH ON ? 08440001 BO MAPUT * YES - PUT OUT RECORD 08460001 * 08480001 *** DETERMINE IF JCL,DDDATA OFF AND RECORD CONTINUED 08500001 * 08520001 MACNTLP TM IEBED12,JCL * NO - IS IT A JCL CARD 08540001 BO MAYESJCL * YES - IS DD DATA SW ON 08560001 B MAGET * NO - GET NEXT RECORD 08580001 MAYESJCL TM IEBED11,DDDATA IS DD DATA SWITCH ON ? 08600001 BO MAGET * YES- GET NEXT REOCRD 08620001 MACONT TM IEBED12,CONTINUE * NO - IS THIS RECORD CONT 08640001 BZ MAGET * NO - GET NXT RECORD 08660001 BAL RLINK,MAEODAD INITIALIZE EODAD IN DCB 08680001 L R3,SYSUT1 GET A RECORD 08700001 GET (R3) * 08720001 LR RCARD,R1 LOAD POINTER TO RECORD 08740001 BAL RLINK,CARDTYPE SET CONTINUE SWITCH 08760001 B MACONT SEE IF RECORD CONTINUED 08780001 MATOTCPY L R3,SYSUT1 GET 08800001 GET (R3) * AND 08820001 LR RCARD,R1 08840001 MATOT LR R2,RCARD 08860001 L R15,UPDATE PUT 08880001 BALR R14,R15 * 08900001 B MATOTCPY RETURN 08920001 MAEODAD STM R2,RLINK,IEBED50 SET UP EODAD ADDRESS 08940001 XR R2,R2 * 08960001 L R6,SYSUT1 * 08980001 IC R2,32(R6) * 09000001 XR R3,R3 * 09020001 LA R3,MAJOB * 09040001 ST R3,32(R6) * 09060001 STC R2,32(R6) * 09080001 LM R2,RLINK,IEBED50 * 09100001 BR RLINK * 09120001 * CONTINUATION CHECK AND PUT 09140001 MAPUT TM IEBED12,JCL IS THIS A JCL RECORD 09160001 BZ MAPUT2 * NO - PUT IT OUT 09180001 TM IEBED11,DDDATA * YES- IS DD DATA SWITCH ON? 09200001 BO MAPUT2 * YES - PUT OUT RECORD 09220001 MARECCTD TM IEBED12,CONTINUE * NO - IS THIS RECORD CONTD 09240001 BZ MAPUT2 * NO - 09260001 LR R2,RCARD * 09280001 L R15,UPDATE * PUT OUT RECORD 09300001 BALR R14,R15 * 09320001 L R3,SYSUT1 GET A RECORD 09340001 GET (R3) * 09360001 LR RCARD,R1 LOAD POINTER TO RECORD 09380001 BAL RLINK,CARDTYPE * SET CONTINUE SWITCH 09400001 B MARECCTD * 09420001 MAPUT2 LR R2,RCARD LOAD POINTER TO RECORD 09440001 L R15,UPDATE * PUT OUT RECORD 09460001 BALR R14,R15 * 09480001 B MAGET GET NEXT RECORD 09500001 * 09520001 *** CHECK FOR END OF DD DATA INPUT 09540001 * 09560001 MASLASH TM IEBED12,SLASHA IS THIS A SLASH ASTER RECORD 09580001 BO MASLOFF * YES -TURN OFF SWITCH 09600001 MASL1 TM IEBED11,POSCOPY IS POSITION COPY SWITCH ON 09620001 BO MAPUT * YES - PUT OUT RECORD 09640001 B MAEXIN * NO - IS INC EXC SWITCH ON 09660001 MASLOFF NI IEBED11,OFF-DDDATA TURN OFF DD DATA SWITCH 09680001 B MASL1 RETURN 09700001 * 09720001 *** JOB CARD FOUND - MUST SEE IF ALL STEPS WERE FOUND AND CLOSE 09740001 * 09760001 MAJOB OI IEBED13,EOFUT1 TURN ON EOF 09780001 MAJOB1 L R7,IEBED30 ADDRESS OF FIRST STEPNAME 09800001 TM IEBED14,CARDUT1 IS SWITCH ON @YA02576 09810002 BO NOCARD YES BRANCH @YA02576 09814002 TM IEBED11,SINGSTEP 09820001 BZ MAENDTST 09840001 TM IEBED10,STEPNAME STEPNAME SPECIFIED? 09860001 BZ MAENDTST * NO 09880001 L R6,IEBED31 ADDRESS OF LAST STEPNAME 09900001 B MACOMP FIRST TIME COMPARE 09920001 NOCARD NI IEBED14,OFF-CARDUT1 RESET SWITCH @YA02576 09930002 LA R2,80 MSG 80 @YA02576 09932002 BAL RLINK,PRINT GO TO PRINT MSG @YA02576 09934002 OI IEBED13,LOWCODE SET SEV. CODE TO 4 @YA02576 09936002 B POST1 GO TO CLOSR ROUTINE @YA02576 09938002 MAALLSTP CLR R7,R6 ARE WE AT LAST ENTRY 09940001 BE MAENDTST * YES 09960001 LA R7,8(R7) POINT TO NEXT ENTRY 09980001 MACOMP CLI 0(R7),X'00' HAS THIS STEPNAME BEEN FOUND 10000001 BE MAALLSTP * YES 10020001 B MAPRNSTP 10040001 * 10060001 *** DD DATA RECORD FOUND 10080001 * 10100001 MADATA OI IEBED11,DDDATA TURN ON DD DATA SWITCH 10120001 B MASL1 WHICH SWITCH SET-POS OR IE COPY 10140001 * 10160001 *** SEARCH TABLE FOR STEPNAME 10180001 * 10200001 MASTEP TM IEBED10,STEPNAME WAS STEPNAME SPECIFIED 10220001 BZ MANOSTEP * NO 10240001 TM IEBED11,INCLSPEC WQS INCLUSIVE SPECIFIED? 10260001 BO MA02 * YES 10280001 B MA01 * NO 10300001 * 10320001 *** SEARCH INCLUSIVE TABLE 10340001 * 10360001 MA02 TM IEBED11,INCLSTAT ARE WE IN MIDDLE OF INCLSIVE? 10380001 BO MA07 * YES 10400001 L R4,IEBED33 ADDRESS OF FIRST STEPNAME 10420001 L R5,IEBED34 ADDRESS OF LAST STEPNAME 10440001 B MA04 10460001 MA03 CLR R4,R5 END OF TABLE ? 10480001 BE MA10 * YES 10500001 LA R4,16(R4) POINT TO NEXT ENTRY 10520001 MA04 CLI 0(R4),X'00' HAS THIS BEGIN STEP BEEN FOUND 10540001 BE MA03 * YES 10560001 CLC 0(8,R4),IEBED41 IS THIS THE BEGIN STEPNAME? 10580001 BE MA06 * YES 10600001 B MA03 *NO 10620001 MA06 OI IEBED11,INCLSTAT TURN ON INCLUSIVE STATE SWITCH 10640001 MVI 0(R4),X'00' CLEAR BEGIN STEPNAME 10660001 LA R4,8(R4) END STEPNAME 10680001 ST R4,MAADDEND SAVE END STEPNAME 10700001 B MANOSTEP 10720001 MA07 L R4,MAADDEND ADDRESS OF END STEPNAME 10740001 CLC 0(8,R4),IEBED41 10760001 BNE MANOSTEP * NO 10780001 MVI 0(R4),X'00' 10800001 NI IEBED11,OFF-INCLSTAT TURN OFF INCLUSIVE STATE SWITCH 10820001 B MANOSTEP 10840001 MA11 OI IEBED13,LOWCODE 10860001 LM R2,R3,8(R4) 10880001 B MA05 10900001 MA08 OI IEBED13,LOWCODE SET COMPLETOON CODE 10920001 LM R2,R3,0(R4) PICK UP STEPNAME 10940001 MA05 STM R2,R3,MASTPNAM+16 10960001 XR R2,R2 PASS 10980001 LA R1,MASTPNAM 11000001 BAL RLINK,PRINT * TO PRINT 11020001 B MAB 11040001 MA10 TM IEBED11,SINGSTEP WERE SINGLE STEPS SPECIFIED 11060001 BO MA01 * YES 11080001 B MANOTFND * NO 11100001 MA01 L R7,IEBED30 ADDRESS OF FIRST STEPNAME 11120001 L R6,IEBED31 ADDRESS OF LAST STEPNAME 11140001 B MASEARCH FIRST TIME COMPARE 11160001 MAAGN CLR R6,R7 ARE WE AT LAST ENTRY 11180001 BE MANOTFND * YES 11200001 LA R7,8(R7) POINT TO NEXT ENTRY 11220001 MASEARCH CLI 0(R7),X'00' HAS THIS NAME BEEN REMOVED 11240001 BE MAAGN * YES 11260001 CLC 0(8,R7),IEBED41 STEPNAME HERE 11280001 BNE MAAGN * NO 11300001 * 11320001 *** STEPNAME HAS BEEN FOUND 11340001 * 11360001 MVI 0(R7),X'00' THIS STEPNAME FOUND IN TABLE 11380001 MANOSTEP TM IEBED10,POSITION POSITION COPY 11400001 BO MAPOSON * YES 11420001 TM IEBED10,INCLUDE INCLUDE COPY 11440001 BO MAIEON * YES 11460001 NI IEBED11,OFF-IECOPY EXCLUDE COPY - TURN OFF IECOPY 11480001 B MACNTLP SEE IF RECORD IS CONTINUED 11500001 MAPOSON OI IEBED11,POSCOPY TURN ON POSITION COPY SWITCH 11520001 B MAPUT GO TO PUT ROUTINE 11540001 MAIEON OI IEBED11,IECOPY TURN ON IECOPY SWITCH 11560001 B MAPUT GO TO PUT ROUTINE 11580001 * 11600001 *** STEPNAME WAS NOT FOUND 11620001 * 11640001 MAPRNSTP OI IEBED13,LOWCODE SET COMPLETION CODE 11660001 LM R2,R3,0(R7) PICK UP STEPNAME 11680001 STM R2,R3,MASTPNAM+16 COMPLETE MESSAGE 11700001 XR R2,R2 PASS CODE TO PRINT 11720001 LA R1,MASTPNAM PASS ADDRESS OF TEXT 11740001 BAL RLINK,PRINT PRINT 11760001 B MAALLSTP RETURN TO TEST FOR END 11780001 MANOTFND TM IEBED10,POSITION POSITION COPY 11800001 BO MAGET GET NEXT RECORD 11820001 TM IEBED10,INCLUDE INCLUDE COPY 11840001 BO MAIEOFF - YES 11860001 OI IEBED11,IECOPY EXCLUDE COPY - TURN ON IECOPY S 11880001 B MAPUT PUT OUT RECORD 11900001 MAIEOFF NI IEBED11,OFF-IECOPY TURN OFF IECOPY 11920001 B MACNTLP CONTINUATION LOOP 11940001 * 11960001 *** CHECK INCLUSIVE STEPNAME TABLE 11980001 * 12000001 MAENDTST TM IEBED11,INCLSPEC 12020001 BZ MAFINSH 12040001 L R4,IEBED33 12060001 L R5,IEBED34 12080001 B MAA 12100001 MAB CLR R4,R5 12120001 BE MAFINSH 12140001 LA R4,16(R4) 12160001 MAA CLI 0(R4),X'00' 12180001 BNE MA08 12200001 CLI 8(R4),X'00' 12220001 BNE MA11 12240001 B MAB 12260001 MAFINSH TM IEBED13,EOFUT1 12280001 BO POST 12300001 B MAIN * NO - SEE IF ANOTHER CTRLCARD 12320001 *********************************************************************** 12340001 * * 12360001 *TITLE POST PROCESSOR ROUTINE * 12380001 * * 12400001 * * 12420001 *FUNCTION THE POST PROCESSOR ROUTINE LINKS TO THE SCANAD ROUTINE * 12440001 * UNTIL AN EOF CONDITION ON THE SYSIN DATA SET HAS BEEN * 12460001 * REACHED. THE SEVERITY CODE IS PRINTED, DATA SETS WHICH* 12480001 * HAVE BEEN OPENED ARE CLOSED, STORAGE IS FREED AND * 12500001 * CONTROL IS PASSED TO THE PROGRAM WHICH CALLED IEBEDIT * 12520001 * * 12540001 * * 12560001 *ENTRY POST - USUAL ENTRY FOR ALL SUBROUTINES * 12580001 * POST1 - ENTRY FOR INITIALIZATION ROUTINE * 12600001 * * 12620001 * * 12640001 *INPUT IEBED13 X'20' EOF ON SYSIN * 12660001 * X'04' SEVERITY CODE OF 8 * 12680001 * X'02' SEVERITY CODE OF 4 * 12700001 * IEBED11 X'12' SYSIN NOT OPEN * 12720001 * X'10' SYSUT2 NOT OPEN * 12740001 * X'06' SYSUT1 NOT OPEN * 12760001 * SEVERITY CODE SWITCH SET IN DSECT * 12780001 * * 12800001 * * 12820001 *OUTPUT SEVERITY CODE MESSAGE, FREED STORAGE AND CLOSED DATA * 12840001 * SETS * 12860001 * * 12880001 * * 12900001 *EXTERNAL SCANAD ROUTINE FOR EOF CONDITION ON SYSIN * 12920001 *REFERENCES PRINT ROUTINE TO PRINT SEVERITY CODE MESSAGE * 12940001 * EXIT TO PROGRAM WHICH CALLED IEBEDIT * 12960001 * * 12980001 * * 13000001 *ERROR NONE * 13020001 *CONDITIONS * 13040001 * * 13060001 *********************************************************************** 13080001 TITLE ' POST PROCESSOR IEBEDIT' 13100001 * 13120001 *** POST PROCESSOR ROUTINE 13140001 * 13160001 POST TM IEBED13,EOFIN 13180001 BO POST1 13200001 L RLINK,SCANAD 13220001 BALR RLINK,RLINK 13240001 POST1 TM IEBED13,HIGHCODE 8 SEVERITY CODE ? 13260001 BO PSHIGH YES 13280001 TM IEBED13,LOWCODE 4 SEVERITY CODE ? 13300001 BO PSLOW YES 13320001 L R2,=F'132' O SEVERITY CODE FOUND 13340001 PSCODE TM IEBED13,PRINTSW 13360001 BZ PSER3 13380001 BAL RLINK,PRINT 13400001 LM R2,RODD,SYSIN 13420001 CLOSE ((R2),,(R3),,(REVEN),,(RODD)) 13440001 L R1,SYSPRINT 13460001 FREEPOOL (1) 13480001 PSFREE TM IEBED11,X'10'+NOOPEN TO FREE OR NOT TO 13500001 BO *+12 S 13520001 L R1,SYSIN Y IN 13540001 BAL R7,PSFREE1 S 13560001 TM IEBED11,X'08'+NOOPEN 13580001 BO FREEUT1 S @ZA01659 13600002 L R1,SYSUT2 Y UT2 13620001 TM 23(R1),X'01' TEST IF FREEPOOL NEEDED @ZA01659 13630002 BO FREEUT1 NO..GO ON @ZA01659 13632002 BAL R7,PSFREE1 S 13640001 FREEUT1 TM IEBED11,X'04'+NOOPEN @ZA01659 13660002 BO *+12 S 13680001 L R1,SYSUT1 Y UT1 13700001 BAL R7,PSFREE1 S 13720001 PORT L R0,INPARA+4 FREEMAIN 13740001 TM IEBED13,PAGEOV PASSED A PAGE COUNT 13760001 BZ NOPAGE NO 13780001 L R6,4(RSAVE) GET SAVE AREA POINTER 13800001 L R6,24(R6) 13820001 L R6,8(R6) POINT TO PAGE COUNT 13840001 LH R5,HPAGE 13860001 CVD R5,IEBED00 EBCDIC 13880001 UNPK 2(4,R6),IEBED00+4(4) RETURN NEW PAGE 13900001 NOPAGE EQU * 13920001 L R1,INPARA * 13940001 LA R6,8 SET UP CONDITION 13960001 TM IEBED13,HIGHCODE CODE 13980001 BO RETCC1 FOR RETURN 14000001 LA R6,4 TO CALLER 14020001 TM IEBED13,LOWCODE 14040001 BO RETCC1 14060001 SR R6,R6 14080001 RETCC1 EQU * 14100001 FREEMAIN R,LV=(0),A=(1) * 14120001 LR R15,R6 PLACE RETURN CODE IN REG 15 14140001 RETCC2 EQU * LABEL FOR RETURN WHEN CORE NO GOTTEN 14160001 L 13,4(13) RETURN TO CALLING PROGRAM 14180001 RETURN (14,12),T,RC=(15) 14200001 PSER3 LM R2,REVEN,SYSIN 14220001 CLOSE ((R2),,(R3),,(REVEN)) 14240001 B PSFREE 14260001 PSFREE1 FREEPOOL (1) 14280001 BR R7 14300001 PSHIGH L R2,=F'124' SET COMPLETION CODE OF 8 14320001 B PSCODE * 14340001 PSLOW L R2,=F'128' SET COMPLETION CODE OF 4 14360001 B PSCODE * 14380001 *********************************************************************** 14400001 * * 14420001 *TITLE SYNAD ROUTINE * 14440001 * * 14460001 * * 14480001 *FUNCTION THE SYNAD ROUTINE FIRST ISSUES THE SYNADAF MACRO TO * 14500001 * DETERMINE THE TYPE OF I/O ERROR WHICH OCCURRED. A * 14520001 * MESSAGE CONTAINING THIS INFORMATION IS PRINTED, THE * 14540001 * SYNAD BUFFER IS FREED, THE COMPLETION CODE IS SET AND * 14560001 * CONTROL IS PASSED TO THE POST PROCESSOR ROUTINE. * 14580001 * * 14600001 * * 14620001 *ENTRY PSER1 I/O ERROR ON SYSUT1 SYNAD ENTRY * 14640001 * PSER2 I/O ERROR ON SYSUT2 SYNAD ENTRY * 14660001 * PSER4 I/O ERROR ON SYSIN SYNAD ENTRY * 14680001 * * 14700001 * * 14720001 *INPUT REG1 ADDRESS OF I/O ERROR ANALYSIS * 14740001 * * 14760001 * * 14780001 *OUTPUT CONDITION CODE IS SET IN DSECT,IEBED * 14800001 * * 14820001 * * 14840001 *EXTERNAL PRINT ROUTINE TO PRINT I/O ERROR MESSAGE * 14860001 *REFERENCES POST PROCESSOR AT EXIT * 14880001 * * 14900001 * * 14920001 *ERROR NONE * 14940001 *CONDITIONS * 14960001 * * 14980001 *********************************************************************** 15000001 PSER1 SYNADAF ACSMETH=QSAM I/O ERROR ON SYSUT1 15020001 L R2,PTMSG+136 15040001 MVC 8(18,R1),0(R2) INSERT MESSAGE 15060001 LA R1,8(R1) INCREMENT MESSAGE 15080001 LNR R2,RBASE PRINT MESSAGE 15100001 BAL RLINK,PRINT * 15120001 SYNADRLS FREE SYNAD BUFFER AND SAVE AREA 15140001 OI IEBED13,HIGHCODE SET COMPLETION CODE 15160001 B POST1 15180001 PSER2 B PSER1 15200001 PSER4 B PSER1 15220001 *********************************************************************** 15240001 * * 15260001 *TITLE STARTJOB SUBROUTINE * 15280001 * * 15300001 * THIS ROUTINE DETERMINES IF THE REQUIRED JOB CARD * 15320001 * ( AND JOBLIB CARD IF PRESENT ) HAS BEEN FOUND IN THE * 15340001 * INPUT DATA SET. WHEN FOUND, IT IS COPIED TO THE OUTPUT * 15360001 * DATA SET. * 15380001 * * 15400001 * * 15420001 *ENTRY STARTJOB * 15440001 * * 15460001 * * 15480001 *INPUT INPUT IS IN THE FORM OF AN INTERNAL DSECT. IF A * 15500001 * PARTICULAR JOB NAME IS SPECIFIED, THE NAME FOR * 15520001 * COMPARISON IS LOCATED WITH IEIED32 AND THE JOB NAME * 15540001 * OF THE INPUT RECORD IS FOUND AT IEIED41. * 15560001 * * 15580001 * * 15600001 *OUTPUT WHEN THE CORRECT JOB CARD IS FOUND, IT IS COPIED TO * 15620001 * THE OUTPUT DATA SET FROM THE INPUT DATA SET LOCATED * 15640001 * BY RCARD * 15660001 * * 15680001 * * 15700001 *EXTERNAL THIS ROUTINE CALLS CARDTYPE, WHICH IS A SUBROUTINE * 15720001 *REFERENCES THAT DEFINES THE INPUT RECORD AS TO TYPE (JOB,STEP,ETC)* 15740001 * * 15760001 * * 15780001 *ERROR ROUTINE IF EODAD IS REACHED IN THIS ROUTINE, IT CONSTITUTES * 15800001 * AN ERROR AND A CONDITION CODE OF X'40' IS RETURNED TO * 15820001 * THE POST ROUTINE * 15840001 * * 15860001 *********************************************************************** 15880001 TITLE ' STARTJOB SUBROUTINE IEBEDIT' 15900001 STARTJOB STM R2,RLINK,IEBED50 SAVE REGISTERS 15920001 L R6,SYSUT1 15940001 MVC EODSAV(3),33(R6) SAVE SYSUT1 EODAD 15960001 LA R3,STEODAD 15980001 ST R3,ADDR 16000001 MVC 33(3,R6),ADDR+1 16020001 STTOP BAL RLINK,CARDTYPE SET APPROPRIATE TYPE SWITCHES 16040001 TM WROTE,X'FF' WRITTEN YET 16060001 BC 8,STJOB NO - OMIT JOBLIB TEST 16080001 TM IEBED14,JOBLIB1 ANY JOBLIB CARD FOUND YA01706 16100002 BNO STJOB IF NO BRANCH OUT YA01706 16120002 TM IEBED12,JOBLIB IS THIS THE JOBLIB CARD YA01706 16140002 BO STWRITE YES WRITE THE JOBLIB CD YA01706 16160002 TM IEBED14,CONCAT IS IT A JOBLIB CONCAT YA01706 16164002 BO STWRITE YES WRITE THE CONCAT CD YA01706 16168002 NI IEBED14,OFF-(JOBLIB1+CONCAT) CLEAR SWITCHES YA01706 16172002 B STJOB BRANCH OUT YA01706 16176002 STWRITE MVI WROTE,X'FF' SET WRITTEN SWITCH 16180001 LR R2,RCARD * 16200001 L R15,UPDATE * PUT OUT RECORD 16220001 BALR R14,R15 * 16240001 TM IEBED12,CONTINUE CONTINUED 16260001 BC 8,STCLR CLEAR CONTINUE SWITCH 16280001 MVI CON,X'FF' SET CONTINUE SWITCH 16300001 B STGET GET NEXT RECORD 16320001 STCLR NI CON,OFF-OFF CLEAR CONTINUE SWITCH 16340001 STGET L R4,SYSUT1 16360001 GET (R4) 16380001 LR RCARD,R1 SET UP PARAMETER FOR CARDTYPE 16400001 TM IEBED12,DATA DD DATA STREAM A29714 16420001 BC 8,STTOP NO-RETURN TO SCAN A29714 16440001 CLC 0(3,RCARD),=C'/* ' /*-END OF DD DATA? YL026VC 16460002 BNE STGET NO-GET NEXT RECORD A29714 16480001 XI IEBED12,X'08' TURN OFF DD DATA SWITCH A29714 16500001 B STGET A29714 16520001 B STTOP RETURN TO SCAN 16540001 STJOB TM IEBED12,JOB JOB CARD 16560001 BC 8,STDDDATA NO-TEXT IF DD DATA STREAMA29714 16580001 TM IEBED10,START START AT SPECIAL JOB 16600001 BC 8,STWRITE NO-GO WRITE 16620001 L R2,IEBED32 GET POINTER TO JOB NAME 16640001 CLC IEBED41(8),0(R2) RIGHT JOB NAME 16660001 BC 8,STWRITE YES-GO WRITE 16680001 B STGET NO-GET NEXT RECORD 16700001 STDDDATA TM IEBED12,DATA DD DATA RECORD? A29714 16720001 BC 8,STCONT NO-CHECK IF CONTINUATION A29714 16740001 B STGET A29714 16760001 STCONT TM CON,X'FF' CONTINUED FROM LAST CARD 16780001 BC 1,STWRITE YES-GO WRITE 16800001 TM WROTE,X'FF' WRITTEN YET 16820001 BC 8,STGET NO-GO GET ANOTHER RECORD 16840001 TM IEBED14,COMMENT COMMENT CARD? @ZA04410 16850003 BC 1,STWRITE YES-GO WRITE @ZA04410 16852003 TM IEBED14,SLASNON /*NONE BLANK @ZA07327 16854099 BC 1,STWRITE YES-GO WRITE @ZA07327 16856099 NI WROTE,OFF-OFF CLEAR WRITTEN SWITCH 16860001 STRET L R6,SYSUT1 16880001 MVC 33(3,R6),EODSAV RESTORE SYSUT1 EODAD 16900001 LM R2,RLINK,IEBED50 16920001 L RCARD,IEBED51+28 POINT TO NEW RECORD 16940001 B MATYPE 16960001 STEODAD L R2,=F'116' SET MESSAGE CODE 16980001 BAL RLINK,PRINT WRITE MESSAGE 17000001 OI IEBED13,EOFUT1 17020001 OI IEBED13,LOWCODE SET COMPLETION CODE 17040001 B POST EXIT 17060001 ADDR DS F EODAD ADDRESS 17080001 EODSAV DC C' ' SAVE AREA FOR EODAD 17100001 WROTE DC X'00' 17120001 CON DC X'00' 17140001 *********************************************************************** 17160001 * * 17180001 *TITLE CARDTYPE SUBROUTINE * 17200001 * * 17220001 * THIS SUBROUTINE SCANS A RECORD AND IDENTIFIES IT AS * 17240001 * TO TYPE. THE DIFFERENT TYPES ARE - JCL,/*,EXEC,DD, * 17260001 * DD DATA,JOBLIB. IF A JOB CARD OR EXEC CARD IS FOUND, * 17280001 * THE JOB NAME IS SAVED. IF THE CARD IS CONTINUED ON * 17300001 * ANOTHER CARD, THIS IS SO INDICATED. * 17320001 * * 17340001 * * 17360001 *ENTRY CARDTYPE * 17380001 * * 17400001 * * 17420001 *INPUT INPUT IS DEFINED AS A SINGLE RECORD FROM THE INPUT DATA* 17440001 * SET LOCATED BY RCARD * 17460001 * * 17480001 * * 17500001 *OUTPUT OUTPUT IS IN THE FORM OF SWITCHES IN A DSECT NAMED * 17520001 * IEIED12 WHICH CONSISTS OF BINARY SWITCHES INDICATING * 17540001 * TYPES. JOB NAMES OR STEP NAMES ARE STORED IN IEIED41. * 17560001 * * 17580001 *********************************************************************** 17600001 TITLE ' CARD TYPE SUBROUTINE IEBEDIT' 17620001 CARDTYPE STM R2,RLINK,IEBED51 SAVE REGISTERS 17640001 XR R2,R2 CLEAR REG 2 17660001 XR R3,R3 CLEAR REG 3 17680001 NI IEBED12,OFF-OFF CLEAR CARD TYPE SWITCHES 17700001 NI IEBED14,OFF-(CONCAT+COMMENT) CLEAR SWITCHES @ZA04410 17710003 NI IEBED14,OFF-SLASNON CLEAR SWITCH @ZA07327 17712099 CLC 0(2,RCARD),=C'//' JCL CARD 17720001 BC 7,TYSLASHA NO-GO TO /* TEST 17740001 CLC 2(1,RCARD),=C'*' COMMENT CARD A38638 17760001 BE TYCOMM YES-GO TO SET COMMENT SW @ZA04410 17780003 OI IEBED12,JCL SET JCL SWITCH 17800001 TM IEBED11,DDDATA DD DATA INPUT STREAM? A29714 17820001 BO TYRET YES-RETURN A29714 17840001 CLC 2(7,RCARD),=C'JOBLIB ' JOBLIB CARD 17860001 BC 7,TYJOBCAT NO-GO TO CONT EXPECTED @ZA07326 17880099 STCAT1 OI IEBED12,JOBLIB SET JOBLIB SWITCH @ZA07326 17900099 OI IEBED14,JOBLIB1 SET SECOND JOBLIB SW YA01706 17910002 B TYSPACE 17920001 TYCOMM OI IEBED14,COMMENT SET COMMENT SWITCH @ZA04410 17930003 B TYRET RETURN @ZA04410 17932003 TYJOBCAT CLC 2(7,RCARD),=C'JOBCAT ' JOBCAT CARD ? @ZA07326 17934099 BC 7,TYSPACE NO THEN BRANCH @ZA07353 17936099 B STCAT1 BRANCH @ZA07326 17938099 TYCONT CLC 71(1,RCARD),=C' ' COL.72 BLANK 18000001 BE TYCONTIN YES-GOTO COMMA-BLANK TEST A29712 18020001 TYCONTSW OI IEBED12,CONTINUE SET CONTINUATION SWITCH A29712 18040001 B TYRET A29712 18060001 TYCONTIN XR R3,R3 CLEAR REG 3 A29712 18080001 LA R3,71(RCARD) MAX SCAN COL. A29712 18100001 MVI APOSTONE,X'00' INIT APOST.-PAIRS SWITCH A29712 18120001 TYLOOP4 CLC 0(1,R2),=C' ' FIND FIRST NON-BLANK A29712 18140001 BNE TYAPOST A29712 18160001 LA R2,1(R2) A29712 18180001 CR R2,R3 SCAN REACHED COL.72? A29712 18200001 BL TYLOOP4 A29712 18220001 B TYRET COL.72 & NO CONT. FOUND A29712 18240001 TYAPOST CLC 0(1,R2),APOST APOSTROPHE? A29712 18260001 BE TYSWITCH YES A29712 18280001 CLC 0(2,R2),=C', ' COMMA-BLANK DELIMITER? A29712 18300001 BE TYSWTEST YES A29712 18320001 CLC 0(1,R2),=C' ' BLANK? A29712 18340001 BNE TYPLUS1 NO A29712 18360001 CLI APOSTONE,X'00' APOST-PAIRS SWITCH OFF? A29712 18380001 BE TYRET YES, NO CONT. FOUND A29712 18400001 B TYPLUS1 NO, REPEAT SCAN A29712 18420001 TYSWTEST CLI APOSTONE,X'00' APOST-PAIRS SWITCH OFF? A29712 18440001 BE TYCONTSW YES, CONT. FOUND A29712 18460001 B TYPLUS1 NO, REPEAT SCAN A29712 18480001 TYSWITCH CLI APOSTONE,X'FF' APOST-PAIRS SWITCH ON? A29712 18500001 BE TYSETOFF YES A29712 18520001 MVI APOSTONE,X'FF' SET SW-1ST APOST OF PAIR A29712 18540001 TYPLUS1 LA R2,1(R2) A29712 18560001 CR R2,R3 SCAN REACHED COL.72? A29712 18580001 BL TYAPOST NO A29712 18600001 B TYRET YES A29712 18620001 TYSETOFF MVI APOSTONE,X'00' SET SW-PAIR OF APOST FOUNDA29712 18640001 TYPLUS2 LA R2,1(R2) A29712 18660001 CR R2,R3 SCAN REACHED COL.72? A29712 18680001 BE TYRET A29712 18700001 CLC 0(1,R2),=C' ' BLANK? A29712 18720001 BE TYRET YES, NO CONT. RECORD A29712 18740001 CLC 0(2,R2),=C', ' COMMA-BLANK DELIMITER? A29712 18760001 BE TYCONTSW YES, CONT. FOUND A29712 18780001 CLC 0(1,R2),APOST APOSTROPHE? A29712 18800001 BE TYSWITCH YES A29712 18820001 B TYPLUS2 NO, CONTINUE SCAN A29712 18840001 TYSLASHA CLC 0(3,RCARD),=C'/* ' /* CARD YL026VC 18860002 BC 7,TYSLNON NO-GO TO RETURN @ZA07327 18880099 SETSLASH OI IEBED12,SLASHA SET /* SWITCH @ZA11930 18900099 B TYCONT CHECK FOR CONTINUATION 18920001 TYSLNON CLC 0(2,RCARD),=C'/*' /*NONE BLANK? @ZA07327 18922099 BC 7,TYRET NO GO TO RETURN @ZA07327 18930099 CLC 2(3,RCARD),=C'EOF' /*EOF CARD? @ZA11930 18930499 BE SETSLASH YES,SET SLASHA SW @ZA11930 18930899 OI IEBED14,SLASNON SET /*NONE BLANK SW @ZA07327 18932099 B TYCONT CHECK FOR CONTINUATION @ZA07327 18934099 TYSPACE LR R2,RCARD 18940001 TYLOOP1 LA R2,1(R2) FIND FIRST BLANK 18960001 CLC 0(1,R2),=C' ' BLANK CHARACTER 18980001 BC 7,TYLOOP1 NO-GET NEXT CHARACTER 19000001 LR R3,R2 FIND NO. OF CHARS. TO BLANK 19020001 SR R3,RCARD 19040001 SH R3,THREE ACCOUNT FOR // AND BLANK 19060001 TYLOOP LA R2,1(R2) FIND NEXT NON-BLANK 19080001 CLC 0(1,R2),=C' ' BLANK CHARACTER 19100001 BC 8,TYLOOP YES-GET NEXT CHARACTER 19120001 TM CON,X'FF' CONTINUATION EXPECTED? @ZA07353 19130099 BO TYCONT YES @ZA07353 19132099 CLC 0(4,R2),=C'JOB ' JOB CARD 19140001 BC 7,TYEXEC NO-GO TO EXEC CHECK 19160001 OI IEBED12,JOB SET JOB SWITCH 19180001 LA R2,3(R2) SETUP FOR CONTINUATION CK.A29712 19200001 NI IEBED12,OFF-JOBLIB CLEAR JOBLIB SWITCH 19220001 MVC IEBED41(8),=C' ' CLEAR NAME FIELD 19240001 LTR R3,R3 TEST FOR BLANK JOB NAME M4212 19260001 BC 4,TYCONT BRANCH IF BLANK M4212 19280001 STMOVEJ EX (R3),STEX1 MOVE JOB NAME 19300001 B TYCONT CHECK FOR CONTINUATION 19320001 TYEXEC CLC 0(5,R2),=C'EXEC ' EXECUTE CARD 19340001 BC 7,TYDD NO-CHECK FOR DD CARD 19360001 OI IEBED12,EXEC SET EXEC SWITCH 19380001 LA R2,4(R2) SETUP FOR CONTINUATION CK.A29712 19400001 NI IEBED12,OFF-JOBLIB CLEAR JOBLIB SWITCH 19420001 MVC IEBED41(8),=C' ' CLEAR NAME FIELD 19440001 LTR R3,R3 TEST FOR BLANK STEP NAME 19460001 BC 4,TYCONT BRANCH IF BLANK 19480001 STMOVES EX (R3),STEX1 MOVE STEP NAME 19500001 B TYCONT CHECK FOR CONTINUATION 19520001 TYDD CLC 0(3,R2),=C'DD ' DD CARD 19540001 BC 7,TYCONT NO-CHECK FOR CONTINUATION 19560001 OI IEBED12,DD SET DD SWITCH 19580001 LTR R3,R3 TEST IF BLANK DD-NAME YA01706 19583002 BC 11,TYLOOP2 NO,BRANCH OUT YA01706 19586002 TM IEBED14,JOBLIB1 WAS PREV. CARD A JOBLIB YA01706 19589002 BNO TYLOOP2 NO, BRANCH OUT YA01706 19592002 OI IEBED14,CONCAT SET ON JOBLIB CONCAT SW YA01706 19595002 TYLOOP2 LA R2,1(R2) FIND NEXT BLANK CHARACTER 19600001 CLC 0(1,R2),=C' ' BLANK 19620001 BC 7,TYLOOP2 NO-GET NEXT CHARACTER 19640001 TYLOOP3 LA R2,1(R2) FIND NEXT NON-BLANK 19660001 CLC 0(1,R2),=C' ' BLANK 19680001 BC 8,TYLOOP3 YES-GET NEXT CHARACTER 19700001 CLC 0(5,R2),=C'DATA ' DD DATA 19720001 BC 7,TYCONT NO-CHECK FOR CONTINUATION 19740001 OI IEBED12,DATA SET DD DATA SWITCH 19760001 B TYCONT GO TO CONTINUATION CHECK 19780001 TYRET LM R2,RLINK,IEBED51 RESTORE REGISTERS 19800001 BR RLINK 19820001 STEX1 MVC IEBED41(1),2(RCARD) 19840001 APOSTONE DS X A29712 19860001 APOST DC X'7D' A29712 19880001 THREE DC H'3' 19900001 *********************************************************************** 19920001 *TITLE 'PUT-PRINT SUBROUTINE' * 19940001 * * 19960001 *FUNCTION THIS SUBROUTINE PERFORMS ALL OUTPUT OPERATIONS FOR THE * 19980001 * ENTIRE IEBEDIT PROGRAM. MESSAGES, DELETED RECORDS, AND* 20000001 * THE NEWLY CREATED JOB STREAM MAY BE WRITTEN ON THE * 20020001 * SYSPRINT DATA SET. THE OUTPUT DATA SET (SYSUT2) CON- * 20040001 * TAINS THE NEW JOB STREAM. * 20060001 * * 20080001 *ENTRY POINTS PUT - TO WRITE RECORDS ON THE SYSUT2 DATA SET * 20100001 * BAL 14,PUT * 20120001 * PRINT - TO WRITE MESSAGES AND RECORDS ON THE SYSPRINT * 20140001 * DATA SET BAL 14,PRINT * 20160001 * * 20180001 *INPUT TO 'PUT' R2 - ADDR OF RECORD TO BE WRITTEN * 20200001 * TO 'PRINT' - ONE OF THE FOLLOWING * 20220001 * R2 - ADDR OF RECORD TO BE WRITTEN * 20240001 * IEBED46 - UT2 SWITCH ON * 20260001 * -OR- * 20280001 * R2 - 0 OR NEGATIVE * 20300001 * R1 - ADDR OF MESSAGE OR RECORD * 20320001 * -OR- * 20340001 * R2 - INDEX NUMBER FOR MESSAGE ADDR TABLE* 20360001 * * 20380001 *OUTPUT NO PARAMETERS PASSED * 20400001 * * 20420001 *EXTERNAL REFERENCES NONE * 20440001 * * 20460001 *EXITS RETURN TO CALLING ROUTINE - BR 14 * 20480001 * * 20500001 *NOTES ALL RECORDS WRITTEN ON THE SYSUT2 DATA SET ARE ALSO * 20520001 * PUT ON THE SYSPRINT DATA SET UNLESS (NOPRINT' IS SPECI-* 20540001 * FIED ON THE EDIT CONTROL CARD. * 20560001 *********************************************************************** 20580001 TITLE ' PUT - PRINT SUBROUTINE IEBEDIT' 20600001 PUT STM R2,RLINK,IEBED51 SAVE REGISTERS 20620001 L DCBAD,SYSUT2 GET SYSUT2 DCB ADDRESS 20640001 PUT (DCBAD) WRITE RECORD ON SYSUT2 20660001 MVC 0(80,1),0(R2) MOVE SYSUT2 RECORD IN AREA 20680001 TM IEBED10,NOPRINT IF NOPRINT SPECIFIED *** 20700001 BO PTRETURN * RETURN 20720001 OI IEBED46,UT2 TURN UT2 ENTRY BIT ON 20740001 B PTCONT GO TO PRINT ROUTINE 20760001 PRINT STM R2,RLINK,IEBED51 SAVE REGISTERS 20780001 PTCONT TM IEBED13,PRINTSW SYSPRINT OPENED CORRECTLY 20800001 BZ PTRETURN * NO - NO SYSPRINT 20820001 L DCBAD,SYSPRINT GET SYSPRINT DCB ADDRESS 20840001 TM IEBED46,FTS IS FIRST TIME SWITCH ON 20860001 BO PTRTN NOT FIRST TIME 20880001 BAL RLINK,PTPINIT GO TO PRINT FIRST HEADING 20900001 PTRTN LTR R2,R2 IS MSG IN ANOTHER ROUTINE 20920001 BC 8,PTOWNMSG *YES- IT'S 80 BYTES 20940001 BC 4,PT120 * IT'S 120 BYTES 20960001 TM IEBED46,UT2 IS UT2 RECORD ALSO FOR SYSPRINT 20980001 BO PTPRNT * YES 21000001 PUT (DCBAD) PUT OUT MEESAGE 21020001 L R2,PTMSG(R2) GET MESSAGE ADDRESS 21040001 MVC 0(1,1),ASACODE ASA CODE ON BUFFER 21060001 MVC 1(47,1),0(2) MOVE MESSAGE INTO BUFFER 21080001 MVI 48(1),X'40' BLANK REST OF BUFFER 21100001 MVC 49(72,1),48(1) * 21120001 B PTSPACE 21140001 PTOWNMSG LR R2,R1 SAVE MESSAGE ADDRESS 21160001 PUT (DCBAD) 21180001 MVC 0(1,1),ASACODE ASACODE FO RSPACING 21200001 TM IEBED14,DELETE IS RECORD TO BE DELETED 21220001 BO PTDLET * YES - APPEND RECORD 21240001 MVC 1(80,1),0(2) MOVE MESSAGE INTO BUFFER 21260001 MVI 81(1),X'40' BLANK REST OF BUFFER 21280001 MVC 82(39,1),81(1) * 21300001 B PTSPACE 21320001 PTDLET XI IEBED14,DELETE TURN DELETE SWITCH OFF 21340001 MVI 1(1),X'40' INDENT 21360001 MVC 2(15,1),1(1) * 21380001 MVC 17(80,1),0(R2) PUT DATA IN BUFFER 21400001 MVI 97(1),X'40' BLANK OUT REST OF BUFFER 21420001 MVC 98(8,1),97(1) BLANK 21440001 MVC 106(15,1),DLETMSG APPEND RECORD WITH 'DELETE' 21460001 B PTSPACE 21480001 PT120 LR R2,R1 PUT MSG ADDRESS IN SAVE REG 21500001 PUT (DCBAD) 'PUT' MESSAGE 21520001 MVC 0(1,1),ASACODE CARRIAGE CONTROL(ASA) CODE 21540001 MVC 1(120,1),0(2) MOVE 120 BYTE MSG INTO BUFFER 21560001 B PTSPACE 21580001 PTPRNT XI IEBED46,UT2 TURN UT2 SWITCH OFF 21600001 PT1 PUT (DCBAD) PUT OUT RECORD 21620001 MVC 0(1,1),ASACODE MOVE ASA CODE INTO BUFFER 21640001 MVI 1(1),X'40' INDENT SYSUT2 OUTPUT 21660001 MVC 2(15,1),1(1) * 21680001 MVC 17(80,1),0(R2) PUT DATA IN BUFFER 21700001 MVI 97(1),X'40' BLANK OUT REST OF BUFFER 21720001 TM IEBED14,INSERT IS RECORD TO BE INSERTED 21740001 BO PTINSRT * YES - APPEND RECORD 21760001 MVC 98(23,1),97(1) * 21780001 B PTSPACE 21800001 PTINSRT XI IEBED14,INSERT TURN INSERT SWITCH OFF 21820001 MVC 98(8,1),97(1) BLANK 21840001 MVC 106(15,1),INSRTMSG APPEND RECORD TO INSERT 21860001 PTSPACE MVI ASACODE,SP REGULAR SPACING 21880001 LH LINE,LNCNT GET SAVED LINT COUNTER 21900001 BCT LINE,PTSTORE DECREMENT LINE COUNTER 21920001 LA RLINK,PTRETURN INITIALIZE RETURN TO RESTORE 21940001 B PTLINIT GO TO PRINT HEADING 21960001 PTSTORE STH LINE,LNCNT RESTORE LINE COUNTER 21980001 PTRETURN LM R2,RLINK,IEBED51 RELOAD SAVED REGISTERS 22000001 BR RLINK RETURN 22020001 SPACE 22040001 ************ PAGE AND LINE INITIALIZATION SUBROUTINE **************** 22060001 PTPINIT OI IEBED46,FTS TURN FIRST TIME SWITCH ON 22080001 PTLINIT MVC LNCNT(2),H49 INITIEALIZE LINE COUNT 22100001 LH PAGE,HPAGE GET PAGE COUNTER 22120001 CVD PAGE,DBLWD CONVERT PAGE NUMBER FOR HEADING 22140001 UNPK MSGPG(4),DBLWD+4(4) * 22160001 OI MSGPG+3,XF * 22180001 ST 1,PTMSG SAVE REGISTER 1 22200001 PUT (DCBAD) PUT OUT HEADING 22220001 MVC 0(81,1),HEADING MOVE HEADIN GINTO BUFFER 22240001 MVI 81(1),X'40' BLANKS IN RESR OF BUFFER 22260001 MVC 82(39,1),81(1) * 22280001 L 1,PTMSG RESTORE REGISTER 1 22300001 LA PAGE,1(PAGE) INCREMENT PAGE NUMBER 22320001 STH PAGE,HPAGE SAVE PAGE COUNT 22340001 MVI ASACODE,CMIN SAVE ASA CODE FOR 3 SPACES 22360001 BR RLINK BRANCH TO MAIN ROUTINE 22380001 * * 22400001 ************************************ CONSTANTS ********************** 22420001 * * 22440001 H1 DC H'1' 22460001 H49 DC H'49' PAGE LINE COUNT 22480001 XF EQU X'F0' 22500001 X0 EQU X'00' 22520001 UT2 EQU X'08' SYSUT2 ENTRY SWITCH 22540001 FTS EQU X'01' FIRST TIME SWITCH 22560001 HEADING DC CL16'1' 22580001 DC CL48'IEBEDIT LISTING' 22600001 DC C' PAGE ' * 22620001 MSGPG DC C' ' * 22640001 DLETMSG DC CL15'DELETED RECORD' 22660001 INSRTMSG DC CL15'INSERTED RECORD' 22680001 CMIN EQU X'60' MINUS SIGN - 3 SPACE ASA CODE 22700001 PTMSG DS F 22720001 DC A(MSG4) 22740001 DC A(MSG8) 22760001 DC A(MSG12) 22780001 DC A(MSG16) 22800001 DC A(MSG20) 22820001 DC A(MSG24) 22840001 DC A(MSG28) 22860001 DC A(MSG32) 22880001 DC A(MSG36) 22900001 DC A(MSG40) 22920001 DC A(MSG44) 22940001 DC A(MSG48) 22960001 DC A(MSG48) 22980001 DC A(MSG48) 23000001 DC A(MSG60) 23020001 DC A(MSG48) 23040001 DC A(MSG48) 23060001 DC A(MSG44) 23080001 DC A(MSG48) 23100001 DC A(MSG80) 23120001 DC A(MSG84) 23140001 DS F RESERVED 23160001 DC A(MSG92) 23180001 DC A(MSG96) 23200001 DC A(MSG100) 23220001 DC A(MSG104) 23240001 DS F RESERVED 23260001 DS F 23280001 DC A(MSG116) 23300001 DS F 23320001 DC A(MSG124) 23340001 DC A(MSG128) 23360001 DC A(MSG132) 23380001 DC A(MSG136) 23400001 DC A(MSG136) 23420001 DC A(MSG136) 23440001 DC A(MSG148) 23460001 DC A(MSG152) 23480001 * * 23500001 *********************************************************************** 23520001 DS 0F 23540001 SCANAD DC A(SCAN) 23560001 UPDATE DC A(UPDATER) UPDATE ROUTINE ADDRESS 23580001 MASTPNAM DC CL80'IEB023I STEP COULD NOT BE FOUND' 23600001 DS 0F 23620001 MAADDEND DS F ADDRESS OF END STEPNAME 23640001 LTORG 23660001 TITLE ' UPDATE CONTROL ROUTINE IEBEDIT ' 23680001 * 23700001 UPDATER STM R14,RWORK,IEBED52 23720001 BALR R9,0 23740001 USING *,R9 23760001 * 23780001 * 23800001 * R2 POINTS AT RECORD TO BE OUTPUTED 23820001 * TO SYSUT2 AFTER UPDATES 23840001 * 23860001 * 23880001 * THIS ROUTINE WILL CONTROL ALL MODIFICATIONS 23900001 * TO A PHYSICAL RECORD 23920001 * 23940001 * 23960001 * 23980001 UPSLACH DS 0H ROUTINE TO HANDLE UPDATING /* INTO OUTPUT 24000001 * 24020001 CLC SUBCHARS(L'SUBCHARS),0(R2) DOES RECORD CONTAIN ..* 24040001 BNE UPPUT NO OUTPUT 24060001 NI IEBED11,X'DF' ISSUE DDDATA SWITCH OFF A38600 24080001 NI IEBED12,X'F7' INSURE DATA SWITCH IS OFF A38600 24100001 * 24120001 OI IEBED14,DELETE INDICATE DELETE RECORD 24140001 BAL R8,UPPRINT PRINT DELETED RECORD 24160001 * 24180001 MVC 0(L'REPCHARS,R2),REPCHARS MAKE SUBSTITION 24200001 OI IEBED14,INSERT INDICATE INSERT RECORD 24220001 B UPPUT PUT AND PRINT RECORD 24240001 * 24260001 UPPRINT DS 0H ROUTINE TO PRINT AND RETURN TO WITHIN UPDATR 24280001 LR R3,R2 SAVE AREA ADDRESS 24300001 LR R1,R2 SET UP FOR PRINT 24320001 SR R2,R2 CLEAR FOR PRINT 24340001 BAL RLINK,PRINT GO TO PRINT 24360001 LR R2,R3 RESTORE AREA ADDRESS 24380001 BR R8 RETURN CALLLER 24400001 * 24420001 UPPUT DS 0H PUT ROUTINE 24440001 * PUTS RECORD AND RETURNS TO CALLER OF UPDATER 24460001 BAL RLINK,PUT GO TO PUT ROUTINE 24480001 * 24500001 UPRETURN DS 0H RETURN TO CALLER OF UPDATER ROUTINE 24520001 LM R14,RWORK,IEBED52 RESTORE REGS 24540001 BR R14 RETURN TO CALLER 24560001 * 24580001 * 24600001 SUBCHARS DC CL3'..*' 24620001 REPCHARS DC CL3'/* ' 24640001 * 24660001 * 24680001 LTORG 24700001 * 24720001 * FOLLOWING CARD MUST BE LAST CARD OF 24740001 * UPDATE CONTROL ROUTINE 24760001 * 24780001 DROP R9 24800001 * 24820001 * 24840001 TITLE ' CARD SCAN SUBROUTINE IEBEDIT' 24860001 IEBEDIT CSECT @YA02576 24880002 *********************************************************************** 24900001 * * 24920001 * * 24940001 *TITLE CARD SCAN SUBROUTINE * 24960001 * * 24980001 * * 25000001 *FUNCTION THIS ROUTINE WILL SCAN CONTROL CARDS FOR THE * 25020001 * IEBEDIT PROGRAM. THE SUBROUTINE IS DIVIDED INTO * 25040001 * TWO INTER RELATED PHASES. PHASE TWO (SCSEARCH) * 25060001 * WILL CONTROL THE ACTUAL INPUT AND OUTPUT ASSOCIATED * 25080001 * WITH THE CONTROL CARD PROCESSING. IT ALSO HANDLES * 25100001 * THE SCANNING OF DELIMITED CHARACTER STRINGS AND * 25120001 * SUPPLIES THESE STRINGS TO PHASE ONE(SCAN) FOR * 25140001 * INTERAGATION. PHASE ONE (SCAN) INTERAGATES THE * 25160001 * CHARACTER STRINGS TO DETERMINE VALID NAME, OPERATOR, * 25180001 * AND OPERAND FIELDS. THE VALID OPERATORS AND * 25200001 * OPERANDS ARE DEFINED VIA A SERIES OF TABLES WHICH * 25220001 * IS POINTED TO BY THE PRIMARY OPT CODE TABLE POINTER. * 25240001 * THIS POINTER IS LABELED SCOPOINT. THESE TABLES * 25260001 * ALSO INDICATE WHAT CONTROL INFORMATION IS TO BE * 25280001 * PLACED IN THE IEBEDIT WORK AREA. * 25300001 * * 25320001 * * 25340001 *ENTRY POINT SCAN * 25360001 * * 25380001 * * 25400001 *INPUT AN OPENED DCB ADDRESS IN THE IEBEDIT WORK AREA * 25420001 * AND A TEN WORD CARD SCAN WORK AREA * 25440001 * * 25460001 * * 25480001 *OUTPUT CONTROL INFORMATION PLACED IN THE IEBEDIT WORK * 25500001 * AREA (IEBED00 DSECT) TO INDICATE CONTROL CARD * 25520001 * INFORMATION * 25540001 * * 25560001 * * 25580001 *EXTERNAL PRINT ROUTINE- PRINTING OF CONTROL CARDS * 25600001 *ROUTINES AND DIAGONISTIC INFORMATION IF ANY * 25620001 * * 25640001 * * 25660001 *EXITS NORMAL EXIT IS RETURN TO CALLING ROUTINE * 25680001 * END OF DATA EXIT IS TO POST PROCESSOR ROUTINE * 25700001 * * 25720001 * * 25740001 *TABLES/WORK AREAS * 25760001 * IEBED00 DSECT - REGISTER 12 IS DSECT BASE * 25780001 * SPECIAL CARD SCAN WORK AREA OF TEN * 25800001 * WORDS AT IEBED45 IN DSECT * 25820001 * * 25840001 * * 25860001 * * 25880001 * * 25900001 * * 25920001 * * 25940001 * * 25960001 *********************************************************************** 25980001 * 26000001 * CARD SCAN ROUTINE 26020001 * 26040001 * 26060001 * 26080001 SCAN STM R2,RBASE,IEBED50 SAVE REGS 26100001 DROP RBASE 26120001 BALR RBASE,R0 26140001 USING *,RBASE 26160001 * 26180001 TM IEBED13,EOFIN EOF ON SYSIN 26200001 BO SCEOD2 YES 26220001 * 26240001 MVI SC4,X'00' INIT FOR 26260001 * SCSEARCH ROUTINE 26280001 TM SC1,SCSINS REQUEST ANOTHER SUB CARD 26300001 BO SC400 YES 26320001 * 26340001 SC90 XC IEBED10(IEBED13-IEBED10-1),IEBED10 CLEAR SWITCHES 26360001 MVC IEBED60(4),IEBED61 RE-ESTABLISH PERM WORK 26380001 L R6,SCOPOINT SET UP 26400001 ST R6,SCCOPT CURRENT OPT TABLE POINTER 26420001 SC99 NC SC4(4),=X'00000020' 26440001 EJECT 26460001 * 26480001 SC100 LA R8,4 INDICATE SEARCH FOR BLANK 26500001 BAL RLINK,SCSEARCH BYPASS NAME 26520001 TM SC2,SCEND IS END ON 26540001 BO SCE1 ERROR *** INVALID NAME FIELD 26560001 C R5,=F'7' IS NAME TO LONG 26580001 BC 2,SCE1 * * * ERROR INVALID NAME 26600001 OI SC2,SCNAMEF 26620001 LA R8,8 INDICATE SEARCH FOR 26640001 BAL RLINK,SCSEARCH NON BLANK 26660001 TM SC2,SCEND FIMD OPERATOR 26680001 BO SCE2 ERROR *** INVALID SYNTAX 26700001 LA R8,4 26720001 BAL RLINK,SCSEARCH INDICATE SEARCH FOR 26740001 TM SC2,SCEND BLANK 26760001 * ISOLATE OPERATOR 26780001 BO SCE2 ERROR *** INVALID SYNTAX 26800001 * IS OPT CODE VALID 26820001 MVC SC1000(8),=C' ' 26840001 C R5,=F'7' LENGTH OK @YA02589 26850002 BC 2,SCET10 ERROR OPERATOR LENGTH @YA02589 26852002 EX R5,SCEX100 SET UP OPT CODE FOR COMPARE 26860001 L R8,SCCOPT 26880001 SC105 CLC SCOPCODE(8,R8),SC1000 OPT CODE FOUND 26940001 BE SC110 YES 26960001 TM SCOPINFO(R8),SCOPILST END OF OPT TABLE 26980001 BO SC106 YES POSSIBLE ERROR 27000001 LA R8,SCOPTLEN(R8) UP POINTER 27020001 B SC105 LOOP 27040001 SC106 TM SC1,SCMULS+SCSINS ARE WE PROCESSING SUBSIDARY 27060001 BO SC450 CARDS - YES END SUBSIDARY 27080001 B SCE3 ERROR *** INVALID OPT CODE 27100001 SCET10 OI IEBED13,INPUTON INDICATE SYSIN A38600 27120001 B SCE10 BRANCH TO ERROR TABLE A38600 27140001 * 27160001 SC110 ST R8,SCCOP SET UP CURRENT OPT POINTER 27180001 LA R9,SCOPTON(R8) 27200001 BAL RLINK,SCTURNON TURN ON SWITCHES 27220001 OI SC2,SCOPTF OPERATOR FOUND SWITCH 27240001 L R9,SCOPPARM(R8) SET UP CURRENT PARM TABLE 27260001 ST R9,SCCPT 27280001 LA R8,8 INDICATE SEARCH FOR 27300001 BAL RLINK,SCSEARCH NON BLANK 27320001 * FIND FIRST OPERAND 27340001 TM SC2,SCEND END DETECTED 27360001 BO SCANPP YES NO OPERANDS GO TO POST 27380001 * PROCESSOR 27400001 EJECT 27420001 * 27440001 * OPERAND PROCESSOR 27460001 SC200 EQU * 27480001 LA R8,12 INDICATE SEARCH 27500001 BAL RLINK,SCSEARCH FOR DELIMITER 27520001 L R8,SCCPT GET CURRENT PARM TABLE 27540001 MVC SC1000(8),=C' ' 27560001 CL R5,=F'7' LENGTH OK @ZA04414 27570003 BC 2,SCE11 ERROR *** OPERAND LENGTH @YA02589 27572002 EX R5,SCEX100 SET UP OPERAND 27580001 SC205 CLC SCPMCODE(8,R8),SC1000 OPERAND FOUND 27640001 BE SC210 YES 27660001 TM SCPMINFO(R8),SCPMILST END OF OPERAND SEARCH 27680001 BO SCE4 ERROR *** INVALID OPERAND 27700001 LA R8,SCPMTLEN(R8) UP POINTER 27720001 B SC205 LOOP 27740001 SC210 EQU * 27760001 LA R9,SCPMTON(R8) TURN ON OPERAND 27780001 BAL RLINK,SCTURNON SWITCHES 27800001 ST R8,SCCP SAVE PARM POINTER 27820001 TM SCPMINFO(R8),SCPMIKEY IS THIS KEYWORD ONLY OPERAND 27840001 BZ SC220 NO, CONTINUE PROCESSING 27860001 CLI SCFUN+3,X'1C' DELIMITER COMMA 27880001 BE SC200 YES LOOP TO PROCESS NEXT PARM 27900001 TM SC2,SCEND END DETECTED 27920001 BO SCANPP YES GO TO POST PROCESSOR 27940001 B SCE5 ERROR *** INVALID OPERAND FIELD 27960001 * FORMAT 27980001 * OPERAND VALUE HANDLER 28000001 SC220 L R6,SCCP 28020001 TM SC2,SCEND 28040001 BO SCE6 ERROR *** INVALID OPERAND VALUE 28060001 SC225 CLI SCFUN+3,X'20' 28080001 BNE SCE7 ERROR *** INVALID DELIMITER 28100001 SC227 SR R15,R15 INDICATE SEARCH FOR DELIMITER 28120001 TM SCPMINFO(R6),SCPMICS WITH OR WITHOUT C. S. 28140001 BZ SC228 WITHOUT C. S. 28160001 LA R15,4(R15) WITH C. S. 28180001 SC228 LA R8,12(R15) 28200001 BAL RLINK,SCSEARCH GO TO SEARCH 28220001 LTR R5,R5 IS LENGTH ZERO 28240001 BC 11,SC230 NO 28260001 CLI SCFUN+3,X'14' YES, IS THIS A SUBPARAMETER 28280001 BNE SCE5 ERROR *** INVALID OPERAND FIELD 28300001 TM SCPMINFO(R6),SCPMISUB FORMAT 28320001 BZ SCE8 SUBPARAMETERS ALLOWED 28340001 * ERROR *** SUBPARMETER NOT ALLOW 28360001 TM SC1,SCINSUB ALREADY IN SUBPARMETER 28380001 BO SCE5 ERROR *** INVALID OPERAND FIELD 28400001 * FORMAT 28420001 OI SC1,SCINSUB INDICATE IN SUBPARAMETER 28440001 B SC227 28460001 SC230 TM SCPMINFO(R6),SCPMIFIX IS THIS A FIXED OR VARIABLE 28480001 L R15,SCPMACT(R6) OPERAND 28500001 BO SC235 FIXED 28520001 * VARIABLE 28540001 BALR R14,R15 PASSED TO ACTION ROUTINE 28560001 EX R0,*+4(R15) R4 BEGIN VALUE 28580001 B SC236 R5 LENGTH -1 OF VAVE 28600001 * R14 RETURN ADDRESS 28620001 B SCE5 ERROR *** INVALID OPERAND FIELD 28640001 * FORMAT 28660001 SC236 LM R1,R4,SCFD INIT AFTER 28680001 L R6,SCCP ACTION ROUTINE 28700001 B SC240 28720001 SC235 EQU * FIXED OPERAND 28740001 MVC SC1000(8),=C' ' 28760001 C R5,=F'7' LENGTH OK 28780001 BC 2,SCE9 ERROR *** OPERAND VALUE 28800001 EX R5,SCEX100 LENGTH ERROR 28820001 SC237 CLC SCFOPVAL(8,R15),SC1000 OPERAND VALUE FOUND 28840001 BE SC238 YES 28860001 TM SCFOPINF(R15),SCFOPILT LAST ENTRY 28880001 BO SCE6 ERROR *** INVALID OPERAND VALUE 28900001 LA R15,SCFOPLEN(R15) UP POINTER 28920001 B SC237 LOOP 28940001 SC238 LA R9,SCFOPTON(R15) GO TO TURN ON 28960001 BAL RLINK,SCTURNON 28980001 * B SC240 29000001 * 29020001 SC240 EQU * 29040001 CLI SCFUN+3,X'2C' DELIMITER - 29060001 BE SC227 YES GET NEXT SUB-PARM 29080001 TM SC1,SCINSUB ARE WE PROCESSING SUB PARAMETER 29100001 BZ SC250 NO 29120001 CLI SCFUN+3,X'18' DELIMITER ) 29140001 BE SC245 YES 29160001 CLI SCFUN+3,X'1C' DELIMITER , 29180001 BE SC227 YES 29200001 B SCE7 ERROR *** INVALID DELIMITER 29220001 SC245 LA R8,12 INDICATE SEARCH 29240001 BAL RLINK,SCSEARCH FOR NEXT DELIMITER 29260001 NI SC1,OFF-SCINSUB 29280001 LTR R5,R5 LENGTH OK 29300001 BC 4,SC250 YES 29320001 B SCE1 ERROR *** INVALID SYNTAX 29340001 SC250 TM SC2,SCEND END NOTED 29360001 BO SCSCANPP 29380001 CLI SCFUN+3,X'1C' DELIMITER COMMA 29400001 BE SC200 END OF OPERAND - GO TO 29420001 B SCE7 PROCESS NEXT 29440001 * ERROR *** INVALID DELIMITER 29460001 * 29480001 * END OPERAND PROCE 29500001 EJECT 29520001 * 29540001 * 29560001 * SCAN POST PROCESSOR 29580001 * 29600001 * CARD IS OK SO FAR 29620001 SCANPP EQU * 29640001 * 29660001 L R8,SCCPT GET CURRENT PARM 29680001 SR R9,R9 TABLE 29700001 SC500 EQU * 29720001 IC R9,SCPMTON(R8) GET DISPLACEMENT 29740001 LA R14,IEBED10(R9) TO CHECK IS PARAMETER SPECIFIED 29760001 IC R15,SCPMTON+1(R8) 29780001 EX R15,SCEX101 SPECIFIED 29800001 BO SC505 YES 29820001 IC R9,SCPMASSM(R8) NO 29840001 LA R14,IEBED10(R9) ASSUM PARAMETER 29860001 IC R15,SCPMASSM+1(R8) SWITCHES 29880001 EX R15,SCEX102 29900001 SC505 TM SCPMINFO(R8),SCPMILST END OF TABLE 29920001 BO SC520 YES 29940001 LA R8,SCPMTLEN(R8) NO 29960001 B SC500 LOOP 29980001 SC520 EQU * 30000001 L R8,SCCOP GET OPT CODE 30020001 IC R9,SCOPREQ(R8) 30040001 LA R14,IEBED10(R9) 30060001 SR R15,R15 30080001 IC R15,SCOPREQ+1(R8) 30100001 LTR R15,R15 30120001 BC 8,SC521 30140001 EX R15,SCEX101 30160001 BZ SCE13 ERROR *** REQUIRED OPERAND 30180001 SC521 EQU * 30200001 L R15,SCOPSPC(R8) GET SPECIAL DIAG POINTER 30220001 LTR R15,R15 ANY SPECIAL DIAG 30240001 BC 8,SC522 NO 30260001 BALR R14,R15 YES 30280001 SC522 EQU * 30300001 LA R8,20 OMITTED 30320001 BAL RLINK,SCSEARCH SEARCH FLUSH 30340001 TM SC1,SCSINS ARE PROCESSING SINGLE 30360001 BO SC600 SUB CARDS 30380001 TM SC1,SCMULS ARE PROCESSING MULTIPLE 30400001 BO SC700 SUB CARDS 30420001 * 30440001 L R8,SCCOP 30460001 TM SCOPINFO(R8),SCOPISO DOES THIS OPT CODE 30480001 BO SC650 ALLOW SINGLE SUB CARDS 30500001 TM SCOPINFO(R8),SCOPISA DOES THIS OPT CODE 30520001 BO SC750 ALLOW MULTIPLE SUB CODES 30540001 * 30560001 * 30580001 SC530 EQU * 30600001 SR R15,R15 RETURN CODE 30620001 SC531 EQU * 30640001 TM IEBED13,EOFUT1 30660001 BO SCE12 30680001 LM R2,RBASE,IEBED50 30700001 BR RLINK RETURN 30720001 EJECT 30740001 * 30760001 SC650 L R9,SCOPSUB(R8) GET SUB OPT TABLE 30780001 ST R9,SCCOPT 30800001 OI SC1,SCSINS INDICATE PROCESSING SUB OPT 30820001 SC653 NC SC4(3),=X'000000' RESET FOR SUB OPT 30840001 B SC100 CHECK FOR SUB OPT 30860001 * 30880001 * 30900001 SC600 EQU * 30920001 LA R15,4 INDICATE THAT ANOTHER 30940001 * OR FIRST SUB OPT HAS BEEN 30960001 * FOUND 30980001 B SC531 31000001 * 31020001 SC750 EQU * 31040001 L R9,SCOPSUB(R8) GET SUB OPT TABLE 31060001 ST R9,SCCOPT 31080001 OI SC1,SCMULS INDICATE MUL SUB OPS 31100001 * 31120001 B SC653 31140001 * 31160001 SC700 EQU SC653 31180001 * 31200001 * 31220001 SC400 EQU * REQUESTING ANOTHER SUB OPT 31240001 OI SC1,SCSINS2 31260001 B SC653 31280001 SC450 OI SC1,SCOVERR OPT CODE NOT FOUND WHEN 31300001 TM SC1,SCMULS PROCESSING MUL OR SINGLE 31320001 BO SC460 SUB OPT 31340001 TM SC1,SCSINS2 SINGLE SUB OPT 31360001 BZ SC452 FIRST LOOK FOR SUB OPT 31380001 LA R15,8 RETURN CODE 31400001 NI SC1,OFF-SCSINS-SCSINS2 TURN OFF SWITCHES 31420001 B SC531 31440001 SC452 NI SC1,OFF-SCSINS SINGLE SUB OPT 31460001 B SC530 NONE FOUND 31480001 SC460 NI SC1,OFF-SCMULS TURN OFF 31500001 LA R15,12 31520001 B SC531 31540001 * 31560001 * RETURNS 31580001 * 31600001 * 0 MAIN OPT NO SUBS 31620001 * 31640001 * 4 A-MAIN OPT 1 SINGLE SUB 31660001 * B- 1 SINGLE SUB 31680001 * 31700001 * 8 REQUESTING ANOTHER SUB OPT 31720001 * AND NONE AVAILBLE 31740001 * 31760001 * 12 MAIN OPT WITH MULT SUB OPTS 31780001 * 31800001 EJECT 31820001 * 31840001 * ERROR TABLE 31860001 * 31880001 DS 0F 31900001 SCERROR EQU *-32 31920001 SCE1 BAL R2,SCE0 36 31940001 SCE2 BAL R2,SCE0 40 31960001 SCE3 BAL R2,SCE0 44 31980001 SCE4 BAL R2,SCE0 48 32000001 SCE5 BAL R2,SCE0 52 32020001 SCE6 BAL R2,SCE0 56 32040001 SCE7 BAL R2,SCE0 60 32060001 SCE8 BAL R2,SCE0 64 32080001 SCE9 BAL R2,SCE0 68 32100001 SCE10 BAL R2,SCE0 72 A38600 32120001 SCE11 BAL R2,SCE0 76 32140001 SCE12 BAL R2,SCE0 80 32160001 SCE13 BAL R2,SCE0 84 32180001 SCSE1 BAL R2,SCEE1 88 32200001 SCSE2 BAL R2,SCEE1 92 32220001 SCSE3 BAL R2,SCEE1 96 32240001 SCE14 BAL R2,SCE0 100 32260001 SCE15 BAL R2,SCE0 104 32280001 SCE0 LA R1,SCERROR SET UP ERROR 32300001 LA R2,0(R2) 32320001 SR R2,R1 CODE 32340001 ST R2,SC1000 32360001 LA R8,20 32380001 BAL RLINK,SCSEARCH FLUSH 32400001 L R2,SC1000 32420001 LR R9,RBASE 32440001 L RLINK,SCPRINTX 32460001 L RBASE,IEBED50+36 32480001 BALR RLINK,RLINK 32500001 LR RBASE,R9 32520001 MVI SC4,X'00' RESET 32540001 OI IEBED13,LOWCODE SET CONDITION 32560001 B SC90 32580001 SCEE1 EQU SCE0 32600001 * 32620001 * 32640001 EJECT 32660001 * 32680001 * CARD SCAN TABLES FOR IEBEDIT 32700001 * 32720001 * 32740001 * PRIMARY OPT TABLE POINTER 32760001 SCOPOINT DC A(SC900) 32780001 * 32800001 * PRIMARY OPT TABLE 32820001 * 32840001 SC900 EQU * 32860001 DC C'EDIT ' OPT CODE 32880001 DC AL1(IEBED10-IEBED10) TURN ON DISPLACEMENT 32900001 DC AL1(EDIT) SWITCHES TO TURN ON 32920001 DC AL1(IEBED10-IEBED10) REQUIRED DISPLACEMENT 32940001 DC AL1(EDIT) SWITCHES REQUIRED 32960001 DC XL1'80' INFO BOX 32980001 DC AL3(SC950) PARM TABLE POINTER 33000001 DC AL4(0) SUB OPT TABLE POINTER 33020001 DC AL4(SC805) SPECIAL DIAGONISTIC ROUTINE 33040001 * 33060001 * END PRIMARY OPT TABLE 33080001 * 33100001 EJECT 33120001 * 33140001 * PARAMETER TABLE FOR OPT-EDIT 33160001 * 33180001 SC950 DS 0F 33200001 DC C'STEPNAME' PARAMETER 33220001 DC AL1(IEBED10-IEBED10) TURN ON DISPLACEMENT 33240001 DC AL1(STEPNAME) SWITCES TO BE TURNED ON 33260001 DC AL1(IEBED11-IEBED10) ASSUME DISPLACEMENT 33280001 DC AL1(POSCOPY) SWITCHES ASSUMED 33300001 DC XL1'28' INFO BOX 33320001 DC AL3(SC800) ACTION ADDRESS 33340001 * 33360001 DC C'TYPE ' PARAMETER 33380001 DC AL1(IEBED10-IEBED10) TURN ON DISPLACEMENT 33400001 DC AL1(TYPE) SWITCHES TO BE TURNED ON 33420001 DC AL1(IEBED10-IEBED10) ASSUME DISPLACEMENT 33440001 DC AL1(POSITION) SWITCHES ASSUMED 33460001 DC XL1'40' INFO BOX 33480001 DC AL3(SC960) ACTION ADDRESS 33500001 * 33520001 DC C'START ' PARMAETER 33540001 DC AL1(IEBED10-IEBED10) TURN ON DISPLACEMENT 33560001 DC AL1(START) SWITCHES TO BE TURNED ON 33580001 DC AL1(IEBED10-IEBED10) ASSUME DISPLACEMENT 33600001 DC AL1(0) SWITCHES ASSUMED 33620001 DC XL1'20' INFO BOX 33640001 DC AL3(SC801) ACTION ADDRESS 33660001 * 33680001 DC C'NOPRINT ' PARAMETER 33700001 DC AL1(IEBED10-IEBED10) TURN ON DISPLACEMENT 33720001 DC AL1(NOPRINT) SWITCHES TO BE TURNED ON 33740001 DC AL1(IEBED10-IEBED10) ASSUME DISPLACEMENT 33760001 DC AL1(0) SWITCHES ASSUMED 33780001 DC XL1'84' INFO BOX 33800001 DC AL3(0) ACTION ADDRESS 33820001 * 33840001 * 33860001 * END PARAMETER TABLE FOP OPT-EDIT 33880001 * 33900001 EJECT 33920001 * 33940001 * FIXED OPERAND TABLE FOR TYPE 33960001 * 33980001 SC960 DS 0F 34000001 DC C'POSITION' OPERAND VALUE 34020001 DC AL1(IEBED10-IEBED10) TURN ON DISPLACEMENT 34040001 DC AL1(POSITION) SWITCHES TO BE TURNED ON 34060001 DC AL1(0) UNUSED 34080001 DC X'00' INFO BOX 34100001 * 34120001 DC C'INCLUDE ' OPERAND VALUE 34140001 DC AL1(IEBED10-IEBED10) TURN ON DISPLACEMENT 34160001 DC AL1(INCLUDE) SWITCHES TO BE TURNED ON 34180001 DC AL1(0) UNUSED 34200001 DC XL1'00' INFO BOX 34220001 * 34240001 DC C'EXCLUDE ' OPERAND VALUE 34260001 DC AL1(IEBED10-IEBED10) TURN ON DISPLACEMENT 34280001 DC AL1(EXCLUDE) SWITCHES TO BE TURNED ON 34300001 DC AL1(0) UNUSED 34320001 DC XL1'80' INFO BOX 34340001 * 34360001 * END FIXED OPERAND TABLE FOR TYPE 34380001 * 34400001 * 34420001 * 34440001 * END CARD SCAN TABLES FOR IEBEDIT 34460001 * 34480001 * 34500001 EJECT 34520001 * 34540001 * 34560001 SC801 L R8,IEBED60 JOB NAME HANDLER 34580001 MVC 0(8,R8),=C' ' CLEAR 34600001 EX R5,SC8018 MOVE JOB NAME 34620001 ST R8,IEBED32 STORE POINTER 34640001 LA R8,8(R8) 34660001 ST R8,IEBED60 34680001 SR R15,R15 34700001 BR R14 34720001 SC8018 MVC 0(1,R8),0(R3) MOVE CHARACTERS 34740001 * 34760001 EJECT 34780001 * 34800001 * 34820001 SC800 DS 0H 34840001 TM SC2,SCFPARM FIRST STEPNAME 34860001 BO SC8001 NO 34880001 L R8,IEBED60 YES, GET PERM WORK 34900001 LA RLINK,2032(R8) UP PERM WORK 34920001 LA R9,16(RLINK) FOR INCLUSIVE STEPNAME TABLE 34940001 STM R9,RLINK,IEBED33 SET UP BEGIN END INCLUSIVE TAB 34960001 ST R8,IEBED30 SET UP STEPNAME TABLE 34980001 S R8,=F'8' 35000001 ST R8,IEBED31 35020001 ST R9,IEBED60 RESET PERM WORK 35040001 OI SC2,SCFPARM INDICATE NOT FIRST PARM 35060001 * 35080001 SC8001 DS 0H 35100001 SR R15,R15 SET RETURN CODE 35120001 TM SC2,SCINC2 IS THIS SECOND PART OF INCLUSIVE STEPNAMES 35140001 BO SC8005 YES 35160001 CLI SCFUN+3,X'2C' NO 35180001 BE SC8004 FIRST PART OF INCLUSIVE 35200001 * YES BRANCH 35220001 L R8,IEBED31 SINGLE STEPNAMES 35240001 LA R8,8(R8) UP TABLE POINTER 35260001 OI IEBED11,SINGSTEP INDICATE A SINGLE STEPNAME 35280001 ST R8,IEBED31 SET UP POINTER 35300001 SC8006 MVC 0(8,R8),=C' ' CLEAR 35320001 EX R5,SC8018 SET UP STEP NAME 35340001 * 35360001 BR R14 RETURN 35380001 SC8004 DS 0H 35400001 L R8,IEBED33 GET TABLE POINTER 35420001 OI SC2,SCINC2 INDICATE SECOND INCLUSIVE COMING UP 35440001 OI IEBED11,INCLSPEC INDICATE INCLUSIVE SPECIFIED 35460001 S R8,=F'16' 35480001 ST R8,IEBED33 35500001 B SC8006 GO TO SET UP STEPNAMES 35520001 SC8005 NI SC2,OFF-SCINC2 RESET INCLUSIVE 35540001 L R8,IEBED33 POINT TO ENTRY 35560001 LA R8,8(R8) 35580001 B SC8006 GO TO SET UP STEPNAME 35600001 * 35620001 * 35640001 SCFSTEP EQU X'10' 35660001 SC805 DS 0H 35680001 TM IEBED10,INCLUDE WAS INCLUDE SPECFIED 35700001 BZ SC8051 NO 35720001 TM IEBED10,STEPNAME STEPNAME SPECIFIED 35740001 BZ SCE14 * * * ERROR STEPNAME REQUIRED 35760001 SC8051 TM IEBED10,EXCLUDE EXCLUDE SPECIFIED 35780001 BZ SC8052 NO 35800001 TM IEBED10,STEPNAME STEPNAME SPECIFIED 35820001 BZ SCE15 * * * ERROR STEPNAME REQUIRED 35840001 SC8052 EQU * 35860001 BR R14 RETURN TO CALLER 35880001 EJECT 35900001 DS 0H 35920001 SCGET EQU * GET CARD ROUTINE FOR 35940001 TM SC1,SCOVERR CARD SCAN SUBROUTINE 35960001 BO SCGET2 35980001 * R7 RETURN REG 36000001 * R1 POINTER TO CARD 36020001 * 36040001 L R1,SYSIN GET SYSIN DCB 36060001 GET (R1) 36080001 ST R1,SCOVER SAVE IF OVERRUN CARD 36100001 OI IEBED13,INPUTON INDICATE WE HAVESYSIN DATA 36120001 SR R2,R2 36140001 LR R3,RLINK 36160001 L RLINK,SCPRINTX 36180001 LR R9,RBASE 36200001 L RBASE,IEBED50+36 36220001 BALR RLINK,RLINK 36240001 LR RBASE,R9 36260001 LR RLINK,R3 36280001 MVI SC4,X'00' RESET 36300001 L R1,SCOVER 36320001 BR R7 RETURN CALLER 36340001 SCGET2 NI SC1,OFF-SCOVERR **** 36360001 B SCGET FURTURE ON OVERRUN CARD 36380001 EJECT 36400001 * 36420001 DS 0H EOD ON SYSIN 36440001 SCEOD EQU * 36460001 OI IEBED13,EOFIN INDICATE EOF ON SYSIN 36480001 TM IEBED13,INPUTON HAVE WE HAD SYSIN DATA 36500001 BO SCEOD2 YES PROCESS NORMALLY 36520001 OI IEBED13,TOTCOPY NO THEN ASSUMETOTAL COPY 36540001 B SC530 36560001 SCEOD2 EQU * 36580001 TM SC1,SCSINS+SCMULS PROCESSING SINGLE OR MULT SUBS 36600001 BO SCEOD1 36620001 L R0,SCPOSTXX 36640001 LM R2,RBASE,IEBED50 36660001 LR RLINK,R0 36680001 BR RLINK 36700001 SCPOSTXX DC A(POST) 36720001 SCEOD1 EQU * 36740001 EJECT 36760001 * TURN ON ROUTINE 36780001 * R9 POINTES TO TURN 36800001 SCTURNON SR R14,R14 ON BOX 36820001 IC R14,0(R9) GET DISPLACEMENT 36840001 IC R15,1(R9) GET SWITCHES 36860001 LA R14,IEBED10(R14) GET SWITCH ADDRESS 36880001 EX R15,SCEX101 SWITCHES ALREADY ON 36900001 BO SCE4 ERROR *** DULPLICATE OPERAND 36920001 EX R15,SCEX102 TURN ON SWITCHES 36940001 BR RLINK 36960001 EJECT 36980001 * SEARCH 37000001 * 37020001 * LINKAGE BAL RLINK,SCSEARCH 37040001 * R8 CONTAINS SEARCH TYPE 37060001 * 37080001 * OUTPUT 37100001 * R1 POINTER TO FOUND CHARACTER 37120001 * R2 FOUND CHARACTER FUNCTION BYTE 37140001 * R3 BEGIN TRT FOR THIS FIND 37160001 * R4 LENGTH OF TRT 37180001 * R0 LENGTH OF THIS FIND 37200001 * 37220001 * 37240001 * SWITCHES 37260001 SCCURNT EQU X'10' 37280001 SCEND EQU X'20' 37300001 SCCURNTN EQU X'EF' 37320001 * 37340001 * ENTRY 37360001 * 4 SEARCH BLANK 37380001 * 8 SEARCH NON BLANK 37400001 * 12 SEARCH DELIMITER 37420001 * 16 SEARCH DELIMITER 37440001 * WITH CHARACTER STRING 37460001 * 20 SEARCH FLUSH 37480001 * 37500001 EJECT 37520001 SCSEARCH EX R8,SCEX1 IS TRT TABLE GOOD 37540001 BE SCTRT YES, NO INIT 37560001 STC R8,SC4 NO, SET UP TYPE FOR NEXT ENTRY 37580001 TM SC1,SCCURNT IS SCWORK VALID 37600001 BO SCS1 YES, NO INIT SCWORK 37620001 CLI SC4,X'14' ANYTHING TO FLUSH 37640001 BE SCSPP1 37660001 OI SC1,SCCURNT SET SCWORK CURRENT 37680001 BAL R7,SCGET GET CARD 37700001 MVC SCCARD(80),0(R1) MOVE TO TRT AREA 37720001 LA R3,SCCARD SET UP BEGIN TRT 37740001 LA R4,71 SET UP LENGTH 37760001 EX R0,SCSETUP(R8) GO TO TYPE SETUP ROUTINE 37780001 B SCTRT1 37800001 SCS1 EX R0,SCSETUP(R8) GO TO TYPE SET UP ROUTINE 37820001 SCTRT LM R1,R4,SCFD GET TRT INFO 37840001 LA R2,1(R1) SET UP BEGIN TRT 37860001 SR R1,R3 SET UP 37880001 SR R4,R1 LENGTH OF TRT 37900001 BCTR R4,R0 37920001 LR R3,R2 37940001 SCTRT1 SR R2,R2 37960001 SR R1,R1 37980001 EX R4,SCEX3 DO TRANSLATE AND TEST 38000001 BC 8,SCCONT1 CONTINUATION CARD 38020001 BC 2,SCCONT2 38040001 SCBTAB EX R0,*(R2) GO TO TYPE 38060001 B SCSPP S BLANK FOUND 4 38080001 B SCSNB1 S NON BLANK FOUND 8 38100001 B SCINV INVALID CHARACTER 12 38120001 B SCDB BLANK WHEN SEARCHING 16 38140001 * FOR DELIMITER 38160001 B SCSPP SEARCH DEL FOUND ( 20 38180001 B SCSPP SEARCH DEL FOUND ) 24 38200001 B SCSPP SEARCH DEL FOUND , 28 38220001 B SCSPP SEARCH DEL FOUND = 32 38240001 B SCSDQ SEACH FOR QUOTE - FOUND 36 38260001 B SCSDQ1 SEARCH CHARCTER SRING 40 38280001 * ANY THING 38300001 B SCSPP SEARCH DELIMITER FOUND - 44 38320001 * 38340001 EJECT 38360001 SCSDQ EQU * SEARCH CHARACTER SRING QUOTE 38380001 SCSDQ1 EQU * ANYTHING 38400001 SCDB CR R1,R3 SEARCH DELIMITER BLANK FOUND 38420001 BNE SCDB1 38440001 L R7,SCFD COMMA FOLLOWED BY BLANK 38460001 CLI 0(R7),C',' 38480001 BNE SCDB1 YES 38500001 B SCCONT3 THEN CONTINUE CARD 38520001 SCDB1 OI SC2,SCEND 38540001 B SCSPP 38560001 SCSPP LR R5,R1 SET UP PARAMETERS 38580001 SR R5,R3 TO PASS BACK 38600001 BCTR R5,R0 38620001 STM R1,R4,SCWORK SAVE INFO 38640001 SCSPP1 BR RLINK RETURN 38660001 SCSNB1 BCTR R1,R0 ADJUST POINTER 38680001 B SCSPP 38700001 * 38720001 * CONTINUE ROUTINE 38740001 EJECT 38760001 * 38780001 * SCCONT1 ALL FUNCTION BYTES NON ZERO 38800001 * SCCONT2 LAST FUNCTION BYTE NON ZERO 38820001 SCCONT1 LA R5,0(R3,R4) SCCONT3 COMA FOLLOWED BY BLANK 38840001 CLI 0(R5),C' ' CONTINUE CARD 38860001 BNE SCC1 YES GET CARD AND READJUST 38880001 OI SC2,SCEND 38900001 BR RLINK 38920001 SCC1 EX R4,SCEX4 38940001 SCC4 BAL R7,SCGET 38960001 CLI 0(R1),C' ' 38980001 BNE SCC5 39000001 CLC 1(14,R1),0(R1) 39020001 BNE SCC5 39040001 LA R5,SCCARD(R4) 39060001 MVC 0(57,R5),15(R1) 39080001 LA R4,56(R4) 39100001 C R4,=F'200' 39120001 BC 13,SCC6 39140001 LA R2,71 39160001 STM R1,R2,SCBEGTRT 39180001 B SCE2 39200001 SCC6 EQU * 39220001 LA R3,SCCARD 39240001 B SCTRT1 39260001 SCCONT2 LA R5,0(R3,R4) LAST FUNCTION FIND 39280001 CLI 0(R5),C' ' FOUND BLANK 39300001 BNE SCC2 39320001 OI SC2,SCEND 39340001 EX R0,SCBTAB(R2) BRANCH TO HANDLER 39360001 SCC2 EQU SCC1 39380001 * 39400001 SCCONT3 LA R5,0(R3,R4) CONTINUATION 39420001 * OF ,B 39440001 CLI 0(R5),C' ' 39460001 BNE SCC3 39480001 OI SC2,SCEND 39500001 B SCSE2 INVALID CONTINUATION 39520001 SCC3 SR R4,R4 39540001 B SCC4 39560001 SCSFSH LM R3,R4,SCBEGTRT SEARCH FLUSH 39580001 OI SC4,X'00' 39600001 LA R5,0(R3,R4) 39620001 NI SC1,X'FF'-SCCURNT TURN OFF CURRENT SWITCH 39640001 SCSFSH1 CLI 0(R5),C' ' 39660001 BE SCSPP1 39680001 BAL R7,SCGET 39700001 LA R5,71(R1) 39720001 B SCSFSH1 39740001 SCSDCS MVI IEBED00,X'28' 39760001 MVC IEBED00+1(255),IEBED00 39780001 MVI IEBED00+X'7D',X'24' 39800001 BR R7 39820001 SCSB MVI IEBED00,X'00' SEARCH BLANK 39840001 MVC IEBED00+1(255),IEBED00 39860001 MVI IEBED00+C' ',X'04' 39880001 BR R7 39900001 SCSNB MVI IEBED00,X'08' SEARCH NON BLANK 39920001 MVC IEBED00+1(255),IEBED00 39940001 MVI IEBED00+C' ',X'00' 39960001 BR R7 39980001 SCSD MVC IEBED00(256),SCTABLE 40000001 BR R7 40020001 SCC5 LA R2,71 40040001 STM R1,R2,SCBEGTRT 40060001 B SCSE2 40080001 EJECT 40100001 EJECT 40120001 SCTABLE DC 64X'0C' 40140001 DC XL1'10' BLANK 40160001 DC 12X'0C' 40180001 DC XL1'14' ( 40200001 DC 13X'0C' 40220001 DC XL1'00' 40240001 DC XL1'0C' 40260001 DC XL1'18' ) 40280001 DC 2X'0C' 40300001 DC XL1'2C' - 40320001 DC 10X'0C' 40340001 DC XL1'1C' , 40360001 DC 15X'0C' 40380001 DC XL2'00' 40400001 DC XL1'0C' 40420001 DC XL1'20' = 40440001 DC 66X'0C' 40460001 DC XL9'00' 40480001 DC 7X'0C' 40500001 DC XL9'00' 40520001 DC 8X'0C' 40540001 DC XL8'00' 40560001 DC 6X'0C' 40580001 DC XL10'00' 40600001 DC 6X'0C' 40620001 EJECT 40640001 * EXECUTE TABLE 40660001 * 40680001 SCEX100 MVC SC1000(1),0(R3) 40700001 SCEX101 TM 0(R14),X'00' 40720001 SCEX102 OI 0(R14),X'00' 40740001 SCPRINTX DC A(PRINT) 40760001 * 40780001 SCEX1 CLI SC4,X'00' 40800001 * 40820001 SCSETUP BAL R7,SCTRT 40840001 BAL R7,SCSB SEARCH BLANK 40860001 BAL R7,SCSNB SEARCH NON BLANK 40880001 BAL R7,SCSD SEARCH DELIMITER 40900001 BAL R7,SCSDCS SEARCH DELIMITER WITH CHARACTER ST 40920001 BAL R7,SCSFSH SEARCH FLUSH 40940001 * 40960001 * 40980001 SCEX3 TRT 0(1,R3),IEBED00 41000001 SCEX4 MVC SCCARD(1),0(R3) 41020001 EJECT 41040001 SCMULS EQU X'80' PROCESSIN MULTIPLE SUB CARDS 41060001 SCINC2 EQU X'02' 41080001 SCFPARM EQU X'04' 41100001 SCFINSTP EQU X'08' 41120001 * SC1 41140001 * 80 SCMULS MULTIPLE SUB OPTS 41160001 * 40 SCSINS SINGLE SUB OPTS 41180001 * 20 SCOVERR OVERRUN RECORD 41200001 * 10 SCCURNT SCWORK VALID 41220001 * 08 SCINSUB IN SUBPARAMETER 41240001 * 04 SCSINS2 REQUESTING ANOTHER SUB OPT 41260001 * 02 U 41280001 * 01 U 41300001 * SC2 41320001 * 80 SCNAMEF NAME FIELD SCANNED 41340001 * 40 SCOPTF OPT CODE SCANNED 41360001 * 20 SCEND END RETURN FROM SCSEARCH 41380001 * 10 SCFSTEP FIRST STEPNAME 41400001 * 08 SCFINSTP FIRST INCLUSIVE STEPNAME 41420001 * 04 SCFPARM FIRST STEPNAME PARAMETER 41440001 * 02 SCINC2 2ND INCLUSIVE SUBPARAMETER 41460001 * 01 U 41480001 * SC3 41500001 * ALL UNUSED 41520001 * SC4 41540001 * SEARCH ENTRY CHARACTER 41560001 * 41580001 * 41600001 SCSINS EQU X'40' PROCESSIN SINGLE SUB CARDS 41620001 SCNAMEF EQU X'80' NAME FOUND 41640001 SCOPTF EQU X'40' OPERATOR FOUND 41660001 SCINSUB EQU X'08' IN SUBPARAMETER 41680001 SCSINS2 EQU X'04' 41700001 SCOVERR EQU X'20' OVERRUN CARD PRESENT 41720001 * 41740001 * OPT TABLE ENTRY FORMAT 41760001 SCOPTLEN EQU 24 LENGTH OF OPT TABLE 24 BYTES 41780001 SCOPCODE EQU 0 OPT CODE 8 BYTES 41800001 SCOPTON EQU 8 TURN ON BOX 2 BYTES 41820001 * BYTE 1 DISPLACEMENT FROM IEBED10 41840001 * BYTE 2 SWITCHES TO BE TURNED ON 41860001 SCOPREQ EQU 10 REQUIRED BOX 2 BYTES 41880001 * BYTE 1 DISPLACEMENT FROM IEBED10 41900001 * BYTE 2 SWITCHES WHICH MUST BE ON 41920001 * AFTER ALL OPERANDS PROCESS 41940001 SCOPINFO EQU 12 INFORMATION 1 BYTE 41960001 SCOPILST EQU X'80' LAST OPT CODE IN TABLE 41980001 SCOPISO EQU X'40' PROCESS ONE SUBSIDARY OPT CODE 42000001 SCOPISA EQU X'20' PROCESS ALL SUBSIDARY OPT CODES 42020001 * 42040001 SCOPPARM EQU 12 PARM TABLE 4 BYTES 42060001 * POINTER TO PARM TABLE 42080001 SCOPSUB EQU 16 SUBSIDARY OPT 4 BYTES 42100001 * POINTER TO SUBSIDARY OPT CODE 42120001 * TABLE 42140001 SCOPSPC EQU 20 SPECIAL DIAGONISTIC ROUTINE 42160001 * POINTER TO ROUTINE TO HANDLE SPECIAL 42180001 * DIAGONISTICS FOR THIS OPT CODE 42200001 * SPECIAL DIAGONISTICS FOR OPT CODE EDIT 42220001 * 42240001 * 42260001 * 42280001 * 42300001 * 42320001 * PARM TABLE FORMAT 42340001 * 42360001 SCPMTLEN EQU 16 LENGTH 16 BYTES 42380001 * 42400001 SCPMCODE EQU 0 OPERAND 8 BYTES 42420001 SCPMTON EQU 8 TURN ON BOX 2 BYTES 42440001 * BYTE 1 DISPLACEMENT FROM IEBED10 42460001 * BYTE 2 SWITCHES TO BE TURNED ON 42480001 SCPMASSM EQU 10 ASSUME BOX 2 BYTES 42500001 * BYTE 1 DISPLACEMENT FROM IEBED10 42520001 * BYTE 2 SWITCHES TO BE TURNED ON 42540001 * IF THIS OPERAND IS OMITTED 42560001 SCPMINFO EQU 12 INFORMATION 1 BYTE 42580001 SCPMILST EQU X'80' LAST PARM TABLE ENTRY 42600001 SCPMIFIX EQU X'40' FIXED OPERAND VALUE 42620001 SCPMIVAR EQU X'20' VARIABLE OPERAND VALUE 42640001 SCPMICS EQU X'10' ALLOW CHARACTER STRING 42660001 SCPMISUB EQU X'08' ALLOW SUBPARAMETERS 42680001 SCPMIKEY EQU X'04' KEYWORD ONLY 42700001 * 42720001 SCPMACT EQU 12 ACTION ADDRESS 4 BYTES 42740001 * IF THIS IS FIXED OPERAND 42760001 * AA IS POINTER TO FIXED 42780001 * OPERAND TABLE 42800001 * IF THIS IS A VARIABLE 42820001 * OPERAND THEH THIS IS THE 42840001 * ADDRESS OF THE HANDLING 42860001 * ROUTINE 42880001 * 42900001 * 42920001 * 42940001 * 42960001 * FIXED OPERAND TABLE 42980001 * 43000001 SCFOPLEN EQU 12 LENGTH 13 BYTES 43020001 SCFOPVAL EQU 0 FIXED OPERAND VALUE 8 BYTES 43040001 * 43060001 SCFOPTON EQU 8 TURN ON BOX 2 BYTES 43080001 * BYTE 1 DISPLACEMENT FROM IEBED10 43100001 * BYTE 2 SWITCHES TO TURNED ON 43120001 SCFOPINF EQU 11 INFORMATION BOX 43140001 SCFOPILT EQU X'80' LAST FIXED OPERAND VALUE 43160001 * 43180001 * 43200001 * 43220001 * 43240001 * 43260001 SCINV EQU SCSE3 43280001 SCSCANPP EQU SCANPP 43300001 LTORG 43320001 DROP RBASE 43340001 TITLE ' MESSAGES IEBEDIT' 43360001 MSG4 DC C'IEB001I SYSUT1 NOT OPEN ' 43380001 MSG8 DC C'IEB001I SYSUT2 NOT OPEN ' 43400001 MSG12 DC C'IEB001I SYSUT1,SYSUT2 NOT OPEN ' 43420001 MSG16 DC C'IEB001I SYSIN NOT OPEN ' 43440001 MSG20 DC C'IEB001I SYSUT1,SYSIN NOT OPEN ' 43460001 MSG24 DC C'IEB001I SYSUT2, SYSIN NOT OPEN ' 43480001 MSG28 DC C'IEB001I SYSUT2, SYSIN, SYSUT1 NOT OPEN ' 43500001 MSG32 DC C'IEB030I SYSUT1 BLKSIZE INVALID ' 43520001 MSG36 DC C'IEB008I INVALID NAME FIELD ' 43540001 MSG40 DC C'IEB009I INVALID STATEMENT SYNTAX ' 43560001 MSG44 DC C'IEB010I INVALID OPERATION CODE ' 43580001 MSG48 DC C'IEB011I INVALID OPERAND ' 43600001 MSG60 DC C'IEB014I INVALID DELIMITER ' 43620001 MSG80 DC CL48'IEB033I STATEMENT NOT PROCESSED EOF ON SYSUT1' 43640001 MSG84 DC C'IEB019I REQUIRED OPERAND OMITTED ' 43660001 * DS CL0 RESERVED 43680001 MSG92 DC C'IEB020I INVALID CONTINUATION CARD ' 43700001 MSG96 DC C'IEB021I INVALID CHARACTER ' 43720001 MSG100 DC CL48'IEB034I STEPNAME REQUIRED WITH TYPE=INCLUDE' 43740001 MSG104 DC CL48'IEB034I STEPNAME REQUIRED WITH TYPE=EXCLUDE' 43760001 * DS CL0 RESERVED 43780001 * DS CL0 RESERVED 43800001 MSG116 DC C'IEB022I JOB NAME NOT FOUND BEFORE END OF FILE ' 43820001 MSG124 DC C'IEB024I 8 WAS HIGHEST SEVERITY CODE ' 43840001 MSG128 DC C'IEB024I 4 WAS HIGHEST SEVERITY CODE ' 43860001 MSG132 DC C'IEB024I 0 WAS HIGHEST SEVERITY CODE ' 43880001 MSG136 DC CL48'IEB027I I/O ERROR ' 43900001 MSG148 DC C'IEB030I SYSIN BLKSIZE INVALID ' 43920001 MSG152 DC C'IEB032I SYSUT2 BLKSIZE INVALID-SYSUT1 ASSUMED ' 43940001 TITLE ' WORK AREA IEBEDIT' 43960001 DCBUT1 DCB DDNAME=SYSUT1,DSORG=PS,EODAD=MAJOB,EROPT=ABE,BUFNO=3, X43980001 EXLST=INEXT1,MACRF=GL,RECFM=FB,SYNAD=PSER1,LRECL=80 44000001 DCBUT2 DCB DDNAME=SYSUT2,DSORG=PS,EROPT=ABE,BUFNO=3, X44020001 EXLST=INEXT12,MACRF=PL,RECFM=FB,SYNAD=PSER2,LRECL=80 44040001 DCBPRT DCB EXLST=OUTEXIT,BUFNO=5,DDNAME=SYSPRINT,DSORG=PS, BS0H*44060001 EROPT=ABE,LRECL=121,MACRF=(PL),RECFM=FBA, BS0H*44080001 SYNAD=PSER3 44100001 DCBSYS DCB DDNAME=SYSIN,DSORG=PS,EODAD=SCEODAD,EROPT=ABE, X44120001 LRECL=80,MACRF=(GL),RECFM=FB,SYNAD=PSER4, BS0H*44140001 EXLST=INEXT13 BS0H 44160001 * REGISTERS 44180001 * 44200001 * IF IT IS DESIZED TO USE OTHER SYMBOLS 44220001 * FOR REGISTERS, EQU THOSE SYMBOLS TO THE 44240001 * REG SYMBOLS DEFINED BELOW TO PRESERVE 44260001 * REGISTER INDEPEDENCE. 44280001 * 44300001 R0 EQU 0 VOLATILE WORK REGISTER USED BY MOST MACROS 44320001 R1 EQU 1 VOLATILE WORK REGISTER USED BY MOST MACROS 44340001 R2 EQU 2 WORK REGISTER PRESERVED BY SUBROUTINES 44360001 R3 EQU 3 WORK REGISTER PRESERVED BY SUBROUTINES 44380001 REVEN EQU 4 WORK REGISTER PRESERVED BY SUBROUTINES 44400001 RODD EQU 5 WORK REGISTER PRESERVED BY SUBROUTINES 44420001 * REVEN AND RODD WILL ALWAYS BE AN 44440001 * EVEN-ODD CONSECTIVE REG PAIR 44460001 R6 EQU 6 WORK REGISTER PRESERVED BY SUBROUTINES 44480001 R7 EQU 7 WORK REGISTER PRESERVED BY SUBROUTINES 44500001 R8 EQU 8 WORK REGISTER PRESERVED BY SUBROUTINES 44520001 RCARD EQU 9 CURRENT CARD BEING PROCESSED SYSUT1 44540001 RLINK EQU 10 LINK REGISTER TO SUBROUTINES 44560001 RBASE EQU 11 BASE REGISTER 44580001 RWORK EQU 12 WORK AREA BASE - USED WITH DSECT IEBED00 44600001 RSAVE EQU 13 SAVE AREA POINTER 44620001 R14 EQU 14 VOLATILE WORK REGISTER USED BY MACROS 44640001 R15 EQU 15 VOLATILE WORK REGISTER USED BY MACROS 44660001 * 44680001 * 44700001 * 44720001 IEBED DSECT 44740001 IEBED00 DS 130F 240 BYTE VOLITAL WORK AREA 44760001 IEBED10 DS XL1'00' VERB SWITCH AREA CLEAR EACH OPERATOR 44780001 START EQU X'80' START SPECIFIED 44800001 TYPE EQU X'40' TYPE SPECIFIED 44820001 POSITION EQU X'20' TYPE=POSITION SPECIFIED 44840001 INCLUDE EQU X'10' TYPE=INCLUDE SPECIFIED 44860001 EXCLUDE EQU X'08' TYPE=EXCLUDE SPECIFIED 44880001 STEPNAME EQU X'04' STEPNAME SPECIFIED 44900001 NOPRINT EQU X'02' NOPRINT SPECIFIED 44920001 EDIT EQU X'01' 44940001 IEBED11 DS XL1'00' PROCESS SWITCH AREA CLEAR EACH OPERATOR 44960001 POSCOPY EQU X'80' POSITION COPY SWITCH 44980001 IECOPY EQU X'40' INCLUDE EXCLUDE COPY SWITCH 45000001 DDDATA EQU X'20' DD DATA SWITCH 45020001 INCLSPEC EQU X'10' INCLUSIVE SPECIFIED 45040001 INCLSTAT EQU X'08' INCLUSIVE STATE 45060001 SINGSTEP EQU X'04' SINGLE STEPS HAVE BEEN SPECIFIED 45080001 NOOPEN EQU X'02' BAD OPEN SWITCH 45100001 DC 0X'01' UNUSED 45120001 IEBED12 DS XL1'00' CARD TYPE SWITCH AREA CLEAR IN CARD TYPE 45140001 JCL EQU X'80' JCL CARD 45160001 JOB EQU X'40' JOB CARD 45180001 EXEC EQU X'20' EXEC CARD 45200001 DD EQU X'10' DD CARD 45220001 DATA EQU X'08' DD DATA CARD 45240001 CONTINUE EQU X'04' CARD IS CONTINUED 45260001 JOBLIB EQU X'02' DD NAME IS JOBLIB 45280001 SLASHA EQU X'01' CARD IS A /* 45300001 IEBED13 DS XL1'00' GENERALE SWITCH AREA NOT CLEARED 45320001 EOFUT1 EQU X'80' EOF ON SYSUT1 45340001 PRINTSW EQU X'40' SYSPRINT DD CARD PRESENT 45360001 EOFIN EQU X'20' 45380001 INPUTON EQU X'10' THERE AHS BEEN INPUT SYSIN 45400001 TOTCOPY EQU X'08' NO SYSIN DATA - TOTAL COPY 45420001 HIGHCODE EQU X'04' COMPLETION CODE OF 8 45440001 LOWCODE EQU X'02' COMPLETION CODE OF 4 45460001 PAGEOV EQU X'01' OVER RIDE PAGE COUNT SUPPLIED 45480001 IEBED14 DS XL1'00' PUT - PRINT SWITCH CONTROL 45500001 DELETE EQU X'80' DELETE RECORD 45520001 INSERT EQU X'40' INSERT RECORD 45540001 JOBLIB1 EQU X'20' SECOND JOBLIB SWITCH YA01706 45546002 CONCAT EQU X'10' JOBLIB CONCAT SWITCH YA01706 45552002 SLASNON EQU X'04' /*NONE BLANK SW @ZA07327 45552199 COMMENT EQU X'02' COMMENT CARD (//*) @ZA04410 45552403 CARDUT1 EQU X'01' ANY CARD ON SYSUT1 SWITCH @YA02576 45554002 * 45560001 IEBED20 DS F SYSIN DCB ADDRESS 45580001 SYSIN EQU IEBED20 45600001 * 45620001 IEBED21 DS F SYSUT1 DCB ADDRESS 45640001 SYSUT1 EQU IEBED21 45660001 * 45680001 IEBED22 DS F SYSUT2 DCB ADDRESS 45700001 SYSUT2 EQU IEBED22 45720001 * 45740001 IEBED23 DS F SYSPRINT DCB ADDRESS 45760001 SYSPRINT EQU IEBED23 45780001 * 45800001 IEBED30 DS F POINTER TO BEGINNING OF STEP NAME ENTRIES 45820001 IEBED31 DS F POINTER TO END OF STEP NAME ENTRIES 45840001 IEBED32 DS F POINTER TO START JOBNAME 45860001 IEBED33 DS F POINTER TO BEGIN INCLUSIVE STEPNAMES 45880001 IEBED34 DS F POINTER TO END INCLUSIVE STEPNAMES 45900001 IEBED41 DS XL8'00' 45920001 * TYPE ROUTINE 45940001 IEBED45 DS 10F CARD SCAN 45960001 IEBED46 DS 4F WORK AREA FOR PUT-PRINT ROUTINE 45980001 IEBED50 DS 14F SAVE AREA NUMBER 1 46000001 IEBED51 DS 10F SUBROUTINE REG SAVE AREA TWO 46020001 IEBED52 DS 15F SAVE 46040001 IEBED60 DS F POINTER TO NEXT AVAILABLE PERM AREA LOCATION 46060001 IEBED61 DS F POINTER TO BEGIN PERM AREA 46080001 IEBED99 DS 0F BEGINNING OF PERMANENT WORK AREA 46100001 OFF EQU X'FF' 46120001 EJECT 46140001 SCWORK EQU IEBED45 46160001 SCFD EQU SCWORK 46180001 SCFUN EQU SCWORK+4 46200001 SCBEGTRT EQU SCWORK+8 46220001 SCLENTRT EQU SCWORK+12 46240001 SCCOPT EQU SCWORK+16 46260001 SCCPT EQU SCWORK+20 46280001 SCOVER EQU SCWORK+24 46300001 SCCOP EQU SCWORK+28 46320001 SCCP EQU SCWORK+32 46340001 SC1 EQU SCWORK+39 46360001 SC2 EQU SCWORK+37 46380001 SC3 EQU SCWORK+38 CHARACTER 46400001 SC4 EQU SCWORK+36 TRT ENTRY BYTE 46420001 * 46440001 R4 EQU REVEN 46460001 SCCARD EQU IEBED00+256 46480001 R9 EQU RCARD 46500001 R5 EQU RODD 46520001 SC1000 EQU IEBED00+500 46540001 SCEODAD EQU SCEOD 46560001 SP EQU TYPE 46580001 PAGE EQU R6 PAGE COUNTER 46600001 LINE EQU R7 LINE COUNTER 46620001 DCBAD EQU 8 46640001 LNCNT EQU IEBED46+2 46660001 ASACODE EQU IEBED46+4 46680001 HPAGE EQU IEBED46+8 46700001 DBLWD EQU IEBED00 DOUBLE WORD FOR PAGE NUMBER 46720001 PRNTAREA EQU IEBED00+8 46740001 END IEBEDIT 46760001