./ ADD SSI=00010294,NAME=IEWLMADA,SOURCE=0 TITLE 'ADDRESS ASSIGNMENT' 00100000 * * 00200000 *********************************************************************** 00300000 *********************************************************************** 00400000 * 00500000 *STATUS: CHANGE LEVEL 00600000 *FUNCTION: * 00700000 * 1) ASSIGN LINKED ADDRESSES TO ALL CONTROL SECTIONS AND LABELS * 00800000 * THEREIN * 00900000 * 2) IF IN OVERLAY DETERMINE SEGMENT ADDRESSES * 01000000 * 3) DETERMINE PSEUDO REGISTER DISPLACEMENTS AND CUMULATIVE LENGTH * 01100000 * 4) PRINT MESSAGE FOR ALL UNRESOLVED EXTERNAL REFERENCES * 01200000 * 5) SET CERTAIN ESD TYPES TO NULL - DELETE LINE TYPE ER SUBTYPE * 01300000 * (BYTE 13 OF CESD) AS FOLLOWS * 01400000 * A) ALL CARDS EXCEPT ALIAS (F0 - B0,90) * 01500000 * B) NO CALL UNMATCHED (04) * 01600000 * C) UNMATCHED LIBRARY MEMBER (02) * 01700000 * 6) IF IN OVERLAY COMPUTE LENGTH OF SEGTAB * 01800000 * 7) GO TO IEWLKENS TO DETERMINE SEGMENT NUMBERS FOR LABELS AND TO * 01900000 * COMPUTE ENTAB SIZES (ONLY IF IN OVERLAY) * 02000000 * * 02100000 *ENTRY POINTS: * 02200000 * 1) IEWLMADA - CONTROL SECTION NAME - MAIN ENTRY POINT * 02300000 * 2) IEWLCAD1 - LABEL - ENTERED FROM IEWLKENS TO MAKE CESD ENTRIES * 02400000 * FOR ENTABS * 02500000 * * 02600000 *INPUT: * 02700000 * 1) GP REGISTER 2 - ADDRESS OF ALL PURPOSE TABLE 02800000 *EXTERNAL ROUTINES: * 02900000 * 1) IEWLMENS -ENTAB SIZE DETERMINATION 03000000 * 2) IEWLMENT 03100000 * 3) IEWLELOG - ERROR DIAGNOSTIC ROUTINE * 03200000 * * 03300000 *EXITS: * 03400000 * 1) IEWLMOUT (NORMAL) - INTERMEDIATE OUTPUT PROCESSOR 03500000 * 2) IEWLMFNL (NO CESD OR TEXT) FINAL PROCESSOR 03600000 * * 03700000 *TABLES: * 03800000 * INPUT * 03900000 * 1) COMPOSITE EXTERNAL SYMBOL DICTIONARY * 04000000 * 2) ALL PURPOSE TABLE * 04100000 * 3) SEGTA1 (OVERLAY ONLY) * 04200000 * * 04300000 * INTERNALLY USED * 04400000 * 1) SEGMENT LENGTH TABLE * 04500000 * * 04600000 * OUTPUT * 04700000 * 1) RELOCATION CONSTANT TABLE * 04800000 * 2) UPDATED COMPOSITE EXTERNAL SYMBOL DICTIONARY * 04900000 *********************************************************************** 05000000 *********************************************************************** 05100000 * IEWLMADA -ADDRESS ASSIGNMENT * 05200000 * * 05300000 IEWLMADA CSECT 05400000 * 452000-453000 A26192 05450000 *I089600 SA59373 05460021 *I090100,I093800 SA61636 05470021 *D090100-093900 SA65984 05480000 ENTRY IEWLCAD1 05500000 ENTRY SEGLNTAB 05600000 *********************************************************************** 05700000 * REGISTER ASSIGNMENT * 05800000 *********************************************************************** 05900000 ERRCODE EQU 0 06000000 ERRSYMAD EQU 1 06100000 TEMP2 EQU 1 06200000 WORK4 EQU 1 06250000 APT EQU 2 06300000 CSLGTH EQU 3 CONTROL SECTION LENGTH 06400000 WORK1 EQU 3 06500000 MAXSEGCT EQU 3 MAX.NO OF SEGMENTS 06600000 CSSEGNO EQU 4 CONTROL SECTION SEGMENT NO 06700000 WORK2 EQU 4 06800000 CSASADD EQU 5 CONTROL SECTION ASSEMBLED ADD. 06900000 WORK3 EQU 5 07000000 CESDCRCT EQU 6 07100000 CESDCRAD EQU 7 07200000 TEMP1 EQU 7 07300000 SEGLGTH EQU 8 07400000 ASMADD EQU 9 07500000 CURSEGNO EQU 9 07600000 LOCCTR EQU 10 07700000 ADTXTIOT EQU 11 07800000 BASE EQU 12 07900000 ACUMZERO EQU 13 08000000 TEST EQU 13 08050000 RETURN EQU 14 08100000 BRANCH EQU 15 08200000 EBIT EQU X'80' ENTAB PRESENT MASK 08300000 OVLYOFF EQU X'DF' MASK TO TURN OVERLAY OFF 08400000 OVRLAYBT EQU X'20' 08500000 RCCOMP EQU X'20' RELOCATION CONST IS IN COMPFORM 08600000 USING APTDSECT,APT DECLARE APT BASE 08700000 USING ADA00100+2,BASE 08800000 ADA00100 BALR BASE,0 08900000 BC 15,MODID+6 08930000 MODID DC C'01MADA' 08960000 * 09400000 * INITIALIZATION 09500000 * 09600000 * 09700000 * SET SEGMENT LENGTH TABLE = 0 09800000 * 09900000 * USE OBJECT MODULE BUFFER FOR SEG LENGTH TABLE - USE LOWER ADDRESS 09920000 CLC IEWLCRBB+4(4),IEWLCRBB+8 09940000 BL ADA00110 FIRST LOW- USE IT 09960000 L SEGLGTH,IEWLCRBB+8 FIRST HIGH- USE SECOND 09980000 B ADA00115 10000000 ADA00110 L SEGLGTH,IEWLCRBB+4 USE FIRST 10020000 ADA00115 ST SEGLGTH,SEGLNTAB SAVE LOW ADD AS ADD OF SEG LNGTH TAB 10040000 SR WORK3,WORK3 CLEAR REGISTER 10060000 IC WORK3,CSNO+1 GET HIGHEST SEGMENT USED 10080000 LA WORK3,1(WORK3) ADD 1 FORRE-ORIGINING 10100000 MH WORK3,SIX MULT BY NUM BYTES/ENTRY FOR TOTAL 10120000 SR WORK2,WORK2 CLEAR REMAINDER REGISTER 10140000 D WORK2,CONST256 DVIDE BY 256 10160000 LR TEMP1,SEGLGTH ADDR. OF BEG SEGMNT LGTH TABLE 10180000 LTR WORK3,WORK3 IF LESS THAN 256 BYTES QUOTIENT = 0 10200000 BC 2,CLRBUF IF NOT SO, BEGIN CLEARING TABLE 10220000 B CLRFNL IF QUOTIENT = 0, CLEAR NON-MULTIPLE OF 256 10240000 CLRBUF XC 0(256,TEMP1),0(TEMP1) CLEAR 256 BYTES 10260000 LA TEMP1,256(TEMP1) UPDATE PTR BY 256 10280000 BCT WORK3,CLRBUF REDUCE QUOTIENT & IF NOTZERO- RETURN 10300000 CLRFNL BCTR WORK2,0 DECREMENT FOR PROPER CLEARING 10320000 EX WORK2,CLRLAST CLEAR LAST NON-MULTIPLE OF 256 10340000 XC HIADDREG(12),HIADDREG SET HIADDREG,BGADDREG,CURRREGN 10400000 * AND NCESDCT = 0 (12 BYTES) 10500000 * = 0 (10 BYTES ) 10600000 *********************************************************************** 11700000 * TEST IF CESD CURRENT CT = 0 - YES-ERROR /GO TO FINAL * 11800000 * PROCESSOR * 11900000 *********************************************************************** 12000000 ADA00120 BAL RETURN,ADA02300 GO TO TEST CESD CT = 0 12100000 *********************************************************************** 12200000 * TEST IF PROGRAM IS IN OVERLAY - YES/ COMPUTE SIZE SEGTB* 12300000 *********************************************************************** 12400000 TM PDSE7,OVRLAYBT IS PROGRAM IN OVERLAY 12500000 BC 1,ADA01000 YES GO TO INIT SEGTAB & ENS 12600000 *********************************************************************** 12700000 * GO TO IEWLKENS TO DETERMINE SEGMENT NUMBERS FOR LABELS * 12800000 * REG 13 SUPPLIED BUT REGISTERS NEED NOT BE SAVED * 12900000 *********************************************************************** 13000000 ADA00122 LA 13,SAVEREGS SAVE REG AREA AADDRESS FOR ENS 13100000 L BRANCH,ENSVCON ADDRESS OF IEWLCENS 13200000 BALR RETURN,BRANCH BRANCH TO IEWLCENS 13300000 ********************************************************************** 13302000 * * 13304000 * FIRST SEARCH ASSIGN TEMPORARY LINKED ADDRESSES * 13306000 * TO ALL CSECTS REFERENCED IN THE TXTIO TABLE * 13308000 * * 13310000 ********************************************************************** 13312000 * 13314000 * SET UP SEARCH OF TXTIO TABLE 13316000 ST TEST,SAVE13 KEEP ADDRESS OF SAVE AREA FOR REGIS 13318000 SR TEST,TEST 13320000 CH TEST,ENTOC IS THERE ANY TEXT 13322000 BC 11,ADA00140 NO TXT - SEARCH CESD 13324000 OI TWELVE,X'80' SET SWITCH INDICATNG TXTIO LOOP 13326000 L ADTXTIOT,TXTIO ADDR OF TXTIO TABLE 13328000 LR TEST,ADTXTIOT ADDRESS TXTIOT TABLE 13330000 AH TEST,ENTOC TEST NOW CONTAINS END ADDR OF TXTIOT 13332000 ADA00123 CR ADTXTIOT,TEST ANY MORE TXT IN TXTIOT 13334000 BC 11,ADA00135 NO- SET IN TXTIOT LOOP OFF 13336000 TM 2(ADTXTIOT),X'20' IS IT OUT OF ORDER TXT 13338000 BC 1,ADA00133 YES--ID FOR TXTIO ENTRY ALREADY 13340000 * PROCESSD. CHECK NEXT ENTRY. 13342000 * FIND CESD ENTRY 13344000 LH CESDCRAD,0(ADTXTIOT) CESD ENTRY ID (FROM TXTIOT) 13346000 SLL CESDCRAD,4 FIND REL. ADDR. ON CESD (*16) 13348000 A CESDCRAD,CHESD ADDRESS OF CESD ENTRY 13350000 TM 08(CESDCRAD),X'08' HAS CESD ENTRY BEEN PROCESSED 13352000 BC 1,ADA00133 YES- CHECK NEXT TXTIOT ENTRY 13354000 TM 8(CESDCRAD),X'0B' IS TYPE SD OR PC 13356000 BC 7,ERRETURN NO-ERROR-GO TO NEXT ENTRY 13358000 CLI 8(CESDCRAD),X'14' IS THIS A PC FOR ENTAB OR SEGTB 13360000 BC 7,ADA00175 NO - PROCESS CESD ENTRY 13362000 * ERROR FOUND LOG IT THEN CONTINUE 13364000 ERRETURN LA RETURN,ADA00175 13366000 L BRANCH,ERDIG 13368000 LH ERRCODE,ERRPARM8 GIVE TXTIOT ERROR MESSAGE 13370000 BR BRANCH 13372000 ADA00130 OI 8(CESDCRAD),X'08' SET CESD ENTRY PROCESSED SWITCH 13374000 ADA00133 LA ADTXTIOT,INC(ADTXTIOT) UPDATE ADDRESS 13376000 B ADA00123 GO TO NEXT TXTIOT ENTRY 13378000 ADA00135 NI TWELVE,X'7F' TURN TXTIO LOOP SWITCH OFF 13380000 B ADA00140 SEARCH CESD 13382000 ADA00136 NI 8(CESDCRAD),X'F7' SET PROCESSD SWITCH OFF 13384000 B ADA00400 CHECK END OF LOOP 13386000 *********************************************************************** 13400000 * * 13500000 * SEARCH CESD FOR NON-PROCESSED CSECTS- NO TEXT * 13600000 * COMMON, ASSIGN TEMP LINKED ADDRESSES 13700000 * COMPUTERELOCATION CONSTANTS (PUT IN RCT),DETERMINE * 13800000 * PSEUDO REGISTER DISPLACEMENTS AND TOTAL LENGTH * 13900000 * * 14000000 *********************************************************************** 14100000 ADA00140 LH CESDCRCT,ENCDC CURRENT NO. CESD ENTRIES 14200000 L CESDCRAD,CHESD CESD ADD 14300000 LA WORK4,1(CESDCRCT) CESD CURRENT CT + 1 14400000 STH WORK4,NCESDCT INITIALIZE NCESD CT 14500000 ADA00150 LA CESDCRAD,16(CESDCRAD) POINTS TO CURRENT CESD ENTRY 14600000 CLI 8(CESDCRAD),X'0A' 14610000 BE ADA00400 14620000 TM 8(CESDCRAD),X'08' HAS CESD ENTRY BEEN PROCESSED 14630000 BC 1,ADA00136 YES- SET PROCESSD SW OFF- 14660000 NI 8(CESDCRAD),X'DF' SET BIT 2 OF TYPE BYTE TO 0 14700000 MVN TESTTYPE(1),8(CESDCRAD) MOVE LOW 4 BITS FOR ESDTYPETEST 14800000 TM TESTTYPE,X'02' IS TYPE NOT SO,PC OR CM 14900000 BC 1,ADA00850 YES 15000000 *********************************************************************** 15500000 * IS THIS CESD ENTRY THE PC DELETE FOR SEGTAB / YES -DONOT 15600000 * ASSIGN AN ADDRESS TO IT ( IT IS INITIALIZED TO 0) * 15700000 *********************************************************************** 15800000 LR TEMP2,CESDCRAD 15900000 S TEMP2,CHESD REL ID 16000000 SRL TEMP2,4 ID 16100000 CH TEMP2,ENSPX IS THIS A SEGTAB ENTRY 16200000 BC 8,ADA00400 YES DO NOT ASSIGN ADDRESS 16300000 *********************************************************************** 16400000 * USING SEGMENT NUMBER REFERENCE SEGMENT LENGTH TABLE AND* 16500000 * FIND LENGTH OF THIS SEGMENT * 16600000 *********************************************************************** 16700000 ADA00175 SR SEGLGTH,SEGLGTH 16800000 IC SEGLGTH,12(CESDCRAD) PICK UP SEG NO OF THIS CESD ENT 16900000 MH SEGLGTH,SIX MULTIPLY BY 6 (6BYTES/ENTRY) 17000000 A SEGLGTH,SEGLNTAB POINTS TO AN ENTRY IN SEG LENGTH TAB 17100000 MVI CONSTWK,X'00' 17200000 MVC CONSTWK+1(3),0(SEGLGTH) MOVE SEGMENT LG TO CONST+1 17300000 L ASMADD,8(CESDCRAD) ASSEMBLED ADDRESS OF THIS CS 17400000 LA ASMADD,0(ASMADD) REMOVE TYPE 17500000 L LOCCTR,CONSTWK LENGTH OF THIS SEGMENT 17600000 *********************************************************************** 17700000 * IF SEGMENT LENGTH = 0 SAVE LOW 3 BITS OF ASSEMBLED ADD* 17800000 *********************************************************************** 17900000 LTR LOCCTR,LOCCTR IS LENGTH = 0 18000000 BC 2,ADA00200 NO 18100000 LA WORK1,7 SET REG TO 7/FOR SAVING LOW 3 18200000 NR WORK1,ASMADD SAVE LOW 3 BITS OF ASSEMBLED AD 18300000 STC WORK1,3(SEGLGTH) STORE LOW 3 BITS OF CS INSGLGTH 18400000 *********************************************************************** 18500000 * MAKE TEMPORARY LINKED ADDRESS (SEGMENT LENGTH) MODULO 8* 18600000 * WITH ASSEMBLED ADDRESS - SAVE TLA IN CESD * 18700000 *********************************************************************** 18800000 ADA00200 LR WORK1,ASMADD SAVE ASSEMBLED ADDRESS 18900000 SR WORK1,LOCCTR MAKE TEMP LINKED ADD MOD 8 WITH 19000000 LA WORK2,7 THE ASSEMBLED ADDRESS OF CS 19100000 NR WORK1,WORK2 19200000 AR LOCCTR,WORK1 ANS IN LOCCTR (TLA) 19300000 IC WORK2,8(CESDCRAD) SAVE TYPE 19400000 ST LOCCTR,8(CESDCRAD) PUT TLA IN CESD 19500000 STC WORK2,8(CESDCRAD) RESTORE TYPE 19600000 LR WORK1,LOCCTR SAVE LOCCTR (TLA) 19700000 *********************************************************************** 19800000 * DETERMINE ADDRESS OF RELOCATION CONST IN RCT FOR THIS CS 19900000 *********************************************************************** 20000000 * 20100000 LR WORK2,CESDCRAD 20200000 S WORK2,CHESD RELATIVE CESD ADD 20300000 SRL WORK2,2 RELATIVE RC ADD 20400000 A WORK2,RECNT ADD OF A RCT ENTRY/RCT 1-1 CESD 20500000 *********************************************************************** 20600000 * COMPUTE RELOCATION CONSTANT , RC = TLA - AA /PUT IN RCT 20700000 *********************************************************************** 20800000 SR WORK1,ASMADD COMPUTE RCT = TLA - ASSM ADD 20900000 BC 11,ADA00250 IF POSITIVE -- CONTINUE 20950000 OI 8(CESDCRAD),X'20' IF NEG- INCICATE NEG RELOC CONST 21000000 ADA00250 ST WORK1,0(WORK2) STORE TRC IN RELOC CONST TABLE 21050000 *********************************************************************** 21100000 * ADD CS LENGTH TO CS TLA AND SAVE IN SEG LENGTH TABLE/SEG 21200000 *********************************************************************** 21300000 ADA00300 MVC CONSTWK(4),12(CESDCRAD) MOVE LENGTH TO CONST 21400000 MVI CONSTWK,X'00' SET IST BYTE TO ZERO 21500000 A LOCCTR,CONSTWK ADD LENGTH TO LOCATION CTR 21600000 ST LOCCTR,CONSTWK 21700000 BAL RETURN,ADA02450 GO TO TEST FOR VALID LENGTH 21800000 ADA00350 MVC 0(3,SEGLGTH),CONSTWK+1 PUT TLA + L (CURRENT SEG LG) IN 21900000 TM TWELVE,X'80' IN TXTIOT LOOP? 21920000 BC 1,ADA00130 YES- SET CESD ENTRY PROCESSED 21940000 L TEST,SAVE13 RESTORE REG 13 21960000 * 21980000 ADA00400 BCT CESDCRCT,ADA00150 SEGLGTH TABLE /BRANCH IFNOTDON 22000000 *********************************************************************** 22100000 * TEST FOR OVERLAY-YES/ GO TO SCAN SEG LENGTH TABLE * 22200000 *********************************************************************** 22300000 TM PDSE7,OVRLAYBT IS PROGRAM IN OVERLAY 22400000 BC 1,ADA01100 YES 22500000 MVC SIZSAVE+1(3),0(SEGLGTH) GET PROGRAM LENGTH 22510000 L WORK1,SIZSAVE 22520000 LA WORK1,7(WORK1) ROUND SIZE TO NEXT 22530000 N WORK1,ROUNDOFF DOUBLE WORD 22540000 ST WORK1,SIZSAVE SAVE SIZE FOR PDS DIRECTORY 22550000 MVC 0(3,SEGLGTH),SIZSAVE+1 22560000 MVC PDSE9(3),0(SEGLGTH) PUT PROGRAM LENGTH IN PDS 22600000 *********************************************************************** 22700000 * SCAN CESD - RELOCATE ADDRESSES OF LRS-PROCESS ERS * 22800000 *********************************************************************** 22900000 ADA00550 LH CESDCRCT,ENCDC CURRENT NO. CESD ENTRIES 23000000 L CESDCRAD,CHESD CESD ADD 23100000 ADA00600 LA CESDCRAD,16(CESDCRAD) INCREMENT TO FIRST(NEXT) ENTRY 23200000 MVN TESTTYPE(1),8(CESDCRAD) MOVE LOW 4 BITS FOR ESDTYPETEST 23300000 CLI TESTTYPE,X'0A' 23330000 BC 7,ADA00601 23360000 XC 9(4,CESDCRAD),9(CESDCRAD) 23390000 B ADA00650 23420000 ADA00601 CLI TESTTYPE,X'02' 23450000 BC 8,ADA00900 YES / GO TO ER ROUTINE 23500000 CLI TESTTYPE,X'07' IS TYPE NULL 23600000 BC 8,ADA00700 YES / TEST END OF LOOP 23700000 CLI TESTTYPE,X'03' IS TYPE = LR 23800000 BC 7,ADA00650 NO / GO TO SAVE Y 23900000 LH WORK1,14(CESDCRAD) YES LR - NOW RELOCATE TLA/ ID 24000000 SLL WORK1,2 MULTIPLY BY 4 24100000 A WORK1,RECNT POINTS TO RCT ENTRY OF SD,PC,CM 24200000 L WORK2,0(WORK1) RELOCATION CONSTANT = RC 24300000 LR WORK1,CESDCRAD 24400000 S WORK1,CHESD REL ADD OF LR ENTRY IN RCT 24500000 SRL WORK1,2 24600000 A WORK1,RECNT ADD OF RC FOR LR 24700000 ST WORK2,0(WORK1) ST RC OF LR 24800000 A WORK2,8(CESDCRAD) ADD RC TO ASSEMBLED ADD OF LR 24900000 IC WORK1,8(CESDCRAD) SAVE TYPE 25000000 ST WORK2,8(CESDCRAD) STORE LINKED ADDRESS OF THIS LR 25100000 STC WORK1,8(CESDCRAD) RESTORE TYPE 25200000 * SAVE CURRENT CESD CT - CESD LINE NUMBER + 1 = Y 25300000 ADA00650 STH CESDCRCT,NCESDCT SAVE Y 25400000 ADA00700 BCT CESDCRCT,ADA00600 BRANCH IF LOOP OF CESD NOT DONE 25500000 * COMPUTE NEW CESD CURRENT NUMBER ENTRIES 25600000 LH CESDCRCT,NCESDCT Y= CESD CURR CT - CESD LN NO +1 25700000 BCTR CESDCRCT,0 Y-1 25800000 LCR CESDCRCT,CESDCRCT Y-1 IN COMPLEMENT FORM 25900000 AH CESDCRCT,ENCDC CESD ID OF LAST NON NULL LINE 26000000 STH CESDCRCT,ENCDC SAVE NEW CESD CT 26100000 BAL RETURN,ADA02300 GO TO TEST CESD CT = 0 26200000 L BRANCH,ENTVCON GO TO ENTRY PROCESSOR 26300000 LA 13,SAVEREGS ADDRESS OF SAVE AREA FOR ENT 26400000 BALR RETURN,BRANCH (EXPECT ENT TO RETURN ALL REGS) 26500000 ADA00800 L BRANCH,OUTVCON GO TO OUTPUT PROCESSOR 26600000 BALR RETURN,BRANCH 26700000 *********************************************************************** 26800000 * TEST IF THIS IS A PSEUDO REGISTER * 26900000 * * 27000000 *********************************************************************** 27100000 ADA00850 CLI TESTTYPE,X'06' IS TYPE = PSEUDO REGISTER 27200000 BC 7,ADA00400 NO / GO TO TEST END OF LOOP 27300000 *********************************************************************** 27400000 * CESD TYPE = PSEUDO REGISTER 27500000 *********************************************************************** 27600000 SR WORK1,WORK1 27700000 IC WORK1,12(CESDCRAD) PSEUDO REGISTER ALIGNMENT 27800000 LCR WORK2,WORK1 2S COMPLEMENT OF ALIGNMENT 27900000 BCTR WORK2,0 IS COMPLEMENT OF ALIGNMENT 28000000 A WORK1,PRAL ADD PR LOC CTR TO ALIGNMENT 28100000 NR WORK1,WORK2 AND IS COMPLEMENT TO ADJUSTEDPR 28200000 IC WORK2,8(CESDCRAD) SAVE TYPE 28300000 ST WORK1,8(CESDCRAD) STORE PSEUDO REG NEW DISPLACMNT 28400000 STC WORK2,8(CESDCRAD) RESTORE TYPE 28500000 A WORK1,12(CESDCRAD) ADD PR LENGTH TO CULMULATIVE 28600000 LA WORK1,0(WORK1) REMOVE HI BYTE GARBAGE 28700000 ST WORK1,PRAL SAVE NEW CULMULATIVE TOTAL LGTH 28800000 BC 15,ADA00400 BRANCH TO TEST END OF CESD LOOP 28900000 *********************************************************************** 29000000 * TYPE = ER - DETERMINE SUBTYPE - * 29100000 *********************************************************************** 29200000 ADA00900 LA RETURN,ADA00650 RETURN TO SAVE Y 29300000 LA TEMP2,ADA00910 ADD OF NULLIFY ROUT 29400000 * 29500000 CLI 13(CESDCRAD),X'A0' IS TYPE = ALIAS 29600000 BCR 8,RETURN YES - RETURN TO MAIN LOOP 29700000 * 29800000 CLI 13(CESDCRAD),X'90' IS TYPE = NULL 29900000 BCR 11,TEMP2 GO TO NULLIFY CESD LINE 30000000 * 30100000 CLI 13(CESDCRAD),X'04' IS TYPE = NO CALL LOB MEMBER 30200000 BCR 8,TEMP2 YES - NULLIFY 30300000 * 30400000 CLI 13(CESDCRAD),X'02' IS TYPE = NULL 30500000 BCR 8,TEMP2 YES - NULLIFY 30600000 XC 9(4,CESDCRAD),9(CESDCRAD) SET ADD AND SEG FIELD = 0 30700000 * 30800000 CLI 13(CESDCRAD),X'06' IS TYPE = NEVER CALL 30900000 BC 8,ADA00904 YES / PRINT WARNING MESSAGE -ER 31000000 * MATCHED LIB.MEM.(TYPE 03) ARE REGULAR ERS 31100000 CLI 13(CESDCRAD),X'05' IS TYPE = NO CALL MATCHED 31200000 MVI 13(CESDCRAD),X'00' SET TYPE 05 OR 03 = 00 -REG.ER 31300000 BC 8,ADA00904 YES / PRINT WARNING MESSAGE -ER 31400000 * 31500000 LH ERRCODE,ERRPARM1 ER - ASSUME NO CALL OFF 31600000 TM APT0,X'80' IS NO CALL OPTION = ON 31700000 BC 8,ADA00905 NO - SEV 3 - EXEC ONLY IF LET 31800000 ADA00904 LH ERRCODE,ERRPARM2 ER - NO CALL ON 31900000 ADA00905 LR ERRSYMAD,CESDCRAD ADDRESS OF SYMBOL OF ER 32000000 ADA00906 L BRANCH,ERDIG ADDRESS OF ERROR DIAGNOSTIC RT 32100000 L 13,SAVE13 RESTORE ADDR. OF SAVE AREA 32150000 BCR 15,BRANCH GO TO ERROR ROUTINE - TYPE ER 32200000 * NULL LINE 32300000 ADA00910 XC 0(16,CESDCRAD),0(CESDCRAD) NULLIFY LINE 32400000 MVI 8(CESDCRAD),X'07' SET NULL TYPE 32500000 BC 15,ADA00700 RETURN TO TEST END OF LOOP 32600000 *********************************************************************** 32700000 * TEST IF CURRENT NO SEGMENTS IS GTR THAN 1/ NO ERROR * 32800000 * SET PROGRAM TO NOT IN OVERLAY * 32900000 *********************************************************************** 33000000 ADA01000 LH CSLGTH,CSNO CURRENT NUMBER OF SEGMENTS 33100000 BCT CSLGTH,ADA01050 BRANCH IF CURRNO SEG GTR 1 33200000 NI PDSE7,OVLYOFF SET PROG TO NOT IN OVERLAY 33300000 LH ERRCODE,ERRPARM5 LOAD ERR PARM - OVERLAY WARNING 33400000 LA RETURN,ADA00122 RETURN ADDRESS 33500000 BC 15,ADA00906 GO TO GO TO ERROR ROUTINE 33600000 ADA01050 LA CSLGTH,1(CSLGTH) RESTORE CURRENT NO SEGMENTS 33700000 SLL CSLGTH,2 MULTIPLY BY 4 33800000 LA CSLGTH,24(CSLGTH) LENGTH OF SEGTAB 33900000 L WORK4,SEGLNTAB 34000000 ST CSLGTH,CONSTWK 34100000 MVC 6(3,WORK4),CONSTWK+1 PUT SEGTAB LGTH IN SEGLGTH TBL 34200000 * AT ENTRY PER SEGMENT 1 34300000 MVC PDSE10(2),CONSTWK+2 PUT LENGTH OF SEGTAB IN PDS 34400000 SR CSASADD,CSASADD ASSEMBLED ADD OF SEGTAB = 0 34500000 LA CSSEGNO,1 SEGMENT NO = 1 34600000 BAL RETURN,ADA02500 GO TO PCB ROUT 34700000 * 34800000 MVC ENSPX(2),ENCDC PUT ESDID IN PDS (SEGTAB) 34900000 BC 15,ADA00122 GO TO SCAN CESD (MAIN FLOW) 35000000 * 35100000 * 35200000 ADA01100 LA CURSEGNO,1 INIT CURRENT SEGMENT =1 35300000 L SEGLGTH,SEGLNTAB ADDRESS OF SEG LENGTH TABLE 35400000 LR WORK4,SEGLGTH ADDRESS OF SEGLGTH 35500000 ADA01200 LA SEGLGTH,6(SEGLGTH) INC SEGMENT LG TBL ADD NXT ENTY 35600000 L WORK1,SGT1 ADDRESS OF SEGTAB1 35700000 SR WORK2,WORK2 35800000 IC WORK2,0(WORK1,CURSEGNO) PICK UP PRV SEGMENT NO. 35900000 LTR WORK2,WORK2 IS PREVIOUS SEGMENT NO.= 0 36000000 BC 2,ADA02400 NO 36100000 LH WORK3,CURRREGN LOAD CURRENT REGION NO. 36200000 ST CURSEGNO,CONSTWK CURR SEG NO 36300000 LA WORK2,LSTS(WORK3) ADDR OF LAST SEG OG PRES REG 36400000 CLC CONSTWK+3(1),0(WORK2) IS CURR SEG IN PRES REGION 36500000 BC 13,ADA01300 YES 36600000 LA WORK3,1(WORK3) INC CURRENT REG NO BY 1 36700000 STH WORK3,CURRREGN SAVE CURR REG NO 36800000 MVC BGADDREG(4),HIADDREG SET BEGIN ADDOF REG TO HIADDREG 36900000 ADA01300 L WORK3,BGADDREG LOAD BEGIN ADDRESS OF REGION 37000000 ADA01500 SR WORK1,WORK1 SAVE SEGMENT (PATH) LENGTH 37100000 IC WORK1,3(SEGLGTH) PICK UP FLAG BYTE FOR THIS SEG 37200000 SR WORK1,WORK3 3BITS OF AA - SEGLENGTH 37300000 LA WORK2,7 37400000 NR WORK1,WORK2 AND OUT ALL BUT LOW 3 BITS/DIFF 37500000 AR WORK3,WORK1 SEGMENT LENGTH NOW MODULO 8FLAG 37600000 ST WORK3,CONSTWK 37700000 NI CONSTWK+3,X'F8' AND OUT LOW 3 BITS OF SEGMENTRC 37800000 MVC 3(3,SEGLGTH),CONSTWK+1 PUT SEGMENT RC IN LST 3BYTSEGLG 37900000 MVC CONSTWK+1(3),0(SEGLGTH) MOVE LENGTH OFTHIS SEGMENT 38000000 MVI CONSTWK,X'00' SET HI BYTE OF LENGTH TO ZERO 38100000 A WORK3,CONSTWK ADD LENGTH OF THIS SEG TO PTHTL 38200000 ST WORK3,CONSTWK PUT UPDATED SEGMENT LENGTH IN 38300000 MVC 0(3,SEGLGTH),CONSTWK+1 SEGLGTH TBL AT THIS SEG ENTRY 38400000 BAL RETURN,ADA02450 GO TO TEST FOR VALID LENGTH 38500000 CL WORK3,HIADDREG IS THIS ADD GTR THAN CURR HIADD 38600000 BC 13,ADA01600 NO 38700000 ST WORK3,HIADDREG YES SAVE NEW HI ADDRESS 38800000 ADA01600 LA CURSEGNO,1(CURSEGNO) INC CURRENT SEGMENT CT 38900000 CH CURSEGNO,CSNO IS LOOP DONE 39000000 BC 13,ADA01200 NO / CONTINUE LOOP 39100000 * 39200000 * LOOP THROUGH CESD ADDING SEGMENT RC TO TLA OF (SD,PC,CM) 39300000 * AND TO TRC OF (SD,PC,CM) 39400000 L SEGLGTH,SEGLNTAB 39500000 L CESDCRAD,CHESD CESD ADDRESS 39600000 LH CESDCRCT,ENCDC CESD CURRENT COUNT 39700000 ADA01700 LA CESDCRAD,16(CESDCRAD) INCREMENT CESD ADDRESS 39800000 MVN TESTTYPE(1),8(CESDCRAD) MOVE TYPE FOR TESTING 39900000 CLI TESTTYPE,X'05' IS TYPE = CM 40000000 BC 8,ADA01750 YES 40100000 TM TESTTYPE,X'03' IS TYPE NOT = SD,PC,(W/O RLDS) 40200000 BC 5,ADA02000 NO GO TO TEST END OF LOOP 40300000 ADA01750 SR WORK1,WORK1 40400000 SR WORK1,WORK1 40500000 IC WORK1,12(CESDCRAD) PICK UP SEG NO OF THIS CESD ID 40600000 MH WORK1,SIX MULTIPLY BY 6 40700000 AR WORK1,SEGLGTH ADD SEGLGTH ADD /POINTS ENTRY 40800000 MVI CONSTWK,X'00' 40900000 MVC CONSTWK+1(3),3(WORK1) MOVE SEGMENT RC TO CONSTWK 41000000 L WORK1,CONSTWK LOAD SEGMENT RELOCATION CONST 41100000 LR WORK2,WORK1 SAVE SEGMENT RC 41200000 A WORK2,8(CESDCRAD) ADD TEMP LINKED ADD TO SEG RC 41300000 IC WORK3,8(CESDCRAD) SAVE TYPE 41400000 ST WORK2,8(CESDCRAD) STORE FINAL LINKED ADD 41500000 STC WORK3,8(CESDCRAD) RESTORE TYPE 41600000 LR WORK2,CESDCRAD SAVE CURRENT CESD ADD 41700000 S WORK2,CHESD FIND RELATIVE CESD ADD 41800000 SRL WORK2,2 FIND RELATIVE RCT (REL)ADD 41900000 A WORK2,RECNT ADDRESS OF THIS RC ENTRY 42000000 ADA01800 A WORK1,0(WORK2) ADD TRC TO SEG RC 42100000 ST WORK1,0(WORK2) PUT FINAL RC IN RCT 42200000 ADA02000 BCT CESDCRCT,ADA01700 BRANC IF LOOP NOT DONE 42300000 L WORK1,HIADDREG GET LENGTH OF LONGEST PATH 42320000 LA WORK1,7(WORK1) ROUND UP TOTAL LENGTH TO 42340000 N WORK1,ROUNDOFF NEXT DOUBLE WORD 42360000 ST WORK1,HIADDREG SAVE FOR PDS DIRECTORY 42380000 MVC PDSE9(3),HIADDREG+1 PUT TOTAL CONTIGOUS CORE REQ 42400000 BC 15,ADA00550 IN PDS / GO TO FINAL CESD LOOP 42500000 ADA02300 LH CESDCRCT,ENCDC CESD CURR CT 42600000 LTR CESDCRCT,CESDCRCT IS CESD CURR CT = 0 42700000 BCR 2,RETURN N/ / GO TO CALLER 42800000 L BRANCH,ERDIG ERROR RT ADDRESS 42900000 LH ERRCODE,ERRPARM3 CESD DOES NOT EXIST 43000000 BALR RETURN,BRANCH 43100000 L BRANCH,FNLVCON ADD OF FINAL PROC 43200000 BCR 15,BRANCH GO TO FINAL PROC 43300000 ADA02400 MH WORK2,SIX 43400000 AR WORK2,WORK4 ADDRESS OF A SEGLGTH ENTRY 43500000 MVI CONSTWK,X'00' 43600000 MVC CONSTWK+1(3),0(WORK2) MOVE SEG LGTH OF PRVIOUS SEG. 43700000 L WORK3,CONSTWK 43800000 LTR WORK3,WORK3 IS PRV. SEGMENT LENGTH = 0 43900000 BC 2,ADA01500 NO 44000000 SR WORK2,WORK2 44100000 IC WORK2,0(WORK1,CURSEGNO) PICK UP PRVIOUS SEGMENT NO. 44200000 IC WORK2,0(WORK1,WORK2) USING PRV.SEG.NO PICK UP ITSPRV 44300000 STC WORK2,0(WORK1,CURSEGNO) PUT PRV.OF PRV AS PRV TO THIS 1 44400000 BC 15,ADA02400 BRANCH TO GET SEG LENGTH OF 44500000 *********************************************************************** 44600000 * TEST IF CONTROL SECTION (OR SEGMENT) LENGTH EXCEEDS * 44700000 * 512 K - YES PRINT ERROR MESS - SEV 3 / CONTINUE * 44800000 *********************************************************************** 44900000 ADA02450 CLC CONSTWK,K512 IS ADDR LESS THAN OR = TO 512 K 45000000 BCR 13,RETURN YES -- RETURN 45100000 STM 13,1,SAVEA A26192 45130000 L BRANCH,ERDIG A26192 45160000 L 13,SAVE13 A26192 45190000 LH ERRCODE,ERRPARM6 A26192 45220000 BALR RETURN,BRANCH A26192 45250000 LM 13,1,SAVEA A26192 45280000 BCR 15,RETURN A26192 45310000 *********************************************************************** 45400000 * THE FOLLOWING BOX OF CODE WILL BE USED ON THE E LOADER * 45500000 * 1) IT COMPUTES NO.BYTES OF ENTAB PER SEGMENT * 45600000 * 2) IT MAKES AN ENTRY IN CESD FOR EACH SEGMENT* 45700000 * NOTE: 1) AND 2) ARE DONE ONLY IF A SEG HAS ENTAB * 45800000 * * 45900000 DROP BASE 46000000 USING IEWLCAD1,BRANCH 46100000 DS 0F 46200000 IEWLCAD1 LR TEMP1,BASE SAVE BASE OF IEWLKENS 46300000 L BASE,BASADD SET UP ADDRESSABILITY 46400000 LR TEMP2,RETURN SAVE RETURN ADD OF IEWLKENS 46500000 MH ACUMZERO,TWELVE CHANGE ENTAB LINES TO ENTAB 46600000 LA ACUMZERO,12(ACUMZERO) BYTES 46700000 C ACUMZERO,MULTSIZE IS ENTAB G.T. MULTIPLICITY 46720000 BC 2,ENTABERR YES GIVE TERMINAL ERROR MESSAGE 46740000 CH ACUMZERO,FOUR096 IS ENTAB G.T. ABSOLUTE MAX. 46760000 BC 2,ENTABERR YES, GIVE TERMINAL ERROR MESSAGE 46780000 SR CSASADD,CSASADD ADDRESS OF THIS ENTAB = 0 46800000 LR CSLGTH,ACUMZERO LENGTH OF THIS ENTAB (BYTES) 46900000 LR CSSEGNO,CURSEGNO SEGMENT NO OF THIS ENTAB 47000000 BAL RETURN,ADA02500 GO TO PCB ROUTINE 47100000 LR BASE,TEMP1 RESTORE BASE OF IEWLKENS 47200000 LR RETURN,TEMP2 RESTORE RETURN ADD OF IEWLKENS 47300000 BCR 15,RETURN RETURN TO ENS 47400000 ENTABERR LH ERRCODE,ERRPARM7 SET UP FOR 454 MESSAGE 47430000 BC 15,ADA02600+4 GO TO GIVE MSG AND TERMINATE 47460000 BASADD DC A(ADA00100+2) ADDRESS OF IEWLKADA+2 47500000 DROP BRANCH 47600000 USING ADA00100+2,BASE 47700000 *********************************************************************** 47800000 * 47900000 * PCB - PRIVATE CODE ENTRY BUILDING 48000000 * 48100000 * * 48200000 * REQUIRED REGISTERS & PARAMETERS * 48300000 * CESDADD (11) WORK REGISTER * 48400000 * APT (2)- ADDRESS OF APT * 48500000 * CSLGTH CONTROL SECTION LENGTH * 48600000 * CSSEGNO CONTROL SECTION SEGMENT NO. * 48700000 * CSASADD CONTROL SECTION ASSIGNED ADD * 48800000 * BASE (12) BASE REGISTER * 48900000 * RETURN (14) * 49000000 * 49100000 * REGISTERS 49200000 * 49300000 CESDADD EQU 11 49400000 ERRADD EQU 15 49500000 * APT DISPLACEMENTS 49600000 * DATA CONSTANTS AND TEMPORARY STORAGE 49700000 PCDELETE EQU X'14' CESD TYPE PC MARKED DELETE 49800000 ADA02500 LH CESDADD,ENCDC CURRENT NO CESD ENTRIES 49900000 LA CESDADD,1(CESDADD) INC CESD CURRENT CT 50000000 CH CESDADD,ENCDX IS CESD FULL 50100000 BC 10,ADA02600 50200000 STH CESDADD,ENCDC 50300000 ADA02550 SLL CESDADD,4 50400000 A CESDADD,CHESD 50500000 MVI 0(CESDADD),X'40' 50600000 MVC 1(7,CESDADD),0(CESDADD) 50700000 ST CSASADD,8(CESDADD) 50800000 MVI 8(CESDADD),PCDELETE 50900000 ST CSLGTH,12(CESDADD) 51000000 STC CSSEGNO,12(CESDADD) 51100000 BCR 15,RETURN 51200000 ADA02600 LH ERRCODE,ERRPARM4 CESD OVERFLOW 51300000 L ERRADD,ERDIG 51400000 BCR 15,ERRADD 51500000 *********************************************************************** 51600000 * TEMPORARY ERROR PARMS * 51700000 *********************************************************************** 51800000 DISP1 EQU X'22' DISP = 2 SEV = 2 NCAL OFF 51900000 DISP2 EQU X'21' DISP = 2 SEV = 1 NCAL ON 52000000 DISP3 EQU X'03' DISP = 0 SEV = 3 NO 52100000 DISP4 EQU X'04' 52200000 DISP5 EQU X'01' DISP = 0 SEV = 1 52230000 DISP6 EQU X'02' DISP = 0 SEV = 2 52260000 * 52300000 * MESSAGE NUMBERS ARE DECIMAL 52400000 * 52500000 MESS1 EQU 13 UNRESOLVED ER NCALL OFF 52600000 MESS2 EQU 46 UNRESOLVED ER NCALL ON 52700000 MESS3 EQU 12 NO CESD 52800000 MESS4 EQU 25 CESD OVERFLOW 52900000 MESS5 EQU 20 ONLY 1 SEGMENT IN AN OVERLAY STRUCTURE 52910000 MESS6 EQU 19 OUTPUT LOAD MODULE GREATER THAN 512K 52920000 MESS7 EQU 45 ENTAB GREATER THAN MULT SIZE OR 4K 52930000 * TOO MANY DOWNWARD CALLS FROM SEGMENT 52940000 MESS8 EQU 38 ID FOR TEXT IN TXTIOT IS NOT SD,PC, OR CM 52950000 DS 0F 53000000 EXTRN IEWLMLDB 53100000 SYSLIBAD DC A(IEWLMLDB) SYSLIB DCB ADDRESS 53200000 ERRPARM1 DC AL1(DISP1) UNRESOLVED XTERNAL REFERENCE 53300000 DC AL1(MESS1) SEV =2 - NCALL OFF 53400000 * 53500000 ERRPARM2 DC AL1(DISP2) UNRESOLVED XTERNAL REF 53600000 DC AL1(MESS2) SEV=1 - NCAL ON 53700000 * 53800000 ERRPARM3 DC AL1(DISP3) NO CESD 53900000 DC AL1(MESS3) SEV = 3 54000000 * 54100000 ERRPARM4 DC AL1(DISP4) CESD OVERFLOW 54200000 DC AL1(MESS4) 54300000 * 54305000 ERRPARM5 DC AL1(DISP5) ONLY 1 SEGMENT IN AN OVERLAY 54310000 DC AL1(MESS5) PROGRAM - OVERLAY OPTION 54315000 * CANCELLED 54320000 * 54325000 ERRPARM6 DC AL1(DISP5) OUTPUT LOAD MODULE IS GREATER XXX 54330000 DC AL1(MESS6) THAN 512K - OUTPUT MODULE IS 54335000 * MARKED NOT EXECUTABLE 54340000 * 54345000 ERRPARM7 DC AL1(DISP4) ENTAB HAS EXCEEDED MULTIPLICITY 54350000 DC AL1(MESS7) SIZE OR THE MAX. OF 4K. 54355000 * TOO MANY DOWNWARD CALLS IN SEG. 54360000 * 54365000 ERRPARM8 DC AL1(DISP6) ID IN TXTIOT IS NOT SD, OR PC 54370000 DC AL1(MESS8) INVALID ID MESSAGE ISSUED 54375000 * 54380000 * MASKS & CONSTANTS 54400000 * 54500000 OUTVCON DC V(IEWLMOUT) ADD OF OUTPRO 54600000 ENSVCON DC V(IEWLMENS) ADDRESS OF ENTAB SIZE DETERMINATION 54700000 ENTVCON DC V(IEWLMENT) ADDRESS OF ENTRY PROCESSOR 54800000 FNLVCON DC V(IEWLMFNL) ADDRESS OF FINAL PROCESSOR 54900000 SAVEA DS 5F A26192 54950000 CONSTWK DC F'0' WORK WORD 55000000 SIX DC H'6' VALUE OF 6 55100000 CLRLAST XC 0(0,TEMP1),0(TEMP1) INSTRUCTION FOR CLEARING TABLES 55110000 K512 DC X'00080000' 512 K 55120000 CONST256 DC F'256' USED FOR CLEARING TABLES 55130000 SIZSAVE DC F'0' AREA FOR MANIPULATING PGM SIZE 55140000 ROUNDOFF DC X'FFFFFFF8' MASK FOR ROUNDING TO NEXT 55150000 * DOUBLE WORD 55160000 SAVE13 DS 1F 55170000 INC EQU 4 NUMBRR OF BYTES/ENTRY ON TXTIOT 55180000 *********************************************************************** 55200000 * HIADDREG,BGADDREG,CURREGN,NCESDCT MUST BE IN THE CONTIG* 55300000 * UOUS ORDER - THEY ARE REFERENCED AS A BLOCK * 55400000 *********************************************************************** 55500000 HIADDREG DC F'0' PRESENT HIGH ADDRESS OF THISREG 55600000 BGADDREG DC F'0' PRESENT BEGIN ADDR OF REG 55700000 NCESDCT DS H Y - USED TO RECORD CESD CURR CT 55800000 CURRREGN DC H'0' CURRENT REGION NUMBER 55900000 TWELVE DC H'12' 56000000 DS 0F 56100000 *********************************************************************** 56200000 TESTTYPE DC X'00' USED FOR TESTING ESD TYPES 56700000 * HI 4 BITS= 0,LOW 4 BITS FORTYPE 56800000 FOUR096 DC H'4096' CONSTANT OF 4K 56900000 SEGLNTAB DS F ADDRESS OF SEGMENT LENGTH TABLE 56950000 * TABLE ALSO USED BY IEWLMOUT FOR HI ID'S 57000000 DS 50F 57050000 SAVEREGS DS 16F 57100000 *********************************************************************** 57200000 * * 57300000 *********************************************************************** 57400000 IEWAPT 57500000 END 57600000 ./ ADD SSI=00010505,NAME=IEWLMAPT,SOURCE=0 TITLE 'ALL PURPOSE TABLE' 03000000 * * * * * * * * 06000000 *FUNCTION: TO PROVIDE THE ALL PURPOSE TABLE USED BY THE OTHER CSECTS * 09000000 * * 12000000 *ENTRY POINTS: IEWLMAPT - CSECT NAME * 15000000 * IEWLCRBB - DEFINING SYSLIB DECB * 18000000 * IEWLCRBN - DEFINING SYSLIN DECB * 21000000 * * 24000000 * REFERENCED BY ALL LINKAGE EDITOR CSECTS THROUGH REG 2 * 27000000 * * 30000000 * INPUT/OUTPUT - NOT APPLICABLE 33000000 * * 36000000 * EXTERNAL ROUTINES - NOT APPLICABLE * 39000000 * * 42000000 * EXITS - NOT APPLICABLE * 45000000 * * 48000000 *NOTES: THE ADDRESS OF THE ALL PURPOSE TABLE IS PLACED IN REG 2 BY * 51000000 * THE LINKAGE EDITOR INITIALIZER AND KEPT THERE FOR USE * 54000000 * BY THE OTHER ROUTINES * 57000000 * * * * * * * * 60000000 IEWLMAPT CSECT 63000000 *A870000 S21016 66000021 *I885600 SA56444 66050021 ENTRY IEWLCRBB 69000000 ENTRY IEWLCRBN 72000000 ENTRY APT000 75000000 EXTRN IEWLCPDB 78000000 EXTRN IEWLCSDB 81000000 EXTRN IEWLMLDB 84000000 IEWAPT A 87000000 EJECT 87010021 *********************************************************************** 87020021 * * 87030021 * THE FOLLOWING SECTION IS A WORK AREA USED BY * 87040021 * MODULE IEWLMRAT WHICH INCLUDES CSECT'S IEWLMRAT * 87050021 * (THE INPUT RLD PROCESSOR) AND IEWLMTXT (THE * 87060021 * INPUT TEXT PROCESSOR). THIS WORK AREA HAS BEEN * 87070021 * PROMOTED TO THE ROOT SEGMENT IN ORDER TO ALLOW * 87080021 * A CHANGE IN THE OVERLAY TREE STRUCTURE OF THE * 87090021 * 44K DESIGN OF LINKAGE EDITOR F. * 87100021 * S21016 * 87110021 *********************************************************************** 87120021 SPACE 2 87130021 DS 0F 87140021 DELR DC X'0000' DELINKED R POINTER SAVE AREA 87150021 CONZO DC H'0' 87160021 * RLD NOTE LIST ENTRY MODEL 87170021 SPACE 1 87180021 CNOP 0,4 ALIGN TO START PREP ON HALF WORD 87190021 PRER DC X'FFFF' PREVIOUS 'R' ID 87200021 PREP DC X'FFFF' PREVIOUS 'P' ID 87210021 RLDMULT DC X'0200' FLAG-MULTIPLICITY FIELD 87220021 * BIT 0 -- 0 -- RLD NOT IN CORE 87230021 * 1 -- RLD IN CORE 87240021 * BIT 1 -- 0 -- GROUPED ENTRY 87250021 * 1 -- TTR ENTRY 87260021 * BIT 2 -- RESERVED 87270021 * BIT 3 -- 0 -- IN BUFFER 1 87280021 * 1 -- IN BUFFER 2 87290021 * BIT 4 -- RESERVED 87300021 * BIT 5 -- RESERVED 87310021 * BITS 6-15 -- MULTIPLICITY ID 87320021 WDCNT DC X'0000' RLD WORD COUNT 87330021 RTTR1 DC X'00000000' TTR/ACCUMULATED WORD COUNT FIELD 87340021 OBCNT DC X'0000' RLD BYTE COUNT 87350021 ENCT DC X'0000' RLD NOTE LIST ENTRY COUNT 87360021 DC X'0000' RESERVED 87370021 RLDFLGS DC X'0' RLD PROCESSING FLAGS 87380021 * BIT 0 -- 1 -- CONTINUED STRING OVERFLOWS 87390021 * BUFFER 87400021 * BIT 1 -- 1 -- NEW GROUPED STRING OVERFLOWS 87410021 * BUFFER 87420021 * BIT 2 -- 0 -- I/O CONTROL TABLE NOT FULL 87430021 * 1 -- I/O CONTROL TABLE FULL 87440021 * BIT 3 -- 0 -- NOTE LIST NOT FULL 87450021 * 1 -- NOTE LIST FULL 87460021 * BIT 4 -- 0 -- NO NOTE LIST PURGE NOW 87470021 * 1 -- NOTE LIST PURGED NOW 87480021 * BIT 5 -- 0 -- NO CHECK LAST WRITE NOW 87490021 * 1 -- CHECK LAST WRITE NOW 87500021 * BIT 6 -- 0 -- NOT FINAL CHECK 87510021 * 1 -- FINAL CHECK AT EOD 87520021 EJECT 87530021 BUFFS DC X'0' RLD BUFFER CONTROL FLAGS 87540021 * BIT 0 -- 1 -- BUFFER 1 OPENER 87550021 * BIT 1 -- 1 -- BUFFER 2 CHECKED 87560021 * BIT 2 -- 1 -- BUFFER 1 CHECKED 87570021 * BIT 3 -- 1 -- BUFFER 2 WRITTEN 87580021 * BIT 4 -- 1 -- BUFFER 1 WRITTEN 87590021 * BIT 5 -- 1 -- BUFFER 2 FULL 87600021 * BIT 6 -- 1 -- BUFFER 1 FULL 87610021 * BIT 7 -- 0 -- BUFFER 1 CURRENT 87620021 * 1 -- BUFFER 2 CURRENT 87630021 SPACE 1 87640021 SPACE 1 87650021 BUFSTCT DC F'0' BUFFERRED STRING COUNT 87660021 BUFSTLOC DC F'0' BUFFERRED STRING STARTING LOCATION 87670021 SPACE 2 87680021 * MODEL TO HOLD WRITE TIME ENVIRONMENT FOR CHECK USE 87690021 SPACE 1 87700021 CNOP 2,4 ALIGN TO START LPREP ON HALF WORD 87710021 LPREP DC X'0000' CESD ID FIELD 87720021 LRLDMULT DC X'0200' FLAG-ADDRESS FIELD 87730021 LWDCNT DC X'0000' RLD WORD COUNT 87740021 LRTTR1 DC X'00000000' TTR/STORAGE ADDRESS FIELD 87750021 LOBCNT DC X'0000' RLD BYTE COUNT 87760021 LENCT DC X'0000' RLD NOTE LIST ENTRY COUNT 87770021 DC X'0000' RESERVED 87780021 SPACE 2 87790021 * MODEL TO HOLD INITIAL BUFFER LOAD ENVIRONMENT 87800021 SPACE 1 87810021 CNOP 2,4 ALIGN TO START OPREP ON HALF WORD 87820021 OPREP DC X'0000' CESD ID FIELD 87830021 ORLDMULT DC X'0200' FLAG-ADDRESS FIELD 87840021 OWDCNT DC X'0000' RLD WORD COUNT 87850021 ORTTR1 DC X'00000000' TTR/STORAGE ADDRESS FIELD 87860021 OOBCNT DC X'0000' RLD BYTE COUNT 87870021 OENCT DC X'0000' RLD NOTE LIST ENTRY COUNT 87880021 DC X'0000' RESERVED 87890021 SPACE 2 87900021 * MODEL TO HOLD CURRENT ENVIRONMENT WHILE PREVIOUS ONE IS USED 87910021 SPACE 1 87920021 CNOP 2,4 ALIGN TO START CPREP ON HALF WORD 87930021 CPREP DC X'0000' CESD ID FIELD 87940021 CRLDMULT DC X'0200' FLAG-ADDRESS FIELD 87950021 CWDCNT DC X'0000' RLD WORD COUNT 87960021 CRTTR1 DC X'00000000' TTR/STORAGE ADDRESS FIELD 87970021 COBCNT DC X'0000' RLD BYTE COUNT 87980021 CENCT DC X'0000' RLD NOTE LIST ENTRY COUNT 87990021 DC X'0000' RESERVED 88000021 SPACE 2 88010021 TTR1 DC F'0' STORAGE FOR TTR OR INPUT COUNT 88020021 INADD1 DC F'0' RETURN TO INPUT PROCESSOR 88030021 SBACKUP DC F'0' SAVE AREA FOR REPLACEMENT STRING POINTER 88040021 SAVIDS DC F'0' SAVE AREA FOR REPLACEMENT ID'S 88050021 SAVETTR DC F'0' SAVE AREA FOR TTR 88060021 STRUNC DC X'000003FF' MULTIPLICITY SIZE LIMITOR 88070021 RIDMSK DC X'00007FFF' MASK FOR 'R' ID 88080021 SPACE 1 88090021 SAVIDR DC H'0' RESERVE AREA FOR RLD ITEM 'R' ID 88100021 CALLCURP DC H'0' 88110021 POSMULT DC H'0' RESERVE AREA FOR POSSIBLE LOWEST MULTIPLICITY 88120021 STM DC X'0200' RESERVE AREA FOR STRING MULTIPLICITY 88130021 SONE DC H'1' DECIMAL 1 88140021 SFOUR DC H'4' DECIMAL 4 88150021 SSEVEN DC H'7' DECIMAL 7 88160021 SNINE DC H'9' DECIMAL 9 88170021 SPACE 1 88180021 NFLG DC X'0' TEMPORARY RESERVE AREA FOR FLAGS 88190021 FLAG DC X'0' 88200021 SPACE 1 88210021 SFLIP DC X'00' TEMPORARY STORAGE FOR BUFFER FLAGS 88220021 DS 0H A36529 88230021 FIVEFIVE DC H'5' A36529 88240021 DLKTSAVE DC H'0' A36529 88250021 * 88260021 ****************TXT CONSTANTS*************** 88270021 * 88280021 DS 0F 88290021 DBLWRD DC X'FFFFFFF8' MASK TO ZERO LST THREE BITS 88300021 MULTONLY DC X'000003FF' MASK TO ZERO ALL BUT MULT 88310021 IOCTSTAT DC X'00' I/O CONTROL TABLE OVFLO IND 88320021 * ENTRIES WRITTEN 88330021 TXTWR DC H'0' CONTAINS DISPLACEMENT IN TXTIO TABLE OF 88340021 BUFSTART DC F'0' 88350021 BUFDISP DC F'0' 88360021 HOLD DC 2F'0' MISC FOR ENTER INFO INTO TABLES 88370021 TXTFREE DC F'0' FIRST FREE ADDR IN TXTIO 88380021 TNTFREE DC F'0' FIRST FREE ADDR IN NOTELIST 88390021 TXTNOTE DC H'0' HOLDS THE ACTUAL NUMBER OF ENTRIES OF THE 88400021 * TXT NOTELIST THAT HAVE BEEN WRITTEN. IT WILL NOT GE THE MAX IN 88410021 * SITUATIONS REQUIRE MULTIPLE ENTRIES 88420021 CURID DC 2X'0' MAINTAINS CURRENT ID AND MULTIPLICITY 88430021 CMULN DC 2X'0' 88440021 PID DC 2X'0' MAINTAINS PAST ID & MULT 88450021 PMULN DC 2X'0' 88460021 MAXMULT DC H'512' 88470021 TSEVEN DC H'7' CCONSTANT USED TO DECREMENT NOTELIST ADDR 88480021 SWITCH DC XL2'00' 88490021 * BIT 0 NO LENGTH INDICATOR 88500021 * BIT 1 DENSE INDICATOR (NOT RELATED TO TXTIO FLAG) 88510021 * BIT 2 LOAD MODULE INDICATOR FOR DUMMY READ 88520021 * BIT 3 NOLENGTH AND HAVE RECEIVED NEW ID POST TRUE LEN 88530021 * BIT 4 NOLEN CLEAN UP ON END OF ENPUT 88540021 * BIT 5 LOAD MODULE READ TO BE ISSUED 88550021 * BIT 6 RESERVED 88552021 * BIT 7 LAST WRITE SIGNAL WHEN GROUPING ON UT1 88560021 * BIT 8 FLAG FOR SPECIAL LOAD MODULE TEXT SITUATION SA56444 88560421 * BIT 9-10 RESERVED 88562021 * BIT 11 FLAG FOR NONGROUPED PURGE REQUIRED 88564021 * BIT 12-15 RESERVED 88566021 HOLD1 DS 2F 88570021 DISPLAC DC F'0' 88580021 TXTALLOC EQU * USED FOR LM TO MAINTAIN ALLOC SIZE 88590021 LASTTNT DC F'0' MAINTAIN LAST NOTELIST ADDR 88600021 FROMAD DC F'0' START & END FOR DENSE RECORDS 88610021 TOADDR DC F'0' 88620021 CDISP DC H'0' DISPLACEMENT IN MULTIPLICITY 88630021 ACUMLEN DC F'0' WILL ACCUMULATE LENGTH OF LM RECORD TO ENABLE 88640021 LMLEN DS F WILL HOLD TOTAL LENGTH OF LM INPUT RECORD 88650021 * RECOMPUTATION OF ASSM ADDR 88660021 RETURNAD EQU * SAVES RETURN WHEN PROCESS FINISHED 88670021 IDLENPTR DS 1F PTR TO ID-LENGTH ENTRY 88680021 CREND DS 1F PTR TO END OF ID-LENGTH LIST 88690021 CONZO1 DC F'0' CONSTANT OF ZERO 88700021 TXTACUM DC H'0' 88710021 TSCNEND DS F END OF SCN 88720021 HOLD3 DS 3F 88730021 END 90000000 ./ ADD SSI=00011846,NAME=IEWLMBTP,SOURCE=0 TITLE 'BIT MAP PROCESSOR' 00070000 IEWLMBTP CSECT 00140000 * 214200,215100,221400,283000,96574-966540 A22116 00210000 * 280800,883800,891900 A19764 00280000 * 216100,231400 A26860 00350000 * 249300,855900,865800 A31124 00420000 * 065400,112500,117400,117900-129600,136800,137700, S20007 00490000 * 153000,154800,415800-420300,449100-453600 S20007 00560000 *A045900,072900,139500,161100,216500,304600,978920 S21016 00630000 *C057600 S21016 00700000 *A234500,318500,903700,927500 S21016 00710021 *C231000 S21016 00720021 *D233800 S21016 00730021 *A234600,928050 A37667 00740021 *C245000 A37667 00750021 *A234670,31900,319100,928190-928198 A52450 00760000 *I245000,A537600,A539000 SA53762 00762021 *A059500 SA57135 00764021 *A221200,A245500,I928198 SA66746 00766021 *C222600,C239400,I928808 SA68552 00768021 *C225400,C243600,I319100,I894600 SA69196 00768421 * * 00770000 *FUNCTION: PRINTS ENGLISH LANGUAGE MESSAGES CORRESPONDING TO * 00840000 * ERRROR CODES GENERATED. * 00910000 * * 00980000 *ENTRY POINTS IEWLMBTP ONLY * 01050000 * * 01120000 *INPUT: BIT MAP (2 WORDS) IN ALL PURPOSE TABLE. * 01190000 * * 01260000 *OUTPUT: ON SYSPRINT. * 01330000 * * 01400000 *EXITS: NORMAL RETURN ONLY. * 01470000 * * 01540000 *TABLES: * 01610000 * * 01680000 *TABLE CONTAINS INCREMENTS INTO THE LIST ARRAY. THE LIST ARRAY IS USED* 01750000 *TO COMPOSE THE PHRASE TABLE. * 01820000 * * 01890000 *PHRASES CONTAINS PHRASES WHICH ARE ASSEMBLED TO FORM MESSAGES. * 01960000 * * 02030000 *REUSABLE. * 02100000 * * 02170000 ENDFLAG EQU X'FF' 02240000 SINGLE EQU X'09' PRINT AND SINGLE SPACE 02310000 DOUBLE EQU X'13' IMMEDIATE DOUBLE SPACE 02380000 TRIPLE EQU X'19' PRINT AND TRIPLE SPACE 02450000 SKIP EQU X'8B' IMMEDIATE SKIP TO CHANNEL 1 02520000 SKPLN EQU X'0B' IMMEDIATE SKIP ONE LINE 02590000 TABENTSZ EQU 2 02660000 LISENTSZ EQU 3 02730000 NUMBLINS EQU 55 LINES PER PAGE 02800000 RENTRY EQU 1 02870000 APT EQU 2 02940000 REXEC EQU 3 03010000 NUM EQU 3 S20007 03080000 TSO EQU X'80' TSO SWITCH IN APTSWS S20007 03150000 TERM EQU X'02' TERM SWITCH IN NEWSW S20007 03220000 TERMWRT EQU X'04' WRITE TO TERM. SWITCH S20007 03290000 RBITMAP1 EQU 4 03360000 RBITMAP2 EQU 5 03430000 RINDEX EQU 6 03500000 RLIMIT EQU 7 03570000 RTEST1 EQU 8 03640000 RPRINT EQU 8 03710000 RDCB EQU 9 03780000 RTEST2 EQU 9 03850000 RTABLE EQU 10 03920000 RINTRET EQU 11 03990000 RBASE EQU 12 04060000 RSAVREG EQU 13 04130000 RBUF EQU 14 04200000 RLIST EQU 15 04270000 SPACE 1 S21016 04340000 ******SYMBOLIC EQUATES FOR HANDLING BITMAP2 MESSAGES****** S21016 04410000 SPACE 1 S21016 04480000 SWON EQU X'01' MASK FOR BITMAP2 SWITCH S21016 04550000 SWOFF EQU X'FE' IMMEDIATE TO TURN OFF S21016 04620000 * BITMAP2 SWITCH S21016 04690000 ONE EQU 1 VALUE OF 1 S21016 04760000 BM2LN EQU 16 LENGTH OF BITMAP+BITMAP2 S21016 04830000 USING *,RLIST 04900000 USING APTDSECT,APT ESTABLISH ADDRESSABILITY WITH 04970000 * APT 05040000 * 05110000 * ESTABLISH BASE ADDRESSABILITY AND SAVE REGISTERS. 05180000 * 05250000 BTP000 BC 15,MODID+6 BRANCH AROUND MODULE IDENT 05320000 MODID DC C'02MBTP' 05390000 STM RBUF,RBASE,SPACES+12 SAVE REGS. 05460000 LA RSAVREG,REGSA LOAD SAVE AREA POINTER 05530000 LR RBASE,RLIST ESTABLISH 05600000 USING BTP000,RBASE ADDRESSABILITY 05670000 DROP RLIST 05740000 L RPRINT,TXTIO LOAD ADDRESS OF PRINT BUFFER 05810000 MVC 0(2,RPRINT),P086 SET TWO BLANKS FOR FINAL PRINT 05880000 MVC 2(119,RPRINT),1(RPRINT) BLANK OUT BUFFERS S20007,SA57135 05950021 NC BITMAP(BM2LN),BITMAP ARE ANY MESSAGES LOGGED? S21016 06020000 BC 8,BTP074 NO, EXIT 06090000 * GIVEN AT LEAST ONE MESSAGE,PRINT HEADER LINE 06160000 MVI 0(RPRINT),DOUBLE SET FOR DOUBLE SPACE 06230000 TM APTSWS,TSO IS TSO IN EFFECT? S20007 06300000 BC 1,BTP005 YES--BRANCH AROUND LINE COUNT S20007 06370000 LH REXEC,LINECNT GET NO. OF LINES ON OUTPUT PAGE 06440000 SH REXEC,CNTDEC DECREMENT LINE COUNT BY 5 06510000 BC 2,BTP005 BRANCH IF GREATER THAN ZERO 06580000 LA REXEC,52 IF NOT, SET LINE COUNT T0 52 FOR 06650000 * NEW PAGE 06720000 MVI 0(RPRINT),SKIP SET FOR EJECT TO NEW PAGE 06790000 BTP005 LH NUM,IEWLCWBB+14 LOAD LRECL S20007 06860000 BAL RINTRET,BTP060 S20007 06930000 STH REXEC,LINECNT STORE LINE COUNT 07000000 MVC 2(120,RPRINT),1(RPRINT) BLANK OUT BUFFERS 07070000 MVC 46(28,RPRINT),BTPHDR MOVE IN HEADER 07140000 MVI 0(RPRINT),TRIPLE SET FOR TRIPLE SPACE 07210000 BAL RINTRET,BTP060 TO PRINT ROUTINE 07280000 * 07350000 * INITIALIZE REGISTERS 07420000 * 07490000 MVI CHARTEST,C'0' INITIALIZE SEVERITY LEVEL 07560000 NI BTP2SW,SWOFF TURN OFF BITMAP2 SWITCH S21016 07630000 LM RBITMAP1,RBITMAP2,BITMAP GET BITMAP 07700000 SR REXEC,REXEC ZERO OUT REGISTER S20007 07770000 XC NCHAR(2),NCHAR ZERO OUT COUNTER S20007 07840000 LA RINDEX,TABENTSZ SET INCREMENT FOR LOOPING THRU 07910000 * TABLE 07980000 * 08190000 * LOOP ON SEVERITY LEVEL 08260000 * 08330000 BTP007 SR RTEST1,RTEST1 INITIALIZE TEST REG. TO ZERO 08400000 LA RTEST2,1 TURN ON LOW-ORDER BIT IN REG.- 08470000 * PAIR FOR TESTING BITMAP 08540000 LA RTABLE,TABLE INITIALIZE TABLE ENTRY POINTER 08610000 LA RLIMIT,TABLEND SET LIMIT FOR LOOPING THROUGH 08660021 * TABLE 08670021 * 08680000 * LOOP TESTING SUCCESSIVE BITS FOR NEED FOR ERROR MESSAGES. 08750000 * 08820000 BTP010 STM RTEST1,RTEST2,BITMAP SAVE BIT CONFIGURATION TO BE 08890000 * TESTED 08960000 L RBUF,TXTIO GET ADDRESS OF PRINT BUFFER 09030000 MVI 1(RBUF),C' ' SET BLANK IN FIRST CHARACTER OF 09100000 * LINE 09170000 MVC 2(240,RBUF),1(RBUF) PROPOGATE BLANKS THROUGH BUFFER 09240000 MVC 4(4,RBUF),IEWHEAD MOVE IN 'IEW0' MESSAGE HEADER 09310000 LA RBUF,8(0,RBUF) POINT TO LOCATION TO PLACE MSG.# 09380000 NR RTEST2,RBITMAP2 'AND' WORD 2 OF BITMAP WITH TEST 09450000 * BIT 09520000 BC 4,BTP020 BRANCH IF MATCH 09590000 NR RTEST1,RBITMAP1 TEST WORD ONE OF BITMAP 09660000 BC 8,BTP040 BRANCH IF NO MATCH 09730000 * 09800000 * ASSEMBLE INDICATED MESSAGE 09870000 * 09940000 BTP020 LH RLIST,0(0,RTABLE) GET INDEX TO APPROPRIATE MESSAGE 10010000 * LIST 10080000 LA RLIST,LIST(RLIST) ADD BEGINNING LIST ADDRESS TO 10150000 * INDEX 10220000 BTP030 MVC CRNO(2),1(RLIST) GET INDEX TO MSG. PHRASE 10290000 LH RENTRY,CRNO SET POINTER TO MSG. PHRASE 10360000 LA RENTRY,PHRASES(RENTRY) ADD STARTING ADDR. OF PHRASES TO 10430000 * PTR 10500000 IC REXEC,0(0,RLIST) GET NUMBER OF CHARACTERS IN 10570000 * PHRASE-1 10640000 EX REXEC,BTP050 MOVE PHRASE INTO BUFFER 10710000 LA RBUF,2(RBUF,REXEC) POINT TO LOC. FOR NEXT PHRASE 10780000 LA RLIST,LISENTSZ(0,RLIST) POINT TO NEXT ENTRY IN MSG. LIST 10850000 CLI 0(RLIST),ENDFLAG IS MSG. COMPLETE? 10920000 BC 7,BTP030 IF NOT CONTINUE LOOP 10990000 BCTR RBUF,0 IF COMPLETE, END 11060000 MVI 0(RBUF),C'.' SENTENCE WITH '.' 11130000 * 11200000 * PRINT THE ASSEMBLED MESSAGE. 11270000 * 11340000 L RPRINT,TXTIO 11410000 CLC 10(1,RPRINT),CHARTEST TEST FOR THIS SEVERITY 11480000 BC 7,BTP040 NO, OMIT PRINTING S20007 11550000 SR RBUF,RPRINT GET NO. CHAR. IN MESSAGE S20007 11620000 STH RBUF,NCHAR SAVE S20007 11690000 TM APTSWS,TSO TSO IN EFFECT? S20007 11760000 BC 1,BTP035A YES - SKIP LINE COUNT S20007 11830000 BTP031 LH RDCB,LINECNT PICK UP LINE CNT 11900000 BCT RDCB,BTP035 DECREMENT AND TEST FOR ZERO 11970000 LA RDCB,NUMBLINS SET TO NUMBER OF LINES PER PAGE 12040000 MVI 0(RPRINT),SKIP SET TO SKIP TO ONE 12110000 BAL RINTRET,BTP060 TO PRINT ROUTINE 12180000 BTP035 STH RDCB,LINECNT RESTORE LINE COUNTER 12250000 BTP035A MVI 0(RPRINT),SINGLE SET CARRIAGE CONTROL S20007 12320000 LH RTEST2,IEWLCWBB+14 GET LRECL S20007 12390000 AR RTEST2,RPRINT GET END OF PRINT LINE S20007 12460000 BCTR RTEST2,0 ADJUST FOR CARRIAGE CONTROL S20007 12530000 BTP035B CLI 0(RTEST2),C' ' IS END OF LINE A BLANK S20007 12600000 BE BTP035C YES - BRANCH S20007 12670000 BCT RTEST2,BTP035B LOOK FOR BLANK S20007 12740000 BTP035C LR NUM,RTEST2 S20007 12810000 SR NUM,RPRINT GET NO. CHAR. ON LINE S20007 12880000 BAL RINTRET,BTP060 GO PRINT LINE S20007 12950000 LH RTEST2,NCHAR S20007 13020000 SR RTEST2,NUM GET NO. OF CHAR. LEFT S20007 13090000 BC 12,BTP040 BRANCH IF NONE LEFT. S20007 13160000 LA RTEST2,11(RTEST2) ADJUST COUNT FOR LEADNG BLNKS S20007 13230000 STH RTEST2,NCHAR STORE COUNT S20007 13300000 AR RPRINT,NUM S20007 13370000 LA RTEST2,11 S20007 13440000 SR RPRINT,RTEST2 GET BEGINNING OF NEXT PART S20007 13510000 MVI 1(RPRINT),C' ' S20007 13580000 MVC 2(10,RPRINT),1(RPRINT) MOVE IN LEADING BLANKS S20007 13650000 B BTP035A 13720000 * 13790000 * EXECUTED MOVE. 13860000 * 13930000 BTP050 MVC 0(0,RBUF),0(RENTRY) 14000000 BTP055 MVC 0(0,RDCB),0(RPRINT) EX. MOVE S20007 14070000 * 14140000 * REINITIALIZE REGISTERS AND LOOP UNTIL LAST BIT TESTED. 14210000 * 14280000 BTP040 LM RTEST1,RTEST2,BITMAP S20007 14350000 XC NCHAR(2),NCHAR ZERO OUT COUNTER S20007 14420000 SLDL RTEST1,1 14490000 BXLE RTABLE,RINDEX,BTP010 14560000 TM BTP2SW,SWON IS BITMAP2 SWITCH ON? S21016 14630000 BO BTP042 IF SO, BRANCH S21016 14700000 OI BTP2SW,SWON IF NOT, TURN IT ON S21016 14770000 STM RBITMAP1,RBITMAP2,SAVBTP1 SAVE BITMAP S21016 14840000 LM RBITMAP1,RBITMAP2,BITMAP2 LOAD BITMAP2 S21016 14910000 LA RTABLE,TABLE2 POINT TO BITMAP2 TABLE S21016 14980000 LA RLIMIT,TAB2END POINT TO BITMAP2 LIMIT S21016 15050000 SR RTEST1,RTEST1 ZERO TEST REG.1 S21016 15120000 LA RTEST2,ONE TURN ON LOW ORDER BIT IN S21016 15190000 * TEST REG.2 S21016 15260000 B BTP010 GO TO SCAN BITMAP2 FOR S21016 15330000 * THE CURRENT SEVERITY S21016 15400000 BTP042 NI BTP2SW,SWOFF TURN OFF BITMAP2 SWITCH S21016 15470000 LM RBITMAP1,RBITMAP2,SAVBTP1 RESTORE BITMAP S21016 15540000 CLI CHARTEST,C'4' TEST FOR TOP SEVERITY 15610000 BE BTP074 YES EXIT 15680000 IC RTEST2,CHARTEST NO INSERT FOR INCREMENTING 15750000 LA RTEST2,1(0,RTEST2) INCREMENT BY ONE 15820000 STC RTEST2,CHARTEST RESTORE UPDATED CURRENT SEVERITY 15890000 B BTP007 LOOP ON THIS SEVERITY 15960000 * 16030000 * EXIT 16100000 BTP074 L RPRINT,IEWLCWBB+20 ADDRESS OF PRINT BUFFER 16170000 MVI 0(RPRINT),SKPLN IMMEDIATE SKIP ONE LINE 16240000 BTP075 BAL RINTRET,BTP065 GO TO PRINT 16310000 LM RBUF,RBASE,SPACES+12 RESTORE 16380000 BR RBUF 16450000 BTP060 L RDCB,IEWLCWBB+20 16520000 EX NUM,BTP055 MOVE IN MESSAGE. S20007 16590000 BTP065 L RLIST,PRNTAD ADDRESS OF PRINT ROUTINE 16660000 TM NEWSW,TERM IS TERM ON? S20007 16730000 BC 8,BTP065A NO - BRANCH S20007 16800000 OI IEWLCWBB+24,TERMWRT WRITE TO TERM. NEECED S20007 16870000 BTP065A BALR RBUF,RLIST S20007 16940000 BR RINTRET 17010000 CNTDEC DC AL2(5) 17080000 NCHAR DC 1H'0' CHARACTER COUNTER S20007 17150000 * 17220000 * CONSTANTS AND BUFFERS 17290000 * 17360000 PRNTAD DC V(IEWLEPNT) ADDRESS OF PRINT ROUTINE 17430000 IEWHEAD DC C'IEW0' 17500000 SAVBTP1 DS 2F SAVE AREA FOR BITMAP S21016 17570000 BTP2SW DS XL1 SWITCH FOR PROCESSING S21016 17640000 * BITMAP2; WHEN ON (VALUE = S21016 17710000 * X'01') BITMAP2 WILL BE S21016 17780000 * SCANNED FOR MESSAGES IN S21016 17850000 * THE CURRENT SEVERITY S21016 17920000 DS 0H 17990000 * 18060000 * TABLE OF INCREMENTS TO MESSAGE LISTS. 18130000 * 18200000 TABLE DC AL2(B001-LIST) 18270000 DC AL2(B002-LIST) 18340000 DC AL2(B003-LIST) 18410000 DC AL2(B004-LIST) 18480000 DC AL2(B005-LIST) 18550000 DC AL2(B006-LIST) 18620000 DC AL2(B007-LIST) 18690000 DC AL2(B008-LIST) 18760000 DC AL2(B009-LIST) 18830000 DC AL2(B010-LIST) 18900000 DC AL2(B011-LIST) 18970000 DC AL2(B012-LIST) 19040000 DC AL2(B013-LIST) 19110000 DC AL2(B014-LIST) 19180000 DC AL2(B015-LIST) 19250000 DC AL2(B016-LIST) 19320000 DC AL2(B017-LIST) 19390000 DC AL2(B018-LIST) 19460000 DC AL2(B019-LIST) 19530000 DC AL2(B020-LIST) 19600000 DC AL2(B021-LIST) 19670000 DC AL2(B022-LIST) 19740000 DC AL2(B023-LIST) 19810000 DC AL2(B024-LIST) 19880000 DC AL2(B025-LIST) 19950000 DC AL2(B026-LIST) 20020000 DC AL2(B027-LIST) 20090000 DC AL2(B028-LIST) 20160000 DC AL2(B029-LIST) 20230000 DC AL2(B030-LIST) 20300000 DC AL2(B031-LIST) 20370000 DC AL2(B032-LIST) 20440000 DC AL2(B033-LIST) 20510000 DC AL2(B034-LIST) 20580000 DC AL2(B035-LIST) 20650000 DC AL2(B036-LIST) 20720000 DC AL2(B037-LIST) 20790000 DC AL2(B038-LIST) 20860000 DC AL2(B039-LIST) 20930000 DC AL2(B040-LIST) 21000000 DC AL2(B041-LIST) 21070000 DC AL2(B042-LIST) 21140000 DC AL2(B043-LIST) 21210000 DC AL2(B044-LIST) 21280000 DC AL2(B045-LIST) 21350000 DC AL2(B046-LIST) 21420000 DC AL2(B047-LIST) 21490000 DC AL2(B048-LIST) 21560000 DC AL2(B049-LIST) 21630000 DC AL2(B050-LIST) 21700000 DC AL2(B051-LIST) 21770000 DC AL2(B052-LIST) 21840000 DC AL2(B053-LIST) 21910000 DC AL2(B054-LIST) 21980000 DC AL2(B055-LIST) A22116 22050000 DC AL2(B056-LIST) A34230,SA66746 22120021 DC AL2(B057-LIST) A34230 22190000 DC AL2(B058-LIST) A34230,SA68552 22260021 DC AL2(B059-LIST) 22330000 DC AL2(B060-LIST) A26860 22400000 DC AL2(B061-LIST) 22470000 DC AL2(B062-LIST) SA69196 22540021 TABLEND EQU * 22610000 DC AL2(B063-LIST) 22680000 * S21016 22750000 * TABLE OF MESSAGE LIST INCREMENTS FOR BITMAP2 S21016 22820000 * S21016 22890000 TABLE2 DC AL2(0) MESSAGE 64 S21016 22960000 DC AL2(0) MESSAGE 65 S21016 23030000 DC AL2(B066-LIST) MESSAGE 66 S21016 23100021 DC AL2(B067-LIST) MESSAGE 67 S21016 23170000 DC AL2(B068-LIST) MESSAGE 68 S21016 23240000 DC AL2(B069-LIST) MESSAGE 69 S21016 23310000 DC AL2(B070-LIST) MESSAGE 70 S21016 23450000 DC AL2(B071-LIST) MESSAGE 71 S21016 23460021 DC AL2(B072-LIST) MESSAGE 72 A37667 23465021 DC AL2(B073-LIST) MESSAGE 73 A52450 23467000 TAB2END EQU * TABLE2 LIMIT S21016 23470021 DC AL2(0) RESERVED S21016 23480021 * 23520000 * PHRASES FROM WHICH MESSAGES ARE COMPOSED. 23590000 * 23660000 P001 DC C'16193421264043241438302211320254' 23730000 PHRASES EQU P001 23800000 DC C'382412043552602' A26860 23870000 DC C'564572581' A34230,SA68552 23940021 P002 DC C'18284617294053544454847206364093' 24010000 CHARTEST EQU P002+16 CURRENT SEVERITY FOR PRINTING 24080000 P081 DC C'2' 24150000 P003 DC C'012314033274073740833945029102' 24220000 P021 DC C'322272' 24290000 P056 DC C'191622' SA69196 24360021 P082 DC C'594614' 24430000 P097 DC C'630722' A37667 24500021 P233 DC C'233564' SA53762,SA66746 24550021 P004 DC C'CARD IGNORED152 ' 24570000 P005 DC C'ERROR - ' 24640000 P006 DC C'INPUT CONTAINS ' 24710000 P007 DC C'INVALID TWO-BYTE RELOCATABLE ' 24780000 P008 DC C'ADDRESS CONSTANT, CONSTANT HAS ' 24850000 P009 DC C'NOT BEEN RELOCATED.' 24920000 P010 DC C'V-TYPE' 24990000 P011 DC C'ENTRY STATEMENT ' 25060000 P012 DC C'SYMBOL PRINTED IS ' 25130000 P013 DC C'INVALID (NOT AN EXTERNAL NAME), ' 25200000 P014 DC C'NO ENTRY POINT ASSIGNED' 25270000 P015 DC C'ON ' 25340000 P016 DC C'END NO ' 25410000 P017 DC C'TEXT RECORD ID IS INVALID, ' 25480000 P018 DC C'NOT IN ROOT SEGMENT OF ' 25550000 P019 DC C'OVERLAY STRUCTURE, ' 25620000 P020 DC C'OUTPUT MODULE' 25690000 P022 DC C'UNLESS LET OPTION WAS ' 25760000 P023 DC C'SPECIFIED DATA SET' 25830000 P024 DC C'CONTAINS NO ' 25900000 P025 DC C'CONTROL SECTIONS' 25970000 P026 DC C'NO ESD ENTRIES, ' 26040000 P027 DC C'EXECUTION IMPOSSIBLE' 26110000 P028 DC C'IS AN UNRESOLVED EXTERNAL ' 26180000 P029 DC C'REFERENCE;' A31124 26250000 P030 DC C'NCALIS ' 26320000 P031 DC C'INVALID ' 26390000 P032 DC C'EXCLUSIVE CALL ' 26460000 P033 DC C'FROM SEGMENT NUMBER' 26530000 P034 DC C'XCAL' 26600000 P036 DC C'MAIN STORAGE REQUIREMENTS FOR ' 26670000 P037 DC C'SCAN TERMINATED' 26740000 P038 DC C'MET' 26810000 P039 DC C'CONTAINS ONLY ONE' 26880000 P040 DC C'-- OVERLAY OPTION CANCELED' 26950000 P041 DC C'EXPECTED CONTINUATION CARD' 27020000 P042 DC C'WARNING - ' 27090000 P043 DC C'CARD PRINTED' 27160000 P044 DC C'INPUT FROM OBJECT MODULE' 27230000 P046 DC C'IS DOUBLY DEFINED -- ESD TYPE ' 27300000 P047 DC C'DEFINITIONS CONFLICT' 27370000 P048 DC C'TABLE OVERFLOW -- TOO MANY ' 27440000 P049 DC C'INPUT LOAD MODULE CONTAINS ' 27510000 P050 DC C'TOO MANY EXTERNAL SYMBOLS IN ESD' 27580000 P051 DC C'TO LEVEL F' 27650000 P052 DC C'CALLS BETWEEN' 27720000 P053 DC C' CONTAINING SUCH CONSTANTS' 27790000 P054 DC C'-- DDNAME PRINTED ' 27860000 P055 DC C'CANNOT BE OPENED,' 27930000 P057 DC C'HAD SYNCHRONOUS ERROR' 28000000 P058 DC C'MAXIMUM NUMBER OF ' 28070000 P059 DC C'REGIONS (4) ' 28140000 P060 DC C'EXCEEDED,' 28210000 P061 DC C'SEGMENTS' 28280000 P062 DC C'ALIASES(16)' 28350000 P035 DC C'NO CALLS OR BRANCHES MADE FROM ' 28420000 P063 DC C'LIBRARY SPECIFIED DOES NOT ' 28490000 P064 DC C'CONTAIN' 28560000 P065 DC C'AFFECTED BY ' 28630000 P066 DC C'RELOCATION.' A19764 28700000 P067 DC C'INPUT TEXT EXCEEDED MAXIMUM ' 28770000 P068 DC C'OR TOO MANY CHANGES OF ORIGIN' 28840000 P069 DC C'COMMON' A22116 28910000 P070 DC C'MEMBER NOT STORED IN LIBRARY -- ' 28980000 P071 DC C'NO SPACE LEFT IN DIRECTORY,' 29050000 P072 DC C'IDENTICAL NAME' 29120000 P073 DC C'WILL TRY TO STORE UNDER ' 29190000 P074 DC C'''TEMPNAME''' 29260000 P076 DC C'DOWNWARD' 29330000 P078 DC C'WITHIN A' 29400000 P079 DC C'UNDEFINED IN INPUT,' 29470000 P080 DC C'ON END CARD,' 29540000 P083 DC C'CONSTANTS OR' 29610000 P084 DC C'PERMANENT DEVICE ERROR' 29680000 P085 DC C'CARD FOUND IN LIBRARY,' 29750000 P045 DC C'492' 29820000 P087 DC C'EXCESS' 29890000 P088 DC C'512K BYTESHAVE' 29960000 P089 DC C'INCLUDE STATEMENT SYNTAX ' 30030000 P090 DC C'CONFLICTS WITH ' 30100000 P091 DC C'RECORD FORMAT OF' 30170000 P092 DC C'HAS UNACCEPTABLE' 30240000 P093 DC C'512522' 30310000 P094 DC C'532' 30380000 P095 DC C'BLOCKSIZE OF' 30450000 P096 DC C'DD CARD MAY BE MISSING' 30520000 P098 DC C'- XREF ABORTED' 30590000 P099 DC C'LENGTH' 30660000 P086 DC C' ' 30730000 P077 DC C'AND SUBROUTINE HAVE' A34230 30800000 P100 DC C'OR THE REFERENCE WAS MARKED FOR ' A31124 30870000 P101 DC C'RESTRICTED NO-CALL OR NEVERCALL' A31124 30940000 P102 DC C'SPECIFIED,' A31124 31010000 P103 DC C'670 THE SPECIFIED IDENTIFY DATA HAS BEEN' S21016 31080000 P104 DC C'ADDED TO THE IDR FOR THE CONTROL SECTION ' S21016 31150000 DC C'NAME PRINTED' S21016 31220000 P105 DC C'682 ERROR - CONTROL SECTION NAME ON AN ' S21016 31290000 DC C'IDENTIFY CONTROL' S21016 31360000 P106 DC C'STATEMENT IS INCORRECT OR THE STATEMENT IS' S21016 31430000 P107 DC C'MISPLACED -- IDENTIFY DATA IGNORED' S21016 31500000 P108 DC C'694 ERROR - TABLE OVERFLOW -- SIZE VALUE' S21016 31570000 P109 DC C'SPECIFIED NOT LARGE ENOUGH FOR CSECT IDR' S21016 31640000 P110 DC C'INPUT -- LINKAGE EDITOR PROCESSING TERMINATED' S21016 31710000 P111 DC C'704 UNRECOVERABLE ERROR DETECTED IN CSECT IDR' S21016 31780000 P112 DC C'INPUT -- LINKAGE EDITOR PROCESSING TERMINATED' S21016 31850000 P113 DC C'661714' S21016 31870021 P114 DC C'STOW WORKSPACE UNAVAILABLE' S21016 31890021 P115 DC C'731 WARNING - ALIAS MATCHES MEMBER NAME - ALIAS IGNOREX31900000 D' A52450 31910000 P116 DC C'REFERENCES NULL UNNAMED' SA69196 31912021 BTPHDR DC C'DIAGNOSTIC MESSAGE DIRECTORY' 31920000 * 31990000 * LISTS COMPRISING GROUPS OF 3-BYTE ENTRIES AS FOLLOWS -- 32060000 * 32130000 * 1 BYTE = LENGTH-1 OF PHRASE 32200000 * 2 BYTES = INCREMENT TO PHRASE, 32270000 * 32340000 * EACH GROUP FOLLOWED BY AN END FLAG. 32410000 * 32480000 * IEW0*012*ERROR - INPUT CONTAINS INVALID TWO-BYTE RELOCATABLE 32550021 * ADDRESS CONSTANT, CONSTANT HAS NOT BEEN RELOCATED. 32620000 B001 DC AL1(02) 32690000 LIST EQU B001 32760000 DC AL2(P003+00-P001) 32830000 DC AL1(100) 32900000 DC AL2(P005+00-P001) 32970000 DC X'FF' 33040000 * IEW0*022*ERROR - INPUT CONTAINS INVALID*V-TYPE*ADDRESS CONSTANT, 33110021 * CONSTANT HAS NOT BEEN RELOCATED. 33180000 B002 DC AL1(02) 33250000 DC AL2(P001+21-P001) 33320000 DC AL1(29) 33390000 DC AL2(P005+00-P001) 33460000 DC AL1(05) 33530000 DC AL2(P010+00-P001) 33600000 DC AL1(48) 33670000 DC AL2(P008+00-P001) 33740000 DC X'FF' 33810000 * IEW0*033*ERROR -*INVALID*ENTRY POINT*FROM*END CARD,*NO ENTRY POINT*33880021 ASSIGNED. 33950021 B003 DC AL1(02) 34020000 DC AL2(P003+06-P001) 34090000 DC AL1(06) 34160000 DC AL2(P005+00-P001) 34230000 DC AL1(06) 34300000 DC AL2(P013+00-P001) 34370000 DC AL1(10) 34440000 DC AL2(P014+03-P001) 34510000 DC AL1(03) 34580000 DC AL2(P033+00-P001) 34650000 DC AL1(08) 34720000 DC AL2(P080+03-P001) 34790000 DC AL1(22) 34860000 DC AL2(P014+00-P001) 34930000 DC X'FF' 35000000 B004 DC AL1(02) 35070000 DC AL2(P001+38-P001) 35140000 DC AL1(06) 35210000 DC AL2(P005+00-P001) 35280000 DC AL1(13) 35350000 DC AL2(P006+00-P001) 35420000 DC AL1(06) 35490000 DC AL2(P017+18-P001) 35560000 DC AL1(15) 35630000 DC AL2(P050+09-P001) 35700000 DC AL1(01) 35770000 DC AL2(P017+12-P001) 35840000 DC X'FF' 35910000 * IEW0*053*ERROR -*ENTRY STATEMENT SYMBOL PRINTED IS ILLEGAL (NOT 35980000 * AN EXTERNAL NAME), NO ENTRY POINT ASSIGNED. 36050000 B005 DC AL1(02) 36120000 DC AL2(P002+11-P001) 36190000 DC AL1(06) 36260000 DC AL2(P005+00-P001) 36330000 DC AL1(88) 36400000 DC AL2(P011+00-P001) 36470000 DC X'FF' 36540000 * IEW0*063*ERROR -*END CARD*SYMBOL PRINTED IS ILLEGAL (NOT AN 36610000 * EXTERNAL NAME), NO ENTRY POINT ASSIGNED. 36680000 B006 DC AL1(02) 36750000 DC AL2(P002+24-P001) 36820000 DC AL1(06) 36890000 DC AL2(P005+00-P001) 36960000 DC AL1(07) 37030000 DC AL2(P080+03-P001) 37100000 DC AL1(72) 37170000 DC AL2(P012+00-P001) 37240000 DC X'FF' 37310000 * IEW0*073*ERROR -*ENTRY STATEMENT SYMBOL PRINTED IS*NOT IN ROOT 37380000 * SEGMENT OF OVERLAY STRUCTURE,*NO ENTRY POINT ASSIGNED. 37450000 B007 DC AL1(02) 37520000 DC AL2(P003+12-P001) 37590000 DC AL1(06) 37660000 DC AL2(P005+00-P001) 37730000 DC AL1(32) 37800000 DC AL2(P011+00-P001) 37870000 DC AL1(40) 37940000 DC AL2(P018+00-P001) 38010000 DC AL1(22) 38080000 DC AL2(P014+00-P001) 38150000 DC X'FF' 38220000 * IEW0*083*ERROR -*END CARD*SYMBOL PRINTED*IS NOT IN ROOT SEGMENT 38290000 * OF OVERLAY STRUCTURE,*NO ENTRY POINT ASSIGNED. 38360000 B008 DC AL1(02) 38430000 DC AL2(P003+17-P001) 38500000 DC AL1(06) 38570000 DC AL2(P005+00-P001) 38640000 DC AL1(07) 38710000 DC AL2(P080+03-P001) 38780000 DC AL1(16) 38850000 DC AL2(P012+00-P001) 38920000 DC AL1(40) 38990000 DC AL2(P018+00-P001) 39060000 DC AL1(22) 39130000 DC AL2(P014+00-P001) 39200000 DC X'FF' 39270000 * IEW0*093*ERROR -*END CARD*ENTRY POINT*ADDRESS*PRINTED IS*NOT IN 39340000 * ROOT SEGMENT OF OVERLAY STRUCTURE,*NO ENTRY POINT* * 39410000 * ASSIGNED 39480000 B009 DC AL1(02) 39550000 DC AL2(P002+29-P001) 39620000 DC AL1(06) 39690000 DC AL2(P005+00-P001) 39760000 DC AL1(07) 39830000 DC AL2(P080+03-P001) 39900000 DC AL1(10) 39970000 DC AL2(P014+03-P001) 40040000 DC AL1(06) 40110000 DC AL2(P008+00-P001) 40180000 DC AL1(09) 40250000 DC AL2(P012+07-P001) 40320000 DC AL1(40) 40390000 DC AL2(P018+00-P001) 40460000 DC AL1(22) S20007 40530000 DC AL2(P014+00-P001) S20007 40600000 DC X'FF' 40670000 * IEW0*102*ERROR -*ILLEGAL*ENTRY POINT*ID ON END CARD,*ENTRY POINT* 40740000 * IGNORED. 40810000 B010 DC AL1(02) 40880000 DC AL2(P003+27-P001) 40950000 DC AL1(06) 41020000 DC AL2(P005+00-P001) 41090000 DC AL1(06) 41160000 DC AL2(P013+00-P001) 41230000 DC AL1(10) 41300000 DC AL2(P014+03-P001) 41370000 DC AL1(11) 41440000 DC AL2(P080+00-P001) 41510000 DC AL1(10) 41580000 DC AL2(P014+03-P001) 41650000 DC AL1(06) 41720000 DC AL2(P004+05-P001) 41790000 DC X'FF' 41860000 * IEW0*113*ERROR -*OUTPUT MODULE*CONTAINS NO CONTROL SECTIONS*IN 41930000 * ROOT SEGMENT OF OVERLAY STRUCTURE,*NO ENTRY POINT* * 42000000 * ASSIGNED. 42070000 B011 DC AL1(02) 42140000 DC AL2(P001+24-P001) 42210000 DC AL1(06) 42280000 DC AL2(P005+00-P001) 42350000 DC AL1(12) 42420000 DC AL2(P020+00-P001) 42490000 DC AL1(27) 42560000 DC AL2(P024+00-P001) 42630000 DC AL1(36) 42700000 DC AL2(P018+04-P001) 42770000 DC AL1(22) S20007 42840000 DC AL2(P014+00-P001) S20007 42910000 DC X'FF' 42980000 * IEW0*123*ERROR -*NO ESD ENTRIES, EXECUTION IMPOSSIBLE. 43050000 B012 DC AL1(02) 43120000 DC AL2(P003+01-P001) 43190000 DC AL1(06) 43260000 DC AL2(P005+00-P001) 43330000 DC AL1(35) 43400000 DC AL2(P026+00-P001) 43470000 DC X'FF' 43540000 * IEW0*132*ERROR -*SYMBOL PRINTED IS*AN UNRESOLVED EXTERNAL 43610000 * REFERENCE. 43680000 B013 DC AL1(02) 43750000 DC AL2(P001+25-P001) 43820000 DC AL1(06) 43890000 DC AL2(P005+00-P001) 43960000 DC AL1(13) 44030000 DC AL2(P012+00-P001) 44100000 DC AL1(34) 44170000 DC AL2(P028+00-P001) 44240000 DC X'FF' 44310000 * IEW0*143*ERROR -*NO TEXT*FOUND. 44380000 B014 DC AL1(02) 44450000 DC AL2(P001+16-P001) 44520000 DC AL1(06) 44590000 DC AL2(P005+00-P001) 44660000 DC AL1(06) 44730000 DC AL2(P016+04-P001) 44800000 DC X'FF' 44870000 * IEW0*152 ERROR -*ILLEGAL*OVERLAY STRUCTURE,*NO CALLS OR BRANCHES 44940000 * MADE FROM*ROOT SEGMENT. 45010000 B015 DC AL1(10) 45080000 DC AL2(P004+12-P001) 45150000 DC AL1(06) 45220000 DC AL2(P007+00-P001) 45290000 DC AL1(17) 45360000 DC AL2(P019+00-P001) 45430000 DC AL1(29) 45500000 DC AL2(P035+00-P001) 45570000 DC AL1(11) 45640000 DC AL2(P018+07-P001) 45710000 DC X'FF' 45780000 * IEW0*161*WARNING -*EXCLUSIVE CALL FROM SEGMENT NUMBER*PRINTED*TO* 45850000 * SYMBOL PRINTED. 45920000 B016 DC AL1(02) 45990000 DC AL2(P001+00-P001) 46060000 DC AL1(08) 46130000 DC AL2(P042+00-P001) 46200000 DC AL1(33) 46270000 DC AL2(P032+00-P001) 46340000 DC AL1(06) 46410000 DC AL2(P012+07-P001) 46480000 DC AL1(01) 46550000 DC AL2(P048+18-P001) 46620000 DC AL1(13) 46690000 DC AL2(P012+00-P001) 46760000 DC AL1(01) 46830000 DC AL2(P040+00-P001) 46900000 DC AL1(03) 46970000 DC AL2(P034+00-P001) 47040000 DC AL1(12) 47110000 DC AL2(P022+18-P001) 47180000 DC X'FF' 47250000 * IEW0*172*ERROR -*EXCLUSIVE CALL FROM SEGMENT NUMBER*PRINTED*TO* 47320000 * SYMBOL PRINTED*--*XCAL*OPTION*NOT*SPECIFIED. 47390000 B017 DC AL1(02) 47460000 DC AL2(P002+06-P001) 47530000 DC AL1(06) 47600000 DC AL2(P005+00-P001) 47670000 DC AL1(33) 47740000 DC AL2(P032+00-P001) 47810000 DC AL1(06) 47880000 DC AL2(P012+07-P001) 47950000 DC AL1(01) 48020000 DC AL2(P048+18-P001) 48090000 DC AL1(13) 48160000 DC AL2(P012+00-P001) 48230000 DC X'FF' 48300000 * IEW0*182*ERROR -*INVALID EXCLUSIVE CALL FROM SEGMENT NUMBER* 48370000 * PRINTED*TO*SYMBOL PRINTED. 48440000 B018 DC AL1(02) 48510000 DC AL2(P002+00-P001) 48580000 DC AL1(06) 48650000 DC AL2(P005+00-P001) 48720000 DC AL1(41) 48790000 DC AL2(P031+00-P001) 48860000 DC AL1(06) 48930000 DC AL2(P012+07-P001) 49000000 DC AL1(01) 49070000 DC AL2(P048+18-P001) 49140000 DC AL1(13) 49210000 DC AL2(P012+00-P001) 49280000 DC X'FF' 49350000 * IEW0*191*WARNING -MAIN STORAGE REQUIREMENTS FOR*OUTPUT*LOAD XXX 49420000 * MODULE*HAVE*EXCEEDED*512K BYTES 49490000 B019 DC AL1(02) 49560000 DC AL2(P056+00-P001) 49630000 DC AL1(08) 49700000 DC AL2(P042+00-P001) 49770000 DC AL1(28) 49840000 DC AL2(P036+00-P001) 49910000 DC AL1(05) 49980000 DC AL2(P020+00-P001) 50050000 DC AL1(10) 50120000 DC AL2(P049+06-P001) 50190000 DC AL1(03) 50260000 DC AL2(P088+10-P001) 50330000 DC AL1(07) 50400000 DC AL2(P060+00-P001) 50470000 DC AL1(09) 50540000 DC AL2(P088+00-P001) 50610000 DC X'FF' 50680000 * IEW0*201*WARNING -*OVERLAY STRUCTURE*CONTAINS ONLY ONE*SEGMENT* 50750021 * -- OVERLAY OPTION CANCELED. 50820000 B020 DC AL1(02) 50890000 DC AL2(P081+00-P001) 50960000 DC AL1(08) 51030000 DC AL2(P042+00-P001) 51100000 DC AL1(16) 51170000 DC AL2(P019+00-P001) 51240000 DC AL1(16) 51310000 DC AL2(P039+00-P001) 51380000 DC AL1(06) 51450000 DC AL2(P018+12-P001) 51520000 DC AL1(25) 51590000 DC AL2(P040+00-P001) 51660000 DC X'FF' 51730000 * IEW0*212*ERROR - EXPECTED CONTINUATION CARD*NOT*FOUND*--*CARD 51800000 * IGNORED. 51870000 B021 DC AL1(02) 51940000 DC AL2(P001+06-P001) 52010000 DC AL1(06) 52080000 DC AL2(P005+00-P001) 52150000 DC AL1(25) 52220000 DC AL2(P041+00-P001) 52290000 DC AL1(02) 52360000 DC AL2(P018+00-P001) 52430000 DC AL1(04) 52500000 DC AL2(P085+05-P001) 52570000 DC X'FF' 52640000 * IEW0*222*ERROR - CARD PRINTED NOT RECOGNIZED AS INPUT FROM OBJECT 52710000 * MODULE. 52780000 B022 DC AL1(02) 52850000 DC AL2(P021+01-P001) 52920000 DC AL1(06) 52990000 DC AL2(P005+00-P001) 53060000 DC AL1(11) 53130000 DC AL2(P043+00-P001) 53200000 DC AL1(07) 53270000 DC AL2(P039+00-P001) 53340000 DC AL1(06) 53410000 DC AL2(P031+00-P001) 53480000 DC AL1(23) 53550000 DC AL2(P044+00-P001) 53620000 DC X'FF' 53690000 * IEW0*233*ERROR -*INPUT FROM*LOAD MODULE*IS INVALID. SA53762 53760021 B023 DC AL1(02) 53830000 DC AL2(P233+00-P001) SA53762 53900021 DC AL1(06) 53970000 DC AL2(P005+00-P001) 54040000 DC AL1(09) 54110000 DC AL2(P044+00-P001) 54180000 DC AL1(10) 54250000 DC AL2(P049+06-P001) 54320000 DC AL1(09) 54390000 DC AL2(P030+04-P001) 54460000 DC X'FF' 54530000 * IEW0*241*WARNING -*EXTERNAL SYMBOL*PRINTED*IS DOUBLY DEFINED -- 54600000 * ESD TYPE DEFINITIONS CONFLICT. 54670000 B024 DC AL1(02) 54740000 DC AL2(P001+14-P001) 54810000 DC AL1(08) 54880000 DC AL2(P042+00-P001) 54950000 DC AL1(14) 55020000 DC AL2(P050+09-P001) 55090000 DC AL1(06) 55160000 DC AL2(P012+07-P001) 55230000 DC AL1(49) 55300000 DC AL2(P046+00-P001) 55370000 DC X'FF' 55440000 * IEW0*254*ERROR -*TABLE OVERFLOW --*TOO MANY EXTERNAL SYMBOLS IN 55510000 * ESD. 55580000 B025 DC AL1(02) 55650000 DC AL2(P001+29-P001) 55720000 DC AL1(06) 55790000 DC AL2(P005+00-P001) 55860000 DC AL1(16) 55930000 DC AL2(P048+00-P001) 56000000 DC AL1(31) 56070000 DC AL2(P050+00-P001) 56140000 DC X'FF' 56210000 * IEW0*264*ERROR -*TABLE OVERFLOW --*INPUT LOAD MODULE CONTAINS TOO 56280000 * MANY EXTERNAL SYMBOLS IN ESD. 56350000 B026 DC AL1(02) 56420000 DC AL2(P001+08-P001) 56490000 DC AL1(06) 56560000 DC AL2(P005+00-P001) 56630000 DC AL1(16) 56700000 DC AL2(P048+00-P001) 56770000 DC AL1(04) 56840000 DC AL2(P049+00-P001) 56910000 DC AL1(52) 56980000 DC AL2(P049+06-P001) 57050000 DC X'FF' 57120000 * IEW0*272*ERROR -*LOAD MODULE*FROM LIBRARY SPECIFIED*UNACCEPTABLE* 57190021 * TO LEVEL F. 57260000 B027 DC AL1(02) 57330000 DC AL2(P021+03-P001) 57400000 DC AL1(06) 57470000 DC AL2(P005+00-P001) 57540000 DC AL1(10) 57610000 DC AL2(P049+06-P001) 57680000 DC AL1(21) 57750000 DC AL2(P035+26-P001) 57820000 DC AL1(11) 57890000 DC AL2(P092+04-P001) 57960000 DC AL1(09) 58030000 DC AL2(P051+00-P001) 58100000 DC X'FF' 58170000 * IEW0*284*ERROR -*DATA SET NAME PRINTED CANNOT BE OPENED. 58240000 B028 DC AL1(02) 58310000 DC AL2(P002+02-P001) 58380000 DC AL1(06) 58450000 DC AL2(P005+00-P001) 58520000 DC AL1(30) 58590000 DC AL2(P054+03-P001) 58660000 DC X'FF' 58730000 * IEW0*294*ERROR -*DATA SET NAME PRINTED*HAD SYNCHRONOUS ERROR. 58800000 B029 DC AL1(02) 58870000 DC AL2(P002+08-P001) 58940000 DC AL1(06) 59010000 DC AL2(P005+00-P001) 59080000 DC AL1(13) 59150000 DC AL2(P054+03-P001) 59220000 DC AL1(20) 59290000 DC AL2(P057+00-P001) 59360000 DC X'FF' 59430000 * IEW0*302*ERROR -*INVALID*STATEMENT*--*CARD IGNORED. 59500000 B030 DC AL1(02) 59570000 DC AL2(P001+20-P001) 59640000 DC AL1(06) 59710000 DC AL2(P005+00-P001) 59780000 DC AL1(06) 59850000 DC AL2(P031+00-P001) 59920000 DC AL1(08) 59990000 DC AL2(P011+06-P001) 60060000 DC AL1(01) 60130000 DC AL2(P040+00-P001) 60200000 DC AL1(14) 60270000 DC AL2(P037+00-P001) 60340000 DC X'FF' 60410000 * IEW0*314*ERROR -*MAXIMUM NUMBER OF REGIONS (4) EXCEEDED. 60480000 B031 DC AL1(02) 60550000 DC AL2(P003+03-P001) 60620000 DC AL1(06) 60690000 DC AL2(P005+00-P001) 60760000 DC AL1(37) 60830000 DC AL2(P058+00-P001) 60900000 DC X'FF' 60970000 * IEW0*324*ERROR -*MAXIMUM NUMBER OF*SEGMENTS*EXCEEDED. 61040000 B032 DC AL1(02) 61110000 DC AL2(P001+13-P001) 61180000 DC AL1(06) 61250000 DC AL2(P005+00-P001) 61320000 DC AL1(16) 61390000 DC AL2(P058+00-P001) 61460000 DC AL1(07) 61530000 DC AL2(P061+00-P001) 61600000 DC AL1(07) 61670000 DC AL2(P060+00-P001) 61740000 DC X'FF' 61810000 * IEW0*332*ERROR-*MAXIMUM NUMBER OF *ALIASES(16)*EXCEEDED,EXCESS* 61880000 * IGNORED. 61950000 B033 DC AL1(02) 62020000 DC AL2(P003+07-P001) 62090000 DC AL1(06) 62160000 DC AL2(P005+00-P001) 62230000 DC AL1(16) 62300000 DC AL2(P058+00-P001) 62370000 DC AL1(10) 62440000 DC AL2(P062+00-P001) 62510000 DC AL1(08) 62580000 DC AL2(P060+00-P001) 62650000 DC AL1(05) 62720000 DC AL2(P087+00-P001) 62790000 DC AL1(06) 62860000 DC AL2(P004+05-P001) 62930000 DC X'FF' 63000000 * IEW0*342*ERROR -*LIBRARY SPECIFIED DOES NOT CONTAIN*MODULE. 63070000 B034 DC AL1(02) 63140000 DC AL2(P001+04-P001) 63210000 DC AL1(06) 63280000 DC AL2(P005+00-P001) 63350000 DC AL1(33) 63420000 DC AL2(P063+00-P001) 63490000 DC AL1(05) 63560000 DC AL2(P044+18-P001) 63630000 DC X'FF' 63700000 * IEW0*354*ERROR -*TABLE OVERFLOW -- TOO MANY*CALLS BETWEEN*CONTROL 63770000 * SECTIONS. 63840000 B035 DC AL1(02) 63910000 DC AL2(P002+13-P001) 63980000 DC AL1(06) 64050000 DC AL2(P005+00-P001) 64120000 DC AL1(25) 64190000 DC AL2(P048+00-P001) 64260000 DC AL1(12) 64330000 DC AL2(P052+00-P001) 64400000 DC AL1(15) 64470000 DC AL2(P025+00-P001) 64540000 DC X'FF' 64610000 * IEW0*364*ERROR -*TABLE OVERFLOW --*INPUT TEXT EXCEEDED MAXIMUM 64680000 * OR TOO MANY CHANGES OF ORIGIN*IN INPUT. 64750000 B036 DC AL1(02) 64820000 DC AL2(P002+26-P001) 64890000 DC AL1(06) 64960000 DC AL2(P005+00-P001) 65030000 DC AL1(16) 65100000 DC AL2(P048+00-P001) 65170000 DC AL1(56) 65240000 DC AL2(P067+00-P001) 65310000 DC AL1(07) 65380000 DC AL2(P079+10-P001) 65450000 DC X'FF' 65520000 * IEW0*374*ERROR -*TABLE OVERFLOW --*INPUT*CONTAINS*TOO MANY* 65590000 * RELOCATABLE ADDRESS*CONSTANTS OR*TOO MANY*CONTROL 65660000 * SECTIONS* CONTAINING SUCH CONSTANTS. 65730000 B037 DC AL1(02) 65800000 DC AL2(P003+14-P001) 65870000 DC AL1(06) 65940000 DC AL2(P005+00-P001) 66010000 DC AL1(16) 66080000 DC AL2(P048+00-P001) 66150000 DC AL1(04) 66220000 DC AL2(P049+00-P001) 66290000 DC AL1(07) 66360000 DC AL2(P024+00-P001) 66430000 DC AL1(07) 66500000 DC AL2(P050+00-P001) 66570000 DC AL1(18) 66640000 DC AL2(P007+17-P001) 66710000 DC AL1(11) 66780000 DC AL2(P083+00-P001) 66850000 DC AL1(07) 66920000 DC AL2(P050+00-P001) 66990000 DC AL1(15) 67060000 DC AL2(P025+00-P001) 67130000 DC AL1(25) 67200000 DC AL2(P053+00-P001) 67270000 DC X'FF' 67340000 * IEW0*382*ERROR -*TEXT RECORD ID IS ILLEGAL,*CARD IGNORED. 67410021 B038 DC AL1(02) 67480000 DC AL2(P001+32-P001) 67550000 DC AL1(06) 67620000 DC AL2(P005+00-P001) 67690000 DC AL1(25) 67760000 DC AL2(P017+00-P001) 67830000 DC AL1(11) 67900000 DC AL2(P004+00-P001) 67970000 DC X'FF' 68040000 * IEW0*394*ERROR -*MEMBER NOT STORED IN LIBRARY --*PERMANENT DISK 68110000 * ERROR. 68180000 B039 DC AL1(02) 68250000 DC AL2(P003+20-P001) 68320000 DC AL1(06) 68390000 DC AL2(P005+00-P001) 68460000 DC AL1(30) 68530000 DC AL2(P070+00-P001) 68600000 DC AL1(21) 68670000 DC AL2(P084+00-P001) 68740000 DC X'FF' 68810000 * IEW0*404*ERROR -*MEMBER NOT STORED IN LIBRARY -- NO SPACE LEFT IN 68880000 * DIRECTORY. 68950000 B040 DC AL1(02) 69020000 DC AL2(P001+10-P001) 69090000 DC AL1(06) 69160000 DC AL2(P005+00-P001) 69230000 DC AL1(57) 69300000 DC AL2(P070+00-P001) 69370000 DC X'FF' 69440000 * IEW0*412*ERROR -*ALIAS*NOT STORED IN LIBRARY -- NO SPACE LEFT IN 69510021 * DIRECTORY. 69580000 B041 DC AL1(02) 69650000 DC AL2(P001+35-P001) 69720000 DC AL1(06) 69790000 DC AL2(P005+00-P001) 69860000 DC AL1(04) 69930000 DC AL2(P062+00-P001) 70000000 DC AL1(50) 70070000 DC AL2(P070+07-P001) 70140000 DC X'FF' 70210000 * IEW0*421*WARNING -*MEMBER NOT STORED IN LIBRARY --*IDENTICAL 70280000 * NAME*IN DIRECTORY,*WILL TRY TO STORE UNDER 'TEMPNAME'. 70350000 B042 DC AL1(02) 70420000 DC AL2(P001+05-P001) 70490000 DC AL1(08) 70560000 DC AL2(P042+00-P001) 70630000 DC AL1(30) 70700000 DC AL2(P070+00-P001) 70770000 DC AL1(13) 70840000 DC AL2(P072+00-P001) 70910000 DC AL1(12) 70980000 DC AL2(P071+14-P001) 71050000 DC AL1(33) 71120000 DC AL2(P073+00-P001) 71190000 DC X'FF' 71260000 * IEW0*432*ERROR -*LIBRARY NAME PRINTED CANNOT BE OPENED, DD CARD 71330000 * MAY BE MISSING 71400000 B043 DC AL1(02) 71470000 DC AL2(P001+12-P001) 71540000 DC AL1(06) 71610000 DC AL2(P005+00-P001) 71680000 DC AL1(06) 71750000 DC AL2(P063+00-P001) 71820000 DC AL1(29) 71890000 DC AL2(P054+05-P001) 71960000 DC AL1(21) 72030000 DC AL2(P096+00-P001) 72100000 DC X'FF' 72170000 * IEW0*444*ERROR -*TABLE OVERFLOW -- TOO MANY*DOWNWARD*CALLS. 72240000 B044 DC AL1(02) 72310000 DC AL2(P002+15-P001) 72380000 DC AL1(06) 72450000 DC AL2(P005+00-P001) 72520000 DC AL1(25) 72590000 DC AL2(P048+00-P001) 72660000 DC AL1(07) 72730000 DC AL2(P076+00-P001) 72800000 DC AL1(04) 72870000 DC AL2(P052+00-P001) 72940000 DC X'FF' 73010000 * IEW0*454*ERROR -*TABLE OVERFLOW --*SEGMENT CONTAINS*TOO MANY* 73080000 * DOWNWARD CALLS. 73150000 B045 DC AL1(02) 73220000 DC AL2(P002+17-P001) 73290000 DC AL1(06) 73360000 DC AL2(P005+00-P001) 73430000 DC AL1(16) 73500000 DC AL2(P048+00-P001) 73570000 DC AL1(06) 73640000 DC AL2(P033+05-P001) 73710000 DC AL1(07) 73780000 DC AL2(P006+06-P001) 73850000 DC AL1(07) 73920000 DC AL2(P048+18-P001) 73990000 DC AL1(07) 74060000 DC AL2(P076+00-P001) 74130000 DC AL1(04) 74200000 DC AL2(P052+00-P001) 74270000 DC X'FF' 74340000 * IEW0*461*WARNING -*SYMBOL PRINTED*IS AN UNRESOLVED EXTERNAL 74410000 * REFERENCE;*NCAL*WAS*SPECIFIED,*OR THE REFERENCE A31124 74480000 * WAS MARKED FOR RESTRICTED NO-CALL OR NEVERCALL. A31124 74550000 B046 DC AL1(02) 74620000 DC AL2(P002+04-P001) 74690000 DC AL1(08) 74760000 DC AL2(P042+00-P001) 74830000 DC AL1(13) 74900000 DC AL2(P012+00-P001) 74970000 DC AL1(35) 75040000 DC AL2(P028+00-P001) 75110000 DC AL1(03) 75180000 DC AL2(P030+00-P001) 75250000 DC AL1(2) A31124 75320000 DC AL2(P022+18-P001) 75390000 DC AL1(9) A31124 75460000 DC AL2(P102+00-P001) A31124 75530000 DC AL1(62) A31124 75600000 DC AL2(P100+00-P001) A31124 75670000 DC X'FF' 75740000 * IEW0*473*ERROR -*INVALID*ALIAS*ENTRY POINT*IN*OVERLAY STRUCTURE. 75810000 B047 DC AL1(02) 75880000 DC AL2(P002+21-P001) 75950000 DC AL1(06) 76020000 DC AL2(P005+00-P001) 76090000 DC AL1(06) 76160000 DC AL2(P031+00-P001) 76230000 DC AL1(04) 76300000 DC AL2(P062+00-P001) 76370000 DC AL1(10) 76440000 DC AL2(P014+03-P001) 76510000 DC AL1(01) 76580000 DC AL2(P018+04-P001) 76650000 DC AL1(16) 76720000 DC AL2(P019+00-P001) 76790000 DC X'FF' 76860000 * IEW0*484*ERROR -*TABLE OVERFLOW -- TOO MANY*EXTERNAL SYMBOLS* 76930000 * AFFECTED BY RELOCATION. A19764 77000000 B048 DC AL1(02) 77070000 DC AL2(P002+19-P001) 77140000 DC AL1(06) 77210000 DC AL2(P005+00-P001) 77280000 DC AL1(25) 77350000 DC AL2(P048+00-P001) 77420000 DC AL1(15) 77490000 DC AL2(P050+09-P001) 77560000 DC AL1(21) A19764 77630000 DC AL2(P065+00-P001) 77700000 DC X'FF' 77770000 * IEW0*502*ERROR -*ALIAS*NOT STORED IN LIBRARY --*PERMANENT DISK 77840021 * ERROR. 77910000 B050 DC AL1(02) 77980000 DC AL2(P003+23-P001) 78050000 DC AL1(06) 78120000 DC AL2(P005+00-P001) 78190000 DC AL1(04) 78260000 DC AL2(P062+00-P001) 78330000 DC AL1(23) 78400000 DC AL2(P070+07-P001) 78470000 DC AL1(21) 78540000 DC AL2(P084+00-P001) 78610000 DC X'FF' 78680000 * IEW0*492*ERROR -*NAME CARD FOUND IN LIBRARY,*CARD IGNORED. 78750000 B049 DC AL1(02) 78820000 DC AL2(P045+00-P001) 78890000 DC AL1(06) 78960000 DC AL2(P005+00-P001) 79030000 DC AL1(03) 79100000 DC AL2(P054+05-P001) 79170000 DC AL1(21) 79240000 DC AL2(P085+00-P001) 79310000 DC AL1(11) 79380000 DC AL2(P004+00-P001) 79450000 DC X'FF' 79520000 * IEW0*512*ERROR -*INCLUDE STATEMENT SYNTAX CONFLICTS WITH RECORD 79590000 * FORMAT OF*SPECIFIED*DATA SET. 79660000 B051 DC AL1(02) 79730000 DC AL2(P093+00-P001) 79800000 DC AL1(06) 79870000 DC AL2(P005+00-P001) 79940000 DC AL1(55) 80010000 DC AL2(P089+00-P001) 80080000 DC AL1(17) 80150000 DC AL2(P023+00-P001) 80220000 DC AL1(16) 80290000 DC AL2(P054+00-P001) 80360000 DC X'FF' 80430000 * IEW0*522*ERROR -*SPECIFIED*DATA SET*HAS UNACCEPTABLE*RECORD 80500000 * FORMAT. 80570000 B052 DC AL1(02) 80640000 DC AL2(P093+03-P001) 80710000 DC AL1(06) 80780000 DC AL2(P005+00-P001) 80850000 DC AL1(17) 80920000 DC AL2(P023+00-P001) 80990000 DC AL1(15) 81060000 DC AL2(P092+00-P001) 81130000 DC AL1(12) 81200000 DC AL2(P091+00-P001) 81270000 DC AL1(16) 81340000 DC AL2(P054+00-P001) 81410000 DC X'FF' 81480000 * IEW0*532*ERROR -*BLOCKSIZE OF*LIBRARY*EXCEEDED MAXIMUM. 81550000 B053 DC AL1(02) 81620000 DC AL2(P094+00-P001) 81690000 DC AL1(06) 81760000 DC AL2(P005+00-P001) 81830000 DC AL1(11) 81900000 DC AL2(P095+00-P001) 81970000 DC AL1(06) 82040000 DC AL2(P085+14-P001) 82110000 DC AL1(07) 82180000 DC AL2(P023+10-P001) 82250000 DC AL1(15) 82320000 DC AL2(P067+11-P001) 82390000 DC AL1(16) 82460000 DC AL2(P054+00-P001) 82530000 DC X'FF' 82600000 * IEW0*543*ERROR -*MEMBER NOT STORED IN LIBRARY --*IDENTICAL NAME* 82670000 * IN DIRECTORY. 82740000 B054 DC AL1(02) 82810000 DC AL2(P001+30-P001) 82880000 DC AL1(06) 82950000 DC AL2(P005+00-P001) 83020000 DC AL1(13) 83090000 DC AL2(P072+00-P001) 83160000 DC AL1(11) 83230000 DC AL2(P071+14-P001) 83300000 DC X'FF' 83370000 * IEW0*552*ERROR -*COMMON*PRINTED*EXCEEDED*SIZE OF*CONTROL SECTION* 83440000 * WITH*IDENTICAL NAME. A22116 83510000 B055 DC AL1(02) A22116 83580000 DC AL2(P001+41-P001) A22116 83650000 DC AL1(06) A22116 83720000 DC AL2(P005+00-P001) A22116 83790000 DC AL1(05) A22116 83860000 DC AL2(P069+00-P001) A22116 83930000 DC AL1(06) A22116 84000000 DC AL2(P012+07-P001) A22116 84070000 DC AL1(07) A22116 84140000 DC AL2(P060+00-P001) A22116 84210000 DC AL1(06) A22116 84280000 DC AL2(P095+05-P001) A22116 84350000 DC AL1(14) A22116 84420000 DC AL2(P025+00-P001) A22116 84490000 DC AL1(03) A22116 84560000 DC AL2(P078+00-P001) A22116 84630000 DC AL1(13) A22116 84700000 DC AL2(P072+00-P001) A22116 84770000 DC X'FF' A22116 84840000 * A34230 84910000 *IEW0*572*ERROR-*COMMON*PRINTED*AND SUBROUTINE HAVE*IDENTICAL NAME. 84980000 * A34230 85050000 B057 DC AL1(02) A34230 85120000 DC AL2(P001+50-P001) A34230 85190000 DC AL1(06) A34230 85260000 DC AL2(P005+00-P001) A34230 85330000 DC AL1(05) A34230 85400000 DC AL2(P069+00-P001) A34230 85470000 DC AL1(06) A34230 85540000 DC AL2(P012+07-P001) A34230 85610000 DC AL1(18) A34230 85680000 DC AL2(P077+00-P001) A34230 85750000 DC AL1(13) A34230 85820000 DC AL2(P072+00-P001) A34230 85890000 DC X'FF' A34230 85960000 * IEW0*594*ERROR -*INPUT DATA SET BLOCKSIZE IS INVALID 86030000 B059 DC AL1(02) 86100000 DC AL2(P082+00-P001) 86170000 DC AL1(06) 86240000 DC AL2(P005+00-P001) 86310000 DC AL1(4) 86380000 DC AL2(P044+00-P001) 86450000 DC AL1(07) 86520000 DC AL2(P023+10-P001) 86590000 DC AL1(08) 86660000 DC AL2(P095+00-P001) 86730000 DC AL1(09) 86800000 DC AL2(P017+15-P001) 86870000 DC X'FF' 86940000 * A26860 87010000 * IEW0* 602*ERROR -*INPUT FROM OBJECT MODULE* IS INVALID*- * A26860 87080000 * END CARD* MISSING* A26860 87150000 B060 DC AL1(02) A26860 87220000 DC AL2(P001+44-P001) A26860 87290000 DC AL1(06) A26860 87360000 DC AL2(P005+00-P001) A26860 87430000 DC AL1(23) A26860 87500000 DC AL2(P044+00-P001) A26860 87570000 DC AL1(09) A26860 87640000 DC AL2(P017+15-P001) A26860 87710000 DC AL1(01) A26860 87780000 DC AL2(P098+00-P001) A26860 87850000 DC AL1(07) A26860 87920000 DC AL2(P080+03-P001) A26860 87990000 DC AL1(06) A26860 88060000 DC AL2(P096+15-P001) A26860 88130000 DC X'FF' A26860 88200000 * IEW0*614 -*LENGTH*NOT*SPECIFIED*FOR*EXTERNAL*SYMBOL PRINTED 88270000 B061 DC AL1(02) 88340000 DC AL2(P082+03-P001) 88410000 DC AL1(06) 88480000 DC AL2(P005+00-P001) 88550000 DC AL1(5) 88620000 DC AL2(P099+00-P001) 88690000 DC AL1(2) 88760000 DC AL2(P018+00-P001) 88830000 DC AL1(8) 88900000 DC AL2(P023+00-P001) 88970000 DC AL1(2) 89040000 DC AL2(P036+26-P001) 89110000 DC AL1(7) 89180000 DC AL2(P013+16-P001) 89250000 DC AL1(13) 89320000 DC AL2(P012+00-P001) 89390000 DC X'FF' 89460000 * 89510021 * IEW0*622*ERROR -*ADDRESS CONSTANT*REFERENCES NULL UNNAMED*CONTROL X89520021 * SECTION. 89522021 * 89524021 B062 DC AL1(02) SA69196 89526021 DC AL2(P056+03-P001) SA69196 89528021 DC AL1(06) SA69196 89528421 DC AL2(P005+00-P001) SA69196 89528821 DC AL1(15) SA69196 89529221 DC AL2(P008+00-P001) SA69196 89529621 DC AL1(22) SA69196 89529721 DC AL2(P116+00-P001) SA69196 89529821 DC AL1(14) SA69196 89553221 DC AL2(P025+00-P001) SA69196 89563221 DC X'FF' SA69196 89573221 * IEW0*630*ERROR -*DATA SET NAME PRINTED*HAD SYNCHRONOUS ERROR 89576721 * *- XREF ABORTED. 89600000 B063 DC AL1(02) 89670000 DC AL2(P097+00-P001) 89740000 DC AL1(06) 89810000 DC AL2(P005+00-P001) 89880000 DC AL1(13) 89950000 DC AL2(P054+03-P001) 90020000 DC AL1(20) 90090000 DC AL2(P057+00-P001) 90160000 DC AL1(13) 90230000 DC AL2(P098+00-P001) 90300000 DC X'FF' 90370000 * IEW0*661*CONTROL*STATEMENT*IGNORED. S21016 90376021 B066 DC AL1(02) S21016 90382021 DC AL2(P113+00-P001) S21016 90388021 DC AL1(06) S21016 90394021 DC AL2(P025+00-P001) S21016 90400021 DC AL1(08) S21016 90406021 DC AL2(P106+00-P001) S21016 90412021 DC AL1(06) S21016 90418021 DC AL2(P107+27-P001) S21016 90424021 DC X'FF' S21016 90430021 * IEW0*670 THE SPECIFIED IDENTIFY DATA HAS BEEN ADDED TO THE S21016 90440000 * IDR FOR THE CONTROL SECTION NAME PRINTED. S21016 90510000 B067 DC AL1(39) S21016 90580000 DC AL2(P103+00-P001) S21016 90650000 DC AL1(52) S21016 90720000 DC AL2(P104+00-P001) S21016 90790000 DC X'FF' S21016 90860000 * IEW0*682 ERROR - CONTROL SECTION NAME ON AN IDENTIFY S21016 90930000 * CONTROL STATEMENT IS INCORRECT OR THE STATEMENT S21016 91000000 * IS MISPLACED -- IDENTIFY DATA IGNORED. S21016 91070000 B068 DC AL1(54) S21016 91140000 DC AL2(P105+00-P001) S21016 91210000 DC AL1(41) S21016 91280000 DC AL2(P106+00-P001) S21016 91350000 DC AL1(33) S21016 91420000 DC AL2(P107+00-P001) S21016 91490000 DC X'FF' S21016 91560000 * IEW0*694 ERROR - TABLE OVERFLOW -- SIZE VALUE SPECIFIED S21016 91630000 * NOT LARGE ENOUGH FOR CSECT IDR INPUT -- LINKAGE S21016 91700000 * EDITOR PROCESSING TERMINATED. S21016 91770000 B069 DC AL1(39) S21016 91840000 DC AL2(P108+00-P001) S21016 91910000 DC AL1(39) S21016 91980000 DC AL2(P109+00-P001) S21016 92050000 DC AL1(44) S21016 92120000 DC AL2(P110+00-P001) S21016 92190000 DC X'FF' S21016 92260000 * IEW0*704 UNRECOVERABLE ERROR DETECTED IN CSECT IDR INPUT S21016 92330000 * -- LINKAGE EDITOR PROCESSING TERMINATED. S21016 92400000 B070 DC AL1(44) S21016 92470000 DC AL2(P111+00-P001) S21016 92540000 DC AL1(44) S21016 92610000 DC AL2(P112+00-P001) S21016 92680000 DC X'FF' S21016 92750000 * IEW0*714*ERROR -*MEMBER NOT STORED IN LIBRARY --* STOW S21016 92755021 * WORKSPACE UNAVAILABLE. S21016 92760021 B071 DC AL1(02) S21016 92765021 DC AL2(P113+03-P001) S21016 92770021 DC AL1(06) S21016 92775021 DC AL2(P005+00-P001) S21016 92780021 DC AL1(30) S21016 92785021 DC AL2(P070+00-P001) S21016 92790021 DC AL1(25) S21016 92795021 DC AL2(P114+00-P001) S21016 92800021 DC X'FF' S21016 92805021 * IEW0*722*ERROR -*INVALID*ALIAS*NAME. A37667 92806021 B072 DC AL1(02) A37667 92807021 DC AL2(P097+03-P001) A37667 92808021 DC AL1(06) A37667 92809021 DC AL2(P005+00-P001) A37667 92810021 DC AL1(06) A37667 92811021 DC AL2(P013+00-P001) A37667 92812021 DC AL1(04) A37667 92813021 DC AL2(P062+00-P001) A37667 92814021 DC AL1(03) A37667 92815021 DC AL2(P072+10-P001) A37667 92816021 DC X'FF' A37667 92817021 * IEW0731 WARNING - ALIAS MATCHES MEMBER NAME - ALIAS IGNORED 92817400 B073 DC AL1(54) A52450 92819000 DC AL2(P115+00-P001) A52450 92819400 DC X'FF' A52450 92819800 * IEW0*564*ERROR -*INVALID*TEXT*ORIGIN*- LINKAGE EDITOR PROCESSING TERMX92819921 INATED. 92843221 B056 DC AL1(02) SA66746 92853221 DC AL2(P233+03-P001) SA66746 92863221 DC AL1(06) SA66746 92865221 DC AL2(P005+00-P001) SA66746 92865621 DC AL1(06) SA66746 92866021 DC AL2(P013+00-P001) SA66746 92866421 DC AL1(03) SA66746 92866521 DC AL2(P017+00-P001) SA66746 92866621 DC AL1(05) SA66746 92874421 DC AL2(P068+23-P001) SA66746 92876421 DC AL1(37) SA66746 92878421 DC AL2(P110+07-P001) SA66746 92880421 DC X'FF' SA66746 92880821 * 92881221 * IEW0*581*WARNING -*INVALID*MEMBER NAME -*WILL TRY TO STORE UNDER 'TEMX92881621 PNAME'. 92882021 * 92882121 B058 DC AL1(02) SA68552 92952121 DC AL2(P001+53-P001) SA68552 92962121 DC AL1(08) SA68552 92964121 DC AL2(P042-P001) SA68552 92966121 DC AL1(06) SA68552 92972121 DC AL2(P031-P001) SA68552 92974121 DC AL1(12) SA68552 92976121 DC AL2(P115+28-P001) SA68552 92978121 DC AL1(33) SA68552 92980121 DC AL2(P073-P001) SA68552 92980521 DC X'FF' SA68552 92980921 IEWAPT 92982121 END 93032121 ./ ADD SSI=21280116,NAME=IEWLMEND,SOURCE=0 TITLE 'END CARD PROCESSOR' 00400000 *FUNCTION/OPERATION: THIS MODULE PROCESSES THE ENTRY POINTS ON END * 00800000 * CARDS,INSERTS THE LENGTH OF CSECTS IN THE CESD FOR THE FIRST * 01200000 * CSECT INPUT WITH ZERO LENGTH IN THE INPUT MODULE(THE LENGTH IS * 01600000 * OBTAINED FROM COLS 29-32 OF THE END CARD),CLEARS THE RENUMBER- * 02000000 * ING TABLE, AND REMOVES REPLACE/CHANGE CARD ENTRIES FROM THE * 02400000 * CESD AS WELL AS REMOVING THOSE CESD LINES WHICH ARE STILL MARK-* 02800000 * ED 'DELETE' AT THE END OF THE MODULE. * 03200000 * * 03600000 *ENTRY POINTS IEWLMEND - BEGINNING OF CSECT LA,13,SAVEAREA * 04000000 * BALR 14,15 * 04400000 * * 04800000 *INPUT: REGISTERS- * 05200000 * REGISTER 4- LENGTH FROM END CARD(IF PRESENT) * 05600000 * REGISTER 5- ID OF ABSOLUTE ENTRY POINT ON END CARD(IF PRESENT)* 06000000 * REGISTER 13- ADDRESS OF A SAVEAREA * 06400000 * REGISTER 14- RETURN ADDRESS * 06800000 * * 07200000 *OUTPUT: NOT APPLICABLE * 07600000 *EXTERNAL ROUTINES: NOT APPLICABLE * 08000000 *EXITS-NORMAL: AFTER PROCESSING ENTRY POINT, LENGTH,CESD AND RNT * 08400000 * BCR 15,14 * 08800000 * ERRORS: ERROR IN INPUT- ABSOLTE ENTRY POINT ID EXCEEDS * 09200000 * MODULE LIMITATION * 09600000 *TABLES/WORK AREAS: NOT APPLICABLE * 10000000 *ATTRIBUTES: THIS MODULE IS READ ONLY,UNPRIVELEGED AND ENABLED * 10400000 *NOTES: THIS MODULE IS USED BY BOTH E AND F LEVEL LINKAGE EDITORS * 10800000 IEWLMEND CSECT 11200000 SYSBRNCH EQU 15 11600000 BASE EQU 12 12000000 APT EQU 2 12400000 ZERO EQU 0 12800000 RNT EQU 7 13200000 REG13 EQU 13 13600000 ENTORABS EQU X'0C' 14000000 RNTX EQU 5 14400000 TEMP EQU 8 14800000 ENTRYPNT EQU X'08' 15200000 NOLEN EQU X'C0' 15600000 LENGTH EQU 4 16000000 CESDADD EQU 236 16400000 CESD EQU 6 16800000 NOLENAND EQU X'18' 17200000 CESDXR EQU 10 18000000 TEMP1 EQU 9 18800000 ERRORCOD EQU X'20A' 19200000 TEMP2 EQU 10 19600000 RNTTYPE EQU 3 20000000 CESDTYPE EQU 8 20400000 CHID EQU 14 20800000 TEMP3 EQU 11 21200000 TEMP4 EQU 3 21600000 SUBTYPE EQU 13 22000000 SYSRET EQU 14 22400000 * THE END CARD PROCESSOR IS ENTERED FROM THE INPUT * 22800000 * PROCESSOR * 23200000 * REGISTER 5 CONTAINS THE ID OF THE ASSEMBLED ADDRESS * 23600000 * ENTRY * 24000000 * REGISTER 4 CONTAINS THE LENGTH FOR A NO LENGTH CONTROL * 24400000 * SECTION IF ONE WAS PROCESSED IN THIS INPUT MODULE * 24800000 * ******************** * 25200000 USING APTDSECT,APT ESTABLISH ADDRESSABILITY WITH APT 25600000 LR BASE,SYSBRNCH 26000000 USING IEWLMEND,BASE 26400000 * INITIALIZE BASES FOR CESD AND RNT AND SET REGISTER * 26800000 * ZERO TO 0 * 27200000 BC 15,MODID+6 BRANCH AROUND MODULE IDENT 27300000 MODID DC C'02MEND' 27400000 STM SYSRET,BASE,12(REG13) 27600000 ST SYSRET,REGSA14 28000000 L RNT,RECNT 28400000 L CESD,CHESD 28800000 SR ZERO,ZERO 29200000 * IF THERE IS AN ABSOLUTE ENTRY POINT ON THE END CARD * 29600000 * AND NO OTHER ENTRY POINT HAS BEEN PROCESSED- * 30000000 * RENUMBER THE INPUT ID * 30400000 TM APT1,ENTORABS 30800000 BC 5,END1 31200000 LTR RNTX,RNTX ILLEGAL ID 31600000 BC 12,ERROR YES 32000000 CH RNTX,ENCDX 32400000 BC 2,ERROR 32800000 SLL RNTX,2 33200000 LH TEMP,0(RNT,RNTX) 33600000 LA TEMP2,0(RNT,RNTX) ADDRESS OF RNT LINE 34000000 TM RNTTYPE(TEMP2),X'02' IS TYPE ER 34400000 BC 8,END03 NO RELATIVE 34800000 TM RNTTYPE(TEMP2),X'10' IS TYPE DELETE 35200000 BC 8,END02 NO 35600000 LR TEMP2,TEMP COMPUTE 36000000 SLL TEMP2,4 CESD 36400000 AR TEMP2,CESD ADDRESS 36800000 TM CESDTYPE(TEMP2),X'40' IS CESD TYPE CHAINED 37200000 BC 1,END01 YES 37600000 TM CESDTYPE(TEMP2),X'10' IS CESD TYPE DELETE 38000000 BC 8,END01A NO 38400000 TM SUBTYPE(TEMP2),X'08' IS SUBTYPE DDLETE 38800000 BC 8,END01A NO 39200000 OI APT1,X'04' ENTRY IS SYMBOL 39600000 BC 15,END1 40000000 END01 LH TEMP,CHID(TEMP2) CHAIN ID 40400000 END01A L TEMP4,EPSM ORIGINAL ADDRESS 40800000 SL TEMP4,CESDTYPE(TEMP2) DELINK 41200000 ST TEMP4,EPSM RESTORE ADDRESS 41600000 END02 OI APTSWS,X'20' SET ABSOLUTE BIT ON 42000000 END03 STH TEMP,ENDID RENUMBER 42400000 MVC PDSE16(2),ENDID 42800000 OI APT1,ENTRYPNT 43200000 * IF A NO LENGTH CONTROL SECTION WAS ENCOUNTERED IN THE * 43600000 * PRECEEDING INPUT MODULE- * 44000000 * SET THE LENGTH FROM THE END CARD INTO THE CORRECT CESD * 44400000 * LINE * 44800000 END1 TM APT2,NOLEN 45200000 BC 12,END2 45600000 L TEMP,PDSE18 46000000 NC 13(3,TEMP),13(TEMP) 46400000 BC 8,END1A 46800000 L 11,12(0,TEMP) 47200000 LA 11,0(0,11) 47600000 CLR 11,LENGTH 48000000 BC 2,END2 48400000 END1A IC TEMP1,12(TEMP) 48800000 ST LENGTH,12(TEMP) 49200000 STC TEMP1,12(TEMP) 49600000 * CLEAR THE NO LENGTH INDICATORS * 50000000 END2 NI APT2,NOLENAND 50400000 * INITIALIZE THE REPLACE/CHANGE CHAIN ADDRESS * 50800000 XC RCCE(8),RCCE 51200000 LR CESDXR,CESD 51600000 LH TEMP,ENCDC 52000000 * SEARCH THE CESD LOOKING FOR LINES TO BE DELETED * 52400000 LA TEMP,1(TEMP) 52800000 END3 LA CESDXR,16(CESDXR) 53200000 BCT TEMP,END3A 53600000 BC 15,END10 54000000 * IS THE PRESENT CESD LINE FOR AN EXTERNAL REFERENCE * 54400000 END3A TM 8(CESDXR),X'02' 54800000 BC 8,END7 55200000 TM 8(CESDXR),X'0D' 55600000 BC 5,END7 56000000 * NO-BRANCH * 56400000 * IS TYPE A CARD * 56800000 TM 13(CESDXR),X'80' 57200000 * NO-BRANCH * 57600000 BC 8,END8 58000000 * YES-IS THIS A REPLACE-CHANGE-DELETE CARD LINE * 58400000 TM 13(CESDXR),X'60' 58800000 BC 12,END3 59200000 * NO-BRANCH * 59600000 * YES-DELETE THE CESD LINE AND ADD THE LINE TO THE * 60000000 * CHAIN OF DELETED LINES * 60400000 END4 XC 0(16,CESDXR),0(CESDXR) 60800000 MVI 8(CESDXR),X'07' 61200000 L TEMP1,FLCD 61600000 * THERE ARE NO LINES IN THE CHAIN IF THE POINTER TO THE * 62000000 * FIRST CHAIN LINE IS ZERO * 62400000 ST TEMP1,12(CESDXR) 62800000 END6 ST CESDXR,FLCD 63200000 BC 15,END3 63600000 * * 64000000 * * 64400000 * IS THIS LINE CHAINED TO ANOTHER * 64800000 END7 TM 8(CESDXR),X'40' 65200000 BC 1,END9 65600000 * YES-INDEX TO LINE CHAINED TO AND IF THE LINE * 66000000 * IS NOT AN ER,DELETE THIS LINE FROM THE CESD * 66400000 * * 66800000 * * 67200000 * NO- IS THIS LINE STILL MARKED DELETE * 67600000 END7A TM 8(CESDXR),X'10' 68000000 BC 1,END4 68400000 * YES- CLEAR OUT THE LINE * 68800000 BC 15,END3 69200000 * NO-CONTINUE THE SEARCH OF THE CESD * 69600000 * * 70000000 * * 70400000 * * 70800000 * IF ER IS NOT DELETE OR REPLACE , CLEAR DELETE BIT IN * 71200000 * SUBTYPE FIELD * 71600000 * IF ER IS A REPLACE , CLEAR DELETE BIT IN TYPE FIELD * 72000000 * IF ER IS A DELETE , CLEAR OUT THE LINE * 72400000 END8 TM 8(CESDXR),X'10' 72800000 BC 8,END8A 73200000 TM 13(CESDXR),X'08' 73600000 BC 8,END8B 74000000 BC 15,END4 74400000 END8B NI 8(CESDXR),X'EF' 74800000 END8A NI 13(CESDXR),X'F7' 75200000 BC 15,END7 75600000 * IF THE LINE CHAINED TO IS AN ER-UNMATCHED LIBRARY * 76000000 * AND THIS LINE IS DELETE-CLEAR THIS LINE * 76400000 END9 LH TEMP1,14(CESDXR) 76800000 SLL TEMP1,4 77200000 LA TEMP1,0(TEMP1,CESD) 77600000 TM 8(TEMP1),X'0D' 78000000 BC 5,END4 78400000 TM 8(TEMP1),X'02' 78800000 BC 8,END4 79200000 TM 13(TEMP1),X'06' 79600000 BC 8,END4 80000000 * OTHERWISE , SET THE LINE WHICH IS CHAINED TO AS A * 80400000 * MATCHED MEMBER BEFORE CLEARING THE CHAINED LINE * 80800000 TM 8(CESDXR),X'10' 81200000 BC 1,END4 81600000 OI 13(TEMP1),X'01' 82000000 BC 15,END4 82400000 * CLEAR OUT THE RNT * 82800000 END10 LH TEMP,ENCDX 83200000 END10A TM 7(RNT),X'10' 83600000 BC 8,END10B 84000000 TM 7(RNT),X'45' CHAIN CM PC LR 84400000 BC 5,END10B YES 84800000 TM 6(RNT),X'04' DELINK VALUE SAVED 85200000 BC 1,END10B YES 85600000 LH TEMP1,4(RNT) 86000000 SLL TEMP1,4 86400000 AR TEMP1,CESD 86800000 MVI 9(TEMP1),0 87200000 END10B ST ZERO,4(RNT) 87600000 LA RNT,4(RNT) 88000000 BCT TEMP,END10A 88400000 L SYSRET,REGSA14 88800000 LM SYSBRNCH,1,16(REG13) 89200000 LM 3,BASE,32(REG13) 89600000 BCR 15,SYSRET 90000000 ERROR L SYSBRNCH,ERDIG 90400000 OI APT1,X'40' 90800000 LA ZERO,ERRORCOD 91200000 * **** ERROR **** * 91600000 * ID FOR ABSOLUTE ENTRY POINT EXCEEDS MODULE LIMITATION * 92000000 BALR SYSRET,SYSBRNCH 92400000 BC 15,END1 92800000 ENDID DC H'0' 93200000 * ENDID IS TEMPORARY STORE FOR THE RENUMBERED ID * 93600000 * IT IS MOVED TO AN OFF WORD BOUNDARY IN THE APT * 94000000 REGSA14 DC F'0' 94400000 IEWAPT 94800000 END 95200000 ./ ADD SSI=21280117,NAME=IEWLMENS,SOURCE=0 TITLE 'ENTER SEGMENT NUMBERS' 00200000 *********************************************************************** 00400000 * * 00600000 *STATUS: CHANGE LEVEL * 00800000 * * 01000000 *FUNCTION/OPERATION: * 01200000 * 1) ENTER SEGMENT NUMBERS FOR LABEL REFERENCES IN CESD * 01400000 * 2) DETERMINE NUMBER OF ENTAB LINES REQUIRED PER SEGMENT (OVERLAY)* 01600000 * * 01800000 *ENTRY POINTS: * 02000000 * IEWLMENS- CONTROL SECTION NAME 02200000 * * 02400000 *INPUT: * 02600000 * 1) REG 2 - ADDRESS OF ALL PURPOSE TABLE * 02800000 * 2) REG 13- ADDRESS OF CALLER SUPPLIED REGISTER SAVE AREA * 03000000 * 3) TABLES LISTED BELOW * 03200000 * * 03400000 *OUTPUT: * 03600000 * 1) UPDATED COMPOSITE EXTERNAL SYMBOL DICTIONARY-LABEL REFERENCES * 03800000 * 2) COUNT OF ENTAB LINES PER SEGMENT * 04000000 * * 04200000 *EXTERNAL ROUTINES: * 04400000 * 1) IEWLELOG - ERROR DIAGNOSTIC ROUTINE * 04600000 * 2) IEWLCAD1 - AN ENTRY POINT IN EITHER IEWLKADA OR IEWLFADA * 04800000 * A) IEWLCAD1 IS ENTERED FROM IEWLKENS TO RECORD THE NUMBER OF * 05000000 * LINES OF ENTAB - REQUIRED PER SEGMENT- * 05200000 * 1)IN THE 'E' LINKAGE EDITOR IEWLCAD1 COMPUTES THE SIZE OF * 05400000 * THE ENTAB USING THE NUMBER OF LINES PASSED FROM IEWLKENS * 05600000 * AND MAKES AN ENTRY IN THE CESD OF TYPE PRIVATE CODE MARKD* 05800000 * DELETE * 06000000 * 2)IN THE 'F' LINKAGE EDITOR IEWLCAD1 RECORDS THE ENTAB LINE* 06200000 * COUNT IN THE SEGMENT LENGTH TABLE AND SETS THE 'E' BIT TO* 06400000 * 1-INDICATING THERE IS AN ENTAB FOR THIS SEGMENT * 06600000 * B) IEWLCAD1 IS ENTERED FOR EACH SEGMENT WHICH CONTAINS AN * 06800000 * ENTAB * 07000000 * * 07200000 *EXITS: * 07400000 * RETURNS TO ADDRESS PASSED IN REGISTER 14 * 07600000 * * 07800000 *TABLES: * 08000000 * 1) CALLS LIST * 08200000 * 2) COMPOSITE EXTERNAL SYMBOL DICTIONARY * 08400000 * 3) DOWNWARDS CALLS LIST (INTERNAL) * 08600000 * 4) SEGMENT TABLE 1 * 08800000 * 5) ALL PURPOSE TABLE * 09000000 * * 09200000 *ATTRIBUTES: * 09400000 * * 09600000 *********************************************************************** 09800000 IEWLMENS CSECT 10000000 * * 10200000 * * 10400000 * 10600000 * 10800000 * 11000000 *********************************************************************** 11200000 * 11400000 * REGISTERS USED IN IEWLKENS * 11600000 *********************************************************************** 11800000 * 12000000 ERRCODRG EQU 0 ERROR CODE REGISTER 12200000 WORK4 EQU 0 WORK 12400000 WORK1 EQU 1 WORK 12600000 ERRSYMRG EQU 1 ADDRESS OF SYMBOL 12800000 APT EQU 2 ALL PURPOSE TABLE ADDRESS 13000000 CALLADD EQU 3 ADDRESS OF CALLS LIST 13200000 TEMP2 EQU 3 TEMPORARY WORK REGISTER 13400000 CURCHNAD EQU 3 CURRENT CHAIN ADDRESS 13600000 CURINDEX EQU 4 CURRENT INDEX 13800000 CURPPTR EQU 5 CURRENT P POINTER 14000000 CURRPTR EQU 6 CURRENT R POINTER 14200000 CURPSEGN EQU 7 CURRENT P SEGMENT NUMBER 14400000 CURRSEGN EQU 8 CURRENT R SEGMENT NUMBER 14600000 CURSEGNO EQU 9 CURRENT SEGMENT NUMBER 14800000 TEMP1 EQU 9 TEMPORARY WORK REGISTER 15000000 BASE EQU 12 BASE REGISTER 15200000 ACUMZERO EQU 13 ACCUMULATO 15400000 CULTOTCT EQU 14 CULMULATIVE TOTAL NO. BYTES -2 15600000 RETURN EQU 14 RETURN (RETURN FROM CPTH) 15800000 WORK2 EQU 10 WORK 16000000 BRANCH EQU 15 16200000 CULRELCT EQU 15 CULMULATIVE REL. NO. BYTES 16400000 ERRADDRG EQU 15 ADDRESS OF ERROR ROUTINE 16600000 WORK3 EQU 15 WORK 16800000 WORK5 EQU 15 WORK (NOT USED PRESENTLY) 17000000 ********************************************************************* 17200000 * DISPLACEMENTS 17400000 ********************************************************************* 17600000 DISP EQU 0 DISPLACEMENT FOR SAVE AREA 17800000 *********************************************************************** 18000000 * MASKS 18200000 OVLYBIT EQU X'20' MASK FOR TESTING FOR OVERLAY 18400000 * 18600000 XCAL EQU X'04' XCAL TEST MASK 18800000 *********************************************************************** 19000000 *********************************************************************** 19200000 * SAVE CALLERS REGISTERS AND INITIALIZE BASE REGISTER 19400000 *********************************************************************** 19600000 STM 14,12,DISP(13) SAVE CALLERS REGS 19800000 USING ENS00500+2,BASE 20000000 USING APTDSECT,APT ESTABLISH ADDRESSABILITY FOR APT 20200000 ENS00500 BALR BASE,0 INITIALIZE BASE 20400000 BC 15,MODID+6 BRANCH AROUND MODID 20460000 MODID DC C'01MENS' 20520000 ST 13,SAVERG13 SAVE 13 -ADD OF CALLERS REGS 20600000 *********************************************************************** 20800000 * 21000000 *********************************************************************** 21200000 * SCAN CESD - PUT PROPER SG NO OF LR IN CESD LR ENTRY 21400000 *********************************************************************** 21600000 ENS0070 L WORK1,CHESD CESD ADD 21800000 LH WORK2,ENCDC CESD CURR CT 22000000 ENS00750 LA WORK1,16(WORK1) INC CESD ADD 22200000 MVN TESTTYPE(1),8(WORK1) MOVE TYPE TO TEST FOR LR 22400000 CLI TESTTYPE,X'03' IS TYPE = LR 22600000 BC 7,ENS00770 NO / GO TEST END OF LOOP 22800000 *********************************************************************** 23000000 * TYPE = LR 23200000 *********************************************************************** 23400000 LH WORK3,14(WORK1) ID 23600000 SLL WORK3,4 REL ADD 23800000 A WORK3,CHESD ADD OF CS 24000000 MVC 12(1,WORK1),12(WORK3) PUT CS.SG.NO. IN SG.FD. OF LR 24200000 ENS00770 BCT WORK2,ENS00750 BRANCH IF LOOP NOT DONE 24400000 *********************************************************************** 24600000 * TEST FOR OVELAY / NO RETURN TO CALLER /YES CONTINUE PROC 24800000 *********************************************************************** 25000000 TM PDSE7,OVLYBIT IS PROGRAM IN OVERLAY 25200000 BC 8,ENS115 NO/ GO TO RETURN TO CALLER 25400000 *********************************************************************** 25600000 * TEST FOR NO ENTRYS IN CALLS LIST - NO V CONSTANTS-ERR * 25800000 *********************************************************************** 26000000 NI PSEGONE,X'00' INIT-TO TEST FOR VALID CALL 26200000 * FROM SEGMENT 1 26400000 SR ACUMZERO,ACUMZERO 26600000 CH ACUMZERO,ENCLC IS CALL LIST EMPTY 26800000 BC 8,ENS110 YES / GO TO PRINT ERROR MESS. 27000000 *********************************************************************** 27200000 * SCAN CALLS LIST AND INSERT RELAYIVE ADDRESS (CA) * 27400000 *********************************************************************** 27600000 L CALLADD,CLLT ADDRESS OF CALLS LIST 27800000 SR CULTOTCT,CULTOTCT 28000000 ENS00800 SR CULRELCT,CULRELCT 28200000 ENS00900 LA CULRELCT,2(CULRELCT) INCREMENT CUL RELATIVE CT BY 2 28400000 CH ACUMZERO,0(CALLADD,CULRELCT) IS CALLS LIST ENTRY = 0 28600000 BC 7,ENS00900 NO 28800000 STH CULRELCT,0(CALLADD) T) INSERT CURRENT CHAIN ADD. 29000000 LA CALLADD,0(CALLADD,CULRELCT) 29200000 LA CULTOTCT,0(CULTOTCT,CULRELCT) IN CHAIN / FIND TOTAL CT 29400000 CH CULTOTCT,ENCLC IS SCAN DONE 29600000 BC 7,ENS00800 NO 29800000 * 30000000 * 30200000 NI PSEGONE,X'00' INIT. TO TEST VALID CALL FR SG1 30400000 *********************************************************************** 30600000 * SET DOWNWARD CALLS LIST (ENTRY LIST) TO ZERO + INITALIZE 30800000 *********************************************************************** 31000000 L WORK1,RECNT ADD OF ENTRY LIST 31200000 SR TEMP1,TEMP1 31400000 LH TEMP2,ENCDC 31600000 SRL TEMP2,2 NO. OF FULL WORDS IN LIST 31800000 LA TEMP2,1(TEMP2) IF CESD CT LESS 4-SRL = 0 - T2 0 32000000 ENS011 LA WORK1,4(WORK1) INC ADDRESS OF NEXT ENTRY 32200000 ST TEMP1,4(WORK1) SET THIS ENTRY TO 0 32400000 BCT TEMP2,ENS011 BRANCH IF LOOP NOT DONE 32600000 SR CURSEGNO,CURSEGNO 32800000 *********************************************************************** 33000000 * INCREMENT CURRENT SEGMENT NUMBER/TEST IF ALL SEGMENTS 33200000 * PROCESSED/YES RETURN TO CALLER / NO CONTINUE 33400000 *********************************************************************** 33600000 ENS015 LA CURSEGNO,1(CURSEGNO) 33800000 L CURCHNAD,CLLT ADD OF CALLS LIST 34000000 SR ACUMZERO,ACUMZERO 34200000 CH CURSEGNO,CSNO HAVE ALL SEGMENTS BEEN PROCESSED 34400000 BC 2,ENS110 YES 34600000 *********************************************************************** 34800000 * INITIALIZE TO FIND NEXT P IN CALLS LIST 35000000 *********************************************************************** 35200000 ENS017 SR CURINDEX,CURINDEX 35400000 SR CURPSEGN,CURPSEGN 35600000 LA CURINDEX,2(CURINDEX) INDEX TO P PTR 35800000 LH CURPPTR,0(CURCHNAD,CURINDEX) CURRENT P PTR 36000000 LR WORK1,CURPPTR CURRENT P PTR 36200000 SLL WORK1,4 MULT BY 16 36400000 A WORK1,CHESD POINTS TO CESD LINE ID=P 36600000 IC CURPSEGN,12(WORK1) CURRENT SEGMENT NO OF P 36800000 *********************************************************************** 37000000 * DOES THE CONTROL SECTION WITH ITS ESDID = THIS P LIE IN 37200000 * THE CURRENT SEGMENT/ NO GO TO TEST END OF CALLS LIST 37400000 *********************************************************************** 37600000 *********************************************************************** 37800000 * TEST FOR A CONTROL SECTION IN SEGMENT 1 38000000 *********************************************************************** 38200000 LA WORK1,1 INIT WORK1 TO 1 38400000 CLR WORK1,CURPSEGN IS THIS P IN SEGMENT 1 38600000 BC 7,ENS018 NO / CONTINUE 38800000 OI PSEGONE,X'80' SET IND A CALL FROM SEG 1 SEEN 39000000 ENS018 CLR CURSEGNO,CURPSEGN DOES CURR.P SEG.NO.= CURR.SEG. 39200000 BC 7,ENS1200 NO 39400000 *********************************************************************** 39600000 * INCREMENT TO NEXT CALLS LIST ENTRY / TEST IF ALL RS FOR 39800000 * THIS P HAVE BEEN PROCESSED 40000000 *********************************************************************** 40200000 ENS020 LA CURINDEX,2(CURINDEX) INCREMENT TO NEXT R OR CHAIN 40400000 CH CURINDEX,0(CURCHNAD) IS SCAN FOR THIS P PTR DONE 40600000 BC 8,ENS1200 YES 40800000 *********************************************************************** 41000000 * USING R POINTER REFERENCE CESD TO DETERMINE WHAT ITS 41200000 * TYPE IS / ER,PR NO GOOD 41400000 *********************************************************************** 41600000 LH CURRPTR,0(CURCHNAD,CURINDEX) PICK UP CURRENT R PTR 41800000 LR WORK1,CURRPTR CURRENT R PTR 42000000 SLL WORK1,4 MULT BY 16 42200000 A WORK1,CHESD POINTS TO ENTRY IN CESD R=ID 42400000 *********************************************************************** 42600000 MVN TESTTYPE,8(WORK1) MOVE LOW 4 BITS FOR TEST 42800000 CLI TESTTYPE,X'08' IS TYPE = SD WITH RLDS 43000000 BC 2,ENS020 HIGH - GO TO NEXT R OR CA 43200000 BC 8,ENS030 YES - PROCESS SD 43400000 CLI TESTTYPE,X'05' IS TYPE = CM 43600000 BC 2,ENS020 HIGH - GO TO NEXT R OR CA 43800000 BC 8,ENS030 YES - PROCESS CM 44000000 TM TESTTYPE,X'03' IS TYPE = SD OR LR 44200000 BC 4,ENS020 NO - GO TO PROCESS NEXT R OR CA 44400000 * TYPES SD,SD W/RLD,LR,CM OK 44600000 *********************************************************************** 44800000 * FIND SEGMENT NUMBER OF THIS R POINTER - USE CESD 45000000 *********************************************************************** 45200000 ENS030 SR CURRSEGN,CURRSEGN 45400000 IC CURRSEGN,12(WORK1) PICK UP SEGMENT NO OF R = SR 45600000 *********************************************************************** 45800000 * TEST FOR UPWARD CALL - YES - NO ENTAB LINES REQUIRED 46000000 *********************************************************************** 46200000 CLR CURRSEGN,CURPSEGN DOES SR = SP 46400000 BC 8,ENS020 YES UPWARD CALL / NO LINES 46600000 LR WORK1,CURRSEGN PASS SR TO COMMON PATH 46800000 LR WORK2,CURPSEGN PASS SP TO COMMON PATH 47000000 BAL RETURN,ENS1500 47200000 CLR WORK2,CURRSEGN DOES SR = SC 47400000 BC 8,ENS020 YES (UPWARD CALL) / NO LINES 47600000 *********************************************************************** 47800000 * TEST FOR DOWNWARD CALL - YES - MAY REQUIRE ENTAB 48000000 *********************************************************************** 48200000 CLR WORK2,CURPSEGN DOES SP = SC 48400000 BC 8,ENS080 YES (DOWNWARD CALL) 48600000 *********************************************************************** 48800000 * DETERMINE REGION NUMBERS FOR SEGMENT NUMBERS P AND R 49000000 *********************************************************************** 49200000 SR WORK1,WORK1 49400000 SR WORK2,WORK2 49600000 SR WORK4,WORK4 49800000 ENS040 IC WORK4,LSTS(WORK1) HI SEG OF THIS REG 50000000 LA WORK1,1(WORK1) REG NO.FOR SP IN WORK1 50200000 CR CURPSEGN,WORK4 DOES SP LIE IN THIS REG 50400000 BC 2,ENS040 NO 50600000 ENS050 IC WORK4,LSTS(WORK2) HI SEG OF THIS REG 50800000 CR CURRSEGN,WORK4 DOES SR LIE IN THIS REG 51000000 LA WORK2,1(WORK2) REG NO.FOR SR IN WORK2 51200000 BC 2,ENS050 NO 51400000 *********************************************************************** 51600000 * DO BOTH SEGMENTS LIE IN THE SAME REGION / YES MAY B ERR 51800000 *********************************************************************** 52000000 CLR WORK1,WORK2 DOES RSP = RSR 52200000 BC 7,ENS080 NO / CALL TO DIFFERENT REGION 52400000 *********************************************************************** 52600000 * CONVERT SEGMENT NUMBER FROM WHICH THIS EXCLUSIVE CALL * 52800000 * HAS BEEN MADE FROM BINARY TO DECIMAL FOR PRINTING MESS.* 53000000 *********************************************************************** 53200000 LR WORK3,CURPSEGN FROM SEGMENT 53400000 CVD WORK3,CVDAREA CONVERT TO DECIMAL 53600000 UNPK CVDAREA+0(5),CVDAREA+6(3) UNPACK TO SUPPLY ZONE 53800000 CLI CVDAREA,C'0' IS FIRST DIGIT ZERO 53900000 BC 7,ENS055 NO 54000000 MVI CVDAREA,C' ' YES--MOVE IN BLANK 54100000 CLI CVDAREA+1,C'0' IS SECOND DIGIT ZERO 54200000 BC 7,ENS055 NO 54300000 MVI CVDAREA+1,C' ' YES--MOVE IN BLANK 54400000 ENS055 MVI CVDAREA+3,C' ' 54600000 MVC CVDAREA+4(4),CVDAREA+3 BLANK REMAINING FIVE CHARACTERS 54800000 * PRINTING 8 CHARACTERS 55000000 *********************************************************************** 55200000 * USING DOWNWARD CALLS LIST DETERMINE IF THERE IS AN ENTAB 55400000 * IN A SEGMENT COMMON TO CURRENT(SP) TO SYMBOL WITH ESDID 55600000 * = TO R /YES-IS VALID XCAL / NO- IS INVALID XCALL 55800000 *********************************************************************** 56000000 L WORK3,RECNT ENTRY LIST ADDRESS 56200000 IC WORK4,4(WORK3,CURRPTR) GET ENTRY AT THIS R = SPCR 56400000 LTR WORK2,WORK4 DOES SEG.NO = 0/ PUT SPCR WORK2 56600000 BC 8,ENS070 YES/NO PREVIOUS CALLS TO THIS R 56800000 LR WORK1,CURPSEGN PASS SP TO CPTH 57000000 BAL RETURN,ENS1500 GO TO COMMON PATH ANS = SC 57200000 CLR WORK2,WORK4 DOES SC = SPCR 57400000 BC 7,ENS070 NO /NO CALL TO THIS R FROM A 57600000 * SEGMENT IN ROOT PATH OF SP 57800000 *********************************************************************** 58000000 * TEST IF XCALL OPTION SPECIFIED - YES -EXECUTE 58200000 *********************************************************************** 58400000 LH ERRCODRG,ERRPARM1 ASSUME XCALL ON/NO ERROR-WARN 58600000 TM APT0,XCAL IS XCAL OPTION = ON 58800000 BC 1,ENS060 XCALL ON/ GO PRINT WARNING 59000000 LH ERRCODRG,ERRPARM2 XCALL OFF /EXECUTE ON LET ONLY 59200000 * SEVERITY 3 59400000 *********************************************************************** 59600000 * GO TO ERROR DIAGNOSTIC ROUTINE TO PRINT MESSAGE 59800000 *********************************************************************** 60000000 ENS060 ST ACUMZERO,SAVECT SAVE ENTAB COUNT 60200000 LR ACUMZERO,CURRPTR ID OF R - TO SYMBOL 60400000 SLL ACUMZERO,4 RELATIVE ADD OF SYMBOL 60600000 A ACUMZERO,CHESD TRUE ADDRESS OF SYMBOL 60800000 L ERRADDRG,ERDIG ERROR ADD 61000000 LA ERRSYMRG,CVDAREA ADDRESS OF SEGMENT NUMBER 61200000 BALR RETURN,ERRADDRG 61400000 L ACUMZERO,SAVECT RESTORE COUNT OF ENTAB LINES 61600000 BC 15,ENS020 61800000 *********************************************************************** 62000000 * AN INVALID CALL HAS BEEN DETECTED SET UP TO PRINT MESS. 62200000 *********************************************************************** 62400000 ENS070 LH ERRCODRG,ERRPARM3 INVALID XCALL / EXECUTE ON LET 62600000 BC 15,ENS060 62800000 *********************************************************************** 63000000 * TEST IF A PREVIOUS CALL HAS BEEN MADE TO THIS SYMBOL 63200000 * FROM A SEGMENT COMMON TO THE CURRENT SEGMENT 63400000 *********************************************************************** 63600000 ENS080 L WORK3,RECNT ADD OF DOWNWARD CALLS LIST 63800000 SR WORK2,WORK2 64000000 IC WORK2,4(WORK3,CURRPTR) GET SEG NO OF PREVIOUS CALL 64200000 LTR WORK4,WORK2 WAS THERE A PREVIOUS CALL 64400000 BC 8,ENS090 NO 64600000 LR WORK1,CURPSEGN PASS SP TO CPTH 64800000 BAL RETURN,ENS1500 GO TO COMMON PATH/ANS IS = SC 65000000 CLR WORK2,WORK4 DOES SC = SPCR 65200000 BC 8,ENS020 YES /AN ENTAB LINE EXISTS IN 65400000 * THE ROOT PATH OF SP FOR R 65600000 *********************************************************************** 65800000 * PUT THE CURRENT SEGMENT NUMBER IN THE DOWNWARDS CALL 66000000 * LIST AT THE R TH ENTRY-- R IS THE ESDID OF THE CALLED 66200000 * SYMBOL 66400000 *********************************************************************** 66600000 ENS090 L WORK3,RECNT 66800000 STC CURPSEGN,4(WORK3,CURRPTR) 67000000 LA ACUMZERO,1(ACUMZERO) 67200000 *********************************************************************** 67400000 * TEST IF A CALL HAS BEEN MADE FROM SEG 1 - YES-TO VALID 67600000 * SYMBOL / YES - SET INDICATOR IN PSEGONE -BIT 2 67800000 *********************************************************************** 68000000 TM PSEGONE,X'80' IS THIS CALL FROM SEGMENT 1 68200000 BC 8,ENS020 NO / 68400000 OI PSEGONE,X'40' YES / AN A VALID CALL WAS MADE 68600000 BC 15,ENS020 68800000 *********************************************************************** 69000000 * TEST IF A VALID CALL HAS BEEN FROM SEGMENT 1 TO A SYMBOL 69200000 * NOT IN SEGMENT 1 69400000 *********************************************************************** 69600000 ENS110 LH ERRCODRG,ERRPARM4 69800000 TM PSEGONE,X'40' 70000000 BC 1,ENS115 YES/ DO NOT PRINT ERROR MESS 70200000 L ERRADDRG,ERDIG ADD OF ERROR DIAGNOSTIC ROUTINE 70400000 BALR RETURN,ERRADDRG GO TO ERROR DIAGNOSTIC ROUTINE 70600000 *********************************************************************** 70800000 * RESTORE REGISTERS AND RETURN TO CALLER 71000000 *********************************************************************** 71200000 ENS115 L 13,SAVERG13 RESTORE ADDRESS OF CALLERS AREA 71400000 LM 14,12,DISP(13) RESTORE CALLERS REGISTERS 71600000 BCR 15,14 RETURN TO CALLER 71800000 *********************************************************************** 72000000 * SET INDICATOR FOR PROCESSING A CONTROL SECTION IN SG1TO0 72200000 *********************************************************************** 72400000 ENS1200 NI PSEGONE,X'7F' SET P IN SEGMENT 1 TO 0 72600000 *********************************************************************** 72800000 * TEST FOR END OF PROCESSING CURRENT SEGMENT 73000000 *********************************************************************** 73200000 AH CURCHNAD,0(CURCHNAD) ADD.CURRENT CHAIN ADDRESS TO 73400000 * ADD.OF PREVIOUS CHAIN ADDRESS 73600000 ENS010 LH WORK1,0(CURCHNAD) CURRENT CHAIN 73800000 LTR WORK1,WORK1 IS SCAN FOR CURRENT SEGMENT DON 74000000 BC 2,ENS017 NO / LOOK AT NEXT P 74200000 *********************************************************************** 74400000 * TEST IF THERE ANY ENTAB LINES FOR THIS SEGMENT/ YES GO 74600000 * TO IEWLCAD1 TO RECORD COUNT. 74800000 *********************************************************************** 75000000 LTR ACUMZERO,ACUMZERO ANY ENTAB LINES FOR THIS SEG 75200000 BC 8,ENS015 NO GO TO PROCESS NXT SEGMENT 75400000 LM RETURN,BRANCH,ENS1300 SET UP RETURN & BRANCH REGS 75600000 BCR 15,BRANCH GO TO PCEB / ENTER ENTAB INCESD 75800000 *********************************************************************** 76000000 *********************************************************************** 76200000 * CPTH - COMMON PATH SUBROUTINE * 76400000 * * 76600000 * * 76800000 *********************************************************************** 77000000 * * 77200000 * REQUIRED REGISTERS & PARAMETERS * 77400000 * BASE * 77600000 * WORK1 SEG A (NOT SAVED) * 77800000 * WORK2 SEG B (NOT SAVED) ANS PUT HERE * 78000000 * WORK3 WORK REGISTER (NOT SAVED) * 78200000 * RETURN RETURN ADDRESS * 78400000 * APT ALL PURPOSE TABLE * 78600000 *********************************************************************** 78800000 *********************************************************************** 79000000 ENS1500 L WORK3,SGT1 ADDRESS OF SEGTAB1 79200000 ENS1600 CLR WORK2,WORK1 DOES SEG B = SEG A 79400000 BCR 8,RETURN YES - ANS IN WORK 2 79600000 BC 2,ENS1700 NO -SEG B GTR SEG A 79800000 XR WORK2,WORK1 NO -SEG B LOW SEG A 80000000 XR WORK1,WORK2 EXCHANGE PARAMETERS 80200000 XR WORK2,WORK1 80400000 ENS1700 IC WORK2,0(WORK3,WORK2) GET PREVIOUS SEGMENT NUMBER 80600000 LTR WORK2,WORK2 IS PREVIOUS SEGMENT NUMBER = 0 80800000 BC 2,ENS1600 NO 81000000 LA WORK2,1 SET ANS = 1 81200000 BCR 15,RETURN 81400000 *********************************************************************** 81600000 *********************************************************************** 81800000 ENS1300 DC A(ENS015) RETURN ADDRESS 82000000 DC V(IEWLCAD1) 82200000 SIX DC H'6' CONSTANT OF 6 82400000 * 82600000 TESTTYPE DC X'00' USED FOR TESTING LOW 4 BITS OF 82800000 * ESD TYPE 83000000 PSEGONE DC X'00' USED TO INDICATE AVALID CALL 83200000 * FROM SEGMENT 1 83400000 * BIT 1- INIT= 0 1= CALL FROMSG1 83600000 * BIT 2- INIT= 0 1= CALL FROMSG1 83800000 * TO A VALID SYMBOL NOT IN SEG 1 84000000 CVDAREA DS 2D ' PRINT IMAGE FOR XCALL MESSAGE 84200000 SAVECT DC F'0' SAVE ENTAB COUNT WHEN GOING TO 84400000 * ERROR DIAGNOSTIC ROUTINE 84600000 SAVERG13 DS F ADDRESS OF CALLERS REG SAVEAREA 84800000 *********************************************************************** 85000000 * ERROR PARAMETERS * 85200000 *********************************************************************** 85400000 MESS1 EQU X'3110' 85600000 MESS2 EQU X'3211' 85800000 MESS3 EQU X'3212' 86000000 MESS4 EQU X'020F' 86200000 ERRPARM1 DC AL2(MESS1) WARNING XCLUSIVE CALL-XCALL ON 86400000 ERRPARM2 DC AL2(MESS2) ERROR XCLUSIVE CALL -XCALL OFF 86600000 ERRPARM3 DC AL2(MESS3) ERROR INVALID XCLUSIVE CALL 86800000 ERRPARM4 DC AL2(MESS4) NO CALLS FROM SEG 1 TO VALID 87000000 * 87200000 * 87400000 * 87600000 *********************************************************************** 87800000 IEWAPT 88000000 *********************************************************************** 88200000 END 88400000 ./ ADD SSI=21280118,NAME=IEWLMENT,SOURCE=0 TITLE 'ENTRY POINT PROCESSOR' 00300000 *********************************************************************** 00600000 * IEWLMENT - ENTRY POINT PROCESSOR - ALIAS TABLE BUILDER * 00900000 *********************************************************************** 01200000 * 01500000 * ENTRY POINT - IEWLMENT - CONTROL SECTION NAME * 01800000 * 02100000 * INPUT - 02400000 * A) 1) COMPOSITE EXTERNAL DICTIONARY 02700000 * 2) RELOCATION CONSTANT TABLE 03000000 * 4) ENTRY POINT SYMBOL OR ASSEMBLED ADD AND ESDID 03300000 * 3) INDICATION IF ENTRY POINT HAS BEEN RECIEVED 03600000 * 4)ALIAS TABLE 03900000 * 04200000 * B) 1) GP REGISTER 2 -ADDRESS OF ALL PURPOSE TABLE 04500000 * 2) GP REGISTER 13 -ADDRESS OF A REG SAVE AREA 04800000 * 3) GP REGISTER 14 -CALLER RETURN ADDRESS 05100000 * 05400000 *********************************************************************** 05700000 *********************************************************************** 06000000 * DETERMINE ENTRY POINT AND ASSOCIATED ESDID * 06300000 * * 06600000 * PROCEDURE: * 06900000 * * 07200000 * (A) BUILD ALIAS TABLE USING ALIAS CHAIN IN CESD * 07500000 * (B) HAS AN ENTRY POINT BEEN DEFINED ? * 07800000 * (1)YES - IS IT SYMBOLIC ? * 08100000 * (A)YES-FIND SYMBOL IN CESD (NOT FOUND IS ERROR)* 08400000 * IS SYMBOL TYPE = SD OR LR (NO IS ERROR) * 08700000 * IS SYMBOL IN SEGMENT 1 (NO IS AN ERROR) * 09000000 * (B)NO - ENTRY POINT IS AN ASSEMBLED ADDRESS * 09300000 * USING GIVEN ESDID FIND LINKED ADDRESS * 09600000 * USING ESDID CHECK ADDRESS TO BE IN SEG 1 * 09900000 * (NOT IN SEGMENT 1 IS AN ERROR) * 10200000 * (2)NO - FIND LOWEST LINKED ADDRESS FOR TYPE SD OR* 10500000 * PC (NOT DELETE) IN CESD IN SEGMENT 1 * 10800000 * (NOT FOUND IS AN ERROR) * 11100000 * * 11400000 * * 11700000 *********************************************************************** 12000000 * 12300000 * REGISTER USAGE 12600000 * 12900000 IEWLMENT CSECT 13000000 * 615000 A30670 13100020 ERRCODRG EQU 0 REGS 13200000 ERRSYM EQU 1 ERROR SYMBOL ADDRESS REGS 13500000 ALIASTBL EQU 3 ADDRESS OF ALIAS TABLE 13800000 WORK1 EQU 5 WORK REG 14100000 APT EQU 2 APT REGS 14400000 CESDCT EQU 11 CESD CURR CT REGS 14700000 BASE EQU 12 REGS 15000000 WORK2 EQU 13 15300000 RCTADD EQU 8 ADDRESS OF RCT REGS 15600000 RETURN EQU 14 REGS 15900000 TEMP4 EQU 9 16200000 TEMP3 EQU 10 16500000 EVEN EQU 14 EVEN REG OF AN EVEEN /ODD PAIR 16800000 TEMP1 EQU 6 TEMPORARY WORK 17100000 ALIASADD EQU 7 ADDRESS OF ALIAS ENTRY IN CESD 17400000 BRANCH EQU 15 REGS 17700000 CESDADD EQU 8 CESD ADDRESS REGS 18000000 ENTRYCD EQU X'02' ENTRY CARD RECIEVED- MASK 18300000 OVERLYBT EQU X'20' OVERLAY MASK DISP 18600000 ENTPTSYM EQU X'04' SYMBOLIC ENTRY PT MASK 18900000 ENTPTRCD EQU X'08' ENTRY PT RECVD IND. 19200000 NULL EQU X'07' DISP 19500000 DISP EQU 0 REL DISP TO SAVE CALLERS REGS 19800000 * 20100000 *********************************************************************** 20700000 * SAVE ALL REGISTERS * 21000000 *********************************************************************** 21300000 STM 14,12,DISP(13) 21600000 USING ENT00050+2,BASE 21900000 USING APTDSECT,APT 22200000 ENT00050 BALR BASE,0 22500000 BC 15,MODID+6 BRANCH AROUND MODULE IDENT 22600000 MODID DC C'01MENT' 22700000 ST 13,SAVERG13 22800000 NI WORKBYTE,X'00' INITIALIZE WORKBYTE TO ZERO 23100000 *********************************************************************** 23400000 * CHAIN THROUGH CESD FINDING ALIASES - SCAN CESD FOR A * 23700000 * SYMBOL MATCH * 24000000 * 1) MATCH - SAVE ESD ID IN ALIAS TABLE * 24300000 * 2) NO MATCH - PUT 0 FOR ESDID IN ALIAS TABLE * 24600000 *********************************************************************** 24900000 *********************************************************************** 25200000 * ALIAS TABLE BUILDER 25500000 *********************************************************************** 25800000 * THE FOLLOWING EXPLAINS THE ALIAS TABLE BUILDING TECH * 26100000 * * 26400000 * 1) THE ALIAS SYMBOL IS PLACED IN THE ALIAS TABLE IN * 26700000 * BYTE LOCATIONS 1-8 * 27000000 * 2) IF A MATCH BETWEEN THE ALIAS SYMBOL AND AN SD OR * 27300000 * LR SYMBOL IN SEG 1 IS NOT FOUND - A 0 IS PUT BYTES* 27600000 * 9 AND 10 OF THE ALIAS TABLE * 27900000 * 3) IF A MATCH IS FOUND THE ESD ID OF THIS SYMBOL IN * 28200000 * THE ALIAS CHAIN IS SAVED IN BYTES 9 AND 10 OF THE * 28500000 * ALIAS TABLE - THIS ESDID (OR POINTER TO THE CESD) * 28800000 * POINTS TO A LINE OF ESD TYPE NULL (07 HEX)FOUND IN* 29100000 * BYTE 8 OF THE CESD ENTRY - IN BYTES 10-12 THE * 29400000 * ADDRESS OF LR OR SD IS SAVED - BYTES 13 AND 14 ARE* 29700000 * NOT USED - BYTES 15-16 CONTAIN THE ESD ID OF THE * 30000000 * SD WHICH THE ALIAS SYMBOL MATCHED OR THE SD IN * 30300000 * WHICH THE LR(WHICH THE ALIAS SYMBOL MATCHED) RESID* 30600000 * ES - THIS ESD ID IS SAVED FOR SCATTER LOADING * 30900000 * 4) THE CESD ENTRIES WHICH WERE CHAINED TOGETHER IN THE 31200000 * FIRST PASS TO RECORD ALIAS SYMBOLS ARE NOW USED TO* 31500000 * RECORD THE SYMBOL'S ADDRESS AND ID WHEN NEEDED. * 31800000 * 5) THE INFORMATION IS USED BY THE FINAL PROCESSOR IN * 32100000 * STOWING ALIASES * 32400000 *********************************************************************** 32700000 * 33000000 ENT00150 L ALIASADD,ALCB ADDRESS OF FIRST ALIAS ITEM 33300000 L ALIASTBL,ALAS ADDRESS OF ALIAS TABLE 33600000 L TEMP1,CHESD ADDRESS OF CESD 33900000 LH TEMP3,ENCDC CESD CT 34200000 ENT00155 LR CESDADD,TEMP1 RESTORE CESD ADD 34500000 LR CESDCT,TEMP3 RESTORE CESD CT 34800000 ENT00160 LTR ALIASADD,ALIASADD ARE THERE ANY MORE ALIASES 35100000 BC 8,ENT00200 NO /GO TO FIND ENTRY ADDRESS 35400000 MVC 0(8,ALIASTBL),0(ALIASADD) MV ALIAS SYMBOL TO ALIAS TABLE 35700000 MVI 8(ALIASADD),NULL SET THIS CESD LINE- TYPE NULL 36000000 L WORK1,8(ALIASADD) ADDREAS OF NEXT ALIAS SYMBOL 36300000 ENT00190 LA CESDADD,16(CESDADD) INCREMENT TO FIRST(NEXT) ENTRY 36600000 CLC 0(8,CESDADD),0(ALIASTBL) DOES ALIAS SYM = THIS CESD SYM 36900000 BC 7,ENT00192 NO /BRANCH TO TEST END CESDLOOP 37200000 LR ERRSYM,CESDADD ADDRESS OF ALIAS TABLE 37500000 MVC 9(7,ALIASADD),9(CESDADD) MOVE ADD OF LR OR SD TO NULL 37800000 * LINE,ALSO MOVE ID/L FIELD 38100000 LA WORK2,ENT00192 RETURN ADDRESS IF TYPE NE SD,LR 38400000 LA TEMP4,ENT01191 RETURN IF TYPE = LR 38700000 BAL RETURN,ENT01800 GO TO TEST TYPE FOR SD OR LR 39000000 SR CESDADD,TEMP1 RELATIVE CESD ADD OF SYMBOL 39300000 SRL CESDADD,4 ID OF SYMBOL 39600000 STH CESDADD,14(ALIASADD) PUT ID OF SD IN LD LINE 39900000 ENT01191 CLI 12(ERRSYM),X'01' IS SD OR LR IN SEG 1 40200000 BC 7,ENT00198 NO / GO TO PRINT ERROR MESSAGE 40500000 SR ALIASADD,TEMP1 RELATIVE ADD OF AE LINE 40800000 SRL ALIASADD,4 ID OF AE LINE 41100000 ENT00191 STH ALIASADD,8(ALIASTBL) PUT ID OF AE LINE IN ALIAS TBL 41400000 LA ALIASTBL,10(ALIASTBL) INCREMENT TO NEXT ALIAS SYMBOL 41700000 LA ALIASADD,0(WORK1) RESTORE ADD OF NEXT ALIAS SYM 42000000 BC 15,ENT00155 BRANCH TO TEST END OF ALIASLOOP 42300000 ENT00192 BCT CESDCT,ENT00190 BRANCH IF CESD LOOP NOT DONE 42600000 ENT00197 SR ALIASADD,ALIASADD 42900000 BC 15,ENT00191 BRANCH STORE 0 ID - CONTINUE 43200000 * 43500000 ENT00198 LH ERRCODRG,ERRPARM9 ERROR- ALIAS SYMBOL NOT IN SEG1 43800000 LA RETURN,ENT00197 RETURN ADDRESS 44100000 BC 15,ENT00500 GO TO /GO TO ERROR ROUT. 44400000 *********************************************************************** 44700000 * DETERMINE ENTRY POINT OF MODULE 45000000 *********************************************************************** 45300000 ENT00200 TM APT1,ENTPTRCD ENTRY POINT RECEIVED 45600000 BC 8,ENT01250 NO / GO FIND 1ST GOOD BYTE SEG1 45900000 TM APT1,ENTPTSYM ENTRY PT SYMBOLIC 46200000 BC 8,ENT01200 NO - GO FIND ABSOLUTE 46500000 *********************************************************************** 46800000 * ENTRY POINT IS SYMBOLIC * 47100000 *********************************************************************** 47400000 ENT00300 LA CESDADD,16(CESDADD) INC CESD ADD 47700000 CLC EPSM(8),0(CESDADD) DOES ENTRY SYMBOL = CESD SYMBOL 48000000 BC 8,ENT00600 YES / GO TO FIND ITS ADD 48300000 ENT00350 BCT CESDCT,ENT00300 BRANCH IF LOOP NOT DONE 48600000 LH ERRCODRG,ERRPARM3 SYMBOL NOT SD,LR IN CESD-ENTRY 48900000 TM APT1,ENTRYCD HAS AN ENTRY CD BEEN RECEIVED 49200000 BC 1,ENT00400 YES 49500000 LH ERRCODRG,ERRPARM4 SYMBOL NOT SD,LR IN CESD-ENTRY 49800000 ENT00400 LA ERRSYM,EPSM ADDRESS OF SYMBOL 50100000 ENT00450 LA RETURN,ENT01100 RETURN ADDRESS 50400000 ENT00500 L BRANCH,ERDIG ADD OF ERROR DIAGNOSTIC ROUTINE 50700000 BCR 15,BRANCH GO TO ERROR DIAGNOTIC ROUTINE 51000000 ENT00600 MVC LKDENTPT+1(3),9(CESDADD) SAVE ENTRY PT ADDRESS 51300000 LA WORK2,ENT00350 RETURN IF TYPE NOT ACCEPTABLE 51600000 LA TEMP4,ENT00800 RETURN IF TYPE = SD OR LR 51900000 BAL RETURN,ENT01800 GO TO TEST TYPE- SD,LR,SD W RLD 52200000 ENT00800 CLI 12(CESDADD),X'01' ENTRY PT IN SEGMENT 1 52500000 BC 7,ENT01700 NO / INVALID ENTRY POINT 52800000 ENT00900 SR CESDADD,TEMP1 RELATIVE ADD 53100000 SRL CESDADD,4 CS ID 53400000 STH CESDADD,LKDENTID SAVE ID 53700000 OC LKDENTPT(3),LKDENTPT IS ENTRY POINT ADD = 0 54000000 BC 8,ENT01000 YES 54300000 NI PDSE8,X'DF' SET IND IN PDS - ADD NOT = 0 54600000 ENT01000 MVC PDSE16(2),LKDENTID PUT ID IN PDS 54900000 MVC PDSE11(3),LKDENTPT+1 PUT ADD IN PDS 55200000 *********************************************************************** 55500000 * RESTORE ALL REGISTERS - RETURN TO CALLER * 55800000 *********************************************************************** 56100000 ENT01100 L 13,SAVERG13 RESTORE ADD OF CALLERS SAVEREA 56400000 LM 14,12,DISP(13) RESTORE USER REGISTERS 56700000 BCR 15,14 RETURN TO CALLER 57000000 *********************************************************************** 57300000 * ENTRY POINT IS AN ASSEMBLED ADDRESS FROM AN END CARD * 57600000 *********************************************************************** 57900000 ENT01200 MVC LKDENTID(2),PDSE16 PUT ID ON BOUNDRY 58200000 LH CESDADD,LKDENTID LOAD ID 58500000 LH ERRCODRG,ERRPARMA INVALID ENTRY PT ID -NO PT ADD 58800000 LTR TEMP4,CESDADD SAVE ID AND TEST FOR ZERO 59100000 BC 8,ENT00450 GO PRINT ERROR - INVALID ID 59400000 CLR TEMP4,TEMP3 DOES ID POINT INTO CESD 59700000 BC 2,ENT00450 NO-GO PRINT ERROR- INVALID ID 60000000 SLL CESDADD,4 RELATIVE CESD ADD 60300000 AR CESDADD,TEMP1 ADDRESS OF CESD ENTRY 60600000 MVN WORKBYTE(1),8(CESDADD) MOVE TYPE TO TEST IT 60900000 TM WORKBYTE,X'03' IS TYPE = SD,PC OR LR 61200000 BC 4,ENT00450 NO - ERROR ON ID A30670 61500020 SLL TEMP4,2 RCT RELATIVE ADD 61800000 A TEMP4,RECNT RCT ADD OF RC FOR THIS CS 62100000 TM APTSWS,X'20' IS END PT ADD TO BE RELOCATED 62400000 BC 8,ENT01230 ABSOLUTLY - NO 62700000 LA TEMP4,8(CESDADD) REG POINTS TO TYPE- ADDRESS 63000000 ENT01230 L TEMP4,0(TEMP4) LOAD RC OR CESD ADD TYPE 63300000 A TEMP4,EPSM ADD ASSEMBLED ADD TO RC 63600000 LA TEMP4,0(TEMP4) CLEAR HI ORDER BYTE 63900000 ST TEMP4,LKDENTPT SAVE ADD ON BOUNDRY 64200000 LH ERRCODRG,ERRPARMB INVALID ENTRY PT ADD-PRINT ADD 64500000 L WORK1,8(CESDADD) LINKED ADD OF CONTROL SEC 64800000 LA WORK1,0(WORK1) CLEAR HI BYTE TO ZERO 65100000 CR TEMP4,WORK1 IS ENTRY PT ADD GTR CONT SEC AD 65400000 BC 4,ENT01240 NO,GO TO PRINT ERROR MESS 65700000 A WORK1,12(CESDADD) UPPER BOUND OF CONTROL SECTION 66000000 LA WORK1,0(WORK1) CLEAR HI BYTE TO ZERO 66300000 CLR TEMP4,WORK1 IS ENTRY POINT LESS THAN UPP BD 66600000 BC 11,ENT01240 NO,GO TO PRINT ERROR MESSAGE 66900000 CLI 12(CESDADD),X'01' IS ENTRY POINT IN SEG 1 67200000 BC 8,ENT00900 YES / GO TO SAVE ENTRY POINT 67500000 LH ERRCODRG,ERRPARM7 ENTRY POINT NOT IN SEG 1 PARM 67800000 ENT01240 MVI LKDENTPT,X'00' SET HI BYTE OF ADD TO ZERO 68100000 UNPK EPSM(8),LKDENTPT(5) UNPACK 4 BYTE ADDRESS 68400000 TR EPSM(8),TABLE-C'0' TRANSLATE BINARY TO HEX 68700000 LM EVEN,BRANCH,EPSM 69000000 SRDL EVEN,8 69300000 STM EVEN,BRANCH,EPSM 69600000 MVI EPSM,C'0' SET HI BYTE TO ZERO 69900000 BC 15,ENT00400 GO TO ERROR ROUTINE 70200000 *********************************************************************** 70500000 * NO ENTRY POINT SPECIFIED BY PROBLEM PROGRAM * 70800000 *********************************************************************** 71100000 ENT01250 MVC LKDENTPT+1(3),THREEFS SET LKDENTPT TO HIGHEST POS ADD 71400000 LR TEMP4,TEMP1 71700000 ENT01300 LA TEMP4,16(TEMP4) INC TEMP1 BY 16 (TEMP1 PTST 72000000 MVC WORKBYTE(1),8(TEMP4) MOVE TYPE TO WORKBYTE 72300000 NI WORKBYTE,X'1F' REMOVE TOP 3BITS - 72600000 CLI WORKBYTE,X'0C' IS TYPE NOT ACCEPTABLE 72900000 BC 2,ENT01400 YES / CONTINUE LOOP 73200000 TM WORKBYTE,X'13' IS TYPE = SD OR PC(NOT DELETE) 73500000 BC 5,ENT01400 NO/ GO TO TEST END OF LOOP 73800000 CLI 12(TEMP4),X'01' IS CS IN SEG 1 74100000 BC 7,ENT01400 NO / GO TO TEST END OF LOOP 74400000 CLC 9(3,TEMP4),LKDENTPT+1 IS THIS CS ADD LESS PRV ADD 74700000 BC 11,ENT01400 NO / GO TEST END OF LOOP 75000000 LR CESDADD,TEMP4 SAVE CESD ADD OF LOW CS ADD 75300000 MVC LKDENTPT+1(3),9(TEMP4) SAVE NEW LOW CS ADD 75600000 ENT01400 BCT CESDCT,ENT01300 BRANCH IF LOOP NOT DONE 75900000 CLC LKDENTPT+1(3),THREEFS HAS A CS BEEN FOUND 76200000 BC 7,ENT00900 YES / SAVE ADD AND ID 76500000 TM PDSE7,OVERLYBT IS PROGRAM IN OVERLAY 76800000 BC 8,ENT01100 NO/ GO TO GO TO ERROR ROUTINE 77100000 LH ERRCODRG,ERRPARM8 NO ENTRY PT DEFINED IN SEG 1 77400000 BC 15,ENT00450 GO TO - GO TO ERROR DIAG 77700000 * NO ENTRY PT DEFINED BY PRB.PG. 78000000 ENT01700 LH ERRCODRG,ERRPARM5 SYMBOL FROM ENTRY CD NOT IN SG1 78300000 TM APT1,ENTRYCD HAS AN ENTRY CARD BEEN RECEIVED 78600000 BC 1,ENT00400 YES / GO TO PASS RETURN ADD 78900000 LH ERRCODRG,ERRPARM6 SYMBOL FROM END CARD NOT IN SG1 79200000 BC 15,ENT00400 GO TO PASS RETURN ADDRESS 79500000 *********************************************************************** 79800000 * TEST TYPE = HEX(08,03,08) 80100000 *********************************************************************** 80400000 ENT01800 MVN WORKBYTE(1),8(CESDADD) MOVE LOW 4 BITS TO TEST TYPE 80700000 CLI WORKBYTE,X'08' IS TYPE AN ACCEPTABLE ONE 81000000 BCR 2,WORK2 NO / RETURN 81300000 CLI WORKBYTE,X'03' IS TYPE = LR 81600000 BCR 8,TEMP4 YES / RETURN 81900000 TM WORKBYTE,X'07' IS NOT SD OR SD WITH RLDS OR LR 82200000 BCR 5,WORK2 YES / RETURN 82500000 BCR 15,RETURN RETURN - SD 82800000 THREEFS DC XL3'FFFFFF' 83100000 LKDENTPT DS F ENTRY POINT 83400000 LKDENTID DS H ENTRY POINT ID 83700000 SAVERG13 DS F SAVE AREA FOR ADDRESS OF CALL- 84000000 * 84300000 WORKBYTE DC X'00' USED TO TEST TYPE OF ESDS 84600000 *********************************************************************** 84900000 * ERROR PARAMETERS - ALL ARE SEVERITY 3 - NON EXECUTABLE 85200000 *********************************************************************** 85500000 * DISP SEVERITY MESS.NO. 85800000 ENT3 EQU X'2305' 2 3 05 86100000 ENT4 EQU X'2306' 2 3 06 86400000 ENT5 EQU X'2307' 2 3 07 86700000 ENT6 EQU X'2308' 2 3 08 87000000 ENT7 EQU X'2309' 2 3 09 87300000 ENT8 EQU X'030B' 0 3 0B 87600000 ENT9 EQU X'222F' 2 2 2F 87900000 ENTA EQU X'0303' 0 3 03 88200000 ENTB EQU X'2303' 2 3 03 88500000 DS 0F 88800000 ERRPARM3 DC AL2(ENT3) SYMBOL NOT AN EXTERNAL NAME-ENT 89100000 ERRPARM4 DC AL2(ENT4) SYMBOL NOT AN EXTERNAL NAME-END 89400000 ERRPARM5 DC AL2(ENT5) SYMBOL NOT DEFINED IN ROOT -ENT 89700000 ERRPARM6 DC AL2(ENT6) SYMBOL NOT DEFINED IN ROOT -END 90000000 ERRPARM7 DC AL2(ENT7) ENTRY POINT ADDRESS NOT IN ROOT 90300000 ERRPARM8 DC AL2(ENT8) NO CONTROL SECTION IN ROOT 90600000 ERRPARM9 DC AL2(ENT9) INVALID ALIAS ENTRY POINT \SEG1 90900000 ERRPARMA DC AL2(ENTA) INVALID ENTRY PT - NO ADDRESS 91200000 ERRPARMB DC AL2(ENTB) INVALID ENTRY PT - ADDRESS 91500000 *********************************************************************** 91800000 * TABLE OF HEX CHARACTERS - USED IN BINARY CONVERSION * 92100000 *********************************************************************** 92400000 TABLE DC C'0' 92700000 DC C'1' 93000000 DC C'2' 93300000 DC C'3' 93600000 DC C'4' 93900000 DC C'5' 94200000 DC C'6' 94500000 DC C'7' 94800000 DC C'8' 95100000 DC C'9' 95400000 DC C'A' 95700000 DC C'B' 96000000 DC C'C' 96300000 DC C'D' 96600000 DC C'E' 96900000 DC C'F' 97200000 * 97500000 IEWAPT 97800000 END 98100000 ./ ADD SSI=00011846,NAME=IEWLMESD,SOURCE=0 TITLE 'ESD CARD PROCESSOR' 00100000 *FUNCTION/OPERATION: THIS MODULE PROCESSES THE ESD CARDS PRODUCED BY * 00200000 * ASSEMBLERS AND COMPILERS. IT ALSO PROCESSES THE ESD RECORDS * 00300000 * WHICH ARE THE OUTPUT OF A PREVIOUS LINK EDIT. AS EACH ESD ITEM * 00400000 * IS ENCOUNTERED,IT IS ENTERED IN THE COMPOSITE ESD. IF THE * 00500000 * SYMBOL IS UNIQUE, THE ITEM IS ENTERED IN A NEW LINE, OTHERWISE * 00600000 * THE HIERARCHIAL RULES OF ESD TYPES APPLY AND THE EXISTING * 00700000 * LINE IS MODIFIED. FOLLOWING ARE A FEW EXAMPLES OF COLLECTION. * 00800000 * SECTION DEFINITION + EXTERNAL REFERENCE = SECTION DEFINITION * 00900000 * LABEL DEFINITION + EXTERNAL REFERENCE = LABEL DEFINITION * 01000000 * EXTERNAL REFERENCE + EXTERNAL REFERENCE = EXTERNAL REFERENCE * 01100000 * * 01200000 * PSEUDO REGISTERS MAY ONLY COLLECT PSEUDO REGISTERS,E.G. * 01300000 * A PR CANNOT COLLECT AVER BUT MAY ONLY COLLECT A PR . * 01400000 * * 01500000 * IN THE PROCESS OF CREATING THE COMPOSITE ESD, THE ESD PROCESSOR* 01600000 * ALSO CREATES THE RENUMBERING TABLE WHICH IS A TRANSLATION TABLE* 01700000 * USED TO CHANGE ID'S FROM ESD-RELATIVE, TO CESD-RELATIVE. * 01800000 * * 01900000 *ENTRY POINTS IEWLMESD - BEGINNING OF CSECT - LA 13,SAVEAREA * 02000000 * BALR 14,15 * 02100000 *INPUT: -REGISTERS- * 02200000 * REGISTER 4 - BYTE COUNT OF ESD ITEMS TO BE PROCESSED * 02300000 * REGISTER 5- ID OF FIRST ESD ITEM INPUT TO ESD PROCESSOR * 02400000 * REGISTER 6- ADDRESS OF FIRST ESD ITEM TO BE PROCESSED * 02500000 * - OTHER INPUT - * 02600000 * THE BASIC INPUT IS THE ESD RECORD ITSELF WHICH IS READ BY THE * 02700000 * INPUT PROCESSOR * 02800000 * * 02900000 *OUTPUT: THE COMPOSITE EXTERNAL SYMBOL DICTIONARY(CESD) * 03000000 * THE RENUMBERING TABLE(RNT) * 03100000 * NEITHER OF THE ABOVE TABLES IS OUTPUT TO AN I/O DEVICE * 03200000 * BUT THEY ARE USED IN SUBSEQUENT PROCESSES * 03300000 *EXTERNAL ROUTINES: IEWLELOG- WRITES ERROR DIAGNOSTIC CODE * 03400000 * IEWLCDLK - DELINK ROUTINE - IF AN RLD ITEM REQUIRES A * 03500000 * DELINK VALUE, THIS ROUTINE SAVES IT IN THE * 03600000 * DELINK TABLE * 03700000 * CALLING SEQUENCE - BALR 14,15 * 03800000 *EXITS-NORMAL: AFTER ALL ESD ITEMS INPUT HAVE BEEN PROCESSED,CONTROL * 03900000 * RETURNS TO THE INPUT PROCESSOR VIA REGISTER 14 * 04000000 *EXITS-ERROR: THERE ARE NO ERROR EXITS TO THE SYSTEM. ALL ERRORS * 04100000 * ARE RELAYED THROUGH THE ERROR DIAGNOSTIC ROUTINE * 04200000 * WHICH THEN DECIDES WHETHER TO PROCEED OR STOP * 04300000 * * 04400000 *TABLES/WORK AREAS: NO INTERNAL TABLES ARE USED * 04500000 *ATTRIBUTES: REUSABLE * 04600000 *NOTES: N/A * 04700000 IEWLMESD CSECT 04800000 * 249100-249500,291000,292000,588000,589100-589900,652500 A22116 04820000 * 395000-397200 A20632 04840000 * 564400-565600 A22103 04860000 * 216200-216300 A40594 04870021 * 465000,472000-473000 A26198 04880021 *A471300 A44660 04886021 *D472500 A44660 04892021 *A105000 SA53762 04894021 *A294400-297000 SA60214 04896021 *A32900,334000 SA63255 04898021 *A596000 SA61609 04898421 *C346000,I346000 SA65984 04898821 *C346000-346500,C346800,C346920,D346740 SA69196 04899221 *C253000-255000,C461000,I461000 SA68823 04899621 ENTRY IEWLCE30 04900000 ENTRY IEWLCTTY 05000000 ENTRY IEWLCRID 05100000 SYSRET EQU 14 05200000 RNT EQU 5 05300000 TEMP2 EQU 4 05400000 CESDCHN EQU 14 05500000 SD EQU X'00' 05600000 NULL EQU X'07' 05700000 CESDID EQU 9 05800000 CESDORG EQU 9 05900000 ESDORG EQU 9 06000000 CESDSEG EQU 12 06100000 RNTTYPE EQU 3 06200000 RNTFLAG EQU 2 06300000 CM EQU X'05' 06400000 TEMP EQU 10 06500000 CESDLEN EQU 13 06600000 SYSBRNCH EQU 15 06700000 ESDLEN EQU 13 06800000 CESDTYPE EQU 8 06900000 CESDNAME EQU 0 07000000 ESDNAME EQU 0 07100000 CESDTF EQU 10 07200000 CESDXR EQU 7 07300000 LABELDEF EQU X'01' 07400000 LD EQU X'01' 07500000 PC EQU X'04' 07600000 LR EQU X'03' 07700000 INTERNAL EQU 13 07800000 SUBTYPE EQU 13 07900000 ER EQU X'02' 08000000 ESDSEG EQU 12 08100000 PR EQU X'06' 08200000 ESDTYPE EQU 8 08300000 ESDADD EQU 6 08400000 APT EQU 2 08500000 CESD EQU 3 08600000 BASE EQU 12 08700000 AUTOLIB EQU X'40' 08800000 ESDWRITE EQU X'01' 08900000 NOLENBIT EQU X'40' 09000000 TEMP1 EQU 8 09100000 TEMP4 EQU 0 09200000 TEMP3 EQU 1 09300000 OVBIT EQU X'20' 09400000 TBLONUM EQU X'10D' 09500000 REGSAVE EQU 76 09600000 OBJCTMOD EQU X'20' 09700000 RETURN EQU 11 09800000 BYTECNT EQU 4 09900000 RNTID EQU 0 10000000 RNTR EQU 4 10100000 COM EQU X'04' 10200000 ESDOVFLW EQU X'419' 10300000 RNTOFLOW EQU X'41A' 10400000 ERR23 EQU X'317' SA53762 10500021 WX EQU X'0A' WXTERN ESD ITEM II288 10550000 USING IEWLMESD,BASE 10600000 USING APTDSECT,APT ESTABLISH ADDRESSABILITY FOR APT 10700000 STM SYSRET,BASE,12(INTERNAL) SAVE CALLERS REGISTERS 10800000 LR BASE,SYSBRNCH BASE IN 12 10900000 BC 15,MODID+6 BRANCH AROUND MODULE IDENT 10930000 MODID DC C'01MESD' 10960000 ST INTERNAL,SAVEAREA SAVE ADDRESS OF SAVEAREA 11000000 ST SYSRET,REG24SA 11100000 TM APT1,OBJCTMOD IS INPUT OBJECT MODULE 11200000 BC 1,ESD01 NO BRANCH 11300000 CH BYTECNT,C56 IS BYTE COUNT GR 56 11400000 BC 2,BADCARDO YES ERROR 11500000 BC 15,ESD02 11600000 ESD01 CH BYTECNT,C240 IS BYTE COUNT GR 240 11700000 BC 2,BADCARDL YES ERROR 11800000 ESD02 SRL BYTECNT,4 NUMBER OF ESD ITEMS 11900000 LTR BYTECNT,BYTECNT IS BYTE COUNT LESS THAN 16 DECIMAL 12000000 BC 8,BADCARDO NO-CONTINUE--YEW--PRINT ERROR 12100000 STM BYTECNT,RNT,REGSA4 12200000 * INITIALIZE ALL BASES AND INDEXES 12300000 L RNT,RECNT RENUMBERING TABLE BASE REGISTER 12400000 L CESD,CHESD CESD BASE REGISTER 12500000 * EXTRACT BITS 5,6,7 OF TYPE AND MAKE IT A BYTEFULL 12600000 ESD1 MVC TESTYPE(1),ESDTYPE(ESDADD) 12700000 * MOVE ESD TYPE TO INTERNAL WORK AREA 12800000 LR CESDXR,CESD SAFETY FOR IDCESD 12900000 NI ESDTYPE(ESDADD),X'1F' CLEAR ALL FLAGS EXCEPT DELETE 13000000 NI TESTYPE,X'0F' CLEAR DELETE BIT II288 13100000 * IS ESD TYPE PR 13200000 TM APT1,OBJCTMOD IS INPUT OBJECT MODULE 13300000 BC 1,ESD1A0 NO-BRANCH 13400000 NI ESDTYPE(ESDADD),X'EF' CLEAR DELETE BIT 13500000 ESD1A0 CLI TESTYPE,PR 13600000 BC 8,ESD2 13700000 * YES-BRANCH TO ESD2 NOT TO DESTROY ALIGNMENT FIELD 13800000 * NO-CONTINUE 13900000 MVC ESDSEG(1,ESDADD),CSNO+1 14000000 * SET ESD SEGMENT NUMBER FIELD TO THE CURRENT SEGMENT 14100000 * IF AUTOMATIC LIBRARY CALL IS IN OPERATION, THE CURRENT * 14200000 * SEGMENT NUMBER IS ONE * 14300000 TM APT1,AUTOLIB 14400000 BC 8,ESD1A 14500000 MVI ESDSEG(ESDADD),1 14600000 * IS ESD TYPE AN ER * 14700000 ESD1A CLI TESTYPE,ER IS TYPE ER 14740000 BC 8,ESD1B YES II288 14780000 CLI TESTYPE,WX IS TYPE WX II288 14820000 BC 7,ESD2 NO II288 14860000 * NO-BRANCH TO ESD2 14900000 * YES-CONTINUE 15000000 * CLEAR BYTE 9 OF THE ER FOR AUTOMATIC LIBRARY CALL * 15200000 ESD1B XC ESDORG(3,ESDADD),9(ESDADD) II288 15300000 TM APT1,OBJCTMOD 15400000 * IS INPUT OBJECT MODULE 15500000 * NO-BRANCH TO ESD2 15600000 * YES-CONTINUE 15700000 * ALL ERS FROM OBJECT MODULES ARE PURE ERS(BYTE 13 = 0) * 15800000 BC 1,ESD2 15900000 MVI SUBTYPE(ESDADD),X'00' 16000000 ESD2 L TEMP,RCCB 16100000 * ARE THERE ANY REPLACE/CHANGE CARDS IN CHAIN * 16200000 LTR TEMP,TEMP 16300000 BC 8,ESD3 16400000 * YES-CONTINUE BY BRANCHING TO REPLACE/CHANGE CARD PROCESS 16500000 L INTERNAL,RPCHGADD 16600000 BALR RETURN,INTERNAL 16700000 * REPLACE/CHANGE CARD PROCESSOR RETURNS HERE 16800000 ESD3 CLI TESTYPE,PC 16900000 * IS ESD TYPE PRIVATE CODE 17000000 * YES-BRANCH TO ENTER PC AT CURRENT LINE + 1 17100000 * NO-CONTINUE TESTING FOR LABEL DEFINITION 17200000 BC 8,ESD20 17300000 CLI TESTYPE,NULL IS TYPE A NULL 17400000 BC 8,RENUMBER YES , BRANCH 17500000 * IS ESD TYPE LABEL DEFINITION 17600000 CLI TESTYPE,LD 17700000 * NO-BRANCH TO ESD4 TO SEARCH THE CESD 17800000 * YES-CHANGE TYPE TO LR AND SET LABEL DEFINITION BIT ON 17900000 BC 7,ESD4 18000000 MVI TESTYPE,LR 18100000 OI INTERN1,LABELDEF 18200000 ESD4 LR CESDXR,CESD 18300000 * INITIALIZE CESD LOOP 18400000 LH CESDTF,ENCDC 18500000 LA CESDTF,1(CESDTF) 18600000 ESD5 LA CESDXR,16(CESDXR) 18700000 * IS CESD LOOP DONE 18800000 BCT CESDTF,ESD6 18900000 * YES-BRANCH TO NON-RESOLUTION PROCESSING 19000000 B ESD23 19100000 * NO-CONTINUE CHECKING FOR A SYMBOL MATCH 19200000 ESD6 CLC ESDNAME(8,ESDADD),CESDNAME(CESDXR) 19300000 * DO ESD AND CESD SYMBOLS MATCH 19400000 * NO-CONTINE CESD SEARCH 19500000 BC 7,ESD5 19600000 * YES-PERFORM COLLECTION OF ESD AND CESD TYPES 19700000 * EXTRACT CESD TYPE FOR TESTING PURPOSES 19800000 ESD6A EQU * 19900000 MVC CESDTTYP(1),CESDTYPE(CESDXR) 20000000 NI CESDTTYP,X'0F' II288 20100000 BAL RETURN,IDCESD 20200000 CLI CESDTTYP,NULL 20300000 BC 8,ESD5 20400000 CLI TESTYPE,PR II288 20500000 * IS ESD TYPE PSEUDO REGISTER 20600000 * YES-A PSEUDO REGISTER MAY ONLY COLLECT ANOTHER 20700000 BC 8,ESD9 20800000 * NO-THE CESD TYPE MAY BE A PSEUDO REGISTER 20900000 * IS CESD TYPE PSEUDO REGISTER OR NULL 21000000 CLI CESDTTYP,PR 21100000 * YES-RETURN TO CESD SEARCH 21200000 BC 8,ESD5 II288 21250000 CLI CESDTTYP,NULL IS TYPE NULL II288 21300000 BC 8,ESD5 21350000 * NO-CONTINUE 21400000 * 21410000 * PROCESS WX'S HERE. IF WX MATCHES ANYTHING BUT ANOTHER II288 21420000 * WX, CHANGE THE TYPE TO ER AND PROCESS NORMALLY. II288 21430000 * II288 21440000 CLI TESTYPE,WX IS INPUT ESD TYPE WX II288 21450000 BC 7,ESD6B NO - BRANCH II288 21460000 * INPUT ITEM IS WX II288 21470000 CLI CESDTTYP,WX IS CESD A WX II288 21480000 BC 7,ESD6C NO - BRANCH II288 21490000 B RENUMBER BOTH TYPES ARE WX II288 21500000 * ONLY INPUT ITEM IS WX II288 21510000 ESD6C CLI CESDTTYP,ER IS CESD TYPE ER II288 21520000 BNE ESD6D NO II288 21530000 CLI SUBTYPE(CESDXR),X'80' IS CESD ITEM A CONTROL CARD II288 21540000 BC 2,ESD5 YES - CONTINUE CESD LOOP II288 21550000 ESD6D MVI TESTYPE,ER CHANGE INPUT ITME TO ER II288 21560000 MVI ESDTYPE(ESDADD),ER II288 21570000 B ESD7 CONTINUE II288 21580000 ESD6B CLI CESDTTYP,WX IS CESD TYPE WX II288 21590000 BC 7,ESD7 NO - BRANCH II288 21600000 * ONLY CESD TYPE IS WX - CHANGE TO ER II288 21610000 NI CESDTTYP,X'F7' CHANGE CESD ITEM TO ER A40594 21620021 NI CESDTYPE(CESDXR),X'F7' CHANGE CESD ITEM TO ER A40594 21630021 ESD7 TM CESDTYPE(CESDXR),X'40' IS TYPE CHAIN II288 21640000 * YES-BRANCH TO RESET CESD INDEX TO CHAIN VALUE 21700000 BC 1,ESD13 21800000 * IS CESD TYPE ER 21900000 LA RETURN,ESD23A 22000000 CLI CESDTTYP,ER 22100000 * YES-SEE IF IT IS A CONTROL CARD 22200000 BC 8,ESD12 22300000 * IT IS NOT AN ER OR CONTROL CARD 22400000 CLI TESTYPE,LR 22500000 * IS ESD TYPE LR 22600000 BC 7,ESD14 22700000 * NO-BRANCH FOR FURTHER EXAMINATION OF ESD TYPE 22800000 * YES-PERFORM LABEL REFERENCE RESOLUTION 22900000 OI INTERN1,X'02' 23000000 * SET MATCH BIT ON INTERNALLY 23100000 BC 15,LABEL 23200000 ESD9 CLI CESDTYPE(CESDXR),PR 23300000 * IS CESD TYPE A PSEUDO REGISTER 23400000 BC 7,ESD5 23500000 * NO-RETURN TO THE CESD SEARCH 23600000 * YES-BOTH ESD AND CESD TYPES ARE PSEUDO REGISTERS 23700000 CLC ESDLEN(3,ESDADD),CESDLEN(CESDXR) 23800000 * IS ESD LENGTH GREATER THAN CESD LENGTH 23900000 * NO-BRAN.H TO CHECK ALIGNMENT 24000000 BC 4,ESD10 24100000 * YES SET CESD LENGTH TO ESD LENGTH 24200000 MVC CESDLEN(3,CESDXR),ESDLEN(ESDADD) 24300000 ESD10 OC CESDSEG(1,CESDXR),ESDSEG(ESDADD) 24400000 * SET CESD ALIGNMENT TO THE HIGHER OF THE TWO VALUES 24500000 BC 15,RENUMBER 24600000 ESD12 CLI SUBTYPE(CESDXR),X'80' 24700000 * IS CESD SUBTYPE FOR A CONTROL CARD 24800000 BC 2,ESD5 24900000 * YES-CONTINUE CESD LOOP 25000000 * NO-RESUME PROCESSING 25100000 OI INTERN1,MATCHER SHOW WE MATCHED AN ER A26198 25150021 * IS ESD TYPE CM,SD,LR 25200000 CLI TESTYPE,X'02' IS INPUT ITEM AN ER SA68823 25250021 BE ESD120 BRANCH IF SO SA68823 25300021 TM TESTYPE,X'03' IS INPUT ITEM AN LR SA68823 25350021 BNO ESD17 BRANCH IF NOT SA68823 25400021 TM CESDORG(CESDXR),X'80' TEST IF BLDL ISSUED SA68823 25450021 BNO ESD17 BRANCH IF NOT SA68823 25500021 L TEMP,REGSA5 GET CESD ID OF ITEM SA68823 25550021 SLL TEMP,2 CALC RNT OFFSET SA68823 25560021 AR TEMP,RNT POINT TO RNT ENTRY SA68823 25570021 OI RNTFLAG(TEMP),X'80' SET BLDL ISSUED FLAG SA68823 25580021 B ESD17 CONTINUE TO CONVERT ER SA68823 25590021 ESD120 EQU * SA68823 25592021 TM ESDTYPE(ESDADD),X'10' IS INCOMING ITEM DELETE/REPLACE 25600000 BC 8,ESD12A NO-BRANCH 25700000 TM CESDTYPE(CESDXR),X'10' IS CESD TYPE DELETE/RELPACE 25800000 BC 8,ESD15A NO 25900000 * CESD ITEM IS ALSO DEL/REP 26000000 TM SUBTYPE(CESDXR),X'08' IS IT A DELETE 26100000 BC 8,ESD15A NO BRANCH 26200000 TM SUBTYPE(ESDADD),X'08' IS ESD TYPE A DELETE 26300000 BC 8,CESDDLNK NO BRANCH 26400000 BC 15,ESD23 DELETE-DELETE CAUSES BOTH LINES 26500000 * TO BE ENTERED 26600000 ESD12A TM SUBTYPE(ESDADD),X'07' IS SUBTYPE A PURE ER 26700000 BC 5,ESD17 26800000 NI SUBTYPE(CESDXR),X'F7' CLEAR DELETE BIT MAKING SUBTYPE 26900000 * A REPLACE 27000000 TM SUBTYPE(CESDXR),X'06' IS SUBTYPE A NO CALL 27100000 * OR LIBR ARY MEMBER 27200000 BC 9,RENUMBER NO BRANCH 27300000 OI SUBTYPE(CESDXR),X'01' YES IT IS-MARK CESD MATCHED 27400000 BC 15,RENUMBER 27500000 * RESET CESD INDEX TO CHAIN VALUE AND THEN BRANCH BACK TO* 27600000 * EXAMINE THE TYPE OF THE LINE TO WHICH THIS WAS CHAINED * 27700000 ESD13 LH TEMP,CESDCHN(CESDXR) 27800000 SLL TEMP,4 27900000 LA CESDXR,0(TEMP,CESD) 28000000 BC 15,ESD6A 28100000 ESD14 CLI TESTYPE,SD 28200000 * IS ESD TYPE SD 28300000 BC 7,ESD18 28400000 * NO-BRANCH FOR FURTHER EXAMINATION OF ESD TYPE 28500000 * YES-PERFORM SECTION DEFINITION RESOLUTION 28600000 CLI CESDTTYP,CM 28700000 * IS CESD TYPE CM 28800000 BC 7,ESD15 28900000 * NO-CONTINUE RESOLUTION 29000000 * YES! COMPARE LENGTH FIELDS.CM SHOULD BE SMALLER OR EQUAL. 29100000 * IF IT'S NOT WE'LL GIVE ERROR MESSAGE AND TAKE CM LENGTH.222116 29200000 CLC ESDLEN(3,ESDADD),CESDLEN(CESDXR) 29300000 BNL ESD38 29400000 CLC ESDLEN(3,ESDADD),ZERO3 IS SD LENGTH ZERO? A34230 29420021 BNE COMMON1 GO TO HANDLE SD LESS SA60214 29470021 ESD14A LR TEMP3,CESDXR NAME OF COMMON FOR MSG A34230 29750021 LH TEMP4,ERR57 ERR NUMBER,SEVERITY,DISP A34230 29800021 L SYSBRNCH,ERDIG ADDR. OF ERROR ROUTINE A34230 29850021 BALR SYSRET,SYSBRNCH GO TO PRINT MSG A34230 29900021 B ESD38 CONT. PROCESSING SD ITEM A34230 29950021 * BRANCH TO SECTION DEFINITION PROCESSING 30000000 ESD15 CLI CESDTTYP,LR 30100000 * IS CESD TYPE LABEL REFERENCE 30200000 LA RETURN,ESD15A 30300000 BC 8,DBLDEF 30400000 * YES-BRANCH TO ERROR ROUTINE FOR DOUBLE LABEL DEFINITION 30500000 * NO-CONTINUE 30600000 ESD15A LA RETURN,ENTER 30700000 * BRANCH TO DELETE CHAIN ROUTINE FOR AUTOMATIC REPLACE * 30800000 BC 15,DELCHN 30900000 * IF THE ESD TYPE IS NOT MARKED DELETE,RENUMBER IT * 31000000 ESD16 TM ESDTYPE(ESDADD),X'10' 31100000 BC 8,RENUMBER 31200000 * IT IS DELETE SO BRANCH TO DELETE CHAIN ROUTINE 31300000 BC 15,ESD15A 31400000 * IS SUBTYPE UNMATCHED LIBRARY MEMBER 31500000 ESD17 OI INTERN1,X'08' 31600000 TM 8(CESDXR),X'10' IS CESD DELETE 31700000 BC 1,CESDDLNK DELINK IT 31800000 ESD17A TM 13(CESDXR),X'06' IF CESD TYPE IS LIBRARY MEMBER 31900000 BCR 9,RETURN DECHAIN IT 32000000 TM 13(CESDXR),X'04' 32100000 BCR 1,RETURN 32200000 L SYSBRNCH,ADDDECHN 32300000 BCR 15,SYSBRNCH 32400000 ESD18 CLI TESTYPE,CM 32500000 * IS ESDTYPE COMMON 32600000 BC 7,ESD16 32700000 * NO-BRANCH FOR ER PROCESSING * 32800000 CLI CESDTTYP,PC CHECK FOR MATCH OF BLANK PC SA63255 32900021 * IS CESD TYPE PC 33000000 BC 8,ESD5 33100000 * YES-NO MATCH RESULTS 33200000 LA RETURN,ESD15A 33300000 CLI CESDTTYP,LR CHECK FOR MATCH OF BLANK LR SA63255 33400021 * IS CESDTYPE A LABEL 33500000 BC 8,DBLDEF 33600000 * YES-BRANCH TO ERROR FOR DOUBLE LABEL DEFINITION MESSAGE 33700000 * SET ESD TYPE TO CESD TYPE 33800000 * SET ESD TYPE TO DELETE AND THEN BRANCH TO THE COMMON * 33900000 * ROUTINE 34000000 BC 15,COMMON 34100000 * * 34200000 * UNMATCHED PC AND SD PROCESSING BEGINS * 34300000 * HERE * 34400000 * * 34500000 ESD20 BAL RETURN,NXTLINE GET NEXT ITEM IN CESD SA69196 34600021 NC ESDLEN(3,ESDADD),ESDLEN(ESDADD) SA65984 34660021 * CHECK FOR LENGTH OF ZERO SA65984 34670021 BNZ ESD21 SKIP IF NOT SA65984,SA69196 34680021 OI TESTYPE,DELETE MARK FOR DELETE IF SO SA65984 34690021 B ENTER ENTER IN CESD, RNT SA65984,SA69196 34692021 ESD21 TM APT1,AUTOLIB 34700000 * IS AUTOMATIC LIBRARY CALL IN OPERATION * 34800000 BC 8,ESD22 34900000 * NO-BRANCH AROUND 35000000 * YES-SET BIT 0 OF TYPE TO A ONE 35100000 OI ESDTYPE(ESDADD),X'80' 35200000 ESD22 OI APT1,ESDWRITE 35300000 * SET ESD WRITE INDICATOR ON 35400000 * IS LENGTH FIELD IN ESD BLANKS 35500000 NC ESDLEN(3,ESDADD),ESDLEN(ESDADD) 35600000 BC 4,ENTER 35700000 * NO-ENTER THE LINE IN THE CESD 35800000 * YES-IS NO LENGTH BIT ON 35900000 TM APT2,NOLENBIT 36000000 * YES-IGNORE IT * 36100000 BC 1,ENTER 36200000 OI APT2,NOLENBIT 36300000 * SET NOLENGTH BIT ON AND SAVE THE LINE ADDRESS IN APT * 36400000 ST CESDXR,PDSE18 36500000 BC 15,ENTER 36600000 ********** NON RESOLUTION PROCESSING BEGINS HERE ********** 36700000 ESD23 BAL RETURN,FREELINE 36800000 * SET CESD INDEX TO CURRENT LINE+1 AND UPDATE CURRENT CNT* 36900000 ESD23A CLI TESTYPE,LR 37000000 * IS ESD TYPE LR 37100000 BC 8,LABEL 37200000 * YES BRANCH TO LABEL ROUTINE 37300000 * NO-IS ESD TYPE SECTION DEFINITION 37400000 CLI TESTYPE,SD 37500000 BC 8,ESD21 37600000 * YES-BRANCH TO SECTION DEFINITION PROCESSING 37700000 * NO-IS TYPE NULL 37800000 CLI TESTYPE,CM 37900000 * SET INTERNAL COMMON INDICATOR ON AND MARK COMMON DELETE* 38000000 BC 8,ESD42 38100000 * YES-BRANCH TO RENUMBER ROUTINE 38200000 ********** THE ENTER ROUTINE STARTS HERE ********** 38300000 ENTER CH CESDID,ENCDX 38400000 * IS THE CESD LIMIT EXCEEDED 38500000 BC 2,ESDOFLOW 38600000 * YES, BRANCH TO ERROR DIAGNOSTIC FOR CESD OVERFLOW MSG * 38700000 * NO-SET ESD SYMBOL AND ORIGIN INTO CESD LINE 38800000 MVC CESDNAME(8,CESDXR),ESDNAME(ESDADD) 38900000 * MOVE SYMBOL FIELD * 39000000 MVC CESDORG(3,CESDXR),ESDORG(ESDADD) 39100000 * MOVE ORIGIN FIELD * 39200000 TM CESDTYPE(CESDXR),X'20' 39300000 * IS CESD TYPE INSERT 39400000 BC 8,ESD24X NO, BRANCH. A20632 39480000 CLI TESTYPE,LR IS ITEM AN LR A20632 39560000 BC 7,ESD24 NO, BRANCH. A20632 39640000 ESD24X MVC CESDSEG(1,CESDXR),ESDSEG(ESDADD) A20632 39720000 ESD24 MVC CESDLEN(3,CESDXR),ESDLEN(ESDADD) 39800000 * SET CESD LENGTH FIELD TO ESD LENGTH FIELD 39900000 * SET CESD TYPE TO ESD TYPE 40000000 NI CESDTYPE(CESDXR),X'F0' CLEAR LOW ORDER BITS II288 40100000 OC CESDTYPE(1,CESDXR),TESTYPE 40200000 MVC CLRBYT(1),ESDTYPE(ESDADD) 40300000 NI CLRBYT,X'F0' CLEAR BITS II288 40400000 OC CESDTYPE(1,CESDXR),CLRBYT 40500000 ********** THE RENUMBER ROUTINE STARTS HERE ********** 40600000 * IF THE LINE WHICH IS ABOUT TO BE ENTERED IS AN LD 40700000 * IT IS NOT ENTERED-ALL OTHERS ARE 40800000 RENUMBER TM INTERN1,LABELDEF 40900000 BC 1,ESD30 41000000 L TEMP,REGSA5 41100000 LTR TEMP,TEMP 41200000 BC 12,TBLOFLOW 41300000 CH TEMP,ENCDX 41400000 BC 2,TBLOFLOW 41500000 * IF THE ENTRY WONT FIT IN THE RENUMBERING TABLE- 41600000 * BRANCH TO ERROR DIAGNOSTIC FOR TABLE OVERFLOW MESSAGE 41700000 SLL TEMP,2 41800000 * COMPUTE ADDRESS OF RNT LINE * 41900000 AR TEMP,RNT 42000000 MVC RNTTYPE(1,TEMP),TESTYPE 42100000 MVC CLRBYT(1),ESDTYPE(ESDADD) 42200000 NI CLRBYT,X'F0' CLEAR BITS II288 42300000 OC RNTTYPE(1,TEMP),CLRBYT 42400000 * SET TYPE IN RNT 42500000 OI RNTFLAG(TEMP),X'01' 42600000 * SET PRESENT FLAG ON IN RNT LINE AND THEN GO TO IDCESD * 42700000 * TO COMPUTE THE ID(LINE NUMBER) OF THE PRESENT LINE * 42800000 BAL RETURN,IDCESD 42900000 LH TEMP1,RNTID(TEMP) 43000000 STH CESDID,RNTID(TEMP) 43100000 * STORE THE LINE ID IN THE RNT * 43200000 TM RNTFLAG(TEMP),X'02' 43300000 * IS DEPEND FLAG ON 43400000 BC 8,ESD29 43500000 * NO-BRANCH TO UPDATE RNT INDEX * 43600000 * YES-CLEAR DEPEND BIT IN RNT * 43700000 NI RNTFLAG(TEMP),X'FD' 43800000 ESD24A SLL TEMP1,4 43900000 AR TEMP1,CESD TEMP1 IS INDEX TO LABEL LINE 44000000 TM CESDTYPE(TEMP1),X'40' 44100000 BC 8,ESD25 44200000 * IF THE CESD TYPE IS CHAINED A DOUBLE DEFINITION WILL 44300000 * OCCUR IF THE PRESENTESD IS NOT MARKED DELETE * 44400000 TM ESDTYPE(ESDADD),X'10' 44500000 BC 1,ESD28B 44600000 LA RETURN,ESD28B 44700000 * BRANCH TO ERROR DIAGNOSTIC FOR DOUBLE SYMBOL DEFINITION* 44800000 * *****ERROR***** * 44900000 * * 45000000 BC 15,DBLDEF1 45100000 ESD25 TM ESDTYPE(ESDADD),X'10' 45200000 BC 1,ESD27 45300000 * IF ESD TYPE IS NOT DELETE - RENUMBER ID 45400000 ESD26 LH TEMP,12(TEMP1) 45500000 ESD26A STH CESDID,14(TEMP1) 45600000 * IF CHAIN ENDS (TEMP= 0 ) STOP RENUMBERING LABELS * 45700000 ESD26B LTR TEMP1,TEMP 45800000 BC 8,ESD29 45900000 BC 15,ESD24A 46000000 ESD27 LH TEMP2,14(,TEMP1) GET CESD ID FOR SD ITEM SA68823 46100021 SLL TEMP2,2 CALC RNT OFFSET SA68823 46120021 AR TEMP2,RNT POINT TO RNT ENTRY SA68823 46130021 TM RNTFLAG(TEMP2),X'80' TEST FOR BLDL ISSUED FLG SA68823 46140021 BNO ESD27A BRANCH IF NOT ON SA68823 46142021 XC CESDORG(3,TEMP1),CESDORG(TEMP1) SA68823X46144021 CLEAR CESD FIELD SA68823 46146021 OI CESDORG(TEMP1),X'80' TRANSFER BLDL ISSUED FLG SA68823 46148021 SR TEMP2,TEMP2 CLEAR WORK REG SA68823 46148421 BCTR TEMP2,0 GET MAX CESD ID SA68823 46148821 B ESD27B GO TO CONVERT CESD ITEM SA68823 46149221 ESD27A LH TEMP2,14(,TEMP1) RESTORE CESD ID OF SD SA68823 46149621 ESD27B EQU * SA68823 46149721 MVI CESDTYPE(TEMP1),ER SET CESD TO ER A26198 46150021 * IF THE ESD TYPE IS DELETE, CHECK RNT POINTER TO SEE IF * 46200000 * IT IS AN LD-IF IT IS SET TYPE TO ER MARKED DELETE * 46300000 LTR TEMP2,TEMP2 46400000 BZ ESD28A LD THAT CAN BE DELETED A26198 46460021 BM ESD28B LD THAT CAN'T BE DELETED A26198 46520021 * IF IT IS AN LR- THE RNT TYPE MUST BE SET TO ER DELETE * 46600000 * AS WELL AS CESD TYPE * 46700000 ESD28 SLL TEMP2,2 46800000 AR TEMP2,RNT 46900000 * SET RNT TYPE * 47000000 * SET CESD TYPE * 47100000 MVI RNTTYPE(TEMP2),ER RNT TYPE ER A26198 47130021 OI RNTTYPE(TEMP2),DELETE TURN ON DELETE FLAG A44660 47140021 TM RNTFLAG(TEMP2),NODELETE SHOULD WE MARK IT A26198 47160021 * FOR DELETION? A26198 47190021 BO ESD28B NO,BRANCH A26198 47220021 ESD28A OI CESDTYPE(TEMP1),DELETE YES, SET DELETE FLAG A26198 47280021 * IN TYPE A26198 47310021 ESD28B LH TEMP,12(TEMP1) 47400000 * SET SUBTYPE TO DELETE * 47500000 MVI SUBTYPE(TEMP1),X'08' 47600000 BC 15,ESD26B TO CHECK IF CHAIN IS DONE 47700000 ESD29 L TEMP,REGSA5 47800000 * IF THE ITEM BEING PROCESSED IS COMMON-DELINK IT * 47900000 TM INTERN1,COM 48000000 BC 1,ESD43 48100000 ESD29A LA TEMP,1(TEMP) 48200000 ST TEMP,REGSA5 48300000 IEWLCE30 EQU * 48400000 ESD30 NI INTERN1,X'00' 48500000 LA ESDADD,16(ESDADD) 48600000 L TEMP,REGSA4 48700000 BCT TEMP,ESD30A 48800000 * IF THE ESD CARD IS DONE- RETURN TO THE INPUT PROCESSOR * 48900000 ESD30A0 L INTERNAL,SAVEAREA 49000000 LM SYSBRNCH,TEMP3,16(INTERNAL) 49100000 L SYSRET,REG24SA 49200000 LM CESD,BASE,32(INTERNAL) 49300000 * CLEAR INTERNAL INDICATORS * 49400000 BCR 15,SYSRET 49500000 * OTHERWISE SAVE THE RNTID AND RETURN TO THE BEGINNING * 49600000 ESD30A ST TEMP,REGSA4 49700000 BC 15,ESD1 49800000 ********** THE LABEL ROUTINE STARTS HERE ********** 49900000 LABEL LH TEMP,14(ESDADD) 50000000 * COMPUTE THE RNT ADDRESS FOR THE LABEL ID * 50100000 SLL TEMP,2 50200000 AR TEMP,RNT 50300000 LA INTERNAL,ENTER 50400000 L TEMP2,REGSA5 50500000 TM INTERN1,MATCHER DID THIS MATCH AN ER? A26198 50509021 BNO REN1 NO, BRANCH A26198 50518021 TM INTERN1,LABELDEF IS THIS AN LD? A26198 50527021 BO REN1 YES, NO FLAG IN RNT A26198 50536021 SLL TEMP2,2 A26198 50545021 AR TEMP2,RNT ADD TO FORM RNT ADDRESS A26198 50554021 OI RNTFLAG(TEMP2),NODELETE YES,SET FLAG ON IN RNT A26198 50563021 * SO THIS CAN'T BE DELETED A26198 50572021 L TEMP2,REGSA5 RESTORE RNT ID A26198 50581021 REN1 EQU * A26198 50590021 * SAVE THE RNT ID FIELD * 50600000 LH TEMP1,0(TEMP) 50700000 * IS CONTROL SECTION PRESENT 50800000 TM 2(TEMP),X'01' 50900000 BC 8,ESD33 51000000 * NO-BRANCH 51100000 * IF RNT TYPE IS DELETE-BRANCH 51200000 TM 3(TEMP),X'50' 51300000 BC 5,ESD31 51400000 * IF MATCH BIT IS ON-BRANCH 51500000 TM INTERN1,X'02' 51600000 BC 1,ESD32 51700000 * IF NOT-RENUMBER ID FIELD 51800000 STH TEMP1,14(ESDADD) 51900000 BCR 15,INTERNAL 52000000 * IF THE RNT TYPE IS DELETE - 52100000 ESD32 BAL RETURN,DBLDEF 52200000 ESD31 TM INTERN1,LABELDEF 52300000 BC 1,ESD44 52400000 * AND THE ESD TYPE IS LD - DONT ENTER THE LINE 52500000 * IF IT IS AN LR - * 52600000 MVI SUBTYPE(ESDADD),X'08' 52700000 MVI TESTYPE,2 52800000 OI ESDTYPE(ESDADD),X'10' 52900000 * MAKE ESD TYPE ER MARKED DELETE 53000000 TM INTERN1,X'0A' 53100000 * IF IT IS A MATCHING SYMBOL, BRANCH TO DELETE CHAIN * 53200000 * ROUTINE. IF NOT, STORE RNTID IN BYTE 14 OF CESD LINE * 53300000 BC 8,ESD33A 53400000 BAL RETURN,DELCHN 53500000 BCR 15,INTERNAL 53600000 * 53700000 ESD33 OI 2(TEMP),X'02' 53800000 * SET DEPENDENCY BIT ON IN RNT LINE FOR SD 53900000 TM INTERN1,X'02' 54000000 * IF IT IS A MATCHING SYMBOL - BRANCH, IF NOT- SET UP * 54100000 * CHAIN OF LABELS * 54200000 BC 1,ESD35 54300000 STH CESDID,0(TEMP) 54400000 STH TEMP1,12(ESDADD) 54500000 TM INTERN1,X'01' 54600000 BC 8,ESD33A 54700000 SR TEMP2,TEMP2 CLEAR TEMP2 54800000 TM INTERN1,MATCHER DID THIS MATCH AN ER? A26198 54820021 BNO ESD33A NO, BRANCH A26198 54840021 O TEMP2,FS YES, IT CAN'T BE DELETED A26198 54860021 * IF IT IS AN LD, BRANCH- OTHERWISE STORE INDEX TO RNT * 54900000 * LABEL LINE IN BYTES 12,13 OF LABEL ITEM * 55000000 ESD33A STH TEMP2,14(ESDADD) 55100000 BCR 15,INTERNAL 55200000 ESD35 BAL RETURN,DELCHN 55300000 MVI TESTYPE,2 55400000 * MAKE LABEL AN ER AND CHAIN IT TO THE MATCH * 55500000 STH CESDID,0(TEMP) 55600000 STH TEMP1,12(ESDADD) 55700000 BCR 15,INTERNAL 55800000 ********** THE DELCHN ROUTINE STARTS HERE ********** 55900000 DELCHN STH CESDID,14(ESDADD) 56000000 * STORE THE ID OF THE LINE IT IS CHAINED TO IN BYTES 14- * 56100000 * 15 OF THE LINE AND MARK TYPE DELETE-CHAIN * 56200000 OI ESDTYPE(ESDADD),X'50' 56300000 ********** THE FREELINE ROUTINE STARTS HERE ********** 56400000 FREELINE CLI TESTYPE,PR IS THIS ESD ITEM A PSEUDO REGISTER A22103 56440000 BE NXTLINE IF PSEUDO-REG USE NEW CESD LINE A22103 56480000 * PSEUDO REGISTERS MUST BE IN THE ORDER OF APPEARANCE A22103 56520000 L CESDXR,FLCD A22103 56560000 LTR CESDXR,CESDXR 56600000 * IF THERE ARE NO LINES IN THE ENTRIES DELETED CHAIN, * 56700000 * GO TO NXTLINE TO SELECT CURRENT LINE+1 * 56800000 BC 8,NXTLINE 56900000 ESD37 L TEMP3,12(CESDXR) 57000000 * SET FIRST FREE LINE TO NEXT FREE LINE * 57100000 ST TEMP3,FLCD 57200000 * IDCESD COMPUTES AN ID OF A CESD LINE GIVEN AN ADDRESS * 57300000 IDCESD LR CESDID,CESDXR 57400000 SR CESDID,CESD 57500000 SRL CESDID,4 57600000 BCR 15,RETURN 57700000 * NXTLINE INCREMENTS THE CURRENT CESD COUNT AND THEN * 57800000 * COMPUTES THE ADDRESS OF THE LINE(CESDXR) * 57900000 NXTLINE LH CESDID,ENCDC 58000000 LA CESDID,1(CESDID) 58100000 STH CESDID,ENCDC 58200000 LR CESDXR,CESDID 58300000 SLL CESDXR,4 58400000 AR CESDXR,CESD 58500000 BCR 15,RETURN 58600000 COMMON CLC 13(3,CESDXR),13(ESDADD) 58700000 * IF CESD SIZE IS LESS,CHECK FOR SD TYPE CESD A22116 58800000 BNL ESD38 58850000 TM CESDTYPE(CESDXR),X'0F' IS CESD SD A22116 58910000 BZ COMMON1 58916000 MVC 13(3,CESDXR),13(ESDADD) 58922000 B ESD38 58928000 COMMON1 LR TEMP3,CESDXR 58934000 * NAME OF COMMON. A22116 58940000 LH TEMP4,CMGTSD GET ERROR CODE A22116 58950000 L SYSBRNCH,ERDIG GIVE ERROR MESSAGE A22116 58960000 BALR 14,15 A22116 58970000 * IF OVERLAY-PROMOTION TAKES PLACE IN COMMON PATH * 59100000 ESD38 TM PDSE7,OVBIT 59200000 BCR 8,RETURN 59300000 TM CESDTYPE(CESDXR),X'20' IS INSERT BIT ON IN CESD 59330000 BCR 1,RETURN YES. USE CESD SEG NO 59360000 L INTERNAL,ADDCPTH 59400000 BCR 15,INTERNAL 59500000 DBLDEF1 LR TEMP3,TEMP1 POINT TO DUPLICATE NAME SA61609 59600021 BC 15,ESD39 59700000 DBLDEF LR TEMP3,ESDADD 59800000 ESD39 EQU * 59900000 LH TEMP4,DLDEF 60000000 ESD39A L SYSBRNCH,ERDIG 60100000 BALR 14,15 60200000 BCR 15,RETURN 60300000 TBLOFLOW LA TEMP4,RNTOFLOW 60400000 BC 15,ESD39A 60500000 ESDOFLOW LA TEMP4,ESDOVFLW 60600000 BC 15,ESD39A 60700000 ********** THE CESDDLNK ROUTINE STARTS HERE ********** 60800000 CESDDLNK LH RNTR,14(CESDXR) LOAD WITH RNT POINTER 60900000 DLNK1 LR TEMP3,CESDID 61000000 L SYSBRNCH,DELNKRT 61100000 BALR SYSRET,SYSBRNCH 61200000 BCR 15,RETURN 61300000 INTERN1 DC X'00' 61400000 MATCHER EQU X'10' INTERN1 FLAG -- THIS A26198 61410021 * ENTRY MATCHED AN ER A26198 61420021 NODELETE EQU X'20' RNT FLAG -- THIS NAME A26198 61430021 * SHOULDN'T BE DELETED A26198 61440021 DELETE EQU X'10' CESD TYPE DELETE FLAG A26198 61450021 FS DS 0F A26198 61460021 DC X'FFFFFFFF' NEG FULLWORD FOR LD CHAIN A26198 61470021 IEWLCTTY EQU * 61500000 TESTYPE DC X'00' 61600000 CESDTTYP DC X'00' 61700000 ERR57 DC X'2239' MSG NUMBER FOR MSG#562 A34230 61730021 ZERO3 DC X'000000' FOR CHECKING SD LENGTH A34230 61760021 ADDCPTH DC V(IEWLCPTH) 61800000 ADDDECHN DC V(IEWLCDCN) 61900000 RPCHGADD DC V(IEWLMRCG) 62000000 DELNKRT DC V(IEWLCDLK) 62100000 ESD42 OI INTERN1,COM 62200000 * SET INTERNAL COMMON BIT ON AND MAKE ESD TYPE DELETE * 62300000 OI ESDTYPE(ESDADD),X'10' 62400000 BC 15,ENTER 62500000 ESD43 LR RNTR,TEMP 62600000 LA RETURN,ESD29A 62700000 * CLEAR COMMON BIT AND SET UP FOR DELINKING * 62800000 NI INTERN1,X'FB' 62900000 OI APT1,ESDWRITE 63000000 BC 15,DLNK1 63100000 ESD44 TM INTERN1,X'0A' 63200000 BC 4,ESD30 63300000 MVI 8(CESDXR),NULL 63400000 BC 15,ESD30 63500000 BADCARDO LA TEMP3,0(0,ESDADD) 63600000 SH TEMP3,C16 63700000 LH TEMP4,ERR22 63800000 BC 15,BADCRDL1 63900000 BADCARDL LA TEMP4,ERR23 64000000 BADCRDL1 LA RETURN,ESD30A0 64100000 BC 15,ESD39A 64200000 REGSA4 DC F'0' 64300000 IEWLCRID EQU * 64400000 REGSA5 DC F'0' 64500000 REG24SA DC F'0' 64600000 C56 DC H'56' 64700000 C240 DC H'240' 64800000 C16 DC H'16' 64900000 ERR22 DC X'1216' 65000000 DLDEF DC X'2118' 65100000 SAVEAREA DC F'0' 65200000 CMGTSD DC X'2237' A22116 65250000 CLRBYT DC X'00' 65300000 IEWAPT 65400000 END 65500000 ./ ADD SSI=00011847,NAME=IEWLMFNL,SOURCE=0 TITLE 'FINAL PROCESSOR OF LINKAGE EDITOR' 00100000 *********************************************************************** 00200000 *FUNCTION/OPERATION: THIS MODULE PROVIDES THE FOLLOWING FUNCTIONS- * 00300000 * 1.IF THE PROGRAM IS IN OVERLAY, THE 'NOTE LIST', A LIST OF DISK TTRS* 00400000 * ARE WRITTEN AT THE END OF THE DATA SET AND ITS TTR IS PLACED IN * 00500000 * THE PDS DIRECTORY. THE TTRS ARE THE DISK ADDRESSES OF EACH SEGMENT* 00600000 * 2.THE PDS DIRECTORY IS COMPLETED-THAT IS THE NAME IS PLACED IN THE * 00700000 * DIRECTORY FROM EITHER THE NAME CARD, THE DEB, OR 'TEMPNAME' IS * 00800000 * USED. THE MEMBER IS THEN STOWED--EITHER WITH REPLACE OR ADD AS * 00900021 * SPECIFIED BY THE NAME CARD OR IN THE DEB. * 01000000 * 3.IF THERE ALIAS NAMES TO BE STOWED, THIS IS ACCOMPLISHED NEXT * 01100000 * 4.IF THE MODULE HAS BEEN DOWNGRADED--THAT IS GONE FROM REENTRANT TO * 01200000 * REUSABLE OR FROM REUSABLE TO NOT REUSABLE OR FROM EXECUTABLE TO * 01300000 * NOT EXECUTABLE, OR TO NOT REFRESHABLE, THIS IS PRINTED. 01400000 * 5.IF ANY IEWXXXS CODE HAD BEEN PRINTED, A DIRECTORY CORRESPONDING TO* 01500000 * THE CODE WILL BE PRINTED TO EXPLAIN IT. * 01600000 * IF MAP OR XREF WAS SPECIFIED AND THERE ARE ESDS, THE MAP/XREF * 01700000 * PROCESSOR IS CALLED TO PRODUCE THE PROPER OUTPUT * 01800000 * 7.IF THE END OF INPUT WAS NOT ON, PROCESSING WOULD BE RETURNED FOR * 01900000 * ANOTHER RUN THROUGH THE EDITOR. IF IT IS END OF INPUT, CONTROL * 02000000 * WILL BE RETURNED TO THE CALLER AFTER ALL FILES ARE CLOSED. * 02100000 * 8.THIS ROUTINE ALSO CONTAINS THE SYCHRONOUS ERROR EXIT. WHEN ENTERED* 02200000 * VIA IOCS, THE FILE NAME IS PRINTED, ALL FILES CLOSED AND RETURN IS* 02300000 * GIVEN TO THE CALLER A CONCODE IS PASSED IN REGISTER 15 * 02400000 * * 02500000 * * 02600000 * * 02700000 *ENTRY POINTS: * 02800000 * * 02900000 * IEWLMFNL--ENTERED FOR NORMAL PROCESSING * 03000000 * L 15,=V(IEWLMFNL) * 03100000 * BCR 15,15 * 03200000 * * 03300000 * IEWLCFAB--ENTERED FOR TERMINATING PROCESSING * 03400000 * L 15,=V(IEWLCFAB) * 03500000 * BCR 15,15 * 03600000 * * 03700000 * IEWLFSNX--ENTERED FOR SYNCHRONOUS FILE ERROR EXIT * 03800000 * L 15,=V(IEWLCSNX) * 03900000 * BCR 15,15 * 04000000 * * 04100000 * * 04200000 *INPUT: PDS DIRECTORY IN THE ALL PURPOSE TABLE (SEE IEWLKAPT) * 04300000 * TTR NOTE LIST IN THE ALL PURPOSE TABLE (SEE IEWLKAPT) * 04400000 * DEB -STANDARD FORMAT OF OUTPUT FILE USED TO STOW * 04500000 * INDICATORS IN THE ALL PURPOSE TABLE * 04600000 * ALIAS TABLE--EACH ENTRY IS TEN BYTES IN LENGTH * 04700000 * FIRST EIGHT BYTES IS ALIAS NAME * 04800000 * LAST TWO BYTES ARE AN ID OF THE HALF ESD TABLE * 04900000 * * 05000000 * * 05100000 *OUTPUT: DISK USED FOR STOW OF DIRECTORY AND WRITING THE NOTE LIST * 05200000 * (SEE PDS DIRECTORY IN ALL PURPOSE TABLE) * 05300000 * PRINTED OUT PUT TO INDICATE MEMBER STOWED * 05400000 * * 05500000 * * 05600000 * * 05700000 *EXTERNAL ROUTINES: N/A * 05800000 * * 05900000 * * 06000000 * * 06100000 *EXITS-NORMAL: AT END OF INPUT, ALL FILES ARE CLOSED, REGISTERS ARE * 06200000 * RESTORE, CONCODE PLACED IN REGISTER 15 AND A BRANCH * 06300000 * BACK ON REGISTER 14 * 06400000 * AT NAME CARD BUT NOT END OF INPUT RETURN IS GIVEN TO * 06500000 * LINKEDIT INIILIZER FOR MORE INPUT * 06600000 * * 06700000 *EXITS-ERROR: WHEN EITHER SYCHRONEOUS ERROR EXIT OR TERMINATION ENTRY* 06800000 * (FNALAB), RETURN TO CALLER WITH CONCODE OF 16 IN REG 15* 06900000 * OTHER RETURNS, NOT NORMAL CAN HAVE REGULAR CONCODES OF * 07000000 * 12,8, OR 4 IN REGISTER 15. * 07100000 * * 07200000 *TABLES/WORK AREAS: PDS DIRECTORY USED TO STOW - FORMAT IN ALL PURPOSE* 07300000 * TABLE * 07400000 * TTR NOTE LIST- 4 BYTES PER ENTRY EACH CONTAINING A* 07500000 * TTR CORRESPONDING TO THE START OF A SEGMENT * 07600000 * * 07700000 * * 07800000 * * 07900000 *ATTRIBUTES: REUSABLE * 08000000 * * 08100000 * * 08200000 *NOTES: THE MODULE CAN BE USED IN LEVEL E AND F LINKAGE EDITOR * 08300000 * HOWEVER, DESIGN OF MODULE WAS USING LEVEL E ALL PURPOSE * 08400000 * TABLE. WHEN USING FOR LEVEL F OFFSETS SHOULD BE CHECKED * 08500000 * * 08600000 *********************************************************************** 08700000 IEWLMFNL CSECT 08800000 * 216600 08810000 * 452400-486500,623200-625600,626300-626500 A26861 08820000 * 461000,474000 A21955 08850000 * 367000 A34199 08855021 * 544000,546000,607500 S20007 08860021 *A546000,546600 A37663 08865021 *A097800,626800 A41571 08870021 *C263000-264000,303000-309000,498000 A41571 08880021 *A156000,333000,370000,621000 S21016 08890021 *A561000 A51444 08892021 *A231600,377500,400500-400980,626920-626940 A52450 08894000 *A546000 A49330 08896021 *I213600,I262400,D262500,C262800,C263100,C263300 SA68552 08898021 *C306000-310000,C312000-319000,I311000,D524000-528000 SA68552 08898421 *I582000,I123000,C309940 SA68552 08898821 *C123500 SM0201 08899221 *I172000,I451720 SA69300 08899621 EXTRN IEWLMBTP 08900000 ENTRY IEWLCFNI 09000000 ENTRY IEWLCSNX 09100000 ENTRY IEWLCEOI 09200000 ENTRY IEWLCFAB 09300000 EXTRN IEWLCSDB 09400000 EXTRN IEWLCMDB 09500000 EXTRN IEWLCUDB 09600000 EXTRN IEWLCPDB 09700000 EXTRN IEWLTMDB S20007 09720021 EXTRN IEWLMLDB 09750000 EXTRN ENQNAME A 20341 09770000 EXTRN MINOR A 20341 09780000 EXTRN JFCBADDR ADDRESS OF SYSLMOD JFCB A41571 09790021 * REGISTER ASSIGNMENTS IN FINAL PROCESSOR 09800000 REG0 EQU 0 09900000 R0 EQU 0 10000000 R1 EQU 1 10100000 REG1 EQU 1 10200000 TTRREG EQU 1 10300000 REG2 EQU 2 REGISTER 2 10400000 APT EQU 2 ALL PURPOSE TABLE 10500000 PDSDIREG EQU 2 ADDRESS OF PDS DIRECTORY 10600000 DCBREG EQU 3 DCB ADDRESS REGISTER 10700000 SYSLIN EQU 3 REGISTER 3 10800000 SYSLMOD EQU 4 REGISTER 4 10900000 DEBNPRES EQU 4 OFFSET IN DEB TO SEE IF NAME PRESENT 11000000 NREG EQU 4 11100000 TEMP1 EQU 5 11200000 WRTADR EQU 5 11300000 SYSUT1 EQU 5 REGISTER 5 11400000 SYSPRINT EQU 6 REGISTER 6 11500000 WRTBYTES EQU 6 11600000 TEMP2 EQU 6 11700000 MSGADD EQU 6 ADDR OF MESSAGE AA26861 11730000 MSGLNG EQU 7 LENGTH OF MESSAGE A26861 11760000 TEMP4 EQU 7 11800000 DEBREG EQU 7 11900000 SYSLIB EQU 7 11950000 RET1 EQU 8 12000000 RETADD EQU 8 RETURN ADDRESS A26861 12030000 TOTLNG EQU 9 TOTAL MESAGE LENGTH A26861 12060000 REG9 EQU 9 12100000 PRTREG EQU 10 12200000 TEMP3 EQU 11 12300000 DEBXRG EQU 6 BPAM EXTENSION PTR SA68552,SM0201 12350021 BASE EQU 12 BASE REGISTER 12400000 SAVEREG EQU 13 12500000 PASSREG EQU 14 12600000 RETRN2 EQU 14 12700000 ERCODE EQU 15 12800000 GOTOR EQU 15 GO TO REGISTER 12900000 SCNALOV EQU X'4F' C-BYTE SCATTER-NO ALIAS--SAVE FOR OVERLAY 13000000 BKNALNV EQU X'2B' C-BYTE BLOCK-NO ALIAS--NO OVERLAY 13100000 SCALOV EQU X'D4' C-BYTE FOR SCATTER, ALIAS, REUS OR RENT 13200000 BKALNV EQU X'B0' C-BYTE FOR BLK, ALIAS, REUS, OR RENT 13300000 BKALOV EQU X'D0' C-BYTE FOR OVLY, ALIAS, RENT OR REUS 13400000 OVLYCBT EQU X'4B' C-BYTE FOR OVERLAY BUT NOT ALIAS 13500000 BKNTTR EQU X'0B' C-BYTE BLOCK NO TTR'S IN PDS 13600000 NONAME EQU X'00' 13700000 TNAME EQU X'01' 13800000 REPLACE EQU X'10' REPLACE MEMBER 13900000 NAMECARD EQU X'C0' NAME RECEIVED FROM NAME CARD OR PARM LIST 14000000 ALBPE EQU X'0A' NUMBER OF BYTES PER ENTRY IN ALIAS TABLE 14100000 DEBOFST EQU X'2C' OFFSET IN DCB OF SYSLMOD OF DEB ADDRESS 14200000 DEBNEXT EQU X'10' OFFSET IN DEB OF NUMBER OF EXTENTS 14300000 DEBESCL EQU X'1C' OFFSET IN DEB OF EXTENTS SCALING FACTOR 14400000 DEBSEXT EQU X'20' OFFSET OF START OF EXTENTS IN DEB 14500000 DCBIOBAD EQU X'1C' OFFSET IN DCB OF IOB ADDRESS 14600000 DEBTYSTO EQU X'08' OFFSET IN DEB OF STOW TYPE MODIFIER 14700000 MODSTO EQU X'80' STOW--ADD INDICATOR 14800000 OLDSTO EQU X'40' STOW--REPLACE INDICATOR 14900000 NEWSTO EQU X'C0' STOW--ADD INDICATOR 15000000 RETRY EQU X'02' RETRY INDICATOR TO STOW(A) AFTER STOW (R) 15100000 GOODSTOW EQU X'FF' MASK FOR TESTING GOOD STOW 15200000 EXISTS EQU X'04' NAME ALREADY EXIST IN PDS DIRECTORY 15300000 NOTIN EQU X'08' NAME NOT FOUND IN DIRECTORY 15400000 NOSPACE EQU X'0C' NO SPACE LEFT IN PDS DIRECTORY 15500000 PERMACC EQU X'10' PERMANENT I/O ERROR WHEN ACCESSING DIRECTORY 15600000 NOSTRGE EQU X'18' NOT ENOUGH CORE FOR STOW S21016 15620021 ERMSG71 EQU X'2447' ERROR MSG. FOR STOW COMP. S21016 15640021 * CODE OF X'1C' (NO CORE) S21016 15660021 ANSCOV EQU X'DB' MASK TO CLEAR PDS BITS FOR OVLY-SCTR NO TXT 15700000 SYMCDPRS EQU X'04' SYM CARDS PRESENT INDICATOR 15800000 REEN EQU X'80' REENTERANT ATTRIBUTE 15900000 REUS EQU X'40' REUSABLE ATTRIBUTE 16000000 REFR EQU X'01' REFRESHABLE BIT A26861 16050000 OVLY EQU X'20' OVERLAY ATTRIBUTE 16100000 SCTR EQU X'04' SCATTER ATTRIBUTE 16200000 RAR EQU X'C0' REENTERANT AND REUSABLE ATTRIBUTE 16300000 XREF EQU X'40' CROSS-REFERENCE TABLE REQUEST BIT 16400000 EOI EQU X'20' END OF INPUT 16500000 BOTH EQU X'03' 16600000 LR EQU X'03' 16700000 SD EQU X'00' 16800000 XFOMP EQU X'60' MAP AND XREF INDICATORS 16900000 DCBCIND2 EQU X'3D' OFFSET FOR INDICATORES IN SYSLMOD DCB 17000000 DCBRELAD EQU X'00' A34199 17050021 OPENFLAG EQU X'30' POSITION OF OPEN FLAGS IN DCB 17100000 OPENBIT EQU X'10' BIT INDICATE OPEN DCB 17200000 DCBOFLGS EQU X'30' DCB OFFSET SA69300 17250021 DCBOFLWR EQU X'80' WRITE BIT MASK SA69300 17260021 ALIASIND EQU X'80' 17300000 MAXLINEC EQU 55 17400000 RESTORE EQU X'8B' IMMEDIATE SKIP TO CHANNEL 1 17500000 TNL2 EQU X'F4' OFFSET FOR TEXT NOTE LIST 2 17700000 OFF EQU X'00' CLEAR INDICATORS 17800000 BMDONE EQU X'08' IND THAT BIT MAP HAS BEEN PROCESSED 17900000 BMOFF EQU X'F7' MASK TO TURN OFF BIT MAP DONE IND 18000000 CNT1 EQU X'12' BYTE COUNT IN HALF-MESSAGE 1 18100000 CNT2 EQU X'14' BYTE COUNT IN HALF-MESSAGE 2 18200000 CNT3 EQU X'1E' BYTE COUNT IN HALF-MESSAGE 3 18300000 CNT4 EQU X'15' BYTE COUNT IN HALF-MESSAGE 4 18400000 DCBDDNAM EQU X'28' OFFSET IN DCB OF DDNAME 18500000 DISPSV1 EQU X'24' DISPOSITION AND SEVERITY OF MESG 29 18600000 ERMSG1 EQU 29 MESSAGE NUMBER 29 18700000 DISPSV2 EQU X'24' DISPOSITION AND SEVERITY OF MESSAGE 40 18800000 ERMSG2 EQU 40 MSG NUMBER 40 18900000 DISPSV3 EQU X'24' DISPOSITION AND SEVERITY FOR 39 19000000 ERMSG3 EQU 39 MSG NUMBER 39 19100000 DISPSV4 EQU X'21' DISPOSITION AND SEVERITY FOR 42 19200000 ERMSG4 EQU 42 MESG NUMBER 42 19300000 DISPSV5 EQU X'22' 19400000 ERMSG5 EQU 41 19500000 DISPSV6 EQU X'22' 19600000 ERMSG6 EQU 50 19700000 DISPSV7 EQU X'23' DISPOSITION AND SEVERITY 19800000 ERMSG7 EQU 54 ERROR MESSAGE NUMBER 19900000 SETSSI EQU X'10' INDICATION THAT SSI RECEIVED 20000000 FSSI EQU X'08' INDICATOR SSI DONE 20100000 OSSI EQU X'F7' CLEAR SSI DONE INDICATION 20200000 EPEZ EQU X'20' ENTRY POINT EQ ZERO 20300000 SUTTR EQU X'100' TR FOR REPOSITIONING SYSUT1 20400000 BTMPF EQU X'10F' OFFSET FOR FINAL PROC ERROR MSGS OF SVER 4 20500000 FNM3940 EQU X'C0' BITS FOR MSGS 40 AND 39 20600000 P2M1 EQU X'01' SECOND PASS MSG 1 20700000 P2M2 EQU X'02' SECOND PASS MSG 2 20800000 P2M1CD EQU X'201' CODE FOR ERDIAG MSG 1 20900000 P2M2CD EQU X'202' CODE FOR ERDIAG MSG 2 21000000 ATCK EQU X'C2' MASK FOR SAVED ATTRIBUTES 21100000 BLANK EQU C' ' BLANK FOR PRINT 21200000 EXEC EQU X'02' EXECUTABLE BIT 21300000 TERM EQU X'02' TERM SWITCH IN NEWSW S20007 21350021 ERMSG73 EQU X'0149' ERROR MESSAGE 731 A52450 21360000 ERMSG58 EQU X'013A' ERROR MESSAGE 58 SA68552 21370021 R14 EQU 14 GENERAL REGISTER 14 SA68552 21380021 R15 EQU 15 GENERAL REGISTER 15 SA68552 21390021 USING *+2,BASE 21400000 BALR BASE,0 21500000 USING APTDSECT,APT ESTABLISH ADDRESSIBILITY FOR APT 21600000 BC 15,MODID+6 BRANCH AROUND MODULE IDENT 21630000 MODID DC C'19MFNL' 21660000 NI FNLIND,OFF CLEAR INTERNAL INDICATORS 21700000 TM BITMAP+7,P2M1 IS SECOND PASS MESSAGE 1 ON 21800000 BC 8,FNL1A NO-BY PASS 21900000 LA REG0,P2M1CD(REG0) PUT IN ERROR CODE 22000000 L GOTOR,ERDIG LOAD ADDRESS OF ERDIG 22100000 BALR RETRN2,GOTOR GOTO ERROR LOG 22200000 FNL1A TM BITMAP+7,P2M2 IS SECOND PASS MSG 2 BIT ON 22300000 BC 8,FNL2A NO- BY PASS 22400000 LA REG0,P2M2CD(REG0) PUT IN ERROR CODE 22500000 L GOTOR,ERDIG LOAD ADDRESS OF ERDIG 22600000 BALR RETRN2,GOTOR GO TO LOG 22700000 FNL2A SR TEMP1,TEMP1 CLEAR REG 23100000 ST TEMP1,PDSE2 CLEAR TTRC 23500000 CH TEMP1,ENCDC IS ESD EMPTY 23600000 BC 8,FNL101A YES--GO SEE IF ANY SYMS PRESENT 23700000 CH TEMP1,ENTOC IS THERE ANY TEXT 23800000 BC 8,FNL102 NO--GO TO CLEAR IND FOR OVLY-SCTR 23900000 TM PDSE7,OVLY IS THE LOAD MODULE IN OVERLAY 24000000 BC 1,FNL100 YES-GO TO WRITE NOTE LIST 24100000 TM PDSE7,SCTR IS LOAD MODULE IN SCATTER 24200000 BC 1,FNL200 YES-GO TO PLACE IN PROPER 'C' BYTE 24300000 OI PDSE3,BKNALNV BLOCK-NO-ALIAS-NO OVERLAY C BYTE 24400000 BC 15,FNL300 GO TO GET NAME FOR MEMBER 24500000 FNL200 OI PDSE3,SCNALOV MODULE IN DCTR SET C BYTE X'4F' 24600000 BC 15,FNL300 GO TO GET NAME FOR MEMBER 24700000 FNL101A TM PDSE8,SYMCDPRS ARE SYM CARD PRESENT 24800000 BC 8,FNLCN DONT STOE 24900000 FNL102 OI PDSE3,BKNTTR NO TTR'S-STOW BECAUSE SOME OUTPUT 25000000 NI PDSE7,ANSCOV CLEAR OVERLAY-SCATTER IS ON 25100000 BC 15,FNL300 GO TO GET NAME FOR MEMBER 25200000 FNL100 OI PDSE3,OVLYCBT MODULE IN OVERLAY 25300000 L PRTREG,TTRLIST GET ADR-4 OF NOTE LIST 25400000 LA PRTREG,4(PRTREG) UP BY 4 TO GET RIGHT ADRESS 25500000 LH REG9,CSNO PUT IN NUMBER OF TTRS 25600000 SLL REG9,2 MULTIPLY BY FOUR 25700000 L DCBREG,DCBADRS2 LOAD ADR OF SYSLMOD 25800000 BAL RET1,FNLP02A GO TO WRITE 25900000 NOTE (DCBREG) 26000000 IC TTRREG,CSNO+1 INSERT NUMBER OF ENTRIES IN TTR LIST 26100000 ST TTRREG,PDSE5 STORE TTR INTO PDS ENTRY 5 26200000 FNL300 L TEMP3,ADJFCB LOAD JFCBADDR INTO REG A41571 26210021 NI 0(TEMP3),X'00' INIT JFCBADDR HI-ORD BYTE A41571 26220021 L DCBREG,DCBADRS2 LOAD ADDRESS OF SYSLMOD A41571 26230021 L DEBREG,DEBOFST(DCBREG) GET DEB ADDRESS A41571 26240021 SR TEMP1,TEMP1 CLEAR SA68552 26242021 SR TEMP2,TEMP2 CLEAR 26244021 IC TEMP1,DEBNEXT(DEBREG) LOAD NUMBER OF EXTENTS 26246021 IC TEMP2,DEBESCL(DEBREG) LOAD SCALING FACTOR 26248021 SLL TEMP1,0(TEMP2) MULTIPLY 26248421 LA DEBXRG,DEBSEXT(TEMP1,DEBREG) DEBREG NOW CONTAINS ADR 26248821 TM APT3,NAMECARD IS MEM NAME ON NAME CARD A41571 26260021 BNZ FNL294 YES--BRANCH A41571 26270021 CLI DEBNPRES(DEBREG),NONAME MEM NAME IN DEB A41571,SA68552 26280021 BNE FNL404 YES--BRANCH A41571 26290021 B FNL101 NO--GO TO USE TEMPNAME A41571 26300021 FNL294 CLI DEBNPRES(DEBREG),NONAME MEM NAME IN DEB A41571,SA68552 26310021 BE FNLMVC NO--BRANCH A41571 26320021 CLC 0(8,DEBXRG),PDSE1 ARE NAMES SAME? A41571,SA68552 26330021 BE FNLMVC YES--BRANCH A41571 26340021 OI 0(TEMP3),X'40' PDS&DEB MEMNAMES CONFLICT A41571 26350021 FNLMVC MVC MESG1+5(8),PDSE1 ---SET UP PRT IMAGE 1 26500000 MVC MESG2+5(8),PDSE1 ---SET UP PRT IMAGE 2 26600000 MVC MESG3+5(8),PDSE1 ---SET UP PRT IMAGE 3 26700000 MVC MESG4+5(8),PDSE1 ---SET UP PRT IMAGE 4 26800000 FNL301 TM FNLIND,FSSI HAS SSI BEEN MOVED FOR THIS STOW 26900000 BC 1,FNL301B YES--BYPASS 27000000 TM APT2,SETSSI NO-ARE THERE ANY SSI INDICATORS 27100000 BC 8,FNL301B NO--BYPASS 27200000 SR REG1,REG1 CLEAR REG 1 27300000 IC REG1,PDSE3 INSERT 'C' BYTE 27400000 LA REG1,2(0,REG1) ADD 2 (TWO ADDITIONAL HALF WDS) 27500000 STC REG1,PDSE3 UPDATE C BYTE 27600000 LA REG1,4(0,REG1) INCREMENT BY 4-MORE FOR PDS NAME 27700000 LH NREG,PSDIND LOAD IN C-BYTE MASK 27800000 NR REG1,NREG CLEAR BYTE COUNT IN C-BYTE 27900000 SLL REG1,1 DOUBLE 28000000 AR REG1,REG2 ADD BEGINNING OF PDS DIRECTORY 28100000 MVC 0(4,REG1),SSI MOVE 4 BYTES OF SSI 28200000 OI FNLIND,FSSI SET SSI PROCESSED 28300000 FNL301B OI PDSE8,EPEZ SET EDITOR ASGN EP=0 (BIT=1) 28400000 NC PDSE11(3),PDSE11 IS ASGN EP EQU ZERO 28500000 BC 8,FNL301A YES--GO TO STOW 28600000 NI PDSE8,X'DF' NO SET BIT OFF (=0) 28700000 FNL301A LA SAVEREG,SPACES LOAD REGISTER SAVE AREA 28800000 L DCBREG,DCBADRS2 LOAD ADDRESS OF SYSLMOD 28900000 TM APT3,REPLACE IS MODULE TO BE REPLACED 29000000 BC 1,FNL500 YES--GO TO STOW(R) 29100000 MVC TTRCSAVE(4),PDSE2 SAVE THE TTRC FIELD FOR SECOND STOW 29150000 FNLSTA STOW (DCBREG),(PDSDIREG),A STOW WITH ADD 29200000 FNL700 STC ERCODE,STOWBYTE STORE AWAY STOW RETURN CODE 29300000 TM PDSE3,ALIASIND WAS ALIAS SPECIFIED 29400000 BC 1,FNL906 29500000 TM STOWBYTE,GOODSTOW WAS THERE ANY INDICATION OF ERROR 29600000 BC 4,FNL600 BRANCH IF SOME ERROR FOUND 29700000 TM APT3,REPLACE WAS REPLACE SPECIFIED 29800000 BC 1,FNL800 YES--GO TO PRINT MESSAGE 29900000 L PRTREG,PRTWD1 LOAD PRINT REGISTER WITH PRINT WORD 30000000 LA RET1,FNL900 GO TO ALIAS CHECK AFTER PRINT 30100000 BC 15,FNLPRTMG 30200000 FNL404 LR REG9,DEBXRG POINT TO NAME SA68552 30750021 L R15,ADRVLDCK GET ADDR OF CHECKER RTN SA68552 30800021 BALR R14,R15 GO TO VALIDATE NAME SA68552 30850021 LTR REG9,REG9 TEST FOR VALID NAME SA68552 30900021 BZ FNL404A BRANCH IF VALID SA68552 30950021 LA RETRN2,FNL101 SET RETURN ADDR ON ERROR SA68552 30960021 L GOTOR,ERDIG POINT TO ERROR RTN SA68552 30970021 LA REG0,ERMSG58 SET UP ERROR PARM SA68552 30980021 BR GOTOR EXIT TO ERROR LOG RTN SA68552 30990021 FNL404A EQU * SA68552 30992021 MVC PDSE1(8),0(DEBXRG) PUT NAME IN PDS SA68552 30994021 TM DEBTYSTO(DEBREG),OLDSTO TEST FOR DISP OF MOD SA68552 31096021 BZ FNLMVC BRANCH IF DISP MOD SA68552 31098021 OI APT3,REPLACE INDICATE REPLACE 31100000 B FNLMVC GO TO PROCESS MEMBER SA68552 31150021 * THIS MOVES TEMPNAME TO PDS DIRECTORY 32000000 FNL101B MVC PDSE2(4),TTRCSAVE RESTORE THE TTRC FIELD FROM 1ST STOW 32050000 FNL101 MVC PDSE1(8),TEMPNAME MOVE TEMPNAME TO PDS DIRECTORY 32100000 OI FNLIND,TNAME INDICATE TEMPNAME BEING USED 32200000 BC 15,FNLMVC GO TO SET UP MESSAGES 32300000 * STOW WITH REPLACE 32400000 FNL500 STOW (DCBREG),(PDSDIREG),R STOW WITH REPLACE 32500000 BC 15,FNL700 CHECK STOW 32600000 * STOW ERROR--PRINT MESSAGE FOR TYPE ERROR 32700000 FNL600 CLI STOWBYTE,NOSPACE WAS ERROR NO SPACE IN DIRECTORY 32800000 BC 8,FNL601 YES--GO PRT ERROR 32900000 CLI STOWBYTE,PERMACC WAS ERROR PERMANENT DISK ERROR 33000000 BC 8,FNL602 YES--GO PRT ERROR 33100000 CLI STOWBYTE,NOTIN WAS ERROR NAME NOT IN DIRECTORY 33200000 BC 8,FNL603 YES--GO FOR PRT AND RETRY 33300000 CLI STOWBYTE,NOSTRGE WAS ERR. NOT ENOUGH CORE? S21016 33330021 BE FNL606 YES, GO TO PRINT MSG. S21016 33360021 LA RETRN2,FNL906B LOAD RETURN ADR TO CHECK MORE ALIASES 33400000 TM PDSE3,ALIASIND WERE ALIASES BEING PROCESSED 33500000 BC 1,FNL604 YES--GO TO ERROR PRINT 33600000 TM FNLIND,TNAME HAS TEMPNAME BEEN USED 33700000 BC 1,FNL605 YES--GO TO PRINT MESSAGE 33800000 LA RETRN2,FNL101B RETRY STOW-RESTORE TTRC FIELD - 33900000 LH REG0,ERCODE4 PUT ERROR CODE IN REG0 34000000 BC 15,FNL6011 GO TO LOG 34100000 FNL601 LH REG0,ERCODE2 PUT IN ERR CODE NO SPACE LEFT 34200000 OI FNLIND,FNM3940 INDICATE TYPE 4 SEVERITY 34300000 TM PDSE3,ALIASIND WAS ALIAS SPECIFIED 34400000 BC 8,FNL6011 34500000 NI FNLIND,X'3F' CLEAR IND FOR TYPE 4 SEVERITY 34600000 LH REG0,ERCODE5 ALIAS-NO SPACE LEFT 34700000 LA RETRN2,FNLCN CONTINUE BUT NO MORE STOW OF ALIAL 34800000 FNL6011 LR TTRREG,APT PUT ADDRESS OF SYMBOL IN REG 1 34900000 L GOTOR,ERDIG LOAD ERROR DIAGNOSTIC ADDRESS 35000000 BCR 15,GOTOR GO TO ERROR DIAGNOSTIC 35100000 FNL602 LH REG0,ERCODE3 PERMANENT DISK ERROR 35200000 OI FNLIND,FNM3940 INDICATE TYPE 4 SEVERITY 35300000 TM PDSE3,ALIASIND WAS ALIAS SPECIFIED 35400000 BC 8,FNL6011 35500000 NI FNLIND,X'3F' CLEAR IND FOR TYPE 4 SEVERITY 35600000 LH REG0,ERCODE6 ALIAS-PERMANENT DISK ERROR 35700000 LA RETRN2,FNLCN CONTINUE BUT NO MORE STOW OF ALIAL 35800000 BC 15,FNL6011 35900000 * NAME ADDED BY STOW--DID NOT EXIST 36000000 FNL603 L PRTREG,PRTWD3 LOAD MESSAGE CNTL WD 36100000 LA RET1,FNL900 LOAD ADDRESS OF ALIAS SCAN 36200000 TM PDSE3,ALIASIND WAS ALIAS SPECIFIED 36300000 BC 8,FNLPRTMG 36400000 LA RET1,FNL906B 36500000 BC 15,FNLPRTMG GO TO PRINT MESSAGE 36600000 FNL605 BAL RETRN2,NOSTOW GO TO RESET SYSLMOD PTR A34199 36660021 LA RETRN2,FNLCN TEMPNAME EXISTS A34199 36720021 NI FNLIND,X'00' CLEAR INDICATOR 36800000 FNL604 LH REG0,ERCODE7 LOAD ERROR CODE IN REGISTER 0 36900000 BC 15,FNL6011 GO TO PRT MESSAGE 37000000 FNL606 LH REG0,ERCODE71 PUT IN ERROR CODE FOR S21016 37020021 * NOT ENOUGH CORE FOR STOW S21016 37040021 OI FNLIND,FNM3940 INDICATE SEVERITY 4 ERROR S21016 37060021 B FNL6011 GO TO LOG AND TERMINATE S21016 37080021 FNL800 L PRTREG,PRTWD2 LOAD CNTL WD FOR REPLACE MESSAGE 37100000 LA RET1,FNL900 PUT RETURN AT ALIAS CHECK 37200000 BC 15,FNLPRTMG GO TO PRINT 37300000 * THIS ROUTINE CHECKS AND STOWS ALIASES 37400000 FNL900 LH TEMP1,ENASC LOAD CURR NUMBER OF ALIAS ENTS 37500000 LTR TEMP1,TEMP1 CHECK TO SEE IF ANY PRESENT 37600000 BC 8,FNLCN NONE--GO TO CONTINUE 37700000 MVC MEMBER(8),PDSE1 SAVE MEMBER NAME A52450 37750000 OI PDSE3,X'80' 37800000 MVC IOCT(3),PDSE11 STORE MAIN ENTRY POINT 37900000 MVC IOCT+3(2),PDSE16 SAVE MAIN MEMBER ID 38000000 TM PDSE7,RAR 38100000 BC 8,FNL900A NO--LEAVE C-BYTE ALONE 38200000 NI FNLIND,OSSI CLEAR SSI PROCESSED IND 38300000 NI PDSE3,X'00' CLEAR C BYTE 38400000 TM PDSE7,SCTR IS MODULE SCATTER 38500000 BC 1,FNL900B YES--GO TO INSERT C BYTE 38600000 MVC PDSE13(3),PDSE11 SAVE MAIN MEMBER EP 38700000 MVC PDSE14+1(8),PDSE1 SAVE MAIN MEMBER NAME 38800000 TM PDSE7,OVLY IS MODULE OVERLAY 38900000 BC 1,FNL900C YES--GO TO INSERT C BYTE 39000000 OI PDSE3,BKALNV SET C BYTE EQU X'31' 39100000 BC 15,FNL900A GO TO MOVE NAME,EP 39200000 FNL900B OI PDSE3,SCALOV SET C BYTE EQU TO X'34' 39300000 MVC PDSE17(3),PDSE11 MOVE EP TO ALAIS AREA 39400000 MVC PDSE18(8),PDSE1 MOVE MAIN NAME TO ALAIS AREA 39500000 BC 15,FNL900A GO TO MOVE NAME,EP 39600000 FNL900C OI PDSE3,BKALOV SET C BYTE EQU X'51' 39700000 * SCAN FOR ALIAS NAME IN ALIAS TABLE 39800000 FNL900A L TEMP2,ALAS GET ALIAS TABLE ADDRESS 39900000 FNL902A MVC PDSE1(8),0(TEMP2) MOVE MEMBER TO PDSE1 40000000 CLC MEMBER(8),PDSE1 ALIAS AND MEMBER SAME A52450 40050000 BNE CONTINUE NO A52450 40060000 LA R0,ERMSG73 ERROR MSG 731 A52450 40070000 L GOTOR,ERDIG ADDR OF LOG A52450 40080000 ST PASSREG,SAVE14 SAVE REG 14 A52450 40090000 BALR PASSREG,GOTOR GO TO PRINT ERROR MSG A52450 40092000 L PASSREG,SAVE14 RESTORE REG 14 A52450 40094000 B FNL906B CHECK FOR MORE ALIASES A52450 40096000 CONTINUE EQU * A52450 40098000 SR TEMP3,TEMP3 40100000 LH TEMP3,8(TEMP2) GET ID POINTER 40200000 LTR TEMP3,TEMP3 ID EQU ZERO 40300000 BC 8,FNL904 YES--GO TO PUT EP FROM MEMBER SAVED 40400000 L TEMP4,HESD GET HALF ESD ADDRESS 40500000 SLL TEMP3,3 MULTIPLY BY 8 THE ID 40600000 AR TEMP4,TEMP3 ADD OFFSET TO START ADDRESS 40700000 TM PDSE7,SCTR IS IT IN SCATTER 40800000 BC 8,FNL907 NO--BYPASS MOVE OF ID 40900000 MVC PDSE16(2),6(TEMP4) PUT ID IN SCATTER AREA 41000000 FNL907 MVC PDSE11(3),1(TEMP4) YES MOVE ADDRESS FOR EP 41100000 BC 15,FNL301 GO TO STOW ALIAS 41200000 * NOT SD OR LR -- MUST PUT EP OF MEMBER NAME 41300000 FNL904 MVC PDSE11(3),IOCT RE-USE SAVE MAIN EP 41400000 TM PDSE7,SCTR WAS SCATTER SPECIFIED 41500000 BC 8,FNL301 NO--GO TO STOW ALIAS MEMBER 41600000 MVC PDSE16(2),IOCT+3 RE-USE SAVED ID 41700000 BC 15,FNL301 GO STOW ALAIS 41800000 * THIS IS RETURN FROM STOW OF ALIAS 41900000 FNL906 CLI STOWBYTE,NOTIN WAS NAME NOT IN DIRECTORY 42000000 BC 8,FNL906A YES--STOW ADDED IT-OK 42100000 TM STOWBYTE,GOODSTOW WAS STOW OK 42200000 BC 4,FNL600 NO--SOME ERROR--GO CHECK TYPE 42300000 FNL906A MVC MESG4+5(8),PDSE1 MOVE ALIAS NAME TO PRINT MESSAGE 42400000 L PRTREG,PRTWD4 LOAD CNTL WORD 42500000 BAL RET1,FNLPRTMG RETURN TO CHECK MORE ALIASES AFTER 42600000 FNL906B LA TEMP2,10(TEMP2) INCREMENT COUNT 42700000 BCT TEMP1,FNL902A RETURN TO PROCESS NEXT ENTRY 42800000 BC 15,FNLCN GO TO CONTINUE 42900000 * STOW FINISHED--CONTINUE 43000000 * ROUTINE TO PRINT MESSAGES 43100000 FNLPRTMG LR REG9,PRTREG LOAD REG 9 43200000 SRL REG9,24 SHIFT OUT ADDRESS 43300000 SLL REG9,1 DOUBLE FOR BYTE COUNT 43400000 FNLPRTAT L GOTOR,PRNTAD ADDRESS OF PRINT ROUTINE 43500000 LH REG1,LINECNT LOAD LINE COUNT 43600000 BCT REG1,FNLP02B REDUCE COUNT BY ONE 43700000 L DCBREG,IEWLCWBB+20 ADDRESS OF PRINT BUFFER 43750000 MVI 0(DCBREG),RESTORE RESTORE PAGE 43800000 BALR RETRN2,GOTOR TO PRINT ROUTINE 43850000 LA REG1,MAXLINEC INITIALIZE LINECNT TO MAX 43920000 FNLP02B STH REG1,LINECNT STORE BACK LINE COUNT 44000000 L DCBREG,IEWLCWBB+20 ADDRESS OF PRINT BUFFER 44100000 BCTR REG9,0 DECREMENT COUNT BY 1 44200000 EX REG9,MOVE MOVE MESSAGE TO PRINT BUFFER 44300000 BALR RETRN2,GOTOR 44500000 BCR 15,RET1 44600000 MOVE MVC 0(1,DCBREG),0(PRTREG) EXECUTED MOVE 44700000 FNLP02A LA SAVEREG,SPACES LOAD REG WITH SAVE AREA 44800000 WRITE PRTDECB,SF,(DCBREG),(PRTREG),(REG9) 44900000 CHECK PRTDECB 45000000 BCR 15,RET1 RETURN 45100000 NOSTOW EQU * 45108021 * * * THIS ROUTINE RESETS SYSLMOD POINTER IF NO STOW DONE A34199 45116021 STM RETRN2,REG1,SAVE4 SAVE REGS 14 - 1 A34199 45124021 L DCBREG,DCBADRS2 LOAD ADDR OF SYSLMOD A34199 45132021 L R0,DCBRELAD(DCBREG) PICK UP TTR FOR SYSLMOD A34199 45140021 IC R0,=X'00' ZERO OUT LAST BYTE OF TTR A34199 45148021 ST R0,LASTTR STORE TTR FOR POINT A34199 45156021 LA R0,LASTTR PICK UP ADDR OF TTR A34199 45164021 POINT (DCBREG),(R0) PNT SYSLMOD TO CORRECT TTRA34199 45172021 OI DCBOFLGS(DCBREG),DCBOFLWR FORCE WRITE BIT ON SA69300 45174021 LM RETRN2,REG1,SAVE4 RESTORE REGS 14 - 1 A34199 45180021 BR RETRN2 RETURN A34199 45188021 *****THIS ROUTINE WILL PRINT OUT THE CHANGED ATTRIBUTES IF ANY 45200000 FNLCN STM MSGADD,RETADD,SPACES+8 A26861 45240000 LA RETADD,ENDMSG 45280000 TM PDSE7,EXEC IS MODULE EXECUTABLE 45320000 BC 1,TSTRENT YES A26861 45360000 * GENERATE NOT EXECUTABLE MESSAGE A26861 45400000 LA MSGADD,NEXEC A26861 45440000 LA MSGLNG,16 LENGTH A26861 45480000 BC 15,STRTMSG GENERATE HEADER MEESAGE A26861 45520000 SETMSG TM PRTSW,X'01' WAS HEADER MESSAGE GENERATESD A26861 45560000 BC 1,MSG1 YES A26861 45600000 * GENERATE HEADER MESSAGE YES A26861 45640000 STRTMSG OI PRTSW,X'01' A26861 45680000 L PRTREG,HESD 45720000 MVC 0(25,PRTREG),MODATTR MOVE HEADR TO OUTPUT AREA A26861 45780000 LA PRTREG,24(PRTREG) A26862 45840000 LA TOTLNG,25 A26861 45880000 BC 15,MSG2 A26861 45920000 MSG1 OI PRTSW,X'03' AND SWITCH ON A26861 45960000 MSG2 MVC 1(17,PRTREG),0(MSGADD) A26861 46000000 AR TOTLNG,MSGLNG ADD MESSAGE LENGTH TOTOTAL A26861 46040000 AR PRTREG,MSGLNG 46080000 BCR 15,RETADD TEST NEXT OPTION A26861 46120000 TSTRENT TM SAVATS,REEN TEST FOR REENTERABLE OPTION A26861 46160000 BC 8,TSTREUS NO REENTERABLE OPTION SPECIFIED A26861 46200000 LA RETADD,TSTREUS 46240000 TM PDSE7,REEN WAS REENTERABLE TURNED ON IN DIRECTORY 46280000 BC 1,RENT1 REENTERABLE A26861 46320000 * NOT REENTERABLE MESSAGE 46360000 LA MSGADD,NRENT 46400000 LA MSGLNG,17 46440000 BC 15,SETMSG MOVE MESSAGE FOR OUTPUT 46480000 RENT1 LA MSGADD,NRENT+4 46520000 LA MSGLNG,13 A26861 46560000 BC 15,SETMSG A26861 46600000 * REUSABLE TEST 46640000 TSTREUS TM SAVATS,REUS WAS REUSABLE OPTION SPECIFIED A26861 46680000 BC 8,TSTREFR NO A26861 46720000 LA RETADD,TSTREFR A26861 46760000 TM PDSE7,REUS WAS MODULE MARKED REUSABLE A26861 46800000 BC 1,REUS1 YES 46840000 * MARK NOT REUSABLE 46880000 LA MSGADD,NREUS A26861 46920000 LA MSGLNG,14 A26861 46960000 BC 15,SETMSG 47000000 * REUSALBE MESSAGE 47040000 REUS1 LA MSGADD,NREUS+4 47080000 LA MSGLNG,10 A26861 47120000 BC 15,SETMSG 47160000 TSTREFR TM SAVATS+1,REFR WAS REFRESHABLE MESSAGE SPECIFIED 47200000 BC 8,ENDMSG NO A26861 47240000 LA RETADD,ENDMSG 47280000 TM PDSE8,REFR IS MODULE REFRESHABLE 47320000 BC 1,REFR1 YES 47360000 LA MSGADD,NREFR NOT REFRESHABLE MESSAGE 47400000 LA MSGLNG,17 47440000 BC 15,SETMSG 47480000 REFR1 LA MSGADD,NREFR+4 A26861 47520000 LA MSGLNG,13 47560000 BC 15,SETMSG 47600000 * END OF MESSAGE 47640000 ENDMSG TM PRTSW,X'01' A26862 47680000 BC 8,FNLCN2 47720000 MVI 0(PRTREG),C'.' PLACE PERIOD AT END OF MESSAGE 47760000 TM PRTSW,X'02' TEST FOR AND NEEDED. 47800000 BC 8,NOAND NO 47840000 LA RETADD,4(PRTREG) 47880000 SR PRTREG,MSGLNG A26862 47920000 MVC 5(17,PRTREG),0(MSGADD) 47960000 MVC 2(3,PRTREG),NAND 48000000 MVI 0(RETADD),C'.' 48040000 LA TOTLNG,4(TOTLNG) 48080000 NOAND L PRTREG,HESD 48120000 FNLA05B BAL RET1,FNLPRTAT GO TO PRINT 48400000 NI PRTSW,X'00' CLEAR PRINT SWITCH 48450000 FNLCN2 LM MSGADD,RETADD,SPACES+8 A26862 48650000 LA SAVEREG,REGSA PUT IN ADR. OF REG SAVE AREA 48850000 L DCBREG,DCBADRS2 LOAD ADDRESS OF SYSLMOD 49300000 TM DCBCIND2(DCBREG),X'80' HAS STOW BEEN ISSUED 49400000 BC 8,FNLCN3 NO--GO TO BIT MAP PROCESSOR 49460000 TM APT0,XREF IS XREF SPECIFIED 49520000 BC 8,FNLCN3 NO--GO TO BIT MAP PROCESSOR 49580000 TM NEWSW,X'20' YES--ARE RLD'S IN CORE 49640000 BC 8,FNLCN3 YES--XREF ALREADY DONE 49700000 L TEMP3,ADJFCB LOAD JFCBADDR INTO REG A41571 49720021 TM 0(TEMP3),X'40' PDS&DEB MEMNAMES CONFLCT? A41571 49740021 BZ FNLCN2A NO--BRANCH A41571 49760021 OI 0(TEMP3),X'80' INDICATE SYSLMOD OPEN J A41571 49780021 * WILL BE REQUIRED IN IEWLMMAP BECAUSE RLD'S FOR XREF ARE ON A41571 49800021 * SYSLMOD (NOT IN CORE) AND MEMBER NAME IN PDS DIRECTORY A41571 49820021 * CONFLICTS WITH MEMBER NAME IN DEB. A41571 49840021 FNLCN2A L GOTOR,LCMAPADR LOAD ADDR OF XREF/MAP SUB A41571 49860021 BALR RETRN2,GOTOR GO TO IEWLCMAP 49900000 FNLCN3 L GOTOR,BTMPDIAG ADDRESS OF BIT MAP PROCESSOR 49920000 OI APTSWS,BMDONE INDICATE BIT MAP DONE 49940000 BALR RETRN2,GOTOR 49960000 IEWLCEOI TM APT3,EOI IS END OF INPUT INDICATED 50000000 BC 1,FNL150 50100000 LA R0,FNTTR LOAD ADR OF TTR 50200000 L R1,DCBADRS3 LOAD ADR OF SYSUT1 IN REG 1 50300000 TM OPENFLAG(R1),OPENBIT IS SYSUT1 OPEN 50330000 BC 8,NOPOINT NO--DON'T REPOSITION SYSUT1 50360000 POINT (1),(0) REPOSITION SYSUT1 TO REUSE SPACE 50400000 NOPOINT NI APTSWS,BMOFF CLEAR BIT MAP DONE IND 50500000 L 15,INT14AD 50600000 BCR 15,15 50700000 FNL150 LA 15,IEWLCFAB 50800000 BCR 15,15 50900000 DROP 12 51000000 USING IEWLCFAB,12 51100000 IEWLCFAB LR BASE,GOTOR 51200000 LA SAVEREG,REGSA LOAD REGISTER SAVE AREA ADR 51300000 TM APTSWS,BMDONE IS THE BIT MAP DONE IND ON 51400000 BC 1,FNALAB1 51500000 TM NEWSW,X'08' IS ABORT NO PRINT SW ON 51530000 BC 1,FNALAB3 YES--DON'T PRINT ANYTHING 51560000 L GOTOR,BTMPDIAG LOSD ADR OF BIT MAP PROCESSOR 51600000 BALR RETRN2,GOTOR 51700000 FNALAB1 NI APTSWS,BMOFF CLEAR BIT MAP DONE IND 52900000 OI IEWLCWBB+24,X'02' SET FLUSH BIT 53000000 L 15,PRNTAD 53100000 BALR 14,15 53200000 FNALAB3 L REG0,FFCADR ADDRESS OF HIGHEST CORE GOTTEN 53300000 L REG1,IEWLCRBB+4 ADDRESS OF SYSLIB BUFFER 53400000 C REG1,IEWLCRBB+8 COMPARE TO OTHER SYSLIB BUFFER 53500000 BC 4,FNALAB2 TAKE THE LOWER ADDRESS 53600000 L REG1,IEWLCRBB+8 53700000 FNALAB2 SR REG0,REG1 NUMBER OF BYTES TO FREE 53800000 FREEMAIN R,LV=(0),A=(1) 54200000 LA SAVEREG,REGSA 54300000 L SYSLMOD,DCBADRS2 S20007 54400021 OI DCBCIND2(SYSLMOD),MODSTO INDICATE 54500000 LA 1,DCBADRS1 LOAD ADDR. OF DCB ADDRESSES S20007 54520021 TM NEWSW,TERM IN TSO MODE? S20007 54540021 BZ TSO1 NO - BRANCH S20007 54560021 LA 1,DCBADRS0 CLOSE TERM DATA SET S20007 54580021 TSO1 CLOSE MF=(E,(1)) S20007 54600021 TM APTSW2,SHRSYSMD TEST IF SYSLMOD RESERVED A49330 54610021 BNO OTHRDEQ BRANCH IF NOT A49330 54612021 DEQ (ENQNAME,MINOR,44,SYSTEMS) DEQ RESERVED SYSLMOD A49330 54614021 B SKIPDEQ2 PROCEED A49330 54616021 OTHRDEQ EQU * RESERVE DEQ BYPASS A49330 54618021 TM APTSW2,ENQBIT DISP=OLD ON SYSLMOD? A37663 54620021 BO SKIPDEQ2 YES - DON'T DEQUEUE A37663 54640021 DEQ (ENQNAME,MINOR,44,SYSTEM) A 20341 54660000 SKIPDEQ2 EQU * A37663 54680021 SR GOTOR,GOTOR CLEAR 54700000 IC GOTOR,HISEV+1 PUT IN SEVERITY 54800000 SLL GOTOR,2 MULTIPLY BY FOUR 54900000 LM SAVEREG,RETRN2,SYSRTN 55000000 LM REG0,BASE,20(SAVEREG) RESTORE REGISTERS 55100000 BCR 15,14 55200000 DROP BASE 55300000 USING IEWLCFNI,BASE 55400000 IEWLCFNI LR BASE,GOTOR SET UP ADDRESSABILITY 55500000 L BASE,FNLFAB SET UP ADDRESSABILITY 56000000 USING IEWLCFAB,BASE 56100000 L GOTOR,BTMPDIAG GET ADDR OF DIAGNOSE RTN A51444 56150021 BALR RETRN2,GOTOR GO TO PRINT MESSAGES A51444 56160021 B FNALAB1 56200000 DROP 12 56300000 USING IEWLCSNX,BASE 56400000 IEWLCSNX LR BASE,GOTOR SET UP ADDRESSABILITY 56500000 L SYSLMOD,DCBADRS2 GET ADR OF SYSLMOD 56600000 TM OPENFLAG(SYSLMOD),OPENBIT IS OPEN BIT ON 56700000 BC 8,EXCLOSE NO--GO RIGHT TO CLOSE FILE IN ERROR 56800000 OI DCBCIND2(SYSLMOD),MODSTO INDICATE STOW DONE 56900000 EXCLOSE L GOTOR,FNLFAB 57100000 BR GOTOR GO TO CHECK BIT MAP AND FREE 57300000 STOWBYTE DC X'00' 57600000 FNLIND DC X'00' 57700000 DS 0F 57800000 PSDIND DC X'001F' MASK FOR C-BYTE 57900000 INT14AD DC V(IEWLENAM) RETURN ADR TO INITILIZER 58000000 LCMAPADR DC V(IEWLMMAP) ADCON FOR MAP AND XREF ROUTINE 58100000 PRNTAD DC V(IEWLEPNT) ADDRESS OF PRINT ROUTINE 58200000 ADRVLDCK DC V(IEWVLDCK) POINTER TO VLD CHK RTN SA68552 58250021 FNLFAB DC A(IEWLCFAB) 58300000 DS 0F 58400000 FNTTR DC X'00000100' 58500000 MESG1 DC X'09' SINGLE SPACE CC 58560000 DC C'**** NOW ADDED TO DATA' 58620000 DC C' SET' 58700000 MESG2 DC X'09' SINGLE SPACE CC 58770000 DC C'**** NOW REPLACED IN D' 58840000 DC C'ATA SET ' 58910000 MESG3 DC X'09' SINGLE SPACE CC 58970000 DC C'**** DOES NOT EXIST BU' 59030000 DC C'T HAS BEEN ADDED TO DATA SET' 59100000 MESG4 DC X'09' SINGLE SPACE CC 59160000 DC C'**** IS AN ALIAS FOR T' 59220000 DC C'HIS MEMBER' 59300000 DS 0F 59400000 BTMPDIAG DC A(IEWLMBTP) 59500000 PRTWD1 DC AL1(CNT1) 59600000 DC AL3(MESG1) ADDRESS OF MESSAGE 1 59700000 PRTWD2 DC AL1(CNT2) 59800000 DC AL3(MESG2) ADDRESS OF MESSAGE 2 59900000 PRTWD3 DC AL1(CNT3) 60000000 DC AL3(MESG3) ADDRESS OF MESSAGE 3 60100000 PRTWD4 DC AL1(CNT4) 60200000 DC AL3(MESG4) ADDRESS OF MESSAGE 4 60300000 DCBADRS0 DC A(IEWLTMDB) ADDRESS OF SYSTEM DCB S20007 60350021 DCBADRS1 DC A(IEWLCSDB) ADDRESS OF SYSLIN 60400000 DCBADRS2 DC A(IEWLCMDB) ADDRESS OF SYSLMOD 60500000 DCBADRS3 DC A(IEWLCUDB) ADDRESS OF SYSUT1 60600000 DCBADRS4 DC A(IEWLCPDB) ADDRESS OF SYSPRINT 60700000 DCBADRS5 DC X'80' END OF LIST FLAG S20007 60730021 DC AL3(IEWLMLDB) ADDRESS OF SYSLIB S20007 60760021 ERCODE1 DC AL1(DISPSV1) DISPOSITION AND SEVERITY 60800000 DC AL1(ERMSG1) MESG NUMBER 60900000 ERCODE2 DC AL1(DISPSV2) 61000000 DC AL1(ERMSG2) 61100000 ERCODE3 DC AL1(DISPSV3) 61200000 DC AL1(ERMSG3) 61300000 ERCODE4 DC AL1(DISPSV4) DISPOSITION AND SEVERITY 61400000 DC AL1(ERMSG4) MESSAGE NUMBER 61500000 ERCODE5 DC AL1(DISPSV5) 61600000 DC AL1(ERMSG5) 61700000 ERCODE6 DC AL1(DISPSV6) 61800000 DC AL1(ERMSG6) 61900000 ERCODE7 DC AL1(DISPSV7) DISPOSITION AND SEVERITY 62000000 DC AL1(ERMSG7) ERROR MESSAGE NUMBER 62100000 ERCODE71 DC AL2(ERMSG71) DISP.,SEV.&NO. FOR MSG.71 S21016 62150021 TEMPNAME DC CL8'TEMPNAME' 62200000 TTRCSAVE DC 1F'0' SAVE AREA FOR THE TTRC FIELD WHEN STOWING 62220000 * WITH ADD(PDSE2,3) RESTORED FOR SECOND ATTEMPT WITH TEMPNAME 62240000 LASTTR DS F FOR TTR FOR SYSLMOD A34199 62246021 SAVE4 DS 4F TO SAVE REGS DURING POINT A34199 62252021 MODATTR DC X'09' SINGLE SPACE CC 62260000 DC C'**MODULE HAS BEEN MARKED' A26861 62310000 NEXEC DC C' NOT EXECUTABLE,' 62360000 NRENT DC C' NOT REENTERABLE,' 62400000 NREUS DC C' NOT REUSABLE,' 62440000 NREFR DC C' NOT REFRESHABLE,' 62480000 NAND DC C'AND' 62560000 PRTSW DC X'00' 62620000 * BIT 0-5 SPARE A26861 62640000 * BIT 6 X'03' AND KEYWORD NEEDED. A26861 62660000 * BIT 7 X'01' HEADER MESSAGE CONSTRUCTED, OUTPUT NEEDED. A26861 62680000 ADJFCB DC A(JFCBADDR) ADDRESS OF SYSLMOD JFCB A41571 62690021 DS 0F A52450 62692000 MEMBER DC CL8' ' MEMBER NAME STOWED A52450 62694000 SAVE14 DC F'0' REG 14 SAVE AREA A52450 62696000 IEWAPT 62700000 END 62800000 ./ ADD SSI=00011847,NAME=IEWLMIDR,SOURCE=0 TITLE '***IEWLMIDR*** CSECT IDENTIFICATION RECORD PROCESSOR' 00050021 **** START OF SPECIFICATIONS ****************************************** 00100021 * * 00150021 *1MODULE-NAME = IEWLMIDR * 00200021 *1DESCRIPTIVE-NAME = CSECT IDENTIFICATION RECORD PROCESSOR * 00250021 *1DESCRIPTION = THE IDR MODULE PROCESSES INCOMING LOAD MODULE IDR'S, * 00300021 * IDR DATA ON OBJECT MODULE END RECORDS, AND USER - * 00350021 * SUPPLIED IDR DATA FROM THE IDENTIFY CONTROL STATEMENT. * 00400021 *1ASSUMPTIONS = N/A * 00450021 *1PERFORMANCE = NOT YET AVAILABLE * 00500021 *1FUNCTION = THE FUNCTIONS OF THE CSECT IDENTIFICATION RECORD * 00550021 * PROCESSOR ARE DEPENDENT ON THE TYPE OF IDR INPUT * 00600021 * BEING PROCESSED: * 00650021 * LOAD MODULE IDR'S -- * 00700021 * THE IDR DATA IS EXTRACTED FROM THESE RECORDS, * 00750021 * EXCEPT FOR THE LINKAGE EDITOR IDR, WHICH IS * 00800021 * IGNORED. A CHECK IS MADE TO SEE WHETHER ANY OF THE * 00850021 * CSECT'S IDENTIFIED IN THE IDR ARE BEING DELETED * 00900021 * FROM THE OUTPUT LOAD MODULE. IF SO, THE IDR DATA * 00950021 * ASSOCIATED WITH SUCH CSECT'S ARE ALSO DELETED. THE * 01000021 * DATA WHICH IS NOT TO BE DELETED IS THEN PLACED AT * 01050021 * THE END OF THE APPROPRIATE IDR DATA TABLE. IN THE * 01100021 * CASE OF TRANSLATOR DESCRIPTIONS, A CHECK IS MADE * 01150021 * TO SEE WHETHER AN IDENTICAL DESCRIPTION HAS * 01200021 * ALREADY BEEN ENTERED INTO THE TABLE. IF SO, THE * 01250021 * CSECT'S ASSOCIATED WITH THE INCOMING ITEM AND * 01300021 * THOSE ASSOCIATED WITH THE EXISTING ITEM ARE * 01350021 * GROUPED INTO A SINGLE TABLE ENTRY TO AVOID * 01400021 * NEEDLESS REPETITION. * 01450021 * OBJECT MODULE END RECORDS -- * 01500021 * WHEN THESE RECORDS CONTAIN THE IDR DATA FIELD * 01550021 * (ONLY PRESENT IF THE TRANSLATOR WHICH PRODUCED THE * 01600021 * OBJECT MODULE CONTAINS IDR SUPPORT), THAT FIELD IS * 01650021 * EXTRACTED FROM THE RECORD. THE RENUMBERING TABLE * 01700021 * IS SCANNED TO DETERMINE THE CORRECT ESDID'S OF THE * 01750021 * CSECT'S TO WHICH THE INCOMING TRANSLATOR * 01800021 * DESCRIPTION APPLIES. IF ANY OF THESE CSECT'S ARE * 01850021 * TO BE DELETED, THEY ARE NOT IDENTIFIED ON THE IDR * 01900021 * OUTPUT. IF AT LEAST ONE OF THE CSECT'S ARE TO BE * 01950021 * KEPT, THE TRANSLATOR DESCRIPTION IS ADDED TO THE * 02000021 * TABLE. AS IN LOAD MODULE INPUT, A CHECK IS MADE * 02050021 * FOR A DUPLICATE ITEM AND, IF FOUND, THE TWO ARE * 02100021 * COMBINED. * 02150021 * IDENTIFY CONTROL STATEMENT -- * 02200021 * THE CESD LINE ASSOCIATED WITH THE CSECT NAME TO BE * 02250021 * IDENTIFIED IS CHECKED. IF THE NAME IS NOT FOUND IN * 02300021 * THE CESD AS AN SD-TYPE ENTRY, AN ERROR MESSAGE * 02350021 * IS LOGGED, AND PROCESSING TERMINATES. IF THE CSECT * 02400021 * IS TO BE DELETED, THE IDENTIFY DATA IS IGNORED. IF * 02450021 * NOT, A CHECK IS MADE TO SEE IF THERE PREVIOUSLY * 02500021 * WAS ANY USER-SUPPLIED DATA ASSOCIATED WITH THAT * 02550021 * CSECT. IF SO, THE OLD DATA IS REPLACED WITH THE * 02600021 * NEW INCOMING DATA. IF NOT, THE INCOMING DATA IS * 02650021 * ADDED TO THE END OF THE TABLE. * 02700021 * WHENEVER ANY TYPE OF DATA IS BEING ADDED TO ONE OF THE * 02750021 * TABLES, A CHECK IS FIRST MADE TO DETERMINE WHETHER THE * 02800021 * ADDITION OF THAT DATA WILL CAUSE A TABLE OVERFLOW * 02850021 * CONDITION. IF IT WILL, AN ERROR MESSAGE INDICATING THIS * 02900021 * IS LOGGED, AND PROCESSING IS TERMINATED AT THAT POINT. * 02950021 *1RESTRICTIONS = NONE * 03000021 *1MODULE-TYPE = PROCEDURE * 03050021 * 2PROCESSOR = ASSEMBLER * 03100021 * 2MODULE-SIZE = NOT YET KNOWN * 03150021 * 2CODE-ATTRIBUTES = REUSABLE * 03200021 * 2LOAD-ATTRIBUTES = OVERLAY * 03250021 * 2MAIN-ENTRY-POINT = IEWLMIDR - TO PROCESS INPUT LOAD MODULE * 03300021 * IDR'S AND OBJECT MODULE END * 03350021 * RECORDS WITH THE IDR FIELD * 03400021 * 3LINKAGE = BALR 14,15 * 03450021 * 3PARAMETER-RECEIVED = POINTER-TO-PARAMETER-LIST * 03500021 * 4HOW-PASSED = REGISTER 1 * 03550021 * 4LENGTH-OF-LIST = 4 BYTES * 03600021 * 5FIELD = POINTER TO INPUT BUFFER * 03650021 * 6DISPLACEMENT = 0 BYTES * 03700021 * 6TYPE = ADDRESS * 03750021 * 2SECONDARY-ENTRY-POINT = IEWLCIDR - TO PROCESS IDENTIFY CONTROL * 03800021 * STATEMENT * 03850021 * 3LINKAGE = BALR 14,15 * 03900021 * 3PARAMETER-RECEIVED = POINTER-TO-PARAMETER-LIST * 03950021 * 4HOW-PASSED = REGISTER 1 * 04000021 * 4LENGTH-OF-LIST = 12 BYTES * 04050021 * 5FIELD = POINTER TO CSECT NAME TO BE IDENTIFIED * 04100021 * 6DISPLACEMENT = 0 BYTES * 04150021 * 6TYPE = ADDRESS * 04200021 * 5FIELD = POINTER TO IDENTIFY STRING LENGTH * 04250021 * 6DISPLACEMENT = 4 BYTES * 04300021 * 6TYPE = ADDRESS * 04350021 * 5FIELD = POINTER TO IDENTIFY STRING * 04400021 * 6DISPLACEMENT = 8 BYTES * 04450021 * 6TYPE = ADDRESS * 04500021 * 2EXIT = FINISH * 04550021 * 3PARAMETER-RETURNED = COMPLETION CODE * 04600021 * 4HOW-PASSED = REGISTER 15 * 04650021 * 4TYPE = ARITHMETIC * 04700021 * 5MODE = BINARY * 04750021 * 5LENGTH = 32 BITS * 04800021 * 5SCALING = N/A * 04850021 * 5VALUE = 0 (NORMAL COMPLETION) * 04900021 * 2EXIT = ABORT * 04950021 * 3PARAMETER-RETURNED = ERROR CODE * 05000021 * 4HOW-PASSED = REGISTER 0 * 05050021 * 4TYPE = ARITHMETIC * 05100021 * 5MODE = BINARY * 05150021 * 5LENGTH = 16 BITS * 05200021 * 5VALUE = X'0446' (MSG. IEW0704) * 05250021 * 2EXIT = TABOVFLO * 05300021 * 3PARAMETER-RETURNED = ERROR CODE * 05350021 * 4HOW-PASSED = REGISTER 0 * 05400021 * 4TYPE = ARITHMETIC * 05450021 * 5MODE = BINARY * 05500021 * 5LENGTH = 16 BITS * 05550021 * 5VALUE = X'0445' (MSG. IEW0694) * 05600021 * 2EXTERNAL-PROCEDURE = IEWLMLOG (TO LOG DIAGNOSTIC MESSAGES) * 05650021 * 3PARAMETER-PASSED = MESSAGE CODE (IN REGISTER 0) * 05700021 * 3PARAMETER-RETURNED = NONE * 05750021 * 2EXTERNAL-MACRO = IEWAPT * 05800021 * 3PARAMETER-PASSED = NONE * 05850021 * 3PARAMETER-RETURNED = NONE * 05900021 * 2SYSTEM-MACROS = SAVE, RETURN, OPEN, SNAP, CLOSE AND DCB * 05950021 * 2EXTERNAL-TABLES = CESD, RENUMBERING TABLE AND IDR DATA TABLES * 06000021 * (IDRTRTAB, IDRUDTAB AND IDRZPTAB) * 06050021 * * 06100021 **** END OF SPECIFICATIONS ******************************************** 06150021 EJECT 06200021 *********************************************************************** 06250021 * * 06300021 * ******************************* * 06350021 * * MAIN ENTRY POINT --IEWLMIDR-- * * 06400021 * ******************************* * 06450021 * * 06500021 * CONTROL IS RECEIVED AT THIS POINT FROM MODULE IEWLMINP * 06550021 * FOR THE PURPOSE OF ACCEPTING IDR DATA OBTAINED FROM INPUT * 06600021 * LOAD MODULES AND/OR INPUT OBJECT MODULES. * 06650021 * * 06700021 *********************************************************************** 06750021 SPACE 06800021 IEWLMIDR CSECT 06850021 *A000000 S21016 06870021 *C173500-175000,181500 S21016 06880021 *A417500 M1602 06886021 *C364500,598500 M1602 06892021 *A173000 A53196 06894021 *C174000 A53196 06896021 *A339000 SA63745 06898000 *I213500,D214000-215000,C219000 SA65984 06898400 SPACE 06900000 *********************************************************************** 06950021 * * 07000021 * EXTERNAL ENTRY POINT DEFINITION * 07050021 * * 07100021 *********************************************************************** 07150021 SPACE 07200021 ENTRY IEWLCIDR 07250021 ********************CONTROL PASSED TO THIS EP FROM IEWLMSCN************ 07300021 SPACE 3 07350021 *********************************************************************** 07400021 * * 07450021 * SYMBOLIC EQUATES * 07500021 * * 07550021 *********************************************************************** 07600021 SPACE 2 07650021 ********************GENERAL REGISTER EQUATES*************************** 07700021 SPACE 07750021 NULLREG EQU 0 REGISTER USED WHEN NO BRANCHING 07800021 * IS DESIRED 07850021 GREG0 EQU 0 GENERAL PURPOSE WORK REGISTER 07900021 PARMPTR EQU 1 POINTER TO PARAMETER LIST PASSED 07950021 * BY CALLING PROGRAM 08000021 BUFPTR EQU 1 POINTER TO RECORD BEING 08050021 * PROCESSED IN INPUT BUFFER 08100021 GREG1 EQU 1 GENERAL PURPOSE WORK REGISTER 08150021 APTBASE EQU 2 BASE ADDRESS FOR THE ALL 08200021 * PURPOSE TABLE DSECT 08250021 TABPTR EQU 3 POINTER TO START OF IDR DATA 08300021 * TABLE 08350021 TABNXT EQU 4 POINTER TO NEXT AVAILABLE BYTE 08400021 * IN IDR DATA TABLE 08450021 TABEND EQU 5 MAXIMUM LENGTH OF IDR DATA TABLE 08500021 ITEMPTR EQU 6 POINTER TO IDR ITEM BEING 08550021 * PROCESSED 08600021 DATAPTR EQU 7 POINTER TO PORTION OF ITEM 08650021 * BEING EXAMINED 08700021 ENDBUF EQU 8 POINTER TO END OF INPUT RECORD 08750021 GREG8 EQU 8 GENERAL PURPOSE WORK REGISTER 08800021 TEMPRTN EQU 9 RETURN REGISTER FOR INTERNAL 08850021 * SUBROUTINE LINKAGES 08900021 CESDPTR EQU 9 POINTER TO THE START OF THE 08950021 * COMPOSITE ESD TABLE 09000021 GREG9 EQU 9 GENERAL PURPOSE WORK REGISTER 09050021 RNTPTR EQU 10 POINTER TO THE START OF THE 09100021 * RENUMBERING TABLE 09150021 GREG10 EQU 10 GENERAL PURPOSE WORK REGISTER 09200021 GREG11 EQU 11 GENERAL PURPOSE WORK REGISTER 09250021 IDRBASE EQU 12 BASE ADDRESS FOR MODULE 09300021 SAPTR EQU 13 POINTER TO CALLING PROGRAM'S 09350021 * SAVE AREA 09400021 GREG13 EQU 13 GENERAL PURPOSE WORK REGISTER 09450021 RETURN EQU 14 RETURN ADDRESS IN CALLING 09500021 * PROGRAM 09550021 GREG14 EQU 14 GENERAL PURPOSE WORK REGISTER 09600021 ENTRYPT EQU 15 ENTRY POINT ADDRESS FOR SYSTEM 09650021 * LINKAGES 09700021 GREG15 EQU 15 GENERAL PURPOSE WORK REGISTER 09750021 SPACE 2 09800021 *****************SYMBOLIC MASKS AND IMMEDIATE BYTES******************** 09850021 SPACE 09900021 SPZAP EQU X'01' SUBTYPE VALUE FOR IMASPZAP IDR 09950021 LKED EQU X'02' SUBTYPE VALUE FOR LINK-EDIT IDR 10000021 TRANS EQU X'04' SUBTYPE VALUE FOR TRANSLATOR IDR 10050021 USER EQU X'08' SUBTYPE VALUE FOR USER-DATA IDR 10100021 BLANK EQU C' ' FLAG VALUE FOR NO IDR DATA 10150021 * ON AN OBJECT MODULE END CARD 10200021 SINGLE EQU C'1' FLAG VALUE FOR SINGLE IDR ENTRY 10250021 * ON AN OBJECT MODULE END CARD 10300021 DOUBLE EQU C'2' FLAG VALUE FOR DOUBLE IDR ENTRY 10350021 * ON AN OBJECT MODULE END CARD 10400021 ONETRNS EQU X'00' INDICATOR VALUE FOR A SINGLE 10450021 * IDR TRANSLATOR DESCRIPTION 10500021 DBLSWS EQU X'01' INDICATOR VALUE FOR A DOUBLE 10550021 * IDR TRANSLATOR DESCRIPTION 10600021 SWSOFF EQU X'00' IMMEDIATE BYTE TO RE-INITIALIZE 10650021 * ALL IDR SWITCHES TO ZEROES 10700021 SWSINIT EQU X'13' IMMEDIATE BYTE TO RE-INITIALIZE 10750021 * THE IDR SWITCHES IN THE APT 10800021 PARTOFF EQU X'EF' IMMEDIATE BYTE TO TURN OFF 10850021 * PARTIAL ENTRY INDICATOR 10900021 LASTID EQU X'80' MASK VALUE TO DETERMINE LAST ID 10950021 * IN A STRING OF ESDID'S ON AN IDR 11000021 * TRANSLATOR ITEM 11050021 LSTIDOFF EQU X'7F' IMMEDIATE BYTE TO TURN OFF THE 11100021 * HIGH ORDER BIT IN THE LAST 11150021 * CESDID IN A STRING OF CESDID'S 11200021 LSTIDFND EQU X'80' SWITCH VALUE INDICATING THE 11250021 * LAST ID IN A STRING OF CESDID'S 11300021 * HAS BEEN FOUND 11350021 DELETE EQU X'10' SUB-CLASSIFICATION OF A CESD 11400021 * TYPE MARKED FOR DELETION 11450021 AL1VLD EQU X'40' SWITCH VALUE INDICATING AT 11500021 * LEAST ONE CESDID IN A STRING 11550021 * IS VALID (NOT DELETE) 11600021 TRSWOFF EQU X'3F' IMMEDIATE BYTE TO TURN OFF 11650021 * SWITCHES AL1VLD AND LSTIDFND 11700021 * IN LCLSWS 11750021 CNTDITM EQU X'20' SWITCH VALUE INDICATING A 11800021 * CONTINUED ENTRY IS BEING 11850021 * PROCESSED 11900021 CNTDOFF EQU X'DF' IMMEDIATE BYTE TO TURN OFF 11950021 * CONTINUED ENTRY INDICATOR 12000021 CNTDID EQU X'10' SWITCH VALUE INDICATING A 12050021 * CONTINUED CESDID IS BEING 12100021 * PROCESSED 12150021 CNTIDOFF EQU X'EF' IMMEDIATE BYTE TO TURN OFF 12200021 * CONTINUED CESDID INDICATOR 12250021 ZCHNOFF EQU X'BF' IMMEDIATE BYTE TO TURN OFF THE 12300021 * 'CHAIN' BIT IN AN IMASPZAP IDR 12350021 SECTDEF EQU X'0F' MASK VALUE FOR SD TYPE IN CESD 12400021 PRIVATE EQU X'04' MASK VALUE FOR PC IN CESD TYPE 12450021 OTHTYPE EQU X'0B' MASK VALUE FOR ALL BITS IN CESD 12500021 * TYPE OTHER THAN PC 12550021 LOGIDNT EQU X'20' SWITCH VALUE TO INDICATE TO THE 12600021 * ERROR LOG ROUTINE TO LOG A CARD 12650021 * IMAGE WHOSE ADDRESS IS IN REG.1 12700021 LOGSOFF EQU X'DF' MASK VALUE TO TURN OFF LOGIDNT 12750021 * SWITCH 12800021 NE EQU X'08' MASK VALUE TO TEST IF THE LOAD 12850021 * MODULE BEING PROCESSED IS 'NOT 12900021 * EDITABLE' (IN PDSE8) 12950021 HIDSW EQU 4 PARTIAL ID INDICATOR 13000021 STRSW EQU 12 PARTIAL ID-STRING INDICATOR 13050021 ITMSW EQU 8 PARTIAL TRANS.ITEM INDICATOR 13100021 SPACE 2 13150021 *****************SYMBOLIC DISPLACEMENTS AND LENGTHS******************** 13200021 SPACE 13250021 NODISP EQU 0 DISPLACEMENT OF ZERO 13300021 SUBTYPE EQU 2 SUBTYPE FIELD IN LOAD MOD IDR'S 13350021 OBJFLAG EQU 32 FLAG FIELD IN OBJECT END CARDS 13400021 HEADLEN EQU 3 LENGTH OF IDR RECORD-HEADER 13450021 NEXTID EQU 2 LENGTH OF CESDID FIELD IN IDR 13500021 * DATA ITEMS 13550021 SNGTRN EQU 16 LENGTH OF A SINGLE IDR 13600021 * TRANSLATOR DESCRIPTION 13650021 DBLTRN EQU 31 LENGTH OF A DOUBLE IDR 13700021 * TRANSLATOR DESCRIPTION 13750021 COUNT EQU 1 DISPLACEMENT TO THE BYTE COUNT 13800021 * FIELD IN LOAD MODULE IDR'S 13850021 ADJ EQU 1 ADJUSTMENT VALUE FOR COMPUTING 13900021 * THE ENDING ADDR. OF A REC. 13950021 HALFID EQU 8 SHIFT VALUE FOR ONE BYTE 14000021 BYTE2 EQU 1 ONE-BYTE DISPLACEMENT 14050021 RNTINDX EQU 2 SHIFT VALUE TO GET INDEX INTO 14100021 * THE RENUMBERING TABLE 14150021 CESDINDX EQU 4 SHIFT VALUE TO GET INDEX INTO 14200021 * THE CESD 14250021 IDLEN EQU 2 LENGTH OF A CESDID 14300021 HIDLEN EQU 1 LENGTH OF HALF A CESDID 14350021 TYPE EQU 8 DISPLACEMENT OF TYPE FIELD IN 14400021 * A CESD ENTRY 14450021 NOLEN EQU 0 NULL LENGTH 14500021 CESDWDTH EQU 16 WIDTH OF CESD TABLE 14550021 FSTID EQU 1 VALUE OF 1ST CESDID 14600021 NAMELEN EQU 8 LENGTH OF A CSECT NAME 14650021 UDCNT EQU 5 DISPLACEMENT TO BYTE COUNT FIELD 14700021 * IN USER DATA IDR 14750021 UDHEAD EQU 6 HEADER LENGTH IN USER DATA IDR 14800021 FULWD EQU 4 LENGTH OF A FULL WORD 14850021 USTRLEN EQU 4 DISPLACEMENT TO ADDR. OF 14900021 * IDENTIFY STRING LENGTH IN 14950021 * PARAMETER LIST 15000021 UDSTR EQU 8 DISPLACEMENT TO ADDRESS OF 15050021 * IDENTIFY STRING IN PARAMETER 15100021 * LIST 15150021 UDLEN EQU 40 LENGTH OF IDENTIFY STRING 15200021 DATELEN EQU 3 LENGTH OF DATE FIELD 15250021 RNTYPE EQU 3 DISPLACEMENT TO THE ESD TYPE 15300021 * FIELD IN AN RNT ENTRY 15350021 PKLEN EQU 5 PACKED LENGTH OF V/M LEVEL AND 15400021 * DATE IN TRANSLATOR ITEM 15450021 UPLEN EQU 9 UNPACKED LENGTH OF V/M LEVEL AND 15500021 * DATE IN OBJ.END REC. IDR FIELD 15550021 TRNMLEN EQU 10 LENGTH OF TRANSLATOR NAME IN 15600021 * OBJ.END REC. IDR FIELD 15650021 TRNM1 EQU 33 DISPLACEMENT TO THE TRANSLATOR 15700021 * NAME ON AN OBJ.END WITH IDR 15750021 TRNM2 EQU 52 DISPLACEMENT TO THE 2ND TRANS. 15800021 * NAME ON AN OBJ.END WITH IDR 15850021 VMYD1 EQU 43 DISPLACEMENT TO THE V/M LVL. AND 15900021 * DATE ON AN OBJ.END WITH IDR 15950021 VMYD2 EQU 62 DISPLACEMENT TO THE 2ND V/M LVL. 16000021 * AND DATE ON AN OBJ.END WITH IDR 16050021 UDMAXLEN EQU 46 MAXIMUM LENGTH OF A USER DATA 16100021 * ITEM ON A LOAD MODULE IDR 16150021 ZAPLEN EQU 13 LENGTH OF AN IMASPZAP DATA ENTRY 16200021 MSGLEN EQU 79 LENGTH OF MESSAGE LINE - 1 16250021 SPACE 3 16300021 *********************************************************************** 16350021 * * 16400021 * END OF SYMBOLIC EQUATES * 16450021 * * 16500021 *********************************************************************** 16550021 EJECT 16600021 *********************************************************************** 16650021 *********************************************************************** 16700021 ********** ********** 16750021 ********** EXECUTEABLE CODE BEGINS HERE ********** 16800021 ********** ********** 16850021 *********************************************************************** 16900021 *********************************************************************** 16950021 SPACE 2 17000021 SAVE (14,12),T,* SAVE CALLING PROGRAM'S REGISTERS 17050021 BALR IDRBASE,NULLREG LOAD BASE ADDRESS 17100021 USING START,IDRBASE ESTABLISH ADDRESSABILITY FOR 17150021 * MODULE 17200021 USING APTDSECT,APTBASE ESTABLISH ADDRESSABILITY FOR 17250021 * THE ALL PURPOSE TABLE 17300021 START TM APTSW2,IDROUT TEST IDR OUTPUT ENABLED A53196 17390021 BNO FINISH RETURN IF NOT A53196 17396021 L BUFPTR,NODISP(PARMPTR) LOAD ADDR. OF INPUT REC A53196 17400021 TM IDRSWS,OBJIDR IS INPUT AN OBJECT END CARD? 17550021 BZ TESTLMOD NO, BRANCH 17600021 CLI OBJFLAG(BUFPTR),BLANK IF IT IS, DOES IT CONTAIN THE 17650021 * IDR FIELD? (BLANK IN COL.33 17700021 * INDICATES NO IDR DATA PRESENT) 17750021 BE FINISH IF NOT, RETURN 17800021 CLI OBJFLAG(BUFPTR),DOUBLE IS IDR DATA A DOUBLE ENTRY? 17850021 BNE ONENTRY IF NOT, BRANCH 17900021 OI IDRSWS,DBLOBJ IF IT IS, TURN ON THE DOUBLE 17950021 * ENTRY INDICATOR 18000021 B IDRTRANS GO TO PROCESS THE IDR DATA 18050021 ONENTRY CLI OBJFLAG(BUFPTR),SINGLE IS IDR DATA A SINGLE ENTRY? 18100021 BNE FINISH IF NOT, THE FLAG FIELD IS 18120021 * INVALID FOR IDR -- IGNORE 18140021 * THE RECORD 18160021 B IDRTRANS IF IT IS, GO TO PROCESS IT 18200021 TESTLMOD TM IDRSWS,LMDIDR IS INPUT A LOAD MODULE IDR? 18250021 BNO ABORT IF NOT, IT IS AN ERROR 18300021 TM SUBTYPE(BUFPTR),LKED IS IT A LINK-EDIT RECORD? 18350021 BO FINISH IF IT IS, RETURN 18400021 SR ENDBUF,ENDBUF ZERO REGISTER TO RECEIVE COUNT 18450021 IC ENDBUF,COUNT(BUFPTR) GET BYTE COUNT FOR RECORD 18500021 LA ENDBUF,ADJ(ENDBUF,BUFPTR) GET ADDRESS OF END OF RECORD 18550021 TM SUBTYPE(BUFPTR),SPZAP IS THIS AN IMASPZAP RECORD? 18600021 BO IDRSPZAP IF IT IS, BRANCH 18650021 TM SUBTYPE(BUFPTR),TRANS IS IT A TRANSLATOR RECORD? 18700021 BO IDRTRANS IF IT IS, BRANCH 18750021 TM SUBTYPE(BUFPTR),USER IS IT A USER-DATA RECORD? 18800021 BO IDRIDENT IF IT IS, BRANCH 18850021 B ABORT IF NONE OF THE ABOVE BRANCHES 18900021 * HAVE BEEN TAKEN, THE SUBTYPE 18950021 * FIELD OF THE RECORD CONTAINS 19000021 * AN INVALID CODE 19050021 EJECT 19100021 *********************************************************************** 19150021 *********************************************************************** 19200021 **** **** 19250021 **** SUB-PROGRAM IDRTRANS PROCESSES INPUT LOAD MODULE IDR'S **** 19300021 **** WITH TRANSLATOR DATA AND OBJECT MODULE END RECORDS **** 19350021 **** WITH THE IDR TRANSLATOR IDENTIFICATION FIELD **** 19400021 **** **** 19450021 *********************************************************************** 19500021 *********************************************************************** 19550021 SPACE 2 19600021 IDRTRANS L TABPTR,IDRTRTAB GET ADDRESS OF TRANSLATOR DATA 19650021 * TABLE 19700021 L TABNXT,IDRTREND GET ADDRESS OF NEXT AVAILABLE 19750021 * BYTE IN TABLE 19800021 LR TABEND,TABPTR GET STARTING ADDRESS OF TABLE 19850021 AH TABEND,IDRTRLEN GET ENDING ADDRESS OF TABLE 19900021 TM IDRSWS,OBJIDR IS OBJECT MODULE INDICATOR ON? 19950021 BO POSTOBJ IF SO, GO TO POST 20000021 TM IDRSWS,LMDIDR IS LOAD MODULE INDICATOR ON? 20050021 BNO ABORT IF NOT, IT IS AN ERROR 20100021 L CESDPTR,CHESD GET THE ADDRESS OF THE CESD 20150021 L RNTPTR,RECNT GET THE ADDRESS OF THE RNT 20200021 TM IDRSWS,PARTENT IS LAST ITEM IN TABLE A PARTIAL 20250021 * ENTRY? 20300021 BO CONTIN IF SO, BRANCH 20350021 LA ITEMPTR,HEADLEN(BUFPTR) POINT TO FIRST DATA ITEM IN REC 20400021 LR DATAPTR,ITEMPTR POINT TO START OF DATA FOR 20450021 * CURRENT ITEM 20500021 SCNITEM LA GREG11,NEXTID(DATAPTR) GET ENDING ADDR. OF THIS ID 20550021 TM LCLSWS,CNTDID IS THIS A CONTINUED ID? 20600021 BO SCNITM04 IF SO, BRANCH 20650021 CR GREG11,ENDBUF IS IT COMPLETE IN THIS RECORD? 20700021 BH PRTLID IF NOT, BRANCH 20750021 SCNITM04 TM NODISP(DATAPTR),LASTID IS THIS THE LAST CESDID FOR THE 20800021 * CURRENT ITEM? 20850021 BNO TESTID IF NOT, BRANCH 20900021 OI LCLSWS,LSTIDFND TURN ON 'LAST ID FOUND' SWITCH 20950021 NI NODISP(DATAPTR),LSTIDOFF TURN OFF HIGH ORDER BIT OF ID 21000021 TESTID ST GREG1,SAVR1 SAVE GENERAL WORK REGISTER 1 21050021 SR GREG1,GREG1 ZERO THE REGISTER 21100021 IC GREG1,NODISP(DATAPTR) GET 1ST BYTE OF CESDID 21150021 SLL GREG1,HALFID SHIFT THAT BYTE 21200021 IC GREG1,BYTE2(DATAPTR) GET 2ND BYTE OF CESDID 21250021 SLL GREG1,RNTINDX MULTIPLY ID BY 4 TO GET INDEX 21300021 * INTO THE RENUMBERING TABLE 21350021 AR GREG1,RNTPTR PT TO RNT ENTRY SA65984 21360000 TM RNTYPE(GREG1),DELETE MARKED FOR DELETE SA65984 21370000 BO LSTIDTST SKIP IDR IF SO SA65984 21380000 MVC NODISP(IDLEN,DATAPTR),NODISP(GREG1) SA65984 21390000 * KEEP IDR ITEM IF CSECT NOT MARKED FOR DELETE SA65984 21392000 LH GREG1,NODISP(,GREG1) PICK UP RENUMBERED ID SA65984 21394000 SLL GREG1,CESDINDX MULTIPLY ID BY 16 TO GET INDEX 21600021 * INTO THE CESD 21650021 AR GREG1,CESDPTR GET THE ADDRESS OF THE CESD LINE 21700021 TM TYPE(GREG1),DELETE IS THIS SECTION MARKED FOR 21750021 * DELETION? 21800021 BNO IDOK IF NOT, BRANCH TO PROCESS IT 21850021 LSTIDTST TM LCLSWS,LSTIDFND WAS THIS THE LAST ID? SA65984 21900000 BZ GETNXT IF NOT, BRANCH 21950021 TM LCLSWS,AL1VLD WAS AT LEAST ONE VALID ID FOUND? 22000021 BZ GETNXT IF NOT, BRANCH 22050021 LR GREG1,TABNXT GET ADDRESS OF NEXT TABLE BYTE 22100021 BCTR GREG1,NULLREG SUBTRACT 2 FROM ADDRESS TO GET 22150021 BCTR GREG1,NULLREG ADDRESS OF LAST ID IN TABLE 22200021 OI NODISP(GREG1),LASTID TURN ON LAST ID INDICATOR 22250021 GETNXT L GREG1,SAVR1 RESTORE GENERAL WORK REG.1 22300021 B GETNXTID GO TO GET THE NEXT CESDID 22350021 SPACE 3 22400021 ********************************************************************* 22450021 ******* THE FOLOWING SECTION OF CODE ADDS ******* 22500021 ******* THE ESDID TO THE END OF THE TABLE ******* 22550021 ******* IDRTRTAB ******* 22600021 ********************************************************************* 22650021 SPACE 1 22700021 IDOK OI LCLSWS,AL1VLD TURN ON SWITCH TO INDICATE AT 22750021 * LEAST ONE VALID CESDID FOUND 22800021 LA GREG11,NEXTID(TABNXT) GET ADDR. OF NEXT BYTE IN TABLE 22850021 * + LENGTH OF CESDID TO BE ADDED 22900021 CR GREG11,TABEND WILL ADDING THE ID OVERFLOW THE 22950021 * TABLE? 23000021 BH TABOVFLO IF SO, GO TO LOG THE MESSAGE 23050021 * AND TERMINATE 23100021 TM LCLSWS,LSTIDFND WAS THIS THE LAST ID? 23150021 BZ MOVEID IF NOT, BRANCH 23200021 OI NODISP(DATAPTR),LASTID TURN ON THE LAST ID INDICATOR 23250021 MOVEID MVC NODISP(IDLEN,TABNXT),NODISP(DATAPTR) IF NOT, MOVE THE 23300021 * ID ONTO THE END OF THE TABLE 23350021 LR TABNXT,GREG11 UPDATE POINTER TO NEXT BYTE IN 23400021 * TABLE 23450021 L GREG1,SAVR1 RESTORE GENERAL WORK REG.1 23500021 GETNXTID TM LCLSWS,CNTDID WAS THIS A CONTINUED ID? 23550021 BZ ADJPTR IF NOT, GO TO ADJUST THE POINTER 23600021 * TO THE NEXT ID 23650021 LA ITEMPTR,FULWD(BUFPTR) POINT FOLLOWING THE CONTINUED 23700021 * CESDID JUST PROCESSED 23750021 LR DATAPTR,ITEMPTR POINT TO THE NEXT DATA 23800021 NI LCLSWS,CNTIDOFF TURN OFF CONTIUED ID SWITCH 23850021 B NOADJ BRANCH AROUND POINTER ADJUSTMENT 23900021 ADJPTR LA DATAPTR,NEXTID(DATAPTR) INCREMENT POINTER TO NEXT CESDID 23950021 CR DATAPTR,ENDBUF HAVE WE REACHED THE END OF THE 24000021 * RECORD? 24050021 BE PRTLSTR IF SO, BRANCH 24100021 NOADJ TM LCLSWS,LSTIDFND WAS THIS THE LAST CESDID? 24150021 BO TRNSDESC IF SO, GO TO HANDLE THE 24200021 * TRANSLATOR DESCRIPTION 24250021 B SCNITEM LOOP TO CONTINUE SCAN 24300021 TRNSDESC LR ITEMPTR,DATAPTR POINT TO START OF DESCRIPTION 24350021 CLI NODISP(DATAPTR),ONETRNS IS THIS ITEM A SINGLE TRANSLATOR 24400021 * DESCRIPTION? 24450021 BNE DBLTRNS IF NOT, BRANCH 24500021 LA DATAPTR,SNGTRN(DATAPTR) INCREMENT POINTER TO END OF ITEM 24550021 B AROUNDBL BRANCH AROUND NEXT INSTRUCTION 24600021 DBLTRNS LA DATAPTR,DBLTRN(DATAPTR) INCREMENT POINTER TO END OF ITEM 24650021 AROUNDBL TM LCLSWS,CNTDITM IS THIS A CONTINUED ITEM? 24700021 BO TRDSC05 IF SO, BRANCH 24750021 CR DATAPTR,ENDBUF HAVE WE REACHED THE END OF THE 24800021 * RECORD? 24850021 BH PRTLITEM IF SO, BRANCH 24900021 TRDSC05 TM LCLSWS,AL1VLD WAS AT LEAST 1 VALID ID FOUND? 24950021 BZ NOPOST IF NOT, BRANCH 25000021 BAL TEMPRTN,POSTIDR GO TO ADD THIS ITEM TO THE TABLE 25050021 L CESDPTR,CHESD RESTORE THE POINTER TO THE CESD 25100021 NOPOST NI LCLSWS,TRSWOFF TURN OFF LAST ID FOUND AND AT 25150021 * LEAST 1 VALID ID SWITCHES 25200021 TM LCLSWS,CNTDITM WAS THIS A CONTINUED ITEM? 25250021 BZ MORETEST IF NOT, BRANCH 25300021 LA DATAPTR,HEADLEN(BUFPTR) POINT TO START OF NEW RECORD 25350021 AH DATAPTR,CNTDLEN POINT TO DATA AFTER CONTINUATION 25400021 * OF LAST ITEM 25450021 NI LCLSWS,CNTDOFF TURN OFF CONTINUED ITEM SWITCH 25500021 MORETEST CR DATAPTR,ENDBUF ANY MORE ITEMS IN THIS RECORD? 25550021 BE TRNSFIN IF NOT, RETURN 25600021 LR ITEMPTR,DATAPTR POINT TO NEXT ITEM IN RECORD 25650021 B SCNITEM LOOP TO SCAN NEXT ITEM 25700021 SPACE 3 25750021 ********************************************************************* 25800021 ******* THE FOLLOWING SECTION OF CODE ******* 25850021 ******* HANDLES TRANSLATOR IDR ITEMS THAT ******* 25900021 ******* ARE INCOMPLETE ON THE RECORD ******* 25950021 ******* CURRENTLY BEING PROCESSED ******* 26000021 ********************************************************************* 26050021 SPACE 1 26100021 PRTLID MVI PTLSWCH,HIDSW TURN ON THE HALF-ID INDICATOR 26150021 MVC HIDSAV(HIDLEN),NODISP(DATAPTR) MOVE IN THE HALF-ID 26200021 LA ITEMPTR,SAVPTLTR POINT TO START OF PARTIAL ITEM 26250021 LA DATAPTR,FULWD(ITEMPTR) POINT TO END OF PARTIAL ITEM 26300021 B PRTPOST GO TO POST THE PARTIAL ITEM 26350021 PRTLSTR MVI PTLSWCH,STRSW TURN ON THE STRING INDICATOR 26400021 LA ITEMPTR,SAVPTLTR POINT TO START OF PARTIAL ITEM 26450021 LA DATAPTR,FULWD(ITEMPTR) POINT TO END OF PARTIAL ITEM 26500021 B PRTPOST GO TO POST THE PARTIAL ITEM 26550021 PRTRMOV MVC OBJTRN(NOLEN),NODISP(ITEMPTR) MOVE PARTIAL TRANSLATOR 26600021 * DESCRIPTION TO WORK AREA 26650021 PRTLITEM LR GREG11,DATAPTR GET EXPECTED ENDING ADDR.OF ITEM 26700021 SR GREG11,ITEMPTR GET EXPECTED LENGTH OF ITEM 26750021 STC GREG11,XPTRLEN MOVE IN EXPECTED LENGTH 26800021 LR GREG11,ENDBUF GET ENDING ADDRESS OF RECORD 26850021 SR GREG11,ITEMPTR GET LENGTH OF PARTIAL ITEM 26900021 STC GREG11,PTLTRLN MOVE IN PARTIAL LENGTH 26950021 BCTR GREG11,NULLREG SUBTRACT 1 FOR MOVE LENGTH 27000021 EX GREG11,PRTRMOV MOVE IN PARTIAL ITEM DATA 27050021 MVI PTLSWCH,ITMSW TURN ON THE ITEM INDICATOR 27100021 LA ITEMPTR,SAVPTLTR POINT TO START OF PARTIAL ITEM 27150021 LA DATAPTR,FULWD(ITEMPTR) POINT TO START OF PARTIAL DATA 27200021 LA DATAPTR,ADJ(GREG11,DATAPTR) POINT TO END OF PARTIAL 27250021 * ITEM 27300021 PRTPOST MVC CPYLCLS(ADJ),LCLSWS MOVE IN COPY OF LOCAL SWITCHES 27350021 * INDICATING CURRENT STATUS OF 27400021 * PROCESSING FOR PARTIAL ITEM 27450021 OI IDRSWS,PARTENT TURN ON PARTIAL ENTRY INDICATOR 27500021 BAL TEMPRTN,POSTIDR GO TO ADD THIS ITEM TO THE TABLE 27550021 L TABNXT,PARTBEG POINT TO BEGINNING OF PARTIAL 27600021 * ITEM 27650021 B TRNSFIN RETURN 27700021 CONTIN MVC SAVPTLTR(FULWD),NODISP(TABNXT) MOVE PARTIAL ITEM 27750021 * DESCRIPTOR WORD TO WORK AREA 27800021 MVC LCLSWS(ADJ),CPYLCLS SET LOCAL SWITCHES TO REFLECT 27850021 * STATUS OF PROCESSING FOR 27900021 * CONTINUED ITEM 27950021 NI IDRSWS,PARTOFF TURN OFF PARTIAL ENTRY SWITCH 28000021 SR GREG11,GREG11 ZERO WORK REGISTER 28050021 IC GREG11,PTLSWCH GET PARTIAL ITEM TYPE INDICATOR 28100021 BRTABLE B BRTABLE(GREG11) BRANCHING TABLE 28150021 B IDCNTIN CONTINUED CESDID 28200021 B DSCNTIN CONTINUED TRANSLATOR DESCRIPTION 28250021 STCNTIN EQU * CONTINUED CESDID STRING 28300021 LA ITEMPTR,HEADLEN(BUFPTR) POINT TO 1ST ITEM ON 28350021 * CONTINUATION RECORD 28400021 LR DATAPTR,ITEMPTR GET STARTING ADDRESS OF DATA FOR 28450021 * CONTINUATION RECORD 28500021 TM LCLSWS,LSTIDFND WAS LAST ID FOUND IN PREVIOUS 28550021 * RECORD? 28600021 BO TRNSDESC IF SO, GO TO PROCESS THE 28650021 * DESCRIPTION 28700021 B SCNITEM IF NOT, GO TO CONTINUE 28750021 * PROCESSING THE STRING OF 28800021 * CESDID'S 28850021 IDCNTIN IC GREG11,HIDSAV GET 1ST HALF OF CESDID FROM 28900021 * PREVIOUS RECORD 28950021 STC GREG11,ID1ST MOVE IT TO WORK AREA 29000021 IC GREG11,HEADLEN(BUFPTR) GET 2ND HALF OF CESDID FROM 29050021 * CONTINUATION RECORD 29100021 STC GREG11,ID2ND MOVE IT TO WORK AREA 29150021 OI LCLSWS,CNTDID TURN ON CONTINUED ID SWITCH 29200021 LA DATAPTR,ID1ST POINT TO CONTINUED CESDID 29250021 B SCNITEM GO TO PROCESS IT 29300021 DSCNTIN STM GREG8,GREG9,SAVR8 SAVE WORK REG. CONTENTS 29350021 SR GREG8,GREG8 ZERO WORK REGISTER 29400021 SR GREG9,GREG9 ZERO WORK REGISTER 29450021 IC GREG8,PTLTRLN GET PARTIAL ITEM LENGTH 29500021 IC GREG9,XPTRLEN GET EXPECTED ITEM LENGTH 29550021 SR GREG9,GREG8 GET LENGTH OF CONTINUATION 29600021 STH GREG9,CNTDLEN SAVE CONTINUATION LENGTH 29650021 BCTR GREG9,NULLREG SUBTRACT 1 FOR MOVE LENGTH 29700021 LA GREG8,OBJTRN(GREG8) GET ADDR. IN WORK AREA FOR 29750021 * CONTINUATION TO START 29800021 EX GREG9,CTDMV MOVE CONTINUATION TO WORK AREA 29850021 SR GREG8,GREG8 ZERO WORK REGISTER 29900021 IC GREG8,PTLTRLN GET PARTIAL ITEM LENGTH 29950021 BCTR GREG8,NULLREG SUBTRACT 1 FOR MOVE LENGTH 30000021 EX GREG8,PTDMV MOVE PARTIAL ITEM TO WORK AREA 30050021 LA DATAPTR,OBJTRN POINT TO START OF DESCRIPTION 30100021 * IN WORK AREA 30150021 OI LCLSWS,CNTDITM TURN ON PARTIAL ITEN INDICATOR 30200021 LM GREG8,GREG9,SAVR8 RESTORE WORK. REG. CONTENTS 30250021 B TRNSDESC GO TO PROCESS THE DESCRIPTION 30300021 PTDMV MVC OBJTRN(NOLEN),FULWD(TABNXT) MOVE PARTIAL TRANSLATOR 30350021 * DESCRIPTION TO WORK AREA 30400021 CTDMV MVC NODISP(NOLEN,GREG8),HEADLEN(BUFPTR) MOVE CONTINUATION 30450021 * OF TRANSLATOR DESCRIPTION TO 30500021 * WORK AREA 30550021 EJECT 30600021 ********************************************************************* 30650021 ******* THE FOLLOWING SECTION OF CODE ******* 30700021 ******* HANDLES THE IDR FIELD OF AN ******* 30750021 ******* OBJECT MODULE END RECORD, WHEN ******* 30800021 ******* PRESENT ******* 30850021 ********************************************************************* 30900021 SPACE 1 30950021 POSTOBJ STM GREG8,GREG9,SAVR8 SAVE WORK REG. CONTENTS 31000021 SR GREG8,GREG8 ZERO THE WORK REGISTER 31050021 L RNTPTR,RECNT GET ADDRESS OF THE RENUMBERING 31100021 * TABLE - 4 31150021 RNTLOOP LA RNTPTR,FULWD(RNTPTR) UPDATE POINTER TO NEXT RNT ENTRY 31200021 CH GREG8,NODISP(RNTPTR) IS THIS ENTRY ZEROES ( END OF 31250021 * THE RNT)? 31300021 BE ADDITEM IF SO, BRANCH 31350021 TM RNTYPE(RNTPTR),SECTDEF IS THIS AN SD? 31400021 BZ ADDID IF SO, BRANCH TO ADD IT 31450021 TM RNTYPE(RNTPTR),PRIVATE COULD THIS BE A PC? 31500021 BNO RNTLOOP IF NOT, GO TO TRY NEXT ENTRY 31550021 TM RNTYPE(RNTPTR),OTHTYPE IS THIS ENTRY A PC? 31600021 BNZ RNTLOOP IF NOT, GO TO TRY NEXT ENTRY 31650021 ADDID TM RNTYPE(RNTPTR),DELETE IS IT MARKED FOR DELETION? 31700021 BO RNTLOOP IF SO, GO TO TRY NEXT ENTRY 31750021 OI LCLSWS,AL1VLD TURN ON 'AT LEAST 1 VALID CESDID 31800021 * FOUND' SWITCH 31850021 LA GREG9,NEXTID(TABNXT) GET ADDR. OF NEXT BYTE IN TABLE 31900021 * + LENGTH OF CESDID TO BE ADDED 31950021 CR GREG9,TABEND WILL ADDING THE ID OVERFLOW THE 32000021 * TABLE? 32050021 BH TABOVFLO IF SO, GO TO LOG THE MESSAGE 32100021 * AND TERMINATE 32150021 MVC NODISP(IDLEN,TABNXT),NODISP(RNTPTR) IF NOT, MOVE THE 32200021 * ID ONTO THE END OF THE TABLE 32250021 LR TABNXT,GREG9 UPDATE POINTER TO NEXT BYTE IN 32300021 * TABLE 32350021 B RNTLOOP GO TO CONTINUE SEARCH LOOP 32400021 ADDITEM TM LCLSWS,AL1VLD WAS AT LEAST 1 VALID ID FOUND? 32450021 BNO FINISH IF NOT, RETURN 32500021 MVC TRNAME(TRNMLEN),TRNM1(BUFPTR) MOVE TRANS. NAME TO 32550021 * TEMPORARY LOCATION 32600021 PACK VVMM(PKLEN),VMYD1(UPLEN,BUFPTR) CONVERT V/M LVL AND 32650021 * DATE TO PACKED FORMAT AND MOVE 32700021 * TO TEMPORARY LOCATION 32750021 TM IDRSWS,DBLOBJ IS THIS A DOUBLE TRANSLATOR 32800021 * DESCRIPTION? 32850021 BO DBLNTRY IF SO, BRANCH 32900021 MVI INDCTR,SWSOFF INDICATE A SINGLE ENTRY 32950021 B SCANTRT GO TO SCAN TRANS. TABLE FOR A 33000021 * MATCHING DESCRIPTION 33050021 DBLNTRY MVI INDCTR,DBLSWS INDICATE A DOUBLE ENTRY 33100021 MVC TRNAME2(TRNMLEN),TRNM2(BUFPTR) MOVE 2ND TRANS. NAME TO 33150021 * TEMPORARY LOCATION 33200021 PACK VVMM2(PKLEN),VMYD2(UPLEN,BUFPTR) CONVERT 2ND V/M LVL 33250021 * AND DATE TO PACKED FORMAT AND 33300021 * MOVE TO TEMPORARY LOCATION 33350021 SPACE 3 33400021 ********************************************************************* 33450021 ******* THE FOLLOWING SECTION OF CODE ******* 33500021 ******* SCANS THE IDR TRANSLATOR TABLE ******* 33550021 ******* FOR TRANSLATOR DESCRIPTIONS ******* 33600021 ******* IDENTICAL TO THAT ON THE INPUT ******* 33650021 ******* RECORD -- IF FOUND, THE TWO ******* 33700021 ******* ITEMS ARE COMBINED ******* 33750021 ********************************************************************* 33800021 SPACE 1 33850021 SCANTRT C TABPTR,IDRTREND CHK FOR TBL END SA63745 33900000 BNL POSTDSC IF SO, GO TO POST THE NEW ITEM 33950021 CLC NODISP(IDLEN,TABPTR),HZERO IS THIS A NULL ITEM? 34000021 BNE SCNTRT05 IF NOT, BRANCH 34050021 MVC HTEMP(IDLEN),NEXTID(TABPTR) GET LENGTH OF NULL ITEM 34100021 AH TABPTR,HTEMP ADD NULL LENGTH TO POINTER 34150021 B SCANTRT GO TO CONTINUE SCAN 34200021 SCNTRT05 ST TABPTR,FTEMP SAVE STARTING ADDRESS OF ITEM 34250021 IDSCAN TM NODISP(TABPTR),LASTID IS THIS THE LAST ID IN STRING? 34300021 BO TESTDSC IF SO, BRANCH 34350021 LA TABPTR,NEXTID(TABPTR) UPDATE TO NEXT ID 34400021 B IDSCAN GO TO CONTINUE SCAN 34450021 TESTDSC LA TABPTR,NEXTID(TABPTR) POINT TO START OF DESCRIPTION 34500021 TM IDRSWS,DBLOBJ IS INPUT A DOUBLE ENTRY? 34550021 BO TESTDBL IF SO, BRANCH 34600021 CLC OBJTRN(SNGTRN),NODISP(TABPTR) DOES DESCRIPTION IN TABLE 34650021 * MATCH INPUT DESCRIPTION? 34700021 BE MOVITM IF SO, BRANCH 34750021 B SCNTRT10 GO TO CONTINUE TABLE SCAN 34800021 TESTDBL CLC OBJTRN(DBLTRN),NODISP(TABPTR) DOES DESCRIPTION IN TABLE 34850021 * MATCH INPUT DESCRIPTION? 34900021 BE MOVITM IF SO, BRANCH 34950021 SCNTRT10 TM NODISP(TABPTR),DBLSWS IS THE ITEM BEING COMPARED A 35000021 * DOUBLE TRANSLATOR DESCRIPTION? 35050021 BO SCNTRT15 IF SO, BRANCH 35100021 LA TABPTR,SNGTRN(TABPTR) UPDATE TO NEXT TRANS. ITEM 35150021 B SCANTRT GO TO CONTINUE TABLE SCAN 35200021 SCNTRT15 LA TABPTR,DBLTRN(TABPTR) UPDATE TO NEXT TRANS. ITEM 35250021 B SCANTRT GO TO CONTINUE TABLE SCAN 35300021 POSTDSC TM IDRSWS,DBLOBJ IS THIS A DOUBLE ITEM? 35350021 BO PSTDBDS IF SO, BRANCH 35400021 LA DATAPTR,SNGTRN SET LENGTH OF A SINGLE ITEM 35450021 B PSTDSCR GO TO POST IT 35500021 PSTDBDS LA DATAPTR,DBLTRN SET LENGTH OF A DOUBLE ITEM 35550021 B PSTDSCR GO TO POST IT 35600021 MOVITM L GREG8,FTEMP GET STARTING ADDR. OF ID STRING 35650021 MOVIDSTR CR GREG8,TABPTR END OF STRING OF ESDID'S? 35700021 BE NULITM IF SO, BRANCH 35750021 LA GREG9,NEXTID(TABNXT) GET ADDR. OF NEXT BYTE IN TABLE 35800021 * + LENGTH OF CESDID TO BE ADDED 35850021 CR GREG9,TABEND WILL ADDING THE ID OVERFLOW THE 35900021 * TABLE? 35950021 BH TABOVFLO IF SO, GO TO LOG THE MESSAGE 36000021 * AND TERMINATE 36050021 MVC NODISP(IDLEN,TABNXT),NODISP(GREG8) IF NOT, MOVE THE 36100021 * ID TO THE END OF THE TABLE 36150021 LR TABNXT,GREG9 UPDATE POINTER TO NEXT BYTE IN 36200021 * TABLE 36250021 LA GREG8,NEXTID(GREG8) UPDATE TO NEXT CESDID 36300021 B MOVIDSTR GO TO MOVE NEXT ID 36350021 NULITM L GREG8,FTEMP GET STARTING ADDR. OF ID STRING 36400021 MVC NODISP(IDLEN,GREG8),HZERO NULL THE ITEM M1602 36450021 LR GREG9,TABPTR GET STARTING ADDR. OF DESCR. 36500021 SR GREG9,GREG8 GET LENGTH OF STRING OF ID'S 36550021 TM IDRSWS,DBLOBJ IS IT A DOUBLE ITEM? 36600021 BO DBLNULL IF SO, BRANCH 36650021 LA GREG9,SNGTRN(GREG9) ADD DESCRIPTION LENGTH 36700021 LA DATAPTR,SNGTRN INITIALIZE DATA POINTER TO 36750021 * DESCRIPTION LENGTH 36800021 B SGLNULL BRANCH AROUND ADUSTMENT FOR 36850021 * DOUBLE ITEM 36900021 DBLNULL LA GREG9,DBLTRN(GREG9) ADD DESCRIPTION LENGTH 36950021 LA DATAPTR,DBLTRN INITIALIZE DATA POINTER TO 37000021 * DESCRIPTION LENGTH 37050021 SGLNULL STH GREG9,HTEMP SAVE TOTAL ITEM LENGTH 37100021 MVC NEXTID(IDLEN,GREG8),HTEMP MOVE IN ITEM LENGTH 37150021 B PSTDSC2 BRANCH AROUND SETTING HIGH 37200021 * ORDER BIT FOR LAST CESDID 37250021 PSTDSCR LR GREG8,TABNXT POINT TO NEXT BYTE IN TABLE 37300021 BCTR GREG8,NULLREG SUBTRACT 2 TO POINT TO THE LAST 37350021 BCTR GREG8,NULLREG CESDID ENTERED IN THE TABLE 37400021 OI NODISP(GREG8),LASTID TURN ON 'LAST ID' BIT 37450021 PSTDSC2 LA ITEMPTR,OBJTRN POINT TO START OF DESCRIPTION 37500021 AR DATAPTR,ITEMPTR SET POINTER TO END OF DESCR. 37550021 LM GREG8,GREG9,SAVR8 RESTORE WORK REG. CONTENTS 37600021 BAL TEMPRTN,POSTIDR GO TO ADD THIS TRANSLATOR 37650021 * DESCRIPTION TO THE TABLE 37700021 TRNSFIN ST TABNXT,IDRTREND UPDATE POINTER TO NEXT 37750021 * AVAILABLE BYTE IN TABLE 37800021 B FINISH RETURN 37850021 EJECT 37900021 *********************************************************************** 37950021 *********************************************************************** 38000021 **** **** 38050021 **** SUB-PROGRAM IDRIDENT PROCESSES INPUT LOAD MODULE IDR'S **** 38100021 **** WITH USER DATA AND USER DATA SPECIFIED VIA THE IDENTIFY **** 38150021 **** CONTROL STATEMENT **** 38200021 **** **** 38250021 *********************************************************************** 38300021 *********************************************************************** 38350021 SPACE 2 38400021 IDRIDENT L TABPTR,IDRUDTAB GET ADDRESS OF USER DATA TABLE 38450021 L TABNXT,IDRUDEND GET ADDRESS OF NEXT AVAILABLE 38500021 * BYTE IN TABLE 38550021 LR TABEND,TABPTR GET STARTING ADDRESS OF TABLE 38600021 AH TABEND,IDRUDLEN GET ENDING ADDRESS OF TABLE 38650021 TM IDRSWS,LMDIDR IS LOAD MODULE INDICATOR ON? 38700021 BO LMODUD IF SO, BRANCH 38750021 TM IDRSWS,USEIDR IS IDENTIFY CARD SWITCH ON? 38800021 BNO ABORT IF NOT, IT IS AN ERROR 38850021 STM GREG14,GREG15,SAVR14 SAVE WORK REG. CONTENTS 38900021 ST GREG10,SAVR10 SAVE WORK REG. CONTENTS 38950021 L GREG10,NODISP(PARMPTR) GET ADDRESS OF CSECT NAME 39000021 L CESDPTR,CHESD GET CESD ADDRESS - 16 39050021 LA GREG14,CESDWDTH PLACE 16 IN INCREMENT REGISTER 39100021 ST GREG8,SAVR8 SAVE WORK REG. CONTENTS 39150021 LA GREG8,FSTID PLACE CESDID OF 1 FOR 1ST ITEM 39200021 LH GREG15,ENCDC GET NO. OF ITEMS IN CESD 39250021 SLL GREG15,CESDINDX MULT. BY 16 FOR CESD SIZE 39300021 AR GREG15,CESDPTR ADD ADDR.OF CESD TP POINT TO 39350021 * LAST ENTRY IN THE CESD 39400021 B INCRMNT GO TO INCREMENT THE CESD POINTER 39450021 CESDSRCH CLC NODISP(NAMELEN,GREG10),NODISP(CESDPTR) COMPARE CSECT 39500021 * NAME TO BE IDENTIFIED WITH THIS 39550021 * ENTRY IN THE CESD 39600021 BE NAMEFND IF THEY MATCH, BRANCH 39650021 BADMTCH LA GREG8,FSTID(GREG8) UPDATE TO NEXT CESDID 39700021 INCRMNT BXLE CESDPTR,GREG14,CESDSRCH UPDATE POINTER TO NEXT ENTRY IN 39750021 * CESD, COMPARE TO END ADDR. OF 39800021 * CESD, IF NOT AT END, BRANCH TO 39850021 * CONTINUE IN SEARCH LOOP 39900021 B BADIDENT NAME NOT FOUND IN CESD -- GO TO 39950021 * LOG ERROR MESSAGE 40000021 NAMEFND TM TYPE(CESDPTR),SECTDEF IS MATCHING CESD ENTRY AN SD? 40050021 BNZ BADMTCH IF NOT, BRANCH BACK INTO LOOP 40100021 TM TYPE(CESDPTR),DELETE IS THIS SD MARKED FOR DELETION? 40150021 BO BADMTCH IF SO, BRANCH BACK INTO LOOP 40200021 STH GREG8,HTEMP SAVE MATCHED CESDID 40250021 SPACE 3 40300021 ********************************************************************* 40350021 ******* THE FOLLOWING SECTION OF CODE ******* 40400021 ******* SCANS THE IDR USER DATA TABLE ******* 40450021 ******* FOR ANY PREVIOUS ENTRY WHICH ******* 40500021 ******* SPECIFIES THE SAME CSECT AS ******* 40550021 ******* THE IDENTIFY CONTROL CARD BEING ******* 40600021 ******* PROCESSED -- IF FOUND, THE OLD ******* 40650021 ******* DATA IS REPLACED BY THE NEW DATA ******* 40700021 ********************************************************************* 40750021 SPACE 1 40800021 UDTABSCH CR TABPTR,TABNXT TABLE POINTER AT END OF TABLE? 40850021 BE POSTUD IF SO, BRANCH 40900021 CLC NODISP(IDLEN,TABPTR),HZERO IS THIS A NULL ITEM? 40950021 BNE UDTBSR05 IF NOT, BRANCH 41000021 MVC HTEMP2(IDLEN),NEXTID(TABPTR) GET LENGTH OF NULL ITEM 41050021 AH TABPTR,HTEMP2 POINT AFTER NULL ITEM 41100021 B UDTABSCH GO TO CONTINUE SCAN 41150021 UDTBSR05 SR GREG8,GREG8 ZERO OUT WORK REGISTER 41200021 IC GREG8,UDCNT(TABPTR) GET BYTE COUNT OF USER DATA IN 41250021 * THIS ITEM 41300021 LA GREG8,UDHEAD(GREG8) GET TOTAL LENGTH OF ITEM 41350021 CLC NODISP(IDLEN,TABPTR),HTEMP DOES CESDID OF THIS ITEM 41400021 * MATCH ID IN TABLE? 41450021 BE UDMATCH IF SO, BRANCH 41500021 AR TABPTR,GREG8 UPDATE TO POINT TO NEXT ITEM 41550021 B UDTABSCH GO TO CONTINUE SEARCH LOOP 41600021 UDMATCH ST GREG8,FTEMP SAVE ITEM LENGTH 41650021 MVC NODISP(FULWD,TABPTR),FTEMP NULL ITEM WITH 2 BYTES OF 41700021 * ZEROES AND 2-BYTE COUNT 41750021 MVC NODISP(IDLEN,TABPTR),HZERO NULL THE ITEM M1602 41770021 POSTUD MVC UDID(IDLEN),HTEMP SAVE CESDID OF THIS ITEM 41800021 L GREG8,USTRLEN(PARMPTR) GET ADDR. OF DATA LENGTH 41850021 LH GREG8,NODISP(GREG8) GET LENGTH OF IDENTIFY DATA 41900021 STC GREG8,UDBTCT STORE DATA LENGTH 41950021 LA ITEMPTR,UDITEM GET ADDR. OF ITEM TO BE POSTED 42000021 LA GREG8,UDHEAD(GREG8) GET LENGTH OF ITEM 42050021 LR DATAPTR,ITEMPTR GET BEGINNING ADDR. OF ITEM 42100021 AR DATAPTR,GREG8 GET ENDING ADDR. OF ITEM 42150021 L GREG8,UDSTR(PARMPTR) GET ADDR. OF USER DATA 42200021 MVC UDATA(UDLEN),NODISP(GREG8) MOVE USER DATA 42250021 STM GREG0,GREG1,SAVR0 SAVE WORK REG. CONTENTS 42300021 TIME , GET TODAY'S DATE 42350021 ST GREG1,FTEMP SAVE DATE 42400021 MVC UDATE(DATELEN),DATESAV MOVE DATE TO ITEM 42450021 LM GREG0,GREG1,SAVR0 RESTORE WORK REG. CONTENTS 42500021 BAL TEMPRTN,POSTIDR GO TO POST THIS ITEM 42550021 LM GREG14,GREG15,SAVR14 RESTORE WORK REG. CONTENTS 42600021 L GREG8,SAVR8 RESTORE WORK REG. CONTENTS 42650021 L GREG10,SAVR10 RESTORE WORK REG. CONTENTS 42700021 ST TABNXT,IDRUDEND UPDATE POINTER TO NEXT 42750021 * AVAILABLE BYTE IN TABLE 42800021 MVI MSGBUF,BLANK PLACE BLANK IN MSG BUFFER 42850021 MVC MSGBUFF(MSGLEN),MSGBUF BLANK OUT MESSAGE LINE 42900021 L GREG14,NODISP(PARMPTR) GET ADDRESS OF CSECT NAME 42950021 MVC MSGNAME(NAMELEN),NODISP(GREG14) MOVE CSECT NAME INTO 43000021 * MESSAGE LINE 43050021 L GREG14,UDSTR(PARMPTR) GET ADDRESS OF USER DATA 43100021 MVC MSGDATA(UDLEN),NODISP(GREG14) MOVE USER DATA INTO 43150021 * MESSAGE LINE 43200021 LH GREG0,GOODIDNT GET MESSAGE CODE 43250021 ST GREG1,SAVR1 SAVE REG. 1 CONTENTS 43300021 LA GREG1,MSGBUF POINT TO MESSAGE BUFFER 43350021 OI IDRSWS,LOGIDNT TURN IDENT OPTION SWITCH FOR LOG 43400021 L ENTRYPT,ERDIG GET ADDRESS OF MESSAGE LOGGING 43450021 * ROUTINE 43500021 BALR RETURN,ENTRYPT LINK TO LOGGING ROUTINE 43550021 NI IDRSWS,LOGSOFF TURN OFF LOG SWITCH 43600021 L GREG1,SAVR1 RESTORE REG. 1 43650021 B FINISH RETURN TO CALLING ROUTINE 43700021 EJECT 43750021 ********************************************************************* 43800021 ******* THE FOLLOWING SECTION OF CODE ******* 43850021 ******* HANDLES LOAD MODULE IDR'S ******* 43900021 ******* CONTAINING USER DATA ITEMS ******* 43950021 ********************************************************************* 44000021 SPACE 1 44050021 LMODUD LA ITEMPTR,HEADLEN(BUFPTR) GET STARTING ADDR. OF 1ST ITEM 44100021 * ON THE RECORD 44150021 TM IDRSWS,PARTENT IS THIS A CONTINUATION FROM THE 44200021 * PREVIOUS RECORD? 44250021 BNO RECSCAN IF NOT, BRANCH 44300021 MVC PRTLEN(FULWD),NODISP(TABNXT) GET THE LENGTH OF THE 44350021 * PARTIAL ITEM 44400021 STM GREG8,GREG9,SAVR8 SAVE WORK REG. CONTENTS 44450021 L GREG8,PRTLEN GET PARTIAL ITEM LENGTH 44500021 BCTR GREG8,NULLREG SUBTRACT 1 FOR MOVE LENGTH 44550021 EX GREG8,CNTDMOV MOVE PARTIAL ITEM TO WORK AREA 44600021 LA GREG8,UDMAXLEN GET MAXIMUM LENGTH OF A USER 44650021 * DATA ITEM 44700021 L GREG9,PRTLEN GET LENGTH OF PARTIAL ITEM 44750021 SR GREG8,GREG9 GET LENGTH OF CONTINUED ITEM 44800021 LA ITEMPTR,UDITEM POINT TO START OF ITEM 44850021 AR GREG9,ITEMPTR GET ADDR. FOR CONTINUATION TO 44900021 * START 44950021 BCTR GREG8,NULLREG SUBTRACT 1 FOR MOVE LENGTH 45000021 EX GREG8,MOVCTN MOVE CONTINUATION OF ITEM TO 45050021 * WORK AREA 45100021 OI LCLSWS,CNTDITM TURN ON CONTINUATION SWITCH 45150021 NI IDRSWS,PARTOFF TURN OFF PARTIAL ENTRY SWITCH 45200021 LM GREG8,GREG9,SAVR8 RESTORE WORK REGISTERS 45250021 RECSCAN LA DATAPTR,UDHEAD(ITEMPTR) GET STARTING ADDR. OF DATA 45300021 TM LCLSWS,CNTDITM IS THIS A CONTINUED ITEM? 45350021 BO RCSCN040 IF SO, BRANCH 45400021 CR DATAPTR,ENDBUF IS THIS A PARTIAL ENTRY? 45450021 BH PRTLUD IF SO, BRANCH 45500021 RCSCN040 SR GREG0,GREG0 ZERO WORK REGISTER 45550021 IC GREG0,UDCNT(ITEMPTR) GET DATA BYTE COUNT 45600021 AR DATAPTR,GREG0 GET ENDING ADDR. OF ITEM 45650021 TM LCLSWS,CNTDITM IS THIS A CONTINUED ITEM? 45700021 BO RCSCN080 IF SO, BRANCH 45750021 CR DATAPTR,ENDBUF IS THIS A PARTIAL ENTRY? 45800021 BH PRTLUD IF SO, BRANCH 45850021 RCSCN080 MVC HTEMP(IDLEN),NODISP(ITEMPTR) SAVE INPUT CESDID 45900021 LH RNTPTR,HTEMP GET INPUT CESDID 45950021 SLL RNTPTR,RNTINDX GET INDEX INTO THE RNT 46000021 A RNTPTR,RECNT ADD STARTING ADDR. OF RNT 46050021 TM RNTYPE(RNTPTR),DELETE IS THIS CSECT MARKED DELETE? 46100021 BO NXTITEM IF SO, SKIP THIS ITEM 46150021 MVC NODISP(IDLEN,ITEMPTR),NODISP(RNTPTR) MOVE RENUMBERED 46200021 * CESDID TO THE ITEM 46250021 BAL TEMPRTN,POSTIDR GO TO POST THE ITEM 46300021 NXTITEM TM LCLSWS,CNTDITM WAS THIS A CONTINUED ITEM? 46350021 BNO NOTCNTD IF NOT, BRANCH 46400021 SR DATAPTR,ITEMPTR GET LENGTH OF ITEM 46450021 S DATAPTR,PRTLEN GET LENGTH OF CONTINUATION 46500021 STH DATAPTR,HTEMP SAVE LENGTH OF CONTINUATION 46550021 LA DATAPTR,HEADLEN(BUFPTR) GET STARTING ADDR. OF DATA ON 46600021 * THE RECORD 46650021 AH DATAPTR,HTEMP GET ADDR. OF 1ST ITEM ON RECORD 46700021 * AFTER CONTINUATION 46750021 NI LCLSWS,CNTDOFF TURN OFF CONTINUATION SWITCH 46800021 NOTCNTD LR ITEMPTR,DATAPTR UPDATE TO POINT TO NEXT ITEM 46850021 CR DATAPTR,ENDBUF IS THIS THE LAST ITEM ON THE 46900021 * RECORD? 46950021 BE UDFIN IF SO, BRANCH 47000021 B RECSCAN GO TO CONTINUE SCANNING RECORD 47050021 CNTDMOV MVC UDITEM(NOLEN),FULWD(TABNXT) MOVE PARTIAL ITEM SAVED IN 47100021 * TABLE TO WORK AREA 47150021 MOVCTN MVC NODISP(NOLEN,GREG9),HEADLEN(BUFPTR) MOVE CONTINUATION 47200021 * OF PARTIAL ITEM TO WORK AREA 47250021 PRTLMOV MVC UDITEM(NOLEN),NODISP(ITEMPTR) MOVE PARTIAL USER DATA 47300021 * ITEM TO WORK AREA 47350021 SPACE 3 47400021 ********************************************************************* 47450021 ******* THE FOLLOWING SECTION OF CODE ******* 47500021 ******* HANDLES USER DATA IDR ITEMS ******* 47550021 ******* THAT ARE INCOMPLETE ON THE ******* 47600021 ******* RECORD CURRENTLY BEING PROCESSED ******* 47650021 ********************************************************************* 47700021 SPACE 1 47750021 PRTLUD OI IDRSWS,PARTENT TURN ON PARTIAL ENTRY SWITCH 47800021 LR GREG11,ENDBUF GET ENDING ADDR. OF PARTIAL ITEM 47850021 SR GREG11,ITEMPTR GET LENGTH OF PARTIAL ITEM 47900021 ST GREG11,PRTLEN SAVE LENGTH OF PARTIAL ITEM 47950021 BCTR GREG11,NULLREG SUBTRACT 1 FROM LENGTH FOR 48000021 * ZERO-ORIENTED MOVE LENGTH 48050021 EX GREG11,PRTLMOV MOVE PARTIAL ITEM TO WORK AREA 48100021 LA ITEMPTR,SAVPTLUD GET ADDRESS OF PARTIAL ITEM 48150021 L DATAPTR,PRTLEN GET LENGTH OF PARTIAL ITEM 48200021 LA DATAPTR,FULWD(ITEMPTR,DATAPTR) ADD LENGTH OF ITEM BYTE 48250021 * COUNT AND STARTING ADDRESS OF 48300021 * ITEM TO GET ENDING ADDRESS 48350021 BAL TEMPRTN,POSTIDR POST PARTIAL ITEM 48400021 L TABNXT,PARTBEG RESTORE ADDRESS OF NEXT BYTE IN 48450021 * TABLE TO START OF PARTIAL ENTRY 48500021 UDFIN ST TABNXT,IDRUDEND UPDATE POINTER TO NEXT 48550021 * AVAILABLE BYTE IN TABLE 48600021 B FINISH RETURN TO CALLING ROUTINE 48650021 BADIDENT EQU * LOG ERR. FOR NO SUCH CSECT FOUND 48700021 MVI MSGBUF,BLANK PLACE BLANK IN MSG BUFFER 48750021 MVC MSGBUFF(MSGLEN),MSGBUF BLANK OUT MESSAGE LINE 48800021 MVC MSGNAME(NAMELEN),NODISP(GREG10) MOVE CSECT NAME INTO 48850021 * MESSAGE LINE 48900021 L GREG10,UDSTR(PARMPTR) GET ADDRESS OF USER DATA 48950021 MVC MSGDATA(UDLEN),NODISP(GREG10) MOVE USER DATA INTO 49000021 * MESSAGE LINE 49050021 LH GREG0,BADIDNT GET MESSAGE CODE 49100021 ST GREG1,SAVR1 SAVE REG. 1 CONTENTS 49150021 LA GREG1,MSGBUF POINT TO MESSAGE BUFFER 49200021 OI IDRSWS,LOGIDNT TURN ON OPTION TO LOG A CARD 49250021 * NOT IN THE SYSTEM BUFFER 49300021 L ENTRYPT,ERDIG GET ADDRESS OF MESSAGE LOGGING 49350021 * ROUTINE 49400021 BALR RETURN,ENTRYPT LINK TO LOGGING ROUTINE 49450021 NI IDRSWS,LOGSOFF TURN OFF LOG OPTION SWITCH 49500021 L GREG1,SAVR1 RESTORE REG. 1 49550021 B FINISH RETURN 49600021 EJECT 49650021 *********************************************************************** 49700021 *********************************************************************** 49750021 **** **** 49800021 **** SUB-PROGRAM IDRSPZAP PROCESSES INPUT LOAD MODULE IDR'S **** 49850021 **** WITH DATA ENTERED BY THE SERVICE AID PROGRAM IMASPZAP **** 49900021 **** **** 49950021 *********************************************************************** 50000021 *********************************************************************** 50050021 SPACE 2 50100021 IDRSPZAP L TABPTR,IDRZPTAB GET ADDRESS OF IMASPZAP DATA 50150021 * TABLE 50200021 L TABNXT,IDRZPEND GET ADDRESS OF NEXT AVAILABLE 50250021 * BYTE IN TABLE 50300021 LR TABEND,TABPTR GET STARTING ADDRESS OF TABLE 50350021 AH TABEND,IDRZPLEN GET ENDING ADDRESS OF TABLE 50400021 SR GREG11,GREG11 ZERO WORK REGISTER 50450021 NI HEADLEN(BUFPTR),ZCHNOFF TURN OFF THE CHAIN BIT IN THE 50500021 * IMASPZAP COUNT FIELD 50550021 IC GREG11,HEADLEN(BUFPTR) GET COUNT OF IMASPZAP ENTRIES 50600021 LTR GREG11,GREG11 TEST THE ENTRY COUNT 50650021 BZ FINISH IF THERE ARE NO ENTRIES ON THIS 50700021 * RECORD, RETURN 50750021 L RNTPTR,RECNT GET ADDRESS OF THE RNT - 4 50800021 LA ITEMPTR,FULWD(BUFPTR) GET ADDRESS OF 1ST ENTRY ON REC. 50850021 ZAPLOOP LA DATAPTR,ZAPLEN(ITEMPTR) GET ENDING ADDRESS OF THIS ENTRY 50900021 MVC HTEMP(IDLEN),NODISP(ITEMPTR) SAVE THE CESDID OF THE 50950021 * ENTRY 51000021 LH GREG15,HTEMP GET THE CESDID 51050021 SLL GREG15,RNTINDX MULTIFLY THE ID BY 4 TO GET AN 51100021 * INDEX INTO THE RNT 51150021 AR GREG15,RNTPTR ADD THE ADDRESS OF THE RNT-4 51200021 TM RNTYPE(GREG15),DELETE IS THIS CSECT MARKED DELETE? 51250021 BO DELZAP IF SO, BRANCH 51300021 MVC NODISP(IDLEN,ITEMPTR),NODISP(GREG15) MOVE THE 51350021 * RENUMBERED CESDID INTO THE ENTRY 51400021 BAL TEMPRTN,POSTIDR GO TO POST THE ENTRY 51450021 DELZAP LR ITEMPTR,DATAPTR POINT TO THE NEXT ENTRY 51500021 BCT GREG11,ZAPLOOP GO TO CONTINUE PROCESSING 51550021 * CONSECUTIVE ENTRIES UNTIL 51600021 * THE COUNT IS EXHAUSTED 51650021 ST TABNXT,IDRZPEND UPDATE POINTER TO NEXT 51700021 * AVAILABLE BYTE IN TABLE 51750021 B FINISH RETURN TO CALLING ROUTINE 51800021 EJECT 51850021 *********************************************************************** 51900021 *********************************************************************** 51950021 **** **** 52000021 **** SUB-PROGRAM POSTIDR ADDS INPUT IDR DATA TO ONE OF THE **** 52050021 **** THREE IDR DATA TABLES: 1) IDRTRTAB -- TRANSLATOR DATA **** 52100021 **** 2) IDRZPTAB -- IMASPZAP DATA **** 52150021 **** 3) IDRUDTAB -- USER DATA **** 52200021 **** **** 52250021 *********************************************************************** 52300021 *********************************************************************** 52350021 SPACE 2 52400021 POSTIDR TM IDRSWS,PARTENT IS THIS ITEM A PARTIAL ENTRY? 52450021 BNO NOTPART IF NOT, BRANCH 52500021 ST TABNXT,PARTBEG SAVE STARTING ADDR. OF PARTIAL 52550021 * ENTRY IN TABLE 52600021 NOTPART ST GREG8,SAVR8 SAVE WORK REG. CONTENTS 52650021 LR GREG8,DATAPTR GET ENDING ADDR. OF ITEM 52700021 SR GREG8,ITEMPTR GET LENGTH OF ITEM 52750021 AR GREG8,TABNXT ADD NEXT TABLE ADDR. 52800021 CR GREG8,TABEND COMPARE TO END OF TABLE 52850021 BH TABOVFLO IF HIGH, IT IS AN ERROR 52900021 * -- GO TO LOG AND TERMINATE 52950021 SR GREG8,TABNXT GET ITEM LENGTH AGAIN 53000021 ST GREG8,FTEMP SAVE LENGTH OF ENTRY 53050021 BCTR GREG8,NULLREG SUBTRACT 1 FOR MOVE LENGTH 53100021 EX GREG8,MOVEIDR MOVE THE PARTIAL ENTRY TO THE 53150021 * NEXT POSITION IN THE TABLE 53200021 L GREG8,FTEMP RESTORE CORRECT ENTRY LENGTH 53250021 AR TABNXT,GREG8 UPDATE POINTER TO NEXT AVAILABLE 53300021 * BYTE IN TABLE 53350021 L GREG8,SAVR8 RESTORE WORK REG. CONTENTS 53400021 BR TEMPRTN RETURN TO PROCESSOR 53450021 MOVEIDR MVC NODISP(NOLEN,TABNXT),NODISP(ITEMPTR) MOVE IDR ITEM TO 53500021 * THE NEXT AVAILABLE POSITION IN 53550021 * THE TABLE 53600021 TABOVFLO EQU * LOG OVERFLO MSG & TERMINATE 53650021 LH GREG0,OVFLMSG GET OVERFLOW MESSAGE CODE 53700021 L ENTRYPT,ERDIG GET ADDRESS OF ERROR LOGGING 53750021 * ROUTINE 53800021 BR ENTRYPT GO TO LOG ROUTINE 53850021 * THIS IS A TERMINAL ERROR -- THE LOG ROUTINE WILL 53900021 * PASS CONTROL TO IEWLMFNL TO PRINT THE MESSAGE 53950021 * AND TERMINATE LINKAGE EDITOR PROCESSING 54000021 TITLE '***IEWLMIDR*** IDENTIFY CONTROL CARD PROCESSOR' 54050021 *********************************************************************** 54100021 * * 54150021 * ************************************ * 54200021 * * SECONDARY ENTRY POINT --IEWLCIDR-- * * 54250021 * ************************************ * 54300021 * * 54350021 * CONTROL IS RECEIVED AT THIS POINT FROM MODULE IEWLMSCN * 54400021 * FOR THE PURPOSE OF ACCEPTING IDR DATA SUPPLIED BY THE * 54450021 * USER AND PASSED TO THE LINKAGE EDITOR BY MEANS OF THE * 54500021 * IDENTIFY CONTROL STATEMENT. * 54550021 * * 54600021 *********************************************************************** 54650021 SPACE 2 54700021 IEWLCIDR SAVE (14,12),T,* SAVE CALLING PROGRAM'S REGISTERS 54750021 L IDRBASE,ADDISP(ENTRYPT) LOAD BASE ADDRESS FOR MODULE 54800021 B CSTART BRANCH AROUND ADRESS CONSTANT 54850021 STARTAD DC A(START) ADDR OF 1ST INSTR FOR MOD BASE 54900021 ADDISP EQU STARTAD-IEWLCIDR DISPLACEMENT BEYOND ENTRY POINT 54950021 * TO OPTAIN BASE ADDRESS FOR THE 55000021 * MODULE WHEN ENTERED HERE 55050021 CSTART OI IDRSWS,USEIDR TURN ON IDENTIFY CONTROL CARD 55100021 * INDICATOR 55150021 B IDRIDENT GO TO PROCESS THE DATA ON THE 55200021 * IDENTIFY CARD 55250021 FINISH NI IDRSWS,SWSINIT RE-INITIALIZE IDR SWITCHES 55300021 MVI LCLSWS,SWSOFF RE-INITIALIZE ALL LOCAL 55350021 * SWITCHES TO ZEROES 55400021 RETURN (14,12),T,RC=0 RESTORE REGISTERS AND RETURN 55450021 ABORT LH GREG0,INTERR GET MESSAGE CODE FOR ERROR 55500021 * IN IDR INPUT 55550021 L ENTRYPT,ERDIG GET ADDRESS OF LOG ROUTINE 55600021 BR ENTRYPT GO TO LOG THE ERROR 55650021 * -- THIS IS A TERMINAL 55700021 * ERROR CONDITION 55750021 * -- THE LOG ROUTINE 55800021 * WILL NOT RETURN 55850021 TITLE '***IEWLMIDR*** CSECT IDENTIFICATION RECORD PROCESSOR' 55900021 *********************************************************************** 55950021 * * 56000021 * DEFINED STORAGE AND CONSTANTS * 56050021 * * 56100021 *********************************************************************** 56150021 SPACE 2 56200021 SAVR0 DS 1F GENERAL PURPOSE REG SAVE AREA 56250021 SAVR1 DS 1F GENERAL PURPOSE REG SAVE AREA 56300021 SAVR8 DS 1F GENERAL PURPOSE REG SAVE AREA 56350021 SAVR9 DS 1F GENERAL PURPOSE REG SAVE AREA 56400021 SAVR10 DS 1F GENERAL PURPOSE REG SAVE AREA 56450021 SAVR11 DS 1F GENERAL PURPOSE REG SAVE AREA 56500021 SAVR13 DS 1F GENERAL PURPOSE REG SAVE AREA 56550021 SAVR14 DS 1F GENERAL PURPOSE REG SAVE AREA 56600021 SAVR15 DS 1F GENERAL PURPOSE REG SAVE AREA 56650021 FTEMP DS 1F FULLWORD TEMPORARY SAVE AREA 56700021 DATESAV EQU FTEMP+1 START OF PACKED DECIMAL DATE 56750021 * RETURNED BY TIME MACRO 56800021 PARTBEG DS 1F SAVE AREA FOR STARTING ADDR. OF 56850021 * A PARTIAL ITEM IN AN IDR TABLE 56900021 SAVPTLUD DS 0F SAVE AREA FOR A PARTIAL USER 56950021 * DATA ITEM 57000021 PRTLEN DS 1F LENGTH OF THE PARTIAL ITEM 57050021 UDITEM EQU * WORKING COPY OF A USER DATA ITEM 57100021 UDID DS XL2 CESDID 57150021 UDATE DS XL3 TODAY'S DATE 57200021 UDBTCT DS XL1 BYTE COUNT OF USER DATA 57250021 UDATA DS XL40 USER DATA 57300021 HTEMP DS 1H HALFWORD TEMPORARY FOR CESDID 57350021 HTEMP2 DS 1H HALFWORD TEMPORARY WORK AREA 57400021 IDTEMP DS 0H WORK AREA FOR A CONTINUED CESDID 57450021 ID1ST DS XL1 1ST HALF OF THE CESDID 57500021 ID2ND DS XL1 2ND HALF OF THE CESDID 57550021 CNTDLEN DS 1H SAVE AREA FOR THE LENGTH OF A 57600021 * CONTINUATION OF A TRANSLATOR 57650021 * DESCRIPTION 57700021 SAVPTLTR DS 0F SAVE AREA FOR A PARTIAL 57750021 * TRANSLATOR ITEM 57800021 PTLSWCH DS XL1 INDICATOR FOR TYPE OF PARTIAL 57850021 * ITEM (BINARY VALUE): 57900021 * 4 = HALF OF A CESDID FOLLOWS 57950021 * 8 = A PARTIAL TRANSLATOR 58000021 * DESCRIPTION FOLLOWS 58050021 * 12 = NO DATA FOLLOWS (ITEM WAS 58100021 * BROKEN AFTER A COMPLETE 58150021 * CESDID) 58200021 CPYLCLS DS XL1 COPY OF LCLSWS REFLECTING 58250021 * CURRENT STATUS OF PROCESSING 58300021 * FOR THIS ITEM 58350021 PTLTRLN DS XL1 LENGTH OF PARTIAL DESCRIPTION 58400021 * WHICH FOLLOWS (IF PTLSWCH=8) 58450021 XPTRLEN DS XL1 EXPECTED LENGTH OF DESCRIPTION 58500021 * (IF PTLSWCH=8) 58550021 HIDSAV EQU XPTRLEN 1ST HALF OF THE CESDID BEING 58600021 * PROCESSED (IF PTLSWCH=4) 58650021 OBJTRN DS 0CL31 IDR TRANSLATOR DATA FIELD ON AN 58700021 * OBJECT MODULE END RECORD 58750021 INDCTR DS XL1 INDICATOR 58800021 * BLANK = NO IDR DATA 58850021 * EBCDIC 1 = ONE TRANSLATOR 58900021 * DESCRIPTION 58950021 * EBCDIC 2 = TWO TRANSLATOR 59000021 * DESCRIPTIONS 59050021 TRNAME DS CL10 TRANSLATOR NAME 59100021 VVMM DS XL2 VERSION/MODIFICATION LEVEL OF 59150021 * TRANSLATOR 59200021 YYDDD DS XL3 DATE OF TRANSLATION 59250021 TRNAME2 DS CL10 2ND TRANSLATOR NAME 59300021 VVMM2 DS XL2 VERSION/MODIFICATION LEVEL OF 59350021 * 2ND TRANSLATOR 59400021 YYDDD2 DS XL3 DATE OF 2ND TRANSLATION 59450021 MSGBUF DS CL80 BUFFER FOR BUILDING DIAGNOSTIC 59500021 * MESSAGES TO BE PASSED TO THE 59550021 * LOGGING ROUTINE 59600021 MSGBUFF EQU MSGBUF+1 FOR INITIALIZING THE BUFFER 59650021 MSGNAME EQU MSGBUF+10 FOR A CSECT NAME 59700021 MSGDATA EQU MSGBUF+30 FOR USER DATA FROM AN IDENTIFY 59750021 * CONTROL STATEMENT 59800021 HZERO DS 0H HALFWORD OF F'S TO TEST M1602 59830021 DC X'FFFF' FOR NULL ITEMS M1602 59860021 * NULL ITEMS 59900021 DS 0H HALF-WORD ALIGNMENT 59950021 GOODIDNT DC X'1043' MESSAGE INDICATING IDENTIFY 60000021 * HAS BEEN ADDED 60050021 BADIDNT DC X'1244' MESSAGE INDICATING CSECT NAME 60100021 * ON AN IDENTIFY CARD CANNOT BE 60150021 * FOUND IN THE CESD 60200021 OVFLMSG DC X'0445' ERROR MESSAGE CODE FOR IDR 60250021 * TABLE OVERFLOW -- TERMINAL ERROR 60300021 INTERR DC X'0446' ERROR MESSAGE CODE FOR INVALID 60350021 * IDR INPUT -- TERMINAL ERROR 60400021 EJECT 60450021 LCLSWS DC X'00' LOCAL SWITCHES ***************** 60500021 * *********************************************************** * 60550021 * * BIT DESCRIPTIONS * * 60600021 * *********************************************************** * 60650021 * * SYMBOLIC * * * MEANING OF BIT WHEN * * 60700021 * * NAME OF * BIT * MASK * TURNED ON * * 60750021 * * MASK * * * (VALUE = 1) * * 60800021 * *********************************************************** * 60850021 * * * * * THE LAST ID IN A STRING * * 60900021 * * LSTIDFND * 0 * X'80' * OF CESDID'S HAS BEEN * * 60950021 * * * * * FOUND * * 61000021 * *********************************************************** * 61050021 * * * * * AT LEAST ONE CESDID IN * * 61100021 * * AL1VLD * 1 * X'40' * A STRING IS VALID (NOT * * 61150021 * * * * * MARKED DELETE) * * 61200021 * *********************************************************** * 61250021 * * * * * THE IDR ITEM BEING * * 61300021 * * CNTDITM * 2 * X'20' * PROCESSED IS CONTINUED * * 61350021 * * * * * FROM THE PREVIOUS IDR * * 61400021 * *********************************************************** * 61450021 * * * * * A CESDID IN A STRING OF * * 61500021 * * CNTDID * 3 * X'10' * CESDID'S, CONTINUED * * 61550021 * * * * * FROM A PREVIOUS TRANS. * * 61600021 * * * * * IDR IS BEING PROCESSED * * 61650021 * *********************************************************** * 61700021 * * N/A * 4 * X'08' * RESERVED * * 61750021 * *********************************************************** * 61800021 * * N/A * 5 * X'04' * RESERVED * * 61850021 * *********************************************************** * 61900021 * * N/A * 6 * X'02' * RESERVED * * 61950021 * *********************************************************** * 62000021 * * N/A * 7 * X'01' * RESERVED * * 62050021 * *********************************************************** * 62100021 ************* NOTE--INITIAL VALUE OF ALL BITS IS ZERO ***************** 62150021 EJECT 62200021 *********************************************************************** 62250021 * * 62300021 * MODULE MAINTENANCE AREA * 62350021 * 160 BYTES ALIGNED ON A DOUBLE WORD BOUNDARY * 62400021 * (APPROXIMATELY 8% OF MODULE SIZE) * 62450021 * * 62500021 *********************************************************************** 62550021 SPACE 62600021 DS 0D DOUBLE WORD ALIGNMENT 62650021 DC CL32'IEWLMIDR MAINTENANCE AREA BEGINS' AREA IDENTIFIER 62700021 DC 160X'00' MAINTAINENCE SPACE 62750021 DC CL21'MAINTENANCE AREA ENDS' END OF AREA IDENTIFIER 62800021 SPACE 62850021 IEWAPT 62900021 END 62950021 ./ ADD SSI=21310040,NAME=IEWLMINC,SOURCE=0 TITLE 'INCLUDE PROCESSOR AND AUTOMATIC LIBRARY CALL PROC.' 00100000 * 00200000 *STATUS: CHANGE LEVEL 000 00300000 * 00400000 *FUNCTION/OPERATION: 00500000 * 1-THE INCLUDE PROCESSOR INCLUDES INTO THE CURRENT INPUT A DATA SET 00600000 * THAT HAS BEEN REQUESTED BY AN INCLUDE STATEMENT. TO DO THIS,IT 00700000 * TAKES THE FIRST ITEM OF THE INCLUDE CHAIN AND MAKES IT READY TO BE 00800000 * READ BY THE INPUT PROCESSOR. THIS ITEM CAN INDICATE A SEQUENTIAL 00900000 * DATA SET OR A PARTITIONED DATA SET . 01000000 * 1-A- IF IT INDICATES A SEQUENTIAL DATA SET, THE ITEM CONTAINS 01100000 * THE DDNAME, ON WHICH 'OPEN' IS PERFORMED. 01200000 * THE DATA SET IS THEN READY TO BE READ BY THE INPUT PRO- 01300000 * -CESSOR 01400000 * 1-B- IF IT INDICATES A PARTITIONED DATA SET , THE ITEM CON- 01500000 * -TAINS THE MEMBER NAME AND A POINTER TO THE DDNAME. 01600000 * 'OPEN' IS PERFORMED ON THE DDNAME. 'BLDL' IS PERFORMED 01700000 * ON THE MEMBERNAME. 'FIND' POSITIONS TO BEGINNING OF MEM- 01800000 * -BER 01900000 * THE INCLUDE PROCESSOR KNOWS AFTER 'OPEN' WHAT DATA SET IS COMING, 02000000 * BY LOOKING AT THE FIELD 'RECFM' (RECORD FORMAT). THIS DCB FIELD 02100000 * IS ZEROED BEFORE EACH OPEN ,AND RECEIVES WHAT HAS BEEN SPECIFIED 02200000 * IN THE DCB FIELD OF THE DDCARD (OR WHAT WAS IN THE DSCB, IF APPLI- 02300000 * -CABLE) 02400000 * 2-THE AUTOMATIC LIBRARY CALL PROCESSOR (IEWLCAUT), TRY TO RESOLVE 02500000 * THE EXTERNAL REFERENCES IN THE CESD ,WHICH ARE STILL UNRESOLVED AT 02600000 * THE END OF THE PRIMARY INPUT STREAM. IT CALLS FROM PARTITIONED 02700000 * DATA SETS,MEMBERS WHOSE NAMES ARE THE EXTERNAL REFERENCES IN THE 02800000 * CESD. 02900000 * IT BEGINS BY THE EXTERNAL REFERENCES WHOSE CALLS HAVE BEEN 03000000 * GUIDED (BY MEANS OF A LIBRARY CARD)TOWARDS A SPECIFIED DATA SET. 03100000 * THESE CALLS ARE MADE DATA SET BY DATA SET, ALL THE CALLS INSIDE 03200000 * A SINGLE DATA SET BEING MADE CONSECUTIVELY. 03300000 * IT CONTINUES WITH THE EXTERNAL REFERENCES NOT GUIDED BY 03400000 * LIBRARY CARDS ; IT SEARCHES FOR THESE NAMES ON THE STANDARD LIBRA- 03500000 * -RY WHOSE NAME IS IN THE ALL PURPOSE TABLE . THE STANDARD LIBRARY 03600000 * DSNAME IS 'SYSLIB' WHEN THE LINKAGE EDITOR GETS CONTROL FROM THE 03700000 * TASK SCHEDULER ; IT IS THE FOURTH ITEM IN THE PARAMETER LIST WHEN 03800000 * THE LINKAGE EDITOR IS 'LINKED TO' 03900000 * 04000000 *ENTRY POINTS: 04100000 * IEWLMINC FOR THE INCLUDE PROCESSOR * 04200000 * IEWLCAUT FOR THE AUTOMATIC LIBRARY CALL PROCESSOR 04300000 * 04400000 * CALLING SEQ. L 15,=V(IEWLMINC) * 04500000 * BALR 14,15 04600000 * L 15,=V(IEWLCAUT) 04700000 * BALR 14,15 04800000 * NO DATA IS PASSED DIRECTLY UPON CALLING,BUT IS FOUND IN OR BY 04900000 * MEANS OF THE ALL PURPOSE TABLE WHOSE ADDRESS IS CONSTANTLY IN 05000000 * REGISTER 2 05100000 * 05200000 *INPUT: 1-ALL PURPOSE TABLE 05300000 * 2-ITEMS IN THE CESD: 05400000 *********************************************************************** 05500000 *BYTES 0-7*BYT 8*BYT 9*BYT 10-11*BYT 13*BYT 14-15* DESIGNATION * 05600000 * SYMBOL *TYPE * * *SUBTYP* * * 05700000 *********************************************************************** 05800000 *MEMBER- *X'02'* CHAIN ADDRESS *X'D0' * POINTER *CONTROL INCLUDE * 05900000 *NAME * * * * TO DDNAM*WITH PTER * 06000000 *********************************************************************** 06100000 *DDNAME *X'02'* CHAIN ADDRESS *X'C0' * *CONTROL INCLUDE * 06200000 * * * * * *WITHOUT PTER * 06300000 *********************************************************************** 06400000 *DDNAME *X'02'* *X'B0' * PTER,IF * DDNAME ITEM * 06500000 * * * * * FOR LIB.* * 06600000 *********************************************************************** 06700000 *MBER NAME*X'02'* *REVRS CH-*X'02' *DIRECT CH* UNMATCHED LIBRARY * 06800000 * * * *AIN PTER * *AIN PTER * MEMBER * 06900000 *********************************************************************** 07000000 *MBER NAME*X'02'* *REVERSE *X'03' *DCT CHAIN* MATCHED LIBRARY * 07100000 * * * *CH. PTER * *PTER * MEMBER * 07200000 *********************************************************************** 07300000 *SYMBOL *X'02'* *X'04' * * NO CALL,UNMATCHED * 07400000 *********************************************************************** 07500000 *SYMBOL *X'02'* *X'05' * * NO CALL,MATCHED * 07600000 *********************************************************************** 07700000 *SYMBOL *X'02'* *X'06' * * NEVER CALL * 07800000 *********************************************************************** 07900000 * 08000000 * 3-THE INFORMATION SLOT BY OPEN IN OUR LIBRARY DCB (IEWLKLDB) 08100000 * 4-THE DIRECTORY ENTRIES OF THE MEMBERS ON WHICH WE BLDL 08200000 * 08300000 *OUTPUT: 08400000 * FLAGS IN THE ALL PURPOSE TABLE 08500000 * 08600000 *EXTERNALS ROUTINES 08700000 * IEWLMLOG ERROR ROUTINE * 08800000 * IEWLMADA ADDRESS ASSIGNMENT * 08900000 * IEWLMINP INPUT PROCESSOR * 09000000 * IEWLMEND END PROCESSOR A33452 09050020 * 09100000 *EXITS-NORMAL: 09200000 * 1- RETURN TO THE CALLER EXCEPT IN CASE 2- 09300000 * 2- WHEN IEWLCAUT (AUTOMATIC LIBRARY CALL)IS CALLED AND NO 09400000 * EXTERNAL REFERENCE CORRESPONDING TO AN AVAILABLE MEMBER 09500000 * CAN BE FOUND, CONTROL IS PASSED TO IEWLKADA (ADDRESS) 09600000 * ASSIGNMENT) 09700000 * -ERROR: 09800000 *********************************************************************** 09900000 *ERR CODE* OTHER PARAMS * CONDITION CAUSING ERROR * 10000000 *IN REG0 * * * 10100000 *********************************************************************** 10200000 *X'222B' *LIB. DDNNAME * OPEN UNSUCCESSFUL ON SPECIFIED LIBRARY * 10300000 * *ADDR. IN R1 * * 10400000 *********************************************************************** 10500000 *X'3222' *MBR.NAM IN R13* MEMBER NOT FOUND ON LIBRARY * 10600000 * *LIB.NAM IN R1 * * 10700000 *********************************************************************** 10800000 *X'2235' *LIB.NAM IN R1 * OBJECT MODULE BUFFER'S SIZE EXCEEDED * 10900000 *********************************************************************** 11000000 *X'2233' *LIB.NAM IN R1 * INCL.CRD.INDICATES OBJECT MODULE BUT RECFM=U* 11100000 *********************************************************************** 11200000 *X'2234' *LIB.NAM IN R1 * DATA SET CONTAINS UNACCEPTABLE RECFM (I.E. * 11300000 * * * OTHER THAN F OR U * 11400000 *********************************************************************** 11500000 *X'321B' *LIB.NAM IN R1 * LOAD MODULE CANNOT BE PROCESSED BY MODEL E * 11600000 * *MBRNAME IN R13* LINK.EDITOR ('DOWNARD UNCOMPATIBILITY') * 11700000 *********************************************************************** 11800000 * 11900000 *TABLES/WORK AREAS: 12000000 * CESD,APT, PREVIOUSLY MENTIONED 12100000 *ATTRIBUTES 12200000 * IEWLCINC IS IN A SEGMENT OF AN OVERLAY STRUCTURE 12300000 * AS DESCRIBED HERE (TABLES CONSIDERED AS INPUT) IT IS 12400000 * REUSABLE 12500000 * 12600000 *NOTES IEWLMINC CONTAINS THE MACROS CVT,DCBD,DCB,OPEN, 12700000 * BLDL,FIND,CLOSE 12800000 ******************** 12900000 IEWLMINC CSECT 13000000 * 158050-158070 A21340 13030000 * 449700 A28317 13060000 ERR7LTL EQU X'222B' ERR OPEN FAILED ON SPECIFIED LIBRARY 13100000 ERR8LTL EQU X'3222' ERR. MEMBER NOT FOUND ON SPECIFIED LIBRARY 13200000 ERR9LTL EQU X'2235' ERR SYSLIN BUFF SIZE EXCEEDED 13300000 ERR11LTL EQU X'2233' L.E. CRD SYNTAX CONFLICTS WITH RECFM OF LIB 13400000 ERR12LTL EQU X'2234' SPECIFIED DATA SET CONTAINS NON ACCEPTABLE RCFM 13500000 ERR13LTL EQU X'321B' ERROR:'MODULE FROM SPECIFIED LIBRARY CANNOT 13600000 * BE PROCESSED BY LEVEL E LINKAGE EDITOR' 13700000 * MEMBER NAME AND DDNAME PRINTED 13800000 BLDSIZ EQU 26 SIZE OF ENTRY IN BLDL LIST 13850000 APT EQU 2 13900000 EXTRN IEWLCEOD 14000000 EXTRN IEWLCRO1 14100000 USING APTDSECT,APT 14200000 USING BLDLMBRN,6 14250000 USING IHADCB,07 14300000 ST 12,8(15) SAVE BASE OF CALLER 14500000 BC 15,12(15) 14600000 DC XL4'00000000' 14700000 BALR 12,0 14800000 USING *,12 14900000 BC 15,MODID+6 BRANCH AROUND MODULE IDENT 14930000 MODID DC C'03MINC' 14960000 INCLU050 STM 13,11,SAVAREA SAVE OTHER REGISTERS OF CALLER 15000000 L 07,SYSLIBAD ADDR OF LIB DCB 15100000 NI IND3,X'DF' RESET 'AUTO LIB ' TO OFF 15200000 ********** 15300000 * 15400000 * CHOOSE IN THE INCLUDE CHAIN THE FIRST ITEM TO BE INCLUDED 15500000 * 15600000 * 15700000 INCLU100 L 09,CRRTINCL INITIATE THE INCLUDE CHAIN BREA- 15800000 TM APT2,X'08' HAS INCLUDE BEEN INITIATED 15801000 BC 8,INCLU115 NO 15802000 TM IND3,X'10' IS SINGLE BLDL MODE IN OPERATION 15803000 BC 1,INCLU115 YES 15804000 INCLU110 TM IND3,X'08' WAS BLDL DONE ON LIST 15809000 BC 1,GETNEXT1 15810000 INCLU115 OI APT2,X'08' SET INCLUDE PREVIOUSLY INITIATED 15811000 CLI 13(9),X'D0' IS THIS LINE INCL WITH POINTER 15812000 BC 8,INCLU160 YES 15813000 OI IND3,X'80' SET PHSICAL SEQUENTIAL ON 15814000 LR 8,9 15815000 BAL 14,LIBOP TO OPEN LIBRARY 15816000 BAL 14,NULLINE TO NULL LINE 15817000 ST 9,CRRTINCL UPDATE CRRTINCL 15818000 ST 9,INCBRKPT AND BREAK POINT 15819000 BC 15,INCLU155 TOWARDS INPUT 15820000 INCLU160 NI IND3,X'7F' TURN OFF PHYSICAL SEQUENTIAL IND 15821000 TM IND3,X'10' CHECK FOR SINGLE BLDL MODE 15822000 BC 8,INCLU168 NO 15823000 LA 6,SINGBLDL ADDRESS OF SINGLE BLDL LIST 15824000 BC 15,INCLU250 15825000 INCLU168 MVC PTRSAV(2),14(9) SAVE DDNAME POINTER 15826000 INCLU170 CLI NUMENT+1,X'00' FIRST ENTRY IN LIST 15827000 BC 7,INCLU172 NO 15828000 L 6,TABLSTRT YES--GET START OF TABLE 15829000 SH 6,ENTSIZ MAKE IT ONE ENTRY PRIOR 15830000 BC 15,INCLU180 15831000 INCLU172 LH 6,NUMENT NUMBER OF ENTRIES 15832000 MH 6,ENTSIZ TIMES ENTRY SIZE 15833000 A 6,TABLSTRT ADD START OF TABLE 15834000 INCLU171 SH 6,ENTSIZ GO TO PREVIOUS ENTRY 15835000 CLC 0(8,6),0(9) COMPARE NEW ENTRY TO PREVIOUS 15836000 BC 8,INCLU182 IF EQUAL IGNORE IT 15837000 BC 4,INCLU180 IS HIGH PUT IT IN TABLE 15838000 MVC BLDSIZ(10,6),0(6) IF LOW MOVE PREVIOUS ENTRY DOWN 15839000 C 6,TABLSTRT CHECK IF END OF TABLE 15840000 BC 7,INCLU171 NO 15841000 SH 6,ENTSIZ TO MOVE INTO FIRST ENTRY 15842000 INCLU180 MVC BLDSIZ(8,6),0(9) MOVE NAME TO LIST 15843000 LH 5,NUMENT CURRENT ENTRY NUMBER 15844000 LA 5,1(0,5) UPDATE BY ONE 15845000 STH 5,NUMENT SAVE NEW NUMBER 15846000 STH 5,BLDSIZ+8(0,6) IS ALSO SEQUENCE NUMBER 15847000 TM IND3,X'20' IS ENTRY FROM AUTOCALL 15848000 BC 8,INCLU182 NO--LEAVE SEQUENCE NUMBER IN 15849000 S 9,CHESD YES--SAVE ID INSTEAD 15850000 SRL 9,4 15851000 STH 9,BLDSIZ+8(0,6) 15852000 INCLU182 TM IND3,X'20' IS ENTRY FROM AUTOCALL 15853000 BC 1,TESTMAX YES--BYPASS NULL,CHAIN CHECK 15854000 BAL 14,NULLINE GO NULL THE LINE 15855000 LTR 9,9 IS THIS END OF CHAIN 15856000 BC 8,INCLU185 YES 15857000 TESTMAX CH 5,MAXENTRY IS TABLE FULL 15858000 BC 8,INCLU185 YES 15859000 TM IND3,X'20' IS ENTRY FROM AUTOCALL 15860000 BCR 1,14 YES--RETURN TO AUTOCALL 15861000 CLI 13(9),X'D0' IS NEXT ITEM INCLUE WITH PTR 15862000 BC 7,INCLU185 NO 15863000 LH 5,14(9) YES--IS IT SAME POINTER 15864000 CH 5,PTRSAV 15865000 BC 8,INCLU172 YES 15866000 INCLU185 TM IND3,X'20' IS AUTO LIB IN OPERATION 15867000 BC 1,INCLU186 YES 15868000 ST 9,CRRTINCL UPDATE CRRTINCL 15869000 ST 9,INCBRKPT AND BREAK POINT 15870000 LH 8,PTRSAV DDNAME POINTER 15871000 SLL 8,4 TIMES SIXTEEN 15872000 A 8,CHESD PLUS CESD ADDRESS 15873000 INCLU186 LH 5,NUMENT MOVE SEQUENCE NUMBERS TO APPEND 15874000 LA 10,APPEND 15875000 LA 6,BLDLLST 15876000 MOVESEQ MVC 0(2,10),8(6) 15877000 LA 10,2(0,10) UPDATE POINTERS 15878000 LA 6,BLDSIZ(0,6) 15879000 BCT 5,MOVESEQ LOOP 15880000 INCLU175 BAL 14,LIBOP TO OPEN LIBRARY 15881000 TM IND3,X'40' ANY OPEN ERROR 15882000 BC 8,BUILDLST NO--DO BLDL 15883000 BC 15,GETNEXT5 YES 15884000 BUILDLST LA 13,REGSA ADDRESS OF SAVE AREA 15885000 BLDL (7),NUMENT ISSUE BLDL 15886000 STC 15,TEMP1 15887000 CLI TEMP1,X'08' CHECK FOR COMPLETION CODE = 8 15888000 BC 7,BUILDOK NO--IS OK 15889000 LH 5,NUMENT IS 8 ENSURE ALL ENTRIES IGNORED 15890000 LA 6,BLDLLST 15891000 BUILDBAD MVI 10(6),X'00' 15892000 AH 6,ENTSIZ 15893000 BCT 5,BUILDBAD 15894000 BUILDOK OI IND3,X'08' SET BLDL DONE ON LIST INDICATOR 15895000 B GETNEXT1 GO TO READ FIRST MODULE 15896000 GETNEXT CLC CURINCNO(1),NUMENT+1 ARE ALL ITEMS IN LIST DONE 15897000 BC 7,INCLU200 NO 15898000 GETNEXT5 NI IND3,X'F7' YES--TURN OFF BLDL DONE ON LIST 15899000 MVI CURINCNO,X'00' INITIALIZE CURRENT INCLUDE NO 15900000 MVI NUMENT+1,X'00' INITIALIZE NUMBER OF ENTRIES 15901000 TM IND3,X'20' IS AUTO LIB IN OPERATION 15902000 BC 8,INCLU155 NO--GO CHECK FOR MORE INCLUDES 15903000 TM IND3,X'40' YES--WAS THERE AN ERROR 15904000 BC 1,AUTOCL1 YES--RETURN TO AUTOCALL 15905000 BC 15,INCLU201 NO--GO READ MODULE 15906000 GETNEXT1 LA 10,APPEND-2 ADDRESS OF APPENDAGE SEQ NUMBERS 15907000 SR 6,6 15908000 IC 6,CURINCNO UPDATE CURINCNO 15909000 LA 6,1(0,6) 15910000 STC 6,CURINCNO 15911000 TM IND3,X'20' IS AUTOLIB IN OPERATION 15912000 BC 8,GETNEXT9 NO 15913000 AR 10,6 GET ADDRESS OF NEXT ID NUMBER 15914000 AR 10,6 REG10 + 2 * REG6 15915000 LH 10,0(0,10) GET ID NUMBER 15916000 SLL 10,4 CONVERT TO CESD ADDRESS 15917000 A 10,CHESD 15918000 MVC TEMP1(1),8(10) GET TYPE 15919000 NI TEMP1,X'0F' AND OUT LEFT HALF 15920000 CLI TEMP1,X'02' IS ITEM STILL UNRESOLVED 15921000 BC 8,GETNEXT8 YES--GO TO READ IT 15922000 OI IND3,X'40' INDICATE MODULE NOT FOUND 15923000 BC 15,GETNEXT4 NO--GO CHECK FOR MORE IN LIST 15924000 GETNEXT9 SR 6,6 FIND NEXT ITEM TO BE READ 15925000 GETNEXT2 LA 6,1(0,6) 15926000 LA 10,2(0,10) 15927000 CLC CURINCNO(1),1(10) IS THIS NEXT ITEM TO BE READ 15928000 BC 7,GETNEXT2 NO--TRY NEXT 15929000 GETNEXT8 BCTR 6,0 15930000 MH 6,ENTSIZ 15931000 A 6,TABLSTRT ADD START OF TABLE 15932000 CLI 10(6),X'00' WAS MODULE FOUND 15933000 BC 7,GETNEXT3 YES 15934000 LA 14,GETNEXT4 NO--GIVE ERROR MESSAGE 15935000 ST 14,SAV14L1 PREPARE RETURN ADDRESS 15936000 LA 8,LIBOPEN ADDRESS OF DDNAME OPEN 15937000 BC 15,INCLU615 GO PRINT ERROR MESSAGE 15938000 GETNEXT4 CLC CURINCNO(1),NUMENT+1 ARE ALL ITEMS IN LIST DONE 15939000 BC 8,GETNEXT5 YES 15940000 BC 15,GETNEXT1 NO--GO CHECK NEXT ONE 15941000 GETNEXT3 TM IND3,X'20' IS AUTOCALL ON 15942000 BC 8,GETNEXT7 NO 15943000 L 8,SAVAD GET ADDRESS OF DDNAME FOR AUTOCALL OR LIB CALL 15944000 BC 15,GETNEXT6 15945000 GETNEXT7 LH 8,PTRSAV GET POINTER TO DDNAME 15946000 SLL 8,4 POINTER TIMES FOUR 15947000 A 8,CHESD PLUS CESD ADDRESS 15948000 GETNEXT6 BAL 14,LIBOP CHECK IF LIBRARY STILL OPEN 15949000 TM IND3,X'40' ANY ERROR 15950000 BC 1,GETNEXT5 YES--SKIP REST OF LIST 15951000 LA 14,GETNEXT PREPARE ADDRESS OF EXIT 15952000 ST 14,SAV14L1 15953000 BC 15,INCLU602 TO FIND AND PREPARE TO READ 15954000 * AS IEWLCINC IS GIVEN CNTRL, THE CHAIN ADDR. IN THE LINE 'CRRTINCL' 16100000 * IS NECESSERALY NON NULL 16200000 NULLINE MVI 8(9),X'07' NULLIFY TYPE 16300000 MVI 7(09),C',' ALTER THE SYMBOL 16400000 MVC 12(4,09),FLCD STICK NULL LINE TO HOLES CHAIN 16500000 ST 09,FLCD UPDATE FLCD 16600000 L 9,8(9) LD CHAIN ADDR (AND TYPE) 16700000 LA 9,0(9) (WIPE TYPE) 16800000 LTR 9,9 IS POINTER ZERO (END OF CHAIN) 16830000 BCR 8,14 YES--RETURN TO CALLER 16860000 ST 9,CRRTINCL UPDATE CRRTINCL 16900000 TM IND3,X'20' IS SINGLE BLDL MODE ON 16930000 BCR 1,14 YES--RETURN 16960000 INCLU120 ST 09,INCBRKPT INITIATE INCLUDE BREAK POINT 17000000 BCR 15,14 RETURN 17050000 OI APT2,X'08' SET 'INCLUDE PREVIOUSLY INITIATED' 17100000 ** ADDR.OF INCLUDE LINE NOW IN 9 17200000 ********** 17300000 * 17400000 * DETERMINE IF THIS IS THE INCLUDING OF A MEMBER OF A PARTITIONED 17500000 * DATA SET , OR A PHYSICAL SEQUENTIAL DATA SET 17600000 * 17700000 * 17800000 CLI 13(09),X'D0' IS THIS LINE CNTRL.INCL WITH PTER 17900000 BC 8,INCLU250 YES 18000000 OI IND3,X'80' SET 'PHYSICAL SEQUENTIAL' ON. 18100000 LR 8,9 TAKE ADDR.OF THIS LINE AS ADDR.OF - 18200000 * - NEWDDNAME SYMBOL 18300000 ** NEWDDNAME POINTED TO BY REG. 8 18400000 ********** 18500000 * 18600000 * BRANCH TO THE SUBROUTINE LIBOP 18700000 * 18800000 INCLU150 BAL 14,LIBOP 18900000 * 19000000 * 19100000 ********** 19200000 * 19300000 * 19400000 * SET THE 'INCLUDE' BIT ON IN THE ALL PURPOSE TABLE, IN CASE MORE 19500000 * INCLUDE WILL HAVE TO BE DONE AFTER THIS ONE . 19600000 * THE INPUT PROCESSOR WILL TEST THIS BIT AT THE END OF THE INCLUDED 19700000 * DATA SET , TO DECIDE IF THE INCLUDE PROCESSOR HAS TO BE GIVEN 19800000 * CONTROL AGAIN 19900000 * 20000000 * 20100000 INCLU155 OC CRRTINCL(4),CRRTINCL IS CHAIN ADDRESS 0 20200000 BC 8,INCLU300 YES 20300000 OI APT1,X'80' SET INCLUDE BIT TO 1 20400000 TM IND3,X'40' WAS MODULE 'NOT FOUND' 20500000 BC 1,INCLU100 BR. IF NOT FOUND 20600000 ********** 20700000 * 20800000 * 20900000 * GO TO THE INPUT PROCESSOR 21000000 * 21100000 * 21200000 INCLU200 TM IND3,X'08' WAS BLDL DONE ON LIST 21220000 BC 8,INCLU201 NO 21240000 TM IND3,X'20' YES--IS AUTOLIB IN OPERATION 21260000 BC 1,INCLU201 YES--DON'T SET MORE INCLUDES 21280000 OI APT1,X'80' NO--SET MORE INCLUDES TO COME 21300000 INCLU201 LA 15,INCLU050+8 21320000 SH 15,FOURTEEN 21400000 MVC SAVAREA+60(4),0(15) 21500000 MVC SAVAREA+8(4),INPUTPRA 21600000 LM 13,12,SAVAREA 21700000 BCR 15,15 21800000 * 21900000 * MAKE DDNAME AND MEMBER NAME AVAILABLE FOR THE LIBOP SUBROUTINE 22000000 * 22100000 * 22200000 INCLU250 NI IND3,X'7F' RESET 'PHYSICAL SEQUENTIAL' TO 0 22300000 * LOOK FOR NEWDDNAME ADDR. : 22400000 LH 8,14(09) LOAD CHAINED ID 22500000 SLL 8,4 MULTIPLY ID BY 16 22600000 A 8,CHESD ADD CESD ADDR. MINUS 16 22700000 * NEWDDNAME POINTED TO BY REGISTER 8 22800000 MVC BLDLMBRN(8),0(09) MOVE MBRNAME INTO THE BLDL AREA 22900000 BAL 14,NULLINE TO NULL LINE AND UPDATE POINTER 22920000 C 9,INCBRKPT HAS BREAK POINT BEEN REACHED 22940000 BC 7,INCLU150 NO--STAY IN SINGLE BLDL MODE 22960000 NI IND3,X'EF' YES--TURN OFF SINGLE BLDL 22980000 BC 15,INCLU150 23000000 INCLU300 NI APT1,X'7F' RESET INCLUDE BIT TO 0 23100000 NI APT2,X'F7' TURN OFF INCLUDE INITIATED BIT 23150000 * (WHEN THIS MODULE WILL BE FINISHED, THE INPUT 23200000 * PROCESSOR MUST NOT BRANCH TO THE INCLUDE PROC.) 23300000 * (INPUT PROC. WILL HAVE THEN TO SWITCH LIBADRC TO SYSLIN ) 23400000 * NULLIFICATION OF DDNAME LINE LAST USED 23500000 * 23600000 * ONE CANNOT DESTRUCT THE LAST USED DDLINE HERE BECAUSE THIS DDLINE 23700000 * MIGHT BE THE BASE OF A LIBRAARY CHAIN 23800000 TM IND3,X'40' WAS THERE A LIBOP FAILURE 23900000 BC 8,INCLU310 NO 24000000 NI APT1,X'DF' RESET 'LOAD MODULE BIT ' TO 0 24100000 LA 6,IEWLCRBN 24200000 ST 6,IEWLCLAC IEWLCLAC TO SYSLIN 24300000 INCLU310 BC 15,INCLU200 TOWARDS INPUT PROCESSOR 24400000 ***** 24500000 * 24600000 * 24700000 * 24800000 * SUBROUTINE LIBOP ,IS COMMON TO INCLUDE PROCESSOR AND ... 24900000 * ..AUTOMATIC LIBRARY CALL PROCESSOR 25000000 * 25100000 * 25200000 * 25300000 * WHEN THE SUBROUTINE LIBOP GETS CONTROL, IT SUPPOSES THAT THE 25400000 * DDNAME IS POINTED TO BY REG. 8 . IF THE DATA SET IS A MEMBER TO FIND 25500000 * IN A LIBRARY , LIBOP ALSO SUPPOSES THE MEMBER NAME IS IN THE 25600000 * BLDL AREA (AT BLDLMBRN). 25700000 * REGISTER 7 CONTAINS THE ADDRESS OF THE LIBRARY DCB 25800000 * LIBOP CHECKS IF THE DATA SET WOULD NOT BE ALREADY OPENED. 25900000 * LIBOP WORKS ON THE 'SYSLIB' DCB WHICH IS IN THE ALL PURPOSE 26000000 * TABLE(APT).THIS DCB CAN BE EITHER PARTIONED OR SEQUENTIAL 26100000 * LIBOP TESTS THE INDICATORS IND3 (OF THIS MODULE) AND APT3(OF THE APT) 26200000 * 26300000 * 26400000 LIBOP ST 14,SAV14L1 26500000 * SET LIBADRC ON SYSLIB READ CONTROL BLOCK 26600000 NI IND3,X'BF' RESET 'LIBOP FAILURE' TO 0 26700000 LA 14,IEWLCRBB SET IEWLCLAC 26800000 ST 14,IEWLCLAC TO SYSLIB READ BLOCK 26900000 TM APT3,X'01' IS SYSLIB OPENED ? 27000000 BC 8,INCLU350 NO 27100000 TM IEWLCRBB+24,X'80' IS THERE AN UNCHECKED READ 27200000 BC 1,LIBOPA NO 27300000 OI IEWLCRBB+24,X'88' YES-INDICATE IGNORE EOF OR ERR 27400000 L 1,IEWLCRBB ADDRESS OF SYSLIB DECB 27500000 LA 13,REGSA ADDRESS OF SAVE AREA 27600000 CHECK (1) 27700000 NI IEWLCRBB+24,X'F7' TURN OFF IGNORE BIT 27800000 LIBOPA TM IND3,X'80' IS PHYSICAL SEQUENTIAL ON 27900000 BC 1,INCLU320 GO TO CLOSE 28000000 CLC 0(8,8),LIBOPEN COMPARE NEW DDNAME TO DDNAME OPEN 29000000 BC 8,INCLU455 BR. IF EQUAL 30000000 INCLU320 LA 13,REGSA ADDRESS OF SAVE AR%A 30100000 CLOSE ((07)) 30300000 NI APT3,X'FE' TURN 'SYSLIB OPENED' TO OFF 30400000 INCLU350 MVC 0(SPLDCBLG,07),SPLEDCBP LAY FRESH COPY OF AN 30600000 * UNOPENED PO DCB (THIS 30700000 * ZEROES WHAT NEED TO BE 0 BEFORE OPEN 30800000 TM IND3,X'80' IS 'PHYSICAL SEQUENTIAL' ON 30900000 BC 8,INCLU450 NO 31000000 INCLU400 MVI DCBDSORG,X'40' MAKE THE DCB TO BE A PHYS.SEQ. ONE 31100000 MVC DCBSYNAD+1(3),SYNADAD+1 MOVE IN SYNAD FOR BSAM 31150000 INCLU450 MVC DCBDDNAM(8),0(8) SLOT NEWDDNAME INTO FIELD OF DCB 31200000 MVC LIBOPEN(8),0(8) SAVE DDNAME 31250000 LA 13,REGSA ADDR OF REG SAVE AREA FOR SYSTEM MACRO 31300000 OPEN ((07)) 31400000 TM DCBOFLGS,X'10' IS OPEN FLG 'ON' IN SYSLIB DCB 31500000 BC 1,INCLU453 YES 31600000 LR 1,8 DDNAME ADDR. 31700000 LH 0,ERR7 ERROR. OPEN FAILED ON SPECIFIED LIBRARY 31800000 L 15,ERDIG 31900000 BALR 14,15 32000000 NI APT3,X'FE' SET 'SYSLIB NOT OPENED' 32100000 OI IND3,X'40' SET 'LIBOP FAILURE' 32200000 BC 15,INCLU610 TO EXIT OF LIBOP 32300000 INCLU453 OI APT3,X'01' SET 'SYSLIB OPENED' 32400000 INCLU455 MVC TEMP1(1),DCBRECFM 32500000 NI TEMP1,X'C0' SAVE ONLY F OR U INDICATORS 32600000 CLI TEMP1,X'C0' IS IT A U FORMAT 32800000 BC 8,INCLU500 YES 32900000 CLI TEMP1,X'80' IS IT A 'F' FORMAT 33000000 BC 8,INCLU460 YES 33100000 LH 0,ERR12 ERROR CODE INTO 0 33200000 LR 1,8 33300000 L 15,ERDIG 33400000 BALR 14,15 33500000 OI IND3,X'40' SET FAILURE BIT 'ON' 33600000 BC 15,INCLU610 EXIT OF LIBOP 33700000 INCLU460 NI APT1,X'DF' RESET LOAD MOD BIT TO ZERO 33800000 MVI IEWLCRBB+19,X'01' INDICATE TO PRIME BUFFERS 33900000 OI IEWLCRBB+24,X'80' 34000000 TM IEWLCRBB+24,X'04' WAS BLOCK SIZE OK 34100000 BC 8,INCLU550 YES 34200000 LH 0,ERR9 NO--GIVE ERROR MESSAGE 34300000 BC 15,INCLU510 34400000 INCLU500 TM IND3,X'80' DOES CONTROL CARD ANNOUNCES PHYS.SEQ. 34500000 BC 8,INCLU520 NO 34600000 LH 0,ERR11 ERR CODE,SEVERITY,DISPOSITION,INTO 1 34700000 INCLU510 LR 1,8 ADDR OF DDNAME INTO 1 34800000 L 15,ERDIG 34900000 BALR 14,15 BR TO ERR ROUTINE 35000000 OI IND3,X'40' SET LIBOP FAILURE 35100000 BC 15,INCLU610 TO EXIT OF LIBOP 35200000 INCLU520 OI APT1,X'20' SET BIT 'LOAD MODULE'TO ONE 35300000 INCLU550 EQU * 35400000 INCLU600 TM IND3,X'80' IS THE DATA SET PHYSICAL SEQUENTIAL 35500000 BC 1,INCLU610 YES 35600000 TM IND3,X'10' IS SINGLE BLDL MODE ON 35630000 BC 8,INCLU610 NO--RETURN 35660000 LA 13,REGSA ADDR OF REG SAVE AREA FOR SYSTEM MACRO 35700000 BLDL (7),BLDLDES1 35800000 XI *+1,X'FF' ***DEBUG TOKEN *** 35900000 LTR 15,15 TEST RETURN CODE IN 15 36000000 BC 7,INCLU615 BR.IF MODULE SEARCH NOT SUCCESSFUL 36100000 INCLU602 NI IND3,X'BF' RESET MODULE NOT FOUND BIT 36200000 TM APT1,X'20' A26878 36210000 BC 8,INCLU605 A26878 36220000 TM BLDLATT2,X'01' IS INC MODULE REFRESHABLE 36250000 BC 8,INCNREFR NO 36300000 INCLU601 TM APT1,X'20' IS COMING MODULE A LOAD MODULE 36350000 BC 8,INCLU605 NO 36400000 * LOGIC FOR THE OUTPUT DIRECTORY 36500000 OI BLDLATT1,X'3F' 36600000 NC PDSE7(1),BLDLATT1 36700000 TM BLDLATT2,X'08' IS MODULE NOT EDIT ABLE 36800000 BC 8,INCLU605 36900000 INCLERNE LH 0,ERR13 ERR CODE IN REG 0 37000000 LA 13,BLDLMBRN ADDR. OF MBER NAME INTO 13 37100000 BC 15,INCLU510 TO ERROR AND LIBOP FAILURE EXIT 37200000 INCNREFR NI PDSE8,X'FE' IF INC MODULE IS NOT REFRESHABLE 37220000 * THEN ENTIRE LOAD MODULE WILL NOT BE. * 37240000 B INCLU601 37260000 INCLU605 LA 13,REGSA ADDR OF REG SAVE AREA FOR SYSTEM MACRO 37300000 FIND (7),BLDLTTR1,C 37400000 INCLU610 L 14,SAV14L1 37500000 BCR 15,14 RETURN FROM THIS SUBROUTINE LIBOP 37600000 * 37700000 ***** 37800000 INCLU615 OI IND3,X'40' SET 'MODULE NOT FOUND' BIT TO 1 37900000 TM IND3,X'20' IS THIS AUTO LIB 38000000 BC 7,INCLU610 YES, TO EXIT OF LIBOP 38100000 LH 0,ERR8 38200000 LR 1,8 DDNAME ADDR 38300000 LA 13,BLDLMBRN MEMBER NAME ADDR. 38400000 L 15,ERDIG 38500000 BALR 14,15 38600000 ST 10,SAVE10 SAVE CONTENTS OF REG 10 A33452 38608020 L 10,RCCB ADDR OF CHNG/REPL CHAIN A33452 38616020 LTR 10,10 DOES IT CONTAIN ZEROS? A33452 38624020 BZ INCLU620 YES - BRANCH A33452 38632020 LR 10,12 SAVE BASE IN REG 10 A33452 38640020 LA 13,REGSA ADDR OF SAVE AREA A33452 38648020 L 15,ENDADDR ADDR OF IEWLMEND A33452 38656020 BALR 14,15 GO TO DELETE CHNG/REPL A33452 38664020 * CHAIN FROM THE CESD A33452 38672020 LR 12,10 RESTORE BASE REG A33452 38680020 INCLU620 L 10,SAVE10 RESTORE REG 10 A33452 38688020 BC 15,INCLU610 TOWARD RETURN FROM LIBOP 38700000 ENTRY IEWLCAUT 38800000 CNOP 0,4 38900000 IEWLCAUT S 15,16(15) SET 15 AT ADDRESS VALUE OF IEWLCINC 39000000 ST 12,8(15) PASS VALUE OF REG. 12 39100000 LA 12,14(15) PUT IN 12 THE ADDRESS CORRESP. TO THE 39200000 * UNIQUE 'USING' STATEMENT OF THIS CSECT 39300000 BC 15,*+8 39400000 DC A(IEWLCAUT-IEWLMINC) 39500000 STM 13,11,SAVAREA 39600000 L 07,SYSLIBAD ADDR OF LIBRARY DCB 39700000 OI IND3,X'20' SET 'AUTO LIB ' ON 39800000 TM IND3,X'08' WAS BLDL DONE ON LIST 39830000 BC 1,GETNEXT1 YES--GO GET NEXT MODULE 39860000 NI IND3,X'7F' SET PHYSICAL SEQUENTIAL TO 0 39900000 AUTOCL1 L 4,CHESD 40000000 LH 3,ENCDC INITIALIZE COUNT FOR CESD SCAN 40100000 LTR 3,3 40200000 BC 8,INCLU710 BRANCH IF NOTHING IN CESD 40400000 TM APT0,X'01' WAS A LIBRARY CARD READ 40600000 BC 8,INCLU670 NO 40900000 * 41000000 * 41100000 * ESD SCANNING TO FIND DDNAMES WITH POINTER 41200000 * 41300000 * 41400000 * 41500000 INCLU630 LA 4,16(4) 41600000 MVC TEMP1(1),8(4) TAKE TYPE FIELD OF THIS LINE 41700000 NI TEMP1,X'0F' CLEAR INFORMATION OTHER THAN TYPE 41800000 CLI TEMP1,X'02' IS TYPE ER 41900000 BC 7,INCLU660 BR.IF NOT 42000000 CLI 13(4),X'B0' IS SUBTYPE DDNAME 42100000 BC 7,INCLU660 BR.IF NOT 42200000 LH 15,14(4) LOAD THE 2 BYTE PTER TO LIB.MBER 42300000 LTR 15,15 IS IT NULL 42400000 BC 8,INCLU640 BR IF YES GO TO NULLIFY THIS DDNAMLIN 42500000 INCLU635 SLL 15,4 MULTIPLY THE PTER BY 16 42600000 A 15,CHESD ADD ADDR. OF CESD MINUS 16 42700000 MVC TBPTRSAV(2),14(15) SAV.PTR.FOUND IN LINE JUST REACHED 42800000 CLI 13(15),X'03' IS THIS A MATCHED LIBR.MBR. 42900000 BC 7,INCLU650 BR. IF NOT 43000000 TM 9(15),X'80' HAS A BLDL ALREADY BEEN DONE ON THIS 43100000 * MEMBER 43200000 BC 1,INCLU650 BR. IF YES 43300000 OI 9(15),X'80' SET BIT 'BLDL ALREADY ATTEMPTED' 43400000 LR 8,4 PTER TO DDNAME IN 8 FOR LIBOP SUBROUTINE 43600000 ST 8,SAVAD SAVE DDNAME ADDRESS 43650000 LR 9,15 ADDRESS OF MEMBER NAME INTO 9 43750000 BAL 14,INCLU170 GO PUT NAME IN LIST 43850000 B INCLU650 GO CHECK FOR END OF CESD 43950000 INCLU640 MVI 8(4),X'07' MAKE TYPE'NULL' 44100000 XC 0(8,4),0(4) MAKE SYMBOL BINARY ZEROS 44200000 MVC 12(4,4),FLCD STICK THIS LINE TO HOLES CHAIN 44300000 ST 4,FLCD UPDATE HOLES CHAIN BEGIN ADDR 44400000 BC 15,INCLU660 44500000 INCLU650 LH 15,TBPTRSAV IS THE SAVED TWO BYTES PTER =0 44600000 LTR 15,15 44700000 BC 7,INCLU635 BR. IF NOT 44800000 CLI NUMENT+1,X'00' ANY ITEMS LEFT IN BLDL LIST 44930000 BC 7,INCLU186 YES--GO PURGE THEM 44960000 INCLU660 BCT 3,INCLU630 LOOP TO TAKE NXT CESD LNE A28317 44970000 * (THIS LINE WAS NOT PROPERLY CHANGED TO FIX A21451 FOR RELEASE 18) 44980000 * 45000000 * 45100000 * ESD SCANNING TO FIND PURE ER'S 45200000 * 45300000 * 45400000 INCLU670 L 4,CHESD INITIATE SCAN FOR ... 45500000 LH 3,ENCDC STANDARD(SYSLIB) LIBRARY CALLS 45600000 LA 8,LIBNAME FIX SYSLIB AS NEW DDNAME 45700000 ST 8,SAVAD SAVE DDNAME ADDRESS 45750000 INCLU680 LA 4,16(4) SCAN CESD 45800000 MVC TEMP1(1),8(4) TAKE TYPE FIELD FROM THIS LINE 45900000 NI TEMP1,X'0F' CLEAR INFORMATION OTHER THAN TYPE 46000000 CLI TEMP1,X'02' IS TYPE ER 46100000 BC 7,INCLU700 BR. IF NOT 46200000 CLI 13(4),X'00' IS SUBTYPE NULL (ONLY ONE TO BE CALL 46300000 * FROM SYSLIB) 46400000 BC 7,INCLU690 BR.IF NOT 46500000 TM 9(4),X'80' A BLDL PREVIOUSLY ATTEMPTD FOR MBER ? 46600000 BC 1,INCLU700 BR.IF YES 46700000 OI 9(4),X'80' MARK THIS MBER 'BLDL PREVLY ATTPTD' 46900000 LR 9,4 ADDRESS OF MEMBER NAME INTO 9 47000000 BAL 14,INCLU170 GO PUT NAME IN LIST 47100000 BC 15,INCLU700 GO CHECK FOR END OD LIST 47200000 INCLU690 CLI 13(4),X'90' IS SUBTYPE 'CONTROL OVERLAY' 47500000 BC 7,INCLU700 BR.IF NOT 47600000 MVI 8(4),X'07' NULLIFY THE LINE 47700000 *TO ZEROE THE SYMBOL WOULD TAKE ME TIME. THE SYMB HAS FEW CHANCE TO BE 47800000 * MATCHED BY ESD PROC. IF IT IS,NULL TYPE WILL LEAD TO NO CONFUSION 47900000 MVC 12(4,4),FLCD STICK THIS LINE TO THE HOLE CHAIN 48000000 ST 4,FLCD UPDATE FLCD 48100000 INCLU700 BCT 3,INCLU680 TAKE NXT ELT.OF THE CESD 48200000 CLI NUMENT+1,X'00' ANY ITEMS LEFT IN BLDL LIST 48230000 BC 7,INCLU186 YES--GO PURGE THEM 48260000 INCLU710 LA 6,IEWLCRBN 48400000 ST 6,IEWLCLAC 48500000 * THE SYSLIN READ BLOCK 48600000 L 15,RATADD GO TO TXT/RLD FOR PURGE 48620000 OI NEWSW,X'01' INDICATE PURGE TO TXT/RLD 48640000 BALR 14,15 48660000 USING *,15 RETURNS ON 15 48680000 L 15,ADRASSEY 48700000 DROP 15 48800000 BCR 15,15 GO TO ADDRESS ASSIGNMENT 48900000 DS 0F 49000000 SAVAREA DC 16F'0' 49002000 SAV14L1 DC F'0' 49004000 SAVE10 DC F'0' A33452 49005020 EXTRN IEWLMLDB 49006000 EXTRN IEWLCADA 49008000 EXTRN APTEXLST 49010000 INPUTPRA DC V(IEWLMINP) 49012000 ENDADDR DC V(IEWLMEND) A33452 49013020 SYSLIBAD DC A(IEWLMLDB) 49014000 ERR7 DC AL2(ERR7LTL) 49016000 ERR8 DC AL2(ERR8LTL) 49018000 ERR9 DC AL2(ERR9LTL) 49020000 ERR11 DC AL2(ERR11LTL) 49022000 ERR12 DC AL2(ERR12LTL) 49024000 ERR13 DC AL2(ERR13LTL) 49026000 FOURTEEN DC X'000E' 49028000 TBPTRSAV DC X'0000' 49030000 TEMP1 DC X'00' 49032000 IND3 DC X'00' SWITCHES 49034000 * X'80' PHYSICAL SEQUENTIAL 49036000 * X'40' MODULE NOT FOUND 49038000 * X'20' AUTOLIB IN OPERATION 49040000 * X'10' SINGLE BLDL IN OPERATION 49042000 * X'08' BLDL DONE ON LIST 49044000 * X'04' BLDL LIST FULL 49046000 DS 0F 49048000 SPLEDCBP DCB DSORG=PO,MACRF=(R),EODAD=IEWLCEOD,SYNAD=IEWLCRO2, X49050000 LRECL=80,EXLST=APTEXLST 49052000 DCBPNDM1 EQU * 49054000 SPLDCBLG EQU DCBPNDM1-SPLEDCBP LENGTH OF DCB 49056000 EXTRN IEWLCRO2 49058000 SYNADAD DC A(IEWLCRO1) 49060000 ADRASSEY DC V(IEWLMADA) ADDRESS OF ADDRESS ASSIGNMENT 49062000 RATADD DC V(IEWLMRAT) ADDRESS OF TXT/RLD PROCESSOR 49064000 NUMENT DC H'00' NUMBER OF ENTRIES IN LIST 49066000 ENTSIZ DC H'26' 49068000 BLDLLST DC 260C' ' 49070000 MAXENTRY DC H'10' MAXINUM NUMBER OF ENTRIES 49072000 APPEND DS 20C 49074000 SAVAD DS 1F 49076000 TABLSTRT DC A(BLDLLST) 49078000 PTRSAV DC H'0' SAVE POINTER TO DDNAME 49080000 CURINCNO DC X'00' CURRENT ITEM BEING READ 49082000 DS 0H 49084000 BLDLDES1 DC X'0001' 1ST BYTE OF LIST DESCRIPTION FIELD (NO OF ENTR.) 49100000 BLDLDES2 DC X'0036' 2ND BYTE OF LIST DESCRIPTION FIELD (LGTH OFEACH) 49200000 SINGBLDL DC 26C' ' 49220000 PATCHARE DC 50F'0' TEMPORARY PATCH AREA 49240000 DUMMY DSECT 49260000 BLDLMBRN DC XL8'00' MEMBER NAME 49300000 BLDLTTR1 DC XL4'00' TTR OF FIRST RECORD OF PDS & CONCAT.NO. 49400000 BLDLZEUS DC XL2'00' ZERO BYTE (JOB/LINK LIB.IND.) AND USER DESCR. 49500000 BLDLTTR2 DC XL4'00' TTR OF FIRST TEXT RECORD AND ZERO 49600000 BLDLTTR3 DC XL3'00' TTR OF NOTE LIST OR SCAT.TRANS.TBL. 49700000 BLDLN0NL DC XL1'00' NO OF ENTRIES IN NOTE LIST (OR ZERO) 49800000 BLDLATT1 DC XL1'00' FIRST BYTE OF ATTRIBUTES 49900000 * BIT 0 , X'80' REENTERABLE 50000000 * BIT 1 , X'40' REUSABLE 50100000 * BIT 2 , X'20' OVERLAY 50200000 * BIT 3 , X'10' IN TEST 50300000 * BIT 4 , X'08' ONLY LOADABLE 50400000 * BIT 5 , X'04' BLOCK-SCATTER (BLOCK=0) 50500000 * BIT 6 , X'02' EXECUTABLE 50600000 * BIT 7 , X'01' MOD.CONTAINS 1 TXT RCD,NO RLD 50700000 BLDLATT2 DC XL1'00' SECOND BYTE OF ATTRIBUTES 50800000 * BIT 0 , X'80' NO DOWNWARD COMPATIBILITY IF=1 50900000 * BIT 1 , X'40' ORIGIN OF 1ST TXT RCD IS ZERO 51000000 * BIT 2 , X'20' LINK.EDIT.ASSIGND ENTR.PT.=0 51100000 * BIT 3 , X'10' MOD.CONTAINS RLD ITEMS 51200000 * BIT 4 , X'08' MOD.CAN BE REPROCESSED BY LKED 51300000 * BIT 5 , X'04' MOD.DOES'NT CONTAIN SYM CARDS 51400000 BLDLE9 DC XL3'00' TOTAL MAIN STORAGE REQUIREMENT OF THIS MODULE 51500000 BLDLE10 DC XL2'00' LENGTH OF FIRST TXT RECORD 51600000 BLDLE11 DC XL3'00' ENTRY POINT ADDRESS 51700000 BLDLE12 DC XL3'00' ORIGIN OF FIRST TXT RECORD 51800000 * 51900000 BLDLE13 DC XL2'00' NO. OF BYTES IN SCATTER LIST 52000000 BLDLE14 DC XL2'00' NO. OF BYTES IN THE TRANSLATION TBLE 52100000 BLDLE15 DC XL2'00' ESDID OF THE 1ST TXT RCD 52200000 BLDLE16 DC XL2'00' ESDID OF THE CONTR.SECT.CONTAINING ENTRY PT 52300000 * 52400000 BLDLE17 DC XL3'00' ENTRY PT OF MAIN MBER NAME 52500000 BLDLE18 DC XL8'00' MEMBER NAME OF MODULE 52600000 * SAMPLE DCB FOR A PARTIONED ORGANISATION TO BE READ 52700000 DS 0F 52800000 IEWAPT 55700000 DCBD DSORG=(PS,PO) 55900000 END 56000000 ./ ADD SSI=00010827,NAME=IEWLMINP,SOURCE=0 IEWLMINP CSECT 00100000 * 334000,343000,452600,532000,534000,544000,734300 A26860 00150000 *A175000,207000,455000,560000,665000,735000 S21016 00160021 *C664000 S21016 00170021 *A665160 M4123 00180021 *A207000 A51444 00190021 *A335000 A51444 00192021 *A200000 SA53762 00194021 *I543000,D543600,I731000 SA64430 00196000 TITLE ' INPUT PROCESSOR ' 00200000 IEWLCINP EQU * 00300000 *FUNCTION/OPERATION: THIS MODULE READS ALL INPUT TO LINK EDITOR. THIS * 00400000 * CONSISTS OF OBJECT MODULES(CARDS),LOAD MODULES(LINK EDITOR * 00500000 * OUTPUT) AND CONTROL CARDS. IT DETERMINES WHICH PROCESSOR * 00600000 * MUST BE SELECTED TO PROCESS THE RECORD AND SELECTS IT. IT * 00700000 * PERFORMS ALL THE SET UP REQUIRED TO PROCESS THE PARTICULAR * 00800000 * REORD. IT ALSO SAVES DELINK TABLE VALUES FOR THE RLD AND ESD * 00900000 * PROCESSORS. IF AUTOMATIC LIBRARY CALL IS REQUIRED OR INCLUDE * 01000000 * CARDS HAVE BEEN READ, THE APPROPRIATE PROCESSOR IS SELECTED. * 01100000 *ENTRY POINTS IEWLMINP-BEGINNING OF CSECT ENTERED BY INITIALIZER * 01200000 * IEWLCINP- BEGINNING OF CSECT,ENTERED BY COMMON ROUT- * 01300000 * INES * 01400000 * IEWLCDLK- DELINK TABLE ROUTINE,ENTERED BY ESD AND RLD * 01500000 * IEWLMMDI-MODULE INPUT- ENTERED BY INPUT CONTROL * 01600000 * IEWLERDM- READ ROUTINE-USED BY IEWLEMDI * 01700000 * IEWLCEOD- END OF DATA ENTRY FOR LIBRARY DCB- ALSO * 01800000 * ENTERED FROM IEWLEMDI WHEN END OF MODULE * 01900000 * RECORD IS READ FROM LOAD MODULE * 02000000 * IEWLEEON- END OF DATA ENTRY FOR SYSLIN DCB * 02100000 * ALL ROUTINES ENTERED BY BCR 15,15 EXCEPT * 02200000 * IEWLCDLK -BALR 14,15 * 02300000 * IEWLERDM -BALR 7,15 * 02400000 *INPUT: 80 COLUMN CARDS - OBJECT MODULES- F FORMAT * 02500000 * COLUMN 1 - 12-9-2 PUNCH * 02600000 * COLUMN 2 THRU 4 = TYPE (ESD,TXT,RLD,END,SYM) * 02700000 * ESD COLUMNS- 11-12 BYTE COUNT * 02800000 * 15-16 ID OF FIRST ESD ITEM * 02900000 * 17-66 ESD ITEMS (3) * 03000000 * * 03100000 * TXT COLUMNS- 6-7-8 24 BIT ASSEMBLED ADDRESS OF TXT * 03200000 * 11-12 NUMBER OF BYTES OF TXT ON CARD * 03300000 * 15-16 ESDID OF CSECT CONTAINING TXT * 03400000 * 17-72 TXT INFORMATION * 03500000 * * 03600000 * RLD COLUMNS- 11-12 NUMBER OF BYTES OF RLD ON CARD * 03700000 * 17-72 RLD ITEMS * 03800000 * * 03900000 * END COLUMNS- 6-7-8 OPTIONAL 24 BIT ASSM. ADD. OF * 04000000 * ENTRY POINT * 04100000 * 15-16 ID OF ASSM. ADD. ENTRY POINT * 04200000 * 17-24 SYMBOL OF EXTERNAL SYMBOL ENTRY * 04300000 * 29-32 LENGTH OF CONTROL SECTION WHICH * 04400000 * WAS NOT SPECIFIED ON ESD CARD * 04500000 * * 04600000 * SYM COLUMNS- 11-12 NUMBER OF BYTES OF TESTRAN INFO. * 04700000 * ON CARD * 04800000 * 17-72 TESTRAN INFORMATION * 04900000 * * 05000000 * * 05100000 * U RECORDS-LOAD MODULES * 05200000 * TXT RECORDS - RECORDS WHOSE MAXIMUM LENGTH IS TXTBSIZE * 05300000 * BYTES. THEY ARE PRECEEDED BY CCW RECORDS * 05400000 * CCW RECORD- BYTE-0 - IDENTIFICATION BYTE = X'01' * 05500000 * -1-3 NOT USED * 05600000 * -4-5 NO. OF BYTES OF ID/LENGTH * 05700000 * -6-7 NO. OF BYTES OF RLD INFORMATION * 05800000 * -8 NOT USED(READ COMMAND) * 05900000 * -9-11 LINKED ADDRESS OF TXT RECORD * 06000000 * -12 FLAGS * 06100000 * -13 NOT USED * 06200000 * -14-15 COUNT OF TXT RECORD WHICH * 06300000 * FOLLOWS * 06400000 * * 06500000 * IF THE RECORD CONTAINS RLD INFORMATION, THE RLD ITEMS * 06600000 * FOLLOW AND THE IDENTIFICATION BYTE CONTAINS A X'02' * 06700000 * (BIT 6 IS SET) , E.G. CCW AND RLD IS X'03'. * 06800000 * FOLLOWING THE RLD INFORMATION, IS A 4 BYTE FIELD. * 06900000 * BYTES 0-1 ARE THE ID OF THE FOLLOWING TXT RECORD, BYTES* 07000000 * 2-3 ARE THE LENGTH OF THE FOLLOWING TXT RECORD. * 07100000 * IN ADDITION TO RLD INFORMATION THE IDENTIFICATION * 07200000 * BYTE MAY HAVE BITS 4 AND 5 SET ON. BIT 4 INDICATES * 07300000 * END OF MODULE, BIT 5 INDICATES END OF SEGMENT. THESE * 07400000 * BITS MAY BE SET IN ANY COMBINATION WITH CCW AND RLD, * 07500000 * OR THEY MAY BE SET ALONE. * 07600000 * FOR ALL THE ABOVE MENTIONED RECORDS THE FORMAT IS THE * 07700000 * SAME. * 07800000 * SYM RECORD- BYTE-0 - IDENTIFICATION BYTE= X'40' * 07900000 * -1 - EITHER (1XXXXXXX)- MEANING THE * 08000000 * RECORD CONTAINS ESD ITEMS NOT IN * 08100000 * TEST FORM,OR (0XXXXXXX)- MEANING * 08200000 * THE OPPOSITE * 08300000 * -2-3 NUMBER OF BYTES OF TESTRAN DATA * 08400000 * -4-243 - TESTRAN DATA * 08500000 * * 08600000 * CESD RECORD- BYTE-0 - IDENTIFICATION BYTE= X'20' * 08700000 * -1-3 - NOT USED * 08800000 * -4-5 - ESDID OF FIRST ESD ITEM * 08900000 * -6-7 - NO. OF BYTES OF CESD INFO. * 09000000 * -8-247 - CESD DATA * 09100000 * SCATTER/TRANSLATION RECORD * 09200000 * BYTE-0 - IDENTIFICATION BYTE= X'10' * 09300000 * 1 - NOT USED * 09400000 * 2-3 NUMBER OF BYTES OF SCATTER/ * 09500000 * TRANSLATION INFO FOLLOWING * 09600000 * 4-1023 - DATA * 09700000 * * 09800000 * CONTROL CARDS- THEY ARE 80 COLUMN CARDS FOUND ONLY IN OBJECT * 09900000 * MODULES. THEIR GENERAL FORMAT FOLLOWS(THEY * 10000000 * ARE FREE FORM. * 10100000 * COLUMN 1 CONTAINS A BLANK * 10200000 * THE OPERATOR NOW FOLLOWS, FOLLOWED BY AT * 10300000 * LEAST ONE BLANK, FOLLOWED BY THE OPERAND. * 10400000 *OUTPUT: N/A * 10500000 * * 10600000 *EXTERNAL ROUTINES IEWLMESD- ESD PROCESSOR * 10700000 * IEWLMEND- END PROCESSOR * 10800000 * IEWLMSCN- CONTROL CARD PROCESSOR * 10900000 * IEWLMSYM- SYM PROCESSOR * 11000000 * IEWLMRAT- RLD AND TXT PROCESSOR * 11100000 * IEWLMINC- INCLUDE PROCESSOR * 11200000 * IEWLCAUT- AUTOMATIC LIBRARY CALL PROCESSOR * 11300000 * * 11400000 *EXITS NORMAL IEWLMADA- ADDRESS ASSIGNMENTS-AT NAME CARD OR END OF * 11500000 * DATA ON SYSLIN IF NCALL OPTION IS SPECIFIED * 11600000 * AND DATA IS PRESENT * 11700000 * IEWLMFNL- FINAL PROCESSOR. AT END OF DATA ON SYSLIN * 11800000 * IF NO INPUT HAS BEEN PROCESSED IN THIS * 11900000 * RECURSION * 12000000 * IEWLCAUT- AUTOMATIC LIBRARY CALL- IF NCALL IS NOT ON * 12100000 * AND DATA HAS BEEN RECEIVED AT END OF DATA * 12200000 * ON SYSLIN (THIS ROUTINE WILL EITHER RETURN * 12300000 * TO THE INPUT PROCESSOR OR BRANCH TO ADDRESS * 12400000 * ASSIGNMENT IF ALL LIBRARY CALLS HAVE BEEN * 12500000 * COMPLETED) * 12600000 *EXITS ERROR: THERE ARE NO ERROR EXITS TO THE SYSTEM. ALL ERRORS * 12700000 * ARE RELAYED THROUGH THE ERROR DIAGNOSTIC ROUTINE * 12800000 * (IEWLMLOG) WHICH THEN DECIDES WHETHER TO PROCEED OR * 12900000 * STOP. * 13000000 * ERRORS: 22-A CONTROL CARD WAS DISCOVED WITHIN * 13100000 * AN OBJECT MODULE OR AN ILLEGALL * 13200000 * CARD WAS DISCOVERED WITHIN AN OBJECT* 13300000 * MODULE. SEVERITY = 1 - WARNING * 13400000 * 21- A CONTROL CARD CONTINUATION WAS * 13500000 * EXPECTED BUT NOT RECEIVED. * 13600000 * SEVERITY = 2 - ERROR * 13700000 * 23- UNRECOGNIZABLE LOAD MODULE INPUT * 13800000 * SEVERITY= 1 * 13900000 *TABLES/WORK AREAS: N/A * 14000000 *ATTRIBUTES: REUSABLE * 14100000 * * 14200000 *NOTES: N/A 14300000 ENTRY IEWLCINP 14500000 ENTRY IEWLCICA 14600000 * ENTRY POINT FOR INCLUDE ADDRESS CONSTANT * 14700000 ENTRY IEWLCEOD 14800000 * ENTRY POINT FOR LIBRARY END OF DATA * 14900000 ENTRY IEWLEEON 15000000 * ENTRY POINT FOR SYSLIN END OF DATA * 15100000 ENTRY IEWLERDM 15200000 * ENTRY POINT FOR READ MACRO * 15300000 BASE EQU 12 15400000 REG6 EQU 6 15500000 READDATA EQU 320 15600000 APT EQU 2 15700000 TEMP EQU 1 15800000 TEMP1 EQU 7 15900000 BUFFER EQU 10 16000000 AUTOLIB EQU X'40' 16100000 BUFFADD EQU 4 16200000 TAMP EQU 11 16300000 LOADMOD EQU X'20' 16400000 DCBADD EQU 8 16500000 DCBPNT EQU 0 16600000 COL1 EQU 0 16700000 SLASH EQU C'/' 16800000 EOFON EQU X'80' 16900000 EOFOFF EQU X'7F' 17000000 BLANK EQU X'40' 17100000 INMODON EQU X'02' 17200000 COL5 EQU 4 17300000 COL11 EQU 10 17400000 COL15 EQU 14 17500000 COL33 EQU 32 CARD COLUMN 33 (START OF S21016 17520021 * IDR DATA FIELD ON OBJECT S21016 17540021 * MODULE END RECORD) S21016 17560021 INMODOFF EQU X'FD' 17600000 ENTRYPT EQU X'08' 17700000 ABSOLUTE EQU X'FB' 17800000 SYMBOLIC EQU X'04' 17900000 NOLGTH EQU X'40' 18000000 COL29 EQU 28 18100000 ESD EQU 1 18200000 ESDWRITE EQU X'01' 18300000 TEST EQU X'10' 18400000 NAME EQU X'40' 18500000 INCLUDE EQU X'80' 18600000 NCALL EQU X'80' 18700000 ENDINPUT EQU X'20' 18800000 EXITON EQU X'01' INDICATOR FOR OPEN EXIT TAKEN 18900000 EXITOFF EQU X'FE' INDICATOR TO TURN OFF EXIT ON INDICATOR 19000000 TEMP2 EQU 0 19100000 SYSRET EQU 14 19200000 SYSBRNCH EQU 15 19300000 PRECL EQU 8 19400000 READCNT EQU 9 19500000 REG3 EQU 3 19600000 REG4 EQU 4 19700000 REG5 EQU 5 19800000 SAVEAREA EQU 13 19900000 BADCARDL EQU X'317' SA53762 20000021 RECCNT EQU 18 20100000 CURBUF EQU 20 20200000 BLKFAC EQU 16 20300000 READSW EQU 24 20400000 LRECL EQU 14 20500000 BLKSIZ EQU 12 20600000 BADLIN EQU X'43B' 20700000 MSG12CD EQU X'030C' DISP=0,SEV=3,MSG=12 A51444 20710021 MSG14CD EQU X'030E' DISP=0,SEV=3,MSG=14 A51444 20712021 MODTYPE EQU X'FC' MODULE TYPE INDICATORS S21016 20720021 * FOR IDR S21016 20740021 PARMPTR EQU 1 PARAMETER LIST POINTER S21016 20760021 LR BASE,SYSBRNCH 20800000 USING APTDSECT,APT 20900000 USING IEWLCINP,BASE 21000000 * INCLUDE,AUTOMATIC LIBRARY CALL, AND INITIALIZER ENTER * 21100000 * AT IEWLEINP WITH REG 15 CONTAINING THE ADDRESS OF * 21200000 * IEWLEINP * 21300000 BC 15,MODID+6 21330000 MODID DC C'02MINP' 21360000 INP10 L REG5,IEWLCLAC ADDRESS OF CURRENT CONTROL BLOCK 21400000 L DCBADD,DCBPNT(0,REG5) ADDRESS OF DECB 21500000 LA TEMP1,IEWLMMDI RETURN ADDRESS 21600000 TM APT1,LOADMOD IS THIS A LOAD MODULE 21700000 BC 1,INP11 YES 21800000 LH REG6,RECCNT(0,REG5) NO--GET CURRENT RECORD NUMBER 21900000 BCT REG6,INP10C BRANCH IF RECORDS LEFT IN BUFFR 22000000 LH READCNT,BLKSIZ(0,REG5) NONE LEFT. USE BLKSIZ FOR RD CNT 22100000 INP10A L BUFFER,BUFFADD(0,REG5) SWITCH BUFFER ADDRESSES 22200000 MVC BUFFADD(4,REG5),BUFFADD+4(REG5) 22300000 ST BUFFER,BUFFADD+4(0,REG5) 22400000 LA SAVEAREA,REGSA ADDRESS OF SAVE AREA 22600000 LR REG6,BASE WILL USE REG6 FOR BASE REG 22700000 TM READSW(REG5),X'80' IS THIS FIRST READ 22800000 BC 1,INP10B YES--DONT CHECK 22900000 TM READSW(REG5),X'02' HAS PVS READ ALREADY BEEN CHECKED 22930000 BC 1,INP11B YES--DON'T RECHECK 22960000 MVC RECCNT(2,REG5),BLKFAC(REG5) INITIALIZE RECCORD COUNT 22980000 USING IEWLCINP,REG6 23000000 DROP BASE 23100000 INP11A CHECK (8) 23200000 TM APT1,LOADMOD IS THIS A LOAD MODULE 23300000 BCR 1,TEMP1 YES--READ IS FINISHED 23400000 INP11B NI READSW(REG5),X'FD' TURN OFF ALREADY CHECKED SWITCH 23450000 TM READSW(REG5),X'04' CHECK FOR INVALID BLOCKSIZE 23500000 BC 8,INP10B NO 23600000 LA TEMP2,BADLIN(0,0) YES--ERR MSG 594 23700000 L SYSBRNCH,ERDIG ADDRESS OF ERROR LOGGER 23800000 BR SYSBRNCH SHOULD NOT RETURN 23900000 INP11 LA READCNT,260 SET UP FOR READING LOAD MODULE 24000000 L BUFFER,RLDINPAD ADDR OF RLD INPUT BUFFER 24100000 LR REG6,BASE 24200000 IEWLERDM LA SAVEAREA,REGSA 24300000 INP10B READ (8),SF,,(BUFFER),(READCNT),MF=E 24400000 TM APT1,LOADMOD IS THIS A LOAD MODULE 24500000 BC 1,INP11A YES--GO CHECK AND RETURN 24600000 DROP REG6 24700000 USING IEWLCINP,BASE 24800000 TM READSW(REG5),X'80' WAS THIS FIRST READ 24900000 BC 8,INP10E NO 25000000 NI READSW(REG5),X'7D' YES--TURN OFF FIRST TIME SW 25100000 BC 15,INP10A AND READ AGAIN 25200000 INP10E L BUFFER,BUFFADD(0,REG5) NEW CHECKED BUFFER ADDRESS 25300000 BC 15,INP10D 25400000 INP10C L BUFFER,CURBUF(0,REG5) UPDATE CURRENT BUFFER ADDRESS 25500000 AH BUFFER,LRECL(0,REG5) 25600000 STH REG6,RECCNT(0,REG5) 25700000 INP10D ST BUFFER,CURBUF(0,REG5) 25800000 BCR 15,TEMP1 CONTINUE 25900000 INP13 CLI COL1(BUFFER),BLANK 30800000 * IF INPUT IS NOT CONTROL CARD - BRANCH 30900000 BC 7,INP20A ERROR--B AD CARD 31000000 TM APT2,INMODON IS IN MODULE BIT ON 31100000 BC 1,INP18 ERROR-CONTROL CRD IN MODULE 31200000 L SYSBRNCH,CRDSCN 31300000 OI APTSWS,X'04' SET INPUT RECEIVED 31400000 * THE CARD SCAN REQUIRES THE CARD BUFFER ADDRESS IN * 31500000 * REGISTER ONE * 31600000 LR TEMP,BUFFER 31700000 BALR SYSRET,SYSBRNCH 31800000 * RETURN ADDRESS IS IN REGISTER 14 * 31900000 TM APT3,NAME TEMPORARY - MAYBE 32000000 * IF CONTROL CARD IS NOT NAME CARD,BRANCH * 32100000 BC 8,INP10 32200000 LH REG6,RECCNT(0,REG5) GET NUMBER RECRDS LEFT IN BUFFER 32220000 BCT REG6,INP14 ARE ANY MORE RECORDS LEFT IN BUFFER 32240000 INP14 OI APT1,AUTOLIB 32320000 * SET AUTOMATIC LIBRARY CALL INDICATOR ON * 32400000 BC 15,EODA 32500000 * * 32600000 * **** END OF DATA ON SYSLIN **** * 32700000 * * 32800000 * * 32900000 IEWLEEON OI APT1,AUTOLIB 33000000 * SET AUTOMATIC LIBRARY CALL BIT ON * 33100000 * SET END OF INPUT ON * 33200000 OI APT3,ENDINPUT 33300000 ST SYSBRNCH,SAVE602 STORE RETURN ADDRESS A26860 33340000 BAL SYSBRNCH,TESTEND GO TO END CARD TEST A26860 33380000 L SYSBRNCH,SAVE602 RESTORE RETURN ADDRESS A26860 33420000 TM APTSWS,X'04' HAS INPUT BEEN RECEIVED A26860 33460000 BC 1,EODA 33500000 TM APTSW2,REINTRY TEST IF FIRST TIME THRU A51444 33510021 BO INP14A BRANCH IF NOT FIRST TIME A51444 33520021 LA TEMP2,MSG12CD SET UP FOR MESSAGE 12 A51444 33550021 L SYSBRNCH,ERDIG GET ADDR OF ERROR RTN A51444 33560021 BALR SYSRET,SYSBRNCH GO TO LOG MESSAGE 12 A51444 33570021 LA TEMP2,MSG14CD SET UP FOR MESSAGE 14 A51444 33580021 L SYSBRNCH,ERDIG GET ADDR OF ERROR RTN A51444 33590021 BALR SYSRET,SYSBRNCH GO TO LOG MESSAGE 14 A51444 33592021 INP14A EQU * ERROR LOGGING BYPASS A51444 33594021 L SYSBRNCH,FINALPRC 33600000 * IF NO GOOD INPUT WAS RECEIVED- GO TO FINAL PROCESSOR * 33700000 BCR 15,SYSBRNCH 33800000 * * 33900000 * **** END OF DATA ON LIBRARY DCB **** * 34000000 * * 34100000 * * 34200000 IEWLCEOD TM IEWLCRBB+24,X'08' IS IGNORE EOF BIT ON? A26860 34230000 BCR 1,SYSRET RETURN TO LIBOP A26860 34260000 TM APT1,LOADMOD IS THIS A LOAD MODULE? A26860 34290000 BC 1,EODA YES - NO END CARD TEST A26860 34320000 ST SYSBRNCH,SAVE602 STORE RETURN ADD. A26860 34350000 BAL SYSBRNCH,TESTEND GO TO END CARD TEST A26860 34380000 L SYSBRNCH,SAVE602 RESTORE RETURN ADD. A26860 34410000 EODA TM APT1,INCLUDE 34500000 * IF MORE INCLUDES REQUESTED,GO TO INCLUDE PROCESSOR * 34700000 BC 1,INP16 34800000 NI APT1,X'DF' 34900000 * CLEAR LOAD MODULE INDICATOR AND * 35000000 * RE-INITIALIZE READ BLOCK * 35100000 LA TEMP,IEWLCRBN 35200000 ST TEMP,IEWLCLAC 35300000 TM APT1,AUTOLIB 35400000 * IF NOT EOF ON SYS(IN(OR EQUIVALENT), CONTINUE * 35500000 BC 8,INP10 35600000 TM APT0,NCALL 35700000 BC 1,INP15 35800000 * IF THE NCALL OPTION WAS SELECTED-ADDRESS ASSGN IS NEXT * 35900000 L SYSBRNCH,AUTOCALL 36000000 BCR 15,SYSBRNCH 36100000 * AUTOMATIC LIBRARY CALL IS NOW SELECTED 36200000 INP15 L SYSBRNCH,RLDADD GO TO RLD/TXT FOR PURGE 36220000 OI NEWSW,X'01' INDICATE PURGE TO TXT/RLD 36240000 BALR SYSRET,SYSBRNCH 36260000 USING *,SYSBRNCH RETURNS ON 15 36280000 L SYSBRNCH,ADDADDA ADDRESS OF ADDRESS ASSIGNMENT 36300000 DROP SYSBRNCH 36320000 BCR 15,SYSBRNCH 36400000 * THE BRANCH TO ADDRESS ASSIGNMENT IS ACCOMPLISHED * 36500000 * THROUGH THE ROOT SEGMENT-THE ROOT ENTRY POINT IS * 36600000 * CALLED-IEWLCADA * 36700000 INP16 L SYSBRNCH,IEWLCICA 36800000 BCR 15,SYSBRNCH 36900000 * SELECT THE INCLUDE PROCESSOR * 37000000 INP18 LH TEMP2,CCERR CONTROL CARD IN MODULE 37400000 L SYSBRNCH,ERDIG 37500000 LA SYSRET,INP10 RETURN TO READ NEXT CARD 37600000 BCR 15,SYSBRNCH BRANCH TO ERROR ROUTINE 37700000 CCERR DC X'1216' 37800000 ADDADDA DC V(IEWLMADA) 37900000 IEWLCICA DC V(IEWLMINC) 38000000 CRDSCN DC V(IEWLMSCN) 38100000 AUTOCALL DC V(IEWLCAUT) 38200000 FINALPRC DC V(IEWLCFNI) 38400000 * ADDRESS OF ABORT ENTRY TO FINAL PROCESSOR * 38500000 * USED TO TERMINATE LINK EDITOR * 38600000 * * 38700000 * THE LOAD OR OBJECT MODULE PROCESSOR IS NOW SELECTED * 38800000 * * 38900000 IEWLMMDI ST BASE,BASAVE 39000000 TM APT1,LOADMOD 39100000 * IF THE INPUT IS LOAD MODULE, BRANCH * 39200000 BC 1,INP270 39300000 * * 39400000 * **** OBJECT MODULE PROCESSING STARTS **** * 39500000 * **** HERE **** * 39600000 * * 39700000 INP20 CLI COL1(BUFFER),X'02' 40200000 * IF THE CARD IS OBJECT MODULE, BRANCH * 40300000 BC 8,INP40 40400000 B INP13 CHECK FOR CONTROL CARD 40450000 INP20A LH TEMP2,BADCARDO NOT OBJ MODULE INPUT 40500000 L TEMP1,INPADD 40600000 INP21 L SYSBRNCH,ERDIG 40700000 * BRANCH TO ERROR ROUTINE * 40800000 BALR 14,15 40900000 LR SYSBRNCH,TEMP1 41000000 * SKIP CARD, RETURN TO INPUT CONTROL TO READ NEXT CARD * 41100000 BCR 15,TEMP1 41200000 INP22 LH TEMP2,CONTERR CONTINUATION NOT RECEIVED 41300000 NI APT2,X'FE' 41400000 * CLEAR CONTINUATION BIT * 41500000 LA TEMP1,INP20 41600000 BC 15,INP21 41700000 INP40 TM APT2,X'01' IS CONTINUATION EXPECTED 41740000 BC 1,INP22 YES--WHEN CONTINTUATION IS EXPECTED 41780000 * AND NOT RECEIVED AN ERROR CONDITION ARISES 41820000 LA REG6,16(BUFFER) 41860000 * REG6 CONTAINS THE ADDRESS OF COL 17 * 41900000 OI APT2,INMODON 42000000 * SET IN MODULE INDICATOR ON * 42100000 L TEMP2,COL1(BUFFER) 42200000 * REGISTER 0 CONTAINS COLS 1 THRU 4 * 42300000 L REG3,COL5(BUFFER) 42400000 * REG3 CONTAINS COLS 5 THRU 8 * 42500000 LA REG3,0(REG3) 42600000 LH REG4,COL11(BUFFER) 42700000 * REG4 CONTAINS COLS 11 AND 12 * 42800000 LH REG5,COL15(BUFFER) 42900000 * REG5 CONTAINS COLS 15 AND 16 * 43000000 * * 43100000 * THE FOLLOWING CODE EXAMINES COLS 1 THRU 4 AND * 43200000 * DETERMINES WHAT TYPE OF CARD WAS INPUT. IT THEN * 43300000 * BRANCHES TO THE APPROPRIATE SECTION OF CODE TO * 43400000 * PROCESS THE CARD * 43500000 LA READCNT,5 43600000 LA TEMP,SYMTAB 43700000 INP50 LM SYSRET,SYSBRNCH,0(TEMP) 43800000 CR TEMP2,SYSRET 43900000 BC 8,INP60 44000000 LA TEMP,8(TEMP) 44100000 BCT READCNT,INP50 44200000 BC 15,INP20A 44300000 INP60 SLL READCNT,2 44400000 LA TEMP,INP110 44500000 LA TEMP1,INP99 44600000 SWITCH BC 15,SWITCH(READCNT) 44700000 BC 15,INP65 END 44780000 BC 15,INP150 SYM 44860000 BC 15,INP140 ESD 44940000 BC 15,INP130 RLD 45020000 BC 15,INP160 TXT 45100000 * END CARD PROCESSING 45180000 INP65 NI ENDCD,X'FE' END CARD FOUND A26860 45250000 TM APTSWS,X'02' HAVE SYMS BEEN RECEIVED A26860 45320000 * IF SYMS HAVE BEEN RECEIVED,GO TO SYM PROC FOR PURGE * 45400000 BC 1,INP170 45500000 CLI COL33(BUFFER),BLANK DOES END CARD HAVE IDR S21016 45510021 * DATA? (IF NOT PRESENT, S21016 45520021 * COL.33 IS BLANK) S21016 45530021 BE INP70 NO, BRANCH S21016 45540021 OI IDRSWS,OBJIDR TURN ON OBJ.MOD.INDICATOR S21016 45550021 B INP340 GO TO PROCESS IDR DATA S21016 45560021 INP70 TM APT1,ENTRYPT 45600000 * IF AN ENTRY POINT WAS RECEIVED, SKIP THE FOLLOWING * 45700000 BC 1,INP90 45800000 CH REG5,ZBLNK+2 45900000 * IF THE ENTRY POINT IS NOT ABSOLUTE, SKIP TO INP80 * 46000000 BC 8,INP80 46100000 CL REG3,ZBLNK 46200000 BC 8,INP80 46300000 * SET ABSOLUTE INDICATOR ON * 46400000 NI APT1,ABSOLUTE 46500000 ST REG3,EPSM 46600000 INP80 CLI 0(REG6),X'40' 46700000 * IF THE ENTRY POINT IS NOT SYMBOLIC, SKIP TO INP90 * 46800000 BC 8,INP90 46900000 OI APT1,SYMBOLIC 47000000 * SET SYMBOLIC INDICATOR ON AS WELL AS ENTRY POINT INDICATOR * 47100000 OI APT1,ENTRYPT 47200000 MVC EPSM(8),0(REG6) 47300000 INP90 L REG4,COL29(0,BUFFER) 47400000 CL REG4,BLNK 47500000 * IF THERE IS NO LENGTH ON THE END CARD, BRANCH * 47600000 BC 8,INP98 47700000 OI APT2,X'80' 47800000 * SET LENGTH RECEIVED BIT ON * 47900000 INP98 L TEMP,INPADD RETURN TO BEGINNING 48000000 INP99 ST TEMP,BASAVE1 48200000 LA SAVEAREA,REGSA ADDRESS OF SAVE AREA 48300000 OI APTSWS,X'04' 48400000 INP100 BALR SYSRET,SYSBRNCH 48500000 * BRANCH TO PROCESSOR * 48600000 BALR BASE,0 48700000 USING *,BASE 48800000 LM BASE,SAVEAREA,BASAVE 48900000 USING IEWLCINP,BASE 49000000 LR SYSBRNCH,SAVEAREA 49100000 * RETURN TO POINT IN CODE SPECIFIED IN REG 13 * 49200000 BCR 15,SYSBRNCH 49300000 INP110 L SYSBRNCH,INPADD 49400000 TM APTSWS,ESD IS RETURN FROM ESD PROC 49500000 BCR 8,SYSBRNCH 49600000 NI APTSWS,X'FE' CLEAR ESD RETURN 49700000 TM APT1,ESDWRITE 49800000 * IF ESD WRITE INDICATOR IS OFF, BRANCH * 49900000 BCR 8,SYSBRNCH 50000000 NI APT1,X'FE' 50100000 * CLEAR ESD WRITE INDICATOR * 50200000 TM PDSE7,TEST 50300000 * IF TEST OPTION IS OFF, BRANCH * 50400000 BCR 8,SYSBRNCH 50500000 LR TEMP,SYSBRNCH 50600000 * INITIALIZE REGISTERS FOR SYM PROCESSOR (COUNT AND * 50700000 * BUFFER ADDRESS) * 50800000 L REG6,IEWLCLAC 50900000 LH REG4,LRECL(0,REG6) 51000000 L REG6,CURBUF(0,REG6) ADDRESS OF CURRENT INPUT OBJ BF 51100000 L SYSBRNCH,SYMADD 51200000 TM APT1,LOADMOD 51300000 * IF THE INPUT IS OBJECT MOD, BRANCH * 51400000 BC 8,INP111 51500000 SR REG4,REG4 51600000 * INDICATE PURGE FOR SYM * 51700000 BC 15,INP99 51800000 INP111 OI APTSWS,X'02' SET SYM RECEIVED ON (ESD) 51900000 BC 15,INP99 52000000 * RLD PROCESSING * 52700000 INP130 NI APT0,X'FD' 52800000 * ESD PROCESSING * 52900000 BCR 15,TEMP1 53000000 INP140 OI APTSWS,ESD SET ESD CARD BIT ON 53100000 CLC 76(4,BUFFER),CARD1 IS THIS FIRST OBJ CARD A26860 53130000 BCR 7,TEMP1 NO A26860 53160000 ST SYSBRNCH,SAVE602 STORE RETURN ADDRESS A26860 53170000 BAL SYSBRNCH,TESTEND GO TO END CARD TEST A26860 53180000 L SYSBRNCH,SAVE602 RESTORE RETURN ADDRESS A26860 53190000 BCR 15,TEMP1 A26860 53200000 TESTEND TM ENDCD,X'81' WAS END CARD FOUND A26860 53210000 BCR 12,SYSBRNCH YES A26860 53220000 STM 14,15,SAVE602+4 A26860 53230000 LH TEMP2,ERR602+4 ERROR MESSAGE IEW0602 A26860 53240000 L SYSBRNCH,ERDIG ERROR ROUTINE ADDRESS A26860 53250000 BALR 14,15 BRANCH TO ERROR LOG A26860 53260000 LM 14,15,SAVE602+4 A26860 53270000 BCR 15,SYSBRNCH A26860 53280000 * SYM PROCESSING * 53300000 INP150 CLC 76(4,BUFFER),CARD1 FIRST ESD CARD A26860 53330000 BNE NOFRT NO A26860 53360000 OI ENDCD,X'80' TURN ON TEST FOR END CARD A26860 53390000 BAL SYSBRNCH,TESTEND A26860 53420000 NOFRT L SYSBRNCH,INPADD A26860 53450000 LR REG6,BUFFER 53500000 TM PDSE7,TEST 53600000 * IF TEST OPTION IS OFF, GO TO NEXT CARD * 53700000 BCR 8,SYSBRNCH 53800000 L SYSBRNCH,SYMADD 53900000 OI APTSWS,X'02' SET SYM RECEIVED BIT ON 54000000 LA REG4,80 54100000 BCR 15,TEMP1 54200000 * TXT PROCESSING 54300000 INP160 CH REG4,MAXOBJLN VALIDATE DATA LENGTH SA64430 54350000 BH INP20A BRANCH IF HIGH SA64430 54352000 OI ENDCD,X'01' TEST FOR END CARD A26860,SA64430 54360000 TM APTSWS,X'02' HAVE SYMS BEEN RECEIVED A26860 54420000 * IF THEY HAVE, DO A SYM PURGE * 54500000 BC 1,INP170 54600000 OI APT0,X'02' 54700000 * SET TXT BIT ON IN APT * 54800000 BCR 15,TEMP1 54900000 * SYM PURGE BEFORE TXT * 55000000 INP170 SR REG4,REG4 55100000 NI APTSWS,X'FD' CLEAR SYM RECEIVED BIT 55200000 L SYSBRNCH,SYMADD 55300000 BALR TEMP,TEMP1 55400000 L REG6,IEWLCLAC 55500000 * RESET THE BUFFER ADDRESS AND BRANCH TO PROCESS CARD * 55600000 L BUFFER,CURBUF(0,REG6) 55700000 BC 15,INP40 55800000 SCAT EQU X'10' 55900000 ESDREC EQU X'20' 56000000 IDREC EQU X'80' LOAD MODULE RECORD TYPE S21016 56030021 * FOR IDR S21016 56060021 CCW EQU 1 56100000 RLD EQU X'02' 56200000 LSTLST EQU X'08' 56300000 BYTESRLD EQU 6 56400000 SYM EQU X'40' 56500000 * * 56600000 * **** LOAD MODULE PROCESSING STARTS **** * 56700000 * **** HERE **** * 56800000 * * 56900000 INP270 LA TEMP1,INP99 57000000 * SET UP BRANCHING REGISTERS * 57100000 CLI COL1(BUFFER),SYM 57200000 * IF THE RECORD IS NOT SYM, BRANCH * 57300000 BC 7,INP281 57400000 TM PDSE7,TEST 57500000 * IF THE TEST OPTION IS NOT ON, BRANCH * 57600000 BC 8,INP315 57700000 LA TEMP,INP315 RTN ADD TO GO TO INPUT PROC 57800000 SR 4,4 57900000 * INDICATE PURGE, BRANCH * 58000000 L SYSBRNCH,SYMADD 58100000 BCR 15,TEMP1 58200000 INP280 TM COL1(BUFFER),LSTLST 58300000 * IF THE RECORD IS END-OF-MODULE,BRANCH * 58400000 BC 1,INP282 58500000 LA TEMP2,BADCARDL 58600000 L TEMP1,INPADD SKIP THIS RECORD 58700000 BC 15,INP21 BRANCH TO ERROR ROUTINE 58800000 INP282 L TEMP,EOFADD 58900000 L TAMP,INPADD 59000000 * PREPARE TO BRANCH TO END OF FILE AFTER END PROCESS * 59100000 ST TAMP,BASAVE 59200000 L SYSBRNCH,ENDADD 59300000 * BRANCH TO END PROCESSOR * 59400000 BC 15,INP99 59500000 INP281 TM COL1(BUFFER),ESDREC 59600000 * IF RECORD IS NOT ESD, BRANCH * 59700000 BC 8,INP290 59800000 LA TEMP,INP110 59900000 OI APTSWS,ESD SET ESD BIT ON 60000000 LH REG4,6(BUFFER) 60100000 * REG4 CONTAINS THE BYTE COUNT * 60200000 LH REG5,4(BUFFER) 60300000 * REG5 CONTAINS THE ID OF THE FIRST ESD ITEM * 60400000 LA REG6,8(BUFFER) 60500000 * REG6 CONTAINS THE ADDRESS OF THE ESD INFO 60600000 L SYSBRNCH,ESDADD 60700000 BCR 15,TEMP1 60800000 INP290 TM COL1(BUFFER),RLD 60900000 * IF THE RECORD IS NOT RLD, BRANCH * 61000000 BC 8,INP300 61100000 LA REG6,16(BUFFER) 61200000 * REG6 CONTAINS THE ADDRESS OF THE RLD DATA * 61300000 LH REG4,BYTESRLD(BUFFER) 61400000 * REG4 CONTAINS THE RLD BYTE COUNT * 61500000 L SYSBRNCH,TXTADD 61600000 ST DCBADD,BASAVE2 61700000 BALR TEMP,TEMP1 TO RLD PROCESSOR 61900000 INP299 L DCBADD,BASAVE2 62200000 INP300 L BUFFER,RLDINPAD ADDR OF LAOD MOD BUFFER 62300000 * RESTORE DCBADDRESS AND BUFFER ADDRESS * 62400000 TM COL1(BUFFER),CCW 62500000 * IF THE RECORD IS NOT TXT, BRANCH * 62600000 BC 8,INP305 62700000 L REG3,8(BUFFER) 62800000 * REG3 CONTAINS THE ASSIGNED ADDRESS * 62900000 LA REG3,0(REG3) 63000000 LH REG6,BYTESRLD(BUFFER) 63100000 LA REG6,16(BUFFER,REG6) 63200000 L REG4,12(BUFFER) 63260000 LA REG4,0(REG4) 63320000 * REG4 CONTAINS THE TXT BYTE COUNT * 63400000 LH REG5,0(REG6) 63500000 * REG5 CONTAINS THE TXT ID * 63600000 LA TEMP,INP310 64400000 L SYSBRNCH,TXTADD 64500000 OI APT0,X'02' 64600000 * SET TXT INDICATOR ON AND BRANCH TO TXT PROCESSOR * 64700000 BC 15,INP99 64800000 INP305 TM COL1(BUFFER),RLD 64900000 * IF THE RECORD IS NOT RLD BRANCH * 65000000 BC 8,INP320 65100000 INP310 L BUFFER,RLDINPAD ADDR OF LOAD MOD BUFFER 65200000 * RE-INITIALIZE THE BUFFER ADDRESS * 65300000 NI APT0,X'FD' 65400000 * CLEAR TXT INDICATOR * 65500000 TM COL1(BUFFER),LSTLST 65600000 * IF THE RECORD IS END OF MODULE, BRANCH * 65700000 BC 1,INP282 65800000 INP315 L SYSBRNCH,INPADD 65900000 * BRANCH TO INPUT CONTROL * 66000000 BCR 15,SYSBRNCH 66100000 INP320 TM COL1(BUFFER),SCAT 66200000 * IF THE INPUT IS NOT SCATTER, BRANCH 66300000 BZ INP330 GO TO TEST FOR IDR S21016 66400021 BC 15,INP315 66500000 INP330 CLI COL1(BUFFER),IDREC IS RECORD TYPE IDR? S21016 66504021 BNE INP280 IF NOT, BRANCH S21016 66508021 OI IDRSWS,LMDIDR TURN LOAD MOD. INDICATOR S21016 66512021 INP340 STM SAVEAREA,PARMPTR,IDRSAV SAVE LINKAGE REGS (13-1) S21016 66516021 LA SAVEAREA,REGSA LOAD ADDR. OF SAVE AREA M4123 66518021 LA PARMPTR,BUFADDR POINT TO PARAMETER LIST S21016 66520021 L SYSBRNCH,IDRADDR GET ADDR.OF IDR PROCESSOR S21016 66524021 ST BUFFER,BUFADDR PLACE ADDR.OF REC.IN S21016 66528021 * PARAMETER LIST S21016 66532021 BALR SYSRET,SYSBRNCH CALL IDR PROCESSOR S21016 66536021 LM SAVEAREA,PARMPTR,IDRSAV RESTORE LINKAGE REG'S. S21016 66540021 TM IDRSWS,LMDIDR WAS LOAD MOD.IDR JUST S21016 66544021 * PROCESSED? S21016 66548021 BO INP350 YES, CONTINUE PROCESSING S21016 66552021 * WITH NEXT LOAD MOD.RECORD S21016 66556021 NI IDRSWS,MODTYPE NO, TURN OFF MOD.TYPE S21016 66560021 * INDICATORS S21016 66564021 B INP70 CONTINUE PROCESSING S21016 66568021 * OF OBJECT MOD. END CARD S21016 66572021 INP350 NI IDRSWS,MODTYPE TURN OFF MODULE TYPE S21016 66576021 * INDICATORS S21016 66580021 B INP315 RETURN TO LOAD MODULE S21016 66584021 * PROCESSOR S21016 66588021 ENTRY IEWLCDLK 66600000 RNTR EQU 4 66700000 RNT EQU 5 66800000 TEMP4 EQU 0 66900000 TEMP3 EQU 1 67000000 CESD EQU 3 67100000 DLKERROR EQU X'430' 67200000 USING IEWLCDLK,SYSBRNCH 67300000 IEWLCDLK STM RNTR,DCBADD,REGSA SAVE REGISTERS 67400000 SLL RNTR,2 GET RENUMBERING TABLE ENTRY 67500000 AR RNTR,RNT COMPUTE RNT LINE ADDRESS 67600000 ST TEMP3,REGSA+24 67700000 SLL TEMP3,4 COMPUTE CESD LINE ADDRESS 67800000 AR TEMP3,CESD 67900000 NC 9(3,TEMP3),9(TEMP3) IS THE ASSEMBLED ADDRESS ZERO 68000000 BC 8,DLK3 YES,BRANCH TO RETURN 68100000 L REG6,DLKT ADDRESS OF DELINK TABLE 68200000 LH TEMP1,ENDTC INCREMENT CURRENT COUNT OF 68300000 LA TEMP1,1(TEMP1) DELINK TABLE ENTRIES 68400000 CH TEMP1,ENDTX IS DELINK TABLE EXEEDED 68500000 BC 2,DLKTBLOF YES,BRANCH TO ERROR ROUTINE 68600000 STH TEMP1,ENDTC SET DELINK TBL CURRENT COUNT 68700000 LR DCBADD,TEMP1 SAVE UPDATED DELINK COUNT 68800000 STH TEMP1,0(RNTR) SET DELINK TBL LINE IN RNTID 68900000 OI 2(RNTR),X'04' SET DELINK VALUE SAVED BIT 69000000 SLL DCBADD,2 69100000 AR TEMP1,DCBADD COMPUTE DELINK TBL ENTRY ADDRS 69200000 AR REG6,TEMP1 69300000 MVC 2(3,REG6),9(TEMP3) SAVE ASSM. ADDRESS IN DLK TBL. 69400000 MVI 9(TEMP3),0 69500000 TM 3(RNTR),X'40' IS TYPE IN RNT -CHAIN- 69600000 BC 8,DLK2 NO,BRANCH 69700000 MVC 0(2,REG6),14(TEMP3) SAVE CHAIN ID IN DELINK TBL. 69800000 BC 15,DLK3 69900000 DLK2 MVC 0(2,REG6),REGSA+26 MOVE CESDID TO DLK TBL 70000000 DLK3 LM RNTR,DCBADD,REGSA RESTORE 70100000 NI 8(TEMP3),X'EF' CLEAR DELINK BIT IN CESD TYPE 70200000 BCR 15,SYSRET RETURN 70300000 DLKTBLOF LA TEMP2,DLKERROR LOAD REG 0 WITH ERROR CODE 70400000 L SYSBRNCH,ERDIG LOAD REG15 WITH ADDRESS OF 70500000 * ERROR DIAGNOSTIC ROUTINE 70600000 BCR 15,SYSBRNCH THIS IS A TERMINAL ERROR 70700000 ***** ERROR ***** 70800000 DROP SYSBRNCH 70900000 DS 0F 71000000 BASAVE DS 1F 71100000 BASAVE1 DS 1F 71200000 BASAVE2 DS 1F 71300000 SYMTAB DC X'02' 71400000 DC C'TXT' 71500000 TXTADD DC V(IEWLMRAT) 71600000 DC X'02' 71700000 DC C'RLD' 71800000 RLDADD DC V(IEWLMRAT) 71900000 DC X'02' 72000000 DC C'ESD' 72100000 ESDADD DC V(IEWLMESD) 72200000 DC X'02' 72300000 DC C'SYM' 72400000 SYMADD DC V(IEWLMSYM) 72500000 DC X'02' 72600000 DC C'END' 72700000 ENDADD DC V(IEWLMEND) 72800000 RDMACRO DC V(IEWLERDM) 72900000 EOFADD DC V(IEWLCEOD) 73000000 INPADD DC V(IEWLCINP) 73100000 MAXOBJLN DC H'56' TEXT DATA LENGTH SA64430 73150000 BADCARDO DC X'1216' 73300000 CONTERR DC X'1215' 73400000 ERR602 DC F'0',X'223C' ERROR IEWL0602 MESSAGE A26860 73404000 ENDCD DC X'00' SWITCH FOR END CARD TEST A26860 73408000 * 0 BIT X'80' START END CARD TESTING A26860 73412000 * 1-6 SPARE A26860 73416000 * 7 X'01' LOOK FOR END CARD A26860 73420000 CARD1 DC C'0001' END CRD TEST- 1ST ESD CRD A26860 73424000 SAVE602 DS 3F FOR END CRD TEST SAVEAREA A26860 73434000 ZBLNK DC X'00404040' 73460000 BLNK DC C' ' 73500000 IDRADDR DC V(IEWLMIDR) ADDRESS OF IDR PROCESSOR S21016 73550021 IDRSAV DS 5F SAVE AREA FOR IDR RTN. S21016 73600021 BUFADDR DS F IDR PARAMETER LIST S21016 73650021 IEWAPT 73700000 END 73800000 ./ ADD SSI=00011847,NAME=IEWLMINT,SOURCE=0 TITLE ' LINKAGE EDITOR F *** INITIALIZER *** ' 00090000 IEWLMINT CSECT 00180000 * 377100-378000 A26208 00190000 * 456300-463500 A26868 00200000 * 464400-465300 A26867 00210000 * 811800-812700 A34759 00220521 * 389700-401400,417600-426600,730800-738000 S20201 00221021 * 121500 A33415 00222021 * 828000-828900 A30676 00224021 * 496000-496300 A31101 00226021 * 090000-094500,121500,125100,129600,138000-138900,166500, S20007 00230021 * 182700,195300,211500,216000,234900-235800,358200-359100, S20007 00240021 * 515700-517500,764100,768600,861000-862200,870300-873900 S20007 00250021 * 215100,856300-857100 M5970 00260021 *A182700,189000,189900,860400,861000 A37663 00260321 *A261000,272700,664200,763200 S21016 00260721 *C121500,241200,243000-243900,245700-246600,658800,660600,662400 S21016 00261421 *C685800,693000,694800-700200,702000,705600-706500,708300-711000 S21016 00262121 *A471600 A41049 00263021 *D473400 A41049 00266021 *A070200,875700 A47001 00268021 *C141600 M2199 00268421 *C687600 M1382,A51436 00268821 *A094100 A52471 00269221 *A137700 A52471 00269621 *A138600 A52471 00269721 *A739800 A52471 00269821 *C194400 A47971 00269921 *A467100 A47971 00299921 *C470700-471600 A47971 00309921 *C826200-839700 A47971 00319921 *C841500 A47971 00329921 *C842400 A47971 00339921 *C183100 A53196 00349921 *A183100 A53196 00353221 *A098100 A49330 00355221 *A188200 A49330 00356000 *C237600 A49330 00356100 *A237600 A49330 00356400 *D860430-860460 A49330 00356500 *A860600 A49330 00356721 *C860700 A49330 00379921 *A860700 A49330 00389921 *A900000 A49330 00399921 *A229500 A51444 00401921 *D098600,I098100,A189100,I189100,D237600-237700, SA56441 00402321 *D238100-238948,I876900,D900500-900600,I900000 SA56441 00402721 *D190800-191700 SA57205 00403121 *I826300,I827300 SA56472 00403221 *I183140,C183200-183300,D183600 SA57298 00403321 *I516600,D516900-517800,I516800,I541800 SA57107 00411121 *C860688 SA58140 00413121 *I229500 SA67529 00415100 *I827500 SA65833 00417100 *D825300,A830500,I830600,I830800 SA62476 00417500 *I098920,I860800,D861100 SA68819 00417900 USING IEWLMINT,SYSBRNCH 00418921 *FUNCTION/OPERATION: THIS MODULE IS THE SECOND TO BE ENTERED IN THE * 00426721 * LINK EDITOR. IT OPENS THE FOLLOWING DDNAMES- SYSLMOD,SYSLIN, * 00450000 * AND SYSPRINT. IT THEN ALLOCATES STORAGE TO LINK EDITOR * 00540000 * TABLES DEPENDENT UPON THE STORAGE AVAILABLE AT THE TIME. * 00630000 * IT CLEARS OUT THE ALL PURPOSE TABLE AND THE TABLE AREA WHICH * 00720000 * IT ALLOCATES. IT SETS UP THE PDS DIRECTORY INDICATORS TO * 00810000 * THEIR INITIAL VALUES. * 00900000 * IF THE NAME CARD IS USED, IT WILL RE-INITIALIZE FOR A NEW * 00990000 * RECURSION THROUGH LINK EDITOR. * 01080000 * * 01170000 * * 01260000 *ENTRY POINTS IEWLMINT - BEGINNING OF LINK EDITOR LA REG13,SAVEAREA* 01350000 * L REG1,POINTER * 01440000 * TO LIST * 01530000 * BALR 14,15 * 01620000 * IEWLENAM - RECURSIVE ENTRY FOR SECOND LINK EDIT * 01710000 * BCR 15,15 * 01800000 * * 01890000 * * 01980000 *INPUT: THE ADDRESS OF A PARAMETER LIST IS PASSED FROM INITIATOR IN * 02070000 * REGISTER ONE. THE LIST CONTAINS THE ADDRESS OF THE * 02160000 * PARAMETER BYTE COUNT AND POSSIBLY THE ADDRESS OF A LIST * 02250000 * OF DDNAMES * 02340000 * THE FIRST IS USED TO OBTAIN THE PARM FIELD OF THE * 02430000 * EXECUTE CARD. THE BYTE COUNT IDENTIFIES THE NUMBER OF BYTES * 02520000 * OF PARM INFORMATION WHICH FOLLOWS. * 02610000 * * 02700000 * * 02790000 *OUTPUT: THE ADDRESSES AND MAXIMUM ENTRY COUNTS FOR ALL LINK EDITOR * 02880000 * VARIABLE TABLES * 02970000 * * 03060000 * * 03150000 *EXTERNAL ROUTINES IEWLMLOG- WRITE ERROR CODE 03240000 * IEWLMOPT- PROCESSES PARM FIELD OF EXEC CARD 03330000 * * 03420000 * * 03510000 *EXITS-NORMAL AFTER INITIALIZATION IS COMPLETE, TO IEWLMINP TO * 03600000 * INITIATE PROCESSING * 03690000 * * 03780000 *EXITS-ERROR: IF A DDNAME CANNOT BE OPENED ERROR 28,SEVERITY 4 IS * 03870000 * PASSED TO IEWLMLOG. * 03960000 * IF THE MINIMUM CORE CANNOT BE OBTAINED, ERROR 29, * 04050000 * SEVERITY 4 IS PASSED TO IEWLMLOG. * 04140000 * * 04230000 *TABLES/WORK AREAS: 04320000 * * 04410000 * TABLE IS USED BY THE ALLOCATOR ROUTINE TO ASSIGN AREAS IN * 04500000 * GOTTEN STORAGE TO THE VARIABLE TABLES OF THE PROGRAM. * 04590000 * EACH ENTRY CONTAINS 8 SWITCHES IN ONE BYTE DENOTING, FOR * 04680000 * EXAMPLE, WHICH PASSES USE THE TABLE; AN INCREMENT TO WHICH * 04770000 * 156 MUST BE ADDED TO DETERMINE THE ADDRESS IN THE ALL PURPOSE* 04860000 * TABLE AT WHICH THE DETERMINED ADDRESS OF THE TABLE IS TO BE * 04950000 * STORED; A SIMILAR INCREMENT FOR THE NUMBER OF ENTRIES IN THE * 05040000 * TABLE; THE NUMBER OF BYTES IN EACH ENTRY OF THE TABLE; * 05130000 * THE WEIGHT FACTOR OF THE TABLE FOR PURPOSES OF EXPANSION; * 05220000 * AND THE MINIMUM SIZE OF THE TABLE. 05310000 * * 05400000 *ATTRIBUTES: REUSABLE * 05490000 * * 05580000 *NOTES: N/A * 05670000 * * 05760000 DDNAME EQU 40 05850000 EXTRN IEWLMAPT 05940000 EXTRN APTEXLST 06030000 EXTRN IEWLCSDB 06120000 EXTRN IEWLCMDB 06210000 EXTRN IEWLCUDB 06300000 EXTRN IEWLCPDB 06390000 EXTRN IEWLTMDB S20007 06430021 ENTRY IEWLENAM 06480000 ENTRY IEWLXIT2 SYSLMOD OPEN EXIT 06570000 EXTRN APTXLIST SYSLMOD EXIT LIST 06660000 ENTRY MAINGOT 06750000 EXTRN ENQNAME 06930000 EXTRN MINOR 07020000 EXTRN INDDNAME A47001 07060021 ENTRY MSGFOUR A19525 07110000 DDNAMEOF EQU 40 07200000 BASE EQU 12 07290000 REG1 EQU 1 07380000 SYSBRNCH EQU 15 07470000 REG3 EQU 3 07560000 REG4 EQU 4 07650000 LEN4 EQU 4 REG 4 FOR SYSLMOD ADJUST SIZE 07740000 REG7 EQU 7 07830000 REG8 EQU 8 07920000 REG11 EQU 11 08010000 REG10 EQU 10 08100000 REG5 EQU 5 08190000 LEN5 EQU 5 REG 5 FOR TEXT BUFFER ADJUST USE 08280000 ZERO EQU 0 08370000 REG13 EQU 13 08460000 REG14 EQU 14 08550000 REG9 EQU 9 08640000 OPENBIT EQU X'10' 08730000 OPENFLAG EQU 48 08820000 SYSRET EQU 14 08910000 LEN6 EQU 6 08960021 SYSTERM EQU 5 S20007 09010021 SYSPRINT EQU 6 S20007 09060021 TCBTSTSK EQU X'80' TIME SHARING FLAG IN TCBTSFLG FIELD S20007 09080021 SYSLIN EQU 7 S20007 09110021 SYSLMOD EQU 8 S20007 09160021 SYSUT1 EQU 9 S20007 09210021 TERMOFF EQU X'FD' TERM OPTION TURNED OFF S20007 09230021 TSO EQU X'80' TSO SWITCH IN APTSWS S20007 09260021 TERM EQU X'02' TERM SWITCH IN NEWSW S20007 09310021 SNGLIN EQU X'01' SWITCH FOR 1 LINE OF OPTS.S20007 09360021 DCBS EQU X'10' DCBS SWITCH S20007 09410021 CVTREG EQU REG10 CVT PTR REG A52471 09460021 CVT EQU 16 CVT PTR ADDRESS A52471 09510021 APT EQU 2 09540000 BLKSIZ EQU 12 09630000 BLKFAC EQU 16 09720000 REG15 EQU 15 A19525 09810000 TIOTPTR EQU 14 POINTER TO TIOT SA56441 09860021 UCBPTR EQU TIOTPTR POINTER TO UCB SA56441 09870021 LNTHDD EQU 15 LENGTH OF DD ENTRY SA56441 09880021 BINNO EQU LNTHDD BIN NUMBER (2321) SA56441 09890021 D2321 EQU X'05' CODE FOR 2321 DEVICE SA56441 09892021 STOWBIT EQU X'80' STOW DONE SWITCH IN DCB SA68819 09894000 CIND2 EQU X'3D' SWITCH OFFSET IN DCB SA68819 09896000 STM 14,12,12(REG13) 09900000 * SAVE CALLERS REGISTERS * 09990000 BALR BASE,0 10080000 USING *,BASE 10170000 BC 15,OVERNAME TO AVOID THE NAME IDENTIFIER 10260000 DC C'MINT' THE NAME IDENTIFIER 10350000 OVERNAME EQU * 10440000 L APT,APTADD 10530000 * LOAD REGISTER 2 WITH APT ADDRESS * 10620000 USING APTDSECT,APT ESTABLISH ADDRESSABILITY WITH APT 10710000 USING DEFDSECT,RWORK2 10800000 STM 13,14,SYSRTN 10890000 * SAVE SYSTEM RETURN AND SAVE AREA ADDRESS * 10980000 LA REG13,REGSA LOAD REG13 WITH ADDRESS OF 11070000 * SAVE AREA * 11160000 XC HISEV(2),HISEV CLEAR THE HI SEVERITY CODE 11250000 NI SWITCH,X'00' TURN OFF ALL BIT SWITCHES 11340000 L REG3,0(0,REG1) COMPUTE THE ADDRESS OF THE 11430000 LA REG3,0(0,REG3) BYTE COUNT FOR ATTRIBUTES 11520000 ST REG1,REGSAVE1 SAVE PARM REG 11610000 LR REG1,REG3 11700000 NI PDSE7,ZERO 11790000 NI PDSE8,ZERO 11880000 OI PDSE8,X'82' SET 44K LE BIT ON AND DC OPT OFF 11970000 NI APT0,ZERO 12060000 NI APTSWS,SWSINIT INITIALIZE A33415;S20007;S21016 12120021 * BIT 0 & 2-4 A33415;S20007;S21016 12180021 L SYSBRNCH,ATOPTADD 12240000 BALR SYSRET,SYSBRNCH 12330000 CONTIN L REG1,REGSAVE1 12420000 LM SYSTERM,SYSUT1,DCBADRS1 S20007 12510021 * MOVE STANDARD DDNAMES * 12600000 MVC DDNAMEOF(8,SYSLIN),SYSLINNM MOVE SYSLIN DDNAME 12690000 MVC DDNAMEOF(8,SYSLMOD),SYSLMDNM MOVE SYSLMOD DDNAME 12780000 MVC DDNAMEOF(8,SYSUT1),SYSUT1NM MOVE SYSUT1 DDNAME 12870000 MVC DDNAMEOF(8,SYSPRINT),SYSPRTNM MOVE SYSPRINT DDNAME 12960000 MVC DDNAMEOF(8,SYSTERM),SYSTRMNM MOVE SYSTERM DDNAME S20007 13000021 MVC LIBNAME(8),SYSLIBNM MOVE SYSLIB DD NAME 13050000 TM 0(REG1),X'80' ARE DDNAMES PASSED 13140000 BC 1,INT20 NO- BRANCH 13230000 L REG3,4(0,REG1) ADDRESS OF DDNAMES BYTECOUNT 13320000 NI 1(REG3),X'F8' ROUND COUNT MODULO 8 13410000 LH REG4,0(0,REG3) BYTE COUNT OF DDNAMES IN REG4 13500000 LTR REG4,REG4 ARE DDNAMES PASSED 13590000 BC 8,INT20 NO-BRANCH 13680000 LA REG3,2(REG3) ADDRESS OF DDNAMES 13770000 L CVTREG,CVT GET PTR TO CVT A52471 13772021 SH CVTREG,K3 BACK UP TO REL INDIC A52471 13774021 CLI 0(CVTREG),C'2' LOOK FOR REL 20 0R MORE A52471 13776021 BNE TSO2A BYPASS EXTRACT IF NOT A52471 13778021 EXTRACT INITEXAD,'S',FIELDS=(TSO) S20007 13780021 * GET TSO DATA S20007 13782021 ST REG4,XTRTSAVE SAVE REG.4 S20007 13790021 L REG4,INITEXAD GET @ OF TSO FIELD S20007 13800021 LTR REG4,REG4 WAS TSO DEFINED S20007 13810021 BZ TSO2 NO. BRANCH S20007 13820021 TM 0(REG4),TCBTSTSK YES. IS IT TS TASK S20007 13830021 BNO TSO2 NO. DONT SET TSO FLAG S20007 13840021 OI APTSWS,TSO TURN ON TSO FLAG S20007 13850021 TSO2 L REG4,XTRTSAVE RESTORE REG4 S20007 13860021 TSO2A EQU * EXTRACT BYPASS A52471 13862021 LA SYSBRNCH,TEST @ OF DDNAME TEST S20007 13870021 LA REG4,0(REG3,REG4) REG4 CONTAINS END ADDRESS 13950000 BALR SYSRET,SYSBRNCH TEST DDNAME 14040000 MVC DDNAMEOF(8,SYSLIN),0(REG3) MOVE SYSLIN DDNAME 14130000 L REG10,INDDNMAD GET SYSLIN DDNAME SAVAREA M2199 14160021 MVC 0(8,REG10),0(REG3) SAVE SYSLIN DDNAME M2199 14190021 LA REG3,8(REG3) INCREMENT COUNT 14220000 CLR REG3,REG4 IS LOOP DONE 14310000 BC 11,INT20 YES-BRANCH 14400000 BALR SYSRET,SYSBRNCH TEST MEMBER NAME 14490000 BC 15,INT19 BRANCH TO SET MEMBER NAME BIT 14580000 BCR 0,0 PADDING 14670000 INT01 LA REG3,8(REG3) INCREMENT COUNT 14760000 CLR REG3,REG4 IS LOOP DONE 14850000 BC 11,INT20 YES-BRANCH 14940000 BALR SYSRET,SYSBRNCH TEST DDNAME 15030000 MVC DDNAMEOF(8,SYSLMOD),0(REG3) MOVE SYSLMOD DDNAME 15120000 BALR SYSRET,SYSBRNCH DO IT AGAIN 15210000 MVC ACTVLMOD(8),0(REG3) SAVE ACTIVE LMOD DDNAME 15300000 LA REG3,8(REG3) INCREMENT COUNT 15390000 CLR REG3,REG4 IS LOOP DONE 15480000 BC 11,INT20 YES-BRANCH 15570000 BALR SYSRET,SYSBRNCH TEST DDNAME 15660000 MVC LIBNAME(8),0(REG3) MOVE SYSLIB DDNAME 15750000 LA REG3,16(REG3) INCREMENT COUNT 15840000 CLR REG3,REG4 IS LOOP DONE 15930000 BC 11,INT20 YES-BRANCH 16020000 BALR SYSRET,SYSBRNCH TEST DDNAME 16110000 MVC DDNAMEOF(8,SYSPRINT),0(REG3) MOVE SYSPRINT DDNAME 16200000 LA REG3,16(REG3) INCREMENT COUNT 16290000 CLR REG3,REG4 IS TABLE DONE 16380000 BC 11,INT20 YES-BRANCH 16470000 BALR SYSRET,SYSBRNCH TEST DDNAME 16560000 MVC DDNAMEOF(8,SYSUT1),0(REG3) MOVE SYSUT1 DDNAME S20007 16650021 BALR SYSRET,SYSBRNCH DO IT AGAIN 16740000 MVC ACTVUT1(8),0(REG3) SAVE ACTIVE UT1 DDNAME 16830000 LA REG3,32(REG3) INCREMENT ADDRESS S20007 16840021 CLR REG3,REG4 LOOP DONE ? S20007 16850021 BC 11,INT20 YES - BRANCH S20007 16860021 BALR SYSRET,SYSBRNCH TEST DDNAME S20007 16870021 MVC DDNAMEOF(8,SYSTERM),0(REG3) S20007 16880021 BC 15,INT20 DONE 16920000 INT19 OI APTEMP+8,X'80' SET MEMBER NAME RECEIVED TEMP BIT 17010000 MVC APTEMP(8),0(REG3) MOVE MEMBER NAME TO TEMP STORAGE 17100000 BC 15,INT01 BRANCH BACK IN-LINE 17190000 TEST NC 0(8,REG3),0(REG3) IS FIELD ZERO 17280000 BC 8,6(SYSRET) YES BRANCH TO 6 PLUS RETURN 17370000 BCR 15,SYSRET RETURN 17460000 INT20 DEVTYPE ACTVLMOD,DEVSAVE FIND SYSLMOD BLOCK SIZE 17550021 MVC EXITTEST(2),DEVMAXBS+2 SAVE IT FOR EXIT ROUTINE 17640000 GETMAIN EU,LV=200,A=MAINGOT 18000000 L 1,ADDRIND 18090000 MVC 5(3,1),MAINGOT+1 18180000 RDJFCB MF=(E,DCBADRS2) S20007 18270021 SLMDISP EQU X'57' D'PLACEMENT IN JFCB DISP A37663 18280021 ZEROSET EQU X'7F' MASK TO SET BIT 1 TO '0' A37663 18290021 MASKENQ EQU X'40' FOR DISP=OLD IN JFCB A37663 18300021 MVI APTSW2,X'40' INITIALIZE SWITCHES A37663,A53196 18310021 * TURN OFF ENQ BIT (BIT 0) A37663 18312021 * TURN ON IDR BIT (BIT 1) A53196 18314021 L 1,MAINGOT POINT TO JFCB SA57298 18316021 TM SLMDISP(REG1),X'08' TEST IF DISP=SHR SA57298,A37663 18320021 BO SKIPSET YES, DON'T SET ENQ SA57298,A37663 18330021 OI APTSW2,ENQBIT NO, SET ENQ BIT A37663 18340021 SKIPSET EQU * A37663 18350021 * MOVES DSNAME TO MINOR NAME POSITION FOR ENQ A 20341 18540000 ST REG3,TEMP 18630000 L REG3,=V(MINOR) 18720000 MVC 0(44,REG3),0(1) 18810000 L REG3,TEMP 18820000 TM DEVCODE+1,SHRSYSMD TEST IF SYSLMOD SHRD DASD A49330 18860021 BZ CHKENQ GO SEE IF ENQ NEEDED SA56441 18910021 EXTRACT INITEXAD,'S',FIELDS=(TIOT) SA56441 18912021 * GET TIOT POINTER SA56441 18914021 L TIOTPTR,ADDRTIOT PICK UP TIOT ADDRESS SA56441 18920021 USING TIOT,TIOTPTR SA56441 18924421 SR LNTHDD,LNTHDD CLEAR DD LENGTH REG SA56441 18926021 TIOTLP CLI TIOELNGH,X'00' END OF TIOT REACHED SA56441 18928021 BE SKIPENQ YES, LET OPEN CATCH IT SA56441 18928421 CLC TIOEDDNM,ACTVLMOD SYSLMOD ENTRY FOUND SA56441 18928821 BE UCBPRCS YES, BRANCH TO PROCESS SA56441 18929221 IC LNTHDD,TIOELNGH GET LENGTH OF DD ENTRY SA56441 18929621 AR TIOTPTR,LNTHDD POINT TO NEXT DD ENTRY SA56441 18929721 B TIOTLP REPEAT FOR NEXT ENTRY SA56441 18929821 UCBPRCS L UCBPTR,TIOEFSRT-1 PICK UP PTR TO UCB SA56441 18929921 DROP TIOTPTR SA56441 18931921 USING UCB,UCBPTR SA56441 18933921 CLI DEVCODE+3,D2321 DEVICE TYPE 2321 SA56441 18939921 BNE RESV NO, GO TO DO RESERVE SA56441 18949921 LH BINNO,UCBDBBNR-UCBDCELL(,UCBPTR) SA56441 18953221 * PICK UP BIN NUMBER SA56441 18955221 SLA BINNO,4 GET OFFSET TO BIN 0 SA56441 18955621 LA BINNO,UCBDCELL-UCB(,BINNO) SA56441 18956021 * GET OFFSET TO UCB ROOT SA56441 18956421 SR UCBPTR,BINNO POINT TO 2321 UCB SA56441 18956521 RESV ST UCBPTR,ADDRUCB SAVE UCB ADDRESS SA56441 18956621 OI APTSW2,SHRSYSMD INDICATE SHARED SYSLMOD SA56441 18964921 RESERVE (ENQNAME,MINOR,E,44,SYSTEMS),UCB=ADDRUCB SA56441 18966921 * RESERVE THE SYSLMOD DEVICE SA56441 18968921 B SKIPENQ RETURN TO MAIN FLOW SA56441 18970921 DROP UCBPTR SA56441 18971321 CHKENQ EQU * RESERVE BYPASS SA56441 18972921 TM APTSW2,ENQBIT DISP=SHR ON SYSLMOD? A37663 18973421 BO SKIPENQ NO - DON'T ENQUEUE A37663 18981721 ENQ (ENQNAME,MINOR,E,44,SYSTEM) A 20341 18990000 SKIPENQ EQU * A37663 19030021 L 1,MAINGOT A 20341 19260000 MVC OVERRIDE(2),102(1) SAVE OVER/RIDE 19350000 XC 102(2,1),102(1) CLEAN OUT JFCB A47971 19440021 OPEN MF=(E,DCBADRS2),TYPE=J S20007 19540021 NOOR FREEMAIN E,LV=200,A=MAINGOT A 20341 19710000 NI APTSWS,X'EF' TURN OFF OVER-RIDE SWITCH 19800000 USING IHADCB,SYSPRINT A19525 19890000 MVC PRNTNAME(8),DCBDDNAM A19525 19980000 MVC NAMEDD(8),DCBDDNAM A19525 20070000 DROP SYSPRINT A19525 20160000 DEVTYPE PRNTNAME,ANSWER A19525 20250000 LTR REG15,REG15 A19525 20340000 BNZ ABENT10 BRANCH IF DEVTYPE UNSUCCESSFUL A21392 20430021 TM ANSWER+2,X'A0' A19525 20520000 BM BLKGOK A19525 20610000 LA REG15,MSG4 A19525 20700000 ST REG15,MSGFOUR A19525 20790000 MVI MSGFOUR,49 A19525 20880000 * OPEN ((SYSPRINT),(OUTPUT),(SYSLIN),(INPUT),(SYSLMOD),(OUTPUT)) 21060000 BLKGOK LA 1,DCBADRS4 S20007 21090021 TM NEWSW,TERM TERM SPECIFIED? S20007 21120021 BZ TSO3 NO - BRANCH S20007 21150021 LA 1,DCBADRS1 S20007 21180021 TSO3 OPEN MF=(E,(1)) OPEN DATA SETS S20007 21210021 TM OPENFLAG(SYSPRINT),OPENBIT 21240000 BC 8,ABENT10 A21392 21330000 TM IEWLCWBB+24,X'04' WAS ERROR DETECTED 21420000 BC 1,ABENT2A YES, BLKSIZE TOO LARGE M5970 21470021 TM NEWSW,TERM TERM OPTION SPECIFIED? S20007 21530021 BZ TSO5 NO - CONTINUE S20007 21550021 TM OPENFLAG(SYSTERM),OPENBIT OPEN ERROR? S20007 21570021 BC 1,TSO5 NO - CONTINUE S20007 21590021 NI NEWSW,TERMOFF YES--TURN OFF TERM OPTION S20007 21610021 TSO5 TM OPENFLAG(SYSLIN),OPENBIT OPEN ERROR? S20007 21630021 BC 1,INTSET 21690000 OI INTERN1,1 21780000 MVC DDSAV(8),DDNAME(SYSLIN) 21870000 INTSET OI OPENFLAG(SYSLIN),X'08' TURN ON UNLIKE ATTRIBUTES 21960000 INT20A BALR BASE,0 22050000 USING *,BASE 22140000 OI PDSE7,X'02' SET EXECUTABLE BIT ON 22230000 OI PDSE8,X'70' SET NO RLD 1 TXT BITS 22320000 MVC SAVATS(2),PDSE7 SAVE ATTRIBUTES 22410000 MVC SAVATS+2(1),APT0 22500000 BCR 15,0 A20453 22590000 MVI SPACES,54 LINE COUNT IS 54 FIRST TIME 22680000 BC 15,INT21 22770000 DROP BASE 22860000 IEWLENAM MVI SPACES,1 LINE COUNT IS 1 SECOND TIME 22950000 MVI LIBOPEN,C' ' FORCE REOPEN OF LIBRARY SA67529 22960000 OI APTSW2,REINTRY SET NOT FIRST TIME THRU A51444 23000021 INT21 BALR BASE,0 23040000 USING *,BASE 23130000 TM INTERN1,1 OPEN ERROR 23220000 BC 1,INT22 YES BRANCH 23310000 LA REG13,REGSA ADDRESS OF SAVE AREA 23400000 OPEN MF=(E,DCBADRS2) OPEN SYSLMOD S20007 23500021 L SYSLMOD,DCBADRS2 LOAD ADDR. OF SYSLMOD S20007 23580021 INT21A TM OPENFLAG(SYSLMOD),OPENBIT OPEN FAILURE 23670021 BO INT22 BRANCH IF NOT A49330 23780021 OI INTERN1,1 23917400 MVC DDSAV(8),DDNAME(SYSLMOD) 23940000 INT22 EQU * 24030000 SPACE 1 S21016 24060021 ********** CLEAR ALL PORTIONS OF THE ALL PURPOSE TABLE **********S21016 24090021 ********** THAT ARE NOT INITIALIZED ELSEWHERE **********S21016 24120021 SPACE 1 S21016 24150021 XC PDSE1(APT3-PDSE1),PDSE1 CLEAR PDSE1 TO APT3 S21016 24180021 NI APT3,X'01' CLEAR APT3 EXCLDG BIT 7 24210000 XC CTTR(SGT1-CTTR),CTTR CLEAR CTTR TO SGT1 S21016 24300021 XC BITMAP(HISEV-BITMAP),BITMAP CLEAR BITMAP TO HISEV S21016 24390021 * DO NOT CLEAR THE HIGHEST SEVERITY CODE 24480000 XC INCBRKPT(ENCDX-INCBRKPT),INCBRKPT CLEAR INCBRKPT S21016 24540021 * TO ENCDX S21016 24600021 XC ENSPX(SYSRTN-ENSPX),ENSPX CLEAR ENSPX TO SYSRTN S21016 24660021 MVC REGSA+5(3),SYSRTN+1 SAVE POINTER BACK 24750000 SPACE 2 24840000 R0 EQU 0 24930000 RPARAM EQU 1 PARAMETER REGISTER 25020000 RINDEX EQU 3 INDEX REGISTER 25110000 RWORK2 EQU 4 WORK REGISTERS 25200000 RWORK3 EQU 5 25290000 RWORK4 EQU 6 25380000 RWORK5 EQU 7 25470000 RWORK9 EQU 9 S20007 25510021 NUMBGROS EQU 9 NUMBER OF GROWS POSSIBLE 25560000 RWORK6 EQU 10 25650000 TABLLIST EQU 11 GPR USED TO ADDRESS LIST OF TABLS 25740000 RBASE EQU 12 BASE REGISTER 25830000 RSAVE EQU 13 POINTER TO SAVE AREA 25920000 RRETURN EQU 14 RETURN REGISTER 26010000 RLINK EQU 15 LINKAGE REGISTER 26100000 PTRLEN EQU 4 LENGTH OF A FOUR-BYTE S21016 26130021 * ADCON FOR USE IN A MOVE S21016 26160021 OVERBIT EQU X'20' BIT TESTED FOR OVERLAY 26190000 LOWZEROS EQU X'07' TEST FOR DOUBLE 26280000 LOWZERO EQU X'03' SINGLE WORD ALIGNMENT 26370000 ENDFLAG EQU X'FF' END FLAG FOR LIST 26460000 SWITCHES EQU 0 INCREMENT IN LIST ENTRY OF SWTCHS 26550000 OVERLAY EQU X'80' BIT DENOTING OVERLAY TABLE 26640000 FIRSTPAS EQU X'40' FIRST PASS TABLE 26730000 INTERPAS EQU X'20' INTERMED. PASS TABLE 26820000 SECONDPS EQU X'10' SECOND PASS TABLE 26910000 DBLWORDB EQU X'08' DBL WORD BOUNDARY 27000000 WORDBNDR EQU X'04' SGL 27090000 CUTOFF EQU X'02' SPECIAL PROCESSING 27180000 ZERONTRY EQU X'01' ZEROTH ENTRY PROV 27270000 SWSOFF EQU X'00' IMMEDIATE BYTE TO S21016 27280021 * INIALIZE A BYTE OF S21016 27290021 * SWITCHES TO ZEROES S21016 27300021 SWSINIT EQU X'47' IMMEDIATE BYTE TO S21016 27310021 * INITIALIZE APTSWS BITS S21016 27320021 * 0,2,3 & 4 TO ZEROES S21016 27330021 ADDRINCR EQU 1 ADDR INCREMENT 27360000 ENTRINCR EQU 2 ENTR 27450000 BYTSENTR EQU 3 WEIGHT 27540000 WEIGHT EQU 4 MINIMUM SIZE 27630000 MINSIZE EQU 6 27720000 ENTRYSIZ EQU 8 SIZE OF LIST ENTRY 27810000 DC EQU X'80' 27900000 FRSTIME EQU X'80' 27990000 HIAROPT EQU X'04' HIARCHY BIT IN NEWSW IN APT 28080000 ERRORTN EQU X'DC' 28170000 BADLIN EQU X'43B' 28260000 EJECT 28350000 L RWORK2,DEFVCON FETCH ADDR OF IEWLMDEF 28440000 L REG1,VALUE1 FETCH MAX MAIN STOR AVAILABLE 28530000 CLC DESPNT(4),CON88K CHECK WHICH DESIGN 28620000 BC 4,FORTY4 BR IF 44K 28710000 BC 2,ONE28 BR IF 128K OR GR 28800000 S REG1,LLEGF88 REDUCE BY F88 LARGEST LEG 28890000 BC 15,PREPGM GO AROUND 28980000 FORTY4 S REG1,LLEGF44 REDUCE BY F44 LARGEST LEG 29070000 BC 15,PREPGM GO AROUND 29160000 ONE28 S REG1,LLEGF128 REDUCE BY F128 LARGEST LEG 29250000 PREPGM EQU * 29340000 ST REG1,MAXSTOR AND PLACE IN GETMAIN MAX REQ 29430000 MVC TOTWT(8),NORMWT SET 29520000 TM SAVATS,OVERBIT TEST SAVED BIT FOR OVERLAY OPT 29610000 BC 8,ALL001 NONE, CONTINUE 29700000 MVC TOTWT(8),OVLAYWT YES, RESET PARAMETERS 29790000 MVI ALL010SW+1,X'00' SET SWITCH TO KEEP OVERLAY TABLES 29880000 ALL001 EQU * 29970000 LH RWORK2,DUMHRWT FETCH DUMMY HIAR TABLE WEIGHT 30060000 LH REG10,DUMHRMN FETCH DUMMY HIAR TABLE MIN BYTES 30150000 TM NEWSW,HIAROPT TEST HIAR BIT 30240000 BC 8,ALL002 NO, CONTINUE 30330000 MVC TOTWT(8),HIARWT YES, RESET PARAMETERS 30420000 LH RWORK2,WEIGHTHR FETCH TRUE HIAR TABLE WEIGHT 30510000 LH REG10,MINBTHR FETCH TRUE HIAR TABLE MIN BYTES 30600000 ALL002 EQU * 30690000 STH RWORK2,HIARSLOT+4 PLACE HIAR WEIGHT IN ALLOCATION TAB 30780000 STH REG10,HIARSLOT+6 PLACE HIAR MIN BT IN ALLOCATION TAB 30870000 TM NEWSW,FRSTIME IS THIS THE FIRST TIME IN INT 30960000 BC 8,FSTENTRY BRANCH IF 1ST TIME THRU 31050000 REUSSW BC 0,GOODLIN DUMMY BR FOR REUSABILITY 31140000 MVI REUSSW+1,X'F0' MAKE IT UNCOND IF LE IS KLUDGE 31230000 L RWORK3,MAINREQ FETCH MINIMUM MAIN STOR REQ 31320000 S RWORK3,BUFCON SUBTRACT MIN BUFFER AREA REQ 31410000 ST RWORK3,MAINREQ REPLACE MINIMUM MAIN STOR REQ 31500000 BC 15,GOODLIN BYPASS ALL TABLE ALLOCATION 31590000 FSTENTRY EQU * 31680000 NI APT3,X'00' CLEAR APT3 IF 1ST TIME TH 31770000 GETMAIN VU,LA=MAINREQ,A=MAINGOT 31860000 * GET AS MUCH STORAGE AS POSSIBLE 31950000 MVC COREADR(8),MAINGOT SAVE FOR ERROR FREEMAIN 32040000 L RWORK3,MAINLEN LOAD LENGTH OF AREA RECEIVED 32130000 L REG10,MAINLEN FETCH RETURNED LENGTH 32220000 S REG10,MAINREQ REDUCE BY REQUIREMENT 32310000 AH REG10,TXT6K BUT ADD IN TXT BUF SIZE 32400000 C REG10,VALUE2 COMPARE FOR SUFFICIENCY 32490000 BC 4,ALTERV2 NOT ENOUGH 32580000 NOWTEST EQU * 32670000 LH REG10,TXT6K SEE IF VALUE2 IS 32760000 C REG10,VALUE2 GR THAN 6K 32850000 BC 11,SIXK NO-BRANCH 32940000 L REG10,CON60K UPDATE 33030000 SH REG10,TXT6K THE 60K CONSTANT 33120000 A REG10,VALUE2 TO 33210000 ST REG10,CON60K 60K + (VALUE2 - 6K) 33300000 L REG10,CON32K UPDATE 33390000 SH REG10,TXT6K THE 32K CONSTANT 33480000 A REG10,VALUE2 TO 33570000 ST REG10,CON32K 32K + (VALUE2 - 6K) 33660000 BC 15,GRSIXK 33750000 SIXK EQU * 33840000 * 33930000 MVC VALUE2+2(2),TXT6K USE 6K ALWAYS 34020000 * 34110000 GRSIXK EQU * 34200000 C RWORK3,CON60K CAN WE PROVIDE A MAX BLK FCTR OF 40 34290000 BC 11,ALLM40 YES 34380000 C RWORK3,CON32K CAN WE PROVIDE A BLK FCTR OF 10 34470000 BC 11,ALLM10 YES 34560000 MVC MAXBF(2),M05 NO-PROVIDE A MAX BLK FCTR OF 5 34650000 MVC LINSIZE(4),LINMIN USE MIN SYSLIN AND SYSPRINT SIZES 34740000 BC 15,FETCHADR 34830000 ALTERV2 EQU * 34920000 N REG10,MASK2K SET VALUE2 TO 2048 BYTE BOUNDARY 35010000 ST REG10,VALUE2 CHANGE VALUE2 35100000 BC 15,NOWTEST GO BACK 35190000 ALLM10 MVC MAXBF(2),M10 PROVIDE A MAX BLK FACTOR OF 10 35280000 MVC LINSIZE(4),LININT USE INT SYSLIN AND SYSPRINT SIZES 35370000 BC 15,FETCHADR 35460000 ALLM40 MVC MAXBF(2),M40 PROVIDE A MAX BLK FACTOR OF 40 35550000 MVC LINSIZE(4),LINMAX USE MAX SYSLIN AND SYSPRINT SIZES 35640000 FETCHADR LH RWORK2,PRTSIZE GET MAX. PRTBUF SIZE 35730000 LH REG1,IEWLCWBB+12 LOAD BLOCKSIZE 35760021 TM APTSWS,TSO IN TSO MODE? S20007 35790021 BZ TSO6 NO - CONTINUE S20007 35820021 LA REG1,121 YES--SET UP A FULL BUFFER S20007 35850021 * EVEN THO LRECL ONLY 81 S20007 35880021 TSO6 LA REG1,7(REG1) ROUND UP TO S20007 35910021 N REG1,ALIGNX A MULTIPLE OF EIGHT 36000000 STH REG1,PRTSIZE SAVE REAL SIZE FOR ALLOCATION 36090000 SR RWORK2,REG1 COMPUTE STORAGE AVAIL. TO TABLES 36180000 AR RWORK2,RWORK2 DOUBLE VALUE FOR BOTH BUFFERS 36270000 STH RWORK2,DIFFSAVE SAVE DIFFER. FOR LATER 36360000 L RWORK2,MAINGOT FETCH ADDR OF OBTAINED STORAGE 36450000 ST RWORK2,IEWLCRBB+4 PLACE 1ST LIBRARY BUFFER ADDR 36540000 AH RWORK2,LINSIZE ADD BUFFER SIZE TO ADDR 36630000 SH RWORK3,LINSIZE SUB BUFFER SIZE FROM LENGTH 36720000 ST RWORK2,IEWLCRBB+8 PLACE 2ND LIBRARY BUFFER ADDR 36810000 AH RWORK2,LINSIZE ADD BUFFER SIZE TO ADDR 36900000 SH RWORK3,LINSIZE SUB BUFFER SIZE FROM LENGTH 36990000 ST RWORK2,IEWLCRBN+4 PLACE 1ST SYSLIN BUFFER ADDR 37080000 AH RWORK2,LINSIZE ADD BUFFER SIZE TO ADDR 37170000 SH RWORK3,LINSIZE SUB BUFFER SIZE FROM LENGTH 37260000 ST RWORK2,IEWLCRBN+8 PLACE 2ND SYSLIN BUFFER ADDR 37350000 AH RWORK2,LINSIZE ADD BUFFER SIZE TO ADDR 37440000 SH RWORK3,LINSIZE SUB BUFFER SIZE FROM LENGTH 37530000 ST RWORK2,IEWLCWBB+4 PLACE 1ST SYSPRINT BUFFER ADDR 37620000 MVI 1(RWORK2),X'40' CLEAR SYSPRINT BUFFER A26208 37710000 MVC 2(120,RWORK2),1(RWORK2) A26208 37800000 ST RWORK2,IEWLCWBB+20 37890000 AH RWORK2,PRTSIZE INCREMENT ADDRESS 37980000 SH RWORK3,PRTSIZE DECREMENT LENGTH 38070000 ST RWORK2,IEWLCWBB+8 PLACE 2ND SYSPRINT BUFFER ADDR 38160000 AH RWORK2,PRTSIZE INCREMENT ADDRESS 38250000 SH RWORK3,PRTSIZE DECREMENT LENGTH 38340000 TM SAVATS+1,DC TEST FOR DOWNWARD COMP IN LM 38430000 BC 8,PROV1K BR IF IT IS TO BE DC 38520000 * CONTINUE IF NOT DC 38610000 * 38700000 * DEVTYPE FOR SYSLMOD DONE BEFORE OPEN 38790000 MVC TXTSIZE(2),TXT18K USE 18K 38880000 LA REG10,TXT18K LOAD ADDR OF LIST S20201 38980021 PROVNK CLC DEVMAXBS+2(2),0(REG10) COMPARE BLOCKING S20201 39080021 BC 11,TRYUT1 DEVTYPE > LIST VALUE S20201 39180021 MVC TXTSIZE(2),2(REG10) USE NEXT SIZE IN LIST S20201 39280021 LA REG10,2(REG10) GET ITS ADDR S20201 39380021 CLC TXT1K(2),0(REG10) IS BLKSIZE 1K? S20201 39480021 BNE PROVNK IF NOT, TEST AGAIN S20201 39580021 PROV1K MVC TXTSIZE(2),TXT1K USE 1K 40230000 TRYUT1 EQU * 40320000 L REG10,VALUE2 FETCH VALUE2 40410000 SRL REG10,1 DIVIDE BY 2 40500000 CH REG10,TXT20K SEE IF 18K RECORDS NEEDED 40590000 BC 4,TESTSIZE BR IF NO 40680000 OI SWITCH,X'80' TURN ON BIT TO PROVIDE 5K RLD BUF 40770000 TESTSIZE EQU * 40860000 CH REG10,TXTSIZE SEE IF WE CAN DOUBLE BUFFER 40950000 BC 11,NOFIXT BR IF OK 41040000 STH REG10,TXTSIZE USE SMALLER VALUE FOR RCD SIZE 41130000 NOFIXT EQU * 41220000 DEVTYPE ACTVUT1,DEVSAVE FIND MAXIMUN TEXT BUFFER RECORD SIZE 41310000 * 41400000 NI DEVMAXBS+3,X'F8' SET TO DOUBLE WORD BOUNDARY 41490000 MVC SZSYSUT1+2(2),DEVMAXBS+2 ESTABLISH SYSUT1 MAX BYTES/TRK 41580000 MVC UT1SIZE+2(2),TXT18K USE 18K 41670000 LA REG10,TXT18K LOAD ADDR OF LIST S20201 41770021 PROVMK CLC DEVMAXBS+2(2),0(REG10) COMPARE BLOCKING S20201 41870021 BC 11,TRYNXT DEVTYPE > LIST VALUE S20201 41970021 MVC UT1SIZE+2(2),2(REG10) USE NEXT SIZE IN LIST S20201 42070021 LA REG10,2(REG10) GET ITS ADDR S20201 42170021 CLC TXT1K(2),0(REG10) IS BLKSIZE 1K? S20201 42270021 BNE PROVMK IF NOT, TEST AGAIN S20201 42370021 MVC UT1SIZE+2(2),TXT1K USE 1K 42750000 TRYNXT EQU * 42840000 C REG10,UT1SIZE SEE IF WE CAN DOUBLE BUFFER 42930000 BC 11,NOFIXU BR IF OK 43020000 ST REG10,UT1SIZE USE SMALLER VALUE FOR RCD SIZE 43110000 NOFIXU EQU * 43200000 STM LEN4,LEN6,SPACES+8 STORE REGISTER FOR USE 43290000 SR LEN4,LEN4 CLEAR REGISTER 4 43380000 LH LEN5,TXTSIZE MAXIMUM SYSLMOD SIZE 43470000 LH LEN6,UT1SIZE+2 LOAD MAXIMUM SUST1 BUFFER SIZE 43560000 CR LEN5,LEN6 IS SYSLMOD SIZE GREATER THAN SYSUT1 SIZE 43650000 BH NOFX YES 43740000 LR LEN6,LEN5 READJUST FOR DIVISION 43830000 LH LEN5,UT1SIZE+2 LOAD SYSUT1 BUFFER SIZE INTO RER. 5 43920000 * DIVID LARGER OF SYSLMOD OR SYSUT1 BUFFER SIZE INTO EACH OTHER 44010000 * TO FIND EVEN MULTIPLE 44100000 NOFX DR LEN4,LEN6 44190000 LTR LEN4,LEN4 WERE SIZES AN EVEN MULTIPLE OF EACH OTHER 44280000 BC 8,NORMDER YES 44370000 SR LEN4,LEN4 44460000 MR LEN4,LEN6 FIND EVEN MULTIPLE SIZE 44550000 CLC TXTSIZE(2),UT1SIZE+2 IS SYSLMOD SIZE GREATER 44640000 BL UT1MORE NO 44730000 STH LEN5,TXTSIZE READJUST SYSLMOD MAXIMUM RECORD SIZE 44820000 BC 15,SHIFT2 44910000 UT1MORE STH LEN5,UT1SIZE+2 READJUST UT1 BUFFER SIZE 45000000 NORMDER LH LEN5,TXTSIZE LOAD SYSLMOD BUFFER SIZE 45090000 SHIFT2 SLL LEN5,1 MULTIPLE SYSLMOD BUFFER SIZE BY 2 45180000 READJT L LEN4,VALUE2 45270000 TM SWITCH,X'80' ARE 4K UBFFERS AVAILABLE FOR RLD RECORDS 45360000 BC 8,NOBUFF NO 45450000 SH LEN4,TXT4K SUBTRACT FOUR K FROM BUFFER AREA 45540000 NOBUFF LH LEN6,TXTSIZE A26868 45630000 CH LEN6,UT1SIZE+2 A26868 45720000 BH MULT2 A26868 45810000 LH LEN6,UT1SIZE+2 A26868 45900000 MULT2 AR LEN5,LEN6 A26868 45990000 CR LEN4,LEN5 A26868 46080000 BH MULT2 A26868 46170000 BE ENDFIX A26868 46260000 SR LEN5,LEN6 A26867 46350000 ST LEN5,VALUE2 A26867 46440000 ENDFIX LM LEN4,LEN6,SPACES+8 RESTORE REGISTERS USED 46620000 MVC MULTSIZE+2(2),TXTSIZE ESTABLISH MULTIPLICITY SIZE 46710000 CLC MULTSIZE+2(2),EXITTEST COMPARE TO BLOCK SIZE A47971 46760021 BNH MULTFIX BRANCH IF USABLE A47971 46770021 MVC MULTSIZE+2(2),EXITTEST OVERRIDE WITH BLK SIZE A47971 46780021 MULTFIX EQU * OVERRIDE BYPASS A47971 46790021 L SYSLMOD,DCBADRS2 GET ADDR OF SYSLMOD DCB 46800000 USING IHADCB,SYSLMOD 46890000 CLC MULTSIZE+2(2),DCBBLKSI COMPARE MULT. TO BLKSIZE 46980000 BNH MULTOK MULT. LESS A47971 47070021 MVC MULTSIZE+2(2),DCBBLKSI USE BLKSIZE AS MULT. A47971 47160021 MULTOK EQU * A41049 47180021 NI MULTSIZE+3,X'F8' RND RECSIZES DOWN TO MULT OF 8 A26872 47200021 DROP SYSLMOD 47250000 LH RWORK5,TXT1K FETCH TWICE SIZE INTO BUFFER 47430000 TM SWITCH,X'80' PROVIDE A 5K RLD BUFFER 47520000 BC 8,ITERATE BR IF NO 47610000 LH RWORK5,TXT5K GET TWICE SIZE OF RLD BUFFER 47700000 ITERATE SRL RWORK5,1 DIVIDE BY TWO 47790000 C RWORK5,SZSYSUT1 COMPARE THIS SIZE TO MAX 47880000 BC 2,ITERATE LOOP IF GR TH MAX ALLOWABLE 47970000 STH RWORK5,RLDBUFSZ SET THIS SIZE IN BUF SIZE 48060000 LH RWORK5,MAXTKS1 FETCH 8K CONSTANT 48150000 C RWORK5,SZSYSUT1 COMPARE THIS SIZE TO MAX 48240000 BC 4,HAVEMAX BR IF LESS THAN MAX 48330000 L RWORK5,SZSYSUT1 FETCH ACTUAL MAX 48420000 HAVEMAX EQU * 48510000 STH RWORK5,MAXTKS1 PLACE IN MAX TRACK SIZE 48600000 SLL RWORK5,2 MULTIPLY BY 4 48690000 STH RWORK5,MAXTKS2 PLACE IN MAX TRACK SIZE X 4 48780000 ST RWORK2,RLDOUT1 PLACE RLD BUFFER 1 ADDR 48870000 AH RWORK2,RLDBUFSZ INCREMENT ADDRESS 48960000 SH RWORK3,RLDBUFSZ DECREMENT LENGTH 49050000 ST RWORK2,RLDOUT2 PLACE RLD BUFFER 2 ADDRESS 49140000 AH RWORK2,RLDBUFSZ INCREMENT ADDRESS 49230000 SH RWORK3,RLDBUFSZ DECREMENT ADDRESS 49320000 MVC RLDSIZE+2(2),RLDBUFSZ SET RLD BUF SIZE IN APT 49410000 ST RWORK2,TXTBFBEG PLACE LOAD MOD OR TXT BUFFER ADDR 49500000 L RWORK5,VALUE2 FETCH VALUE2 49590000 TM SWITCH,X'80' A31101 49600021 BC 8,L5KRLD A31101 49610021 SH RWORK5,TXT4K A31101 49620021 L5KRLD EQU * A31101 49630021 CH RWORK5,TXT6K SEE IF VALUE2 IS GR TH 6K 49680000 BC 2,GRTH6K YES-BRANCH 49770000 LH RWORK5,TXT6K NO-THEN USE 6K INSTEAD 49860000 GRTH6K AR RWORK2,RWORK5 INCREMENT BY SIZE OF TEXT BUF 49950000 SR RWORK3,RWORK5 DECREMENT BY SIZE OF TEXT BUF 50040000 ST RWORK2,TXTBFEND PLACE ADDR OF END OF TEXT BUF 50130000 STM RWORK2,RWORK3,MAINGOT RESTORE MAINGOT + LENGTH 50220000 L REG8,DCBADRS3 FETCH ADDR OF SYSUT1 DCB 50310000 USING IHADCB,REG8 50400000 MVC DCBBLKSI(2),SZSYSUT1+2 UPDATE SYSUT1 DCB 50490000 DROP REG8 50580000 CLC MAXBF(2),IEWLCWBB+16 COMPARE SYSPRT BLKFC 50670000 BL ABENT2 EXIT IF SYSPRINT BLOCKING TOO GREAT 50760000 L REG10,IEWLCWBB+20 GET ADDR OF SYSPRINT BUFFER 50850000 MVI 0(REG10),X'8B' CC TO RESTORE 50940000 L REG15,COREADR PICK UP GETMAIN'D ADDR M2889 50960021 A REG15,CORELEN ADD IN LENGTH M2889 50980021 ST REG15,FFCADR STORE ADDR IN APT M2889 51000021 L SYSBRNCH,PRNTAD ADDRESS OF PRINT ROUTINE 51030000 BALR SYSRET,SYSBRNCH 51120000 L REG10,IEWLCWBB+20 ADDRESS OF PRINT BUFFER 51210000 TEST1ST CLI MSGONE,X'00' TEST 1ST BYTE FOR ZEROES 51300000 BC 8,TEST2ND YES - TRY NEXT 51390000 L RWORK2,MSGONE FETCH ADDR OF MSG 51480000 NI SWITCH,X'FE' TURN OFF SINGLE LINE SWITCH S20007 51490021 LH RWORK5,IEWLCWBB+14 LOAD LRECL S20007 51500021 LA RWORK9,0(RWORK5,RWORK2) ADDRESS OF CHARACTER AT S20007 51510021 * END OF BUFFER S20007 51520021 BCTR RWORK9,0 S20007 51530021 CLI 0(RWORK9),C' ' IS THE CHARACTER BLANK S20007 51540021 BNE TEST2 NO - BRANCH S20007 51550021 OI SWITCH,SNGLIN TURN ON SINGLE LINE SWITCH S20007 51560021 B HDR1 BRANCH TO PRINT HEADER S20007 51570021 TEST2 CLI 0(RWORK9),C',' IS LAST CHARACTER A COMMA S20007 51580021 BE HDR1 YES - BRANCH TO PRINT S20007 51590021 BCT RWORK9,TEST2 LOOK FOR COMMA TO BREAK LINE S20007 51600021 HDR1 SR RWORK9,RWORK2 GET LENGTH OF MESSAGE S20007 51610021 EX RWORK9,MOVEMSG MOVE MOVE MESSAGE INTO BUFFER S20007 51620021 BALR SYSRET,SYSBRNCH GO PRINT S20007 51630021 TM SWITCH,SNGLIN IS THE MESSAGE CONTINUED S20007 51640021 BC 1,TEST2ND NO - BRANCH S20007 51650021 L REG10,IEWLCWBB+20 GET BUFFER ADDRESS S20007 51660021 MVI 0(RWORK2),C' ' INJECT BLANK TO CLEAR SA57107 51662021 BCTR RWORK9,0 GET MOVE LNG, LINE 1 SA57107 51664021 EX RWORK9,MOVEPAD CLEAR OUT LINE 1 SA57107 51666021 SR SYSRET,SYSRET S20007 51670021 IC SYSRET,MSGONE GET TOTAL LENGTH OF MESSAGE S20007 51680021 LA RWORK2,1(SYSRET,RWORK2) POINT TO END OF TEXT SA57107 51730021 SR RWORK2,RWORK5 POINT TO SECOND LINE SA57107 51740021 MVI 0(RWORK2),X'09' MOVE IN CARRIAGE CTRL S20007,SA57107 51774021 BCTR RWORK5,0 ADJUST FOR MOVE LENGTH SA57107 51776021 EX RWORK5,MOVEMSG MOVE IN REST OF MSG S20007,SA57107 51780021 BALR SYSRET,SYSBRNCH GO PRINT SECOND LINE S20007 51790021 TEST2ND CLI MSGTWO,X'00' TEST 1ST BYTE FOR ZEROES 51840000 BC 8,TEST3RD YES - TRY NEXT 51930000 L REG10,IEWLCWBB+20 ADDRESS OF PRINT BUFFER 52020000 L RWORK2,MSGTWO 52110000 IC SYSRET,MSGTWO FETCH LENGTH OF MSG TWO 52200000 EX SYSRET,MOVEMSG THEN MOVE MSG TWO 52290000 BALR SYSRET,SYSBRNCH PRINT MSG TWO 52380000 TEST3RD CLI MSGTHREE,X'00' 52470000 BC 8,TEST4TH YES - TRY NEXT A19525 52560000 L REG10,IEWLCWBB+20 GET ADDR OF SYSPRINT BUFFER 52650000 L RWORK2,MSGTHREE FETCH ADDR OF MSG 52740000 IC SYSRET,MSGTHREE FETCH LENGTH OF MSG THREE 52830000 EX SYSRET,MOVEMSG THEN MOVE MSG THREE 52920000 BALR SYSRET,SYSBRNCH PRINT MSG THREE 53010000 TEST4TH CLI MSGFOUR,X'00' A19525 53100000 BC 8,DECREQ YES - CONTINUE A19525 53190000 L REG10,IEWLCWBB+20 GET ADDR OF SYSPRINT BUFFER A19525 53280000 L RWORK2,MSGFOUR FETCH ADDR OF MSG A19525 53370000 IC SYSRET,MSGFOUR FETCH LENGHT OF MSG FOUR A19525 53460000 EX SYSRET,MOVEMSG THEN MOVE MSG FOUR A19525 53550000 BALR SYSRET,SYSBRNCH PRINT MSG FOUR A19525 53640000 DECREQ EQU * 53730000 A RWORK3,BUFCON ADD SIZE OF BUFFERS SINCE 53820000 * THEY HAVE BEEN ALLOCATED 53910000 BC 15,SCDENTRY 54000000 * 54090000 MOVEMSG MVC 0(1,REG10),0(RWORK2) PUT MSG INTO SYSPRINT BUFFER 54180000 MOVEPAD MVC 1(1,RWORK2),0(RWORK2) EXECUTED PAD PROPAGATOR SA57107 54230021 * 54270000 EJECT 54360000 SCDENTRY EQU * 54450000 TM SAVATS,OVERBIT TEST FOR OVERLAY 54540000 BC 8,NOTOVLY NOT OVERLAY 54630000 LH RWORK2,DIFFSAVE GET PRTBUF REMAINDER 54720000 LA RWORK6,3000 AMOUNT FOR LARGER CALLS LIST 54810000 CR RWORK6,RWORK2 IS THERE 3000 BYTES LEFT 54900000 BC 12,USESOME YES SO ONLY USE 3000 BYTES 54990000 LR RWORK6,RWORK2 GET ALL OF EXTRA PRTBUF 55080000 USESOME SR RWORK3,RWORK6 KEEP THIS 3000 FROM GENERAL ALLOC. 55170000 LH RWORK2,CALLSLST+6 GET MIN CALLS LIST SIZE 55260000 AR RWORK2,RWORK6 ADD 3000 TO MIN. 55350000 STH RWORK2,CALLSLST+6 SAVE FOR ALLOCATION 55440000 LH RWORK2,ENTRLIST+6 GET MIN ENTRY LIST SIZE 55530000 AR RWORK2,RWORK6 ADD 3000 TO MINIMUM 55620000 STH RWORK2,ENTRLIST+6 SAVE FOR ALLOCATION 55710000 MVC TTRLIST(4),IEWLCRBB+4 PLACE ADDR OF TTR LIST 55800000 MVC SGTBSLOT+6(2),SG256 ALLOW 256 SEGMENTS 55890000 CLC MAXBF(2),M10 CAN WE PROVIDE 256 SEGMENTS 55980000 BC 11,NOTOVLY YES 56070000 MVC SGTBSLOT+6(2),SG200 NO - THEN PROVIDE A MAX OF 200 56160000 NOTOVLY EQU * 56250000 S RWORK3,MAINREQ SUB MINIMUM MAIN STOR REQ 56340000 SR RWORK2,RWORK2 CLEAR REGISTER FOR DIVISION 56430000 SR RWORK6,RWORK6 56520000 D RWORK2,TOTWT CALCULATE NUMBER OF GROWS 56610000 MVC FSTPHIGH(4),MAINGOT INITIALIZE HIGH ASSIGNED ADDRS 56700000 MVC INTPHIGH(8),FSTPHIGH 56790000 LA TABLLIST,TABLE INITIALIZE REGISTERS FOR TABLE 56880000 SR RWORK4,RWORK4 56970000 LA RINDEX,ENTRYSIZ 57060000 ALL010 LR NUMBGROS,RWORK3 REINITIALIZE NUMBER OF GROWS 57150000 TM SWITCHES(TABLLIST),OVERLAY TEST FOR OVERLAY TABLE 57240000 ALL010SW BC 3,ALL0405 YES, SKIP THIS TABLE 57330000 TM SWITCHES(TABLLIST),FIRSTPAS TEST FOR OCCURANCE IN PASS 57420000 BC 8,ALL011 TO FIND HIGHEST UNAVAIL 57510000 L RWORK2,FSTPHIGH ABLE ADDRESS 57600000 ALL011 TM SWITCHES(TABLLIST),INTERPAS 57690000 BC 8,ALL012 57780000 C RWORK2,INTPHIGH 57870000 BC 11,ALL012 57960000 L RWORK2,INTPHIGH 58050000 ALL012 TM SWITCHES(TABLLIST),SECONDPS 58140000 BC 8,ALL020 58230000 C RWORK2,SECPHIGH 58320000 BC 11,ALL020 58410000 L RWORK2,SECPHIGH 58500000 ALL020 TM SWITCHES(TABLLIST),DBLWORDB ALIGN IF NECESSARY 58590000 BC 8,ALL021 58680000 STC RWORK2,ALIGNTST 58770000 TM ALIGNTST,LOWZEROS 58860000 BC 8,ALL030 58950000 SRL RWORK2,3 59040000 LA RWORK2,1(0,RWORK2) 59130000 SLL RWORK2,3 59220000 ALL021 TM SWITCHES(TABLLIST),WORDBNDR 59310000 BC 8,ALL030 59400000 STC RWORK2,ALIGNTST 59490000 TM ALIGNTST,LOWZERO 59580000 BC 8,ALL030 59670000 SRL RWORK2,2 59760000 LA RWORK2,1(0,RWORK2) 59850000 SLL RWORK2,2 59940000 ALL030 IC RWORK4,ADDRINCR(TABLLIST) 60030000 TM SWITCHES(TABLLIST),ZERONTRY TEST FOR NEED TO DECR ADDR 60120000 BC 3,ALL060 YES 60210000 ST RWORK2,CSNO(RWORK4) NO-STORE ADDRESS IN APT 60300000 ALL031 MH NUMBGROS,WEIGHT(TABLLIST) CALC. BYTES TO BE ADDED 60390000 AH NUMBGROS,MINSIZE(TABLLIST) AND ADD 60480000 TM SWITCHES(TABLLIST),CUTOFF TEST FOR SPECIAL CASE 60570000 BC 3,ALL070 YES 60660000 ALL032 LA RWORK5,0(RWORK2,NUMBGROS) NO, ADD TO START ADDRESS 60750000 TM SWITCHES(TABLLIST),FIRSTPAS TEST FOR OCCURANCE IN PASS 60840000 BC 8,ALL033 AND UPDATE HIGH 60930000 ST RWORK5,FSTPHIGH ADDRESSES 61020000 ALL033 TM SWITCHES(TABLLIST),INTERPAS 61110000 BC 8,ALL034 61200000 ST RWORK5,INTPHIGH 61290000 ALL034 TM SWITCHES(TABLLIST),SECONDPS 61380000 BC 8,ALL040 61470000 ST RWORK5,SECPHIGH 61560000 ALL040 IC RWORK4,BYTSENTR(TABLLIST) CALCULATE MAXIMUM NUMBER OF 61650000 SR NUMBGROS-1,NUMBGROS-1 CLEAR REGISTER FOR DIVISION 61740000 DR NUMBGROS-1,RWORK4 ENTRIES 61830000 IC RWORK4,ENTRINCR(TABLLIST) 61920000 C NUMBGROS,MAXENTRS TEST VS MAX POSSIBLE ENTRS 62010000 BC 12,NOWSTORE IF LESS TH OR EQ BRANCH 62100000 L NUMBGROS,MAXENTRS OTHERWISE USE MAX VALUE 62190000 NOWSTORE EQU * 62280000 STH NUMBGROS,CSNO(RWORK4) 62370000 ALL0405 CLI MINSIZE+2(TABLLIST),ENDFLAG TEST FOR END 62460000 BC 7,ALL050 NO, LOOP 62550000 L RPARAM,INTPHIGH YES, DETERMINE HIGHEST ADDRESS 62640000 C RPARAM,SECPHIGH USED 62730000 BC 3,ALL041 62820000 L RPARAM,SECPHIGH 62910000 ALL041 STC RPARAM,ALIGNTST 63000000 TM ALIGNTST,LOWZEROS ALIGN 63090000 BC 8,ALL042 63180000 SRL RPARAM,3 63270000 LA RPARAM,1(0,RPARAM) 63360000 SLL RPARAM,3 63450000 ALL042 ST RPARAM,FFCADR 63540000 L R0,MAINGOT 63630000 A R0,MAINLEN 63720000 SR R0,RPARAM 63810000 FREEMAIN R,LV=(0),A=(1) 63900000 XC CSNO(4),CSNO ZERO OUT SCRATCH LOCATION 63990000 MVI ALL010SW+1,X'30' RESET SWITCH 64080000 B ALLOCEND LEAVE ALLOCATE ROUTINE 64170000 ALL050 SR RWORK2,RWORK2 RESET REGISTER 64260000 BXH TABLLIST,RINDEX,ALL010 LOOP 64350000 ALL060 IC RWORK6,BYTSENTR(TABLLIST) TAKE CARE OF ZEROTH ENTRY 64440000 SR RWORK2,RWORK6 PROVISION 64530000 ST RWORK2,CSNO(RWORK4) 64620000 AR RWORK2,RWORK6 64710000 B ALL031 64800000 ALL070 TM SWITCHES(TABLLIST),X'32' 64890000 BC 1,ALL0702 64980000 CH NUMBGROS,MAXTKS1 65070000 BC 4,ALL032 65160000 LH NUMBGROS,MAXTKS1 65250000 B ALL032 65340000 ALL0702 CH NUMBGROS,MAXTKS2 EXCEED 4 TIMES TRACK SIZE 65430000 BC 4,ALL032 NO--CONTINUE 65520000 LH NUMBGROS,MAXTKS2 YES--RESET TO MAX TRACK SIZE X 4 65610000 B ALL032 65700000 DS 0F 65790000 NORMWT DC AL4(582+IDRWT) TOTAL WEIGHT W/OUT OVLY S21016 65850021 * OR HIAR S21016 65910021 NORMMIN DC AL4(NORMTABS+BUFFERS+DATAMAN+ALIGNM) MIN SPACE NEEDED 65970000 OVLAYWT DC AL4(602+IDRWT) TOTAL WEIGHT WITH OVLY, S21016 66030021 * NOT HIAR S21016 66090021 OVLAYMIN DC AL4(OVLATABS+BUFFERS+DATAMAN+ALIGNM) MIN SPACE NEEDED 66150000 HIARWT DC AL4(604+IDRWT) TOTAL WEIGHT WITH HIAR, S21016 66210021 * NOT OVLY S21016 66270021 HIARCHYM DC AL4(HIARTABS+BUFFERS+DATAMAN+ALIGNM) MIN SPACE NEEDED 66330000 NORMTABS EQU 11098 MIN TABLE AREA REQ W/O OVLY OR HIAR 66420000 IDRWT EQU 176 TOTAL WEIGHT OF NEW S21016 66450021 * TABLES FOR IDR SUPPORT S21016 66480021 OVLATABS EQU 13090 MIN TABLE AREA REQ W/OVLY, NOT HIAR 66510000 HIARTABS EQU 11440 MIN TABLE AREA REQ W/HIAR, NOT OVLY 66600000 BUFCON DC AL4(BUFFERS) 66690000 BUFFERS EQU 9984 MINIMUM BUFFER AREA REQ. 66780000 ALIGNM EQU 7 ALLOWANCE FOR ALIGNMENT 66870000 DATAMAN EQU 2048 SPACE FOR DATA MANAGEMENT AND 66960000 * STOW WORK AREAS 67050000 NONRES EQU 2048 SPACE FOR NONRESIDENT ACCESS 67140000 * METHOD ROUTINES 67230000 MAXTKS1 DC AL2(8184) 67320000 MAXTKS2 DC AL2(32736) 67410000 TOTWT DS 1F TOTAL WEIGHT 67500000 MAINREQ DC X'00000000' REQUEST FOR GETMAIN 67590000 MAXSTOR DC X'01000000' MAXIMUM MAIN STORAGE - 16384K OR LESS 67680000 MAINGOT DC 2A(0) ADDRESS OF MAIN STORAGE GOTTEN 67770000 COREADR DC A(0) TRUE ADR. OF CORE RECIEVED 67860000 CORELEN DC A(0) TRUE LENGTH OF CORE RECIEVED 67950000 MAINLEN EQU MAINGOT+4 LENGTH OF SAME 68040000 CON88K DC X'00016000' CONSTANT OF 88K 68130000 CON60K DC X'0000F000' 88K - 28K (MIN FOR DESIGN POINT) 68220000 * = 60K OR 61440 BYTES 68310000 CON32K DC X'00008000' 52K-20K (MIN FOR DESIGN POINT) 68400000 * = 32K OR 32768 BYTES 68490000 LLEGF44 DC AL4(16898+NONRES) LARGEST LEG IN LE F44 S21016 68580021 LLEGF88 DC AL4(24576+NONRES) LARGEST LEG IN LE F88 68670000 LLEGF128 DC AL4(53248+NONRES) LARGEST LEG IN LE F128 M1382,A51436 68760021 MAXENTRS DC X'00007FFF' MAXIMUM ENTRIES BEF NEG SIGN GOES ON 68850000 DEFVCON DC V(IEWLMDEF) ADDRESS OF CSECT CONTAINING DEFAULTS 68940000 EJECT 69030000 DS 0H FOR ALIGNMENT 69120000 * SSAAEEBBWWWWMMMM SWS,ADDR,ENTS,BYTES,WGT,MINIMUM NO. 69210000 TABLE DC X'7834820100300480' 1 TEXT I/O TABLE BYTES/ENT S21016 69270021 * IS 4 S21016 69330021 SGTBSLOT EQU * 69390000 DC X'F31C880100000100' 2 SEGTAB1 S21016 69480021 DC X'713C8605001E01F4' 3 DELINK S21016 69570021 DC X'30388A01000000A0' 4 ALIAS S21016 69660021 DC X'388C000100000008' 5 8 BYTES PRIOR TO HESD S21016 69750021 DC X'3800780800B00AF0' 6 HESD S21016 69840021 DC X'32487E07005407E0' 7 TEXT NOTE LIST 2 S21016 69930021 DC X'324C8009006C0708' 8 RLD NOTE LIST 2 S21016 70020021 DC X'442C000100000104' 9 INPUT RLD BUFFERS-1ST PASS 70110000 DC X'49407810016012C0' 10 CESD S21016 70200021 HIARSLOT EQU * 70290000 DC X'635800010016015E' 11 HIAR 70380000 DC X'1454000100000300' 12 OUTPUT RLD BUFFERS-2ND PASS 70470000 DC X'6A247A07001501F8' 14 TXT NOTE LIST 1 S21016 70560021 DC X'6A287C09001B01C2' 15 RLD NOTE LIST 1 S21016 70650021 DC X'7400000100000004' 16 RENUMBERING TABLE PREFIX 70740000 DC X'75300004005804B0' 17 RNT + RLC TABLES S21016 70790021 ENTRLIST DC X'9444900600120558' 18A ENTRY LIST S21016 70840021 CALLSLST DC X'E420840100140558' 18B CALLS LIST S21016 70890021 DC X'60989201002C0190' 19 IDR TRANSLATOR DATA TABLE S21016 70940021 DC X'60A09401005803C0' 20 IDR USER - DATA TABLE S21016 70990021 DC X'60A89601002C01C7' 21 IDR IMASPZAP DATA TABLE S21016 71040021 DC X'FF' 22 END FLAG S21016 71090021 * 71190000 * XXXX FORMAT OF HIGH ORDER DIGIT 71280000 * 11XX OVLY 1ST PASS 71370000 * 1X1X OVLY INT PASS 71460000 * 1XX1 OVLY 2ND PASS 71550000 * 01XX NO-OVLY 1ST PASS 71640000 * 0X1X NO-OVLY INT PASS 71730000 * 0XX1 NO-OVLY 2ND PASS 71820000 * 71910000 ALIGNTST DS 1C BYTE USED FOR ALIGNMENT 72000000 DEVSAVE DS 0F 72090000 DEVCODE DC F'0' DEV CODE FROM UCB 72180000 DEVMAXBS DC F'0' MAX BLK SIZE ACCEPTED 72270000 LINMIN DC H'0400' 72360000 PRTMIN DC H'0608' 72450000 LININT DC H'0800' 72540000 PRTINT DC H'1216' 72630000 LINMAX DC H'3200' 72720000 PRTMAX DC H'4840' 72810000 LINSIZE DC H'0' 72900000 PRTSIZE DC H'0' 72990000 TXT18K DC H'18432' 73070021 TXT13K DC H'13312' S20201 73150021 TXT12K DC H'12288' 73230021 TXT6K DC H'6144' 73310021 TXT5K DC H'5120' CONSTANT FOR RLD BUF SIZE 73390021 TXT4K DC H'4096' 73470021 TXT3K DC H'3072' 73550021 TXT2K DC H'2048' 73630021 TXT1K DC H'1024' 73710021 TXT10K DC H'10240' 73790021 TXT20K DC H'20480' 73890000 RLDBUFSZ DC H'0' SIZE OF RLD BUFS 1ST P-OUT 2ND P-IN 73980000 K3 DC H'3' A52471 74030021 K4 DC H'4' 74070000 K8 DC H'8' 74160000 WEIGHTHR DC X'0016' 74250000 MINBTHR DC X'015E' 74340000 DUMHRWT DC X'0000' 74430000 DUMHRMN DC X'0008' 74520000 SG200 DC X'00C8' 74610000 SG256 DC X'0100' 74700000 TXTSIZE DC H'0' 74790000 DIFFSAVE DS H AREA FOR SAVE OF UNUSED PRTBUF 74880000 FSTPHIGH DS 3F CURRENT HIGH ASSIGNED ADDRESSES 74970000 SECPHIGH EQU FSTPHIGH+8 75060000 INTPHIGH EQU FSTPHIGH+4 75150000 MASK2K DC X'FFFFF800' MASK TO SET A VALUE TO MULT OF 2048 75240000 ALIGNX DC X'FFFFFFF8' CONST. FOR DBLE WORD ALIGNMENT 75330000 SWITCH DC X'00000000' 75420000 * BIT 0 IF ON PROVIDE 2-2560 BYTE RLD BUFFERS 75510000 * BITS 1-7 SPARE 75600000 EJECT 75690000 ALLOCEND EQU * END OF ALLOCATE ROUTINE 75780000 TESTLIN CLC MAXBF(2),IEWLCRBN+16 COMPARE SYSLIN BLKFC 75870000 BC 11,GOODLIN EXIT IF VALID BLKFCTR 75960000 MVC LINECNT+1(1),SPACES SET LINE COUNT A33415 76000021 LA R0,BADLIN FETCH MESSAGE NO 76050000 L SYSBRNCH,ERDIG ADDR OF ERROR RTN 76140000 BALR SYSRET,SYSBRNCH PRINT THE ERROR MSG AND EXIT 76230000 GOODLIN EQU * 76320000 MVI IDRSWS,SWSOFF INIALIZE IDR SWITCHES TO S21016 76326021 * ALL ZEROES S21016 76332021 MVC IDRTREND(PTRLEN),IDRTRTAB INIALIZE ADDRESS OF S21016 76338021 * NEXT AVAILABLE BYTE IN S21016 76344021 * IDR TRANSLATOR DATA TABLE S21016 76350021 * TO FIRST BYTE OF TABLE S21016 76356021 MVC IDRUDEND(PTRLEN),IDRUDTAB INIALIZE ADDRESS OF S21016 76362021 * NEXT AVAILABLE BYTE IN S21016 76368021 * IDR USER - DATA TABLE S21016 76374021 * TO FIRST BYTE OF TABLE S21016 76380021 MVC IDRZPEND(PTRLEN),IDRZPTAB INIALIZE ADDRESS OF S21016 76386021 * NEXT AVAILABLE BYTE IN S21016 76392021 * IDR IMASPZAP DATA TABLE S21016 76398021 * TO FIRST BYTE OF TABLE S21016 76404021 NI NEWSW,X'86' INIT. NEWSW S20007 76410021 MVC EPSM(8),BLANKS CLEAR EP SYMBOL TO BLANKS 76500000 MVC PDSE18(8),BLANKS CLEAR MEMBER NAME OF MODULE TO BLNKS 76590000 MVC PDSE7(2),SAVATS RESTORE 76680000 MVC APT0(1),SAVATS+2 ATTRIBUTES 76770000 NI APTSWS,TSO CLEAR SWITCHES, NOT TSO S20007 76830021 OI APTSWS,DCBS INIT. APTSWS S20007 76890021 TM APTEMP+8,X'80' MEMBER NAME RECEIVED A21185 76950000 BZ AROUND NO A21185 77040000 L SYSBRNCH,DCBADRS2 GET SYSLMOD DCB A21185 77130000 L SYSBRNCH,44(SYSBRNCH) DEB ADDRESS A21185 77220000 LA SYSBRNCH,0(SYSBRNCH) CLEAR HI-ORDER BITS 21185 77310000 TM 8(SYSBRNCH),X'80' IS DISP NEW OR MOD 21185 77400000 BO AROUND YES. DON'T SET BIT FOR 21185 77490000 OI APTEMP+8,X'10' STOW WITH REPLACE A21185 77580000 AROUND MVC PDSE1(8),APTEMP SET MEMBER NAME RECEIVED IN APT 77670000 * A21185 77760000 OC APT3(1),APTEMP+8 MOVE NAME RCD BIT TO APT 77850000 OI APT1,X'04' 77940000 MVI CSNO+1,1 SET CURRENT SEGMENT TO 1 78030000 MVC LINECNT+1(1),SPACES SET LINE COUNT 78120000 MVI LSTS,X'01' 78210000 MVC ENRLD2X(2),K256+2 MOVE INPUT RLD BUF SIZE TO APT 78300000 TM INTERN1,1 78390000 BC 1,ABENT 78480000 TM NEWSW,FRSTIME SEE IF FIRST TIME IN INT 78570000 BC 1,SECOND YES - THEN FALL THRU 78660000 OI NEWSW,X'80' SET BIT ON 78750000 L REG9,TXTIO GET ADDR OF NORM TABLES 78840000 SETEXIT EQU * 78930000 L REG10,FFCADR GET END ADDR OF NORM TABLES 79020000 LA RWORK3,EXIT FETCH ADDRESS OF 1ST TIME EXIT 79110000 CLEARSUB EQU * 79200000 L SYSRET,K256 FETCH CONSTANT 256 FOR TEST 79290000 LR REG3,REG9 FETCH STARTING ADDR OF TABLES 79380000 SR REG4,REG4 CLEAR A REGISTER 79470000 ST REG4,0(REG3) AND PLACE ZEROES INTO 79560000 ST REG4,4(REG3) FIRST 8 BYTES OF THE FIELD 79650000 LR REG4,REG10 FETCH ENDING ADDR OF TABLES 79740000 SR REG4,REG3 CALC LENGTH OF TABLES 79830000 SH REG4,K8 REDUCE BY 8 FOR ORIGINAL STORES 79920000 CR REG4,SYSRET SEE IF GR TH 256 80010000 BNH OUTLOOP BR IF GR TH 256 80100000 COMPR MVC 8(256,REG3),0(REG3) START OF LOOP-- MOVE 256 CHARS 80190000 AR REG3,SYSRET INC ADDRESS 80280000 SR REG4,SYSRET DEC LENGTH 80370000 CR REG4,SYSRET SEE IF GR TH 256 80460000 BH COMPR END OF LOOP---- BR IF GR TH 256 80550000 OUTLOOP BCTR REG4,0 SUB 1 FOR MVC 80640000 EX REG4,LASTMVC DO LAST MVC 80730000 BCR 15,RWORK3 NOW LEAVE SUBROUTINE 80820000 EXIT L SYSBRNCH,INPUT FETCH ADDRESS OF IEWLMINP 80910000 BALR SYSRET,SYSBRNCH LEAVE INITIALIZER 81000000 SECOND EQU * 81090000 L REG9,TXTIO GET ADDR OF TXTIO TABLE A34759 81180021 L REG10,FFCADR GET END ADDR OF TABLES A34759 81270021 BAL RWORK3,CLEARSUB BR TO ENTER CLEAR SUBR 81360000 L REG9,RECNT GET ADDR OF RENUMB TABLE 81450000 SH REG9,K4 TAKE 4 MORE BYTES FOR RNT PREFIX 81540000 BC 15,SETEXIT NOW GO TO SET RET ADDRESS 81630000 * 81720000 LASTMVC MVC 8(1,REG3),0(REG3) FOR THE LAST MOVE OF LS TH 256 CHARS 81810000 * 81900000 USING *,15 81990000 USING IHADCB,REG1 82080000 IEWLXIT2 ST REG5,SAVEIT SAVE REG 82170000 L REG5,ADDRIND ADDRESS OF INDICATOR 82260000 NI 0(REG5),X'F0' SET NOT ACTIVE 82350000 NI DCBBUFNO,X'00' ZERO OUT BUFFER NUMBER FIELD 82440000 TM APTSWS,X'10' TEST FOR DCBS OVERRIDE A47971 82580021 BNO XIT2A BRANCH IF NOT A47971 82630021 NC OVERRIDE,OVERRIDE IS OVERRIDE SPECIFIED SA56472 82640021 BZ XIT2A BRANCH IF NOT SA56472 82650021 CLC EXITTEST,OVERRIDE COMPARE TO BLOCK SIZE A47971 82680021 BNH XIT2A BRANCH IF USABLE A47971 82730021 CLC DCBBLKSI(2),OVERRIDE IS OVERRIDE USABLE SA56472 82740021 BNL XIT2A BRANCH IF NOT SA56472 82750021 MVC DCBBLKSI(2),OVERRIDE UPDATE DSCB VALUE SA65833 82760000 MVC EXITTEST,OVERRIDE USE DCB OVERRIDE A47971 82780021 XIT2A TM PDSE8,X'80' TEST FOR DC OPTION A47971 82830021 BO XIT2B BRANCH IF NOT APPLIC A47971 82880021 CLC EXITTEST,BUF1K COMPARE TO 1024 A47971 82930021 BNH XIT2B BRANCH IF USABLE A47971 82980021 MVC EXITTEST,BUF1K USE 1024 FOR BLK SIZE A47971 83030021 XIT2B NC DCBBLKSI(2),DCBBLKSI SEE IF NEW DATA SET A47971 83040021 BNZ TESTMIN IF NOT, ACCEPT BLK SIZE A47971X83050000 AND CHECK MINIMUM SA62476 83052000 MVC DCBBLKSI(2),EXITTEST IF SO, SET BLOCK SIZE A47971 83060021 TESTMIN LA MIN,256 GET DEFAULT MINIMUM SA62476 83062000 TM PDSE7,SCTR CHECK FOR SCTR ATTR SA62476 83064000 BNO TESTMIN1 BRANCH IF NOT SCTR SA62476 83066000 LA MIN,1024 GET MINIMUM FOR SCTR SA62476 83068000 TESTMIN1 CH MIN,DCBBLKSI CHECK AGAINST DSCB SA62476 83068400 BNH TESTMIN2 BRANCH IF DSCB OK SA62476 83068800 STH MIN,DCBBLKSI PUT MINIMUM IN DSCB SA62476 83069200 TESTMIN2 L REG5,SAVEIT RESTORE REG SA62476 83069600 BR REG14 RETURN A47971 83080021 SCTR EQU X'04' MASK FOR SCTR ATTR SA62476 83130000 MIN EQU REG5 SAME REG SA62476 83180000 OVERRIDE DC H'00' 84060000 EXITTEST DC H'0' BLOCKSIZE FROM DEVTYPE OR OPEN EXIT CALC A47971 84240021 BUF1K DC H'1024' A30676 84280021 SAVEIT DC F'0' 84330000 ADDRIND DC A(APTXLIST) 84420000 DROP 15 84510000 DROP REG1 84600000 ATOPTADD DC V(IEWLMOPT) 84690000 BLANKS DC C' ' 8 BLANKS 84780000 K256 DC F'256' 84870000 K3K DC F'3072' 84960000 K44K DC F'45056' 85050000 ADRAPTEX DC A(APTEXLST) ADR OF EXIT LIST 85140000 APTADD DC A(IEWLMAPT) 85230000 ABENT LH ZERO,ERROR 85320000 LA REG1,DDSAV 85410000 L SYSBRNCH,ERDIG ADDR OF ERROR ROUTINE 85500000 BCR 15,SYSBRNCH 85590000 ABENT2 L BASE,=A(IEWLMINT+6) ESTABLISH ADDRESSABILITY M5970 85680021 USING IEWLMINT+6,BASE 85770000 L 0,CORELEN LENGTH OF STORAGE FROM GETMAIN 85860000 L 1,COREADR ADDRESS OF THE FIRST BYTE 85950000 FREEMAIN R,LV=(0),A=(1) FREE ALLOCATED CORE 86040000 ABENT2A WTO 'IEW0984 ERROR-SYSPRINT BLOCKSIZE EXCEEDS MAXIMUM-LINKEDX86050021 IT PROCESSING TERMINATED.',ROUTCDE=11 M5970 86060021 ABENT1 TM APTSW2,SHRSYSMD TEST SYSLMOD SHRD DASD A49330 86062021 BNO ABENT1A BRANCH IF NOT A49330 86064021 DEQ (ENQNAME,MINOR,44,SYSTEMS) DEQ SYSLMOD RESERVE A49330 86066021 B ABENT1B BYPASS NORMAL DEQ A49330 86068021 ABENT1A TM APTSW2,ENQBIT TEST SYSLMOD DISP=OLD A49330 86068421 BO ABENT1B BRANCH IF DISP NOT OLD A49330,SA58140 86068821 DEQ (ENQNAME,MINOR,44,SYSTEM) A28320,A49330 86070021 ABENT1B EQU * NORMAL DEQ BYPASS A49330 86080021 L SYSLMOD,DCBADRS2 POINT TO SYSLMOD DCB SA68819 86090000 OI CIND2(SYSLMOD),STOWBIT INDICATE STOW DONE SA68819 86092000 LA 1,DCBADRS4 S20007 86100021 TM NEWSW,TERM TERM OPT. SPECIFIED? S20007 86130021 BZ TSO4 NO - BRANCH S20007 86160021 LA 1,DCBADRS1 S20007 86190021 TSO4 CLOSE MF=(E,(1)) S20007 86220021 LA SYSBRNCH,16 SET THE RETURN CODE 86310000 LM 13,14,SYSRTN 86400000 LM 0,12,20(REG13) 86490000 BCR 15,14 86580000 ABENT10 WTO 'IEW0994 ERROR - SYSPRINT DD CARD MISSING--LINKAGE EDITOX86670021 R PROCESSING TERMINATED.',ROUTCDE=11 A21392 86760021 B ABENT1 BRANCH TO DEQUE A21392 86850021 REGSAVE1 DC F'0' 86940000 DCBADRS1 DC X'0F' OUTPUT FLAG S20007 86990021 DC AL3(IEWLTMDB) ADDRESS OF SYSTERM S20007 87040021 DCBADRS4 DC X'0F' OUTPUT FLAG S20007 87090021 DC AL3(IEWLCPDB) ADDRESS OF SYSPRINT S20007 87140021 DC X'00' INPUT FLAG S20007 87190021 DC AL3(IEWLCSDB) ADDRESS OF SYSLIN S20007 87240021 DCBADRS2 DC X'8F' OUTPUT FLAG AND END FLAG S20007 87290021 DC AL3(IEWLCMDB) ADDRESS OF SYSLMOD S20007 87340021 DCBADRS3 DC A(IEWLCUDB) ADDRESS OF SYSUT1 S20007 87390021 INPUT DC V(IEWLMINP) 87480000 PRNTAD DC V(IEWLEPNT) 87570000 INDDNMAD DC A(INDDNAME) A47001 87610021 TEMP DS F 87660000 INITEXAD DS F EXTRACT WILL PUT @ OF TSO FIELD HERE S20007 87690021 * EXTRACT WILL PUT @ OF TIOT HERE SA56441 87700021 ADDRTIOT EQU INITEXAD TIOT ADDR FROM EXTRACT SA56441 87710021 ADDRUCB EQU ADDRTIOT UCB ADDR FROM TIOT SA56441 87712021 XTRTSAVE DS F SAVE AREA FOR REG USED AFTER EXTRACT FOR TSO 87720021 SYSLINNM DC C'SYSLIN ' 87750000 SYSUT1NM DC C'SYSUT1 ' 87840000 SYSLMDNM DC C'SYSLMOD ' 87930000 SYSPRTNM DC C'SYSPRINT' 88020000 SYSLIBNM DC C'SYSLIB ' 88110000 SYSTRMNM DC C'SYSTERM ' STANDARD DDNAME FOR 12TH ENTRY S20007 88140021 LENGTH DC H'96' LENGTH OF DDNAMELIST IN TSO MODE S20007 88170021 ACTVUT1 DC C'SYSUT1 ' 88200000 ACTVLMOD DC C'SYSLMOD ' 88290000 ERROR DC X'241C' 88380000 INTERN1 DC X'00' 88470000 DDSAV DS 8X'00' 88560000 APTEMP DC C' ' PDSEI TEMP STORAGE 88650000 DC X'00' APT0+3 TEMP STORAGE 88740000 DS 0H 88830000 M05 DC H'05' 88920000 M10 DC H'10' 89010000 M40 DC H'40' 89100000 PRNTNAME DS 2F A19525 89190000 ANSWER DS 2F A19525 89280000 MSGFOUR DC A(0) A19525 89370000 MSG4 DC X'09' A19525 89460000 DC 11C' ' A19525 89550000 NAMEDD DC C'SYSPRINT DEFAULT BLOCKING USED' A19525 89640000 DC 2C' ' A19525 89730000 FACTOR DC C' 1 - 1' A19525 89820000 DS 20F FOR PROGRAM MAINTENANCE 89910000 DCBD DSORG=(PS,PO) 90000000 TIOT DSECT MAP OF TIOT SA56441 90050021 IEFTIOT1 SA56441 90060021 UCB DSECT MAP OF UCB SA56441 90070021 IEFUCBOB SA56441 90080021 EJECT 90090000 * 90180000 * 90270000 DEFDSECT DSECT 90360000 DEFIDENT DS CL4 THE NAME IDENTIFIER 90450000 DESPNT DS F DESIGN POINT 90540000 DEFV1 DS F DEFAULT VALUE1 90630000 DEFV2 DS F DEFAULT VALUE2 90720000 NAME DS CL4 EDITOR NAME 90810000 * 90900000 * 90990000 IEWAPT 91080000 END 91170000 ./ ADD SSI=21280137,NAME=IEWLMMAP,SOURCE=0 TITLE 'CROSS REFERENCE AND MODULE MAP' 00100000 IEWLMMAP CSECT 00200000 * 084600,191600,316000,349000,437600,588600,602000,689000 S20007 00250020 *A051000,674000,786000 A41571 00260021 *C134000-135000 A41571 00270021 * * 00300000 *THIS CSECT IS CALLED IF MAP OR XREF IS SPECIFIED. * 00400000 *IT PRODUCES THE REQUESTED DATA. * 00500000 * * 00600000 *ENTRY ONLY AT IEWLMMAP BY ANY MEANS * 00700000 * * 00800000 *INPUT: SYSLMOD LOAD MODULE * 00900000 * * 01000000 *OUTPUT: MAP ON PRINTER * 01100000 * * 01200000 *EXIT: NORMAL RETURN * 01300000 * * 01400000 *XCESDTAB IS THE ADDRESS OF THE TABLE WHERE COMPOSITE ESD ENTRIES * 01500000 *ARE COLLECTED (16-BYTE ENTRIES). * 01600000 *XADDCESD IS THE ADDRESS OF THE TABLE OF ADDRESSES FROM ESD ENTRIES * 01700000 *FOR THE PRESENT SEGMENT (4-BYTE ENTRIES). * 01800000 *XAD2CESD IS THE ADDRESS OF THE TABLE CORRESPONDING TO XADDCESD CON- * 01900000 *TAINING RESPECTIVE ENTRY NUMBERS (2-BYTE ENTRIES). * 02000000 *RLDIN IS RLD INPUT BUFFER. * 02100000 *PRLIN IS PRINT OUTPUT BUFFER. * 02200000 *PRHDR IS SAVED HEADER BUFFER. * 02300000 * * 02400000 *REUSABLE * 02500000 * * 02600000 R0 EQU 0 02700000 R1 EQU 1 02800000 RPAR EQU 1 02900000 RJ EQU 1 03000000 APT EQU 2 03100000 RD EQU 3 03200000 RENTRY EQU 4 03300000 RI EQU 4 03400000 RPLACE EQU 4 03500000 RF EQU 5 03600000 RST EQU 5 03700000 RST2 EQU 6 03800000 RG EQU 6 03900000 RWORK EQU 7 04000000 RH EQU 7 04100000 RIN EQU 7 04200000 RA EQU 8 04300000 RB EQU 9 04400000 RE EQU 10 04500000 RC EQU 11 04600000 RBASE EQU 12 04700000 RSAVREG EQU 13 04800000 R14 EQU 14 04900000 R15 EQU 15 05000000 EXTRN IEWLCMDB 05100000 EXTRN APTXLIST ADDRESS OF OPEN EXIT LIST A41571 05130021 ENTRY JFCBADDR ADDRESS OF SYSLMOD JFCB A41571 05160021 ALBIT EQU X'80' 05200000 XREFBIT EQU X'40' BIT SET FOR XREF OPTION 05300000 OVERBIT EQU X'20' OVERLAY BIT 05400000 ESDIND EQU X'20' ESD INDICATOR 05500000 PRIVCODE EQU X'04' PRIVATE CODE 05600000 HEXTEN EQU X'10' HEXADECIMAL TEN FOR CONVERSION 05700000 DECTEN EQU X'0A' DECIMAL TEN FOR CONVERSION 05800000 PRIVDEL EQU X'14' CODE FOR ENTAB AND SEGTAB 05900000 NEVCALL EQU X'06' NEVER CALL BITS 06000000 CUMLNREQ EQU X'30' FLAG FOR CUM PSEUDO REG LN REQ 06100000 EOMOD EQU X'08' END OF MODULE BIT 06200000 SKIP EQU X'0B' IMMEDIATE SPACE 06260000 SINGLE EQU X'09' PRINT AND SPACE 06320000 DOUBLE EQU X'11' PRINT AND SPACE 2 06380000 TRIPLE EQU X'19' PRINT AND SPACE 3 06440000 SKIP2 EQU X'13' IMMEDIATE SPACE 2 06500000 SKIP3 EQU X'1B' IMMEDIATE SPACE 3 06560000 RESTORE EQU X'8B' SKIP TO CHANNEL 1 06620000 TSO EQU X'80' TSO SWITCH IN APTSWS S20007 06660020 USING *,R15 SET UP BASE ADDRESSABILITY 06700000 USING APTDSECT,APT ESTABLISH ADDRESSABILITY FOR APT 06800000 START EQU * FOR LATER STATEMENT OF BASE ADDR 06900000 BC 15,MODID+6 BRANCH AROUND MODULE IDENT 06950000 MODID DC C'05MMAP' 07000000 NC ENCDC(2),ENCDC TEST FOR NO ESDS 07050000 BC 7,MAP000 07100000 BR R14 RETURN 07200000 MAP000 EQU * 07400000 OI NEWSW,X'10' INDICATE MAP/XREF IN OPERATION 07450000 STM R14,RBASE,SPACES+12 SAVE REG 07500000 LR RBASE,R15 LOAD PERMANENT BASE 07600000 USING START,RBASE PROPER USING 07700000 DROP R15 OLD BASE 07800000 LA RSAVREG,REGSA LOAD SAVE AREA ADDRESS 07900000 EJECT 08000000 * 08100000 * THIS PROGRAM PRODUCES A MEMORY MAP AND A CROSS REFERENCE 08200000 * TABLE AS SUPPLEMENTARY OUTPUT FROM THE LINKAGE EDITOR 08300000 * 08400000 TM APTSWS,TSO TSO MODE? S20007 08410020 BZ TSO1 NO - BRANCH S20007 08420020 LA RA,40 CHANGE LINE COUNTS S20007 08430020 STH RA,COUNT S20007 08440020 LA RA,20(RA) S20007 08450020 STH RA,COUNT2 S20007 08460020 TSO1 LH RA,ENCDC NUMBER OF CESD ENTRIES S20007 08470020 LA RA,20(0,RA) ADD SAFETY FACTOR 08520000 TM NEWSW,X'40' IS ENTRY FROM INTERMEDIATE 08540000 BC 8,ALLOC NO--DO GETMAIN FOR CESD 08560000 L R1,CHESD YES--USE CESD IN CORE 08580000 LA R1,16(0,R1) INCREMENT TO FIRST ENTRY 08600000 B ALLOCA 08620000 ALLOC LH R0,ENCDX MAXIMUM NUMBER OF ENTRIES 08640000 SLL R0,4 MULTIPLY BY SIXTEEN 08700000 ST R0,SAVMAIN SAVE LENGTH OF AREA OBTAINED 09200000 L R1,CHESD USE CESD FOR TABLES 09300000 ALLOCA ST R1,XCESDTAB STORE ADDRESS OF CESD 09350000 LH R1,ENR1C NO. OF ENTRIES IN RLD NOTELIST 09400000 MH R1,RLDNTSZ TIMES BYTES PER ENTRY 09450000 L R0,RNT1 INITIALIZE SAVRLDNT 09500000 AR R1,R0 09550000 ST R1,RLDNTEND SAVE END ADDRESS 09600000 SH R0,RLDNTSZ ONE ENTRY BEFORE BEGINNING 09650000 ST R0,SAVRLDNT 09700000 LM R0,R1,IEWLCRBB+4 ADDRESSES OF SYSLIB OBJ BUFFERS 09750000 CR R0,R1 USE LOWER ADDRESS AS START 09800000 BNH ALLOCB FOR WORK AREA 09850000 LR R0,R1 09900000 ALLOCB ST R0,XAD2CESD 09950000 * 10100000 * FIRST, A HEADER IS PUT OUT WITH A SKIP TO ONE. 10200000 * 10300000 MVI CNTLCH,SKIP2 SKIP TWO LINES 10400000 TM APTSWS,TSO TSO MODE? S20007 10430020 BC 1,MAP0005 YES - BRANCH S20007 10460020 MVC LINCOUNT+1(1),LINECNT+1 INITIALIZE LINE COUNTER 10500000 CLI LINCOUNT+1,X'0A' TEST FOR ROOM ON PAGE 10600000 BC 3,MAP0005 NO 10700000 MVI CNTLCH,RESTORE RESTORE PAGE CHARACTER 10800000 MVI LINCOUNT+1,NUMBLINS+2 SET LINE COUNTER 10900000 MAP0005 EQU * 11000000 BAL R14,CNTRL TO CARRIAGE CONTROL ROUTNIE 11050000 TM APT0,XREFBIT TEST FOR XREFS 11100000 BC 3,PUTHC PUT XREF HDR 11200000 MVC PRLIN+55(10),TOPHDM NO PUT MAP HEADER 11300000 B PUTHEAD PUT HEADER 11400000 TOPHDM DC C'MODULE MAP' MAP HEADER 11500000 TOPHDC DC C'CROSS REFERENCE TABLE' 11600000 SGHD DC C'NAME ORIGIN LENGTH SEG. NO.' 11700000 SEGHD EQU SGHD+24 ADDR OF WORDS SEG. NO. 11800000 NAMLOC DC C'NAME LOCATION' 11900000 PUTHC MVC PRLIN+49(21),TOPHDC MOVE IN XREF HEADER 12000000 PUTHEAD LA R15,PUTLINS 12100000 L RD,DCBLMOD LOAD ADDRESS OF DCB 12200000 MVI PRLIN,DOUBLE PRINT AND SPACE 2 12250000 BALR R14,R15 CALL PRINT SUBROUTINE 12300000 TM NEWSW,X'40' IS ENTRY FROM INTERMEDIATE 12360000 BC 1,L1OUT YES--BYPASS READ 12420000 * 12500000 * END OF DATA EXIT IS REPLACED BY SPECIAL ONE FOR THIS CSECT. 12600000 * 12700000 MVC SAVEODAD(3),33(RD) SAVE END OF DATA ADDRESS 12800000 MVC 33(3,RD),SPECEOD LOAD SPECIAL ADDRESS 12900000 MAPPOINT CLOSE ((RD)) CLOSE SYSLMOD FOR OUTPUT 13300000 TM JFCBADDR,X'80' IS SYSLMOD OPEN J REQUIRD A41571 13320021 BZ NORMLOPN NO--BRANCH A41571 13340021 GETMAIN EU,LV=200,A=JFCBADDR GETMAIN AN AREA FOR JFCB A41571 13360021 L 1,XLSTADDR GET SYSLMOD EXIT LST ADDR A41571 13380021 MVC 5(3,1),JFCBADDR+1 JFCB AREA ADDR TO EXT LST A41571 13400021 RDJFCB ((RD),(INPUT)) ISSUE RDJFCB FOR SYSLMOD A41571 13420021 L 6,JFCBADDR LOAD JFCB ADDR INTO REG A41571 13440021 MVC 44(8,6),PDSE1 MOVE MEM NAME INTO JFCB A41571 13460021 OI 52(6),X'08' INHIBT JFCB RETRN TO JOBQ A41571 13480021 OPEN ((RD),(INPUT)),TYPE=J OPEN J SYSLMOD FOR INPUT A41571 13500021 B ARNDOPN BYPASS NORMAL OPEN A41571 13520021 NORMLOPN OPEN ((RD)) OPEN SYSLMOD FOR INPUT A41571 13540021 ARNDOPN LA R0,CTTR LOAD DCB ADDRESS A41571 13560021 POINT (RD),(0) POINT TO FIRST ESD 13600000 L RIN,XCESDTAB LOAD INPUT PTR W ADDR OF TBL 13700000 LR RST,RIN SVE START REG 13800000 MAP001 READ DECB2,SF,(RD),RLDIN,256 READ RECORD FROM MODULE 13900000 CHECK DECB2 14000000 TM RLDIN,ESDIND TEST FOR ESD INDICATOR 14100000 L0SW BC 0,L1OUT NOP SW SET BY 1ST ESD 14200000 BC 8,MAP001 LOOP TO READ ANOTHER RECORD 14300000 MVI L0SW+1,X'80' SET SW FOR ESD FOUND 14400000 LH RA,RLDIN+6 LOAD NUMBER OF ESD BYTES 14500000 EX RA,ESDMVC EXECUTE MOVE TO ESD TABLE 14600000 AR RIN,RA INCREMENT POINTER 14700000 TM RLDIN,EOMOD TEST FOR LAST ESD + NO TEXT 14800000 BC 3,L1OUT READ NO MORE 14900000 B MAP001 LOOP TO READ AGAIN 15000000 ESDMVC MVC 0(0,RIN),RLDIN+8 EXECUTED TO MOVE ESD TO TABLE 15100000 SAVEND DS 1F SAVE LIMIT OF ESDS 15200000 * 15300000 * PROCESS ASSEMBLED ESD ENTRIES 15400000 * 15500000 L1OUT L RST,XCESDTAB ADDRESS OF CESD 15570000 NC ENR1C(2),ENR1C CHECK FOR NO RLDS 15640000 BC 7,L1GO IF THERE ARE RLDS 15710000 MVI L5SW2+1,X'00' PREVENT XREFS 15800000 L1GO LH RIN,ENCDC NUMBER OF CESD ENTRIES 15840000 SLL RIN,4 TIMES 16 FOR NUMBER OF BYTES 15880000 A RIN,XCESDTAB ADD START OF TABLE 15920000 BCTR RIN,0 DECREMENT BY ONE 15960000 ST RIN,SAVEND SAVE 16000000 TM SAVATS,OVERBIT TEST FOR OVERLAY 16100000 BC 3,L1CONT YES 16200000 MVI L2SW+1,X'00' PROC ALL ENTRIES 16300000 MVC SEGHD(8),SEGHD-1 BLANK OUT SEG. NO. FROM HDR 16400000 L1CONT LA RIN-1,16 LOAD STOPPING FACTOR 16500000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 16600000 * 16700000 MAP002 EQU L1CONT LOOP TO PROCESS A SEGMENT 16800000 * 16900000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 17000000 TM APT0,XREFBIT TEST FOR CROSS REFERENCES 17200000 L1SW BC 0,NONEWHDR SKIP HEADER IF NO XREFS AFTER 1ST 17300000 MVI L1SW+1,X'80' MAKE NOP BRANCH FROM NOW ON 17400000 MVC PRHDR+2(117),PRHDR+1 PREVENT LAST HEADER FROM PRINTIN 17500000 MVC PRLIN+2(28),PRLIN+1 BLANK OUT POSS RESIDUE 17600000 MVI CNTLCH,SKIP SKIP A LINE 17670000 BAL R14,CNTRL 17740000 LA R15,PUTLINS ADDRESS OF PRINT ROUTINE 17810000 MVC PRLIN+3(15),CTLSEC 17900000 MVC PRLIN+41(5),ENTRY PUT HEADER 18000000 TM APTSWS,TSO TSO MODE? S20007 18030020 BC 1,MAP0025 YES - BRANCH S20007 18060020 CLI LINCOUNT+1,X'05' TEST FOR BOTTOM OF PAGE 18100000 BC 3,MAP0025 NO GO AHEAD AND PRINT 18200000 MVI LINCOUNT+1,X'01' RESET LINE COUNTER FOR SKIP 18300000 MAP0025 EQU * 18400000 MVI PRLIN,DOUBLE PRINT AND DOUBLE SPACE 18450000 BALR R14,R15 CALL SUBR TO PRIT LINE 18500000 MVC PRLIN+5(32),SGHD MOVE IN SEG HEADER 18700000 MVC PRLIN+43(15),NAMLOC 18800000 MVC PRLIN+63(15),NAMLOC 18900000 TM APTSWS,TSO TSO MODE? S20007 18930020 BC 1,TEMP YES - BRANCH S20007 18960020 MVC PRLIN+83(15),NAMLOC 19000000 MVC PRLIN+103(15),NAMLOC 19100000 TEMP MVI PRLIN,DOUBLE PRINT + DOUBLE SPACE S20007 19160020 MVC PRHDR(119),PRLIN SAVE HEADER FOR NEW PAGE 19220000 BALR R14,R15 CALL SUBROUTINE 19300000 NONEWHDR LA RENTRY,1 INIT ENTRY COUNTER 19500000 L RB,RNT1 ADDRESS OF RLD NOTELIST 19520000 SH RB,RLDNTSZ MINUS SIZE OF ENTRY 19540000 ST RB,SAVRLDNT 19560000 L RB,XAD2CESD INIT ADDR OF 2 BYTE TABLE 19600000 ST RB,SAVID INITIALIZE SAVID TO FIRST 19650000 * 19700000 * LOOP TO SELECT ESD ENTRIES FOR THIS SEGMENT 19800000 * 19900000 L2 CLI 8(RST),X'0A' 19950000 BE L2CTL 20000000 TM 8(RST),X'03' 20050000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 20100000 * 20200000 MAP003 EQU L2 LOOP TO SELECT ESD ENTRIES 20300000 * 20400000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 20500000 BC 8,PROCSEG PROCESS SEGTION 20600000 TM 8(RST),X'06' TEST FOR PSEUDO REG OR NULL 20700000 BC 3,L2CTL YES LOP TO NEXT 20800000 TM 8(RST),X'05' TEST FOR COMMON 20900000 BC 3,PROCSEG YES TREAT AS SECTION 21000000 BC 8,L2CTL EXTERNAL REF = UNRESOLVED 21100000 LH RPAR,14(0,RST) LOAD SECT ENTRY NO. AS PARAMETER 21200000 BAL R14,SEGSUBR CALL SUBR TO LOCATE ENTRY 21300000 CH RPAR,SEGNO IN THIS SEGMENT 21400000 L2SW BC 7,L2CTL NO LOOP AGAIN 21500000 STH RENTRY,0(0,RB) STORE ENTRY NUMBER 21600000 LA RB,2(0,RB) ADVANCE POINTERS 21900000 L2CTL LA RENTRY,1(0,RENTRY) ADVANCE ENTRY NUMBER 22100000 BXLE RST,RIN-1,L2 LOOP CTL STEPS THRU ESDS 22200000 ST RB,IDEND SAVE ADDRESS OF END OF ID LIST 22250000 C RB,XAD2CESD TEST FOR NO ENTRIES 22300000 BC 8,L5SW2-4 OMIT PROCESSING 22400000 EJECT 22500000 * 22600000 * THE FOLLO WING PROGRAM SORTS THE ENTRIES FOR 22700000 * THIS SEGMENT USING TWO TABLES, ON EOF TWO BYTE ENTRIES 22800000 * AND ONE OF 4 BYTE (ADDRESS) ENTRIES ON WHICH THE 22900000 * SORT IS DONE. 23000000 * 23100000 * SORT REGISTER USAGE IS AS FOLLOWS 23200000 * RA ADDRESS OF CURRENT COMPARAND IN FOUR BYTE TABLE 23300000 * RB ADDRESS OF LAST ENTRY FULLY SORTED IN FOUR BYTE TABLE 23400000 * RC LIMIT FOR SORT = END OF FOUR BYTE TABLE 23500000 * RD COMPARAND 23600000 * RE PLUS FOUR FOR INCREMENT 23700000 * RF USED FOR EXCHANGE OF TWO BYTE ENTRIES 23800000 * RG MINUS FOUR FOR DECREMENT 23900000 * RH LIMIT FOR SORT = START OF FOUR BYTE TABLE 24000000 * RI ADDRESS OF CURRENT ENTRY IN TWO BYTE TABLE 24100000 * RJ ADDRESS OF TWO BYTE ENTRY FOR LAST FULLY SORTED ITEM 24200000 * 24300000 LR RC,RB END OF TWO BYTE TABLE 24360000 LA RE,2 LOAD INCREMENT FOR SORT 24420000 SR RC,RE SUBTRACT 4 FOR LIMIT 24500000 BCTR RC,0 AND 1 MORE 24600000 LNR RG,RE LOAD DECREMENT FOR SORT 24700000 L RA,XAD2CESD ADDR OF 2 BYTE TABLE 24800000 CR RA,RC TEST FOR BUT ONE ENTRY 24900000 BC 3,MAP0055 YES SKIP SORT 25000000 L RI,XAD2CESD LOAD ADDR OF 2 BYTE TABLE 25100000 LR RH,RA LOAD START ADDRESS 25200000 BCTR RH,0 MINUS ONE FOR LIMIT 25300000 SL1 LR RJ,RI LOAD CURRENT ADDR FOR 2BYTE TBL 25400000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 25500000 * 25600000 MAP004 EQU SL1 MAJOR SORT LOOP 25700000 * 25800000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 25900000 LR RB,RA LOAD CURRENT ADDR FOR 4BYTE TBL 26000000 SL2 LH RD,0(0,RA) CESD ID 26010000 BCTR RD,0 MINUS ONE 26020000 SLL RD,4 TIMES 16 26030000 A RD,XCESDTAB PLUS CESD ADDRESS 26040000 L RD,8(0,RD) ASSIGNED ADDRESS 26050000 LA RD,0(0,RD) 26060000 LH RF,2(0,RA) CESD ID NEXT ENTRY 26070000 BCTR RF,0 MINUS ONE 26080000 SLL RF,4 TIMES 16 26090000 A RF,XCESDTAB PLUS ADDRESS OF CESD 26100000 L RF,8(0,RF) LKED ASSIGNED ADDRESS 26110000 LA RF,0(0,RF) 26120000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 26200000 * 26300000 MAP005 EQU SL2 MINOR SORT LOOP 26400000 * 26500000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 26600000 CR RD,RF COMPARE ADDRESSES 26700000 BC 4,INORD IN ORDER 26800000 BC 2,XCHANGE MUST BE EXCHANGED 26900000 * MUST NOW TEST FOR SECT FOLLOWING SYMBOL AT SAME LOCATION. 27000000 ST RPAR,RPARSAV SAVE PARAM REGISTER 27100000 LH RPAR,2(0,RI) LOAD ENTRY NUMBER OF LAST AS PAR 27200000 BAL R14,SEGSUBR SUBR TO LOCATE CESD ENTRY 27300000 L RPAR,RPARSAV RESTORE PARAMETER REGISTER 27400000 TM 8(R15),X'03' TEST FOR CSECT OR PRIVATE 27500000 BC 8,XCHANGE BRANCH IF SO TO EXCHANGE 27600000 TM 8(R15),X'05' TEST FOR COMMON 27700000 BC 12,INORD BRANCH TO IN ORDER IF NOT 27800000 XCHANGE LH RF,0(0,RI) LOAD ID OF CESD ITEM 28000000 MVC 0(2,RI),2(RI) EXCHANGE ENTRIES 28200000 STH RF,2(0,RI) 28300000 BCTR RI,0 DECREMENT POINTER BY 2 28400000 BCTR RI,0 28500000 BXH RA,RG,SL2 DECR & LOOP BACK THRU TBL TO ST 28600000 INORD LR RA,RB RELOAD PTR FROM CURRENT 28700000 LR RI,RJ RELOAD PTR FROM CURRENT 28800000 LA RI,2(0,RI) ADD 2 TO 2BYTE PTR 28900000 BXLE RA,RE,SL1 INCR PTR &LOOP BACK TIL DONE 29000000 EJECT 29100000 * 29200000 * THE FOLLOW ING PROGRAM PROCESSE THE SORTED ESD ENTRIES 29300000 * FOR A SEGMNENT AND PRODUCES A MEMORY MAP. 29400000 * 29500000 MAP0055 SR RPLACE,RPLACE ZERO REG FOR ENTRY COUNTER 29600000 L RST,XAD2CESD LOAD PT RTO TOP OF 2BYTE TABLE 29700000 LR RST2,RST 29800000 LA RC-1,2 INCREMENT FOR BXLE 29900000 AR RC,RC-1 RESTORE LIMIT TO END 30000000 L5 LH RPAR,0(0,RST) LOAD ENTRY NUMBER 30100000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 30200000 * 30300000 MAP006 EQU L5 LOOP THROUGH TABLE ENTRIES 30400000 * 30500000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 30600000 BAL R14,SEGSUBR CALL SUBR TO LOCATE ENTRY 30700000 LR RA,R15 SAVE POINTER 30800000 TM 8(R15),X'03' TEST FOR SECT OR PRIV CODE 30900000 BC 8,PUTSECT YES 31000000 TM 8(R15),X'05' \)ST FOR COMMON 31100000 BC 12,L5CONT1 NO CONTINUE 31200000 B PUTSECT HANDLE AS SECTION 31300000 PROCSEG CLC SEGNO+1(1),12(RST) TEST FOR THIS SEGMENT NUMBER 31400000 B L2SW TEST IN LINE 31500000 L5CONT1 CH RPLACE,COUNT LINE FINISHED? S20007 31600020 BC 7,L5CONT2 NO CONTINUE 31700000 SR RPLACE,RPLACE REZERO REG 31800000 LA R15,PUTLINS SUBR TO PRINT 31900000 BALR R14,R15 CALL SUBROUTINE 32000000 L5CONT2 LR RWORK,RPLACE COMPUTE PLACE FOR LABEL 32100000 LA RPLACE,20(0,RPLACE) INCR NAME COUNTER 32200000 LA RWORK,PRLIN(RWORK) ADD ADDR OF PR LINE TO REG 32300000 L RPAR,8(0,RA) LOAD ADDRESS OF THIS ENTRY 32400000 BAL R14,BINBCDS CALL CONVERSION SUBROUTINE 32500000 LR R15,RA RESTORE POINTER 32600000 MVC 41(8,RWORK),0(R15) MOVE IN NAME 32700000 MVC 51(6,RWORK),COLLECT MOVE IN LOC 32800000 L5CTL LA RST,2(0,RST) ADD 2 TO TABLE POINTER 32900000 BXLE RST2,RC-1,L5 INCR PTR & LOOP TIL END 33000000 LA R15,PUTLINS SUBR PUT LINE TO PUT LABELS LEFT 33100000 BALR R14,R15 CALL SUBROUTINE 33200000 TM APT0,XREFBIT TEST FOR CROSS REFS CALL 33300000 L5SW2 BC 3,XREFS YES NOP IF NO MORE RLDS 33400000 XRRET LA R15,PUTLINS ADDRESS OF PRINT SUBROUTINE 33450000 BALR R14,R15 33500000 CLI CUMLEN+5,C' ' TEST FOR ANY CUM LEN REQ 33550000 BC 8,NXTSEGNO NO 33600000 MVC PRLIN+3(58),CUMREQ DENOTE CUM LENGTH REQUEST 33800000 BALR R14,R15 CALL SUBROUTINE 33900000 MVC CUMLEN(6),CUMLEN-1 BLANK OUT CUN LENGTH 34000000 NXTSEGNO CLC CSNO(2),SEGNO TEST FOR HIGHEST SEGMENT NUMBER 34100000 BC 8,CLEANUP YES GET FINAL ITEMS 34200000 LH RA,SEGNO LOAD SEGMENT NUMBER 34300000 LA RA,1(0,RA) ADD 1 TO SEGMENT NO. 34400000 STH RA,SEGNO RESTORE 34500000 L RIN,SAVEND RESTORE INPUT REGISTER 34600000 L RST,XCESDTAB LOAD ADDRESS OF ESD TABLE 34700000 BC 15,L1CONT LOOP TO NEXT SEGMENT 34800000 COUNT DC H'80' RECORD LENGTH - TSO S20007 34860020 COUNT2 DC H'120' RECORD LENGTH - MVT S20007 34920020 SAVEODAD DS 3C SAVE END OF DATA ADDRESS HERE 35000000 SPECEOD DC AL3(XRRET) ADDR OF ALTERNATE EO DATA EXIT 35100000 EJECT 35300000 * 35400000 * ROUTINE TO PUT OUT SECTION LINE 35500000 * 35600000 PUTSECT LTR RPLACE,RPLACE TEST FOR NO LSYMBOLS 35700000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 35800000 * 35900000 MAP007 EQU PUTSECT ROUTINE TO PROCESS SECTION 36000000 * 36100000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 36200000 BC 8,L5CONT3 NONE 36300000 LA R15,PUTLINS SUBR TO PRINT 36400000 BALR R14,R15 CALL SUBROUTINE 36500000 L5CONT3 L RPAR,8(0,RA) LOAD ADDRESS OF SECT 36600000 LA R15,BINBCDS SUBR TO CVT FROM BIN TO BCD 36700000 BALR R14,R15 CALL SUBROUTINE 36800000 MVC PRLIN+13(6),COLLECT MOVE IN ADDRESS 36900000 LR RWORK,RA RESTORE POINTER TO ENTRY 37000000 L RPAR,12(0,RWORK) LOAD ADDRESS FOR CONVERSION 37100000 BALR R14,R15 CALL SUBROUTINE 37200000 MVC PRLIN+21(6),COLLECT MOVE IN ADDRESS 37300000 SECCONT TM 8(RWORK),X'80' TEST FO LIBRARY 37400000 BC 8,*+8 NO 37500000 MVI PRLIN+11,C'*' MOVE IN LIBR DESIGNATUON 37600000 MVC PRLIN+3(8),0(RWORK) MOVE IN NAME 37700000 TM 8(RWORK),X'01' TEST FOR COMMONP 37800000 BC 8,NOTCOM NOT COMMON 37900000 CLI 0(RWORK),C' ' TEST FOR BLANK 38000000 BC 7,OVERTEST OMIT OTHER TESTS 38100000 MVC PRLIN+2(9),BLANKCOM DESIGNATE BLANK COMMON 38200000 B OVERTEST OMIT OTHER TESTS 38300000 NOTCOM CLI 8(RWORK),PRIVDEL TEST FOR SEGTAB OR ENTAB 38400000 BC 7,SEGTSTS NO 38500000 MVC PRLIN+2(6),ENTAB SET ENTAB DESIGNATOR 38600000 L5SW3 BC 0,SEGPRINT SW FOR ENTABS FROM NOW ON 38700000 MVI L5SW3+1,X'F0' SET SW FOR ENTAB HENCEFORTH 38800000 MVC PRLIN+2(7),SEGTAB LOAD SEGTAB DESIGNATOR 38900000 B SEGPRINT BYPASS UNNEEEDED TESTS 39000000 SEGTSTS TM 8(RWORK),PRIVCODE TEST FOR PRIVATE CODE 39100000 BC 8,OVERTEST NO TEST OVERLAY NEXT 39200000 MVC PRLIN+2(9),PRIVATE PLACE PRIVATE DESIGNATOR 39300000 OVERTEST TM SAVATS,OVERBIT TEST FOR OVERLAY 39400000 BC 8,PRINTSEC NO PRINT LINE 39500000 SEGPRINT SR RPAR,RPAR CLEAR REG FOR PARAMETER 39600000 IC RPAR,12(0,RWORK) INSERT SEGMENT NUMBER 39700000 CVD RPAR,COLLECT-1 CONVERT TO DECIMAL 39800000 UNPK COLLECT(5),COLLECT+5(3) UNPACK QUANTITY 39900000 MVC PRLIN+30(3),COLLECT MOVE INTO PRINT LINE 39940000 CLI PRLIN+30,C'0' CHECK FOR LEADING ZERO 39980000 BC 7,PRINTSEC NO 40020000 MVI PRLIN+30,C' ' MOVE IN BLANK 40060000 CLI PRLIN+31,C'0' TEST FOR LEADING ZERO 40100000 BC 7,PRINTSEC NO CONTINUE 40200000 MVI PRLIN+31,C' ' REPLACE ZERO WITH LEADING BLANK 40300000 PRINTSEC LA R15,PUTLINS LOAD ADDR OF SUBR TO PRINT LINE 40400000 SR RPLACE,RPLACE ZERO REGISTER 40500000 BALR R14,R15 CALL SUBROUTINE 40600000 BC 15,L5CTL LOOP TO NEXT TABLE ENTRY 40700000 DS 0F ALIGN TO FULL WORD BOUNDARY 40800000 DCBLMOD DC AL4(IEWLCMDB) 40900000 WKWORD DC AL4(0) WORD ON BOUNDRY 41000000 SAVMAIN DS 2F WORDS FOR FREE MAIN MACRO 41100000 XCESDTAB EQU SAVMAIN+4 ADDRESS OF CESD ENTRIES 41200000 XADDCESD DS 1F ADDRESS FO 4 BYTE TABLE 41300000 XAD2CESD DS 1F ADDRESS OF 2 BYTE TABLE 41400000 SAVID DC F'0' POINTER TO CURRENT ID 41409000 SAVRLDNT DC F'0' POINTER TO CURRENT RLD NOTELIST 41418000 RLDNTEND DC F'0' END OF RLD NOTELIST 41427000 IDEND DC F'0' END OF ID LIST 41436000 ALIGNF DC F'0' TO ALIGN ADDRESS TO FULL WORD 41445000 SAVAD DC F'0' SAVE ADDRESS OF SECTION 41454000 RMASK DC X'00007FFF' MASK OUT HI ORDER BIT R POINTER 41463000 ALIGNH DC H'0' TO ALIGN COUNT TO HALF WORD 41472000 FIVE DC H'5' SIZE OF DELINK TABLE ENTRY 41481000 RLDNTSZ DC H'9' SIZE OF RLD NOTELIST 41490000 SEGNO DC AL2(1) CURRENT SEGMENT NUMBER 41500000 PRIVATE DC C'$PRIVATE ' PRIVATE CODE DESIGNATOR 41600000 ENTAB DC C'$ENTAB' ENTAB DESIGNATOR 41700000 SEGTAB DC C'$SEGTAB' SEGTAB DESIGNATOR 41800000 BLANKCOM DC C'$BLANKCOM' BL ANK COMMON DESIGNATOR 41900000 CTLSEC DC C'CONTROL SECTION' 42000000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 42100000 EJECT 42200000 * 42300000 * THIS ROUTINE PROCESSE RLD ENRTIES TO GET X REF TABLE 42400000 * 42500000 XREFS EQU * 42600000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 42700000 * 42800000 MAP008 EQU XREFS ROUTINE TO PROCESS RLDS FOR SEG 42900000 * 43000000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 43100000 MVC PRHDR+2(117),PRHDR+1 PREVENT LAST HEADER FROM PRINTIN 43200000 MVI CNTLCH,SKIP2 IMMEDIATE SKIP 2 LINES 43270000 BAL R14,CNTRL 43340000 LA R15,PUTLINS ADDRESS OF PRINT ROUTNIE 43410000 MVC PRLIN+3(30),CRHEAD PUT IN XREF HEADER 43500000 MVC PRLIN+34(15),CTLSEC 43600000 MVC PRLIN+51(8),SEGHD 43700000 TM APTSWS,TSO TSO MODE? S20007 43710020 BC 1,TEMP2 YES - BRANCH S20007 43720020 MVC PRLIN+60(59),PRLIN+1 COMPLETE HEADING 43730000 TEMP2 LA RST,PRLIN ADDRESS OF PRINT LINE S20007 43760020 MVI PRLIN,DOUBLE PRINT AND DOUBLE SPACE 43800000 MVC PRHDR(119),PRLIN SAVE HEADER FOR NEW PAGE 43840000 BALR R14,R15 CALL SUBROUTINE 43900000 LA RC-1,4 44000000 LNR RA,RC-1 LOAD DECREMENTFOR BXH 44100000 SR RA+1,RA+1 ZERO FOR TEST OF BXH 44200000 TM NEWSW,X'40' IS ENTRY FROM INTERMEDIATE 44208000 BC 8,XL1CONT NO--CARD ALREADY READ 44216000 MAP009 TM NEWSW,X'40' IS ENTRY FROM INTERMEDIATE 44224000 BC 8,MAP009A NO--GO READ A RECORD 44232000 MAP0091 L RD,SAVID ADDRESS OF CURRENT ID 44240000 L RC,SAVRLDNT ADDRESS OF RLD NOTELIST ITEM 44248000 MAP0090 LA RC,9(0,RC) UPDATE TO NEXT RLD NOTELIST 44256000 MAP00901 C RC,RLDNTEND IS END OF LIST REACHED 44264000 BNL MAP0092 YES 44272000 CLC 0(2,RC),0(RD) ARE RLDS FOR THIS ID 44280000 BC 7,MAP0090 NO--CHECK NEXT ENTRY 44288000 MVC ALIGNF+1(3),6(RC) YES--GET ADDRESS OF RLD DATA 44296000 MVC ALIGNH(2),4(RC) AND NUMBER OF BYTES 44304000 ST RC,SAVRLDNT SAVE POINTER TO RLD NOTELIST 44312000 L RD,ALIGNF DISPLACEMENT OF RLD DATA 44320000 AR RD,RD TIMES 4 44328000 AR RD,RD 44336000 TM 2(RC),X'10' IS IT IN BUFFER 2 44344000 BC 1,MAP0093 YES 44352000 A RD,RLDOUT1 NO--ADD ADDRESS OF BUFFER 1 44360000 BC 15,MAP0094 44368000 MAP0093 A RD,RLDOUT2 ADD ADDRESS OF BUFFER 2 44376000 MAP0094 LH RC,ALIGNH NUMBER OF WORDS OF RLD DATA 44384000 AR RC,RC TIMES FOUR 44392000 AR RC,RC 44400000 SR RD,RC START OF RLD DATA 44408000 B XL3 GO TO PROCESS RLDS 44416000 MAP0092 LA RD,2(0,RD) UPDATE POINTER TO NEXT ID 44424000 C RD,IDEND IS END OF ID LIST REACHED 44432000 BNL XRRET YES--CHECK FOR ANOTHER SEGMENT 44440000 ST RD,SAVID NO--SAVE ADDRESS OF ID 44448000 L RC,RNT1 AND START AT TOP OF RLD NOTELIST 44456000 B MAP00901 TO SEARCH LIST FOR THIS ID 44464000 MAP009A L RD,DCBLMOD ADDRESS OF SYSLMOD DCB 44472000 READ DECB4,SF,(RD),RLDIN,256 44500000 XL1 EQU MAP009 44600000 CHECK DECB4 44700000 XL1CONT TM RLDIN,X'02' TEST FOR RLD 44800000 BC 8,RLDOUTA TEST FURTHER 44900000 XL1A LA RD,RLDIN+16 INIT REG TO 1ST RLD DATA 45000000 LH RC,RLDIN+6 LOAD COUNT OF RLD DATA 45100000 XL3 TM 4(RD),X'20' TEST FOR PSEUDO 45200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 45300000 * 45400000 MAP010 EQU XL3 LOOP TO PROCESS RLD ENTRY 45500000 * 45600000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 45700000 BC 12,XL3CONT NO GO ON 45800000 TM 4(RD),CUMLNREQ TEST FOR PSEUDO REG LENGTH REQ 45900000 BC 12,XL3A NO 46000000 CLI CUMLEN+5,C' ' TEST FOR ONE ALREADYENCOUNTERED 46100000 BC 7,XL3A YES 46200000 L RPAR,4(0,RD) LOAD ADDRESS FOR CONVERSION 46300000 BAL R14,BINBCDS CALL CONVERSION SUBROUTINE 46400000 MVC CUMLEN(6),COLLECT MOVE IN ADDRESS 46500000 XL3A TM 4(RD),X'01' TEST FOR CONTINUATION 46600000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 46800000 * 46900000 MAP011 EQU XL3A LOOP TO PASS OVER RLD ENTRIES 47000000 * 47100000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 47200000 BC 8,XGETNXT2 NO--GET NEXT RLD ITEM 47300000 SR RD,RA ADD 4 TO REG 47400000 BXH RC,RA,XL3A LOOP 47500000 B RLDOUTA 47550000 XL4 MVC 4(26,RST),3(RST) BLANK OUT UNWANTED ADDRESS NAME 47600000 B XL3A SKIP OVER ANY CONTINUATIONS 47650000 XL3CONT LH RPAR,2(0,RD) LOAD POINTER 47700000 BAL R14,SEGSUBR CALL SUBR TO LOCATE ENTRY 47800000 CH RPAR,SEGNO TEST FOR THIS SEGMENT 47900000 BC 7,XRRET NO RETURN 48000000 L RPAR,4(0,RD) LOAD ADDRESS FOR CONVERSION 48100000 TM NEWSW,X'40' IS ENTRY FROM INTERMEDIATE 48120000 BC 8,XL4CONT NO 48140000 LH R14,2(0,RD) GET P POINTER 48160000 SLL R14,2 TIMES 4 48180000 A R14,RECNT PLUS START OF RELCTN CNST TABLE 48200000 L R14,0(0,R14) GET RELOCATION CONSTANT 48220000 ST R14,SAVAD SAVE IT FOR POSSIBLE LATER USE 48240000 AR RPAR,R14 ADD RELOCATION CONSTANT 48260000 XL4CONT BAL R14,BINBCDS CALL CONVERSION SUBROUTINE 48280000 MVC 4(6,RST),COLLECT MOVE IN ADDRESS 48340000 LH RPAR,0(0,RD) LOAD ENTRY NUMBER 48400000 TM 0(RD),X'80' IS DELINK BIT ON 48410000 BC 8,XL5CONT NO--HAVE REAL R POINTER 48420000 N RPAR,RMASK YES--GET REAL R POINTER 48430000 MH RPAR,FIVE R POINTER TIMES LENGTH OF DELINK 48440000 A RPAR,DLKT PLUS ADDRESS OF DELINK TABLE 48450000 MVC ALIGNH(2),0(RPAR) ALIGN R POINTER TO HALF WORD 48460000 LH RPAR,ALIGNH REAL R POINTER FROM DELINK TABLE 48470000 XL5CONT STH RPAR,ALIGNH SAVE R POINTER 48480000 LTR RPAR,RPAR TEST R POINTER FOR ZERO 48500000 BC 8,XL4 BYPASS ENTAB ENTRIES 48600000 BAL R14,SEGSUBR CALL SUBR TO LOCATE ENTRY 48700000 LR RPLACE,R15 SAVE ADDR IN CONVENIENT REG 48800000 MVC 22(8,RST),0(RPLACE) MOVE IN SYMBOL 48900000 CLI 8(RPLACE),X'02' TEST FOR UNRESOLVED 49000000 BC 8,UNRES YES 49100000 CLI 8(RPLACE),X'0A' 49110000 BC 8,WXT 49120000 CLI 8(RPLACE),X'07' TEST FOR NULL 49130000 BC 8,XL4 YES--OMIT REFERENCE 49160000 TM 8(RPLACE),X'03' TEST FOR CONTROL SECTIOMN 49200000 BC 8,RLDSECT YES 49300000 TM 8(RPLACE),X'05' TEST FOR SECTION 49400000 BC 3,RLDSECT YES 49500000 CLC 14(2,RPLACE),2(RD) TEST FOR INTERNAL REFERENCE 49600000 BC 8,XL4 YES SKIP THIS REFERENCE 49700000 LH RPAR,14(0,RPLACE) LOAD REF NO. FOR THIS ENTRY 49800000 BAL R14,SEGSUBR CALL SUBR TO LOCATE ENTRY 49900000 LR RPLACE,R15 PLACE ADDR IN CONVENIENT REG 50000000 RLDSECT CLC ALIGNH(2),2(RD) CHECK FOR SAME ID 50060000 * NOTE--RPOINTER WAS PUT IN ALIGNH AT XL5CONT 50120000 BC 8,XL4 YES SKIP THIS ONE 50200000 MVC 38(8,RST),0(RPLACE) MOVE IN SECTION NAME 50300000 TM SAVATS,OVERBIT TEST FOR OVERLAY 50400000 BC 8,MAP0119 OMIT SEGMENT NUMBER 50500000 SR RPAR,RPAR CLEAR PARAMETER REG 50600000 IC RPAR,12(RPLACE) INSERT SEG NO 50700000 CVD RPAR,COLLECT-1 CONVERT TO DECIMAL 50800000 UNPK COLLECT(5),COLLECT+5(3) UNPACK QUANTITY 50900000 MVC 53(3,RST),COLLECT MOVE INTO PRINT LINE 50950000 CLI 53(RST),C'0' CHECK FOR LEADING ZERO 51000000 BC 7,MAP0119 NO 51050000 MVI 53(RST),C' ' YES--MOVE IN BLANK 51100000 CLI 54(RST),C'0' CHECK FOR LEADING ZERO 51150000 BC 7,MAP0119 NO CONTINUE 51200000 MVI 54(RST),C' ' MOVE IN BLANK 51300000 MAP0119 LA R15,PUTLINS LOAD ADDRESS OF PRINT ROUTINE 51400000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 51500000 * 51600000 * CODING FOR MULTIPLE RLD ENTRIES 51700000 * 51800000 XL2 TM 4(RD),X'01' TEST FOR ANOTHER ADDR 51900000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 52000000 * 52100000 MAP012 EQU XL2 LOOP FOR SAME R AND P POINTERS 52200000 * 52300000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 52400000 BC 8,XGETNXT NO 52500000 MVC SVAR1(34),22(RST) SAVE DATA FROM POINTERS 52540000 LA R14,PRLIN 52580000 TM APTSWS,TSO TSO MODE? S20007 52590020 BC 1,MAP0122 YES - BRANCH S20007 52600020 CR R14,RST IS LINE FULL 52620000 BC 7,MAP0122 YES--GO PRINT 52660000 LA RST,60(0,RST) NO--SET TO SECOND HALF OF LINE 52700000 B MAP0123 52740000 MAP0122 BALR R14,R15 TO PRINT ROUTINE 52780000 LA RST,PRLIN SET RST TO FIRST OF LINE 52820000 MAP0123 SR RD,RA ADD 4 TO POINTER 52860000 MVC 22(34,RST),SVAR1 RESTORE DATA 52900000 L RPAR,4(0,RD) LOAD ADDRESS FOR CONVERSION 53000000 TM NEWSW,X'40' IS ENTRY FROM INTERMEDIATE 53040000 BC 8,MAP0125 NO 53080000 A RPAR,SAVAD YES--ADD ASSIGNED ADDRESS 53120000 MAP0125 BAL R14,BINBCDS CALL CONVERSION SUBROUTINE 53160000 MVC 4(6,RST),COLLECT MOVE IN NEW ADDRESS 53230000 LA R15,PUTLINS LOAD ADDR FO PRINT SUBR 53300000 BXH RC,RA,XL2 LOOP & DECR COUNT 53400000 B RLDOUTA EXIT 53500000 * 53600000 * END FO CODING FOR MULTIPLE ENTRIES 53700000 * 53800000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 53900000 XGETNXT LA R14,PRLIN 53930000 TM APTSWS,TSO TSO MODE? S20007 53940020 BC 1,MAP0124 YES - BRANCH S20007 53950020 CR R14,RST IS LINE FULL 53960000 BC 7,MAP0124 YES--GO PRINT 53990000 LA RST,60(0,RST) SET RST TO SECOND HALF OF LINE 54020000 B XGETNXT2 54050000 MAP0124 BALR R14,R15 TO PRINT ROUTINE 54080000 LA RST,PRLIN SET RST TO FIRST OF PRINT LINE 54110000 XGETNXT2 AR RC,RA SUBTRACT 4 FROM COUNT 54140000 RLDOUT LA RD,8(0,RD) ADD 8 TO POINTER 54200000 BXH RC,RA,XL3 GET NEXT RLD IF ANY 54300000 RLDOUTA TM NEWSW,X'40' IS ENTRY FROM INTERMEDIATE 54350000 BC 1,MAP0091 YES--BYPASS READ 54400000 TM RLDIN,X'09' TEST FOR EOMOD OR TXT NEXT 54450000 BC 8,XL1 THERE IS SUCH A CARD 54500000 TM RLDIN,EOMOD TEST FOR END OF MOD 54600000 BC 3,XRRET YES 54700000 L RD,DCBLMOD 54800000 READ DECB5,SF,(RD),RLDIN,1 SKIP OVER TEXT RECORD 54900000 CHECK DECB5 55000000 B XL1 EXIT RLD RTN 55100000 UNRES MVC 37(11,RST),UNRESOLV MOVE IN '$UNRESOLVED' 55200000 CLI 13(RPLACE),NEVCALL TEST FOR NEVER CALL 55300000 BC 7,MAP0119 NO LEAVE UNRESOLVED 55400000 MVC 37(11,RST),NEVERCAL MOVE IN '$NEVER-CALL' 55500000 B MAP0119 RETURN TO MAIN LINE 55600000 WXT MVC 37(14,RST),UNRESOLV 55630000 B MAP0119 55660000 RLDIN DS 64F RLD READ INTO HERE 55700000 UNRESOLV DC C'$UNRESOLVED(W)' 55800000 NEVERCAL DC C'$NEVER-CALL' NEVER CALL DESIGNATOR 55900000 SVAR1 DS 34C SAVE AREA 56000000 CRHEAD DC C'LOCATION REFERS TO SYMBOL IN' 56100000 CUMREQ DC C'LOCATION REQUESTS CUMULAT' 56200000 DC C'IVE PSEUDO REGISTER LENGTH' 56300000 CUMLEN EQU CUMREQ+9 LOC OF ADDRESS 56400000 EJECT 56500000 * 56600000 * THIS ROUTINE ENDS THE MAP 56700000 * 56800000 CLEANUP SR RPLACE,RPLACE ZERO REG CTR REGISTER 56900000 MVC PRHDR+2(117),PRHDR+1 PREVENT LAST HEADER FROM PRINTIN 57000000 MVC PRLIN+2(30),PRLIN+1 BLANK OUT POSS INTERNAL REF 57100000 C RPLACE,PRAL TEST FOR NO PSEUDO REGISTERS 57200000 BC 8,ENTOT1 NONE OMIT PROCESSING 57300000 L RC,SAVEND LOAD POINTER TO LAST ESD 57400000 LA RC-1,16 LOAD INDEXING FACTOR 57500000 L RST2,XCESDTAB LOAD ADDR OF ESD TABLE 57600000 * 57700000 * LIST PSEUDO REGISTERS 57800000 * 57900000 MVC PRLIN+20(100),PRLIN+19 BLANK OUT ERSIDUE 58000000 MVC PRLIN+2(16),PSEUDOS 58100000 MVI PRLIN,DOUBLE PRINT AND DOUBLE SPACE 58150000 LA R15,PUTLINS PRINT SUBROUTINE 58200000 BALR R14,R15 CALL SUBROUTINE 58300000 MVC PRLIN+5(22),NAMOLEN CREATE HEADER 58500000 MVC PRLIN+35(22),NAMOLEN 58600000 TM APTSWS,TSO TSO MODE? S20007 58630020 BC 1,TEMP3 YES - BRANCH S20007 58660020 MVC PRLIN+65(22),NAMOLEN 58700000 MVC PRLIN+95(22),NAMOLEN 58800000 TEMP3 MVI PRLIN,TRIPLE PRINT AND TRIPLE SPACE S20007 58860020 MVC PRHDR(119),PRLIN 58920000 BALR R14,R15 CALL SUBROUTINE 59000000 L7 TM 8(RST2),X'06' TEST FOR PSEUDO 59300000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 59400000 * 59500000 MAP013 EQU L7 LOOP TO PROCESS PSEUDO REGS 59600000 * 59700000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 59800000 BC 12,L7CTL NO 59900000 TM 8(RST2),X'01' TEST FOR PSEUDO 60000000 BC 3,L7CTL NO GO TO NEXT ESD ENTRY 60100000 ONEFND CH RPLACE,COUNT2 LINE FULL? S20007 60200020 BC 7,L7CONT NO 60300000 SR RPLACE,RPLACE REZERO POINTER 60400000 LA R15,PUTLINS SUBR TO PUT 1 LINE 60500000 BALR R14,R15 CALL SUBROUTINE 60600000 L7CONT LR RWORK,RPLACE FORM ACTUAL PRINT ADDR 60700000 LA RWORK,PRLIN(RWORK) 60800000 L RPAR,8(0,RST2) LOAD ADDDRESS FOR CONVERSION 60900000 LA R15,BINBCDS CONVERT SUBR 61000000 BALR R14,R15 CALL SUBROUTINE 61100000 MVC 3(8,RWORK),0(RST2) MOVE IN NAME 61200000 MVC 13(6,RWORK),COLLECT MOVE IN LOC 61300000 L RPAR,12(0,RST2) LOAD ADDRESS FOR CONVERSION 61400000 BALR R14,R15 CALL SUBROUTINE 61500000 MVC 21(6,RWORK),COLLECT MOVE TO PRINT LINE 61600000 LA RPLACE,30(0,RPLACE) ADD TO COUNTER 61700000 L7CTL BXLE RST2,RC-1,L7 LOOP TO NEXT ESD TIL LAST 61800000 LTR RPLACE,RPLACE TEST FOR NO PSEUDO REGS 61900000 BC 8,ENTOT BRANCH AROUND PUT 62000000 LA R15,PUTLINS SUBR TO PRINT LINE 62100000 MVI PRLIN,DOUBLE PRINT AND DOUBLE SPACE 62150000 BALR R14,R15 CALL SUBROUTINE 62200000 * 62500000 * PUT OUT ENTRY ADDRESS AND TOTAL LENGTH 62600000 * 62700000 ENTOT L RPAR,PRAL LOAD PSEUDO LENGTH 62800000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 62900000 * 63000000 MAP014 EQU ENTOT ROUTINE FOR LENGTH OF PSEUDOS 63100000 * 63200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 63300000 MVC PRHDR+2(117),PRHDR+1 BLANK OUT PRINT HEADER 63400000 BAL R14,BINBCDS CALL CONVERSION SUBROUTINE 63500000 MVC PRLIN+2(32),CUMPS PUT IN INDICATOR 63600000 MVC PRLIN+36(6),COLLECT MOVE IN QUANTITY 63700000 LA R15,PUTLINS SUBROUTINE TO PNINT LINE 63800000 BALR R14,R15 CALL SUBROUTINE 63900000 ENTOT1 MVC PRLIN+2(13),ENTADD LOAD INDICATOR 64000000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 64100000 * 64200000 IEWLMAPX EQU ENTOT1 ENTRY AFTER SYNAD EXIT 64260000 ENTRY IEWLMAPX 64320000 * 64400000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 64500000 MVC PRHDR+2(117),PRHDR+1 BLANK OUT PRINT HEADER 64600000 MVC WKWORD+1(3),PDSE11 MOVE ENTRY ADDRESS 64700000 L RPAR,WKWORD LOAD FULL WORD 64800000 TM PDSE3,ALBIT TEST FOR ALIAS 64900000 BC 8,MAP0153 NO ENTRY ADDRESS CORRECT 65000000 L RPAR,IOCT PICK UP RIGHT ENTRY ADDRESS 65100000 SRL RPAR,8 65200000 MAP0153 EQU * 65300000 BAL R14,BINBCDS CALL CONVERSION SUBROUTINE 65400000 MVC PRLIN+18(6),COLLECT STORE NUMBER 65500000 LA R15,PUTLINS PRINT LINE 65600000 BALR R14,R15 CALL SUBROUTINE 65700000 MVC PRLIN+2(12),TOTLEN LOAD TITLE 65800000 MVC WKWORD+1(3),PDSE9 LOAD TOTAL LENGTH IN FULL WORD 65900000 L R1,WKWORD LOAD IN FOLL WORD 66000000 BAL R14,BINBCDS CALL CONVERSION SUBROUTINE 66100000 MVC PRLIN+18(6),COLLECT STORE NUMBER 66200000 MVI PRLIN,DOUBLE PRINT AND DOUBLE SPACE 66250000 LA R15,PUTLINS PRINT LINE 66300000 BALR R14,R15 CALL SUBROUTINE 66400000 MVI L2SW+1,X'70' RESET SWITCHES 66600000 MVI L1SW+1,X'00' 66700000 MVI L5SW3+1,X'00' 66800000 MVI L5SW2+1,X'30' 66900000 TM NEWSW,X'40' IS ENTRY FROM INTERMEDIATE 66960000 BC 1,MAP0154 YES--BYPASS FREEMAIN AND CLOSE 67020000 L RA,DCBLMOD 67100000 MVC 33(3,RA),SAVEODAD RESTORE END OF DATA ADDRESS 67200000 CLOSE ((RA)) 67400000 TM JFCBADDR,X'80' WAS OPEN J REQUIRED A41571 67450021 BZ MAP0154 NO--BRANCH A41571 67500021 FREEMAIN E,LV=200,A=JFCBADDR FREE JFCB AREA A41571 67550021 MAP0154 MVC SEGHD(8),SAVSEG RESTORE SEG. NO. TO HDRS 67600000 MVI SEGNO+1,X'01' 67800000 MVI L0SW+1,X'00' 67900000 MVC LINECNT+1(1),LINCOUNT+1 RESTORE LINE COUNT TO APT 67930000 NI NEWSW,X'EF' INDICATE MAP/XREF NOT OPERATING 67960000 LM R14,RBASE,SPACES+12 68000000 BR R14 RETURN 68300000 DS 0F 68600000 PSEUDOS DC C'PSEUDO REGISTERS' HEADER FOR PSEUDO REGISTERS 69000000 NAMOLEN DC C'NAME ORIGIN LENGTH' HEADER FOR PSEUDOS 69100000 CUMPS DC C'TOTAL LENGTH OF PSEUDO REGISTERS' LINE FOR OUT PUT 69200000 ENTADD DC C'ENTRY ADDRESS' 69300000 ENTRY EQU ENTADD WORD ENTRY 69400000 TOTLEN DC C'TOTAL LENGTH' 69500000 SAVSEG DC C'SEG. NO.' FOR RESTORATION FO SEG. NO. 69600000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 69700000 EJECT 70700000 * 70800000 * THIS SUBROUTINE TAKES A BINARY QUANTITY FROM RPAR 70900000 * AND CONVERTS IT TO PRINT CHARACTERS TO THE BASE 71000000 * INDICATED BY THE VARIABLE TEN. THIS RESULT IS PLACED 71100000 * IN THE SIX CHARACTER AREA COLLECT. THE SUBROUTINE 71200000 * RETURNS ON REGISTER R14. 71300000 * 71400000 BINBCDS LA RPAR,0(0,RPAR) CLEAR HIGH ORDER BITS 71500000 LTR RPAR,RPAR TEST FOR ZERO 71600000 BC 7,CVTCONT NO 71700000 MVC COLLECT(6),ZERO STORE ZERO INDICATOR 71800000 BR R14 RETURN 71900000 TEN DC A(16) DIVIDE CONSTANT 72000000 ZERO DC C' 00' ZERO INDICATOR 72100000 CVTCONT ST RPAR,COLLECT-1 PLACE BINARY QUANT IN BUFFER 72200000 UNPK COLLECT(7),COLLECT(4) UNPACK BINARY QUANTITY 72300000 MVZ COLLECT(6),COLLECT-1 ZERO ALL ZONES FOR TRANSLATE 72400000 TR COLLECT(6),TRTABLE TRANSLATE FOR PRINTING 72500000 * 72600000 * CHANGE LEADING ZEROS TO BLANKS 72700000 * 72800000 LA R0,1 LOAD INCREMENT 72900000 LA RPAR,COLLECT LOAD START ADDRESS 73000000 HIZEROS CLI 0(RPAR),C'0' TEST FOR ZERO 73100000 BCR 7,R14 NO DONE SO RETURN 73200000 MVI 0(RPAR),C' ' REPLACE ZERO WITH LEADING BLANK 73300000 BXH RPAR,R0,HIZEROS INCR + LOOP TO NEXT DIGIT ALWAYS 73400000 BUFFER DS 1D DOUBLE WORD AREA FOR CONVERSION 73500000 COLLECT EQU BUFFER+1 ADDRESS OF CONVERTED DATA 73600000 TRTABLE DC C'0123456789ABCDEF ' TABLE FOR TRANSLATION 73700000 EJECT 73800000 * 73900000 * THIS SUBROUTINE PUTS OUT A LINE FROM PRLIN AND THEN 74000000 * BLANKS IT OUT. 74100000 * 74200000 DS 0H 74300000 PUTLINS STM RE,R15,PRSAV SAVE REGISTERS 74500000 SET4LINE LA RE,PRLIN SET FOR PRINT OF LINE 74900000 TM APTSWS,TSO TSO MODE? S20007 74930020 BC 1,PRINT YES - BRANCH S20007 74960020 LH R15,LINCOUNT LOAD LINE COUNT INTO REGISTER 75000000 BCT R15,CHKSNGL 75020000 B CHKHDR IF AT END OF PAGE 75040000 CHKSNGL CLI PRLIN,SINGLE WAS SINGLE SPACE REQUESTED 75060000 BE NOPAGE YES--GO PRINT 75080000 BCT R15,CHKDBL NO--DECREMENT COUNT AGAIN 75100000 B CHKHDR IF AT END OF PAGE 75120000 CHKDBL CLI PRLIN,DOUBLE WAS DOUBLE SPACE REQUESTED 75140000 BE NOPAGE YES--GO PRINT 75160000 BCT R15,NOPAGE NO--MUST BE TRIPLE--DECREMENT 75180000 CHKHDR CLC PRLIN+1(118),PRHDR+1 IS THIS LINE HEADER 75200000 BE HEADPNT YES--DON'T PRINT TWICE 75220000 LA RE,PRHDR SET TO PRINT HEADER 75240000 HEADPNT MVI LINCOUNT+1,NUMBLINS RESET LINE COUNTER 75260000 L R15,IEWLCWBB+20 ADDRESS OF PRINT BUFFER 75300000 MVI 0(R15),RESTORE INSERT CONTROL CH FOR RESTORE 75340000 L R15,PRNTAD ADDRESS OF PRINT ROUTINE 75380000 BALR R14,R15 75420000 B PRINT GO TO PRINT 75500000 NOPAGE STC R15,LINCOUNT+1 STORE UPDATED LINE COUNT 75600000 CLI LINCOUNT+1,X'02' TEST FOR BOTTOM OF PAGE 75700000 BC 3,PRINT NO GO AHEAD AND PRINT 75800000 CLC PRLIN+1(118),PRHDR+1 TEST FOR HEADER 75900000 BE HEADPNT NO DOUBLE HEAD PRINT 76000000 PRINT L RC,IEWLCWBB+20 ADDRESS OF PRINT BUFFER 76100000 MVC 0(121,RC),0(RE) MOVE MESSAGE TO PRINT BUFFER 76200000 L R15,PRNTAD ADDRESS OF PRINT ROUTINE 76300000 BALR R14,R15 76400000 TM APTSWS,TSO TSO MODE? S20007 76430020 BC 1,PREXIT YES - BRANCH S20007 76460020 LA R15,PRHDR LOAD FOR TEST FOR HEADER 76500000 CR R15,RE TEST FOR HEADER LAST 76600000 BE SET4LINE YES PUT OUT PROPER LINE 76700000 PREXIT LM RE,R15,PRSAV NO RESTORE REGISTERS 76800000 MVI PRLIN,SINGLE SET PRLIN BUFFER TO SINGLE SPACE 77100000 MVC PRLIN+2(118),PRLIN+1 BLANK OUT PRINT LINE 77200000 BR R14 EXIT 77300000 * 77320000 * THIS SUBROUTINE PERFORMS IMMEDIATE SKIP OPERATIONS, USING 77340000 * THE CARRIAGE COTNROL CHARACTER FROM LOCATION CNTLCH 77360000 * 77380000 CNTRL ST R14,SAV14 SAVE R14 77400000 TM APTSWS,TSO TSO MODE? S20007 77406020 BC 1,CNTRLB YES - BRANCH S20007 77412020 LH R15,LINCOUNT 77420000 BCT R15,CNTRLA DECREMENT LINE COUNT 77440000 B NEWPAGE IF AT END OF PAGE 77460000 CNTRLA CLI CNTLCH,SKIP WAS SKIP ONE REQUESTED 77480000 BE CNTRLB YES 77500000 BCT R15,CNTRLB NO--DECREMENT LINE COUNT AGAIN 77520000 NEWPAGE MVI LINCOUNT+1,X'01' INDICATE END OF PAGE 77540000 BR R14 AND RETURN 77560000 CNTRLB STH R15,LINCOUNT STORE UPDATED LINE COUNT 77580000 L R15,IEWLCWBB+20 ADDRESS OF PRINT BUFFER 77600000 MVC 0(1,R15),CNTLCH MOVE IN CONTROL CHARACTER 77620000 L R15,PRNTAD ADDRESS OF PRINT ROUTINE 77640000 BALR R14,R15 77660000 L R14,SAV14 RESTORE R14 77680000 BR R14 RETURN 77700000 SAV14 DC F'0' 77720000 CNTLCH DC AL1(SKIP) 77740000 DS 0F 77760000 PRSAV DS 6F SAVE AREA 77800000 RPARSAV EQU PRSAV+8 SAVE R1 IN SORT OVER BASE SAVE 77900000 NUMBLINS EQU 53 NUMBER OF LINES ON PAGE AFTER 1ST 78000000 LINCOUNT DC AL2(54) COUNTER OF LINES ON A PAGE 78100000 PRHDR DC AL1(DOUBLE) CONTROL CH PRINT AND SPACE 2 78200000 DC 4C' ' 78300000 PRLIN DC AL1(SINGLE) CONTROL CH PRINT AND SPACE 78400000 DC 4C' ' BUFFER 78500000 PRNTAD DC V(IEWLEPNT) ADDRESS OF PRINT ROUTINE 78600000 JFCBADDR DC F'00' ADDR OF JFCB AREA A41571 78630021 XLSTADDR DC A(APTXLIST) ADDR OF SYSLMOD EXIT LIST A41571 78660021 EJECT 78700000 * 78800000 * THIS SUBROUTINE TAKES AN ANTRY NUMBER FROM RPAR 78900000 * AND RETURNS THE ADDRESS OF THAT ENTRY IN R15 79000000 * AND ITS SEGMENT NUMBER IN RPAR 79100000 * 79200000 SEGSUBR SLL RPAR,4 MULT BY 16 79400000 L R15,XCESDTAB LOAD ADDRESS OF ESD TABLE 79500000 AR R15,RPAR ADD PARAMETER 79600000 S R15,TEN AND SUBTRACT SIXTEEN 79700000 SR RPAR,RPAR CLEAR REG 79800000 IC RPAR,12(0,R15) INSERT SEG NUMBER 79900000 BR R14 RETURN 80000000 * 80100000 IEWAPT 80200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 80300000 END 80400000 ./ ADD SSI=00013459,NAME=IEWLMOPT,SOURCE=0 TITLE 'ATTRIBUTES AND OPTIONS PROCESSOR' 00100000 * * 00200000 *********************************************************************** 00300000 * * 00400000 * * 00500000 * STATUS - CHANGE LEVEL 000 * 00600000 * * 00700000 * FUNCTION/OPERATION - THIS ROUTINE SCANS & ANALYZES THE ATTRIBUTES * 00800000 * & OPTIONS CONTROL INFORMATION WHICH IS PASSED TO IT INDIRECTLY * 00900000 * FROM THE PARAMETER LIST. * 01000000 * * 01100000 * THIS PARAMETER INFORMATION INDICATES WHAT MODULE ATTRIBUTES * 01200000 * AND L/E. PROCESSING OPTIONS ARE TO BE USED IN GENERATING THE * 01300000 * TYPE OF LOAD MODULE DESIRED. THE INFORMATION IS BASED ON THE * 01400000 * PARAMETERS SPECIFIED IN THE 'EXEC' CONTROL CARD BY THE * 01500000 * PROGRAMMER USER, OR THOSE PASSED BY A LINK, XCTL, OR ATTACH MACRO * 01600000 * FROM ANOTHER PROGRAM. * 01700000 * * 01800000 * THESE OPTIONS & ATTRIBUTES ARE CHECKED FOR VALIDITY & ARE ALSO * 01900000 * ANALYZED TO DETERMINE IF THEY ARE REQUESTED IN COMBINATIONS * 02000000 * WHICH ARE ALLOWABLE. THE RESULTS OF THIS PROCESSING ARE THEN * 02100000 * INDICATED BY - 02200000 * * 02300000 * 1.- THE SETTING OF INTERNAL INDICATORS IN THE ALL PURPOSE TABLE * 02400000 * 2.- PRINTED MESSAGES INDICATING WHAT ATTRIBUTES/OPTIONS WERE * 02500000 * SPECIFIED & WHETHER OR NOT THEY WERE VALID & ACCEPTED. * 02600000 * * 02700000 * THIS ROUTINE HAS A CHARACTER CODE DEPENDENCE * 02800000 * THE HEXADECIMAL REPRESENTATION OF A ZERO * 02900000 * IS EXPECTED TO BE F0 * 03000000 * THE ZONE OF ANY DIGIT IS EXPECTED TO BE F * 03100000 * * 03200000 * * 03300000 * ENTRY POINTS - * 03400000 * * 03500000 * (1) IEWLMOPT = MODULE NAME * 03600000 * * 03700000 * ENTERED FROM INITIAL PROCESSOR - BY THIS'CALLING SEQUENCE '- * 03800000 * * 03900000 * L 1, ADDRESS OF PARAMETER LIST BYTE COUNT * 04000000 * L 15, IEWLMOPT = ENTRY POINT * 04100000 * BALR 14,15 LINKAGE * 04200000 * * 04210000 * ENTERED FORM SCN -'BY THIS CALLING SEQUENCE' * 04220000 * L RA = LENGTH OF PARMS ON THE PARM CARD. * 04230000 * L RB = ADDRESS OF THE PARMS IN THE SYSLIN BUFFER. * 04240000 * L RF = ADDRESS OF IEWLMOPT (ENTRY POINT). * 04250000 * BALR RE,RF * 04260000 * * 04270000 * * 04300000 * * 04400000 * INPUT - * 04500000 * * 04600000 * THE PARAMETER LIST ADDRESS IS PASSED IN REG. NO.1 WHICH IS * 04700000 * USED TO OBTAIN A BYTE COUNT & ASSOCIATED PARAMETER INFORMATION. * 04800000 * * 04900000 * * 05000000 * THE FOLLOWING ARE COMPLETE LISTS OF THE 'ATTRIBUTE AND * 05100000 * OPTION ' SYMBOLS WHICH ARE AVAILABLE FOR USE, AND THEY WILL * 05200000 * DETERMINE THE CHARACTERISTICS OF THE LOAD MODULE TO BE CREATED. 05300000 * * 05400000 * (A) - MODULE ATTRIBUTES - * 05500000 * * 05600000 * 1.- SCTR = FORMAT OF MODULE IS SUITABLE FOR EITHER SCATTER OR * 05700000 * BLOCK LOADING. * 05800000 * * 05900000 * 2.- OVLY = MODULE STRUCTURED IN OVERLAY. * 06000000 * * 06100000 * 3.- HIAR = MODULE TO BE LOADED INTO SELECTED STORAGE HIERARCHIES. * 06200000 * * 06300000 * 4.- RENT = MODULE IS RE-ENTERABLE * 06400000 * * 06500000 * 5.- REUS = MODULE IS SERIALLY RE-USABLE * 06600000 * * 06700000 * 6.- REFR = MODULE IS REFRESHABLE * 06800000 * * 06900000 * 7.- TEST = MODULE CONTAINS TESTING SYMBOL TABLES FOR USE BY THE * 07000000 * TEST TRANSLATOR * 07100000 * * 07200000 * * 07300000 * (B) - PROCESSING OPTIONS - * 07400000 * * 07500000 * * 07600000 * 1.- NCAL = NO AUTOMATIC LIBRARY CALL . * 07700000 * * 07800000 * 2.- LET = LOAD MODULE IS MARKED EXECUTABLE - ALLOWING MINOR * 07900000 * ERROR CONDITIONS DETECTED DURING PROCESSING. * 08000000 * * 08100000 * 3.- XCAL = ALLOWS 'EXCLUSIVE BRANCH' TYPE ERRORS , ONLY. * 08200000 * * 08300000 * 4.- LIST = OUTPUTS LISTING OF ALL L/E. CONTROL STATEMENTS. * 08400000 * IN CARD - IMAGE FORMATS. * 08500000 * * 08600000 * 5.- MAP = PRODUCES A MAP OF THE LOAD MODULE'S STRUCTURE. * 08700000 * * 08800000 * 6.- XREF = PRODUCES A CROSS - REFERENCE TABLE OF THE * 08900000 * MODULE WHICH ALSO INCLUDES A MAP. * 09000000 * * 09100000 * * 09200000 * 7.- PRINT = WRITE HEADERS, ALLOW XREF,MAP,LIST IF SPECIFIED. * 09209000 * 8.-NOPRINT = PRINT ONLY ERRORS. * 09218000 * 9.-NOXREF = DO NOT PERFORM AN XREF LISTING FOR THIS MODULE. * 09227000 *10.- NOCALL = DO NOT PERFORM AUTOMATIC CALL FOR UNRESOLVED ERS. * 09236000 *11.- CALL = PERFORM AUTOMATIC CALL ON SYSLIB FOR UNRESOLVED ERS. * 09245000 *12.- NORENT = DO NOT MARK THIS MODULE AS RE-ENTRANT. * 09254000 *13.- NOREUS = DO NOT MARK THIS MODULE AS RE-USEABLE. * 09263000 *14.- TERM = THE TERMINAL IS BEING SUPPORTED. * 09272000 *15.- NOTERM = THE TERMINAL IS NOT BEING SUPPORTED FOR THIS RUN. * 09281000 * * 09290000 * * SPECIAL OPTIONS - * 09300000 * * 09400000 * 1. - DC = 'DOWNWARD COMPATIBILTY' - MEANS THIS MODULE IS * 09500000 * ACCEPTABLE AS INPUT TO ALL LEVELS OF LINKAGE * 09600000 * EDITORS. * 09700000 * * 09800000 * 2. - OL = ' ONLY LOADABLE '- INDICATOR IS SET - ON. * 09900000 * * 10000000 * 3. - NE = ' NOT EDITABLE ' -MEANS THAT THE ' ESD ' INFORMATION* 10100000 * IS ELIMINATED AND THEREFORE THIS MODULE WILL NOT * 10200000 * BE ACCEPTED BY LINKAGE EDITOR FOR RE-PROCESSING. * 10300000 * * 10400000 * 4.- SIZE = OPTION PERMITTING SPECIFICATION OF 10500000 * A) MAXIMUM NUMBER BYTES OF MAIN STORAGE AVAILABLE 10600000 * TO THE LINKAGE EDITOR (VALUE1) 10700000 * WHERE VALUE1=(DESIGN PT X 1024) TO 9999999 10800000 * OR (DP K) TO 9999K 10900000 * B) SIZE OF LOAD MODULE BUFFER (VALUE2) 11000000 * WHERE VALUE2= 6144 TO 102400 11100000 * OR 6K TO 100K 11200000 * 11300000 * THE FOLLOWING FORMATS ARE ACCEPTED: * 11400000 * SIZE=VALUE1 * 11500000 * SIZE=(VALUE1) * 11600000 * SIZE=(,VALUE2) * 11700000 * SIZE=(VALUE1,VALUE2) * 11800000 * SIZE=(,) * 11900000 * DEFAULT VALUES ARE SET DURING SYSTEM GENERATION * 12000000 * * 12100000 * * 12200000 * * 12300000 * * 12400000 * THESE PARAMETERS MUST BE SPECIFIED IN CERTAIN VALID * 12500000 * COMBINATIONS (INDICATED IN TABLE) IN ORDER TO BE ACCEPTED FOR * 12600000 * ANY GIVEN LINKAGE EDITOR PROCESSING. * 12700000 * * 12800000 * ** TABLE - COMBINATIONS OF 'INCOMPATIBLE' ATTRIBUTES & OPTIONS ** * 12900000 *---------------------------------------------------------------------* 13000000 * * 13100000 * PARM. SPECIFIED *** COMBINATIONS - 'NOT ALLOWABLE ' WITH. * 13200000 * --------------- ------------------------------------ * 13300000 * * 13400000 * 1. SCTR * OVLY * 13500000 * * 13600000 * 2. OVLY * SCTR,RENT, REUS, HIAR, REFR * 13700000 * * 13800000 * 3. HIAR * OVLY * 13900000 * * 14000000 * 4. RENT * REUS, REFR, OVLY * 14100000 * * 14200000 * 5. REUS * RENT, REFR, OVLY * 14300000 * * 14400000 * 7. TEST * NE M4593* 14500020 * * 14600000 * 6. REFR * RENT, REUS, OVLY * 14700000 * * 14800000 * 8. LET * XCAL * 14900000 * * 15000000 * 9. XCAL * LET * 15100000 * * 15200000 * 10. MAP * XREF, NE * 15300000 * * 15400000 * 11. XREF * MAP, NE * 15500000 * * 15600000 * 12. NE * MAP, XREF, TEST * 15700000 * * 15800000 * 13. NCAL * -N/A- * 15900000 * * 16000000 * 14. LIST * -N/A- * 16100000 * * 16200000 * 15. OL * -N/A- * 16300000 * * 16400000 * 16. DC * -N/A- * 16500000 * * 16600000 * 17. SIZE * -N/A- * 16700000 * * 16800000 *---------------------------------------------------------------------* 16900000 * * 17000000 * OUTPUT - * 17100000 * * 17200000 * MESSAGES ARE PRINTED - OUT, TO INFORM THE USER OF WHAT - * 17300000 * LINKAGE EDITOR OPTIONS & ATTRIBUTES WERE PROCESSED & AS TO * 17400000 * WHETHER OR NOT THEY ARE VALID & COMPATIBLE. * 17500000 * * 17600000 * IN THE CASE OF THE NOPRINT OPTION THE ONLY FORM OF OUTPUT ON SYSPRINT 17620000 * THAT SHALL OCCUR IS, THE PRINTING OF ERROR MEASAGES. * 17640000 TITLE '* * OPTIONS PROCESSOR FOR LINKAGE EDITOR F VERSION 2*' 17660000 * * 17700000 * EXTERNAL ROUTINES - NONE * 17800000 * * 17900000 * EXITS - NORMAL - * 18000000 * * 18100000 * AT THE COMPLETION OF PROCESSING ALL OPTIONS/ATTRIBUTES, * 18200000 * RETURN CONTROL IS TRANSFERED BACK TO THE INITIALIZER (THAT IS TO * 18300000 * THE NEXT SEQUENTIAL INSTRUCTION, THE POINT AT WHICH EXIT WAS * 18400000 * MADE FROM ' IEWLMINT ' MODULE). * 18500000 * * 18600000 * * 18700000 * * 18800000 * EXITS - ERROR - NONE * 18900000 * * 19000000 * TABLES/WORK AREAS - N/A. * 19100000 * * 19200000 * ATTRIBUTES - N/A. * 19300000 * * 19400000 * NOTES - N/A. * 19500000 * * 19600000 * * 19700000 *********************************************************************** 19800000 * 19900000 * 20000000 IEWLMOPT CSECT 20080000 * A24467 20160000 * 403200,693600,706400-707200,711200 M3028 20200020 * 145000,341600-347200 M4593 20220020 * 694400 M4507 20230000 *C311200,I324800,C702400 SA57107 20232021 SPACE 1 20240000 R0 EQU 0 PARAMATER REGISTER 20320000 R1 EQU 1 PARAMATER REGISTER 20400000 R2 EQU 2 20480000 R3 EQU 3 20560000 R4 EQU 4 20640000 R5 EQU 5 20720000 R6 EQU 6 20800000 R7 EQU 7 20880000 R8 EQU 8 20960000 R9 EQU 9 21040000 RA EQU 10 21120000 RB EQU 11 21200000 RC EQU 12 BASE REGISTER 21280000 RD EQU 13 SAVE AREA POINTER REGISTER 21360000 RE EQU 14 RETURN REGISTER 21440000 RF EQU 15 GO TO REGISTER 21520000 EJECT 21600000 PARMREG EQU 1 21680000 DISP8 EQU 8 21760000 BYTES8 EQU 8 21840000 CONCODE8 EQU 8 21920000 DISP4 EQU 4 22000000 DISP1 EQU 1 22080000 DISP2 EQU 2 22160000 BYTES1 EQU 1 22240000 BYTES4 EQU 4 22320000 BLANK EQU C' ' 22400000 K EQU C'K' 22480000 COMMA EQU C',' 22560000 LPAREN EQU C'(' 22640000 RPAREN EQU C')' 22720000 NULL EQU X'00' 22800000 NOOVLY EQU X'BF' 22880000 EQUAL EQU C'=' 22960000 SIZE EQU X'01' 23040000 LPRENRCV EQU X'02' 23120000 RPRENRCV EQU X'04' 23200000 VAL1RCVD EQU X'08' VALUE1 RECIEVED OR ACCEPTED FOR DEFAULT 23280000 GENOPTST EQU X'10' INDICATES A GENERATED DEFAULT ACTIVATED 23360000 USEDEF EQU X'20' ERROR ENCOUNTERED WHICH NEGATES USER VALUES DEF. 23440000 KFORM EQU X'40' 23520000 INCOMPT EQU X'80' INCOMPATABLE OPTIONS MESSAGE NECESSARY 23600000 NOXML EQU X'97' RST MASK TO TURN OFF XREF,MAP AND LIST FOR NOPRINT 23680000 SCNDTIME EQU X'20' MOTP ENTERED FOR THE SECOND TIME 23760000 RESET EQU X'F0' RESET MASK FOR SIZE SWITCHES 23840000 NUMBER EQU X'F0' MASK FOR CHECKING VALID NUMERICAL ZONES 23920000 RSTKFORM EQU X'BF' RESET MASK FOR K FORM 24000000 HIAR EQU X'04' 24080000 NOHIAR EQU X'FB' 24160000 SCTR EQU X'04' 24240000 NOSCTR EQU X'FB' 24320000 RENT EQU X'10' 24400000 XREF EQU X'40' 24480000 TEST EQU X'10' 24560000 REFR EQU X'01' 24640000 CALL EQU X'7F' 24720000 NORNR EQU X'3F' 24800000 RENTREUS EQU X'C0' 24880000 NOREFR EQU X'FE' 24960000 MAP EQU X'20' 25040000 NE EQU X'08' 25120000 NONE EQU X'F7' 25200000 NOMAP EQU X'DF' 25280000 NOXREF EQU X'BF' 25360000 NOLIST EQU X'F7' 25440000 NOTERM EQU X'FD' 25520000 NOTEST EQU X'EF' 25600000 DCBS EQU X'10' 25680000 TERM EQU X'02' 25760000 OL EQU X'08' 25840000 NCAL EQU X'80' 25920000 XCAL EQU X'04' 26000000 LET EQU X'10' 26080000 REUS EQU X'40' 26160000 LIST EQU X'08' 26240000 DC EQU X'7F' 26320000 OVLY EQU X'20' 26400000 NORENT EQU X'7F' 26480000 NOREUS EQU X'BF' 26560000 TABLEEND EQU X'FF' 26640000 MULT1024 EQU 10 26720000 NEWPAGE EQU X'19' 26800000 EJECT 26880000 USING VRT,R6 26960000 USING APTDSECT,R2 27040000 USING DEFDSECT,R1 27120000 USING *,15 27200000 STM RE,RD,SAVEA SAVE REGISTERS 27280000 DROP 15 27360000 BALR RC,R0 27440000 USING *,RC 27520000 BC 15,MOID+6 27600000 MOID DC C'01MOPT' 27680000 EJECT 27760000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 27840000 * * 27920000 * THIS IS THE OPTION SCANNING ROUTINE . IT WILL CHECK THE PARM. * 28000000 * FIELD FOR VALID OPTIONS. INVALID OPTIONS AND VALID OPTIONS WILL * 28080000 * BE PLACED IN THE PRINT BUFFER TO BE PRINTED UPON RETURN TO INT. * 28160000 * PARMREG HAS POINTER TO 1ST BYTE OF THE PARAMATER FIELD PASSED ON * 28240000 * THE EXEC CARD. * 28320000 * R6 ALWAYS POINTS TO A WORK AREA * 28400000 * R2 ALWAYS POINTS TO APT * 28480000 * R8 WHILE SCANNING FOR PARAMATERS HAS THE ADR OF NXT AVAIL POS IN * 28560000 * PARAMATER MESSAGE TO PLACE THE PARAMATER 28640000 * * 28720000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 28800000 SPACE 2 28880000 TM APTSWS,SCNDTIME SECOND TIME IN OPT 28960000 BZ OPT01 29040000 L R6,TXTIO USE THE TXTIO TABLE FOR BUFFER 29120000 MVI NOTVLD,TABLEEND DO NOT ACCEPT TABLE ALLOCATING PARMS. 29200000 MVI MESGNO1,NEWPAGE ITERATIONS MUST BEGIN ON NEW PAGE 29280000 B OPT02 29360000 SPACE 1 29440000 OPT01 LH RA,0(0,PARMREG) NO. OF BYTES PASSED IN THE LIST 29520000 LA RB,DISP2(0,PARMREG) ADDRESS OF THE FIRST BYTE 29600000 SPACE 1 29680000 GETMAIN R,LV=274 ACQUIRE DYNAMIC WORK SPACE 29760000 LR R6,R1 PRIME DSCT REG 29840000 SPACE 1 29920000 OPT02 MVI INTERN1,NULL CLEAR THE SWITCHES 30000000 XC MSGONE(4),MSGONE 30080000 XC MSGTWO(4),MSGTWO 30160000 XC MSGTHREE(4),MSGTHREE 30240000 LTR RA,RA IS LENGTH THAT WAS PASSED = 0 30320000 BNP NOTANY NO PARAMATERS 30400000 MVI TRTBUF,NULL CLEAR FIRST BYTE 30480000 MVC TRTBUF+BYTES1(255),TRTBUF CLR REST OF BUFFER 30560000 SPACE 1 30640000 MVI TRTBUF+COMMA,COMMA MOVE COMMA TO COMMA DISPLACEMENT 30720000 MVI TRTBUF+EQUAL,EQUAL MOVE EQUAL TO EQUAL DISPLACEMENT 30800000 MVI TRTBUF+LPAREN,LPAREN MOVE IN LEFT PARENTHESIS 30880000 MVI TRTBUF+RPAREN,RPAREN MOVE IN RIGHT PARENTHESIS 30960000 MVI TRTBUF+BLANK,BLANK MOVE IN A BLANK(MAKES PARMS FREE-FORM 31040000 MVC OPTIONS(108),BLK1 RESET THE LINE 31120021 MVC GENDFLTS(20),BLK2 CLEAR THE LINE 31200000 LA R8,OPTIONS ADDRESS OF PLACE OPTIONS AREA 31280000 L R1,DEFADR ADDRESS OF DEF 31360000 SCANOPT BCTR RA,0 -1 FOR MACHINE LENGTH OF LIST 31440000 LR R0,R2 SAVE DSECT BASE 31520000 EX RA,SCAN SCAN FOR = OR 31600000 BNE OPTFOUND IF STOPPED CHECK FOR VALID OPTION 31680000 LA R9,DISP1(0,RA) PRINE R 9 WITH TRUE LENGTH 31760000 TM INTERN1,SIZE WAS I IN THE SIZE SEARCH 31840000 BO OPT111 IF SO CONTINUE SIZE EXTRACTION 31920000 LTR R7,RA TRANSFER THE LENGTH 32000000 BP LASTSCN IF MORE THAN 0 CONTINUE SCAN 32080000 OPTEXIT BCTR R8,0 -1 TO GET ADDRESS OF LAST COMMA 32160000 CLI 0(R8),RPAREN STOPPED LAST BY A ) 32240000 BE EXIT IF SO DO NOT BLANK IT OUT 32320000 MVI 0(R8),BLANK BLANK OUT LAST COMMA 32400000 EXIT EQU * 32480000 LA R3,MESGNO1 POINT TO START OF TEXT SA57107 32530021 SR R8,R3 CALC LENGTH OF TEXT SA57107 32540021 STC R8,HEADRS SAVE ACTUAL TEXT LENGTH SA57107 32550021 EJECT 32560000 *** TEST FOR ALLOWABLE OPTIONS 32640000 SPACE 1 32720000 TM NEWSW,HIAR IS HIAR OPTION ON 32800000 BZ OPT11B NO PROCESS OTHER OPTIONS 32880000 OI PDSE7,SCTR SET SCTR OPTION ON 32960000 OPT11B TM APT0,XREF IS XREF OPTION ON 33040000 BZ OPT12 NO 33120000 TM APT0,MAP IS MAP OPTION ON 33200000 BZ OPT13 BRANCH IF NOT 33280000 NI APT0,NOMAP SET MAP OPTION OFF 33360000 B OPT13 33440000 OPT12 TM APT0,MAP IS THE MAP OPTION ON 33520000 BZ OPT14 NO 33600000 OPT13 TM PDSE8,NE IS NE OPTION ON 33680000 BZ OPT14 NO 33760000 NI PDSE8,NONE SET NE OFF - WANTS MAP - 33840000 OI INTERN1,INCOMPT INDICATE INCOMPATABLE OPTIONS 33920000 OPT14 TM PDSE7,TEST IS TEST ON 34000000 BZ OPT16 NO 34080000 TM PDSE8,NE IS NE ON M4593 34380020 BZ OPT16 NO CONTINUE 34800000 NI PDSE8,NONE CLEAR NE INDICATOR 34880000 OI INTERN1,INCOMPT INDICATE INCOMPATABLE OPTIONS 34960000 OPT16 TM PDSE7,OVLY IS OVERLAY OPTION ON 35040000 BZ OPT26 EXIT 35120000 TM PDSE7,RENTREUS IS RENT OR REUS ON 35200000 BNZ OPT16B YES -RESET OPTION - 35280000 TM PDSE8,REFR IS REFR ON 35360000 BZ OPT16A NO -TEST FOR SCTR- 35440000 OPT16B NI PDSE8,NOREFR CLEAR REFR 35520000 NI PDSE7,NORNR CLEAR REUS AND RENT 35600000 OI INTERN1,INCOMPT INDICATE INCOMPATABLE OPTIONS 35680000 OPT16A TM PDSE7,SCTR IS SCTR ON 35760000 BZ OPT26 EXIT 35840000 NI PDSE7,NOSCTR CLEAR SCTR 35920000 NI NEWSW,NOHIAR CLEAR HIAR 36000000 OI INTERN1,INCOMPT INDICATE INCOMPATABLE OPTIONS 36080000 OPT26 EQU * ** END OF INCOMPATABLE OPTIONS SCAN ** 36160000 EJECT 36240000 *** 36320000 *** THIS SECTION CHECKS IF USER SPECD VAL 1 OR 2 36400000 *** DEFAULTS VALUES NOT SPECD DEFAULTS BOTH IF CONFLICT WITH DESIGN PT. 36480000 ** 36560000 *** R3 = VALUE 1 0 IF SPECIFIED INCORRECTLY OR IF USER WANTS DEFAULT 36640000 *** R4 = VALUE 2 0 IF SPECIFIED INCORRECTLY OR IF USER WANTS DEFAULT 36720000 SPACE 2 36800000 L R1,DEFADR ADDRESS OF IEWLMDEF 36880000 MVC IDENT(BYTES4),DEFNAME DESIGN NAME OF EDITOR 36960000 LM R3,R4,VALUE1 USER(IF SPECD) R3=VALUE1,R4=VALUE2 37040000 LM R9,RB,DEFDSNPT DEFAULTS R9=DSNPT,RA=DEFVAL1,RB=DEFVAL2 37120000 SPACE 1 37200000 TM INTERN1,USEDEF SIZE SPECD INCORRECTLY 37280000 BO OPT320 IF SO USE DEFAULTS 37360000 LTR R3,R3 DID USER SPECIFY A VALID VALUE 37440000 BP OPT300 37520000 LR R3,RA GET DEFAULT VALUE 1 37600000 ST RA,VALUE1 USE DEFAULT VALUE 1 37680000 OI INTERN1,USEDEF INDICATE DEFAULT(S) USED 37760000 B OPT330 CHECK VALUE2 37840000 SPACE 1 37920000 OPT300 CR R3,R9 IS VALUE 1 LT DSNPT 38000000 BNL OPT330 NO CHECK VALUE 2 38080000 OPT320 STM RA,RB,VALUE1 USE DEFAULT VALUES 1 AND 2 38160000 B OPT380 DEF VALUES IN EXIT 38240000 OPT330 LTR R4,R4 DID USER SPEC. VALUE 2 38320000 BNP OPT350 USER WANTS DEFAULT VALUE 2 38400000 CR R3,R4 IS VALUE 2 GT VALUE 1 38480000 BL OPT350 YES ERROR 38560000 C R4,MINVAL2 VALUE 2 LT MINIMUM 38640000 BL OPT350 USE DEFAULT VALUE2 38720000 C R4,MAXVAL2 DOES VALUE 2 EXCEED MAXIMUM 38800000 BNH OPT390 VALUE 2 ACCEPTABLE 38880000 OPT350 ST RB,VALUE2 USE DEFAULT VALUE 2 38960000 SPACE 1 39040000 OPT380 OI INTERN1,USEDEF INDICATE VALUE DEFAULTED 39120000 EJECT 39200000 *** 39280000 *** THIS SECTION SETS UP A MESSAGE INDICATING THE VALUES USED AND 39360000 ** WETHER THEY ARE DEFAULTS OR VARIABLE OPTIONS SPECIFIED BY THE USER, 39440000 *** 39520000 SPACE 2 39600000 OPT390 LA R8,VALUES ADDRESS OF MESSAGE 1 VALUES USED SLOT 39680000 L R1,VALUE1 QUANTITY VALUE1 39760000 BAL RE,OPT500 DELETE LEADING ZEROS - PLACE IN MSG 39840000 MVI 0(R8),COMMA INSERT THE COMMA SEPARATOR 39920000 LA R8,DISP1(0,R8) BUMP POINTER TO NEXT BLANK 40000000 L R1,VALUE2 QUANTITY VALUE2 40080000 BAL RE,OPT500 DELETE LEADING ZEROS - PLACE IN MSG 40160000 MVI 0(R8),RPAREN INSERT THE R PAREN TERMINATOR 40240000 TM INTERN1,USEDEF DEFAULTS USED? M3028 40280020 BZ OPT510 NO M3028 40320020 MVC DEFAULTM+10(17),DEFS YES - MOVE IN DEFAULT M3028 40360020 OPT510 EQU * 40400000 SPACE 2 40480000 *** 40560000 *** THIS SECTION SETS UP THE MESSAGES RETURNED TO INT 40640000 *** THIS SECTION DELETS HEADER MESSAGES WHEN THE NO PRINT OPTION 40720000 *** HAS BEEN CODED IN THE PARAMATER FIELD. 40800000 *** 40880000 SPACE 2 40960000 LM R3,R5,HEADRS LN AND ADR OF MESSAGES 1 AND 2 41040000 STM R3,R4,MSGONE PS TO INT THROUGH APT 41120000 OPT775 TM INTERN1,INCOMPT WERE THERE INCOMPATABLE OPTIONS 41200000 BZ OPT800 NO -DO NOT ISSUE MESSAGE - 41280000 ST R5,MSGTHREE SAVE IN APT 41360000 OPT800 EQU * 41440000 EJECT 41520000 *** 41600000 *** EPILOG 41680000 *** 41760000 SPACE 1 41840000 TM APTSWS,SCNDTIME SECOND TIME IN OPT 41920000 BO OPT999 DO NOT ISSUE THE FREE MAIN 42000000 FREEMAIN R,LV=274,A=(6) FREE DYNAMIC WORK SPACE 42080000 SPACE 2 42160000 RETURN LM RE,RD,SAVEA 42240000 BR RE RETURN 42320000 SPACE 1 42400000 * THIS SECTION PRINTS THE HEADER MESSAGES AFTER A PARM CARD 42480000 * HAS BEEN ENCOUNTERED. IEWLMINT PRINTS THE MESSAGES FROM 42560000 * THE PARMS ON THE EXEC CARD. 42640000 * 42720000 OPT999 EQU * 42800000 L RF,=V(IEWLEPNT) ADDRESS OF THE PRINT ROUTINE 42880000 LA R3,MSGONE GET ADDRESS OF LENGTH AND ADD. 42960000 * OF FIRST MESSAGE 43040000 LA R5,MSGTHREE PRIME END REG 43120000 LA R4,4 INDEX 43200000 OPT997 L R8,IEWLCWBB+20 ADDRESS OF SYSPRINT BUFFER 43280000 SR R9,R9 43360000 IC R9,0(0,R3) GET LENGTH OF THE MESSAGE 43440000 LTR R9,R9 IS IT ZERO 43520000 BZ OPT998 NO PRINT SKIP 43600000 L RB,0(0,R3) PUT ADDRESS OF MESSAGE IN RB 43680000 EX R9,MVOPT2M MOOE THE OPTION TO THE MESSAGE 43760000 BALR RE,RF PRINT THE HEADER 43840000 OPT998 BXLE R3,R4,OPT997 43920000 B RETURN 44000000 EJECT 44080000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 44160000 * * 44240000 *RB IS USED TO HOLD THE LAST(STOPPED AT) ADDRESS IN THE PARM FIELD * 44320000 *RA IS USED TO HOLD THE NUMBER OF BYTES OF OPTIONS LEFT IN PARM FIELD* 44400000 * R9 IS USED TO HOLD THE TRUE LENGTH OF AN OPTION FOR ADDRESS UPDATEING 44480000 * R7 IS USED TO HOLD MACHINE LENGTH OF OPTION FOR EX INSTRUCTIONS. * 44560000 * * 44640000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 44720000 SPACE 2 44800000 OPTFOUND STC R2,FUNCBYTE SAVE THE STOPPER BYTE. 44880000 LR R2,R0 RESTORE DSECT BASE. 44960000 LR R7,R1 TIC CURRENT(STOPPED AT) ADDRESS. 45040000 SR R7,RB LAST ADR-CUR ADR = LENGTH OF OPTION 45120000 LR R9,R7 TRANSFERR LENGTH TO R9 45200000 TM INTERN1,SIZE AM I LOOKING FOR SIZE AFT(SIZE=) 45280000 BZ CHECKOPT IF NOT DETERMINE IF VALID OPTION. 45360000 MVI TRTBUF+EQUAL,NULL DELETE = FROM TRT TABLE 45440000 * R7 CONTAINS TRUE LENGTH NOT MACH LENGTH BECAUSE (, MEANS DEFAULT 45520000 * THAT VALUE WHERE AS LIST,,, MEANS IGNORE AND WOULD NOT CAUSE VAL1 OR 45600000 * VAL2 RCVD SWITCH SETTING 45680000 SPACE 1 45760000 TM INTERN1,LPRENRCV ( RECIEVED ? 45840000 BZ OPT101 NO 45920000 CLI FUNCBYTE,COMMA STOPPED BY COMMA 46000000 BE OPT100 YES CHECK IF VAL1 RCVD YET 46080000 CLI FUNCBYTE,BLANK STOPPED BY A BLANK 46160000 BE OPT107 YES SKIP FREE FORM 46240000 * AT THIS POINT HAD TO BE STOPPED BY A ) BECAUSE NO OTHERS ARE STOPPERS 46320000 OI INTERN1,RPRENRCV SET ) RECIEVED 46400000 TM INTERN1,VAL1RCVD VALUE 1 RECIEVED YET 46480000 BO OPT102 YES CHECK FOR VALUE 2 RECIEVED 46560000 LA RF,VALUE1 ADDRESS OF VALUE1 46640000 BAL RE,MOVEVAL CHANGE RADIX OF VALUE POINTED BY RB 46720000 OI INTERN1,VAL1RCVD INDICATE VALUE 1 R*CIEVED 46800000 B OPT103 46880000 SPACE 1 46960000 OPT101 CLI FUNCBYTE,LPAREN STOPPED BY ( 47040000 BE OPT104 YES CHECK LENGTH 47120000 CLI FUNCBYTE,COMMA STOPPED BY , 47200000 BE OPT105 YES 47280000 CLI FUNCBYTE,BLANK STOPPED BY A BLANK 47360000 BE OPT112 YES SKIP FREE FORM 47440000 CLI FUNCBYTE,EQUAL STOPPED BY EQUAL -FREE FORM - 47520000 BE OPT112 YES SKIP FREE FORM 47600000 B SIZEINVL -ERROR- POSSIBLE *SIZE=)* 47680000 SPACE 1 47760000 OPT104 OI INTERN1,LPRENRCV SET ( RECIEVED 47840000 B OPT112 47920000 SPACE 1 48000000 OPT100 TM INTERN1,VAL1RCVD VALUE 1 RECIEVED YET 48080000 BO OPT102 YES CHECK IF VALUE 2 RECIEVED 48160000 LA RF,VALUE1 ADDRESS OF VALUE1 48240000 BAL RE,MOVEVAL CONVERT FROM RADIX 10 TO RADIX 2 48320000 OI INTERN1,VAL1RCVD INDICATE VALUE 1 RECIEVED 48400000 B GOBY CONTINUE 48480000 SPACE 1 48560000 OPT102 LA RF,VALUE2 ADDRESS OF VALUE2 48640000 OPT106 BAL RE,MOVEVAL CONVERT FROM RADIX 10 TO RADIX 2 48720000 OPT103 NI INTERN1,RESET CLEAR SWITCHES USED FOR SIZE SRCH 48800000 MVI TRTBUF+EQUAL,EQUAL RESTORE = SIGN TO TRT TABLE 48880000 B GOBY CONTINUE 48960000 SPACE 1 49040000 OPT105 LA RF,VALUE1 ADDRESS OF VALUE1 49120000 B OPT106 END OF SCAN -SIZE=100K- 49200000 OPT107 TM INTERN1,VAL1RCVD VALUE 1 RECIEVED YET 49280000 BO OPT108 YES 49360000 LA RF,VALUE1 ADDRESS OF VALUE1 49440000 BAL RE,MOVEVAL 49520000 B GOBY 49600000 EJECT 49680000 OPT108 LA RF,VALUE2 ADDRESS OF VALUE2 49760000 BAL RE,MOVEVAL 49840000 B GOBY 49920000 SPACE 1 50000000 OPT111 LR R7,R9 LAST SCAN R7=R9 50080000 B OPT100 CONTINUE 50160000 SPACE 2 50240000 SIZEINVL OI INTERN1,USEDEF SIZE SPEC. INVALIDLY 50320000 * AT THIS POINT POSSIBLE TOGIVE MESSAGE 50400000 B INVALIDR 50480000 SPACE 1 50560000 ZEROLN LA RB,DISP1(0,RB) UPDATE LAST(STOPPED AT) ADDRESS. 50640000 B TSTCNT1 50720000 EJECT 50800000 CHECKOPT EQU * ENTRY FOR FIRST TIME 50880000 LTR R9,R7 TRANSFER BACK TO AND TEST FOR 0 INR9 50960000 BNP OPT112 LENGTH OF OPTION 0 (,,OR==OR=,OR,=) 51040000 * ,( OR (( OR =( OR (= OR (, OR ), OR )= OR )) OR ,) OR ), 51120000 BCTR R7,0 -1 FOR MACHINE LENGTH 51200000 LASTSCN EQU * 51280000 LA R3,OPTFIELD ADDRESS OF ACCEPTABLE OPTIONS 51360000 SR R4,R4 CLEAR LENGTH REGISTER 51440000 SR R5,R5 CLEAR INDEX REG 51520000 SPACE 1 51600000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 51680000 * * 51760000 * DETERMINES IF OPTION IS A VALID SELECTION IF NOT INSERT INVALID& SKIP 51840000 * * 51920000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 52000000 SPACE 1 52080000 CHKOPT IC R4,0(0,R3) LENGTH OF THE OPTION 52160000 CR R4,R9 LN OF OPT IN LIST=LN OF OPT FOUND 52240000 BNE UPPTR NO CHECK THE NEXT ENTRY 52320000 EX R7,COMPOPT COMPARE THE TWO OPTIONS FOR = 52400000 BE OPT10 SET THE OPTION 52480000 SPACE 1 52560000 UPPTR LA R3,1(R4,R3) LN OF INST+LN BYTE(1)+LN OPT=NXT OPT 52640000 LA R5,DISP4(0,R5) UP INDEX TO NEXT OPTION SETTER 52720000 CLI 0(R3),TABLEEND END OF ACCEPTABLE OPTIONS 52800000 BNE CHKOPT CHECK THE NEXT OPTION IN THE LIST 52880000 * AT THIS POINT THE OPTION WAS NOT ONE OF THE ACCEPTABLE OPTIONS 52960000 SPACE 1 53040000 INVALIDR MVC 0(7,R8),INVMSG OPTION INVALID MOVE MSG TO BUFFER 53120000 MVC 7(BYTES1,R8),FUNCBYTE MOVE STOPPER BYTE 53200000 LA R8,DISP8(0,R8) UPDATE POINTER 53280000 B RSTPTR SAVE POINTER 53360000 OPT10 EX R0,SETOPTS(R5) SET OR RESET THE SWITCH(OPTION) 53440000 GOBY EX R7,MVOPT2M MOVE THE OPTION TO HEADER MESSAGE 53520000 OPT112 EQU * 53600000 LA R3,0(R8,R9) LN OF OPT+MSG ADR=POS FOR STOPPER 53680000 MVC 0(BYTES1,R3),FUNCBYTE MOVE IN THE STOPPER BYTE 53760000 LTR R9,R9 WAS THE LENGTH OF THE OPTION 0 53840000 BNP SHRT IF SO SKIP THE ALTERNATE INS 53920000 CLI FUNCBYTE,BLANK WAS THE STOPPER A BLANG 54000000 BE OPT113 IF SO DO NOT MOVE IT 54080000 LA R8,DISP2(R7,R8) A(MSG)+MACH. LENGTH+2(,+1)=NEW PTR. 54160000 RSTPTR LA RB,DISP1(R9,RB) UPDATE THE ADDRESS 54240000 TSTCNT1 SR RA,R9 LENGTH LEFT - AMMOUNT PROCESSED. 54320000 TSTCNT2 LTR RA,RA IS LENGTH STILL >0 54400000 BNP OPTEXIT TERMINATE IF O OR - 54480000 B SCANOPT CONTINUE 54560000 SPACE 2 54640000 SHRT CLI 0(R3),BLANK STOPPED BY A BLANK CHARACTER 54720000 BE ZEROLN DO NOT MOVE BLANKS TO MESSAGE 54800000 LA R8,DISP1(R7,R8) 54880000 B ZEROLN 54960000 SPACE 1 55040000 OPT113 LA R8,0(R9,R8) DO NOT INCLUDE THE LENGTH OF THE BLK 55120000 B RSTPTR 55200000 SPACE 1 55280000 EJECT 55360000 *** 55440000 *** UPON ENTRY R1 HAS THE VALUE TO BE CONVERTED 55520000 *** THIS SECTION DELETES LEADING ZEROES FORM NUMBERS TO PRINT 55600000 *** 55680000 SPACE 1 55760000 OPT500 LA R4,7 MAX LENGTH OF THE VALUE 55840000 CVD R1,WORK CONVERT TO DECIMAL NUMBER 55920000 OI WORK+7,X'0F' CHANGE ZONE 56000000 UNPK WORK1,WORK+DISP4(BYTES4) UNPACK FOR PRINTING 56080000 LA RB,WORK1+DISP1 ADDRESS OF UNPACKED VALUE 56160000 OPT508 CLI 0(RB),C'0' IS THIS A LEADING ZERO 56240000 BNE OPT512 DON'T DELETE 56320000 LA RB,1(0,RB) CHECK THE NEXT ONE 56400000 BCT R4,OPT508 CONTINUE DLETING LEADING ZEROS 56480000 OPT512 LA R4,WORK1+BYTES8 LAST BYTE OF VALUE IN WORK 56560000 SR R4,RB AM NUL-LN OF VAL=NO VLD NON-ZERO 56640000 BCTR R4,0 - 1 FOR THE EXECUTE LENGTH 56720000 EX R4,MVOPT2M MOVE THE VALUE TO THE MESSAGE 56800000 LA R8,DISP1(R4,R8) MC LN OF VAL+1ST ADR=ADR OF NXT BLK 56880000 BR RE RETURN 56960000 EJECT 57040000 *** 57120000 *** UPON ENTRY INTO THIS ROUTINE (WHICH CONVERTS DECIMAL NUMBER IN K O 57200000 *** EXPLICIT FORMAT TO A HEXADECIMAL NUMBER) 57280000 *** R1 UTILITY 57360000 *** R2 BASE OF DSECT 57440000 *** R3 UTILITY 57520000 *** R4 UTILITY 57600000 *** R5 POINTS TO THE LOCATION TO PLACE IT IN 57680000 *** R7 MACHINE LENGTH OF VALUE R9-1 57760000 *** R9 LENGTH OF VALUE (TRUE) 57840000 *** RA # BYTES LEFT IN PARM FIELD 57920000 *** RB POINTS TO THE VALUE TO BE CONVERTED 58000000 *** RE HOLDS THE RETURN ADDRESS 58080000 SPACE 2 58160000 MOVEVAL LTR R4,R9 LN OF VALUE 0 -USE DEFAULT- 58240000 BCR CONCODE8,RE YES -RETURN USER DEFAULTS THIS VALUE 58320000 BCTR R7,0 LN OF OPT-1 = MACH LN 58400000 LA R1,0(RB,R7) MACH.LN+A(VAL)=A(LAST BYTE OF VAL)*R7=R9-1* 58480000 CLI 0(R1),K IS VALUE IMPLICIT K 58560000 BNE EXPLICIT 58640000 OI INTERN1,KFORM INDICATE IMPLICIT VALUE 58720000 TM INTERN1,VAL1RCVD VALUE 1 RECIEVED YET 58800000 BZ OPT600 YES CHECK LENTH 58880000 LA R3,4 MAX.NO.CHARS. FOR IMPLICIT VALUE 58960000 OPT633 BCTR R4,0 -1 FROM CHAR CNT, TO NOT CHECK K 59040000 BCTR R7,0 -1 FROM CHAR CNT FOR K 59120000 OPT750 CR R3,R9 CHARACTER COUNT OF VALUE TOO BIG 59200000 BL SIZEINVL 59280000 CHKZONES BCTR R4,0 59360000 LA R5,0(RB,R4) LAST NUMBER IN STRING 59440000 LR R1,RB STARTING ADDRESS OF VALUE 59520000 LA R4,1 INDEX 59600000 NUMCK TM 0(R1),NUMBER ARE THE ZONES VALID 59680000 BNO SIZEINVL ZONES INVALID 59760000 BXLE R1,R4,NUMCK CONTINUE CHECKING ZONES 59840000 XC WORK,WORK CLEAR WORK 59920000 EX R7,PACK PACK VALUE 60000000 CVB R1,WORK CONVERT TO RADIX 2 60080000 TM INTERN1,KFORM WAS VALUE IMPLICIT 60160000 BZ STOREVAL NO 60240000 NI INTERN1,RSTKFORM RESET SW 60320000 SLL R1,MULT1024 MULT BY 1024 MAKE EXPLICIT 60400000 LA R7,1(R7) ADD 1 TO IMPL. CHAR CNT FOR MACH LN 60480000 STOREVAL ST R1,0(0,RF) RECORD THE VALUE 60560000 BR RE 60640000 SPACE 1 60720000 EXPLICIT TM INTERN1,VAL1RCVD VALUE 1 RECIEVED YET 60800000 BO OPT700 YES CHECK VALUE 2 RECIEVED 60880000 LA R3,6 MAX NO CHARS FOR EXPLICIT FORM 60960000 B OPT750 61040000 SPACE 2 61120000 OPT600 LA R3,5 MAX.NO.CHARS. FOR IMPLICIT VALUE 61200000 B OPT633 61280000 SPACE 2 61360000 OPT700 LA R3,7 MAX NO CHARS FOR EXPLICIT FORM 61440000 B OPT750 61520000 SPACE 1 61600000 NOTANY MVC OPTIONS+2(BYTES4),NONEM NO OPTIONS SPECIFIED 61680000 B EXIT 61760000 SPACE 1 61840000 *** THIS SECTION ISOLATES THOSE OPTIONS SET ON BY GENERATED 61920000 *** DEFAULTS 62000000 *** 62080000 SPACE 1 62160000 OPT950 NC SAVATS(BYTES1),0(R3) ISOLATE OPTIONC 62240000 BR RE 62320000 SPACE 1 62400000 MVOPT2M MVC 0(0,R8),0(RB) MOVE OPTION TO HEADER MESSAGE 62480000 COMPOPT CLC 0(0,RB),1(R3) COMPARE FOR VALID OPTION 62560000 SCAN TRT 0(0,RB),TRTBUF TRT THROUGH THE PARM FIELD 62640000 PACK PACK WORK,0(0,RB) PACK SIZE FOR RADIX CONVERSION 62720000 TSWITCH TM SAVATS,0 TEST THE ISOLATED OPTIONS 62800000 EJECT 62880000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 62960000 * * 63040000 * THESE ARE THE ALLOWABLE OPTIONS. * 63120000 * * 63200000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 63280000 SPACE 2 63360000 OPTFIELD EQU * ** LINKAGE EDITOR OPTIONS ** 63440000 SPACE 1 63520000 GENLST2 EQU * 63600000 DC X'04',C'XREF' CROSS REFERENCE LISTING 63680000 DC X'03',C'MAP' A MAP OF THE OUTPUT MODULE 63760000 DC X'04',C'LIST' LIST THE CONTROL CARDS 63840000 GENLST1 EQU * 63920000 DC X'04',C'RENT' MODULE IS RE-ENTRANT 64000000 DC X'04',C'REUS' MODULE IS SERIALLY RE-USEABLE 64080000 DC X'04',C'TEST' MARK MODULE TEST 64160000 DC X'03',C'LET' DO NOT MARK NOT EXECUTABLE FOR ERRORS 64240000 DC X'04',C'XCAL' IGNORE EXCLUSIVE CALLS IN OVERLAY 64320000 DC X'04',C'NCAL' NO AUTOMALIC CALL LIBRARY 64400000 DC X'02',C'OL' MARK -FETCH ONLY BY LOAD MACRO- 64480000 DC X'02',C'NE' NOT-EDITABLE- NO CESD PRODUCED 64560000 DC X'02',C'DC' 1K RECORDS ON SYSLMOD FOR E'15-18- 64640000 DC X'04',C'REFR' MATK -REFETCH AT ANY POINT- ER RECVY 64720000 DC X'04',C'TERM' SUPPORT TERMINAL IN OS/TS 64800000 DC X'04',C'CALL' USE SYSLIB FOR UNRES ERS 64880000 *** 64960000 *** NEGATIVE OPTIONS SUPPORT 65040000 *** 65120000 DC X'06',C'NOTEST' DO NOT MARK IN TEST 65200000 DC X'06',C'NOTERM' NO TERMINAL SUPPORT 65280000 DC X'06',C'NOLIST' DO NOT LIST CONTROL CARDS 65360000 DC X'06',C'NOXREF' NO CROSS-REFERENCE LISTING 65440000 DC X'05',C'NOMAP' NO MAP OF LOAD MODULE 65520000 DC X'06',C'NORENT' MODULE NOT REENTRABLE 65600000 DC X'06',C'NOREUS' MODULE NOT REUSEABLE 65680000 DC X'06',C'NOCALL' SAME AS NCAL 65760000 NOTVLD EQU * 65840000 DC X'04',C'HIAR' NOTE STORAGE HIARCHIES 65920000 DC X'04',C'SIZE' USE FOLLOWING SIZES FOR EDIT RUN 66000000 DC X'04',C'DCBS' USE DDCARD DCBBLKSIZE IF CAN 66080000 DC X'04',C'OVLY' MODULE IS AN OVERLAY STRUCTURE 66160000 DC X'04',C'SCTR' MARK MODULE BLOCK OR SCATTER LOAD 66240000 DC X'FF' *** END OF OPTIONS *** 66320000 EJECT 66400000 SETOPTS DS 0H 66480000 SPACE 1 66560000 OI APT0,XREF XREF OPTION 66640000 OI APT0,MAP MAP OPTION 66720000 OI APT0,LIST LIST OPTION 66800000 OI PDSE7,RENTREUS RENT, AND REUS 66880000 OI PDSE7,REUS REUSABLE REUS OPTION 66960000 OI PDSE7,TEST TEST OPTION 67040000 OI APT0,LET LET OPTION 67120000 OI APT0,XCAL XCAL - EXCLUSIVE CALLS- OPTION 67200000 OI APT0,NCAL NCAL - NO CALL- OPTION 67280000 OI PDSE7,OL OL ONLY LOADABLE OPTION 67360000 OI PDSE8,NE NOT EDITABLE -NE- OPTION 67440000 NI PDSE8,DC DC OPTION 67520000 OI PDSE8,REFR MARK REFRESHABLE 67600000 OI NEWSW,TERM INDICATE TERMINAL OUTPUT 67680000 NI APT0,CALL PERFORM AUTOCALL FOR UNRES - ER 67760000 NI PDSE7,NOTEST RESET TEST ATTRIBUTE 67840000 NI NEWSW,NOTERM NO TERMINAL OUTPUT 67920000 NI APT0,NOLIST NO LIST 68000000 NI APT0,NOXREF NO XREF 68080000 NI APT0,NOMAP NO MAP 68160000 NI PDSE7,NORENT INDICATE NOT-REENTRANT 68240000 NI PDSE7,NOREUS INDICATE NOT REUSEABLE 68320000 OI APT0,NCAL NO AUTO CALL 68400000 OI NEWSW,HIAR HIARCHY OPTION 68480000 OI INTERN1,SIZE SIZEOPTION 68560000 OI APTSWS,DCBS DCBS OPTION 68640000 OI PDSE7,OVLY OVLY OPTION 68720000 OI PDSE7,SCTR SCTR OPTION ON 68800000 EJECT 68880000 DS 0F 68960000 GENSET1 DC AL4(2,GENLST1,GENMASK1,3) 69040000 GENSET2 DC AL4(GENLST2,GENMASK2,3) 69120000 DEFADR DC V(IEWLMDEF) 69200000 HEADRS DC AL1(152),AL3(MESGNO1) LEN AND ADDR OF MSG 1 SA57107 69280021 DC AL1(59),AL3(MESGNO2) LENGTH AND ADDR OF MSG 2 M3028 69360020 DC AL1(029),AL3(MESGNO3) LENGTH AND ADDRESS OF MESSAGE 3 69440000 MINVAL2 DC A(6*1024) MINIMUM VALUE 2 69520000 MAXVAL2 DC A(100*1024) 69600000 GENMASK1 DC AL1(RENT,REUS,TEST) 69680000 GENMASK2 DC AL1(XREF,MAP,LIST) 69760000 SPACE 1 69840000 INVMSG DC CL7'INVALID' 69920000 MESGNO1 DC X'09' 70000000 IDENT DC C'XXXX-LEVEL LINKAGE EDITOR OPTIONS SPECIFIED' 70080000 BLK1 DC CL1' ' BLANK TO RESET THE LINE 70160000 OPTIONS DC 27CL4' ' SA57107 70240021 MESGNO2 DC X'09' 70320000 DEFAULTM DC CL11' ' LEADING BLANKS 70400000 DC C'VARIABLE OPTIONS USED - SIZE=(' 70480000 VALUES DC CL16' ' 70560000 BLK2 DC CL1' ' BLANK TO CLEAR LINE 70800000 GENDFLTS DC 8CL4' ' 70880000 MESGNO3 DC X'09' 70960000 DC C' ** OPTIONS INCOMPATIBLE **' 71040000 DEFS DC CL17'DEFAULT OPTION(S)' M3028 71120020 NONEM DC C'NONE' 71200000 DS 0F 71280000 SAVEA DS 16F SAVE AREA 71360000 DS 20F PROVIDE 20 FULL WORDS OF MAINTENANCE AREA ******* 71440000 EJECT 71520000 VRT DSECT 71600000 DS 0D 71680000 WORK DC 1D'0' 71760000 WORK1 DC 1D'0' 71840000 TRTBUF DC 256XL1'0' 71920000 FUNCBYTE DC XL1'0' 72000000 INTERN1 DC XL1'0' 72080000 APTDSECT IEWAPT 72160000 EJECT 72240000 DEFDSECT DSECT 72320000 DEFID DS CL4 MODULE IDENTIFIER 72400000 DEFDSNPT DS F DESIGN POINT 72480000 DEFVAL1 DS F DEFAULT VALUE 1 72560000 DEFVAL2 DS F DEFAULT VALUE 2 72640000 DEFNAME DS CL4 EDITOR NAME F44,F88,F128,F256 72720000 END 75300000 ./ ADD SSI=00011847,NAME=IEWLMOUT,SOURCE=0 TITLE 'OUT' 00080021 * * 00160021 *STATUS:CHANGE LEVEL * 00240021 * * 00320021 *FUNCTION/OPERATION: * 00400021 * 1- OUTPUT THE COMPOSITE EXTERNAL SYMBOL DICTIONARY(EDITABLE) * 00480021 * 2- BUILDS HALF EXTERNAL SYMBOL DICTIONARY * 00560021 * 3- BUILDS AND OUTPUTS CONTROL RECORD AND SEGTAB (1ST TXT) WHEN 00640021 * THE PROGRAM IS IN OVERLAY * 00720021 * 4- BUILDS AND OUTPUTS THE SCATTER/TRANSLATION RECORDS WHEN * 00800021 * THE PROGRAM IS IN SCATTER * 00880021 * 5- READS IN THE TEXT AND RLD NOTE LISTS * 00960021 * 6- DETERMINES THE CONTROL SECTIONS WITH THE HIGHEST ESD ID * 01040021 * PER SEGMENT * 01120021 * 7) INITIALIZES FOR 2ND PASS - IEWLKSCD * 01200021 * A - SET 2 DECBS TO COMPLETE STATUS * 01280021 * B - COMPUTES END ADDRESSES FOR 3 RLD BUFFERS * 01360021 * C - SETS CONTROL INFORMATION (16 BYTES) TO ZERO IN CONTROL 01440021 * RECORD BUFFER * 01520021 * D - PASSES PARAMETERS IN 3 GENERAL PURPOSE REGISTERS * 01600021 * E - COMPUTES END OF HESD ADDRESS * 01680021 * F - CONVERTS TXTIO TABLE CURRENT NO.BYTES TO NO. OF ENTRYS* 01760021 * G - SETS TTR LIST TO ZERO 01840021 * 01920021 *ENTRY POINT IEWLMOUT - CONTROL SECTION NAME * 02000021 * * 02080021 *INPUT: TABLES - LISTED BELOW * 02160021 * * 02240021 *OUTPUT: TABLES - LISTED BELOW * 02320021 * * 02400021 *EXTERNAL ROUTINES: IEWLELOG - ERROR DIAGNOSTIC ROUTINE * 02480021 * * 02560021 *EXITS - NORMAL IEWLMSCD - SECOND PASS PROCESSOR * 02640021 * * 02720021 * ERRORS IEWLMFNL - FINAL PROCESSOR - WHEN THERE IS NO TEXT IN 02800021 * THE OUTPUT LOAD MODULE THE SECOND PASS IS BY PASSED * 02880021 *TABLES/WORK AREA: * 02960021 * * 03040021 * 1- ALL PURPOSE TABLE * 03120021 * 2- COMPOSITE EXTERNAL SYMBOL DICTIONARY * 03200021 * 3- RELOCATION CONSTANT TABLE * 03280021 * 4- SEGMENT TABLE ONE * 03360021 * 5- TEXT NOTE LIST 1 AND 2 * 03440021 * 6- RLD NOTE LIST 1 AND 2 * 03520021 * 7- SCATTER AND TRANSLATION TABLES * 03600021 * 8- HALF EXTERNAL DICTIONARY * 03680021 * * 03760021 *ATTRIBUTES: * 03840021 * * 03920021 *NOTES: * 04000021 * * 04080021 * * 04160021 IEWLMOUT CSECT 04240021 *A109000,118000,122000,176000,616000,628000 S21016 04320021 *C163000,165000 S21016 04400021 *A162400,700000,926400,984000 S21016 04420021 *C936800 S21016 04440021 *C938400 M1602 04460021 *C219200-220000 A53196 04470021 *A220800 A53196 04472021 *A231200 A53196 04474021 *A233600 A53196 04476021 *I271200 SA65083 04478000 *********************************************************************** 04480021 * 04560021 * INTERMEDIATE OUTPUT PROCESSOR 04640021 * 04720021 *********************************************************************** 04800021 * REGISTER ASSIGNMENT * 04880021 *********************************************************************** 04960021 ERRCODE EQU 0 ERR CODE 05040021 NOTL1MXE EQU 0 MAXIMUM NO.ENTRIES IN NOTE LST1 05120021 WRITECT EQU 0 05200021 ENDTXTIO EQU 0 USED ON BUILD SCATR/TRANS LOOP 05280021 REG0 EQU 0 05360021 REG1 EQU 1 05440021 TEMP4 EQU 1 05520021 NOTL1CTE EQU 1 CURRENT NO.ENTRIES IN NOTE LST1 05600021 TTRREG EQU 1 05680021 APT EQU 2 05760021 ADTXTIOT EQU 3 USED ON BUILD SCATR/TRANS LOOP 05840021 CESDCRCT EQU 3 05920021 IOCTLADD EQU 3 ADD OF IO CONTROL TABLE 06000021 TEMP5 EQU 3 TEMPORARY REGISTER 06080021 CESDADD EQU 4 06160021 TRANSADD EQU 4 ADD OF TRANSLATION TABLE 06240021 IOCTLCTB EQU 4 CURRENT NO.BYTES IN IO CTL TBL 06320021 TXTIOADD EQU 4 ADD OF TXT IO TABLE 06400021 HESDCT EQU 5 06480021 NOTL2ADD EQU 5 ADD OF NOTE LIST 2 06560021 TXTIOCT EQU 5 CT OF CURRENT NO BYTES IN TXTIO 06640021 BUFFRSIZ EQU 6 SIZE OF NOTE LIST 1 06720021 CESDID EQU 6 06800021 SEGCT EQU 6 SEGMENT NO. 06880021 HIARAD EQU 6 USED IN LOOP TO BUILD SCTR TABLE IF HIAR SPECIFIED 06960021 HIIDTAB EQU 7 ADD OF HI ID TABLE 07040021 WRITEADD EQU 7 07120021 REG7 EQU 7 07200021 INDCBADD EQU 8 ADDRESS OF INT. DCB 07280021 SCATTADD EQU WRITEADD 07360021 NOTL1ADD EQU 8 ADD OF NOTE LIST 1 07440021 OTDCBADD EQU 8 ADDRESS OF OUT. DCB 07520021 TEMPRTN EQU 8 TEMP RETURN REG DISP 07600021 DCBADD EQU 9 07680021 RETPARM EQU 9 NO ENTRIES IN NOTE LIST 2 07760021 EVENREG EQU 10 EVEN REG OF AN EVEN ODD PAIR 07840021 HESDADD EQU 10 07920021 WORK1 EQU 10 WORK REG 08000021 ODDREG EQU 11 ODD REG OF AN EVEN ODD PAIR 08080021 RCTADD EQU 11 08160021 BASE EQU 12 08240021 BYTSPERE EQU 13 NO.OF BYTES PER ENTRY 08320021 SAVEAREA EQU 13 08400021 TEMP1 EQU 13 08480021 TEMPREG EQU X'D' 08560021 REG14 EQU 14 08640021 RETURN EQU 14 RETURN REGISTER 08720021 TEMP2 EQU 14 08800021 REG15 EQU 15 08880021 BRANCH EQU 15 BRANCH REGISTER 08960021 FIFTEEN EQU 15 09040021 TEMP3 EQU 15 09120021 SPACE 1 S21016 09200021 *****************REGISTERS USED BY SUBROUTINE IDROUT*************S21016 09280021 SPACE 1 S21016 09360021 TABADD EQU 10 POINTER TO BEGINNING OF S21016 09440021 * AN IDR DATA TABLE S21016 09520021 TABEND EQU 11 POINTER TO END OF AN IDR S21016 09600021 * DATA TABLE S21016 09680021 DATAPTR EQU 4 POINTER TO BEGINNING OF S21016 09760021 * DATA IN AN IDR DATA TABLE S21016 09840021 DATALEN EQU 5 LENGTH OF DATA IN AN IDR S21016 09920021 * DATA TABLE S21016 10000021 RECLEN EQU 3 LENGTH OF DATA IN ONE S21016 10080021 * RECORD (USED AS DECREMENT S21016 10160021 * FOR UPDATING DATALEN) S21016 10240021 MVCPTR EQU 3 POINTER TO DESTINATION IN S21016 10320021 * EXECUTED MOVE S21016 10400021 DATASIZE EQU 4 LENGTH OF DATA IN A S21016 10480021 * RECORD S21016 10560021 ZPCOUNT EQU 5 NUMBER OF ENTRIES IN S21016 10640021 * AN SPZAP DATA RECORD S21016 10720021 TIME EQU 0 TIME OF DAY RETURNED BY S21016 10800021 * TIME MACRO S21016 10880021 DATE EQU 1 DATE RETURNED BY TIME S21016 10960021 * MACRO S21016 11040021 ZAPCMPR EQU 4 COMPARISON VALUE USED TO S21016 11120021 * DETERMINE WHETHER AN S21016 11200021 * EXTRA SPZAP IDR SHOULD S21016 11280021 * BE CREATED S21016 11360021 *********************************************************************** 11440021 * MASKS * 11520021 *********************************************************************** 11600021 ESDWTBIT EQU X'01' 11680021 HIAROP EQU X'04' HIAR MASK 11760021 INC EQU 4 11840021 SDPCCM EQU X'02' 11920021 SCATTBIT EQU X'04' SCATTER MASK DISP 12000021 OVRLYBIT EQU X'20' OVERLAY MASK DISP 12080021 CESDCNTL EQU X'20' 12160021 ESDWTOFF EQU X'FE' 12240021 SPACE 1 S21016 12320021 *******MASKS AND IMMEDIATE BYTES USED BY SUBROUTINE IDROUT*******S21016 12400021 SPACE 1 S21016 12480021 CHAIN EQU X'40' CHAIN BIT IN DATA COUNT S21016 12560021 * FIELD OF SPZAP TYPE IDR S21016 12640021 ZAPMAX EQU X'53' VALUE OF COUNT FIELD IN S21016 12720021 * SPZAP TYPE IDR WHEN ALL S21016 12800021 * ENTRIES ARE USED AND S21016 12880021 * CHAIN BIT IS ON S21016 12960021 NOZPDATA EQU X'00' VALUE OF COUNT FIELD IN S21016 13040021 * SPZAP TYPE IDR WHEN NO S21016 13120021 * ENTRIES ARE USED AND S21016 13200021 * CHAIN BIT IS OFF S21016 13280021 LASTIDR EQU X'80' FLAG IN IDR SUBTYPE FIELD S21016 13360021 * TO INDICATE THE LAST IDR S21016 13440021 * FOR AN OUTPUT LOAD MODULE S21016 13520021 TRNSTYPE EQU X'04' SUBTYPE INDICATOR FOR S21016 13600021 * IDR'S WITH TRANSLATOR S21016 13680021 * DATA S21016 13760021 USERTYPE EQU X'08' SUBTYPE INDICATOR FOR S21016 13840021 * IDR'S WITH USER-DATA S21016 13920021 TRUDMAX EQU X'FF' MAXIMUM BYTE COUNT FOR S21016 14000021 * TRANSLATOR AND USER-DATA S21016 14080021 * IDR'S S21016 14160021 ZEROFILL EQU X'00' ZEROES FOR PADDING S21016 14240021 ON EQU X'01' MASK FOR SWITCH S21016 14320021 * INDICATING A TEMPORARY S21016 14400021 * NEEDED FOR A MOVE S21016 14480021 OFF EQU X'FE' IMMEDIATE BYTE TO TURN S21016 14560021 * OFF 'TEMPORARY NEEDED' S21016 14640021 * SWITCH S21016 14720021 *********************************************************************** 14800021 * DISPLACEMENTS * 14880021 *********************************************************************** 14960021 LASTESD EQU X'08' MASK FOR LAST ESD RCD IN MODULE 15040021 SPACE 1 S21016 15120021 **********SYMBOLIC DISPLACEMENTS AND LENGTHS USED BY*************S21016 15200021 *********************SUBROUTINE IDROUT***************************S21016 15280021 SPACE 1 S21016 15360021 HDRLEN EQU 4 LENGTH OF IDR SPZAP S21016 15440021 * HEADER S21016 15520021 ZAPLEN EQU 247 LENGTH OF SPZAP DATA IN S21016 15600021 * ONE RECORD S21016 15680021 ZPLEN EQU 246 LENGTH OF SPZAP DATA - 1 S21016 15760021 * (USED TO PAD WITH ZEROES) S21016 15840021 LOC EQU 0 NULL OFFSET S21016 15920021 ZPRECLEN EQU 251 LENGTH OF AN IDR SPZAP S21016 16000021 * RECORD S21016 16080021 UNIT EQU 1 OFFSET OF 1 BYTE S21016 16160021 LEN2 EQU 2 TWO-BYTE LENGTH S21016 16240021 LEN3 EQU 3 THREE-BYTE LENGTH S21016 16260021 LEN4 EQU 4 FOUR-BYTE LENGTH S21016 16280021 LEN8 EQU 8 EIGHT-BYTE LENGTH S21016 16320021 CMPRSIZE EQU 14 COMPARISON VALUE FOR MAX S21016 16400021 * NUMBER OF ENTRIES ALLOWED S21016 16480021 * IN AN IDR SPZAP RECORD S21016 16560021 * BEFORE ADDING AN ADDI- S21016 16640021 * TIONAL SPARE RECORD S21016 16720021 LKRECLEN EQU 18 LENGTH OF IDR LKED RECORD S21016 16800021 LKLEN EQU 15 LENGTH OF IDR LKED DATA S21016 16880021 * EXCEPT FOR DATE OF LKED S21016 16960021 DATELEN EQU 3 LENGTH OF PACKED DEC DATE S21016 17040021 * RETURNED BY TIME MACRO S21016 17120021 TRUDLEN EQU 253 GREATEST AMOUNT OF USER S21016 17200021 * OR TRANSLATOR DATA WHICH S21016 17280021 * CAN GO ONTO ONE RECORD S21016 17360021 TURECLEN EQU 256 MAXIMUM TRANSLATOR AND S21016 17440021 * USER-DATA RECORD SIZE S21016 17520021 ADDLEN EQU 3 THREE-BYTE ADJUSTMENT FOR S21016 17600021 * DETERMINING BYTE COUNT OF S21016 17680021 * TRANSLATOR AND USER-DATA S21016 17760021 * RECORDS SHORTER THAN MAX S21016 17840021 *********************************************************************** 17920021 * SECOND PASS DISPLACEMENTS,REGISTERS AND MASKS * 18000021 *********************************************************************** 18080021 NOEDIT2P EQU X'02' NOT EDIT MASK FOR 2ND PASS 18160021 NOTEDIT EQU X'08' NOT EDITABLE MASK 18240021 EXTRN IEWLCUDB 18320021 EXTRN IEWLCMDB 18400021 EXTRN SEGLNTAB 18480021 * OUTPUT CESD AND BUILD HESD 18560021 USING OUT00100+2,BASE 18640021 USING APTDSECT,APT 18720021 OUT00100 BALR BASE,0 18800021 *********************************************************************** 18880021 * BUILD HESD & OUTPUT CESD(IF PGM IS NOT- NOT EDITABLE * 18960021 * ALSO MARK LAST ESD RECORD IF THERE IS NO TEXT * 19040021 *********************************************************************** 19120021 BC 15,MODID+6 BRANCH AROUND MODULE IDENT 19200021 MODID DC C'02MOUT' 19280021 TM APT0,X'20' IS MAP REQUESTED 19360021 BC 1,OUT00105 YES 19440021 TM APT0,X'40' NO--IS XREF REQUESTED 19520021 BC 8,OUT00110 NO 19600021 TM NEWSW,X'20' YES--ARE RLDS IN CORE 19680021 BC 1,OUT00110 NO--DON'T DO XREF NOW 19760021 OUT00105 L REG15,MAPAD YES--GO TO MAP/XREF 19840021 OI NEWSW,X'40' SET ENTRY FROM INTERMEDIATE BIT 19920021 BALR REG14,REG15 20000021 NI NEWSW,X'BF' TURN OFF INTERMEDIATE ENTRY BIT 20080021 OUT00110 L CESDADD,CHESD LOAD CESD ADDRESS 20160021 LA CESDID,1 SET FIRST ID TO 1 20240021 L HESDADD,HESD HESD ADDRESS 20320021 OI APT1,ESDWTBIT SET FIRST ESD WRITE ON FOR NOTE 20400021 LH CESDCRCT,ENCDC CURR NO CESD ENTRIES 20480021 OI APT3,NOEDIT2P 20560021 OUT00200 LA FIFTEEN,15 PUT 15 IN FIFTEEN 20640021 XC 8(4,CESDADD),8(CESDADD) SET HI WORD OF CONTROL TO ZERO 20720021 SR CESDCRCT,FIFTEEN REMAING NO. CESD ENTRIES TO WT 20800021 BC 2,OUT00300 BRANCH IF REMAINDER GTR THAN 0 20880021 AR FIFTEEN,CESDCRCT REMAINDER LESS 0 /RESTORE CT 20960021 OC ENTOC(2),ENTOC IS THERE ANY TEXT IN MODULE 21040021 BC 4,OUT00300 YES 21120021 OI 8(CESDADD),LASTESD NO/SET LAST RCD IN MODULE IND 21200021 OUT00300 LR HESDCT,FIFTEEN COUNT OF PRESENT CESD WT COUNT 21280021 SLL FIFTEEN,4 16(Y); Y= NO CESD LINES TO WT. 21360021 STH FIFTEEN,14(CESDADD) PUT BYTE CT IN CONTROL 21440021 STH CESDID,12(CESDADD) PUT ESDID IN CONTROL 21520021 OI 8(CESDADD),CESDCNTL SET HI BYTE TO 20 (ESD ITEM) 21600021 LA WRITECT,8(FIFTEEN) INC WT BYTE CT BY 8 21680021 LA WRITEADD,8(CESDADD) INC WT BYTE ADD BY 8 21760021 TM PDSE8,NOTEDIT IS MODULE NOT EDITABLE 21840021 BO OUT00320 IF YES, DO NOT TURN 2ND S21016,A53196 21920021 * PASS NE SWITCH S21016,A53196 22000021 NI APT3,X'FD' SET NOT EDITABLE OFF 22080021 B OUT00350 BRANCH TO PUT OUT IDR A53196 22130021 OUT00320 TM APTSW2,IDROUT TEST IDR OUTPUT ENABLED A53196 22140021 BNO OUT00400 IF NOT, BYPASS IDR OUTPUT A53196 22150021 OUT00350 BAL TEMPRTN,OUT00990 GO TO WRITE/CHECK/NOTE S21016 22160021 * SUBROUTINE S21016 22240021 LTR TTRREG,TTRREG TTR EXISTS ON FIRST WT/ESD&SCAT 22320021 BC 8,OUT00400 BRANCH ON ALL OTHER WTS 22400021 ST TTRREG,CTTR SAVE TTR OF CESD 22480021 OUT00400 LA HESDADD,8(HESDADD) INCREMENT HESD ADDRESS PTR 22560021 LA CESDADD,16(CESDADD) INCREMENT CESD ADDRESS PTR 22640021 LM TEMP1,TEMP2,8(CESDADD) LOAD LAST 4 BYTES OF A CESD LIN 22720021 STM TEMP1,TEMP2,0(HESDADD) STORE IT IN HESD 22800021 BCT HESDCT,OUT00400 BRANC IF LOOP NOT DONE 22880021 LA CESDID,15(CESDID) INC ESDID BY 15 22960021 LTR CESDCRCT,CESDCRCT HAVE ALL CESD LINES BEEN WRITEN 23040021 BC 2,OUT00200 NO /CONTINUE WRITE OUT 23120021 TM APTSW2,IDROUT TEST IDR OUTPUT ENABLED A53196 23170021 BNO OUT00450 BRANCH IF NOT A53196 23180021 BAL TEMPRTN,OUTIDR AFTER LAST CESD LINE IS S21016 23200021 * WRITTEN, GO TO PROCESS S21016 23280021 * IDR'S S21016 23360021 OUT00450 EQU * IDR OUTPUT BYPASS A53196 23410021 XC 8(8,HESDADD),8(HESDADD) SET LINE AFTER LAST = 0 23440021 *********************************************************************** 23520021 * IF THERE IS NO TEXT IN MODULE BY PASS 2ND PASS/GO TO * 23600021 * FINAL PROCESSOR - ALSO PRINT MESSAGE - NO TEXT * 23680021 *********************************************************************** 23760021 OUT00525 SR TEMP1,TEMP1 23840021 CH TEMP1,ENTOC ANY ENTRIES IN TXT ID TBL 23920021 BC 8,OUT00970 NO / NO TXT / GO TO FINAL PROC 24000021 *********************************************************************** 24080021 * TEST FOR OVERLAY - YES GO TO BUILD SEGTAB CONTROL RCD * 24160021 * AND SEGTAB RECORD AND WRITE OUT BOTH * 24240021 *********************************************************************** 24320021 OUT00550 TM PDSE7,OVRLYBIT IS PROGRAM IN OVERLAY 24400021 BC 1,OUT01000 YES/ GO OUT PUT SEGTAB RCDS 24480021 *********************************************************************** 24560021 * TEST FOR SCATTER - YES -BUILD SCATTER / TRANSLATION * 24640021 * TABLES AND OUTPUT BOTH AS ONE ENITY- OUT IN RECORDS * 24720021 * OF 1024 DEC BYTES * 24800021 *********************************************************************** 24880021 TM PDSE7,SCATTBIT IS PROGRAM IN SCATTER 24960021 BC 1,OUT02000 YES/ GO WRITE SCATTER RCD 25040021 *********************************************************************** 25120021 * READ IN TEXT NOTE LIST AND RLD NOTE LIST 25200021 *********************************************************************** 25280021 * INITIALIZE REGS FOR TXT NOTE LIST READ IN 25360021 *********************************************************************** 25440021 OUT00560 LA BYTSPERE,7 7 BYTES/ENTRY IN TXT NOTELIST 25520021 LA IOCTLADD,IOCT ADDRESS OF TXT IO CTL TBL 25600021 LH IOCTLCTB,ENITC CURR NO BYTES IN TXT IO CTL TBL 25680021 L NOTL1ADD,TNT1 TXT NOTELIST 1 ADDR 25760021 L NOTL2ADD,TNLS2 TXT NOTELIST 2 ADD 25840021 LH NOTL1CTE,ENT1C CURR NO ENTRIES IN TXT NOTLST 1 25920021 LH NOTL1MXE,ENT1X MAX NO ENTRIES IN TXT NOTLST 1 26000021 BAL RETURN,OUT00600 GO TO TXT RLD READIN ROUTINE 26080021 STH RETPARM,ENT2C STORE CURR NO ENTRIES TXT NLT 2 26160021 *********************************************************************** 26240021 * INITIALIZE REGS FOR RLD NOTE LIST READ IN 26320021 *********************************************************************** 26400021 LA BYTSPERE,9 9 BYTES/ENTRY IN RLD NOTELIST 26480021 LA IOCTLADD,IOCT+12 ADDRESS OF RLD IO CTL TBL 26560021 LH IOCTLCTB,ENIRC 26640021 L NOTL1ADD,RNT1 ADDR RLD NOTELIST 1 26720021 L NOTL2ADD,RNLS2 ADDR RLD NOTELIST 2 26800021 LH NOTL1CTE,ENR1C CURRNT NO. ENTRIES IN RLD NOTELIST 1 26880021 LH NOTL1MXE,ENR1X MAX NO. OF ENTRIES IN RLD NOTELIST 1 26960021 BAL RETURN,OUT00600 GO TO TXT- RLD READ IN RT 27040021 STH RETPARM,ENR2C STORE CURRENT NO. ENTRIES IN RLDNL2 27120021 STH RETPARM,ENR1C DITTO RLDNL1 FOR MAP/XREF SA65083 27170000 **********************************************************************$ 27200021 * DETERMINE ID OF LAST TXTIOT ENTRY PER SEGMENT * 27280021 * ALSO SAVE HIGEST SEGMENT NUMBER CONTAINING TEXT 27360021 **********************************************************************$ 27440021 * 27520021 OUT00570 SR TEMP4,TEMP4 ZERO CT OF TXTIO FOR LOOP 27600021 L HIIDTAB,ADHIID 27680021 L HIIDTAB,0(HIIDTAB) ADDRESS OF HI ID TABLE 27760021 LR TEMP1,HIIDTAB GET START OF TABLE ADDRESS 27840021 XC 0(256,TEMP1),0(TEMP1) CLEAR 1ST HALF OF TABLE 27920021 XC 256(256,TEMP1),256(TEMP1) CLEAR 2ND HALF OF TABLE 28000021 OUT00580 L TXTIOADD,TXTIO ADD OF TXTIO TABLE 28080021 AR TXTIOADD,TEMP4 ADD OF NEXT ID IN TXTIO TABLE 28160021 TM 2(TXTIOADD),X'20' IS IT OUT OF ORDER TXT 28240021 BC 1,OUT00581 YES--TEST END OF TXTIOT LOOP 28320021 MVC WORD(2),0(TXTIOADD) MOVE ID FROM TXTIO TO WORK 28400021 LH TEMP1,WORD LOAD ID 28480021 LR TEMP2,TEMP1 SAVE ID 28560021 SLL TEMP2,3 RELATIVE HESD ADD FOR THIS ID 28640021 A TEMP2,HESD ABSOLUTE HESD ADR FOR THIS ID 28720021 SR TEMP3,TEMP3 ZERO SEGMENT NO REG 28800021 IC TEMP3,4(TEMP2) THIS ID LIES IN THIS SEGMENT 28880021 AR TEMP3,TEMP3 DOUBLE SEG NO - REL. ADD TOHIID 28960021 LH WORK1,0(HIIDTAB,TEMP3) GET CURRENT HI-ID IN TABLE 29040021 LTR WORK1,WORK1 WAS THERE ANY PREVIOUS ID 29120021 BC 8,NOPRVID BR IF THIS IS THE FIRST ID FOR SEG. 29200021 SLL WORK1,3 CALCULATE HESD ADDRESS 29280021 A WORK1,HESD FOR THIS ID 29360021 CLC 1(3,TEMP2),1(WORK1) IS NEW ID LOCATED AT A HIGHER 29440021 * ADDRESS THAN PREVIOUS ID IN SEG 29520021 BC 12,OUT00581 BR IF NOT AT A HIGHER ADDRESS 29600021 NOPRVID EQU * THIS SHOULD BE AT THE STORE ID INSTRUCTION 29680021 STH TEMP1,0(HIIDTAB,TEMP3) SAVE LAST TXTIOT ENTRY FOR SEG 29760021 OUT00581 LA TEMP4,4(TEMP4) INCREMENT TEXTIO BYTE COUNT 29840021 CH TEMP4,ENTOC IS CURR. CT = SAVED CT 29920021 BC 4,OUT00580 NO - GO TO CONTINUE LOOP 30000021 SR TEMP1,TEMP1 30080021 LH SEGCT,CSNO TOTAL CURRENT NO. SEGMENTS 30160021 OUT00582 LA TEMP1,1(TEMP1) INC BY 1 (CURRENT SEG) 30240021 LR TEMP3,TEMP1 SAVE CURRENT SEG NO. 30320021 AR TEMP3,TEMP3 DOUBLE CURR SEG NO 30400021 LH TEMP2,0(HIIDTAB,TEMP3) LAST TXTIOT ENTRY FOR THIS SEG 30480021 LTR TEMP2,TEMP2 IS ID = 0 30560021 BC 8,OUT00583 YES NO TXT IN THIS SEGMENT 30640021 STH TEMP1,ENSPC SAVE HI SEG WITH TEXT 30720021 SLL TEMP2,3 MULT BY 8 30800021 A TEMP2,HESD ADDRESS OF HESD ENTRY 30880021 OI 0(TEMP2),X'40' SET LAST TXTIOT ENTRY ON IN HESD 30960021 OUT00583 BCT SEGCT,OUT00582 BRANCH IF LOOP NOT DONE 31040021 *********************************************************************** 31120021 * AT THIS POINT SECOND PASS INITIALIZATION IS PERFORMED 31200021 *********************************************************************** 31280021 OUT00575 L REG7,TTRLIST ADDRESS OF TTR LIST 31360021 BCT TEMP1,OUT00576 BRANCH TO ZERO TTR LIST 31440021 BC 15,OUT00577 BRANCH AROUND ZEROING TTR LIST 31520021 OUT00576 SLL TEMP1,2 CURR NO SEGMENTS -1 TIMES 4 31600021 * RESTORE SEGMENT CT IF IN OVERLAY 31680021 LA TEMP1,3(TEMP1) UPDATE COUNT FOR EX INSTRUCTION 31760021 LA REG1,256 31840021 OUT00578 SR TEMP1,REG1 CHECK FOR 256 OR MORE BYTES 31920021 BC 4,OUT00579 NO 32000021 XC 0(256,REG7),0(REG7) YES--CLEAR 256 BYTES 32080021 AR REG7,REG1 INCREMENT BY 256 32160021 BC 15,OUT00578 32240021 OUT00579 AR TEMP1,REG1 RESTORE COUNT 32320021 EX TEMP1,ZEROHIID ZERO TTR L 32400021 OUT00577 SR REG0,REG0 32480021 LA WORK1,9 32560021 MH WORK1,ENR2C 32640021 A WORK1,RNLS2 32720021 ST WORK1,SPACES+48 RLD NOTELIST LAST ENTRY ADDR. 32800021 L WORK1,TXTIO 32880021 AH WORK1,ENTOC 32960021 SH WORK1,FOUR 33040021 ST WORK1,SPACES+44 TEXT I/O TABLE LAST ENTRY ADDR 33120021 LH WORK1,ENCDC 33200021 SLL WORK1,3 33280021 A WORK1,HESD 33360021 ST WORK1,SPACES+52 HESD LAST ENTRY ADDR 33440021 LH REG1,ENSPX SEGTAB ID 33520021 CR REG1,REG0 33600021 BC 8,SCDGETID 33680021 OUTSCDIN SLL REG1,3 33760021 A REG1,HESD 33840021 LA REG1,8(0,REG1) ADDR. FIRST HESD ENTAB ENTRY 33920021 L BRANCH,TPASSVCN 34000021 BR BRANCH GO TO SECOND PASS 34080021 SCDGETID LH REG1,ENCDC LAST ID 34160021 B OUTSCDIN 34240021 *********************************************************************** 34320021 * 34400021 * TXT - RLD MOVE AND READ IN ROUTINE 34480021 * 34560021 *********************************************************************** 34640021 OUT00600 STM RETURN,BRANCH,SAVE1415 34720021 SRL IOCTLCTB,2 NO.OF BUFFERINGS 34800021 LR EVENREG,IOCTLCTB NO,OF NOTE LIST BUFFERINGS 34880021 LR ODDREG,NOTL1MXE NO.OF ENTRIES PER BUFFERING 34960021 MR EVENREG,EVENREG TOTAL NO.OF BUFFER ENTRIES 35040021 LA RETPARM,0(ODDREG,NOTL1CTE) 35120021 LR EVENREG,BYTSPERE NO BYTES PER ENTRY 35200021 LR ODDREG,NOTL1MXE MAX NO.NOTE LIST 1 ENTRIES 35280021 MR EVENREG,EVENREG NO. BYTES IN BUFFER (NOTE LST1) 35360021 * ANS IN ODDREG 35440021 LR BUFFRSIZ,ODDREG SAVE BUFFER SIZE 35520021 LR EVENREG,IOCTLCTB NO.OF BUFFERINGS 35600021 MR EVENREG,EVENREG RELAITIVE ADD OF WHERE TO MOVE 35680021 * CONTENTS OF NOTE LIST1-ANS-ODDR 35760021 ST NOTL2ADD,SAVEWORD 35840021 AR NOTL2ADD,ODDREG ADD OF WHERE TO 1PT OF NL1TONL2 35920021 LR EVENREG,BYTSPERE NO,BYTES PER ENTRY IN NOTE LIST 36000021 LTR ODDREG,NOTL1CTE NO.ENTRIES IN NOTE LIST 1 36080021 BC 8,OUT00850 36160021 MR EVENREG,EVENREG CURRENT NO BYTES IN NOTE LIST 1 36240021 SR TEMP3,TEMP3 36320021 OUT00700 LA TEMP1,256 36400021 SR ODDREG,TEMP1 REMAINDER TO MOVE TO NOTE LIST2 36480021 BC 10,OUT00800 BRANCH IF REMAINDER GTR,= 0 36560021 AR TEMP1,ODDREG RESTORE NO.BYTES TO MOVE 36640021 OUT00800 BCTR TEMP1,0 DECREMENT BY 1 FOR EX MOVE INST 36720021 LA TEMP2,0(NOTL2ADD,TEMP3) ADD.OF WHERE TO MV NL1 TO NL2 36800021 EX TEMP1,MOVEINST MOVE NOTE LIST 1 TO NOTE LIST 2 36880021 LA TEMP3,256(TEMP3) INC BY 256 36960021 LA NOTL1ADD,256(NOTL1ADD) INC ADD OF NOTE LIST TO MOVE AD 37040021 LTR ODDREG,ODDREG ANY MORE NOTE LST TO BE MOVED 37120021 BC 2,OUT00700 BRANCH ON YES - GO TO MOVE 37200021 OUT00850 LTR IOCTLCTB,IOCTLCTB 37280021 BC 8,OUT00950 NO 37360021 L NOTL2ADD,SAVEWORD 37440021 OUT00900 LA SAVEAREA,SPACES SAVE AREA FOR POINT MACRO 37520021 L INDCBADD,DCBINTER INTER DCB ADDRESS 37600021 *********************************************************************** 37680021 * POINT TO NEXT RECORD TO READ * 37760021 *********************************************************************** 37840021 POINT (INDCBADD),(IOCTLADD) 37920021 * * 38000021 * READ NEXT RECORD 38080021 *********************************************************************** 38160021 READ DECB,SF,(INDCBADD),(NOTL2ADD),(BUFFRSIZ) 38240021 *********************************************************************** 38320021 * CHECK FOR COMPLETION OF READ * 38400021 *********************************************************************** 38480021 CHECK DECB 38560021 LA IOCTLADD,4(IOCTLADD) ADD OF NEXT TTR 38640021 AR NOTL2ADD,BUFFRSIZ 38720021 BCT IOCTLCTB,OUT00900 BRANC IF MORE TO READ IN 38800021 OUT00950 LM RETURN,BRANCH,SAVE1415 RESTORE 2 REGS 38880021 BCR 15,RETURN RETURN TO CALLER 38960021 SAVEWORD DC F'0' 39040021 *********************************************************************** 39120021 * PASS ERROR PARM TO ERROR ROUTINE - NO TEXT * 39200021 *********************************************************************** 39280021 OUT00970 LH ERRCODE,ERRPARM1 NO TXT IN LOAD MODULE 39360021 L BRANCH,ERDIG ADDR OF ERROR ROUTINE 39440021 BALR RETURN,BRANCH GO TO ERR DIAGNOSTIC ROUTINE 39520021 L BRANCH,FNALVCON ADD OF FINAL PROC 39600021 BCR 15,BRANCH GO TO ERR ROUT 39680021 ********************************************************************** 39760021 * WRITE - CHECK - NOTE SUBROUTINE * 39840021 ********************************************************************** 39920021 * REQUIRED REGISTERS 40000021 * 40080021 * TEMPRTN -RETURN ADDRESS 40160021 * WRITEADD -ADDRESS OF WRITE AREA 40240021 * WRITECT -WRITE BYTE CT 40320021 * 40400021 * REGISTERS THAT ARE ALSO USED (NOT SAVED) 40480021 * 40560021 * DCBADD 40640021 * SAVEAREA 40720021 * TTRREG 40800021 * 40880021 * APT 40960021 * BASE 41040021 * REGS 14 - 1 41120021 OUT00990 L DCBADD,DCBLMOD SYSLMOD DCB 41200021 LA SAVEAREA,REGSA ADDRESS OF SAVE AREA 41280021 *********************************************************************** 41360021 * WRITE THE NEXT RECORD * 41440021 *********************************************************************** 41520021 WRITE WDECB,SF,(DCBADD),(WRITEADD),(WRITECT) 41600021 CHECK WDECB 41680021 SR TTRREG,TTRREG TTR REG SET TO ZERO 41760021 TM APT1,ESDWTBIT IS FIRST ESD WT IND = ON 41840021 BCR 8,TEMPRTN NO NO 41920021 NI APT1,ESDWTOFF SET FIRST ESD WT IND = OFF 42000021 NOTE (DCBADD) 42080021 BCR 15,TEMPRTN RETURN TO CALLER 42160021 *********************************************************************** 42240021 * SETUP SEGTAB CONTROL RECORD 42320021 *********************************************************************** 42400021 OUT01000 L WRITEADD,TNLS2 ESD ADDRESS/WRITE OUT AREA 42480021 LA WRITEADD,5(WRITEADD) WRITE OUT AREA 42560021 XC 0(20,WRITEADD),0(WRITEADD) ZERO CONTROL RCD AREA 42640021 OI 0(WRITEADD),X'01' SET CONTROL IND.(TXT TO FOLLOW) 42720021 OI 5(WRITEADD),X'04' SET NO. BYTES ESD ID IN CTL 42800021 OI 8(WRITEADD),X'06' SET READ CCW FOR FETCH 42880021 OI 12(WRITEADD),X'40' SET FLAG FIELD FOR FETCH 42960021 MVC 14(2,WRITEADD),PDSE10 PUT SEGTAB LENGTH IN CONTROL 43040021 MVC 18(2,WRITEADD),PDSE10 PUT SEGTAB LENGTH IN CONTROL 43120021 MVC 16(2,WRITEADD),ENSPX PUT SEGTAB ID IN CONTROL 43200021 MVC WORD(2),PDSE10 LENGTH OF SEGTAB 43280021 LH TEMP5,WORD LENGTH OF SEGTAB 43360021 *********************************************************************** 43440021 * SETUP FOR WRITE OF CONTROL RECORD 43520021 *********************************************************************** 43600021 NI APT1,ESDWTOFF SET NOTE IND= OFF 43680021 LA WRITECT,20 SET WRITE CT TO 20 BYTES 43760021 NI APT3,X'FD' SET 2ND PASS NOT EDIT BIT OFF 43840021 * WHEN THIS BIT IS ON 2ND PASS DOES NOT WRITE HIS 1ST 43920021 * CONTROL RECORD ---- IN OVERLAY HIS 1ST CONTROL RECORD 44000021 * IS NOT THE 1ST CONTROL RECORD IN THE PGM & MUST BE WRITT 44080021 TM PDSE8,NOTEDIT IS MODULE NOT EDITABLE 44160021 BC 1,OUT01100 YES/DO NOT OUTPUT CONTROL RECORD 44240021 BAL TEMPRTN,OUT00990 GO TO WT OUT SEG TAB CONTROL RD 44320021 *********************************************************************** 44400021 * BUILD IST TEXT RECORD (SEGTAB) * 44480021 *********************************************************************** 44560021 * 44640021 OUT01100 LR TEMP2,WRITEADD ADDRESS OF AREA TO SET TO 0 44720021 LR TEMP1,TEMP5 BYTES OF SEGTAB TO 0 (CT) 44800021 LA TEMP3,256 44880021 OUT01200 SR TEMP1,TEMP3 IS REMAINDER LESS THAN 256 44960021 BC 4,OUT01300 YES 45040021 BCTR TEMP3,0 DECREMENT COUNT TO 255 45120021 EX TEMP3,ZEROHIID ZERO 255 BYTES 45200021 LA WRITEADD,256(WRITEADD) INCREMENT ADD BY 256 45280021 BC 15,OUT01200 RETURN TO 0 REMAINDER 45360021 OUT01300 AR TEMP1,TEMP3 RESTORE COUNT 45440021 BCTR TEMP1,0 DECREMENT COUNT BY 1 45520021 EX TEMP1,ZEROHIID ZERO REMAINDER 45600021 LR WRITEADD,TEMP2 RESTORE BEGIN OF SEGTAB AREA 45680021 LR WRITECT,TEMP5 SEGTAB LENGTH 45760021 MVC 8(1,WRITEADD),LSTS PUT LST SEG OF REG0 SEGTAB 45840021 MVC 10(1,WRITEADD),LSTS+1 PUT LST SEG OF REG 1 SEGTAB 45920021 MVC 12(1,WRITEADD),LSTS+2 PUT LST SEG OF REG 2 SEGTAB 46000021 MVC 14(1,WRITEADD),LSTS+3 PUT LST SEG OF REG 3 SEGTAB 46080021 MVI 9(WRITEADD),X'01' 46160021 * 46240021 * 46320021 SR TEMP1,TEMP1 46400021 LA TEMP2,20(WRITEADD) 46480021 OUT01500 L TEMP3,SGT1 ADD OF SEGTAB 1 (-1) 46560021 LA TEMP1,1(TEMP1) INC ADD OF SEGTAB 46640021 AR TEMP3,TEMP1 ADD OF NEXT ITEM IN SEGTA1 46720021 LA TEMP2,4(TEMP2) INC ADD OF PRV SG IN SEGTB 46800021 MVC 0(1,TEMP2),0(TEMP3) MOVE PRV SG NO TO SEGTAB 46880021 MVI 3(TEMP2),X'03' SET STATUS - NOT IN CORE 46960021 CH TEMP1,CSNO IS LOOP DONE 47040021 BC 4,OUT01500 NO 47120021 MVI 27(WRITEADD),X'02' SET STATUS - IN CORE/SEG 1 47200021 *********************************************************************** 47280021 * SETUP FOR WRITE OF SEGTAB RECORD 47360021 *********************************************************************** 47440021 OI APT1,ESDWTBIT SET NOTE IND = ON 47520021 BAL TEMPRTN,OUT00990 GO TO WRITE SEGTAB RCD 47600021 ST TTRREG,PDSE4 SAVE TTRO OF SEGTAB IN PDS 47680021 BC 15,OUT00560 GO BUILD REST OF HESD 47760021 *********************************************************************** 47840021 * INITIALIZE FOR BUILDING SCATTER/TRANSLATION TABLES * 47920021 *********************************************************************** 48000021 OUT02000 LA TEMP5,2 48080021 LH HESDCT,ENCDC HESD CT = X 48160021 L HESDADD,HESD HESD ADDRESS 48240021 LA SCATTADD,1(HESDCT) X+1 48320021 LR TRANSADD,SCATTADD X+1 48400021 SLL TRANSADD,3 8(X+1) 48480021 AR TRANSADD,HESDADD 8(X+1) +HESD ADD = TRANS ADD 48560021 AR SCATTADD,SCATTADD 2(X+1) / SLATION TABLE -4 48640021 AR SCATTADD,TEMP5 2(X+1)+2 - EXTRA 2 FOR PAD 48720021 AR TEMP5,TEMP5 4 48800021 XC 4(2,TRANSADD),4(TRANSADD) SET IST TRANSADD ENTRY = 0 48880021 LCR TEMP1,TEMP5 2'S COMP OF 4 = FFFFFFFC 48960021 NR SCATTADD,TEMP1 LENGTH OF TRANSLATION TABLE 49040021 * WITH PAD REMOVED IF NOT NEEDED 49120021 STH SCATTADD,WORD PUT LENGTH IN PDS 49200021 MVC PDSE14(2),WORD 49280021 LA TEMP4,0(SCATTADD,TRANSADD) ADD OF SCATTER TABLE -TRUE 49360021 XC 0(8,TEMP4),0(TEMP4) SET 1ST SCAT ENTRY = 0 49440021 LA SCATTADD,8(TEMP4) ADD OF 2ND ENTRY IN SCATTER TBL 49520021 AR TRANSADD,TEMP5 TRUE ADD OF TRANSLATION TABLE 49600021 AR TEMP4,TEMP5 49680021 *********************************************************************** 49760021 * BUILD SCATTER/TRANSLATION TABLES * 49840021 * FIRST PASS REFERENCED TXTIOT * 49920021 *********************************************************************** 50000021 * * 50080021 * SET UP SEARCH OF TXTIOT * 50160021 SR ENDTXTIO,ENDTXTIO CLEAR REGISTER FOR COMPARE TO 0 50240021 CH ENDTXTIO,ENTOC IS THERE AN Y TEXT 50320021 BC 11,OUT02050 NO/ SKIP 1ST SEARCH AND SEARCH HESD 50400021 OI SWITCH,TXTIOLP SET SWITCH INDICATION TXTIO LOOP 50480021 L ADTXTIOT,TXTIO ADDRESS TXTIO TABLE 50560021 LR ENDTXTIO,ADTXTIOT ADDRESS TXTIO TABLE 50640021 AH ENDTXTIO,ENTOC END ADDRESS OF TXTIO TABLE 50720021 * PROCESS TXTIOT ENTRY 50800021 OUT02023 CR ADTXTIOT,ENDTXTIO ANY MORE TXT IN TXTIOT 50880021 BC 11,OUT02035 NO- SET IN TXTIOT LOOP OFF 50960021 TM 2(ADTXTIOT),X'20' IS IT OUT OF ORDER TEXT 51040021 BC 1,OUT02033 YES--THEN ID FOR TXTIO ENTRY ALREADY 51120021 * PROCESSED, CHECK NEXT ENTRY. 51200021 * FIND HESD ENTRY 51280021 LH TEMP1,0(ADTXTIOT) HESD ENTRY ID (FROM TXTIOT) 51360021 SLL TEMP1,3 FIND REL ADDRESS HESD (* 8) 51440021 A TEMP1,HESD ADDRESS OF HESD ENTRY 51520021 TM 0(TEMP1),X'08' HAS HESD ENTRY BEEN PROCESSED 51600021 BC 1,OUT02033 YES/ CHECK NEXT TXTIOT ENTRY 51680021 B OUT02110 NO/ PROCESS ENTRY 51760021 OUT02030 OI 0(TEMP1),X'08' SET PROCESSED SWITCH 51840021 OUT02033 LA ADTXTIOT,INC(ADTXTIOT) UPDATE ADDR TXTIOT ENTRY 51920021 B OUT02023 52000021 OUT02035 NI SWITCH,X'7F' TURN TXTIO LOOP SWITCH OFF 52080021 B OUT02050 SEARCH HESD 52160021 OUT02036 NI 0(TEMP1),X'F7' TURN PROCESSED SWITCH OFF 52240021 B OUT02300 CHECK END OF LOOP 52320021 OUT02050 LR TEMP5,HESDCT SAVE NUMBER OF ENTRIES IN HESD 52400021 LR TEMP1,HESDADD HESD ADD // 1ST ENTRY = 0 52480021 *********************************************************************** 52560021 *********************************************************************** 52640021 * BUILD SCATTER/TRANSLATION TABLES * 52720021 *********************************************************************** 52800021 OUT02100 LA TEMP1,8(TEMP1) INC HESD ADD 52880021 TM 0(TEMP1),X'08' HAS HESD ENTRY BEEN PROCESSED 52960021 BC 1,OUT02036 YES- TURN OFF SWITCH/ CHECK END OF 53040021 * LOOP 53120021 TM NEWSW,HIAROP IS HIAR OPTION ON 53200021 BC 8,OUT02120 NO 53280021 LR HIARAD,TEMP1 HESD ADDRESS 53360021 S HIARAD,HESD RELATIVE HESD ADDRESS 53440021 SRL HIARAD,3 DIVIDE BY 8 TO GET HESD ID 53520021 B OUT02115 53600021 OUT02110 TM NEWSW,HIAROP IS HIAR OPTION ON 53680021 BC 8,OUT02120 NO 53760021 LH HIARAD,0(ADTXTIOT) HESD ID (REL. ADDR ON HIAR TABLE) 53840021 OUT02115 A HIARAD,HIARADD ADDRESS OF ENTRY OF HIERARCHY TABLE 53920021 OUT02120 TM 0(TEMP1),X'02' IS HESD TYPE SD,PC OR CM 54000021 BC 1,OUT02300 NO 54080021 TM NEWSW,HIAROP IS HIAR OPTION ON 54160021 BC 8,OUT02140 NO 54240021 MVC 0(1,SCATTADD),0(HIARAD) PUT HN IN HIGH ORDER BYTE 54320021 B OUT02150 54400021 OUT02140 MVI 0(SCATTADD),X'00' NO HIAR- PUT 00 IN HIGH BYTE 54480021 OUT02150 MVC 1(3,SCATTADD),1(TEMP1) PUT SD,PC OR CM ADD IN SCTR TAB 54560021 LR TEMP3,SCATTADD SAVE SCATTER ADD FOR THIS ENTRY 54640021 SR TEMP3,TEMP4 REL SCATTER ADD 54720021 SRL TEMP3,2 SCAT ID 54800021 LA SCATTADD,4(SCATTADD) INC TO NEXT AVAILABLE SCATENTRY 54880021 OUT02200 LR TEMP2,TEMP1 SAVE HESD ADD FOR THIS ENTRY 54960021 SR TEMP2,HESDADD REL HESD ADD 55040021 SRL TEMP2,2 2(HESD ID) OR REL TRANS ADD 55120021 STH TEMP3,0(TRANSADD,TEMP2) PUT PTR TO SCAT ENT IN TRANS TB 55200021 TM SWITCH,TXTIOLP IS PGM IN TXTIO TABLE SEARCH 55280021 BC 1,OUT02030 YES SET ENTRY PROCESSED/ GO TO NEXT 55360021 * TXTIOT ENTRY 55440021 OUT02300 BCT HESDCT,OUT02100 BRANCH IF HESD LOOP NOT DONE 55520021 LR TEMP1,HESDADD ADDRESS OF HESD 55600021 OUT02400 LA TEMP1,8(TEMP1) INC HESD ADD 55680021 SR TEMP3,TEMP3 0 TO BE USED AS TRANSPTER,PR,NL 55760021 TM 0(TEMP1),X'02' IS HESD TYPE SD,PC OR CM 55840021 BC 8,OUT02470 YES 55920021 TM 0(TEMP1),X'07' IS TYPE = NULL 56000021 BC 1,OUT02450 YES / GO TO PUT 0 PTR IN TRANS 56080021 TM 0(TEMP1),X'03' IS TYPE = LR 56160021 BC 12,OUT02450 NO - ER,PR /GO PUT 0 IN TRANS 56240021 LH TEMP2,6(TEMP1) PICK UP ID THAT PTS TO SD OR PC 56320021 AR TEMP2,TEMP2 DOUBLE ID - REL TRANS TBL ADD 56400021 LH TEMP3,0(TRANSADD,TEMP2) PICK UP PTR TO SCATT FOR SD -PC 56480021 OUT02450 LR TEMP2,TEMP1 SAVE HESD ADD FOR THIS ENTRY 56560021 SR TEMP2,HESDADD REL HESD ADD 56640021 SRL TEMP2,2 2(HESD ID) OR REL TRANS ADD 56720021 STH TEMP3,0(TRANSADD,TEMP2) PUT PTR TO SCAT ENT IN TRANS TB 56800021 OUT02470 BCT TEMP5,OUT02400 BRANCH IF HESD LOOP NOT DONE 56880021 *********************************************************************** 56960021 * SET UP LOOP TO WRITE OUT SCATTER - TRANSLATION RECORD * 57040021 *********************************************************************** 57120021 LR TEMP1,SCATTADD ADD OF LAST SCATTER ENTRY + 4 57200021 SR TEMP1,TEMP4 NO BYTES OF SCATTER TABLE 57280021 STH TEMP1,WORD 57360021 MVC PDSE13(2),WORD PUT NO SCATT BYTES IN PDS 57440021 LR TEMP5,SCATTADD 57520021 SR TEMP5,TRANSADD NO BYTES TO WRITE OUT 57600021 OI APT1,ESDWTBIT SET BIT TO NOTE FIRST WRITE 57680021 OUT02500 LA TEMP1,1020 1020 57760021 SR TEMP5,TEMP1 BYTES REMAINING TO WRITE 57840021 BC 10,OUT02600 BRANCH IF REMAINDER GREATER 0 57920021 AR TEMP1,TEMP5 WRITE CT = OR LESS 1020 58000021 OUT02600 LA WRITECT,4(TEMP1) CT + 4 58080021 SR SCATTADD,WRITECT WRITE ADDRESS 58160021 L WORK1,0(SCATTADD) SAVE 4 BYTES 58240021 ST TEMP1,0(SCATTADD) PUT WRITE CT IN HEADER - CTL 58320021 MVI 0(SCATTADD),X'10' PUT IN SCAT CONTROL 58400021 BAL TEMPRTN,OUT00990 GO WRITE OUT SCATT RCD 58480021 ST WORK1,0(SCATTADD) RESTORE 4 B 58560021 LA SCATTADD,4(SCATTADD) 58640021 LTR TTRREG,TTRREG WAS A NOTE DONE ON THIS WRITE 58720021 BC 8,OUT02700 NO 58800021 ST TTRREG,WORD SAVE TTR 58880021 MVC PDSE5(3),WORD PUT TTR IN PDS 58960021 OUT02700 LTR TEMP5,TEMP5 ANY MORE DATA TO WRITE 59040021 BC 2,OUT02500 YES 59120021 BC 15,OUT00560 NO/RETURN TO MAIN LOOP 59200021 EJECT S21016 59280021 *********************************************************************** 59360021 * * 59440021 * OUTIDR -- SUBROUTINE TO PROCESS IDR OUTPUT * 59520021 * * 59600021 *********************************************************************** 59680021 * * 59760021 * SUBROUTINE OUTIDR RECEIVES CONTROL * 59840021 * AFTER THE LAST CESD RECORD HAS BEEN * 59920021 * WRITTEN ON THE SYSLMOD DATA SET. * 60000021 * ITS FUNCTION IS TO CREATE AND WRITE * 60080021 * THE CSECT IDENTIFICATION RECORDS OF * 60160021 * A LOAD MODULE IMMEDIATELY FOLLOWING * 60240021 * ALL CESD RECORDS ON THE SYSLMOD * 60320021 * DATA SET. * 60400021 * IT USES THREE TABLES CREATED DURING * 60480021 * INPUT PROCESSING: * 60560021 * IDRZPTAB - IMASPZAP DATA * 60640021 * IDRTRTAB - TRANSLATOR DATA * 60720021 * IDRUDTAB - USER DATA * 60800021 * THESE TABLES, COLLECTIVELY, CONTAIN * 60880021 * ALL IDR DATA RECEIVED FROM ALL * 60960021 * INPUT LOAD AND OBJECT MODULES PLUS * 61040021 * USER-SUPPLIED IDR DATA RECEIVED * 61120021 * VIA THE IDENTIFY CONTROL STATEMENT. * 61200021 * S21016 * 61280021 *********************************************************************** 61360021 SPACE 2 S21016 61440021 OUTIDR STM WRITECT,TABEND,TEMPSAVE SAVE REGISTERS S21016 61520021 SPACE 1 S21016 61600021 *********************************************************************** 61680021 * * 61760021 * PROCESS IDR IMASPZAP RECORD(S) * 61840021 * S21016 * 61920021 *********************************************************************** 62000021 SPACE 1 S21016 62080021 MVC IDRBUF(HDRLEN),IDRZHDR MOVE IDR SPZAP RECORD S21016 62160021 * HEADER INTO IDR BUFFER S21016 62240021 LA WRITEADD,IDRBUF POINT TO IDR BUFFER FOR S21016 62320021 * WRITE ROUTINE S21016 62400021 LA WRITECT,ZPRECLEN LOAD RECORD LENGTH FOR S21016 62480021 * WRITE ROUTINE S21016 62560021 LM TABADD,TABEND,IDRZPTAB LOAD STARTING AND ENDING S21016 62640021 * ADDRESSES OF SPZAP DATA S21016 62720021 * TABLE S21016 62800021 CR TABADD,TABEND ANY DATA IN TABLE? S21016 62880021 BE NOZAP IF NOT, BRANCH S21016 62960021 LR DATAPTR,TABADD IF THERE IS DATA, POINT S21016 63040021 * TO IT S21016 63120021 LR DATALEN,TABEND GET ENDING ADDRESS OF S21016 63200021 * DATA S21016 63280021 SR DATALEN,TABADD SUBTRACT STARTING ADDRESS S21016 63360021 * TO GET TOTAL LENGTH OF S21016 63440021 * DATA IN TABLE S21016 63520021 LA RECLEN,ZAPLEN LOAD DATA LENGTH FOR ONE S21016 63600021 * SPZAP RECORD S21016 63680021 ZAPLOOP CR DATALEN,RECLEN COMPARE LENGTH OF DATA IN S21016 63760021 * TABLE TO LENGTH WHICH CAN S21016 63840021 * GO ONTO ONE SPZAP RECORD S21016 63920021 BNH LASTZAP IF ALL DATA REMAINING IN S21016 64000021 * TABLE CAN GO ONTO A S21016 64080021 * SINGLE RECORD, BRANCH S21016 64160021 MOVEDATA MVC ZAPDATA(ZAPLEN),LOC(DATAPTR) IF NOT, MOVE DATA S21016 64240021 * TO FILL 1 REC TO BUFFER S21016 64320021 OI ZAPCNT,ZAPMAX SET COUNT FIELD OF REC TO S21016 64400021 * SHOW 19 ENTRIES (MAXIMUM) S21016 64480021 * AND TURN ON CHAIN BIT S21016 64560021 * (BIT 1 OF COUNT BYTE) S21016 64640021 BAL TEMPRTN,OUT00990 GO TO WRITE THE RECORD S21016 64720021 LA DATAPTR,ZAPLEN(DATAPTR) UPDATE POINTER TO DATA BY S21016 64800021 * THE AMOUNT JUST WRITTEN S21016 64880021 SR DATALEN,RECLEN SUBTRACT AMOUNT JUST S21016 64960021 * WRITTEN FROM LENGTH OF S21016 65040021 * DATA REMAINING TO BE S21016 65120021 * PROCESSED S21016 65200021 B ZAPLOOP LOOP TO CONTINUE S21016 65280021 * PROCESSING THE REMAINING S21016 65360021 * DATA S21016 65440021 NOZAP NI ZAPCNT,NOZPDATA TURN CHAIN BIT OFF AND S21016 65520021 * SET COUNT TO ZERO ENTRIES S21016 65600021 * FOR THIS RECORD S21016 65680021 MVI ZAPDATA,ZEROFILL PAD UNUSED DATA PORTION S21016 65760021 MVC ZAPDAT1(ZPLEN),ZAPDATA OF RECORD WITH ZEROES S21016 65840021 SHRTZAP BAL TEMPRTN,OUT00990 GO TO WRITE THE RECORD S21016 65920021 B LKEDREC GO TO PROCESS LKED DATA S21016 66000021 * FOR IDR S21016 66080021 LASTZAP BCTR DATALEN,LOC SUBTRACT ONE FROM DATA S21016 66160021 * LENGTH FOR ZERO-ORIENTED S21016 66240021 * MOVE LENGTH S21016 66320021 MVI ZAPDATA,ZEROFILL PAD UNUSED DATA PORTION S21016 66400021 MVC ZAPDAT1(ZPLEN),ZAPDATA OF RECORD WITH ZEROES S21016 66480021 EX DATALEN,MOVEDATA EXECUTE MOVE OF DATA TO S21016 66560021 * IDR BUFFER FOR SPZAP REC S21016 66640021 LA DATALEN,UNIT(DATALEN) ADD ONE TO DATA LENGTH S21016 66720021 * TO RESTORE NORMAL ONE- S21016 66800021 * ORIENTATION S21016 66880021 XR DATAPTR,DATAPTR ZERO OUT EVEN REG S21016 66960021 * TO CLEAR SIGN BIT S21016 67040021 * FOR DIVIDE (ALWAYS S21016 67120021 * A POSITIVE NUMBER) S21016 67200021 D DATASIZE,ZAPSIZE DIVIDE LENGTH OF DATA S21016 67280021 * IN RECORD BY LENGTH OF S21016 67360021 * A SINGLE DATA ITEM TO S21016 67440021 * DETERMINE THE NUMBER OF S21016 67520021 * ENTRIES IN THIS RECORD S21016 67600021 STC ZPCOUNT,ZAPCNT SET COUNT FIELD OF REC TO S21016 67680021 * CORRECT NUMBER OF ENTRIES S21016 67760021 * IN THIS RECORD WITH CHAIN S21016 67840021 * BIT OFF S21016 67920021 LA ZAPCMPR,CMPRSIZE GET COMPARISON VALUE S21016 68000021 * FOR NUMBER OF ENTRIES S21016 68080021 * ALLOWED WITHOUT CREATING S21016 68160021 * AN EXTRA (BLANK) REC FOR S21016 68240021 * POSSIBLE FUTURE OVERFLOW S21016 68320021 CR ZPCOUNT,ZAPCMPR DOES THIS RECORD CONTAIN S21016 68400021 * MORE THAN THE CRITICAL S21016 68480021 * NUMBER OF ENTRIES? S21016 68560021 BNH SHRTZAP IF NOT, BRANCH (THIS WILL S21016 68640021 * BE THE LAST IDR WITH S21016 68720021 * SPZAP DATA) S21016 68800021 OI ZAPCNT,CHAIN IF AN ADDITIONAL RECORD S21016 68880021 * IS NEEDED, TURN ON THE S21016 68960021 * CHAIN BIT IN THIS RECORD S21016 69040021 BAL TEMPRTN,OUT00990 GO TO WRITE THIS RECORD S21016 69120021 B NOZAP BRANCH TO CREATE A SPARE S21016 69200021 * RECORD S21016 69280021 SPACE 1 S21016 69360021 *********************************************************************** 69440021 * * 69520021 * PROCESS IDR LINKAGE EDITOR RECORD * 69600021 * S21016 * 69680021 *********************************************************************** 69760021 SPACE 1 S21016 69840021 LKEDREC LA WRITECT,LKRECLEN SET UP RECORD LENGTH FOR S21016 69920021 * WRITE ROUTINE S21016 70000021 L REG1,DEFADDR GET ADDR. OF MDEF S21016 70006021 USING DEFDSECT,REG1 SET UP ADRESSABABILITY S21016 70012021 * FOR MDEF DSECT S21016 70018021 PACK LKRELNO(LEN2),SGRELNO(LEN3) PACK SYSGEN-ASSIGNED S21016 70024021 * OS RELEASE NO. TO LKED S21016 70030021 * IDR HEADER S21016 70036021 DROP REG1 NO LONGER NEEDED S21016 70042021 SR REG1,REG1 ZERO OUT REGISTER S21016 70048021 IC REG1,LKRELNO+1 GET 2ND BYTE OF REL.NO. S21016 70054021 SRL REG1,LEN4 SHIFT OUT SIGN S21016 70060021 STC REG1,LKRELNO+1 STORE MODIFICATION LEVEL S21016 70066021 * WITH A LEADING ZERO S21016 70072021 MVC IDRBUF(LKLEN),LKIDR MOVE RECORD HEADER AND S21016 70080021 * LKED IDENTIFYING INFO S21016 70160021 * TO IDR BUFFER S21016 70240021 ST TIME,TIMESAVE SAVE REGISTER 0 BEFORE S21016 70320021 * ISSUEING TIME MACRO S21016 70400021 TIME , ISSUE TIME MACRO TO GET TODAY'S DATE S21016 70480021 ST DATE,DATESAVE STORE TODAY'S DATE AS S21016 70560021 * RETURNED BY TIME MACRO S21016 70640021 MVC LKDATE(DATELEN),DATESAV MOVE TODAY'S DATE TO S21016 70720021 * DATE FIELD OF RECORD (IN S21016 70800021 * PACKED DECIMAL FORMAT) S21016 70880021 L TIME,TIMESAVE RESTORE REGISTER ZERO S21016 70960021 LM TABADD,TABEND,IDRTRTAB GET STARTING AND ENDING S21016 71040021 * ADDRESSES OF TRANSLATOR S21016 71120021 * DATA TABLE S21016 71200021 CR TABADD,TABEND ANY DATA IN TABLE? S21016 71280021 BNE TRNSREC IF SO, BRANCH TO S21016 71360021 * PROCESS TRANSLATOR DATA S21016 71440021 TRNSDONE LM TABADD,TABEND,IDRUDTAB GET STARTING AND ENDING S21016 71520021 * ADDRESSES OF USER DATA S21016 71600021 * TABLE S21016 71680021 CR TABADD,TABEND ANY DATA IN TABLE? S21016 71760021 BNE USERREC IF SO, BRANCH TO S21016 71840021 * PROCESS USER DATA S21016 71920021 USERDONE OI SUBTYPE,LASTIDR TURN ON FLAG IN SUBTYPE S21016 72000021 * FIELD OF THIS RECORD TO S21016 72080021 * INDICATE THAT IT IS THE S21016 72160021 * LAST IDR FOR THE LOAD S21016 72240021 * MODULE S21016 72320021 BAL TEMPRTN,OUT00990 GO TO WRITE THE LAST REC S21016 72400021 LM WRITECT,TABEND,TEMPSAVE RESTORE REGISTERS S21016 72480021 BR TEMPRTN RETURN TO CALLER S21016 72560021 SPACE 1 S21016 72640021 *********************************************************************** 72720021 * * 72800021 * PROCESS IDR TRANSLATOR RECORD(S) * 72880021 * S21016 * 72960021 *********************************************************************** 73040021 SPACE 1 S21016 73120021 TRNSREC BAL TEMPRTN,OUT00990 GO TO WRITE THE LKED IDR S21016 73200021 MVI SUBTYPE,TRNSTYPE MOVE INDICATOR FOR S21016 73280021 * TRANSLATOR DATA TO S21016 73360021 * IDR SUBTYPE FIELD S21016 73440021 LA WRITECT,TURECLEN LOAD RECORD LENGTH FOR S21016 73520021 * WRITE ROUTINE S21016 73600021 LR DATAPTR,TABADD POINT TO START OF DATA S21016 73680021 LR DATALEN,TABEND LOAD ENDING ADDRESS OF S21016 73760021 * DATA IN TABLE S21016 73840021 SR DATALEN,TABADD SUBTRACT STARTING ADDR. S21016 73920021 * TO OBTAIN LENGTH OF DATA S21016 74000021 TRNSLOOP LA RECLEN,TRUDLEN LOAD DATA LENGTH FOR ONE S21016 74080021 * RECORD S21016 74160021 CR DATALEN,RECLEN COMPARE LENGTH OF DATA S21016 74240021 * TO LENGTH OF 1 RECORD S21016 74320021 BNL TRNS0020 IF DATA LENGTH IS NOT < S21016 74400021 * RECORD LENGTH, BRANCH S21016 74480021 LR RECLEN,DATALEN ELSE, GET DATA LENGTH S21016 74560021 TRNS0020 ST DATAPTR,DPTRSAV SAVE POINTER TO START OF S21016 74640021 * DATA S21016 74720021 TRNS0040 CLC LOC(LEN2,DATAPTR),NULITEM IS THIS THE START OF S21016 74800021 * A NULL ITEM? S21016 74880021 BE TRNS0060 IF SO, GO TO SKIP IT S21016 74960021 LA DATAPTR,UNIT(DATAPTR) UPDATE BY ONE BYTE S21016 75040021 BCT RECLEN,TRNS0040 GO TO CONTINUE SCANNING S21016 75120021 * FOR A NULL ITEM UNTIL THE S21016 75200021 * COUNT IS EXHAUSTED S21016 75280021 LA RECLEN,TRUDLEN RESTORE NORMAL REC.LENGTH S21016 75360021 L DATAPTR,DPTRSAV RESTORE DATA POINTER S21016 75440021 B TRNS0100 GO TO PROCESS THE DATA S21016 75520021 TRNS0060 ST DATALEN,DLENSAV SAVE LENGTH OF DATA S21016 75600021 MVC NULLEN(LEN2),LEN2(DATAPTR) GET LENGTH OF NULL S21016 75680021 * ITEM S21016 75760021 LR DATALEN,DATAPTR GET STARTING ADDR. OF S21016 75840021 * NULL ITEM S21016 75920021 S DATALEN,DPTRSAV SUBTRACT STARTING ADDR. S21016 76000021 * OF DATA FOR LENGTH OF S21016 76080021 * GOOD DATA PRECEEDING THE S21016 76160021 * NULL ITEM S21016 76240021 LTR DATALEN,DATALEN TEST LENGTH OF GOOD DATA S21016 76320021 BZ TRNS0080 IF ZERO, BRANCH S21016 76400021 CH DATALEN,NULLEN IS LENGTH OF GOOD DATA > S21016 76480021 * LENGTH OF NULL ITEM? S21016 76560021 BNH TRNS0070 IF NOT, BRANCH S21016 76640021 OI TEMPSW,ON TURN SWITCH TO INDICATE S21016 76720021 * A TEMPORARY MUST BE USED S21016 76800021 * TO MOVE DATA S21016 76880021 TRNS0070 LR MVCPTR,DATAPTR GET STARTING ADDR. OF S21016 76960021 * NULL ITEM S21016 77040021 AH MVCPTR,NULLEN ADD LENGTH OF NULL ITEM S21016 77120021 * TO POINT TO END OF IT S21016 77200021 SR MVCPTR,DATALEN SUBTRACT LENGTH OF GOOD S21016 77280021 * DATA TO DETERMINE ADDR. S21016 77360021 * GOOD DATA SHOULD GO TO S21016 77440021 BCTR DATALEN,LOC SUBTRACT 1 FROM LENGTH OF S21016 77520021 * GOOD DATA FOR MOVE S21016 77600021 L DATAPTR,DPTRSAV POINT BACK TO START OF S21016 77680021 * GOOD DATA S21016 77760021 TM TEMPSW,ON IS TEMPORARY NEEDED FOR S21016 77840021 * MOVE? S21016 77920021 BNO TRNS0075 IF NOT, BRANCH S21016 78000021 ST MVCPTR,MPTRSAV SAVE POINTER TO MOVE S21016 78080021 * DESTINATION S21016 78160021 LA MVCPTR,DATATEMP POINT TO TEMPORARY S21016 78240021 EX DATALEN,DATAMVC MOVE DATA TO TEMPORARY S21016 78320021 LR DATAPTR,MVCPTR POINT TO TEMPORARY S21016 78400021 L MVCPTR,MPTRSAV RESTORE MOVE DESTINATION S21016 78480021 NI TEMPSW,OFF TURN OFF SWITCH S21016 78560021 TRNS0075 EX DATALEN,DATAMVC MOVE THE GOOD DATA OVER S21016 78640021 * THE NULL ITEM S21016 78720021 TRNS0080 L DATALEN,DLENSAV RESTORE THE LENGTH OF S21016 78800021 * DATA REMAINING IN TABLE S21016 78880021 SH DATALEN,NULLEN SUBTRACT LENGTH OF NULL S21016 78960021 * ITEM JUST OVERWRITTEN S21016 79040021 L DATAPTR,DPTRSAV RESTORE THE ADDR. OF NEXT S21016 79120021 * DATA TO BE PROCESSED S21016 79200021 AH DATAPTR,NULLEN ADD LENGTH OF NULL ITEM S21016 79280021 B TRNSLOOP GO TO SEE IF THERE ARE S21016 79360021 * MORE NULL ITEMS S21016 79440021 TRNS0100 CR DATALEN,RECLEN COMPARE LENGTH OF DATA IN S21016 79520021 * TABLE TO AMOUNT OF DATA S21016 79600021 * WHICH CAN GO ONTO ONE REC S21016 79680021 BNH LASTRANS IF REMAINING DATA CAN GO S21016 79760021 * ONTO ONE RECORD, BRANCH S21016 79840021 MVI IDRBYTCT,TRUDMAX ELSE, SET BYTE COUNT TO S21016 79920021 * MAX LENGTH FOR ONE REC S21016 80000021 MOVETRUD MVC TRUDATA(TRUDLEN),LOC(DATAPTR) MOVE DATA FROM S21016 80080021 * TABLE TO FILL ONE RECORD S21016 80160021 * IN BUFFER S21016 80240021 BAL TEMPRTN,OUT00990 GO TO WRITE THE RECORD S21016 80320021 LA DATAPTR,TRUDLEN(DATAPTR) UPDATE POINTER TO DATA S21016 80400021 * BY AMOUNT JUST WRITTEN S21016 80480021 SR DATALEN,RECLEN UPDATE LENGTH OF DATA S21016 80560021 * REMAINING IN TABLE S21016 80640021 B TRNSLOOP LOOP TO CONTINUE S21016 80720021 * PROCESSING THE S21016 80800021 * REMAINING DATA S21016 80880021 LASTRANS BCTR DATALEN,LOC SUBTRACT ONE FROM DATA S21016 80960021 * LENGTH FOR ZERO-ORIENTED S21016 81040021 * MOVE LENGTH S21016 81120021 EX DATALEN,MOVETRUD EXECUTE MOVE OF REMAINING S21016 81200021 * DATA TO IDR BUFFER S21016 81280021 LA DATALEN,ADDLEN(DATALEN) ADD 3 TO MOVE LENGTH TO S21016 81360021 * GET CORRECT BYTE COUNT S21016 81440021 * FOR THIS RECORD S21016 81520021 STC DATALEN,IDRBYTCT STORE BYTE COUNT INTO S21016 81600021 * BUFFER S21016 81680021 LA WRITECT,UNIT(DATALEN) ADD ONE TO BYTE COUNT FOR S21016 81760021 * ACTUAL RECORD LENGTH S21016 81840021 B TRNSDONE GO TO PROCESS TRANSLATOR S21016 81920021 * RECORD JUST BUILT AND S21016 82000021 * USER-DATA IDR'S, IF ANY S21016 82080021 SPACE 1 S21016 82160021 *********************************************************************** 82240021 * * 82320021 * PROCESS IDR USER-DATA RECORD(S) * 82400021 * S21016 * 82480021 *********************************************************************** 82560021 SPACE 1 S21016 82640021 USERREC BAL TEMPRTN,OUT00990 GO TO WRITE LAST IDR WITH S21016 82720021 * TRANSLATOR DATA S21016 82800021 MVI SUBTYPE,USERTYPE MOVE INDICATOR FOR S21016 82880021 * USER-SUPPLIED DATA TO S21016 82960021 * IDR SUBTYPE FIELD S21016 83040021 LA WRITECT,TURECLEN LOAD RECORD LENGTH FOR S21016 83120021 * WRITE ROUTINE S21016 83200021 LR DATAPTR,TABADD POINT TO START OF DATA S21016 83280021 LR DATALEN,TABEND LOAD ENDING ADDRESS OF S21016 83360021 * DATA IN TABLE S21016 83440021 SR DATALEN,TABADD SUBTRACT STARTING ADDRESS S21016 83520021 * TO OBTAIN LENGTH OF DATA S21016 83600021 USERLOOP LA RECLEN,TRUDLEN LOAD DATA LENGTH FOR ONE S21016 83680021 * RECORD S21016 83760021 CR DATALEN,RECLEN COMPARE LENGTH OF DATA S21016 83840021 * TO LENGTH OF 1 RECORD S21016 83920021 BNL USER0020 IF DATA LENGTH IS NOT < S21016 84000021 * RECORD LENGTH, BRANCH S21016 84080021 LR RECLEN,DATALEN ELSE, GET DATA LENGTH S21016 84160021 USER0020 ST DATAPTR,DPTRSAV SAVE POINTER TO START OF S21016 84240021 * DATA S21016 84320021 USER0040 CLC LOC(LEN2,DATAPTR),NULITEM IS THIS THE START OF S21016 84400021 * A NULL ITEM? S21016 84480021 BE USER0060 IF SO, GO TO SKIP IT S21016 84560021 LA DATAPTR,UNIT(DATAPTR) UPDATE BY ONE BYTE S21016 84640021 BCT RECLEN,USER0040 GO TO CONTINUE SCANNING S21016 84720021 * FOR A NULL ITEM UNTIL THE S21016 84800021 * COUNT IS EXHAUSTED S21016 84880021 LA RECLEN,TRUDLEN RESTORE NORMAL REC.LENGTH S21016 84960021 L DATAPTR,DPTRSAV RESTORE DATA POINTER S21016 85040021 B USER0100 GO TO PROCESS THE DATA S21016 85120021 USER0060 ST DATALEN,DLENSAV SAVE LENGTH OF DATA S21016 85200021 MVC NULLEN(LEN2),LEN2(DATAPTR) GET LENGTH OF NULL S21016 85280021 * ITEM S21016 85360021 LR DATALEN,DATAPTR GET STARTING ADDR. OF S21016 85440021 * NULL ITEM S21016 85520021 S DATALEN,DPTRSAV SUBTRACT STARTING ADDR. S21016 85600021 * OF DATA FOR LENGTH OF S21016 85680021 * GOOD DATA PRECEEDING THE S21016 85760021 * NULL ITEM S21016 85840021 LTR DATALEN,DATALEN TEST LENGTH OF GOOD DATA S21016 85920021 BZ USER0080 IF ZERO, BRANCH S21016 86000021 CH DATALEN,NULLEN IS LENGTH OF GOOD DATA > S21016 86080021 * LENGTH OF NULL ITEM? S21016 86160021 BNH USER0070 IF NOT, BRANCH S21016 86240021 OI TEMPSW,ON TURN SWITCH TO INDICATE S21016 86320021 * A TEMPORARY MUST BE USED S21016 86400021 * TO MOVE DATA S21016 86480021 USER0070 LR MVCPTR,DATAPTR GET STARTING ADDR. OF S21016 86560021 * NULL ITEM S21016 86640021 AH MVCPTR,NULLEN ADD LENGTH OF NULL ITEM S21016 86720021 * TO POINT TO END OF IT S21016 86800021 SR MVCPTR,DATALEN SUBTRACT LENGTH OF GOOD S21016 86880021 * DATA TO DETERMINE ADDR. S21016 86960021 * GOOD DATA SHOULD GO TO S21016 87040021 BCTR DATALEN,LOC SUBTRACT 1 FROM LENGTH OF S21016 87120021 * GOOD DATA FOR MOVE S21016 87200021 L DATAPTR,DPTRSAV POINT BACK TO START OF S21016 87280021 * GOOD DATA S21016 87360021 TM TEMPSW,ON IS TEMPORARY NEEDED FOR S21016 87440021 * MOVE? S21016 87520021 BNO USER0075 IF NOT, BRANCH S21016 87600021 ST MVCPTR,MPTRSAV SAVE POINTER TO MOVE S21016 87680021 * DESTINATION S21016 87760021 LA MVCPTR,DATATEMP POINT TO TEMPORARY S21016 87840021 EX DATALEN,DATAMVC MOVE DATA TO TEMPORARY S21016 87920021 LR DATAPTR,MVCPTR POINT TO TEMPORARY S21016 88000021 L MVCPTR,MPTRSAV RESTORE MOVE DESTINATION S21016 88080021 NI TEMPSW,OFF TURN OFF SWITCH S21016 88160021 USER0075 EX DATALEN,DATAMVC MOVE THE GOOD DATA OVER S21016 88240021 * THE NULL ITEM S21016 88320021 USER0080 L DATALEN,DLENSAV RESTORE THE LENGTH OF S21016 88400021 * DATA REMAINING IN TABLE S21016 88480021 SH DATALEN,NULLEN SUBTRACT LENGTH OF NULL S21016 88560021 * ITEM JUST OVERWRITTEN S21016 88640021 L DATAPTR,DPTRSAV RESTORE THE ADDR. OF NEXT S21016 88720021 * DATA TO BE PROCESSED S21016 88800021 AH DATAPTR,NULLEN ADD LENGTH OF NULL ITEM S21016 88880021 B USERLOOP GO TO SEE IF THERE ARE S21016 88960021 * MORE NULL ITEMS S21016 89040021 USER0100 CR DATALEN,RECLEN COMPARE LENGTH OF DATA IN S21016 89120021 * TABLE TO AMOUNT OF DATA S21016 89200021 * WHICH CAN GO ONTO ONE REC S21016 89280021 BNH LASTUSER IF REMAINING DATA CAN GO S21016 89360021 * ONTO ONE RECORD, BRANCH S21016 89440021 MVI IDRBYTCT,TRUDMAX ELSE, SET BYTE COUNT TO S21016 89520021 * MAX LENGTH FOR ONE REC S21016 89600021 MVC TRUDATA(TRUDLEN),LOC(DATAPTR) MOVE DATA FROM S21016 89680021 * TABLE TO FILL ONE RECORD S21016 89760021 * IN BUFFER S21016 89840021 BAL TEMPRTN,OUT00990 GO TO WRITE THE RECORD S21016 89920021 LA DATAPTR,TRUDLEN(DATAPTR) UPDATE POINTER TO DATA S21016 90000021 * BY AMOUNT JUST WRITTEN S21016 90080021 SR DATALEN,RECLEN UPDATE LENGTH OF DATA S21016 90160021 * REMAINING IN TABLE S21016 90240021 B USERLOOP LOOP TO CONTINUE S21016 90320021 * PROCESSING THE S21016 90400021 * REMAINING DATA S21016 90480021 LASTUSER BCTR DATALEN,LOC SUBTRACT ONE FROM DATA S21016 90560021 * LENGTH FOR ZERO-ORIENTED S21016 90640021 * MOVE LENGTH S21016 90720021 EX DATALEN,MOVETRUD EXECUTE MOVE OF REMAINING S21016 90800021 * DATA TO IDR BUFFER S21016 90880021 LA DATALEN,ADDLEN(DATALEN) ADD 3 TO MOVE LENGTH TO S21016 90960021 * GET CORRECT BYTE COUNT S21016 91040021 * FOR THIS RECORD S21016 91120021 STC DATALEN,IDRBYTCT STORE BYTE COUNT INTO S21016 91200021 * BUFFER S21016 91280021 LA WRITECT,UNIT(DATALEN) ADD ONE TO BYTE COUNT FOR S21016 91360021 * ACTUAL RECORD LENGTH S21016 91440021 B USERDONE GO TO PROCESS LAST REC S21016 91520021 * * 91600021 MOVEINST MVC 0(1,TEMP2),0(NOTL1ADD) MOVE NOTE LIST 1 TO NOTE LST2 91680021 ZEROHIID XC 0(1,HIIDTAB),0(HIIDTAB) ZERO 91760021 SAVE1415 DC 2F'0' SAVE AREA FOR REGS 14 AND 15 91840021 WORD DC F'0' 91920021 FOUR DC H'4' 92000021 SWITCH DC X'00' SWITCHES AND INCICATORS 92080021 TXTIOLP EQU X'80' TXTIO LOOP INDICATOR 92160021 * OTHER BITS OF SWITCH --SPARE 92240021 *********************************************************************** 92320021 *********************************************************************** 92400021 TPASSVCN DC V(IEWLMSCD) ADDR OF 2ND PASS PROCESSOR 92480021 FNALVCON DC V(IEWLMFNL) ADDR OF FINAL PROCESSOR 92560021 MAPAD DC V(IEWLMMAP) ADDRESS OF MAP PROCESSOR 92640021 DEFADDR DC V(IEWLMDEF) ADDRESS OF MDEF CSECT S21016 92680021 ADHIID DC A(SEGLNTAB) ADDRESS OF ADDRESS OF TABLE 92720021 DCBINTER DC AL4(IEWLCUDB) SYSUT1 DCB 92800021 SYSMDDCB EQU * 92880021 DCBLMOD DC AL4(IEWLCMDB) SYSLMOD DCB 92960021 SPACE 1 S21016 93040021 ******************** IDR DEFINED CONSTANTS **********************S21016 93120021 SPACE 1 S21016 93200021 IDRZHDR DC X'80FA0100' RECORD HEADER FOR IDR S21016 93280021 * SPZAP RECORDS S21016 93360021 ZAPSIZE DC F'13' SIZE OF AN SPZAP ENTRY S21016 93440021 LKIDR DC X'801102' LKED IDR HEADER S21016 93520021 DC CL10'360SED521' LKED COMPONENT NAME S21016 93600021 LKRELNO DS XL2'2100' LKED VERSION/MODIFICATION S21016 93680021 * LEVEL (=OS RELEASE LEVEL) S21016 93760021 NULITEM DC X'FFFF' NULL ITEM INDICATOR M1602 93840021 DATAMVC MVC LOC(LOC,MVCPTR),LOC(DATAPTR) EXECUTED MOVE S21016 93920021 TEMPSW DC X'00' 'TEMPORARY NEEDED FOR S21016 94000021 * MOVE' SWITCH (WHEN LOW S21016 94080021 * ORDER BIT = 1) S21016 94160021 SPACE 1 S21016 94240021 ******************** IDR DEFINED STORAGE ******************** S21016 94320021 SPACE 1 S21016 94400021 IDRBUF DS CL256 IDR BUFFER S21016 94480021 DATATEMP DS CL253 WORK AREA FOR DATA MOVING S21016 94560021 MPTRSAV DS F SAVEAREA FOR MOVE POINTER S21016 94640021 DPTRSAV DS F SAVEAREA FOR DATA POINTER S21016 94720021 DLENSAV DS F SAVEAREA FOR DATA LENGTH S21016 94800021 TEMPSAVE DS 12F TEMPORARY SAVE AREA FOR S21016 94880021 * IDR OUTPUT SUBROUTINE S21016 94960021 TIMESAVE DS F SAVE AREA FOR REG 0 S21016 95040021 * FOR TIME MACRO S21016 95120021 DATESAVE DS F SAVE AREA FOR REG 1 S21016 95200021 * FOR TIME MACRO S21016 95280021 NULLEN DS H LENGTH OF A NULL ITEM S21016 95360021 SPACE 2 S21016 95440021 *****************************************************************S21016 95520021 ********** SYMBOLIC DISPLACEMENTS WITHIN **********S21016 95600021 ********** IDR DEFINED STORAGE FIELDS **********S21016 95680021 *****************************************************************S21016 95760021 SPACE 2 S21016 95840021 ZAPDATA EQU IDRBUF+4 LOCATION IN IDR BUFFER S21016 95920021 * WHERE SPZAP DATA IS S21016 96000021 * PLACED S21016 96080021 ZAPDAT1 EQU IDRBUF+5 SECOND BYTE OF SPZAP DATA S21016 96160021 ZAPCNT EQU IDRBUF+3 LOCATION OF COUNT FIELD S21016 96240021 * IN IDR BUFFER FOR SPZAP S21016 96320021 * DATA S21016 96400021 LKDATE EQU IDRBUF+15 LOCATION FOR LKED DATE S21016 96480021 * IN IDR BUFFER S21016 96560021 DATESAV EQU DATESAVE+1 LOCATION OF 1ST BYTE OF S21016 96640021 * PACKED DECIMAL DATE IN S21016 96720021 * WORD RETURNED BY TIME S21016 96800021 * MACRO S21016 96880021 SUBTYPE EQU IDRBUF+2 LOCATION OF SUBTYPE FIELD S21016 96960021 * IN IDR BUFFER S21016 97040021 IDRBYTCT EQU IDRBUF+1 IDR BYTE COUNT FIELD S21016 97120021 TRUDATA EQU IDRBUF+3 STARTING LOCATION OF USER S21016 97200021 * OR TRANSLATOR DATA IN IDR S21016 97280021 * BUFFER S21016 97360021 ***************** END OF IDR SUPPORT ADDITIONS ***************** S21016 97440021 SPACE 3 S21016 97520021 DS 43F ********** MAINTENANCE AREA ********** 97600021 * 97680021 * TEMPORY ERROR PARMS - MESSAGE NUMBER IN DECIMAL 97760021 * 97840021 DISP1 EQU X'03' DISP=0 SEV = 3 97920021 MESS1 EQU 14 NO TXT IN LOAD MOD 98000021 DS 0F 98080021 * 98160021 ERRPARM1 DC AL1(DISP1) NO TXT IN LOAD MODULE 98240021 DC AL1(MESS1) 98320021 IEWAPT 98400021 DEFDSECT DSECT 98408021 DS CL4 S21016 98416021 DS AL4 S21016 98424021 DS AL4 S21016 98432021 DS AL4 S21016 98440021 DS CL4 S21016 98448021 SGRELNO DS CL4 SYSGEN-ASSIGNED OS S21016 98456021 * RELEASE NUMBER S21016 98464021 END 98480021 ./ ADD SSI=00011847,NAME=IEWLMRAT,SOURCE=0 TITLE 'IEWLMRAT RLD/TXT PROCESSOR' 00040000 * R L D / T X T P R O C E S S O R 00080000 SPACE 2 00120000 *FUNCTION/OPERATION -- THIS MODULE WILL HANDLE TEXT AND RLD RECORDS * 00160000 * FROM BOTH LOAD MODULES AND OBJECT MODULES. IT WILL RECEIVE CONTROL* 00200000 * FROM THE INPUT PROCESSOR AND WILL PUT ITS OUTPUT ON AN INTERMEDIATE* 00240000 * FILE FOR USE BY THE SECOND PASS IF THE OUTPUT EXCEEDS THE SPACE * 00280000 * AVAILABLE IN THE OUTPUT BUFFER. IN GENERAL THE RLD/TXT PROCESSOR * 00320000 * ORDERS THE INFORMATION FOR THE SECOND PASS PROCESSOR. * 00360000 * * 00400000 *ENTRY POINTS -- CONTROL IS PASSED BY THE INPUT PROCESSOR TO LOCATION * 00440000 * IEWLMRAT * 00480000 * * 00520000 *INPUT -- THE INPUT PROCESSOR SUPPLIES INFORMATION IN REGISTERS * 00560000 * REG 4 (RLD ONLY) -- BYTE COUNT OF RLD INPUT 00600000 * REG 6 (RLD ONLY) -- LOCATION IN STORAGE OF RLD INPUT 00640000 * REG 3 (TXT ONLY) -- ASSEMBLED ADDRESS OF FIRST BYTE OF TEXT * 00680000 * REG 6 (TXT ONLY) -- ID OF THIS TEXT RECORD * 00720000 * REG 8 (TXT ONLY) -- LENGTH OF LOAD MODULE INPUT 00760000 * * 00800000 *OUTPUT -- IF ALL THE OUTPUT INFORMATION CAN BE CONTAINED IN THE OUT- * 00840000 * PUT BUFFER, IT REMAINS IN STORAGE. IF IT EXCEEDS THE CAPACITY OF * 00880000 * THE BUFFER ALL OF THE INFORMATION IS WRITTEN OUT ON AN INTERMEDIATE* 00920000 * FILE. * 00960000 * * 01000000 *EXTERNAL ROUTINES. * 01040000 * ERROR DIAGNOSTIC ROUTINE -- OUTPUTS ERROR MESSAGES * 01080000 * ESD PROCESSOR -- PLACES ENTRIES IN DELINK TABLE * 01120000 * * 01160000 *EXITS * 01200000 * NORMAL -- RETURN TO INPUT PROCESSOR * 01240000 * ERRORS -- INTERNAL TABLES MAY OVERFLOW * 01280000 * A) CALLS LIST -- TOO MANY CALLS IN OVERLAY STRUCTURE * 01320000 * B) RLD NOTE LIST -- TOO MANY CONTROL SECTIONS THAT CONTAIN RLD * 01360000 * ITEMS * 01400000 * C) TEXT NOTE LIST -- TOO MANY CONTROL SECTIONS THAT CONTAIN * 01440000 * TEXT OR THERE ARE EXCESSIVE RE-ORIGINS WITHIN THE INPUT * 01480000 * D) TEXT ID IS ILLEGAL. TEXT RECORD IS IGNORED. * 01520000 * * 01560000 *TABLES * 01600000 * THE FOLLOWING TABLES IN THE ALL PURPOSE TABLE ARE USED -- * 01640000 * * 01680000 * CALLS LIST-IN OVERLAY, LIST OF CALLS TO OTHER CONTROL SECTIONS, * 01720000 * USED IN CREATION OF ENTABS * 01760000 * * 01800000 * COMPOSITE ESD - USED TO GET ASSEMBLED ADDRESS OF CONTROL SECTION* 01840000 * * 01880000 * RENUMBERING TABLE -- USED TO RENUMBER RLD AND TEXT ITEMS * 01920000 * * 01960000 EJECT 02000000 * TEXT I/O TABLE -- 4 BYTES PER ENTRY * 02040000 * * 02080000 * ************************* * 02120000 * * * * * 02160000 * * ID * FLG--MULT * * 02200000 * * * * * 02240000 * ************************* * 02280000 * ' ' ' * 02320000 * ' 2 BYTES ' 2 BYTES ' * 02360000 * ' ' ' * 02400000 * * 02440000 * FOR EACH CHANGE, IN THE INPUT STREAM, OF AN ID OR A MULTIPLICITY, * 02480000 * AN ENTRY IS MADE IN THE TEXT I-O TABLE. THE 'ID' IS THE ID OF A * 02520000 * TXT RECORD. THE 'MULTIPLICITY' IS CALCULATED FOR EACH TEXT RECORD * 02560000 * THAT IS PRESENTED. A CHANGE IN MULTIPLICITY WILL OCCUR -- * 02600000 * 1) FOR EACH TEXT RECORD THAT IS A MULTIPLE OF UT1SIZE. * 02640000 * (UT1SIZE IS THE SIZE OF THE TEXT BUFFER AND THE MAXIMUM SIZE * 02680000 * OF A TEXT RECORD FROM A LOAD MODULE) * 02720000 * 2) FOR EACH RE-ORIGIN OF TEXT WITHIN A CONTROL SECTION (THE CON- * 02760000 * TROL SECTION BEING GREATER THAN UT1SIZE). * 02800000 * * 02840000 * TEXT NOTE LIST -- 7 BYTES PER ENTRY * 02880000 * * 02920000 * THERE IS A ONE-TO-ONE CORRESPONDENCE BETWEEN THE TEXT I-O TABLE * 02960000 * AND THE TEXT NOTE LIST. THE 'NTH' ENTRY OF THE TEXT I-O TABLE * 03000000 * REFERS TO THE 'NTH' RECORD OF THE TEXT NOTE LIST. THE NOTE LIST * 03040000 * RELATES WHERE THE TEXT RECORD HAS BEEN WRITTEN ON THE DISK THROUGH * 03080000 * THE 3 BYTE TTR ENTRY. IF THE INPUT DECK HAS BEEN SHUFFLED OR IF * 03120000 * THERE ARE RE-ORIGINS WITHIN THE CONTROL SECTION (REPRESENTED BY * 03160000 * THE ID IN THE TXT I/O TABLE) THEN THE CONTROL SECTION CAN NOT BE * 03200000 * GATHERED AT ONE TIME. THEREFORE, 'PIECES' OF TEXT WHICH ARE CALLED* 03240000 * 'DENSE' RECORDS ARE PLACED ON THE INTERMEDIATE FILE. THE 2 BYTE * 03280000 * RELATIVE ADDRESS (OFFSET) DEFINES WHERE THIS 'PIECE' OF TEXT OCCURS* 03320000 * WITHIN THE TEXT BUFFER. THE SECOND PASS PROCESSOR WILL GATHER ALL * 03360000 * THE 'PIECES' FOR EACH CONTROL SECTION AND MERGE THEM. * 03400000 * * 03440000 * ******************************************* * 03480000 * * * * * * 03520000 * * OFFSET * TTR/STG ADDR * LENGTH * * 03560000 * * * * * * 03600000 * ******************************************* * 03640000 * ' ' ' ' * 03680000 * ' 2 BYTES ' 3 BYTES ' 2 BYTES ' * 03720000 * ' ' ' ' * 03760000 * * 03800000 * * 03840000 * * 03850000 EJECT 03860000 * * 03870000 * TEXT I/O CONTROL TABLE -- 4 BYTES PER ENTRY * 03880000 * * 03920000 * TO SAVE SPACE THE TEXT NOTE LIST IS NOT KEPT 'COMPLETELY' IN CORE. * 03960000 * INSTEAD, WHEN IT REACHES A MAXIMUM VALUE, IT IS WRITTEN ON AN * 04000000 * INTERMEDIATE FILE AND THE RESULTANT TTR IS PLACED IN THE TEXT I/O * 04040000 * CONTROL TABLE. * 04080000 * * 04120000 * * 04200000 * ************************ * 04240000 * * * * * 04280000 * * 0 * TTR * * 04320000 * * * * * 04360000 * ************************ * 04400000 * ' ' ' * 04440000 * ' 1 ' ' * 04480000 * ' BYTE ' 3 BYTES ' * 04520000 * ' ' ' * 04560000 * * 04600000 * * 04640000 * * 04650000 * * 04660000 * RLD NOTE LIST -- 9 BYTES PER ENTRY * 04680000 * * 04720000 * **************************************************** * 04760000 * *1. *2. *3. *4. * * 04800000 * * ID * FLG--MULT * LENGTH * TTR/ACCM LNG * * 04840000 * * * * * * * 04880000 * **************************************************** * 04920000 * ' ' ' ' ' * 04960000 * ' 2 BYTES ' 2 BYTES ' 2 BYTES ' 3 BYTES ' * 05000000 * ' ' ' ' ' * 05040000 * * 05080000 * 1. THE ID IS THE ID OF THE CONTROL SECTION IN WHICH THE RLD ITEMS * 05120000 * OCCUR * 05160000 * 2. THE LOWEST MULTIPLICITY OF AN ADDRESS FIELD, OF AN RLD ITEM IN * 05200000 * THIS RLD RECORD, IS STORED HERE. * 05240000 * 3. THE NUMBER OF BYTES IN THE RLD RECORD IS DIVIDED BY 4 AND SAVED * 05280000 * IN THIS TWO BYTE ENTRY. (WORD COUNT) * 05320000 * 4. THE ACCUMULATED WORD COUNT OF GROUPED ENTRIES IS SAVED HERE, * 05360000 * EXCEPT WHEN IT IS IN THE LAST ENTRY OF A RECORD WRITTEN OUT ON * 05400000 * THE INTERMEDIATE DATA SET. THEN IT HOLDS THE TTR OF THE RECORD.* 05440000 * * 05480000 EJECT 05490000 * * 05500000 * * 05520000 * THE RLD I/O CONTROL TABLE - 4 BYTES PER ENTRY * 05560000 * * 05600000 * TO SAVE SPACE THE RLD NOTE LIST IS NOT KEPT 'COMPLETELY' IN CORE. * 05640000 * INSTEAD, WHEN IT REACHES A MAXIMUM VALUE, IT IS WRITTEN ON AN * 05680000 * INTERMEDIATE DATA SET AND THE RESULTANT TTR IS PLACED IN THE RLD * 05720000 * I/O CONTROL TABLE. * 05760000 * * 05800000 * ************************ * 05840000 * * * * * 05880000 * * 0 * TTR * * 05920000 * * * * * 05960000 * ************************ * 06000000 * ' ' ' * 06040000 * ' 1 ' ' * 06080000 * ' BYTE ' 3 BYTES ' * 06120000 * ' ' ' * 06160000 * * 06200000 * * 06240000 * * 06280000 * * 06320000 *ATTRIBUTES * 06360000 * 1) REUSABLE * 06400000 * * 06440000 *NOTES -- NONE * 06480000 * * 06520000 * * 06560000 * * 06600000 * * 06640000 * * * * * * * * * * * * * * * 06680000 * * 06720000 * * * * * * * * * * * * * * * 06760000 SPACE 2 06800000 TITLE 'IEWLMRAT RLD/TXT PROCESSOR -- RLD EQUIVALENCIES' 06840000 IEWLMRAT CSECT ENTRY POINT 06880000 * 280500-280800,292000,298400 A20457 06890000 * 730000-730350 A19655 06900000 * 867600 A22517 06910000 * 840800-842800 A34759 06911021 * 556000,632000-634000,721600-724400 A30147 06913021 * 730050-730400 A33791 06916021 * 250400 A36529 06918021 *A277200 A38313 06918121 *A902400 S21016 06918221 *C435600-436000,437200-470000,472000-480300,883200-885200 S21016 06918421 *C885600-896800,898000-901600 S21016 06918621 *C178240 A43127 06919321 *A502400 A43127 06919621 *C256800,A256100,257700-257900 A52402 06919700 *C277520,A277520 M0513,A49482 06919821 *A204500-204760,224500-224784,472100 A53300 06919900 *A108000,C204600,C224600 SA53762 06933221 *I277360 SA57133 06943221 *I495300,C516800,I526400,I774800,C775200,D775600,I902710 SA56444 06945221 *I714800 SA56444 06945621 *I336000,I383600,C386000 SA59588 06946021 *I224784,I436400 SA69196 06946421 SPACE 1 06946721 EXTRN IEWLCUDB 06960000 SPACE 2 07000000 * MASKS, FLAGS, OFFSETS AND VALUES 07040000 SPACE 2 07080000 * FOR ALL PURPOSE TABLE 07120000 SPACE 1 07160000 EOD EQU X'01' END-OF-DATA FLAG IN NEWSW 07200000 RT EQU X'02' TEXT FLAG IN APT0 (RLD/TEXT) 07240000 DEL EQU X'10' DELETE FLAG IN APT1 07280000 EX EQU X'20' LOAD MODULE FLAG IN APT1 (LD MOD/OBJ MOD) 07320000 OI EQU X'20' OVERLAY FLAG IN PDSE7 07360000 TUPAS EQU X'20' 2 PASS OPERATION IS CURRENT 07400000 DELOFF EQU X'EF' MASK OUT DELETE FLAG IN APT1 07440000 ANY EQU X'EF' FLAGS FOR ANY RLD ATTRIBUTES IN PDSE8 07480000 SPACE 2 07520000 * FOR RENUMBERING TABLE 07560000 SPACE 1 07600000 DID EQU 0 OFFSET FOR 'R' ID 07640000 DF EQU 2 OFFSET FOR FLAG IN RNT 07680000 DT EQU 3 OFFSET FOR TYPE IN RNT 07720000 DSAV EQU X'04' DELINK VALUE SAVED FLAG IN RNT 07760000 CH EQU X'40' CHAINED FLAG FOR TYPE IN RNT 07800000 SPACE 2 07840000 * FOR DCB 07880000 SPACE 1 07920000 PHL EQU 0 INITIAL DATA COUNT 07960000 PHADD EQU 0 INITIAL DATA AREA LOCATION 08000000 LENGTH EQU 6 OFFSET FOR DATA COUNT 08040000 ADD EQU 12 OFFSET FOR DATA AREA LOCATION 08080000 DCBOPN EQU X'10' SUCCESSFUL OPEN 08120000 OPNFLGS EQU 48 OPEN FLAGS IN DCB 08160000 SPACE 2 08200000 * FOR RLD ITEM 08240000 SPACE 1 08280000 CONT EQU 1 CONTINUATION FLAG IN FA 08320000 RELOFF EQU X'7F' MASK OUT RELATIVE FLAG 08360000 NREL EQU X'80' NONRELATIVE FLAG IN 'R' POINTER 08400000 REL EQU X'80' RELATIVE FLAG IN FA FIELD 08440000 CONTN EQU X'FE' CONTINUATION FLAG IN FA MASK OUT 08480000 ANYR EQU X'F0' ANY TYPE FLAGS IN FA 08520000 EJECT 08560000 * FOR MODULE 08600000 SPACE 1 08640000 BUFFRN2 EQU X'01' BUFFER 2 IS CURRENT 08680000 BUFF1 EQU X'02' BUFFER 1 FULL 08720000 FNLCHK EQU X'02' FINAL CHECK AT EOD 08760000 CHKNOW EQU X'04' CHECK LAST WRITE NOW 08800000 BUFF2 EQU X'04' BUFFER 2 FULL 08840000 FULL2 EQU X'06' BUFFERS 1 AND 2 BOTH FULL 08880000 BUFW1 EQU X'08' BUFFER 1 WRITTEN 08920000 PURGE EQU X'08' PURGE FLAG 08940000 BUFW2 EQU X'10' BUFFER 2 WRITTEN 08960000 RNBUF2 EQU X'10' RLD'S-IN-BUFFER-2 FLAG 09000000 NLFULL EQU X'10' NOTE LIST FULL FLAG 09040000 MCT EQU 12 MAX SIZE FOR RLD/TXT I/O CONTROL TABLE 09080000 CKNNLF EQU X'14' CHECK NOW AND NOTE LIST FULL 09100000 WRIT2 EQU X'18' BUFFERS 1 AND 2 BOTH WRITTEN 09120000 FULLR EQU X'20' RLD I/O CONTROL TABLE FULL FLAG 09160000 BUF1CHK EQU X'20' BUFFER 1 CHECKED FLAG 09200000 BUF2CHK EQU X'40' BUFFER 2 CHECKED FLAG 09240000 NOPNR1 EQU X'7F' BUFFER 1 OPENER FLAG MASK OUT 09280000 CONTOVN EQU X'7F' CONTINUATION OVERFLOW FLAG MASK OUT 09320000 CONTOV EQU X'80' CONTINUATION OVERFLOW FLAG 09360000 OPNR1 EQU X'80' BUFFER 1 OPENER FLAG 09400000 OP1BF2 EQU X'81' OPENER 1 AND BUFFER 2 NOW FLAGS 09440000 NBUF2CHK EQU X'BF' BUFFER 2 CHECKED FLAG MASK OUT 09480000 NBUF1CHK EQU X'DF' BUFFER 1 CHECKED FLAG MASK OUT 09520000 N2BUFWF EQU X'E1' BOTH BUFFERS FULL AND WRITTEN FLAGS MASK OUT 09540000 NBUF2WF EQU X'EB' BUFFER 2 FULL-WRITTEN FLAGS MASK OUT 09560000 NLFLCHKN EQU X'EB' NOTE LIST FULL + CHK NOW FLAGS MASK OUT 09600000 NBUFW2 EQU X'EF' BUFFER 2 WRITTEN FLAG MASK OUT 09640000 RNBUF1 EQU X'EF' RLD'S-IN-BUFFER-1 MASK 09680000 NBUF1WF EQU X'F5' BUFFER 1 FULL-WRITTEN FLAGS MASK OUT 09720000 NBUFW1 EQU X'F7' BUFFER 1 WRITTEN FLAG MASK OUT 09760000 NPURGE EQU X'F7' PURGE FLAG MASK OUT 09780000 NCHKNOW EQU X'FB' CHECK NOW FLAG MASK OUT 09800000 NBUFF2 EQU X'FB' BUFFER 2 FULL FLAG MASK OUT 09840000 NBUFF1 EQU X'FD' BUFFER 1 FULL FLAG MASK OUT 09880000 NFNLCHK EQU X'FD' FINAL CHECK FLAG MASK OUT 09920000 BUFLIP EQU X'FE' EXTRACT CURRENT BUFFER FLAG MASK 09960000 BUFFRN1 EQU X'FE' BUFFER 1 CURRENT MASK 10000000 STMULT EQU X'02' FOR MAXIMUM STRING 10040000 STMULT1 EQU X'00' MULTIPLICITY 10080000 EJECT 10120000 * FOR NOTE LIST 10160000 SPACE 1 10200000 NFLGS EQU X'03' NO FLAGS MASK 10240000 BUFN2 EQU X'10' BUFFER 2 HOLDS CURRENT RLD'S 10280000 TTRF EQU X'40' TTR IS PRESENT/END-OF-BUFFER 10320000 NICF EQU X'6F' RLD'S NOT-IN-CORE MASK 10360000 INCF EQU X'80' RLD'S IN-CORE FLAG 10400000 GPF EQU X'BF' SET GROUP FLAG MASK 10440000 FLGS EQU X'FC' ALL FLAGS MASK 10480000 SPACE 2 10520000 * FOR CESD 10560000 SPACE 1 10600000 DSAVOF EQU X'EF' MASK OUT DELETE FLAG IN CESD 10640000 SPACE 2 10680000 * ERROR CODES 10720000 SPACE 1 10760000 ERRLM EQU X'317' LOAD MODULE SOURCE ERROR SA53762 10800021 ERRC EQU X'423' CALLS LIST OVERFLOW 10840000 ERRRM EQU X'425' RLD I/O CONTROL TABLE OVERFLOW 10880000 EJECT 10920000 * REGISTER ASSIGNMENTS 10960000 SPACE 1 11000000 R0 EQU 0 SAVE/RESTORE, ERROR CODE, WORK REG 11040000 GR1 EQU 1 CESD ID, LINK THROUGH MULTDET, RESULTANT TTR 11080000 XS3 EQU 1 'R' ID 11120000 XAPT EQU 2 POINTER TO APT 11160000 XRMK2 EQU 3 BYTE CT OF PROCESSED ENTRIES IN RLD I/O CTL TB 11200000 XAA EQU 3 CURRENT LOC IN TEXT BUFFER 11240000 GR3 EQU 3 POINTER TO CESD, ASSEMBLED ADDR IN FA 11280000 XJM1 EQU 4 INPUT REC BYTE CT, TEXT OUTPUT BUFFER BYTE CT 11320000 XPSAV EQU 4 'P' ID, POINTER TO ID IN RNT 11360000 GR4 EQU 4 START OF RLD STRING, DIVISION WORK REG 11400000 GR5 EQU 5 START RNT, DIVISION WORK REG 11440000 XRET2 EQU 5 LINK THROUGH WRITE ROUTINE 11480000 XPRLD EQU 6 ORIGINAL POINTER TO START OF RLD STRING, 11520000 * CURRENT FA POINTER 11560000 XBCNT EQU 7 BYTE COUNT OF PROCESSED ITEMS 11600000 XIBCNT EQU 8 RLD STRING BYTE COUNT 11640000 XRET EQU 9 LINK THROUGH BUFFERING ROUTINE 11680000 GR9 EQU 9 CURRENT RNT ENTRY POINTER 11720000 XOBCNT EQU 10 BYTE COUNT OF ITEMS IN RLD BUFFER 11760000 XDCB EQU 10 POINTER TO SYSUT1 DCB 11800000 XSTR EQU 11 POINTER TO START OF RLD STRING 11840000 RBASE EQU 12 MODULE BASE REGISTER 11880000 GR13 EQU 13 BASE REGISTER FOR MODULE SAVE AREA, POINTER 11920000 * TO CURRENT CESD ENTRY 11960000 R14 EQU 14 RETURN LINK, WRITE DATA LENGTH 12000000 XS1 EQU 14 POINTER TO CURRENT DELINK ENTRY, TO CURRENT 12040000 * CALLS LIST ENTRY, TO CURRENT CESD ENTRY, 12080000 * TEXT NOTE LIST OFFSET 12120000 XS2 EQU 15 POINTER TO CURRENT RLD BUFFER ENTRY, 12160000 * TO CURRENT TEXT NOTE LIST ENTRY, TO 12200000 * CURRENT TEXT BUFFER ENTRY, WORK REG 12240000 R15 EQU 15 BRANCH ADDRESS, WRITE DATA LOC, CURRENT LOAD 12280000 * MODULE BUFFER ENTRY, WORK REG 12320000 XRIO EQU 15 CURRENT RLD NOTE LIST ENTRY POINTER 12360000 TITLE 'IEWLMRAT RLD/TXT PROCESSOR -- ENTRY AND EXIT' 12400000 * R L D / T X T 12440000 * C O M M O N E N T R Y AND E X I T 12480000 * ROUTINE 12520000 SPACE 2 12560000 * THIS ROUTINE RECEIVES CONTROL FROM THE INPUT PROCESSOR. IT SAVES 12600000 * THE RETURN ADDRESS, DIFERENTIATES BETWEEN RLD AND TEXT MATERIAL, AND 12640000 * PASSES CONTROL TO THE PROPER PROCESSING ROUTINE. AT THE CONCLUSION 12680000 * OF THIS PROCESSING, IT RE-ESTABLISHES THE RETURN ADDRESS AND RETURNS 12720000 * CONTROL THERETO. 12760000 * EVENT SEQUENCE FOR ENTRY -- 12800000 * ESTABLISH BASE REGISTER FOR COMMON ROUTINES AND RLD PROCESSOR. 12840000 * SAVE RETURN ADDRESS. 12880000 * LOAD REMAINING BUFFERRED BYTE COUNT 12920000 * PROCEED TO PURGE RLD AND TEXT BUFFERS IF ENTRY IS FROM 12960000 * END-OF-DATA. 13000000 * DIRECT CONTROL TO EITHER THE RLD OR TEXT PROCESSING ROUTINE. 13040000 * RELINQUISH CONTROL TO ERROR ROUTINE IF INPUT LENGTH IS 13080000 * GREATER THAN MAXIMUM. 13120000 * CLEAR STRING COUNT AND SAVE INPUT BYTE COUNT FOR RLD 13160000 * PROCESSING ROUTINE. 13200000 * EVENT SEQUENCE FOR PURGE/EXIT -- 13240000 * PURGE -- 13280000 * CLEAR STRING COUNT ACCUMULATOR 13320000 * LINK TO RLD PURGE ROUTINE. 13360000 * LINK TO TEXT PURGE ROUTINE. 13400000 * EXIT -- 13440000 * SAVE RLD BUFFERRED BYTE COUNT (RLD RETURN). 13480000 * LOAD RETURN ADDRESS (TEXT RETURN). 13520000 * RETURN TO CALLER. 13560000 SPACE 2 13600000 *IEWLMRAT CSECT ENTRY POINT AND NAME 13640000 BALR RBASE,R0 L BASE REGISTER 13680000 RATLOC EQU * DEFINE BASE LOCATION 13720000 USING *,RBASE DEFINE BASE REGISTER 13760000 USING APTDSECT,XAPT 13800000 BC 15,MODIDR+6 SKIP IDENTITY 13840000 MODIDR DC C'00MRAT' MODULE IDENTITY IN CHARACTERS 13880000 L XBCNT,TXT001AD L BASE REGISTER FOR TEXT PROCESSING RTN 13920000 USING IEWLMTXT,XBCNT DEFINE BASE REGISTER FOR TEXT PROCESSOR 13960000 ST R14,INADD1 SAVE CALLER RETURN ADDRESS 14000000 LH XOBCNT,OBCNT L REMAINING BUFFERRED COUNT 14040000 TM NEWSW,EOD CHK FOR END-OF-DATA 14080000 BC 7,ECPRG BC IF YES TO PURGE ROUTINES 14120000 LTR XJM1,XJM1 NO -- CHK IF INPUT BYTE COUNT IS ZERO 14160000 BC 8,TXTRET IGNORE ZERO LENGTH TXT OR RLD INPUT 14200000 TM APT0,RT CHK IF RLD OR TEXT 14240000 BC 8,RATIN BC IF RLD 14280000 L XS2,TXTBFEND L LOC OF END OF TEXT BUFFER 14320000 S XS2,TXTBFBEG LESS LOC OF START OF TEXT BUFFER 14360000 CR XJM1,XS2 CHK IF INPUT GREATER THAN SPAN 14400000 BC 2,ERR3 INPUT RECORD LARGER THAN TXTBUFFER 14440000 BCR 15,XBCNT GO TO PROCESS TEXT 14480000 RATIN LH XS2,ENRLD2X RLD -- L SIZE OF RLD INPUT BUFFER 14520000 CR XJM1,XS2 CHK IF INPUT GREATER 14560000 BC 2,ERR1 BC IF YES -- ERROR 14600000 SR XIBCNT,XIBCNT CLEAR STRING COUNT ACCUMULATOR 14640000 STH XJM1,TTR1 SAVE RLD INPUT BYTE COUNT 14680000 RATINX BC 15,RLD001 GO TO PROCESS RLD'S 14720000 SPACE 1 14760000 ECPRG SR XIBCNT,XIBCNT CLEAR STRING COUNT ACCUMULATOR 14800000 BAL XRET,RLDBUF INPUT BYTE CT ZERO -- PURGE RLD 14840000 ECPRGX STH XIBCNT,OBCNT CLEAR PREVIOUS BUFFERRED COUNT 14880000 LA XRET,TXTRET SET INTERMEDIATE RETURN 14920000 L R14,TXTBUFAD L LOC OF TEXT PURGE ROUTINE 14960000 BCR 15,R14 GO TO TEXT PURGE ROUTINE 15000000 SPACE 1 15040000 RLDRET STH XOBCNT,OBCNT SAVE BUFFERRED BYTE COUNT 15080000 SPACE 1 15120000 TXTRET L R15,INADD1 L RETURN ADDRESS 15160000 BALR R14,R15 RETURN (WITH LINK) 15200000 SPACE 1 15240000 MOVEJM1 MVC 0(0,XS2),0(XSTR) MOVE INSTR TO MOVE ITEM TO BUFFER 15280000 BC 15,RLD0161 CONTINUE PROCESSING IF LINKED 15320000 SPACE 1 15360000 MOVEJM1A MVC 0(4,XS2),SAVIDS MOVE 'R' AND 'P' ID'S INTO BUFFER 15400000 SPACE 1 15440000 TITLE 'IEWLMRAT RLD/TXT PROCESSOR -- WRITE ROUTINE' 15480000 * R L D / T X T 15520000 * C O M M O N W R I T E 15560000 * ROUTINE 15600000 SPACE 1 15640000 * THIS ROUTINE WRITES THE RLD AND TEXT INTERMEDIATE OUTPUT AS WELL * 15680000 * AS THE RLD AND TEXT NOTE LISTS AS REQUIRED. AT ENTRY A TEST IS * 15720000 * MADE FOR RECORD SIZE ZERO. ZERO SHOWS THE INPUT MODULE CONTAINED * 15760000 * NO TEXT OR RLD ITEMS OR THAT THE RLD ITEMS OCCURRED IN A MODULE * 15800000 * MARKED DELETE. IN THE ZERO LENGTH CASE NO WRITE TAKES PLACE. * 15840000 * IF SYSUT1 HAS NOT BEEN OPENED PREVIOUSLY, IT IS OPENED NOW. 15880000 SPACE 2 15920000 RLDBUFR LTR R14,R14 CHK IF SIZE IS ZERO OR LESS 15960000 BCR 12,XRET BC IF YES -- RETURN 16000000 COMBUF LA GR13,REGSA SIZE NOT ZERO -- L LOC OF SAVE AREA 16040000 BUFFRET L XDCB,DCBAD L LOC OF SYSUT1 DCB 16080000 STH R14,DECBJM+LENGTH SET DATA LENGTH IN DECB 16120000 ST R15,DECBJM+ADD SET DATA AREA LOC IN DECB 16160000 SPACE 1 16200000 TM OPNFLGS(XDCB),DCBOPN CHK IF DCB OPENED 16240000 BC 1,COMBUF2 BC IF YES 16280000 SPACE 1 16320000 MVC DDNAME(8),40(XDCB) NO -- RESERVE DD NAME 16340000 OPEN ((XDCB),(OUTIN)) OPEN SYSUT1 DCB 16360000 SPACE 1 16400000 TM OPNFLGS(XDCB),DCBOPN CHK IF OPEN SUCCESSFUL 16440000 BC 1,COMBUF2 BC IF YES 16480000 ABEND1 LA GR1,DDNAME NO -- L LOC OF DD NAME 16510000 LH R0,OPNERR L ERROR CODE 16540000 LA R14,TXTRET L RETURN ADDRESS 16570000 L R15,ERDIG L LOC OF ERROR ROUTINE 16600000 BCR 15,R15 GO TO ERROR ROUTINE 16630000 SPACE 1 16680000 COMBUF2 WRITE DECBJM,SF,(XDCB),PHADD,PHL 16720000 BCR 15,XRET2 RETURN 16760000 SPACE 1 16800000 COMCHK LA GR13,REGSA L LOC OF SAVE AREA 16840000 L XDCB,DCBAD L ADDRESS OF SYSUT1 DCB 16880000 SPACE 1 16920000 CHECK DECBJM 16960000 SPACE 1 17000000 NOTE (XDCB) 17040000 SPACE 1 17080000 SR XOBCNT,XOBCNT CLEAR BUFFERRED BYTE COUNT 17120000 BCR 15,XRET2 RETURN 17160000 SPACE 2 17170000 OPNERR DC X'241C' FAILURE TO OPEN DCB CODE 17180000 DDNAME DC C'SYSUT1 ' 17190000 SPACE 2 17200000 TITLE 'IEWLMRAT RLD/TXT PROCESSOR -- ERROR ROUTINE INTERFACE' 17240000 * E R R O R R O U T I N E 17280000 * I N T E R F A C E 17320000 SPACE 2 17360000 SPACE 1 17400000 ERR1 LH R0,ERROM L OBJECT MODULE ERROR CODE 17440000 TM APT1,EX CHK IF IS OBJECT MODULE 17480000 BC 8,ERROR BC IF YES TO ERROR ROUTINE INTERFACE 17520000 ERR2 LA R0,ERRLM NO -- L ERROR CODE FOR LOAD MODULE 17560000 SPACE 2 17600000 * COMMON EXIT TO ERROR ROUTINE 17640000 SPACE 1 17680000 ERROR L R15,ERDIG 17720000 LA R14,TXTRET 17760000 BCR 15,R15 17800000 SPACE 17804000 * ERROR CAUSE BY INPUT EECORD LARGER THAN THAN THE TEXT BUFFER 17808000 * REQUIRE ERROR MSG AND A DUMMY READ 17812000 SPACE 17816000 ERR3 LA R0,ERRLM LOAD MODULE RRROR MSG 17820000 ERR3A L R15,ERDIG ESTABLISH ADDR OF ERROR RTN A43127 17824021 BALR R14,R15 PRINT ERROR MSG AND RETURN TO 17828000 LA GR9,1 ISSUE BUMMY READ OF 1 TO ADVANCE TO 17832000 B READ0 TO THE NEXT RECORD 17836000 TITLE 'IEWLMRAT RLD/TXT PROCESSOR -- MULTIPLICITY ROUTINE' 17840000 * C O M M O N 17880000 * M U L T I P L I C I T Y D E T E R M I N A T O R 17920000 * ROUTINE 17960000 SPACE 2 18000000 * THIS ROUTINE DETERMINES THE LOWEST MULTIPLICITY IDENTITY 18040000 * AND RELOCAND OF TEXT ITEM 18080000 * XS1 AND XS2 = CBRC 18120000 * XAA = ASSEMBLED ADDRESS OF 1ST BYTE OF TEXT 18160000 * XAA = GR3, GR3 = ADDRESS FIELD FOR RLD ITEM 18200000 SPACE 2 18240000 SPACE 2 18280000 MULTDET SLL XS1,4 MULTIPLY 'ID' BY 16 (CESD LENGTH) 18320000 A XS1,CHESD ADD LOC OF START OF CESD 18360000 L XS1,8(XS1) L TYPE/ADDRESS FROM EXTRACTED ENTRY 18400000 LA XS1,0(XS1) CLEAR TO ASSEMBLED ADDRESS 18440000 LCR XS1,XS1 FORM COMPLEMENTED ADDRESS 18480000 A XS1,TXTBFBEG ADD LOC OF TEXT BUFFER TO FORM CURRENT 18520000 * BUFFER RELOCATION CONSTANT (CBRC) 18560000 LR XS2,XS1 L CBRC IN XS2 18600000 LR R0,XS1 SAVE REGISTER (CBRC) 18640000 AR XS2,XAA ADD ASSEMBLED ADDRESS OF TEXT TO CBRC 18680000 S XS2,TXTBFBEG SUBTRACT LOC OF TEXT BUFFER 18720000 SR XS1,XS1 CLEAR REMAINDER REGISTER 18760000 D XS1,MULTSIZE DIVIDE BY BUFFER SIZE FOR MULTIPLICITY 18800000 N XS2,STRUNC LIMIT MULTIPLICITY TO 10 BITS 18840000 BCR 15,GR1 RETURN 18880000 SPACE 2 18920000 TITLE 'IEWLMRAT RLD/TXT PROCESSOR -- RLD PROCESSING' 18960000 * R L D P R O C E S S I N G 19000000 * ROUTINE 19040000 SPACE 2 19080000 * THIS ROUTINE IS ENTERED FOR EACH 'R' AND 'P' FIELD. IT RENUMBERS 19120000 * THE 'R' AND 'P' POINTERS VIA THE RENUMBERING TABLE AND DETERMINES 19160000 * WHEN IT IS NECESSARY TO ENTER THE DELINK ROUTINE. THE ACTUAL 19200000 * SETTING OF THE DELINK ENTRY WAS DONE BY THE ESD PROCESSOR. 19240000 * XBCNT = CUMULATIVE BYTE COUNT OF INPUT RLD ITEMS WHICH HAVE BEEN 19280000 * PROCESSED. WHEN XBCNT = TTR1, END OF INPUT HAS BEEN REACHED. 19320000 * XIBCNT = STRING BYTE COUNT. A STRING CONSISTS OF A GROUP OF 19360000 * CONTIGUOUS RLD ITEMS, EACH WITH A 'P' ID FIELD OF THE SAME ID. 19400000 * ONE ENTRY FOR EACH STRING IS MADE IN THE RLD NOTE LIST. 19440000 * XSTR = POINTER TO START OF A STRING -- INITIAL 'R' ID. 19480000 * XPRLD = POINTER TO CURRENT FLAG-ADDRESS ITEM. AT ENTRY XPRLD 19520000 * HOLDS THE LOCATION OF THE FIRST RLD ITEM IN AN INPUT RECORD. 19560000 * SUBSEQUENTLY IT IS THE POINTER TO THE FA FIELD OF EACH CURRENT 19600000 * ITEM. 19640000 SPACE 1 19680000 RLD001 SR XBCNT,XBCNT INITIALIZE INPUT COUNT TO ZERO 19720000 MVC ENCT(2),ENR1C SET CURRENT NOTE LIST ENTRY COUNT 19760000 RLD002 SR XIBCNT,XIBCNT INITIALIZE STRING COUNT TO ZERO 19800000 SPACE 1 19840000 RLD002A LA XBCNT,8(XBCNT) STEP BY 8 NO OF BYTES PROCESSED 19880000 LR XSTR,XPRLD L START OF CURRENT STRING 19920000 L R14,BUFSTLOC L BUFFERED STRING LOCATION 19960000 LTR R14,R14 CHK IF LOCATION SET 20000000 BC 7,RLD002B BC IF YES 20040000 ST XSTR,BUFSTLOC NO -- SET WITH CURRENT STRING LOC 20080000 RLD002B MVC SAVIDS(4),0(XSTR) RESERVE 'R' AND 'P' ID'S 20120000 MVC SAVIDR(2),0(XSTR) SAVE RLD ITEM 'R' ID 20160000 LA XPRLD,4(XPRLD) STEP TO LOC OF NEXT FA FIELD 20200000 MVI STM,STMULT RESET STRING MULTIPLICITY 20240000 LH XPSAV,SAVIDS+2 L 'P' NUMBER AND 20280000 SLL XPSAV,2 QUADRUPLE (ID FIELD LENGTH) 20320000 A XPSAV,RECNT ADD LOC OF RNT-4 TO FORM CURRENT RNT LOC 20360000 CLC DID(2,XPSAV),CONZO IS RENUMBERED ID ZERO 20400000 BC 8,ERR1 BC IF ZERO -- ERROR 20440000 LH GR3,ENCDX MAX # CESD = MAX # RNT'S A53300 20450000 SLL GR3,2 MULTIPLY BY 4 A53300,SA53762 20460021 A GR3,RECNT GET HIGHEST ADDR OF RNT-4 A53300 20470000 A GR3,FOUR HIGHEST VALID ADDR OF RNT A53300 20472000 CR GR3,XPSAV IS IT A VALID P PTR? A53300 20474000 BL ERR1 NO - IEW0222 A53300 20476000 OI APT1,DEL SET DELETE FLAG 20480000 TM DT(XPSAV),DEL IS P A DELETE 20520000 BC 1,RLD012 BC IF YES TO SKIP PROCESSING 20560000 NI APT1,DELOFF NO -- RESET DELETE FLAG OFF 20600000 RLD003 CLC DID(2,XPSAV),PREP IS CURRENT P SAME AS PREVIOUS P 20640000 BC 8,RLD0042 BC IF YES TO CONTINUE STRING 20680000 LR XRET,XOBCNT L BUFFERRED BYTE COUNT 20720000 AR XRET,XIBCNT ADD CURRENT STRING COUNT 20760000 LA XRET,4(XRET) STEP BY 4 20800000 C XRET,RLDSIZE CHK AGAINST MAXIMUM BUFFER SIZE 20840000 BC 10,RLD0042 BC IF EQUAL OR GREATER 20880000 RLD0031 BAL XRET,RLDBUF NO -- GO TO BUFFER PREVIOUS STRING 20920000 * NOTE -- BUFFERING WILL NOT OCCUR IF 20960000 * PREVIOUS P WAS A DELETE OR IF THIS 21000000 * IS THE FIRST P POINTER IN A MODULE 21040000 RLD004 SR XIBCNT,XIBCNT RESET STRING COUNT TO ZERO 21080000 TM RLDFLGS,CONTOV CHK FOR CONTINUATION OVERFLOW FLAG 21120000 BC 8,RLD0041 BC IF NO 21160000 NI RLDFLGS,CONTOVN CLEAR CONTINUATION OVERFLOW FLAG 21200000 CH XBCNT,TTR1 CHK IF INPUT EXHAUSTED 21240000 BC 10,RLDRET RETURN IF YES 21280000 L XSTR,SBACKUP SET NEW STRING ORIGIN 21320000 ST XSTR,BUFSTLOC SET NEW BUFFERRED STRING LOC 21360000 LR XPRLD,XSTR L NEW STRING ORIGIN 21400000 LA XPRLD,4(XPRLD) SET TO LOC OF NEXT FA FIELD 21440000 LA XBCNT,4(XBCNT) STEP BY 4 NO OF INPUT BYTES PROCESSED 21480000 LA XPSAV,SAVIDS+2 RESERVE 'P' ID 21520000 BC 15,RLD0041A 21560000 RLD0041 ST XSTR,BUFSTLOC SET NEW BUFFERRED STRING LOC 21600000 RLD0041A MVC PREP(2),DID(XPSAV) RESERVE CURRENT 'P' AS PREVIOUS 'P' 21640000 RLD0042 MVC SAVIDS+2(2),0(XPSAV) SAVE NEW 'P' ID FOR RLD ITEM 21680000 RLD0043 NI PDSE8,ANY SET RLD FLAG ON 21720000 LA XIBCNT,8(XIBCNT) STEP STRING COUNT BY 8 21760000 LH GR4,SAVIDR L 'R' ID OF CURRENT ITEM 21800000 N GR4,RIDMSK CLEAR TO 'R' ID 21840000 LA R14,RLD010 L PROCEED ADDRESS FOR 'P' RENUMBERING 21880000 SPACE 2 21920000 * RENUMBER 'ID' POINTER ROUTINE 21960000 * WITH DELINK IF REQUIRED 22000000 SPACE 1 22040000 RLD004A LR R0,R14 SAVE REGISTER 14 22080000 L GR3,CHESD L START OF CESD 22120000 L GR5,RECNT L START OF RNT-4 22160000 LR GR9,GR4 L RLD 'ID' 22200000 SLL GR9,2 QUADRUPLE (ENTRY LENGTH) 22240000 AR GR9,GR5 ADD RNT START TO FORM CURRENT ENTRY LOC 22280000 TM 0(XPRLD),X'30' IS RLD A PSEUDO-REGISTER 22320000 BC 1,RLD012 BC IF YES -- SKIP RENUMBERING 22360000 CLC DID(2,GR9),CONZO IS RENUMBERED ID ZERO 22400000 BC 8,ERR1 BC IF YES -- ERROR 22440000 LH GR3,ENCDX MAX # CESD = MAX # RNT'S A53300 22450000 SLL GR3,2 MULTIPLY BY FOUR A53300,SA53762 22460021 A GR3,RECNT GET HIGHEST ADDR OF RNT-4 A53300 22470000 A GR3,FOUR HIGHEST VALID RNT ADDR A53300 22472000 CR GR3,GR9 VALID R PTR? A53300 22474000 L GR3,CHESD RESTORE START OF CESD - DOES 22476000 * NOT CHANGE COND CODE A53300 22478000 BL ERR1 NO - ERROR IEW0222 A53300 22478400 MVC TEMP(1),3(GR9) GET RNT TYPE SA69196 22478821 NI TEMP,X'0F' GET RID OF FLAGS SA69196 22479221 CLI TEMP,X'04' TEST FOR PC SA69196 22479621 BNE RLD004B BRANCH IF NOT PC SA69196 22479721 TM 3(GR9),X'10' TEST FOR DELETE FLAG SA69196 22479821 BNO RLD004B BRANCH IF NOT PC DELETE SA69196 22479921 LH GR1,0(,GR9) GET CESD ID SA69196 22493221 LR GR13,GR1 SET UP WORK REG SA69196 22503221 SLL GR13,4 CALC CESD OFFSET SA69196 22505221 AR GR13,GR3 GET CESD POINTER SA69196 22505621 NC 13(3,GR13),13(GR13) TEST FOR 0-LENGTH PC SA69196 22506021 BNZ RLD004B BRANCH IF NOT 0-LENGTH SA69196 22506421 LA R0,X'023E' SET UP MESSAGE 622 SA69196 22506521 B ERROR GO TO LOG ERROR SA69196 22506621 RLD004B EQU * SA69196 22511021 LH GR1,DID(GR9) L UPDATED ID 22515621 LR GR13,GR1 USE UPDATED ID 22520000 SLL GR13,4 MULTIPLY BY 16 (ENTRY LENGTH) 22560000 AR GR13,GR3 ADD START OF CESD TO FORM CURRENT LOC 22600000 TM DT(GR9),DEL IS TYPE IN RNT A DELETE 22640000 BC 8,RLD008 BC IF NO 22680000 TM DF(GR9),DSAV YES, IS DELETE -- IS DELINK VALUE SAVED 22720000 BC 1,RLD007 BC IF YES 22760000 TM 0(XPRLD),ANYR DELINK NOT SAVED -- IS TYPE NON-BRANCH 22800000 BC 5,RLD0061 BC IF NO TO SKIP DELINKING 22840000 SPACE 1 22880000 RLD005 L R15,ADDEL NON-BRANCH TYPE -- L LOC OF DELINK RTN 22920000 BALR R14,R15 GO TO PERFORM DELINK 22960000 LR R14,R0 RESTORE REGISTER 14 23000000 SPACE 1 23040000 RLD0061 NI 8(GR13),DSAVOF SET DELETE FLAG OFF IN CESD 23080000 TM DF(GR9),DSAV IS DELINK VALUE SAVED 23120000 BC 8,RLD008 BC IF NO 23160000 RLD007 TM 0(XPRLD),ANYR IS RNT TYPE A NON-BRANCH 23200000 BC 5,RLD009 BC IF NO 23240000 MOVEJM2 MVC DELR(2),DID(GR9) SAVE RENUMBERED ID 23280000 OI APTSWS,X'08' SET DELINKED 'R' RECEIVED FLAG 23320000 BCR 15,R14 RETURN TO DELINK CALLER 23360000 SPACE 1 23400000 RLD008 TM DT(GR9),CH IS RNT TYPE FLAGGED AS CHAINED 23440000 MVC SAVIDS(2),DID(GR9) SAVE RENUMBERED ID FOR OUTPUT 23480000 * NOTE -- THIS INSTRUCTION DOES NOT 23520000 * CHANGE CONDITION CODE 23560000 BCR 8,R14 NOT CHAINED -- MOVE INSTR OK -- RETURN 23600000 MVC SAVIDS(2),14(GR13) CHAINED -- OVERWRITE FIRST MOVE 23640000 BCR 15,R14 RETURN TO CALLER 23680000 SPACE 1 23720000 RLD009 LA XS1,5 L SIZE OF DELINK TABLE ENTRY 23760000 MH XS1,0(GR9) MULTIPLY BY ENTRY NUMBER 23800000 A XS1,DLKT ADD START OF DELINK TABLE TO FORM DELINK 23840000 * ENTRY LOC 23880000 MVC SAVIDS(2),0(XS1) RENUMBER 'R' WITH DELINK TABLE ID 23920000 LR R14,R0 RESTORE REGISTER 14 23960000 BCR 15,R14 RETURN TO CALLER 24000000 SPACE 2