* /* START OF SPECIFICATIONS **** 00020000 *02* PROCESSOR = ASSEMBLER 00040000 **** END OF SPECIFICATIONS ***/ 00060000 SPACE 3 00082000 GBLC &COMPNM,&ASMID GLOBAL VARIABLES 00090000 JHEAD 'ASSEMBLER INITILIZATION - PROLOG', X00100000 PHASEID=X0D, X00200000 LEVEL=10 00300000 * * 00400000 *FUNCTION/OPERATION- * 00500000 * THIS MODULE INITIALIZES THE ASSEMBLER. IT FORMATS THE TIME, * 00600000 * DATE AND ASSEMBLER LEVEL, CHECKS FOR VALID PARAMETERS, CHECKS TO * 00700000 * SEE THAT ALL NECESSARY DD CARDS ARE PRESENT, AND SETS THE MAXIMUM * 00800000 * WORKFILE RECORD SIZE. * 00900000 * * 01000000 *ENTRY POINT- * 01100000 * START - ENTERED BY LOAD AND BRANCH FROM DRIVER. * 01200000 * * 01300000 *INPUT- * 01400000 * N/A * 01500000 * * 01600000 *OUTPUT- * 01700000 * N/A * 01800000 * * 01900000 *EXTERNAL ROUTINES- * 02000000 * N/A * 02100000 * * 02200000 *EXITS, NORMAL- * 02300000 * RETURN TO DRIVER BY JRETURN MACRO. * 02400000 * * 02500000 *EXITS, ERROR- * 02600000 * BRANCH TO JABORT IN COMMON. * 02700000 * * 02800000 *TABLE/WORK AREAS- * 02900000 * REGISTER R13 POINTS TO COMMON. * 03000000 * * 03100000 *ATTRIBUTES- * 03200000 * REFRESHABLE. * 03300000 * * 03400000 *NOTES- * 03500000 SPACE 3 03600000 PRINT OFF DON'T PRINT JCOMMON COPY CODE 03650000 COPY JCOMMON JCOMMON COPY CODE 03700000 PRINT OFF DON'T PRINT JERMSGCD COPY CODE 03800000 COPY JERMSGCD JERMSGCD COPY CODE 03900000 PRINT ON THAT'S ALL WE DON'T WANT 03950000 SPACE 2 04000000 TITLE '&COMPNM&ASMID - ASSEMBLER INITILIZATION - FILE BLOCK DSE04050000 ECT (JFLEBLK)' 04060000 COPY JFLEBLK JFLEBLK COPY CODE 04100000 SPACE 2 04200000 TITLE '&COMPNM&ASMID - ASSEMBLER INITILIZATION - DCBD MACRO ' 04250000 DCBD DSORG=(PS),DEVD=(DA) DCBD MACRO 04300000 SPACE 7 04400000 LVTMDT DSECT , LEVEL TIME AND DATE DSECT 04500000 DS CL5 ' ASM ' 04600000 LV DS CL4 NNNN VERSION LEVEL 04700000 DS C ' ' 04800000 TM DS CL5 HH.MM TIME 04900000 DS C ' ' 05000000 DT DS CL8 MM/DD/YY DATE 05100000 IDR DSECT 05150000 DS CL11 05160000 VLML DS CL2 VERSION AND MOD. LEVEL 05170000 DS CL2 05180000 YEARADAY DS CL5 YEAR AND DAY OF YEA9 05190000 SECIDR DS CL19 SECOND IDR 05192000 SPACE 6 05200000 P DSECT DDNAME OVERRIDE LIST 05300000 PLEN DS H LENGTH OF LIST 05400000 DS 3CL8 (NOT APPLICABLE) 05600000 PSYSLIB DS CL8 SYSLIB DDNAME 05700000 PSYSIN DS CL8 SYSIN DDNAME 05800000 PSYSPRIN DS CL8 SYSPRINT DDNAME 05900000 PSYSPUNC DS CL8 SYSPUNCH DDNAME 06000000 PSYSUT1 DS CL8 SYSUT1 DDNAME 06100000 PSYSUT2 DS CL8 SYSUT2 DDNAME 06200000 PSYSUT3 DS CL8 SYSUT3 DDNAME 06300000 PSYSGO DS CL8 SYSGO DDNAME 06350000 PSYSTERM DS CL8 SYSTERM DDNAME 06370000 SPACE 2 06400000 TITLE '&COMPNM&ASMID - ASSEMBLER INITILIZATION ' 06450000 * VS1 RELEASE 3.1 CHANGES 06460031 *C273350,278000,290000,301000,312000,324000,339000,354000 @OY02543 06470005 *A504500-504800 @OX09734 06480005 JCSECT (X0D00) SECTION NAME 06500000 JMODID 06600000 START JSAVE BASE=YES SAVE REGISTERS 06700000 JENTRY (X0D01=START) SECTION ENTRY POINT 06800000 SPACE 2 06900000 TITLE '&COMPNM&ASMID - ASSEMBLER INITILIZATION - FORMAT HEADING06950000 G IDENTIFIER (LEVEL, TIME, DATE)' 06960000 LA R5,JLVTMDT SET BASE FOR HEADING 07200000 USING LVTMDT,R5 '' 07300000 LA R2,JIDR 07350000 USING IDR,R2 07360000 LH R14,D0(,R10) PICK UP MASTER ROOT SEG LEVEL 07400000 CVD R14,JDWORD 0000000000000NNC 07500000 UNPK JDWORD(D2),JDWORD+D6(D2) FNCN 07600000 MVN LV(D2),JDWORD 0N0N 07700000 MVI VLML,X'00' 07750000 MVC VLML+D1(D1),LV 07760000 MVI VLML+D2,X'00' 07770000 MVC VLML+D3(D1),LV+D1 07780000 MVC LV,VLML 07790000 SPACE 2 07800000 TIME DEC GET THE TIME 07900000 ST R0,JFWORD1 HHMMSSTH 08000000 UNPK JDWORD(D5),JFWORD1(D3) FHFHFMFMSS 08100000 MVN TM(D2),JDWORD 0H0H 08200000 MVN TM+D3(D2),JDWORD+D2 0M0M 08300000 SPACE 2 08400000 ST R1,JFWORD1 00YYDDDC 08500000 UNPK JDWORD(D3),JFWORD1+D1(D2) FYFYDD 08600000 MVN DT+D6(D2),JDWORD 0Y0Y 08700000 MVN YEARADAY(D2),JDWORD 08750000 UNPK JDWORD(D3),JFWORD1+D2(D2) 08760000 MVN YEARADAY+D2(D3),JDWORD 08770000 SR R2,R2 ZERO 08800000 XC JDWORD,JDWORD ZERO WORK AREA 08900000 STH R1,JDWORD+D6 PUT IN DDDC 09000000 CVB R1,JDWORD CONVERT TO BINARY 09100000 CH R1,=H'59' IS IT BEFORE FEB 29 09200000 BNH TIMC YES, DON'T CHECK FOR LEAP YEAR 09300000 TM JFWORD1+D1,D1 IS IT AN ODD YEAR 09400000 BO TIMB YES, SET AS NOT LEAP YEAR 09500000 TM JFWORD1+D1,D18 IS IT LEAP YEAR 09600000 BNM TIMC NOT MIXED IS A LEAP YEAR 09700000 TIMB LA R1,D1(,R1) SET AS NOT LEAP YEAR 09800000 TIMC LA R14,D1 SET FOR FIRST MONTH 09900000 TIMD IC R2,CALEN-R1(R14) GET DAYS PER MONTH 10000000 SR R1,R2 REDUCE DAYS BY THIS MONTH 10100000 BNP TIME IN THIS MONTH, BRANCH 10200000 LA R14,D1(,R14) UP TO NEXT MONTH 10300000 B TIMD AND TRY AGAIN 10400000 TIME AR R1,R2 ADD BACK THIS MONTH 10500000 STC R14,DT+D1 PUT IN MONTH 10600000 SH R14,=H'10' IS IT OCT, NOV OR DEC 10700000 BM TIMF NO, CONTINUE 10800000 MVI DT,J1 YES, PUT IN 10900000 STC R14,DT+D1 CORRECT MONTH 11000000 TIMF CVD R1,JDWORD CONVERT DAY TO PACKED 11100000 UNPK JDWORD(D2),JDWORD+D6(D2) UNPACK THE DAY 11200000 MVN DT+D3(D2),JDWORD MOVE IN DAY 11300000 DROP R5 DROP HEADING BASE 11400000 SPACE 11500000 TITLE '&COMPNM&ASMID - ASSEMBLER INITILIZATION - PROCESS PARAME11550000 ETER OPTIONS' 11560000 * SET DEFAULT OPTIONS 11570000 * 11640000 JEXTRN (X0J00=X0J00) EXTERNAL ENTRY POINT 11710000 L R3,=A(X0J00) POINT TO DEFAULT PARMS 11780000 MVC JPARMS,D1(R3) MOVE UM 11850000 MVC JPARM,D4(R3) IN 11920000 MVI JPDFLAG,D0 ZERO OUT DUMP FLAG 11950000 SPACE 3 11990000 * PROCESS OPTION PARAMETERS 12100000 * 12200000 L R2,D0(,R11) POINT TO DATA AREA 12300000 LH R6,D0(,R2) GET LENGTH OF INFO FIELD 12400000 LTR R6,R6 IS IT ZERO 12500000 BZ SCAN999 YES. NO PARM INFORMATION 12600000 LA R0,D2(,R6) REQUEST SPACE FOR TOTAL PARM 12700000 LR R4,R0 SAVE REQUESTED LENGTH 12800000 GETMAIN R,LV=(0) GET CORE 12900000 STH R4,D0(,R1) SAVE REQUESTED LENGTH 13000000 ST R1,JPARMPTR SAVE ADDR OF TRANS PARM AREA 13100000 LA R5,D2(,R1) POINT TO TRANSLATED FIELD 13200000 MOVLOP SH R6,=H'256' SEE IF ONE MOVE WILL DO IT 13220000 BP MOVLOP1 BRANCH IF NOT 13240000 AH R6,=H'255' GET REMAINING MOVE LENGTH 13260000 EX R6,MVCPARM MOVE PARM INFO INTO OUR CORE 13280000 EX R6,TRPARM TRANSLATE INFO TO INTERNAL 13300000 LA R5,D2(,R1) POINT TO TRANSLATED FIELD 13320000 L R2,D0(,R11) POINT TO DATA AREA 13340000 LH R6,D0(,R2) GET LENGTH OF INFO FIELD 13360000 BCTR R6,R0 GET MACHINE LENGTH 13380000 B SCAN GO SCAN 13400000 MOVLOP1 MVC D0(256,R5),D2(R2) MOVE 256 BYTES 13420000 TR D0(256,R5),JTRTABLE TRANSLATE 256 BYTES 13440000 LA R5,256(,R5) UPDATE POINTER 13460000 LA R2,256(,R2) UPDATE POINTER 13480000 B MOVLOP MOVE AND TRANSLATE MORE 13500000 SPACE 3 13600000 * AT THIS POINT, REGISTER R6 = PARM INFO FIELD LENGTH (MACHINE) 13700000 * REGISTER R5 = ADDR OF TRANSLATED INFO FIELD 13800000 * JPARMPTR = ADDR OF ACQUIRED CORE. FORMAT IS AS 13900000 * FOLLOWS LLIII...III WHERE 14000000 * LL = LENGTH OF ACQUIRED CORE. 14100000 * I = TRANSLATED PARM INFO FIELD. 14200000 * (JPARMPTR WILL BE SET TO ZERO WHEN 14300000 * THE ACQUIRED CORE IS FREED BECAUSE 14400000 * NO SYSPARM IS PRESENT OR BECAUSE 14500000 * THE OVERRIDING SYSPARM IS SHORTER 14600000 * THAN THE SYSGENED SYSPARM). 14700000 SCAN SR R2,R2 ZERO FOR TRT 14800000 SCAN10 CH R6,=H'256' TEST IF ONE TRT IS ENOUGH 14820000 BL SCAN15 BRANCH IF YES 14840000 TRT D0(256,R5),TRTTABLE STOP ON , = ( BLANK 14860000 BNZ SCAN20 BRANCH IF DELIMITER 14880000 SH R6,=H'256' GET REMAINING LENGTH 14900000 AH R5,=H'256' UPDATE POINTER 14920000 SET JINVOPT,ON INDICATE ERROR 14940000 B SCAN10 CONTINUE SCAN 14960000 SCAN15 EX R6,TRTPARM STOP ON , = ( BLANK 14980000 BNZ SCAN20 BRANCH IF NOT END OF FIELD 15000000 LA R1,D1(R5,R6) DUMMY UP TRT OUTPUT TO SIMULATE 15100000 LA R2,JCOMMA STOPPING ON , AFTER FIELD 15200000 SCAN20 LR R14,R1 CALCULATE LENGTH OF CHAR STRING 15300000 SR R14,R5 '' 15400000 SR R6,R14 REDUCE REMAINING LENGTH 15500000 CH R14,=H'10' GREATER THAN 10 CHARACTERS 15600000 BH SCAN110 ERROR. 15700000 LTR R14,R14 NULL STRING (ZERO LENGTH) 15800000 BNP SCAN110 ERROR. 15900000 BCTR R14,R0 GET MACHINE LEN OF CHAR STRING 16000000 LA R15,PARMTAB GET ADDR OF OPTION TABLE 16100000 MVC COMPAREA,BLANKS BLANK COMAPRE AREA 16200000 EX R14,MVCDWORD MOVE OPTION TO BLANK AREA 16300000 SCAN30 CLC COMPAREA,D0(R15) IS IT THIS OPTION 16400000 BE SCAN40 YES. 16500000 LA R15,PARMLEN(,R15) BUMP OPTION TABLE ADDR 16600000 C R15,=A(PARMEND) END OF TABLE 16700000 BL SCAN30 BRANCH IF NOT AT END OF TABLE 16800000 B SCAN110 ERROR. OPTION NOT FOUND 16900000 SCAN40 EX R0,D10(,R15) EXEC INST TO SET OPTION *17000000 CHK PARM TBL. SOME DONT RTN. 17100000 CH R2,=Y(JCOMMA) IS OPTION DELIMITED BY COMMA 17200000 BE SCAN50 DON'T SET FLAG IF OK 17260000 SCAN110 SET JINVOPT,ON 17320000 SCAN50 LA R5,D1(,R1) BUMP PART DELIMITER 17400000 BCTR R6,R0 REDUCE LENGTH BY ONE 17500000 LTR R6,R6 CHECK LENGTH 17600000 BNM SCAN10 IF NOT MINUS, LOOK FOR NEXT OPT 17700000 TM JSYSPARM,BIT0 WAS THERE A SYSPARM (HI-ORDER) 17800000 BO SCAN70 BR IF SYSPARM 17900000 L R1,JPARMPTR FREE TRANSLATED PARM AREA 18000000 LH R0,D0(,R1) GET LENGTH OF AREA 18100000 FREEMAIN R,LV=(0),A=(1) FREE CORE 18200000 XC JPARMPTR,JPARMPTR SET PTR TO ZERO (FOR DRIVER) 18300000 SCAN70 L R2,JPARM GET POINTER 18320000 O R2,D8(,R3) COMPUTE AND 18340000 N R2,D12(,R3) STRIP OFF BITS 18360000 CL R2,JPARM END OF JPARM 18380000 ST R2,JPARM SAVE POINTER 18400000 BE SCAN999 GO TO SCAN IF END 18420000 SET JINVOPT,ON INDICATE INVALID OPTION 18440000 B SCAN999 START SCANNING 18460000 SPACE 3 18500000 SCAN80 SR R15,R15 CONVERT NUMBER 18600000 SCAN90 LA R1,D1(,R1) DUMP PTR 18900000 BCTR R6,R0 DECREMENT LENGTH BY ONE 19000000 LTR R6,R6 ANY FIELD LEFT 19100000 BMR R9 BRANCH IF END OF FIELD 19200000 CLI D0(R1),JNUMMAX IS THIS CHAR A NUMBER 19300000 BHR R9 RETURN IF NOT A NUMBER 19400000 MH R15,=H'10' MULTIPLY ACCUMULATED NUMBER 19500000 IC R2,D0(,R1) BY 10 AND ADD IN UNITS 19600000 AR R15,R2 POSITION 19700000 B SCAN90 TRY NEXT CHARACTER 19800000 SPACE 3 20200000 SCAN200 CH R2,=Y(JLPARN) IS DELIMITER LEFT PAREN 20600000 BNE SCAN110 ERROR IF NOT 20610000 BAL R9,SCAN80 CONVERT NUMBER 20620000 CLI D0(R1),JRPARN FOLLOWED BY RIGHT PAREN 20630000 BNE SCAN110 ERROR IF NOT 20640000 LA R1,D1(,R1) BUMP POINTER 20650000 BCTR R6,R0 DECREMENT LENGTH 20660000 LTR R6,R6 ANY FIELD LEFT 20670000 BM SCAN230 BRANCH IF END OP FIELD 20680000 B SCAN220 CONTINUE CHECKING 20690000 SCAN210 CH R2,=Y(JEQUAL) TEST IF = 20700000 BNE SCAN110 BRANCH IF NOT = 20710000 BAL R9,SCAN80 CONVERT NUMBER 20720000 LTR R6,R6 CHECK IF END OF FIELD 20730000 BM SCAN230 BRANCH IF SO 20740000 SCAN220 CLI D0(R1),JCOMMA FOLLOWED BY COMMA 20750000 BNE SCAN110 ERROR IF NOT 20760000 SCAN230 CH R15,=H'255' MORE THAN 255 20770000 BH SCAN110 YES. LOG ERROR 20800000 GOIF JMSGLKEY,ON=SCAN110 20850000 STC R15,JMSGL SAVE IN MSGL 20900000 B SCAN50 GO SCAN FOR MORE OPTIONS 21000000 SPACE 3 21100000 SCAN300 CH R2,=Y(JLPARN) IS DELIMITER LEFT PAREN 21200000 BNE SCAN110 ERROR IF NOT 21210000 BAL R9,SCAN80 CONVERT NUMBER 21220000 CLI D0(R1),JRPARN FOLLOWED BY RIGHT PAREN 21230000 BNE SCAN110 ERROR IF NOT 21240000 LA R1,D1(,R1) BUMP POINTER 21250000 BCTR R6,R0 DECREMENT LENGTH 21260000 LTR R6,R6 ANY FIELD LEFT 21270000 BM SCAN330 BRANCH IF END OF FIELD 21280000 B SCAN320 CONTINUE CHECKING 21290000 SCAN310 CH R2,=Y(JEQUAL) TEST IF = 21300000 BNE SCAN110 BRANCH IF NOT = 21310000 BAL R9,SCAN80 CONVERT NUMBER 21320000 LTR R6,R6 CHECK IF END OF FIELD 21330000 BM SCAN330 BRANCH IF SO 21340000 SCAN320 CLI D0(R1),JCOMMA FOLLOWED BY COMMA 21350000 BNE SCAN110 ERROR IF NOT 21360000 SCAN330 CH R15,=H'99' MORE THAN 99 21370000 BH SCAN110 YES. LOG ERROR 21400000 GOIF JLNCTKEY,ON=SCAN110 21650000 STH R15,JLNCT SAVE LINECNT OF BODY OF LISTING 21700000 B SCAN50 GO SCAN FOR MORE OPTIONS 21800000 SPACE 3 21900000 SCAN400 LA R1,D1(,R1) BUMP POINTER 22000000 BCTR R6,R0 DECREMENT LENGTH 22010000 LTR R6,R6 END OF PARAM 22020000 BM SCAN110 ERROR IF NO RIGHT PAREN 22030000 CLI D0(R1),JLPARN CHARACTER IS LEFT PAREN 22040000 BE SCAN405 BRANCH IF SO 22050000 CLI D0(R1),JRPARN CHARACTER IS RIGHT PAREN 22060000 BNE SCAN400 CONTINUE TO SCAN IF NOT 22070000 BCTR R14,R0 DECREASE PAREN COUNT 22080000 LTR R14,R14 TEST PAREN COUNT 22090000 BNM SCAN400 CONTINUE TO SCAN IF MORE 22100000 LR R14,R1 POINTER TO END OF SYSPARM 22110000 LA R1,D1(,R1) BUMP POINTER 22120000 BCTR R6,R0 DECREMENT COUNT 22130000 LTR R6,R6 TEST IF END OF PARAM 22140000 BM SCAN465 BRANCH IF END 22150000 CLI D0(R1),JCOMMA TEST NEXT CHARACTER 22160000 BE SCAN465 HANDLE SYSPARM IF COMMA 22170000 B SCAN110 ERROR IF NOT 22180000 SCAN405 LA R14,D1(,R14) INCREASE PAREN COUNT 22190000 B SCAN400 CONTINUE TO SCAN 22200000 SCAN410 SR R14,R14 ZERO PAREN COUNT 22210000 LR R15,R1 SAVE STARTING POSITION 22220000 CH R2,=Y(JLPARN) OPTION DELIMITED BY LEFT PAREN 22230000 BE SCAN400 HANDLE SYSPARM(STRING) IF ( 22240000 CH R2,=Y(JEQUAL) TEST IF = 22250000 BNE SCAN110 ERROR IF NOT 22260000 SCAN420 LA R1,D1(,R1) BUMP POINTER 22400000 BCTR R6,R0 DECREMENT LENGTH 22500000 LTR R6,R6 END OF PARM 22600000 BM SCAN450 YES. CHECK PAREN BALANCE. 22700000 CLI D0(R1),JLPARN CHARACTER ( 22800000 BE SCAN430 YES. GO INCREMENT PAREN COUNT 22900000 CLI D0(R1),JRPARN CHARACTER ) 23000000 BE SCAN440 YES. GO DECREMENT PAREN COUNT. 23100000 LTR R14,R14 IS PAREN BALANCE ZERO 23200000 BNZ SCAN420 NO. GO CONTINUE SCAN 23300000 CLI D0(R1),JCOMMA COUNT ZERO. IS IT A COMMA. 23400000 BE SCAN460 YES. THAT IS ALL OF SYSPARM. 23500000 B SCAN420 GO CONTINUE SCAN 23600000 SCAN430 LA R14,D1(,R14) INCREMENT PAREN COUNT 23700000 B SCAN420 GO CONTINUE SCAN 23800000 SCAN440 BCTR R14,R0 DECREMENT PAREN COUNT 23900000 LTR R14,R14 IS IT NEGATIVE 24000000 BNM SCAN420 NO. CONTINUE SCAN. 24100000 B SCAN110 ERROR. 24200000 SCAN450 LTR R14,R14 WERE PAREN BALANCED. 24300000 BNZ SCAN110 NO. ERROR. 24400000 SCAN460 LR R14,R1 LENGTH = END - 24500000 SCAN465 SR R14,R15 START 24600000 BCT R14,SCAN470 BR IF LENGTH IS GT 1 24700000 XC JSYSPARM,JSYSPARM NULL SYSPARM SYSPARM=, 24800000 B SCAN50 CONTINUE WITH OTHER OPTIONS 24900000 SCAN470 STC R14,D0(,R15) STORE ACT LENGTH OF CHAR STRING 25000000 L R4,JSYSPARM SEE IF DEFAULT SYSPARM 25100000 LTR R4,R4 '' 25200000 BZ SCAN480 BR IF NO DEFAULT SYSPARM 25300000 CLC D0(D1,R4),D0(R15) IS LENGTH OF SYSPARM LE DEFAULT 25400000 BL SCAN480 LENGTH. NO. MUST SAVE PARM 25500000 EX R14,MVCSYSPM OVERLAY DEFAULT SYSPARM 25600000 B SCAN50 CONTINUE WITH OTHER OPTIONS 25700000 SCAN480 ST R15,JSYSPARM SAVE SYSPARM ADDR 25800000 OI JSYSPARM,BIT0 SET BIT ON TO INDICATE DON'T 25900000 B SCAN50 FREE PARM AREA. NEXT OPTION 26000000 SCAN500 C R6,=F'4' CHECK REMAINING CHARACTERS 26005000 BL SCAN110 ERROR IF LESS THAN 5 26010000 CLC D0(D5,R1),=AL1(JLPARN,JM,JI,JN,JRPARN) TEST IF MIN 26015000 BNE SCAN510 BRANCH IF NOT MIN BLOCK SIZE 26020000 SET JMINBUF,ON INDICATE MIN BUFFERS 26025000 B SCAN520 GO UPDATE POINTER 26030000 SCAN510 CLC D0(D5,R1),=AL1(JLPARN,JS,JT,JD,JRPARN) TEST IF STD 26035000 BNE SCAN110 ERROR IF NOT 26040000 SET JMINBUF,OFF INDICATE STANDARD BUFFERS 26045000 SCAN520 LA R1,D5(,R1) BUMP TO NEXT OPTION 26050000 S R6,=F'5' DECREMENT LENGTH 26055000 LTR R6,R6 TEST IF END 26060000 BM SCAN50 CONTINUE TO SCAN 26065000 CLI D0(R1),JCOMMA CHECK IF COMMA 26070000 BNE SCAN110 ERROR IF NOT 26075000 B SCAN50 CONTINUE TO SCAN 26080000 SCAN600 SET JXREF,ON INDICATE XREF 26080800 SET JMINXREF,OFF INDICATE FULL XREF 26081600 CH R2,=Y(JCOMMA) CHECK IF XREF, 26082400 BE SCAN50 CONTINUE SCAN 26083200 C R6,=F'5' CHECK REMAINING CHARACTERS 26084000 BL SCAN110 ERROR IF LESS THAN (FULL) 26084800 CLC D0(D6,R1),=AL1(JLPARN,JF,JU,JL,JL,JRPARN) 26085600 BE SCAN610 BRANCH IF (FULL) 26086400 C R6,=F'6' CHECK REMAINING CHARACTERS 26087200 BL SCAN110 ERROR IF LESS THAN (SHORT) 26088000 CLC D0(D7,R1),=AL1(JLPARN,JS,JH,JO,JR,JT,JRPARN) 26088800 BNE SCAN110 ERROR IF NOT (SHORT) 26089600 SET JMINXREF,ON INDICATE SHORT XREF 26090400 LA R1,D7(,R1) ADVANCE POINTER 26091200 S R6,=F'7' DECREASE COUNT 26092000 B SCAN620 CHECK NEXT CHARACTER 26092800 SCAN610 LA R1,D6(,R1) ADVANCE POINTER 26093600 S R6,=F'6' DECREASE COUNT 26094400 SCAN620 LTR R6,R6 CHECK IF LAST OPTION 26095200 BM SCAN50 BRANCH IF LAST 26096000 CLI D0(R1),JCOMMA CHECK IF COMMA 26096800 BE SCAN50 BRANCH IF COMMA 26097600 B SCAN110 ERROR IF NOT 26098400 SPACE 3 26100000 SCAN999 DC 0H'0' CONTINUE 26200000 SPACE 3 26300000 TITLE '&COMPNM&ASMID - ASSEMBLER INITILIZATION - PROCESS OVERRI26350000 IDING DDNAMES IF THERE ARE ANY' 26360000 LA R10,ERR260 ERROR CODE FOR MISSING DD CARD 26400000 SR R6,R6 MAKE R6 & R7 EQUAL IN CASE 26500000 LR R7,R6 THERE IS NO OVERRIDING DD 26600000 TM D0(R11),BIT0 ANY OVERRIDING DDNAMES 26700000 BO TSYSTERM NO. R5 WILL BE GT R7 NOW 26800000 L R6,D4(,R11) PT TO DDNAME LIST 26900000 USING P,R6 '' 27000000 LA R7,P CALC END-OF-LINE (-2) 27100000 AH R7,PLEN '' 27200000 SPACE 3 27300000 TSYSTERM GOIF JTERM,OFF=TSYSLIN NOTERMINAL SPECIFIED 27307000 LA R5,PSYSTERM PT TO OVERRIDING DDNAME 27314000 CR R5,R7 IS IT PAST END OF LIST 27321000 BH XSYSTERM YES GO CHANGE POINTER 27328000 CLC D0(D8,R5),=8X'00' IS DDNAME OVERRIDEN OY02543 27335031 BNZ DSYSTERM YES 27342000 XSYSTERM LA R5,CSYSTERM PT TO STANDARD NAME 27349000 DSYSTERM DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 27356000 LTR R15,R15 WAS DDNAME FOUND 27363000 BZ TSYSLIN YES 27370000 SET JMISTERM,ON INDICATE SYSTERM DD CARD MISSIN 27377000 SET JTERM,OFF SET TERM OFF 27384000 TSYSLIN GOIF JLINK,OFF=TSYSIN NOLOAD SPECIFIED 27400000 LA R5,PSYSGO PT TO OVERRIDING DDNAME 27500000 CR R5,R7 IS IT PAST END OF LIST 27600000 BH XSYSLIN YES. GO CHANGE PTR 27700000 CLC D0(D8,R5),=8X'00' IS DDNAME OVERRIDEN OY02543 27800031 BNZ DSYSLIN YES. 27900000 XSYSLIN LA R5,CSYSGO PT TO STANDARD NAME 28000000 DSYSLIN DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 28100000 LTR R15,R15 WAS DDNAME FOUND 28200000 BZ TSYSIN YES 28300000 SET JMISLIN,ON NO. FLAG ERROR FOR DIAG. 28400000 SET JLINK,OFF SUPPRESS OBJECT FILE 28500000 SPACE 3 28600000 TSYSIN LA R5,PSYSIN PT TO OVERRIDING DDNAME 28700000 CR R5,R7 IS IT PAST END OF LIST 28800000 BH XSYSIN YES. GO CHANGE PTR 28900000 CLC D0(D8,R5),=8X'00' IS DDNAME OVERRIDEN OY02543 29000031 BNZ DSYSIN YES. 29100000 XSYSIN LA R5,CSYSIN PT TO STANDARD NAME 29200000 DSYSIN DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 29300000 LTR R15,R15 WAS DDNAME FOUND 29400000 BP JABORT NO. ABORT 29500000 SPACE 3 29600000 GOIF JLIST,OFF=TSYSPUNC NOLIST SPECIFIED 29700000 LA R5,PSYSPRIN PT TO OVERRIDING DDNAME 29800000 CR R5,R7 IS IT PAST END OF LIST 29900000 BH XSYSPRIN YES. GO CHANGE PTR 30000000 CLC D0(D8,R5),=8X'00' IS DDNAME OVERRIDEN OY02543 30100031 BNZ DSYSPRIN YES. 30200000 XSYSPRIN LA R5,CSYSPRIN PT TO STANDARD NAME 30300000 DSYSPRIN DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 30400000 LTR R15,R15 WAS DDNAME FOUND 30500000 BZ TSYSPUNC YES 30550000 SET JMISPRT,ON INDICATE MISSING SYSPRINT 30600000 WTO MF=(E,NSPRTMSG) GIVE MSG FOR MISSING SYSPRINT 30620000 SET JLIST,OFF 30650000 SPACE 3 30700000 TSYSPUNC GOIF JDECK,OFF=TSYSUT1 NODECK SPECIFIED 30800000 LA R5,PSYSPUNC PT TO OVERRIDING DDNAME 30900000 CR R5,R7 IS IT PAST END OF LIST 31000000 BH XSYSPUNC YES. GO CHANGE PTR 31100000 CLC D0(D8,R5),=8X'00' IS DDNAME OVERRIDEN OY02543 31200031 BNZ DSYSPUNC YES. 31300000 XSYSPUNC LA R5,CSYSPUNC PT TO STANDARD NAME 31400000 DSYSPUNC DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 31500000 LTR R15,R15 WAS DDNAME FOUND 31600000 BZ TSYSUT1 YES 31700000 SET JMISPCH,ON NO. FLAG ERROR FOR DIAG. 31800000 SET JDECK,OFF SUPPRESS PUNCH FILE 31900000 SPACE 3 32000000 TSYSUT1 LA R5,PSYSUT1 PT TO OVERRIDING DDNAME 32100000 CR R5,R7 IS IT PAST END OF LIST 32200000 BH XSYSUT1 YES. GO CHANGE PTR 32300000 CLC D0(D8,R5),=8X'00' IS DDNAME OVERRIDEN OY02543 32400031 BNZ DSYSUT1 YES. 32500000 XSYSUT1 LA R5,CSYSUT1 PT TO STANDARD NAME 32600000 DSYSUT1 DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 32700000 LTR R15,R15 WAS DDNAME FOUND 32800000 BP JABORT NO. ABORT 32900000 MVC JMAXRL1,JDWORD+D6 SET MAXRL FOR SYSUT1 33000000 L R1,JFLEBLK1+JFLE-JFLEBLK PT TO SYSUT1 DCB 33100000 USING IHADCB,R1 '' 33200000 MVC DCBDDNAM,D0(R5) MOVE IN DDNAME 33300000 DROP R1 DROP DCB ADDRESSABILITY 33400000 SPACE 3 33500000 LA R5,PSYSUT2 PT TO OVERRIDING DDNAME 33600000 CR R5,R7 IS IT PAST END OF LIST 33700000 BH XSYSUT2 YES. GO CHANGE PTR 33800000 CLC D0(D8,R5),=8X'00' IS DDNAME OVERRIDEN OY02543 33900031 BNZ DSYSUT2 YES. 34000000 XSYSUT2 LA R5,CSYSUT2 PT TO STANDARD NAME 34100000 DSYSUT2 DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 34200000 LTR R15,R15 WAS DDNAME FOUND 34300000 BP JABORT NO. ABORT 34400000 MVC JMAXRL2,JDWORD+D6 SET MAXRL FOR SYSUT2 34500000 L R1,JFLEBLK2+JFLE-JFLEBLK PT TO SYSUT2 DCB 34600000 USING IHADCB,R1 '' 34700000 MVC DCBDDNAM,D0(R5) MOVE IN DDNAME 34800000 DROP R1 DROP DCB ADDRESSABILITY 34900000 SPACE 3 35000000 LA R5,PSYSUT3 PT TO OVERRIDING DDNAME 35100000 CR R5,R7 IS IT PAST END OF LIST 35200000 BH XSYSUT3 YES. GO CHANGE PTR 35300000 CLC D0(D8,R5),=8X'00' IS DDNAME OVERRIDEN OY02543 35400031 BNZ DSYSUT3 YES. 35500000 XSYSUT3 LA R5,CSYSUT3 PT TO STANDARD NAME 35600000 DSYSUT3 DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 35700000 LTR R15,R15 WAS DDNAME FOUND 35800000 BP JABORT NO. ABORT 35900000 MVC JMAXRL3,JDWORD+D6 SET MAXRL FOR SYSUT3 36000000 L R1,JFLEBLK3+JFLE-JFLEBLK PT TO SYSUT3 DCB 36100000 USING IHADCB,R1 '' 36200000 MVC DCBDDNAM,D0(R5) MOVE IN DDNAME 36300000 DROP D1 DROP DCB ADDRESSABILITY 36400000 SPACE 4 36500000 * CHECK FOR CONSISTENT OPTIONS - 36510000 * IF NOLIST, THEN NOXREF, NOESD, AND NORLD 36520000 * IF NODECK AND NOLINK, THEN NOTEST 36530000 GOIF JLIST,ON=CKTEST CHECK LIST OPTION 36540000 SET (JXREF,JRLD,JESD),OFF NOLIST, SO NOXREF NORLD & NOESD 36550000 CKTEST GOIF (JLINK,JDECK),ANY=CKTERM BOTH NOLINK AND NODECK 36560000 SET JTEST,OFF YES, THEN NOTEST 36570000 CKTERM GOIF JTERM,ON=MIN0 IF NOTERM OPTION 36573000 SET (JNUM,JSTMT),OFF FORCE NONUM AND NOSTMT 36576000 SPACE 5 36580000 MIN0 LH R14,JMAXRL1 FIND THE MINIMUM OF JMAXRL1, 36600000 CH R14,JMAXRL2 JMAXRL2, JMAXRL3 & JMAXRL 36700000 BNH MIN1 '' 36800000 LH R14,JMAXRL2 '' 36900000 MIN1 CH R14,JMAXRL3 '' 37000000 BNH MIN2 '' 37100000 LH R14,JMAXRL3 '' 37200000 MIN2 CH R14,JMAXRL '' 37300000 BNH MIN3 '' 37400000 LH R14,JMAXRL '' 37500000 MIN3 STH R14,JMAXRL SAVE MINIMUM OF JMAXRL(S) 37600000 SPACE 3 37900000 RETURN JRETURN 39200000 SPACE 2 40300000 TITLE '&COMPNM&ASMID - ASSEMBLER INITILIZATION - CONSTANTS ANDX40350000 PATCH AREA ' 40360000 CSYSTERM DC CL8'SYSTERM' STANDARD FILE NAME FOR SYSTERM 40460000 CSYSGO DC CL8'SYSGO' STANDARD FILE NAME FOR SYSGO 40600000 CSYSIN DC CL8'SYSIN' STANDARD FILE NAME FOR SYSIN 40700000 CSYSPRIN DC CL8'SYSPRINT' STANDARD FILE NAME FOR SYSPRINT 40800000 CSYSPUNC DC CL8'SYSPUNCH' STANDARD FILE NAME FOR SYSPUNCH 40900000 CSYSUT1 DC CL8'SYSUT1' STANDARD FILE NAME FOR SYSUT1 41000000 CSYSUT2 DC CL8'SYSUT2' STANDARD FILE NAME FOR SYSUT2 41100000 CSYSUT3 DC CL8'SYSUT3' STANDARD FILE NAME FOR SYSUT3 41200000 SPACE 1 41300000 CALEN DC AL1(31,29,31,30,31,30,31,31,30,31,30,31) DAYS IN MONTH 41400000 SPACE 1 41500000 TRTTABLE DC 39AL1(0) TRANSLATE AND TEST TABLE 41600000 DC AL1(JEQUAL) STOP ON = 41700000 DC AL1(JLPARN) STOP ON ( 41800000 DC 5AL1(0) (DON'T STOP) 41850000 DC AL1(JCOMMA) STOP ON , 41900000 DC AL1(JBLANK) STOP ON BLANK 42000000 DC 208AL1(0) (DON'T STOP) 42100000 SPACE 1 42200000 MVCPARM MVC D0(D0,R5),D2(R2) MVC TO MOVE PARM TO OUR CORE 42300000 TRPARM TR D0(D0,R5),JTRTABLE TR TO TRANSLATE TO INTERNAL 42400000 TRTPARM TRT D0(D0,R5),TRTTABLE TRT TO SCAN FOR DELIMITER 42500000 MVCDWORD MVC JDWORD(D0),D0(R5) MVC OPTION TO JDWORD 42600000 MVCSYSPM MVC D0(D0,R4),D0(R15) MVC TO MOVE SYSPARM TO DEFAULT 42700000 SPACE 1 42800000 COMPAREA EQU JDWORD,10 JDWORD+JFWORD1 IN COMMA 42900000 PARMLEN EQU 14 LENGTH OF EACH ENTRY 43000000 BLANKS JGENIN ' ',10 10 INTERNAL BLANKS 43100000 PARMTAB DS 0F OPTION TABLE 43200000 JGENIN 'DECK',10 43300000 SET JDECK,ON SET DECK OPTION ON 43400000 JGENIN 'NODECK',10 43500000 SET JDECK,OFF SET DECK OPTION OFF 43600000 JGENIN 'OBJECT',10 43700000 SET JLINK,ON SET OBJECT OPTION ON 43800000 JGENIN 'OBJ',10 43900000 SET JLINK,ON SET OBJECT OPTION ON 44000000 JGENIN 'NOOBJECT',10 44100000 SET JLINK,OFF SET OBJECT OPTION OFF 44200000 JGENIN 'NOOBJ',10 44300000 SET JLINK,OFF SET OBJECT OPTION OFF 44400000 JGENIN 'XREF',10 44500000 B SCAN600 CHECK IF SHORT OR FULL 44600000 JGENIN 'NOXREF',10 44700000 SET JXREF,OFF SET XREF OPTION OFF 44800000 JGENIN 'ESD',10 44900000 SET JESD,ON SET ESD OPTION ON 45000000 JGENIN 'NOESD',10 45100000 SET JESD,OFF SET ESD OPTION OFF 45200000 JGENIN 'RLD',10 45300000 SET JRLD,ON SET RLD OPTION ON 45400000 JGENIN 'NORLD',10 45500000 SET JRLD,OFF SET RLD OPTION OFF 45600000 JGENIN 'RENT',10 45700000 SET JRENT,ON SET RENT OPTION ON 45800000 JGENIN 'NORENT',10 45900000 SET JRENT,OFF SET RENT OPTION OFF 46000000 JGENIN 'ALIGN',10 46100000 SET JALGN,ON SET ALIGN OPTION ON 46200000 JGENIN 'NOALIGN',10 SET ALIGN OPTION OFF 46300000 SET JALGN,OFF SET ALIGN OPTION OFF 46400000 JGENIN 'TERM',10 46500000 SET JTERM,ON SET TERM OPTION ON 46600000 JGENIN 'TERMINAL',10 46700000 SET JTERM,ON SET TERM OPTION ON 46800000 JGENIN 'NOTERM',10 46900000 SET JTERM,OFF SET TERM OPTION OFF 47000000 JGENIN 'NOTERMINAL',10 47100000 SET JTERM,OFF SET TERM OPTION OFF 47200000 JGENIN 'NUM',10 47300000 SET JNUM,ON SET NUM OPTION ON 47400000 JGENIN 'NUMBER',10 47500000 SET JNUM,ON SET NUM OPTION ON 47600000 JGENIN 'NONUM',10 47700000 SET JNUM,OFF SET NUM OPTION OFF 47800000 JGENIN 'NONUMBER',10 47900000 SET JNUM,OFF SET NUM OPTION OFF 48000000 JGENIN 'STMT',10 48100000 SET JSTMT,ON SET STMT OPTION ON 48200000 JGENIN 'NOSTMT',10 48300000 SET JSTMT,OFF SET STMT OPTION OFF 48400000 JGENIN 'TEST',10 48500000 SET JTEST,ON SET TEST OPTION ON 48600000 JGENIN 'NOTEST',10 48700000 SET JTEST,OFF SET TEST OPTION OFF 48800000 JGENIN 'MCALL',10 48900000 SET JCALLS,ON SET MCALL OPTION DN 49000000 JGENIN 'NOMCALL',10 49100000 SET JCALLS,OFF SET MCALL OPTION OFF 49200000 JGENIN 'ALOGIC',10 49300000 SET JALOGIC,ON SET ALOGIC OPTION ON 49400000 JGENIN 'NOALOGIC',10 49500000 SET JALOGIC,OFF SET ALOGIC OPTION OFF 49600000 JGENIN 'MLOGIC',10 49700000 SET JMLOGIC,ON SET MLDGIC OPTION ON 49800000 JGENIN 'NOMLOGIC',10 49900000 SET JMLOGIC,OFF SET MLOGIC OPTION OFF 50000000 JGENIN 'LIBMAC',10 50020000 SET JSYSMAC,ON SET LIBMAC OPTION ON 50040000 JGENIN 'NOLIBMAC',10 50060000 SET JSYSMAC,OFF SET LIBMAC OPTION OFF 50080000 JGENIN 'SYSMAC',10 50100000 SET JSYSMAC,ON SET SYSMAC OPTION DN 50200000 JGENIN 'NOSYSMAC',10 50300000 SET JSYSMAC,OFF SET SYSMAC OPTION OFF 50400000 JGENIN 'YFLAG',10 SET Y-CON FLAG ON @OX09734 50450005 SET JYFLAG,ON @OX09734 50460005 JGENIN 'NOYFLAG',10 SET Y-CON FLAG OFF @OX09734 50470005 SET JYFLAG,OFF @OX09734 50480005 JGENIN 'LIST',10 50500000 SET JLIST,ON SET LIST OPTION ON 50600000 JGENIN 'NOLIST',10 50700000 SET JLIST,OFF SET LIST OPTION OFF 50800000 JGENIN 'BUF',10 50900000 B SCAN500 HANDLE BUFSIZE OPTION 51000000 JGENIN 'BUFSIZE',10 51100000 B SCAN500 HANDLE BUFSIZE OPTION 51200000 JGENIN 'FLAG',10 51300000 B SCAN200 HANDLE FLAG OPTION 51400000 JGENIN 'LINECOUNT',10 51500000 B SCAN300 HANDLE LINECOUNT 51600000 JGENIN 'LC',10 51700000 B SCAN300 HANDLE LINECOUNT 51800000 JGENIN 'SYSPARM',10 51900000 B SCAN410 HANDLE SYSPARM 52000000 JGENIN 'LOAD',10 52100000 SET JLINK,ON SET LOAD OPTION ON 52200000 JGENIN 'NOLOAD',10 52300000 SET JLINK,OFF SET LOAD OPTION OFF 52400000 JGENIN 'ALGN',10 52500000 SET JALGN,ON SET ALIGN OPTION ON 52600000 JGENIN 'NOALGN',10 52700000 SET JALGN,OFF SET ALIGN OPTION OFF 52800000 JGENIN 'CALLS',10 52900000 SET JCALLS,ON SET CALLS OPTION ON 53000000 JGENIN 'NOCALLS',10 53100000 SET JCALLS,OFF SET CALLS OPTION OFF 53200000 JGENIN 'MINBUF',10 53300000 SET JMINBUF,ON SET MINBUF OPTION ON 53400000 JGENIN 'NOMINBUF',10 53500000 SET JMINBUF,OFF SET MINBUF OPTION OFF 53600000 JGENIN 'MSGLEVEL',10 53700000 B SCAN210 HANDLE MSGLEVEL 53800000 JGENIN 'LINECNT',10 53900000 B SCAN310 HANDLE LINECOUNT 54000000 PARMEND DS 0F END OF OPTION TABLE 54300000 SPACE 3 54400000 NSPRTMSG WTO '&COMPNM.267 SYSPRINT DD CARD MISSING - NOLIST OPTION UX54430000 SED',ROUTCDE=(2,11),MF=L 54480000 JPATCH X0D00,AC8 5% PATCH AREA 54530000 SPACE 3 54600000 END START 54700000